commandmate 0.31.2 → 0.32.0
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 +454 -440
- package/.next/app-path-routes-manifest.json +31 -29
- package/.next/build-manifest.json +5 -5
- package/.next/prerender-manifest.json +12 -12
- package/.next/react-loadable-manifest.json +2 -2
- package/.next/required-server-files.json +1 -1
- package/.next/routes-manifest.json +8 -0
- 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.js.nft.json +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 +1 -32
- 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 +2 -33
- 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.js.nft.json +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 +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 +2 -2
- package/.next/server/app/api/push/escalation/route.js.nft.json +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 +1 -1
- package/.next/server/app/api/push/subscriptions/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/push/vapid/route.js +2 -2
- package/.next/server/app/api/push/vapid/route.js.nft.json +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 -0
- package/.next/server/app/api/relays/[relayId]/cancel/route.js.nft.json +1 -0
- package/.next/server/app/api/relays/[relayId]/cancel/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/relays/route.js +1 -0
- package/.next/server/app/api/relays/route.js.nft.json +1 -0
- package/.next/server/app/api/relays/route_client-reference-manifest.js +1 -0
- 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.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.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.js.nft.json +1 -1
- package/.next/server/app/api/skills/[id]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/skills/installations/route.js +1 -1
- package/.next/server/app/api/skills/installations/route.js.nft.json +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.js.nft.json +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.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.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.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.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.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 +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.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.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_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.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.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.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.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.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.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.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.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.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 +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.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.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.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 +2 -1
- 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 +2 -1
- 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.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 +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 +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 +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 +103 -1
- 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.js.nft.json +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.js.nft.json +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.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 +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.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.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.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.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 +31 -29
- package/.next/server/chunks/1191.js +1 -1
- package/.next/server/chunks/1210.js +1 -0
- package/.next/server/chunks/153.js +1 -0
- package/.next/server/chunks/1886.js +1 -1
- package/.next/server/chunks/21.js +1 -0
- package/.next/server/chunks/2119.js +1 -1
- package/.next/server/chunks/2445.js +1 -1
- package/.next/server/chunks/3077.js +67 -0
- package/.next/server/chunks/3086.js +1 -0
- package/.next/server/chunks/3241.js +1 -1
- package/.next/server/chunks/3270.js +1 -0
- package/.next/server/chunks/3543.js +1 -1
- package/.next/server/chunks/3730.js +1 -0
- package/.next/server/chunks/3925.js +1 -0
- package/.next/server/chunks/3945.js +1 -1
- package/.next/server/chunks/4443.js +2 -1
- package/.next/server/chunks/5043.js +1 -1
- package/.next/server/chunks/5164.js +1 -1
- package/.next/server/chunks/5220.js +1 -1
- package/.next/server/chunks/5354.js +1 -1
- package/.next/server/chunks/595.js +8 -0
- package/.next/server/chunks/6286.js +48 -0
- package/.next/server/chunks/6306.js +1 -0
- package/.next/server/chunks/6363.js +1 -0
- package/.next/server/chunks/6401.js +1 -1
- package/.next/server/chunks/6491.js +103 -0
- package/.next/server/chunks/6661.js +1 -0
- package/.next/server/chunks/6838.js +1 -0
- package/.next/server/chunks/7875.js +25 -0
- package/.next/server/chunks/7890.js +1 -0
- package/.next/server/chunks/8063.js +32 -0
- package/.next/server/chunks/8118.js +1 -1
- package/.next/server/chunks/{7587.js → 8554.js} +1 -1
- package/.next/server/chunks/8687.js +1 -0
- package/.next/server/chunks/8800.js +1 -1
- package/.next/server/chunks/8807.js +37 -3
- package/.next/server/chunks/8918.js +6 -4
- package/.next/server/chunks/9123.js +2 -2
- package/.next/server/chunks/9130.js +2 -2
- package/.next/server/chunks/9584.js +1 -1
- package/.next/server/chunks/9627.js +22 -6
- package/.next/server/middleware-build-manifest.js +1 -1
- 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/UIUPchtWvcEuQgcbGJv4g/_buildManifest.js +1 -0
- package/.next/static/chunks/{5694.dda65070757534df.js → 3313.53f7ff985c0c8852.js} +1 -1
- package/.next/static/chunks/4718-0053d42fb635e700.js +1 -0
- package/.next/static/chunks/{4974-35592ec312322124.js → 5694-498765336d0b8c2b.js} +1 -1
- package/.next/static/chunks/{7485.442b21101fca7257.js → 7485.52361bc061cc663a.js} +1 -1
- package/.next/static/chunks/8019-cbf130d0e6334d2d.js +1 -0
- package/.next/static/chunks/8361-9bb887203c456edb.js +1 -0
- package/.next/static/chunks/8772-9be53a530950d804.js +1 -0
- package/.next/static/chunks/998-ac0ded6d5eeb4dc0.js +1 -0
- package/.next/static/chunks/app/api/agents/update/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/agents/versions/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/app/update/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/app/update-check/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/assistant/conversation/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/assistant/current-output/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/assistant/messages/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/assistant/session/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/assistant/start/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/assistant/terminal/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/assistant/tools/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/auth/login/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/auth/logout/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/auth/status/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/capabilities/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/daily-summary/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/daily-summary/status/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/external-apps/[id]/health/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/external-apps/[id]/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/external-apps/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/fs/browse/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/fs/recent-paths/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/hooks/agent-event/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/hooks/claude-done/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/hooks/permission-request/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/metrics/vibe/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/ollama/models/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/push/escalation/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/push/subscriptions/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/push/vapid/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/relays/[relayId]/cancel/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/relays/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/remote/pair/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/repositories/[id]/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/repositories/[id]/todos/[todoId]/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/repositories/[id]/todos/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/repositories/clone/[jobId]/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/repositories/clone/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/repositories/excluded/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/repositories/restore/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/repositories/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/repositories/scan/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/repositories/sync/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/repositories/validate-path/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/settings/default-agents/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/settings/default-surface-mode/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/sidebar/group-order/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/skills/[id]/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/skills/installations/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/skills/operations/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/skills/reindex/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/skills/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/slash-commands/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/tasks/[taskId]/cancel/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/tasks/[taskId]/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/templates/[id]/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/templates/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/todos/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/verification/runs/[runId]/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/verification/runs/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/auto-yes/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/capture/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/clear-composer/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/cli-reference/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/cli-tool/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/cmate/schedules/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/current-output/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/env/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/execution-logs/[logId]/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/execution-logs/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/files/[...path]/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/branch/create/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/branch/delete/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/branches/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/checkout/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/commit/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/diff/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/fetch/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/log/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/pull/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/push/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/reset/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/revert/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/show/[commitHash]/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/stage/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/staged/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/stash/[index]/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/stash/apply/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/stash/pop/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/stash/push/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/stash/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/status/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/unstage/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/working-diff/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/instances/opencode/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/interrupt/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/kill-session/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/logs/[filename]/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/logs/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/marp-render/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/memos/[memoId]/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/memos/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/messages/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/opencode/diff/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/opencode/session/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/opencode/share/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/prompt-response/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/resolve-target/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/respond/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/schedules/[scheduleId]/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/schedules/active/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/schedules/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/search/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/send/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/git-workflow/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/install/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/plan/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/uninstall/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/uninstall-plan/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/update/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/update-plan/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/skills/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/slash-commands/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/special-keys/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/tasks/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/terminal/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/timers/history/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/timers/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/todos/[todoId]/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/todos/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/tree/[...path]/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/tree/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/upload/[...path]/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/verify/config/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/verify/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/verify/runs/[runId]/cancel/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/verify/runs/[runId]/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/verify/runs/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/viewed/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/worktrees/apply-default-agents/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/worktrees/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/chat/{page-37d7615d17d7e2a0.js → page-e60d07c4c79602f0.js} +1 -1
- package/.next/static/chunks/app/manifest.webmanifest/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/more/{page-353a3924e6d7968e.js → page-fc94f86aa881489e.js} +1 -1
- package/.next/static/chunks/app/{page-c2bf871d953a1d6f.js → page-6871cca022b24807.js} +1 -1
- package/.next/static/chunks/app/proxy/[...path]/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/repositories/{page-7d0f26df0537254c.js → page-788ded1b72963d94.js} +1 -1
- package/.next/static/chunks/app/review/{page-e3f141b2829973e9.js → page-35b99baaf3c93b38.js} +1 -1
- package/.next/static/chunks/app/sessions/{page-53f188ed9ca49e5f.js → page-fa2d62f3e8436c69.js} +1 -1
- package/.next/static/chunks/app/skills/[skillId]/{page-80569b720aea59cc.js → page-06799157652e8fa9.js} +1 -1
- package/.next/static/chunks/app/skills/installed/{page-dbd2690ad72da95b.js → page-2f3987e3a131c8d0.js} +1 -1
- package/.next/static/chunks/app/skills/{page-dacd36f9c11aa7da.js → page-e70bfcf5ed4e4865.js} +1 -1
- package/.next/static/chunks/app/worktrees/[id]/layout-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/worktrees/[id]/page-06e1ff5ce2d126fd.js +1 -0
- package/.next/static/chunks/webpack-1dc9eb5ebb4fa5ff.js +1 -0
- package/.next/static/css/96d94a4ba771efc3.css +1 -0
- package/.next/trace +13 -13
- package/.next/types/app/api/relays/[relayId]/cancel/route.ts +347 -0
- package/.next/types/app/api/relays/route.ts +347 -0
- package/.next/types/routes.d.ts +3 -1
- package/.next/types/validator.ts +18 -0
- package/dist/cli/commands/ask.d.ts +34 -0
- package/dist/cli/commands/ask.d.ts.map +1 -0
- package/dist/cli/commands/ask.js +494 -0
- package/dist/cli/commands/capture.d.ts +20 -0
- package/dist/cli/commands/capture.d.ts.map +1 -1
- package/dist/cli/commands/capture.js +80 -30
- package/dist/cli/commands/docs.d.ts.map +1 -1
- package/dist/cli/commands/docs.js +47 -4
- package/dist/cli/commands/instances.d.ts +67 -0
- package/dist/cli/commands/instances.d.ts.map +1 -1
- package/dist/cli/commands/instances.js +103 -7
- package/dist/cli/commands/peers.d.ts +64 -0
- package/dist/cli/commands/peers.d.ts.map +1 -0
- package/dist/cli/commands/peers.js +196 -0
- package/dist/cli/commands/relays.d.ts +92 -0
- package/dist/cli/commands/relays.d.ts.map +1 -0
- package/dist/cli/commands/relays.js +293 -0
- package/dist/cli/commands/report.d.ts +3 -0
- package/dist/cli/commands/report.d.ts.map +1 -1
- package/dist/cli/commands/report.js +29 -1
- package/dist/cli/commands/respond.d.ts.map +1 -1
- package/dist/cli/commands/respond.js +13 -10
- package/dist/cli/commands/send.d.ts.map +1 -1
- package/dist/cli/commands/send.js +66 -20
- package/dist/cli/commands/task.d.ts.map +1 -1
- package/dist/cli/commands/task.js +30 -0
- package/dist/cli/commands/wait.d.ts +20 -0
- package/dist/cli/commands/wait.d.ts.map +1 -1
- package/dist/cli/commands/wait.js +55 -6
- package/dist/cli/commands/whoami.d.ts +109 -0
- package/dist/cli/commands/whoami.d.ts.map +1 -0
- package/dist/cli/commands/whoami.js +271 -0
- package/dist/cli/docs/agent-operations.d.ts +25 -1
- package/dist/cli/docs/agent-operations.d.ts.map +1 -1
- package/dist/cli/docs/agent-operations.js +184 -1
- package/dist/cli/index.d.ts +13 -0
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +25 -1
- package/dist/cli/types/api-responses.d.ts +93 -0
- package/dist/cli/types/api-responses.d.ts.map +1 -1
- package/dist/cli/types/index.d.ts +16 -0
- package/dist/cli/types/index.d.ts.map +1 -1
- package/dist/lib/cli/command-reference.d.ts +179 -0
- package/dist/lib/cli/command-reference.d.ts.map +1 -0
- package/dist/lib/cli/command-reference.js +210 -0
- package/dist/lib/detection/ansi.d.ts +14 -1
- package/dist/lib/detection/ansi.d.ts.map +1 -1
- package/dist/lib/detection/ansi.js +40 -3
- package/dist/lib/detection/status-reason.d.ts +28 -0
- package/dist/lib/detection/status-reason.d.ts.map +1 -1
- package/dist/lib/detection/status-reason.js +28 -0
- package/dist/lib/detection/tools/verified-against.d.ts +24 -24
- package/dist/lib/detection/tools/verified-against.js +24 -24
- package/dist/server/locales/en/worktree.json +1425 -0
- package/dist/server/locales/ja/worktree.json +1425 -0
- package/dist/server/src/lib/auto-yes-poller.js +26 -11
- package/dist/server/src/lib/db/chat-db.js +204 -7
- package/dist/server/src/lib/db/migrations/index.js +2 -0
- package/dist/server/src/lib/db/migrations/runner.js +1 -1
- package/dist/server/src/lib/db/migrations/v60-session-relays.js +110 -0
- package/dist/server/src/lib/db/relay-db.js +343 -0
- package/dist/server/src/lib/detection/ansi.js +40 -3
- package/dist/server/src/lib/detection/cli-patterns.js +157 -23
- package/dist/server/src/lib/detection/model-info-extractor.js +185 -4
- package/dist/server/src/lib/detection/selection-shape.js +72 -1
- package/dist/server/src/lib/detection/status-reason.js +28 -0
- package/dist/server/src/lib/detection/tools/antigravity/detect.js +105 -25
- package/dist/server/src/lib/detection/tools/antigravity/dialog.js +239 -0
- package/dist/server/src/lib/detection/tools/command-code/detect.js +33 -0
- package/dist/server/src/lib/detection/tools/verified-against.js +24 -24
- package/dist/server/src/lib/history/user-turn-recorder.js +79 -16
- package/dist/server/src/lib/hooks/hook-settings-generator.js +16 -0
- package/dist/server/src/lib/hooks/sources/claude/model-switch.js +169 -0
- package/dist/server/src/lib/hooks/sources/claude/source.js +14 -1
- package/dist/server/src/lib/polling/response-checker.js +55 -2
- package/dist/server/src/lib/polling/structured-history-gate.js +14 -1
- package/dist/server/src/lib/push/index.js +13 -1
- package/dist/server/src/lib/push/model-change-push-notifier.js +174 -0
- package/dist/server/src/lib/push/push-sender.js +48 -20
- package/dist/server/src/lib/realtime/model-change-broadcast.js +171 -0
- package/dist/server/src/lib/realtime/terminal-broadcast.js +5 -0
- package/dist/server/src/lib/realtime/types.js +19 -1
- package/dist/server/src/lib/realtime/waiting-broadcast.js +25 -0
- package/dist/server/src/lib/relay/relay-delivery.js +400 -0
- package/dist/server/src/lib/relay/relay-messages.js +144 -0
- package/dist/server/src/lib/relay/relay-policy.js +127 -0
- package/dist/server/src/lib/relay/relay-readiness.js +63 -0
- package/dist/server/src/lib/relay/relay-session-ref.js +72 -0
- package/dist/server/src/lib/relay/relay-system-line.js +79 -0
- package/dist/server/src/lib/relay/relay-triggers.js +177 -0
- package/dist/server/src/lib/relay/types.js +25 -0
- package/dist/server/src/lib/session/agent-event-state.js +344 -12
- package/dist/server/src/lib/session/current-output-builder.js +18 -0
- package/dist/server/src/lib/session/send-user-message.js +1 -0
- package/package.json +1 -1
- package/.next/server/chunks/1058.js +0 -1
- package/.next/server/chunks/1068.js +0 -1
- package/.next/server/chunks/1990.js +0 -103
- package/.next/server/chunks/261.js +0 -1
- package/.next/server/chunks/2739.js +0 -1
- package/.next/server/chunks/2839.js +0 -1
- package/.next/server/chunks/3869.js +0 -1
- package/.next/server/chunks/4325.js +0 -1
- package/.next/server/chunks/4393.js +0 -1
- package/.next/server/chunks/5017.js +0 -1
- package/.next/server/chunks/5120.js +0 -1
- package/.next/server/chunks/552.js +0 -25
- package/.next/server/chunks/6130.js +0 -1
- package/.next/server/chunks/6894.js +0 -8
- package/.next/server/chunks/7187.js +0 -1
- package/.next/server/chunks/7472.js +0 -1
- package/.next/server/chunks/7836.js +0 -1
- package/.next/server/chunks/7859.js +0 -21
- package/.next/server/chunks/9696.js +0 -3
- package/.next/server/chunks/9798.js +0 -2
- package/.next/static/GiOqe8rfQGQ0NvzB5qr3q/_buildManifest.js +0 -1
- package/.next/static/chunks/1783-11c9b4d8a52ebd91.js +0 -1
- package/.next/static/chunks/4718-0d4d93c4c75f336e.js +0 -1
- package/.next/static/chunks/6170-951b9f5fe6b4b3b5.js +0 -1
- package/.next/static/chunks/8019-f8e73c1fb5f6f0d3.js +0 -1
- package/.next/static/chunks/8593-fa0eb2802e0ce68a.js +0 -1
- package/.next/static/chunks/app/api/agents/update/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/agents/versions/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/app/update/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/app/update-check/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/assistant/conversation/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/assistant/current-output/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/assistant/messages/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/assistant/session/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/assistant/start/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/assistant/terminal/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/assistant/tools/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/auth/login/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/auth/logout/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/auth/status/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/capabilities/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/daily-summary/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/daily-summary/status/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/external-apps/[id]/health/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/external-apps/[id]/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/external-apps/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/fs/browse/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/fs/recent-paths/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/hooks/agent-event/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/hooks/claude-done/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/hooks/permission-request/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/metrics/vibe/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/ollama/models/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/push/escalation/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/push/subscriptions/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/push/vapid/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/remote/pair/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/repositories/[id]/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/repositories/[id]/todos/[todoId]/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/repositories/[id]/todos/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/repositories/clone/[jobId]/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/repositories/clone/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/repositories/excluded/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/repositories/restore/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/repositories/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/repositories/scan/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/repositories/sync/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/repositories/validate-path/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/settings/default-agents/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/settings/default-surface-mode/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/sidebar/group-order/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/skills/[id]/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/skills/installations/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/skills/operations/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/skills/reindex/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/skills/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/slash-commands/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/tasks/[taskId]/cancel/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/tasks/[taskId]/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/templates/[id]/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/templates/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/todos/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/verification/runs/[runId]/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/verification/runs/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/auto-yes/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/capture/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/clear-composer/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/cli-reference/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/cli-tool/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/cmate/schedules/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/current-output/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/env/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/execution-logs/[logId]/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/execution-logs/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/files/[...path]/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/branch/create/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/branch/delete/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/branches/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/checkout/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/commit/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/diff/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/fetch/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/log/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/pull/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/push/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/reset/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/revert/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/show/[commitHash]/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/stage/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/staged/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/stash/[index]/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/stash/apply/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/stash/pop/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/stash/push/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/stash/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/status/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/unstage/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/working-diff/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/instances/opencode/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/interrupt/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/kill-session/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/logs/[filename]/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/logs/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/marp-render/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/memos/[memoId]/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/memos/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/messages/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/opencode/diff/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/opencode/session/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/opencode/share/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/prompt-response/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/resolve-target/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/respond/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/schedules/[scheduleId]/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/schedules/active/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/schedules/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/search/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/send/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/git-workflow/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/install/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/plan/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/uninstall/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/uninstall-plan/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/update/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/update-plan/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/skills/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/slash-commands/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/special-keys/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/tasks/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/terminal/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/timers/history/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/timers/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/todos/[todoId]/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/todos/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/tree/[...path]/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/tree/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/upload/[...path]/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/verify/config/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/verify/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/verify/runs/[runId]/cancel/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/verify/runs/[runId]/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/verify/runs/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/viewed/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/worktrees/apply-default-agents/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/worktrees/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/manifest.webmanifest/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/proxy/[...path]/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/worktrees/[id]/layout-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/worktrees/[id]/page-7a0915e32a2af4d3.js +0 -1
- package/.next/static/chunks/webpack-9f75198882fdaf08.js +0 -1
- package/.next/static/css/5c13ea243dfdcb66.css +0 -1
- /package/.next/static/{GiOqe8rfQGQ0NvzB5qr3q → UIUPchtWvcEuQgcbGJv4g}/_ssgManifest.js +0 -0
|
@@ -35,6 +35,7 @@
|
|
|
35
35
|
* |-------------|------------------------------------------------------------------|
|
|
36
36
|
* | codex | footer: `gpt-5.6-sol xhigh · ~/share/work/…` |
|
|
37
37
|
* | claude | banner: `▝▜█████▛▘ Opus 5 (1M context) with xhigh effort · Claude Max` |
|
|
38
|
+
* | claude | switch: ` ⎿ Set model to Sonnet 5 for this session only` (#2361) |
|
|
38
39
|
* | antigravity | footer: `? for shortcuts … Gemini 3.7 Flash · hig` |
|
|
39
40
|
* | antigravity | banner: ` ▀▀▀▀▀▀▀▀ Gemini 3.7 Flash (High)` |
|
|
40
41
|
* | copilot | footer: `← open sidebar · … · tab next tab GPT-5 mini · Medium` |
|
|
@@ -60,7 +61,7 @@
|
|
|
60
61
|
* @see Issue #1784, Phase 2 of the model/effort visibility series
|
|
61
62
|
*/
|
|
62
63
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
63
|
-
exports.ANTIGRAVITY_MODEL_ID_EFFORT_PATTERN = exports.OPENCODE_STEP_MODEL_PATTERN = exports.COPILOT_MODEL_CHANGE_PATTERN = exports.ANTIGRAVITY_BANNER_MODEL_PATTERN = exports.ANTIGRAVITY_STATUS_BAR_HINT_PATTERN = exports.CLAUDE_STARTUP_BANNER_PATTERN = exports.CODEX_FOOTER_MODEL_PATTERN = exports.REASONING_EFFORT_LEVELS = void 0;
|
|
64
|
+
exports.ANTIGRAVITY_MODEL_ID_EFFORT_PATTERN = exports.COMMAND_CODE_BANNER_MODELS_PATTERN = exports.OPENCODE_STEP_MODEL_PATTERN = exports.COPILOT_MODEL_CHANGE_PATTERN = exports.ANTIGRAVITY_BANNER_MODEL_PATTERN = exports.ANTIGRAVITY_STATUS_BAR_HINT_PATTERN = exports.CLAUDE_MODEL_SWITCH_PATTERN = exports.CLAUDE_STARTUP_BANNER_PATTERN = exports.CODEX_FOOTER_MODEL_PATTERN = exports.REASONING_EFFORT_LEVELS = void 0;
|
|
64
65
|
exports.resolveEffortToken = resolveEffortToken;
|
|
65
66
|
exports.extractModelInfo = extractModelInfo;
|
|
66
67
|
exports.deriveEffortFromModelId = deriveEffortFromModelId;
|
|
@@ -219,6 +220,89 @@ function readClaudeBanner(line) {
|
|
|
219
220
|
return null;
|
|
220
221
|
return { model, effort: resolveEffortToken(match[2]) };
|
|
221
222
|
}
|
|
223
|
+
/**
|
|
224
|
+
* Reads `<model>[ with <effort> effort]` off the line Claude prints when the
|
|
225
|
+
* session's model changes (Issue #2361).
|
|
226
|
+
*
|
|
227
|
+
* Measured live on claude 2.1.263 for this Issue
|
|
228
|
+
* (`tests/fixtures/claude-model-switch-2361/`, and that directory's README).
|
|
229
|
+
* The confirmation is the `⎿` stdout row under the `/model` command, in the
|
|
230
|
+
* same place for the picker (`Enter` / `s`) and for `/model <arg>`:
|
|
231
|
+
*
|
|
232
|
+
* ` ⎿ Set model to Sonnet 5 for this session only`
|
|
233
|
+
* ` ⎿ Set model to Haiku 4.5 and saved as your default for new sessions`
|
|
234
|
+
* ` ⎿ Set model to Opus 5 (1M context) and saved as your default for new sessions with high effort`
|
|
235
|
+
* ` ⎿ Kept model as Haiku 4.5` (picker closed with Esc)
|
|
236
|
+
*
|
|
237
|
+
* **The Issue's starting point (`selection-shape.ts`, "Set model to Sonnet 5
|
|
238
|
+
* and saved as your default for new sessions") is one of three suffixes, not
|
|
239
|
+
* the line.** What was measured beyond it:
|
|
240
|
+
*
|
|
241
|
+
* - **The scope suffix comes BEFORE the effort.** `… and saved as your default
|
|
242
|
+
* for new sessions with high effort` — the effort is appended only when the
|
|
243
|
+
* picker's `←/→` row was moved, and is absent otherwise even though the
|
|
244
|
+
* session has one. So the effort is read when printed and left null when
|
|
245
|
+
* not, and `recordCapturedModelInfo` keeps the previous effort — the
|
|
246
|
+
* Issue's rule 3.
|
|
247
|
+
* - **`Kept model as` is the Esc outcome** and names the current model. It is
|
|
248
|
+
* read for the same reason the banner is: it is the TUI stating the model,
|
|
249
|
+
* and on a session whose banner scrolled away it is the only thing on screen
|
|
250
|
+
* that does.
|
|
251
|
+
* - **The banner is rewritten in place on every switch** (fullscreen and
|
|
252
|
+
* inline alike): `Fable 5.1 with xhigh effort` became `Sonnet 5 with xhigh
|
|
253
|
+
* effort` on the same row, `history_size` unchanged — and `/effort` and
|
|
254
|
+
* `/fast` rewrite it too. That decides the precedence in
|
|
255
|
+
* {@link extractModelInfo}: **the banner wins while it is on screen, the
|
|
256
|
+
* line is the fallback for when it is gone**
|
|
257
|
+
* (`fullscreen-switch-sonnet-banner-scrolled.txt`). The Issue asked for
|
|
258
|
+
* "whichever is lower", on the premise that the banner is static; measured,
|
|
259
|
+
* that rule answers the STALE model on `fullscreen-fast-on.txt` — the
|
|
260
|
+
* lowest confirmation there is `Kept model as Haiku 4.5`, printed before a
|
|
261
|
+
* `/fast` moved the session to Opus and rewrote the banner above it to
|
|
262
|
+
* `Opus 5 (1M context) with high effort`.
|
|
263
|
+
* - **Haiku's rewritten banner has no effort clause** (`Haiku 4.5 · API Usage
|
|
264
|
+
* Billing`), so {@link CLAUDE_STARTUP_BANNER_PATTERN} does not read it and
|
|
265
|
+
* the confirmation line is what publishes the model there. The banner
|
|
266
|
+
* pattern is deliberately not widened: without the `with … effort` anchor
|
|
267
|
+
* a box-framed table row containing ` · ` would read as a banner.
|
|
268
|
+
* - **`/fast` prints `⎿ ↯ Fast mode ON · model set to Opus 5 · $10/$50 per
|
|
269
|
+
* Mtok` and is a model switch** (`PostModelSwitch` reported
|
|
270
|
+
* `claude-fable-5-1` → `claude-opus-5[1m]` on the same keypress). It is NOT
|
|
271
|
+
* read: the line spells the model `Opus 5` where the banner and `Kept model
|
|
272
|
+
* as` spell it `Opus 5 (1M context)`, and within one channel #2357's
|
|
273
|
+
* identity rule is exact, so reading it would announce a second, spurious
|
|
274
|
+
* "change" the next time the fuller spelling appears. While the banner is
|
|
275
|
+
* on screen the rewrite covers `/fast`; once it is gone the switch is
|
|
276
|
+
* missed by this reader until the next `/model` line. Issue #2363 closed
|
|
277
|
+
* that gap on the structured side: `PostModelSwitch` is registered and
|
|
278
|
+
* reports `/fast` as `to_model: "claude-opus-5[1m]"` — one spelling, no
|
|
279
|
+
* drift — so this reader stays the fallback for sessions the hook does not
|
|
280
|
+
* reach (`lib/hooks/sources/claude/model-switch`).
|
|
281
|
+
*
|
|
282
|
+
* The `⎿` marker is required. Claude's own prose shares the pane with its
|
|
283
|
+
* chrome, and the 2.1.263 release notes alone contain 75 rows that mention
|
|
284
|
+
* a model (`fullscreen-switch-line-scrolled.txt`, which must read as unknown);
|
|
285
|
+
* the marker is what local-command output carries and prose does not. A value
|
|
286
|
+
* read here latches for the rest of the session.
|
|
287
|
+
*
|
|
288
|
+
* No /g. No nested quantifiers: the lazy label class is bounded by three
|
|
289
|
+
* literal-anchored alternatives and the end of the row; the `[^·]*` after the
|
|
290
|
+
* effort admits the parenthesised `(the effort applies to this session only)`
|
|
291
|
+
* note the binary can append, and stops at the `·` that opens the fast-mode
|
|
292
|
+
* / usage-credit suffixes. The lookahead keeps a row with no name at all from
|
|
293
|
+
* reading its own suffix as one. `ultracode` resolves to no
|
|
294
|
+
* {@link ReasoningEffort} and answers null, like Command Code's `max`.
|
|
295
|
+
*/
|
|
296
|
+
exports.CLAUDE_MODEL_SWITCH_PATTERN = /^\s*⎿\s+(?:Set model to|Kept model as)\s+(?!(?:and saved as your default|for this session only)\b)([A-Za-z0-9][A-Za-z0-9 .()[\]_:@/-]*?)(?:\s+(?:and saved as your default for new sessions|for this session only))?(?:\s+with\s+([A-Za-z]+)\s+effort\b[^·]*)?\s*(?:·.*)?$/;
|
|
297
|
+
function readClaudeModelSwitchLine(line) {
|
|
298
|
+
const match = exports.CLAUDE_MODEL_SWITCH_PATTERN.exec(line);
|
|
299
|
+
if (!match)
|
|
300
|
+
return null;
|
|
301
|
+
const model = match[1].trim();
|
|
302
|
+
if (!isPlausibleModelLabel(model))
|
|
303
|
+
return null;
|
|
304
|
+
return { model, effort: match[2] ? resolveEffortToken(match[2]) : null };
|
|
305
|
+
}
|
|
222
306
|
// =============================================================================
|
|
223
307
|
// Antigravity
|
|
224
308
|
// =============================================================================
|
|
@@ -452,14 +536,95 @@ function readOpencodeStepMarker(line) {
|
|
|
452
536
|
return isPlausibleModelLabel(model) ? { model, effort: null } : null;
|
|
453
537
|
}
|
|
454
538
|
// =============================================================================
|
|
539
|
+
// Command Code (Issue #2358)
|
|
540
|
+
// =============================================================================
|
|
541
|
+
/**
|
|
542
|
+
* Reads `<model>[ with <effort> effort]` off the `# models:` row of the Command
|
|
543
|
+
* Code startup banner (Issue #2358).
|
|
544
|
+
*
|
|
545
|
+
* Command Code's hooks carry no model at all
|
|
546
|
+
* (`src/lib/hooks/sources/command-code/source.ts`: no `model` key on any
|
|
547
|
+
* captured payload), so the banner is the only place the value exists. It is
|
|
548
|
+
* the same three rows on 1.40.1, 1.47.1 and 1.49.0, straight under the
|
|
549
|
+
* block-art logo:
|
|
550
|
+
*
|
|
551
|
+
* `# Command Code v1.49.0`
|
|
552
|
+
* `# models: deepseek-v4-flash-(latest) · taste-1`
|
|
553
|
+
* `# /path/to/cwd`
|
|
554
|
+
*
|
|
555
|
+
* **The Issue text says the row is `<model> · <taste>` and that there is no
|
|
556
|
+
* effort. The pane says otherwise.** Measured live on 1.49.0 for this Issue
|
|
557
|
+
* (`tests/fixtures/chat-dialog-card-2254/command-code-model-1-49-0-*.txt`, and
|
|
558
|
+
* that directory's README): the `/model` picker is followed by a second screen,
|
|
559
|
+
* `Select reasoning effort for <model>`
|
|
560
|
+
* (`Default` / `low` / `high` / `max`, the set varying by model), and a
|
|
561
|
+
* non-default choice is printed into the banner —
|
|
562
|
+
*
|
|
563
|
+
* `# models: deepseek-v4-pro-(latest) with high effort · taste-1`
|
|
564
|
+
* `# models: deepseek-v4-flash-(latest) with max effort · taste-1` (also at launch, from config)
|
|
565
|
+
* `# models: kimi-k3 with low effort · taste-1`
|
|
566
|
+
*
|
|
567
|
+
* — while `Default` prints the bare form the 18 earlier fixtures show. So:
|
|
568
|
+
*
|
|
569
|
+
* - **The model is everything before ` with ` / ` · `, kept verbatim.** The
|
|
570
|
+
* `(latest)` suffix is part of the id — it is how the picker spells the same
|
|
571
|
+
* entry (`DeepSeek V4 Flash (latest)`), so stripping it would publish a name
|
|
572
|
+
* the picker never shows. `MODEL_LABEL_SHAPE` admits the parentheses; the
|
|
573
|
+
* bare token shape does not.
|
|
574
|
+
* - **`taste-1` is not a model.** It is Command Code's "taste" setting (the
|
|
575
|
+
* footer reads `? for shortcuts · taste on`), so everything from the dot on
|
|
576
|
+
* is dropped, and the dot itself is optional.
|
|
577
|
+
* - **The effort is read when the banner prints one, through the shared
|
|
578
|
+
* vocabulary.** `low` / `high` resolve; `max` is not a
|
|
579
|
+
* {@link ReasoningEffort} and answers null rather than widening a list every
|
|
580
|
+
* other reader and the UI type depend on. The model half is published either
|
|
581
|
+
* way: the ` with … effort` frame delimits it cleanly, so nothing is
|
|
582
|
+
* half-read.
|
|
583
|
+
*
|
|
584
|
+
* ## After a `/model` switch (measured, 1.49.0)
|
|
585
|
+
*
|
|
586
|
+
* Command Code renders inline (`#{alternate_on}` is 0) and on a **model**
|
|
587
|
+
* change it re-emits its whole output, banner included, without growing the
|
|
588
|
+
* history: the `# models:` row was rewritten in place both while it sat on
|
|
589
|
+
* screen and after 1100 transcript rows had pushed it into scrollback. So
|
|
590
|
+
* bottom-up scanning is the whole rule, and a switch is visible on the next
|
|
591
|
+
* poll for as long as the banner is inside the captured window
|
|
592
|
+
* (`STATUS_DETECTION_CAPTURE_LINES` = 1000 rows from the bottom —
|
|
593
|
+
* `…-switch-banner-scrolled.txt` is a frame past that point, and answers
|
|
594
|
+
* unknown so the latch keeps the pre-switch value).
|
|
595
|
+
*
|
|
596
|
+
* An **effort-only** change on the current model does NOT rewrite the row: in
|
|
597
|
+
* three trials (`max`→`high`, `high`→`max`, `max`→`Default`) the banner kept the
|
|
598
|
+
* effort it first showed for that model, while `config.json` did change. That
|
|
599
|
+
* is a Command Code display defect, and this reader mirrors the screen — the
|
|
600
|
+
* effort published for a model is the one its banner row shows, which is the
|
|
601
|
+
* launch value or the value chosen when the model was first picked.
|
|
602
|
+
*
|
|
603
|
+
* No /g. No nested quantifiers: the lazy `[^·]+?` is bounded by the literal
|
|
604
|
+
* ` with `, the literal `·`, or the end of the line; the optional effort group
|
|
605
|
+
* is anchored on two literals and contains no quantified group of its own.
|
|
606
|
+
*/
|
|
607
|
+
exports.COMMAND_CODE_BANNER_MODELS_PATTERN = /^\s*#\s+models:\s*([^·]+?)(?:\s+with\s+([A-Za-z]+)\s+effort)?\s*(?:·|$)/i;
|
|
608
|
+
function readCommandCodeBanner(line) {
|
|
609
|
+
const match = exports.COMMAND_CODE_BANNER_MODELS_PATTERN.exec(line);
|
|
610
|
+
if (!match)
|
|
611
|
+
return null;
|
|
612
|
+
const model = match[1].trim();
|
|
613
|
+
if (!isPlausibleModelLabel(model))
|
|
614
|
+
return null;
|
|
615
|
+
return { model, effort: match[2] ? resolveEffortToken(match[2]) : null };
|
|
616
|
+
}
|
|
617
|
+
// =============================================================================
|
|
455
618
|
// Public API
|
|
456
619
|
// =============================================================================
|
|
457
620
|
/**
|
|
458
621
|
* Scan a capture from the bottom up, returning the first line that reads.
|
|
459
622
|
*
|
|
460
623
|
* Bottom-up is the whole rule: the status bar is the last line of the frame, and
|
|
461
|
-
* for Claude "the last banner wins" is how a
|
|
462
|
-
*
|
|
624
|
+
* for Claude "the last banner wins" is how a fresh banner overtakes the one from
|
|
625
|
+
* session start (on 2.1.263 a `/model` switch rewrites the banner in place
|
|
626
|
+
* instead, and prints a confirmation line the second scan reads once the banner
|
|
627
|
+
* is gone — Issue #2361).
|
|
463
628
|
*
|
|
464
629
|
* ANSI is stripped per line rather than over the whole blob so a malformed OSC
|
|
465
630
|
* sequence can never swallow a newline and merge two lines into one.
|
|
@@ -498,7 +663,17 @@ function extractModelInfo(cliToolId, captureText) {
|
|
|
498
663
|
case 'codex':
|
|
499
664
|
return scanFromEnd(captureText, readCodexFooter) ?? unknown();
|
|
500
665
|
case 'claude':
|
|
501
|
-
|
|
666
|
+
// Issue #2361. The banner is live chrome — rewritten in place by
|
|
667
|
+
// `/model`, `/effort` and `/fast` — so it wins for as long as it is on
|
|
668
|
+
// screen, and the lowest `/model` confirmation line is the fallback for
|
|
669
|
+
// the long session whose banner has scrolled away (see
|
|
670
|
+
// `readClaudeModelSwitchLine` for the measured precedence). Claude's
|
|
671
|
+
// hooks name the model on `SessionStart` alone — `/model` fires none of
|
|
672
|
+
// the events CommandMate registers — so on a switch the pane is the only
|
|
673
|
+
// channel that hears it.
|
|
674
|
+
return (scanFromEnd(captureText, readClaudeBanner) ??
|
|
675
|
+
scanFromEnd(captureText, readClaudeModelSwitchLine) ??
|
|
676
|
+
unknown());
|
|
502
677
|
case 'antigravity':
|
|
503
678
|
return (scanFromEnd(captureText, readAntigravityStatusBar) ??
|
|
504
679
|
scanFromEnd(captureText, readAntigravityBanner) ??
|
|
@@ -520,6 +695,12 @@ function extractModelInfo(cliToolId, captureText) {
|
|
|
520
695
|
}
|
|
521
696
|
case 'opencode':
|
|
522
697
|
return scanFromEnd(captureText, readOpencodeStepMarker) ?? unknown();
|
|
698
|
+
case 'command-code':
|
|
699
|
+
// Issue #2358. The banner is the only source — hooks carry no model — and
|
|
700
|
+
// bottom-up is the same "last banner wins" rule Claude uses: a relaunch in
|
|
701
|
+
// the same pane overtakes the banner above it, and a `/model` switch
|
|
702
|
+
// rewrites the one row in place (see `readCommandCodeBanner`).
|
|
703
|
+
return scanFromEnd(captureText, readCommandCodeBanner) ?? unknown();
|
|
523
704
|
default:
|
|
524
705
|
return unknown();
|
|
525
706
|
}
|
|
@@ -64,7 +64,8 @@
|
|
|
64
64
|
* written once.
|
|
65
65
|
*/
|
|
66
66
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
67
|
-
exports.COMMAND_CODE_SELECTION_LIST_FOOTER = exports.SET_AS_DEFAULT_FOOTER_PATTERN = exports.SESSION_SCOPE_FOOTER_PATTERN = exports.MAX_OPTION_NUMBER = exports.SELECTION_SHAPE_TAIL_LINE_COUNT = void 0;
|
|
67
|
+
exports.DISMISSABLE_PANEL_FOOTER_PATTERN = exports.COMMAND_CODE_SELECTION_LIST_FOOTER = exports.SET_AS_DEFAULT_FOOTER_PATTERN = exports.SESSION_SCOPE_FOOTER_PATTERN = exports.MAX_OPTION_NUMBER = exports.SELECTION_SHAPE_TAIL_LINE_COUNT = void 0;
|
|
68
|
+
exports.hasDismissablePanelFooter = hasDismissablePanelFooter;
|
|
68
69
|
exports.extractCommandCodeSelectionListFrame = extractCommandCodeSelectionListFrame;
|
|
69
70
|
exports.readSelectionListShape = readSelectionListShape;
|
|
70
71
|
exports.shouldOfferOptionNumbers = shouldOfferOptionNumbers;
|
|
@@ -150,6 +151,76 @@ const FILTER_INPUT_PATTERN = /\btype\s+to\s+search\b|\bsearch\s+\w+\s*(?:…|\.\
|
|
|
150
151
|
* settled on for the same reason.
|
|
151
152
|
*/
|
|
152
153
|
exports.COMMAND_CODE_SELECTION_LIST_FOOTER = /\benter\s+to\s+select\b\s*[·•]\s*esc\s+to\s+cancel\b/i;
|
|
154
|
+
/**
|
|
155
|
+
* The footer of an overlay whose ONLY exit is the dismiss (Issue #2369).
|
|
156
|
+
*
|
|
157
|
+
* Measured on Command Code 1.49's `/usage`, whose last row is verbatim
|
|
158
|
+
* `Press Esc to close`. The panel above it is read-only — a plan header, two
|
|
159
|
+
* meters, a breakdown URL — so there is no highlight to move and no key to
|
|
160
|
+
* confirm with. Before this pattern existed nothing matched the screen, it
|
|
161
|
+
* reached the `default` floor, and the chat surface answered an
|
|
162
|
+
* eighteen-button `unclassified` card to a panel with one working key.
|
|
163
|
+
*
|
|
164
|
+
* ## Why it is this narrow
|
|
165
|
+
*
|
|
166
|
+
* Three narrowings, and each one is there because this predicate SUPPRESSES
|
|
167
|
+
* controls — a false positive takes the arrow pad and the answer keys away from
|
|
168
|
+
* a screen that needed them:
|
|
169
|
+
*
|
|
170
|
+
* - **a verb before the key.** `Press`/`Hit`/`Type`, or nothing at all, but not
|
|
171
|
+
* an arbitrary run of prose. `esc to cancel` on its own is the tail of every
|
|
172
|
+
* picker footer in this file, including
|
|
173
|
+
* {@link COMMAND_CODE_SELECTION_LIST_FOOTER}, and those screens have a
|
|
174
|
+
* highlight;
|
|
175
|
+
* - **`close`/`dismiss`/`exit`, never `cancel` or `go back`.** The distinction
|
|
176
|
+
* is measured rather than stylistic: `cancel` is what a screen with a
|
|
177
|
+
* COMMITTABLE choice calls its escape (claude's `/model`, codex's picker,
|
|
178
|
+
* Command Code's own), while `close` is what a panel that decided nothing
|
|
179
|
+
* calls it;
|
|
180
|
+
* - **the whole row.** Anchored at both ends (leading/trailing space aside), so
|
|
181
|
+
* a hint bar that offers a dismiss ALONGSIDE something else — `↑/↓ navigate ·
|
|
182
|
+
* enter to select · esc to close` — does not match, and keeps the arrows the
|
|
183
|
+
* other half of its sentence promises.
|
|
184
|
+
*
|
|
185
|
+
* Case-insensitive because the measured row is `Press Esc to close` and Command
|
|
186
|
+
* Code writes its picker hints in lower case; nothing rests on which it uses.
|
|
187
|
+
*/
|
|
188
|
+
exports.DISMISSABLE_PANEL_FOOTER_PATTERN = /^\s*(?:press|hit|type)?\s*(?:<)?esc(?:ape)?(?:>)?\s+to\s+(?:close|dismiss|exit)\b[\s.·•]*$/im;
|
|
189
|
+
/**
|
|
190
|
+
* How many rows from the end of the content the dismiss footer is looked for.
|
|
191
|
+
*
|
|
192
|
+
* The same 15-row tail the detection chain hands a tool module as
|
|
193
|
+
* `NormalizedFrame.lastLines` (`STATUS_CHECK_LINE_COUNT`), restated as a number
|
|
194
|
+
* here because this module is a browser-safe leaf and `tools/frame.ts` pulls in
|
|
195
|
+
* `cli-patterns`. `detect.ts` reads `frame.lastLines` and never this constant,
|
|
196
|
+
* so the two cannot disagree about the detector's own window; this one bounds
|
|
197
|
+
* the CLIENT-side reading in {@link hasDismissablePanelFooter}.
|
|
198
|
+
*/
|
|
199
|
+
const DISMISSABLE_PANEL_TAIL_LINE_COUNT = 15;
|
|
200
|
+
/**
|
|
201
|
+
* Whether the tail of this frame is a dismiss-only panel (Issue #2369).
|
|
202
|
+
*
|
|
203
|
+
* The same question `commandCodeStatusDetector.afterPrompt` asks of
|
|
204
|
+
* `frame.lastLines`, asked of a raw capture, so the chat surface can answer for
|
|
205
|
+
* a frame whose server verdict has not reached it. The pattern is shared rather
|
|
206
|
+
* than restated — one expression, two call sites, exactly as
|
|
207
|
+
* {@link COMMAND_CODE_SELECTION_LIST_FOOTER} is shared between the detector and
|
|
208
|
+
* the dialog card.
|
|
209
|
+
*
|
|
210
|
+
* @param frame - a raw `capture-pane -p -e` frame, ANSI intact
|
|
211
|
+
*/
|
|
212
|
+
function hasDismissablePanelFooter(frame) {
|
|
213
|
+
if (!frame)
|
|
214
|
+
return false;
|
|
215
|
+
const lines = (0, ansi_1.stripAnsi)(frame.replace(/\r\n/g, '\n')).split('\n');
|
|
216
|
+
let last = lines.length - 1;
|
|
217
|
+
while (last >= 0 && lines[last].trim() === '')
|
|
218
|
+
last -= 1;
|
|
219
|
+
if (last < 0)
|
|
220
|
+
return false;
|
|
221
|
+
const tail = lines.slice(Math.max(0, last + 1 - DISMISSABLE_PANEL_TAIL_LINE_COUNT), last + 1);
|
|
222
|
+
return tail.some((line) => exports.DISMISSABLE_PANEL_FOOTER_PATTERN.test(line));
|
|
223
|
+
}
|
|
153
224
|
/**
|
|
154
225
|
* The horizontal rule Command Code draws directly above a full-screen dialog.
|
|
155
226
|
*
|
|
@@ -64,6 +64,34 @@ exports.STATUS_REASON = {
|
|
|
64
64
|
* `Type to search models...` box.
|
|
65
65
|
*/
|
|
66
66
|
COMMAND_CODE_SELECTION_LIST: 'command_code_selection_list',
|
|
67
|
+
/**
|
|
68
|
+
* Issue #2369: a Command Code overlay that only Esc leaves.
|
|
69
|
+
*
|
|
70
|
+
* `/usage` opens a read-only panel — a plan header, two usage meters, a
|
|
71
|
+
* breakdown URL — whose last row is `Press Esc to close`. There is no
|
|
72
|
+
* highlight to move, no numbered option and no confirm key; the ONE thing the
|
|
73
|
+
* screen accepts is the dismiss.
|
|
74
|
+
*
|
|
75
|
+
* Distinct from {@link STATUS_REASON.COMMAND_CODE_SELECTION_LIST} because the
|
|
76
|
+
* two screens want different controls, and that is the whole of this Issue:
|
|
77
|
+
* before it, this panel matched no rule at all, reached the `default` floor
|
|
78
|
+
* and so raised `isUnclassifiedActive` — which the chat surface answers with
|
|
79
|
+
* `TerminalEscapeHatch` plus `PromptAnswerKeys`, eighteen buttons (arrows,
|
|
80
|
+
* Enter, Esc, `1`-`9`, `y`, `n`) of which exactly one does anything. Reporting
|
|
81
|
+
* the selection-list token instead would put the arrow pad on the card and
|
|
82
|
+
* tell an operator reading `capture --json` that a moving highlight had been
|
|
83
|
+
* read off a panel that has none.
|
|
84
|
+
*
|
|
85
|
+
* Deliberately NOT a member of `SELECTION_LIST_REASONS`
|
|
86
|
+
* (`lib/detection/status-detector.ts`): that set is what `isSelectionListActive`
|
|
87
|
+
* — and therefore the arrow pad — is derived from. The flag this one feeds is
|
|
88
|
+
* `isDismissablePanelActive`, published beside it.
|
|
89
|
+
*
|
|
90
|
+
* The vocabulary is Command Code's alone for now (方針書 §4 D2's tool-by-tool
|
|
91
|
+
* rule): the SHAPE "an overlay whose footer offers only a dismiss" is general,
|
|
92
|
+
* the sentence that identifies it was measured on one tool.
|
|
93
|
+
*/
|
|
94
|
+
COMMAND_CODE_DISMISSABLE_PANEL: 'command_code_dismissable_panel',
|
|
67
95
|
COPILOT_SELECTION_LIST: 'copilot_selection_list',
|
|
68
96
|
CODEX_SELECTION_LIST: 'codex_selection_list',
|
|
69
97
|
/** Issue #1017: Codex pager / edit-previous (transcript) mode. */
|
|
@@ -3,16 +3,17 @@
|
|
|
3
3
|
* Antigravity (agy) status detector (Issue #1927, 方針書 §4 D2).
|
|
4
4
|
*
|
|
5
5
|
* A verbatim lift of the `cliToolId === 'antigravity'` blocks (priorities 0.9
|
|
6
|
-
* and 2.8) out of `detectSessionStatus
|
|
6
|
+
* and 2.8) out of `detectSessionStatus`, plus the Issue #2364 dialog reading in
|
|
7
|
+
* `beforePrompt`.
|
|
7
8
|
*
|
|
8
9
|
* No `readIdleEvidence`: agy's idle branch reads the same always-visible `> `
|
|
9
|
-
* input box that #1885 showed is not evidence on its own
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
* without a measured rule keeps the pre-#1927 reading
|
|
14
|
-
* off ITS OWN frames rather than inferred from another
|
|
15
|
-
* the mistake #1979 corrected.
|
|
10
|
+
* input box that #1885 showed is not evidence on its own. Issue #2364 captured
|
|
11
|
+
* the first live IDLE agy frame (`antigravity-live-2364/boot-idle.txt`: a bare
|
|
12
|
+
* `>` between two rules over a `? for shortcuts` status row), so a rule could
|
|
13
|
+
* now be measured — but it has not been, and per §4 D1 決定 1's tool-by-tool
|
|
14
|
+
* rollout (DR2-002) a tool without a measured rule keeps the pre-#1927 reading.
|
|
15
|
+
* Its rule must be read off ITS OWN frames rather than inferred from another
|
|
16
|
+
* tool's — which is exactly the mistake #1979 corrected.
|
|
16
17
|
*/
|
|
17
18
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
19
|
exports.antigravityStatusDetector = exports.VERIFIED_AGAINST = void 0;
|
|
@@ -20,12 +21,66 @@ const cli_patterns_1 = require("../../cli-patterns");
|
|
|
20
21
|
const status_reason_1 = require("../../status-reason");
|
|
21
22
|
const run_detection_1 = require("../run-detection");
|
|
22
23
|
const verified_against_1 = require("../verified-against");
|
|
23
|
-
|
|
24
|
+
const dialog_1 = require("./dialog");
|
|
25
|
+
/** agy build these rules were read off (Issue #988 / #995 / #2364; value in ../verified-against, #1929). */
|
|
24
26
|
exports.VERIFIED_AGAINST = verified_against_1.ANTIGRAVITY_VERIFIED_AGAINST;
|
|
27
|
+
/**
|
|
28
|
+
* An agy screen only the terminal can drive: the `/model` picker, the folder
|
|
29
|
+
* trust screen, the slash-command popup — and the post-answer survey.
|
|
30
|
+
*
|
|
31
|
+
* `hasActivePrompt: false` with a reason in `SELECTION_LIST_REASONS` is what
|
|
32
|
+
* puts NavigationButtons (and the chat surface's "drive it from the terminal"
|
|
33
|
+
* card) on screen, and what makes `wait` stop with exit 10 instead of hanging.
|
|
34
|
+
*/
|
|
35
|
+
const SELECTION_LIST_VERDICT = {
|
|
36
|
+
status: 'waiting',
|
|
37
|
+
confidence: 'high',
|
|
38
|
+
reason: status_reason_1.STATUS_REASON.ANTIGRAVITY_SELECTION_LIST,
|
|
39
|
+
hasActivePrompt: false,
|
|
40
|
+
evidence: 'positive',
|
|
41
|
+
};
|
|
42
|
+
/**
|
|
43
|
+
* How close to the bottom of the content the survey row must be to count as
|
|
44
|
+
* open: itself, a blank row and the `? for shortcuts` status row.
|
|
45
|
+
*/
|
|
46
|
+
const SURVEY_TAIL_ROWS = 3;
|
|
47
|
+
/**
|
|
48
|
+
* Is the post-answer survey the live screen, rather than a row of it left in
|
|
49
|
+
* the scrollback? (Issue #2364)
|
|
50
|
+
*
|
|
51
|
+
* agy retains scrollback, so the guard is positional: the `[1] Good … [0] Skip`
|
|
52
|
+
* row is the survey only while it sits within the last few content rows and
|
|
53
|
+
* no bare `>` composer has been drawn below it — the composer is what replaces
|
|
54
|
+
* it once the digit is typed.
|
|
55
|
+
*/
|
|
56
|
+
function isAntigravitySurveyOpen(contentLines) {
|
|
57
|
+
const tail = contentLines.slice(-SURVEY_TAIL_ROWS);
|
|
58
|
+
const surveyAt = tail.findIndex(row => cli_patterns_1.ANTIGRAVITY_SURVEY_PATTERN.test(row));
|
|
59
|
+
if (surveyAt < 0)
|
|
60
|
+
return false;
|
|
61
|
+
const { promptPattern } = (0, cli_patterns_1.getCliToolPatterns)('antigravity');
|
|
62
|
+
return !tail.slice(surveyAt + 1).some(row => promptPattern.test(row));
|
|
63
|
+
}
|
|
25
64
|
exports.antigravityStatusDetector = (0, run_detection_1.createToolStatusDetector)({
|
|
26
65
|
tool: 'antigravity',
|
|
27
66
|
verifiedAgainst: exports.VERIFIED_AGAINST,
|
|
28
67
|
beforePrompt(frame) {
|
|
68
|
+
// 0.85. Issue #2364: the survey agy draws in place of its composer after a
|
|
69
|
+
// tool decision — `[1] Good [2] Fine [3] Bad [0] Skip` under `How's the
|
|
70
|
+
// CLI experience so far?`. Nothing else on that frame is readable: there is
|
|
71
|
+
// no `↑/↓ Navigate` footer and no bare `>` row, so it used to reach the
|
|
72
|
+
// `default` floor as `running`, and the chat surface showed "generating"
|
|
73
|
+
// over a screen waiting for a keypress.
|
|
74
|
+
//
|
|
75
|
+
// Published as a selection list rather than as a `multiple_choice` prompt
|
|
76
|
+
// on purpose. The screen takes a TYPED digit (`0` closes it), while
|
|
77
|
+
// `sendPromptAnswer` drives every numeric agy answer with arrow keys +
|
|
78
|
+
// Enter (Issue #999) — a `0. Skip` button on PromptPanel would send `Up`,
|
|
79
|
+
// `Enter` to a screen that does not navigate. As a selection list the
|
|
80
|
+
// frame is `waiting`, `wait` returns, the waiting push fires, and the chat
|
|
81
|
+
// surface's card points at the terminal, where a single `0` is the answer.
|
|
82
|
+
if (isAntigravitySurveyOpen(frame.contentLines))
|
|
83
|
+
return SELECTION_LIST_VERDICT;
|
|
29
84
|
// 0.9. Antigravity: selection list detection BEFORE thinking detection (Issue #995)
|
|
30
85
|
// agy's "Switch Model" (and other) selection TUIs render an "esc to cancel"
|
|
31
86
|
// footer that ANTIGRAVITY_THINKING_PATTERN also matches, so the generic thinking
|
|
@@ -35,7 +90,7 @@ exports.antigravityStatusDetector = (0, run_detection_1.createToolStatusDetector
|
|
|
35
90
|
// Codex early-detection pattern.
|
|
36
91
|
if (!cli_patterns_1.ANTIGRAVITY_SELECTION_LIST_PATTERN.test(frame.lastLines))
|
|
37
92
|
return null;
|
|
38
|
-
// Issue #2270: except when the frame is
|
|
93
|
+
// Issue #2270 / #2364: except when the frame is a NUMBERED dialog.
|
|
39
94
|
//
|
|
40
95
|
// #997 widened the pattern above to the bare `↑/↓ Navigate` footer so the
|
|
41
96
|
// "Do you want to proceed?" menu would reach this branch — but this branch
|
|
@@ -47,23 +102,48 @@ exports.antigravityStatusDetector = (0, run_detection_1.createToolStatusDetector
|
|
|
47
102
|
// with four `multiple_choice` options and the push notification sent
|
|
48
103
|
// `kind: 'prompt'` — one screen, two answers.
|
|
49
104
|
//
|
|
50
|
-
//
|
|
51
|
-
//
|
|
52
|
-
//
|
|
53
|
-
//
|
|
54
|
-
// the
|
|
105
|
+
// #2270 returned null here and let priority 1's generic `detectPrompt` read
|
|
106
|
+
// the frame. That held for the one dialog it measured and broke on the next
|
|
107
|
+
// two (#2364): the file-creation menu never passed its `Do you want to
|
|
108
|
+
// proceed?` discriminator, and a Bash approval whose option labels wrap —
|
|
109
|
+
// agy prints the command inside the label, so most of them do — passed it
|
|
110
|
+
// and then failed in the one-row-per-option parser, after which the `esc
|
|
111
|
+
// to cancel` status row matched the thinking pattern and the pane went out
|
|
112
|
+
// as `running` / `thinking_indicator`. So the discriminator is structural
|
|
113
|
+
// now (`isAntigravityNumberedDialog`), the frame is read by agy's own
|
|
114
|
+
// reader (`./dialog.ts`), and a frame the reader cannot parse is published
|
|
115
|
+
// as UNCLASSIFIED — never as a picker, and never as "generating", which is
|
|
116
|
+
// the worst answer a waiting dialog can get: `wait` never returns from it.
|
|
117
|
+
//
|
|
118
|
+
// `stripBoxDrawing` here, as priority 1 applies it before `detectPrompt`,
|
|
119
|
+
// so this verdict and the response poller's (`detectPromptWithOptions`,
|
|
120
|
+
// which reads the same helper over the same spelling) carry one question,
|
|
121
|
+
// one option list and one `instructionText` for one screen.
|
|
55
122
|
//
|
|
56
123
|
// #995's own case is untouched: the Switch Model picker carries no numbered
|
|
57
|
-
// rows, so it still resolves
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
124
|
+
// rows, so it still resolves below and still keeps NavigationButtons.
|
|
125
|
+
const text = (0, cli_patterns_1.stripBoxDrawing)(frame.clean);
|
|
126
|
+
if ((0, cli_patterns_1.isAntigravityNumberedDialog)(text)) {
|
|
127
|
+
const promptDetection = (0, dialog_1.detectAntigravityNumberedDialogPrompt)(text);
|
|
128
|
+
if (promptDetection !== null) {
|
|
129
|
+
return {
|
|
130
|
+
status: 'waiting',
|
|
131
|
+
confidence: 'high',
|
|
132
|
+
reason: status_reason_1.STATUS_REASON.PROMPT_DETECTED,
|
|
133
|
+
hasActivePrompt: true,
|
|
134
|
+
evidence: 'positive',
|
|
135
|
+
promptDetection,
|
|
136
|
+
};
|
|
137
|
+
}
|
|
138
|
+
return {
|
|
139
|
+
status: 'running',
|
|
140
|
+
confidence: 'low',
|
|
141
|
+
reason: status_reason_1.STATUS_REASON.UNKNOWN_FRAME,
|
|
142
|
+
hasActivePrompt: false,
|
|
143
|
+
evidence: 'none',
|
|
144
|
+
};
|
|
145
|
+
}
|
|
146
|
+
return SELECTION_LIST_VERDICT;
|
|
67
147
|
},
|
|
68
148
|
afterThinking(frame) {
|
|
69
149
|
// 2.8. Antigravity (agy) footer-based detection (Issue #988)
|