commandmate 0.18.0 → 0.20.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.next/BUILD_ID +1 -1
- package/.next/app-build-manifest.json +230 -223
- package/.next/app-path-routes-manifest.json +32 -32
- package/.next/build-manifest.json +2 -2
- package/.next/prerender-manifest.json +9 -9
- package/.next/required-server-files.json +1 -1
- package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/server/app/api/app/update/route.js +5 -3
- package/.next/server/app/api/app/update/route.js.nft.json +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 -1
- 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 +1 -1
- 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.js +1 -1
- package/.next/server/app/api/auth/login/route.js.nft.json +1 -1
- package/.next/server/app/api/auth/login/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/auth/logout/route.js +1 -1
- package/.next/server/app/api/auth/logout/route.js.nft.json +1 -1
- package/.next/server/app/api/auth/logout/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/auth/status/route.js +1 -1
- package/.next/server/app/api/auth/status/route.js.nft.json +1 -1
- package/.next/server/app/api/auth/status/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/daily-summary/route.js +1 -1
- package/.next/server/app/api/daily-summary/route.js.nft.json +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.js +1 -1
- package/.next/server/app/api/daily-summary/status/route.js.nft.json +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.js +1 -1
- package/.next/server/app/api/external-apps/[id]/health/route.js.nft.json +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.js +1 -1
- package/.next/server/app/api/external-apps/[id]/route.js.nft.json +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.js +1 -1
- package/.next/server/app/api/external-apps/route.js.nft.json +1 -1
- package/.next/server/app/api/external-apps/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/fs/browse/route.js +2 -2
- package/.next/server/app/api/fs/browse/route.js.nft.json +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.js +2 -2
- package/.next/server/app/api/fs/recent-paths/route.js.nft.json +1 -1
- package/.next/server/app/api/fs/recent-paths/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/hooks/agent-event/route.js +1 -1
- package/.next/server/app/api/hooks/agent-event/route.js.nft.json +1 -1
- package/.next/server/app/api/hooks/agent-event/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/hooks/claude-done/route.js +1 -1
- package/.next/server/app/api/hooks/claude-done/route.js.nft.json +1 -1
- package/.next/server/app/api/hooks/claude-done/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/metrics/vibe/route.js +2 -2
- package/.next/server/app/api/metrics/vibe/route.js.nft.json +1 -1
- package/.next/server/app/api/metrics/vibe/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/ollama/models/route.js +1 -1
- package/.next/server/app/api/ollama/models/route.js.nft.json +1 -1
- package/.next/server/app/api/ollama/models/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.js.nft.json +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.js.nft.json +1 -1
- package/.next/server/app/api/push/vapid/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/repositories/[id]/route.js +1 -1
- package/.next/server/app/api/repositories/[id]/route.js.nft.json +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.js.nft.json +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.js.nft.json +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.js +1 -1
- package/.next/server/app/api/repositories/excluded/route.js.nft.json +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.js +1 -1
- package/.next/server/app/api/repositories/validate-path/route.js.nft.json +1 -1
- package/.next/server/app/api/repositories/validate-path/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/sidebar/group-order/route.js +2 -2
- package/.next/server/app/api/sidebar/group-order/route.js.nft.json +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.js +2 -2
- package/.next/server/app/api/skills/operations/route.js.nft.json +1 -1
- package/.next/server/app/api/skills/operations/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/skills/reindex/route.js +1 -1
- package/.next/server/app/api/skills/reindex/route.js.nft.json +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 +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.js +2 -2
- package/.next/server/app/api/tasks/[taskId]/cancel/route.js.nft.json +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 +2 -2
- package/.next/server/app/api/tasks/[taskId]/route.js.nft.json +1 -1
- package/.next/server/app/api/tasks/[taskId]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/templates/[id]/route.js +2 -2
- package/.next/server/app/api/templates/[id]/route.js.nft.json +1 -1
- package/.next/server/app/api/templates/[id]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/templates/route.js +2 -2
- package/.next/server/app/api/templates/route.js.nft.json +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.js.nft.json +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.js.nft.json +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.js.nft.json +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]/cli-tool/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/cli-tool/route.js.nft.json +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 +2 -2
- package/.next/server/app/api/worktrees/[id]/cmate/schedules/route.js.nft.json +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]/execution-logs/[logId]/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/execution-logs/[logId]/route.js.nft.json +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 +2 -2
- package/.next/server/app/api/worktrees/[id]/execution-logs/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/execution-logs/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/files/[...path]/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/files/[...path]/route.js.nft.json +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.js.nft.json +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.js.nft.json +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.js.nft.json +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.js.nft.json +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.js.nft.json +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.js.nft.json +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.js.nft.json +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.js.nft.json +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.js.nft.json +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.js.nft.json +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.js.nft.json +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.js.nft.json +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.js.nft.json +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.js.nft.json +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.js.nft.json +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.js.nft.json +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.js.nft.json +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.js.nft.json +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.js.nft.json +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.js.nft.json +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.js.nft.json +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.js.nft.json +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.js.nft.json +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]/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.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/logs/[filename]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/logs/route.js +2 -2
- package/.next/server/app/api/worktrees/[id]/logs/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/logs/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/marp-render/route.js +6 -6
- package/.next/server/app/api/worktrees/[id]/marp-render/route.js.nft.json +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.js.nft.json +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.js.nft.json +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.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/messages/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]/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 +2 -2
- package/.next/server/app/api/worktrees/[id]/schedules/[scheduleId]/route.js.nft.json +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.js.nft.json +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 +3 -3
- package/.next/server/app/api/worktrees/[id]/schedules/route.js.nft.json +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.js +1 -1
- package/.next/server/app/api/worktrees/[id]/search/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/search/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/send/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/send/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/send/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/skills/[skillId]/git-workflow/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/skills/[skillId]/git-workflow/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/skills/[skillId]/git-workflow/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/skills/[skillId]/install/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/skills/[skillId]/install/route.js.nft.json +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.js +1 -1
- package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall/route.js.nft.json +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.js +1 -1
- package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall-plan/route.js.nft.json +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/route.js +2 -2
- package/.next/server/app/api/worktrees/[id]/skills/route.js.nft.json +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]/start-polling/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/start-polling/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/start-polling/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/tasks/route.js +4 -4
- package/.next/server/app/api/worktrees/[id]/tasks/route.js.nft.json +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.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/timers/history/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/timers/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/timers/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/timers/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/todos/[todoId]/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/todos/[todoId]/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/todos/[todoId]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/todos/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/todos/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/todos/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/tree/[...path]/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/tree/[...path]/route.js.nft.json +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.js +1 -1
- package/.next/server/app/api/worktrees/[id]/tree/route.js.nft.json +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.js +1 -1
- package/.next/server/app/api/worktrees/[id]/upload/[...path]/route.js.nft.json +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/route.js +2 -2
- package/.next/server/app/api/worktrees/[id]/verify/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/verify/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/verify/runs/[runId]/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/verify/runs/[runId]/route.js.nft.json +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.js.nft.json +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.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/viewed/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/apple-icon.png/route.js +1 -1
- package/.next/server/app/apple-icon.png/route.js.nft.json +1 -1
- package/.next/server/app/chat/page_client-reference-manifest.js +1 -1
- package/.next/server/app/icon.png/route.js +1 -1
- package/.next/server/app/icon.png/route.js.nft.json +1 -1
- package/.next/server/app/icon1.png/route.js +1 -1
- package/.next/server/app/icon1.png/route.js.nft.json +1 -1
- package/.next/server/app/icon2.png/route.js +1 -1
- package/.next/server/app/icon2.png/route.js.nft.json +1 -1
- package/.next/server/app/login/page_client-reference-manifest.js +1 -1
- package/.next/server/app/manifest.webmanifest/route.js +2 -2
- package/.next/server/app/manifest.webmanifest/route.js.nft.json +1 -1
- package/.next/server/app/manifest.webmanifest/route_client-reference-manifest.js +1 -1
- package/.next/server/app/more/page_client-reference-manifest.js +1 -1
- package/.next/server/app/offline/page_client-reference-manifest.js +1 -1
- package/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/server/app/proxy/[...path]/route.js +1 -1
- package/.next/server/app/proxy/[...path]/route.js.nft.json +1 -1
- package/.next/server/app/proxy/[...path]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/repositories/page.js +1 -1
- package/.next/server/app/repositories/page_client-reference-manifest.js +1 -1
- package/.next/server/app/review/page_client-reference-manifest.js +1 -1
- package/.next/server/app/sessions/page_client-reference-manifest.js +1 -1
- package/.next/server/app/skills/[skillId]/page_client-reference-manifest.js +1 -1
- package/.next/server/app/skills/installed/page_client-reference-manifest.js +1 -1
- package/.next/server/app/skills/page_client-reference-manifest.js +1 -1
- package/.next/server/app/worktrees/[id]/files/[...path]/page.js +2 -2
- package/.next/server/app/worktrees/[id]/files/[...path]/page.js.nft.json +1 -1
- package/.next/server/app/worktrees/[id]/files/[...path]/page_client-reference-manifest.js +1 -1
- package/.next/server/app/worktrees/[id]/page.js +8 -8
- package/.next/server/app/worktrees/[id]/page.js.nft.json +1 -1
- package/.next/server/app/worktrees/[id]/page_client-reference-manifest.js +1 -1
- package/.next/server/app/worktrees/[id]/terminal/page.js +3 -3
- package/.next/server/app/worktrees/[id]/terminal/page.js.nft.json +1 -1
- package/.next/server/app/worktrees/[id]/terminal/page_client-reference-manifest.js +1 -1
- package/.next/server/app-paths-manifest.json +32 -32
- package/.next/server/chunks/1029.js +1 -0
- package/.next/server/chunks/1068.js +1 -1
- package/.next/server/chunks/1598.js +4 -0
- package/.next/server/chunks/3042.js +1 -1
- package/.next/server/chunks/3417.js +1 -0
- package/.next/server/chunks/3451.js +1 -1
- package/.next/server/chunks/3543.js +1 -1
- package/.next/server/chunks/3753.js +23 -23
- package/.next/server/chunks/3945.js +1 -1
- package/.next/server/chunks/406.js +5 -5
- package/.next/server/chunks/{1185.js → 5048.js} +1 -1
- package/.next/server/chunks/5959.js +3 -3
- package/.next/server/chunks/{5381.js → 5998.js} +2 -2
- package/.next/server/chunks/6130.js +1 -1
- package/.next/server/chunks/6274.js +6 -5
- package/.next/server/chunks/6283.js +1 -1
- package/.next/server/chunks/6401.js +1 -0
- package/.next/server/chunks/641.js +1 -0
- package/.next/server/chunks/8536.js +1 -0
- package/.next/server/chunks/8543.js +1 -0
- package/.next/server/chunks/8807.js +397 -378
- package/.next/server/chunks/8856.js +2 -2
- package/.next/server/chunks/9058.js +1 -0
- package/.next/server/chunks/9067.js +1 -0
- package/.next/server/chunks/9123.js +1 -1
- package/.next/server/middleware-manifest.json +5 -5
- package/.next/server/pages/500.html +1 -1
- package/.next/server/server-reference-manifest.json +1 -1
- package/.next/server/src/middleware.js +1 -1
- package/.next/server/src/middleware.js.map +1 -1
- package/.next/static/chunks/{6488-109e3825c7249e47.js → 6488-3e7539550c3ef358.js} +1 -1
- package/.next/static/chunks/744-fa8c0ae444c8338c.js +1 -0
- package/.next/static/chunks/app/api/app/update/route-5bdd550ed6386f57.js +1 -0
- package/.next/static/chunks/app/api/app/update-check/route-5bdd550ed6386f57.js +1 -0
- package/.next/static/chunks/app/api/assistant/conversation/route-5bdd550ed6386f57.js +1 -0
- package/.next/static/chunks/app/api/assistant/current-output/route-5bdd550ed6386f57.js +1 -0
- package/.next/static/chunks/app/api/assistant/messages/route-5bdd550ed6386f57.js +1 -0
- package/.next/static/chunks/app/api/assistant/session/route-5bdd550ed6386f57.js +1 -0
- package/.next/static/chunks/app/api/assistant/start/route-5bdd550ed6386f57.js +1 -0
- package/.next/static/chunks/app/api/assistant/terminal/route-5bdd550ed6386f57.js +1 -0
- package/.next/static/chunks/app/api/assistant/tools/route-5bdd550ed6386f57.js +1 -0
- package/.next/static/chunks/app/api/auth/login/route-5bdd550ed6386f57.js +1 -0
- package/.next/static/chunks/app/api/auth/logout/route-5bdd550ed6386f57.js +1 -0
- package/.next/static/chunks/app/api/auth/status/route-5bdd550ed6386f57.js +1 -0
- package/.next/static/chunks/app/api/daily-summary/route-5bdd550ed6386f57.js +1 -0
- package/.next/static/chunks/app/api/daily-summary/status/route-5bdd550ed6386f57.js +1 -0
- package/.next/static/chunks/app/api/external-apps/[id]/health/route-5bdd550ed6386f57.js +1 -0
- package/.next/static/chunks/app/api/external-apps/[id]/route-5bdd550ed6386f57.js +1 -0
- package/.next/static/chunks/app/api/external-apps/route-5bdd550ed6386f57.js +1 -0
- package/.next/static/chunks/app/api/fs/browse/route-5bdd550ed6386f57.js +1 -0
- package/.next/static/chunks/app/api/fs/recent-paths/route-5bdd550ed6386f57.js +1 -0
- package/.next/static/chunks/app/api/hooks/agent-event/route-5bdd550ed6386f57.js +1 -0
- package/.next/static/chunks/app/api/hooks/claude-done/route-5bdd550ed6386f57.js +1 -0
- package/.next/static/chunks/app/api/metrics/vibe/route-5bdd550ed6386f57.js +1 -0
- package/.next/static/chunks/app/api/ollama/models/route-5bdd550ed6386f57.js +1 -0
- package/.next/static/chunks/app/api/push/subscriptions/route-5bdd550ed6386f57.js +1 -0
- package/.next/static/chunks/app/api/push/vapid/route-5bdd550ed6386f57.js +1 -0
- package/.next/static/chunks/app/api/repositories/[id]/route-5bdd550ed6386f57.js +1 -0
- package/.next/static/chunks/app/api/repositories/[id]/todos/[todoId]/route-5bdd550ed6386f57.js +1 -0
- package/.next/static/chunks/app/api/repositories/[id]/todos/route-5bdd550ed6386f57.js +1 -0
- package/.next/static/chunks/app/api/repositories/clone/[jobId]/route-5bdd550ed6386f57.js +1 -0
- package/.next/static/chunks/app/api/repositories/clone/route-5bdd550ed6386f57.js +1 -0
- package/.next/static/chunks/app/api/repositories/excluded/route-5bdd550ed6386f57.js +1 -0
- package/.next/static/chunks/app/api/repositories/restore/route-5bdd550ed6386f57.js +1 -0
- package/.next/static/chunks/app/api/repositories/route-5bdd550ed6386f57.js +1 -0
- package/.next/static/chunks/app/api/repositories/scan/route-5bdd550ed6386f57.js +1 -0
- package/.next/static/chunks/app/api/repositories/sync/route-5bdd550ed6386f57.js +1 -0
- package/.next/static/chunks/app/api/repositories/validate-path/route-5bdd550ed6386f57.js +1 -0
- package/.next/static/chunks/app/api/sidebar/group-order/route-5bdd550ed6386f57.js +1 -0
- package/.next/static/chunks/app/api/skills/[id]/route-5bdd550ed6386f57.js +1 -0
- package/.next/static/chunks/app/api/skills/installations/route-5bdd550ed6386f57.js +1 -0
- package/.next/static/chunks/app/api/skills/operations/route-5bdd550ed6386f57.js +1 -0
- package/.next/static/chunks/app/api/skills/reindex/route-5bdd550ed6386f57.js +1 -0
- package/.next/static/chunks/app/api/skills/route-5bdd550ed6386f57.js +1 -0
- package/.next/static/chunks/app/api/slash-commands/route-5bdd550ed6386f57.js +1 -0
- package/.next/static/chunks/app/api/tasks/[taskId]/cancel/route-5bdd550ed6386f57.js +1 -0
- package/.next/static/chunks/app/api/tasks/[taskId]/route-5bdd550ed6386f57.js +1 -0
- package/.next/static/chunks/app/api/templates/[id]/route-5bdd550ed6386f57.js +1 -0
- package/.next/static/chunks/app/api/templates/route-5bdd550ed6386f57.js +1 -0
- package/.next/static/chunks/app/api/todos/route-5bdd550ed6386f57.js +1 -0
- package/.next/static/chunks/app/api/verification/runs/[runId]/route-5bdd550ed6386f57.js +1 -0
- package/.next/static/chunks/app/api/verification/runs/route-5bdd550ed6386f57.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/auto-yes/route-5bdd550ed6386f57.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/capture/route-5bdd550ed6386f57.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/cli-tool/route-5bdd550ed6386f57.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/cmate/schedules/route-5bdd550ed6386f57.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/current-output/route-5bdd550ed6386f57.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/execution-logs/[logId]/route-5bdd550ed6386f57.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/execution-logs/route-5bdd550ed6386f57.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/files/[...path]/route-5bdd550ed6386f57.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/branch/create/route-5bdd550ed6386f57.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/branch/delete/route-5bdd550ed6386f57.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/branches/route-5bdd550ed6386f57.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/checkout/route-5bdd550ed6386f57.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/commit/route-5bdd550ed6386f57.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/diff/route-5bdd550ed6386f57.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/fetch/route-5bdd550ed6386f57.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/log/route-5bdd550ed6386f57.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/pull/route-5bdd550ed6386f57.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/push/route-5bdd550ed6386f57.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/reset/route-5bdd550ed6386f57.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/revert/route-5bdd550ed6386f57.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/show/[commitHash]/route-5bdd550ed6386f57.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/stage/route-5bdd550ed6386f57.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/staged/route-5bdd550ed6386f57.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/stash/[index]/route-5bdd550ed6386f57.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/stash/apply/route-5bdd550ed6386f57.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/stash/pop/route-5bdd550ed6386f57.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/stash/push/route-5bdd550ed6386f57.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/stash/route-5bdd550ed6386f57.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/status/route-5bdd550ed6386f57.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/unstage/route-5bdd550ed6386f57.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/working-diff/route-5bdd550ed6386f57.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/interrupt/route-5bdd550ed6386f57.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/kill-session/route-5bdd550ed6386f57.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/logs/[filename]/route-5bdd550ed6386f57.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/logs/route-5bdd550ed6386f57.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/marp-render/route-5bdd550ed6386f57.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/memos/[memoId]/route-5bdd550ed6386f57.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/memos/route-5bdd550ed6386f57.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/messages/route-5bdd550ed6386f57.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/prompt-response/route-5bdd550ed6386f57.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/respond/route-5bdd550ed6386f57.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/route-5bdd550ed6386f57.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/schedules/[scheduleId]/route-5bdd550ed6386f57.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/schedules/active/route-5bdd550ed6386f57.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/schedules/route-5bdd550ed6386f57.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/search/route-5bdd550ed6386f57.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/send/route-5bdd550ed6386f57.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/git-workflow/route-5bdd550ed6386f57.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/install/route-5bdd550ed6386f57.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/plan/route-5bdd550ed6386f57.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/uninstall/route-5bdd550ed6386f57.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/uninstall-plan/route-5bdd550ed6386f57.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/skills/route-5bdd550ed6386f57.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/slash-commands/route-5bdd550ed6386f57.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/special-keys/route-5bdd550ed6386f57.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/start-polling/route-5bdd550ed6386f57.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/tasks/route-5bdd550ed6386f57.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/terminal/route-5bdd550ed6386f57.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/timers/history/route-5bdd550ed6386f57.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/timers/route-5bdd550ed6386f57.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/todos/[todoId]/route-5bdd550ed6386f57.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/todos/route-5bdd550ed6386f57.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/tree/[...path]/route-5bdd550ed6386f57.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/tree/route-5bdd550ed6386f57.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/upload/[...path]/route-5bdd550ed6386f57.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/verify/route-5bdd550ed6386f57.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/verify/runs/[runId]/route-5bdd550ed6386f57.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/verify/runs/route-5bdd550ed6386f57.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/viewed/route-5bdd550ed6386f57.js +1 -0
- package/.next/static/chunks/app/api/worktrees/route-5bdd550ed6386f57.js +1 -0
- package/.next/static/chunks/app/manifest.webmanifest/route-5bdd550ed6386f57.js +1 -0
- package/.next/static/chunks/app/proxy/[...path]/route-5bdd550ed6386f57.js +1 -0
- package/.next/static/chunks/app/repositories/page-202680fe6ec169c8.js +1 -0
- package/.next/static/chunks/app/worktrees/[id]/layout-5bdd550ed6386f57.js +1 -0
- package/.next/static/chunks/app/worktrees/[id]/page-214ee8b97dca856b.js +1 -0
- package/.next/trace +12 -12
- package/.next/types/routes.d.ts +2 -1
- package/.next/types/validator.ts +9 -0
- package/README.md +10 -1
- package/dist/cli/commands/auto-yes.d.ts.map +1 -1
- package/dist/cli/commands/auto-yes.js +12 -4
- package/dist/cli/commands/capture.d.ts +1 -0
- package/dist/cli/commands/capture.d.ts.map +1 -1
- package/dist/cli/commands/capture.js +115 -4
- package/dist/cli/commands/instances.d.ts +24 -0
- package/dist/cli/commands/instances.d.ts.map +1 -1
- package/dist/cli/commands/instances.js +44 -0
- package/dist/cli/commands/ls.d.ts.map +1 -1
- package/dist/cli/commands/ls.js +9 -3
- package/dist/cli/commands/respond.d.ts.map +1 -1
- package/dist/cli/commands/respond.js +13 -4
- package/dist/cli/commands/send.d.ts.map +1 -1
- package/dist/cli/commands/send.js +24 -14
- package/dist/cli/commands/update.d.ts.map +1 -1
- package/dist/cli/commands/update.js +66 -0
- package/dist/cli/commands/wait.d.ts +4 -1
- package/dist/cli/commands/wait.d.ts.map +1 -1
- package/dist/cli/commands/wait.js +82 -7
- package/dist/cli/config/agent-target-options.d.ts +46 -0
- package/dist/cli/config/agent-target-options.d.ts.map +1 -0
- package/dist/cli/config/agent-target-options.js +54 -0
- package/dist/cli/docs/agent-operations.d.ts +2 -2
- package/dist/cli/docs/agent-operations.d.ts.map +1 -1
- package/dist/cli/docs/agent-operations.js +47 -14
- 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 +4 -1
- package/dist/cli/utils/api-client.d.ts.map +1 -1
- package/dist/cli/utils/api-client.js +43 -5
- package/dist/cli/utils/npm-runner.d.ts +24 -0
- package/dist/cli/utils/npm-runner.d.ts.map +1 -1
- package/dist/cli/utils/npm-runner.js +51 -1
- package/dist/cli/utils/pager.d.ts +28 -0
- package/dist/cli/utils/pager.d.ts.map +1 -0
- package/dist/cli/utils/pager.js +57 -0
- package/dist/cli/utils/pid-manager.d.ts +12 -2
- package/dist/cli/utils/pid-manager.d.ts.map +1 -1
- package/dist/cli/utils/pid-manager.js +76 -13
- package/dist/lib/detection/ansi.d.ts +30 -0
- package/dist/lib/detection/ansi.d.ts.map +1 -0
- package/dist/lib/detection/ansi.js +39 -0
- package/dist/lib/tmux/transcript-squeeze.d.ts +76 -0
- package/dist/lib/tmux/transcript-squeeze.d.ts.map +1 -0
- package/dist/lib/tmux/transcript-squeeze.js +96 -0
- package/dist/server/server.js +125 -14
- package/dist/server/src/config/tmux-pane-config.js +33 -1
- package/dist/server/src/lib/auto-yes-state.js +64 -0
- package/dist/server/src/lib/cli-tools/antigravity.js +2 -1
- package/dist/server/src/lib/cli-tools/codex.js +3 -2
- package/dist/server/src/lib/cli-tools/copilot.js +2 -2
- package/dist/server/src/lib/cli-tools/gemini.js +2 -2
- package/dist/server/src/lib/cli-tools/opencode.js +2 -2
- package/dist/server/src/lib/cli-tools/vibe-local.js +2 -2
- package/dist/server/src/lib/db/agent-instances-db.js +53 -0
- package/dist/server/src/lib/db/db-repository.js +66 -2
- package/dist/server/src/lib/db/db.js +12 -3
- package/dist/server/src/lib/db/migrations/index.js +8 -0
- package/dist/server/src/lib/db/migrations/runner.js +1 -1
- package/dist/server/src/lib/db/migrations/v52-orphaned-worktree-children.js +76 -0
- package/dist/server/src/lib/db/migrations/v53-worktree-aliases.js +53 -0
- package/dist/server/src/lib/db/migrations/v54-worktree-id-path-derived.js +204 -0
- package/dist/server/src/lib/db/migrations/v55-compact-churned-worktree-ids.js +207 -0
- package/dist/server/src/lib/db/migrations/worktree-child-tables.js +119 -0
- package/dist/server/src/lib/db/migrations/worktree-id-rename.js +153 -0
- package/dist/server/src/lib/db/worktree-alias-db.js +155 -0
- package/dist/server/src/lib/db/worktree-db.js +82 -77
- package/dist/server/src/lib/detection/cli-patterns.js +109 -2
- package/dist/server/src/lib/detection/prompt-detect-multiple-choice.js +10 -1
- package/dist/server/src/lib/detection/status-detector.js +52 -2
- package/dist/server/src/lib/git/worktree-id.js +145 -0
- package/dist/server/src/lib/git/worktree-redirect.js +155 -0
- package/dist/server/src/lib/git/worktrees.js +173 -27
- package/dist/server/src/lib/logger.js +13 -1
- package/dist/server/src/lib/polling/auto-yes-manager.js +3 -1
- package/dist/server/src/lib/polling/prompt-dedup.js +22 -0
- package/dist/server/src/lib/polling/response-checker.js +53 -13
- package/dist/server/src/lib/polling/response-dedup.js +22 -0
- package/dist/server/src/lib/polling/response-poller-core.js +107 -0
- package/dist/server/src/lib/polling/response-poller.js +4 -1
- package/dist/server/src/lib/response-extractor.js +22 -2
- package/dist/server/src/lib/session/claude-session.js +121 -37
- package/dist/server/src/lib/session/current-output-builder.js +14 -1
- package/dist/server/src/lib/session/session-start-error.js +125 -0
- package/dist/server/src/lib/session/worktree-session-reconcile.js +603 -0
- package/dist/server/src/lib/tasks/contract-parser.js +17 -1
- package/dist/server/src/lib/tasks/task-state-machine.js +23 -1
- package/dist/server/src/lib/tmux/control-mode-tmux-transport.js +7 -0
- package/dist/server/src/lib/tmux/read-mode-pager.js +161 -0
- package/dist/server/src/lib/tmux/read-mode.js +347 -0
- package/dist/server/src/lib/tmux/tmux-capture-cache.js +33 -0
- package/dist/server/src/lib/tmux/tmux-control-client.js +12 -0
- package/dist/server/src/lib/tmux/tmux-control-registry.js +55 -11
- package/dist/server/src/lib/tmux/tmux.js +104 -5
- package/dist/server/src/lib/ws-server.js +104 -1
- package/package.json +1 -1
- package/.next/server/chunks/1117.js +0 -1
- package/.next/server/chunks/1356.js +0 -4
- package/.next/server/chunks/1692.js +0 -1
- package/.next/server/chunks/4018.js +0 -1
- package/.next/server/chunks/4390.js +0 -1
- package/.next/server/chunks/8681.js +0 -1
- package/.next/static/chunks/744-d5e47fe16e7b9e06.js +0 -1
- package/.next/static/chunks/app/api/app/update/route-8440b6c72bed83a1.js +0 -1
- package/.next/static/chunks/app/api/app/update-check/route-8440b6c72bed83a1.js +0 -1
- package/.next/static/chunks/app/api/assistant/conversation/route-8440b6c72bed83a1.js +0 -1
- package/.next/static/chunks/app/api/assistant/current-output/route-8440b6c72bed83a1.js +0 -1
- package/.next/static/chunks/app/api/assistant/messages/route-8440b6c72bed83a1.js +0 -1
- package/.next/static/chunks/app/api/assistant/session/route-8440b6c72bed83a1.js +0 -1
- package/.next/static/chunks/app/api/assistant/start/route-8440b6c72bed83a1.js +0 -1
- package/.next/static/chunks/app/api/assistant/terminal/route-8440b6c72bed83a1.js +0 -1
- package/.next/static/chunks/app/api/assistant/tools/route-8440b6c72bed83a1.js +0 -1
- package/.next/static/chunks/app/api/auth/login/route-8440b6c72bed83a1.js +0 -1
- package/.next/static/chunks/app/api/auth/logout/route-8440b6c72bed83a1.js +0 -1
- package/.next/static/chunks/app/api/auth/status/route-8440b6c72bed83a1.js +0 -1
- package/.next/static/chunks/app/api/daily-summary/route-8440b6c72bed83a1.js +0 -1
- package/.next/static/chunks/app/api/daily-summary/status/route-8440b6c72bed83a1.js +0 -1
- package/.next/static/chunks/app/api/external-apps/[id]/health/route-8440b6c72bed83a1.js +0 -1
- package/.next/static/chunks/app/api/external-apps/[id]/route-8440b6c72bed83a1.js +0 -1
- package/.next/static/chunks/app/api/external-apps/route-8440b6c72bed83a1.js +0 -1
- package/.next/static/chunks/app/api/fs/browse/route-8440b6c72bed83a1.js +0 -1
- package/.next/static/chunks/app/api/fs/recent-paths/route-8440b6c72bed83a1.js +0 -1
- package/.next/static/chunks/app/api/hooks/agent-event/route-8440b6c72bed83a1.js +0 -1
- package/.next/static/chunks/app/api/hooks/claude-done/route-8440b6c72bed83a1.js +0 -1
- package/.next/static/chunks/app/api/metrics/vibe/route-8440b6c72bed83a1.js +0 -1
- package/.next/static/chunks/app/api/ollama/models/route-8440b6c72bed83a1.js +0 -1
- package/.next/static/chunks/app/api/push/subscriptions/route-8440b6c72bed83a1.js +0 -1
- package/.next/static/chunks/app/api/push/vapid/route-8440b6c72bed83a1.js +0 -1
- package/.next/static/chunks/app/api/repositories/[id]/route-8440b6c72bed83a1.js +0 -1
- package/.next/static/chunks/app/api/repositories/[id]/todos/[todoId]/route-8440b6c72bed83a1.js +0 -1
- package/.next/static/chunks/app/api/repositories/[id]/todos/route-8440b6c72bed83a1.js +0 -1
- package/.next/static/chunks/app/api/repositories/clone/[jobId]/route-8440b6c72bed83a1.js +0 -1
- package/.next/static/chunks/app/api/repositories/clone/route-8440b6c72bed83a1.js +0 -1
- package/.next/static/chunks/app/api/repositories/excluded/route-8440b6c72bed83a1.js +0 -1
- package/.next/static/chunks/app/api/repositories/restore/route-8440b6c72bed83a1.js +0 -1
- package/.next/static/chunks/app/api/repositories/route-8440b6c72bed83a1.js +0 -1
- package/.next/static/chunks/app/api/repositories/scan/route-8440b6c72bed83a1.js +0 -1
- package/.next/static/chunks/app/api/repositories/sync/route-8440b6c72bed83a1.js +0 -1
- package/.next/static/chunks/app/api/repositories/validate-path/route-8440b6c72bed83a1.js +0 -1
- package/.next/static/chunks/app/api/sidebar/group-order/route-8440b6c72bed83a1.js +0 -1
- package/.next/static/chunks/app/api/skills/[id]/route-8440b6c72bed83a1.js +0 -1
- package/.next/static/chunks/app/api/skills/installations/route-8440b6c72bed83a1.js +0 -1
- package/.next/static/chunks/app/api/skills/operations/route-8440b6c72bed83a1.js +0 -1
- package/.next/static/chunks/app/api/skills/reindex/route-8440b6c72bed83a1.js +0 -1
- package/.next/static/chunks/app/api/skills/route-8440b6c72bed83a1.js +0 -1
- package/.next/static/chunks/app/api/slash-commands/route-8440b6c72bed83a1.js +0 -1
- package/.next/static/chunks/app/api/tasks/[taskId]/cancel/route-8440b6c72bed83a1.js +0 -1
- package/.next/static/chunks/app/api/tasks/[taskId]/route-8440b6c72bed83a1.js +0 -1
- package/.next/static/chunks/app/api/templates/[id]/route-8440b6c72bed83a1.js +0 -1
- package/.next/static/chunks/app/api/templates/route-8440b6c72bed83a1.js +0 -1
- package/.next/static/chunks/app/api/todos/route-8440b6c72bed83a1.js +0 -1
- package/.next/static/chunks/app/api/verification/runs/[runId]/route-8440b6c72bed83a1.js +0 -1
- package/.next/static/chunks/app/api/verification/runs/route-8440b6c72bed83a1.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/auto-yes/route-8440b6c72bed83a1.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/capture/route-8440b6c72bed83a1.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/cli-tool/route-8440b6c72bed83a1.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/cmate/schedules/route-8440b6c72bed83a1.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/current-output/route-8440b6c72bed83a1.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/execution-logs/[logId]/route-8440b6c72bed83a1.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/execution-logs/route-8440b6c72bed83a1.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/files/[...path]/route-8440b6c72bed83a1.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/branch/create/route-8440b6c72bed83a1.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/branch/delete/route-8440b6c72bed83a1.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/branches/route-8440b6c72bed83a1.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/checkout/route-8440b6c72bed83a1.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/commit/route-8440b6c72bed83a1.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/diff/route-8440b6c72bed83a1.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/fetch/route-8440b6c72bed83a1.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/log/route-8440b6c72bed83a1.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/pull/route-8440b6c72bed83a1.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/push/route-8440b6c72bed83a1.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/reset/route-8440b6c72bed83a1.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/revert/route-8440b6c72bed83a1.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/show/[commitHash]/route-8440b6c72bed83a1.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/stage/route-8440b6c72bed83a1.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/staged/route-8440b6c72bed83a1.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/stash/[index]/route-8440b6c72bed83a1.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/stash/apply/route-8440b6c72bed83a1.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/stash/pop/route-8440b6c72bed83a1.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/stash/push/route-8440b6c72bed83a1.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/stash/route-8440b6c72bed83a1.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/status/route-8440b6c72bed83a1.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/unstage/route-8440b6c72bed83a1.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/working-diff/route-8440b6c72bed83a1.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/interrupt/route-8440b6c72bed83a1.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/kill-session/route-8440b6c72bed83a1.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/logs/[filename]/route-8440b6c72bed83a1.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/logs/route-8440b6c72bed83a1.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/marp-render/route-8440b6c72bed83a1.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/memos/[memoId]/route-8440b6c72bed83a1.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/memos/route-8440b6c72bed83a1.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/messages/route-8440b6c72bed83a1.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/prompt-response/route-8440b6c72bed83a1.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/respond/route-8440b6c72bed83a1.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/route-8440b6c72bed83a1.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/schedules/[scheduleId]/route-8440b6c72bed83a1.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/schedules/active/route-8440b6c72bed83a1.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/schedules/route-8440b6c72bed83a1.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/search/route-8440b6c72bed83a1.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/send/route-8440b6c72bed83a1.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/git-workflow/route-8440b6c72bed83a1.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/install/route-8440b6c72bed83a1.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/plan/route-8440b6c72bed83a1.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/uninstall/route-8440b6c72bed83a1.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/uninstall-plan/route-8440b6c72bed83a1.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/skills/route-8440b6c72bed83a1.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/slash-commands/route-8440b6c72bed83a1.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/special-keys/route-8440b6c72bed83a1.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/start-polling/route-8440b6c72bed83a1.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/tasks/route-8440b6c72bed83a1.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/terminal/route-8440b6c72bed83a1.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/timers/history/route-8440b6c72bed83a1.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/timers/route-8440b6c72bed83a1.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/todos/[todoId]/route-8440b6c72bed83a1.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/todos/route-8440b6c72bed83a1.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/tree/[...path]/route-8440b6c72bed83a1.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/tree/route-8440b6c72bed83a1.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/upload/[...path]/route-8440b6c72bed83a1.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/verify/route-8440b6c72bed83a1.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/verify/runs/[runId]/route-8440b6c72bed83a1.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/verify/runs/route-8440b6c72bed83a1.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/viewed/route-8440b6c72bed83a1.js +0 -1
- package/.next/static/chunks/app/api/worktrees/route-8440b6c72bed83a1.js +0 -1
- package/.next/static/chunks/app/manifest.webmanifest/route-8440b6c72bed83a1.js +0 -1
- package/.next/static/chunks/app/proxy/[...path]/route-8440b6c72bed83a1.js +0 -1
- package/.next/static/chunks/app/repositories/page-1ed1e5a542ecc168.js +0 -1
- package/.next/static/chunks/app/worktrees/[id]/page-12b3c5f32fc6094e.js +0 -1
- /package/.next/static/{-BSmW0Ae2YsxyCl_ue7_d → C01FQOE5FCmB3I_GhMa4_}/_buildManifest.js +0 -0
- /package/.next/static/{-BSmW0Ae2YsxyCl_ue7_d → C01FQOE5FCmB3I_GhMa4_}/_ssgManifest.js +0 -0
|
@@ -21,6 +21,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
21
21
|
exports.updateCommand = updateCommand;
|
|
22
22
|
const dotenv_1 = require("dotenv");
|
|
23
23
|
const fs_1 = require("fs");
|
|
24
|
+
const path_1 = require("path");
|
|
24
25
|
const types_1 = require("../types");
|
|
25
26
|
const logger_1 = require("../utils/logger");
|
|
26
27
|
const paths_1 = require("../utils/paths");
|
|
@@ -41,6 +42,12 @@ const update_lock_1 = require("../../lib/app-update/update-lock");
|
|
|
41
42
|
const logger = new logger_1.CLILogger();
|
|
42
43
|
/** npm package name (kept as a literal: never build it from a dynamic path) */
|
|
43
44
|
const PACKAGE_NAME = 'commandmate';
|
|
45
|
+
/**
|
|
46
|
+
* Update log file name. Must stay identical to `UPDATE_LOG_FILENAME` in
|
|
47
|
+
* api/app/update/route.ts:36 — that route reports the path to the UI, and it resolves it the
|
|
48
|
+
* same way (`join(ensureConfigDir(), ...)`), so both must name the same file.
|
|
49
|
+
*/
|
|
50
|
+
const UPDATE_LOG_FILENAME = 'update.log';
|
|
44
51
|
/**
|
|
45
52
|
* Execute the update command.
|
|
46
53
|
*
|
|
@@ -271,6 +278,8 @@ async function updateCommand(options = {}) {
|
|
|
271
278
|
* stop the freshly-started daemon). npx env hygiene lives inside npx-runner.
|
|
272
279
|
*/
|
|
273
280
|
async function runNpxSelfUpdate() {
|
|
281
|
+
// Issue #1633: surfaced first, so it is recorded even when the update itself aborts below.
|
|
282
|
+
warnStaleGlobalInstall();
|
|
274
283
|
// .env must exist and be loaded before status/auth resolution so the health
|
|
275
284
|
// check URL and token resolve correctly (mirrors step 6).
|
|
276
285
|
const envPath = (0, env_setup_1.getEnvPath)();
|
|
@@ -385,6 +394,63 @@ async function runNpxSelfUpdate() {
|
|
|
385
394
|
printNpxManualRelaunch();
|
|
386
395
|
process.exit(types_1.ExitCode.START_FAILED);
|
|
387
396
|
}
|
|
397
|
+
/**
|
|
398
|
+
* Warn when a `npm install -g` install is still on the machine (Issue #1633).
|
|
399
|
+
*
|
|
400
|
+
* The npx self-update replaces only the npx cache. A global install keeps shadowing
|
|
401
|
+
* `commandmate` on PATH at whatever version it was last installed at, and nothing used to say
|
|
402
|
+
* so: one machine ran a 0.18.0 server (self-updated via npx) behind a 0.2.4 global CLI for
|
|
403
|
+
* months, which is how #1632 stayed invisible.
|
|
404
|
+
*
|
|
405
|
+
* This is advisory only. Detection failures (npm missing, `npm root -g` refused) skip the
|
|
406
|
+
* notice; they never abort the update.
|
|
407
|
+
*/
|
|
408
|
+
function warnStaleGlobalInstall() {
|
|
409
|
+
let installed;
|
|
410
|
+
try {
|
|
411
|
+
installed = (0, npm_runner_1.findGlobalInstallation)(PACKAGE_NAME);
|
|
412
|
+
}
|
|
413
|
+
catch {
|
|
414
|
+
return;
|
|
415
|
+
}
|
|
416
|
+
if (installed === null) {
|
|
417
|
+
return;
|
|
418
|
+
}
|
|
419
|
+
const label = installed.version ? `v${installed.version}` : 'unknown version';
|
|
420
|
+
const lines = [
|
|
421
|
+
`A global install of ${PACKAGE_NAME} (${label}) is still present at ${installed.path}.`,
|
|
422
|
+
`This npx update only refreshes the npx cache, so that copy stays at ${label} and keeps ` +
|
|
423
|
+
`shadowing "${PACKAGE_NAME}" on your PATH.`,
|
|
424
|
+
`Update it as well: npm install -g ${PACKAGE_NAME}@latest`,
|
|
425
|
+
`Or remove it: npm uninstall -g ${PACKAGE_NAME}`,
|
|
426
|
+
];
|
|
427
|
+
for (const line of lines) {
|
|
428
|
+
logger.warn(line);
|
|
429
|
+
}
|
|
430
|
+
appendUpdateLog(lines.map((line) => `[WARN] ${line}`));
|
|
431
|
+
}
|
|
432
|
+
/**
|
|
433
|
+
* Append lines to ~/.commandmate/update.log.
|
|
434
|
+
*
|
|
435
|
+
* When the GUI starts this command the child's stdout/stderr are already the update log
|
|
436
|
+
* (api/app/update/route.ts:129-159), so console output lands there too and these lines appear
|
|
437
|
+
* twice. The explicit write is what keeps the record when the command is run by hand, where
|
|
438
|
+
* stdout is a terminal and nothing would otherwise be persisted.
|
|
439
|
+
*
|
|
440
|
+
* Logging must never break an update, so every failure is swallowed.
|
|
441
|
+
*/
|
|
442
|
+
function appendUpdateLog(lines) {
|
|
443
|
+
try {
|
|
444
|
+
const logPath = (0, path_1.join)((0, install_context_1.ensureConfigDir)(), UPDATE_LOG_FILENAME);
|
|
445
|
+
const timestamp = new Date().toISOString();
|
|
446
|
+
(0, fs_1.appendFileSync)(logPath, lines.map((line) => `${timestamp} ${line}\n`).join(''), {
|
|
447
|
+
mode: 0o600,
|
|
448
|
+
});
|
|
449
|
+
}
|
|
450
|
+
catch {
|
|
451
|
+
// Best effort: the console output above already carried the message.
|
|
452
|
+
}
|
|
453
|
+
}
|
|
388
454
|
/**
|
|
389
455
|
* Read the version from the installed package.json.
|
|
390
456
|
* @throws if package.json cannot be read or has no version
|
|
@@ -4,10 +4,13 @@
|
|
|
4
4
|
*
|
|
5
5
|
* Exit codes [DR1-03]:
|
|
6
6
|
* - 0: SUCCESS (agent completed)
|
|
7
|
-
* - 10: PROMPT_DETECTED (agent waiting for user input
|
|
7
|
+
* - 10: PROMPT_DETECTED (agent waiting for user input, including arrow-key
|
|
8
|
+
* selection lists — Issue #1628)
|
|
8
9
|
* - 124: TIMEOUT (--timeout exceeded)
|
|
9
10
|
* Issue #1544 adds --verify / --require-work, which can turn a detected
|
|
10
11
|
* completion into 20 (VERIFY_FAILED) or 21 (NOT_STARTED).
|
|
12
|
+
* Issue #1628 also returns 21 without --verify when the session was never
|
|
13
|
+
* running: a wait with nothing to wait for must not report success.
|
|
11
14
|
* Infrastructure errors use ExitCode (1, 2, 99)
|
|
12
15
|
*/
|
|
13
16
|
import { Command } from 'commander';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wait.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/wait.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"wait.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/wait.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAySpC,wBAAgB,iBAAiB,IAAI,OAAO,CA6G3C"}
|
|
@@ -5,10 +5,13 @@
|
|
|
5
5
|
*
|
|
6
6
|
* Exit codes [DR1-03]:
|
|
7
7
|
* - 0: SUCCESS (agent completed)
|
|
8
|
-
* - 10: PROMPT_DETECTED (agent waiting for user input
|
|
8
|
+
* - 10: PROMPT_DETECTED (agent waiting for user input, including arrow-key
|
|
9
|
+
* selection lists — Issue #1628)
|
|
9
10
|
* - 124: TIMEOUT (--timeout exceeded)
|
|
10
11
|
* Issue #1544 adds --verify / --require-work, which can turn a detected
|
|
11
12
|
* completion into 20 (VERIFY_FAILED) or 21 (NOT_STARTED).
|
|
13
|
+
* Issue #1628 also returns 21 without --verify when the session was never
|
|
14
|
+
* running: a wait with nothing to wait for must not report success.
|
|
12
15
|
* Infrastructure errors use ExitCode (1, 2, 99)
|
|
13
16
|
*/
|
|
14
17
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
@@ -18,8 +21,19 @@ const types_1 = require("../types");
|
|
|
18
21
|
const api_client_1 = require("../utils/api-client");
|
|
19
22
|
const command_helpers_1 = require("../utils/command-helpers");
|
|
20
23
|
const verify_runner_1 = require("../utils/verify-runner");
|
|
24
|
+
const agent_target_options_1 = require("../config/agent-target-options");
|
|
21
25
|
/** [IA3-02] Polling interval 5 seconds (matches tmux-capture-cache TTL=2s) */
|
|
22
26
|
const POLL_INTERVAL_MS = 5000;
|
|
27
|
+
/**
|
|
28
|
+
* `type` reported for a blocked-on-a-human frame that carries no parsable prompt
|
|
29
|
+
* (Issue #1628). Arrow-key menus — Codex's pager and `/model`, antigravity's
|
|
30
|
+
* permission menu, OpenCode's `/models` overlay — are deliberately published as
|
|
31
|
+
* selection lists rather than prompts so the UI renders NavigationButtons, which
|
|
32
|
+
* left `wait` with no signal at all for them: it polled until the timeout while
|
|
33
|
+
* the agent sat stopped. They are not answerable as a prompt, so the payload
|
|
34
|
+
* names the state instead of inventing options.
|
|
35
|
+
*/
|
|
36
|
+
const SELECTION_LIST_PROMPT_TYPE = 'selection_list';
|
|
23
37
|
/**
|
|
24
38
|
* Poll a single worktree until completion, prompt, or timeout.
|
|
25
39
|
*/
|
|
@@ -27,6 +41,14 @@ async function pollWorktree(client, worktreeId, options) {
|
|
|
27
41
|
const startTime = Date.now();
|
|
28
42
|
let lastActivityTime = Date.now();
|
|
29
43
|
let lastContent = '';
|
|
44
|
+
/**
|
|
45
|
+
* Issue #1628: whether this wait ever saw the session alive. `!isRunning` on the
|
|
46
|
+
* FIRST poll is "there is nothing here to wait for", not "the agent finished" —
|
|
47
|
+
* reporting SUCCESS for it is how a wait on a worktree whose agent never started
|
|
48
|
+
* (wrong tool, wrong instance, session never created) came back `Completed` in
|
|
49
|
+
* milliseconds and handed a `passed` verdict to whatever ran next.
|
|
50
|
+
*/
|
|
51
|
+
let everRunning = false;
|
|
30
52
|
while (true) {
|
|
31
53
|
// Check timeout
|
|
32
54
|
if (options.timeout) {
|
|
@@ -55,6 +77,9 @@ async function pollWorktree(client, worktreeId, options) {
|
|
|
55
77
|
lastContent = data.content;
|
|
56
78
|
lastActivityTime = Date.now();
|
|
57
79
|
}
|
|
80
|
+
if (data.isRunning) {
|
|
81
|
+
everRunning = true;
|
|
82
|
+
}
|
|
58
83
|
// Prompt detected
|
|
59
84
|
if (data.isPromptWaiting && data.promptData) {
|
|
60
85
|
// [DR1-03] Prompt detection exit code
|
|
@@ -75,10 +100,42 @@ async function pollWorktree(client, worktreeId, options) {
|
|
|
75
100
|
};
|
|
76
101
|
return { exitCode: types_1.WaitExitCode.PROMPT_DETECTED, output: promptOutput };
|
|
77
102
|
}
|
|
103
|
+
// Issue #1628: an arrow-key menu is the agent blocked on a human just as much
|
|
104
|
+
// as a numbered prompt is, but it is published with isPromptWaiting=false so
|
|
105
|
+
// the UI can render NavigationButtons instead of PromptPanel. Treat it as a
|
|
106
|
+
// prompt here — otherwise `wait` polls a stopped agent until --timeout.
|
|
107
|
+
if (data.isSelectionListActive) {
|
|
108
|
+
if (options.onPrompt === 'human') {
|
|
109
|
+
console.error(`Selection list active on ${worktreeId} (${data.sessionStatusReason ?? 'selection_list'}). ` +
|
|
110
|
+
'Waiting for human response...');
|
|
111
|
+
await sleep(POLL_INTERVAL_MS);
|
|
112
|
+
continue;
|
|
113
|
+
}
|
|
114
|
+
return {
|
|
115
|
+
exitCode: types_1.WaitExitCode.PROMPT_DETECTED,
|
|
116
|
+
output: {
|
|
117
|
+
worktreeId,
|
|
118
|
+
cliToolId: data.cliToolId || 'claude',
|
|
119
|
+
type: SELECTION_LIST_PROMPT_TYPE,
|
|
120
|
+
question: data.sessionStatusReason ?? SELECTION_LIST_PROMPT_TYPE,
|
|
121
|
+
options: [],
|
|
122
|
+
status: 'pending',
|
|
123
|
+
},
|
|
124
|
+
};
|
|
125
|
+
}
|
|
78
126
|
// Completion check [DR1-04]:
|
|
79
|
-
// Path A: tmux session
|
|
127
|
+
// Path A: the tmux session went away after we had seen it alive — the agent
|
|
128
|
+
// finished and its session was stopped.
|
|
80
129
|
// Path B: agent completed task (sessionStatus === 'ready', input prompt detected)
|
|
81
|
-
// Both indicate "no more work in progress" from wait command's perspective
|
|
130
|
+
// Both indicate "no more work in progress" from wait command's perspective.
|
|
131
|
+
//
|
|
132
|
+
// Issue #1628 narrowed Path A: a session that was NEVER seen running is
|
|
133
|
+
// "nothing to wait for" (NOT_STARTED), not a completion. See `everRunning`.
|
|
134
|
+
if (!data.isRunning && !everRunning) {
|
|
135
|
+
console.error(`Not started: ${worktreeId} has no running ${data.cliToolId ?? 'agent'} session` +
|
|
136
|
+
`${options.instance ? ` for instance ${options.instance}` : ''}.`);
|
|
137
|
+
return { exitCode: types_1.VerifyExitCode.NOT_STARTED };
|
|
138
|
+
}
|
|
82
139
|
if (!data.isRunning || data.sessionStatus === 'ready') {
|
|
83
140
|
console.error(`Completed: ${worktreeId}`);
|
|
84
141
|
return { exitCode: types_1.WaitExitCode.SUCCESS };
|
|
@@ -102,6 +159,21 @@ function sleep(ms) {
|
|
|
102
159
|
function verifyRequested(options) {
|
|
103
160
|
return Boolean(options.verify || options.requireWork);
|
|
104
161
|
}
|
|
162
|
+
/**
|
|
163
|
+
* Whether this poll outcome should still be handed to the verification gates.
|
|
164
|
+
*
|
|
165
|
+
* A completion is the obvious case. NOT_STARTED joins it (Issue #1628) so the
|
|
166
|
+
* operator gets the gate results instead of a bare "no session": work committed
|
|
167
|
+
* by an agent whose session has since gone away is still worth reporting. The
|
|
168
|
+
* verdict is merged rather than substituted — mergeExitCode never lets a passing
|
|
169
|
+
* run overwrite NOT_STARTED, so "wait never saw this agent" survives to the exit
|
|
170
|
+
* code even when the gates are green.
|
|
171
|
+
*/
|
|
172
|
+
function shouldVerify(exitCode, options) {
|
|
173
|
+
if (!verifyRequested(options))
|
|
174
|
+
return false;
|
|
175
|
+
return exitCode === types_1.WaitExitCode.SUCCESS || exitCode === types_1.VerifyExitCode.NOT_STARTED;
|
|
176
|
+
}
|
|
105
177
|
/**
|
|
106
178
|
* Task statuses that mean "this wait is about that task".
|
|
107
179
|
*
|
|
@@ -201,7 +273,7 @@ function createWaitCommand() {
|
|
|
201
273
|
.option('--timeout <seconds>', 'Maximum wait time in seconds', parseInt)
|
|
202
274
|
.option('--on-prompt <mode>', 'Prompt handling: agent (default) or human')
|
|
203
275
|
.option('--stall-timeout <seconds>', 'Maximum time without output change', parseInt)
|
|
204
|
-
.option('--instance <id>',
|
|
276
|
+
.option('--instance <id>', agent_target_options_1.WAIT_INSTANCE_OPTION_DESCRIPTION)
|
|
205
277
|
.option('--verify', 'After completion, run every verification gate; exit 20 when a gate fails, 21 when there is nothing to verify')
|
|
206
278
|
.option('--require-work', 'After completion, run only the work-evidence gate; exit 21 when the worktree has no commits and no uncommitted changes')
|
|
207
279
|
.option('--token <token>', command_helpers_1.TOKEN_WARNING)
|
|
@@ -237,8 +309,8 @@ function createWaitCommand() {
|
|
|
237
309
|
}
|
|
238
310
|
// Issue #1544: only a detected completion is worth verifying — a
|
|
239
311
|
// prompt or a timeout means the agent never claimed to be done.
|
|
240
|
-
const exitCode = result.exitCode
|
|
241
|
-
? await verifyAfterWait(client, worktreeIds[0], options, boundTaskIds[0])
|
|
312
|
+
const exitCode = shouldVerify(result.exitCode, options)
|
|
313
|
+
? mergeExitCode(result.exitCode, await verifyAfterWait(client, worktreeIds[0], options, boundTaskIds[0]))
|
|
242
314
|
: result.exitCode;
|
|
243
315
|
process.exit(exitCode);
|
|
244
316
|
return;
|
|
@@ -254,8 +326,11 @@ function createWaitCommand() {
|
|
|
254
326
|
if (result.value.output) {
|
|
255
327
|
outputs.push(result.value.output);
|
|
256
328
|
}
|
|
257
|
-
if (result.value.exitCode
|
|
329
|
+
if (shouldVerify(result.value.exitCode, options)) {
|
|
258
330
|
verifyTargets.push({ id: worktreeIds[index], taskId: boundTaskIds[index] });
|
|
331
|
+
// Issue #1628: fold NOT_STARTED in before verification so a green
|
|
332
|
+
// gate run cannot promote "no session was ever running" to success.
|
|
333
|
+
finalExitCode = mergeExitCode(finalExitCode, result.value.exitCode);
|
|
259
334
|
return;
|
|
260
335
|
}
|
|
261
336
|
finalExitCode = mergeExitCode(finalExitCode, result.value.exitCode);
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared help text for the two flags that name *where* a message goes:
|
|
3
|
+
* `--instance` (the instance) and `--agent` (the CLI tool behind it).
|
|
4
|
+
*
|
|
5
|
+
* Issue #1638: the flags were not interchangeable and the docs did not say so.
|
|
6
|
+
* `--instance` is accepted by `send` / `wait` / `respond` / `capture` /
|
|
7
|
+
* `auto-yes`; `--agent` is accepted by every one of those except `wait`, which
|
|
8
|
+
* rejects it with `unknown option` (exit 1). A worktree cut for Codex therefore
|
|
9
|
+
* ran Claude in silence when a workflow copied from the quick start omitted the
|
|
10
|
+
* target flag on the one command that could not take it.
|
|
11
|
+
*
|
|
12
|
+
* ## Why `--agent` is kept rather than removed
|
|
13
|
+
*
|
|
14
|
+
* Removing it would break every shipped script, the embedded `commandmate docs`
|
|
15
|
+
* guide and the published user guide, in exchange for making the flag set look
|
|
16
|
+
* symmetric. It also cannot be removed outright: `send --register` needs an
|
|
17
|
+
* explicit CLI tool whenever the instance id is not itself a tool id
|
|
18
|
+
* (`--instance codex-3 --register` has no other way to say "this is codex"),
|
|
19
|
+
* and an ad-hoc instance the roster has never seen carries no tool either.
|
|
20
|
+
*
|
|
21
|
+
* So `--agent` stays as-is — same parsing, same precedence (Issue #1629: the
|
|
22
|
+
* roster wins, a contradiction is an error) — and only its *position* changes:
|
|
23
|
+
* it is the supplement for ad-hoc, roster-less instances, not the way to pick
|
|
24
|
+
* an agent. The recommended form is `--instance <id>` on its own, which works
|
|
25
|
+
* on all five commands: a rostered instance carries its CLI tool, and an
|
|
26
|
+
* instance id that is itself a tool id (`--instance codex`) resolves to that
|
|
27
|
+
* tool's primary instance without a roster row.
|
|
28
|
+
*
|
|
29
|
+
* Adding `wait --agent` was rejected in #1629: without an instance, `--agent
|
|
30
|
+
* codex` does not say *which* codex session to wait on.
|
|
31
|
+
*/
|
|
32
|
+
/**
|
|
33
|
+
* `--agent` description for send / respond / capture / auto-yes.
|
|
34
|
+
* `instances add --agent` is deliberately NOT this text: there the flag
|
|
35
|
+
* declares the tool of a new roster entry and is required, not a supplement.
|
|
36
|
+
*/
|
|
37
|
+
export declare const AGENT_OPTION_DESCRIPTION: string;
|
|
38
|
+
/** `--instance` description, shared by send / respond / capture / auto-yes. */
|
|
39
|
+
export declare const INSTANCE_OPTION_DESCRIPTION: string;
|
|
40
|
+
/**
|
|
41
|
+
* `--instance` description for `wait`, which has no `--agent` to fall back on.
|
|
42
|
+
* Spelling that out here is the point of the Issue: a workflow that names the
|
|
43
|
+
* agent on `send` and nothing on `wait` waits on the wrong session in silence.
|
|
44
|
+
*/
|
|
45
|
+
export declare const WAIT_INSTANCE_OPTION_DESCRIPTION: string;
|
|
46
|
+
//# sourceMappingURL=agent-target-options.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"agent-target-options.d.ts","sourceRoot":"","sources":["../../../src/cli/config/agent-target-options.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAIH;;;;GAIG;AACH,eAAO,MAAM,wBAAwB,QAGoD,CAAC;AAE1F,+EAA+E;AAC/E,eAAO,MAAM,2BAA2B,QAGO,CAAC;AAEhD;;;;GAIG;AACH,eAAO,MAAM,gCAAgC,QAEgB,CAAC"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Shared help text for the two flags that name *where* a message goes:
|
|
4
|
+
* `--instance` (the instance) and `--agent` (the CLI tool behind it).
|
|
5
|
+
*
|
|
6
|
+
* Issue #1638: the flags were not interchangeable and the docs did not say so.
|
|
7
|
+
* `--instance` is accepted by `send` / `wait` / `respond` / `capture` /
|
|
8
|
+
* `auto-yes`; `--agent` is accepted by every one of those except `wait`, which
|
|
9
|
+
* rejects it with `unknown option` (exit 1). A worktree cut for Codex therefore
|
|
10
|
+
* ran Claude in silence when a workflow copied from the quick start omitted the
|
|
11
|
+
* target flag on the one command that could not take it.
|
|
12
|
+
*
|
|
13
|
+
* ## Why `--agent` is kept rather than removed
|
|
14
|
+
*
|
|
15
|
+
* Removing it would break every shipped script, the embedded `commandmate docs`
|
|
16
|
+
* guide and the published user guide, in exchange for making the flag set look
|
|
17
|
+
* symmetric. It also cannot be removed outright: `send --register` needs an
|
|
18
|
+
* explicit CLI tool whenever the instance id is not itself a tool id
|
|
19
|
+
* (`--instance codex-3 --register` has no other way to say "this is codex"),
|
|
20
|
+
* and an ad-hoc instance the roster has never seen carries no tool either.
|
|
21
|
+
*
|
|
22
|
+
* So `--agent` stays as-is — same parsing, same precedence (Issue #1629: the
|
|
23
|
+
* roster wins, a contradiction is an error) — and only its *position* changes:
|
|
24
|
+
* it is the supplement for ad-hoc, roster-less instances, not the way to pick
|
|
25
|
+
* an agent. The recommended form is `--instance <id>` on its own, which works
|
|
26
|
+
* on all five commands: a rostered instance carries its CLI tool, and an
|
|
27
|
+
* instance id that is itself a tool id (`--instance codex`) resolves to that
|
|
28
|
+
* tool's primary instance without a roster row.
|
|
29
|
+
*
|
|
30
|
+
* Adding `wait --agent` was rejected in #1629: without an instance, `--agent
|
|
31
|
+
* codex` does not say *which* codex session to wait on.
|
|
32
|
+
*/
|
|
33
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
34
|
+
exports.WAIT_INSTANCE_OPTION_DESCRIPTION = exports.INSTANCE_OPTION_DESCRIPTION = exports.AGENT_OPTION_DESCRIPTION = void 0;
|
|
35
|
+
const cli_tool_ids_1 = require("./cli-tool-ids");
|
|
36
|
+
/**
|
|
37
|
+
* `--agent` description for send / respond / capture / auto-yes.
|
|
38
|
+
* `instances add --agent` is deliberately NOT this text: there the flag
|
|
39
|
+
* declares the tool of a new roster entry and is required, not a supplement.
|
|
40
|
+
*/
|
|
41
|
+
exports.AGENT_OPTION_DESCRIPTION = `Ad-hoc CLI tool for an instance the roster does not know (${cli_tool_ids_1.CLI_TOOL_IDS.join(', ')}). `
|
|
42
|
+
+ 'Prefer --instance on its own: a rostered instance already carries its CLI tool, '
|
|
43
|
+
+ 'and --instance is the only target flag every command accepts (wait has no --agent).';
|
|
44
|
+
/** `--instance` description, shared by send / respond / capture / auto-yes. */
|
|
45
|
+
exports.INSTANCE_OPTION_DESCRIPTION = 'Agent instance ID: <agent> or <agent>-<n> (e.g. claude-2). '
|
|
46
|
+
+ 'Recommended way to name the target; accepted by send/wait/respond/capture/auto-yes. '
|
|
47
|
+
+ "Defaults to the agent's primary instance.";
|
|
48
|
+
/**
|
|
49
|
+
* `--instance` description for `wait`, which has no `--agent` to fall back on.
|
|
50
|
+
* Spelling that out here is the point of the Issue: a workflow that names the
|
|
51
|
+
* agent on `send` and nothing on `wait` waits on the wrong session in silence.
|
|
52
|
+
*/
|
|
53
|
+
exports.WAIT_INSTANCE_OPTION_DESCRIPTION = `${exports.INSTANCE_OPTION_DESCRIPTION} wait takes no --agent, so name the instance here `
|
|
54
|
+
+ '(e.g. --instance codex for the codex primary instance).';
|
|
@@ -5,6 +5,6 @@
|
|
|
5
5
|
* This content is embedded as a string constant so that it's available
|
|
6
6
|
* even when installed via `npm install -g commandmate` (where docs/ is not included).
|
|
7
7
|
*/
|
|
8
|
-
export declare const AGENT_OPERATIONS_GUIDE = "# CLI Agent Operations Guide\n\nOperate agent sessions from the CommandMate CLI.\nThese commands enable coding agents (Claude Code, Codex, etc.) to orchestrate other agents in parallel.\n\n## Prerequisites\n\n- CommandMate server must be running: commandmate start --daemon\n- Target worktrees must be registered (visible in browser UI sidebar)\n- Use CM_PORT env var to connect to a different port (default: 3000)\n- Use CM_AUTH_TOKEN env var for authenticated servers\n\n## Commands\n\n### commandmate ls\n List worktrees with status.\n\n commandmate ls # Table format (ID, NAME, STATUS, DEFAULT)\n commandmate ls --json # JSON output (for agent consumption)\n commandmate ls --quiet # IDs only, one per line (for piping)\n commandmate ls --branch <prefix> # Filter by branch name prefix\n commandmate ls --id <prefix> # Filter by worktree id prefix\n\n Worktree ids are <repo>-<branch> slugs (e.g. anvil-develop). --id / --branch\n front-match is case-sensitive and does NOT guarantee uniqueness (e.g.\n --id anvil-develop also matches anvil-develop-2). --branch and --id combine\n as AND. Use --id to disambiguate the same branch across repositories.\n\n STATUS values:\n idle - Session not started\n ready - Session running, waiting for input (task completed)\n running - Agent executing a task\n waiting - Confirmation prompt active (Yes/No, etc.)\n\n### commandmate send <worktree-id> \"<message>\"\n Send a message to an agent (async). Starts session automatically if not running.\n\n Options:\n --agent <id> Agent type: claude (default), codex, gemini, vibe-local, opencode, copilot, antigravity\n --instance <id> Agent instance ID: <agent> or <agent>-<n> (e.g. claude-2). See \"Multi-Session\" below.\n --register Register the --instance session into the agent-instance roster\n --auto-yes Enable auto-yes before sending\n --duration <d> Auto-yes duration: 1h, 3h, 8h (default: 1h)\n --stop-pattern <p> Auto-yes stop condition (regex)\n\n Finding worktree IDs:\n WT=$(commandmate ls --branch feature/101 --quiet)\n WT=$(commandmate ls --id anvil- --quiet) # disambiguate by repo (id prefix)\n commandmate send \"$WT\" \"Implement this\"\n\n### commandmate wait <worktree-id...>\n Block until agent completes or prompt is detected.\n\n Options:\n --timeout <seconds> Maximum wait time\n --on-prompt <mode> agent (default) or human\n --stall-timeout <seconds> Max time without output change\n --verify After completion, run every verification gate\n --require-work After completion, run only the work-evidence gate\n\n Exit codes:\n 0 - Completed (agent idle/ready), and verified when --verify was given\n 10 - Prompt detected (--on-prompt agent mode)\n 20 - A verification gate failed (--verify)\n 21 - Nothing to verify: no commits, no uncommitted changes\n 124 - Timeout exceeded\n\n --on-prompt modes:\n agent - Returns exit 10 immediately with prompt JSON on stdout\n human - Keeps blocking until human responds via browser UI\n\n Prompt JSON output (exit 10):\n {\"worktreeId\":\"...\",\"cliToolId\":\"claude\",\"type\":\"yes_no\",\"question\":\"...\",\"options\":[\"yes\",\"no\"],\"status\":\"pending\"}\n\n --verify turns \"the agent stopped\" into \"the work passes the repository's own\n checks\". Verification only runs when completion was detected: a prompt (10) or\n a timeout (124) is reported as-is and never verified. With several worktrees,\n gates run one worktree at a time because the server caps concurrent runs.\n\n### commandmate verify <worktree-id>\n Run the gates declared in .commandmate/verify.yaml against a worktree.\n\n Options:\n --gates <id1,id2> Gate ids to run (default: work-evidence + all declared)\n --instance <id> Attribute the run to an agent instance\n --timeout <seconds> Stop polling after N seconds (exit 124)\n --json Print the run and its gate results as JSON on stdout\n\n Exit codes:\n 0 - Every gate passed\n 20 - A gate failed, timed out, or errored\n 21 - work-evidence found nothing to verify (no commits, no changes)\n 99 - The run produced no verdict (bad verify.yaml, gates skipped, cancelled)\n 124 - --timeout elapsed while the run was still going\n\n Output (progress on stderr, verdict on stdout):\n GATE work-evidence PASS (commits=3, uncommitted=2)\n GATE lint PASS (exit=0, 12.3s)\n GATE unit FAIL (exit=1, 45.0s)\n RESULT failed\n\n Gates run in the worktree's own directory. Gates are skipped (run status 99,\n never 0) in the checkout the server itself runs from when verify.yaml sets\n options.skipInPrimaryCheckout, so a 'build' gate cannot replace the assets the\n live app is serving.\n\n### commandmate verify history / commandmate verify show <run-id>\n Read past verification runs. Both are read-only and never start a run, so\n neither returns 20 or 21 \u2014 those mean \"this tree failed verification\", and a\n question about history is not a verdict on the current tree.\n\n commandmate verify history # every worktree, newest 50\n commandmate verify history --worktree <id> # one worktree\n commandmate verify history --days 14 --limit 100 # window and page size\n commandmate verify history --json # JSON array on stdout\n commandmate verify show 42 # gates + log tails\n commandmate verify show 42 --json\n\n history options:\n --worktree <id> Restrict to one worktree (default: all)\n --days <n> Look back n days, 1..90 (default: no lower bound)\n --limit <n> Maximum runs, 1..500 (default: 50)\n\n One run per line. The leading #<run-id> is what \"verify show\" takes:\n #42 2026-07-31T04:12:00.000Z myrepo-feature-101 manual failed failed: unit,build\n\n The listing carries gate verdicts but NOT gate log bodies \u2014 logTail is absent\n from the JSON, not null. Use \"verify show <run-id>\" when you need the log.\n\n Exit codes:\n 0 - Read succeeded (also when nothing matched: stderr note, or [] in JSON)\n 2 - Bad argument (--days/--limit out of range, bad worktree or run id)\n 99 - No such run (404), or an unexpected failure\n\n### commandmate respond <worktree-id> \"<answer>\"\n Respond to an agent's prompt.\n\n commandmate respond <id> \"yes\" # Yes/No\n commandmate respond <id> \"2\" # Multiple choice (number)\n commandmate respond <id> \"custom text\" # Free text\n\n Exit codes:\n 0 - Response sent\n 99 - Prompt already dismissed (prompt_no_longer_active)\n\n### commandmate capture <worktree-id>\n Get current terminal output.\n\n commandmate capture <id> # Plain text\n commandmate capture <id> --json # JSON with status info\n commandmate capture <id> --agent codex # Specific agent\n\n### commandmate auto-yes <worktree-id>\n Control auto-yes (automatic prompt response).\n\n commandmate auto-yes <id> --enable # Enable (default 1h)\n commandmate auto-yes <id> --enable --duration 3h # With duration\n commandmate auto-yes <id> --enable --stop-pattern \"error\"\n commandmate auto-yes <id> --disable # Disable\n\n### commandmate instances <worktree-id> [action] [args]\n Discover and manage a worktree's agent-instance roster (1 agent, multiple sessions).\n\n commandmate instances <id> # List roster + running/auto-yes status\n commandmate instances <id> --json # JSON output\n commandmate instances <id> add --agent codex # Add an instance (auto-generates ID, e.g. codex-2)\n commandmate instances <id> add --agent codex --alias \"Review\" --id codex-3\n commandmate instances <id> remove <instance-id> # Remove from roster\n commandmate instances <id> remove <instance-id> --kill # Remove and kill its session\n commandmate instances <id> alias <instance-id> \"New Name\"\n commandmate instances <id> kill <instance-id> # Kill only that instance's session\n\n See \"Multi-Session\" below for the ID convention and roster semantics.\n\n### commandmate skill <subcommand>\n Manage official Agent Skills. Every subcommand is a thin client over the same\n APIs the browser UI uses: the CLI never downloads, extracts, writes or deletes\n anything itself, and never sends a filesystem path, artifact URL, file list or\n checksum (the API rejects those outright).\n\n commandmate skill list [--json] [--prerelease]\n commandmate skill info <skill-id> [--version <v>] [--json]\n commandmate skill plan <skill-id> --worktree <id> [--version <v>] [--json]\n commandmate skill install <skill-id> --worktree <id> --version <exact> [--dry-run] [--yes] [--ack-risk <id>@<version>] [--json]\n commandmate skill uninstall <skill-id> --worktree <id> [--dry-run] [--yes] [--json]\n commandmate skill status <skill-id> --worktree <id> [--json]\n\n Confirmation contract (writes = install / uninstall):\n - A plan is always built and shown first. --dry-run stops there.\n - Without a TTY, a write REQUIRES --yes. A missing --yes is refused, never\n assumed: an environment that cannot prompt must not install silently.\n - A high-risk Skill additionally requires --ack-risk <skill-id>@<version>\n with the exact id and version. --yes alone never carries a high-risk\n install, in a TTY or out of one.\n\n Exit codes:\n 0 success\n 1 the server or the Catalog could not be reached (retryable)\n 2 invalid arguments, unknown Skill or unknown version\n 11 the worktree refused it (local change, conflict, lock, plan drift)\n 12 the write was never confirmed (no --yes, declined, or missing --ack-risk)\n 13 files changed but the operation needs reconciliation\n\n --json prints the API response body verbatim on stdout; diagnostics, prompts\n and errors always go to stderr, so a failed --json run leaves stdout empty.\n\n 'skill status' reports one Skill in one worktree, read from the install\n receipt on disk. There is no per-worktree listing endpoint yet, so <skill-id>\n is required.\n\n## Multi-Session (1 agent, multiple sessions)\n\n A worktree can run several sessions of the same CLI tool concurrently. Each\n session is an \"instance\" identified by an instance ID:\n <agent> - the agent's primary instance (e.g. \"claude\")\n <agent>-<n> - an additional instance, n >= 2 (e.g. \"claude-2\", \"claude-3\")\n\n --instance is accepted by send / wait / respond / capture / auto-yes.\n send --instance auto-starts the session if it is not already running.\n\n The roster (visible in the browser UI's Agent panel) is the list of known\n instances with aliases and display order. Ad-hoc sessions started via\n 'send --instance' do NOT appear in the roster unless registered:\n commandmate send <id> \"...\" --instance claude-2 --register\n Without --register, the session still runs and responds to CLI commands,\n but it will not show up in the UI sidebar/roster until added there or via\n 'commandmate instances <id> add'.\n\n Per-instance auto-yes: --instance scopes --auto-yes/--duration/--stop-pattern\n to that specific session, independent of other instances of the same agent.\n\n commandmate instances <id> # discover valid --instance values\n commandmate send <id> \"task\" --agent codex --instance codex-2 --auto-yes\n commandmate wait <id> --instance codex-2 --timeout 600\n commandmate capture <id> --agent codex --instance codex-2\n\n## All Exit Codes\n\n 0 SUCCESS - Completed successfully\n 1 DEPENDENCY_ERROR - Server not running\n 2 CONFIG_ERROR - Validation error (invalid agent, duration, etc.)\n 10 PROMPT_DETECTED - Prompt detected during wait\n 20 VERIFY_FAILED - A verification gate failed (verify, wait --verify)\n 21 NOT_STARTED - Nothing to verify: no commits, no uncommitted changes\n 99 UNEXPECTED_ERROR - Unexpected error / resource not found / no verdict\n 124 TIMEOUT - Wait or verification timeout exceeded\n\n When one 'wait' covers several worktrees, the reported code is the highest\n priority one observed: 10 > 20 > 21 > 124.\n\n## Troubleshooting\n\n Server not running:\n commandmate start --daemon\n CM_PORT=3011 commandmate ls # Different port\n\n Worktree not found:\n commandmate ls --quiet # Check registered IDs\n curl -s -X POST http://localhost:3000/api/repositories/sync # Sync new worktrees\n\n Authentication:\n CM_AUTH_TOKEN=your-token commandmate ls\n";
|
|
9
|
-
export declare const AGENT_OPERATIONS_SAMPLES = "# CLI Agent Operations - Workflow Samples\n\nCopy and adapt these patterns for your use case.\n\n## 1. Basic: send, wait, capture\n\n WT=$(commandmate ls --branch feature/101 --quiet)\n commandmate send \"$WT\" \"Implement Issue #101 with TDD\"\n commandmate wait \"$WT\" --timeout 600\n commandmate capture \"$WT\"\n\n## 2. With Auto-Yes (unattended execution)\n\n WT=$(commandmate ls --branch feature/101 --quiet)\n commandmate send \"$WT\" \"Implement Issue #101\" --auto-yes --duration 3h\n commandmate wait \"$WT\" --timeout 1800\n commandmate auto-yes \"$WT\" --disable # Disable for safety\n commandmate capture \"$WT\" --json\n\n## 3. Prompt Response Loop\n\n WT=$(commandmate ls --branch feature/101 --quiet)\n commandmate send \"$WT\" \"Refactor this module\"\n\n while true; do\n commandmate wait \"$WT\" --timeout 600 --on-prompt agent\n EXIT_CODE=$?\n\n if [ $EXIT_CODE -eq 0 ]; then\n echo \"Done\"\n break\n elif [ $EXIT_CODE -eq 10 ]; then\n commandmate respond \"$WT\" \"yes\"\n elif [ $EXIT_CODE -eq 124 ]; then\n echo \"Timeout\"\n break\n fi\n done\n\n commandmate capture \"$WT\"\n\n## 4. Parallel Worktrees\n\n WT1=$(commandmate ls --branch feature/101 --quiet)\n WT2=$(commandmate ls --branch feature/102 --quiet)\n\n commandmate send \"$WT1\" \"Implement #101\" --auto-yes\n commandmate send \"$WT2\" \"Implement #102\" --auto-yes --
|
|
8
|
+
export declare const AGENT_OPERATIONS_GUIDE = "# CLI Agent Operations Guide\n\nOperate agent sessions from the CommandMate CLI.\nThese commands enable coding agents (Claude Code, Codex, etc.) to orchestrate other agents in parallel.\n\n## Prerequisites\n\n- CommandMate server must be running: commandmate start --daemon\n- Target worktrees must be registered (visible in browser UI sidebar)\n- Use CM_PORT env var to connect to a different port (default: 3000)\n- Use CM_AUTH_TOKEN env var for authenticated servers\n\n## Commands\n\n### commandmate ls\n List worktrees with status.\n\n commandmate ls # Table format (ID, NAME, STATUS, DEFAULT)\n commandmate ls --json # JSON output (for agent consumption)\n commandmate ls --quiet # IDs only, one per line (for piping)\n commandmate ls --branch <prefix> # Filter by branch name prefix\n commandmate ls --id <prefix> # Filter by worktree id prefix\n\n Worktree ids are <repo>-<branch> slugs (e.g. anvil-develop). --id / --branch\n front-match is case-sensitive and does NOT guarantee uniqueness (e.g.\n --id anvil-develop also matches anvil-develop-2). --branch and --id combine\n as AND. Use --id to disambiguate the same branch across repositories.\n\n STATUS values:\n idle - Session not started\n ready - Session running, waiting for input (task completed)\n running - Agent executing a task\n waiting - Confirmation prompt active (Yes/No, etc.)\n\n### commandmate send <worktree-id> \"<message>\"\n Send a message to an agent (async). Starts session automatically if not running.\n\n Options:\n --instance <id> Agent instance ID: <agent> or <agent>-<n> (e.g. claude-2, or codex\n for the codex primary instance). The recommended way to name a\n target: send / wait / respond / capture / auto-yes all take it.\n --agent <id> Ad-hoc CLI tool for an instance the roster does not know:\n claude (default), codex, gemini, vibe-local, opencode, copilot, antigravity\n --register Register the --instance session into the agent-instance roster\n --auto-yes Enable auto-yes before sending\n --duration <d> Auto-yes duration: 1h, 3h, 8h (default: 1h)\n --stop-pattern <p> Auto-yes stop condition (regex)\n\n Finding worktree IDs:\n WT=$(commandmate ls --branch feature/101 --quiet)\n WT=$(commandmate ls --id anvil- --quiet) # disambiguate by repo (id prefix)\n commandmate send \"$WT\" \"Implement this\"\n\n Targeting a non-default agent (Issue #1638): pass --instance, not --agent. Only\n --instance is accepted by every command -- 'wait --agent' does not exist -- so a\n workflow that names the agent on 'send' and nothing on 'wait' waits on the wrong\n session in silence.\n commandmate send \"$WT\" \"Implement this\" --instance codex\n commandmate wait \"$WT\" --instance codex\n\n### commandmate wait <worktree-id...>\n Block until agent completes or prompt is detected.\n\n Options:\n --timeout <seconds> Maximum wait time\n --on-prompt <mode> agent (default) or human\n --stall-timeout <seconds> Max time without output change\n --instance <id> Agent instance to wait on. There is no --agent here.\n --verify After completion, run every verification gate\n --require-work After completion, run only the work-evidence gate\n\n Exit codes:\n 0 - Completed (agent idle/ready), and verified when --verify was given\n 10 - Prompt detected (--on-prompt agent mode)\n 20 - A verification gate failed (--verify)\n 21 - Nothing to verify: no commits, no uncommitted changes\n 124 - Timeout exceeded\n\n --on-prompt modes:\n agent - Returns exit 10 immediately with prompt JSON on stdout\n human - Keeps blocking until human responds via browser UI\n\n Prompt JSON output (exit 10):\n {\"worktreeId\":\"...\",\"cliToolId\":\"claude\",\"type\":\"yes_no\",\"question\":\"...\",\"options\":[\"yes\",\"no\"],\"status\":\"pending\"}\n\n --verify turns \"the agent stopped\" into \"the work passes the repository's own\n checks\". Verification only runs when completion was detected: a prompt (10) or\n a timeout (124) is reported as-is and never verified. With several worktrees,\n gates run one worktree at a time because the server caps concurrent runs.\n\n### commandmate verify <worktree-id>\n Run the gates declared in .commandmate/verify.yaml against a worktree.\n\n Options:\n --gates <id1,id2> Gate ids to run (default: work-evidence + all declared)\n --instance <id> Attribute the run to an agent instance\n --timeout <seconds> Stop polling after N seconds (exit 124)\n --json Print the run and its gate results as JSON on stdout\n\n Exit codes:\n 0 - Every gate passed\n 20 - A gate failed, timed out, or errored\n 21 - work-evidence found nothing to verify (no commits, no changes)\n 99 - The run produced no verdict (bad verify.yaml, gates skipped, cancelled)\n 124 - --timeout elapsed while the run was still going\n\n Output (progress on stderr, verdict on stdout):\n GATE work-evidence PASS (commits=3, uncommitted=2)\n GATE lint PASS (exit=0, 12.3s)\n GATE unit FAIL (exit=1, 45.0s)\n RESULT failed\n\n Gates run in the worktree's own directory. Gates are skipped (run status 99,\n never 0) in the checkout the server itself runs from when verify.yaml sets\n options.skipInPrimaryCheckout, so a 'build' gate cannot replace the assets the\n live app is serving.\n\n### commandmate verify history / commandmate verify show <run-id>\n Read past verification runs. Both are read-only and never start a run, so\n neither returns 20 or 21 \u2014 those mean \"this tree failed verification\", and a\n question about history is not a verdict on the current tree.\n\n commandmate verify history # every worktree, newest 50\n commandmate verify history --worktree <id> # one worktree\n commandmate verify history --days 14 --limit 100 # window and page size\n commandmate verify history --json # JSON array on stdout\n commandmate verify show 42 # gates + log tails\n commandmate verify show 42 --json\n\n history options:\n --worktree <id> Restrict to one worktree (default: all)\n --days <n> Look back n days, 1..90 (default: no lower bound)\n --limit <n> Maximum runs, 1..500 (default: 50)\n\n One run per line. The leading #<run-id> is what \"verify show\" takes:\n #42 2026-07-31T04:12:00.000Z myrepo-feature-101 manual failed failed: unit,build\n\n The listing carries gate verdicts but NOT gate log bodies \u2014 logTail is absent\n from the JSON, not null. Use \"verify show <run-id>\" when you need the log.\n\n Exit codes:\n 0 - Read succeeded (also when nothing matched: stderr note, or [] in JSON)\n 2 - Bad argument (--days/--limit out of range, bad worktree or run id)\n 99 - No such run (404), or an unexpected failure\n\n### commandmate respond <worktree-id> \"<answer>\"\n Respond to an agent's prompt.\n\n commandmate respond <id> \"yes\" # Yes/No\n commandmate respond <id> \"2\" # Multiple choice (number)\n commandmate respond <id> \"custom text\" # Free text\n commandmate respond <id> \"yes\" --instance codex-2 # Specific instance\n\n Exit codes:\n 0 - Response sent\n 99 - Prompt already dismissed (prompt_no_longer_active)\n\n### commandmate capture <worktree-id>\n Get current terminal output.\n\n commandmate capture <id> # Plain text\n commandmate capture <id> --json # JSON with status info\n commandmate capture <id> --instance codex # Specific instance\n\n### commandmate auto-yes <worktree-id>\n Control auto-yes (automatic prompt response).\n\n commandmate auto-yes <id> --enable # Enable (default 1h)\n commandmate auto-yes <id> --enable --duration 3h # With duration\n commandmate auto-yes <id> --enable --stop-pattern \"error\"\n commandmate auto-yes <id> --disable # Disable\n commandmate auto-yes <id> --enable --instance codex-2 # Scoped to one instance\n\n### commandmate instances <worktree-id> [action] [args]\n Discover and manage a worktree's agent-instance roster (1 agent, multiple sessions).\n\n commandmate instances <id> # List roster + running/auto-yes status\n commandmate instances <id> --json # JSON output\n commandmate instances <id> add --agent codex # Add an instance (auto-generates ID, e.g. codex-2)\n commandmate instances <id> add --agent codex --alias \"Review\" --id codex-3\n commandmate instances <id> remove <instance-id> # Remove from roster\n commandmate instances <id> remove <instance-id> --kill # Remove and kill its session\n commandmate instances <id> alias <instance-id> \"New Name\"\n commandmate instances <id> kill <instance-id> # Kill only that instance's session\n\n See \"Multi-Session\" below for the ID convention and roster semantics.\n\n### commandmate skill <subcommand>\n Manage official Agent Skills. Every subcommand is a thin client over the same\n APIs the browser UI uses: the CLI never downloads, extracts, writes or deletes\n anything itself, and never sends a filesystem path, artifact URL, file list or\n checksum (the API rejects those outright).\n\n commandmate skill list [--json] [--prerelease]\n commandmate skill info <skill-id> [--version <v>] [--json]\n commandmate skill plan <skill-id> --worktree <id> [--version <v>] [--json]\n commandmate skill install <skill-id> --worktree <id> --version <exact> [--dry-run] [--yes] [--ack-risk <id>@<version>] [--json]\n commandmate skill uninstall <skill-id> --worktree <id> [--dry-run] [--yes] [--json]\n commandmate skill status <skill-id> --worktree <id> [--json]\n\n Confirmation contract (writes = install / uninstall):\n - A plan is always built and shown first. --dry-run stops there.\n - Without a TTY, a write REQUIRES --yes. A missing --yes is refused, never\n assumed: an environment that cannot prompt must not install silently.\n - A high-risk Skill additionally requires --ack-risk <skill-id>@<version>\n with the exact id and version. --yes alone never carries a high-risk\n install, in a TTY or out of one.\n\n Exit codes:\n 0 success\n 1 the server or the Catalog could not be reached (retryable)\n 2 invalid arguments, unknown Skill or unknown version\n 11 the worktree refused it (local change, conflict, lock, plan drift)\n 12 the write was never confirmed (no --yes, declined, or missing --ack-risk)\n 13 files changed but the operation needs reconciliation\n\n --json prints the API response body verbatim on stdout; diagnostics, prompts\n and errors always go to stderr, so a failed --json run leaves stdout empty.\n\n 'skill status' reports one Skill in one worktree, read from the install\n receipt on disk. There is no per-worktree listing endpoint yet, so <skill-id>\n is required.\n\n## Multi-Session (1 agent, multiple sessions)\n\n A worktree can run several sessions of the same CLI tool concurrently. Each\n session is an \"instance\" identified by an instance ID:\n <agent> - the agent's primary instance (e.g. \"claude\")\n <agent>-<n> - an additional instance, n >= 2 (e.g. \"claude-2\", \"claude-3\")\n\n --instance is accepted by send / wait / respond / capture / auto-yes.\n send --instance auto-starts the session if it is not already running.\n\n --instance alone is the recommended way to name a target (Issue #1638). It is\n the only flag all five commands share: --agent is rejected by 'wait'. A\n rostered instance already carries its CLI tool (Issue #1629), and an instance\n id that is itself a tool id resolves to that tool's primary instance even\n without a roster entry, so '--instance codex' needs no --agent.\n\n --agent remains accepted by send / respond / capture / auto-yes as the\n supplement for ad-hoc instances the roster does not know -- notably\n '--register', which cannot infer the tool from an id like codex-3. Passing an\n --agent that contradicts the roster is an error (exit 2), not an override.\n\n The roster (visible in the browser UI's Agent panel) is the list of known\n instances with aliases and display order. Ad-hoc sessions started via\n 'send --instance' do NOT appear in the roster unless registered:\n commandmate send <id> \"...\" --instance claude-2 --register\n Without --register, the session still runs and responds to CLI commands,\n but it will not show up in the UI sidebar/roster until added there or via\n 'commandmate instances <id> add'.\n\n Per-instance auto-yes: --instance scopes --auto-yes/--duration/--stop-pattern\n to that specific session, independent of other instances of the same agent.\n\n commandmate instances <id> # discover valid --instance values\n commandmate send <id> \"task\" --instance codex-2 --auto-yes\n commandmate wait <id> --instance codex-2 --timeout 600\n commandmate capture <id> --instance codex-2\n\n## All Exit Codes\n\n 0 SUCCESS - Completed successfully\n 1 DEPENDENCY_ERROR - Server not running\n 2 CONFIG_ERROR - Validation error (invalid agent, duration, etc.)\n 10 PROMPT_DETECTED - Prompt detected during wait\n 20 VERIFY_FAILED - A verification gate failed (verify, wait --verify)\n 21 NOT_STARTED - Nothing to verify: no commits, no uncommitted changes\n 99 UNEXPECTED_ERROR - Unexpected error / resource not found / no verdict\n 124 TIMEOUT - Wait or verification timeout exceeded\n\n When one 'wait' covers several worktrees, the reported code is the highest\n priority one observed: 10 > 20 > 21 > 124.\n\n## Troubleshooting\n\n Server not running:\n commandmate start --daemon\n CM_PORT=3011 commandmate ls # Different port\n\n Worktree not found:\n commandmate ls --quiet # Check registered IDs\n curl -s -X POST http://localhost:3000/api/repositories/sync # Sync new worktrees\n\n Authentication:\n CM_AUTH_TOKEN=your-token commandmate ls\n";
|
|
9
|
+
export declare const AGENT_OPERATIONS_SAMPLES = "# CLI Agent Operations - Workflow Samples\n\nCopy and adapt these patterns for your use case.\n\n## 1. Basic: send, wait, capture\n\n WT=$(commandmate ls --branch feature/101 --quiet)\n commandmate send \"$WT\" \"Implement Issue #101 with TDD\"\n commandmate wait \"$WT\" --timeout 600\n commandmate capture \"$WT\"\n\n## 2. With Auto-Yes (unattended execution)\n\n WT=$(commandmate ls --branch feature/101 --quiet)\n commandmate send \"$WT\" \"Implement Issue #101\" --auto-yes --duration 3h\n commandmate wait \"$WT\" --timeout 1800\n commandmate auto-yes \"$WT\" --disable # Disable for safety\n commandmate capture \"$WT\" --json\n\n## 3. Prompt Response Loop\n\n WT=$(commandmate ls --branch feature/101 --quiet)\n commandmate send \"$WT\" \"Refactor this module\"\n\n while true; do\n commandmate wait \"$WT\" --timeout 600 --on-prompt agent\n EXIT_CODE=$?\n\n if [ $EXIT_CODE -eq 0 ]; then\n echo \"Done\"\n break\n elif [ $EXIT_CODE -eq 10 ]; then\n commandmate respond \"$WT\" \"yes\"\n elif [ $EXIT_CODE -eq 124 ]; then\n echo \"Timeout\"\n break\n fi\n done\n\n commandmate capture \"$WT\"\n\n## 4. Parallel Worktrees\n\n WT1=$(commandmate ls --branch feature/101 --quiet)\n WT2=$(commandmate ls --branch feature/102 --quiet)\n\n commandmate send \"$WT1\" \"Implement #101\" --auto-yes\n commandmate send \"$WT2\" \"Implement #102\" --auto-yes --instance codex\n\n # One --instance covers every worktree id in the call, so worktrees on\n # different instances need one wait each. Both agents keep running while the\n # first wait blocks, so this costs no wall clock over a combined wait.\n # A bare 'wait \"$WT2\"' would watch WT2's DEFAULT agent, not the codex session:\n # 'wait' has no --agent to correct that with.\n commandmate wait \"$WT1\" --timeout 1800\n commandmate wait \"$WT2\" --instance codex --timeout 1800\n\n commandmate capture \"$WT1\" --json\n commandmate capture \"$WT2\" --instance codex --json\n\n## 5. Check status before sending\n\n # Find worktrees and check status\n commandmate ls --json | python3 -c \"\n import sys, json\n for wt in json.load(sys.stdin):\n if wt['name'].startswith('feature/'):\n print(f\\\"{wt['id']} {wt['name']}\\\")\n \"\n\n## 6. Error handling pattern\n\n WT=$(commandmate ls --branch feature/101 --quiet)\n\n if [ -z \"$WT\" ]; then\n echo \"Error: worktree not found\"\n exit 1\n fi\n\n commandmate send \"$WT\" \"Fix the bug\" --auto-yes\n commandmate wait \"$WT\" --timeout 600\n EXIT_CODE=$?\n\n case $EXIT_CODE in\n 0) echo \"Success\"; commandmate capture \"$WT\" ;;\n 10) echo \"Prompt detected\"; commandmate respond \"$WT\" \"yes\" ;;\n 124) echo \"Timeout\"; commandmate capture \"$WT\" --json ;;\n *) echo \"Error: exit $EXIT_CODE\" ;;\n esac\n\n## 7. Multi-Session: run a second Codex session alongside the primary agent\n\n WT=$(commandmate ls --branch feature/101 --quiet)\n\n # Discover the roster before picking an --instance value\n commandmate instances \"$WT\"\n\n # Register a second Codex instance, then send/wait/capture scoped to it.\n # Once it is in the roster, --instance alone carries the CLI tool.\n commandmate instances \"$WT\" add --agent codex --alias \"Review\"\n commandmate send \"$WT\" \"Review the diff\" --instance codex-2 --auto-yes\n commandmate wait \"$WT\" --instance codex-2 --timeout 600\n commandmate capture \"$WT\" --instance codex-2 --json\n\n # Ad-hoc instance without pre-registering (still runs; register to show in UI).\n # --agent is required here: codex-3 is not in the roster yet, so nothing else\n # says which CLI tool to start.\n commandmate send \"$WT\" \"Quick check\" --agent codex --instance codex-3 --register\n\n # Clean up when done\n commandmate instances \"$WT\" remove codex-2 --kill\n\n## 8. Verify the work instead of trusting \"the agent stopped\"\n\n WT=$(commandmate ls --branch feature/101 --quiet)\n commandmate send \"$WT\" \"Implement Issue #101 with TDD\" --auto-yes\n\n # One call: wait for completion, then run every gate in .commandmate/verify.yaml\n commandmate wait \"$WT\" --timeout 1800 --verify\n case $? in\n 0) echo \"Verified\" ;;\n 10) commandmate respond \"$WT\" \"yes\" ;;\n 20) echo \"A gate failed\"; commandmate verify \"$WT\" --json ;;\n 21) echo \"The agent produced nothing\" ;;\n esac\n\n # Cheap pre-check: is there any work at all, before paying for the full suite?\n commandmate wait \"$WT\" --require-work || echo \"no commits and no changes\"\n\n # Re-run a subset after a fix, without waiting on the agent\n commandmate verify \"$WT\" --gates lint,unit\n";
|
|
10
10
|
//# sourceMappingURL=agent-operations.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-operations.d.ts","sourceRoot":"","sources":["../../../src/cli/docs/agent-operations.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,eAAO,MAAM,sBAAsB,
|
|
1
|
+
{"version":3,"file":"agent-operations.d.ts","sourceRoot":"","sources":["../../../src/cli/docs/agent-operations.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,eAAO,MAAM,sBAAsB,+icA8RlC,CAAC;AAEF,eAAO,MAAM,wBAAwB,klJAmIpC,CAAC"}
|
|
@@ -46,8 +46,11 @@ These commands enable coding agents (Claude Code, Codex, etc.) to orchestrate ot
|
|
|
46
46
|
Send a message to an agent (async). Starts session automatically if not running.
|
|
47
47
|
|
|
48
48
|
Options:
|
|
49
|
-
--
|
|
50
|
-
|
|
49
|
+
--instance <id> Agent instance ID: <agent> or <agent>-<n> (e.g. claude-2, or codex
|
|
50
|
+
for the codex primary instance). The recommended way to name a
|
|
51
|
+
target: send / wait / respond / capture / auto-yes all take it.
|
|
52
|
+
--agent <id> Ad-hoc CLI tool for an instance the roster does not know:
|
|
53
|
+
claude (default), codex, gemini, vibe-local, opencode, copilot, antigravity
|
|
51
54
|
--register Register the --instance session into the agent-instance roster
|
|
52
55
|
--auto-yes Enable auto-yes before sending
|
|
53
56
|
--duration <d> Auto-yes duration: 1h, 3h, 8h (default: 1h)
|
|
@@ -58,6 +61,13 @@ These commands enable coding agents (Claude Code, Codex, etc.) to orchestrate ot
|
|
|
58
61
|
WT=$(commandmate ls --id anvil- --quiet) # disambiguate by repo (id prefix)
|
|
59
62
|
commandmate send "$WT" "Implement this"
|
|
60
63
|
|
|
64
|
+
Targeting a non-default agent (Issue #1638): pass --instance, not --agent. Only
|
|
65
|
+
--instance is accepted by every command -- 'wait --agent' does not exist -- so a
|
|
66
|
+
workflow that names the agent on 'send' and nothing on 'wait' waits on the wrong
|
|
67
|
+
session in silence.
|
|
68
|
+
commandmate send "$WT" "Implement this" --instance codex
|
|
69
|
+
commandmate wait "$WT" --instance codex
|
|
70
|
+
|
|
61
71
|
### commandmate wait <worktree-id...>
|
|
62
72
|
Block until agent completes or prompt is detected.
|
|
63
73
|
|
|
@@ -65,6 +75,7 @@ These commands enable coding agents (Claude Code, Codex, etc.) to orchestrate ot
|
|
|
65
75
|
--timeout <seconds> Maximum wait time
|
|
66
76
|
--on-prompt <mode> agent (default) or human
|
|
67
77
|
--stall-timeout <seconds> Max time without output change
|
|
78
|
+
--instance <id> Agent instance to wait on. There is no --agent here.
|
|
68
79
|
--verify After completion, run every verification gate
|
|
69
80
|
--require-work After completion, run only the work-evidence gate
|
|
70
81
|
|
|
@@ -148,6 +159,7 @@ These commands enable coding agents (Claude Code, Codex, etc.) to orchestrate ot
|
|
|
148
159
|
commandmate respond <id> "yes" # Yes/No
|
|
149
160
|
commandmate respond <id> "2" # Multiple choice (number)
|
|
150
161
|
commandmate respond <id> "custom text" # Free text
|
|
162
|
+
commandmate respond <id> "yes" --instance codex-2 # Specific instance
|
|
151
163
|
|
|
152
164
|
Exit codes:
|
|
153
165
|
0 - Response sent
|
|
@@ -156,9 +168,9 @@ These commands enable coding agents (Claude Code, Codex, etc.) to orchestrate ot
|
|
|
156
168
|
### commandmate capture <worktree-id>
|
|
157
169
|
Get current terminal output.
|
|
158
170
|
|
|
159
|
-
commandmate capture <id>
|
|
160
|
-
commandmate capture <id> --json
|
|
161
|
-
commandmate capture <id> --
|
|
171
|
+
commandmate capture <id> # Plain text
|
|
172
|
+
commandmate capture <id> --json # JSON with status info
|
|
173
|
+
commandmate capture <id> --instance codex # Specific instance
|
|
162
174
|
|
|
163
175
|
### commandmate auto-yes <worktree-id>
|
|
164
176
|
Control auto-yes (automatic prompt response).
|
|
@@ -167,6 +179,7 @@ These commands enable coding agents (Claude Code, Codex, etc.) to orchestrate ot
|
|
|
167
179
|
commandmate auto-yes <id> --enable --duration 3h # With duration
|
|
168
180
|
commandmate auto-yes <id> --enable --stop-pattern "error"
|
|
169
181
|
commandmate auto-yes <id> --disable # Disable
|
|
182
|
+
commandmate auto-yes <id> --enable --instance codex-2 # Scoped to one instance
|
|
170
183
|
|
|
171
184
|
### commandmate instances <worktree-id> [action] [args]
|
|
172
185
|
Discover and manage a worktree's agent-instance roster (1 agent, multiple sessions).
|
|
@@ -228,6 +241,17 @@ These commands enable coding agents (Claude Code, Codex, etc.) to orchestrate ot
|
|
|
228
241
|
--instance is accepted by send / wait / respond / capture / auto-yes.
|
|
229
242
|
send --instance auto-starts the session if it is not already running.
|
|
230
243
|
|
|
244
|
+
--instance alone is the recommended way to name a target (Issue #1638). It is
|
|
245
|
+
the only flag all five commands share: --agent is rejected by 'wait'. A
|
|
246
|
+
rostered instance already carries its CLI tool (Issue #1629), and an instance
|
|
247
|
+
id that is itself a tool id resolves to that tool's primary instance even
|
|
248
|
+
without a roster entry, so '--instance codex' needs no --agent.
|
|
249
|
+
|
|
250
|
+
--agent remains accepted by send / respond / capture / auto-yes as the
|
|
251
|
+
supplement for ad-hoc instances the roster does not know -- notably
|
|
252
|
+
'--register', which cannot infer the tool from an id like codex-3. Passing an
|
|
253
|
+
--agent that contradicts the roster is an error (exit 2), not an override.
|
|
254
|
+
|
|
231
255
|
The roster (visible in the browser UI's Agent panel) is the list of known
|
|
232
256
|
instances with aliases and display order. Ad-hoc sessions started via
|
|
233
257
|
'send --instance' do NOT appear in the roster unless registered:
|
|
@@ -240,9 +264,9 @@ These commands enable coding agents (Claude Code, Codex, etc.) to orchestrate ot
|
|
|
240
264
|
to that specific session, independent of other instances of the same agent.
|
|
241
265
|
|
|
242
266
|
commandmate instances <id> # discover valid --instance values
|
|
243
|
-
commandmate send <id> "task" --
|
|
267
|
+
commandmate send <id> "task" --instance codex-2 --auto-yes
|
|
244
268
|
commandmate wait <id> --instance codex-2 --timeout 600
|
|
245
|
-
commandmate capture <id> --
|
|
269
|
+
commandmate capture <id> --instance codex-2
|
|
246
270
|
|
|
247
271
|
## All Exit Codes
|
|
248
272
|
|
|
@@ -318,12 +342,18 @@ Copy and adapt these patterns for your use case.
|
|
|
318
342
|
WT2=$(commandmate ls --branch feature/102 --quiet)
|
|
319
343
|
|
|
320
344
|
commandmate send "$WT1" "Implement #101" --auto-yes
|
|
321
|
-
commandmate send "$WT2" "Implement #102" --auto-yes --
|
|
345
|
+
commandmate send "$WT2" "Implement #102" --auto-yes --instance codex
|
|
322
346
|
|
|
323
|
-
|
|
347
|
+
# One --instance covers every worktree id in the call, so worktrees on
|
|
348
|
+
# different instances need one wait each. Both agents keep running while the
|
|
349
|
+
# first wait blocks, so this costs no wall clock over a combined wait.
|
|
350
|
+
# A bare 'wait "$WT2"' would watch WT2's DEFAULT agent, not the codex session:
|
|
351
|
+
# 'wait' has no --agent to correct that with.
|
|
352
|
+
commandmate wait "$WT1" --timeout 1800
|
|
353
|
+
commandmate wait "$WT2" --instance codex --timeout 1800
|
|
324
354
|
|
|
325
355
|
commandmate capture "$WT1" --json
|
|
326
|
-
commandmate capture "$WT2" --json
|
|
356
|
+
commandmate capture "$WT2" --instance codex --json
|
|
327
357
|
|
|
328
358
|
## 5. Check status before sending
|
|
329
359
|
|
|
@@ -362,13 +392,16 @@ Copy and adapt these patterns for your use case.
|
|
|
362
392
|
# Discover the roster before picking an --instance value
|
|
363
393
|
commandmate instances "$WT"
|
|
364
394
|
|
|
365
|
-
# Register a second Codex instance, then send/wait/capture scoped to it
|
|
395
|
+
# Register a second Codex instance, then send/wait/capture scoped to it.
|
|
396
|
+
# Once it is in the roster, --instance alone carries the CLI tool.
|
|
366
397
|
commandmate instances "$WT" add --agent codex --alias "Review"
|
|
367
|
-
commandmate send "$WT" "Review the diff" --
|
|
398
|
+
commandmate send "$WT" "Review the diff" --instance codex-2 --auto-yes
|
|
368
399
|
commandmate wait "$WT" --instance codex-2 --timeout 600
|
|
369
|
-
commandmate capture "$WT" --
|
|
400
|
+
commandmate capture "$WT" --instance codex-2 --json
|
|
370
401
|
|
|
371
|
-
# Ad-hoc instance without pre-registering (still runs; register to show in UI)
|
|
402
|
+
# Ad-hoc instance without pre-registering (still runs; register to show in UI).
|
|
403
|
+
# --agent is required here: codex-3 is not in the roster yet, so nothing else
|
|
404
|
+
# says which CLI tool to start.
|
|
372
405
|
commandmate send "$WT" "Quick check" --agent codex --instance codex-3 --register
|
|
373
406
|
|
|
374
407
|
# Clean up when done
|
|
@@ -314,6 +314,22 @@ export interface CaptureOptions {
|
|
|
314
314
|
token?: string;
|
|
315
315
|
/** Issue #868: agent instance ID or alias (defaults to the agent's primary instance) */
|
|
316
316
|
instance?: string;
|
|
317
|
+
/**
|
|
318
|
+
* Issue #1623: read the raw tmux pane instead of the accumulated response.
|
|
319
|
+
* `capture` without this answers "what is the agent saying right now" and is
|
|
320
|
+
* empty while idle; `--pane` answers "what is on screen", which is what a
|
|
321
|
+
* human wants to read.
|
|
322
|
+
*/
|
|
323
|
+
pane?: boolean;
|
|
324
|
+
/**
|
|
325
|
+
* Issue #1623: with `--pane`, keep only the last N lines of the SQUEEZED
|
|
326
|
+
* transcript. Counting after the squeeze is what makes the number useful — on
|
|
327
|
+
* a 1000-row canvas whose transcript ends at row 254, tailing the raw frame
|
|
328
|
+
* would return blank padding.
|
|
329
|
+
*/
|
|
330
|
+
tail?: string;
|
|
331
|
+
/** Issue #1623: with `--pane`, print the frame verbatim (no blank-row squeeze). */
|
|
332
|
+
raw?: boolean;
|
|
317
333
|
}
|
|
318
334
|
/** auto-yes command options [Issue #518] */
|
|
319
335
|
export interface AutoYesOptions {
|