diff options
| author | Ogulcan Celik <ogulcancelik@gmail.com> | 2026-09-01 14:48:45 +0300 |
|---|---|---|
| committer | Ogulcan Celik <ogulcancelik@gmail.com> | 2026-09-01 14:48:45 +0300 |
| commit | 8a6d697308162874a236c84aac0b0f8c7ac01f83 (patch) | |
| tree | ed7dc7e8c6f50d66bde721fae78576aede929f66 /website/agent-detection | |
| parent | b54a78aa510b87d1e3b56c619b72eaeb59e4a2a1 (diff) | |
refactor: separate website presentation from runtime
Diffstat (limited to 'website/agent-detection')
21 files changed, 0 insertions, 1475 deletions
diff --git a/website/agent-detection/amp.toml b/website/agent-detection/amp.toml deleted file mode 100644 index 1fc5dfa6..00000000 --- a/website/agent-detection/amp.toml +++ /dev/null @@ -1,65 +0,0 @@ -id = "amp" -version = "2026.07.09.1" -min_engine_version = 2 -updated_at = "2026-07-09T00:00:00Z" -aliases = ["amp-local"] - -[[rules]] -id = "osc_title_plugin_confirmation_blocked" -state = "blocked" -priority = 1100 -region = "osc_title" -visible_blocker = true -contains = ["Plugin confirmation needed"] - -[[rules]] -id = "osc_title_working" -state = "working" -priority = 1050 -region = "osc_title" -visible_working = true -regex = ['^[\x{2800}-\x{28FF}] '] - -[[rules]] -id = "approval_footer" -state = "blocked" -priority = 300 -region = "whole_recent" -visible_blocker = true -any = [ - { contains = ["waiting for approval"] }, - { contains = ["invoke tool"] }, - { contains = ["run this command?"] }, - { contains = ["allow editing file:"] }, - { contains = ["allow creating file:"] }, - { contains = ["confirm tool call"] }, - { contains = ["approve"], any = [{ contains = ["allow all for this session"] }, { contains = ["allow all for every session"] }, { contains = ["allow file for every session"] }, { contains = ["deny with feedback"] }] }, -] - -[[rules]] -id = "status_footer_working" -state = "working" -priority = 200 -region = "bottom_non_empty_lines(5)" -visible_working = true -line_regex = ['(?i)^\s*╰\s+\S+\s+(thinking|streaming|running tools|waiting)\s+─'] - -[[rules]] -id = "esc_cancel_working" -state = "working" -priority = 100 -region = "whole_recent" -visible_working = true -contains = ["esc to cancel"] - -[[rules]] -id = "osc_title_idle" -state = "idle" -priority = 50 -region = "osc_title" -visible_idle = true -contains = [" - amp - "] -not = [ - { regex = ['^[\x{2800}-\x{28FF}] '] }, - { contains = ["Plugin confirmation needed"] }, -] diff --git a/website/agent-detection/antigravity.toml b/website/agent-detection/antigravity.toml deleted file mode 100644 index 8b9bcfcf..00000000 --- a/website/agent-detection/antigravity.toml +++ /dev/null @@ -1,33 +0,0 @@ -id = "agy" -version = "2026.06.24.1" -min_engine_version = 1 -updated_at = "2026-06-24T00:00:00Z" -aliases = ["antigravity", "antigravity-cli"] - -[[rules]] -id = "permission_prompt" -state = "blocked" -priority = 300 -region = "whole_recent" -visible_blocker = true -contains = ["requesting permission for:"] -any = [ - { contains = ["do you want to proceed?"] }, - { contains = ["tab amend", "edit command"] }, -] - -[[rules]] -id = "spinner_working" -state = "working" -priority = 100 -region = "whole_recent" -visible_working = true -line_regex = ['^\s*[\u2800-\u28FF]+\s+\p{Alphabetic}+\w*ing\b'] - -[[rules]] -id = "background_tasks_working" -state = "working" -priority = 90 -region = "bottom_non_empty_lines(5)" -visible_working = true -line_regex = ['(?i)·\s*[1-9][0-9]*\s+task'] diff --git a/website/agent-detection/claude.toml b/website/agent-detection/claude.toml deleted file mode 100644 index 55adacd6..00000000 --- a/website/agent-detection/claude.toml +++ /dev/null @@ -1,226 +0,0 @@ -id = "claude" -version = "2026.08.29.1" -min_engine_version = 2 -updated_at = "2026-08-29T00:00:00Z" -aliases = ["claude-code"] - -[[rules]] -id = "osc_title_working" -state = "working" -priority = 1100 -region = "osc_title" -visible_working = true -# Braille covers <= 2.1.227; half-circles are the 2.1.228 busy spinner. -regex = ['^[\x{2800}-\x{28FF}\x{25D0}-\x{25D3}] '] - -[[rules]] -id = "live_turn_working" -state = "working" -priority = 970 -region = "bottom_non_empty_lines(12)" -visible_working = true -any = [ - { line_regex = ['^\s*[⏸⏵].*esc to interrupt(?:\s|·|$)'] }, - { line_regex = ['^\s*[\x{002A}\x{00B7}\x{2722}\x{2736}\x{273B}\x{273D}]\s+\S.*…(?:\s+\(\d+[smh](?:\s|·)|\s*$)'] }, -] - -[[rules]] -id = "background_shell_working" -state = "working" -priority = 965 -region = "bottom_non_empty_lines(5)" -visible_working = true -line_regex = ['^\s*[⏸⏵].*·\s+[1-9]\d*\s+shells?\s+(?:·|$)'] - -[[rules]] -id = "background_agents_working" -state = "working" -priority = 965 -region = "last_non_empty_above_prompt_box" -visible_working = true -line_regex = ['^\s*[\x{002A}\x{00B7}\x{2722}\x{2736}\x{273B}\x{273D}]\s+Waiting for [1-9]\d* background agents? to finish\s*$'] - -[[rules]] -id = "background_mcp_task_working" -state = "working" -priority = 965 -region = "bottom_non_empty_lines(12)" -visible_working = true -# Claude renders activity summaries at column zero; wrapped continuations are indented. -# Keeping that shape prevents user prompt text from impersonating this signal. -regex = ['(?m)^[\x{002A}\x{00B7}\x{2722}\x{2736}\x{273B}\x{273D}][ \t]+\S[^\n]*?(?:\n[ \t]+[^\n]*?){0,3}·(?:[ \t]+|\n[ \t]*)[1-9]\d*(?:[ \t]+|\n[ \t]*)MCP(?:[ \t]+|\n[ \t]*)tasks?(?:[ \t]+|\n[ \t]*)still(?:[ \t]+|\n[ \t]*)running[ \t]*$'] -not = [ - { contains = ["do you want to proceed?"] }, - { contains = ["esc to cancel"] }, - { contains = ["waiting for permission"] }, - { contains = ["do you want to allow this connection?"] }, - { contains = ["tab to amend"] }, - { contains = ["ctrl+e to explain"] }, -] - -[[rules]] -id = "btw_overlay_working" -state = "working" -priority = 975 -region = "bottom_non_empty_lines(5)" -visible_working = true -line_regex = [ - '^\s*/btw(?:\s|$)', - '(?i)esc to close\s*$', -] - -[[rules]] -id = "transcript_viewer" -state = "unknown" -priority = 1000 -region = "bottom_non_empty_lines(3)" -skip_state_update = true -contains = ["showing detailed transcript"] -any = [ - { contains = ["ctrl+o", "to toggle"] }, - { contains = ["ctrl+e", "show all"] }, - { contains = ["ctrl+e", "collapse"] }, - { contains = ["↑↓ scroll"] }, - { contains = ["? for shortcuts"] }, -] - -[[rules]] -id = "live_blocked_form" -state = "blocked" -priority = 980 -region = "after_last_horizontal_rule" -visible_blocker = true -contains = ["esc to cancel"] -any = [ - { contains = ["enter to confirm"] }, - { contains = ["enter to select"], any = [ - { contains = ["tab/arrow keys to navigate"] }, - { contains = ["arrow keys to navigate"] }, - { contains = ["arrows to navigate"] }, - { contains = ["↑/↓ to navigate"] }, - { contains = ["↑↓ to navigate"] }, - ] }, -] - -[[rules]] -id = "dynamic_workflow_prompt" -state = "blocked" -priority = 980 -region = "whole_recent" -visible_blocker = true -contains = ["run a dynamic workflow?", "esc to cancel"] - -[[rules]] -id = "mcp_elicitation_prompt" -state = "blocked" -priority = 980 -region = "whole_recent" -visible_blocker = true -# MCP elicitation dialogs (elicitation/create) show Accept/Decline controls -# with an "Esc to cancel" footer but no Enter hint, so live_blocked_form -# cannot see them (issue #3283). Gate on the invariant header line, the -# Accept/Decline control line, and the cancel footer. -contains = ["esc to cancel"] -line_regex = ['(?i)^\s*MCP server ["\x{201C}].+["\x{201D}] requests your input\s*$'] -all = [ - { any = [ - { line_regex = ['^\s*\x{276F}?\s*Accept\b'] }, - { line_regex = ['^\s*\x{276F}?\s*Decline\b'] }, - ] }, -] - -[[rules]] -id = "live_prompt_box" -state = "idle" -priority = 950 -region = "prompt_box_body" -visible_idle = true -line_regex = ['^\s*❯'] -not = [ - { contains = ["enter to select"] }, - { contains = ["esc to cancel"] }, - { contains = ["tab/arrow keys"] }, - { contains = ["arrow keys to navigate"] }, - { contains = ["↑/↓ to navigate"] }, -] - -[[rules]] -id = "model_picker_menu" -state = "unknown" -priority = 900 -region = "whole_recent" -skip_state_update = true -contains = ["select model", "enter to set as default", "esc to cancel"] -not = [ - { contains = ["do you want to proceed?"] }, - { contains = ["enter to select"] }, -] - -[[rules]] -id = "bash_permission_prompt" -state = "blocked" -priority = 850 -region = "whole_recent" -visible_blocker = true -contains = ["do you want to proceed?"] -any = [ - { contains = ["bash command"] }, - { contains = ["bash("] }, - { contains = ["contains expansion"] }, - { contains = ["tab to amend"] }, - { contains = ["ctrl+e to explain"] }, -] -all = [ - { any = [{ line_regex = ['(?i)^\s*❯?\s*yes\b'] }, { line_regex = ['(?i)^\s*1\.\s*yes\b'] }, { line_regex = ['(?i)^\s*2\.\s*no\b'] }] }, -] - -[[rules]] -id = "generic_permission_prompt" -state = "blocked" -priority = 840 -region = "after_last_horizontal_rule" -visible_blocker = true -contains = ["do you want to proceed?", "esc to cancel"] -all = [ - { any = [ - { line_regex = ['(?i)^\s*❯?\s*1\.\s*yes\b'] }, - { line_regex = ['(?i)^\s*2\.\s*yes\b'] }, - { line_regex = ['(?i)^\s*2\.\s*no\b'] }, - { line_regex = ['(?i)^\s*3\.\s*no\b'] }, - ] }, -] - -[[rules]] -id = "legacy_no_prompt_blocker" -state = "blocked" -priority = 300 -region = "whole_recent" -any = [ - { contains = ["do you want to"], any = [{ contains = ["yes"] }, { contains = ["❯"] }] }, - { contains = ["would you like to"], any = [{ contains = ["yes"] }, { contains = ["❯"] }] }, - { contains = ["waiting for permission"] }, - { contains = ["do you want to allow this connection?"] }, - { contains = ["tab to amend"] }, - { contains = ["ctrl+e to explain"] }, - { contains = ["do you want to proceed?", "esc to cancel"] }, - { contains = ["review your answers"] }, - { contains = ["skip interview and plan immediately"] }, -] -not = [ - { regex = ['(?m)^\s*❯\s*$'] }, -] - -[[rules]] -id = "osc_title_idle" -state = "idle" -priority = 250 -region = "osc_title" -visible_idle = true -regex = ['^\x{2733} '] - -[[rules]] -id = "osc_progress_idle" -state = "idle" -priority = 250 -region = "osc_progress" -regex = ['^4;0'] diff --git a/website/agent-detection/cline.toml b/website/agent-detection/cline.toml deleted file mode 100644 index b30f4417..00000000 --- a/website/agent-detection/cline.toml +++ /dev/null @@ -1,26 +0,0 @@ -id = "cline" -version = "2026.06.10.1" -min_engine_version = 1 -updated_at = "2026-06-10T00:00:00Z" - -[[rules]] -id = "tool_permission" -state = "blocked" -priority = 300 -region = "whole_recent" -visible_blocker = true -any = [ - { contains = ["let cline use this tool"] }, - { contains = ["[act mode]", "execute command?", "yes"] }, - { contains = ["[act mode]", "use this tool?", "yes"] }, - { contains = ["[plan mode]", "execute command?", "yes"] }, - { contains = ["[plan mode]", "use this tool?", "yes"] }, -] - -[[rules]] -id = "default_cline_working" -state = "working" -priority = -10 -region = "whole_recent" -visible_working = true -regex = ['(?s).+'] diff --git a/website/agent-detection/codex.toml b/website/agent-detection/codex.toml deleted file mode 100644 index 6833f390..00000000 --- a/website/agent-detection/codex.toml +++ /dev/null @@ -1,89 +0,0 @@ -id = "codex" -version = "2026.08.28.1" -min_engine_version = 3 -updated_at = "2026-08-28T00:00:00Z" - -[[rules]] -id = "osc_title_blocked" -state = "blocked" -priority = 1100 -region = "osc_title" -visible_blocker = true -contains = ["Action Required"] - -[[rules]] -id = "osc_title_working" -state = "working" -priority = 1050 -region = "osc_title" -visible_working = true -regex = ['(?:^| )[⠋⠙⠹⠸⠼⠴⠦⠧⠇⠏](?: |$)'] - -[[rules]] -id = "transcript_viewer" -state = "unknown" -priority = 1000 -region = "after_last_prompt_marker" -skip_state_update = true -contains = ["↑/↓ to scroll", "pgup/pgdn to", "home/end to jump", "q to quit"] -any = [ - { contains = ["esc to edit prev"] }, - { contains = ["esc/← to edit prev"] }, -] - -[[rules]] -id = "trust_directory" -state = "blocked" -priority = 950 -region = "top_non_empty_lines(20)" -visible_blocker = true -all = [ - { regex = ['\A> You are in [^\r\n]+(?:\r?\n|$)'] }, - { regex = ['(?s)Do\s+you\s+trust\s+the\s+contents\s+of\s+this\s+directory\?'] }, -] - -[[rules]] -id = "live_strong_blocker" -state = "blocked" -priority = 900 -region = "after_last_prompt_marker" -visible_blocker = true -any = [ - { contains = ["press enter to confirm or esc to cancel"] }, - { contains = ["enter to submit answer"] }, - { contains = ["enter to submit all"] }, - { contains = ["allow command?"] }, -] - -[[rules]] -id = "weak_blocker" -state = "blocked" -priority = 600 -region = "whole_recent_without_current_prompt_marker" -any = [ - { contains = ["[y/n]"] }, - { contains = ["yes (y)"] }, - { contains = ["do you want to"], any = [{ contains = ["yes"] }, { contains = ["❯"] }] }, - { contains = ["would you like to"], any = [{ contains = ["yes"] }, { contains = ["❯"] }] }, -] - -[[rules]] -id = "screen_working_fallback" -state = "working" -priority = 500 -region = "bottom_non_empty_lines(3)" -visible_working = true -line_regex = ['^[•◦]\s+Working \([^)]*esc to interrupt\)(?: · .*)?$'] -not = [{ contains = ["■ Conversation interrupted"] }] - -[[rules]] -id = "osc_title_idle" -state = "idle" -priority = 100 -region = "osc_title" -visible_idle = true -regex = ['\S'] -not = [ - { regex = ['(?:^| )[⠋⠙⠹⠸⠼⠴⠦⠧⠇⠏](?: |$)'] }, - { contains = ["Action Required"] }, -] diff --git a/website/agent-detection/cursor.toml b/website/agent-detection/cursor.toml deleted file mode 100644 index ee03e6db..00000000 --- a/website/agent-detection/cursor.toml +++ /dev/null @@ -1,57 +0,0 @@ -id = "cursor" -version = "2026.08.03.1" -min_engine_version = 1 -updated_at = "2026-08-03T01:08:04Z" -aliases = ["cursor-agent"] - -[[rules]] -id = "write_file_approval" -state = "blocked" -priority = 320 -region = "bottom_non_empty_lines(8)" -visible_blocker = true -contains = ["write to this file?", "proceed (y)"] -any = [ - { contains = ["reject & propose changes"] }, - { contains = ["esc or n or p"] }, - { contains = ["add write("] }, -] - -[[rules]] -id = "approval_prompt" -state = "blocked" -priority = 300 -region = "whole_recent" -visible_blocker = true -any = [ - { contains = ["waiting for approval", "run this command?"], any = [{ contains = ["run (once) (y)"] }, { contains = ["skip (esc or n)"] }] }, - { contains = ["(y) (enter)"] }, - { line_regex = ['(?i)^\s*allow .*\(y\)'] }, - { contains = ["keep (n)"] }, - { contains = ["skip (esc or n)"] }, - { line_regex = ['(?i)^\s*(?:→\s*)?run .*\(y\)'] }, -] - -[[rules]] -id = "stop_hint_working" -state = "working" -priority = 100 -region = "bottom_non_empty_lines(6)" -visible_working = true -contains = ["ctrl+c to stop"] - -[[rules]] -id = "background_task_status_working" -state = "working" -priority = 95 -region = "bottom_non_empty_lines(5)" -visible_working = true -line_regex = ['(?i)\b[1-9][0-9]*\s+background\s+tasks?\b'] - -[[rules]] -id = "spinner_working" -state = "working" -priority = 90 -region = "bottom_non_empty_lines(8)" -visible_working = true -line_regex = ['^\s*(⬡|⬢|[\u2800-\u28FF]+)\s+\p{Alphabetic}+\w*ing\b'] diff --git a/website/agent-detection/devin.toml b/website/agent-detection/devin.toml deleted file mode 100644 index c9564f7c..00000000 --- a/website/agent-detection/devin.toml +++ /dev/null @@ -1,86 +0,0 @@ -id = "devin" -version = "2026.06.15.1" -min_engine_version = 1 -updated_at = "2026-06-15T00:00:00Z" -aliases = ["devin-cli", "devin cli"] - -[[rules]] -id = "workspace_trust_prompt" -state = "blocked" -priority = 300 -region = "bottom_non_empty_lines(8)" -visible_blocker = true -contains = [ - "do you trust the authors of this directory?", - "with untrusted content.", - "yes, trust ", -] - -[[rules]] -id = "permission_prompt" -state = "blocked" -priority = 290 -region = "bottom_non_empty_lines(8)" -visible_blocker = true -contains = ["approve once", "select", "confirm", "esc cancel"] - -[[rules]] -id = "running_tools_footer" -state = "working" -priority = 200 -region = "bottom_non_empty_lines(8)" -visible_working = true -contains = ["running tools", "esc to interrupt"] -not = [ - { contains = ["approve once", "esc cancel"] }, -] - -[[rules]] -id = "guide_while_working" -state = "working" -priority = 190 -region = "bottom_non_empty_lines(6)" -visible_working = true -contains = ["guide devin while it works"] -not = [ - { contains = ["approve once", "esc cancel"] }, -] - -[[rules]] -id = "tool_reading_timeout" -state = "working" -priority = 180 -region = "bottom_non_empty_lines(8)" -visible_working = true -contains = ["reading shell ", "timeout:"] -not = [ - { contains = ["approve once", "esc cancel"] }, -] - -[[rules]] -id = "welcome_prompt_footer" -state = "idle" -priority = 120 -region = "bottom_non_empty_lines(8)" -visible_idle = true -contains = ["ask devin to build", "features, fix bugs", "your code"] -line_regex = ['^\s*❭ Ask Devin to build'] -not = [ - { contains = ["approve once", "esc cancel"] }, - { contains = ["running tools", "esc to interrupt"] }, - { contains = ["guide devin while it works"] }, -] - -[[rules]] -id = "live_prompt_footer" -state = "idle" -priority = 100 -region = "bottom_non_empty_lines(6)" -visible_idle = true -contains = ["context:"] -line_regex = ['^\s*❭'] -not = [ - { contains = ["approve once", "esc cancel"] }, - { contains = ["running tools", "esc to interrupt"] }, - { contains = ["guide devin while it works"] }, -] diff --git a/website/agent-detection/droid.toml b/website/agent-detection/droid.toml deleted file mode 100644 index c41d71b4..00000000 --- a/website/agent-detection/droid.toml +++ /dev/null @@ -1,48 +0,0 @@ -id = "droid" -version = "2026.06.10.1" -min_engine_version = 1 -updated_at = "2026-06-10T00:00:00Z" - -[[rules]] -id = "execute_selection_blocker" -state = "blocked" -priority = 300 -region = "whole_recent" -visible_blocker = true -contains = ["enter to select", "esc to cancel"] -any = [ - { contains = ["↑↓ to navigate"] }, - { contains = ["use ↑↓ to navigate"] }, -] -all = [ - { any = [{ contains = ["> yes, allow"] }, { contains = ["> no, cancel"] }] }, -] - -[[rules]] -id = "selection_menu_blocker" -state = "blocked" -priority = 290 -region = "bottom_non_empty_lines(8)" -visible_blocker = true -contains = ["enter select", "esc cancel"] -any = [ - { contains = ["↑/↓ navigate"] }, - { contains = ["↑↓ navigate"] }, -] - -[[rules]] -id = "spinner_stop_working" -state = "working" -priority = 110 -region = "whole_recent" -visible_working = true -contains = ["esc to stop"] -line_regex = ['^\s*[\u2800-\u28FF]'] - -[[rules]] -id = "stop_hint_working" -state = "working" -priority = 100 -region = "whole_recent" -visible_working = true -contains = ["esc to stop"] diff --git a/website/agent-detection/gemini.toml b/website/agent-detection/gemini.toml deleted file mode 100644 index 9d7a28e1..00000000 --- a/website/agent-detection/gemini.toml +++ /dev/null @@ -1,25 +0,0 @@ -id = "gemini" -version = "2026.06.10.1" -min_engine_version = 1 -updated_at = "2026-06-10T00:00:00Z" - -[[rules]] -id = "apply_or_allow_change" -state = "blocked" -priority = 300 -region = "whole_recent" -visible_blocker = true -any = [ - { contains = ["│ Apply this change"] }, - { contains = ["│ Allow execution"] }, - { all = [{ contains = ["yes"] }, { any = [{ contains = ["waiting for user confirmation"] }, { contains = ["│ Do you want to proceed"] }, { contains = ["do you want to proceed?"] }] }] }, - { line_regex = ['(?i)^\s*❯.*(yes|allow)'] }, -] - -[[rules]] -id = "esc_cancel_working" -state = "working" -priority = 100 -region = "whole_recent" -visible_working = true -contains = ["esc to cancel"] diff --git a/website/agent-detection/github-copilot.toml b/website/agent-detection/github-copilot.toml deleted file mode 100644 index 57fafdd8..00000000 --- a/website/agent-detection/github-copilot.toml +++ /dev/null @@ -1,45 +0,0 @@ -id = "copilot" -version = "2026.08.29.1" -min_engine_version = 1 -updated_at = "2026-08-29T00:00:00Z" -aliases = ["github-copilot", "ghcs"] - -[[rules]] -id = "selection_blocker" -state = "blocked" -priority = 300 -region = "whole_recent" -visible_blocker = true -all = [ - { any = [ - { contains = ["esc to cancel"] }, - { contains = ["esc cancel"] }, - ] }, - { any = [ - { contains = ["enter to select"] }, - { contains = ["enter to confirm"] }, - { contains = ["enter to submit"] }, - { contains = ["enter accept"] }, - ] }, -] - -[[rules]] -id = "background_agents_working" -state = "working" -priority = 110 -region = "bottom_non_empty_lines(6)" -visible_working = true -line_regex = ['^\s*◎\s+Waiting for background agents(?:\s|·|$)'] - -[[rules]] -id = "working_cancel_hint" -state = "working" -priority = 100 -region = "whole_recent" -visible_working = true -any = [ - { contains = ["esc to cancel"] }, - { contains = ["esc cancel"] }, - { contains = ["esc again to cancel"] }, - { contains = ["esc interrupt"] } -] diff --git a/website/agent-detection/grok.toml b/website/agent-detection/grok.toml deleted file mode 100644 index 996cf377..00000000 --- a/website/agent-detection/grok.toml +++ /dev/null @@ -1,153 +0,0 @@ -id = "grok" -version = "2026.07.16.1" -min_engine_version = 2 -updated_at = "2026-07-16T00:00:00Z" -aliases = ["grok-build"] - -# Evidence: Grok Build 0.2.101 source and live pane reads. -# -# Grok emits OSC 0 titles by default. Idle is "grok" or -# "<session> - grok". During a turn, the configured title gains a braille -# spinner and activity text. Permission prompts add "⚠ Action Required"; -# that prefix blinks while the terminal is unfocused, so visible blocker -# rules outrank the generic non-idle title rule. -# -# Grok also emits OSC 9;4 progress on supported terminals. Herdr retains the -# payload after "9;": "4;1;-1" while busy and "4;0;0" when idle. -# -# Working turns render one live status line directly above the prompt box: -# "⠧ Waiting on subagent… 2.8s 13s ⇣29.7k [stop]" -# "⠴ Explore /tmp/… + 1 more… 5.6s 19s ⇣29.7k [stop]" -# with a braille spinner and a trailing [stop] chip, plus an Esc:cancel -# footer hint. Permission prompts and ask-user-question dialogs replace the -# spinner with "◆" and draw a "┃"-guttered option list: -# "┃ 2 (○) Yes, proceed" -# "┃ z (○) Type your answer here" -# with footer hints "1/3:select │ Ctrl+o:yolo │ Ctrl+c:cancel" (permission) -# or "Esc:unselect │ Tab:scrollback │ Shift+x:dismiss" (question dialog). -# Idle footers end with "Ctrl+.:shortcuts" and never contain "Esc:cancel". -# The startup splash draws its logo with braille characters, so working -# rules must anchor on the [stop] chip, not on a bare spinner glyph. - -[[rules]] -id = "osc_title_blocked" -state = "blocked" -priority = 1300 -region = "osc_title" -visible_blocker = true -contains = ["Action Required"] - -[[rules]] -id = "option_dialog_blocked" -state = "blocked" -priority = 1200 -region = "whole_recent" -visible_blocker = true -line_regex = ['^\s*┃\s+[0-9a-z]+\s+\([●○]\)\s'] - -[[rules]] -id = "permission_hints_blocked" -state = "blocked" -priority = 1190 -region = "bottom_non_empty_lines(2)" -visible_blocker = true -contains = [":select", "ctrl+o:yolo", "ctrl+c:cancel"] - -[[rules]] -id = "question_dialog_hints_blocked" -state = "blocked" -priority = 1185 -region = "bottom_non_empty_lines(2)" -visible_blocker = true -contains = ["tab:scrollback", "shift+x:dismiss"] - -# Pre-0.2.x permission UI kept for older Grok Build releases. -[[rules]] -id = "permission_scope_selector" -state = "blocked" -priority = 1180 -region = "whole_recent" -visible_blocker = true -contains = ["yes, proceed", "no, reject"] -any = [ - { contains = ["use ← → to choose permission whitelist scope"] }, - { contains = ["←/→:scope"] }, -] - -[[rules]] -id = "osc_progress_working" -state = "working" -priority = 1150 -region = "osc_progress" -visible_working = true -regex = ['^4;1;-1$'] - -[[rules]] -id = "osc_title_idle" -state = "idle" -priority = 1100 -region = "osc_title" -visible_idle = true -regex = ['(?:^| - )grok$'] -not = [ - { regex = ['[\x{2800}-\x{28FF}]'] }, -] - -# After known idle titles are excluded, any other non-empty Grok title is -# active. OSC progress remains authoritative when a custom title omits the -# spinner but the terminal supports progress reporting. -[[rules]] -id = "osc_title_working" -state = "working" -priority = 1000 -region = "osc_title" -visible_working = true -regex = ['\S'] - -[[rules]] -id = "osc_progress_idle" -state = "idle" -priority = 950 -region = "osc_progress" -visible_idle = true -regex = ['^4;0;0$'] - -[[rules]] -id = "spinner_status_working" -state = "working" -priority = 200 -region = "whole_recent" -visible_working = true -line_regex = ['^\s*[\x{2801}-\x{28FF}]\s.*\[stop\]\s*$'] - -[[rules]] -id = "esc_cancel_hints_working" -state = "working" -priority = 190 -region = "bottom_non_empty_lines(2)" -visible_working = true -contains = ["esc:cancel", "ctrl+.:shortcuts"] - -# Pre-0.2.x working chrome kept for older Grok Build releases. -[[rules]] -id = "waiting_tool_working" -state = "working" -priority = 120 -region = "whole_recent" -visible_working = true -any = [ - { all = [{ contains = ["ctrl+c:cancel", "ctrl+enter:interject"] }, { contains = ["waiting"] }] }, - { line_regex = ['^\s*[\x{2801}-\x{28FF}]\s+(Run|Read|Search|List)\b'] }, -] - -[[rules]] -id = "prompt_hints_idle" -state = "idle" -priority = 100 -region = "bottom_non_empty_lines(2)" -visible_idle = true -contains = ["ctrl+.:shortcuts"] -not = [ - { contains = ["esc:cancel"] }, - { contains = ["ctrl+c:cancel"] }, -] diff --git a/website/agent-detection/hermes.toml b/website/agent-detection/hermes.toml deleted file mode 100644 index 17542184..00000000 --- a/website/agent-detection/hermes.toml +++ /dev/null @@ -1,102 +0,0 @@ -id = "hermes" -version = "2026.07.24.1" -min_engine_version = 2 -updated_at = "2026-07-24T19:12:54Z" -aliases = ["hermes-agent"] - -[[rules]] -id = "osc_title_blocked" -state = "blocked" -priority = 1100 -region = "osc_title" -visible_blocker = true -regex = ['^⚠[\u{fe0e}\u{fe0f}]?(?:\s|$)'] - -[[rules]] -id = "osc_title_working" -state = "working" -priority = 1050 -region = "osc_title" -visible_working = true -regex = ['^⏳[\u{fe0e}\u{fe0f}]?(?:\s|$)'] - -[[rules]] -id = "dangerous_command_approval" -state = "blocked" -priority = 900 -region = "bottom_non_empty_lines(14)" -visible_blocker = true -any = [ - { contains = ["dangerous"] }, - { contains = ["approval"] }, - { contains = ["allow once", "deny"] }, - { line_regex = ['(?i)^\s*[▸>]?\s*1\.\s*allow'] }, -] -all = [ - { any = [{ contains = ["enter confirm"] }, { contains = ["enter to confirm"] }, { contains = ["↑/↓ to select"] }, { contains = ["show full command"] }] }, -] - -[[rules]] -id = "clarification_prompt" -state = "blocked" -priority = 900 -region = "bottom_non_empty_lines(14)" -visible_blocker = true -any = [ - { contains = ["hermes needs your"] }, - { line_regex = ['^\s*ask\s+\S'] }, - { contains = ["type your answer"] }, -] -all = [ - { any = [{ contains = ["enter confirm"] }, { contains = ["enter to confirm"] }, { contains = ["enter send"] }, { contains = ["press enter"] }, { contains = ["↑/↓ select"] }, { contains = ["↑/↓ to select"] }, { contains = ["other (type"] }] }, -] - -[[rules]] -id = "credential_prompt" -state = "blocked" -priority = 900 -region = "bottom_non_empty_lines(14)" -visible_blocker = true -any = [ - { contains = ["sudo password"] }, - { contains = ["skill setup"] }, - { contains = ["🔑", "for "] }, -] - -[[rules]] -id = "confirmation_prompt" -state = "blocked" -priority = 900 -region = "bottom_non_empty_lines(14)" -visible_blocker = true -all = [ - { any = [{ contains = ["approve once", "cancel"] }, { contains = ["start a new session", "keep going"] }] }, - { any = [{ contains = ["enter to confirm"] }, { contains = ["enter confirm"] }, { contains = ["type 1/2/3"] }, { contains = ["y/n quick"] }] }, -] - -[[rules]] -id = "interrupt_status_working" -state = "working" -priority = 950 -region = "bottom_non_empty_lines(5)" -visible_working = true -any = [ - { contains = ["msg=interrupt"] }, - { contains = ["ctrl+c to interrupt"] }, -] - -[[rules]] -id = "classic_cancel_working" -state = "working" -priority = 500 -region = "bottom_non_empty_lines(5)" -visible_working = true -contains = ["ctrl+c cancel"] - -[[rules]] -id = "osc_title_idle" -state = "idle" -priority = 100 -region = "osc_title" -visible_idle = true -regex = ['^✓[\u{fe0e}\u{fe0f}]?(?:\s|$)'] diff --git a/website/agent-detection/index.toml b/website/agent-detection/index.toml deleted file mode 100644 index f44a8306..00000000 --- a/website/agent-detection/index.toml +++ /dev/null @@ -1,81 +0,0 @@ -schema_version = 1 - -[[agents]] -id = "amp" -path = "amp.toml" - -[[agents]] -id = "agy" -path = "antigravity.toml" - -[[agents]] -id = "claude" -path = "claude.toml" - -[[agents]] -id = "cline" -path = "cline.toml" - -[[agents]] -id = "codex" -path = "codex.toml" - -[[agents]] -id = "cursor" -path = "cursor.toml" - -[[agents]] -id = "devin" -path = "devin.toml" - -[[agents]] -id = "droid" -path = "droid.toml" - -[[agents]] -id = "gemini" -path = "gemini.toml" - -[[agents]] -id = "grok" -path = "grok.toml" - -[[agents]] -id = "hermes" -path = "hermes.toml" - -[[agents]] -id = "kilo" -path = "kilo.toml" - -[[agents]] -id = "kimi" -path = "kimi.toml" - -[[agents]] -id = "kiro" -path = "kiro.toml" - -[[agents]] -id = "maki" -path = "maki.toml" - -[[agents]] -id = "opencode" -path = "opencode.toml" - -[[agents]] -id = "pi" -path = "pi.toml" - -[[agents]] -id = "qodercli" -path = "qodercli.toml" - -[[agents]] -id = "qwen" -path = "qwen.toml" - -[[agents]] -id = "copilot" -path = "github-copilot.toml" diff --git a/website/agent-detection/kilo.toml b/website/agent-detection/kilo.toml deleted file mode 100644 index 4ef004e1..00000000 --- a/website/agent-detection/kilo.toml +++ /dev/null @@ -1,24 +0,0 @@ -id = "kilo" -version = "2026.06.10.1" -min_engine_version = 1 -updated_at = "2026-06-10T00:00:00Z" -aliases = ["kilo-code", "kilo code", "herdr:kilo"] - -[[rules]] -id = "opencode_permission" -state = "blocked" -priority = 300 -region = "whole_recent" -visible_blocker = true -any = [ - { contains = ["△ Permission required"] }, - { contains = ["esc dismiss"], any = [{ contains = ["enter confirm"] }, { contains = ["enter submit"] }, { contains = ["enter toggle"] }], all = [{ any = [{ contains = ["↑↓ select"] }, { contains = ["⇆ tab"] }] }] }, -] - -[[rules]] -id = "esc_interrupt_working" -state = "working" -priority = 100 -region = "whole_recent" -visible_working = true -contains = ["esc interrupt"] diff --git a/website/agent-detection/kimi.toml b/website/agent-detection/kimi.toml deleted file mode 100644 index b4d0100f..00000000 --- a/website/agent-detection/kimi.toml +++ /dev/null @@ -1,77 +0,0 @@ -id = "kimi" -version = "2026.06.10.1" -min_engine_version = 1 -updated_at = "2026-06-10T00:00:00Z" -aliases = ["kimi-code", "kimi code"] - -[[rules]] -id = "current_approval_panel" -state = "blocked" -priority = 400 -region = "whole_recent" -visible_blocker = true -contains = ["↵ confirm"] -any = [ - { contains = ["run this command?"] }, - { contains = ["write this file?"] }, - { contains = ["apply these edits?"] }, - { contains = ["stop this task?"] }, - { contains = ["ready to build with this plan?"] }, - { line_regex = ['(?i)^\s*▶?\s*approve .*\?$'] }, -] -all = [ - { contains = [" choose"] }, - { any = [{ contains = ["approve"] }, { contains = ["reject"] }, { contains = ["revise"] }] }, -] - -[[rules]] -id = "question_panel" -state = "blocked" -priority = 390 -region = "whole_recent" -visible_blocker = true -contains = ["↑↓ select", "esc cancel"] -line_regex = ['^\s*question\s*$', '^\s*\? '] -any = [ - { contains = ["↵ choose"] }, - { contains = ["↵ toggle"] }, - { contains = ["↵ save"] }, -] - -[[rules]] -id = "legacy_approval_panel" -state = "blocked" -priority = 300 -region = "whole_recent" -contains = ["requesting approval", "reject"] -any = [ - { contains = ["approve once"] }, - { contains = ["approve for this session"] }, -] -all = [ - { any = [{ contains = ["1/2/3/4 choose"] }, { contains = ["↵ confirm"] }] }, -] - -[[rules]] -id = "background_agent_status_working" -state = "working" -priority = 120 -region = "bottom_non_empty_lines(3)" -visible_working = true -line_regex = ['(?i)\bkimi[-\w.]*\s+thinking\b.*\[[1-9][0-9]*\s+agents?\s+running\]'] - -[[rules]] -id = "moon_spinner_working" -state = "working" -priority = 100 -region = "whole_recent" -visible_working = true -line_regex = ['^\s*(🌕|🌖|🌗|🌘|🌑|🌒|🌓|🌔)\s*$'] - -[[rules]] -id = "braille_spinner_working" -state = "working" -priority = 90 -region = "whole_recent" -visible_working = true -line_regex = ['(?i)^\s*[\u2800-\u28FF]+\s*(thinking\.\.\.|working\.\.\.|using )'] diff --git a/website/agent-detection/kiro.toml b/website/agent-detection/kiro.toml deleted file mode 100644 index 59ac0a06..00000000 --- a/website/agent-detection/kiro.toml +++ /dev/null @@ -1,63 +0,0 @@ -id = "kiro" -version = "2026.08.01.1" -min_engine_version = 1 -updated_at = "2026-08-01T00:00:00Z" -aliases = ["kiro-cli"] - -[[rules]] -id = "tool_approval" -state = "blocked" -priority = 300 -region = "whole_recent" -visible_blocker = true -contains = ["requires approval"] -any = [ - { contains = ["yes, single permission"] }, - { contains = ["trust, always allow"] }, - { contains = ["no (tab to edit)"] }, - { contains = ["esc to close"] }, -] - -[[rules]] -id = "subagent_approval" -state = "blocked" -priority = 290 -region = "whole_recent" -visible_blocker = true -contains = ["pending from subagents"] -any = [ - { contains = ["tool approval"] }, - { contains = ["tool approvals"] }, -] -all = [ - { any = [{ contains = ["approve all pending"] }, { contains = ["configure individually"] }, { contains = ["exit (cancel subagents)"] }] }, -] - -[[rules]] -id = "prompt_idle" -state = "idle" -priority = 200 -region = "bottom_non_empty_lines(5)" -visible_idle = true -contains = ["ask a question or describe a task", "/copy to clipboard"] -not = [ - { contains = ["kiro is working"] }, - { contains = ["esc to cancel"] }, -] - -[[rules]] -id = "kiro_working_marker" -state = "working" -priority = 100 -region = "whole_recent" -visible_working = true -contains = ["kiro is working"] - -[[rules]] -id = "tool_spinner_working" -state = "working" -priority = 90 -region = "whole_recent" -visible_working = true -contains = ["esc to cancel"] -line_regex = ['^\s*(◔|◑|◕|●)\s+\p{Alphabetic}'] diff --git a/website/agent-detection/maki.toml b/website/agent-detection/maki.toml deleted file mode 100644 index 5c58404a..00000000 --- a/website/agent-detection/maki.toml +++ /dev/null @@ -1,68 +0,0 @@ -id = "maki" -version = "2026.07.09.2" -min_engine_version = 1 -updated_at = "2026-07-09T00:00:00Z" - -# Maki renders a persistent one-line status bar on the bottom row. It starts -# with the mode label "[BUILD]", "[PLAN]", or "[BASH]" when idle and gets a -# leading braille spinner cell while the agent is streaming. Permission -# requests and the plan-complete form replace the input box above the status -# bar. Maki does not set OSC title or OSC 9;4 progress. - -[[rules]] -id = "permission_prompt" -state = "blocked" -priority = 980 -region = "whole_recent" -visible_blocker = true -contains = ["permission required"] -any = [ - { contains = ["y allow", "n deny"] }, - { contains = ["confirm allow"] }, - { contains = ["confirm deny"] }, - { contains = ["enter deny", "esc cancel"] }, -] - -[[rules]] -id = "plan_complete_form" -state = "blocked" -priority = 970 -region = "whole_recent" -visible_blocker = true -contains = ["plan complete", "enter confirm"] -any = [ - { contains = ["space toggle parallel"] }, - { contains = ["edit plan"] }, -] - -[[rules]] -id = "status_bar_spinner_working" -state = "working" -priority = 900 -region = "bottom_non_empty_lines(1)" -visible_working = true -line_regex = ['^( [\x{2800}-\x{28FF}]){1,2} \[(BUILD|PLAN|BASH)\]'] - -[[rules]] -id = "status_bar_idle" -state = "idle" -priority = 850 -region = "bottom_non_empty_lines(1)" -visible_idle = true -line_regex = ['^ \[(BUILD|PLAN|BASH)\]'] - -# On narrow panes the right side of the status bar overwrites the mode label, -# so fall back to the prompt chevron above the input box border. The not-gates -# keep this from matching the streaming placeholder or a status bar that still -# shows the spinner. -[[rules]] -id = "prompt_box_idle" -state = "idle" -priority = 840 -region = "bottom_non_empty_lines(3)" -visible_idle = true -line_regex = ['^❯ '] -not = [ - { contains = ["queue another prompt"] }, - { line_regex = ['^( [\x{2800}-\x{28FF}]){1,2} '] }, -] diff --git a/website/agent-detection/opencode.toml b/website/agent-detection/opencode.toml deleted file mode 100644 index 52452383..00000000 --- a/website/agent-detection/opencode.toml +++ /dev/null @@ -1,37 +0,0 @@ -id = "opencode" -version = "2026.06.10.1" -min_engine_version = 1 -updated_at = "2026-06-10T00:00:00Z" -aliases = ["open-code", "herdr:opencode"] - -[[rules]] -id = "permission_required" -state = "blocked" -priority = 300 -region = "whole_recent" -visible_blocker = true -any = [ - { contains = ["△ Permission required"] }, - { contains = ["esc dismiss"], any = [{ contains = ["enter confirm"] }, { contains = ["enter submit"] }, { contains = ["enter toggle"] }], all = [{ any = [{ contains = ["↑↓ select"] }, { contains = ["⇆ tab"] }] }] }, -] - -[[rules]] -id = "interrupt_hint_working" -state = "working" -priority = 110 -region = "whole_recent" -visible_working = true -any = [ - { contains = ["esc to interrupt"] }, - { contains = ["ctrl+c to interrupt"] }, - { contains = ["press esc to interrupt"] }, - { line_regex = ['(?i).*opencode.*esc (again to )?interrupt'] }, -] - -[[rules]] -id = "progress_bar_working" -state = "working" -priority = 100 -region = "whole_recent" -visible_working = true -regex = ['(■|⬝){4,}'] diff --git a/website/agent-detection/pi.toml b/website/agent-detection/pi.toml deleted file mode 100644 index a58d30e9..00000000 --- a/website/agent-detection/pi.toml +++ /dev/null @@ -1,13 +0,0 @@ -id = "pi" -version = "2026.06.10.1" -min_engine_version = 1 -updated_at = "2026-06-10T00:00:00Z" -aliases = ["herdr:pi"] - -[[rules]] -id = "working_literal" -state = "working" -priority = 100 -region = "whole_recent" -visible_working = true -contains = ["Working..."] diff --git a/website/agent-detection/qodercli.toml b/website/agent-detection/qodercli.toml deleted file mode 100644 index 51ca805e..00000000 --- a/website/agent-detection/qodercli.toml +++ /dev/null @@ -1,38 +0,0 @@ -id = "qodercli" -version = "2026.06.10.1" -min_engine_version = 1 -updated_at = "2026-06-10T00:00:00Z" -aliases = ["qoderclicn", "qoder", "qodercn"] - -[[rules]] -id = "confirmation_or_input_blocker" -state = "blocked" -priority = 300 -region = "whole_recent" -visible_blocker = true -any = [ - { contains = ["waiting for user confirmation"], any = [{ contains = ["yes"] }, { contains = ["no"] }, { contains = ["allow"] }, { contains = ["reject"] }] }, - { contains = ["awaiting approval"], any = [{ contains = ["allow"] }, { contains = ["reject"] }] }, - { contains = ["permission required"] }, - { contains = ["allow once or always?"] }, - { contains = ["asking user"] }, - { contains = ["enter your response"] }, - { contains = ["review your answers:"] }, - { contains = ["shell awaiting input"] }, -] - -[[rules]] -id = "cancel_hint_working" -state = "working" -priority = 100 -region = "whole_recent" -visible_working = true -contains = ["(esc to cancel,"] - -[[rules]] -id = "spinner_working" -state = "working" -priority = 90 -region = "whole_recent" -visible_working = true -line_regex = ['^\s*[\u2800-\u28FF]\s+.*\p{Alphabetic}'] diff --git a/website/agent-detection/qwen.toml b/website/agent-detection/qwen.toml deleted file mode 100644 index bbed2371..00000000 --- a/website/agent-detection/qwen.toml +++ /dev/null @@ -1,119 +0,0 @@ -id = "qwen" -version = "2026.08.14.1" -min_engine_version = 2 -updated_at = "2026-08-14T00:00:00Z" -aliases = ["qwen-code", "qwen code"] - -# Qwen Code keeps its composer visible while responding, so the prompt box is -# not idle evidence by itself. Its status-prefixed terminal titles are the -# primary locale-independent signals when ui.showStatusInTitle is enabled. -# Exact screen fallbacks cover built-in locales and narrow terminals. OSC 9;4 -# is supplemental because Qwen emits it only while a tool is executing and -# only in terminals that advertise progress support. - -[[rules]] -id = "osc_title_blocked" -state = "blocked" -priority = 1200 -region = "osc_title" -visible_blocker = true -regex = ['^\x{2733}\x{FE0E}? '] - -[[rules]] -id = "osc_title_working" -state = "working" -priority = 1100 -region = "osc_title" -visible_working = true -regex = ['^\x{25D0}\x{FE0E}? '] - -[[rules]] -id = "waiting_for_confirmation" -state = "blocked" -priority = 1000 -region = "bottom_non_empty_lines(20)" -visible_blocker = true -line_regex = ['^\s*⠏\s+.*\.\.\.\s*$'] -any = [ - { contains = ["Waiting for user confirmation..."] }, - { contains = ["等待用户确认..."] }, - { contains = ["等待用戶確認..."] }, - { contains = ["Warten auf Benutzerbestätigung..."] }, - { contains = ["En attente de la confirmation de l'utilisateur..."] }, - { contains = ["ユーザーの確認を待っています..."] }, - { contains = ["Aguardando confirmação do usuário..."] }, - { contains = ["Ожидание подтверждения от пользователя..."] }, - { contains = ["Esperant la confirmació de l'usuari..."] }, -] - -[[rules]] -id = "tool_confirmation" -state = "blocked" -priority = 990 -region = "bottom_non_empty_lines(20)" -visible_blocker = true -contains = ["yes, allow once"] -any = [ - { contains = ["apply this change?"] }, - { contains = ["allow execution of:"] }, - { contains = ["allow execution of mcp tool"] }, - { contains = ["do you want to proceed?"] }, - { contains = ["shell command execution"] }, -] - -[[rules]] -id = "question_dialog" -state = "blocked" -priority = 980 -region = "bottom_non_empty_lines(20)" -visible_blocker = true -line_regex = [ - '^\s*[❯›]\s*(?:\[(?: |✓)\]\s*)?\d+\.\s+', - '^\s*↑/↓\s*:.*(?:Enter|Return)\s*:', -] - -[[rules]] -id = "folder_trust_dialog" -state = "blocked" -priority = 970 -region = "bottom_non_empty_lines(20)" -visible_blocker = true -contains = ["do you trust this folder?", "trust folder (", "don't trust (esc)"] - -[[rules]] -id = "cancel_hint_working" -state = "working" -priority = 900 -region = "bottom_non_empty_lines(8)" -visible_working = true -line_regex = ['^\s*(?:[⠁-⣿]|\.{1,2})\s+.*\(\d+(?:m(?:\s+\d+s)?|s).*\s·\sesc to cancel\)\s*$'] - -[[rules]] -id = "narrow_cancel_hint_working" -state = "working" -priority = 890 -region = "bottom_non_empty_lines(8)" -visible_working = true -line_regex = ['^\s*\(\d+(?:m(?:\s+\d+s)?|s)\s·\sesc to cancel\)\s*$'] - -[[rules]] -id = "osc_tool_progress_working" -state = "working" -priority = 850 -region = "osc_progress" -visible_working = true -regex = ['^4;3(?:;|$)'] - -[[rules]] -id = "composer_idle" -state = "idle" -priority = 100 -region = "bottom_non_empty_lines(30)" -visible_idle = true -line_regex = ['^\s*>\s*(?:type\s*)?.*$'] -any = [ - { contains = ["type your message"] }, - { contains = ["your message or @path/to/file"] }, - { contains = ["@path/to/file"] }, - { contains = ["type", "mes", "sage", "@pat", "h/to", "/fil"] }, -] |
