commandmate 0.16.0 → 0.18.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 +298 -228
- package/.next/app-path-routes-manifest.json +39 -29
- package/.next/build-manifest.json +2 -2
- package/.next/prerender-manifest.json +12 -12
- package/.next/required-server-files.json +1 -1
- package/.next/routes-manifest.json +57 -0
- package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/server/app/api/app/update/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/app/update-check/route.js +1 -1
- package/.next/server/app/api/app/update-check/route_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 +3 -3
- package/.next/server/app/api/assistant/terminal/route.js.nft.json +1 -1
- package/.next/server/app/api/assistant/terminal/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/assistant/tools/route.js +1 -1
- package/.next/server/app/api/assistant/tools/route.js.nft.json +1 -1
- package/.next/server/app/api/assistant/tools/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/auth/login/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/auth/logout/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/auth/status/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/daily-summary/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/daily-summary/status/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/external-apps/[id]/health/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/external-apps/[id]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/external-apps/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/fs/browse/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/fs/recent-paths/route.js +1 -1
- package/.next/server/app/api/fs/recent-paths/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/hooks/agent-event/route.js +1 -0
- package/.next/server/app/api/hooks/agent-event/route.js.nft.json +1 -0
- package/.next/server/app/api/hooks/agent-event/route_client-reference-manifest.js +1 -0
- 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 +37 -0
- package/.next/server/app/api/metrics/vibe/route.js.nft.json +1 -0
- package/.next/server/app/api/metrics/vibe/route_client-reference-manifest.js +1 -0
- 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_client-reference-manifest.js +1 -1
- package/.next/server/app/api/push/vapid/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/repositories/[id]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/repositories/[id]/todos/[todoId]/route.js +1 -1
- package/.next/server/app/api/repositories/[id]/todos/[todoId]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/repositories/[id]/todos/route.js +1 -1
- package/.next/server/app/api/repositories/[id]/todos/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/repositories/clone/[jobId]/route.js +1 -1
- package/.next/server/app/api/repositories/clone/[jobId]/route.js.nft.json +1 -1
- package/.next/server/app/api/repositories/clone/[jobId]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/repositories/clone/route.js +1 -1
- package/.next/server/app/api/repositories/clone/route.js.nft.json +1 -1
- package/.next/server/app/api/repositories/clone/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/repositories/excluded/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/repositories/restore/route.js +1 -1
- package/.next/server/app/api/repositories/restore/route.js.nft.json +1 -1
- package/.next/server/app/api/repositories/restore/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/repositories/route.js +1 -1
- package/.next/server/app/api/repositories/route.js.nft.json +1 -1
- package/.next/server/app/api/repositories/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/repositories/scan/route.js +1 -1
- package/.next/server/app/api/repositories/scan/route.js.nft.json +1 -1
- package/.next/server/app/api/repositories/scan/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/repositories/sync/route.js +1 -1
- package/.next/server/app/api/repositories/sync/route.js.nft.json +1 -1
- package/.next/server/app/api/repositories/sync/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/repositories/validate-path/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/sidebar/group-order/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/skills/[id]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/skills/installations/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/skills/operations/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/skills/reindex/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/skills/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/slash-commands/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/tasks/[taskId]/cancel/route.js +4 -0
- package/.next/server/app/api/tasks/[taskId]/cancel/route.js.nft.json +1 -0
- package/.next/server/app/api/tasks/[taskId]/cancel/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/tasks/[taskId]/route.js +4 -0
- package/.next/server/app/api/tasks/[taskId]/route.js.nft.json +1 -0
- package/.next/server/app/api/tasks/[taskId]/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/templates/[id]/route.js +1 -1
- package/.next/server/app/api/templates/[id]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/templates/route.js +1 -1
- package/.next/server/app/api/templates/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/todos/route.js +1 -1
- package/.next/server/app/api/todos/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/verification/runs/[runId]/route.js +1 -0
- package/.next/server/app/api/verification/runs/[runId]/route.js.nft.json +1 -0
- package/.next/server/app/api/verification/runs/[runId]/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/verification/runs/route.js +1 -0
- package/.next/server/app/api/verification/runs/route.js.nft.json +1 -0
- package/.next/server/app/api/verification/runs/route_client-reference-manifest.js +1 -0
- 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_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/cmate/schedules/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/cmate/schedules/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/current-output/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/current-output/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/current-output/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/execution-logs/[logId]/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/execution-logs/[logId]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/execution-logs/route.js +2 -2
- 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_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/branch/create/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/branch/create/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/branch/delete/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/branch/delete/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/branches/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/branches/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/checkout/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/checkout/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/commit/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/commit/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/diff/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/diff/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/fetch/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/fetch/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/log/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/log/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/pull/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/pull/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/push/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/push/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/reset/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/reset/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/revert/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/revert/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/show/[commitHash]/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/show/[commitHash]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/stage/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/stage/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/staged/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/staged/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/stash/[index]/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/stash/[index]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/stash/apply/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/stash/apply/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/stash/pop/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/stash/pop/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/stash/push/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/stash/push/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/stash/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/stash/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/status/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/status/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/unstage/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/unstage/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/working-diff/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/working-diff/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/interrupt/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/interrupt/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/interrupt/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/kill-session/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/kill-session/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/kill-session/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/logs/[filename]/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/logs/[filename]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/logs/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/logs/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/marp-render/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/marp-render/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/memos/[memoId]/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/memos/[memoId]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/memos/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/memos/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/messages/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/messages/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/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 +1 -1
- package/.next/server/app/api/worktrees/[id]/schedules/[scheduleId]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/schedules/active/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/schedules/active/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/schedules/route.js +2 -2
- 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_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/send/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/send/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/send/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/skills/[skillId]/git-workflow/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/skills/[skillId]/git-workflow/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/skills/[skillId]/git-workflow/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/skills/[skillId]/install/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/skills/[skillId]/plan/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall-plan/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/skills/route.js +2 -2
- package/.next/server/app/api/worktrees/[id]/skills/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/slash-commands/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/slash-commands/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/special-keys/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/special-keys/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/special-keys/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/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 +6 -0
- package/.next/server/app/api/worktrees/[id]/tasks/route.js.nft.json +1 -0
- package/.next/server/app/api/worktrees/[id]/tasks/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/worktrees/[id]/terminal/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/terminal/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/terminal/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/timers/history/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/timers/history/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/timers/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/timers/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/timers/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/todos/[todoId]/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/todos/[todoId]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/todos/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/todos/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/tree/[...path]/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/tree/[...path]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/tree/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/tree/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/upload/[...path]/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/upload/[...path]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/verify/route.js +4 -0
- package/.next/server/app/api/worktrees/[id]/verify/route.js.nft.json +1 -0
- package/.next/server/app/api/worktrees/[id]/verify/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/worktrees/[id]/verify/runs/[runId]/route.js +1 -0
- package/.next/server/app/api/worktrees/[id]/verify/runs/[runId]/route.js.nft.json +1 -0
- package/.next/server/app/api/worktrees/[id]/verify/runs/[runId]/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/worktrees/[id]/verify/runs/route.js +1 -0
- package/.next/server/app/api/worktrees/[id]/verify/runs/route.js.nft.json +1 -0
- package/.next/server/app/api/worktrees/[id]/verify/runs/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/worktrees/[id]/viewed/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/viewed/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/route.js +1 -1
- package/.next/server/app/api/worktrees/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/route_client-reference-manifest.js +1 -1
- package/.next/server/app/chat/page_client-reference-manifest.js +1 -1
- package/.next/server/app/login/page_client-reference-manifest.js +1 -1
- package/.next/server/app/manifest.webmanifest/route_client-reference-manifest.js +1 -1
- package/.next/server/app/more/page_client-reference-manifest.js +1 -1
- package/.next/server/app/offline/page_client-reference-manifest.js +1 -1
- package/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/server/app/proxy/[...path]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/repositories/page.js +1 -1
- package/.next/server/app/repositories/page_client-reference-manifest.js +1 -1
- package/.next/server/app/review/page.js +1 -1
- package/.next/server/app/review/page_client-reference-manifest.js +1 -1
- package/.next/server/app/sessions/page.js +1 -1
- package/.next/server/app/sessions/page_client-reference-manifest.js +1 -1
- package/.next/server/app/skills/[skillId]/page_client-reference-manifest.js +1 -1
- package/.next/server/app/skills/installed/page_client-reference-manifest.js +1 -1
- package/.next/server/app/skills/page_client-reference-manifest.js +1 -1
- package/.next/server/app/worktrees/[id]/files/[...path]/page_client-reference-manifest.js +1 -1
- package/.next/server/app/worktrees/[id]/page.js +2 -2
- package/.next/server/app/worktrees/[id]/page_client-reference-manifest.js +1 -1
- package/.next/server/app/worktrees/[id]/terminal/page_client-reference-manifest.js +1 -1
- package/.next/server/app-paths-manifest.json +39 -29
- package/.next/server/chunks/1068.js +1 -1
- package/.next/server/chunks/1117.js +1 -1
- package/.next/server/chunks/1503.js +2 -0
- package/.next/server/chunks/2366.js +1 -0
- package/.next/server/chunks/3042.js +1 -1
- package/.next/server/chunks/3736.js +1 -1
- package/.next/server/chunks/4444.js +1 -1
- package/.next/server/chunks/4689.js +25 -0
- package/.next/server/chunks/5381.js +50 -10
- package/.next/server/chunks/5959.js +3 -3
- package/.next/server/chunks/6130.js +1 -1
- package/.next/server/chunks/6274.js +13 -0
- package/.next/server/chunks/646.js +1 -1
- package/.next/server/chunks/8681.js +1 -1
- package/.next/server/chunks/8807.js +194 -51
- package/.next/server/chunks/8856.js +4 -0
- package/.next/server/chunks/9687.js +2 -2
- package/.next/server/middleware-manifest.json +5 -5
- package/.next/server/pages/500.html +1 -1
- package/.next/server/server-reference-manifest.json +1 -1
- package/.next/static/-BSmW0Ae2YsxyCl_ue7_d/_buildManifest.js +1 -0
- package/.next/static/chunks/{4560-8ffb0bb19f2ba998.js → 4560-0917ae2e6a0e5400.js} +1 -1
- package/.next/static/chunks/{6488-c2a968ec806975c2.js → 6488-109e3825c7249e47.js} +1 -1
- package/.next/static/chunks/app/api/app/update/route-8440b6c72bed83a1.js +1 -0
- package/.next/static/chunks/app/api/app/update-check/route-8440b6c72bed83a1.js +1 -0
- package/.next/static/chunks/app/api/assistant/conversation/route-8440b6c72bed83a1.js +1 -0
- package/.next/static/chunks/app/api/assistant/current-output/route-8440b6c72bed83a1.js +1 -0
- package/.next/static/chunks/app/api/assistant/messages/route-8440b6c72bed83a1.js +1 -0
- package/.next/static/chunks/app/api/assistant/session/route-8440b6c72bed83a1.js +1 -0
- package/.next/static/chunks/app/api/assistant/start/route-8440b6c72bed83a1.js +1 -0
- package/.next/static/chunks/app/api/assistant/terminal/route-8440b6c72bed83a1.js +1 -0
- package/.next/static/chunks/app/api/assistant/tools/route-8440b6c72bed83a1.js +1 -0
- package/.next/static/chunks/app/api/auth/login/route-8440b6c72bed83a1.js +1 -0
- package/.next/static/chunks/app/api/auth/logout/route-8440b6c72bed83a1.js +1 -0
- package/.next/static/chunks/app/api/auth/status/route-8440b6c72bed83a1.js +1 -0
- package/.next/static/chunks/app/api/daily-summary/route-8440b6c72bed83a1.js +1 -0
- package/.next/static/chunks/app/api/daily-summary/status/route-8440b6c72bed83a1.js +1 -0
- package/.next/static/chunks/app/api/external-apps/[id]/health/route-8440b6c72bed83a1.js +1 -0
- package/.next/static/chunks/app/api/external-apps/[id]/route-8440b6c72bed83a1.js +1 -0
- package/.next/static/chunks/app/api/external-apps/route-8440b6c72bed83a1.js +1 -0
- package/.next/static/chunks/app/api/fs/browse/route-8440b6c72bed83a1.js +1 -0
- package/.next/static/chunks/app/api/fs/recent-paths/route-8440b6c72bed83a1.js +1 -0
- package/.next/static/chunks/app/api/hooks/agent-event/route-8440b6c72bed83a1.js +1 -0
- package/.next/static/chunks/app/api/hooks/claude-done/route-8440b6c72bed83a1.js +1 -0
- package/.next/static/chunks/app/api/metrics/vibe/route-8440b6c72bed83a1.js +1 -0
- package/.next/static/chunks/app/api/ollama/models/route-8440b6c72bed83a1.js +1 -0
- package/.next/static/chunks/app/api/push/subscriptions/route-8440b6c72bed83a1.js +1 -0
- package/.next/static/chunks/app/api/push/vapid/route-8440b6c72bed83a1.js +1 -0
- package/.next/static/chunks/app/api/repositories/[id]/route-8440b6c72bed83a1.js +1 -0
- package/.next/static/chunks/app/api/repositories/[id]/todos/[todoId]/route-8440b6c72bed83a1.js +1 -0
- package/.next/static/chunks/app/api/repositories/[id]/todos/route-8440b6c72bed83a1.js +1 -0
- package/.next/static/chunks/app/api/repositories/clone/[jobId]/route-8440b6c72bed83a1.js +1 -0
- package/.next/static/chunks/app/api/repositories/clone/route-8440b6c72bed83a1.js +1 -0
- package/.next/static/chunks/app/api/repositories/excluded/route-8440b6c72bed83a1.js +1 -0
- package/.next/static/chunks/app/api/repositories/restore/route-8440b6c72bed83a1.js +1 -0
- package/.next/static/chunks/app/api/repositories/route-8440b6c72bed83a1.js +1 -0
- package/.next/static/chunks/app/api/repositories/scan/route-8440b6c72bed83a1.js +1 -0
- package/.next/static/chunks/app/api/repositories/sync/route-8440b6c72bed83a1.js +1 -0
- package/.next/static/chunks/app/api/repositories/validate-path/route-8440b6c72bed83a1.js +1 -0
- package/.next/static/chunks/app/api/sidebar/group-order/route-8440b6c72bed83a1.js +1 -0
- package/.next/static/chunks/app/api/skills/[id]/route-8440b6c72bed83a1.js +1 -0
- package/.next/static/chunks/app/api/skills/installations/route-8440b6c72bed83a1.js +1 -0
- package/.next/static/chunks/app/api/skills/operations/route-8440b6c72bed83a1.js +1 -0
- package/.next/static/chunks/app/api/skills/reindex/route-8440b6c72bed83a1.js +1 -0
- package/.next/static/chunks/app/api/skills/route-8440b6c72bed83a1.js +1 -0
- package/.next/static/chunks/app/api/slash-commands/route-8440b6c72bed83a1.js +1 -0
- package/.next/static/chunks/app/api/tasks/[taskId]/cancel/route-8440b6c72bed83a1.js +1 -0
- package/.next/static/chunks/app/api/tasks/[taskId]/route-8440b6c72bed83a1.js +1 -0
- package/.next/static/chunks/app/api/templates/[id]/route-8440b6c72bed83a1.js +1 -0
- package/.next/static/chunks/app/api/templates/route-8440b6c72bed83a1.js +1 -0
- package/.next/static/chunks/app/api/todos/route-8440b6c72bed83a1.js +1 -0
- package/.next/static/chunks/app/api/verification/runs/[runId]/route-8440b6c72bed83a1.js +1 -0
- package/.next/static/chunks/app/api/verification/runs/route-8440b6c72bed83a1.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/auto-yes/route-8440b6c72bed83a1.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/capture/route-8440b6c72bed83a1.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/cli-tool/route-8440b6c72bed83a1.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/cmate/schedules/route-8440b6c72bed83a1.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/current-output/route-8440b6c72bed83a1.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/execution-logs/[logId]/route-8440b6c72bed83a1.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/execution-logs/route-8440b6c72bed83a1.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/files/[...path]/route-8440b6c72bed83a1.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/branch/create/route-8440b6c72bed83a1.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/branch/delete/route-8440b6c72bed83a1.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/branches/route-8440b6c72bed83a1.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/checkout/route-8440b6c72bed83a1.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/commit/route-8440b6c72bed83a1.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/diff/route-8440b6c72bed83a1.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/fetch/route-8440b6c72bed83a1.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/log/route-8440b6c72bed83a1.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/pull/route-8440b6c72bed83a1.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/push/route-8440b6c72bed83a1.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/reset/route-8440b6c72bed83a1.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/revert/route-8440b6c72bed83a1.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/show/[commitHash]/route-8440b6c72bed83a1.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/stage/route-8440b6c72bed83a1.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/staged/route-8440b6c72bed83a1.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/stash/[index]/route-8440b6c72bed83a1.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/stash/apply/route-8440b6c72bed83a1.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/stash/pop/route-8440b6c72bed83a1.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/stash/push/route-8440b6c72bed83a1.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/stash/route-8440b6c72bed83a1.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/status/route-8440b6c72bed83a1.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/unstage/route-8440b6c72bed83a1.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/working-diff/route-8440b6c72bed83a1.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/interrupt/route-8440b6c72bed83a1.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/kill-session/route-8440b6c72bed83a1.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/logs/[filename]/route-8440b6c72bed83a1.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/logs/route-8440b6c72bed83a1.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/marp-render/route-8440b6c72bed83a1.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/memos/[memoId]/route-8440b6c72bed83a1.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/memos/route-8440b6c72bed83a1.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/messages/route-8440b6c72bed83a1.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/prompt-response/route-8440b6c72bed83a1.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/respond/route-8440b6c72bed83a1.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/route-8440b6c72bed83a1.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/schedules/[scheduleId]/route-8440b6c72bed83a1.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/schedules/active/route-8440b6c72bed83a1.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/schedules/route-8440b6c72bed83a1.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/search/route-8440b6c72bed83a1.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/send/route-8440b6c72bed83a1.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/git-workflow/route-8440b6c72bed83a1.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/install/route-8440b6c72bed83a1.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/plan/route-8440b6c72bed83a1.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/uninstall/route-8440b6c72bed83a1.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/uninstall-plan/route-8440b6c72bed83a1.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/skills/route-8440b6c72bed83a1.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/slash-commands/route-8440b6c72bed83a1.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/special-keys/route-8440b6c72bed83a1.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/start-polling/route-8440b6c72bed83a1.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/tasks/route-8440b6c72bed83a1.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/terminal/route-8440b6c72bed83a1.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/timers/history/route-8440b6c72bed83a1.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/timers/route-8440b6c72bed83a1.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/todos/[todoId]/route-8440b6c72bed83a1.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/todos/route-8440b6c72bed83a1.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/tree/[...path]/route-8440b6c72bed83a1.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/tree/route-8440b6c72bed83a1.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/upload/[...path]/route-8440b6c72bed83a1.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/verify/route-8440b6c72bed83a1.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/verify/runs/[runId]/route-8440b6c72bed83a1.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/verify/runs/route-8440b6c72bed83a1.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/viewed/route-8440b6c72bed83a1.js +1 -0
- package/.next/static/chunks/app/api/worktrees/route-8440b6c72bed83a1.js +1 -0
- package/.next/static/chunks/app/manifest.webmanifest/route-8440b6c72bed83a1.js +1 -0
- package/.next/static/chunks/app/proxy/[...path]/route-8440b6c72bed83a1.js +1 -0
- package/.next/static/chunks/app/repositories/page-1ed1e5a542ecc168.js +1 -0
- package/.next/static/chunks/app/review/{page-f431d630097c2e85.js → page-b559bfb11c46931b.js} +1 -1
- package/.next/static/chunks/app/sessions/{page-20f07a99db64d2ca.js → page-3fa7e767d0ab3889.js} +1 -1
- package/.next/static/chunks/app/worktrees/[id]/page-12b3c5f32fc6094e.js +1 -0
- package/.next/trace +12 -11
- package/.next/types/app/api/hooks/agent-event/route.ts +347 -0
- package/.next/types/app/api/metrics/vibe/route.ts +347 -0
- package/.next/types/app/api/tasks/[taskId]/cancel/route.ts +347 -0
- package/.next/types/app/api/tasks/[taskId]/route.ts +347 -0
- package/.next/types/app/api/verification/runs/[runId]/route.ts +347 -0
- package/.next/types/app/api/verification/runs/route.ts +347 -0
- package/.next/types/app/api/worktrees/[id]/tasks/route.ts +347 -0
- package/.next/types/app/api/worktrees/[id]/verify/route.ts +347 -0
- package/.next/types/app/api/worktrees/[id]/verify/runs/[runId]/route.ts +347 -0
- package/.next/types/app/api/worktrees/[id]/verify/runs/route.ts +347 -0
- package/.next/types/routes.d.ts +11 -1
- package/.next/types/validator.ts +90 -0
- package/dist/cli/commands/report.d.ts +1 -0
- package/dist/cli/commands/report.d.ts.map +1 -1
- package/dist/cli/commands/report.js +54 -0
- package/dist/cli/commands/send.d.ts.map +1 -1
- package/dist/cli/commands/send.js +116 -14
- package/dist/cli/commands/task.d.ts +11 -0
- package/dist/cli/commands/task.d.ts.map +1 -0
- package/dist/cli/commands/task.js +126 -0
- package/dist/cli/commands/verify.d.ts +19 -0
- package/dist/cli/commands/verify.d.ts.map +1 -0
- package/dist/cli/commands/verify.js +229 -0
- package/dist/cli/commands/wait.d.ts +2 -0
- package/dist/cli/commands/wait.d.ts.map +1 -1
- package/dist/cli/commands/wait.js +128 -13
- 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 +92 -3
- package/dist/cli/program.d.ts.map +1 -1
- package/dist/cli/program.js +6 -0
- package/dist/cli/types/api-responses.d.ts +180 -0
- package/dist/cli/types/api-responses.d.ts.map +1 -1
- package/dist/cli/types/index.d.ts +82 -0
- package/dist/cli/types/index.d.ts.map +1 -1
- package/dist/cli/types/index.js +30 -1
- package/dist/cli/utils/api-client.d.ts +8 -0
- package/dist/cli/utils/api-client.d.ts.map +1 -1
- package/dist/cli/utils/verify-runner.d.ts +63 -0
- package/dist/cli/utils/verify-runner.d.ts.map +1 -0
- package/dist/cli/utils/verify-runner.js +175 -0
- package/dist/server/server.js +15 -0
- package/dist/server/src/config/auto-yes-config.js +22 -0
- package/dist/server/src/lib/auto-yes-poller.js +34 -2
- package/dist/server/src/lib/auto-yes-state.js +6 -19
- package/dist/server/src/lib/db/db.js +34 -1
- package/dist/server/src/lib/db/migrations/index.js +6 -0
- package/dist/server/src/lib/db/migrations/runner.js +1 -1
- package/dist/server/src/lib/db/migrations/v49-verification-runs.js +86 -0
- package/dist/server/src/lib/db/migrations/v50-tasks.js +68 -0
- package/dist/server/src/lib/db/migrations/v51-task-events.js +58 -0
- package/dist/server/src/lib/db/task-events-db.js +59 -0
- package/dist/server/src/lib/db/tasks-db.js +263 -0
- package/dist/server/src/lib/db/verification-db.js +290 -0
- package/dist/server/src/lib/polling/auto-yes-policy.js +117 -0
- package/dist/server/src/lib/polling/auto-yes-resolver.js +144 -4
- package/dist/server/src/lib/polling/response-checker.js +8 -0
- package/dist/server/src/lib/session/agent-event-state.js +46 -0
- package/dist/server/src/lib/session/current-output-builder.js +4 -0
- package/dist/server/src/lib/session/status-mapping.js +146 -0
- package/dist/server/src/lib/tasks/contract-parser.js +385 -0
- package/dist/server/src/lib/tasks/task-state-machine.js +183 -0
- package/dist/server/src/lib/tasks/task-transition-service.js +106 -0
- package/dist/server/src/lib/verification/verification-reconciler.js +49 -0
- package/dist/server/src/types/sidebar.js +7 -20
- package/package.json +5 -2
- package/scripts/hooks/cmate-agent-event.sh +175 -0
- package/.next/server/chunks/2064.js +0 -2
- package/.next/static/AKqbAyuzbFfg05qpbCI_K/_buildManifest.js +0 -1
- package/.next/static/chunks/app/api/app/update/route-55e398bd20e2d7a9.js +0 -1
- package/.next/static/chunks/app/api/app/update-check/route-55e398bd20e2d7a9.js +0 -1
- package/.next/static/chunks/app/api/assistant/conversation/route-55e398bd20e2d7a9.js +0 -1
- package/.next/static/chunks/app/api/assistant/current-output/route-55e398bd20e2d7a9.js +0 -1
- package/.next/static/chunks/app/api/assistant/messages/route-55e398bd20e2d7a9.js +0 -1
- package/.next/static/chunks/app/api/assistant/session/route-55e398bd20e2d7a9.js +0 -1
- package/.next/static/chunks/app/api/assistant/start/route-55e398bd20e2d7a9.js +0 -1
- package/.next/static/chunks/app/api/assistant/terminal/route-55e398bd20e2d7a9.js +0 -1
- package/.next/static/chunks/app/api/assistant/tools/route-55e398bd20e2d7a9.js +0 -1
- package/.next/static/chunks/app/api/auth/login/route-55e398bd20e2d7a9.js +0 -1
- package/.next/static/chunks/app/api/auth/logout/route-55e398bd20e2d7a9.js +0 -1
- package/.next/static/chunks/app/api/auth/status/route-55e398bd20e2d7a9.js +0 -1
- package/.next/static/chunks/app/api/daily-summary/route-55e398bd20e2d7a9.js +0 -1
- package/.next/static/chunks/app/api/daily-summary/status/route-55e398bd20e2d7a9.js +0 -1
- package/.next/static/chunks/app/api/external-apps/[id]/health/route-55e398bd20e2d7a9.js +0 -1
- package/.next/static/chunks/app/api/external-apps/[id]/route-55e398bd20e2d7a9.js +0 -1
- package/.next/static/chunks/app/api/external-apps/route-55e398bd20e2d7a9.js +0 -1
- package/.next/static/chunks/app/api/fs/browse/route-55e398bd20e2d7a9.js +0 -1
- package/.next/static/chunks/app/api/fs/recent-paths/route-55e398bd20e2d7a9.js +0 -1
- package/.next/static/chunks/app/api/hooks/claude-done/route-55e398bd20e2d7a9.js +0 -1
- package/.next/static/chunks/app/api/ollama/models/route-55e398bd20e2d7a9.js +0 -1
- package/.next/static/chunks/app/api/push/subscriptions/route-55e398bd20e2d7a9.js +0 -1
- package/.next/static/chunks/app/api/push/vapid/route-55e398bd20e2d7a9.js +0 -1
- package/.next/static/chunks/app/api/repositories/[id]/route-55e398bd20e2d7a9.js +0 -1
- package/.next/static/chunks/app/api/repositories/[id]/todos/[todoId]/route-55e398bd20e2d7a9.js +0 -1
- package/.next/static/chunks/app/api/repositories/[id]/todos/route-55e398bd20e2d7a9.js +0 -1
- package/.next/static/chunks/app/api/repositories/clone/[jobId]/route-55e398bd20e2d7a9.js +0 -1
- package/.next/static/chunks/app/api/repositories/clone/route-55e398bd20e2d7a9.js +0 -1
- package/.next/static/chunks/app/api/repositories/excluded/route-55e398bd20e2d7a9.js +0 -1
- package/.next/static/chunks/app/api/repositories/restore/route-55e398bd20e2d7a9.js +0 -1
- package/.next/static/chunks/app/api/repositories/route-55e398bd20e2d7a9.js +0 -1
- package/.next/static/chunks/app/api/repositories/scan/route-55e398bd20e2d7a9.js +0 -1
- package/.next/static/chunks/app/api/repositories/sync/route-55e398bd20e2d7a9.js +0 -1
- package/.next/static/chunks/app/api/repositories/validate-path/route-55e398bd20e2d7a9.js +0 -1
- package/.next/static/chunks/app/api/sidebar/group-order/route-55e398bd20e2d7a9.js +0 -1
- package/.next/static/chunks/app/api/skills/[id]/route-55e398bd20e2d7a9.js +0 -1
- package/.next/static/chunks/app/api/skills/installations/route-55e398bd20e2d7a9.js +0 -1
- package/.next/static/chunks/app/api/skills/operations/route-55e398bd20e2d7a9.js +0 -1
- package/.next/static/chunks/app/api/skills/reindex/route-55e398bd20e2d7a9.js +0 -1
- package/.next/static/chunks/app/api/skills/route-55e398bd20e2d7a9.js +0 -1
- package/.next/static/chunks/app/api/slash-commands/route-55e398bd20e2d7a9.js +0 -1
- package/.next/static/chunks/app/api/templates/[id]/route-55e398bd20e2d7a9.js +0 -1
- package/.next/static/chunks/app/api/templates/route-55e398bd20e2d7a9.js +0 -1
- package/.next/static/chunks/app/api/todos/route-55e398bd20e2d7a9.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/auto-yes/route-55e398bd20e2d7a9.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/capture/route-55e398bd20e2d7a9.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/cli-tool/route-55e398bd20e2d7a9.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/cmate/schedules/route-55e398bd20e2d7a9.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/current-output/route-55e398bd20e2d7a9.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/execution-logs/[logId]/route-55e398bd20e2d7a9.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/execution-logs/route-55e398bd20e2d7a9.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/files/[...path]/route-55e398bd20e2d7a9.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/branch/create/route-55e398bd20e2d7a9.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/branch/delete/route-55e398bd20e2d7a9.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/branches/route-55e398bd20e2d7a9.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/checkout/route-55e398bd20e2d7a9.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/commit/route-55e398bd20e2d7a9.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/diff/route-55e398bd20e2d7a9.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/fetch/route-55e398bd20e2d7a9.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/log/route-55e398bd20e2d7a9.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/pull/route-55e398bd20e2d7a9.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/push/route-55e398bd20e2d7a9.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/reset/route-55e398bd20e2d7a9.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/revert/route-55e398bd20e2d7a9.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/show/[commitHash]/route-55e398bd20e2d7a9.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/stage/route-55e398bd20e2d7a9.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/staged/route-55e398bd20e2d7a9.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/stash/[index]/route-55e398bd20e2d7a9.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/stash/apply/route-55e398bd20e2d7a9.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/stash/pop/route-55e398bd20e2d7a9.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/stash/push/route-55e398bd20e2d7a9.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/stash/route-55e398bd20e2d7a9.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/status/route-55e398bd20e2d7a9.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/unstage/route-55e398bd20e2d7a9.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/working-diff/route-55e398bd20e2d7a9.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/interrupt/route-55e398bd20e2d7a9.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/kill-session/route-55e398bd20e2d7a9.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/logs/[filename]/route-55e398bd20e2d7a9.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/logs/route-55e398bd20e2d7a9.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/marp-render/route-55e398bd20e2d7a9.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/memos/[memoId]/route-55e398bd20e2d7a9.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/memos/route-55e398bd20e2d7a9.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/messages/route-55e398bd20e2d7a9.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/prompt-response/route-55e398bd20e2d7a9.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/respond/route-55e398bd20e2d7a9.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/route-55e398bd20e2d7a9.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/schedules/[scheduleId]/route-55e398bd20e2d7a9.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/schedules/active/route-55e398bd20e2d7a9.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/schedules/route-55e398bd20e2d7a9.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/search/route-55e398bd20e2d7a9.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/send/route-55e398bd20e2d7a9.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/git-workflow/route-55e398bd20e2d7a9.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/install/route-55e398bd20e2d7a9.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/plan/route-55e398bd20e2d7a9.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/uninstall/route-55e398bd20e2d7a9.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/uninstall-plan/route-55e398bd20e2d7a9.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/skills/route-55e398bd20e2d7a9.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/slash-commands/route-55e398bd20e2d7a9.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/special-keys/route-55e398bd20e2d7a9.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/start-polling/route-55e398bd20e2d7a9.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/terminal/route-55e398bd20e2d7a9.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/timers/history/route-55e398bd20e2d7a9.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/timers/route-55e398bd20e2d7a9.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/todos/[todoId]/route-55e398bd20e2d7a9.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/todos/route-55e398bd20e2d7a9.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/tree/[...path]/route-55e398bd20e2d7a9.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/tree/route-55e398bd20e2d7a9.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/upload/[...path]/route-55e398bd20e2d7a9.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/viewed/route-55e398bd20e2d7a9.js +0 -1
- package/.next/static/chunks/app/api/worktrees/route-55e398bd20e2d7a9.js +0 -1
- package/.next/static/chunks/app/manifest.webmanifest/route-55e398bd20e2d7a9.js +0 -1
- package/.next/static/chunks/app/proxy/[...path]/route-55e398bd20e2d7a9.js +0 -1
- package/.next/static/chunks/app/repositories/page-3c4fb889da48ce24.js +0 -1
- package/.next/static/chunks/app/worktrees/[id]/page-59a63a2c013ec1eb.js +0 -1
- /package/.next/static/{AKqbAyuzbFfg05qpbCI_K → -BSmW0Ae2YsxyCl_ue7_d}/_ssgManifest.js +0 -0
package/.next/types/routes.d.ts
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
// Do not edit this file manually
|
|
3
3
|
|
|
4
4
|
type AppRoutes = "/" | "/chat" | "/login" | "/more" | "/offline" | "/repositories" | "/review" | "/sessions" | "/skills" | "/skills/[skillId]" | "/skills/installed" | "/worktrees/[id]" | "/worktrees/[id]/files/[...path]" | "/worktrees/[id]/terminal"
|
|
5
|
-
type AppRouteHandlerRoutes = "/api/app/update" | "/api/app/update-check" | "/api/assistant/conversation" | "/api/assistant/current-output" | "/api/assistant/messages" | "/api/assistant/session" | "/api/assistant/start" | "/api/assistant/terminal" | "/api/assistant/tools" | "/api/auth/login" | "/api/auth/logout" | "/api/auth/status" | "/api/daily-summary" | "/api/daily-summary/status" | "/api/external-apps" | "/api/external-apps/[id]" | "/api/external-apps/[id]/health" | "/api/fs/browse" | "/api/fs/recent-paths" | "/api/hooks/claude-done" | "/api/ollama/models" | "/api/push/subscriptions" | "/api/push/vapid" | "/api/repositories" | "/api/repositories/[id]" | "/api/repositories/[id]/todos" | "/api/repositories/[id]/todos/[todoId]" | "/api/repositories/clone" | "/api/repositories/clone/[jobId]" | "/api/repositories/excluded" | "/api/repositories/restore" | "/api/repositories/scan" | "/api/repositories/sync" | "/api/repositories/validate-path" | "/api/sidebar/group-order" | "/api/skills" | "/api/skills/[id]" | "/api/skills/installations" | "/api/skills/operations" | "/api/skills/reindex" | "/api/slash-commands" | "/api/templates" | "/api/templates/[id]" | "/api/todos" | "/api/worktrees" | "/api/worktrees/[id]" | "/api/worktrees/[id]/auto-yes" | "/api/worktrees/[id]/capture" | "/api/worktrees/[id]/cli-tool" | "/api/worktrees/[id]/cmate/schedules" | "/api/worktrees/[id]/current-output" | "/api/worktrees/[id]/execution-logs" | "/api/worktrees/[id]/execution-logs/[logId]" | "/api/worktrees/[id]/files/[...path]" | "/api/worktrees/[id]/git/branch/create" | "/api/worktrees/[id]/git/branch/delete" | "/api/worktrees/[id]/git/branches" | "/api/worktrees/[id]/git/checkout" | "/api/worktrees/[id]/git/commit" | "/api/worktrees/[id]/git/diff" | "/api/worktrees/[id]/git/fetch" | "/api/worktrees/[id]/git/log" | "/api/worktrees/[id]/git/pull" | "/api/worktrees/[id]/git/push" | "/api/worktrees/[id]/git/reset" | "/api/worktrees/[id]/git/revert" | "/api/worktrees/[id]/git/show/[commitHash]" | "/api/worktrees/[id]/git/stage" | "/api/worktrees/[id]/git/staged" | "/api/worktrees/[id]/git/stash" | "/api/worktrees/[id]/git/stash/[index]" | "/api/worktrees/[id]/git/stash/apply" | "/api/worktrees/[id]/git/stash/pop" | "/api/worktrees/[id]/git/stash/push" | "/api/worktrees/[id]/git/status" | "/api/worktrees/[id]/git/unstage" | "/api/worktrees/[id]/git/working-diff" | "/api/worktrees/[id]/interrupt" | "/api/worktrees/[id]/kill-session" | "/api/worktrees/[id]/logs" | "/api/worktrees/[id]/logs/[filename]" | "/api/worktrees/[id]/marp-render" | "/api/worktrees/[id]/memos" | "/api/worktrees/[id]/memos/[memoId]" | "/api/worktrees/[id]/messages" | "/api/worktrees/[id]/prompt-response" | "/api/worktrees/[id]/respond" | "/api/worktrees/[id]/schedules" | "/api/worktrees/[id]/schedules/[scheduleId]" | "/api/worktrees/[id]/schedules/active" | "/api/worktrees/[id]/search" | "/api/worktrees/[id]/send" | "/api/worktrees/[id]/skills" | "/api/worktrees/[id]/skills/[skillId]/git-workflow" | "/api/worktrees/[id]/skills/[skillId]/install" | "/api/worktrees/[id]/skills/[skillId]/plan" | "/api/worktrees/[id]/skills/[skillId]/uninstall" | "/api/worktrees/[id]/skills/[skillId]/uninstall-plan" | "/api/worktrees/[id]/slash-commands" | "/api/worktrees/[id]/special-keys" | "/api/worktrees/[id]/start-polling" | "/api/worktrees/[id]/terminal" | "/api/worktrees/[id]/timers" | "/api/worktrees/[id]/timers/history" | "/api/worktrees/[id]/todos" | "/api/worktrees/[id]/todos/[todoId]" | "/api/worktrees/[id]/tree" | "/api/worktrees/[id]/tree/[...path]" | "/api/worktrees/[id]/upload/[...path]" | "/api/worktrees/[id]/viewed" | "/proxy/[...path]"
|
|
5
|
+
type AppRouteHandlerRoutes = "/api/app/update" | "/api/app/update-check" | "/api/assistant/conversation" | "/api/assistant/current-output" | "/api/assistant/messages" | "/api/assistant/session" | "/api/assistant/start" | "/api/assistant/terminal" | "/api/assistant/tools" | "/api/auth/login" | "/api/auth/logout" | "/api/auth/status" | "/api/daily-summary" | "/api/daily-summary/status" | "/api/external-apps" | "/api/external-apps/[id]" | "/api/external-apps/[id]/health" | "/api/fs/browse" | "/api/fs/recent-paths" | "/api/hooks/agent-event" | "/api/hooks/claude-done" | "/api/metrics/vibe" | "/api/ollama/models" | "/api/push/subscriptions" | "/api/push/vapid" | "/api/repositories" | "/api/repositories/[id]" | "/api/repositories/[id]/todos" | "/api/repositories/[id]/todos/[todoId]" | "/api/repositories/clone" | "/api/repositories/clone/[jobId]" | "/api/repositories/excluded" | "/api/repositories/restore" | "/api/repositories/scan" | "/api/repositories/sync" | "/api/repositories/validate-path" | "/api/sidebar/group-order" | "/api/skills" | "/api/skills/[id]" | "/api/skills/installations" | "/api/skills/operations" | "/api/skills/reindex" | "/api/slash-commands" | "/api/tasks/[taskId]" | "/api/tasks/[taskId]/cancel" | "/api/templates" | "/api/templates/[id]" | "/api/todos" | "/api/verification/runs" | "/api/verification/runs/[runId]" | "/api/worktrees" | "/api/worktrees/[id]" | "/api/worktrees/[id]/auto-yes" | "/api/worktrees/[id]/capture" | "/api/worktrees/[id]/cli-tool" | "/api/worktrees/[id]/cmate/schedules" | "/api/worktrees/[id]/current-output" | "/api/worktrees/[id]/execution-logs" | "/api/worktrees/[id]/execution-logs/[logId]" | "/api/worktrees/[id]/files/[...path]" | "/api/worktrees/[id]/git/branch/create" | "/api/worktrees/[id]/git/branch/delete" | "/api/worktrees/[id]/git/branches" | "/api/worktrees/[id]/git/checkout" | "/api/worktrees/[id]/git/commit" | "/api/worktrees/[id]/git/diff" | "/api/worktrees/[id]/git/fetch" | "/api/worktrees/[id]/git/log" | "/api/worktrees/[id]/git/pull" | "/api/worktrees/[id]/git/push" | "/api/worktrees/[id]/git/reset" | "/api/worktrees/[id]/git/revert" | "/api/worktrees/[id]/git/show/[commitHash]" | "/api/worktrees/[id]/git/stage" | "/api/worktrees/[id]/git/staged" | "/api/worktrees/[id]/git/stash" | "/api/worktrees/[id]/git/stash/[index]" | "/api/worktrees/[id]/git/stash/apply" | "/api/worktrees/[id]/git/stash/pop" | "/api/worktrees/[id]/git/stash/push" | "/api/worktrees/[id]/git/status" | "/api/worktrees/[id]/git/unstage" | "/api/worktrees/[id]/git/working-diff" | "/api/worktrees/[id]/interrupt" | "/api/worktrees/[id]/kill-session" | "/api/worktrees/[id]/logs" | "/api/worktrees/[id]/logs/[filename]" | "/api/worktrees/[id]/marp-render" | "/api/worktrees/[id]/memos" | "/api/worktrees/[id]/memos/[memoId]" | "/api/worktrees/[id]/messages" | "/api/worktrees/[id]/prompt-response" | "/api/worktrees/[id]/respond" | "/api/worktrees/[id]/schedules" | "/api/worktrees/[id]/schedules/[scheduleId]" | "/api/worktrees/[id]/schedules/active" | "/api/worktrees/[id]/search" | "/api/worktrees/[id]/send" | "/api/worktrees/[id]/skills" | "/api/worktrees/[id]/skills/[skillId]/git-workflow" | "/api/worktrees/[id]/skills/[skillId]/install" | "/api/worktrees/[id]/skills/[skillId]/plan" | "/api/worktrees/[id]/skills/[skillId]/uninstall" | "/api/worktrees/[id]/skills/[skillId]/uninstall-plan" | "/api/worktrees/[id]/slash-commands" | "/api/worktrees/[id]/special-keys" | "/api/worktrees/[id]/start-polling" | "/api/worktrees/[id]/tasks" | "/api/worktrees/[id]/terminal" | "/api/worktrees/[id]/timers" | "/api/worktrees/[id]/timers/history" | "/api/worktrees/[id]/todos" | "/api/worktrees/[id]/todos/[todoId]" | "/api/worktrees/[id]/tree" | "/api/worktrees/[id]/tree/[...path]" | "/api/worktrees/[id]/upload/[...path]" | "/api/worktrees/[id]/verify" | "/api/worktrees/[id]/verify/runs" | "/api/worktrees/[id]/verify/runs/[runId]" | "/api/worktrees/[id]/viewed" | "/proxy/[...path]"
|
|
6
6
|
type PageRoutes = never
|
|
7
7
|
type LayoutRoutes = "/"
|
|
8
8
|
type RedirectRoutes = never
|
|
@@ -31,7 +31,9 @@ interface ParamMap {
|
|
|
31
31
|
"/api/external-apps/[id]/health": { "id": string; }
|
|
32
32
|
"/api/fs/browse": {}
|
|
33
33
|
"/api/fs/recent-paths": {}
|
|
34
|
+
"/api/hooks/agent-event": {}
|
|
34
35
|
"/api/hooks/claude-done": {}
|
|
36
|
+
"/api/metrics/vibe": {}
|
|
35
37
|
"/api/ollama/models": {}
|
|
36
38
|
"/api/push/subscriptions": {}
|
|
37
39
|
"/api/push/vapid": {}
|
|
@@ -53,9 +55,13 @@ interface ParamMap {
|
|
|
53
55
|
"/api/skills/operations": {}
|
|
54
56
|
"/api/skills/reindex": {}
|
|
55
57
|
"/api/slash-commands": {}
|
|
58
|
+
"/api/tasks/[taskId]": { "taskId": string; }
|
|
59
|
+
"/api/tasks/[taskId]/cancel": { "taskId": string; }
|
|
56
60
|
"/api/templates": {}
|
|
57
61
|
"/api/templates/[id]": { "id": string; }
|
|
58
62
|
"/api/todos": {}
|
|
63
|
+
"/api/verification/runs": {}
|
|
64
|
+
"/api/verification/runs/[runId]": { "runId": string; }
|
|
59
65
|
"/api/worktrees": {}
|
|
60
66
|
"/api/worktrees/[id]": { "id": string; }
|
|
61
67
|
"/api/worktrees/[id]/auto-yes": { "id": string; }
|
|
@@ -113,6 +119,7 @@ interface ParamMap {
|
|
|
113
119
|
"/api/worktrees/[id]/slash-commands": { "id": string; }
|
|
114
120
|
"/api/worktrees/[id]/special-keys": { "id": string; }
|
|
115
121
|
"/api/worktrees/[id]/start-polling": { "id": string; }
|
|
122
|
+
"/api/worktrees/[id]/tasks": { "id": string; }
|
|
116
123
|
"/api/worktrees/[id]/terminal": { "id": string; }
|
|
117
124
|
"/api/worktrees/[id]/timers": { "id": string; }
|
|
118
125
|
"/api/worktrees/[id]/timers/history": { "id": string; }
|
|
@@ -121,6 +128,9 @@ interface ParamMap {
|
|
|
121
128
|
"/api/worktrees/[id]/tree": { "id": string; }
|
|
122
129
|
"/api/worktrees/[id]/tree/[...path]": { "id": string; "path": string[]; }
|
|
123
130
|
"/api/worktrees/[id]/upload/[...path]": { "id": string; "path": string[]; }
|
|
131
|
+
"/api/worktrees/[id]/verify": { "id": string; }
|
|
132
|
+
"/api/worktrees/[id]/verify/runs": { "id": string; }
|
|
133
|
+
"/api/worktrees/[id]/verify/runs/[runId]": { "id": string; "runId": string; }
|
|
124
134
|
"/api/worktrees/[id]/viewed": { "id": string; }
|
|
125
135
|
"/chat": {}
|
|
126
136
|
"/login": {}
|
package/.next/types/validator.ts
CHANGED
|
@@ -344,6 +344,15 @@ type RouteHandlerConfig<Route extends AppRouteHandlerRoutes = AppRouteHandlerRou
|
|
|
344
344
|
type __Unused = __Check
|
|
345
345
|
}
|
|
346
346
|
|
|
347
|
+
// Validate ../../src/app/api/hooks/agent-event/route.ts
|
|
348
|
+
{
|
|
349
|
+
type __IsExpected<Specific extends RouteHandlerConfig<"/api/hooks/agent-event">> = Specific
|
|
350
|
+
const handler = {} as typeof import("../../src/app/api/hooks/agent-event/route.js")
|
|
351
|
+
type __Check = __IsExpected<typeof handler>
|
|
352
|
+
// @ts-ignore
|
|
353
|
+
type __Unused = __Check
|
|
354
|
+
}
|
|
355
|
+
|
|
347
356
|
// Validate ../../src/app/api/hooks/claude-done/route.ts
|
|
348
357
|
{
|
|
349
358
|
type __IsExpected<Specific extends RouteHandlerConfig<"/api/hooks/claude-done">> = Specific
|
|
@@ -353,6 +362,15 @@ type RouteHandlerConfig<Route extends AppRouteHandlerRoutes = AppRouteHandlerRou
|
|
|
353
362
|
type __Unused = __Check
|
|
354
363
|
}
|
|
355
364
|
|
|
365
|
+
// Validate ../../src/app/api/metrics/vibe/route.ts
|
|
366
|
+
{
|
|
367
|
+
type __IsExpected<Specific extends RouteHandlerConfig<"/api/metrics/vibe">> = Specific
|
|
368
|
+
const handler = {} as typeof import("../../src/app/api/metrics/vibe/route.js")
|
|
369
|
+
type __Check = __IsExpected<typeof handler>
|
|
370
|
+
// @ts-ignore
|
|
371
|
+
type __Unused = __Check
|
|
372
|
+
}
|
|
373
|
+
|
|
356
374
|
// Validate ../../src/app/api/ollama/models/route.ts
|
|
357
375
|
{
|
|
358
376
|
type __IsExpected<Specific extends RouteHandlerConfig<"/api/ollama/models">> = Specific
|
|
@@ -542,6 +560,24 @@ type RouteHandlerConfig<Route extends AppRouteHandlerRoutes = AppRouteHandlerRou
|
|
|
542
560
|
type __Unused = __Check
|
|
543
561
|
}
|
|
544
562
|
|
|
563
|
+
// Validate ../../src/app/api/tasks/[taskId]/cancel/route.ts
|
|
564
|
+
{
|
|
565
|
+
type __IsExpected<Specific extends RouteHandlerConfig<"/api/tasks/[taskId]/cancel">> = Specific
|
|
566
|
+
const handler = {} as typeof import("../../src/app/api/tasks/[taskId]/cancel/route.js")
|
|
567
|
+
type __Check = __IsExpected<typeof handler>
|
|
568
|
+
// @ts-ignore
|
|
569
|
+
type __Unused = __Check
|
|
570
|
+
}
|
|
571
|
+
|
|
572
|
+
// Validate ../../src/app/api/tasks/[taskId]/route.ts
|
|
573
|
+
{
|
|
574
|
+
type __IsExpected<Specific extends RouteHandlerConfig<"/api/tasks/[taskId]">> = Specific
|
|
575
|
+
const handler = {} as typeof import("../../src/app/api/tasks/[taskId]/route.js")
|
|
576
|
+
type __Check = __IsExpected<typeof handler>
|
|
577
|
+
// @ts-ignore
|
|
578
|
+
type __Unused = __Check
|
|
579
|
+
}
|
|
580
|
+
|
|
545
581
|
// Validate ../../src/app/api/templates/[id]/route.ts
|
|
546
582
|
{
|
|
547
583
|
type __IsExpected<Specific extends RouteHandlerConfig<"/api/templates/[id]">> = Specific
|
|
@@ -569,6 +605,24 @@ type RouteHandlerConfig<Route extends AppRouteHandlerRoutes = AppRouteHandlerRou
|
|
|
569
605
|
type __Unused = __Check
|
|
570
606
|
}
|
|
571
607
|
|
|
608
|
+
// Validate ../../src/app/api/verification/runs/[runId]/route.ts
|
|
609
|
+
{
|
|
610
|
+
type __IsExpected<Specific extends RouteHandlerConfig<"/api/verification/runs/[runId]">> = Specific
|
|
611
|
+
const handler = {} as typeof import("../../src/app/api/verification/runs/[runId]/route.js")
|
|
612
|
+
type __Check = __IsExpected<typeof handler>
|
|
613
|
+
// @ts-ignore
|
|
614
|
+
type __Unused = __Check
|
|
615
|
+
}
|
|
616
|
+
|
|
617
|
+
// Validate ../../src/app/api/verification/runs/route.ts
|
|
618
|
+
{
|
|
619
|
+
type __IsExpected<Specific extends RouteHandlerConfig<"/api/verification/runs">> = Specific
|
|
620
|
+
const handler = {} as typeof import("../../src/app/api/verification/runs/route.js")
|
|
621
|
+
type __Check = __IsExpected<typeof handler>
|
|
622
|
+
// @ts-ignore
|
|
623
|
+
type __Unused = __Check
|
|
624
|
+
}
|
|
625
|
+
|
|
572
626
|
// Validate ../../src/app/api/worktrees/[id]/auto-yes/route.ts
|
|
573
627
|
{
|
|
574
628
|
type __IsExpected<Specific extends RouteHandlerConfig<"/api/worktrees/[id]/auto-yes">> = Specific
|
|
@@ -1073,6 +1127,15 @@ type RouteHandlerConfig<Route extends AppRouteHandlerRoutes = AppRouteHandlerRou
|
|
|
1073
1127
|
type __Unused = __Check
|
|
1074
1128
|
}
|
|
1075
1129
|
|
|
1130
|
+
// Validate ../../src/app/api/worktrees/[id]/tasks/route.ts
|
|
1131
|
+
{
|
|
1132
|
+
type __IsExpected<Specific extends RouteHandlerConfig<"/api/worktrees/[id]/tasks">> = Specific
|
|
1133
|
+
const handler = {} as typeof import("../../src/app/api/worktrees/[id]/tasks/route.js")
|
|
1134
|
+
type __Check = __IsExpected<typeof handler>
|
|
1135
|
+
// @ts-ignore
|
|
1136
|
+
type __Unused = __Check
|
|
1137
|
+
}
|
|
1138
|
+
|
|
1076
1139
|
// Validate ../../src/app/api/worktrees/[id]/terminal/route.ts
|
|
1077
1140
|
{
|
|
1078
1141
|
type __IsExpected<Specific extends RouteHandlerConfig<"/api/worktrees/[id]/terminal">> = Specific
|
|
@@ -1145,6 +1208,33 @@ type RouteHandlerConfig<Route extends AppRouteHandlerRoutes = AppRouteHandlerRou
|
|
|
1145
1208
|
type __Unused = __Check
|
|
1146
1209
|
}
|
|
1147
1210
|
|
|
1211
|
+
// Validate ../../src/app/api/worktrees/[id]/verify/route.ts
|
|
1212
|
+
{
|
|
1213
|
+
type __IsExpected<Specific extends RouteHandlerConfig<"/api/worktrees/[id]/verify">> = Specific
|
|
1214
|
+
const handler = {} as typeof import("../../src/app/api/worktrees/[id]/verify/route.js")
|
|
1215
|
+
type __Check = __IsExpected<typeof handler>
|
|
1216
|
+
// @ts-ignore
|
|
1217
|
+
type __Unused = __Check
|
|
1218
|
+
}
|
|
1219
|
+
|
|
1220
|
+
// Validate ../../src/app/api/worktrees/[id]/verify/runs/[runId]/route.ts
|
|
1221
|
+
{
|
|
1222
|
+
type __IsExpected<Specific extends RouteHandlerConfig<"/api/worktrees/[id]/verify/runs/[runId]">> = Specific
|
|
1223
|
+
const handler = {} as typeof import("../../src/app/api/worktrees/[id]/verify/runs/[runId]/route.js")
|
|
1224
|
+
type __Check = __IsExpected<typeof handler>
|
|
1225
|
+
// @ts-ignore
|
|
1226
|
+
type __Unused = __Check
|
|
1227
|
+
}
|
|
1228
|
+
|
|
1229
|
+
// Validate ../../src/app/api/worktrees/[id]/verify/runs/route.ts
|
|
1230
|
+
{
|
|
1231
|
+
type __IsExpected<Specific extends RouteHandlerConfig<"/api/worktrees/[id]/verify/runs">> = Specific
|
|
1232
|
+
const handler = {} as typeof import("../../src/app/api/worktrees/[id]/verify/runs/route.js")
|
|
1233
|
+
type __Check = __IsExpected<typeof handler>
|
|
1234
|
+
// @ts-ignore
|
|
1235
|
+
type __Unused = __Check
|
|
1236
|
+
}
|
|
1237
|
+
|
|
1148
1238
|
// Validate ../../src/app/api/worktrees/[id]/viewed/route.ts
|
|
1149
1239
|
{
|
|
1150
1240
|
type __IsExpected<Specific extends RouteHandlerConfig<"/api/worktrees/[id]/viewed">> = Specific
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"report.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/report.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"report.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/report.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAiFpC,wBAAgB,mBAAmB,IAAI,OAAO,CA6K7C"}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
/**
|
|
3
3
|
* report Command - Generate, show, and list daily reports
|
|
4
4
|
* Issue #636: CLI report generate/show/list
|
|
5
|
+
* Issue #1551: report metrics (Eval metrics)
|
|
5
6
|
*/
|
|
6
7
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
8
|
exports.createReportCommand = createReportCommand;
|
|
@@ -39,6 +40,32 @@ function getDateDaysAgo(daysAgo) {
|
|
|
39
40
|
const d = String(date.getDate()).padStart(2, '0');
|
|
40
41
|
return `${y}-${m}-${d}`;
|
|
41
42
|
}
|
|
43
|
+
/** Longest metrics window the API accepts. Mirrors MAX_METRICS_DAYS. */
|
|
44
|
+
const MAX_METRICS_DAYS = 90;
|
|
45
|
+
/**
|
|
46
|
+
* A 0..1 rate as a percentage, or `n/a`.
|
|
47
|
+
*
|
|
48
|
+
* `n/a` rather than `0.0%`: a null rate means the denominator was zero, and
|
|
49
|
+
* printing "0.0%" for "nothing happened" reports a catastrophe that did not
|
|
50
|
+
* occur.
|
|
51
|
+
*/
|
|
52
|
+
function formatRate(value) {
|
|
53
|
+
return value === null ? 'n/a' : `${(value * 100).toFixed(1)}%`;
|
|
54
|
+
}
|
|
55
|
+
function formatVibeMetrics(m) {
|
|
56
|
+
const { tasks, verification, intervention } = m;
|
|
57
|
+
const topFails = verification.gateFailBreakdown
|
|
58
|
+
.map((g) => `${g.gateId} x${g.failCount}`)
|
|
59
|
+
.join(', ');
|
|
60
|
+
const topFailsSuffix = topFails ? ` (top fails: ${topFails})` : '';
|
|
61
|
+
return [
|
|
62
|
+
`Vibe Metrics (last ${m.periodDays} days)`,
|
|
63
|
+
`Tasks: ${tasks.total} total / ${tasks.succeeded} succeeded / ${tasks.failed} failed / ${tasks.notStarted} not-started (success ${formatRate(tasks.successRate)})`,
|
|
64
|
+
`Verification: ${verification.runs} runs, pass ${formatRate(verification.passRate)}${topFailsSuffix}`,
|
|
65
|
+
`Intervention: ${intervention.humanResponds} human responds / ${intervention.autoAnswered} auto answered`,
|
|
66
|
+
`Retry loops: ${tasks.avgRetryLoops === null ? 'n/a' : `avg ${tasks.avgRetryLoops.toFixed(1)}`} per failed task`,
|
|
67
|
+
].join('\n');
|
|
68
|
+
}
|
|
42
69
|
function createReportCommand() {
|
|
43
70
|
const cmd = new commander_1.Command('report');
|
|
44
71
|
cmd.description('Generate, show, and list daily reports');
|
|
@@ -165,5 +192,32 @@ function createReportCommand() {
|
|
|
165
192
|
(0, command_helpers_1.handleCommandError)(error);
|
|
166
193
|
}
|
|
167
194
|
});
|
|
195
|
+
// ---- report metrics ----
|
|
196
|
+
cmd
|
|
197
|
+
.command('metrics')
|
|
198
|
+
.description('Show Eval metrics (task success rate, human interventions)')
|
|
199
|
+
.option('--days <days>', 'Window length in days (default: 7)', parseInt)
|
|
200
|
+
.option('--json', 'JSON output')
|
|
201
|
+
.option('--token <token>', command_helpers_1.TOKEN_WARNING)
|
|
202
|
+
.action(async (options) => {
|
|
203
|
+
try {
|
|
204
|
+
const days = options.days ?? 7;
|
|
205
|
+
if (!Number.isInteger(days) || days < 1 || days > MAX_METRICS_DAYS) {
|
|
206
|
+
console.error(`Error: --days must be an integer between 1 and ${MAX_METRICS_DAYS}.`);
|
|
207
|
+
process.exit(types_1.ExitCode.CONFIG_ERROR);
|
|
208
|
+
}
|
|
209
|
+
const client = new api_client_1.ApiClient({ token: options.token });
|
|
210
|
+
const data = await client.get(`/api/metrics/vibe?days=${encodeURIComponent(String(days))}`);
|
|
211
|
+
if (options.json) {
|
|
212
|
+
console.log(JSON.stringify(data.metrics, null, 2));
|
|
213
|
+
}
|
|
214
|
+
else {
|
|
215
|
+
console.log(formatVibeMetrics(data.metrics));
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
catch (error) {
|
|
219
|
+
(0, command_helpers_1.handleCommandError)(error);
|
|
220
|
+
}
|
|
221
|
+
});
|
|
168
222
|
return cmd;
|
|
169
223
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"send.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/send.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"send.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/send.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA4JpC,wBAAgB,iBAAiB,IAAI,OAAO,CA4J3C"}
|
|
@@ -13,22 +13,33 @@ const duration_constants_1 = require("../config/duration-constants");
|
|
|
13
13
|
const cli_tool_ids_1 = require("../config/cli-tool-ids");
|
|
14
14
|
const model_validation_1 = require("../config/model-validation");
|
|
15
15
|
const agent_instances_1 = require("../utils/agent-instances");
|
|
16
|
+
/** Auto-yes duration used when --duration is omitted. */
|
|
17
|
+
const DEFAULT_AUTO_YES_DURATION = '1h';
|
|
16
18
|
/**
|
|
17
|
-
*
|
|
18
|
-
* Validates duration and exits on invalid input.
|
|
19
|
+
* Resolve --duration to milliseconds, exiting on an invalid value.
|
|
19
20
|
*
|
|
20
|
-
*
|
|
21
|
-
*
|
|
22
|
-
*
|
|
21
|
+
* Issue #1608: this is called from the option-validation block at the top of
|
|
22
|
+
* the action, not from enableAutoYes(). enableAutoYes() runs after --contract
|
|
23
|
+
* has already created the task row, so validating there left a `pending` task
|
|
24
|
+
* behind for a message that was never sent.
|
|
23
25
|
*/
|
|
24
|
-
|
|
25
|
-
const durationMs =
|
|
26
|
-
? (0, duration_constants_1.parseDurationToMs)(options.duration)
|
|
27
|
-
: (0, duration_constants_1.parseDurationToMs)('1h'); // default 1h
|
|
26
|
+
function resolveAutoYesDurationMs(duration) {
|
|
27
|
+
const durationMs = (0, duration_constants_1.parseDurationToMs)(duration ?? DEFAULT_AUTO_YES_DURATION);
|
|
28
28
|
if (durationMs === null) {
|
|
29
29
|
console.error(`Error: Invalid duration. Must be one of: ${duration_constants_1.ALLOWED_DURATIONS.join(', ')}`);
|
|
30
30
|
process.exit(types_1.ExitCode.CONFIG_ERROR);
|
|
31
31
|
}
|
|
32
|
+
return durationMs;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Build auto-yes request body and send it to the API (DRY extraction).
|
|
36
|
+
*
|
|
37
|
+
* @param client - API client instance
|
|
38
|
+
* @param worktreeId - Target worktree ID
|
|
39
|
+
* @param options - Send command options containing auto-yes settings
|
|
40
|
+
* @param durationMs - Duration already validated by resolveAutoYesDurationMs()
|
|
41
|
+
*/
|
|
42
|
+
async function enableAutoYes(client, worktreeId, options, durationMs) {
|
|
32
43
|
const autoYesBody = {
|
|
33
44
|
enabled: true,
|
|
34
45
|
duration: durationMs,
|
|
@@ -66,12 +77,59 @@ async function registerInstance(client, worktreeId, instanceId, cliTool) {
|
|
|
66
77
|
await (0, agent_instances_1.saveAgentInstances)(client, worktreeId, next);
|
|
67
78
|
console.error(`Instance registered in roster: ${instanceId}`);
|
|
68
79
|
}
|
|
80
|
+
/**
|
|
81
|
+
* Create the task row for `--contract` and get the message to send back.
|
|
82
|
+
*
|
|
83
|
+
* The contract is parsed server-side: the path is relative to the worktree,
|
|
84
|
+
* which only the server can resolve, and the completion criterion is expanded
|
|
85
|
+
* from that worktree's verify.yaml. Every violation the server found is printed
|
|
86
|
+
* before exiting, so a broken contract is fixed in one pass (Issue #1545).
|
|
87
|
+
*/
|
|
88
|
+
async function createContractTask(client, worktreeId, options) {
|
|
89
|
+
const body = { contractPath: options.contract };
|
|
90
|
+
if (options.agent) {
|
|
91
|
+
body.cliToolId = options.agent;
|
|
92
|
+
}
|
|
93
|
+
if (options.instance) {
|
|
94
|
+
body.instanceId = options.instance;
|
|
95
|
+
}
|
|
96
|
+
try {
|
|
97
|
+
const response = await client.post(`/api/worktrees/${worktreeId}/tasks`, body);
|
|
98
|
+
const created = (0, api_client_1.assertResponseShape)(response, ['task', 'message'], 'POST /api/worktrees/:id/tasks');
|
|
99
|
+
return { taskId: created.task.id, message: created.message };
|
|
100
|
+
}
|
|
101
|
+
catch (error) {
|
|
102
|
+
if (error instanceof api_client_1.ApiError && error.statusCode === 400 && error.payload?.issues?.length) {
|
|
103
|
+
console.error('Error: invalid task contract:');
|
|
104
|
+
for (const issue of error.payload.issues) {
|
|
105
|
+
console.error(` - ${issue}`);
|
|
106
|
+
}
|
|
107
|
+
process.exit(types_1.ExitCode.CONFIG_ERROR);
|
|
108
|
+
}
|
|
109
|
+
throw error;
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Report a task transition to the server, best effort.
|
|
114
|
+
*
|
|
115
|
+
* A failure here is worth a warning but not the command's exit code: the
|
|
116
|
+
* message either reached the agent or it did not, and that outcome is what the
|
|
117
|
+
* caller is waiting on.
|
|
118
|
+
*/
|
|
119
|
+
async function reportTaskStatus(client, taskId, status) {
|
|
120
|
+
try {
|
|
121
|
+
await client.patch(`/api/tasks/${taskId}`, { status });
|
|
122
|
+
}
|
|
123
|
+
catch {
|
|
124
|
+
console.error(`Warning: could not record task ${taskId} as ${status}.`);
|
|
125
|
+
}
|
|
126
|
+
}
|
|
69
127
|
function createSendCommand() {
|
|
70
128
|
const cmd = new commander_1.Command('send');
|
|
71
129
|
cmd
|
|
72
130
|
.description('Send a message to a worktree agent')
|
|
73
131
|
.argument('<worktree-id>', 'Worktree ID')
|
|
74
|
-
.argument('
|
|
132
|
+
.argument('[message]', 'Message to send (omit when using --contract)')
|
|
75
133
|
.option('--agent <agent>', 'CLI tool agent (claude, codex, gemini, vibe-local, opencode, copilot, antigravity)')
|
|
76
134
|
.option('--instance <id>', 'Agent instance ID: <agent> or <agent>-<n> (e.g. claude-2). Defaults to the agent\'s primary instance.')
|
|
77
135
|
.option('--register', 'Register the --instance session into the agent-instance roster (Issue #1000)')
|
|
@@ -79,6 +137,7 @@ function createSendCommand() {
|
|
|
79
137
|
.option('--auto-yes', 'Enable auto-yes before sending')
|
|
80
138
|
.option('--duration <duration>', `Auto-yes duration (${duration_constants_1.ALLOWED_DURATIONS.join(', ')})`)
|
|
81
139
|
.option('--stop-pattern <pattern>', 'Auto-yes stop pattern (regex)')
|
|
140
|
+
.option('--contract <path>', 'Execution contract path relative to the worktree root (e.g. .commandmate/tasks/my-task.yaml). Records a task and sends the contract preamble plus its goal.')
|
|
82
141
|
.option('--token <token>', command_helpers_1.TOKEN_WARNING)
|
|
83
142
|
.action(async (worktreeId, message, options) => {
|
|
84
143
|
try {
|
|
@@ -87,6 +146,16 @@ function createSendCommand() {
|
|
|
87
146
|
console.error('Error: Invalid worktree ID format.');
|
|
88
147
|
process.exit(types_1.ExitCode.CONFIG_ERROR);
|
|
89
148
|
}
|
|
149
|
+
// Issue #1545: the contract supplies the message, so accepting both
|
|
150
|
+
// would leave which one the agent receives ambiguous.
|
|
151
|
+
if (options.contract && message !== undefined) {
|
|
152
|
+
console.error('Error: --contract supplies the message; do not pass a message argument as well.');
|
|
153
|
+
process.exit(types_1.ExitCode.CONFIG_ERROR);
|
|
154
|
+
}
|
|
155
|
+
if (!options.contract && message === undefined) {
|
|
156
|
+
console.error('Error: a message argument is required unless --contract is given.');
|
|
157
|
+
process.exit(types_1.ExitCode.CONFIG_ERROR);
|
|
158
|
+
}
|
|
90
159
|
// Validate agent if provided
|
|
91
160
|
if (options.agent && !(0, cli_tool_ids_1.isCliToolId)(options.agent)) {
|
|
92
161
|
console.error(`Error: Invalid agent. Must be one of: ${cli_tool_ids_1.CLI_TOOL_IDS.join(', ')}`);
|
|
@@ -129,13 +198,33 @@ function createSendCommand() {
|
|
|
129
198
|
process.exit(types_1.ExitCode.CONFIG_ERROR);
|
|
130
199
|
}
|
|
131
200
|
}
|
|
201
|
+
// Issue #1608: every option that can be judged from its own value is
|
|
202
|
+
// judged here, before the first side effect. --duration used to be the
|
|
203
|
+
// exception: enableAutoYes() validated it, and that runs after
|
|
204
|
+
// --contract has already created the task row, so `--duration 2h` left
|
|
205
|
+
// a `pending` task for a message that was never sent. Validated
|
|
206
|
+
// unconditionally, like --stop-pattern and --model above: a value the
|
|
207
|
+
// CLI cannot honour is an error whether or not --auto-yes accompanies it.
|
|
208
|
+
const autoYesDurationMs = resolveAutoYesDurationMs(options.duration);
|
|
132
209
|
const client = new api_client_1.ApiClient({ token: options.token });
|
|
210
|
+
// Issue #1545: resolve the contract before anything with a side effect,
|
|
211
|
+
// so an invalid contract cannot leave auto-yes enabled for a message
|
|
212
|
+
// that was never sent.
|
|
213
|
+
let taskId;
|
|
214
|
+
let content = message;
|
|
215
|
+
if (options.contract) {
|
|
216
|
+
const task = await createContractTask(client, worktreeId, options);
|
|
217
|
+
taskId = task.taskId;
|
|
218
|
+
content = task.message;
|
|
219
|
+
console.error(`Task created: ${taskId}`);
|
|
220
|
+
console.log(taskId);
|
|
221
|
+
}
|
|
133
222
|
// --auto-yes: enable auto-yes first (unless --model is specified, then after send) [DR2-02]
|
|
134
223
|
if (options.autoYes && !options.model) {
|
|
135
|
-
await enableAutoYes(client, worktreeId, options);
|
|
224
|
+
await enableAutoYes(client, worktreeId, options, autoYesDurationMs);
|
|
136
225
|
}
|
|
137
226
|
// [DR2-05] Send API uses "content" not "message"
|
|
138
|
-
const sendBody = { content
|
|
227
|
+
const sendBody = { content };
|
|
139
228
|
if (options.agent) {
|
|
140
229
|
sendBody.cliToolId = options.agent;
|
|
141
230
|
}
|
|
@@ -147,8 +236,21 @@ function createSendCommand() {
|
|
|
147
236
|
if (options.model) {
|
|
148
237
|
sendBody.model = options.model;
|
|
149
238
|
}
|
|
150
|
-
|
|
239
|
+
try {
|
|
240
|
+
await client.post(`/api/worktrees/${worktreeId}/send`, sendBody);
|
|
241
|
+
}
|
|
242
|
+
catch (error) {
|
|
243
|
+
// A task whose message never arrived is a failed task, not a pending
|
|
244
|
+
// one: nothing is working on it and nothing ever will.
|
|
245
|
+
if (taskId) {
|
|
246
|
+
await reportTaskStatus(client, taskId, 'failed');
|
|
247
|
+
}
|
|
248
|
+
throw error;
|
|
249
|
+
}
|
|
151
250
|
console.error('Message sent.');
|
|
251
|
+
if (taskId) {
|
|
252
|
+
await reportTaskStatus(client, taskId, 'running');
|
|
253
|
+
}
|
|
152
254
|
// Issue #1000: register the ad-hoc instance into the roster after the
|
|
153
255
|
// session has started, so a follow-up `commandmate instances` lists it.
|
|
154
256
|
if (options.register && options.instance) {
|
|
@@ -157,7 +259,7 @@ function createSendCommand() {
|
|
|
157
259
|
// Issue #576: Enable auto-yes AFTER send when --model is specified
|
|
158
260
|
// This avoids auto-yes interfering with the /model command interaction
|
|
159
261
|
if (options.autoYes && options.model) {
|
|
160
|
-
await enableAutoYes(client, worktreeId, options);
|
|
262
|
+
await enableAutoYes(client, worktreeId, options, autoYesDurationMs);
|
|
161
263
|
}
|
|
162
264
|
}
|
|
163
265
|
catch (error) {
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* task Command - Inspect execution contracts and their outcomes
|
|
3
|
+
* Issue #1545 (Phase 2-1)
|
|
4
|
+
*
|
|
5
|
+
* `task list` answers "what was this worktree asked to do", `task show` answers
|
|
6
|
+
* "what did the gates say about it" — the two halves of a contract that used to
|
|
7
|
+
* exist only inside the message text.
|
|
8
|
+
*/
|
|
9
|
+
import { Command } from 'commander';
|
|
10
|
+
export declare function createTaskCommand(): Command;
|
|
11
|
+
//# sourceMappingURL=task.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"task.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/task.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA6BpC,wBAAgB,iBAAiB,IAAI,OAAO,CAmH3C"}
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* task Command - Inspect execution contracts and their outcomes
|
|
4
|
+
* Issue #1545 (Phase 2-1)
|
|
5
|
+
*
|
|
6
|
+
* `task list` answers "what was this worktree asked to do", `task show` answers
|
|
7
|
+
* "what did the gates say about it" — the two halves of a contract that used to
|
|
8
|
+
* exist only inside the message text.
|
|
9
|
+
*/
|
|
10
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
11
|
+
exports.createTaskCommand = createTaskCommand;
|
|
12
|
+
const commander_1 = require("commander");
|
|
13
|
+
const types_1 = require("../types");
|
|
14
|
+
const api_client_1 = require("../utils/api-client");
|
|
15
|
+
const command_helpers_1 = require("../utils/command-helpers");
|
|
16
|
+
const MAX_LIST_LIMIT = 100;
|
|
17
|
+
/** crypto.randomUUID() output; mirrors TASK_ID_PATTERN in the API route. */
|
|
18
|
+
const TASK_ID_PATTERN = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
|
|
19
|
+
function formatTimestamp(value) {
|
|
20
|
+
return value ?? '-';
|
|
21
|
+
}
|
|
22
|
+
function printTaskLine(task) {
|
|
23
|
+
const gates = task.contract.verify.gates;
|
|
24
|
+
console.log([
|
|
25
|
+
task.id,
|
|
26
|
+
task.status,
|
|
27
|
+
task.cliToolId + (task.instanceId ? `/${task.instanceId}` : ''),
|
|
28
|
+
gates ? gates.join('+') : 'all-gates',
|
|
29
|
+
task.title,
|
|
30
|
+
].join('\t'));
|
|
31
|
+
}
|
|
32
|
+
function createTaskCommand() {
|
|
33
|
+
const cmd = new commander_1.Command('task');
|
|
34
|
+
cmd.description('List and inspect execution contracts (tasks)');
|
|
35
|
+
// ---- task list ----
|
|
36
|
+
cmd
|
|
37
|
+
.command('list')
|
|
38
|
+
.description('List tasks for a worktree, newest first')
|
|
39
|
+
.argument('<worktree-id>', 'Worktree ID')
|
|
40
|
+
.option('--limit <n>', `Maximum tasks to list (1..${MAX_LIST_LIMIT})`, parseInt)
|
|
41
|
+
.option('--json', 'JSON output')
|
|
42
|
+
.option('--token <token>', command_helpers_1.TOKEN_WARNING)
|
|
43
|
+
.action(async (worktreeId, options) => {
|
|
44
|
+
try {
|
|
45
|
+
if (!(0, api_client_1.isValidWorktreeId)(worktreeId)) {
|
|
46
|
+
console.error('Error: Invalid worktree ID format.');
|
|
47
|
+
process.exit(types_1.ExitCode.CONFIG_ERROR);
|
|
48
|
+
return;
|
|
49
|
+
}
|
|
50
|
+
if (options.limit !== undefined &&
|
|
51
|
+
(!Number.isInteger(options.limit) || options.limit < 1 || options.limit > MAX_LIST_LIMIT)) {
|
|
52
|
+
console.error(`Error: --limit must be an integer 1..${MAX_LIST_LIMIT}.`);
|
|
53
|
+
process.exit(types_1.ExitCode.CONFIG_ERROR);
|
|
54
|
+
return;
|
|
55
|
+
}
|
|
56
|
+
const client = new api_client_1.ApiClient({ token: options.token });
|
|
57
|
+
const query = options.limit === undefined ? '' : `?limit=${options.limit}`;
|
|
58
|
+
const response = await client.get(`/api/worktrees/${worktreeId}/tasks${query}`);
|
|
59
|
+
const { tasks } = (0, api_client_1.assertResponseShape)(response, ['tasks'], 'GET /api/worktrees/:id/tasks');
|
|
60
|
+
if (options.json) {
|
|
61
|
+
console.log(JSON.stringify(tasks));
|
|
62
|
+
return;
|
|
63
|
+
}
|
|
64
|
+
if (tasks.length === 0) {
|
|
65
|
+
console.error(`No tasks recorded for worktree '${worktreeId}'.`);
|
|
66
|
+
return;
|
|
67
|
+
}
|
|
68
|
+
tasks.forEach(printTaskLine);
|
|
69
|
+
}
|
|
70
|
+
catch (error) {
|
|
71
|
+
(0, command_helpers_1.handleCommandError)(error);
|
|
72
|
+
}
|
|
73
|
+
});
|
|
74
|
+
// ---- task show ----
|
|
75
|
+
cmd
|
|
76
|
+
.command('show')
|
|
77
|
+
.description('Show one task with the verification run that last judged it')
|
|
78
|
+
.argument('<task-id>', 'Task ID')
|
|
79
|
+
.option('--json', 'JSON output')
|
|
80
|
+
.option('--token <token>', command_helpers_1.TOKEN_WARNING)
|
|
81
|
+
.action(async (taskId, options) => {
|
|
82
|
+
try {
|
|
83
|
+
if (!TASK_ID_PATTERN.test(taskId)) {
|
|
84
|
+
console.error('Error: Invalid task ID format.');
|
|
85
|
+
process.exit(types_1.ExitCode.CONFIG_ERROR);
|
|
86
|
+
return;
|
|
87
|
+
}
|
|
88
|
+
const client = new api_client_1.ApiClient({ token: options.token });
|
|
89
|
+
const response = await client.get(`/api/tasks/${taskId}`);
|
|
90
|
+
const detail = (0, api_client_1.assertResponseShape)(response, ['task', 'lastVerificationRun'], 'GET /api/tasks/:taskId');
|
|
91
|
+
if (options.json) {
|
|
92
|
+
console.log(JSON.stringify(detail));
|
|
93
|
+
return;
|
|
94
|
+
}
|
|
95
|
+
const { task, lastVerificationRun } = detail;
|
|
96
|
+
console.log(`ID: ${task.id}`);
|
|
97
|
+
console.log(`STATUS: ${task.status}`);
|
|
98
|
+
console.log(`WORKTREE: ${task.worktreeId}`);
|
|
99
|
+
console.log(`AGENT: ${task.cliToolId}${task.instanceId ? `/${task.instanceId}` : ''}`);
|
|
100
|
+
console.log(`TITLE: ${task.title}`);
|
|
101
|
+
console.log(`CONTRACT: ${task.contractPath ?? '-'}`);
|
|
102
|
+
console.log(`SCOPE: ${task.contract.scope.allow.join(', ') || '-'}`);
|
|
103
|
+
if (task.contract.scope.deny.length > 0) {
|
|
104
|
+
console.log(`DENY: ${task.contract.scope.deny.join(', ')}`);
|
|
105
|
+
}
|
|
106
|
+
console.log(`GATES: ${task.contract.verify.gates?.join(', ') ?? 'all-gates'}`);
|
|
107
|
+
console.log(`AUTO-YES: ${task.contract.autoYes.mode ?? 'unset'}`);
|
|
108
|
+
console.log(`CREATED: ${task.createdAt}`);
|
|
109
|
+
console.log(`STARTED: ${formatTimestamp(task.startedAt)}`);
|
|
110
|
+
console.log(`FINISHED: ${formatTimestamp(task.finishedAt)}`);
|
|
111
|
+
if (!lastVerificationRun) {
|
|
112
|
+
console.log('VERIFY: (no verification run yet)');
|
|
113
|
+
return;
|
|
114
|
+
}
|
|
115
|
+
console.log(`VERIFY: run ${lastVerificationRun.id} ${lastVerificationRun.status}`);
|
|
116
|
+
for (const gate of lastVerificationRun.gates) {
|
|
117
|
+
const exit = gate.exitCode === null ? '-' : String(gate.exitCode);
|
|
118
|
+
console.log(` GATE ${gate.gateId} ${gate.status} (exit=${exit})`);
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
catch (error) {
|
|
122
|
+
(0, command_helpers_1.handleCommandError)(error);
|
|
123
|
+
}
|
|
124
|
+
});
|
|
125
|
+
return cmd;
|
|
126
|
+
}
|