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
|
@@ -43,6 +43,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
43
43
|
exports.detectCodexDialog = detectCodexDialog;
|
|
44
44
|
const cli_patterns_1 = require("../../cli-patterns");
|
|
45
45
|
const dialog_block_1 = require("../dialog-block");
|
|
46
|
+
const context_above_1 = require("../context-above");
|
|
46
47
|
/**
|
|
47
48
|
* The dialog family each lifecycle screen belongs to (Issue #1829).
|
|
48
49
|
*
|
|
@@ -60,17 +61,8 @@ const LIFECYCLE_DIALOG_KINDS = {
|
|
|
60
61
|
update: 'update',
|
|
61
62
|
trust: 'trust',
|
|
62
63
|
};
|
|
63
|
-
/** How many non-blank rows above the options may hold the question. */
|
|
64
|
-
const QUESTION_SCAN_ROWS = 4;
|
|
65
64
|
function readContextAbove(lines, firstRow) {
|
|
66
|
-
|
|
67
|
-
for (let i = firstRow - 1; i >= 0 && rows.length < QUESTION_SCAN_ROWS; i--) {
|
|
68
|
-
const row = lines[i].trim();
|
|
69
|
-
if (row === '')
|
|
70
|
-
continue;
|
|
71
|
-
rows.push(row);
|
|
72
|
-
}
|
|
73
|
-
return rows.join('\n');
|
|
65
|
+
return (0, context_above_1.readContextAbove)(lines, firstRow, -1);
|
|
74
66
|
}
|
|
75
67
|
/**
|
|
76
68
|
* Does this frame carry a Codex dialog?
|
|
@@ -138,7 +138,10 @@ const cli_patterns_1 = require("../../cli-patterns");
|
|
|
138
138
|
const selection_shape_1 = require("../../selection-shape");
|
|
139
139
|
const dialog_1 = require("./dialog");
|
|
140
140
|
const permission_1 = require("./permission");
|
|
141
|
+
const verdicts_1 = require("../verdicts");
|
|
141
142
|
const status_reason_1 = require("../../status-reason");
|
|
143
|
+
const live_region_1 = require("./live-region");
|
|
144
|
+
const frame_1 = require("../frame");
|
|
142
145
|
const run_detection_1 = require("../run-detection");
|
|
143
146
|
const verified_against_1 = require("../verified-against");
|
|
144
147
|
/** Command Code build these rules were read off (value in ../verified-against). */
|
|
@@ -146,7 +149,16 @@ exports.VERIFIED_AGAINST = verified_against_1.COMMAND_CODE_VERIFIED_AGAINST;
|
|
|
146
149
|
exports.commandCodeStatusDetector = (0, run_detection_1.createToolStatusDetector)({
|
|
147
150
|
tool: 'command-code',
|
|
148
151
|
verifiedAgainst: exports.VERIFIED_AGAINST,
|
|
152
|
+
// Issue #3183: where the live part of the frame begins (`./live-region.ts`).
|
|
153
|
+
liveRegion: live_region_1.COMMAND_CODE_LIVE_REGION,
|
|
149
154
|
beforePrompt(frame) {
|
|
155
|
+
// Issue #3183: an input box at the bottom of the pane means none of the
|
|
156
|
+
// three overlays below is open — each replaces the input box — so a footer
|
|
157
|
+
// the conversation quotes cannot reach them, whatever window it sits in.
|
|
158
|
+
// The live region says so once for every rule; the `…AtBottom` readings
|
|
159
|
+
// below (#2846) still decide the frames that have no input box.
|
|
160
|
+
if ((0, frame_1.liveRegionOf)(frame, 'command-code').composerAtBottom)
|
|
161
|
+
return null;
|
|
150
162
|
// Issue #2761. The plan review overlay, read off its two footer rows.
|
|
151
163
|
//
|
|
152
164
|
// `beforePrompt` and not `afterPrompt`, and that placement is the point: the
|
|
@@ -182,13 +194,7 @@ exports.commandCodeStatusDetector = (0, run_detection_1.createToolStatusDetector
|
|
|
182
194
|
// `hasCommandCodePlanReviewFooterAtBottom` for how far from the end is "bottom".
|
|
183
195
|
if ((0, selection_shape_1.hasCommandCodePlanReviewFooterAtBottom)(frame.lastLines) ||
|
|
184
196
|
(0, selection_shape_1.isCommandCodePlanApproveChoice)(frame.lastLines)) {
|
|
185
|
-
return
|
|
186
|
-
status: 'waiting',
|
|
187
|
-
confidence: 'high',
|
|
188
|
-
reason: status_reason_1.STATUS_REASON.COMMAND_CODE_PLAN_REVIEW,
|
|
189
|
-
hasActivePrompt: false,
|
|
190
|
-
evidence: 'positive',
|
|
191
|
-
};
|
|
197
|
+
return (0, verdicts_1.positiveVerdict)('waiting', status_reason_1.STATUS_REASON.COMMAND_CODE_PLAN_REVIEW);
|
|
192
198
|
}
|
|
193
199
|
// Issue #2521 recognised this screen; Issue #2522 reads it.
|
|
194
200
|
//
|
|
@@ -237,14 +243,7 @@ exports.commandCodeStatusDetector = (0, run_detection_1.createToolStatusDetector
|
|
|
237
243
|
// the pane and lets Auto-Yes consider it — every one of them through the
|
|
238
244
|
// SAME payload, which is the point of reading it once here.
|
|
239
245
|
if (reading.kind === 'prompt') {
|
|
240
|
-
return
|
|
241
|
-
status: 'waiting',
|
|
242
|
-
confidence: 'high',
|
|
243
|
-
reason: status_reason_1.STATUS_REASON.PROMPT_DETECTED,
|
|
244
|
-
hasActivePrompt: true,
|
|
245
|
-
evidence: 'positive',
|
|
246
|
-
promptDetection: reading.prompt,
|
|
247
|
-
};
|
|
246
|
+
return (0, verdicts_1.activePromptVerdict)(status_reason_1.STATUS_REASON.PROMPT_DETECTED, reading.prompt);
|
|
248
247
|
}
|
|
249
248
|
// The question UI is plainly up and this reader could not read it. #2521's
|
|
250
249
|
// verdict, unchanged and deliberately kept: `COMMAND_CODE_SELECTION_LIST` is
|
|
@@ -256,13 +255,7 @@ exports.commandCodeStatusDetector = (0, run_detection_1.createToolStatusDetector
|
|
|
256
255
|
// options, so there is no payload to answer with and none is invented — and
|
|
257
256
|
// the generic parser is not given a second chance to invent a partial one.
|
|
258
257
|
if (reading.kind === 'unsupported') {
|
|
259
|
-
return
|
|
260
|
-
status: 'waiting',
|
|
261
|
-
confidence: 'high',
|
|
262
|
-
reason: status_reason_1.STATUS_REASON.COMMAND_CODE_SELECTION_LIST,
|
|
263
|
-
hasActivePrompt: false,
|
|
264
|
-
evidence: 'positive',
|
|
265
|
-
};
|
|
258
|
+
return (0, verdicts_1.positiveVerdict)('waiting', status_reason_1.STATUS_REASON.COMMAND_CODE_SELECTION_LIST);
|
|
266
259
|
}
|
|
267
260
|
return null;
|
|
268
261
|
},
|
|
@@ -288,13 +281,7 @@ exports.commandCodeStatusDetector = (0, run_detection_1.createToolStatusDetector
|
|
|
288
281
|
// Issue #2846: only when `Press Esc to close` is the LAST row. The panel draws
|
|
289
282
|
// it last; a reply that quotes it has the composer underneath.
|
|
290
283
|
if ((0, selection_shape_1.hasCommandCodeDismissablePanelFooterAtBottom)(frame.lastLines)) {
|
|
291
|
-
return
|
|
292
|
-
status: 'waiting',
|
|
293
|
-
confidence: 'high',
|
|
294
|
-
reason: status_reason_1.STATUS_REASON.COMMAND_CODE_DISMISSABLE_PANEL,
|
|
295
|
-
hasActivePrompt: false,
|
|
296
|
-
evidence: 'positive',
|
|
297
|
-
};
|
|
284
|
+
return (0, verdicts_1.positiveVerdict)('waiting', status_reason_1.STATUS_REASON.COMMAND_CODE_DISMISSABLE_PANEL);
|
|
298
285
|
}
|
|
299
286
|
// Issue #2297. Command Code's pickers (`/model` measured live on v1.40.1 at
|
|
300
287
|
// 200x1000) are arrow-driven overlays with a search box and a lower-case
|
|
@@ -310,13 +297,7 @@ exports.commandCodeStatusDetector = (0, run_detection_1.createToolStatusDetector
|
|
|
310
297
|
//
|
|
311
298
|
// Issue #2846: last row only, for the reason the branch above gives.
|
|
312
299
|
if ((0, selection_shape_1.hasCommandCodeSelectionListFooterAtBottom)(frame.lastLines)) {
|
|
313
|
-
return
|
|
314
|
-
status: 'waiting',
|
|
315
|
-
confidence: 'high',
|
|
316
|
-
reason: status_reason_1.STATUS_REASON.COMMAND_CODE_SELECTION_LIST,
|
|
317
|
-
hasActivePrompt: false,
|
|
318
|
-
evidence: 'positive',
|
|
319
|
-
};
|
|
300
|
+
return (0, verdicts_1.positiveVerdict)('waiting', status_reason_1.STATUS_REASON.COMMAND_CODE_SELECTION_LIST);
|
|
320
301
|
}
|
|
321
302
|
return null;
|
|
322
303
|
},
|
|
@@ -330,26 +311,14 @@ exports.commandCodeStatusDetector = (0, run_detection_1.createToolStatusDetector
|
|
|
330
311
|
// before the generic composer check can say "ready". Widened window; see the
|
|
331
312
|
// module docblock.
|
|
332
313
|
if ((0, cli_patterns_1.detectThinking)('command-code', frame.lastLines)) {
|
|
333
|
-
return
|
|
334
|
-
status: 'running',
|
|
335
|
-
confidence: 'high',
|
|
336
|
-
reason: status_reason_1.STATUS_REASON.THINKING_INDICATOR,
|
|
337
|
-
hasActivePrompt: false,
|
|
338
|
-
evidence: 'positive',
|
|
339
|
-
};
|
|
314
|
+
return (0, verdicts_1.positiveVerdict)('running', status_reason_1.STATUS_REASON.THINKING_INDICATOR);
|
|
340
315
|
}
|
|
341
316
|
// Idle: the composer row is on screen and nothing is in flight. Same verdict
|
|
342
317
|
// the generic step 3 would reach, resolved here so the two cannot disagree
|
|
343
318
|
// about which window they read.
|
|
344
319
|
const { promptPattern } = (0, cli_patterns_1.getCliToolPatterns)('command-code');
|
|
345
320
|
if (promptPattern.test(frame.lastLines)) {
|
|
346
|
-
return
|
|
347
|
-
status: 'ready',
|
|
348
|
-
confidence: 'high',
|
|
349
|
-
reason: status_reason_1.STATUS_REASON.INPUT_PROMPT,
|
|
350
|
-
hasActivePrompt: false,
|
|
351
|
-
evidence: 'positive',
|
|
352
|
-
};
|
|
321
|
+
return (0, verdicts_1.positiveVerdict)('ready', status_reason_1.STATUS_REASON.INPUT_PROMPT);
|
|
353
322
|
}
|
|
354
323
|
return null;
|
|
355
324
|
},
|
|
@@ -78,6 +78,7 @@ const ansi_1 = require("../../ansi");
|
|
|
78
78
|
const prompt_detect_multiple_choice_1 = require("../../prompt-detect-multiple-choice");
|
|
79
79
|
const selection_shape_1 = require("../../selection-shape");
|
|
80
80
|
const dialog_block_1 = require("../dialog-block");
|
|
81
|
+
const truncate_raw_content_1 = require("../../truncate-raw-content");
|
|
81
82
|
/**
|
|
82
83
|
* How many rows of dialog this reader will parse.
|
|
83
84
|
*
|
|
@@ -190,23 +191,6 @@ const COMMAND_CODE_CONFIRM_ROW_PATTERN = /^[^\S\n]*(?:\u276F[^\S\n]*)?(?:Submit|
|
|
|
190
191
|
* separated picker footer and is left exactly as #2753 left it.
|
|
191
192
|
*/
|
|
192
193
|
const COMMAND_CODE_QUESTION_HINT_BAR_PATTERN = /^[^\S\n]*Enter\s+to\s+select\b.*\|.*\bEsc\s+to\s+cancel[^\S\n]*$/i;
|
|
193
|
-
/**
|
|
194
|
-
* The same tail limits `prompt-detector.ts` applies to `rawContent`
|
|
195
|
-
* (`RAW_CONTENT_MAX_LINES` / `RAW_CONTENT_MAX_CHARS`), restated because that
|
|
196
|
-
* helper is private to it. A prompt row stores this text as its message body.
|
|
197
|
-
*
|
|
198
|
-
* In practice neither bound binds here — the region is at most
|
|
199
|
-
* {@link COMMAND_CODE_QUESTION_MAX_REGION_ROWS} rows — which is the point: what
|
|
200
|
-
* used to reach these consumers for this screen was the whole 1000-row pane.
|
|
201
|
-
*/
|
|
202
|
-
const RAW_CONTENT_MAX_LINES = 200;
|
|
203
|
-
const RAW_CONTENT_MAX_CHARS = 5000;
|
|
204
|
-
function truncateRawContent(content) {
|
|
205
|
-
const lines = content.split('\n');
|
|
206
|
-
const tail = lines.length > RAW_CONTENT_MAX_LINES ? lines.slice(-RAW_CONTENT_MAX_LINES) : lines;
|
|
207
|
-
const joined = tail.join('\n');
|
|
208
|
-
return joined.length > RAW_CONTENT_MAX_CHARS ? joined.slice(-RAW_CONTENT_MAX_CHARS) : joined;
|
|
209
|
-
}
|
|
210
194
|
function unsupported(reason) {
|
|
211
195
|
return { kind: 'unsupported', reason };
|
|
212
196
|
}
|
|
@@ -345,7 +329,7 @@ function readCommandCodeQuestionDialog(frame) {
|
|
|
345
329
|
isDefault: index === block.selectedIndex,
|
|
346
330
|
...(multiSelect ? { checked: CHECKBOX_TICKED_PATTERN.test(label) } : {}),
|
|
347
331
|
}));
|
|
348
|
-
const built = (0, prompt_detect_multiple_choice_1.buildMultipleChoiceResult)(question, readOptions, { instructionText: dialogText, approvalTarget: dialogText }, regionRows.join('\n'), truncateRawContent,
|
|
332
|
+
const built = (0, prompt_detect_multiple_choice_1.buildMultipleChoiceResult)(question, readOptions, { instructionText: dialogText, approvalTarget: dialogText }, regionRows.join('\n'), truncate_raw_content_1.truncateRawContent,
|
|
349
333
|
// 確定仕様 D. The measured `QuestionPrompt` hands the ordinary choices to a
|
|
350
334
|
// `SelectInput`, which calls `onSelect` on the DIGIT — so a trailing Enter
|
|
351
335
|
// would land on whatever the tool painted next (the following question, or
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Command Code's live region (Issue #3183; design doc §7 "command-code").
|
|
4
|
+
*
|
|
5
|
+
* - **composer** — the input box between two rules pinned to the bottom, with a
|
|
6
|
+
* `❯` row under the opening rule (`findCommandCodeChromeStart`, the same
|
|
7
|
+
* shape as claude's). A `❯ 1.` row there is a question dialog's cursor, not
|
|
8
|
+
* the composer, and is refused. Measured: `tui-frame-footer-2776/
|
|
9
|
+
* command-code-1.58.0-idle-quoted-footers.txt` L29-L32 under the quoted
|
|
10
|
+
* footers at L18-L21.
|
|
11
|
+
* - **dialog top** — the rule above the first option of a dialog closed by the
|
|
12
|
+
* `↑/↓ navigate · enter select` footer. Measured: `command-code-live-2250/
|
|
13
|
+
* dialog-shell-command.txt` L29 / L36 / L40.
|
|
14
|
+
*
|
|
15
|
+
* @module lib/detection/tools/command-code/live-region
|
|
16
|
+
*/
|
|
17
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
+
exports.COMMAND_CODE_LIVE_REGION = void 0;
|
|
19
|
+
const cli_patterns_1 = require("../../cli-patterns");
|
|
20
|
+
const live_region_1 = require("../live-region");
|
|
21
|
+
/** A numbered cursor row (`❯ 1. Yes`) — a dialog's, never the composer's. */
|
|
22
|
+
const NUMBERED_CURSOR_ROW = /^❯\s*\d{1,2}[.)]\s/;
|
|
23
|
+
exports.COMMAND_CODE_LIVE_REGION = {
|
|
24
|
+
composer: (0, live_region_1.fencedComposer)(lines => {
|
|
25
|
+
const start = (0, cli_patterns_1.findCommandCodeChromeStart)(lines);
|
|
26
|
+
if (start < 0)
|
|
27
|
+
return -1;
|
|
28
|
+
return NUMBERED_CURSOR_ROW.test((0, cli_patterns_1.stripAnsi)(lines[start + 1] ?? '')) ? -1 : start;
|
|
29
|
+
}),
|
|
30
|
+
dialogTop: (0, live_region_1.ruleAboveOptionRun)({
|
|
31
|
+
footer: row => /↑\/↓ navigate · enter select/.test(row),
|
|
32
|
+
rule: /^─{10,}$/,
|
|
33
|
+
maxRows: 120,
|
|
34
|
+
}),
|
|
35
|
+
composerHidesDialogs: true,
|
|
36
|
+
};
|
|
@@ -0,0 +1,234 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Command Code pattern constants and helpers moved out of `../../cli-patterns.ts`
|
|
4
|
+
* (Issue #3217). `cli-patterns.ts` re-exports every public name.
|
|
5
|
+
*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.COMMAND_CODE_SKIP_PATTERNS = exports.COMMAND_CODE_HOOK_NOTICE_PATTERN = exports.COMMAND_CODE_BANNER_PATTERNS = exports.COMMAND_CODE_MODE_INDICATOR_PATTERN = exports.COMMAND_CODE_COMPLETION_PATTERN = exports.COMMAND_CODE_RESPONSE_MARKER_PATTERN = exports.COMMAND_CODE_THINKING_PATTERN = exports.COMMAND_CODE_INTERRUPT_HINT_PATTERN = exports.COMMAND_CODE_SEPARATOR_PATTERN = exports.COMMAND_CODE_PROMPT_PATTERN = exports.COMMAND_CODE_SPINNER_CHARS = void 0;
|
|
8
|
+
exports.findCommandCodeChromeStart = findCommandCodeChromeStart;
|
|
9
|
+
const ansi_1 = require("../../ansi");
|
|
10
|
+
const pasted_text_1 = require("../../shared/pasted-text");
|
|
11
|
+
/**
|
|
12
|
+
* Command Code status-line spinner glyphs (Issue #2250).
|
|
13
|
+
*
|
|
14
|
+
* The complete `getWaveSymbol` frame set, read off the shipped bundle
|
|
15
|
+
* (`command-code@1.40.1`, `dist/cli.mjs`):
|
|
16
|
+
* `["·","○","◇","☆","✧","☆","◇","○","⌘"]` — six distinct glyphs, cycled.
|
|
17
|
+
*
|
|
18
|
+
* Deliberately NOT folded into {@link CLAUDE_SPINNER_CHARS}. Command Code marks
|
|
19
|
+
* every assistant message with `⠶` (U+2836, see
|
|
20
|
+
* {@link COMMAND_CODE_RESPONSE_MARKER_PATTERN}); adding that braille glyph to a
|
|
21
|
+
* shared spinner class would make each reply's own first row read as "still
|
|
22
|
+
* generating", and adding these glyphs to claude's class would do the same to
|
|
23
|
+
* any claude reply that opens with `·`.
|
|
24
|
+
*/
|
|
25
|
+
exports.COMMAND_CODE_SPINNER_CHARS = ['·', '○', '◇', '☆', '✧', '⌘'];
|
|
26
|
+
/**
|
|
27
|
+
* Command Code composer / dialog-cursor prompt pattern (Issue #2250).
|
|
28
|
+
*
|
|
29
|
+
* `❯` (U+276F) only — the ASCII `>` claude also accepts is not a glyph Command
|
|
30
|
+
* Code 1.40.1 draws, and accepting it here would make every shell prompt and
|
|
31
|
+
* every quoted diff line in a reply look like a composer.
|
|
32
|
+
*
|
|
33
|
+
* The row is drawn in two places, which is why prompt presence alone is not
|
|
34
|
+
* "ready": the bottom-pinned composer (`❯ Ask your question...` between two
|
|
35
|
+
* full-width rules) and the highlighted option of a permission dialog
|
|
36
|
+
* (`❯ 1. Yes`). Completion is resolved structurally instead — see
|
|
37
|
+
* {@link findCommandCodeChromeStart}.
|
|
38
|
+
*/
|
|
39
|
+
exports.COMMAND_CODE_PROMPT_PATTERN = /^❯(\s*$|\s+\S)/m;
|
|
40
|
+
/**
|
|
41
|
+
* Command Code separator pattern (Issue #2250).
|
|
42
|
+
*
|
|
43
|
+
* Full-pane runs of U+2500 fence the composer above and below, and one more is
|
|
44
|
+
* drawn above a permission dialog. Measured at 200 columns on every fixture in
|
|
45
|
+
* `tests/fixtures/command-code-live-2250/`.
|
|
46
|
+
*/
|
|
47
|
+
exports.COMMAND_CODE_SEPARATOR_PATTERN = /^─{10,}$/m;
|
|
48
|
+
/**
|
|
49
|
+
* Command Code status-line "esc to interrupt" hint (Issue #2250).
|
|
50
|
+
*
|
|
51
|
+
* The `Status` component renders `esc to interrupt • <elapsed> • ↓ <tokens>`
|
|
52
|
+
* only in its `"all"` layout, i.e. at a terminal width of 72 columns or more
|
|
53
|
+
* (read off the bundle's `layoutMode` ladder; CommandMate panes are 200 wide, so
|
|
54
|
+
* production always takes that branch). Below 42 columns the whole tail is
|
|
55
|
+
* dropped and only the spinner + verb remain — which is why
|
|
56
|
+
* {@link COMMAND_CODE_THINKING_PATTERN} keeps the spinner branch as well.
|
|
57
|
+
*/
|
|
58
|
+
exports.COMMAND_CODE_INTERRUPT_HINT_PATTERN = /esc to interrupt/;
|
|
59
|
+
/**
|
|
60
|
+
* Command Code thinking/processing pattern (Issue #2250).
|
|
61
|
+
*
|
|
62
|
+
* Three measured alternatives:
|
|
63
|
+
*
|
|
64
|
+
* 1. the status row — a spinner glyph, then a single word ending in `…`
|
|
65
|
+
* (`⌘ Planning…`, `· Synthesizing…`; the bundle's verb table is 74
|
|
66
|
+
* single-word entries, all capitalised, but the class is left case-agnostic
|
|
67
|
+
* because the `status` prop is not restricted to that table). Anchored at
|
|
68
|
+
* the start of the line with only leading spaces allowed, so the `·` in the
|
|
69
|
+
* banner's
|
|
70
|
+
* `# models: … · taste-1` row and in the idle footer's
|
|
71
|
+
* `? for shortcuts · taste on` cannot reach it;
|
|
72
|
+
* 2. `✻ Thinking…` — the reasoning block's header WHILE it streams. It becomes
|
|
73
|
+
* `✻ Thought for 1 second [ctrl+o to expand]` once the block is closed, and
|
|
74
|
+
* that past-tense form must NOT match: it sits in the transcript of every
|
|
75
|
+
* finished turn (`turn-version.txt`);
|
|
76
|
+
* 3. {@link COMMAND_CODE_INTERRUPT_HINT_PATTERN}, unanchored, for the same
|
|
77
|
+
* reason claude's pattern carries it.
|
|
78
|
+
*/
|
|
79
|
+
exports.COMMAND_CODE_THINKING_PATTERN = new RegExp(`^[^\\S\\n]*[${exports.COMMAND_CODE_SPINNER_CHARS.join('')}][^\\S\\n]+[A-Za-z]+…` +
|
|
80
|
+
`|^[^\\S\\n]*✻ Thinking…` +
|
|
81
|
+
`|${exports.COMMAND_CODE_INTERRUPT_HINT_PATTERN.source}`, 'm');
|
|
82
|
+
/**
|
|
83
|
+
* Command Code assistant-message marker (Issue #2250).
|
|
84
|
+
*
|
|
85
|
+
* `⠶` (U+2836) at column 0, one space, then the reply. Fixed, not a spinner
|
|
86
|
+
* frame: the bundle declares it as `Ct() ? "⠶" : "#"`, i.e. one constant with an
|
|
87
|
+
* ASCII fallback for terminals without unicode support. That answers 親 Issue
|
|
88
|
+
* #2249's 未確定事項 1 — the glyph does not rotate — and it is also why the `#`
|
|
89
|
+
* fallback is deliberately NOT matched here: on such a terminal it is
|
|
90
|
+
* indistinguishable from the `# Command Code v1.40.1` banner rows.
|
|
91
|
+
*
|
|
92
|
+
* Continuation rows of a multi-line reply are indented by two spaces (the marker
|
|
93
|
+
* is one column wide and the body box carries `marginLeft: 1`).
|
|
94
|
+
*/
|
|
95
|
+
exports.COMMAND_CODE_RESPONSE_MARKER_PATTERN = /^⠶(?:\s|$)/;
|
|
96
|
+
/**
|
|
97
|
+
* Command Code turn-completion marker (Issue #2250).
|
|
98
|
+
*
|
|
99
|
+
* **Advisory only — never require it to declare a turn finished.** Two measured
|
|
100
|
+
* reasons: `WorkedDurationNote` renders nothing for a turn under 1000 ms, and
|
|
101
|
+
* the row belongs to the live turn's UI rather than to the transcript — it is
|
|
102
|
+
* present in `turn-version.txt` and GONE from `dialog-create-file.txt`, which is
|
|
103
|
+
* the same pane one prompt later.
|
|
104
|
+
*/
|
|
105
|
+
exports.COMMAND_CODE_COMPLETION_PATTERN = /^[^\S\n]*✻ Worked for /m;
|
|
106
|
+
/**
|
|
107
|
+
* Command Code footer mode indicator (Issue #2250).
|
|
108
|
+
*
|
|
109
|
+
* The row under the composer's closing rule. `? for shortcuts` is only the
|
|
110
|
+
* DEFAULT-mode spelling: the bundle's `ModeIndicator` swaps it for a mode banner
|
|
111
|
+
* in the other four permission modes, so a rule that keys on `? for shortcuts`
|
|
112
|
+
* alone would stop recognising an idle pane the moment the operator pressed
|
|
113
|
+
* shift+tab. All five spellings are listed.
|
|
114
|
+
*/
|
|
115
|
+
exports.COMMAND_CODE_MODE_INDICATOR_PATTERN = /\?\s+for\s+shortcuts|»\s+accept edits on|»\s+permission bypass on|»\s+don't-ask on|^[^\S\n]*plan mode\s/m;
|
|
116
|
+
/**
|
|
117
|
+
* Command Code startup banner rows (Issue #2250).
|
|
118
|
+
*
|
|
119
|
+
* The three-row header under the block-art logo — `# Command Code v1.40.1`,
|
|
120
|
+
* `# models: …`, `# <cwd>` — plus the logo itself.
|
|
121
|
+
*
|
|
122
|
+
* The version row matches the tool's own NAME and version together, which is the
|
|
123
|
+
* shape #2247 had to retreat to on claude: a bare `v\d+\.\d+` matched any reply
|
|
124
|
+
* that mentioned a release, and the turn was silently dropped. Nothing here
|
|
125
|
+
* matches a bare version string, a `│` table glyph, or a `Tip:` line.
|
|
126
|
+
*/
|
|
127
|
+
exports.COMMAND_CODE_BANNER_PATTERNS = [
|
|
128
|
+
/^#\s+Command Code v\d/, // Name + version, together
|
|
129
|
+
/^#\s+models:\s/, // Model line
|
|
130
|
+
/^#\s+[~/]/, // Working-directory line
|
|
131
|
+
/^[^\S\n]*[█▀▄▌▐]{3,}/, // Block-art logo rows
|
|
132
|
+
];
|
|
133
|
+
/**
|
|
134
|
+
* Command Code hook notice row (Issue #2250).
|
|
135
|
+
*
|
|
136
|
+
* `◼ Ran 1 session start hook` — emitted into the transcript when SessionStart
|
|
137
|
+
* hooks fire, so it lands ABOVE the first user echo and is chrome, not a reply.
|
|
138
|
+
* Measured on a hooks-enabled 1.40.1 pane while capturing #2249's evidence.
|
|
139
|
+
* Command Code's hook wiring itself is Phase B (#2251); this row only has to be
|
|
140
|
+
* kept out of History.
|
|
141
|
+
*/
|
|
142
|
+
exports.COMMAND_CODE_HOOK_NOTICE_PATTERN = /^[^\S\n]*◼\s+Ran\s+\d+\s+.*hooks?\b/;
|
|
143
|
+
/** How far above the last row Command Code's footer row may sit. */
|
|
144
|
+
const COMMAND_CODE_FOOTER_MAX_ROWS = 4;
|
|
145
|
+
/** How many rows the composer may span before the block stops looking like chrome. */
|
|
146
|
+
const COMMAND_CODE_INPUT_BOX_MAX_ROWS = 40;
|
|
147
|
+
/**
|
|
148
|
+
* Locate the start of Command Code's bottom-pinned chrome within a captured pane.
|
|
149
|
+
*
|
|
150
|
+
* Command Code is inline-rendered, so its transcript grows downwards and the
|
|
151
|
+
* last four rows of a settled pane are always the same four (measured on
|
|
152
|
+
* `boot-idle.txt`, `turn-version.txt` and `turn-tool-write.txt`):
|
|
153
|
+
*
|
|
154
|
+
* ```text
|
|
155
|
+
* ──────────────────── ← opening rule
|
|
156
|
+
* ❯ Ask your question… ← composer (one row per wrapped line)
|
|
157
|
+
* ──────────────────── ← closing rule
|
|
158
|
+
* ? for shortcuts · taste on
|
|
159
|
+
* ```
|
|
160
|
+
*
|
|
161
|
+
* Everything from the opening rule down is terminal furniture. Two things go
|
|
162
|
+
* wrong if it reaches the extractor, and both are regressions this repository
|
|
163
|
+
* has already paid for once: the composer's placeholder is drawn with the same
|
|
164
|
+
* `❯ <text>` shape as a transcript echo, so the turn anchor lands on the FOOTER
|
|
165
|
+
* and the reply extracts as empty (#1289); and the footer row is repainted while
|
|
166
|
+
* the pane sits idle, so keeping it re-hashes the saved response on every poll
|
|
167
|
+
* tick (#1268 / #1289).
|
|
168
|
+
*
|
|
169
|
+
* Structural, like the three readers next to it, and for the reason spelled out
|
|
170
|
+
* on `findClaudeChromeStart`: the hint strings belong to Command Code and a rule
|
|
171
|
+
* that matches them stops working the moment they are reworded. `-1` is the
|
|
172
|
+
* honest answer for a frame with no composer at all — while a permission dialog
|
|
173
|
+
* is up the whole block is replaced by the dialog, which the caller resolves on
|
|
174
|
+
* the prompt path instead.
|
|
175
|
+
*
|
|
176
|
+
* @param lines - Captured pane lines, ANSI-bearing or not; trailing blanks tolerated
|
|
177
|
+
* @returns Index of the opening rule, or -1 when no composer block is present
|
|
178
|
+
*/
|
|
179
|
+
function findCommandCodeChromeStart(lines) {
|
|
180
|
+
const isSeparator = (line) => /^─{10,}$/.test((0, ansi_1.stripAnsi)(line ?? '').trimEnd());
|
|
181
|
+
let lastRow = lines.length - 1;
|
|
182
|
+
while (lastRow >= 0 && lines[lastRow].trim() === '')
|
|
183
|
+
lastRow--;
|
|
184
|
+
if (lastRow < 0)
|
|
185
|
+
return -1;
|
|
186
|
+
// The closing rule sits just above the mode-indicator row.
|
|
187
|
+
let closingSeparator = -1;
|
|
188
|
+
for (let i = lastRow; i >= Math.max(0, lastRow - COMMAND_CODE_FOOTER_MAX_ROWS); i--) {
|
|
189
|
+
if (isSeparator(lines[i])) {
|
|
190
|
+
closingSeparator = i;
|
|
191
|
+
break;
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
if (closingSeparator < 0)
|
|
195
|
+
return -1;
|
|
196
|
+
// Walk up over the composer rows to the opening rule.
|
|
197
|
+
let openingSeparator = -1;
|
|
198
|
+
for (let i = closingSeparator - 1; i >= Math.max(0, closingSeparator - COMMAND_CODE_INPUT_BOX_MAX_ROWS); i--) {
|
|
199
|
+
if (isSeparator(lines[i])) {
|
|
200
|
+
openingSeparator = i;
|
|
201
|
+
break;
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
if (openingSeparator < 0)
|
|
205
|
+
return -1;
|
|
206
|
+
// Confirm the fenced rows are the composer and not a reply that happens to
|
|
207
|
+
// contain two horizontal rules.
|
|
208
|
+
if (!/^❯/.test((0, ansi_1.stripAnsi)(lines[openingSeparator + 1] ?? '')))
|
|
209
|
+
return -1;
|
|
210
|
+
return openingSeparator;
|
|
211
|
+
}
|
|
212
|
+
/**
|
|
213
|
+
* Command Code skip patterns for response cleaning (Issue #2250).
|
|
214
|
+
*
|
|
215
|
+
* The dedicated cleaner Issue #2250 item 8 asks for: the startup banner, the
|
|
216
|
+
* hook notice, the reasoning and turn summaries (`✻ Thought for` / `✻ Worked
|
|
217
|
+
* for`), the composer, the rules and the footer.
|
|
218
|
+
*
|
|
219
|
+
* Nothing here touches the reply body or a tool block: `⠶ <text>`, ` WRITE
|
|
220
|
+
* [probe.txt]`, ` └ Created probe.txt (1 line)` and ` 1 │ hello` all
|
|
221
|
+
* survive (`turn-tool-write.txt`). In particular there is no `^\s*│` rule — the
|
|
222
|
+
* one codex carries — because Command Code renders file previews with it.
|
|
223
|
+
*/
|
|
224
|
+
exports.COMMAND_CODE_SKIP_PATTERNS = [
|
|
225
|
+
/^─{10,}$/, // Composer rules and the dialog's rule
|
|
226
|
+
/^❯\s*$/, // Bare composer row
|
|
227
|
+
/^❯\s+Ask your question\.\.\./, // Composer placeholder
|
|
228
|
+
exports.COMMAND_CODE_MODE_INDICATOR_PATTERN, // Footer mode indicator
|
|
229
|
+
exports.COMMAND_CODE_THINKING_PATTERN, // Status row
|
|
230
|
+
/^[^\S\n]*✻\s+(?:Worked|Thought)\s+for\b/, // Turn / reasoning summaries
|
|
231
|
+
exports.COMMAND_CODE_HOOK_NOTICE_PATTERN, // "◼ Ran N session start hook"
|
|
232
|
+
...exports.COMMAND_CODE_BANNER_PATTERNS, // Startup banner
|
|
233
|
+
pasted_text_1.PASTED_TEXT_PATTERN, // [Pasted text #N +XX lines]
|
|
234
|
+
];
|