commandmate 0.31.3 → 0.32.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.next/BUILD_ID +1 -1
- package/.next/app-build-manifest.json +498 -484
- package/.next/app-path-routes-manifest.json +44 -42
- package/.next/build-manifest.json +5 -5
- package/.next/prerender-manifest.json +3 -3
- package/.next/react-loadable-manifest.json +2 -2
- package/.next/required-server-files.json +1 -1
- package/.next/routes-manifest.json +8 -0
- package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/server/app/api/agents/update/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/agents/versions/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/app/update/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/app/update-check/route.js +1 -1
- package/.next/server/app/api/app/update-check/route.js.nft.json +1 -1
- package/.next/server/app/api/app/update-check/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/assistant/conversation/route.js +1 -1
- package/.next/server/app/api/assistant/conversation/route.js.nft.json +1 -1
- package/.next/server/app/api/assistant/conversation/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/assistant/current-output/route.js +1 -1
- package/.next/server/app/api/assistant/current-output/route.js.nft.json +1 -1
- package/.next/server/app/api/assistant/current-output/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/assistant/messages/route.js +1 -1
- package/.next/server/app/api/assistant/messages/route.js.nft.json +1 -1
- package/.next/server/app/api/assistant/messages/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/assistant/session/route.js +1 -1
- package/.next/server/app/api/assistant/session/route.js.nft.json +1 -1
- package/.next/server/app/api/assistant/session/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/assistant/start/route.js +1 -32
- package/.next/server/app/api/assistant/start/route.js.nft.json +1 -1
- package/.next/server/app/api/assistant/start/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/assistant/terminal/route.js +2 -33
- package/.next/server/app/api/assistant/terminal/route.js.nft.json +1 -1
- package/.next/server/app/api/assistant/terminal/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/assistant/tools/route.js +1 -1
- package/.next/server/app/api/assistant/tools/route.js.nft.json +1 -1
- package/.next/server/app/api/assistant/tools/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/auth/login/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/auth/logout/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/auth/status/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/capabilities/route.js +1 -1
- package/.next/server/app/api/capabilities/route.js.nft.json +1 -1
- package/.next/server/app/api/capabilities/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/daily-summary/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/daily-summary/status/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/external-apps/[id]/health/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/external-apps/[id]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/external-apps/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/fs/browse/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/fs/recent-paths/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/hooks/agent-event/route.js +1 -1
- package/.next/server/app/api/hooks/agent-event/route.js.nft.json +1 -1
- package/.next/server/app/api/hooks/agent-event/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/hooks/claude-done/route.js +2 -2
- package/.next/server/app/api/hooks/claude-done/route.js.nft.json +1 -1
- package/.next/server/app/api/hooks/claude-done/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/hooks/permission-request/route.js +1 -1
- package/.next/server/app/api/hooks/permission-request/route.js.nft.json +1 -1
- package/.next/server/app/api/hooks/permission-request/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/metrics/vibe/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/ollama/models/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/push/escalation/route.js +1 -1
- package/.next/server/app/api/push/escalation/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/push/subscriptions/route.js +1 -1
- package/.next/server/app/api/push/subscriptions/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/push/vapid/route.js +1 -1
- package/.next/server/app/api/push/vapid/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/relays/[relayId]/cancel/route.js +1 -0
- package/.next/server/app/api/relays/[relayId]/cancel/route.js.nft.json +1 -0
- package/.next/server/app/api/relays/[relayId]/cancel/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/relays/route.js +1 -0
- package/.next/server/app/api/relays/route.js.nft.json +1 -0
- package/.next/server/app/api/relays/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/remote/pair/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/repositories/[id]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/repositories/[id]/todos/[todoId]/route.js +1 -1
- package/.next/server/app/api/repositories/[id]/todos/[todoId]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/repositories/[id]/todos/route.js +1 -1
- package/.next/server/app/api/repositories/[id]/todos/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/repositories/clone/[jobId]/route.js +1 -1
- package/.next/server/app/api/repositories/clone/[jobId]/route.js.nft.json +1 -1
- package/.next/server/app/api/repositories/clone/[jobId]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/repositories/clone/route.js +1 -1
- package/.next/server/app/api/repositories/clone/route.js.nft.json +1 -1
- package/.next/server/app/api/repositories/clone/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/repositories/excluded/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/repositories/restore/route.js +1 -1
- package/.next/server/app/api/repositories/restore/route.js.nft.json +1 -1
- package/.next/server/app/api/repositories/restore/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/repositories/route.js +1 -1
- package/.next/server/app/api/repositories/route.js.nft.json +1 -1
- package/.next/server/app/api/repositories/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/repositories/scan/route.js +1 -1
- package/.next/server/app/api/repositories/scan/route.js.nft.json +1 -1
- package/.next/server/app/api/repositories/scan/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/repositories/sync/route.js +1 -1
- package/.next/server/app/api/repositories/sync/route.js.nft.json +1 -1
- package/.next/server/app/api/repositories/sync/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/repositories/validate-path/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/settings/default-agents/route.js +1 -1
- package/.next/server/app/api/settings/default-agents/route.js.nft.json +1 -1
- package/.next/server/app/api/settings/default-agents/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/settings/default-surface-mode/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/sidebar/group-order/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/skills/[id]/route.js +1 -1
- package/.next/server/app/api/skills/[id]/route.js.nft.json +1 -1
- package/.next/server/app/api/skills/[id]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/skills/installations/route.js +1 -1
- package/.next/server/app/api/skills/installations/route.js.nft.json +1 -1
- package/.next/server/app/api/skills/installations/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/skills/operations/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/skills/reindex/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/skills/route.js +1 -1
- package/.next/server/app/api/skills/route.js.nft.json +1 -1
- package/.next/server/app/api/skills/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/slash-commands/route.js.nft.json +1 -1
- package/.next/server/app/api/slash-commands/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/tasks/[taskId]/cancel/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/tasks/[taskId]/route.js +1 -1
- package/.next/server/app/api/tasks/[taskId]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/templates/[id]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/templates/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/todos/route.js +1 -1
- package/.next/server/app/api/todos/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/verification/runs/[runId]/route.js +1 -1
- package/.next/server/app/api/verification/runs/[runId]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/verification/runs/route.js +1 -1
- package/.next/server/app/api/verification/runs/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/auto-yes/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/auto-yes/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/auto-yes/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/capture/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/capture/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/capture/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/clear-composer/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/clear-composer/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/clear-composer/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/cli-reference/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/cli-reference/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/cli-tool/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/cli-tool/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/cmate/schedules/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/cmate/schedules/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/current-output/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/current-output/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/current-output/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/env/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/env/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/execution-logs/[logId]/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/execution-logs/[logId]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/execution-logs/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/execution-logs/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/files/[...path]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/branch/create/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/branch/create/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/branch/delete/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/branch/delete/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/branches/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/branches/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/checkout/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/checkout/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/commit/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/commit/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/diff/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/diff/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/fetch/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/fetch/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/log/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/log/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/pull/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/pull/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/push/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/push/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/reset/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/reset/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/revert/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/revert/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/show/[commitHash]/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/show/[commitHash]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/stage/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/stage/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/staged/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/staged/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/stash/[index]/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/stash/[index]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/stash/apply/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/stash/apply/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/stash/pop/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/stash/pop/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/stash/push/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/stash/push/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/stash/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/stash/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/status/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/status/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/unstage/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/unstage/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/working-diff/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/working-diff/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/instances/opencode/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/instances/opencode/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/instances/opencode/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/interrupt/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/interrupt/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/interrupt/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/kill-session/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/kill-session/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/kill-session/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/logs/[filename]/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/logs/[filename]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/logs/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/logs/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/marp-render/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/marp-render/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/memos/[memoId]/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/memos/[memoId]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/memos/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/memos/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/messages/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/messages/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/opencode/diff/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/opencode/diff/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/opencode/session/route.js +2 -1
- package/.next/server/app/api/worktrees/[id]/opencode/session/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/opencode/session/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/opencode/share/route.js +2 -1
- package/.next/server/app/api/worktrees/[id]/opencode/share/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/opencode/share/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/prompt-response/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/prompt-response/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/prompt-response/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/resolve-target/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/resolve-target/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/respond/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/respond/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/respond/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/schedules/[scheduleId]/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/schedules/[scheduleId]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/schedules/active/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/schedules/active/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/schedules/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/schedules/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/search/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/send/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/send/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/send/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/skills/[skillId]/git-workflow/route.js +103 -1
- package/.next/server/app/api/worktrees/[id]/skills/[skillId]/git-workflow/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/skills/[skillId]/git-workflow/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/skills/[skillId]/install/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/skills/[skillId]/plan/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/skills/[skillId]/plan/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/skills/[skillId]/plan/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall-plan/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/skills/[skillId]/update/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/skills/[skillId]/update-plan/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/skills/[skillId]/update-plan/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/skills/[skillId]/update-plan/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/skills/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/skills/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/slash-commands/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/slash-commands/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/slash-commands/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/special-keys/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/special-keys/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/special-keys/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/tasks/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/tasks/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/terminal/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/terminal/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/terminal/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/timers/history/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/timers/history/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/timers/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/timers/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/timers/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/todos/[todoId]/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/todos/[todoId]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/todos/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/todos/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/tree/[...path]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/tree/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/upload/[...path]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/verify/config/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/verify/config/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/verify/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/verify/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/verify/runs/[runId]/cancel/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/verify/runs/[runId]/cancel/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/verify/runs/[runId]/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/verify/runs/[runId]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/verify/runs/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/verify/runs/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/viewed/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/viewed/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/apply-default-agents/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/route.js +1 -1
- package/.next/server/app/api/worktrees/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/route_client-reference-manifest.js +1 -1
- package/.next/server/app/chat/page.js +2 -2
- package/.next/server/app/chat/page.js.nft.json +1 -1
- package/.next/server/app/chat/page_client-reference-manifest.js +1 -1
- package/.next/server/app/login/page_client-reference-manifest.js +1 -1
- package/.next/server/app/manifest.webmanifest/route_client-reference-manifest.js +1 -1
- package/.next/server/app/more/page.js +2 -2
- package/.next/server/app/more/page.js.nft.json +1 -1
- package/.next/server/app/more/page_client-reference-manifest.js +1 -1
- package/.next/server/app/offline/page_client-reference-manifest.js +1 -1
- package/.next/server/app/page.js +1 -1
- package/.next/server/app/page.js.nft.json +1 -1
- package/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/server/app/proxy/[...path]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/repositories/page.js +2 -2
- package/.next/server/app/repositories/page.js.nft.json +1 -1
- package/.next/server/app/repositories/page_client-reference-manifest.js +1 -1
- package/.next/server/app/review/page.js +1 -1
- package/.next/server/app/review/page.js.nft.json +1 -1
- package/.next/server/app/review/page_client-reference-manifest.js +1 -1
- package/.next/server/app/sessions/page.js +1 -1
- package/.next/server/app/sessions/page.js.nft.json +1 -1
- package/.next/server/app/sessions/page_client-reference-manifest.js +1 -1
- package/.next/server/app/skills/[skillId]/page.js +2 -2
- package/.next/server/app/skills/[skillId]/page.js.nft.json +1 -1
- package/.next/server/app/skills/[skillId]/page_client-reference-manifest.js +1 -1
- package/.next/server/app/skills/installed/page.js +2 -2
- package/.next/server/app/skills/installed/page.js.nft.json +1 -1
- package/.next/server/app/skills/installed/page_client-reference-manifest.js +1 -1
- package/.next/server/app/skills/page.js +1 -1
- package/.next/server/app/skills/page.js.nft.json +1 -1
- package/.next/server/app/skills/page_client-reference-manifest.js +1 -1
- package/.next/server/app/worktrees/[id]/files/[...path]/page_client-reference-manifest.js +1 -1
- package/.next/server/app/worktrees/[id]/page.js +11 -11
- package/.next/server/app/worktrees/[id]/page.js.nft.json +1 -1
- package/.next/server/app/worktrees/[id]/page_client-reference-manifest.js +1 -1
- package/.next/server/app/worktrees/[id]/terminal/page_client-reference-manifest.js +1 -1
- package/.next/server/app-paths-manifest.json +44 -42
- package/.next/server/chunks/1210.js +1 -0
- package/.next/server/chunks/153.js +1 -0
- package/.next/server/chunks/1886.js +1 -1
- package/.next/server/chunks/21.js +1 -0
- package/.next/server/chunks/2119.js +1 -1
- package/.next/server/chunks/2445.js +1 -1
- package/.next/server/chunks/3077.js +67 -0
- package/.next/server/chunks/3086.js +1 -0
- package/.next/server/chunks/3241.js +1 -1
- package/.next/server/chunks/3270.js +1 -0
- package/.next/server/chunks/3543.js +1 -1
- package/.next/server/chunks/3730.js +1 -0
- package/.next/server/chunks/3925.js +1 -0
- package/.next/server/chunks/3945.js +1 -1
- package/.next/server/chunks/4443.js +2 -1
- package/.next/server/chunks/5043.js +1 -1
- package/.next/server/chunks/5164.js +1 -1
- package/.next/server/chunks/5220.js +1 -1
- package/.next/server/chunks/5354.js +1 -1
- package/.next/server/chunks/595.js +3 -3
- package/.next/server/chunks/6286.js +48 -0
- package/.next/server/chunks/6306.js +1 -0
- package/.next/server/chunks/6363.js +1 -0
- package/.next/server/chunks/6401.js +1 -1
- package/.next/server/chunks/6491.js +103 -0
- package/.next/server/chunks/{9798.js → 6661.js} +1 -2
- package/.next/server/chunks/6838.js +1 -0
- package/.next/server/chunks/7875.js +25 -0
- package/.next/server/chunks/7890.js +1 -0
- package/.next/server/chunks/8063.js +32 -0
- package/.next/server/chunks/8118.js +1 -1
- package/.next/server/chunks/{7587.js → 8554.js} +1 -1
- package/.next/server/chunks/8687.js +1 -0
- package/.next/server/chunks/8807.js +37 -3
- package/.next/server/chunks/8918.js +6 -4
- package/.next/server/chunks/9123.js +2 -2
- package/.next/server/chunks/9130.js +1 -1
- package/.next/server/chunks/9584.js +1 -1
- package/.next/server/chunks/9627.js +21 -5
- package/.next/server/middleware-build-manifest.js +1 -1
- package/.next/server/middleware-manifest.json +5 -5
- package/.next/server/middleware-react-loadable-manifest.js +1 -1
- package/.next/server/pages/500.html +1 -1
- package/.next/server/server-reference-manifest.json +1 -1
- package/.next/static/Lno4w_zWXdGdlfXg06Vp8/_buildManifest.js +1 -0
- package/.next/static/chunks/{5694.dda65070757534df.js → 3313.53f7ff985c0c8852.js} +1 -1
- package/.next/static/chunks/4718-9d63107c612a065d.js +1 -0
- package/.next/static/chunks/{4974-35592ec312322124.js → 5694-498765336d0b8c2b.js} +1 -1
- package/.next/static/chunks/{7485.442b21101fca7257.js → 7485.52361bc061cc663a.js} +1 -1
- package/.next/static/chunks/8019-cbf130d0e6334d2d.js +1 -0
- package/.next/static/chunks/8361-9bb887203c456edb.js +1 -0
- package/.next/static/chunks/8772-9be53a530950d804.js +1 -0
- package/.next/static/chunks/998-ac0ded6d5eeb4dc0.js +1 -0
- package/.next/static/chunks/app/api/agents/update/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/agents/versions/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/app/update/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/app/update-check/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/assistant/conversation/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/assistant/current-output/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/assistant/messages/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/assistant/session/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/assistant/start/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/assistant/terminal/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/assistant/tools/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/auth/login/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/auth/logout/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/auth/status/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/capabilities/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/daily-summary/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/daily-summary/status/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/external-apps/[id]/health/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/external-apps/[id]/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/external-apps/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/fs/browse/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/fs/recent-paths/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/hooks/agent-event/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/hooks/claude-done/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/hooks/permission-request/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/metrics/vibe/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/ollama/models/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/push/escalation/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/push/subscriptions/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/push/vapid/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/relays/[relayId]/cancel/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/relays/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/remote/pair/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/repositories/[id]/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/repositories/[id]/todos/[todoId]/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/repositories/[id]/todos/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/repositories/clone/[jobId]/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/repositories/clone/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/repositories/excluded/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/repositories/restore/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/repositories/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/repositories/scan/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/repositories/sync/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/repositories/validate-path/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/settings/default-agents/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/settings/default-surface-mode/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/sidebar/group-order/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/skills/[id]/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/skills/installations/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/skills/operations/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/skills/reindex/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/skills/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/slash-commands/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/tasks/[taskId]/cancel/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/tasks/[taskId]/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/templates/[id]/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/templates/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/todos/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/verification/runs/[runId]/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/verification/runs/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/auto-yes/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/capture/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/clear-composer/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/cli-reference/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/cli-tool/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/cmate/schedules/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/current-output/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/env/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/execution-logs/[logId]/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/execution-logs/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/files/[...path]/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/branch/create/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/branch/delete/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/branches/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/checkout/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/commit/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/diff/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/fetch/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/log/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/pull/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/push/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/reset/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/revert/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/show/[commitHash]/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/stage/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/staged/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/stash/[index]/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/stash/apply/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/stash/pop/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/stash/push/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/stash/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/status/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/unstage/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/working-diff/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/instances/opencode/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/interrupt/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/kill-session/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/logs/[filename]/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/logs/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/marp-render/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/memos/[memoId]/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/memos/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/messages/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/opencode/diff/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/opencode/session/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/opencode/share/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/prompt-response/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/resolve-target/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/respond/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/schedules/[scheduleId]/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/schedules/active/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/schedules/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/search/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/send/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/git-workflow/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/install/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/plan/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/uninstall/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/uninstall-plan/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/update/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/update-plan/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/skills/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/slash-commands/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/special-keys/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/tasks/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/terminal/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/timers/history/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/timers/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/todos/[todoId]/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/todos/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/tree/[...path]/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/tree/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/upload/[...path]/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/verify/config/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/verify/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/verify/runs/[runId]/cancel/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/verify/runs/[runId]/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/verify/runs/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/viewed/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/worktrees/apply-default-agents/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/api/worktrees/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/chat/{page-37d7615d17d7e2a0.js → page-e60d07c4c79602f0.js} +1 -1
- package/.next/static/chunks/app/manifest.webmanifest/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/more/{page-353a3924e6d7968e.js → page-fc94f86aa881489e.js} +1 -1
- package/.next/static/chunks/app/{page-c2bf871d953a1d6f.js → page-6871cca022b24807.js} +1 -1
- package/.next/static/chunks/app/proxy/[...path]/route-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/repositories/{page-7d0f26df0537254c.js → page-788ded1b72963d94.js} +1 -1
- package/.next/static/chunks/app/review/{page-e3f141b2829973e9.js → page-35b99baaf3c93b38.js} +1 -1
- package/.next/static/chunks/app/sessions/{page-53f188ed9ca49e5f.js → page-fa2d62f3e8436c69.js} +1 -1
- package/.next/static/chunks/app/skills/[skillId]/{page-80569b720aea59cc.js → page-06799157652e8fa9.js} +1 -1
- package/.next/static/chunks/app/skills/installed/{page-dbd2690ad72da95b.js → page-2f3987e3a131c8d0.js} +1 -1
- package/.next/static/chunks/app/skills/{page-dacd36f9c11aa7da.js → page-e70bfcf5ed4e4865.js} +1 -1
- package/.next/static/chunks/app/worktrees/[id]/layout-8bc5b680c5f3eae4.js +1 -0
- package/.next/static/chunks/app/worktrees/[id]/page-3d82a9355d5612d9.js +1 -0
- package/.next/static/chunks/webpack-1dc9eb5ebb4fa5ff.js +1 -0
- package/.next/static/css/96d94a4ba771efc3.css +1 -0
- package/.next/trace +13 -13
- package/.next/types/app/api/relays/[relayId]/cancel/route.ts +347 -0
- package/.next/types/app/api/relays/route.ts +347 -0
- package/.next/types/routes.d.ts +3 -1
- package/.next/types/validator.ts +18 -0
- package/README.md +6 -2
- package/dist/cli/commands/ask.d.ts +34 -0
- package/dist/cli/commands/ask.d.ts.map +1 -0
- package/dist/cli/commands/ask.js +494 -0
- package/dist/cli/commands/capture.d.ts +20 -0
- package/dist/cli/commands/capture.d.ts.map +1 -1
- package/dist/cli/commands/capture.js +80 -30
- package/dist/cli/commands/docs.d.ts.map +1 -1
- package/dist/cli/commands/docs.js +47 -4
- package/dist/cli/commands/instances.d.ts +67 -0
- package/dist/cli/commands/instances.d.ts.map +1 -1
- package/dist/cli/commands/instances.js +147 -22
- package/dist/cli/commands/peers.d.ts +64 -0
- package/dist/cli/commands/peers.d.ts.map +1 -0
- package/dist/cli/commands/peers.js +208 -0
- package/dist/cli/commands/relays.d.ts +92 -0
- package/dist/cli/commands/relays.d.ts.map +1 -0
- package/dist/cli/commands/relays.js +293 -0
- package/dist/cli/commands/report.d.ts +3 -0
- package/dist/cli/commands/report.d.ts.map +1 -1
- package/dist/cli/commands/report.js +29 -1
- package/dist/cli/commands/respond.d.ts.map +1 -1
- package/dist/cli/commands/respond.js +13 -10
- package/dist/cli/commands/send.d.ts.map +1 -1
- package/dist/cli/commands/send.js +66 -20
- package/dist/cli/commands/task.d.ts.map +1 -1
- package/dist/cli/commands/task.js +30 -0
- package/dist/cli/commands/wait.d.ts +20 -0
- package/dist/cli/commands/wait.d.ts.map +1 -1
- package/dist/cli/commands/wait.js +55 -6
- package/dist/cli/commands/whoami.d.ts +176 -0
- package/dist/cli/commands/whoami.d.ts.map +1 -0
- package/dist/cli/commands/whoami.js +377 -0
- package/dist/cli/docs/agent-operations.d.ts +25 -1
- package/dist/cli/docs/agent-operations.d.ts.map +1 -1
- package/dist/cli/docs/agent-operations.js +184 -1
- package/dist/cli/index.d.ts +13 -0
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +25 -1
- package/dist/cli/types/api-responses.d.ts +93 -0
- package/dist/cli/types/api-responses.d.ts.map +1 -1
- package/dist/cli/types/index.d.ts +16 -0
- package/dist/cli/types/index.d.ts.map +1 -1
- package/dist/cli/utils/api-client.d.ts +30 -1
- package/dist/cli/utils/api-client.d.ts.map +1 -1
- package/dist/cli/utils/api-client.js +28 -5
- package/dist/lib/cli/command-reference.d.ts +179 -0
- package/dist/lib/cli/command-reference.d.ts.map +1 -0
- package/dist/lib/cli/command-reference.js +210 -0
- package/dist/lib/detection/ansi.d.ts +14 -1
- package/dist/lib/detection/ansi.d.ts.map +1 -1
- package/dist/lib/detection/ansi.js +40 -3
- package/dist/lib/detection/status-reason.d.ts +28 -0
- package/dist/lib/detection/status-reason.d.ts.map +1 -1
- package/dist/lib/detection/status-reason.js +28 -0
- package/dist/server/locales/en/worktree.json +23 -0
- package/dist/server/locales/ja/worktree.json +23 -0
- package/dist/server/src/lib/auto-yes-poller.js +26 -11
- package/dist/server/src/lib/db/chat-db.js +161 -7
- package/dist/server/src/lib/db/migrations/index.js +2 -0
- package/dist/server/src/lib/db/migrations/runner.js +1 -1
- package/dist/server/src/lib/db/migrations/v60-session-relays.js +110 -0
- package/dist/server/src/lib/db/relay-db.js +343 -0
- package/dist/server/src/lib/detection/ansi.js +40 -3
- package/dist/server/src/lib/detection/cli-patterns.js +206 -2
- package/dist/server/src/lib/detection/selection-shape.js +72 -1
- package/dist/server/src/lib/detection/status-reason.js +28 -0
- package/dist/server/src/lib/detection/tools/antigravity/dialog.js +13 -7
- package/dist/server/src/lib/detection/tools/command-code/detect.js +33 -0
- package/dist/server/src/lib/history/user-turn-recorder.js +79 -16
- package/dist/server/src/lib/hooks/agent-event-service.js +27 -5
- package/dist/server/src/lib/hooks/sources/codex/history.js +63 -3
- package/dist/server/src/lib/hooks/sources/codex/transcript.js +53 -1
- package/dist/server/src/lib/hooks/sources/launch-command.js +112 -15
- package/dist/server/src/lib/hooks/stop-history-capture.js +252 -50
- package/dist/server/src/lib/polling/response-checker.js +174 -13
- package/dist/server/src/lib/polling/response-dedup.js +136 -0
- package/dist/server/src/lib/polling/structured-history-gate.js +14 -1
- package/dist/server/src/lib/realtime/terminal-broadcast.js +5 -0
- package/dist/server/src/lib/realtime/waiting-broadcast.js +12 -0
- package/dist/server/src/lib/relay/relay-delivery.js +554 -0
- package/dist/server/src/lib/relay/relay-messages.js +144 -0
- package/dist/server/src/lib/relay/relay-policy.js +127 -0
- package/dist/server/src/lib/relay/relay-readiness.js +63 -0
- package/dist/server/src/lib/relay/relay-session-ref.js +72 -0
- package/dist/server/src/lib/relay/relay-system-line.js +79 -0
- package/dist/server/src/lib/relay/relay-triggers.js +177 -0
- package/dist/server/src/lib/relay/types.js +25 -0
- package/dist/server/src/lib/session/current-output-builder.js +18 -0
- package/dist/server/src/lib/session/send-user-message.js +1 -0
- package/package.json +1 -1
- package/.next/server/chunks/1058.js +0 -1
- package/.next/server/chunks/1068.js +0 -1
- package/.next/server/chunks/1990.js +0 -103
- package/.next/server/chunks/261.js +0 -1
- package/.next/server/chunks/2739.js +0 -1
- package/.next/server/chunks/2839.js +0 -1
- package/.next/server/chunks/3484.js +0 -1
- package/.next/server/chunks/358.js +0 -1
- package/.next/server/chunks/3869.js +0 -1
- package/.next/server/chunks/4325.js +0 -1
- package/.next/server/chunks/4393.js +0 -1
- package/.next/server/chunks/5017.js +0 -1
- package/.next/server/chunks/5120.js +0 -1
- package/.next/server/chunks/552.js +0 -25
- package/.next/server/chunks/6130.js +0 -1
- package/.next/server/chunks/7836.js +0 -1
- package/.next/server/chunks/7859.js +0 -21
- package/.next/server/chunks/9696.js +0 -3
- package/.next/static/0hTIackGXw6v7diXJS6yN/_buildManifest.js +0 -1
- package/.next/static/chunks/2813-de885de8a4b11910.js +0 -1
- package/.next/static/chunks/4718-07ec4e10186928db.js +0 -1
- package/.next/static/chunks/6170-951b9f5fe6b4b3b5.js +0 -1
- package/.next/static/chunks/8019-f8e73c1fb5f6f0d3.js +0 -1
- package/.next/static/chunks/8593-fa0eb2802e0ce68a.js +0 -1
- package/.next/static/chunks/app/api/agents/update/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/agents/versions/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/app/update/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/app/update-check/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/assistant/conversation/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/assistant/current-output/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/assistant/messages/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/assistant/session/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/assistant/start/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/assistant/terminal/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/assistant/tools/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/auth/login/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/auth/logout/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/auth/status/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/capabilities/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/daily-summary/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/daily-summary/status/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/external-apps/[id]/health/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/external-apps/[id]/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/external-apps/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/fs/browse/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/fs/recent-paths/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/hooks/agent-event/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/hooks/claude-done/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/hooks/permission-request/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/metrics/vibe/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/ollama/models/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/push/escalation/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/push/subscriptions/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/push/vapid/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/remote/pair/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/repositories/[id]/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/repositories/[id]/todos/[todoId]/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/repositories/[id]/todos/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/repositories/clone/[jobId]/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/repositories/clone/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/repositories/excluded/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/repositories/restore/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/repositories/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/repositories/scan/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/repositories/sync/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/repositories/validate-path/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/settings/default-agents/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/settings/default-surface-mode/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/sidebar/group-order/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/skills/[id]/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/skills/installations/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/skills/operations/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/skills/reindex/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/skills/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/slash-commands/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/tasks/[taskId]/cancel/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/tasks/[taskId]/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/templates/[id]/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/templates/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/todos/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/verification/runs/[runId]/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/verification/runs/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/auto-yes/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/capture/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/clear-composer/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/cli-reference/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/cli-tool/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/cmate/schedules/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/current-output/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/env/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/execution-logs/[logId]/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/execution-logs/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/files/[...path]/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/branch/create/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/branch/delete/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/branches/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/checkout/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/commit/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/diff/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/fetch/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/log/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/pull/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/push/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/reset/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/revert/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/show/[commitHash]/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/stage/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/staged/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/stash/[index]/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/stash/apply/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/stash/pop/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/stash/push/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/stash/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/status/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/unstage/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/working-diff/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/instances/opencode/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/interrupt/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/kill-session/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/logs/[filename]/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/logs/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/marp-render/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/memos/[memoId]/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/memos/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/messages/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/opencode/diff/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/opencode/session/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/opencode/share/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/prompt-response/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/resolve-target/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/respond/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/schedules/[scheduleId]/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/schedules/active/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/schedules/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/search/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/send/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/git-workflow/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/install/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/plan/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/uninstall/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/uninstall-plan/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/update/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/update-plan/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/skills/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/slash-commands/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/special-keys/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/tasks/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/terminal/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/timers/history/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/timers/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/todos/[todoId]/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/todos/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/tree/[...path]/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/tree/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/upload/[...path]/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/verify/config/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/verify/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/verify/runs/[runId]/cancel/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/verify/runs/[runId]/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/verify/runs/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/viewed/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/worktrees/apply-default-agents/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/api/worktrees/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/manifest.webmanifest/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/proxy/[...path]/route-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/worktrees/[id]/layout-ee11f7b8a34cba8c.js +0 -1
- package/.next/static/chunks/app/worktrees/[id]/page-91b639c90795baa9.js +0 -1
- package/.next/static/chunks/webpack-9f75198882fdaf08.js +0 -1
- package/.next/static/css/acc4b9c3feb04287.css +0 -1
- /package/.next/static/{0hTIackGXw6v7diXJS6yN → Lno4w_zWXdGdlfXg06Vp8}/_ssgManifest.js +0 -0
|
@@ -10,7 +10,10 @@
|
|
|
10
10
|
* commandmate instances <worktree-id> kill <instance-id>
|
|
11
11
|
*/
|
|
12
12
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
+
exports.INSTANCE_SELECTOR_ERROR = exports.INSTANCE_ALIAS_HELP_SUFFIX = void 0;
|
|
13
14
|
exports.resolveInstanceCliTool = resolveInstanceCliTool;
|
|
15
|
+
exports.isInstanceSelector = isInstanceSelector;
|
|
16
|
+
exports.resolveInstanceTarget = resolveInstanceTarget;
|
|
14
17
|
exports.createInstancesCommand = createInstancesCommand;
|
|
15
18
|
const commander_1 = require("commander");
|
|
16
19
|
const types_1 = require("../types");
|
|
@@ -19,6 +22,10 @@ const command_helpers_1 = require("../utils/command-helpers");
|
|
|
19
22
|
const cli_tool_ids_1 = require("../config/cli-tool-ids");
|
|
20
23
|
const agent_instances_1 = require("../utils/agent-instances");
|
|
21
24
|
const session_target_1 = require("../utils/session-target");
|
|
25
|
+
// Issue #2404: "the worktree is not on this server" is a different failure from
|
|
26
|
+
// "the worktree id is wrong", and only the session's own identity can tell them
|
|
27
|
+
// apart.
|
|
28
|
+
const whoami_1 = require("./whoami");
|
|
22
29
|
// Issue #2317: the tmux session name each instance runs in, so `commandmate
|
|
23
30
|
// attach` / `tmux attach` need no hand-assembly of `mcbd-<tool>-<wt>[-<suffix>]`.
|
|
24
31
|
const session_name_1 = require("../../lib/cli-tools/session-name");
|
|
@@ -103,20 +110,113 @@ function formatInstancesTable(rows) {
|
|
|
103
110
|
* @returns the CLI tool to send, or undefined to let an older server decide
|
|
104
111
|
*/
|
|
105
112
|
async function resolveInstanceCliTool(client, worktreeId, instanceId, requestedAgent, mode = 'strict') {
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
113
|
+
return (await resolveInstanceTarget(client, worktreeId, instanceId, requestedAgent, mode))
|
|
114
|
+
.cliToolId;
|
|
115
|
+
}
|
|
116
|
+
// ===========================================================================
|
|
117
|
+
// Instance selectors: an id OR an alias (Issue #2376)
|
|
118
|
+
// ===========================================================================
|
|
119
|
+
/**
|
|
120
|
+
* The server's code for an `--instance` two roster rows answer to.
|
|
121
|
+
*
|
|
122
|
+
* Mirrors `AMBIGUOUS_INSTANCE_ALIAS` in
|
|
123
|
+
* `src/app/api/worktrees/[id]/resolve-target/route.ts`; duplicated rather than
|
|
124
|
+
* imported because a route module may export only the names Next.js accepts
|
|
125
|
+
* (`scripts/check-route-exports.mjs`, Issue #1946) — the same arrangement
|
|
126
|
+
* `send.ts` has with `PROMPT_WAITING`.
|
|
127
|
+
*/
|
|
128
|
+
const AMBIGUOUS_INSTANCE_ALIAS_CODE = 'ambiguous_instance_alias';
|
|
129
|
+
/**
|
|
130
|
+
* Whether `value` is something the server could resolve to an instance.
|
|
131
|
+
*
|
|
132
|
+
* An instance id, or an alias. Issue #2376 widened `--instance` to accept the
|
|
133
|
+
* second because it is the only name a human has for `codex-2`: the roster pane
|
|
134
|
+
* shows `Codex 2`, `commandmate instances <id>` prints it in the ALIAS column,
|
|
135
|
+
* and `--instance "Codex 2"` used to be rejected here — before any request —
|
|
136
|
+
* with "must be an alphanumeric identifier".
|
|
137
|
+
*
|
|
138
|
+
* The check is deliberately loose: an alias is free text (`レビュー担当`), and
|
|
139
|
+
* the authority on whether one EXISTS is the roster, which only the server has.
|
|
140
|
+
* All this rules out is a value no alias can be — empty, longer than the alias
|
|
141
|
+
* field allows, or carrying control characters.
|
|
142
|
+
*
|
|
143
|
+
* @param value - The `--instance` value as given
|
|
144
|
+
*/
|
|
145
|
+
function isInstanceSelector(value) {
|
|
146
|
+
if ((0, api_client_1.isValidInstanceId)(value))
|
|
147
|
+
return true;
|
|
148
|
+
if (value.length === 0 || value.length > agent_instances_1.MAX_AGENT_ALIAS_LENGTH)
|
|
149
|
+
return false;
|
|
150
|
+
// eslint-disable-next-line no-control-regex
|
|
151
|
+
return !/[\u0000-\u001f\u007f]/.test(value);
|
|
152
|
+
}
|
|
153
|
+
/**
|
|
154
|
+
* The sentence appended to every command's `--instance` help (Issue #2376).
|
|
155
|
+
*
|
|
156
|
+
* Kept beside the validator that accepts the form, not in
|
|
157
|
+
* `config/agent-target-options.ts`, so the help and the check cannot drift: the
|
|
158
|
+
* day the alias stage is removed, both go together.
|
|
159
|
+
*/
|
|
160
|
+
exports.INSTANCE_ALIAS_HELP_SUFFIX = 'Also accepts a roster alias as shown by `commandmate instances <worktree-id>` '
|
|
161
|
+
+ '(e.g. --instance "Codex 2"); an alias two rows answer to is exit 2 with the candidates listed.';
|
|
162
|
+
/** The sentence `--instance` is rejected with. One place, five commands. */
|
|
163
|
+
exports.INSTANCE_SELECTOR_ERROR = 'Error: Invalid --instance. Give an instance id (alphanumeric/underscore/hyphen, max 64 chars) '
|
|
164
|
+
+ `or a roster alias (max ${agent_instances_1.MAX_AGENT_ALIAS_LENGTH} chars).`;
|
|
165
|
+
/**
|
|
166
|
+
* Resolve `--instance` — id or alias — to the agent and instance id to address.
|
|
167
|
+
*
|
|
168
|
+
* The one resolution path, as Issue #1925 established: the server answers,
|
|
169
|
+
* `resolveSessionTarget` asks, and this adds only what a CLI caller has to do
|
|
170
|
+
* with the two answers it can get back that a browser does not care about — a
|
|
171
|
+
* roster contradiction ({@link InstanceConflictMode}) and, since Issue #2376, an
|
|
172
|
+
* alias that names more than one row.
|
|
173
|
+
*
|
|
174
|
+
* The ambiguity is exit 2 with every candidate printed, never a pick: two rows
|
|
175
|
+
* called `Codex` are two different tmux sessions, and choosing one for the
|
|
176
|
+
* operator is how a message reaches the wrong agent silently.
|
|
177
|
+
*
|
|
178
|
+
* @param client - API client aimed at the server
|
|
179
|
+
* @param worktreeId - Worktree ID
|
|
180
|
+
* @param selector - The `--instance` value (an instance id or a roster alias),
|
|
181
|
+
* or undefined for a caller that resolves only to learn the agent
|
|
182
|
+
* @param requestedAgent - The `--agent` value, if the user gave one
|
|
183
|
+
* @param mode - What a roster contradiction means for this caller
|
|
184
|
+
*/
|
|
185
|
+
async function resolveInstanceTarget(client, worktreeId, selector, requestedAgent, mode = 'strict') {
|
|
186
|
+
let target;
|
|
187
|
+
try {
|
|
188
|
+
target = await (0, session_target_1.resolveSessionTarget)(client, worktreeId, {
|
|
189
|
+
instanceId: selector,
|
|
190
|
+
requestedCliTool: requestedAgent,
|
|
191
|
+
});
|
|
192
|
+
}
|
|
193
|
+
catch (error) {
|
|
194
|
+
if (error instanceof api_client_1.ApiError && error.apiCode === AMBIGUOUS_INSTANCE_ALIAS_CODE) {
|
|
195
|
+
console.error(`Error: ${error.payload?.error ?? `--instance '${selector}' is ambiguous.`}`);
|
|
196
|
+
for (const candidate of error.payload?.issues ?? []) {
|
|
197
|
+
console.error(` - ${candidate}`);
|
|
198
|
+
}
|
|
199
|
+
process.exit(types_1.ExitCode.CONFIG_ERROR);
|
|
200
|
+
}
|
|
201
|
+
throw error;
|
|
202
|
+
}
|
|
110
203
|
if (target.conflict) {
|
|
111
204
|
const detail = (0, session_target_1.describeSessionTargetConflict)(target.conflict);
|
|
112
205
|
if (mode === 'strict') {
|
|
113
206
|
console.error(`Error: ${detail}`);
|
|
114
207
|
process.exit(types_1.ExitCode.CONFIG_ERROR);
|
|
115
|
-
return requestedAgent;
|
|
116
208
|
}
|
|
117
|
-
|
|
209
|
+
else {
|
|
210
|
+
console.error(`Warning: ${detail} Reading ${target.conflict.rosterCliTool}.`);
|
|
211
|
+
}
|
|
118
212
|
}
|
|
119
|
-
return
|
|
213
|
+
return {
|
|
214
|
+
cliToolId: target.cliToolId,
|
|
215
|
+
// The server always echoes the effective instance; the fallback covers the
|
|
216
|
+
// `client-fallback` path against a daemon older than the endpoint, where the
|
|
217
|
+
// value the user typed is the only one there is.
|
|
218
|
+
instanceId: selector === undefined ? undefined : (target.instanceId ?? selector),
|
|
219
|
+
};
|
|
120
220
|
}
|
|
121
221
|
/**
|
|
122
222
|
* The opencode session each instance will resume, keyed by instance id
|
|
@@ -147,8 +247,7 @@ async function fetchOpencodeSessions(client, worktreeId, instances) {
|
|
|
147
247
|
* Probes GET .../current-output?cliTool=&instance= per instance (same
|
|
148
248
|
* endpoint capture.ts uses) since the roster itself carries no session state.
|
|
149
249
|
*/
|
|
150
|
-
async function listInstances(worktreeId, options) {
|
|
151
|
-
const client = new api_client_1.ApiClient({ token: options.token });
|
|
250
|
+
async function listInstances(client, worktreeId, options) {
|
|
152
251
|
const instances = await (0, agent_instances_1.fetchAgentInstances)(client, worktreeId);
|
|
153
252
|
// Issue #2038: one extra request for the whole worktree, and only when there
|
|
154
253
|
// is an opencode instance to ask about — the endpoint is opencode-only and a
|
|
@@ -190,7 +289,7 @@ async function listInstances(worktreeId, options) {
|
|
|
190
289
|
/**
|
|
191
290
|
* Add action: append a new instance to the roster (PATCH full replacement).
|
|
192
291
|
*/
|
|
193
|
-
async function addInstance(worktreeId, options) {
|
|
292
|
+
async function addInstance(client, worktreeId, options) {
|
|
194
293
|
if (!options.agent) {
|
|
195
294
|
console.error('Error: add requires --agent <tool>.');
|
|
196
295
|
process.exit(types_1.ExitCode.CONFIG_ERROR);
|
|
@@ -207,7 +306,6 @@ async function addInstance(worktreeId, options) {
|
|
|
207
306
|
console.error(`Error: --alias exceeds ${agent_instances_1.MAX_AGENT_ALIAS_LENGTH} characters.`);
|
|
208
307
|
process.exit(types_1.ExitCode.CONFIG_ERROR);
|
|
209
308
|
}
|
|
210
|
-
const client = new api_client_1.ApiClient({ token: options.token });
|
|
211
309
|
const existing = await (0, agent_instances_1.fetchAgentInstances)(client, worktreeId);
|
|
212
310
|
if (existing.length >= agent_instances_1.MAX_AGENT_INSTANCES) {
|
|
213
311
|
console.error(`Error: worktree already has the maximum of ${agent_instances_1.MAX_AGENT_INSTANCES} agent instances.`);
|
|
@@ -236,12 +334,11 @@ async function addInstance(worktreeId, options) {
|
|
|
236
334
|
* Remove action: drop an instance from the roster. Kills the session first
|
|
237
335
|
* (when --kill) so the server can still resolve its CLI tool from the roster.
|
|
238
336
|
*/
|
|
239
|
-
async function removeInstance(worktreeId, instanceId, options) {
|
|
337
|
+
async function removeInstance(client, worktreeId, instanceId, options) {
|
|
240
338
|
if (!(0, api_client_1.isValidInstanceId)(instanceId)) {
|
|
241
339
|
console.error('Error: Invalid instance id. Must be an alphanumeric/underscore/hyphen identifier (max 64 chars).');
|
|
242
340
|
process.exit(types_1.ExitCode.CONFIG_ERROR);
|
|
243
341
|
}
|
|
244
|
-
const client = new api_client_1.ApiClient({ token: options.token });
|
|
245
342
|
const existing = await (0, agent_instances_1.fetchAgentInstances)(client, worktreeId);
|
|
246
343
|
if (!existing.some(inst => inst.id === instanceId)) {
|
|
247
344
|
console.error(`Error: instance '${instanceId}' not found in roster.`);
|
|
@@ -267,7 +364,7 @@ async function removeInstance(worktreeId, instanceId, options) {
|
|
|
267
364
|
/**
|
|
268
365
|
* Alias action: rename an existing instance's display label.
|
|
269
366
|
*/
|
|
270
|
-
async function renameInstance(worktreeId, instanceId, alias
|
|
367
|
+
async function renameInstance(client, worktreeId, instanceId, alias) {
|
|
271
368
|
if (!(0, api_client_1.isValidInstanceId)(instanceId)) {
|
|
272
369
|
console.error('Error: Invalid instance id. Must be an alphanumeric/underscore/hyphen identifier (max 64 chars).');
|
|
273
370
|
process.exit(types_1.ExitCode.CONFIG_ERROR);
|
|
@@ -276,7 +373,6 @@ async function renameInstance(worktreeId, instanceId, alias, options) {
|
|
|
276
373
|
console.error(`Error: alias must be 1-${agent_instances_1.MAX_AGENT_ALIAS_LENGTH} characters.`);
|
|
277
374
|
process.exit(types_1.ExitCode.CONFIG_ERROR);
|
|
278
375
|
}
|
|
279
|
-
const client = new api_client_1.ApiClient({ token: options.token });
|
|
280
376
|
const existing = await (0, agent_instances_1.fetchAgentInstances)(client, worktreeId);
|
|
281
377
|
const index = existing.findIndex(inst => inst.id === instanceId);
|
|
282
378
|
if (index === -1) {
|
|
@@ -292,15 +388,33 @@ async function renameInstance(worktreeId, instanceId, alias, options) {
|
|
|
292
388
|
* The server resolves the backing CLI tool from the roster via the `instance`
|
|
293
389
|
* query param (kill-session/route.ts), so no extra lookup is needed here.
|
|
294
390
|
*/
|
|
295
|
-
async function killInstance(worktreeId, instanceId
|
|
391
|
+
async function killInstance(client, worktreeId, instanceId) {
|
|
296
392
|
if (!(0, api_client_1.isValidInstanceId)(instanceId)) {
|
|
297
393
|
console.error('Error: Invalid instance id. Must be an alphanumeric/underscore/hyphen identifier (max 64 chars).');
|
|
298
394
|
process.exit(types_1.ExitCode.CONFIG_ERROR);
|
|
299
395
|
}
|
|
300
|
-
const client = new api_client_1.ApiClient({ token: options.token });
|
|
301
396
|
await client.post(`/api/worktrees/${worktreeId}/kill-session?instance=${encodeURIComponent(instanceId)}`);
|
|
302
397
|
console.error(`Session killed: ${instanceId}`);
|
|
303
398
|
}
|
|
399
|
+
/**
|
|
400
|
+
* Print the "you are on another server" hint when that is what a 404 means
|
|
401
|
+
* (Issue #2404).
|
|
402
|
+
*
|
|
403
|
+
* Runs only on a failure path, so the extra `tmux display-message` +
|
|
404
|
+
* `GET /api/worktrees` it costs buys the difference between a correct diagnosis
|
|
405
|
+
* and a wrong one. Never throws: {@link describeServerMismatch} swallows its own
|
|
406
|
+
* failures, and a diagnosis must not replace the error being diagnosed.
|
|
407
|
+
*
|
|
408
|
+
* @param client - The client whose request failed
|
|
409
|
+
* @param error - The caught error, diagnosed only when it is a 404
|
|
410
|
+
*/
|
|
411
|
+
async function warnIfDifferentServer(client, error) {
|
|
412
|
+
if (!(error instanceof api_client_1.ApiError) || error.statusCode !== 404)
|
|
413
|
+
return;
|
|
414
|
+
const mismatch = await (0, whoami_1.describeServerMismatch)(client);
|
|
415
|
+
if (mismatch)
|
|
416
|
+
console.error((0, whoami_1.formatServerMismatchHint)(mismatch));
|
|
417
|
+
}
|
|
304
418
|
function createInstancesCommand() {
|
|
305
419
|
const cmd = new commander_1.Command('instances');
|
|
306
420
|
cmd
|
|
@@ -315,6 +429,10 @@ function createInstancesCommand() {
|
|
|
315
429
|
.option('--kill', 'Also kill the running session when removing an instance')
|
|
316
430
|
.option('--token <token>', command_helpers_1.TOKEN_WARNING)
|
|
317
431
|
.action(async (worktreeId, action, rest, options) => {
|
|
432
|
+
// One client for the whole invocation (Issue #2404): every action built
|
|
433
|
+
// its own identical one, and the failure path below has to report the URL
|
|
434
|
+
// the request actually went to — a second construction is a second answer.
|
|
435
|
+
const client = new api_client_1.ApiClient({ token: options.token });
|
|
318
436
|
try {
|
|
319
437
|
if (!(0, api_client_1.isValidWorktreeId)(worktreeId)) {
|
|
320
438
|
console.error('Error: Invalid worktree ID format.');
|
|
@@ -322,10 +440,10 @@ function createInstancesCommand() {
|
|
|
322
440
|
}
|
|
323
441
|
switch (action ?? 'list') {
|
|
324
442
|
case 'list':
|
|
325
|
-
await listInstances(worktreeId, options);
|
|
443
|
+
await listInstances(client, worktreeId, options);
|
|
326
444
|
break;
|
|
327
445
|
case 'add':
|
|
328
|
-
await addInstance(worktreeId, options);
|
|
446
|
+
await addInstance(client, worktreeId, options);
|
|
329
447
|
break;
|
|
330
448
|
case 'remove': {
|
|
331
449
|
const [instanceId] = rest;
|
|
@@ -333,7 +451,7 @@ function createInstancesCommand() {
|
|
|
333
451
|
console.error('Error: remove requires an <instance-id> argument.');
|
|
334
452
|
process.exit(types_1.ExitCode.CONFIG_ERROR);
|
|
335
453
|
}
|
|
336
|
-
await removeInstance(worktreeId, instanceId, options);
|
|
454
|
+
await removeInstance(client, worktreeId, instanceId, options);
|
|
337
455
|
break;
|
|
338
456
|
}
|
|
339
457
|
case 'alias': {
|
|
@@ -343,7 +461,7 @@ function createInstancesCommand() {
|
|
|
343
461
|
console.error('Error: alias requires <instance-id> and <new-alias> arguments.');
|
|
344
462
|
process.exit(types_1.ExitCode.CONFIG_ERROR);
|
|
345
463
|
}
|
|
346
|
-
await renameInstance(worktreeId, instanceId, alias
|
|
464
|
+
await renameInstance(client, worktreeId, instanceId, alias);
|
|
347
465
|
break;
|
|
348
466
|
}
|
|
349
467
|
case 'kill': {
|
|
@@ -352,7 +470,7 @@ function createInstancesCommand() {
|
|
|
352
470
|
console.error('Error: kill requires an <instance-id> argument.');
|
|
353
471
|
process.exit(types_1.ExitCode.CONFIG_ERROR);
|
|
354
472
|
}
|
|
355
|
-
await killInstance(worktreeId, instanceId
|
|
473
|
+
await killInstance(client, worktreeId, instanceId);
|
|
356
474
|
break;
|
|
357
475
|
}
|
|
358
476
|
default:
|
|
@@ -361,6 +479,13 @@ function createInstancesCommand() {
|
|
|
361
479
|
}
|
|
362
480
|
}
|
|
363
481
|
catch (error) {
|
|
482
|
+
// Issue #2404: a 404 here says "no such worktree ON THIS SERVER", and
|
|
483
|
+
// `Resource not found. Check the worktree ID.` reads as "you typed it
|
|
484
|
+
// wrong". When the caller's own session belongs to a worktree this
|
|
485
|
+
// server does not list, the id was never the problem — say so before
|
|
486
|
+
// handleCommandError() exits, so nobody re-checks a correct id and then
|
|
487
|
+
// delegates to whatever this server does have.
|
|
488
|
+
await warnIfDifferentServer(client, error);
|
|
364
489
|
(0, command_helpers_1.handleCommandError)(error);
|
|
365
490
|
}
|
|
366
491
|
});
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* peers Command - the other agent sessions this one can talk to (Issue #2376)
|
|
3
|
+
*
|
|
4
|
+
* commandmate peers [--json]
|
|
5
|
+
*
|
|
6
|
+
* ## Why `ls` + `instances` was not enough
|
|
7
|
+
*
|
|
8
|
+
* The two ids `ask` needs live in two different commands and neither one knows
|
|
9
|
+
* the caller. `ls` lists every worktree on the machine — including the dozen
|
|
10
|
+
* belonging to repositories this session has nothing to do with — and
|
|
11
|
+
* `instances` needs a worktree id per call. So working out "who can I ask?" was
|
|
12
|
+
* a fan-out plus a filter the agent had to invent, and inventing it is what
|
|
13
|
+
* produced the wrong `--instance` values this Issue exists to stop.
|
|
14
|
+
*
|
|
15
|
+
* This is that fan-out, done once, narrowed to the caller's own repository, with
|
|
16
|
+
* the caller's own row marked `(you)` and a ready-to-run `ask` line against
|
|
17
|
+
* every other row. The listing is the answer AND the example: the acceptance
|
|
18
|
+
* criterion for this command is that a line pasted out of it works.
|
|
19
|
+
*
|
|
20
|
+
* Scoped to the repository rather than to everything because that is the unit a
|
|
21
|
+
* delegation is about — sibling worktrees of one project, which is what
|
|
22
|
+
* `/worktree-setup` produces — and because a global listing is what `ls`
|
|
23
|
+
* already is.
|
|
24
|
+
*/
|
|
25
|
+
import { Command } from 'commander';
|
|
26
|
+
import type { WorktreeItem } from '../types/api-responses';
|
|
27
|
+
import { type SessionIdentity } from './whoami';
|
|
28
|
+
/**
|
|
29
|
+
* The repository fields the list API sends and `WorktreeItem` does not declare.
|
|
30
|
+
*
|
|
31
|
+
* `src/cli/types/api-responses.ts` declares only the fields the CLI reads ("Only
|
|
32
|
+
* the fields the CLI reads are declared"), and until this command nothing read
|
|
33
|
+
* these two. Mirrored locally rather than widened there so the shared type keeps
|
|
34
|
+
* meaning what its header says it means; both are optional because a row written
|
|
35
|
+
* before the field existed, or by a non-sync path, carries neither.
|
|
36
|
+
*/
|
|
37
|
+
interface PeerWorktreeItem extends WorktreeItem {
|
|
38
|
+
repositoryPath?: string;
|
|
39
|
+
repositoryName?: string;
|
|
40
|
+
}
|
|
41
|
+
/** One session in the listing. */
|
|
42
|
+
interface PeerRow {
|
|
43
|
+
worktreeId: string;
|
|
44
|
+
instanceId: string;
|
|
45
|
+
cliTool: string;
|
|
46
|
+
alias: string;
|
|
47
|
+
/** The worktree's aggregate STATUS word, as `commandmate ls` prints it. */
|
|
48
|
+
status: string;
|
|
49
|
+
/** True for the session running this command. */
|
|
50
|
+
isSelf: boolean;
|
|
51
|
+
/** The line to paste, or null for the caller's own row. */
|
|
52
|
+
ask: string | null;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Build the listing.
|
|
56
|
+
*
|
|
57
|
+
* @param worktrees - Every worktree the server knows
|
|
58
|
+
* @param identity - Who is asking
|
|
59
|
+
* @param binary - The command name to spell the examples with
|
|
60
|
+
*/
|
|
61
|
+
export declare function buildPeerRows(worktrees: PeerWorktreeItem[], identity: SessionIdentity, binary: string): PeerRow[];
|
|
62
|
+
export declare function createPeersCommand(): Command;
|
|
63
|
+
export {};
|
|
64
|
+
//# sourceMappingURL=peers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"peers.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/peers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,EAAiB,YAAY,EAAwB,MAAM,wBAAwB,CAAC;AAIhG,OAAO,EAML,KAAK,eAAe,EACrB,MAAM,UAAU,CAAC;AAElB;;;;;;;;GAQG;AACH,UAAU,gBAAiB,SAAQ,YAAY;IAC7C,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,kCAAkC;AAClC,UAAU,OAAO;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,2EAA2E;IAC3E,MAAM,EAAE,MAAM,CAAC;IACf,iDAAiD;IACjD,MAAM,EAAE,OAAO,CAAC;IAChB,2DAA2D;IAC3D,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;CACpB;AAuED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAC3B,SAAS,EAAE,gBAAgB,EAAE,EAC7B,QAAQ,EAAE,eAAe,EACzB,MAAM,EAAE,MAAM,GACb,OAAO,EAAE,CAuBX;AAoBD,wBAAgB,kBAAkB,IAAI,OAAO,CAkE5C"}
|
|
@@ -0,0 +1,208 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* peers Command - the other agent sessions this one can talk to (Issue #2376)
|
|
4
|
+
*
|
|
5
|
+
* commandmate peers [--json]
|
|
6
|
+
*
|
|
7
|
+
* ## Why `ls` + `instances` was not enough
|
|
8
|
+
*
|
|
9
|
+
* The two ids `ask` needs live in two different commands and neither one knows
|
|
10
|
+
* the caller. `ls` lists every worktree on the machine — including the dozen
|
|
11
|
+
* belonging to repositories this session has nothing to do with — and
|
|
12
|
+
* `instances` needs a worktree id per call. So working out "who can I ask?" was
|
|
13
|
+
* a fan-out plus a filter the agent had to invent, and inventing it is what
|
|
14
|
+
* produced the wrong `--instance` values this Issue exists to stop.
|
|
15
|
+
*
|
|
16
|
+
* This is that fan-out, done once, narrowed to the caller's own repository, with
|
|
17
|
+
* the caller's own row marked `(you)` and a ready-to-run `ask` line against
|
|
18
|
+
* every other row. The listing is the answer AND the example: the acceptance
|
|
19
|
+
* criterion for this command is that a line pasted out of it works.
|
|
20
|
+
*
|
|
21
|
+
* Scoped to the repository rather than to everything because that is the unit a
|
|
22
|
+
* delegation is about — sibling worktrees of one project, which is what
|
|
23
|
+
* `/worktree-setup` produces — and because a global listing is what `ls`
|
|
24
|
+
* already is.
|
|
25
|
+
*/
|
|
26
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
27
|
+
exports.buildPeerRows = buildPeerRows;
|
|
28
|
+
exports.createPeersCommand = createPeersCommand;
|
|
29
|
+
const commander_1 = require("commander");
|
|
30
|
+
const api_client_1 = require("../utils/api-client");
|
|
31
|
+
const command_helpers_1 = require("../utils/command-helpers");
|
|
32
|
+
const command_reference_1 = require("../../lib/cli/command-reference");
|
|
33
|
+
const whoami_1 = require("./whoami");
|
|
34
|
+
/**
|
|
35
|
+
* The four-word status vocabulary, derived exactly as `ls` derives it.
|
|
36
|
+
*
|
|
37
|
+
* Duplicated from `ls.ts` rather than shared: this is three lines of precedence
|
|
38
|
+
* over three booleans, and the alternative — exporting `deriveStatus` from a
|
|
39
|
+
* command module so another command module can import it — couples two
|
|
40
|
+
* commands to save nothing. The vocabulary itself is pinned by `ls`'s own tests.
|
|
41
|
+
*/
|
|
42
|
+
function deriveStatus(wt) {
|
|
43
|
+
if (wt.isWaitingForResponse)
|
|
44
|
+
return 'waiting';
|
|
45
|
+
if (wt.isProcessing)
|
|
46
|
+
return 'running';
|
|
47
|
+
if (wt.isSessionRunning)
|
|
48
|
+
return 'ready';
|
|
49
|
+
return 'idle';
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Whether `wt` belongs to the same repository as `self`.
|
|
53
|
+
*
|
|
54
|
+
* `repositoryPath` is the identity — two checkouts of the same upstream have the
|
|
55
|
+
* same `repositoryName` and are not the same repository — and the name is the
|
|
56
|
+
* fallback for a row that predates the field. A row with neither is excluded
|
|
57
|
+
* rather than assumed: a listing that quietly widened to the whole machine
|
|
58
|
+
* would put a `--instance` for somebody else's project in front of an agent.
|
|
59
|
+
*
|
|
60
|
+
* @param wt - Candidate worktree
|
|
61
|
+
* @param self - The caller's own worktree row
|
|
62
|
+
*/
|
|
63
|
+
function sameRepository(wt, self) {
|
|
64
|
+
if (self.repositoryPath && wt.repositoryPath) {
|
|
65
|
+
return wt.repositoryPath === self.repositoryPath;
|
|
66
|
+
}
|
|
67
|
+
if (self.repositoryName && wt.repositoryName) {
|
|
68
|
+
return wt.repositoryName === self.repositoryName;
|
|
69
|
+
}
|
|
70
|
+
// Neither side declares one: the caller's own worktree is still a peer group
|
|
71
|
+
// of one, and nothing else can be shown to belong to it.
|
|
72
|
+
return wt.id === self.id;
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* The roster of a worktree as the list API sent it.
|
|
76
|
+
*
|
|
77
|
+
* A worktree with no roster still has its primary instance — that is what
|
|
78
|
+
* `--instance` resolves to with no roster row at all (#868) — so an empty
|
|
79
|
+
* roster is reported as the worktree's own CLI tool rather than as no sessions.
|
|
80
|
+
*
|
|
81
|
+
* A worktree that declares no CLI tool either contributes NO rows, rather than
|
|
82
|
+
* a row for the agent it is statistically most likely to be running. An `ask`
|
|
83
|
+
* line naming the wrong tool is a message typed into a session that was never
|
|
84
|
+
* started, and the whole point of this listing is that its lines run.
|
|
85
|
+
*/
|
|
86
|
+
function rosterOf(wt) {
|
|
87
|
+
if (wt.agentInstances && wt.agentInstances.length > 0)
|
|
88
|
+
return wt.agentInstances;
|
|
89
|
+
if (!wt.cliToolId)
|
|
90
|
+
return [];
|
|
91
|
+
return [{ id: wt.cliToolId, cliTool: wt.cliToolId, alias: wt.cliToolId, order: 0 }];
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Quote an argument for the `ask` example when it needs it.
|
|
95
|
+
*
|
|
96
|
+
* Instance ids never do (`isValidInstanceId` allows no shell metacharacter) but
|
|
97
|
+
* this command prints ids, not aliases, precisely so the line is paste-safe.
|
|
98
|
+
* The guard is here so a future id shape cannot silently produce a line that
|
|
99
|
+
* means something else in a shell.
|
|
100
|
+
*/
|
|
101
|
+
function shellArg(value) {
|
|
102
|
+
return /^[A-Za-z0-9_.:@+-]+$/.test(value) ? value : JSON.stringify(value);
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* Build the listing.
|
|
106
|
+
*
|
|
107
|
+
* @param worktrees - Every worktree the server knows
|
|
108
|
+
* @param identity - Who is asking
|
|
109
|
+
* @param binary - The command name to spell the examples with
|
|
110
|
+
*/
|
|
111
|
+
function buildPeerRows(worktrees, identity, binary) {
|
|
112
|
+
const self = worktrees.find((wt) => wt.id === identity.worktreeId);
|
|
113
|
+
const scoped = self ? worktrees.filter((wt) => sameRepository(wt, self)) : [];
|
|
114
|
+
const rows = [];
|
|
115
|
+
for (const wt of scoped) {
|
|
116
|
+
const status = deriveStatus(wt);
|
|
117
|
+
for (const inst of rosterOf(wt)) {
|
|
118
|
+
const isSelf = wt.id === identity.worktreeId && inst.id === identity.instanceId;
|
|
119
|
+
rows.push({
|
|
120
|
+
worktreeId: wt.id,
|
|
121
|
+
instanceId: inst.id,
|
|
122
|
+
cliTool: inst.cliTool,
|
|
123
|
+
alias: inst.alias,
|
|
124
|
+
status,
|
|
125
|
+
isSelf,
|
|
126
|
+
ask: isSelf
|
|
127
|
+
? null
|
|
128
|
+
: `${binary} ask ${shellArg(wt.id)} --instance ${shellArg(inst.id)} "<request>"`,
|
|
129
|
+
});
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
return rows;
|
|
133
|
+
}
|
|
134
|
+
/** Render the listing for a terminal. */
|
|
135
|
+
function formatPeers(rows) {
|
|
136
|
+
if (rows.length === 0)
|
|
137
|
+
return 'No peer sessions found.';
|
|
138
|
+
return rows
|
|
139
|
+
.map((row) => {
|
|
140
|
+
const head = `${row.worktreeId} / ${row.instanceId}`;
|
|
141
|
+
const marker = row.isSelf ? ' (you)' : '';
|
|
142
|
+
const lines = [
|
|
143
|
+
`${head}${marker}`,
|
|
144
|
+
` alias: ${row.alias} tool: ${row.cliTool} status: ${row.status}`,
|
|
145
|
+
];
|
|
146
|
+
if (row.ask)
|
|
147
|
+
lines.push(` ${row.ask}`);
|
|
148
|
+
return lines.join('\n');
|
|
149
|
+
})
|
|
150
|
+
.join('\n');
|
|
151
|
+
}
|
|
152
|
+
function createPeersCommand() {
|
|
153
|
+
const cmd = new commander_1.Command('peers');
|
|
154
|
+
cmd
|
|
155
|
+
.description('List the other agent sessions in this repository, with a ready-to-run `ask` line each')
|
|
156
|
+
.option('--json', 'JSON output')
|
|
157
|
+
.option('--token <token>', command_helpers_1.TOKEN_WARNING)
|
|
158
|
+
.action(async (options) => {
|
|
159
|
+
try {
|
|
160
|
+
const client = new api_client_1.ApiClient({ token: options.token });
|
|
161
|
+
const identity = await (0, whoami_1.resolveSessionIdentity)(client);
|
|
162
|
+
if (!identity) {
|
|
163
|
+
console.error(whoami_1.NOT_IN_SESSION_MESSAGE);
|
|
164
|
+
process.exit(whoami_1.NOT_IN_SESSION);
|
|
165
|
+
return;
|
|
166
|
+
}
|
|
167
|
+
const response = await client.get('/api/worktrees');
|
|
168
|
+
const worktrees = (response.worktrees ?? []);
|
|
169
|
+
// The same rule the GUI's panel and brief use (Issue #2120), from the
|
|
170
|
+
// same function: `CM_LAUNCHED_BY` is stamped by `commandmate start` on
|
|
171
|
+
// the server it spawns, and an agent pane inherits it — so a session
|
|
172
|
+
// started by the installed CLI is told `commandmate` and one started
|
|
173
|
+
// from a checkout is told `commandmatedev`, which is the name that
|
|
174
|
+
// actually exists on that PATH. A literal here would be a second
|
|
175
|
+
// authority on the one string the caller pastes into a shell.
|
|
176
|
+
const binary = (0, command_reference_1.resolveCommandMateBinary)();
|
|
177
|
+
const rows = buildPeerRows(worktrees, identity, binary);
|
|
178
|
+
// Issue #2404: the listing above is empty precisely when the caller's own
|
|
179
|
+
// worktree is absent from `worktrees` — which is what "you are on another
|
|
180
|
+
// server" looks like from here, and which `No peer sessions found.` reads
|
|
181
|
+
// as "you have no siblings". The list is already in hand, so the check is
|
|
182
|
+
// free and applies whichever source named the worktree.
|
|
183
|
+
const mismatch = (0, whoami_1.detectServerMismatch)(identity, new Set(worktrees.map((wt) => wt.id)), client.serverUrl);
|
|
184
|
+
if (mismatch)
|
|
185
|
+
console.error((0, whoami_1.formatServerMismatchWarning)(mismatch));
|
|
186
|
+
if (options.json) {
|
|
187
|
+
console.log(JSON.stringify({
|
|
188
|
+
// `self` is unchanged: it answers "who is asking", and the server is
|
|
189
|
+
// not part of that. The connection target is its own top-level field.
|
|
190
|
+
self: {
|
|
191
|
+
worktreeId: identity.worktreeId,
|
|
192
|
+
instanceId: identity.instanceId,
|
|
193
|
+
cliToolId: identity.cliToolId,
|
|
194
|
+
},
|
|
195
|
+
serverUrl: client.serverUrl,
|
|
196
|
+
...(mismatch ? { serverMismatch: true } : {}),
|
|
197
|
+
peers: rows,
|
|
198
|
+
}, null, 2));
|
|
199
|
+
return;
|
|
200
|
+
}
|
|
201
|
+
console.log(formatPeers(rows));
|
|
202
|
+
}
|
|
203
|
+
catch (error) {
|
|
204
|
+
(0, command_helpers_1.handleCommandError)(error);
|
|
205
|
+
}
|
|
206
|
+
});
|
|
207
|
+
return cmd;
|
|
208
|
+
}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* relays Command - the standing delegations this machine is holding (#2377)
|
|
3
|
+
*
|
|
4
|
+
* commandmate relays [--worktree <id>] [--instance <id|alias>] [--json]
|
|
5
|
+
* commandmate relays cancel <relay-id>
|
|
6
|
+
*
|
|
7
|
+
* ## Why a command and not a flag on `ls`
|
|
8
|
+
*
|
|
9
|
+
* A relay is the one piece of state in CommandMate that belongs to TWO sessions
|
|
10
|
+
* at once: session A is owed an answer, session B owes one, and neither
|
|
11
|
+
* worktree's own listing can show that without inventing a column for the other
|
|
12
|
+
* side. So the listing is its own thing, and it prints the pair — `from` and
|
|
13
|
+
* `to`, `→` between them — rather than a status word per row.
|
|
14
|
+
*
|
|
15
|
+
* With no `--worktree` it asks the session it is running inside (`whoami`'s
|
|
16
|
+
* resolution) and prints that session's two sides. That is the shape an agent
|
|
17
|
+
* uses: "what am I waiting for, and what do I owe?" is a question about the
|
|
18
|
+
* caller, and making the caller name itself is what #2376 exists to stop.
|
|
19
|
+
*
|
|
20
|
+
* ## What this module exports besides the command
|
|
21
|
+
*
|
|
22
|
+
* The `--reply-to` plumbing, because `send` and `ask` both take that flag and
|
|
23
|
+
* both have to turn one string into the two ids the ledger stores. Keeping
|
|
24
|
+
* {@link resolveRelayEndpoint} here rather than in `send.ts` is what stops the
|
|
25
|
+
* two commands from resolving `self` two different ways.
|
|
26
|
+
*/
|
|
27
|
+
import { Command } from 'commander';
|
|
28
|
+
import { ApiClient } from '../utils/api-client';
|
|
29
|
+
/**
|
|
30
|
+
* The codes `POST /api/relays` refuses with.
|
|
31
|
+
*
|
|
32
|
+
* Mirrors `RelayRefusalCode` in `lib/relay/relay-policy` plus the route's own
|
|
33
|
+
* not-found; duplicated rather than imported so the CLI bundle does not pull the
|
|
34
|
+
* server's database graph in for four strings.
|
|
35
|
+
*/
|
|
36
|
+
export declare const RELAY_REFUSAL_CODES: Set<string>;
|
|
37
|
+
/** One end of a relay, as the API wants it. */
|
|
38
|
+
export interface RelayEndpointArg {
|
|
39
|
+
worktreeId: string;
|
|
40
|
+
instanceId: string;
|
|
41
|
+
}
|
|
42
|
+
/** The text `--reply-to` is documented with, shared by `send` and `ask`. */
|
|
43
|
+
export declare const REPLY_TO_OPTION_DESCRIPTION: string;
|
|
44
|
+
/** The text `--allow-relay-chain` is documented with. */
|
|
45
|
+
export declare const ALLOW_RELAY_CHAIN_DESCRIPTION: string;
|
|
46
|
+
/**
|
|
47
|
+
* Turn one `--reply-to` value into the two ids the ledger stores.
|
|
48
|
+
*
|
|
49
|
+
* Exits 2 rather than throwing: every failure here is a bad option value or a
|
|
50
|
+
* shell that is not inside a CommandMate session, and both are things the
|
|
51
|
+
* operator fixes on the command line.
|
|
52
|
+
*
|
|
53
|
+
* @param client - API client
|
|
54
|
+
* @param spec - The raw `--reply-to` value
|
|
55
|
+
*/
|
|
56
|
+
export declare function resolveRelayEndpoint(client: ApiClient, spec: string): Promise<RelayEndpointArg>;
|
|
57
|
+
/**
|
|
58
|
+
* The resolved endpoint for a worktree, with or without a named instance.
|
|
59
|
+
*
|
|
60
|
+
* Also what `send` / `ask` use for the relay's OTHER end — the session being
|
|
61
|
+
* asked — because the ledger stores a resolved id at both ends and the send's
|
|
62
|
+
* own `--instance` may have been omitted (meaning "the primary one", which only
|
|
63
|
+
* the server can name).
|
|
64
|
+
*
|
|
65
|
+
* @param client - API client
|
|
66
|
+
* @param worktreeId - Worktree ID
|
|
67
|
+
* @param selector - An instance id or roster alias, or undefined
|
|
68
|
+
* @param requestedAgent - The `--agent` value, if the caller gave one
|
|
69
|
+
*/
|
|
70
|
+
export declare function resolveEndpointForWorktree(client: ApiClient, worktreeId: string, selector: string | undefined, requestedAgent?: string): Promise<RelayEndpointArg>;
|
|
71
|
+
/** What {@link registerRelay} needs. */
|
|
72
|
+
export interface RegisterRelayInput {
|
|
73
|
+
/** The session that will receive the reply. */
|
|
74
|
+
from: RelayEndpointArg;
|
|
75
|
+
/** The session being asked. */
|
|
76
|
+
to: RelayEndpointArg;
|
|
77
|
+
allowRelayChain?: boolean;
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Open a relay, printing the server's own refusal and exiting 2 on one.
|
|
81
|
+
*
|
|
82
|
+
* Exit 2 and not a bespoke code: every refusal is a decision the operator can
|
|
83
|
+
* change (drop the flag, cancel the other relay, stop forwarding), which is what
|
|
84
|
+
* `CONFIG_ERROR` means everywhere else in this CLI.
|
|
85
|
+
*
|
|
86
|
+
* @returns The relay id
|
|
87
|
+
*/
|
|
88
|
+
export declare function registerRelay(client: ApiClient, input: RegisterRelayInput): Promise<string>;
|
|
89
|
+
/** Withdraw a relay, best effort. Used when the send it accompanied failed. */
|
|
90
|
+
export declare function cancelRelayQuietly(client: ApiClient, relayId: string): Promise<void>;
|
|
91
|
+
export declare function createRelaysCommand(): Command;
|
|
92
|
+
//# sourceMappingURL=relays.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"relays.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/relays.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAQpC,OAAO,EAAE,SAAS,EAA+B,MAAM,qBAAqB,CAAC;AAgB7E;;;;;;GAMG;AACH,eAAO,MAAM,mBAAmB,aAM9B,CAAC;AAEH,+CAA+C;AAC/C,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,4EAA4E;AAC5E,eAAO,MAAM,2BAA2B,QAEiD,CAAC;AAE1F,yDAAyD;AACzD,eAAO,MAAM,6BAA6B,QAER,CAAC;AAEnC;;;;;;;;;GASG;AACH,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,SAAS,EACjB,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,gBAAgB,CAAC,CAyB3B;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,0BAA0B,CAC9C,MAAM,EAAE,SAAS,EACjB,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,cAAc,CAAC,EAAE,MAAM,GACtB,OAAO,CAAC,gBAAgB,CAAC,CA0B3B;AAED,wCAAwC;AACxC,MAAM,WAAW,kBAAkB;IACjC,+CAA+C;IAC/C,IAAI,EAAE,gBAAgB,CAAC;IACvB,+BAA+B;IAC/B,EAAE,EAAE,gBAAgB,CAAC;IACrB,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED;;;;;;;;GAQG;AACH,wBAAsB,aAAa,CACjC,MAAM,EAAE,SAAS,EACjB,KAAK,EAAE,kBAAkB,GACxB,OAAO,CAAC,MAAM,CAAC,CAejB;AAED,+EAA+E;AAC/E,wBAAsB,kBAAkB,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAM1F;AAyBD,wBAAgB,mBAAmB,IAAI,OAAO,CA8H7C"}
|