commandmate 0.38.0 → 0.39.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 +471 -576
- package/.next/app-path-routes-manifest.json +32 -42
- package/.next/build-manifest.json +5 -5
- package/.next/prerender-manifest.json +9 -9
- package/.next/react-loadable-manifest.json +2 -2
- package/.next/required-server-files.json +1 -1
- package/.next/routes-manifest.json +0 -23
- package/.next/server/app/_not-found/page.js +1 -1
- package/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/server/app/api/agents/update/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/agents/versions/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/app/release-notes/route.js +1 -0
- package/.next/server/app/api/app/release-notes/route.js.nft.json +1 -0
- package/.next/server/app/api/app/release-notes/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/app/update/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/app/update-check/route.js +1 -1
- package/.next/server/app/api/app/update-check/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/auth/login/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/auth/logout/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/auth/status/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/capabilities/route.js +1 -1
- package/.next/server/app/api/capabilities/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/daily-summary/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/daily-summary/status/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/external-apps/[id]/health/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/external-apps/[id]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/external-apps/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/fs/browse/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/fs/recent-paths/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/hooks/agent-event/route.js +1 -1
- package/.next/server/app/api/hooks/agent-event/route.js.nft.json +1 -1
- package/.next/server/app/api/hooks/agent-event/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/hooks/claude-done/route.js +1 -1
- package/.next/server/app/api/hooks/claude-done/route.js.nft.json +1 -1
- package/.next/server/app/api/hooks/claude-done/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/hooks/permission-request/route.js +1 -1
- package/.next/server/app/api/hooks/permission-request/route.js.nft.json +1 -1
- package/.next/server/app/api/hooks/permission-request/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/metrics/vibe/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/ollama/models/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/push/escalation/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/push/subscriptions/route.js +1 -1
- package/.next/server/app/api/push/subscriptions/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/push/vapid/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/relays/[relayId]/cancel/route.js +1 -1
- package/.next/server/app/api/relays/[relayId]/cancel/route.js.nft.json +1 -1
- package/.next/server/app/api/relays/[relayId]/cancel/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/relays/route.js +1 -1
- package/.next/server/app/api/relays/route.js.nft.json +1 -1
- package/.next/server/app/api/relays/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/remote/pair/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/repositories/[id]/route_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_client-reference-manifest.js +1 -1
- package/.next/server/app/api/skills/installations/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/skills/operations/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/skills/reindex/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/skills/route_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/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/notes/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/instances/notes/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/instances/opencode/route.js.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_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/opencode/share/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/prompt-response/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/prompt-response/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/prompt-response/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/resolve-target/route.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 +1 -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_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall-plan/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/skills/[skillId]/update/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/skills/[skillId]/update-plan/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/skills/route.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/login/page.js +1 -1
- package/.next/server/app/login/page.js.nft.json +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.js +1 -1
- package/.next/server/app/offline/page.js.nft.json +1 -1
- package/.next/server/app/offline/page_client-reference-manifest.js +1 -1
- package/.next/server/app/page.js +2 -2
- 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 +2 -2
- 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.js +1 -1
- package/.next/server/app/worktrees/[id]/files/[...path]/page.js.nft.json +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.js +1 -1
- package/.next/server/app/worktrees/[id]/terminal/page.js.nft.json +1 -1
- package/.next/server/app/worktrees/[id]/terminal/page_client-reference-manifest.js +1 -1
- package/.next/server/app-paths-manifest.json +32 -42
- package/.next/server/chunks/1210.js +1 -1
- package/.next/server/chunks/1707.js +1 -1
- package/.next/server/chunks/1825.js +1 -1
- package/.next/server/chunks/2119.js +1 -1
- package/.next/server/chunks/2445.js +1 -1
- package/.next/server/chunks/3241.js +1 -1
- package/.next/server/chunks/3323.js +1 -1
- package/.next/server/chunks/3543.js +1 -1
- package/.next/server/chunks/366.js +1 -0
- package/.next/server/chunks/3945.js +1 -1
- package/.next/server/chunks/4443.js +1 -1
- package/.next/server/chunks/5164.js +1 -1
- package/.next/server/chunks/5354.js +1 -1
- package/.next/server/chunks/6130.js +1 -1
- package/.next/server/chunks/6159.js +1 -1
- package/.next/server/chunks/6401.js +1 -1
- package/.next/server/chunks/650.js +1 -1
- package/.next/server/chunks/6661.js +1 -1
- package/.next/server/chunks/7075.js +1 -1
- package/.next/server/chunks/7086.js +15 -0
- package/.next/server/chunks/8550.js +1 -0
- package/.next/server/chunks/8581.js +60 -0
- package/.next/server/chunks/8728.js +2 -2
- package/.next/server/chunks/8807.js +184 -323
- package/.next/server/chunks/8918.js +1 -1
- package/.next/server/chunks/9130.js +3 -3
- package/.next/server/chunks/9584.js +1 -1
- package/.next/server/chunks/9627.js +1 -1
- package/.next/server/chunks/{1886.js → 9731.js} +3 -3
- package/.next/server/chunks/{6677.js → 9882.js} +1 -1
- 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/CqFH31RhKQbrRZXsMNosJ/_buildManifest.js +1 -0
- package/.next/static/chunks/1032-9e43405ac6bf6848.js +1 -0
- package/.next/static/chunks/2318-af00abceb9b8eab5.js +1 -0
- package/.next/static/chunks/{2407-6fd60b674e20ec06.js → 2407-8fe4e4d0bab1931a.js} +1 -1
- package/.next/static/chunks/2619-04bc32f026a0d946.js +1 -0
- package/.next/static/chunks/344-6f9fc1f38f01a839.js +1 -0
- package/.next/static/chunks/3504-0100ab50762f591b.js +1 -0
- package/.next/static/chunks/3778-56f41fc2cecb8c43.js +1 -0
- package/.next/static/chunks/4322-f54abdc5d16b7462.js +1 -0
- package/.next/static/chunks/4768-0ad5eb716bed5de9.js +1 -0
- package/.next/static/chunks/4949-a13ace141c0183d6.js +1 -0
- package/.next/static/chunks/5449-550bd273dccc3ae4.js +1 -0
- package/.next/static/chunks/5529-83e705fc4134a503.js +1 -0
- package/.next/static/chunks/{3313.53f7ff985c0c8852.js → 5694.dda65070757534df.js} +1 -1
- package/.next/static/chunks/6322-f1b30ed0ee43518f.js +1 -0
- package/.next/static/chunks/6966-bb854d1145783a64.js +1 -0
- package/.next/static/chunks/{7485.52361bc061cc663a.js → 7485.442b21101fca7257.js} +1 -1
- package/.next/static/chunks/8019-cc6ac1cc033fd5f0.js +1 -0
- package/.next/static/chunks/8283-26ad31a4670ea52d.js +1 -0
- package/.next/static/chunks/8606-e893c1dab6fb81bc.js +1 -0
- package/.next/static/chunks/9619-c3c4c623b0a4f681.js +1 -0
- package/.next/static/chunks/app/api/agents/update/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/agents/versions/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/app/release-notes/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/app/update/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/app/update-check/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/auth/login/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/auth/logout/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/auth/status/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/capabilities/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/daily-summary/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/daily-summary/status/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/external-apps/[id]/health/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/external-apps/[id]/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/external-apps/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/fs/browse/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/fs/recent-paths/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/hooks/agent-event/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/hooks/claude-done/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/hooks/permission-request/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/metrics/vibe/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/ollama/models/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/push/escalation/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/push/subscriptions/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/push/vapid/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/relays/[relayId]/cancel/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/relays/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/remote/pair/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/repositories/[id]/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/repositories/clone/[jobId]/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/repositories/clone/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/repositories/excluded/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/repositories/restore/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/repositories/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/repositories/scan/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/repositories/sync/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/repositories/validate-path/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/settings/default-agents/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/settings/default-surface-mode/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/sidebar/group-order/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/skills/[id]/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/skills/installations/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/skills/operations/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/skills/reindex/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/skills/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/slash-commands/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/tasks/[taskId]/cancel/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/tasks/[taskId]/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/templates/[id]/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/templates/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/verification/runs/[runId]/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/verification/runs/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/auto-yes/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/capture/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/clear-composer/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/cli-reference/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/cli-tool/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/cmate/schedules/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/current-output/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/env/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/execution-logs/[logId]/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/execution-logs/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/files/[...path]/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/branch/create/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/branch/delete/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/branches/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/checkout/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/commit/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/diff/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/fetch/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/log/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/pull/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/push/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/reset/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/revert/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/show/[commitHash]/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/stage/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/staged/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/stash/[index]/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/stash/apply/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/stash/pop/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/stash/push/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/stash/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/status/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/unstage/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/working-diff/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/instances/notes/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/instances/opencode/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/interrupt/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/kill-session/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/logs/[filename]/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/logs/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/marp-render/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/memos/[memoId]/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/memos/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/messages/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/opencode/diff/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/opencode/session/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/opencode/share/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/prompt-response/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/resolve-target/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/respond/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/schedules/[scheduleId]/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/schedules/active/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/schedules/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/search/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/send/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/git-workflow/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/install/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/plan/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/uninstall/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/uninstall-plan/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/update/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/update-plan/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/skills/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/slash-commands/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/special-keys/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/tasks/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/terminal/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/timers/history/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/timers/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/todos/[todoId]/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/todos/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/tree/[...path]/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/tree/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/upload/[...path]/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/verify/config/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/verify/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/verify/runs/[runId]/cancel/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/verify/runs/[runId]/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/verify/runs/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/viewed/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/apply-default-agents/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/{error-c1dc1038d0a84a33.js → error-d9a7067074e7f460.js} +1 -1
- package/.next/static/chunks/app/layout-f43045c9edbc4d1f.js +1 -0
- package/.next/static/chunks/app/loading-db675c84e696591f.js +1 -0
- package/.next/static/chunks/app/login/{page-af7241bb4c4a8e59.js → page-269a9de3b91a45a2.js} +1 -1
- package/.next/static/chunks/app/manifest.webmanifest/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/more/loading-db675c84e696591f.js +1 -0
- package/.next/static/chunks/app/more/page-3963a5e56e550442.js +1 -0
- package/.next/static/chunks/app/page-0c1a29ff3609bd8b.js +1 -0
- package/.next/static/chunks/app/proxy/[...path]/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/repositories/loading-db675c84e696591f.js +1 -0
- package/.next/static/chunks/app/repositories/page-e9ceeefacf87d470.js +1 -0
- package/.next/static/chunks/app/review/loading-db675c84e696591f.js +1 -0
- package/.next/static/chunks/app/review/page-3028fe95de490236.js +1 -0
- package/.next/static/chunks/app/sessions/loading-db675c84e696591f.js +1 -0
- package/.next/static/chunks/app/sessions/page-3f39f99b878fdda0.js +1 -0
- package/.next/static/chunks/app/skills/[skillId]/page-6f62668eabb635f5.js +1 -0
- package/.next/static/chunks/app/skills/installed/page-c6c4ac5e26c4e73e.js +1 -0
- package/.next/static/chunks/app/skills/page-bec1d4924004d4de.js +1 -0
- package/.next/static/chunks/app/worktrees/[id]/files/[...path]/{page-f3361237420719b4.js → page-2e98f11956fe1aea.js} +1 -1
- package/.next/static/chunks/app/worktrees/[id]/layout-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/worktrees/[id]/loading-db675c84e696591f.js +1 -0
- package/.next/static/chunks/app/worktrees/[id]/page-0305d80c8ebda4cb.js +1 -0
- package/.next/static/chunks/app/worktrees/[id]/terminal/page-373ea37b16d930c7.js +1 -0
- package/.next/static/chunks/{webpack-0281b30457d46ebc.js → webpack-9f75198882fdaf08.js} +1 -1
- package/.next/static/css/2c63c5531f77719e.css +1 -0
- package/.next/trace +13 -14
- package/.next/types/app/api/{assistant/start → app/release-notes}/route.ts +3 -3
- package/.next/types/routes.d.ts +3 -13
- package/.next/types/validator.ts +9 -99
- package/dist/cli/commands/wait.d.ts +45 -0
- package/dist/cli/commands/wait.d.ts.map +1 -1
- package/dist/cli/commands/wait.js +172 -3
- package/dist/server/locales/en/worktree.json +22 -5
- package/dist/server/locales/ja/worktree.json +22 -5
- package/dist/server/src/config/activity-bar-config.js +3 -1
- package/dist/server/src/lib/cli-tools/copilot.js +244 -11
- package/dist/server/src/lib/db/db.js +3 -32
- package/dist/server/src/lib/db/worktree-todo-db.js +1 -2
- package/dist/server/src/lib/detection/cli-patterns.js +39 -2
- package/dist/server/src/lib/detection/tools/codex/prompt.js +15 -1
- package/dist/server/src/lib/hooks/agent-event-types.js +19 -1
- package/dist/server/src/lib/hooks/sources/antigravity/hooks-config.js +65 -4
- package/dist/server/src/lib/hooks/sources/antigravity/source.js +32 -3
- package/dist/server/src/lib/hooks/sources/claude/source.js +5 -0
- package/dist/server/src/lib/hooks/sources/codex/source.js +2 -0
- package/dist/server/src/lib/hooks/sources/command-code/source.js +2 -0
- package/dist/server/src/lib/hooks/sources/copilot/source.js +3 -0
- package/dist/server/src/lib/hooks/sources/gemini/source.js +2 -0
- package/dist/server/src/lib/hooks/sources/legacy-relay.js +2 -0
- package/dist/server/src/lib/hooks/sources/opencode/source.js +2 -0
- package/dist/server/src/lib/session/current-output-builder.js +3 -1
- package/dist/server/src/lib/session/send-user-message.js +112 -17
- package/dist/server/src/lib/verification/verification-reconciler.js +2 -2
- package/package.json +3 -2
- package/release-notes/0.39.0.json +94 -0
- package/.next/server/app/api/assistant/conversation/route.js +0 -1
- package/.next/server/app/api/assistant/conversation/route.js.nft.json +0 -1
- package/.next/server/app/api/assistant/conversation/route_client-reference-manifest.js +0 -1
- package/.next/server/app/api/assistant/current-output/route.js +0 -1
- package/.next/server/app/api/assistant/current-output/route.js.nft.json +0 -1
- package/.next/server/app/api/assistant/current-output/route_client-reference-manifest.js +0 -1
- package/.next/server/app/api/assistant/messages/route.js +0 -1
- package/.next/server/app/api/assistant/messages/route.js.nft.json +0 -1
- package/.next/server/app/api/assistant/messages/route_client-reference-manifest.js +0 -1
- package/.next/server/app/api/assistant/session/route.js +0 -1
- package/.next/server/app/api/assistant/session/route.js.nft.json +0 -1
- package/.next/server/app/api/assistant/session/route_client-reference-manifest.js +0 -1
- package/.next/server/app/api/assistant/start/route.js +0 -32
- package/.next/server/app/api/assistant/start/route.js.nft.json +0 -1
- package/.next/server/app/api/assistant/start/route_client-reference-manifest.js +0 -1
- package/.next/server/app/api/assistant/terminal/route.js +0 -34
- package/.next/server/app/api/assistant/terminal/route.js.nft.json +0 -1
- package/.next/server/app/api/assistant/terminal/route_client-reference-manifest.js +0 -1
- package/.next/server/app/api/assistant/tools/route.js +0 -1
- package/.next/server/app/api/assistant/tools/route.js.nft.json +0 -1
- package/.next/server/app/api/assistant/tools/route_client-reference-manifest.js +0 -1
- package/.next/server/app/api/repositories/[id]/todos/[todoId]/route.js +0 -1
- package/.next/server/app/api/repositories/[id]/todos/[todoId]/route.js.nft.json +0 -1
- package/.next/server/app/api/repositories/[id]/todos/[todoId]/route_client-reference-manifest.js +0 -1
- package/.next/server/app/api/repositories/[id]/todos/route.js +0 -1
- package/.next/server/app/api/repositories/[id]/todos/route.js.nft.json +0 -1
- package/.next/server/app/api/repositories/[id]/todos/route_client-reference-manifest.js +0 -1
- package/.next/server/app/api/todos/route.js +0 -1
- package/.next/server/app/api/todos/route.js.nft.json +0 -1
- package/.next/server/app/api/todos/route_client-reference-manifest.js +0 -1
- package/.next/server/app/chat/page.js +0 -2
- package/.next/server/app/chat/page.js.nft.json +0 -1
- package/.next/server/app/chat/page_client-reference-manifest.js +0 -1
- package/.next/server/chunks/1366.js +0 -15
- package/.next/server/chunks/1467.js +0 -48
- package/.next/server/chunks/180.js +0 -1
- package/.next/server/chunks/3123.js +0 -1
- package/.next/server/chunks/3708.js +0 -1
- package/.next/server/chunks/5364.js +0 -1
- package/.next/server/chunks/6015.js +0 -1
- package/.next/server/chunks/8118.js +0 -1
- package/.next/server/chunks/8554.js +0 -1
- package/.next/server/chunks/9123.js +0 -13
- package/.next/static/chunks/3160-79d24ca264a528b9.js +0 -1
- package/.next/static/chunks/4322-59a7dbd77a7763cc.js +0 -1
- package/.next/static/chunks/4388-a778968d9c4e9327.js +0 -1
- package/.next/static/chunks/4718-56ebb6e55073ed5e.js +0 -1
- package/.next/static/chunks/4949-7dbce1029c6bdbb9.js +0 -1
- package/.next/static/chunks/5520-8bde9501846ae660.js +0 -1
- package/.next/static/chunks/5694-498765336d0b8c2b.js +0 -1
- package/.next/static/chunks/6402-d91e099c3f2d78f4.js +0 -1
- package/.next/static/chunks/6983-3ed2099251793bdf.js +0 -1
- package/.next/static/chunks/790-d8e6acd26e03679c.js +0 -1
- package/.next/static/chunks/8019-cbf130d0e6334d2d.js +0 -1
- package/.next/static/chunks/934-a37509667baa86ee.js +0 -1
- package/.next/static/chunks/9948-d139e3e5dbecaf73.js +0 -1
- package/.next/static/chunks/app/api/agents/update/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/agents/versions/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/app/update/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/app/update-check/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/assistant/conversation/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/assistant/current-output/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/assistant/messages/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/assistant/session/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/assistant/start/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/assistant/terminal/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/assistant/tools/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/auth/login/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/auth/logout/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/auth/status/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/capabilities/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/daily-summary/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/daily-summary/status/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/external-apps/[id]/health/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/external-apps/[id]/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/external-apps/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/fs/browse/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/fs/recent-paths/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/hooks/agent-event/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/hooks/claude-done/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/hooks/permission-request/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/metrics/vibe/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/ollama/models/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/push/escalation/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/push/subscriptions/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/push/vapid/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/relays/[relayId]/cancel/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/relays/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/remote/pair/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/repositories/[id]/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/repositories/[id]/todos/[todoId]/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/repositories/[id]/todos/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/repositories/clone/[jobId]/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/repositories/clone/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/repositories/excluded/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/repositories/restore/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/repositories/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/repositories/scan/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/repositories/sync/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/repositories/validate-path/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/settings/default-agents/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/settings/default-surface-mode/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/sidebar/group-order/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/skills/[id]/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/skills/installations/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/skills/operations/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/skills/reindex/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/skills/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/slash-commands/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/tasks/[taskId]/cancel/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/tasks/[taskId]/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/templates/[id]/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/templates/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/todos/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/verification/runs/[runId]/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/verification/runs/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/auto-yes/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/capture/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/clear-composer/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/cli-reference/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/cli-tool/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/cmate/schedules/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/current-output/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/env/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/execution-logs/[logId]/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/execution-logs/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/files/[...path]/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/branch/create/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/branch/delete/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/branches/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/checkout/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/commit/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/diff/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/fetch/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/log/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/pull/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/push/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/reset/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/revert/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/show/[commitHash]/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/stage/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/staged/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/stash/[index]/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/stash/apply/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/stash/pop/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/stash/push/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/stash/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/status/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/unstage/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/working-diff/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/instances/notes/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/instances/opencode/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/interrupt/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/kill-session/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/logs/[filename]/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/logs/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/marp-render/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/memos/[memoId]/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/memos/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/messages/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/opencode/diff/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/opencode/session/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/opencode/share/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/prompt-response/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/resolve-target/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/respond/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/schedules/[scheduleId]/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/schedules/active/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/schedules/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/search/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/send/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/git-workflow/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/install/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/plan/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/uninstall/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/uninstall-plan/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/update/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/update-plan/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/skills/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/slash-commands/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/special-keys/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/tasks/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/terminal/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/timers/history/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/timers/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/todos/[todoId]/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/todos/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/tree/[...path]/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/tree/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/upload/[...path]/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/verify/config/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/verify/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/verify/runs/[runId]/cancel/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/verify/runs/[runId]/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/verify/runs/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/viewed/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/apply-default-agents/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/chat/loading-c58ba2c3f4363277.js +0 -1
- package/.next/static/chunks/app/chat/page-bfc1f5bb17bd771d.js +0 -1
- package/.next/static/chunks/app/layout-114dc6e93e332392.js +0 -1
- package/.next/static/chunks/app/loading-c58ba2c3f4363277.js +0 -1
- package/.next/static/chunks/app/manifest.webmanifest/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/more/loading-c58ba2c3f4363277.js +0 -1
- package/.next/static/chunks/app/more/page-400ffa825f8f150e.js +0 -1
- package/.next/static/chunks/app/page-a4f03c188610c6c8.js +0 -1
- package/.next/static/chunks/app/proxy/[...path]/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/repositories/loading-c58ba2c3f4363277.js +0 -1
- package/.next/static/chunks/app/repositories/page-a15efb4ce1d1721e.js +0 -1
- package/.next/static/chunks/app/review/loading-c58ba2c3f4363277.js +0 -1
- package/.next/static/chunks/app/review/page-90ac618489676cbc.js +0 -1
- package/.next/static/chunks/app/sessions/loading-c58ba2c3f4363277.js +0 -1
- package/.next/static/chunks/app/sessions/page-b8651c3f17c36800.js +0 -1
- package/.next/static/chunks/app/skills/[skillId]/page-ce8f6fd9e4356580.js +0 -1
- package/.next/static/chunks/app/skills/installed/page-566dfde26d7e63ba.js +0 -1
- package/.next/static/chunks/app/skills/page-7859540e8092aace.js +0 -1
- package/.next/static/chunks/app/worktrees/[id]/layout-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/worktrees/[id]/loading-c58ba2c3f4363277.js +0 -1
- package/.next/static/chunks/app/worktrees/[id]/page-86ef4510c70adefc.js +0 -1
- package/.next/static/chunks/app/worktrees/[id]/terminal/page-2631bc5c4b0a9fb8.js +0 -1
- package/.next/static/css/c511ecdf1e7f18a0.css +0 -1
- package/.next/static/rM1BO5QIz3tynGdyJy0T-/_buildManifest.js +0 -1
- package/.next/types/app/api/assistant/conversation/route.ts +0 -347
- package/.next/types/app/api/assistant/current-output/route.ts +0 -347
- package/.next/types/app/api/assistant/messages/route.ts +0 -347
- package/.next/types/app/api/assistant/session/route.ts +0 -347
- package/.next/types/app/api/assistant/terminal/route.ts +0 -347
- package/.next/types/app/api/assistant/tools/route.ts +0 -347
- package/.next/types/app/api/repositories/[id]/todos/[todoId]/route.ts +0 -347
- package/.next/types/app/api/repositories/[id]/todos/route.ts +0 -347
- package/.next/types/app/api/todos/route.ts +0 -347
- package/.next/types/app/chat/page.ts +0 -84
- package/dist/server/src/lib/db/assistant-conversation-db.js +0 -428
- package/dist/server/src/lib/db/todo-db.js +0 -150
- package/dist/server/src/types/assistant.js +0 -5
- /package/.next/static/{rM1BO5QIz3tynGdyJy0T- → CqFH31RhKQbrRZXsMNosJ}/_ssgManifest.js +0 -0
|
@@ -23,7 +23,9 @@ const lucide_react_1 = require("lucide-react");
|
|
|
23
23
|
* navigation order (ArrowDown/ArrowUp).
|
|
24
24
|
*/
|
|
25
25
|
exports.ACTIVITIES = [
|
|
26
|
-
|
|
26
|
+
// Issue #2616: the two-sheet `Files`, not the single-sheet `File` — at 20px
|
|
27
|
+
// `File` and `notes`' `StickyNote` both read as one dog-eared page.
|
|
28
|
+
{ id: 'files', labelKey: 'activityBar.files', icon: lucide_react_1.Files },
|
|
27
29
|
{ id: 'git', labelKey: 'activityBar.git', icon: lucide_react_1.GitBranch },
|
|
28
30
|
{ id: 'notes', labelKey: 'activityBar.notes', icon: lucide_react_1.StickyNote },
|
|
29
31
|
{ id: 'schedules', labelKey: 'activityBar.schedules', icon: lucide_react_1.Calendar },
|
|
@@ -18,6 +18,9 @@
|
|
|
18
18
|
*/
|
|
19
19
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
20
20
|
exports.CopilotTool = exports.COPILOT_EXIT_COMMAND = void 0;
|
|
21
|
+
exports.isCopilotStartupLoading = isCopilotStartupLoading;
|
|
22
|
+
exports.readCopilotModelSwitchOutcomes = readCopilotModelSwitchOutcomes;
|
|
23
|
+
exports.judgeCopilotModelSwitch = judgeCopilotModelSwitch;
|
|
21
24
|
const base_1 = require("./base");
|
|
22
25
|
const tmux_1 = require("../tmux/tmux");
|
|
23
26
|
const submit_verified_sender_1 = require("./submit-verified-sender");
|
|
@@ -99,6 +102,136 @@ const COPILOT_COMPOSER_ROW_PATTERN = /^[>❯](?:\s|$)/;
|
|
|
99
102
|
* one that cannot be mistaken for a prompt, so it is what is sent.
|
|
100
103
|
*/
|
|
101
104
|
exports.COPILOT_EXIT_COMMAND = '/exit';
|
|
105
|
+
/** How often the pane is read while waiting for `/model`'s answer (Issue #2623). */
|
|
106
|
+
const COPILOT_MODEL_SWITCH_POLL_MS = 250;
|
|
107
|
+
/**
|
|
108
|
+
* copilot's start-up row (Issue #2623).
|
|
109
|
+
*
|
|
110
|
+
* Measured on copilot 1.0.85 at the production 200x1000 geometry
|
|
111
|
+
* (`tests/fixtures/copilot-model-switch-2623.ts`). The composer — `❯` between
|
|
112
|
+
* two full-width rules — is on screen ~2.5 s after launch, but the row under it
|
|
113
|
+
* is not the status bar yet: it reads ` ● Loading: 6 hooks, 16 skills, 1 MCP
|
|
114
|
+
* server` (the glyph spins) for another 3–4.5 s, and only then becomes
|
|
115
|
+
* `← open sidebar · / commands · ? help · tab next tab`.
|
|
116
|
+
*
|
|
117
|
+
* Keys sent inside that window are drawn only once loading ends, and a line
|
|
118
|
+
* submitted there is not reliably run. All on a fresh launch:
|
|
119
|
+
*
|
|
120
|
+
* - `/model <id>` and then the body 0.3 s later — the sequence `send --model`
|
|
121
|
+
* produced: the `/model` line was held and ran when loading ended, the body
|
|
122
|
+
* never ran. 4 of 4 (three through this module as it was, one of them with
|
|
123
|
+
* an unsupported id; one with raw keys): three times it stayed in the
|
|
124
|
+
* composer, once it was simply gone, as in the Issue's report (that run had
|
|
125
|
+
* hooks wired, and neither `UserPromptSubmit` nor `Stop` fired);
|
|
126
|
+
* - the body alone: sent through this module while the row read
|
|
127
|
+
* `Loading: 16 skills`, it ran; typed with raw keys the moment the composer
|
|
128
|
+
* appeared and submitted 0.1 s later (the row still a bare `Loading:`), it
|
|
129
|
+
* stayed in the composer until a later Enter, sent by hand once loading had
|
|
130
|
+
* ended;
|
|
131
|
+
* - `/model`, then the body only once the switch row AND the idle status bar
|
|
132
|
+
* were on screen: the turn ran and answered every time, and in the run with
|
|
133
|
+
* hooks wired `UserPromptSubmit` and `Stop` both fired.
|
|
134
|
+
*
|
|
135
|
+
* The raw-key runs also show why the read-back after Enter did not catch it:
|
|
136
|
+
* the pane still drew an EMPTY composer 90 ms after the Enter and the body
|
|
137
|
+
* appeared ~0.7 s after it, so a 200 ms read-back reads `submitted`.
|
|
138
|
+
*
|
|
139
|
+
* `MCP Servers reloaded: 1 server connected`, which the Issue suspected, is not
|
|
140
|
+
* it. It is printed once per launch, 2–6 s after loading ends, whether or not
|
|
141
|
+
* `/model` was sent; a body typed one key at a time over the 5 s before it
|
|
142
|
+
* arrived intact, and a turn submitted 3 s before it ran through it.
|
|
143
|
+
*/
|
|
144
|
+
const COPILOT_LOADING_ROW_PATTERN = /^\s*\S\s+Loading:/;
|
|
145
|
+
/**
|
|
146
|
+
* Whether copilot is still on its start-up row (Issue #2623).
|
|
147
|
+
*
|
|
148
|
+
* Reads the bottom non-blank row only — where the status bar goes — for the
|
|
149
|
+
* same reason as `readCopilotStatusBar`: a `Loading:` a reply happened to print
|
|
150
|
+
* higher up must not hold a send.
|
|
151
|
+
*
|
|
152
|
+
* @param lines - Frame rows, ANSI already stripped, in pane order
|
|
153
|
+
*/
|
|
154
|
+
function isCopilotStartupLoading(lines) {
|
|
155
|
+
for (let i = lines.length - 1; i >= 0; i--) {
|
|
156
|
+
if (lines[i].trim() === '')
|
|
157
|
+
continue;
|
|
158
|
+
return COPILOT_LOADING_ROW_PATTERN.test(lines[i]);
|
|
159
|
+
}
|
|
160
|
+
return false;
|
|
161
|
+
}
|
|
162
|
+
function escapeRegExp(text) {
|
|
163
|
+
return text.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
|
|
164
|
+
}
|
|
165
|
+
/**
|
|
166
|
+
* Count what copilot has printed in answer to `/model <modelName>`
|
|
167
|
+
* (Issue #2623).
|
|
168
|
+
*
|
|
169
|
+
* The argument form never opens a picker (#1895); it prints one row into the
|
|
170
|
+
* transcript. The spellings, all measured on 1.0.85:
|
|
171
|
+
*
|
|
172
|
+
* ● Model changed from gpt-5.6-terra (xhigh) to claude-sonnet-5 (medium) for this session
|
|
173
|
+
* ● Switched model to: gpt-5.6-terra (already on that model)
|
|
174
|
+
* ✗ Model "claude-opus-4.6" is unsupported. (not a model id)
|
|
175
|
+
* ✗ Model "claude-opus-5" is unavailable. (a model the plan does not include)
|
|
176
|
+
*
|
|
177
|
+
* The refusal rows are followed by the lists of valid ids (` - "claude-sonnet-5"`),
|
|
178
|
+
* so every pattern is anchored at the row's own bullet and the id is matched
|
|
179
|
+
* whole — `gpt-5` must not count a switch to `gpt-5-mini`. 1.0.80 printed the
|
|
180
|
+
* same success row with `. Use /config to set default` on the end, which the
|
|
181
|
+
* lookahead still accepts.
|
|
182
|
+
*
|
|
183
|
+
* Counted rather than tested for presence because the pane keeps every earlier
|
|
184
|
+
* answer: a second `--model` send for the same id must wait for a NEW row.
|
|
185
|
+
*
|
|
186
|
+
* @param output - Pane capture; ANSI is stripped here
|
|
187
|
+
* @param modelName - The id that was (or is about to be) sent
|
|
188
|
+
*/
|
|
189
|
+
function readCopilotModelSwitchOutcomes(output, modelName) {
|
|
190
|
+
const id = escapeRegExp(modelName);
|
|
191
|
+
const switchedRows = [
|
|
192
|
+
new RegExp(`^\\s*●\\s+Model changed from .+ to ${id}(?=\\s|$)`),
|
|
193
|
+
new RegExp(`^\\s*●\\s+Switched model to:\\s*${id}\\s*$`),
|
|
194
|
+
];
|
|
195
|
+
const rejectedRow = new RegExp(`^\\s*✗\\s+Model "${id}" is \\S`);
|
|
196
|
+
const outcomes = { switched: 0, rejected: [] };
|
|
197
|
+
for (const line of (0, cli_patterns_1.stripAnsi)(output).split('\n')) {
|
|
198
|
+
if (switchedRows.some((pattern) => pattern.test(line))) {
|
|
199
|
+
outcomes.switched++;
|
|
200
|
+
}
|
|
201
|
+
else if (rejectedRow.test(line)) {
|
|
202
|
+
outcomes.rejected.push(line.trim().replace(/^✗\s+/, ''));
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
return outcomes;
|
|
206
|
+
}
|
|
207
|
+
/**
|
|
208
|
+
* Has `/model <modelName>` answered since `before` was read? (Issue #2623)
|
|
209
|
+
*
|
|
210
|
+
* A refusal wins over a success: the two cannot both be new, and if a frame
|
|
211
|
+
* ever claimed they were, sending the body to a model nobody confirmed is the
|
|
212
|
+
* outcome to avoid.
|
|
213
|
+
*/
|
|
214
|
+
function judgeCopilotModelSwitch(before, output, modelName) {
|
|
215
|
+
const after = readCopilotModelSwitchOutcomes(output, modelName);
|
|
216
|
+
if (after.rejected.length > before.rejected.length) {
|
|
217
|
+
return { kind: 'rejected', reason: after.rejected[after.rejected.length - 1] };
|
|
218
|
+
}
|
|
219
|
+
if (after.switched > before.switched) {
|
|
220
|
+
return { kind: 'switched' };
|
|
221
|
+
}
|
|
222
|
+
return { kind: 'pending' };
|
|
223
|
+
}
|
|
224
|
+
/** The pane's bottom non-blank row, squeezed, for an error message a person reads. */
|
|
225
|
+
function describeBottomRow(output) {
|
|
226
|
+
const lines = (0, cli_patterns_1.stripAnsi)(output).split('\n');
|
|
227
|
+
for (let i = lines.length - 1; i >= 0; i--) {
|
|
228
|
+
const row = lines[i].trim().replace(/\s{2,}/g, ' ');
|
|
229
|
+
if (row === '')
|
|
230
|
+
continue;
|
|
231
|
+
return JSON.stringify(row.length > 80 ? `${row.slice(0, 80)}…` : row);
|
|
232
|
+
}
|
|
233
|
+
return 'an empty pane';
|
|
234
|
+
}
|
|
102
235
|
/**
|
|
103
236
|
* Copilot CLI tool implementation
|
|
104
237
|
* Manages GitHub Copilot interactive sessions using tmux
|
|
@@ -398,19 +531,32 @@ class CopilotTool extends base_1.BaseCLITool {
|
|
|
398
531
|
* above: `sendUserMessage` and the terminal route both consult
|
|
399
532
|
* `isPromptWaiting` (#1708/#1737) and refuse before reaching here.
|
|
400
533
|
*
|
|
534
|
+
* Issue #2623 adds a third case, measured on 1.0.85: **composer on screen,
|
|
535
|
+
* copilot still starting — until loading ends (3–4.5 s).** The composer is drawn
|
|
536
|
+
* before hooks, skills and MCP servers have loaded, and a line submitted then
|
|
537
|
+
* is not reliably run (see {@link COPILOT_LOADING_ROW_PATTERN}). The `❯` alone
|
|
538
|
+
* used to end this wait in 0 ms right there, which is how `send --model` on a
|
|
539
|
+
* session it had just started typed a body that never ran.
|
|
540
|
+
*
|
|
541
|
+
* Timing out still only logs and lets the send proceed, as before; the caller
|
|
542
|
+
* that must not proceed ({@link sendModelCommand}) reads the result.
|
|
543
|
+
*
|
|
401
544
|
* @param sessionName - tmux session name
|
|
402
545
|
* @param timeoutMs - Optional timeout in ms (default: COPILOT_PROMPT_WAIT_TIMEOUT_MS)
|
|
546
|
+
* @param until - What counts as ready (Issue #2623, default `composer`)
|
|
547
|
+
* @returns Whether the pane got there, and the last frame read (ANSI stripped)
|
|
403
548
|
*/
|
|
404
|
-
async waitForPrompt(sessionName, timeoutMs = COPILOT_PROMPT_WAIT_TIMEOUT_MS) {
|
|
549
|
+
async waitForPrompt(sessionName, timeoutMs = COPILOT_PROMPT_WAIT_TIMEOUT_MS, until = 'composer') {
|
|
405
550
|
const startTime = Date.now();
|
|
406
551
|
const pollInterval = 500;
|
|
407
552
|
let trustDialogHandled = false;
|
|
553
|
+
let output = '';
|
|
408
554
|
while (Date.now() - startTime < timeoutMs) {
|
|
409
555
|
try {
|
|
410
556
|
const rawOutput = await (0, tmux_1.capturePane)(sessionName, 50);
|
|
411
|
-
|
|
412
|
-
if (
|
|
413
|
-
return;
|
|
557
|
+
output = (0, cli_patterns_1.stripAnsi)(rawOutput);
|
|
558
|
+
if (this.isReadyFor(until, output)) {
|
|
559
|
+
return { ready: true, output };
|
|
414
560
|
}
|
|
415
561
|
// Issue #1886: `startSession` returns early for a session that already
|
|
416
562
|
// exists, so a pane adopted from outside CommandMate -- or one whose
|
|
@@ -430,7 +576,27 @@ class CopilotTool extends base_1.BaseCLITool {
|
|
|
430
576
|
}
|
|
431
577
|
await new Promise((resolve) => setTimeout(resolve, pollInterval));
|
|
432
578
|
}
|
|
433
|
-
logger.info('copilot-prompt-not-detected');
|
|
579
|
+
logger.info('copilot-prompt-not-detected', { until, bottomRow: describeBottomRow(output) });
|
|
580
|
+
return { ready: false, output };
|
|
581
|
+
}
|
|
582
|
+
/**
|
|
583
|
+
* The readiness test behind {@link waitForPrompt} (Issue #2623).
|
|
584
|
+
*
|
|
585
|
+
* `COPILOT_PROMPT_PATTERN` is still the composer test, unchanged: the
|
|
586
|
+
* folder-trust dialog has no `❯` at column 0, so it keeps reading as not ready
|
|
587
|
+
* (#1886). What is new is that the start-up row is never ready, and that
|
|
588
|
+
* `idle` asks the status bar as well.
|
|
589
|
+
*
|
|
590
|
+
* @param until - What counts as ready
|
|
591
|
+
* @param output - ANSI-stripped pane capture
|
|
592
|
+
*/
|
|
593
|
+
isReadyFor(until, output) {
|
|
594
|
+
if (!cli_patterns_1.COPILOT_PROMPT_PATTERN.test(output))
|
|
595
|
+
return false;
|
|
596
|
+
const lines = output.split('\n');
|
|
597
|
+
if (isCopilotStartupLoading(lines))
|
|
598
|
+
return false;
|
|
599
|
+
return until === 'composer' || (0, cli_patterns_1.readCopilotStatusBar)(lines) === 'idle';
|
|
434
600
|
}
|
|
435
601
|
/**
|
|
436
602
|
* Extract slash command name from a message (e.g., "/model" → "model").
|
|
@@ -532,10 +698,11 @@ class CopilotTool extends base_1.BaseCLITool {
|
|
|
532
698
|
*
|
|
533
699
|
* Flow:
|
|
534
700
|
* 1. Verify session exists
|
|
535
|
-
* 2.
|
|
536
|
-
* 3.
|
|
701
|
+
* 2. Wait until copilot is idle (Issue #2623)
|
|
702
|
+
* 3. Send `/model <modelName>` + Enter
|
|
703
|
+
* 4. Wait for copilot's answer to it (Issue #2623); a refusal or no answer throws
|
|
537
704
|
*
|
|
538
|
-
*
|
|
705
|
+
* The original flow's picker steps -- wait up to 5s for the picker, then
|
|
539
706
|
* send Enter if it appeared -- are gone (Issue #1895). `/model` opens a picker
|
|
540
707
|
* only when it is given NO argument; with one it switches in place and prints
|
|
541
708
|
* `● Model changed from gpt-5.6-terra (xhigh) to gpt-5-mini (medium) for this
|
|
@@ -545,8 +712,37 @@ class CopilotTool extends base_1.BaseCLITool {
|
|
|
545
712
|
* expire, and the `C-m` it guarded was a bare Enter aimed at whatever was on
|
|
546
713
|
* screen 5 seconds after a switch that had already finished.
|
|
547
714
|
*
|
|
715
|
+
* Issue #2623 replaced "wait for the composer" with steps 2 and 4, because the
|
|
716
|
+
* composer is on screen before, during and after a switch and so proved
|
|
717
|
+
* nothing: that wait returned in 22 ms on every call, and `sendUserMessage`
|
|
718
|
+
* typed the body 0.3 s later into a copilot still loading
|
|
719
|
+
* ({@link COPILOT_LOADING_ROW_PATTERN}). Measured on 1.0.85:
|
|
720
|
+
*
|
|
721
|
+
* - **Idle before, not just drawn.** On a fresh launch the switch waited for
|
|
722
|
+
* loading anyway (its row appeared 3.2 s after the keystroke); the body sent
|
|
723
|
+
* behind it did not survive. And `/model` sent during a running turn
|
|
724
|
+
* switched SILENTLY near the end of that turn — the status bar changed, no
|
|
725
|
+
* row was printed — so there would be nothing to wait for. Sending it only
|
|
726
|
+
* from an idle, empty composer makes step 4's row the one thing to look for,
|
|
727
|
+
* and keeps `/model` from being spliced after text already in the composer.
|
|
728
|
+
* - **An answer after, not a composer.** An idle switch printed its row 0.4–1.2 s
|
|
729
|
+
* after the keystroke, and the status-bar label can change first, so the
|
|
730
|
+
* row is what is waited for ({@link readCopilotModelSwitchOutcomes} has the
|
|
731
|
+
* four spellings). A
|
|
732
|
+
* refusal is not a switch, yet the body used to follow it regardless: on a
|
|
733
|
+
* launch it was left in the composer, and on a ready session nothing kept
|
|
734
|
+
* it from the model already in effect. Now the caller is told, in copilot's
|
|
735
|
+
* own words, and nothing else is typed.
|
|
736
|
+
*
|
|
737
|
+
* Both waits use {@link COPILOT_MODEL_SWITCH_TIMEOUT_MS} each. Running out
|
|
738
|
+
* throws rather than proceeds: a body sent without the answer is the defect
|
|
739
|
+
* this replaces. The one blind spot is a transcript long enough to scroll, if
|
|
740
|
+
* an older row for the same id leaves the top just as the new one lands: the
|
|
741
|
+
* count stands still, and that also throws rather than sends.
|
|
742
|
+
*
|
|
548
743
|
* @param worktreeId - Worktree ID
|
|
549
744
|
* @param modelName - Model name to switch to
|
|
745
|
+
* @throws Error when copilot is not idle, refuses the model, or does not answer
|
|
550
746
|
*/
|
|
551
747
|
async sendModelCommand(worktreeId, modelName, instanceId) {
|
|
552
748
|
const sessionName = this.getSessionName(worktreeId, instanceId);
|
|
@@ -556,13 +752,26 @@ class CopilotTool extends base_1.BaseCLITool {
|
|
|
556
752
|
throw new Error(`Copilot session ${sessionName} does not exist. Start the session first.`);
|
|
557
753
|
}
|
|
558
754
|
try {
|
|
755
|
+
const idle = await this.waitForPrompt(sessionName, copilot_constants_1.COPILOT_MODEL_SWITCH_TIMEOUT_MS, 'idle');
|
|
756
|
+
if (!idle.ready) {
|
|
757
|
+
throw new Error(`copilot did not become idle within ${copilot_constants_1.COPILOT_MODEL_SWITCH_TIMEOUT_MS}ms, so /model was not sent ` +
|
|
758
|
+
`(bottom row: ${describeBottomRow(idle.output)})`);
|
|
759
|
+
}
|
|
760
|
+
const before = readCopilotModelSwitchOutcomes(idle.output, modelName);
|
|
559
761
|
// Send /model <modelName> command with Enter. An argument means an
|
|
560
762
|
// in-place switch, never a picker (Issue #1895).
|
|
561
763
|
await (0, tmux_1.sendKeys)(sessionName, `/model ${modelName}`, true);
|
|
562
|
-
|
|
563
|
-
await this.waitForPrompt(sessionName, copilot_constants_1.COPILOT_MODEL_SWITCH_TIMEOUT_MS);
|
|
564
|
-
// Invalidate cache after model switch
|
|
764
|
+
const verdict = await this.waitForModelSwitchOutcome(sessionName, modelName, before);
|
|
565
765
|
(0, tmux_capture_cache_1.invalidateCache)(sessionName);
|
|
766
|
+
if (verdict.kind === 'rejected') {
|
|
767
|
+
logger.warn('copilot-model-rejected', { model: modelName, reason: verdict.reason });
|
|
768
|
+
throw new Error(`copilot refused it: ${verdict.reason}`);
|
|
769
|
+
}
|
|
770
|
+
if (verdict.kind === 'pending') {
|
|
771
|
+
logger.warn('copilot-model-switch-unconfirmed', { model: modelName, bottomRow: verdict.bottomRow });
|
|
772
|
+
throw new Error(`copilot printed no answer to /model within ${copilot_constants_1.COPILOT_MODEL_SWITCH_TIMEOUT_MS}ms ` +
|
|
773
|
+
`(bottom row: ${verdict.bottomRow}); the switch may still take effect, and nothing further was typed`);
|
|
774
|
+
}
|
|
566
775
|
logger.info('copilot-model-switched', { model: modelName });
|
|
567
776
|
}
|
|
568
777
|
catch (error) {
|
|
@@ -570,6 +779,30 @@ class CopilotTool extends base_1.BaseCLITool {
|
|
|
570
779
|
throw new Error(`Failed to switch Copilot model to ${modelName}: ${errorMessage}`);
|
|
571
780
|
}
|
|
572
781
|
}
|
|
782
|
+
/**
|
|
783
|
+
* Poll until `/model <modelName>` has answered (Issue #2623).
|
|
784
|
+
*
|
|
785
|
+
* @param before - What the idle frame held before the command was sent
|
|
786
|
+
* @returns The verdict; `pending` carries the last bottom row for the error
|
|
787
|
+
*/
|
|
788
|
+
async waitForModelSwitchOutcome(sessionName, modelName, before) {
|
|
789
|
+
const startTime = Date.now();
|
|
790
|
+
let output = '';
|
|
791
|
+
while (Date.now() - startTime < copilot_constants_1.COPILOT_MODEL_SWITCH_TIMEOUT_MS) {
|
|
792
|
+
await new Promise((resolve) => setTimeout(resolve, COPILOT_MODEL_SWITCH_POLL_MS));
|
|
793
|
+
try {
|
|
794
|
+
output = await (0, tmux_1.capturePane)(sessionName, 50);
|
|
795
|
+
}
|
|
796
|
+
catch {
|
|
797
|
+
// Capture may fail - continue polling
|
|
798
|
+
continue;
|
|
799
|
+
}
|
|
800
|
+
const verdict = judgeCopilotModelSwitch(before, output, modelName);
|
|
801
|
+
if (verdict.kind !== 'pending')
|
|
802
|
+
return verdict;
|
|
803
|
+
}
|
|
804
|
+
return { kind: 'pending', bottomRow: describeBottomRow(output) };
|
|
805
|
+
}
|
|
573
806
|
/**
|
|
574
807
|
* Kill Copilot session
|
|
575
808
|
*
|
|
@@ -11,8 +11,8 @@
|
|
|
11
11
|
*/
|
|
12
12
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
13
|
exports.updateSessionState = exports.getSessionState = exports.getMessagesByDateRange = exports.ACTIVE_FILTER = exports.recordAnsweredPrompt = exports.markPendingPromptsAsAnswered = exports.updatePromptData = exports.getMessageById = exports.recomputeLastUserMessage = exports.clearLastUserMessage = exports.updateLastUserMessage = exports.deleteMessagesByInstance = exports.deleteMessagesByCliTool = exports.deleteMessageById = exports.deleteAllMessages = exports.findMessageByRequestId = exports.getLastMessage = exports.getLastUserMessage = exports.getMessages = exports.updateMessageContent = exports.createMessage = exports.getLastAssistantMessageAt = exports.getAliasedWorktreeIds = exports.getAllWorktreeAliases = exports.getWorktreeAliases = exports.resolveWorktreeIdWithAlias = exports.recordWorktreeAlias = exports.deleteWorktreesByIds = exports.deleteRepositoryWorktrees = exports.migrateWorktreeIdPreservingChildren = exports.getAllWorktreePathIds = exports.getAllWorktreeIds = exports.getWorktreesByRepository = exports.getWorktreeIdsByRepository = exports.getInitialBranch = exports.saveInitialBranch = exports.updateVibeLocalContextWindow = exports.updateVibeLocalModel = exports.updateSelectedAgents = exports.updateCliToolId = exports.updateStatus = exports.updateFavorite = exports.updateLastViewedAt = exports.updateWorktreeLink = exports.updateWorktreeDescription = exports.upsertWorktree = exports.getWorktreeById = exports.getRepositories = exports.getWorktrees = exports.initDatabase = void 0;
|
|
14
|
-
exports.
|
|
15
|
-
exports.listTaskEvents = exports.ACTIVE_TASK_STATUSES = exports.TERMINAL_TASK_STATUSES = exports.TASK_STATUSES = exports.isTerminalTaskStatus = exports.getActiveTaskForInstance = exports.getActiveTask = exports.listTasks = exports.getTask = exports.createTask = exports.VERIFICATION_GATE_SOURCES = exports.VERIFICATION_TRIGGERS = exports.MAX_RUN_HISTORY_DAYS = exports.MAX_RUN_HISTORY_LIMIT = exports.DEFAULT_RUN_HISTORY_LIMIT = exports.listVerificationRunsForPeriod = exports.listRunningVerificationRuns = exports.getRunningVerificationRun = exports.listVerificationRuns = exports.getVerificationRun = exports.finishGateResult = exports.createGateResult = exports.finishVerificationRun = exports.createVerificationRun =
|
|
14
|
+
exports.pushSubscriptionNeedsDefaultsNotice = exports.PUSH_DEFAULTS_VERSION = exports.NEW_SUBSCRIPTION_DEFAULTS = exports.deletePushSubscriptionByEndpoint = exports.updatePushSubscriptionPreferences = exports.countPushSubscriptionsForKind = exports.getPushSubscriptionsForKind = exports.getAllPushSubscriptions = exports.getPushSubscriptionByEndpoint = exports.upsertPushSubscription = exports.updateDailyReportContent = exports.saveDailyReport = exports.getDailyReport = exports.recoverStuckSendingTimers = exports.clearTimerHistory = exports.cleanupOldTimers = exports.getPendingTimerCountByWorktree = exports.cancelTimersByWorktree = exports.cancelTimer = exports.updateTimerStatus = exports.getPendingTimers = exports.getTimerById = exports.getTimersByWorktree = exports.createTimer = exports.WORKTREE_TODO_STATUSES = exports.isWorktreeTodoStatus = exports.reorderWorktreeTodos = exports.deleteWorktreeTodo = exports.updateWorktreeTodo = exports.createWorktreeTodo = exports.getWorktreeTodoById = exports.getTodosByWorktreeId = exports.MemoDbError = exports.reorderMemos = exports.deleteMemo = exports.updateMemo = exports.createMemo = exports.getMemoById = exports.getMemosByWorktreeId = exports.InvalidAgentInstanceError = exports.AgentInstanceLimitError = exports.removeAgentInstance = exports.addAgentInstance = exports.setAgentInstances = exports.countAgentInstances = exports.getAgentInstance = exports.getAgentInstances = exports.deleteSessionState = exports.clearInProgressMessageId = exports.setInProgressMessageId = void 0;
|
|
15
|
+
exports.listTaskEvents = exports.ACTIVE_TASK_STATUSES = exports.TERMINAL_TASK_STATUSES = exports.TASK_STATUSES = exports.isTerminalTaskStatus = exports.getActiveTaskForInstance = exports.getActiveTask = exports.listTasks = exports.getTask = exports.createTask = exports.VERIFICATION_GATE_SOURCES = exports.VERIFICATION_TRIGGERS = exports.MAX_RUN_HISTORY_DAYS = exports.MAX_RUN_HISTORY_LIMIT = exports.DEFAULT_RUN_HISTORY_LIMIT = exports.listVerificationRunsForPeriod = exports.listRunningVerificationRuns = exports.getRunningVerificationRun = exports.listVerificationRuns = exports.getVerificationRun = exports.finishGateResult = exports.createGateResult = exports.finishVerificationRun = exports.createVerificationRun = void 0;
|
|
16
16
|
// init-db
|
|
17
17
|
var init_db_1 = require("./init-db");
|
|
18
18
|
Object.defineProperty(exports, "initDatabase", { enumerable: true, get: function () { return init_db_1.initDatabase; } });
|
|
@@ -95,16 +95,8 @@ Object.defineProperty(exports, "updateMemo", { enumerable: true, get: function (
|
|
|
95
95
|
Object.defineProperty(exports, "deleteMemo", { enumerable: true, get: function () { return memo_db_1.deleteMemo; } });
|
|
96
96
|
Object.defineProperty(exports, "reorderMemos", { enumerable: true, get: function () { return memo_db_1.reorderMemos; } });
|
|
97
97
|
Object.defineProperty(exports, "MemoDbError", { enumerable: true, get: function () { return memo_db_1.MemoDbError; } });
|
|
98
|
-
// todo-db (repository-scoped Home ToDo widget)
|
|
99
|
-
var todo_db_1 = require("./todo-db");
|
|
100
|
-
Object.defineProperty(exports, "getTodosByRepositoryId", { enumerable: true, get: function () { return todo_db_1.getTodosByRepositoryId; } });
|
|
101
|
-
Object.defineProperty(exports, "getAllTodos", { enumerable: true, get: function () { return todo_db_1.getAllTodos; } });
|
|
102
|
-
Object.defineProperty(exports, "getTodoById", { enumerable: true, get: function () { return todo_db_1.getTodoById; } });
|
|
103
|
-
Object.defineProperty(exports, "createTodo", { enumerable: true, get: function () { return todo_db_1.createTodo; } });
|
|
104
|
-
Object.defineProperty(exports, "updateTodo", { enumerable: true, get: function () { return todo_db_1.updateTodo; } });
|
|
105
|
-
Object.defineProperty(exports, "deleteTodo", { enumerable: true, get: function () { return todo_db_1.deleteTodo; } });
|
|
106
98
|
// worktree-todo-db (branch-scoped ToDo list, Issue #1015)
|
|
107
|
-
//
|
|
99
|
+
// Exported under Worktree-prefixed aliases (the API routes import these names).
|
|
108
100
|
var worktree_todo_db_1 = require("./worktree-todo-db");
|
|
109
101
|
Object.defineProperty(exports, "getTodosByWorktreeId", { enumerable: true, get: function () { return worktree_todo_db_1.getTodosByWorktreeId; } });
|
|
110
102
|
Object.defineProperty(exports, "getWorktreeTodoById", { enumerable: true, get: function () { return worktree_todo_db_1.getTodoById; } });
|
|
@@ -132,27 +124,6 @@ var daily_report_db_1 = require("./daily-report-db");
|
|
|
132
124
|
Object.defineProperty(exports, "getDailyReport", { enumerable: true, get: function () { return daily_report_db_1.getDailyReport; } });
|
|
133
125
|
Object.defineProperty(exports, "saveDailyReport", { enumerable: true, get: function () { return daily_report_db_1.saveDailyReport; } });
|
|
134
126
|
Object.defineProperty(exports, "updateDailyReportContent", { enumerable: true, get: function () { return daily_report_db_1.updateDailyReportContent; } });
|
|
135
|
-
// assistant-conversation-db
|
|
136
|
-
var assistant_conversation_db_1 = require("./assistant-conversation-db");
|
|
137
|
-
Object.defineProperty(exports, "getAssistantConversationById", { enumerable: true, get: function () { return assistant_conversation_db_1.getAssistantConversationById; } });
|
|
138
|
-
Object.defineProperty(exports, "getAssistantConversationByRepositoryAndCliTool", { enumerable: true, get: function () { return assistant_conversation_db_1.getAssistantConversationByRepositoryAndCliTool; } });
|
|
139
|
-
Object.defineProperty(exports, "createAssistantConversation", { enumerable: true, get: function () { return assistant_conversation_db_1.createAssistantConversation; } });
|
|
140
|
-
Object.defineProperty(exports, "updateAssistantConversation", { enumerable: true, get: function () { return assistant_conversation_db_1.updateAssistantConversation; } });
|
|
141
|
-
Object.defineProperty(exports, "createAssistantMessage", { enumerable: true, get: function () { return assistant_conversation_db_1.createAssistantMessage; } });
|
|
142
|
-
Object.defineProperty(exports, "updateAssistantMessageStatus", { enumerable: true, get: function () { return assistant_conversation_db_1.updateAssistantMessageStatus; } });
|
|
143
|
-
Object.defineProperty(exports, "getAssistantMessages", { enumerable: true, get: function () { return assistant_conversation_db_1.getAssistantMessages; } });
|
|
144
|
-
Object.defineProperty(exports, "getAssistantMessageById", { enumerable: true, get: function () { return assistant_conversation_db_1.getAssistantMessageById; } });
|
|
145
|
-
Object.defineProperty(exports, "archiveAllAssistantMessages", { enumerable: true, get: function () { return assistant_conversation_db_1.archiveAllAssistantMessages; } });
|
|
146
|
-
Object.defineProperty(exports, "archiveAssistantMessagesFrom", { enumerable: true, get: function () { return assistant_conversation_db_1.archiveAssistantMessagesFrom; } });
|
|
147
|
-
Object.defineProperty(exports, "createAssistantExecution", { enumerable: true, get: function () { return assistant_conversation_db_1.createAssistantExecution; } });
|
|
148
|
-
Object.defineProperty(exports, "updateAssistantExecution", { enumerable: true, get: function () { return assistant_conversation_db_1.updateAssistantExecution; } });
|
|
149
|
-
Object.defineProperty(exports, "getAssistantExecutionById", { enumerable: true, get: function () { return assistant_conversation_db_1.getAssistantExecutionById; } });
|
|
150
|
-
Object.defineProperty(exports, "getLatestAssistantExecutionByConversation", { enumerable: true, get: function () { return assistant_conversation_db_1.getLatestAssistantExecutionByConversation; } });
|
|
151
|
-
Object.defineProperty(exports, "getRunningAssistantExecutionByConversation", { enumerable: true, get: function () { return assistant_conversation_db_1.getRunningAssistantExecutionByConversation; } });
|
|
152
|
-
Object.defineProperty(exports, "listRunningAssistantExecutions", { enumerable: true, get: function () { return assistant_conversation_db_1.listRunningAssistantExecutions; } });
|
|
153
|
-
Object.defineProperty(exports, "getAssistantSessionState", { enumerable: true, get: function () { return assistant_conversation_db_1.getAssistantSessionState; } });
|
|
154
|
-
Object.defineProperty(exports, "updateAssistantSessionState", { enumerable: true, get: function () { return assistant_conversation_db_1.updateAssistantSessionState; } });
|
|
155
|
-
Object.defineProperty(exports, "deleteAssistantSessionState", { enumerable: true, get: function () { return assistant_conversation_db_1.deleteAssistantSessionState; } });
|
|
156
127
|
// push-subscriptions-db (Web Push, Issue #1125)
|
|
157
128
|
var push_subscriptions_db_1 = require("./push-subscriptions-db");
|
|
158
129
|
Object.defineProperty(exports, "upsertPushSubscription", { enumerable: true, get: function () { return push_subscriptions_db_1.upsertPushSubscription; } });
|
|
@@ -8,8 +8,7 @@
|
|
|
8
8
|
*
|
|
9
9
|
* Mirrors the worktree_memos pattern (memo-db.ts): the table only stores
|
|
10
10
|
* `worktree_id`, and rows are removed via ON DELETE CASCADE when the worktree
|
|
11
|
-
* is deleted.
|
|
12
|
-
* repository-scoped (Home widget). Issue #1015.
|
|
11
|
+
* is deleted. Issue #1015.
|
|
13
12
|
*/
|
|
14
13
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
14
|
exports.WORKTREE_TODO_STATUSES = void 0;
|
|
@@ -4,8 +4,8 @@
|
|
|
4
4
|
* Shared between response-poller.ts and API routes
|
|
5
5
|
*/
|
|
6
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
-
exports.
|
|
8
|
-
exports.CLAUDE_SESSION_ERROR_REGEX_PATTERNS = exports.CLAUDE_SESSION_ERROR_PATTERNS = exports.extractAnsiSequences = exports.stripAnsi = exports.COMMAND_CODE_SKIP_PATTERNS = exports.COMMAND_CODE_HOOK_NOTICE_PATTERN = exports.COMMAND_CODE_BANNER_PATTERNS = exports.COMMAND_CODE_MODE_INDICATOR_PATTERN = exports.COMMAND_CODE_COMPLETION_PATTERN = exports.COMMAND_CODE_RESPONSE_MARKER_PATTERN = exports.COMMAND_CODE_THINKING_PATTERN = exports.COMMAND_CODE_INTERRUPT_HINT_PATTERN = exports.COMMAND_CODE_SEPARATOR_PATTERN = exports.COMMAND_CODE_PROMPT_PATTERN = exports.COMMAND_CODE_SPINNER_CHARS = exports.ANTIGRAVITY_SKIP_PATTERNS = exports.ANTIGRAVITY_SURVEY_PATTERN = exports.ANTIGRAVITY_DIALOG_MAX_ROWS = exports.ANTIGRAVITY_DIALOG_BOUNDARY_PATTERN = exports.ANTIGRAVITY_SWITCH_MODEL_HEADER_PATTERN = exports.ANTIGRAVITY_NUMBERED_OPTION_PATTERN = exports.ANTIGRAVITY_NAVIGATE_FOOTER_PATTERN = exports.ANTIGRAVITY_SELECTION_LIST_PATTERN = exports.ANTIGRAVITY_SEPARATOR_PATTERN = exports.ANTIGRAVITY_THINKING_PATTERN = exports.ANTIGRAVITY_PROMPT_PATTERN = exports.ANTIGRAVITY_COMPOSER_MODE_BANNER_PATTERN = exports.ANTIGRAVITY_COMPOSER_MODE_BANNER_SOURCE = exports.VIBE_LOCAL_THINKING_PATTERN = exports.VIBE_LOCAL_PROMPT_PATTERN = exports.COPILOT_SKIP_PATTERNS = exports.COPILOT_FOLDER_TRUST_ANSWER_KEY = exports.COPILOT_FOLDER_TRUST_SESSION_OPTION_PATTERN = exports.COPILOT_FOLDER_TRUST_ANCHORS = exports.COPILOT_SELECTION_FOOTER_PATTERN = exports.COPILOT_BOOT_BANNER_ANCHORS = exports.COPILOT_TRANSCRIPT_CONTINUATION_PATTERN = exports.COPILOT_TOOL_ROW_PATTERN = void 0;
|
|
7
|
+
exports.COPILOT_TRANSCRIPT_DIVIDER_PATTERN = exports.COPILOT_USER_ECHO_PATTERN = exports.COPILOT_REASONING_HEADER_PATTERN = exports.COPILOT_BOX_ROW_PATTERN = exports.COPILOT_SEPARATOR_PATTERN = exports.COPILOT_IDLE_STATUS_PATTERN = exports.COPILOT_WORKING_STATUS_PATTERN = exports.COPILOT_THINKING_PATTERN = exports.COPILOT_PROMPT_PATTERN = exports.OPENCODE_SKIP_PATTERNS = exports.OPENCODE_SEPARATOR_PATTERN = exports.CLAUDE_SELECTION_LIST_FOOTER = exports.CLAUDE_MODEL_OVERLAY_FOOTER_PATTERN = exports.OPENCODE_SELECTION_LIST_PATTERN = exports.OPENCODE_FOOTER_STATUS_PATTERN = exports.OPENCODE_USER_ECHO_PATTERN = exports.OPENCODE_GUTTER_ROW_PATTERN = exports.OPENCODE_COMPOSER_BOTTOM_BORDER = exports.OPENCODE_PROCESSING_INDICATOR = exports.OPENCODE_PERMISSION_PATTERN = exports.OPENCODE_TURN_COMPLETE_PATTERN = exports.OPENCODE_RESPONSE_COMPLETE = exports.OPENCODE_LOADING_PATTERN = exports.OPENCODE_THINKING_PATTERN = exports.OPENCODE_PROMPT_AFTER_RESPONSE = exports.OPENCODE_IDLE_COMPOSER_PATTERN = exports.OPENCODE_PROMPT_PATTERN = exports.GEMINI_THINKING_PATTERN = exports.GEMINI_PROMPT_PATTERN = exports.MAX_PASTED_TEXT_RETRIES = exports.PASTED_TEXT_DETECT_DELAY = exports.PASTED_TEXT_PATTERN = exports.CODEX_USER_ECHO_PATTERN = exports.CODEX_STATUS_BAR_PATTERN = exports.CODEX_PAGER_FOOTER_PATTERN = exports.CODEX_FORM_SUBMIT_FOOTER_PATTERN = exports.CODEX_APPROVAL_FOOTER_PATTERN = exports.CODEX_SELECTION_LIST_PATTERN = exports.CODEX_SEPARATOR_PATTERN = exports.CODEX_HOOKS_REVIEW_ANCHORS = exports.CODEX_DIALOG_PATTERN = exports.CODEX_PROMPT_PATTERN = exports.CLAUDE_TRUST_DIALOG_PATTERN = exports.CLAUDE_SEPARATOR_PATTERN = exports.CLAUDE_PROMPT_PATTERN = exports.CODEX_INTERRUPT_HINT_PATTERN = exports.CODEX_THINKING_PATTERN = exports.CLAUDE_INTERRUPT_HINT_PATTERN = exports.CLAUDE_THINKING_PATTERN = exports.CLAUDE_SPINNER_CHARS = void 0;
|
|
8
|
+
exports.CLAUDE_SESSION_ERROR_REGEX_PATTERNS = exports.CLAUDE_SESSION_ERROR_PATTERNS = exports.extractAnsiSequences = exports.stripAnsi = exports.COMMAND_CODE_SKIP_PATTERNS = exports.COMMAND_CODE_HOOK_NOTICE_PATTERN = exports.COMMAND_CODE_BANNER_PATTERNS = exports.COMMAND_CODE_MODE_INDICATOR_PATTERN = exports.COMMAND_CODE_COMPLETION_PATTERN = exports.COMMAND_CODE_RESPONSE_MARKER_PATTERN = exports.COMMAND_CODE_THINKING_PATTERN = exports.COMMAND_CODE_INTERRUPT_HINT_PATTERN = exports.COMMAND_CODE_SEPARATOR_PATTERN = exports.COMMAND_CODE_PROMPT_PATTERN = exports.COMMAND_CODE_SPINNER_CHARS = exports.ANTIGRAVITY_SKIP_PATTERNS = exports.ANTIGRAVITY_SURVEY_PATTERN = exports.ANTIGRAVITY_DIALOG_MAX_ROWS = exports.ANTIGRAVITY_DIALOG_BOUNDARY_PATTERN = exports.ANTIGRAVITY_SWITCH_MODEL_HEADER_PATTERN = exports.ANTIGRAVITY_NUMBERED_OPTION_PATTERN = exports.ANTIGRAVITY_NAVIGATE_FOOTER_PATTERN = exports.ANTIGRAVITY_SELECTION_LIST_PATTERN = exports.ANTIGRAVITY_SEPARATOR_PATTERN = exports.ANTIGRAVITY_THINKING_PATTERN = exports.ANTIGRAVITY_PROMPT_PATTERN = exports.ANTIGRAVITY_COMPOSER_MODE_BANNER_PATTERN = exports.ANTIGRAVITY_COMPOSER_MODE_BANNER_SOURCE = exports.VIBE_LOCAL_THINKING_PATTERN = exports.VIBE_LOCAL_PROMPT_PATTERN = exports.COPILOT_SKIP_PATTERNS = exports.COPILOT_FOLDER_TRUST_ANSWER_KEY = exports.COPILOT_FOLDER_TRUST_SESSION_OPTION_PATTERN = exports.COPILOT_FOLDER_TRUST_ANCHORS = exports.COPILOT_SELECTION_FOOTER_PATTERN = exports.COPILOT_BOOT_BANNER_ANCHORS = exports.COPILOT_TRANSCRIPT_CONTINUATION_PATTERN = exports.COPILOT_TOOL_ROW_PATTERN = exports.COPILOT_TOOL_VERBS = void 0;
|
|
9
9
|
exports.isCodexTurnActive = isCodexTurnActive;
|
|
10
10
|
exports.findClaudeChromeStart = findClaudeChromeStart;
|
|
11
11
|
exports.isCodexPromptReady = isCodexPromptReady;
|
|
@@ -532,6 +532,43 @@ exports.CODEX_SELECTION_LIST_PATTERN = /press\s+enter\s+to\s+(?:confirm|select)/
|
|
|
532
532
|
* No /g flag (keeps .test() stateless), no nested quantifiers (ReDoS-safe).
|
|
533
533
|
*/
|
|
534
534
|
exports.CODEX_APPROVAL_FOOTER_PATTERN = /esc\s+to\s+cancel/i;
|
|
535
|
+
/**
|
|
536
|
+
* Codex CLI tool-call approval FORM footer (Issue #2609).
|
|
537
|
+
*
|
|
538
|
+
* Codex asks for some tool calls through a form rather than the classic
|
|
539
|
+
* approval list, and closes it with a different sentence. Measured on a live
|
|
540
|
+
* Browser use approval (2026-09-17, twice in one session):
|
|
541
|
+
*
|
|
542
|
+
* ```text
|
|
543
|
+
* • Calling 修正前の専用GUIを開く
|
|
544
|
+
*
|
|
545
|
+
* Field 1/1
|
|
546
|
+
* Allow Browser use to access http://127.0.0.1:60311?
|
|
547
|
+
*
|
|
548
|
+
* origin: http://127.0.0.1:60311
|
|
549
|
+
*
|
|
550
|
+
* › 1. Allow Run the tool and continue.
|
|
551
|
+
* 2. Always allow Run the tool and remember this choice for future tool calls.
|
|
552
|
+
* 3. Cancel Cancel this tool call
|
|
553
|
+
* enter to submit | esc to cancel
|
|
554
|
+
* ```
|
|
555
|
+
*
|
|
556
|
+
* No `press enter to confirm/select`, so {@link CODEX_SELECTION_LIST_PATTERN}
|
|
557
|
+
* misses it and `detectCodexDialog` returned null for a dialog the status
|
|
558
|
+
* detector reported as `waiting` — which `/prompt-response` read as
|
|
559
|
+
* `prompt_no_longer_active` and Auto-Yes as `unclassified-frame`.
|
|
560
|
+
*
|
|
561
|
+
* Deliberately a separate constant rather than another alternative in
|
|
562
|
+
* CODEX_SELECTION_LIST_PATTERN: that one also drives `detect.ts` branch 0.8, and
|
|
563
|
+
* this footer is consumed ONLY by `detectCodexDialog`'s entry gate. It is the
|
|
564
|
+
* whole measured row and nothing looser — `/m` + `^…$` against the trimmed
|
|
565
|
+
* footer rows `findNumberedOptionBlock` returns, so a sentence that merely
|
|
566
|
+
* contains "enter to submit", or "esc to cancel" on its own (the #1928 mutation
|
|
567
|
+
* that rewords the approval footer), still does not vouch for a block.
|
|
568
|
+
*
|
|
569
|
+
* No /g flag (keeps .test() stateless), no nested quantifiers (ReDoS-safe).
|
|
570
|
+
*/
|
|
571
|
+
exports.CODEX_FORM_SUBMIT_FOOTER_PATTERN = /^enter\s+to\s+submit\s*\|\s*esc\s+to\s+cancel$/im;
|
|
535
572
|
/**
|
|
536
573
|
* Codex CLI pager / edit-previous (transcript) mode footer pattern (Issue #1017)
|
|
537
574
|
*
|
|
@@ -22,6 +22,14 @@
|
|
|
22
22
|
* readings of "is this codex's dialog?" would be two chances to disagree, and
|
|
23
23
|
* this one is the one Auto-Yes acts on.
|
|
24
24
|
*
|
|
25
|
+
* Issue #2609 added one more measured footer, and only that one: codex's
|
|
26
|
+
* tool-call approval FORM (`Field 1/1`, seen on a Browser use request) closes
|
|
27
|
+
* with `enter to submit | esc to cancel`
|
|
28
|
+
* ({@link CODEX_FORM_SUBMIT_FOOTER_PATTERN}). `detect.ts` already reported that
|
|
29
|
+
* frame `waiting` through its structural branch (#2310), so without it the two
|
|
30
|
+
* readings disagreed: `respond` answered `prompt_no_longer_active` for a prompt
|
|
31
|
+
* the status API was showing.
|
|
32
|
+
*
|
|
25
33
|
* ## Why the footer and not the numbers
|
|
26
34
|
*
|
|
27
35
|
* Codex draws on the NORMAL screen, so its pane keeps scrollback: an approval
|
|
@@ -85,8 +93,14 @@ function detectCodexDialog(frame, context) {
|
|
|
85
93
|
// The footer is the whole guard. It is positional as well as textual: only the
|
|
86
94
|
// rows between the options and the status bar are looked at, so the same words
|
|
87
95
|
// quoted inside a transcript hundreds of rows up cannot reach it.
|
|
88
|
-
|
|
96
|
+
//
|
|
97
|
+
// Issue #2609: the approval form's footer is admitted as its own measured row,
|
|
98
|
+
// not by widening the list pattern — an `esc to cancel` alone still vouches
|
|
99
|
+
// for nothing.
|
|
100
|
+
if (!cli_patterns_1.CODEX_SELECTION_LIST_PATTERN.test(block.footer) &&
|
|
101
|
+
!cli_patterns_1.CODEX_FORM_SUBMIT_FOOTER_PATTERN.test(block.footer)) {
|
|
89
102
|
return null;
|
|
103
|
+
}
|
|
90
104
|
// Issue #1160: an already-answered block still inside the window is not a
|
|
91
105
|
// dialog. Codex keeps it on screen and goes on working underneath it.
|
|
92
106
|
if (context.stalePrompt)
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
* @module lib/hooks/agent-event-types
|
|
20
20
|
*/
|
|
21
21
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
22
|
-
exports.PERMISSION_REPLIED_DETAIL = exports.MAX_EVENT_DETAIL_LENGTH = exports.AGENT_EVENT_TYPES = void 0;
|
|
22
|
+
exports.SELF_RESUME_PENDING_DETAIL = exports.PERMISSION_REPLIED_DETAIL = exports.MAX_EVENT_DETAIL_LENGTH = exports.AGENT_EVENT_TYPES = void 0;
|
|
23
23
|
exports.isAgentEventType = isAgentEventType;
|
|
24
24
|
/**
|
|
25
25
|
* Event kinds accepted by `POST /api/hooks/agent-event`.
|
|
@@ -68,3 +68,21 @@ exports.MAX_EVENT_DETAIL_LENGTH = 128;
|
|
|
68
68
|
* `AgentSourceCapabilities.permissionReplyReleasesPrompt` to declare.
|
|
69
69
|
*/
|
|
70
70
|
exports.PERMISSION_REPLIED_DETAIL = 'permission_replied';
|
|
71
|
+
/**
|
|
72
|
+
* The `stop` detail meaning "the turn ended, but the agent will resume on its
|
|
73
|
+
* own" (Issue #2614).
|
|
74
|
+
*
|
|
75
|
+
* A turn an agent closes while its own background work is still running — a
|
|
76
|
+
* timer it set, a command it sent to the background, a subagent — is not the
|
|
77
|
+
* end of the work: when that work finishes the agent is woken without anybody
|
|
78
|
+
* typing anything. antigravity's `schedule` measured it on 2026-09-17: four
|
|
79
|
+
* `Stop`s in five minutes, each one ~58 s before the agent woke itself, and
|
|
80
|
+
* `wait` read the first of them as the verdict.
|
|
81
|
+
*
|
|
82
|
+
* Named here rather than in a source's own file for the reason
|
|
83
|
+
* {@link PERMISSION_REPLIED_DETAIL} is: the source that writes it and the CLI
|
|
84
|
+
* that reads it (`src/cli/commands/wait.ts`, which cannot import this module
|
|
85
|
+
* and keeps a pinned copy) have to agree on it. Whether a source can say it at
|
|
86
|
+
* all is `AgentSourceCapabilities.stopReportsSelfResume`, declared below.
|
|
87
|
+
*/
|
|
88
|
+
exports.SELF_RESUME_PENDING_DETAIL = 'self_resume_pending';
|