commandmate 0.49.0 → 0.49.2
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 +251 -248
- package/.next/app-path-routes-manifest.json +22 -21
- package/.next/build-manifest.json +2 -2
- package/.next/prerender-manifest.json +9 -9
- package/.next/required-server-files.json +1 -1
- package/.next/routes-manifest.json +8 -0
- package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/server/app/api/agents/update/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/agents/versions/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/app/release-notes/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/app/update/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/app/update-check/route_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 +2 -2
- package/.next/server/app/api/hooks/agent-event/route.js.nft.json +1 -1
- package/.next/server/app/api/hooks/agent-event/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/hooks/claude-done/route.js +2 -2
- package/.next/server/app/api/hooks/claude-done/route.js.nft.json +1 -1
- package/.next/server/app/api/hooks/claude-done/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/hooks/permission-request/route.js +1 -1
- package/.next/server/app/api/hooks/permission-request/route.js.nft.json +1 -1
- package/.next/server/app/api/hooks/permission-request/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/metrics/vibe/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/ollama/models/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/push/escalation/route_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/[relayId]/route.js +1 -0
- package/.next/server/app/api/relays/[relayId]/route.js.nft.json +1 -0
- package/.next/server/app/api/relays/[relayId]/route_client-reference-manifest.js +1 -0
- 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]/direct-input/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/direct-input/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/direct-input/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/env/route.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 +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 +2 -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.js.nft.json +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 +2 -2
- package/.next/server/app/api/worktrees/[id]/logs/route.js.nft.json +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.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/opencode/diff/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/opencode/session/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/opencode/session/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/opencode/session/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/opencode/share/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/opencode/share/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/opencode/share/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/prompt-response/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/prompt-response/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/prompt-response/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/prompt-response/strict/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/prompt-response/strict/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/prompt-response/strict/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 +144 -1
- package/.next/server/app/api/worktrees/[id]/send/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/send/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/skills/[skillId]/git-workflow/route.js +2 -2
- package/.next/server/app/api/worktrees/[id]/skills/[skillId]/git-workflow/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/skills/[skillId]/git-workflow/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/skills/[skillId]/install/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/skills/[skillId]/plan/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall-plan/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/skills/[skillId]/update/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/skills/[skillId]/update-plan/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/skills/route.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 +103 -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.js.nft.json +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.js.nft.json +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.js.nft.json +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.js.nft.json +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_client-reference-manifest.js +1 -1
- package/.next/server/app/manifest.webmanifest/route_client-reference-manifest.js +1 -1
- package/.next/server/app/more/page_client-reference-manifest.js +1 -1
- package/.next/server/app/offline/page_client-reference-manifest.js +1 -1
- package/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/server/app/proxy/[...path]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/repositories/page_client-reference-manifest.js +1 -1
- package/.next/server/app/review/page.js +1 -1
- package/.next/server/app/review/page_client-reference-manifest.js +1 -1
- package/.next/server/app/sessions/page.js +1 -1
- package/.next/server/app/sessions/page.js.nft.json +1 -1
- package/.next/server/app/sessions/page_client-reference-manifest.js +1 -1
- package/.next/server/app/skills/[skillId]/page_client-reference-manifest.js +1 -1
- package/.next/server/app/skills/installed/page_client-reference-manifest.js +1 -1
- package/.next/server/app/skills/page_client-reference-manifest.js +1 -1
- package/.next/server/app/worktrees/[id]/files/[...path]/page_client-reference-manifest.js +1 -1
- package/.next/server/app/worktrees/[id]/page.js +11 -11
- package/.next/server/app/worktrees/[id]/page.js.nft.json +1 -1
- package/.next/server/app/worktrees/[id]/page_client-reference-manifest.js +1 -1
- package/.next/server/app/worktrees/[id]/terminal/page_client-reference-manifest.js +1 -1
- package/.next/server/app-paths-manifest.json +22 -21
- package/.next/server/chunks/1062.js +1 -0
- package/.next/server/chunks/{936.js → 110.js} +1 -1
- package/.next/server/chunks/1501.js +5 -4
- package/.next/server/chunks/1656.js +2 -2
- package/.next/server/chunks/1957.js +2 -0
- package/.next/server/chunks/2119.js +1 -1
- package/.next/server/chunks/2404.js +1 -1
- package/.next/server/chunks/2445.js +1 -1
- package/.next/server/chunks/2897.js +1 -0
- package/.next/server/chunks/3417.js +1 -0
- package/.next/server/chunks/3505.js +1 -1
- package/.next/server/chunks/{4280.js → 3756.js} +1 -1
- package/.next/server/chunks/3801.js +31 -0
- package/.next/server/chunks/4911.js +1 -0
- package/.next/server/chunks/4936.js +1 -0
- package/.next/server/chunks/5209.js +2 -1
- package/.next/server/chunks/5354.js +1 -1
- package/.next/server/chunks/{9130.js → 5630.js} +1 -1
- package/.next/server/chunks/610.js +1 -0
- package/.next/server/chunks/6119.js +1 -1
- package/.next/server/chunks/6130.js +1 -1
- package/.next/server/chunks/6401.js +1 -1
- package/.next/server/chunks/6486.js +1 -1
- package/.next/server/chunks/6781.js +1 -1
- package/.next/server/chunks/6808.js +4 -0
- package/.next/server/chunks/7023.js +14 -0
- package/.next/server/chunks/7905.js +1 -1
- package/.next/server/chunks/8581.js +8 -8
- package/.next/server/chunks/8728.js +2 -2
- package/.next/server/chunks/8782.js +1 -1
- package/.next/server/chunks/8807.js +63 -53
- package/.next/server/chunks/8918.js +103 -1
- package/.next/server/chunks/9198.js +144 -0
- package/.next/server/chunks/9390.js +1 -1
- package/.next/server/chunks/9584.js +1 -1
- package/.next/server/chunks/9627.js +1 -1
- package/.next/server/chunks/9731.js +3 -3
- package/.next/server/middleware-manifest.json +5 -5
- package/.next/server/pages/500.html +1 -1
- package/.next/server/server-reference-manifest.json +1 -1
- package/.next/static/chunks/{2407-ab92ae9837c39dce.js → 2407-07a237575e1ceb9e.js} +1 -1
- package/.next/static/chunks/3931-61ad1a4fc0208d0e.js +1 -0
- package/.next/static/chunks/5794-7975b8e51e731b19.js +1 -0
- package/.next/static/chunks/6966-d8dc6032410ffaba.js +1 -0
- package/.next/static/chunks/7197-ed3b3d99ac3bd450.js +1 -0
- package/.next/static/chunks/7636-a48cf0f7110250c5.js +1 -0
- package/.next/static/chunks/app/api/agents/update/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/agents/versions/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/app/release-notes/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/app/update/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/app/update-check/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/auth/login/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/auth/logout/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/auth/status/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/capabilities/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/daily-summary/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/daily-summary/status/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/external-apps/[id]/health/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/external-apps/[id]/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/external-apps/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/fs/browse/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/fs/recent-paths/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/hooks/agent-event/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/hooks/claude-done/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/hooks/permission-request/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/metrics/vibe/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/ollama/models/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/push/escalation/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/push/subscriptions/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/push/vapid/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/relays/[relayId]/cancel/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/relays/[relayId]/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/relays/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/remote/pair/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/repositories/[id]/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/repositories/clone/[jobId]/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/repositories/clone/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/repositories/excluded/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/repositories/restore/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/repositories/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/repositories/scan/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/repositories/sync/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/repositories/validate-path/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/settings/default-agents/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/settings/default-surface-mode/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/sidebar/group-order/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/skills/[id]/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/skills/installations/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/skills/operations/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/skills/reindex/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/skills/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/slash-commands/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/tasks/[taskId]/cancel/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/tasks/[taskId]/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/templates/[id]/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/templates/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/verification/runs/[runId]/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/verification/runs/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/auto-yes/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/capture/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/clear-composer/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/cli-reference/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/cli-tool/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/cmate/schedules/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/current-output/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/direct-input/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/env/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/execution-logs/[logId]/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/execution-logs/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/files/[...path]/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/branch/create/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/branch/delete/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/branches/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/checkout/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/commit/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/diff/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/fetch/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/log/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/pull/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/push/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/reset/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/revert/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/show/[commitHash]/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/stage/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/staged/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/stash/[index]/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/stash/apply/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/stash/pop/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/stash/push/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/stash/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/status/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/unstage/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/working-diff/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/instances/notes/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/instances/opencode/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/interrupt/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/kill-session/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/logs/[filename]/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/logs/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/marp-render/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/memos/[memoId]/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/memos/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/messages/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/opencode/diff/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/opencode/session/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/opencode/share/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/prompt-response/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/prompt-response/strict/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/resolve-target/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/respond/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/schedules/[scheduleId]/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/schedules/active/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/schedules/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/search/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/send/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/git-workflow/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/install/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/plan/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/uninstall/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/uninstall-plan/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/update/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/update-plan/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/skills/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/slash-commands/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/special-keys/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/tasks/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/terminal/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/timers/history/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/timers/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/todos/[todoId]/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/todos/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/tree/[...path]/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/tree/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/upload/[...path]/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/verify/config/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/verify/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/verify/runs/[runId]/cancel/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/verify/runs/[runId]/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/verify/runs/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/viewed/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/worktrees/apply-default-agents/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/api/worktrees/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/layout-4f64316957b0a8e5.js +1 -0
- package/.next/static/chunks/app/manifest.webmanifest/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/more/page-ff5af5ca48774c89.js +1 -0
- package/.next/static/chunks/app/page-b4863bfe0452e09d.js +1 -0
- package/.next/static/chunks/app/proxy/[...path]/route-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/review/page-ff3efb96fdf9bb4b.js +1 -0
- package/.next/static/chunks/app/sessions/page-c6eb7c02db2f4c80.js +1 -0
- package/.next/static/chunks/app/worktrees/[id]/layout-a4f129c451de7859.js +1 -0
- package/.next/static/chunks/app/worktrees/[id]/page-33afc6aa96289fb0.js +1 -0
- package/.next/static/css/c1e307d05daf93b6.css +1 -0
- package/.next/trace +13 -13
- package/.next/types/app/api/relays/[relayId]/route.ts +347 -0
- package/.next/types/routes.d.ts +2 -1
- package/.next/types/validator.ts +9 -0
- package/dist/cli/commands/ask.d.ts.map +1 -1
- package/dist/cli/commands/ask.js +233 -17
- package/dist/cli/commands/attach.d.ts +4 -1
- package/dist/cli/commands/attach.d.ts.map +1 -1
- package/dist/cli/commands/attach.js +19 -7
- package/dist/cli/commands/command-target.d.ts +7 -0
- package/dist/cli/commands/command-target.d.ts.map +1 -1
- package/dist/cli/commands/command-target.js +10 -0
- package/dist/cli/commands/instances.d.ts.map +1 -1
- package/dist/cli/commands/instances.js +38 -2
- package/dist/cli/commands/message-dispatch.d.ts +39 -5
- package/dist/cli/commands/message-dispatch.d.ts.map +1 -1
- package/dist/cli/commands/message-dispatch.js +100 -8
- package/dist/cli/commands/relays.d.ts +26 -2
- package/dist/cli/commands/relays.d.ts.map +1 -1
- package/dist/cli/commands/relays.js +70 -5
- package/dist/cli/commands/respond-strict.d.ts.map +1 -1
- package/dist/cli/commands/respond-strict.js +22 -5
- package/dist/cli/commands/respond.d.ts +12 -0
- package/dist/cli/commands/respond.d.ts.map +1 -1
- package/dist/cli/commands/respond.js +83 -18
- package/dist/cli/commands/send.d.ts.map +1 -1
- package/dist/cli/commands/send.js +14 -8
- package/dist/cli/commands/wait-hook-stop-settle.d.ts +66 -0
- package/dist/cli/commands/wait-hook-stop-settle.d.ts.map +1 -0
- package/dist/cli/commands/wait-hook-stop-settle.js +150 -0
- package/dist/cli/commands/wait-instance.d.ts +29 -0
- package/dist/cli/commands/wait-instance.d.ts.map +1 -0
- package/dist/cli/commands/wait-instance.js +56 -0
- package/dist/cli/commands/wait-notices.d.ts +87 -0
- package/dist/cli/commands/wait-notices.d.ts.map +1 -0
- package/dist/cli/commands/wait-notices.js +301 -0
- package/dist/cli/commands/wait-poll-bookkeeping.d.ts +15 -0
- package/dist/cli/commands/wait-poll-bookkeeping.d.ts.map +1 -0
- package/dist/cli/commands/wait-poll-bookkeeping.js +57 -0
- package/dist/cli/commands/wait-poll-state.d.ts +136 -0
- package/dist/cli/commands/wait-poll-state.d.ts.map +1 -0
- package/dist/cli/commands/wait-poll-state.js +6 -0
- package/dist/cli/commands/wait-timing.d.ts +46 -0
- package/dist/cli/commands/wait-timing.d.ts.map +1 -0
- package/dist/cli/commands/wait-timing.js +99 -0
- package/dist/cli/commands/wait-turn-boundary.d.ts +284 -0
- package/dist/cli/commands/wait-turn-boundary.d.ts.map +1 -0
- package/dist/cli/commands/wait-turn-boundary.js +427 -0
- package/dist/cli/commands/wait-verify.d.ts +51 -0
- package/dist/cli/commands/wait-verify.d.ts.map +1 -0
- package/dist/cli/commands/wait-verify.js +128 -0
- package/dist/cli/commands/wait.d.ts +6 -105
- package/dist/cli/commands/wait.d.ts.map +1 -1
- package/dist/cli/commands/wait.js +240 -968
- package/dist/cli/commands/whoami.d.ts.map +1 -1
- package/dist/cli/commands/whoami.js +3 -1
- package/dist/cli/docs/agent-operations.d.ts +2 -2
- package/dist/cli/docs/agent-operations.d.ts.map +1 -1
- package/dist/cli/docs/agent-operations.js +24 -1
- package/dist/cli/types/api-responses.d.ts +49 -3
- package/dist/cli/types/api-responses.d.ts.map +1 -1
- package/dist/cli/utils/api-client.d.ts +69 -1
- package/dist/cli/utils/api-client.d.ts.map +1 -1
- package/dist/cli/utils/api-client.js +226 -18
- package/dist/cli/utils/follow-up-command.d.ts +38 -0
- package/dist/cli/utils/follow-up-command.d.ts.map +1 -0
- package/dist/cli/utils/follow-up-command.js +57 -0
- package/dist/cli/utils/reply-ledger.d.ts +80 -1
- package/dist/cli/utils/reply-ledger.d.ts.map +1 -1
- package/dist/cli/utils/reply-ledger.js +147 -2
- package/dist/cli/utils/server-capabilities.d.ts +18 -0
- package/dist/cli/utils/server-capabilities.d.ts.map +1 -1
- package/dist/cli/utils/server-capabilities.js +36 -3
- package/dist/cli/utils/session-target.d.ts +1 -1
- package/dist/cli/utils/session-target.d.ts.map +1 -1
- package/dist/cli/utils/session-target.js +3 -0
- package/dist/cli/utils/verify-runner.d.ts +7 -0
- package/dist/cli/utils/verify-runner.d.ts.map +1 -1
- package/dist/cli/utils/verify-runner.js +51 -15
- package/dist/lib/cli-tools/session-name.d.ts.map +1 -1
- package/dist/lib/cli-tools/session-name.js +11 -3
- package/dist/lib/session/send-attempt-types.d.ts +48 -1
- package/dist/lib/session/send-attempt-types.d.ts.map +1 -1
- package/dist/lib/session/send-attempt-types.js +18 -1
- package/dist/lib/verification/session-kill-ledger.d.ts +110 -0
- package/dist/lib/verification/session-kill-ledger.d.ts.map +1 -0
- package/dist/lib/verification/session-kill-ledger.js +174 -0
- package/dist/server/locales/en/worktree.json +20 -3
- package/dist/server/locales/ja/worktree.json +20 -3
- package/dist/server/src/config/cli-tool-timing-config.js +1 -7
- package/dist/server/src/lib/auto-yes-poller.js +54 -11
- package/dist/server/src/lib/cli-tools/antigravity.js +45 -9
- package/dist/server/src/lib/cli-tools/base.js +39 -0
- package/dist/server/src/lib/cli-tools/codex.js +67 -15
- package/dist/server/src/lib/cli-tools/command-code-plan-review.js +24 -2
- package/dist/server/src/lib/cli-tools/command-code.js +7 -3
- package/dist/server/src/lib/cli-tools/copilot.js +125 -33
- package/dist/server/src/lib/cli-tools/gemini.js +37 -10
- package/dist/server/src/lib/cli-tools/launch-keys.js +39 -0
- package/dist/server/src/lib/cli-tools/opencode-v2.js +6 -2
- package/dist/server/src/lib/cli-tools/opencode.js +60 -15
- package/dist/server/src/lib/cli-tools/session-name.js +11 -3
- package/dist/server/src/lib/cli-tools/submit-composer-read.js +590 -0
- package/dist/server/src/lib/cli-tools/submit-verified-sender.js +512 -620
- package/dist/server/src/lib/cli-tools/vibe-local.js +4 -2
- package/dist/server/src/lib/db/db-migration-path.js +63 -2
- package/dist/server/src/lib/db/migrations/index.js +2 -0
- package/dist/server/src/lib/db/migrations/pre-migration-backup.js +266 -0
- package/dist/server/src/lib/db/migrations/runner.js +37 -4
- package/dist/server/src/lib/db/migrations/v62-session-relays-bind.js +102 -0
- package/dist/server/src/lib/db/relay-bind-db.js +437 -0
- package/dist/server/src/lib/db/relay-db.js +59 -96
- package/dist/server/src/lib/detection/prompt-detect-multiple-choice.js +5 -4
- package/dist/server/src/lib/detection/upstream-faults.js +40 -6
- package/dist/server/src/lib/hooks/sources/copilot/hook-settings.js +2 -3
- package/dist/server/src/lib/hooks/sources/opencode/client.js +12 -6
- package/dist/server/src/lib/polling/response-checker.js +7 -5
- package/dist/server/src/lib/prompt-answer-errors.js +362 -0
- package/dist/server/src/lib/prompt-answer-sender.js +264 -288
- package/dist/server/src/lib/push/failure-episode-state.js +4 -1
- package/dist/server/src/lib/realtime/terminal-broadcast.js +1 -4
- package/dist/server/src/lib/realtime-snippet.js +54 -0
- package/dist/server/src/lib/relay/relay-bind.js +294 -0
- package/dist/server/src/lib/relay/relay-boot.js +51 -0
- package/dist/server/src/lib/relay/relay-bound-reply.js +519 -0
- package/dist/server/src/lib/relay/relay-delivery.js +134 -220
- package/dist/server/src/lib/relay/relay-messages.js +39 -4
- package/dist/server/src/lib/relay/relay-overlap.js +92 -0
- package/dist/server/src/lib/relay/relay-system-line.js +3 -2
- package/dist/server/src/lib/relay/types.js +12 -1
- package/dist/server/src/lib/session/agent-event-state.js +4 -0
- package/dist/server/src/lib/session/agent-session-lifecycle.js +23 -0
- package/dist/server/src/lib/session/claude-session.js +59 -8
- package/dist/server/src/lib/session/composer-clear.js +54 -1
- package/dist/server/src/lib/session/current-output-builder.js +26 -8
- package/dist/server/src/lib/session/current-output-history-writers.js +1 -1
- package/dist/server/src/lib/session/instance-input-lock.js +664 -0
- package/dist/server/src/lib/session/prompt-submit-receipt.js +155 -0
- package/dist/server/src/lib/session/prompt-waiting-guard.js +10 -3
- package/dist/server/src/lib/session/send-attempt-state.js +65 -0
- package/dist/server/src/lib/session/send-attempt-types.js +18 -1
- package/dist/server/src/lib/session/send-user-message.js +84 -14
- package/dist/server/src/lib/session/session-launch-flight.js +243 -0
- package/dist/server/src/lib/session/session-starting-state.js +40 -4
- package/dist/server/src/lib/session/structured-prompt.js +12 -9
- package/dist/server/src/lib/session/waiting-episode-binding.js +4 -2
- package/dist/server/src/lib/session-cleanup.js +32 -0
- package/dist/server/src/lib/session-key-sender.js +0 -27
- package/dist/server/src/lib/verification/env-clean-gate.js +129 -0
- package/dist/server/src/lib/verification/env-snapshot.js +11 -2
- package/dist/server/src/lib/verification/session-kill-ledger.js +174 -0
- package/package.json +5 -1
- package/release-notes/0.49.1.json +66 -0
- package/release-notes/0.49.2.json +49 -0
- package/.next/server/chunks/1210.js +0 -1
- package/.next/server/chunks/1945.js +0 -14
- package/.next/server/chunks/1990.js +0 -103
- package/.next/server/chunks/4194.js +0 -67
- package/.next/server/chunks/5845.js +0 -1
- package/.next/server/chunks/720.js +0 -103
- package/.next/server/chunks/7604.js +0 -2
- package/.next/server/chunks/9540.js +0 -1
- package/.next/static/chunks/4768-ad6f82f034f21eae.js +0 -1
- package/.next/static/chunks/5794-80ac3f06f098ea29.js +0 -1
- package/.next/static/chunks/6654-f3534f35f16644bc.js +0 -1
- package/.next/static/chunks/7665-e9ef6e0a85b9fa49.js +0 -1
- package/.next/static/chunks/8606-cf6bdbff44a764cf.js +0 -1
- package/.next/static/chunks/9079-987939d231704218.js +0 -1
- package/.next/static/chunks/app/api/agents/update/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/agents/versions/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/app/release-notes/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/app/update/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/app/update-check/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/auth/login/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/auth/logout/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/auth/status/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/capabilities/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/daily-summary/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/daily-summary/status/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/external-apps/[id]/health/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/external-apps/[id]/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/external-apps/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/fs/browse/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/fs/recent-paths/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/hooks/agent-event/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/hooks/claude-done/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/hooks/permission-request/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/metrics/vibe/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/ollama/models/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/push/escalation/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/push/subscriptions/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/push/vapid/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/relays/[relayId]/cancel/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/relays/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/remote/pair/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/repositories/[id]/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/repositories/clone/[jobId]/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/repositories/clone/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/repositories/excluded/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/repositories/restore/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/repositories/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/repositories/scan/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/repositories/sync/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/repositories/validate-path/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/settings/default-agents/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/settings/default-surface-mode/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/sidebar/group-order/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/skills/[id]/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/skills/installations/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/skills/operations/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/skills/reindex/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/skills/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/slash-commands/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/tasks/[taskId]/cancel/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/tasks/[taskId]/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/templates/[id]/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/templates/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/verification/runs/[runId]/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/verification/runs/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/auto-yes/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/capture/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/clear-composer/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/cli-reference/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/cli-tool/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/cmate/schedules/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/current-output/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/direct-input/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/env/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/execution-logs/[logId]/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/execution-logs/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/files/[...path]/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/branch/create/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/branch/delete/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/branches/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/checkout/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/commit/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/diff/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/fetch/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/log/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/pull/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/push/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/reset/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/revert/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/show/[commitHash]/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/stage/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/staged/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/stash/[index]/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/stash/apply/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/stash/pop/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/stash/push/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/stash/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/status/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/unstage/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/working-diff/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/instances/notes/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/instances/opencode/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/interrupt/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/kill-session/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/logs/[filename]/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/logs/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/marp-render/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/memos/[memoId]/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/memos/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/messages/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/opencode/diff/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/opencode/session/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/opencode/share/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/prompt-response/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/prompt-response/strict/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/resolve-target/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/respond/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/schedules/[scheduleId]/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/schedules/active/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/schedules/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/search/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/send/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/git-workflow/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/install/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/plan/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/uninstall/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/uninstall-plan/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/update/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/update-plan/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/skills/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/slash-commands/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/special-keys/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/tasks/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/terminal/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/timers/history/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/timers/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/todos/[todoId]/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/todos/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/tree/[...path]/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/tree/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/upload/[...path]/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/verify/config/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/verify/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/verify/runs/[runId]/cancel/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/verify/runs/[runId]/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/verify/runs/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/viewed/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/worktrees/apply-default-agents/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/api/worktrees/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/layout-aa8e66164a4367af.js +0 -1
- package/.next/static/chunks/app/manifest.webmanifest/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/more/page-87c84987b2765213.js +0 -1
- package/.next/static/chunks/app/page-1b820c421db48c2c.js +0 -1
- package/.next/static/chunks/app/proxy/[...path]/route-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/review/page-e2fd4a590646a2d8.js +0 -1
- package/.next/static/chunks/app/sessions/page-cfd645305e25fd33.js +0 -1
- package/.next/static/chunks/app/worktrees/[id]/layout-c81284a9d8b35304.js +0 -1
- package/.next/static/chunks/app/worktrees/[id]/page-a8d7886703ffc7b4.js +0 -1
- package/.next/static/css/db8959555c3d9c96.css +0 -1
- /package/.next/static/{3_JtAZaKMJEDFIIfkHv4n → yGatWDsS532awSs51kXyd}/_buildManifest.js +0 -0
- /package/.next/static/{3_JtAZaKMJEDFIIfkHv4n → yGatWDsS532awSs51kXyd}/_ssgManifest.js +0 -0
|
@@ -18,12 +18,17 @@
|
|
|
18
18
|
* and whether an unmarked row may stand in for one — stays with the caller.
|
|
19
19
|
*/
|
|
20
20
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
21
|
-
exports.TRANSCRIPT_READER_TOOLS = exports.REPLY_LOOKBACK_MESSAGES = void 0;
|
|
21
|
+
exports.PROMPT_ROWS_PAGE_TURNS = exports.TRANSCRIPT_READER_TOOLS = exports.REPLY_LOOKBACK_MESSAGES = void 0;
|
|
22
22
|
exports.sanitizeReply = sanitizeReply;
|
|
23
23
|
exports.replyCandidates = replyCandidates;
|
|
24
24
|
exports.pickLatestReply = pickLatestReply;
|
|
25
|
+
exports.hasForeignPromptInWindow = hasForeignPromptInWindow;
|
|
26
|
+
exports.ownPromptInstance = ownPromptInstance;
|
|
27
|
+
exports.mayHaveDroppedRowsSince = mayHaveDroppedRowsSince;
|
|
28
|
+
exports.fetchPromptRowsSince = fetchPromptRowsSince;
|
|
25
29
|
exports.requestRecentMessages = requestRecentMessages;
|
|
26
30
|
exports.fetchRecentMessages = fetchRecentMessages;
|
|
31
|
+
const api_client_1 = require("./api-client");
|
|
27
32
|
/**
|
|
28
33
|
* Chat rows read back per request.
|
|
29
34
|
*
|
|
@@ -154,6 +159,144 @@ function pickLatestReply(candidates, turnRowsOnly) {
|
|
|
154
159
|
return null;
|
|
155
160
|
return candidates[candidates.length - 1] ?? null;
|
|
156
161
|
}
|
|
162
|
+
/**
|
|
163
|
+
* Whether another message reached this instance inside `[since, until]`
|
|
164
|
+
* (Issue #3955).
|
|
165
|
+
*
|
|
166
|
+
* codex folds a message typed while a turn is running into that same turn and
|
|
167
|
+
* answers both with one reply, so an `ask` whose turn also carried somebody
|
|
168
|
+
* else's message cannot know which of the two the reply answers. The ledger
|
|
169
|
+
* shows it: `/send` writes a `user` row for every message the instant it is
|
|
170
|
+
* handed to the pane, so a `user` row in this instance's window whose text is
|
|
171
|
+
* not this `ask`'s own is a second sender's.
|
|
172
|
+
*
|
|
173
|
+
* Text, not id, tells the rows apart: the transcript reader claims the `/send`
|
|
174
|
+
* row rather than writing a second one (`user-turn-recorder`), so this `ask`'s
|
|
175
|
+
* own message is one row, or one plus a reader's copy with the same text.
|
|
176
|
+
*
|
|
177
|
+
* @param messages - Rows as the messages route serialized them
|
|
178
|
+
* @param ownContent - The message this `ask` sent
|
|
179
|
+
* @param since - Epoch ms taken before the send
|
|
180
|
+
* A row on another instance is not this turn's: `instanceId` keeps a read that
|
|
181
|
+
* was not scoped to one instance (no `--instance` / `--agent`) from counting a
|
|
182
|
+
* message somebody sent to a different session. Without it every row counts,
|
|
183
|
+
* which is right only for a read the server already scoped.
|
|
184
|
+
*
|
|
185
|
+
* @param until - Epoch ms at which the turn ended
|
|
186
|
+
* @param instanceId - The instance this `ask`'s message went to
|
|
187
|
+
*/
|
|
188
|
+
function hasForeignPromptInWindow(messages, ownContent, since, until, instanceId) {
|
|
189
|
+
const own = ownContent.trim();
|
|
190
|
+
return messages.some((m) => {
|
|
191
|
+
if (m.role !== 'user' || typeof m.content !== 'string')
|
|
192
|
+
return false;
|
|
193
|
+
if (instanceId !== undefined && m.instanceId !== instanceId)
|
|
194
|
+
return false;
|
|
195
|
+
const at = Date.parse(m.timestamp);
|
|
196
|
+
if (!(at >= since && at <= until))
|
|
197
|
+
return false;
|
|
198
|
+
return m.content.trim() !== own;
|
|
199
|
+
});
|
|
200
|
+
}
|
|
201
|
+
/**
|
|
202
|
+
* The one instance this `ask`'s own `user` row landed on, or null
|
|
203
|
+
* (Issue #3955).
|
|
204
|
+
*
|
|
205
|
+
* An `ask` with no `--instance` / `--agent` leaves the choice to the server,
|
|
206
|
+
* and `/send` does not say which it picked to this caller. The ledger does: the
|
|
207
|
+
* row `/send` wrote carries it. Two rows with this text on different instances
|
|
208
|
+
* (the same request sent to two sessions at once) say nothing certain, so that
|
|
209
|
+
* is null too.
|
|
210
|
+
*
|
|
211
|
+
* @param messages - Rows as the messages route serialized them
|
|
212
|
+
* @param ownContent - The message this `ask` sent
|
|
213
|
+
* Bounded on both sides, like {@link hasForeignPromptInWindow}: the same text
|
|
214
|
+
* sent to another instance after this turn ended is somebody else's later
|
|
215
|
+
* request, and must not make this one's instance undecided.
|
|
216
|
+
*
|
|
217
|
+
* @param since - Epoch ms taken before the send
|
|
218
|
+
* @param until - Epoch ms at which the turn ended (`ask` always passes it;
|
|
219
|
+
* unbounded when omitted)
|
|
220
|
+
*/
|
|
221
|
+
function ownPromptInstance(messages, ownContent, since, until = Number.POSITIVE_INFINITY) {
|
|
222
|
+
const own = ownContent.trim();
|
|
223
|
+
const instances = new Set();
|
|
224
|
+
for (const m of messages) {
|
|
225
|
+
if (m.role !== 'user' || typeof m.content !== 'string')
|
|
226
|
+
continue;
|
|
227
|
+
const at = Date.parse(m.timestamp);
|
|
228
|
+
if (!(at >= since && at <= until))
|
|
229
|
+
continue;
|
|
230
|
+
if (m.content.trim() !== own)
|
|
231
|
+
continue;
|
|
232
|
+
if (typeof m.instanceId === 'string')
|
|
233
|
+
instances.add(m.instanceId);
|
|
234
|
+
}
|
|
235
|
+
return instances.size === 1 ? [...instances][0] : null;
|
|
236
|
+
}
|
|
237
|
+
/**
|
|
238
|
+
* User turns read back per page by {@link fetchPromptRowsSince}.
|
|
239
|
+
*
|
|
240
|
+
* The route's `unit=pairs` counts user rows, so a turn that wrote many
|
|
241
|
+
* assistant rows cannot push a user row out of the page the way it can out of
|
|
242
|
+
* {@link REPLY_LOOKBACK_MESSAGES} rows.
|
|
243
|
+
*/
|
|
244
|
+
exports.PROMPT_ROWS_PAGE_TURNS = 20;
|
|
245
|
+
/**
|
|
246
|
+
* Whether a read of {@link REPLY_LOOKBACK_MESSAGES} rows may have cut off rows
|
|
247
|
+
* stamped at or after `since` (Issue #3955): it came back full and its oldest
|
|
248
|
+
* row is not older than `since`.
|
|
249
|
+
*/
|
|
250
|
+
function mayHaveDroppedRowsSince(messages, since) {
|
|
251
|
+
if (messages.length < exports.REPLY_LOOKBACK_MESSAGES)
|
|
252
|
+
return false;
|
|
253
|
+
const oldest = Math.min(...messages.map((m) => Date.parse(m.timestamp)));
|
|
254
|
+
return !(oldest < since);
|
|
255
|
+
}
|
|
256
|
+
/**
|
|
257
|
+
* Every `user` row stamped at or after `since`, however many rows came after
|
|
258
|
+
* it (Issue #3955), or null if the rows cannot be read.
|
|
259
|
+
*
|
|
260
|
+
* Pages backwards with the route's existing `unit=pairs` and `before`: a page
|
|
261
|
+
* holds the newest {@link PROMPT_ROWS_PAGE_TURNS} user rows and every row from
|
|
262
|
+
* the oldest of them on, so the next page's `before` (that oldest timestamp)
|
|
263
|
+
* leaves no user row between two pages. Stops at the first page that reaches
|
|
264
|
+
* back past `since`, or that holds fewer user rows than asked for (nothing
|
|
265
|
+
* older is left).
|
|
266
|
+
*
|
|
267
|
+
* @param client - API client
|
|
268
|
+
* @param worktreeId - Worktree ID
|
|
269
|
+
* @param instanceId - Instance to scope to, or undefined for every instance
|
|
270
|
+
* @param since - Epoch ms taken before the send
|
|
271
|
+
*/
|
|
272
|
+
async function fetchPromptRowsSince(client, worktreeId, instanceId, since) {
|
|
273
|
+
const found = [];
|
|
274
|
+
let before = null;
|
|
275
|
+
try {
|
|
276
|
+
for (;;) {
|
|
277
|
+
const query = new URLSearchParams({ limit: String(exports.PROMPT_ROWS_PAGE_TURNS), unit: 'pairs' });
|
|
278
|
+
if (instanceId)
|
|
279
|
+
query.set('instance', instanceId);
|
|
280
|
+
if (before !== null)
|
|
281
|
+
query.set('before', new Date(before).toISOString());
|
|
282
|
+
const page = await client.get(`/api/worktrees/${worktreeId}/messages?${query.toString()}`);
|
|
283
|
+
const users = (Array.isArray(page) ? page : []).filter((m) => m.role === 'user');
|
|
284
|
+
found.push(...users.filter((m) => Date.parse(m.timestamp) >= since));
|
|
285
|
+
if (users.length < exports.PROMPT_ROWS_PAGE_TURNS)
|
|
286
|
+
return found;
|
|
287
|
+
const oldest = Math.min(...users.map((m) => Date.parse(m.timestamp)));
|
|
288
|
+
// A page that does not move the cursor back would repeat for ever.
|
|
289
|
+
if (!(oldest >= since) || (before !== null && !(oldest < before)))
|
|
290
|
+
return found;
|
|
291
|
+
before = oldest;
|
|
292
|
+
}
|
|
293
|
+
}
|
|
294
|
+
catch (error) {
|
|
295
|
+
// Issue #3983: a deadline is the caller's to handle, not "unreadable".
|
|
296
|
+
(0, api_client_1.rethrowIfDeadlineExceeded)(error);
|
|
297
|
+
return null;
|
|
298
|
+
}
|
|
299
|
+
}
|
|
157
300
|
/**
|
|
158
301
|
* The recent chat rows for this instance. Throws what the API client throws.
|
|
159
302
|
*
|
|
@@ -181,7 +324,9 @@ async function fetchRecentMessages(client, worktreeId, instanceId) {
|
|
|
181
324
|
try {
|
|
182
325
|
return await requestRecentMessages(client, worktreeId, instanceId);
|
|
183
326
|
}
|
|
184
|
-
catch {
|
|
327
|
+
catch (error) {
|
|
328
|
+
// Issue #3983: a deadline is the caller's to handle, not "unreadable".
|
|
329
|
+
(0, api_client_1.rethrowIfDeadlineExceeded)(error);
|
|
185
330
|
return null;
|
|
186
331
|
}
|
|
187
332
|
}
|
|
@@ -53,4 +53,22 @@ export declare function resetServerCapabilityProbe(): void;
|
|
|
53
53
|
* @throws ApiError on 401/403 and on an unclassifiable response
|
|
54
54
|
*/
|
|
55
55
|
export declare function serverResolvesSessionTargets(client: ApiClient): Promise<boolean>;
|
|
56
|
+
/**
|
|
57
|
+
* Capability token of a server whose answer errors all carry `reason` and
|
|
58
|
+
* `keysSent` (Issue #3982). Mirrors SERVER_CAPABILITIES in the route.
|
|
59
|
+
*/
|
|
60
|
+
export declare const PROMPT_ANSWER_REASON_CAPABILITY = "prompt-answer-reason";
|
|
61
|
+
/**
|
|
62
|
+
* Whether this server puts `reason` on every answer error (Issue #3982).
|
|
63
|
+
*
|
|
64
|
+
* Reads the memo `resolveCommandTarget` already filled for this client, so a
|
|
65
|
+
* command that resolved `--instance` asks nothing more. A command that named
|
|
66
|
+
* no instance probes here, once, and only when it is called — on a failed
|
|
67
|
+
* answer, never on the way to sending one.
|
|
68
|
+
*
|
|
69
|
+
* Fail-safe to the old reading: a probe that cannot be completed (auth, a
|
|
70
|
+
* proxy, the network) answers false, which keeps the pre-#3982 behaviour of
|
|
71
|
+
* reading the reason code out of the 500's text.
|
|
72
|
+
*/
|
|
73
|
+
export declare function serverReportsPromptAnswerReason(client: ApiClient): Promise<boolean>;
|
|
56
74
|
//# sourceMappingURL=server-capabilities.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server-capabilities.d.ts","sourceRoot":"","sources":["../../../src/cli/utils/server-capabilities.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAGH,OAAO,
|
|
1
|
+
{"version":3,"file":"server-capabilities.d.ts","sourceRoot":"","sources":["../../../src/cli/utils/server-capabilities.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAGH,OAAO,EAAuD,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAEnG,6EAA6E;AAC7E,eAAO,MAAM,iBAAiB,sBAAsB,CAAC;AAErD;;;;GAIG;AACH,eAAO,MAAM,iCAAiC,2BAA2B,CAAC;AAE1E,oFAAoF;AACpF,MAAM,MAAM,qBAAqB,GAC7B;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,aAAa,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,EAAE,CAAA;CAAE;AACtE,4DAA4D;GAC1D;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,CAAC;AAyBvB;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAazF;AAED,gFAAgF;AAChF,wBAAgB,0BAA0B,IAAI,IAAI,CAEjD;AAyFD;;;;;;GAMG;AACH,wBAAsB,4BAA4B,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,CAItF;AAED;;;GAGG;AACH,eAAO,MAAM,+BAA+B,yBAAyB,CAAC;AAEtE;;;;;;;;;;;GAWG;AACH,wBAAsB,+BAA+B,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,CAOzF"}
|
|
@@ -18,10 +18,11 @@
|
|
|
18
18
|
* connection is behaving unexpectedly. Those cases end the command instead.
|
|
19
19
|
*/
|
|
20
20
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
21
|
-
exports.RESOLVE_SESSION_TARGET_CAPABILITY = exports.CAPABILITIES_PATH = void 0;
|
|
21
|
+
exports.PROMPT_ANSWER_REASON_CAPABILITY = exports.RESOLVE_SESSION_TARGET_CAPABILITY = exports.CAPABILITIES_PATH = void 0;
|
|
22
22
|
exports.probeServerCapabilities = probeServerCapabilities;
|
|
23
23
|
exports.resetServerCapabilityProbe = resetServerCapabilityProbe;
|
|
24
24
|
exports.serverResolvesSessionTargets = serverResolvesSessionTargets;
|
|
25
|
+
exports.serverReportsPromptAnswerReason = serverReportsPromptAnswerReason;
|
|
25
26
|
const types_1 = require("../types");
|
|
26
27
|
const api_client_1 = require("./api-client");
|
|
27
28
|
/** Path of the capability endpoint (`src/app/api/capabilities/route.ts`). */
|
|
@@ -102,6 +103,8 @@ async function runProbe(client) {
|
|
|
102
103
|
response = await client.rawGet(exports.CAPABILITIES_PATH, { headers: { Accept: 'application/json' } });
|
|
103
104
|
}
|
|
104
105
|
catch (error) {
|
|
106
|
+
// Issue #3983: a command deadline is not "unreachable" — it stays exit 124.
|
|
107
|
+
(0, api_client_1.rethrowIfDeadlineExceeded)(error);
|
|
105
108
|
const result = (0, api_client_1.handleApiError)(error);
|
|
106
109
|
throw new api_client_1.ApiError(result.message, result.exitCode);
|
|
107
110
|
}
|
|
@@ -119,7 +122,10 @@ async function runProbe(client) {
|
|
|
119
122
|
throw undetermined(response.status);
|
|
120
123
|
}
|
|
121
124
|
if (response.status === 404) {
|
|
122
|
-
const text = await response.text().catch(() =>
|
|
125
|
+
const text = await response.text().catch((error) => {
|
|
126
|
+
(0, api_client_1.rethrowIfDeadlineExceeded)(error);
|
|
127
|
+
return '';
|
|
128
|
+
});
|
|
123
129
|
if (isRealNotFoundBody(text))
|
|
124
130
|
return { kind: 'legacy' };
|
|
125
131
|
throw undetermined(response.status);
|
|
@@ -136,7 +142,8 @@ async function runProbe(client) {
|
|
|
136
142
|
try {
|
|
137
143
|
parsed = await response.json();
|
|
138
144
|
}
|
|
139
|
-
catch {
|
|
145
|
+
catch (error) {
|
|
146
|
+
(0, api_client_1.rethrowIfDeadlineExceeded)(error);
|
|
140
147
|
throw undetermined(response.status);
|
|
141
148
|
}
|
|
142
149
|
if (parsed === null || typeof parsed !== 'object') {
|
|
@@ -164,3 +171,29 @@ async function serverResolvesSessionTargets(client) {
|
|
|
164
171
|
return probe.kind === 'supported'
|
|
165
172
|
&& probe.capabilities.includes(exports.RESOLVE_SESSION_TARGET_CAPABILITY);
|
|
166
173
|
}
|
|
174
|
+
/**
|
|
175
|
+
* Capability token of a server whose answer errors all carry `reason` and
|
|
176
|
+
* `keysSent` (Issue #3982). Mirrors SERVER_CAPABILITIES in the route.
|
|
177
|
+
*/
|
|
178
|
+
exports.PROMPT_ANSWER_REASON_CAPABILITY = 'prompt-answer-reason';
|
|
179
|
+
/**
|
|
180
|
+
* Whether this server puts `reason` on every answer error (Issue #3982).
|
|
181
|
+
*
|
|
182
|
+
* Reads the memo `resolveCommandTarget` already filled for this client, so a
|
|
183
|
+
* command that resolved `--instance` asks nothing more. A command that named
|
|
184
|
+
* no instance probes here, once, and only when it is called — on a failed
|
|
185
|
+
* answer, never on the way to sending one.
|
|
186
|
+
*
|
|
187
|
+
* Fail-safe to the old reading: a probe that cannot be completed (auth, a
|
|
188
|
+
* proxy, the network) answers false, which keeps the pre-#3982 behaviour of
|
|
189
|
+
* reading the reason code out of the 500's text.
|
|
190
|
+
*/
|
|
191
|
+
async function serverReportsPromptAnswerReason(client) {
|
|
192
|
+
try {
|
|
193
|
+
const probe = await probeServerCapabilities(client);
|
|
194
|
+
return probe.kind === 'supported' && probe.capabilities.includes(exports.PROMPT_ANSWER_REASON_CAPABILITY);
|
|
195
|
+
}
|
|
196
|
+
catch {
|
|
197
|
+
return false;
|
|
198
|
+
}
|
|
199
|
+
}
|
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
* tool-named instance is reported exactly as the server reports it (Issue
|
|
21
21
|
* #2487), because a copy that obeys it sends where the server would refuse to.
|
|
22
22
|
*/
|
|
23
|
-
import type
|
|
23
|
+
import { type ApiClient } from './api-client';
|
|
24
24
|
/**
|
|
25
25
|
* Which stage of the precedence chain produced the answer. Mirrors
|
|
26
26
|
* SessionTargetResolvedBy in `src/lib/session/resolve-session-target.ts`; the
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-target.d.ts","sourceRoot":"","sources":["../../../src/cli/utils/session-target.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAIH,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"session-target.d.ts","sourceRoot":"","sources":["../../../src/cli/utils/session-target.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAIH,OAAO,EAA6B,KAAK,SAAS,EAAE,MAAM,cAAc,CAAC;AAKzE;;;;GAIG;AACH,MAAM,MAAM,uBAAuB,GAC/B,UAAU,GACV,QAAQ,GACR,SAAS,GACT,kBAAkB,GAClB,UAAU,GACV,iBAAiB,CAAC;AAEtB;;;;GAIG;AACH,MAAM,WAAW,qBAAqB;IACpC,UAAU,EAAE,MAAM,CAAC;IACnB,0FAA0F;IAC1F,aAAa,EAAE,MAAM,CAAC;IACtB,gBAAgB,EAAE,MAAM,CAAC;IACzB;;;;OAIG;IACH,aAAa,CAAC,EAAE,IAAI,CAAC;CACtB;AAED,MAAM,WAAW,gBAAgB;IAC/B;;;;;;OAMG;IACH,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,0EAA0E;IAC1E,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,UAAU,EAAE,uBAAuB,CAAC;IACpC,gFAAgF;IAChF,QAAQ,EAAE,qBAAqB,GAAG,IAAI,CAAC;CACxC;AAED,MAAM,WAAW,2BAA2B;IAC1C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gFAAgF;IAChF,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAuBD;;;;;;;;;;GAUG;AACH,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,SAAS,EACjB,UAAU,EAAE,MAAM,EAClB,OAAO,GAAE,2BAAgC,GACxC,OAAO,CAAC,gBAAgB,CAAC,CAM3B;AA8FD;;;;;;GAMG;AACH,wBAAgB,6BAA6B,CAAC,QAAQ,EAAE,qBAAqB,GAAG,MAAM,CAcrF"}
|
|
@@ -26,6 +26,7 @@ exports.resolveSessionTarget = resolveSessionTarget;
|
|
|
26
26
|
exports.describeSessionTargetConflict = describeSessionTargetConflict;
|
|
27
27
|
const types_1 = require("../types");
|
|
28
28
|
const cli_tool_ids_1 = require("../config/cli-tool-ids");
|
|
29
|
+
const api_client_1 = require("./api-client");
|
|
29
30
|
const agent_instances_1 = require("./agent-instances");
|
|
30
31
|
const server_capabilities_1 = require("./server-capabilities");
|
|
31
32
|
/**
|
|
@@ -103,6 +104,8 @@ async function resolveLocally(client, worktreeId, options) {
|
|
|
103
104
|
registered = instances.find((inst) => inst.id === instanceId);
|
|
104
105
|
}
|
|
105
106
|
catch (error) {
|
|
107
|
+
// Issue #3983: `--timeout` ran out — not a roster to degrade around.
|
|
108
|
+
(0, api_client_1.rethrowIfDeadlineExceeded)(error);
|
|
106
109
|
console.error(`Warning: could not read the agent-instance roster (${(0, types_1.getErrorMessage)(error)}); using --agent as given.`);
|
|
107
110
|
return degraded(requestedCliTool);
|
|
108
111
|
}
|
|
@@ -14,6 +14,13 @@ import type { VerificationFlakyDetail, VerificationGateTimingView, VerificationR
|
|
|
14
14
|
import { ApiClient } from './api-client';
|
|
15
15
|
/** Matches the wait command's cadence; runs are minutes long, not seconds. */
|
|
16
16
|
export declare const VERIFY_POLL_INTERVAL_MS = 5000;
|
|
17
|
+
/**
|
|
18
|
+
* Issue #3983: how far past `--timeout` the read taken AT the deadline may run.
|
|
19
|
+
* The poll sleeps only up to the deadline and reads once more there, so a run
|
|
20
|
+
* that finished in the last interval still reports its verdict (#1544); this
|
|
21
|
+
* bounds that one read rather than skipping it.
|
|
22
|
+
*/
|
|
23
|
+
export declare const VERIFY_FINAL_READ_GRACE_MS = 2000;
|
|
17
24
|
/** Built-in gate id; mirrors WORK_EVIDENCE_GATE_ID in lib/verification/gate-runner.ts. */
|
|
18
25
|
export declare const WORK_EVIDENCE_GATE_ID = "work-evidence";
|
|
19
26
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"verify-runner.d.ts","sourceRoot":"","sources":["../../../src/cli/utils/verify-runner.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAGH,OAAO,KAAK,EACV,uBAAuB,EAEvB,0BAA0B,EAC1B,qBAAqB,EACrB,mBAAmB,EAGpB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,SAAS,
|
|
1
|
+
{"version":3,"file":"verify-runner.d.ts","sourceRoot":"","sources":["../../../src/cli/utils/verify-runner.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAGH,OAAO,KAAK,EACV,uBAAuB,EAEvB,0BAA0B,EAC1B,qBAAqB,EACrB,mBAAmB,EAGpB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,SAAS,EAAqD,MAAM,cAAc,CAAC;AAE5F,8EAA8E;AAC9E,eAAO,MAAM,uBAAuB,OAAO,CAAC;AAE5C;;;;;GAKG;AACH,eAAO,MAAM,0BAA0B,OAAO,CAAC;AAE/C,0FAA0F;AAC1F,eAAO,MAAM,qBAAqB,kBAAkB,CAAC;AAErD;;;;;;;;GAQG;AACH,eAAO,MAAM,gBAAgB,YAAY,CAAC;AAU1C;;;;;;;;GAQG;AACH,eAAO,MAAM,iBAAiB,aAAa,CAAC;AAU5C;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GACjC,0BAA0B,GAAG,IAAI,CAInC;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,0BAA0B,EAAE,SAAS,SAAO,GAAG,MAAM,CAM7F;AAED;;;;;;GAMG;AACH,eAAO,MAAM,gBAAgB,YAAY,CAAC;AAE1C;;;;GAIG;AACH,eAAO,MAAM,gBAAgB,UAAU,CAAC;AAoBxC;;;;;;;;;GASG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GACjC,uBAAuB,GAAG,IAAI,CAehC;AAED;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,sBAAsB,mBAAmB,CAAC;AAQvD;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,EAAE,CAK7E;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,0BAA0B,KAAK,CAAC;AAE7C,MAAM,WAAW,mBAAmB;IAClC,UAAU,EAAE,MAAM,CAAC;IACnB,uEAAuE;IACvE,OAAO,EAAE,QAAQ,GAAG,MAAM,CAAC;IAC3B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,2EAA2E;IAC3E,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,gEAAgE;IAChE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,2EAA2E;IAC3E,YAAY,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAC;IACnC,iFAAiF;IACjF,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,6DAA6D;IAC7D,GAAG,CAAC,EAAE,mBAAmB,CAAC;CAC3B;AAUD;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,qBAAqB,GAAG,MAAM,CAW1E;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,EAAE,GAAG,IAAI,GAAG,SAAS,CAOnF;AAwJD;;;;GAIG;AACH,wBAAsB,eAAe,CACnC,MAAM,EAAE,SAAS,EACjB,OAAO,EAAE,mBAAmB,GAC3B,OAAO,CAAC,mBAAmB,CAAC,CAkF9B"}
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
* @module cli/utils/verify-runner
|
|
13
13
|
*/
|
|
14
14
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
-
exports.MAX_PRINTED_LOG_TAIL_LINES = exports.GATE_NOTICE_LOG_PREFIX = exports.FLAKY_GATE_LABEL = exports.FLAKY_LOG_PREFIX = exports.TIMING_LOG_PREFIX = exports.MUTEX_LOG_PREFIX = exports.WORK_EVIDENCE_GATE_ID = exports.VERIFY_POLL_INTERVAL_MS = void 0;
|
|
15
|
+
exports.MAX_PRINTED_LOG_TAIL_LINES = exports.GATE_NOTICE_LOG_PREFIX = exports.FLAKY_GATE_LABEL = exports.FLAKY_LOG_PREFIX = exports.TIMING_LOG_PREFIX = exports.MUTEX_LOG_PREFIX = exports.WORK_EVIDENCE_GATE_ID = exports.VERIFY_FINAL_READ_GRACE_MS = exports.VERIFY_POLL_INTERVAL_MS = void 0;
|
|
16
16
|
exports.parseTimingMarker = parseTimingMarker;
|
|
17
17
|
exports.formatGateTiming = formatGateTiming;
|
|
18
18
|
exports.parseFlakyMarker = parseFlakyMarker;
|
|
@@ -24,6 +24,13 @@ const types_1 = require("../types");
|
|
|
24
24
|
const api_client_1 = require("./api-client");
|
|
25
25
|
/** Matches the wait command's cadence; runs are minutes long, not seconds. */
|
|
26
26
|
exports.VERIFY_POLL_INTERVAL_MS = 5000;
|
|
27
|
+
/**
|
|
28
|
+
* Issue #3983: how far past `--timeout` the read taken AT the deadline may run.
|
|
29
|
+
* The poll sleeps only up to the deadline and reads once more there, so a run
|
|
30
|
+
* that finished in the last interval still reports its verdict (#1544); this
|
|
31
|
+
* bounds that one read rather than skipping it.
|
|
32
|
+
*/
|
|
33
|
+
exports.VERIFY_FINAL_READ_GRACE_MS = 2000;
|
|
27
34
|
/** Built-in gate id; mirrors WORK_EVIDENCE_GATE_ID in lib/verification/gate-runner.ts. */
|
|
28
35
|
exports.WORK_EVIDENCE_GATE_ID = 'work-evidence';
|
|
29
36
|
/**
|
|
@@ -367,9 +374,21 @@ function withConflictMessage(error, worktreeId) {
|
|
|
367
374
|
*/
|
|
368
375
|
async function runVerification(client, request) {
|
|
369
376
|
const { worktreeId } = request;
|
|
377
|
+
// Issue #3983: `timeoutSec` bounds the whole command — the start POST and
|
|
378
|
+
// every run read, each cut at the deadline — not only the gaps between polls.
|
|
379
|
+
// The one read taken at the deadline gets VERIFY_FINAL_READ_GRACE_MS on top.
|
|
380
|
+
const startedAt = Date.now();
|
|
381
|
+
const deadlineAt = request.timeoutSec ? startedAt + request.timeoutSec * 1000 : undefined;
|
|
382
|
+
const bounded = deadlineAt === undefined ? client : client.withDeadline(deadlineAt);
|
|
383
|
+
const finalReader = deadlineAt === undefined ? client : client.withDeadline(deadlineAt + exports.VERIFY_FINAL_READ_GRACE_MS);
|
|
384
|
+
const timedOut = (detail) => {
|
|
385
|
+
console.error(`Timeout: verification of ${worktreeId} exceeded ${request.timeoutSec}s (${detail})`);
|
|
386
|
+
return { exitCode: types_1.VerifyExitCode.TIMEOUT, run: lastRun };
|
|
387
|
+
};
|
|
388
|
+
let lastRun;
|
|
370
389
|
let runId;
|
|
371
390
|
try {
|
|
372
|
-
const started = await
|
|
391
|
+
const started = await bounded.post(`/api/worktrees/${worktreeId}/verify`, {
|
|
373
392
|
trigger: request.trigger,
|
|
374
393
|
instanceId: request.instanceId,
|
|
375
394
|
gateIds: request.gateIds,
|
|
@@ -378,15 +397,30 @@ async function runVerification(client, request) {
|
|
|
378
397
|
runId = (0, api_client_1.assertResponseShape)(started, ['runId'], `POST /api/worktrees/${worktreeId}/verify`).runId;
|
|
379
398
|
}
|
|
380
399
|
catch (error) {
|
|
400
|
+
if ((0, api_client_1.isDeadlineExceeded)(error)) {
|
|
401
|
+
return timedOut('the server did not answer the start request; a run may have started server-side');
|
|
402
|
+
}
|
|
381
403
|
throw withConflictMessage(error, worktreeId);
|
|
382
404
|
}
|
|
383
405
|
console.error(`Verifying: ${worktreeId} (run ${runId})`);
|
|
384
|
-
const startedAt = Date.now();
|
|
385
406
|
const reported = new Set();
|
|
386
407
|
const runPath = `/api/worktrees/${worktreeId}/verify/runs/${runId}`;
|
|
387
|
-
|
|
408
|
+
const stillRunning = `run ${runId} is still running server-side`;
|
|
409
|
+
let finalRead = false;
|
|
388
410
|
while (true) {
|
|
389
|
-
|
|
411
|
+
let body;
|
|
412
|
+
try {
|
|
413
|
+
// A read that starts within the grace of the deadline is read like the
|
|
414
|
+
// last one: started a few ms before it (a non-final sleep ending there),
|
|
415
|
+
// it would otherwise be cut before it could answer.
|
|
416
|
+
const nearDeadline = deadlineAt !== undefined && Date.now() > deadlineAt - exports.VERIFY_FINAL_READ_GRACE_MS;
|
|
417
|
+
body = await (finalRead || nearDeadline ? finalReader : bounded).get(runPath);
|
|
418
|
+
}
|
|
419
|
+
catch (error) {
|
|
420
|
+
if ((0, api_client_1.isDeadlineExceeded)(error))
|
|
421
|
+
return timedOut(stillRunning);
|
|
422
|
+
throw error;
|
|
423
|
+
}
|
|
390
424
|
const run = (0, api_client_1.assertResponseShape)(body, ['run'], `GET ${runPath}`).run;
|
|
391
425
|
lastRun = run;
|
|
392
426
|
reportGates(run.gates ?? [], reported);
|
|
@@ -400,16 +434,18 @@ async function runVerification(client, request) {
|
|
|
400
434
|
}
|
|
401
435
|
return { exitCode: exitCodeForRunStatus(run.status), run };
|
|
402
436
|
}
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
const elapsed = (Date.now() - startedAt) / 1000;
|
|
407
|
-
if (elapsed >= request.timeoutSec) {
|
|
408
|
-
console.error(`Timeout: verification of ${worktreeId} exceeded ${request.timeoutSec}s ` +
|
|
409
|
-
`(run ${runId} is still running server-side)`);
|
|
410
|
-
return { exitCode: types_1.VerifyExitCode.TIMEOUT, run: lastRun };
|
|
411
|
-
}
|
|
437
|
+
if (deadlineAt === undefined) {
|
|
438
|
+
await sleep(exports.VERIFY_POLL_INTERVAL_MS);
|
|
439
|
+
continue;
|
|
412
440
|
}
|
|
413
|
-
|
|
441
|
+
// Checked after the terminal-status branch so a run that finishes by the
|
|
442
|
+
// deadline still reports its verdict instead of a timeout.
|
|
443
|
+
const remaining = deadlineAt - Date.now();
|
|
444
|
+
if (finalRead || remaining <= 0)
|
|
445
|
+
return timedOut(stillRunning);
|
|
446
|
+
// Issue #3983: never sleep past the deadline. Sleeping the full interval put
|
|
447
|
+
// the last read a few ms after it in real time, and that read was skipped.
|
|
448
|
+
finalRead = remaining <= exports.VERIFY_POLL_INTERVAL_MS;
|
|
449
|
+
await sleep(Math.min(exports.VERIFY_POLL_INTERVAL_MS, remaining));
|
|
414
450
|
}
|
|
415
451
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session-name.d.ts","sourceRoot":"","sources":["../../../src/lib/cli-tools/session-name.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAEH,OAAO,EAAqC,KAAK,WAAW,EAAE,MAAM,SAAS,CAAC;AAM9E,+EAA+E;AAC/E,eAAO,MAAM,yBAAyB,QAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"session-name.d.ts","sourceRoot":"","sources":["../../../src/lib/cli-tools/session-name.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAEH,OAAO,EAAqC,KAAK,WAAW,EAAE,MAAM,SAAS,CAAC;AAM9E,+EAA+E;AAC/E,eAAO,MAAM,yBAAyB,QAAkB,CAAC;AAazD,OAAO,CAAC,MAAM,CAAC;IAEb,IAAI,wBAAwB,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;CACzD;AAED;;;;;;GAMG;AACH,wBAAgB,yBAAyB,IAAI,MAAM,GAAG,IAAI,CAEzD;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAKxE;AAmBD;;;;;GAKG;AACH,wBAAgB,4BAA4B,CAC1C,SAAS,EAAE,MAAM,GAAG,IAAI,EACxB,SAAS,EAAE,WAAW,EACtB,UAAU,EAAE,MAAM,EAClB,UAAU,CAAC,EAAE,MAAM,GAClB,MAAM,CAGR;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,wBAAgB,kBAAkB,CAChC,SAAS,EAAE,WAAW,EACtB,UAAU,EAAE,MAAM,EAClB,UAAU,CAAC,EAAE,MAAM,GAClB,MAAM,CAKR;AAED;;;;;GAKG;AACH,wBAAgB,wBAAwB,CACtC,SAAS,EAAE,WAAW,EACtB,UAAU,EAAE,MAAM,EAClB,UAAU,CAAC,EAAE,MAAM,GAClB,MAAM,CAER;AAED,yDAAyD;AACzD,MAAM,WAAW,iBAAiB;IAChC,wDAAwD;IACxD,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,SAAS,EAAE,WAAW,CAAC;IACvB,gFAAgF;IAChF,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,iBAAiB,GAAG,IAAI,CAgBvE"}
|
|
@@ -44,8 +44,16 @@ const legacy_session_alias_1 = require("../tmux/legacy-session-alias");
|
|
|
44
44
|
const SESSION_NAME_PREFIX = 'mcbd-';
|
|
45
45
|
/** Shape of a session-name namespace: 8 lowercase hex digits (Issue #2866). */
|
|
46
46
|
exports.SESSION_NAMESPACE_PATTERN = /^[0-9a-f]{8}$/;
|
|
47
|
-
/**
|
|
48
|
-
|
|
47
|
+
/**
|
|
48
|
+
* CLI tool ids, longest first, so a longer id is never read as a shorter one.
|
|
49
|
+
*
|
|
50
|
+
* Read when called, not when this module loads (Issue #3981): modules loaded
|
|
51
|
+
* early (`session-starting-state`) import this one, and a module-load read of
|
|
52
|
+
* `CLI_TOOL_IDS` reaches a test's getter mock before it can answer.
|
|
53
|
+
*/
|
|
54
|
+
function cliToolIdsLongestFirst() {
|
|
55
|
+
return [...types_1.CLI_TOOL_IDS].sort((a, b) => b.length - a.length);
|
|
56
|
+
}
|
|
49
57
|
/**
|
|
50
58
|
* The namespace this process names its sessions with, or null (legacy names).
|
|
51
59
|
*
|
|
@@ -150,7 +158,7 @@ function parseSessionName(name) {
|
|
|
150
158
|
namespace = body.slice(0, dash);
|
|
151
159
|
body = body.slice(dash + 1);
|
|
152
160
|
}
|
|
153
|
-
const cliToolId =
|
|
161
|
+
const cliToolId = cliToolIdsLongestFirst().find((id) => body.startsWith(`${id}-`));
|
|
154
162
|
if (!cliToolId)
|
|
155
163
|
return null;
|
|
156
164
|
const rest = body.slice(cliToolId.length + 1);
|
|
@@ -30,7 +30,7 @@ export type SendAttemptReason =
|
|
|
30
30
|
| 'session-starting'
|
|
31
31
|
/** `not-sent`: the session could not be started. */
|
|
32
32
|
| 'session-start-failed'
|
|
33
|
-
/** `not-sent`: a prompt dialog was open (#1708). */
|
|
33
|
+
/** `not-sent`: a prompt dialog was open (#1708), or opened while the send waited for the composer (#3945). */
|
|
34
34
|
| 'prompt-waiting'
|
|
35
35
|
/** `not-sent`: the tmux session belongs to another server (#2865). */
|
|
36
36
|
| 'foreign-session'
|
|
@@ -40,6 +40,26 @@ export type SendAttemptReason =
|
|
|
40
40
|
| 'composer-not-empty'
|
|
41
41
|
/** `not-sent`: a Command Code plan review overlay refused the send before the body (#3125/#3772). */
|
|
42
42
|
| 'plan-review'
|
|
43
|
+
/** `not-sent`: another send held the instance's composer past the input lock's wait (#3945). */
|
|
44
|
+
| 'input-lock-timeout'
|
|
45
|
+
/** `not-sent`: the session was killed or recreated while the send waited for its composer (#3945). */
|
|
46
|
+
| 'session-replaced'
|
|
47
|
+
/** `not-sent`: the composer was handed to another writer before the body was typed (#3945). */
|
|
48
|
+
| 'input-lock-lost'
|
|
49
|
+
/**
|
|
50
|
+
* `not-sent`: the bound relay the send was going in under was no longer its
|
|
51
|
+
* own right before the first key (cancelled, expired or taken), so the
|
|
52
|
+
* input-boundary hook refused it and nothing was typed or dispatched (#3957/#3992).
|
|
53
|
+
*/
|
|
54
|
+
| 'relay-reservation-lost'
|
|
55
|
+
/** `not-sent`: the pane could not be re-read under the input lock, so nothing was typed (#3945). */
|
|
56
|
+
| 'recheck-failed'
|
|
57
|
+
/**
|
|
58
|
+
* `not-sent`: a body sent as one paste could not be loaded into the tmux
|
|
59
|
+
* buffer (`load-buffer` failed), so `paste-buffer` never ran and nothing of
|
|
60
|
+
* the body reached the pane (#4011/#4031).
|
|
61
|
+
*/
|
|
62
|
+
| 'paste-not-started'
|
|
43
63
|
/** `indeterminate`: the body was typed, did not land intact, and was taken back out best-effort (#2464/#3366). */
|
|
44
64
|
| 'body-not-landed'
|
|
45
65
|
/** `indeterminate`: an autocompletion replaced the body; the line was cleared best-effort (#1501). */
|
|
@@ -48,6 +68,16 @@ export type SendAttemptReason =
|
|
|
48
68
|
| 'submit-unconfirmed'
|
|
49
69
|
/** `indeterminate`: a read of the composer after the failure still shows the body. */
|
|
50
70
|
| 'composer-residue'
|
|
71
|
+
/**
|
|
72
|
+
* `indeterminate`: the composer did not show the body after Enter, but the
|
|
73
|
+
* agent did not report the session's first prompt either (#4035).
|
|
74
|
+
*/
|
|
75
|
+
| 'prompt-unreported'
|
|
76
|
+
/**
|
|
77
|
+
* `indeterminate`: a send reported `sent`, and the next send found that body
|
|
78
|
+
* still in the composer before typing its own (#4035).
|
|
79
|
+
*/
|
|
80
|
+
| 'found-in-composer'
|
|
51
81
|
/** `indeterminate`: any other failure; where it stopped is not known. */
|
|
52
82
|
| 'send-error';
|
|
53
83
|
/** The last send attempt as `prompt --json` publishes it (`lastSend`). */
|
|
@@ -63,4 +93,21 @@ export interface LastSendAttempt {
|
|
|
63
93
|
* send before any body is typed (Issue #3772). Matched by code, never by wording.
|
|
64
94
|
*/
|
|
65
95
|
export declare const PLAN_REVIEW_SEND_REFUSED_CODE = "PLAN_REVIEW_SEND_REFUSED";
|
|
96
|
+
/**
|
|
97
|
+
* `code` on the error a long body's paste throws when `load-buffer` failed
|
|
98
|
+
* (Issue #4031): `paste-buffer` never ran, so none of the body reached the
|
|
99
|
+
* pane. The tools wrap the error (`Failed to send message to <tool>: …`) with
|
|
100
|
+
* it as `cause`, and the send's outcome is read off that chain by code — the
|
|
101
|
+
* wording is shared with nothing, but a `paste-buffer` failure's is
|
|
102
|
+
* (`Failed to paste message into tmux session`) and that one is not known safe.
|
|
103
|
+
*/
|
|
104
|
+
export declare const PASTE_NOT_STARTED_CODE = "PASTE_NOT_STARTED";
|
|
105
|
+
/**
|
|
106
|
+
* `code` on the errors the input re-check throws before any key
|
|
107
|
+
* (`recheckComposerBeforeInput`, Issue #3952): a dialog was open, or the pane
|
|
108
|
+
* could not be read. Carried by copilot's `/model` switch, whose caller records
|
|
109
|
+
* the reason by code rather than by the wording around it.
|
|
110
|
+
*/
|
|
111
|
+
export declare const INPUT_RECHECK_PROMPT_WAITING_CODE = "INPUT_RECHECK_PROMPT_WAITING";
|
|
112
|
+
export declare const INPUT_RECHECK_FAILED_CODE = "INPUT_RECHECK_FAILED";
|
|
66
113
|
//# sourceMappingURL=send-attempt-types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"send-attempt-types.d.ts","sourceRoot":"","sources":["../../../src/lib/session/send-attempt-types.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,gBAAgB,GAAG,UAAU,GAAG,MAAM,GAAG,eAAe,CAAC;AAErE,MAAM,MAAM,iBAAiB;AAC3B,wCAAwC;AACtC,WAAW;AACb,2EAA2E;GACzE,kBAAkB;AACpB,mEAAmE;GACjE,kBAAkB;AACpB,oDAAoD;GAClD,sBAAsB;AACxB,
|
|
1
|
+
{"version":3,"file":"send-attempt-types.d.ts","sourceRoot":"","sources":["../../../src/lib/session/send-attempt-types.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,gBAAgB,GAAG,UAAU,GAAG,MAAM,GAAG,eAAe,CAAC;AAErE,MAAM,MAAM,iBAAiB;AAC3B,wCAAwC;AACtC,WAAW;AACb,2EAA2E;GACzE,kBAAkB;AACpB,mEAAmE;GACjE,kBAAkB;AACpB,oDAAoD;GAClD,sBAAsB;AACxB,8GAA8G;GAC5G,gBAAgB;AAClB,sEAAsE;GACpE,iBAAiB;AACnB,oEAAoE;GAClE,qBAAqB;AACvB,4EAA4E;GAC1E,oBAAoB;AACtB,qGAAqG;GACnG,aAAa;AACf,gGAAgG;GAC9F,oBAAoB;AACtB,sGAAsG;GACpG,kBAAkB;AACpB,+FAA+F;GAC7F,iBAAiB;AACnB;;;;GAIG;GACD,wBAAwB;AAC1B,oGAAoG;GAClG,gBAAgB;AAClB;;;;GAIG;GACD,mBAAmB;AACrB,kHAAkH;GAChH,iBAAiB;AACnB,sGAAsG;GACpG,wBAAwB;AAC1B,sGAAsG;GACpG,oBAAoB;AACtB,sFAAsF;GACpF,kBAAkB;AACpB;;;GAGG;GACD,mBAAmB;AACrB;;;GAGG;GACD,mBAAmB;AACrB,yEAAyE;GACvE,YAAY,CAAC;AAEjB,0EAA0E;AAC1E,MAAM,WAAW,eAAe;IAC9B,kCAAkC;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,gBAAgB,CAAC;IACxB,8FAA8F;IAC9F,MAAM,EAAE,iBAAiB,GAAG,MAAM,CAAC;CACpC;AAED;;;GAGG;AACH,eAAO,MAAM,6BAA6B,6BAA6B,CAAC;AAExE;;;;;;;GAOG;AACH,eAAO,MAAM,sBAAsB,sBAAsB,CAAC;AAE1D;;;;;GAKG;AACH,eAAO,MAAM,iCAAiC,iCAAiC,CAAC;AAChF,eAAO,MAAM,yBAAyB,yBAAyB,CAAC"}
|
|
@@ -9,9 +9,26 @@
|
|
|
9
9
|
* @module lib/session/send-attempt-types
|
|
10
10
|
*/
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.PLAN_REVIEW_SEND_REFUSED_CODE = void 0;
|
|
12
|
+
exports.INPUT_RECHECK_FAILED_CODE = exports.INPUT_RECHECK_PROMPT_WAITING_CODE = exports.PASTE_NOT_STARTED_CODE = exports.PLAN_REVIEW_SEND_REFUSED_CODE = void 0;
|
|
13
13
|
/**
|
|
14
14
|
* `code` on the error a tool throws when a plan review overlay refuses the
|
|
15
15
|
* send before any body is typed (Issue #3772). Matched by code, never by wording.
|
|
16
16
|
*/
|
|
17
17
|
exports.PLAN_REVIEW_SEND_REFUSED_CODE = 'PLAN_REVIEW_SEND_REFUSED';
|
|
18
|
+
/**
|
|
19
|
+
* `code` on the error a long body's paste throws when `load-buffer` failed
|
|
20
|
+
* (Issue #4031): `paste-buffer` never ran, so none of the body reached the
|
|
21
|
+
* pane. The tools wrap the error (`Failed to send message to <tool>: …`) with
|
|
22
|
+
* it as `cause`, and the send's outcome is read off that chain by code — the
|
|
23
|
+
* wording is shared with nothing, but a `paste-buffer` failure's is
|
|
24
|
+
* (`Failed to paste message into tmux session`) and that one is not known safe.
|
|
25
|
+
*/
|
|
26
|
+
exports.PASTE_NOT_STARTED_CODE = 'PASTE_NOT_STARTED';
|
|
27
|
+
/**
|
|
28
|
+
* `code` on the errors the input re-check throws before any key
|
|
29
|
+
* (`recheckComposerBeforeInput`, Issue #3952): a dialog was open, or the pane
|
|
30
|
+
* could not be read. Carried by copilot's `/model` switch, whose caller records
|
|
31
|
+
* the reason by code rather than by the wording around it.
|
|
32
|
+
*/
|
|
33
|
+
exports.INPUT_RECHECK_PROMPT_WAITING_CODE = 'INPUT_RECHECK_PROMPT_WAITING';
|
|
34
|
+
exports.INPUT_RECHECK_FAILED_CODE = 'INPUT_RECHECK_FAILED';
|