commandmate 0.30.2 → 0.31.1
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 +151 -151
- package/.next/app-path-routes-manifest.json +25 -25
- package/.next/build-manifest.json +2 -2
- package/.next/prerender-manifest.json +9 -9
- 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_client-reference-manifest.js +1 -1
- package/.next/server/app/api/agents/versions/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/app/update/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/app/update-check/route.js +1 -1
- package/.next/server/app/api/app/update-check/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/assistant/conversation/route.js +1 -1
- package/.next/server/app/api/assistant/conversation/route.js.nft.json +1 -1
- package/.next/server/app/api/assistant/conversation/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/assistant/current-output/route.js +1 -1
- package/.next/server/app/api/assistant/current-output/route.js.nft.json +1 -1
- package/.next/server/app/api/assistant/current-output/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/assistant/messages/route.js +1 -1
- package/.next/server/app/api/assistant/messages/route.js.nft.json +1 -1
- package/.next/server/app/api/assistant/messages/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/assistant/session/route.js +1 -1
- package/.next/server/app/api/assistant/session/route.js.nft.json +1 -1
- package/.next/server/app/api/assistant/session/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/assistant/start/route.js +3 -3
- package/.next/server/app/api/assistant/start/route.js.nft.json +1 -1
- package/.next/server/app/api/assistant/start/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/assistant/terminal/route.js +4 -4
- package/.next/server/app/api/assistant/terminal/route.js.nft.json +1 -1
- package/.next/server/app/api/assistant/terminal/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/assistant/tools/route.js +1 -1
- package/.next/server/app/api/assistant/tools/route.js.nft.json +1 -1
- package/.next/server/app/api/assistant/tools/route_client-reference-manifest.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_client-reference-manifest.js +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_client-reference-manifest.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 +1 -1
- 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 +1 -1
- 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_client-reference-manifest.js +1 -1
- package/.next/server/app/api/push/subscriptions/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/push/vapid/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_client-reference-manifest.js +1 -1
- package/.next/server/app/api/repositories/[id]/todos/[todoId]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/repositories/[id]/todos/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_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.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_client-reference-manifest.js +1 -1
- package/.next/server/app/api/templates/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/todos/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_client-reference-manifest.js +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]/env/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/execution-logs/[logId]/route.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_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_client-reference-manifest.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_client-reference-manifest.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_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_client-reference-manifest.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_client-reference-manifest.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_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_client-reference-manifest.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_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_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/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_client-reference-manifest.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_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_client-reference-manifest.js +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_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 +4 -3
- 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_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/schedules/route.js +4 -3
- 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 +2 -2
- 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_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_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_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/terminal/route.js +1 -1
- 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_client-reference-manifest.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_client-reference-manifest.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_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/chat/page.js +2 -2
- package/.next/server/app/chat/page.js.nft.json +1 -1
- package/.next/server/app/chat/page_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.js +2 -2
- package/.next/server/app/more/page.js.nft.json +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.js +1 -1
- package/.next/server/app/page.js.nft.json +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.js +2 -2
- package/.next/server/app/repositories/page.js.nft.json +1 -1
- package/.next/server/app/repositories/page_client-reference-manifest.js +1 -1
- package/.next/server/app/review/page.js +1 -1
- package/.next/server/app/review/page.js.nft.json +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.js +2 -2
- package/.next/server/app/skills/[skillId]/page.js.nft.json +1 -1
- package/.next/server/app/skills/[skillId]/page_client-reference-manifest.js +1 -1
- package/.next/server/app/skills/installed/page.js +2 -2
- package/.next/server/app/skills/installed/page.js.nft.json +1 -1
- package/.next/server/app/skills/installed/page_client-reference-manifest.js +1 -1
- package/.next/server/app/skills/page.js +1 -1
- package/.next/server/app/skills/page.js.nft.json +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 +25 -25
- package/.next/server/chunks/1058.js +1 -1
- package/.next/server/chunks/1068.js +1 -1
- package/.next/server/chunks/1262.js +1 -1
- package/.next/server/chunks/1886.js +3 -3
- package/.next/server/chunks/1990.js +103 -0
- package/.next/server/chunks/2119.js +1 -1
- package/.next/server/chunks/2328.js +1 -1
- package/.next/server/chunks/2404.js +1 -1
- package/.next/server/chunks/2445.js +1 -1
- package/.next/server/chunks/261.js +1 -1
- package/.next/server/chunks/3123.js +1 -1
- package/.next/server/chunks/3241.js +1 -1
- package/.next/server/chunks/3480.js +5 -4
- package/.next/server/chunks/4299.js +1 -1
- package/.next/server/chunks/4393.js +1 -1
- package/.next/server/chunks/4443.js +1 -5
- package/.next/server/chunks/4802.js +1 -0
- package/.next/server/chunks/5017.js +1 -1
- package/.next/server/chunks/5043.js +1 -1
- package/.next/server/chunks/5164.js +1 -1
- package/.next/server/chunks/552.js +2 -2
- package/.next/server/chunks/6072.js +1 -1
- package/.next/server/chunks/6130.js +1 -1
- package/.next/server/chunks/663.js +4 -3
- package/.next/server/chunks/6894.js +2 -2
- package/.next/server/chunks/7187.js +1 -0
- package/.next/server/chunks/7472.js +1 -1
- package/.next/server/chunks/{880.js → 7859.js} +6 -6
- package/.next/server/chunks/7905.js +1 -1
- package/.next/server/chunks/8800.js +2 -2
- package/.next/server/chunks/8918.js +7 -0
- package/.next/server/chunks/9123.js +2 -2
- package/.next/server/chunks/9130.js +4 -4
- package/.next/server/chunks/9627.js +1 -1
- package/.next/server/chunks/9696.js +1 -1
- package/.next/server/chunks/9798.js +1 -1
- package/.next/server/middleware-manifest.json +5 -5
- package/.next/server/pages/500.html +1 -1
- package/.next/server/pages-manifest.json +1 -1
- package/.next/server/server-reference-manifest.json +1 -1
- package/.next/static/chunks/1783-11c9b4d8a52ebd91.js +1 -0
- package/.next/static/chunks/4718-46e1d2f07c8423ba.js +1 -0
- package/.next/static/chunks/6022-2fa0b5a82d4ce7b6.js +1 -0
- package/.next/static/chunks/{5229-6c89475b61bd2c8b.js → 6170-951b9f5fe6b4b3b5.js} +1 -1
- package/.next/static/chunks/app/chat/{page-9aa2011410895b0d.js → page-37d7615d17d7e2a0.js} +1 -1
- package/.next/static/chunks/app/layout-4c2f21e3f653ee4c.js +1 -0
- package/.next/static/chunks/app/more/{page-333bba1c8bbc9c11.js → page-353a3924e6d7968e.js} +1 -1
- package/.next/static/chunks/app/{page-214f7ffa13a0cf10.js → page-c2bf871d953a1d6f.js} +1 -1
- package/.next/static/chunks/app/repositories/{page-4951cac905e50224.js → page-7d0f26df0537254c.js} +1 -1
- package/.next/static/chunks/app/review/{page-a0899b2d285318c3.js → page-e3f141b2829973e9.js} +1 -1
- package/.next/static/chunks/app/sessions/{page-fb36145ec732092a.js → page-53f188ed9ca49e5f.js} +1 -1
- package/.next/static/chunks/app/skills/[skillId]/{page-9099e26b60442873.js → page-80569b720aea59cc.js} +1 -1
- package/.next/static/chunks/app/skills/installed/{page-182e32368696d824.js → page-dbd2690ad72da95b.js} +1 -1
- package/.next/static/chunks/app/skills/{page-d3fdc88239ebe0ab.js → page-dacd36f9c11aa7da.js} +1 -1
- package/.next/static/chunks/app/worktrees/[id]/page-64d4ec3051971760.js +1 -0
- package/.next/static/css/5c13ea243dfdcb66.css +1 -0
- package/.next/trace +13 -13
- package/README.md +37 -11
- package/dist/cli/commands/attach.d.ts +50 -0
- package/dist/cli/commands/attach.d.ts.map +1 -0
- package/dist/cli/commands/attach.js +204 -0
- package/dist/cli/commands/capture.d.ts.map +1 -1
- package/dist/cli/commands/capture.js +114 -0
- package/dist/cli/commands/instances.d.ts.map +1 -1
- package/dist/cli/commands/instances.js +23 -2
- package/dist/cli/commands/ls.d.ts.map +1 -1
- package/dist/cli/commands/ls.js +41 -1
- package/dist/cli/config/cli-dependencies.d.ts.map +1 -1
- package/dist/cli/config/cli-dependencies.js +34 -0
- package/dist/cli/program.d.ts.map +1 -1
- package/dist/cli/program.js +5 -0
- package/dist/cli/types/index.d.ts +36 -0
- package/dist/cli/types/index.d.ts.map +1 -1
- package/dist/config/tmux-pane-config.d.ts +153 -0
- package/dist/config/tmux-pane-config.d.ts.map +1 -0
- package/dist/config/tmux-pane-config.js +172 -0
- package/dist/lib/cli-tools/session-name.d.ts +44 -0
- package/dist/lib/cli-tools/session-name.d.ts.map +1 -0
- package/dist/lib/cli-tools/session-name.js +57 -0
- package/dist/lib/cli-tools/types.d.ts +1 -1
- package/dist/lib/cli-tools/types.d.ts.map +1 -1
- package/dist/lib/cli-tools/types.js +6 -1
- package/dist/lib/cli-tools/validation.d.ts +34 -0
- package/dist/lib/cli-tools/validation.d.ts.map +1 -0
- package/dist/lib/cli-tools/validation.js +41 -0
- package/dist/lib/detection/status-reason.d.ts +18 -0
- package/dist/lib/detection/status-reason.d.ts.map +1 -1
- package/dist/lib/detection/status-reason.js +18 -0
- package/dist/lib/detection/tools/verified-against.d.ts +57 -7
- package/dist/lib/detection/tools/verified-against.d.ts.map +1 -1
- package/dist/lib/detection/tools/verified-against.js +59 -8
- package/dist/lib/detection/version-probes.d.ts +26 -5
- package/dist/lib/detection/version-probes.d.ts.map +1 -1
- package/dist/lib/detection/version-probes.js +28 -6
- package/dist/lib/session/tmux-session-surface.d.ts +369 -0
- package/dist/lib/session/tmux-session-surface.d.ts.map +1 -0
- package/dist/lib/session/tmux-session-surface.js +525 -0
- package/dist/server/src/config/cli-tool-timing-config.js +12 -1
- package/dist/server/src/config/detection-evidence-config.js +5 -0
- package/dist/server/src/config/schedule-config.js +28 -1
- package/dist/server/src/lib/cli-tools/antigravity.js +2 -2
- package/dist/server/src/lib/cli-tools/base.js +13 -8
- package/dist/server/src/lib/cli-tools/claude.js +20 -0
- package/dist/server/src/lib/cli-tools/codex.js +205 -61
- package/dist/server/src/lib/cli-tools/command-code.js +349 -0
- package/dist/server/src/lib/cli-tools/composer-spec.js +6 -0
- package/dist/server/src/lib/cli-tools/copilot.js +2 -2
- package/dist/server/src/lib/cli-tools/gemini.js +2 -2
- package/dist/server/src/lib/cli-tools/graceful-exit.js +16 -1
- package/dist/server/src/lib/cli-tools/index.js +4 -1
- package/dist/server/src/lib/cli-tools/install-hints.js +131 -0
- package/dist/server/src/lib/cli-tools/liveness-spec.js +18 -0
- package/dist/server/src/lib/cli-tools/manager.js +2 -0
- package/dist/server/src/lib/cli-tools/opencode.js +2 -2
- package/dist/server/src/lib/cli-tools/start-availability.js +18 -11
- package/dist/server/src/lib/cli-tools/types.js +6 -1
- package/dist/server/src/lib/cli-tools/vibe-local.js +2 -2
- package/dist/server/src/lib/cmate-parser.js +6 -0
- package/dist/server/src/lib/detection/cli-patterns.js +441 -8
- package/dist/server/src/lib/detection/opencode-modal-overlay.js +66 -100
- package/dist/server/src/lib/detection/selection-shape.js +341 -0
- package/dist/server/src/lib/detection/sgr-background.js +210 -0
- package/dist/server/src/lib/detection/status-detector.js +6 -0
- package/dist/server/src/lib/detection/status-reason.js +18 -0
- package/dist/server/src/lib/detection/tools/antigravity/detect.js +38 -15
- package/dist/server/src/lib/detection/tools/codex/cli-patterns.js +392 -0
- package/dist/server/src/lib/detection/tools/codex/detect.js +83 -2
- package/dist/server/src/lib/detection/tools/command-code/detect.js +159 -0
- package/dist/server/src/lib/detection/tools/registry.js +6 -4
- package/dist/server/src/lib/detection/tools/verified-against.js +59 -8
- package/dist/server/src/lib/detection/version-probes.js +28 -6
- package/dist/server/src/lib/hooks/sources/antigravity/history.js +77 -16
- package/dist/server/src/lib/hooks/sources/claude/history.js +94 -18
- package/dist/server/src/lib/hooks/sources/codex/history.js +84 -15
- package/dist/server/src/lib/hooks/sources/codex/hooks-config.js +130 -17
- package/dist/server/src/lib/hooks/sources/codex/relay-install.js +145 -0
- package/dist/server/src/lib/hooks/sources/command-code/history.js +865 -0
- package/dist/server/src/lib/hooks/sources/command-code/hooks-config.js +390 -0
- package/dist/server/src/lib/hooks/sources/command-code/source.js +290 -0
- package/dist/server/src/lib/hooks/sources/command-code/tool-id.js +18 -0
- package/dist/server/src/lib/hooks/sources/command-code/transcript.js +604 -0
- package/dist/server/src/lib/hooks/sources/index.js +3 -1
- package/dist/server/src/lib/hooks/sources/opencode/history.js +57 -3
- package/dist/server/src/lib/hooks/sources/opencode/transcript.js +24 -28
- package/dist/server/src/lib/hooks/sources/registry.js +4 -0
- package/dist/server/src/lib/hooks/sources/turn-body.js +77 -19
- package/dist/server/src/lib/job-executor.js +12 -0
- package/dist/server/src/lib/polling/auto-yes-dialog-gate.js +6 -0
- package/dist/server/src/lib/polling/response-checker.js +112 -7
- package/dist/server/src/lib/polling/structured-history-gate.js +15 -8
- package/dist/server/src/lib/realtime/types.js +15 -5
- package/dist/server/src/lib/response-cleaner.js +24 -1
- package/dist/server/src/lib/response-extractor.js +11 -0
- package/dist/server/src/lib/session/claude-executor.js +223 -4
- package/dist/server/src/lib/session/cli-session.js +52 -0
- package/dist/server/src/lib/session/tmux-session-surface.js +525 -0
- package/dist/server/src/lib/skills/compatibility-matrix.js +117 -1
- package/dist/server/src/lib/tmux/geometry-delegation.js +143 -0
- package/dist/server/src/lib/tmux/read-mode-pager.js +76 -10
- package/dist/server/src/lib/tmux/read-mode.js +44 -2
- package/dist/server/src/lib/tmux/session-hook-scripts.js +249 -0
- package/dist/server/src/lib/tmux/session-hooks.js +122 -0
- package/dist/server/src/lib/tmux/session-status-options.js +213 -0
- package/dist/server/src/lib/tmux/tmux.js +79 -2
- package/dist/server/src/lib/version-checker.js +110 -0
- package/dist/server/src/lib/ws-server.js +16 -10
- package/dist/server/src/types/agent-transcript.js +73 -1
- package/dist/server/src/types/terminal-keys.js +131 -3
- package/dist/types/terminal-keys.d.ts +100 -3
- package/dist/types/terminal-keys.d.ts.map +1 -1
- package/dist/types/terminal-keys.js +131 -3
- package/package.json +1 -1
- package/.next/server/chunks/3099.js +0 -5
- package/.next/server/chunks/7824.js +0 -1
- package/.next/server/chunks/848.js +0 -1
- package/.next/static/chunks/3916-0e929d089282dc5d.js +0 -1
- package/.next/static/chunks/6022-7a7d1760fc9814c7.js +0 -1
- package/.next/static/chunks/6381-147dde2a967e9458.js +0 -1
- package/.next/static/chunks/app/layout-6a26ea22d5cf03dc.js +0 -1
- package/.next/static/chunks/app/worktrees/[id]/page-2f73d69187936627.js +0 -1
- package/.next/static/css/23f9c40ecc458c77.css +0 -1
- /package/.next/static/{QXxQbXWoo7ldUyOcv7PCZ → 60mm4_QBuFtFTfo5UMyKU}/_buildManifest.js +0 -0
- /package/.next/static/{QXxQbXWoo7ldUyOcv7PCZ → 60mm4_QBuFtFTfo5UMyKU}/_ssgManifest.js +0 -0
|
@@ -0,0 +1,210 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Background colours read off a `capture-pane -e` row (Issue #2323).
|
|
4
|
+
*
|
|
5
|
+
* ## Why this is its own module
|
|
6
|
+
*
|
|
7
|
+
* Two different questions in this repository are answered by the same walk over
|
|
8
|
+
* a captured row's SGR sequences:
|
|
9
|
+
*
|
|
10
|
+
* - `opencode-modal-overlay.ts` (Issue #2112) asks **where the edges are** — an
|
|
11
|
+
* opencode overlay is a rectangle whose rows switch the background on and off
|
|
12
|
+
* at the same two columns, and the rule is about those columns;
|
|
13
|
+
* - `ChatDialogCard.tsx` (Issue #2323) asks **which row is painted** — Command
|
|
14
|
+
* Code's `/model` picker marks the arrow-selected row with a background and
|
|
15
|
+
* prints no caret at all, so the card's scroll-follow has nothing else to
|
|
16
|
+
* anchor on.
|
|
17
|
+
*
|
|
18
|
+
* #2112 wrote the walk first and kept it private. #2323 needs the identical
|
|
19
|
+
* answer to "what background is painted at column N of this row", and a second
|
|
20
|
+
* copy of an SGR state machine is exactly how the two readings would come to
|
|
21
|
+
* disagree about the same bytes while both claiming to read backgrounds — the
|
|
22
|
+
* argument `terminal-columns.ts` already makes for column counting.
|
|
23
|
+
*
|
|
24
|
+
* A leaf module by design: it imports the column rule and nothing else, so a
|
|
25
|
+
* detector, a payload builder and a client component can all share it.
|
|
26
|
+
*
|
|
27
|
+
* ## What a `null` background means
|
|
28
|
+
*
|
|
29
|
+
* The terminal default — i.e. "this row said nothing about its background",
|
|
30
|
+
* which is also what an already-stripped frame produces for every column. Every
|
|
31
|
+
* caller therefore fails OPEN on a frame captured without `-e`: it reads no
|
|
32
|
+
* rectangle and no painted row rather than inventing one. `lib/tmux/tmux.ts`
|
|
33
|
+
* always passes `-e`, and Auto-Yes's `captureAndCleanOutput` is the one path in
|
|
34
|
+
* this repository that strips first.
|
|
35
|
+
*
|
|
36
|
+
* @module lib/detection/sgr-background
|
|
37
|
+
*/
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
exports.scanRowBackgrounds = scanRowBackgrounds;
|
|
40
|
+
exports.backgroundAt = backgroundAt;
|
|
41
|
+
exports.backgroundValues = backgroundValues;
|
|
42
|
+
exports.dominantBackground = dominantBackground;
|
|
43
|
+
const terminal_columns_1 = require("./terminal-columns");
|
|
44
|
+
/**
|
|
45
|
+
* Every ANSI sequence, in the repository's own spelling.
|
|
46
|
+
*
|
|
47
|
+
* Restated from `ANSI_PATTERN` (`ansi.ts`) rather than imported because this
|
|
48
|
+
* module needs to walk the sequences IN ORDER while counting columns, and that
|
|
49
|
+
* one is a shared `g`-flagged instance whose `lastIndex` a caller must not
|
|
50
|
+
* disturb. `tests/unit/detection/sgr-background-2323.test.ts` asserts the text
|
|
51
|
+
* this scan produces is byte-identical to `stripAnsi`'s, so the restatement
|
|
52
|
+
* cannot drift silently.
|
|
53
|
+
*/
|
|
54
|
+
const ANSI_SEQUENCE = /\x1b\[[0-9;]*[a-zA-Z]|\x1b\][^\x07\x1b]*(?:\x07|\x1b\\)|\[[0-9;]*m/g;
|
|
55
|
+
/** An SGR sequence, with its parameters. Only these can change the background. */
|
|
56
|
+
const SGR_PARAMETERS = /^(?:\x1b\[|\[)([0-9;]*)m$/;
|
|
57
|
+
/**
|
|
58
|
+
* The SGR codes that introduce an EXTENDED colour and therefore swallow the
|
|
59
|
+
* parameters after them: foreground (`38`), background (`48`) and the
|
|
60
|
+
* underline colour (`58`, which tmux re-emits from terminals that set it).
|
|
61
|
+
*
|
|
62
|
+
* They are listed together because the swallowing is the point — see
|
|
63
|
+
* {@link applySgr}.
|
|
64
|
+
*/
|
|
65
|
+
const EXTENDED_COLOUR_CODES = new Set([38, 48, 58]);
|
|
66
|
+
/**
|
|
67
|
+
* Fold one SGR sequence's parameters into the current background.
|
|
68
|
+
*
|
|
69
|
+
* Handles the three forms tmux emits: the 16-colour codes (`40`–`47`,
|
|
70
|
+
* `100`–`107`), the 256-colour and 24-bit extended forms (`48;5;n`,
|
|
71
|
+
* `48;2;r;g;b`), and the two resets (`0`, `49`). Attribute codes leave the
|
|
72
|
+
* background alone, which is what keeps a syntax-highlighted transcript row
|
|
73
|
+
* from producing dozens of spurious edges.
|
|
74
|
+
*
|
|
75
|
+
* ## Foreground parameters are consumed, not scanned (Issue #2323)
|
|
76
|
+
*
|
|
77
|
+
* A 24-bit FOREGROUND is `38;2;r;g;b`, and its channels are ordinary numbers
|
|
78
|
+
* that land in the 16-colour background ranges as often as not. Walking them as
|
|
79
|
+
* if they were codes in their own right is what #2112's private version did,
|
|
80
|
+
* and Command Code's `/model` picker is where it shows: every model row is
|
|
81
|
+
* printed `\x1b[38;2;46;189;142m`, whose green channel `46` was then read as
|
|
82
|
+
* "background 6" — so every row that is NOT selected reported itself painted.
|
|
83
|
+
* Measured on `tests/fixtures/chat-dialog-card-2254/command-code-model-1-40-1
|
|
84
|
+
* .txt`: 70 of the 1001 rows carried a background before this and 8 after, the
|
|
85
|
+
* 62 that went being the picker's unselected rows and one `38;2;76;85;106`
|
|
86
|
+
* separator. `58` (underline colour) takes the same parameter shapes and is
|
|
87
|
+
* consumed the same way.
|
|
88
|
+
*
|
|
89
|
+
* Only `48` assigns; `38` and `58` consume their parameters and move on.
|
|
90
|
+
*/
|
|
91
|
+
function applySgr(current, parameters) {
|
|
92
|
+
const parts = (parameters === '' ? '0' : parameters).split(';');
|
|
93
|
+
let bg = current;
|
|
94
|
+
for (let i = 0; i < parts.length; i++) {
|
|
95
|
+
const code = Number(parts[i] === '' ? '0' : parts[i]);
|
|
96
|
+
if (!Number.isFinite(code))
|
|
97
|
+
continue;
|
|
98
|
+
if (EXTENDED_COLOUR_CODES.has(code)) {
|
|
99
|
+
// `2` is r;g;b and `5` is a palette index; anything else is a bare `38` /
|
|
100
|
+
// `48` / `58` with no extended form, which sets nothing and swallows
|
|
101
|
+
// nothing.
|
|
102
|
+
const span = parts[i + 1] === '2' ? 4 : parts[i + 1] === '5' ? 2 : 0;
|
|
103
|
+
if (span > 0 && code === 48)
|
|
104
|
+
bg = parts.slice(i, i + 1 + span).join(';');
|
|
105
|
+
i += span;
|
|
106
|
+
continue;
|
|
107
|
+
}
|
|
108
|
+
if (code === 0 || code === 49) {
|
|
109
|
+
bg = null;
|
|
110
|
+
}
|
|
111
|
+
else if ((code >= 40 && code <= 47) || (code >= 100 && code <= 107)) {
|
|
112
|
+
bg = parts[i];
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
return bg;
|
|
116
|
+
}
|
|
117
|
+
/** Measure one captured row: its text, its background runs and their edges. */
|
|
118
|
+
function scanRowBackgrounds(line) {
|
|
119
|
+
ANSI_SEQUENCE.lastIndex = 0;
|
|
120
|
+
const segments = [];
|
|
121
|
+
let text = '';
|
|
122
|
+
let bg = null;
|
|
123
|
+
let columns = 0;
|
|
124
|
+
let segmentStart = 0;
|
|
125
|
+
let cursor = 0;
|
|
126
|
+
let match;
|
|
127
|
+
while ((match = ANSI_SEQUENCE.exec(line)) !== null) {
|
|
128
|
+
const chunk = line.slice(cursor, match.index);
|
|
129
|
+
text += chunk;
|
|
130
|
+
columns += (0, terminal_columns_1.visibleWidth)(chunk);
|
|
131
|
+
cursor = match.index + match[0].length;
|
|
132
|
+
const sgr = SGR_PARAMETERS.exec(match[0]);
|
|
133
|
+
if (sgr === null)
|
|
134
|
+
continue;
|
|
135
|
+
const next = applySgr(bg, sgr[1]);
|
|
136
|
+
if (next === bg)
|
|
137
|
+
continue;
|
|
138
|
+
if (columns > segmentStart)
|
|
139
|
+
segments.push({ bg, start: segmentStart, end: columns });
|
|
140
|
+
bg = next;
|
|
141
|
+
segmentStart = columns;
|
|
142
|
+
}
|
|
143
|
+
const tail = line.slice(cursor);
|
|
144
|
+
text += tail;
|
|
145
|
+
columns += (0, terminal_columns_1.visibleWidth)(tail);
|
|
146
|
+
if (columns > segmentStart)
|
|
147
|
+
segments.push({ bg, start: segmentStart, end: columns });
|
|
148
|
+
const edges = new Set(segments.map(segment => segment.start));
|
|
149
|
+
if (segments.length > 0)
|
|
150
|
+
edges.add(segments[segments.length - 1].end);
|
|
151
|
+
return { text, segments, edges, width: columns };
|
|
152
|
+
}
|
|
153
|
+
/** The background painted at one column, or `null` for the terminal default. */
|
|
154
|
+
function backgroundAt(row, column) {
|
|
155
|
+
for (const segment of row.segments) {
|
|
156
|
+
if (segment.start <= column && column < segment.end)
|
|
157
|
+
return segment.bg;
|
|
158
|
+
}
|
|
159
|
+
return null;
|
|
160
|
+
}
|
|
161
|
+
/**
|
|
162
|
+
* Every background value the row paints, ignoring how much of it each covers.
|
|
163
|
+
*
|
|
164
|
+
* The companion to {@link dominantBackground}: one says what a row is mostly
|
|
165
|
+
* painted in, the other says what it is painted in AT ALL. A caller separating
|
|
166
|
+
* a highlighted row from the panel it sits in needs both — the panel's colour
|
|
167
|
+
* is on the neighbouring rows somewhere, usually not as their dominant one
|
|
168
|
+
* (Command Code's boot banner is the exception that makes the rule readable:
|
|
169
|
+
* there the panel colour IS the dominant one on all seven of its rows).
|
|
170
|
+
*/
|
|
171
|
+
function backgroundValues(row) {
|
|
172
|
+
const values = new Set();
|
|
173
|
+
for (const segment of row.segments) {
|
|
174
|
+
if (segment.bg !== null)
|
|
175
|
+
values.add(segment.bg);
|
|
176
|
+
}
|
|
177
|
+
return values;
|
|
178
|
+
}
|
|
179
|
+
/**
|
|
180
|
+
* The background a row is mostly painted in, and how much of it that covers.
|
|
181
|
+
*
|
|
182
|
+
* "Mostly" rather than "entirely" because a painted row is not painted in one
|
|
183
|
+
* run: Command Code's selected `/model` row switches the FOREGROUND twice
|
|
184
|
+
* across the label and the description, which splits the background into three
|
|
185
|
+
* segments of the same value, and its trailing `✔` glyph is printed after the
|
|
186
|
+
* background is reset. Summing per value and taking the largest reads that as
|
|
187
|
+
* one painted row; taking the first or the widest single segment would read it
|
|
188
|
+
* as a third of one.
|
|
189
|
+
*
|
|
190
|
+
* Ties go to whichever value is encountered first, which is arbitrary and
|
|
191
|
+
* deliberately so — a row split evenly between two backgrounds is not a row
|
|
192
|
+
* painted in one, and every caller of this has a floor that such a row fails.
|
|
193
|
+
*/
|
|
194
|
+
function dominantBackground(row) {
|
|
195
|
+
const totals = new Map();
|
|
196
|
+
for (const segment of row.segments) {
|
|
197
|
+
if (segment.bg === null)
|
|
198
|
+
continue;
|
|
199
|
+
totals.set(segment.bg, (totals.get(segment.bg) ?? 0) + (segment.end - segment.start));
|
|
200
|
+
}
|
|
201
|
+
let bg = null;
|
|
202
|
+
let columns = 0;
|
|
203
|
+
for (const [value, painted] of totals) {
|
|
204
|
+
if (painted > columns) {
|
|
205
|
+
bg = value;
|
|
206
|
+
columns = painted;
|
|
207
|
+
}
|
|
208
|
+
}
|
|
209
|
+
return { bg, columns };
|
|
210
|
+
}
|
|
@@ -54,6 +54,12 @@ exports.SELECTION_LIST_REASONS = new Set([
|
|
|
54
54
|
// 1.18.21), so it is a `menu`, not something `respond <id> N` can answer.
|
|
55
55
|
status_reason_1.STATUS_REASON.OPENCODE_PERMISSION_PROMPT,
|
|
56
56
|
status_reason_1.STATUS_REASON.CLAUDE_SELECTION_LIST,
|
|
57
|
+
// Issue #2297: Command Code's picker. Its footer is a lower-case hint bar of
|
|
58
|
+
// its own (`enter to select · esc to cancel`), so it needs its own rule — and
|
|
59
|
+
// it needs to be HERE, because the alternative reading of that frame is the
|
|
60
|
+
// unclassified floor, whose controls are the answer characters and whose
|
|
61
|
+
// answer characters go into the picker's search box.
|
|
62
|
+
status_reason_1.STATUS_REASON.COMMAND_CODE_SELECTION_LIST,
|
|
57
63
|
status_reason_1.STATUS_REASON.COPILOT_SELECTION_LIST,
|
|
58
64
|
status_reason_1.STATUS_REASON.CODEX_SELECTION_LIST,
|
|
59
65
|
// Issue #1017: Codex pager/edit-previous mode also drives NavigationButtons.
|
|
@@ -46,6 +46,24 @@ exports.STATUS_REASON = {
|
|
|
46
46
|
/** Issue #1893: opencode's permission dialog — an arrow-key button strip. */
|
|
47
47
|
OPENCODE_PERMISSION_PROMPT: 'opencode_permission_prompt',
|
|
48
48
|
CLAUDE_SELECTION_LIST: 'claude_selection_list',
|
|
49
|
+
/**
|
|
50
|
+
* Issue #2297: Command Code's own picker (`/model`, and every overlay that
|
|
51
|
+
* shares its footer).
|
|
52
|
+
*
|
|
53
|
+
* Distinct from {@link STATUS_REASON.CLAUDE_SELECTION_LIST} even though
|
|
54
|
+
* Command Code renders claude's inline TUI, because the two footers are not
|
|
55
|
+
* the same sentence and neither pattern matches the other's screen: claude
|
|
56
|
+
* prints `Enter to set as default` / `Enter to confirm · Esc`, Command Code
|
|
57
|
+
* prints a lower-case `enter to select · esc to cancel` hint bar. Reporting
|
|
58
|
+
* the claude token for a Command Code frame would tell an operator reading
|
|
59
|
+
* `capture --json` that a rule they can go and read had fired, when it had not.
|
|
60
|
+
*
|
|
61
|
+
* Before this reason existed the picker reached the `default` floor, which is
|
|
62
|
+
* `isUnclassifiedActive` — and the chat surface answers THAT with the `1`-`9`
|
|
63
|
+
* / `y` / `n` answer keys, every one of which types into the picker's
|
|
64
|
+
* `Type to search models...` box.
|
|
65
|
+
*/
|
|
66
|
+
COMMAND_CODE_SELECTION_LIST: 'command_code_selection_list',
|
|
49
67
|
COPILOT_SELECTION_LIST: 'copilot_selection_list',
|
|
50
68
|
CODEX_SELECTION_LIST: 'codex_selection_list',
|
|
51
69
|
/** Issue #1017: Codex pager / edit-previous (transcript) mode. */
|
|
@@ -6,11 +6,13 @@
|
|
|
6
6
|
* and 2.8) out of `detectSessionStatus`.
|
|
7
7
|
*
|
|
8
8
|
* No `readIdleEvidence`: agy's idle branch reads the same always-visible `> `
|
|
9
|
-
* input box that #1885 showed is not evidence on its own, and
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
9
|
+
* input box that #1885 showed is not evidence on its own, and no IDLE agy frame
|
|
10
|
+
* has been captured to measure a better rule from. (Issue #2270 added live
|
|
11
|
+
* 1.1.25 captures, but only of the permission dialog and the `/model` picker —
|
|
12
|
+
* both `waiting`.) Per §4 D1 決定 1's tool-by-tool rollout (DR2-002) a tool
|
|
13
|
+
* without a measured rule keeps the pre-#1927 reading, and its rule must be read
|
|
14
|
+
* off ITS OWN frames rather than inferred from another tool's — which is exactly
|
|
15
|
+
* the mistake #1979 corrected.
|
|
14
16
|
*/
|
|
15
17
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
16
18
|
exports.antigravityStatusDetector = exports.VERIFIED_AGAINST = void 0;
|
|
@@ -31,16 +33,37 @@ exports.antigravityStatusDetector = (0, run_detection_1.createToolStatusDetector
|
|
|
31
33
|
// screen as "generating" and NavigationButtons would never be shown. Detecting the
|
|
32
34
|
// selection list here — ahead of thinking — is the fix. Mirrors the Copilot /
|
|
33
35
|
// Codex early-detection pattern.
|
|
34
|
-
if (cli_patterns_1.ANTIGRAVITY_SELECTION_LIST_PATTERN.test(frame.lastLines))
|
|
35
|
-
return
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
36
|
+
if (!cli_patterns_1.ANTIGRAVITY_SELECTION_LIST_PATTERN.test(frame.lastLines))
|
|
37
|
+
return null;
|
|
38
|
+
// Issue #2270: except when the frame is the NUMBERED permission dialog.
|
|
39
|
+
//
|
|
40
|
+
// #997 widened the pattern above to the bare `↑/↓ Navigate` footer so the
|
|
41
|
+
// "Do you want to proceed?" menu would reach this branch — but this branch
|
|
42
|
+
// answers `hasActivePrompt: false` and a reason in `SELECTION_LIST_REASONS`,
|
|
43
|
+
// and those two are what the chat surface turns into "a selection list is
|
|
44
|
+
// open, drive it from the terminal" plus a pair of arrow buttons. Enter on
|
|
45
|
+
// those approves the highlighted option 1; nothing on that surface could
|
|
46
|
+
// reach 2-4. Meanwhile the poller stored the SAME frame as a `prompt` row
|
|
47
|
+
// with four `multiple_choice` options and the push notification sent
|
|
48
|
+
// `kind: 'prompt'` — one screen, two answers.
|
|
49
|
+
//
|
|
50
|
+
// Returning null hands the frame to priority 1, where `detectPrompt` with
|
|
51
|
+
// `buildDetectPromptOptions('antigravity')` already reads it as that same
|
|
52
|
+
// 4-option `multiple_choice` (Issue #999). That is what puts
|
|
53
|
+
// `hasActivePrompt: true` and `promptData` on the wire, so PromptPanel and
|
|
54
|
+
// the legacy Auto-Yes path both work and all three producers agree.
|
|
55
|
+
//
|
|
56
|
+
// #995's own case is untouched: the Switch Model picker carries no numbered
|
|
57
|
+
// rows, so it still resolves here and still keeps NavigationButtons.
|
|
58
|
+
if ((0, cli_patterns_1.isAntigravityNumberedDialog)(frame.lastLines))
|
|
59
|
+
return null;
|
|
60
|
+
return {
|
|
61
|
+
status: 'waiting',
|
|
62
|
+
confidence: 'high',
|
|
63
|
+
reason: status_reason_1.STATUS_REASON.ANTIGRAVITY_SELECTION_LIST,
|
|
64
|
+
hasActivePrompt: false,
|
|
65
|
+
evidence: 'positive',
|
|
66
|
+
};
|
|
44
67
|
},
|
|
45
68
|
afterThinking(frame) {
|
|
46
69
|
// 2.8. Antigravity (agy) footer-based detection (Issue #988)
|