commandmate 0.16.0 → 0.17.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 +286 -216
- package/.next/app-path-routes-manifest.json +37 -27
- package/.next/build-manifest.json +2 -2
- package/.next/prerender-manifest.json +9 -9
- package/.next/required-server-files.json +1 -1
- package/.next/routes-manifest.json +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 +37 -27
- 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 +192 -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/chunks/{4560-8ffb0bb19f2ba998.js → 4560-0917ae2e6a0e5400.js} +1 -1
- package/.next/static/chunks/{6488-c2a968ec806975c2.js → 6488-f4e447464c9e0e22.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-5ffc84094830babb.js +1 -0
- package/.next/static/gR8Sh86RrTynJON8SWkWK/_buildManifest.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 +86 -3
- 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 +78 -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 +170 -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 +57 -0
- package/dist/cli/utils/verify-runner.d.ts.map +1 -0
- package/dist/cli/utils/verify-runner.js +174 -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 +218 -0
- package/dist/server/src/lib/db/verification-db.js +272 -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 → gR8Sh86RrTynJON8SWkWK}/_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;AA8IpC,wBAAgB,iBAAiB,IAAI,OAAO,CAmJ3C"}
|
|
@@ -66,12 +66,59 @@ async function registerInstance(client, worktreeId, instanceId, cliTool) {
|
|
|
66
66
|
await (0, agent_instances_1.saveAgentInstances)(client, worktreeId, next);
|
|
67
67
|
console.error(`Instance registered in roster: ${instanceId}`);
|
|
68
68
|
}
|
|
69
|
+
/**
|
|
70
|
+
* Create the task row for `--contract` and get the message to send back.
|
|
71
|
+
*
|
|
72
|
+
* The contract is parsed server-side: the path is relative to the worktree,
|
|
73
|
+
* which only the server can resolve, and the completion criterion is expanded
|
|
74
|
+
* from that worktree's verify.yaml. Every violation the server found is printed
|
|
75
|
+
* before exiting, so a broken contract is fixed in one pass (Issue #1545).
|
|
76
|
+
*/
|
|
77
|
+
async function createContractTask(client, worktreeId, options) {
|
|
78
|
+
const body = { contractPath: options.contract };
|
|
79
|
+
if (options.agent) {
|
|
80
|
+
body.cliToolId = options.agent;
|
|
81
|
+
}
|
|
82
|
+
if (options.instance) {
|
|
83
|
+
body.instanceId = options.instance;
|
|
84
|
+
}
|
|
85
|
+
try {
|
|
86
|
+
const response = await client.post(`/api/worktrees/${worktreeId}/tasks`, body);
|
|
87
|
+
const created = (0, api_client_1.assertResponseShape)(response, ['task', 'message'], 'POST /api/worktrees/:id/tasks');
|
|
88
|
+
return { taskId: created.task.id, message: created.message };
|
|
89
|
+
}
|
|
90
|
+
catch (error) {
|
|
91
|
+
if (error instanceof api_client_1.ApiError && error.statusCode === 400 && error.payload?.issues?.length) {
|
|
92
|
+
console.error('Error: invalid task contract:');
|
|
93
|
+
for (const issue of error.payload.issues) {
|
|
94
|
+
console.error(` - ${issue}`);
|
|
95
|
+
}
|
|
96
|
+
process.exit(types_1.ExitCode.CONFIG_ERROR);
|
|
97
|
+
}
|
|
98
|
+
throw error;
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Report a task transition to the server, best effort.
|
|
103
|
+
*
|
|
104
|
+
* A failure here is worth a warning but not the command's exit code: the
|
|
105
|
+
* message either reached the agent or it did not, and that outcome is what the
|
|
106
|
+
* caller is waiting on.
|
|
107
|
+
*/
|
|
108
|
+
async function reportTaskStatus(client, taskId, status) {
|
|
109
|
+
try {
|
|
110
|
+
await client.patch(`/api/tasks/${taskId}`, { status });
|
|
111
|
+
}
|
|
112
|
+
catch {
|
|
113
|
+
console.error(`Warning: could not record task ${taskId} as ${status}.`);
|
|
114
|
+
}
|
|
115
|
+
}
|
|
69
116
|
function createSendCommand() {
|
|
70
117
|
const cmd = new commander_1.Command('send');
|
|
71
118
|
cmd
|
|
72
119
|
.description('Send a message to a worktree agent')
|
|
73
120
|
.argument('<worktree-id>', 'Worktree ID')
|
|
74
|
-
.argument('
|
|
121
|
+
.argument('[message]', 'Message to send (omit when using --contract)')
|
|
75
122
|
.option('--agent <agent>', 'CLI tool agent (claude, codex, gemini, vibe-local, opencode, copilot, antigravity)')
|
|
76
123
|
.option('--instance <id>', 'Agent instance ID: <agent> or <agent>-<n> (e.g. claude-2). Defaults to the agent\'s primary instance.')
|
|
77
124
|
.option('--register', 'Register the --instance session into the agent-instance roster (Issue #1000)')
|
|
@@ -79,6 +126,7 @@ function createSendCommand() {
|
|
|
79
126
|
.option('--auto-yes', 'Enable auto-yes before sending')
|
|
80
127
|
.option('--duration <duration>', `Auto-yes duration (${duration_constants_1.ALLOWED_DURATIONS.join(', ')})`)
|
|
81
128
|
.option('--stop-pattern <pattern>', 'Auto-yes stop pattern (regex)')
|
|
129
|
+
.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
130
|
.option('--token <token>', command_helpers_1.TOKEN_WARNING)
|
|
83
131
|
.action(async (worktreeId, message, options) => {
|
|
84
132
|
try {
|
|
@@ -87,6 +135,16 @@ function createSendCommand() {
|
|
|
87
135
|
console.error('Error: Invalid worktree ID format.');
|
|
88
136
|
process.exit(types_1.ExitCode.CONFIG_ERROR);
|
|
89
137
|
}
|
|
138
|
+
// Issue #1545: the contract supplies the message, so accepting both
|
|
139
|
+
// would leave which one the agent receives ambiguous.
|
|
140
|
+
if (options.contract && message !== undefined) {
|
|
141
|
+
console.error('Error: --contract supplies the message; do not pass a message argument as well.');
|
|
142
|
+
process.exit(types_1.ExitCode.CONFIG_ERROR);
|
|
143
|
+
}
|
|
144
|
+
if (!options.contract && message === undefined) {
|
|
145
|
+
console.error('Error: a message argument is required unless --contract is given.');
|
|
146
|
+
process.exit(types_1.ExitCode.CONFIG_ERROR);
|
|
147
|
+
}
|
|
90
148
|
// Validate agent if provided
|
|
91
149
|
if (options.agent && !(0, cli_tool_ids_1.isCliToolId)(options.agent)) {
|
|
92
150
|
console.error(`Error: Invalid agent. Must be one of: ${cli_tool_ids_1.CLI_TOOL_IDS.join(', ')}`);
|
|
@@ -130,12 +188,24 @@ function createSendCommand() {
|
|
|
130
188
|
}
|
|
131
189
|
}
|
|
132
190
|
const client = new api_client_1.ApiClient({ token: options.token });
|
|
191
|
+
// Issue #1545: resolve the contract before anything with a side effect,
|
|
192
|
+
// so an invalid contract cannot leave auto-yes enabled for a message
|
|
193
|
+
// that was never sent.
|
|
194
|
+
let taskId;
|
|
195
|
+
let content = message;
|
|
196
|
+
if (options.contract) {
|
|
197
|
+
const task = await createContractTask(client, worktreeId, options);
|
|
198
|
+
taskId = task.taskId;
|
|
199
|
+
content = task.message;
|
|
200
|
+
console.error(`Task created: ${taskId}`);
|
|
201
|
+
console.log(taskId);
|
|
202
|
+
}
|
|
133
203
|
// --auto-yes: enable auto-yes first (unless --model is specified, then after send) [DR2-02]
|
|
134
204
|
if (options.autoYes && !options.model) {
|
|
135
205
|
await enableAutoYes(client, worktreeId, options);
|
|
136
206
|
}
|
|
137
207
|
// [DR2-05] Send API uses "content" not "message"
|
|
138
|
-
const sendBody = { content
|
|
208
|
+
const sendBody = { content };
|
|
139
209
|
if (options.agent) {
|
|
140
210
|
sendBody.cliToolId = options.agent;
|
|
141
211
|
}
|
|
@@ -147,8 +217,21 @@ function createSendCommand() {
|
|
|
147
217
|
if (options.model) {
|
|
148
218
|
sendBody.model = options.model;
|
|
149
219
|
}
|
|
150
|
-
|
|
220
|
+
try {
|
|
221
|
+
await client.post(`/api/worktrees/${worktreeId}/send`, sendBody);
|
|
222
|
+
}
|
|
223
|
+
catch (error) {
|
|
224
|
+
// A task whose message never arrived is a failed task, not a pending
|
|
225
|
+
// one: nothing is working on it and nothing ever will.
|
|
226
|
+
if (taskId) {
|
|
227
|
+
await reportTaskStatus(client, taskId, 'failed');
|
|
228
|
+
}
|
|
229
|
+
throw error;
|
|
230
|
+
}
|
|
151
231
|
console.error('Message sent.');
|
|
232
|
+
if (taskId) {
|
|
233
|
+
await reportTaskStatus(client, taskId, 'running');
|
|
234
|
+
}
|
|
152
235
|
// Issue #1000: register the ad-hoc instance into the roster after the
|
|
153
236
|
// session has started, so a follow-up `commandmate instances` lists it.
|
|
154
237
|
if (options.register && options.instance) {
|
|
@@ -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
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* verify Command - Run the repository verification gates for a worktree
|
|
3
|
+
* Issue #1544
|
|
4
|
+
*
|
|
5
|
+
* Exit codes:
|
|
6
|
+
* - 0: SUCCESS (every gate passed)
|
|
7
|
+
* - 20: VERIFY_FAILED (a gate failed, timed out, or errored)
|
|
8
|
+
* - 21: NOT_STARTED (work-evidence found nothing to verify)
|
|
9
|
+
* - 124: TIMEOUT (--timeout elapsed before the run reached a verdict)
|
|
10
|
+
* Infrastructure errors and verdict-less runs use ExitCode (1, 2, 99).
|
|
11
|
+
*
|
|
12
|
+
* Issue #1593 adds two read-only subcommands, `history` and `show`. They never
|
|
13
|
+
* return 20/21: those codes mean "this working tree failed verification", and a
|
|
14
|
+
* query about past runs is not a verdict on the current one. A read that
|
|
15
|
+
* succeeds exits 0 even when it finds nothing.
|
|
16
|
+
*/
|
|
17
|
+
import { Command } from 'commander';
|
|
18
|
+
export declare function createVerifyCommand(): Command;
|
|
19
|
+
//# sourceMappingURL=verify.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"verify.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/verify.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAoDpC,wBAAgB,mBAAmB,IAAI,OAAO,CA0D7C"}
|