commandmate 0.44.1 → 0.44.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.next/BUILD_ID +1 -1
- package/.next/app-build-manifest.json +169 -169
- package/.next/app-path-routes-manifest.json +35 -35
- package/.next/build-manifest.json +2 -2
- package/.next/prerender-manifest.json +3 -3
- package/.next/react-loadable-manifest.json +0 -6
- package/.next/required-server-files.json +1 -1
- package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/server/app/api/agents/update/route.js +1 -1
- package/.next/server/app/api/agents/update/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/agents/versions/route.js +1 -1
- package/.next/server/app/api/agents/versions/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/app/release-notes/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/app/update/route.js +2 -2
- package/.next/server/app/api/app/update/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/app/update-check/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/auth/login/route.js +1 -1
- package/.next/server/app/api/auth/login/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/auth/logout/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/auth/status/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/capabilities/route.js +1 -1
- package/.next/server/app/api/capabilities/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/daily-summary/route.js +1 -1
- package/.next/server/app/api/daily-summary/route.js.nft.json +1 -1
- package/.next/server/app/api/daily-summary/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/daily-summary/status/route.js +1 -1
- package/.next/server/app/api/daily-summary/status/route.js.nft.json +1 -1
- package/.next/server/app/api/daily-summary/status/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/external-apps/[id]/health/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/external-apps/[id]/route.js +1 -1
- package/.next/server/app/api/external-apps/[id]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/external-apps/route.js +1 -1
- package/.next/server/app/api/external-apps/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/fs/browse/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/fs/recent-paths/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/hooks/agent-event/route.js +2 -2
- package/.next/server/app/api/hooks/agent-event/route.js.nft.json +1 -1
- package/.next/server/app/api/hooks/agent-event/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/hooks/claude-done/route.js +2 -2
- package/.next/server/app/api/hooks/claude-done/route.js.nft.json +1 -1
- package/.next/server/app/api/hooks/claude-done/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/hooks/permission-request/route.js +1 -1
- package/.next/server/app/api/hooks/permission-request/route.js.nft.json +1 -1
- package/.next/server/app/api/hooks/permission-request/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/metrics/vibe/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/ollama/models/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/push/escalation/route.js +1 -1
- package/.next/server/app/api/push/escalation/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/push/subscriptions/route.js +2 -2
- package/.next/server/app/api/push/subscriptions/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/push/vapid/route.js +1 -1
- package/.next/server/app/api/push/vapid/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/relays/[relayId]/cancel/route.js +1 -1
- package/.next/server/app/api/relays/[relayId]/cancel/route.js.nft.json +1 -1
- package/.next/server/app/api/relays/[relayId]/cancel/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/relays/route.js +1 -1
- package/.next/server/app/api/relays/route.js.nft.json +1 -1
- package/.next/server/app/api/relays/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/remote/pair/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/repositories/[id]/route.js +1 -1
- package/.next/server/app/api/repositories/[id]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/repositories/clone/[jobId]/route.js +1 -1
- package/.next/server/app/api/repositories/clone/[jobId]/route.js.nft.json +1 -1
- package/.next/server/app/api/repositories/clone/[jobId]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/repositories/clone/route.js +1 -1
- package/.next/server/app/api/repositories/clone/route.js.nft.json +1 -1
- package/.next/server/app/api/repositories/clone/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/repositories/excluded/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/repositories/restore/route.js +1 -1
- package/.next/server/app/api/repositories/restore/route.js.nft.json +1 -1
- package/.next/server/app/api/repositories/restore/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/repositories/route.js +1 -1
- package/.next/server/app/api/repositories/route.js.nft.json +1 -1
- package/.next/server/app/api/repositories/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/repositories/scan/route.js +1 -1
- package/.next/server/app/api/repositories/scan/route.js.nft.json +1 -1
- package/.next/server/app/api/repositories/scan/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/repositories/sync/route.js +1 -1
- package/.next/server/app/api/repositories/sync/route.js.nft.json +1 -1
- package/.next/server/app/api/repositories/sync/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/repositories/validate-path/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/settings/default-agents/route.js +1 -1
- package/.next/server/app/api/settings/default-agents/route.js.nft.json +1 -1
- package/.next/server/app/api/settings/default-agents/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/settings/default-surface-mode/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/sidebar/group-order/route.js +1 -1
- package/.next/server/app/api/sidebar/group-order/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/skills/[id]/route.js +1 -1
- package/.next/server/app/api/skills/[id]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/skills/installations/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/skills/operations/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/skills/reindex/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/skills/route.js +1 -1
- package/.next/server/app/api/skills/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/slash-commands/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/tasks/[taskId]/cancel/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/tasks/[taskId]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/templates/[id]/route.js +2 -2
- package/.next/server/app/api/templates/[id]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/templates/route.js +2 -2
- package/.next/server/app/api/templates/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/verification/runs/[runId]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/verification/runs/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/auto-yes/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/auto-yes/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/auto-yes/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/capture/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/capture/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/capture/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/clear-composer/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/clear-composer/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/clear-composer/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/cli-reference/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/cli-tool/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/cli-tool/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/cmate/schedules/route.js +3 -3
- package/.next/server/app/api/worktrees/[id]/cmate/schedules/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/cmate/schedules/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/current-output/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/current-output/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/current-output/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/direct-input/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/direct-input/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/direct-input/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/env/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/execution-logs/[logId]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/execution-logs/route.js +2 -2
- package/.next/server/app/api/worktrees/[id]/execution-logs/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/execution-logs/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/files/[...path]/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/files/[...path]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/branch/create/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/branch/create/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/branch/delete/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/branch/delete/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/branches/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/checkout/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/checkout/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/commit/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/commit/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/diff/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/fetch/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/fetch/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/log/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/pull/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/pull/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/push/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/push/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/reset/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/reset/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/revert/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/revert/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/show/[commitHash]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/stage/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/stage/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/staged/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/stash/[index]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/stash/apply/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/stash/apply/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/stash/pop/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/stash/pop/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/stash/push/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/stash/push/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/stash/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/status/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/unstage/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/unstage/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/working-diff/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/instances/notes/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/instances/notes/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/instances/opencode/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/instances/opencode/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/instances/opencode/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/interrupt/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/interrupt/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/interrupt/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/kill-session/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/kill-session/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/kill-session/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/logs/[filename]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/logs/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/marp-render/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/marp-render/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/memos/[memoId]/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/memos/[memoId]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/memos/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/memos/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/messages/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/opencode/diff/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/opencode/diff/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/opencode/session/route.js +1 -2
- package/.next/server/app/api/worktrees/[id]/opencode/session/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/opencode/session/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/opencode/share/route.js +1 -2
- package/.next/server/app/api/worktrees/[id]/opencode/share/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/opencode/share/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/prompt-response/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/prompt-response/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/prompt-response/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/resolve-target/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/respond/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/respond/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/respond/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/schedules/[scheduleId]/route.js +2 -2
- package/.next/server/app/api/worktrees/[id]/schedules/[scheduleId]/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/schedules/[scheduleId]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/schedules/active/route.js +2 -2
- package/.next/server/app/api/worktrees/[id]/schedules/active/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/schedules/active/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/schedules/route.js +3 -3
- package/.next/server/app/api/worktrees/[id]/schedules/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/schedules/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/search/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/send/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/send/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/send/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/skills/[skillId]/git-workflow/route.js +3 -3
- package/.next/server/app/api/worktrees/[id]/skills/[skillId]/git-workflow/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/skills/[skillId]/git-workflow/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/skills/[skillId]/install/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/skills/[skillId]/plan/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/skills/[skillId]/plan/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall-plan/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/skills/[skillId]/update/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/skills/[skillId]/update-plan/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/skills/[skillId]/update-plan/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/skills/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/slash-commands/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/slash-commands/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/special-keys/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/special-keys/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/special-keys/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/tasks/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/tasks/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/terminal/route.js +2 -2
- package/.next/server/app/api/worktrees/[id]/terminal/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/terminal/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/timers/history/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/timers/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/timers/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/timers/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/todos/[todoId]/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/todos/[todoId]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/todos/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/todos/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/tree/[...path]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/tree/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/upload/[...path]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/verify/config/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/verify/config/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/verify/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/verify/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/verify/runs/[runId]/cancel/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/verify/runs/[runId]/cancel/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/verify/runs/[runId]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/verify/runs/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/viewed/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/apply-default-agents/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/route.js +1 -1
- package/.next/server/app/api/worktrees/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/route_client-reference-manifest.js +1 -1
- package/.next/server/app/login/page_client-reference-manifest.js +1 -1
- package/.next/server/app/manifest.webmanifest/route_client-reference-manifest.js +1 -1
- package/.next/server/app/more/page_client-reference-manifest.js +1 -1
- package/.next/server/app/offline/page_client-reference-manifest.js +1 -1
- package/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/server/app/proxy/[...path]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/repositories/page_client-reference-manifest.js +1 -1
- package/.next/server/app/review/page_client-reference-manifest.js +1 -1
- package/.next/server/app/sessions/page.js +1 -1
- package/.next/server/app/sessions/page.js.nft.json +1 -1
- package/.next/server/app/sessions/page_client-reference-manifest.js +1 -1
- package/.next/server/app/skills/[skillId]/page_client-reference-manifest.js +1 -1
- package/.next/server/app/skills/installed/page_client-reference-manifest.js +1 -1
- package/.next/server/app/skills/page_client-reference-manifest.js +1 -1
- package/.next/server/app/worktrees/[id]/files/[...path]/page_client-reference-manifest.js +1 -1
- package/.next/server/app/worktrees/[id]/page.js +11 -11
- package/.next/server/app/worktrees/[id]/page.js.nft.json +1 -1
- package/.next/server/app/worktrees/[id]/page_client-reference-manifest.js +1 -1
- package/.next/server/app/worktrees/[id]/terminal/page_client-reference-manifest.js +1 -1
- package/.next/server/app-paths-manifest.json +35 -35
- package/.next/server/chunks/1191.js +2 -2
- package/.next/server/chunks/1210.js +1 -1
- package/.next/server/chunks/1559.js +2 -0
- package/.next/server/chunks/1789.js +1 -0
- package/.next/server/chunks/2119.js +1 -1
- package/.next/server/chunks/2404.js +1 -1
- package/.next/server/chunks/2445.js +1 -1
- package/.next/server/chunks/2460.js +1 -0
- package/.next/server/chunks/2710.js +1 -1
- package/.next/server/chunks/2908.js +1 -0
- package/.next/server/chunks/2980.js +1 -1
- package/.next/server/chunks/3241.js +1 -1
- package/.next/server/chunks/3480.js +1 -1
- package/.next/server/chunks/3718.js +1 -1
- package/.next/server/chunks/4207.js +2 -2
- package/.next/server/chunks/450.js +1 -1
- package/.next/server/chunks/4672.js +5 -0
- package/.next/server/chunks/{9353.js → 4718.js} +2 -2
- package/.next/server/chunks/4837.js +14 -0
- package/.next/server/chunks/5048.js +1 -1
- package/.next/server/chunks/5209.js +1 -0
- package/.next/server/chunks/5595.js +1 -0
- package/.next/server/chunks/5625.js +25 -0
- package/.next/server/chunks/5845.js +1 -0
- package/.next/server/chunks/611.js +1 -1
- package/.next/server/chunks/6130.js +1 -1
- package/.next/server/chunks/6401.js +1 -1
- package/.next/server/chunks/6781.js +1 -1
- package/.next/server/chunks/6793.js +3 -3
- package/.next/server/chunks/7491.js +2 -2
- package/.next/server/chunks/7905.js +1 -1
- package/.next/server/chunks/850.js +1 -0
- package/.next/server/chunks/8543.js +1 -1
- package/.next/server/chunks/8728.js +3 -3
- package/.next/server/chunks/8791.js +1 -1
- package/.next/server/chunks/8800.js +1 -1
- package/.next/server/chunks/8918.js +7 -7
- package/.next/server/chunks/9130.js +1 -5
- package/.next/server/chunks/9390.js +2 -3
- package/.next/server/chunks/9584.js +1 -1
- package/.next/server/chunks/9627.js +6 -6
- package/.next/server/chunks/9731.js +3 -3
- package/.next/server/middleware-manifest.json +5 -5
- package/.next/server/middleware-react-loadable-manifest.js +1 -1
- package/.next/server/pages/500.html +1 -1
- package/.next/server/server-reference-manifest.json +1 -1
- package/.next/static/chunks/{1642-fb2e176aaadbd137.js → 1642-767aed8e7c61ef7f.js} +1 -1
- package/.next/static/chunks/{2407-f1f258d4a1d92620.js → 2407-06d35bb1aa02de80.js} +1 -1
- package/.next/static/chunks/{2619-04bc32f026a0d946.js → 2619-a305ad4810f1393a.js} +1 -1
- package/.next/static/chunks/4727-5d695d71e3fdf97b.js +1 -0
- package/.next/static/chunks/{8165-3853772f6ae1299b.js → 8165-3525fb42f1b4976e.js} +1 -1
- package/.next/static/chunks/app/{layout-da66300cc20244ed.js → layout-0d1750b833f5cc3e.js} +1 -1
- package/.next/static/chunks/app/sessions/page-2af68c63211c751f.js +1 -0
- package/.next/static/chunks/app/worktrees/[id]/page-e36898c3a80e7302.js +1 -0
- package/.next/static/chunks/app/worktrees/[id]/terminal/{page-373ea37b16d930c7.js → page-c601f3b3ece6557e.js} +1 -1
- package/.next/static/css/057f64a65726c439.css +1 -0
- package/.next/trace +13 -13
- package/dist/cli/commands/ask.d.ts.map +1 -1
- package/dist/cli/commands/ask.js +120 -119
- package/dist/cli/commands/attach.d.ts +94 -0
- package/dist/cli/commands/attach.d.ts.map +1 -1
- package/dist/cli/commands/attach.js +145 -7
- package/dist/cli/commands/auto-yes.js +1 -1
- package/dist/cli/commands/capture.d.ts.map +1 -1
- package/dist/cli/commands/capture.js +10 -13
- package/dist/cli/commands/command-target.d.ts +23 -0
- package/dist/cli/commands/command-target.d.ts.map +1 -0
- package/dist/cli/commands/command-target.js +25 -0
- package/dist/cli/commands/instances.d.ts.map +1 -1
- package/dist/cli/commands/instances.js +41 -2
- package/dist/cli/commands/message-dispatch.d.ts +36 -0
- package/dist/cli/commands/message-dispatch.d.ts.map +1 -0
- package/dist/cli/commands/message-dispatch.js +63 -0
- package/dist/cli/commands/reply.d.ts.map +1 -1
- package/dist/cli/commands/reply.js +2 -5
- package/dist/cli/commands/respond.d.ts.map +1 -1
- package/dist/cli/commands/respond.js +3 -6
- package/dist/cli/commands/send.d.ts.map +1 -1
- package/dist/cli/commands/send.js +149 -146
- package/dist/cli/commands/wait.d.ts.map +1 -1
- package/dist/cli/commands/wait.js +608 -416
- package/dist/cli/types/api-responses.d.ts +174 -27
- package/dist/cli/types/api-responses.d.ts.map +1 -1
- package/dist/cli/types/api-responses.js +4 -2
- package/dist/cli/utils/api-client.d.ts +25 -5
- package/dist/cli/utils/api-client.d.ts.map +1 -1
- package/dist/cli/utils/api-client.js +87 -55
- package/dist/cli/utils/server-url.d.ts +1 -0
- package/dist/cli/utils/server-url.d.ts.map +1 -1
- package/dist/cli/utils/server-url.js +7 -0
- package/dist/config/uat-isolation.d.ts +140 -0
- package/dist/config/uat-isolation.d.ts.map +1 -0
- package/dist/config/uat-isolation.js +246 -0
- package/dist/lib/global-state.d.ts +12 -0
- package/dist/lib/global-state.d.ts.map +1 -0
- package/dist/lib/global-state.js +16 -0
- package/dist/lib/polling/auto-yes-suppression-reason.d.ts +33 -0
- package/dist/lib/polling/auto-yes-suppression-reason.d.ts.map +1 -0
- package/dist/lib/polling/auto-yes-suppression-reason.js +2 -0
- package/dist/lib/session/prompt-view.d.ts +228 -0
- package/dist/lib/session/prompt-view.d.ts.map +1 -0
- package/dist/lib/session/prompt-view.js +290 -0
- package/dist/lib/session/status-evidence-type.d.ts +16 -0
- package/dist/lib/session/status-evidence-type.d.ts.map +1 -0
- package/dist/lib/session/status-evidence-type.js +2 -0
- package/dist/lib/tmux/legacy-session-alias.d.ts.map +1 -1
- package/dist/lib/tmux/legacy-session-alias.js +2 -1
- package/dist/server/locales/en/worktree.json +3 -1
- package/dist/server/locales/ja/worktree.json +3 -1
- package/dist/server/server.js +5 -3
- package/dist/server/src/cli/types/api-responses.js +4 -2
- package/dist/server/src/config/cli-tool-timing-config.js +1 -6
- package/dist/server/src/config/uat-isolation.js +246 -0
- package/dist/server/src/lib/assistant-response-saver.js +62 -3
- package/dist/server/src/lib/auto-yes-lifecycle.js +139 -0
- package/dist/server/src/lib/auto-yes-poller.js +465 -160
- package/dist/server/src/lib/auto-yes-state.js +2 -2
- package/dist/server/src/lib/cli-tools/antigravity.js +39 -80
- package/dist/server/src/lib/cli-tools/base.js +151 -0
- package/dist/server/src/lib/cli-tools/codex.js +44 -80
- package/dist/server/src/lib/cli-tools/command-code.js +24 -56
- package/dist/server/src/lib/cli-tools/copilot.js +25 -67
- package/dist/server/src/lib/cli-tools/direct-input.js +8 -0
- package/dist/server/src/lib/cli-tools/gemini.js +23 -73
- package/dist/server/src/lib/cli-tools/opencode-pane-width.js +53 -0
- package/dist/server/src/lib/cli-tools/opencode-v2.js +9 -7
- package/dist/server/src/lib/cli-tools/opencode.js +21 -85
- package/dist/server/src/lib/cli-tools/submit-verified-sender.js +127 -4
- package/dist/server/src/lib/cli-tools/vibe-local.js +21 -66
- package/dist/server/src/lib/detection/cli-patterns.js +374 -3047
- package/dist/server/src/lib/detection/idle-evidence-observation.js +2 -2
- package/dist/server/src/lib/detection/prompt-detect-multiple-choice.js +7 -32
- package/dist/server/src/lib/detection/prompt-detector.js +2 -35
- package/dist/server/src/lib/detection/selection-shape-patterns.js +69 -0
- package/dist/server/src/lib/detection/selection-shape.js +32 -520
- package/dist/server/src/lib/detection/shared/pasted-text.js +41 -0
- package/dist/server/src/lib/detection/shared/shell-pane-command.js +16 -0
- package/dist/server/src/lib/detection/shared/strip-box-drawing.js +25 -0
- package/dist/server/src/lib/detection/status-detector.js +1 -1
- package/dist/server/src/lib/detection/tools/antigravity/detect.js +12 -60
- package/dist/server/src/lib/detection/tools/antigravity/dialog.js +2 -15
- package/dist/server/src/lib/detection/tools/antigravity/live-region.js +39 -0
- package/dist/server/src/lib/detection/tools/antigravity/patterns.js +286 -0
- package/dist/server/src/lib/detection/tools/claude/detect.js +11 -17
- package/dist/server/src/lib/detection/tools/claude/live-region.js +26 -0
- package/dist/server/src/lib/detection/tools/claude/patterns.js +264 -4
- package/dist/server/src/lib/detection/tools/claude/prompt.js +2 -10
- package/dist/server/src/lib/detection/tools/codex/cli-patterns.js +1 -1
- package/dist/server/src/lib/detection/tools/codex/detect.js +71 -130
- package/dist/server/src/lib/detection/tools/codex/live-region.js +104 -0
- package/dist/server/src/lib/detection/tools/codex/patterns.js +855 -0
- package/dist/server/src/lib/detection/tools/codex/prompt.js +2 -10
- package/dist/server/src/lib/detection/tools/command-code/detect.js +19 -50
- package/dist/server/src/lib/detection/tools/command-code/dialog.js +2 -18
- package/dist/server/src/lib/detection/tools/command-code/live-region.js +36 -0
- package/dist/server/src/lib/detection/tools/command-code/patterns.js +234 -0
- package/dist/server/src/lib/detection/tools/command-code/selection-shape.js +461 -0
- package/dist/server/src/lib/detection/tools/context-above.js +20 -0
- package/dist/server/src/lib/detection/tools/copilot/detect.js +13 -35
- package/dist/server/src/lib/detection/tools/copilot/live-region.js +52 -0
- package/dist/server/src/lib/detection/tools/copilot/patterns.js +640 -0
- package/dist/server/src/lib/detection/tools/copilot/prompt.js +2 -10
- package/dist/server/src/lib/detection/tools/frame.js +36 -2
- package/dist/server/src/lib/detection/tools/gemini/patterns.js +29 -0
- package/dist/server/src/lib/detection/tools/live-region-specs.js +31 -0
- package/dist/server/src/lib/detection/tools/live-region.js +204 -0
- package/dist/server/src/lib/detection/tools/opencode/detect.js +11 -49
- package/dist/server/src/lib/detection/tools/opencode/live-region.js +24 -0
- package/dist/server/src/lib/detection/tools/opencode/patterns.js +508 -0
- package/dist/server/src/lib/detection/tools/opencode-gutter-live-region.js +72 -0
- package/dist/server/src/lib/detection/tools/opencode-v2/detect.js +10 -42
- package/dist/server/src/lib/detection/tools/opencode-v2/live-region.js +24 -0
- package/dist/server/src/lib/detection/tools/opencode-v2/patterns.js +63 -0
- package/dist/server/src/lib/detection/tools/run-detection.js +31 -50
- package/dist/server/src/lib/detection/tools/verdicts.js +59 -0
- package/dist/server/src/lib/detection/tools/vibe-local/patterns.js +20 -0
- package/dist/server/src/lib/detection/truncate-raw-content.js +38 -0
- package/dist/server/src/lib/detection/turn-abandoned.js +66 -0
- package/dist/server/src/lib/detection/unclassified-frame-tracker.js +2 -2
- package/dist/server/src/lib/global-state.js +16 -0
- package/dist/server/src/lib/hooks/agent-session-telemetry.js +4 -6
- package/dist/server/src/lib/hooks/permission-decision-state.js +2 -2
- package/dist/server/src/lib/hooks/sources/antigravity/history.js +11 -76
- package/dist/server/src/lib/hooks/sources/antigravity/hooks-config.js +63 -1
- package/dist/server/src/lib/hooks/sources/antigravity/source.js +16 -0
- package/dist/server/src/lib/hooks/sources/antigravity/transcript.js +3 -12
- package/dist/server/src/lib/hooks/sources/claude/history.js +17 -156
- package/dist/server/src/lib/hooks/sources/claude/queued-notice.js +53 -0
- package/dist/server/src/lib/hooks/sources/claude/source.js +33 -3
- package/dist/server/src/lib/hooks/sources/claude/transcript.js +3 -13
- package/dist/server/src/lib/hooks/sources/codex/history.js +11 -74
- package/dist/server/src/lib/hooks/sources/codex/hooks-config.js +147 -11
- package/dist/server/src/lib/hooks/sources/codex/relay-install.js +64 -21
- package/dist/server/src/lib/hooks/sources/codex/transcript.js +5 -15
- package/dist/server/src/lib/hooks/sources/command-code/history.js +20 -121
- package/dist/server/src/lib/hooks/sources/command-code/transcript.js +3 -13
- package/dist/server/src/lib/hooks/sources/copilot/hook-settings.js +161 -31
- package/dist/server/src/lib/hooks/sources/define-source.js +40 -55
- package/dist/server/src/lib/hooks/sources/event-mapper.js +2 -1
- package/dist/server/src/lib/hooks/sources/opencode/diff.js +3 -4
- package/dist/server/src/lib/hooks/sources/opencode/history.js +2 -1
- package/dist/server/src/lib/hooks/sources/opencode/launch-settings.js +2 -1
- package/dist/server/src/lib/hooks/sources/opencode/payloads.js +2 -1
- package/dist/server/src/lib/hooks/sources/opencode/ports.js +2 -1
- package/dist/server/src/lib/hooks/sources/opencode/subscription.js +4 -3
- package/dist/server/src/lib/hooks/sources/opencode/transcript.js +3 -16
- package/dist/server/src/lib/hooks/sources/opencode-v2/history.js +2 -1
- package/dist/server/src/lib/hooks/sources/opencode-v2/mappers.js +5 -4
- package/dist/server/src/lib/hooks/sources/opencode-v2/ports.js +2 -1
- package/dist/server/src/lib/hooks/sources/opencode-v2/subscription.js +3 -7
- package/dist/server/src/lib/hooks/sources/opencode-v2/usage.js +2 -1
- package/dist/server/src/lib/hooks/sources/pending-decisions.js +2 -1
- package/dist/server/src/lib/hooks/sources/registry.js +3 -2
- package/dist/server/src/lib/hooks/sources/transcript-history.js +262 -0
- package/dist/server/src/lib/hooks/sources/turn-body.js +31 -0
- package/dist/server/src/lib/hooks/tool-input-normalization-state.js +2 -2
- package/dist/server/src/lib/polling/antigravity-permission-receipts.js +2 -2
- package/dist/server/src/lib/polling/auto-yes-dialog-gate.js +16 -4
- package/dist/server/src/lib/polling/auto-yes-enter-fallback-state.js +142 -0
- package/dist/server/src/lib/polling/auto-yes-enter-fallback.js +187 -0
- package/dist/server/src/lib/polling/auto-yes-resolver.js +9 -3
- package/dist/server/src/lib/polling/auto-yes-suppression-reason.js +2 -0
- package/dist/server/src/lib/polling/auto-yes-suppression-state.js +2 -2
- package/dist/server/src/lib/polling/pending-scraped-response.js +190 -0
- package/dist/server/src/lib/polling/prompt-dedup-state.js +2 -2
- package/dist/server/src/lib/polling/prompt-dedup.js +2 -2
- package/dist/server/src/lib/polling/response-checker-dialog-gate.js +95 -0
- package/dist/server/src/lib/polling/response-checker-extraction-result.js +50 -0
- package/dist/server/src/lib/polling/response-checker-extraction-steps.js +670 -0
- package/dist/server/src/lib/polling/response-checker.js +666 -1162
- package/dist/server/src/lib/polling/response-dedup.js +3 -4
- package/dist/server/src/lib/polling/response-poller-constants.js +17 -0
- package/dist/server/src/lib/polling/response-poller-core.js +54 -20
- package/dist/server/src/lib/polling/startup-screen.js +142 -0
- package/dist/server/src/lib/polling/structured-history-gate.js +3 -2
- package/dist/server/src/lib/prompt-answer-semantic.js +178 -0
- package/dist/server/src/lib/prompt-answer-sender.js +6 -5
- package/dist/server/src/lib/push/failure-episode-state.js +2 -2
- package/dist/server/src/lib/push/notification-dedup.js +3 -4
- package/dist/server/src/lib/push/prompt-card-state.js +2 -2
- package/dist/server/src/lib/push/waiting-push-notifier.js +3 -4
- package/dist/server/src/lib/realtime/publisher-registry.js +3 -2
- package/dist/server/src/lib/realtime/terminal-broadcast.js +38 -2
- package/dist/server/src/lib/realtime/terminal-session-ownership.js +45 -0
- package/dist/server/src/lib/relay/relay-delivery.js +6 -2
- package/dist/server/src/lib/relay/relay-readiness.js +38 -1
- package/dist/server/src/lib/relay/relay-triggers.js +9 -0
- package/dist/server/src/lib/resource-cleanup.js +6 -4
- package/dist/server/src/lib/response-cleaner.js +24 -1
- package/dist/server/src/lib/response-extractor.js +16 -0
- package/dist/server/src/lib/schedule-manager.js +8 -10
- package/dist/server/src/lib/session/agent-event-ask-user-question.js +168 -0
- package/dist/server/src/lib/session/agent-event-awaiting-instruction.js +104 -0
- package/dist/server/src/lib/session/agent-event-dedup.js +539 -0
- package/dist/server/src/lib/session/agent-event-model.js +562 -0
- package/dist/server/src/lib/session/agent-event-record.js +10 -0
- package/dist/server/src/lib/session/agent-event-state.js +106 -1854
- package/dist/server/src/lib/session/agent-event-structured-state.js +109 -0
- package/dist/server/src/lib/session/agent-event-turn.js +811 -0
- package/dist/server/src/lib/session/agent-session-lifecycle.js +11 -2
- package/dist/server/src/lib/session/chat-turn-progress.js +322 -0
- package/dist/server/src/lib/session/claude-executor.js +45 -5
- package/dist/server/src/lib/session/claude-session.js +21 -65
- package/dist/server/src/lib/session/cli-session.js +17 -0
- package/dist/server/src/lib/session/current-output-builder.js +454 -1103
- package/dist/server/src/lib/session/current-output-history-writers.js +255 -0
- package/dist/server/src/lib/session/current-output-types.js +9 -0
- package/dist/server/src/lib/session/detection-divergence.js +55 -0
- package/dist/server/src/lib/session/global-session-constants.js +2 -13
- package/dist/server/src/lib/session/hook-turn-hold.js +102 -0
- package/dist/server/src/lib/session/layer-disagreement.js +2 -2
- package/dist/server/src/lib/session/opencode-session-store.js +2 -1
- package/dist/server/src/lib/session/prompt-view.js +290 -0
- package/dist/server/src/lib/session/prompt-waiting-composition.js +35 -0
- package/dist/server/src/lib/session/provisional-turn.js +3 -1
- package/dist/server/src/lib/session/send-user-message.js +1 -1
- package/dist/server/src/lib/session/session-starting-state.js +4 -6
- package/dist/server/src/lib/session/status-evidence-type.js +2 -0
- package/dist/server/src/lib/session/status-evidence.js +2 -2
- package/dist/server/src/lib/session/structured-status-merge.js +335 -0
- package/dist/server/src/lib/session/waiting-episode-state.js +3 -4
- package/dist/server/src/lib/session/waiting-kind.js +3 -0
- package/dist/server/src/lib/session-cleanup.js +6 -8
- package/dist/server/src/lib/skills/install-plan.js +2 -1
- package/dist/server/src/lib/skills/snapshot-store.js +2 -2
- package/dist/server/src/lib/skills/uninstall-plan.js +2 -2
- package/dist/server/src/lib/timer-manager.js +6 -8
- package/dist/server/src/lib/tmux/geometry-delegation.js +3 -4
- package/dist/server/src/lib/tmux/legacy-session-alias.js +2 -1
- package/dist/server/src/lib/tmux/session-hooks.js +2 -1
- package/dist/server/src/lib/tmux/session-status-options.js +3 -3
- package/dist/server/src/lib/tmux/tmux-capture-cache.js +3 -2
- package/dist/server/src/lib/tmux/tmux.js +33 -59
- package/dist/server/src/lib/tui-accumulator.js +2 -2
- package/dist/server/src/lib/version-checker.js +6 -6
- package/dist/server/src/lib/ws-server.js +47 -11
- package/docs/en/user-guide/webapp-guide.md +27 -3
- package/package.json +1 -1
- package/release-notes/0.44.2.json +33 -0
- package/release-notes/0.44.3.json +82 -0
- package/scripts/hooks/cmate-agent-event.sh +18 -0
- package/.next/server/chunks/1068.js +0 -1
- package/.next/server/chunks/434.js +0 -1
- package/.next/server/chunks/5775.js +0 -1
- package/.next/server/chunks/6474.js +0 -14
- package/.next/server/chunks/650.js +0 -1
- package/.next/server/chunks/6661.js +0 -1
- package/.next/server/chunks/8583.js +0 -1
- package/.next/server/chunks/964.js +0 -1
- package/.next/server/chunks/967.js +0 -1
- package/.next/server/chunks/9882.js +0 -25
- package/.next/static/chunks/591-308072f285c34787.js +0 -1
- package/.next/static/chunks/app/sessions/page-049e06335187aa91.js +0 -1
- package/.next/static/chunks/app/worktrees/[id]/page-040c5f0f585e6812.js +0 -1
- package/.next/static/css/38070d879efa1371.css +0 -1
- package/dist/server/src/lib/cli-tools/index.js +0 -41
- package/dist/server/src/lib/polling/global-session-poller.js +0 -140
- /package/.next/static/{57lOiz8zSEHdw97XIm0af → tWwHQzmvc-rv9KKUtDWfQ}/_buildManifest.js +0 -0
- /package/.next/static/{57lOiz8zSEHdw97XIm0af → tWwHQzmvc-rv9KKUtDWfQ}/_ssgManifest.js +0 -0
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Claude's live region (Issue #3183; design doc §7 "claude").
|
|
4
|
+
*
|
|
5
|
+
* - **composer** — the input box: closing rule within 4 rows of the bottom, an
|
|
6
|
+
* opening rule within 40 rows above it, and a `>`/`❯` row right under the
|
|
7
|
+
* opening rule (`findClaudeInputBox`, the finder #2847 / the idle rule / the
|
|
8
|
+
* dialog rule already share). Measured: `tui-frame-footer-2776/
|
|
9
|
+
* claude-2.1.278-idle-quoted-footers.txt` L997-L1000.
|
|
10
|
+
* - **dialog top** — the rule above the first option of the dialog that closes
|
|
11
|
+
* with Claude's footer (`claude-2.1.278-bash-approval.txt` L12 / L20 / L25,
|
|
12
|
+
* `claude-2.1.278-askuserquestion-picker.txt` L17 / L22 / L30, whose inner
|
|
13
|
+
* rule L27 is why the search starts at the option).
|
|
14
|
+
*
|
|
15
|
+
* @module lib/detection/tools/claude/live-region
|
|
16
|
+
*/
|
|
17
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
+
exports.CLAUDE_LIVE_REGION = void 0;
|
|
19
|
+
const composer_text_1 = require("../../composer-text");
|
|
20
|
+
const tui_detection_frame_1 = require("../../tui-detection-frame");
|
|
21
|
+
const live_region_1 = require("../live-region");
|
|
22
|
+
exports.CLAUDE_LIVE_REGION = {
|
|
23
|
+
composer: (0, live_region_1.fencedComposer)(lines => (0, composer_text_1.findClaudeInputBox)(lines)?.openingSeparator ?? -1),
|
|
24
|
+
dialogTop: (0, live_region_1.ruleAboveOptionRun)({ footer: tui_detection_frame_1.isClaudeFooter, rule: /^─{10,}$/, maxRows: 120 }),
|
|
25
|
+
composerHidesDialogs: true,
|
|
26
|
+
};
|
|
@@ -2,9 +2,10 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* Claude Code's own detection patterns (Issue #1927).
|
|
4
4
|
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
5
|
+
* What comes first is what Issue #1927 had to measure to give Claude a §4 D1
|
|
6
|
+
* idle rule, plus the provenance of that measurement. Below `VERIFIED_AGAINST`
|
|
7
|
+
* are the Claude patterns Issue #3217 moved here from `cli-patterns.ts`, which
|
|
8
|
+
* keeps the per-tool table and re-exports their public names.
|
|
8
9
|
*
|
|
9
10
|
* ## Why Claude needed a new rule at all
|
|
10
11
|
*
|
|
@@ -45,7 +46,11 @@
|
|
|
45
46
|
* argument #1893 used to make opencode's `▣ … · 2.3s` duration mandatory.
|
|
46
47
|
*/
|
|
47
48
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
48
|
-
exports.VERIFIED_AGAINST = exports.CLAUDE_EFFORT_CHIP_PATTERN = exports.CLAUDE_TRANSCRIPT_USER_TURN_PATTERN = exports.CLAUDE_BANNER_PATTERN = exports.CLAUDE_TURN_COMPLETE_PATTERN = void 0;
|
|
49
|
+
exports.CLAUDE_SESSION_ERROR_REGEX_PATTERNS = exports.CLAUDE_SESSION_ERROR_PATTERNS = exports.CLAUDE_SELECTION_LIST_FOOTER = exports.CLAUDE_MODEL_OVERLAY_FOOTER_PATTERN = exports.CLAUDE_TRUST_DIALOG_PATTERN = exports.CLAUDE_SEPARATOR_PATTERN = exports.CLAUDE_PROMPT_PATTERN = exports.CLAUDE_INTERRUPT_HINT_PATTERN = exports.CLAUDE_THINKING_PATTERN = exports.CLAUDE_SPINNER_CHARS = exports.VERIFIED_AGAINST = exports.CLAUDE_EFFORT_CHIP_PATTERN = exports.CLAUDE_TRANSCRIPT_USER_TURN_PATTERN = exports.CLAUDE_BANNER_PATTERN = exports.CLAUDE_TURN_COMPLETE_PATTERN = void 0;
|
|
50
|
+
exports.findClaudeChromeStart = findClaudeChromeStart;
|
|
51
|
+
exports.resolveClaudeTrustDialogKeys = resolveClaudeTrustDialogKeys;
|
|
52
|
+
exports.isClaudeTrustDialogOpen = isClaudeTrustDialogOpen;
|
|
53
|
+
const composer_text_1 = require("../../composer-text");
|
|
49
54
|
/**
|
|
50
55
|
* Claude's turn-completion marker: a spinner glyph, a verb, and a duration.
|
|
51
56
|
*
|
|
@@ -96,3 +101,258 @@ exports.CLAUDE_EFFORT_CHIP_PATTERN = /·\s*\/effort\s*$/;
|
|
|
96
101
|
*/
|
|
97
102
|
var verified_against_1 = require("../verified-against");
|
|
98
103
|
Object.defineProperty(exports, "VERIFIED_AGAINST", { enumerable: true, get: function () { return verified_against_1.CLAUDE_VERIFIED_AGAINST; } });
|
|
104
|
+
/**
|
|
105
|
+
* The Claude blocks moved out of `../../cli-patterns.ts` (Issue #3217 I-7).
|
|
106
|
+
* `cli-patterns.ts` re-exports every public name.
|
|
107
|
+
*/
|
|
108
|
+
/**
|
|
109
|
+
* Claude CLI spinner characters (expanded set)
|
|
110
|
+
* These are shown when Claude is thinking/processing
|
|
111
|
+
*/
|
|
112
|
+
exports.CLAUDE_SPINNER_CHARS = [
|
|
113
|
+
'✻', '✽', '⏺', '·', '∴', '✢', '✳', '✶',
|
|
114
|
+
'⦿', '◉', '●', '○', '◌', '◎', '⊙', '⊚',
|
|
115
|
+
'⠋', '⠙', '⠹', '⠸', '⠼', '⠴', '⠦', '⠧', '⠇', '⠏', // Braille spinner
|
|
116
|
+
];
|
|
117
|
+
/**
|
|
118
|
+
* Claude thinking pattern
|
|
119
|
+
* Matches spinner character followed by activity text ending with …
|
|
120
|
+
* The text can contain spaces (e.g., "Verifying implementation (dead code detection)…")
|
|
121
|
+
*
|
|
122
|
+
* Alternative 2: "esc to interrupt" status bar text (Issue #188)
|
|
123
|
+
* Claude Code shows "esc to interrupt" in the terminal status bar during active processing.
|
|
124
|
+
* Previous pattern required closing paren `to interrupt\)` matching `(esc to interrupt)`,
|
|
125
|
+
* but Claude Code v2.x status bar format uses `· esc to interrupt ·` without parens.
|
|
126
|
+
* Updated to match `esc to interrupt` which covers both formats.
|
|
127
|
+
*/
|
|
128
|
+
exports.CLAUDE_THINKING_PATTERN = new RegExp(`[${exports.CLAUDE_SPINNER_CHARS.join('')}]\\s+.+…|esc to interrupt`, 'm');
|
|
129
|
+
/**
|
|
130
|
+
* Claude status-bar "esc to interrupt" hint (Issue #805)
|
|
131
|
+
*
|
|
132
|
+
* Claude Code shows "esc to interrupt" in the bottom status bar ONLY while it is
|
|
133
|
+
* actively processing. When idle/ready, the status bar shows shortcut hints
|
|
134
|
+
* (e.g., "? for shortcuts") instead -- so this token is a reliable "running" signal.
|
|
135
|
+
*
|
|
136
|
+
* Why this exists separately from CLAUDE_THINKING_PATTERN's "esc to interrupt"
|
|
137
|
+
* alternative: status detection evaluates the spinner+ellipsis branch of
|
|
138
|
+
* CLAUDE_THINKING_PATTERN within a narrow 5-line window (THINKING_TAIL_LINE_COUNT)
|
|
139
|
+
* to avoid mistaking a completed thinking summary in scrollback for active work
|
|
140
|
+
* (Issue #188). During /pm-auto-dev + subagent runs, the bottom task panel
|
|
141
|
+
* ("⏺ main" / "◯ general-purpose ..." rows) pushes both the "✶ Running…" spinner
|
|
142
|
+
* AND the "esc to interrupt" status bar out of that 5-line window, so the session
|
|
143
|
+
* was misdetected as Ready (Issue #805). Unlike the spinner+ellipsis summary, the
|
|
144
|
+
* status-bar text is repainted live and never lingers in scrollback, so it can be
|
|
145
|
+
* matched in a wider footer window without regressing Issue #188.
|
|
146
|
+
*/
|
|
147
|
+
exports.CLAUDE_INTERRUPT_HINT_PATTERN = /esc to interrupt/;
|
|
148
|
+
/**
|
|
149
|
+
* Claude prompt pattern (waiting for input)
|
|
150
|
+
* Supports both legacy '>' and new '❯' (U+276F) prompt characters
|
|
151
|
+
* Issue #132: Also matches prompts with recommended commands (e.g., "❯ /work-plan")
|
|
152
|
+
*
|
|
153
|
+
* Matches:
|
|
154
|
+
* - Empty prompt: "❯ " or "> "
|
|
155
|
+
* - Prompt with command: "❯ /work-plan" or "> npm install"
|
|
156
|
+
*/
|
|
157
|
+
exports.CLAUDE_PROMPT_PATTERN = /^[>❯](\s*$|\s+\S)/m;
|
|
158
|
+
/**
|
|
159
|
+
* Claude separator pattern
|
|
160
|
+
*/
|
|
161
|
+
exports.CLAUDE_SEPARATOR_PATTERN = /^─{10,}$/m;
|
|
162
|
+
/**
|
|
163
|
+
* Locate the start of Claude Code's bottom-pinned footer within a captured pane.
|
|
164
|
+
*
|
|
165
|
+
* Claude Code v2 draws in the alternate screen and reserves the last rows of the
|
|
166
|
+
* pane for a footer that is never transcript content:
|
|
167
|
+
*
|
|
168
|
+
* <hint row> ← "◉ xhigh · /effort", "tmux detected · …", or blank
|
|
169
|
+
* ──────────────────── ← separator
|
|
170
|
+
* ❯ <input box> ← one or more rows
|
|
171
|
+
* ──────────────────── ← separator
|
|
172
|
+
* ⏸ manual mode on · ? for shortcuts · ← for agents focus
|
|
173
|
+
*
|
|
174
|
+
* The hint row rotates every few seconds while the conversation sits idle, so
|
|
175
|
+
* keeping the footer in an extracted response makes its content hash change on
|
|
176
|
+
* every poll tick. That defeated the content-based dedup added in #1268 and
|
|
177
|
+
* re-saved the same reply once per tick (#1289).
|
|
178
|
+
*
|
|
179
|
+
* The boundary is found structurally rather than by matching hint text: the hint
|
|
180
|
+
* strings are Claude Code's to change, and pattern-matching them is what let this
|
|
181
|
+
* regression through (`? for shortcuts` was already listed as a skip pattern, but
|
|
182
|
+
* the real status bar embeds it mid-line so the anchors never matched). The row
|
|
183
|
+
* above the opening separator is reserved by Claude Code's layout and stays blank
|
|
184
|
+
* even when a reply fills the whole pane, so it is always safe to drop.
|
|
185
|
+
*
|
|
186
|
+
* @param lines - Captured pane lines; trailing blank rows are tolerated
|
|
187
|
+
* @returns Index of the first footer row, or -1 when no footer is present
|
|
188
|
+
*/
|
|
189
|
+
function findClaudeChromeStart(lines) {
|
|
190
|
+
// Issue #1879: the structural search (closing separator → opening separator →
|
|
191
|
+
// prompt glyph, including the "is this really the input box and not a reply
|
|
192
|
+
// fenced by two horizontal rules?" check) moved to `findClaudeInputBox` so the
|
|
193
|
+
// composer reader locates the same box this trimmer does. Behaviour here is
|
|
194
|
+
// unchanged; only the caller of the search moved.
|
|
195
|
+
const box = (0, composer_text_1.findClaudeInputBox)(lines);
|
|
196
|
+
if (box === null)
|
|
197
|
+
return -1;
|
|
198
|
+
// Include the reserved hint row directly above the opening separator.
|
|
199
|
+
return Math.max(0, box.openingSeparator - 1);
|
|
200
|
+
}
|
|
201
|
+
/**
|
|
202
|
+
* Claude trust dialog pattern (Issue #201)
|
|
203
|
+
*
|
|
204
|
+
* Matches the "Quick safety check" dialog displayed by Claude CLI v2.x
|
|
205
|
+
* when accessing a workspace for the first time.
|
|
206
|
+
*
|
|
207
|
+
* Intentionally uses partial matching (no line-start anchor ^):
|
|
208
|
+
* Other pattern constants (CLAUDE_PROMPT_PATTERN, CLAUDE_SEPARATOR_PATTERN, etc.)
|
|
209
|
+
* use line-start anchors (^), but this pattern needs to match at any position
|
|
210
|
+
* within the tmux output buffer because the dialog text may appear after
|
|
211
|
+
* tmux padding or other output. (SF-001)
|
|
212
|
+
*/
|
|
213
|
+
exports.CLAUDE_TRUST_DIALOG_PATTERN = /Yes, I trust this folder/m;
|
|
214
|
+
/** The option row of the trust dialog's cursor: `❯` (or legacy `>`) after the dialog's left padding. */
|
|
215
|
+
const CLAUDE_TRUST_CURSOR_ROW_PATTERN = /^\s*[>❯]\s+\S/;
|
|
216
|
+
/** How far the cursor row may sit from the `Yes, I trust this folder` row (the dialog has two options). */
|
|
217
|
+
const CLAUDE_TRUST_MAX_CURSOR_DISTANCE = 3;
|
|
218
|
+
/**
|
|
219
|
+
* Keys that answer Claude Code's folder-trust dialog with "Yes", or null when
|
|
220
|
+
* no answerable dialog is on screen (Issue #3078).
|
|
221
|
+
*
|
|
222
|
+
* The dialog comes in two layouts, and Enter alone is only right for one:
|
|
223
|
+
*
|
|
224
|
+
* - default Yes (Issue #201 era, `tests/unit/lib/claude-session.test.ts`):
|
|
225
|
+
* ` ❯ 1. Yes, I trust this folder` / ` 2. No, exit` — Enter confirms Yes.
|
|
226
|
+
* - default No (2.1.259 `tests/fixtures/chat-dialog-card-2254/claude-trust-2-1-259.txt`,
|
|
227
|
+
* 2.1.287 with a permission allow-list
|
|
228
|
+
* `tests/fixtures/claude-trust-dialog-3078/allowlist-default-no-2-1-287.txt`):
|
|
229
|
+
* ` ❯ No, exit` / ` Yes, I trust this folder` — Enter EXITS Claude Code.
|
|
230
|
+
*
|
|
231
|
+
* So the answer is read off the screen: the distance from the cursor row to the
|
|
232
|
+
* Yes row becomes that many `Up`/`Down` presses, then `Enter`. Only the last
|
|
233
|
+
* dialog in the capture counts, and a dialog followed by Claude's input-box
|
|
234
|
+
* separator is history in the scrollback, not an open dialog.
|
|
235
|
+
*
|
|
236
|
+
* @param output - ANSI-stripped pane output
|
|
237
|
+
* @returns tmux key names ending in `Enter` (just `['Enter']` when the cursor is
|
|
238
|
+
* already on Yes), or null when no open dialog / no readable cursor row
|
|
239
|
+
*/
|
|
240
|
+
function resolveClaudeTrustDialogKeys(output) {
|
|
241
|
+
const lines = output.split('\n');
|
|
242
|
+
const yesIndex = findOpenClaudeTrustYesRow(lines);
|
|
243
|
+
if (yesIndex === -1)
|
|
244
|
+
return null;
|
|
245
|
+
for (let distance = 0; distance <= CLAUDE_TRUST_MAX_CURSOR_DISTANCE; distance++) {
|
|
246
|
+
for (const direction of distance === 0 ? [0] : [-1, 1]) {
|
|
247
|
+
const index = yesIndex + direction * distance;
|
|
248
|
+
if (index < 0 || index >= lines.length)
|
|
249
|
+
continue;
|
|
250
|
+
if (!CLAUDE_TRUST_CURSOR_ROW_PATTERN.test(lines[index]))
|
|
251
|
+
continue;
|
|
252
|
+
// Cursor above Yes → move Down; below → move Up.
|
|
253
|
+
const key = direction < 0 ? 'Down' : 'Up';
|
|
254
|
+
return [...Array(distance).fill(key), 'Enter'];
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
return null;
|
|
258
|
+
}
|
|
259
|
+
/**
|
|
260
|
+
* Whether Claude Code's folder-trust dialog is the open screen (Issue #3078).
|
|
261
|
+
*
|
|
262
|
+
* The dialog's cursor row (` ❯ No, exit`) has the prompt glyph, so the start
|
|
263
|
+
* wait asks this before CLAUDE_PROMPT_PATTERN rather than reading the dialog as
|
|
264
|
+
* a ready prompt.
|
|
265
|
+
*
|
|
266
|
+
* @param output - ANSI-stripped pane output
|
|
267
|
+
*/
|
|
268
|
+
function isClaudeTrustDialogOpen(output) {
|
|
269
|
+
return findOpenClaudeTrustYesRow(output.split('\n')) !== -1;
|
|
270
|
+
}
|
|
271
|
+
/** Row of the last `Yes, I trust this folder`, or -1 when absent or already answered. */
|
|
272
|
+
function findOpenClaudeTrustYesRow(lines) {
|
|
273
|
+
for (let i = lines.length - 1; i >= 0; i--) {
|
|
274
|
+
if (!exports.CLAUDE_TRUST_DIALOG_PATTERN.test(lines[i]))
|
|
275
|
+
continue;
|
|
276
|
+
// Claude's input box (separator rows) drawn below it: the dialog is scrollback.
|
|
277
|
+
return lines.slice(i + 1).some((line) => exports.CLAUDE_SEPARATOR_PATTERN.test(line)) ? -1 : i;
|
|
278
|
+
}
|
|
279
|
+
return -1;
|
|
280
|
+
}
|
|
281
|
+
/**
|
|
282
|
+
* [Issue #1495] Footer signature of Claude Code's `/model` local-settings overlay.
|
|
283
|
+
* Verified against a real Claude Code v2.1.218 capture, the footer reads:
|
|
284
|
+
* "Enter to set as default · s to use this session only · Esc to cancel"
|
|
285
|
+
*
|
|
286
|
+
* The overlay renders a ❯-marked numbered model list ("1. Default … 5. Haiku")
|
|
287
|
+
* under a "Select model" header that detectMultipleChoicePrompt() otherwise
|
|
288
|
+
* matches as a genuine multiple_choice prompt — which let Auto-Yes Enter-confirm
|
|
289
|
+
* a selection and silently change the user's default model. This "set as default"
|
|
290
|
+
* phrasing is unique to the model picker: genuine confirmation prompts never
|
|
291
|
+
* contain it (the trust dialog uses "Enter to confirm · Esc to cancel", Bash-tool
|
|
292
|
+
* approvals use "Esc to cancel · Tab to amend", AskUserQuestion uses
|
|
293
|
+
* "Enter to select · … to navigate"), so it is a safe exclusion signal.
|
|
294
|
+
*
|
|
295
|
+
* Linear pattern, no nested quantifiers — ReDoS safe (S4-001).
|
|
296
|
+
*/
|
|
297
|
+
exports.CLAUDE_MODEL_OVERLAY_FOOTER_PATTERN = /Enter\s+to\s+set\s+as\s+default\b/i;
|
|
298
|
+
/**
|
|
299
|
+
* Claude CLI selection list footer pattern
|
|
300
|
+
* Detects Claude CLI's interactive selection prompts that require
|
|
301
|
+
* arrow key navigation and Enter to select/toggle.
|
|
302
|
+
*
|
|
303
|
+
* Matches footer instruction lines (known variants):
|
|
304
|
+
* "Enter to select · Tab/Arrow keys to navigate · Esc to cancel"
|
|
305
|
+
* "Enter to select · ↑/↓ to navigate · n to add notes · Esc to cancel"
|
|
306
|
+
* "Enter to confirm · Esc to exit" (legacy /model command footer)
|
|
307
|
+
* "Enter to set as default · s to use this session only · Esc to cancel"
|
|
308
|
+
* (/model command footer as of Claude Code v2.1.218 — Issue #1495)
|
|
309
|
+
*
|
|
310
|
+
* "←/→ to adjust · Enter to confirm · s for this session only · Esc to cancel"
|
|
311
|
+
* (/effort slider footer as of Claude Code v2.1.257 — Issue #3052; before
|
|
312
|
+
* 2.1.257 it was "Enter to confirm · Esc to cancel")
|
|
313
|
+
*
|
|
314
|
+
* The /effort branch keys on "Enter to confirm · s for this session only" rather
|
|
315
|
+
* than "←/→ to adjust": the `s` hint is unique to the pickers (the trust dialog's
|
|
316
|
+
* "Enter to confirm · Esc to cancel" and approval dialogs never carry it), and
|
|
317
|
+
* keeping the match under the `Enter to` prefix leaves the pattern a single
|
|
318
|
+
* linear alternation. Linear, no nested quantifiers — ReDoS safe.
|
|
319
|
+
*
|
|
320
|
+
* The "set as default" branch lets status-detector classify the `/model` overlay
|
|
321
|
+
* as a Claude selection list (NavigationButtons + ESC hatch, hasActivePrompt=false)
|
|
322
|
+
* once detectPrompt() no longer reports it as a prompt (see
|
|
323
|
+
* CLAUDE_MODEL_OVERLAY_FOOTER_PATTERN).
|
|
324
|
+
*/
|
|
325
|
+
exports.CLAUDE_SELECTION_LIST_FOOTER = /Enter\s+to\s+(?:select\s+.*to\s+navigate|confirm\s+·\s+(?:Esc|s\s+for\s+this\s+session\s+only)|set\s+as\s+default)/;
|
|
326
|
+
/**
|
|
327
|
+
* Error patterns that indicate a Claude session failed to start properly
|
|
328
|
+
* Used by isSessionHealthy() to detect broken sessions (MF-001: SRP)
|
|
329
|
+
* Style: readonly + as const for type safety (SF-S2-001: follows response-poller.ts precedent)
|
|
330
|
+
*
|
|
331
|
+
* SEC-SF-004: Pattern maintenance process:
|
|
332
|
+
* - When Claude CLI is updated, verify that error messages still match these patterns.
|
|
333
|
+
* - Test procedure: Intentionally trigger each error condition (e.g., nested session launch)
|
|
334
|
+
* and confirm the error message is captured by the patterns.
|
|
335
|
+
* - If Claude CLI introduces localized error messages, add locale-aware patterns or
|
|
336
|
+
* consider switching to exit code-based detection as a more robust alternative.
|
|
337
|
+
* - Pattern additions should be accompanied by corresponding test cases in
|
|
338
|
+
* claude-session.test.ts.
|
|
339
|
+
*
|
|
340
|
+
* C-S3-001: Codex/Gemini monitoring note:
|
|
341
|
+
* These patterns are currently Claude-specific. If Codex or Gemini exhibit similar
|
|
342
|
+
* "nested session" or startup failure behaviors, analogous error patterns should be
|
|
343
|
+
* added to their respective tool configurations (codex.ts, gemini.ts) rather than
|
|
344
|
+
* extending these arrays, to maintain SRP per CLI tool type.
|
|
345
|
+
*/
|
|
346
|
+
exports.CLAUDE_SESSION_ERROR_PATTERNS = [
|
|
347
|
+
'Claude Code cannot be launched inside another Claude Code session',
|
|
348
|
+
];
|
|
349
|
+
/**
|
|
350
|
+
* Regex patterns for Claude session errors requiring context matching
|
|
351
|
+
* Used by isSessionHealthy() for multi-condition error detection (MF-001: SRP)
|
|
352
|
+
* Style: readonly + as const for type safety (SF-S2-001: follows response-poller.ts precedent)
|
|
353
|
+
*
|
|
354
|
+
* SEC-SF-004: See CLAUDE_SESSION_ERROR_PATTERNS JSDoc for pattern maintenance process.
|
|
355
|
+
*/
|
|
356
|
+
exports.CLAUDE_SESSION_ERROR_REGEX_PATTERNS = [
|
|
357
|
+
/^Error:.*Claude Code/,
|
|
358
|
+
];
|
|
@@ -63,6 +63,7 @@ exports.detectClaudeDialog = detectClaudeDialog;
|
|
|
63
63
|
const cli_patterns_1 = require("../../cli-patterns");
|
|
64
64
|
const prompt_detect_multiple_choice_1 = require("../../prompt-detect-multiple-choice");
|
|
65
65
|
const dialog_block_1 = require("../dialog-block");
|
|
66
|
+
const context_above_1 = require("../context-above");
|
|
66
67
|
const picker_chrome_1 = require("./picker-chrome");
|
|
67
68
|
/**
|
|
68
69
|
* Claude's dialog footers, in every spelling measured.
|
|
@@ -78,8 +79,6 @@ const picker_chrome_1 = require("./picker-chrome");
|
|
|
78
79
|
const CLAUDE_DIALOG_FOOTER_PATTERN = /esc\s+to\s+cancel|enter\s+to\s+(?:select|confirm|set\s+as\s+default)/i;
|
|
79
80
|
/** The selection cursor Claude puts on the highlighted option. */
|
|
80
81
|
const CLAUDE_SELECTION_GLYPHS = new Set(['❯', '>']);
|
|
81
|
-
/** How many non-blank rows above the options may hold the question. */
|
|
82
|
-
const QUESTION_SCAN_ROWS = 4;
|
|
83
82
|
/** The permission dialog's question, in the spellings 2.1.x draws. */
|
|
84
83
|
const CLAUDE_PERMISSION_QUESTION_PATTERN = /do you want to\b|allow\b.*\?$/i;
|
|
85
84
|
/** The AskUserQuestion review screen's closing question. */
|
|
@@ -94,14 +93,7 @@ const CLAUDE_PICKER_FOOTER_PATTERN = /set\s+as\s+default/i;
|
|
|
94
93
|
*/
|
|
95
94
|
function readContextAbove(lines, firstRow) {
|
|
96
95
|
const tabRow = (0, picker_chrome_1.findAskUserQuestionTabRow)(lines, firstRow, prompt_detect_multiple_choice_1.APPROVAL_TARGET_MAX_LOOKBACK);
|
|
97
|
-
|
|
98
|
-
for (let i = firstRow - 1; i > tabRow && rows.length < QUESTION_SCAN_ROWS; i--) {
|
|
99
|
-
const row = lines[i].trim();
|
|
100
|
-
if (row === '')
|
|
101
|
-
continue;
|
|
102
|
-
rows.push(row);
|
|
103
|
-
}
|
|
104
|
-
return rows.join('\n');
|
|
96
|
+
return (0, context_above_1.readContextAbove)(lines, firstRow, tabRow);
|
|
105
97
|
}
|
|
106
98
|
/**
|
|
107
99
|
* The non-blank rows in [from, end) — the block's footer — without Claude's
|
|
@@ -316,7 +316,7 @@ function readCodexGlyphRowKind(rawRow) {
|
|
|
316
316
|
* Find and classify the bottom-most `›` row of a raw capture.
|
|
317
317
|
*
|
|
318
318
|
* "Bottom-most" is the whole point, and it is the same rule `isCodexPromptReady`
|
|
319
|
-
* and `
|
|
319
|
+
* and `findCodexComposerRow` already apply for their own questions: codex
|
|
320
320
|
* draws on the normal screen, so a dialog the operator answered minutes ago is
|
|
321
321
|
* still in the frame with its options intact (Issue #1160). Only the LAST `›`
|
|
322
322
|
* row says what the pane is doing now — and when a turn is generating, that row
|