commandmate 0.22.1 → 0.23.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 +86 -86
- package/.next/app-path-routes-manifest.json +17 -17
- package/.next/build-manifest.json +2 -2
- package/.next/prerender-manifest.json +9 -9
- package/.next/required-server-files.json +1 -1
- package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/server/app/api/app/update/route_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.js +1 -1
- package/.next/server/app/api/daily-summary/route.js.nft.json +1 -1
- package/.next/server/app/api/daily-summary/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/daily-summary/status/route.js +1 -1
- package/.next/server/app/api/daily-summary/status/route.js.nft.json +1 -1
- package/.next/server/app/api/daily-summary/status/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/external-apps/[id]/health/route.js +1 -1
- package/.next/server/app/api/external-apps/[id]/health/route.js.nft.json +1 -1
- package/.next/server/app/api/external-apps/[id]/health/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/external-apps/[id]/route.js +1 -1
- package/.next/server/app/api/external-apps/[id]/route.js.nft.json +1 -1
- package/.next/server/app/api/external-apps/[id]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/external-apps/route.js +1 -1
- package/.next/server/app/api/external-apps/route.js.nft.json +1 -1
- package/.next/server/app/api/external-apps/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/fs/browse/route.js +1 -1
- package/.next/server/app/api/fs/browse/route.js.nft.json +1 -1
- package/.next/server/app/api/fs/browse/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/fs/recent-paths/route.js +1 -1
- package/.next/server/app/api/fs/recent-paths/route.js.nft.json +1 -1
- package/.next/server/app/api/fs/recent-paths/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/hooks/agent-event/route.js +1 -1
- package/.next/server/app/api/hooks/agent-event/route.js.nft.json +1 -1
- package/.next/server/app/api/hooks/agent-event/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/hooks/claude-done/route.js +1 -1
- package/.next/server/app/api/hooks/claude-done/route.js.nft.json +1 -1
- package/.next/server/app/api/hooks/claude-done/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/hooks/permission-request/route.js +1 -1
- package/.next/server/app/api/hooks/permission-request/route.js.nft.json +1 -1
- package/.next/server/app/api/hooks/permission-request/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/metrics/vibe/route.js +1 -1
- package/.next/server/app/api/metrics/vibe/route.js.nft.json +1 -1
- package/.next/server/app/api/metrics/vibe/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/ollama/models/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/push/subscriptions/route.js +1 -1
- package/.next/server/app/api/push/subscriptions/route.js.nft.json +1 -1
- package/.next/server/app/api/push/subscriptions/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/push/vapid/route.js +1 -1
- package/.next/server/app/api/push/vapid/route.js.nft.json +1 -1
- package/.next/server/app/api/push/vapid/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/repositories/[id]/route.js +1 -1
- package/.next/server/app/api/repositories/[id]/route.js.nft.json +1 -1
- package/.next/server/app/api/repositories/[id]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/repositories/[id]/todos/[todoId]/route.js +1 -1
- package/.next/server/app/api/repositories/[id]/todos/[todoId]/route.js.nft.json +1 -1
- package/.next/server/app/api/repositories/[id]/todos/[todoId]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/repositories/[id]/todos/route.js +1 -1
- package/.next/server/app/api/repositories/[id]/todos/route.js.nft.json +1 -1
- package/.next/server/app/api/repositories/[id]/todos/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/repositories/clone/[jobId]/route.js +1 -1
- package/.next/server/app/api/repositories/clone/[jobId]/route.js.nft.json +1 -1
- package/.next/server/app/api/repositories/clone/[jobId]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/repositories/clone/route.js +1 -1
- package/.next/server/app/api/repositories/clone/route.js.nft.json +1 -1
- package/.next/server/app/api/repositories/clone/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/repositories/excluded/route.js +1 -1
- package/.next/server/app/api/repositories/excluded/route.js.nft.json +1 -1
- package/.next/server/app/api/repositories/excluded/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/repositories/restore/route.js +1 -1
- package/.next/server/app/api/repositories/restore/route.js.nft.json +1 -1
- package/.next/server/app/api/repositories/restore/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/repositories/route.js +1 -1
- package/.next/server/app/api/repositories/route.js.nft.json +1 -1
- package/.next/server/app/api/repositories/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/repositories/scan/route.js +1 -1
- package/.next/server/app/api/repositories/scan/route.js.nft.json +1 -1
- package/.next/server/app/api/repositories/scan/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/repositories/sync/route.js +1 -1
- package/.next/server/app/api/repositories/sync/route.js.nft.json +1 -1
- package/.next/server/app/api/repositories/sync/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/repositories/validate-path/route.js +1 -1
- package/.next/server/app/api/repositories/validate-path/route.js.nft.json +1 -1
- package/.next/server/app/api/repositories/validate-path/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/sidebar/group-order/route.js +1 -1
- package/.next/server/app/api/sidebar/group-order/route.js.nft.json +1 -1
- package/.next/server/app/api/sidebar/group-order/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/skills/[id]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/skills/installations/route.js +1 -1
- package/.next/server/app/api/skills/installations/route.js.nft.json +1 -1
- package/.next/server/app/api/skills/installations/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/skills/operations/route.js +1 -1
- package/.next/server/app/api/skills/operations/route.js.nft.json +1 -1
- package/.next/server/app/api/skills/operations/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/skills/reindex/route.js +1 -1
- package/.next/server/app/api/skills/reindex/route.js.nft.json +1 -1
- package/.next/server/app/api/skills/reindex/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/skills/route_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 +1 -4
- package/.next/server/app/api/tasks/[taskId]/cancel/route.js.nft.json +1 -1
- package/.next/server/app/api/tasks/[taskId]/cancel/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/tasks/[taskId]/route.js +1 -4
- package/.next/server/app/api/tasks/[taskId]/route.js.nft.json +1 -1
- package/.next/server/app/api/tasks/[taskId]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/templates/[id]/route.js +1 -1
- package/.next/server/app/api/templates/[id]/route.js.nft.json +1 -1
- package/.next/server/app/api/templates/[id]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/templates/route.js +1 -1
- package/.next/server/app/api/templates/route.js.nft.json +1 -1
- package/.next/server/app/api/templates/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/todos/route.js +1 -1
- package/.next/server/app/api/todos/route.js.nft.json +1 -1
- package/.next/server/app/api/todos/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/verification/runs/[runId]/route.js +1 -1
- package/.next/server/app/api/verification/runs/[runId]/route.js.nft.json +1 -1
- package/.next/server/app/api/verification/runs/[runId]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/verification/runs/route.js +1 -1
- package/.next/server/app/api/verification/runs/route.js.nft.json +1 -1
- package/.next/server/app/api/verification/runs/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/auto-yes/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/auto-yes/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/auto-yes/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/capture/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/capture/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/capture/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/cli-tool/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/cli-tool/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/cli-tool/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/cmate/schedules/route.js +2 -2
- package/.next/server/app/api/worktrees/[id]/cmate/schedules/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/cmate/schedules/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/current-output/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/current-output/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/current-output/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/execution-logs/[logId]/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/execution-logs/[logId]/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/execution-logs/[logId]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/execution-logs/route.js +2 -2
- package/.next/server/app/api/worktrees/[id]/execution-logs/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/execution-logs/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/files/[...path]/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/files/[...path]/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/files/[...path]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/branch/create/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/branch/create/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/git/branch/create/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/branch/delete/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/branch/delete/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/git/branch/delete/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/branches/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/branches/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/git/branches/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/checkout/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/checkout/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/git/checkout/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/commit/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/commit/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/git/commit/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/diff/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/diff/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/git/diff/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/fetch/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/fetch/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/git/fetch/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/log/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/log/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/git/log/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/pull/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/pull/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/git/pull/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/push/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/push/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/git/push/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/reset/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/reset/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/git/reset/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/revert/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/revert/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/git/revert/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/show/[commitHash]/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/show/[commitHash]/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/git/show/[commitHash]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/stage/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/stage/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/git/stage/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/staged/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/staged/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/git/staged/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/stash/[index]/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/stash/[index]/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/git/stash/[index]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/stash/apply/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/stash/apply/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/git/stash/apply/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/stash/pop/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/stash/pop/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/git/stash/pop/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/stash/push/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/stash/push/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/git/stash/push/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/stash/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/stash/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/git/stash/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/status/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/status/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/git/status/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/unstage/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/unstage/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/git/unstage/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/working-diff/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/working-diff/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/git/working-diff/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/interrupt/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/interrupt/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/interrupt/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/kill-session/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/kill-session/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/kill-session/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/logs/[filename]/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/logs/[filename]/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/logs/[filename]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/logs/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/logs/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/logs/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/marp-render/route.js +3 -3
- package/.next/server/app/api/worktrees/[id]/marp-render/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/marp-render/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/memos/[memoId]/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/memos/[memoId]/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/memos/[memoId]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/memos/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/memos/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/memos/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/messages/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/messages/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/messages/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/prompt-response/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/prompt-response/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/prompt-response/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/respond/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/respond/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/respond/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/schedules/[scheduleId]/route.js +2 -2
- package/.next/server/app/api/worktrees/[id]/schedules/[scheduleId]/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/schedules/[scheduleId]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/schedules/active/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/schedules/active/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/schedules/active/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/schedules/route.js +3 -3
- package/.next/server/app/api/worktrees/[id]/schedules/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/schedules/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/search/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/search/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/search/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/send/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/send/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/send/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/skills/[skillId]/git-workflow/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/skills/[skillId]/git-workflow/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/skills/[skillId]/git-workflow/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/skills/[skillId]/install/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/skills/[skillId]/install/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/skills/[skillId]/install/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/skills/[skillId]/plan/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/skills/[skillId]/plan/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/skills/[skillId]/plan/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall-plan/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall-plan/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall-plan/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/skills/[skillId]/update/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/skills/[skillId]/update/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/skills/[skillId]/update/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/skills/[skillId]/update-plan/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/skills/[skillId]/update-plan/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/skills/[skillId]/update-plan/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/skills/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/skills/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/skills/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/slash-commands/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/slash-commands/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/slash-commands/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/special-keys/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/special-keys/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/special-keys/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/start-polling/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/start-polling/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/start-polling/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/tasks/route.js +2 -2
- package/.next/server/app/api/worktrees/[id]/tasks/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/tasks/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/terminal/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/terminal/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/terminal/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/timers/history/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/timers/history/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/timers/history/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/timers/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/timers/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/timers/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/todos/[todoId]/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/todos/[todoId]/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/todos/[todoId]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/todos/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/todos/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/todos/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/tree/[...path]/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/tree/[...path]/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/tree/[...path]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/tree/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/tree/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/tree/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/upload/[...path]/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/upload/[...path]/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/upload/[...path]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/verify/route.js +1 -4
- package/.next/server/app/api/worktrees/[id]/verify/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/verify/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/verify/runs/[runId]/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/verify/runs/[runId]/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/verify/runs/[runId]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/verify/runs/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/verify/runs/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/verify/runs/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/viewed/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/viewed/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/viewed/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/route.js +1 -1
- package/.next/server/app/api/worktrees/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/route_client-reference-manifest.js +1 -1
- package/.next/server/app/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.js +1 -1
- package/.next/server/app/proxy/[...path]/route.js.nft.json +1 -1
- package/.next/server/app/proxy/[...path]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/repositories/page_client-reference-manifest.js +1 -1
- package/.next/server/app/review/page_client-reference-manifest.js +1 -1
- package/.next/server/app/sessions/page_client-reference-manifest.js +1 -1
- package/.next/server/app/skills/[skillId]/page_client-reference-manifest.js +1 -1
- package/.next/server/app/skills/installed/page_client-reference-manifest.js +1 -1
- package/.next/server/app/skills/page_client-reference-manifest.js +1 -1
- package/.next/server/app/worktrees/[id]/files/[...path]/page.js +1 -1
- package/.next/server/app/worktrees/[id]/files/[...path]/page.js.nft.json +1 -1
- package/.next/server/app/worktrees/[id]/files/[...path]/page_client-reference-manifest.js +1 -1
- package/.next/server/app/worktrees/[id]/page.js +2 -2
- package/.next/server/app/worktrees/[id]/page.js.nft.json +1 -1
- package/.next/server/app/worktrees/[id]/page_client-reference-manifest.js +1 -1
- package/.next/server/app/worktrees/[id]/terminal/page.js +1 -1
- package/.next/server/app/worktrees/[id]/terminal/page.js.nft.json +1 -1
- package/.next/server/app/worktrees/[id]/terminal/page_client-reference-manifest.js +1 -1
- package/.next/server/app-paths-manifest.json +17 -17
- package/.next/server/chunks/1029.js +1 -1
- package/.next/server/chunks/1068.js +1 -1
- package/.next/server/chunks/2119.js +1 -1
- package/.next/server/chunks/2404.js +1 -1
- package/.next/server/chunks/2445.js +1 -1
- package/.next/server/chunks/2546.js +1 -1
- package/.next/server/chunks/3241.js +1 -0
- package/.next/server/chunks/3417.js +1 -1
- package/.next/server/chunks/406.js +10 -6
- package/.next/server/chunks/4444.js +1 -1
- package/.next/server/chunks/5959.js +4 -5
- package/.next/server/chunks/5998.js +1 -12
- package/.next/server/chunks/6130.js +1 -1
- package/.next/server/chunks/6274.js +3 -3
- package/.next/server/chunks/6401.js +1 -1
- package/.next/server/chunks/6781.js +1 -0
- package/.next/server/chunks/7458.js +6 -0
- package/.next/server/chunks/{3753.js → 7970.js} +57 -32
- package/.next/server/chunks/8536.js +1 -1
- package/.next/server/chunks/8807.js +180 -127
- package/.next/server/chunks/9058.js +1 -1
- package/.next/server/chunks/9067.js +1 -1
- package/.next/server/chunks/9360.js +1 -1
- 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/server/src/middleware.js.map +1 -1
- package/.next/static/chunks/{6488-63dacfbab082ca8d.js → 6488-95ba9d24a76f0cc5.js} +1 -1
- package/.next/static/chunks/app/worktrees/[id]/{page-c1be93f2595d0803.js → page-966a451ae7b0903a.js} +1 -1
- package/.next/trace +12 -12
- package/dist/cli/docs/agent-operations.d.ts +1 -1
- package/dist/cli/docs/agent-operations.d.ts.map +1 -1
- package/dist/cli/docs/agent-operations.js +5 -1
- package/dist/cli/utils/api-client.d.ts.map +1 -1
- package/dist/cli/utils/api-client.js +9 -2
- package/dist/cli/utils/server-url.d.ts +23 -0
- package/dist/cli/utils/server-url.d.ts.map +1 -1
- package/dist/cli/utils/server-url.js +33 -0
- package/dist/server/src/config/log-config.js +10 -1
- package/dist/server/src/config/safe-directory.js +103 -0
- package/dist/server/src/config/system-directories.js +74 -9
- package/dist/server/src/lib/cli-tools/antigravity.js +19 -2
- package/dist/server/src/lib/cli-tools/codex.js +95 -1
- package/dist/server/src/lib/cli-tools/copilot.js +30 -1
- package/dist/server/src/lib/cli-tools/gemini.js +28 -2
- package/dist/server/src/lib/cli-tools/opencode.js +51 -2
- package/dist/server/src/lib/git/git-default-branch.js +59 -0
- package/dist/server/src/lib/hooks/agent-event-service.js +205 -0
- package/dist/server/src/lib/hooks/agent-event-types.js +7 -86
- package/dist/server/src/lib/hooks/hook-settings-generator.js +26 -11
- package/dist/server/src/lib/hooks/permission-decision-service.js +269 -0
- package/dist/server/src/lib/hooks/sources/abstain.js +78 -0
- package/dist/server/src/lib/hooks/sources/antigravity/hooks-config.js +372 -0
- package/dist/server/src/lib/hooks/sources/antigravity/source.js +225 -0
- package/dist/server/src/lib/hooks/sources/antigravity/tool-id.js +16 -0
- package/dist/server/src/lib/hooks/sources/claude/source.js +143 -0
- package/dist/server/src/lib/hooks/sources/claude/tool-id.js +18 -0
- package/dist/server/src/lib/hooks/sources/codex/hooks-config.js +465 -0
- package/dist/server/src/lib/hooks/sources/codex/source.js +138 -0
- package/dist/server/src/lib/hooks/sources/codex/tool-id.js +15 -0
- package/dist/server/src/lib/hooks/sources/copilot/hook-settings.js +473 -0
- package/dist/server/src/lib/hooks/sources/copilot/source.js +210 -0
- package/dist/server/src/lib/hooks/sources/copilot/tool-id.js +15 -0
- package/dist/server/src/lib/hooks/sources/define-source.js +169 -0
- package/dist/server/src/lib/hooks/sources/event-mapper.js +157 -0
- package/dist/server/src/lib/hooks/sources/gemini/event-vocabulary.js +102 -0
- package/dist/server/src/lib/hooks/sources/gemini/settings-generator.js +315 -0
- package/dist/server/src/lib/hooks/sources/gemini/shared-config-tree.js +103 -0
- package/dist/server/src/lib/hooks/sources/gemini/source.js +151 -0
- package/dist/server/src/lib/hooks/sources/gemini/tool-id.js +17 -0
- package/dist/server/src/lib/hooks/sources/hook-event-vocabulary.js +111 -0
- package/dist/server/src/lib/hooks/sources/index.js +62 -0
- package/dist/server/src/lib/hooks/sources/legacy-relay.js +84 -0
- package/dist/server/src/lib/hooks/sources/opencode/client.js +299 -0
- package/dist/server/src/lib/hooks/sources/opencode/ingest.js +261 -0
- package/dist/server/src/lib/hooks/sources/opencode/mappers.js +154 -0
- package/dist/server/src/lib/hooks/sources/opencode/payloads.js +189 -0
- package/dist/server/src/lib/hooks/sources/opencode/ports.js +295 -0
- package/dist/server/src/lib/hooks/sources/opencode/runtime.js +159 -0
- package/dist/server/src/lib/hooks/sources/opencode/source.js +250 -0
- package/dist/server/src/lib/hooks/sources/opencode/subscription.js +422 -0
- package/dist/server/src/lib/hooks/sources/opencode/tool-id.js +14 -0
- package/dist/server/src/lib/hooks/sources/opencode/turn-gate.js +193 -0
- package/dist/server/src/lib/hooks/sources/pending-decisions.js +127 -0
- package/dist/server/src/lib/hooks/sources/registry.js +111 -0
- package/dist/server/src/lib/hooks/sources/types.js +46 -0
- package/dist/server/src/lib/session/agent-session-lifecycle.js +82 -0
- package/dist/server/src/lib/session/claude-session.js +10 -3
- package/dist/server/src/lib/tasks/contract-message.js +175 -0
- package/dist/server/src/lib/verification/env-clean-gate.js +320 -0
- package/dist/server/src/lib/verification/env-snapshot.js +474 -0
- package/dist/server/src/lib/verification/gate-runner.js +802 -0
- package/dist/server/src/lib/verification/scope-gate.js +402 -0
- package/dist/server/src/lib/verification/verify-config.js +281 -0
- package/package.json +1 -1
- package/scripts/hooks/cmate-agent-event.sh +73 -3
- package/.next/server/chunks/8856.js +0 -4
- /package/.next/static/{d4vh4O18WEhXs4WbdShIs → wH6K6QNPHSdATFkVoIcy3}/_buildManifest.js +0 -0
- /package/.next/static/{d4vh4O18WEhXs4WbdShIs → wH6K6QNPHSdATFkVoIcy3}/_ssgManifest.js +0 -0
|
@@ -1,34 +1,53 @@
|
|
|
1
|
-
"use strict";exports.id=8807,exports.ids=[8807],exports.modules={23718:(a,b,c)=>{c.d(b,{a1:()=>j,ko:()=>i});var d=c(55511),e=c(33873),f=c.n(e);function g(a){return a.toLowerCase().replace(/[^a-z0-9-]/g,"-").replace(/-+/g,"-").replace(/^-|-$/g,"")}let h="worktree";function i(a,b=[]){let c=b instanceof Set?b:new Set(b),e=g(f().basename(a))||h;if(!c.has(e))return e;let j=(0,d.createHash)("sha256").update(a).digest("hex");for(let a=8;a<=j.length;a+=8){let b=`${e}-${j.slice(0,a)}`;if(!c.has(b))return b}for(let a=2;;a++){let b=`${e}-${j}-${a}`;if(!c.has(b))return b}}function j(a,b){if(!a)return!1;let c=g(f().basename(b))||h;if(a===c)return!0;if(!a.startsWith(`${c}-`))return!1;let e=a.slice(c.length+1),i=(0,d.createHash)("sha256").update(b).digest("hex");return!!(e.length>0&&e.length%8==0&&e.length<=i.length&&i.startsWith(e))||/^-[0-9]+$/.test(e.slice(i.length))&&e.startsWith(i)}},28274:(a,b,c)=>{c.d(b,{AC:()=>e,BN:()=>
|
|
1
|
+
"use strict";exports.id=8807,exports.ids=[8807],exports.modules={23718:(a,b,c)=>{c.d(b,{a1:()=>j,ko:()=>i});var d=c(55511),e=c(33873),f=c.n(e);function g(a){return a.toLowerCase().replace(/[^a-z0-9-]/g,"-").replace(/-+/g,"-").replace(/^-|-$/g,"")}let h="worktree";function i(a,b=[]){let c=b instanceof Set?b:new Set(b),e=g(f().basename(a))||h;if(!c.has(e))return e;let j=(0,d.createHash)("sha256").update(a).digest("hex");for(let a=8;a<=j.length;a+=8){let b=`${e}-${j.slice(0,a)}`;if(!c.has(b))return b}for(let a=2;;a++){let b=`${e}-${j}-${a}`;if(!c.has(b))return b}}function j(a,b){if(!a)return!1;let c=g(f().basename(b))||h;if(a===c)return!0;if(!a.startsWith(`${c}-`))return!1;let e=a.slice(c.length+1),i=(0,d.createHash)("sha256").update(b).digest("hex");return!!(e.length>0&&e.length%8==0&&e.length<=i.length&&i.startsWith(e))||/^-[0-9]+$/.test(e.slice(i.length))&&e.startsWith(i)}},28274:(a,b,c)=>{c.d(b,{AC:()=>e,BN:()=>j,Cs:()=>m,NU:()=>o,Uq:()=>n,fs:()=>l,m0:()=>i,sB:()=>k,ug:()=>f});var d=c(15194);class e extends Error{constructor(a,b=d.Ab){super(`Worktree ${a} cannot have more than ${b} agent instances`),this.name="AgentInstanceLimitError"}}class f extends Error{constructor(a){super(a),this.name="InvalidAgentInstanceError"}}function g(a){let b=a.cli_tool_id,c=a.alias&&a.alias.length>0?a.alias:(0,d.hR)(a.cli_tool_id)?(0,d.oo)(b):a.cli_tool_id;return{id:a.instance_id,cliTool:b,alias:c,order:a.sort_order}}function h(a){if(!(0,d.n6)(a.id))throw new f(`Invalid instance id: ${String(a.id)}`);if(!(0,d.hR)(a.cliTool))throw new f(`Invalid CLI tool: ${String(a.cliTool)}`);if("string"==typeof a.alias&&a.alias.length>d.pQ)throw new f(`Alias exceeds ${d.pQ} characters`)}function i(a,b){return a.prepare(`
|
|
2
2
|
SELECT worktree_id, instance_id, cli_tool_id, alias, sort_order, created_at
|
|
3
3
|
FROM agent_instances
|
|
4
4
|
WHERE worktree_id = ?
|
|
5
5
|
ORDER BY sort_order ASC, instance_id ASC
|
|
6
|
-
`).all(b).map(g)}function
|
|
6
|
+
`).all(b).map(g)}function j(a,b,c){let d=a.prepare(`
|
|
7
7
|
SELECT worktree_id, instance_id, cli_tool_id, alias, sort_order, created_at
|
|
8
8
|
FROM agent_instances
|
|
9
9
|
WHERE worktree_id = ? AND instance_id = ?
|
|
10
|
-
`).get(b,c);return d?g(d):null}function
|
|
10
|
+
`).get(b,c);return d?g(d):null}function k(a,b,c,e){if(!c)return{ok:!0,cliToolId:e??null};let f=j(a,b,c);return f&&(0,d.hR)(f.cliTool)?e&&e!==f.cliTool?{ok:!1,instanceId:c,rosterCliTool:f.cliTool,requestedCliTool:e}:{ok:!0,cliToolId:f.cliTool}:e?{ok:!0,cliToolId:e}:(0,d.hR)(c)?{ok:!0,cliToolId:c}:{ok:!0,cliToolId:null}}function l(a,b){return a.prepare(`
|
|
11
|
+
SELECT COUNT(*) as count FROM agent_instances WHERE worktree_id = ?
|
|
12
|
+
`).get(b).count}function m(a,b,c){if(c.length>d.Ab)throw new e(b);let g=new Set;for(let a of c){if(h(a),g.has(a.id))throw new f(`Duplicate instance id: ${a.id}`);g.add(a.id)}let i=Date.now();a.transaction(()=>{a.prepare("DELETE FROM agent_instances WHERE worktree_id = ?").run(b);let d=a.prepare(`
|
|
11
13
|
INSERT INTO agent_instances
|
|
12
14
|
(worktree_id, instance_id, cli_tool_id, alias, sort_order, created_at)
|
|
13
15
|
VALUES (?, ?, ?, ?, ?, ?)
|
|
14
|
-
`);c.forEach((a,c)=>{let e=a.alias??"",f=Number.isInteger(a.order)?a.order:c;d.run(b,a.id,a.cliTool,e,f,
|
|
16
|
+
`);c.forEach((a,c)=>{let e=a.alias??"",f=Number.isInteger(a.order)?a.order:c;d.run(b,a.id,a.cliTool,e,f,i)})})()}function n(a,b,c){h(c),a.transaction(()=>{let g=l(a,b);if(g>=d.Ab)throw new e(b);if(j(a,b,c.id))throw new f(`Instance ${c.id} already exists for worktree ${b}`);let h=Number.isInteger(c.order)?c.order:g;a.prepare(`
|
|
17
|
+
INSERT INTO agent_instances
|
|
18
|
+
(worktree_id, instance_id, cli_tool_id, alias, sort_order, created_at)
|
|
19
|
+
VALUES (?, ?, ?, ?, ?, ?)
|
|
20
|
+
`).run(b,c.id,c.cliTool,c.alias??"",h,Date.now())})()}function o(a,b,c){return a.prepare(`
|
|
21
|
+
DELETE FROM agent_instances WHERE worktree_id = ? AND instance_id = ?
|
|
22
|
+
`).run(b,c).changes>0}},34129:(a,b,c)=>{c.d(b,{$$:()=>n,CR:()=>h,DP:()=>i,GF:()=>o,Ud:()=>m,Xm:()=>r,_O:()=>k,j2:()=>l,jf:()=>q,kx:()=>j,ul:()=>p});var d=c(55511),e=c(87374);let f="id, worktree_id, cli_tool_id, instance_id, message, delay_ms, scheduled_send_time, status, created_at, sent_at, error";function g(a){return{id:a.id,worktreeId:a.worktree_id,cliToolId:a.cli_tool_id,instanceId:a.instance_id??a.cli_tool_id,message:a.message,delayMs:a.delay_ms,scheduledSendTime:a.scheduled_send_time,status:a.status,createdAt:a.created_at,sentAt:a.sent_at,error:a.error??null}}function h(a,b){let c=(0,d.randomUUID)(),e=Date.now(),f=e+b.delayMs,g=b.instanceId??b.cliToolId;return a.prepare(`
|
|
15
23
|
INSERT INTO timer_messages (id, worktree_id, cli_tool_id, instance_id, message, delay_ms, scheduled_send_time, status, created_at, sent_at)
|
|
16
24
|
VALUES (?, ?, ?, ?, ?, ?, ?, 'pending', ?, NULL)
|
|
17
25
|
`).run(c,b.worktreeId,b.cliToolId,g,b.message,b.delayMs,f,e),{id:c,worktreeId:b.worktreeId,cliToolId:b.cliToolId,instanceId:g,message:b.message,delayMs:b.delayMs,scheduledSendTime:f,status:"pending",createdAt:e,sentAt:null,error:null}}function i(a,b,c){let{before:d,limit:h=e.XS}=c??{},i=`SELECT ${f} FROM timer_messages WHERE worktree_id = ?`,j=[b];return void 0!==d&&(i+=" AND created_at < ?",j.push(d)),i+=" ORDER BY created_at DESC LIMIT ?",j.push(h+1),a.prepare(i).all(...j).map(g)}function j(a,b){let c=a.prepare(`
|
|
18
26
|
SELECT ${f}
|
|
19
27
|
FROM timer_messages
|
|
20
28
|
WHERE id = ?
|
|
21
|
-
`).get(b);return c?g(c):void 0}function k(a
|
|
29
|
+
`).get(b);return c?g(c):void 0}function k(a){return a.prepare(`
|
|
30
|
+
SELECT ${f}
|
|
31
|
+
FROM timer_messages
|
|
32
|
+
WHERE status = 'pending'
|
|
33
|
+
ORDER BY scheduled_send_time ASC
|
|
34
|
+
`).all().map(g)}function l(a,b,c,d,e){let f=["status = ?"],g=[c];void 0!==d&&(f.push("sent_at = ?"),g.push(d)),void 0!==e&&(f.push("error = ?"),g.push(e)),g.push(b),a.prepare(`UPDATE timer_messages SET ${f.join(", ")} WHERE id = ?`).run(...g)}function m(a,b){return a.prepare(`
|
|
22
35
|
UPDATE timer_messages SET status = 'cancelled' WHERE id = ? AND status = 'pending'
|
|
23
|
-
`).run(b).changes>0}function
|
|
36
|
+
`).run(b).changes>0}function n(a,b){return a.prepare(`
|
|
24
37
|
UPDATE timer_messages SET status = 'cancelled' WHERE worktree_id = ? AND status = 'pending'
|
|
25
|
-
`).run(b).changes}function
|
|
38
|
+
`).run(b).changes}function o(a,b){return a.prepare(`
|
|
26
39
|
SELECT COUNT(*) as count FROM timer_messages WHERE worktree_id = ? AND status = 'pending'
|
|
27
|
-
`).get(b).count}function
|
|
40
|
+
`).get(b).count}function p(a,b){let c=Date.now()-24*b*36e5;return a.prepare(`
|
|
41
|
+
DELETE FROM timer_messages
|
|
42
|
+
WHERE status NOT IN ('pending', 'sending')
|
|
43
|
+
AND created_at < ?
|
|
44
|
+
`).run(c).changes}function q(a,b){return a.prepare(`
|
|
28
45
|
DELETE FROM timer_messages
|
|
29
46
|
WHERE worktree_id = ?
|
|
30
47
|
AND status NOT IN ('pending', 'sending')
|
|
31
|
-
`).run(b).changes}
|
|
48
|
+
`).run(b).changes}function r(a){return a.prepare(`
|
|
49
|
+
UPDATE timer_messages SET status = 'failed', error = ? WHERE status = 'sending'
|
|
50
|
+
`).run("Recovered from a stuck 'sending' state after a server restart.").changes}},43167:(a,b,c)=>{c.d(b,{CF:()=>h,Se:()=>i,gn:()=>j,jA:()=>g,jJ:()=>k,th:()=>l});var d=c(55511);function e(a){return{id:a.id,endpoint:a.endpoint,keys:{p256dh:a.p256dh,auth:a.auth},deviceLabel:a.device_label,enabledPrompt:1===a.enabled_prompt,enabledCompletion:1===a.enabled_completion,locale:a.locale,createdAt:new Date(a.created_at),updatedAt:new Date(a.updated_at)}}let f=`
|
|
32
51
|
id, endpoint, p256dh, auth, device_label,
|
|
33
52
|
enabled_prompt, enabled_completion, locale, created_at, updated_at
|
|
34
53
|
`;function g(a,b){let c=Date.now(),e=b.deviceLabel??null,f=b.locale??null;a.prepare(`
|
|
@@ -43,21 +62,21 @@
|
|
|
43
62
|
device_label = excluded.device_label,
|
|
44
63
|
locale = COALESCE(excluded.locale, push_subscriptions.locale),
|
|
45
64
|
updated_at = excluded.updated_at
|
|
46
|
-
`).run((0,d.randomUUID)(),b.endpoint,b.p256dh,b.auth,e,f,c,c);let g=h(a,b.endpoint);if(!g)throw Error("Failed to persist push subscription");return g}function h(a,b){let c=a.prepare(`SELECT ${f} FROM push_subscriptions WHERE endpoint = ?`).get(b);return c?e(c):null}function i(a,b){return a.prepare(`SELECT ${f} FROM push_subscriptions WHERE ${"prompt"===b?"enabled_prompt":"enabled_completion"} = 1 ORDER BY created_at ASC`).all().map(e)}function
|
|
65
|
+
`).run((0,d.randomUUID)(),b.endpoint,b.p256dh,b.auth,e,f,c,c);let g=h(a,b.endpoint);if(!g)throw Error("Failed to persist push subscription");return g}function h(a,b){let c=a.prepare(`SELECT ${f} FROM push_subscriptions WHERE endpoint = ?`).get(b);return c?e(c):null}function i(a){return a.prepare(`SELECT ${f} FROM push_subscriptions ORDER BY created_at ASC`).all().map(e)}function j(a,b){return a.prepare(`SELECT ${f} FROM push_subscriptions WHERE ${"prompt"===b?"enabled_prompt":"enabled_completion"} = 1 ORDER BY created_at ASC`).all().map(e)}function k(a,b,c){let d=["updated_at = ?"],e=[Date.now()];return void 0!==c.enabledPrompt&&(d.push("enabled_prompt = ?"),e.push(+!!c.enabledPrompt)),void 0!==c.enabledCompletion&&(d.push("enabled_completion = ?"),e.push(+!!c.enabledCompletion)),e.push(b),a.prepare(`UPDATE push_subscriptions SET ${d.join(", ")} WHERE endpoint = ?`).run(...e),h(a,b)}function l(a,b){return a.prepare("DELETE FROM push_subscriptions WHERE endpoint = ?").run(b).changes>0}},48524:(a,b,c)=>{c.d(b,{EL:()=>g,Hi:()=>e,MH:()=>r,UT:()=>l,Vk:()=>n,Zj:()=>q,__:()=>p,gg:()=>m,sA:()=>f,uB:()=>i,xZ:()=>o});var d=c(55511);let e=["pending","running","waiting_input","verifying","succeeded","failed","not_started","cancelled"],f=["succeeded","failed","not_started","cancelled"],g=["running","waiting_input","verifying"],h=[...g,"failed","not_started"];function i(a){return f.includes(a)}let j=`
|
|
47
66
|
id, worktree_id, cli_tool_id, instance_id, title, goal, contract_path, contract_json,
|
|
48
67
|
status, last_verification_run_id, created_at, updated_at, started_at, finished_at
|
|
49
|
-
`;function
|
|
68
|
+
`;function k(a){return{id:a.id,worktreeId:a.worktree_id,cliToolId:a.cli_tool_id,instanceId:a.instance_id,title:a.title,goal:a.goal,contractPath:a.contract_path,contract:JSON.parse(a.contract_json),status:a.status,lastVerificationRunId:a.last_verification_run_id,createdAt:new Date(a.created_at),updatedAt:new Date(a.updated_at),startedAt:null===a.started_at?null:new Date(a.started_at),finishedAt:null===a.finished_at?null:new Date(a.finished_at)}}function l(a,b){let c=Date.now(),e=(0,d.randomUUID)(),f=b.status??"pending";a.prepare(`
|
|
50
69
|
INSERT INTO tasks (
|
|
51
70
|
id, worktree_id, cli_tool_id, instance_id, title, goal, contract_path, contract_json,
|
|
52
71
|
status, last_verification_run_id, created_at, updated_at, started_at, finished_at
|
|
53
72
|
)
|
|
54
73
|
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, NULL, ?, ?, ?, NULL)
|
|
55
|
-
`).run(e,b.worktreeId,b.cliToolId,b.instanceId??null,b.contract.title,b.contract.goal,b.contractPath??null,JSON.stringify(b.contract),f,c,c,"pending"===f?null:c);let g=
|
|
56
|
-
SELECT ${
|
|
74
|
+
`).run(e,b.worktreeId,b.cliToolId,b.instanceId??null,b.contract.title,b.contract.goal,b.contractPath??null,JSON.stringify(b.contract),f,c,c,"pending"===f?null:c);let g=m(a,e);if(!g)throw Error("Failed to persist task");return g}function m(a,b){let c=a.prepare(`SELECT ${j} FROM tasks WHERE id = ?`).get(b);return c?k(c):null}function n(a,b,c=20){return a.prepare(`
|
|
75
|
+
SELECT ${j} FROM tasks
|
|
57
76
|
WHERE worktree_id = ?
|
|
58
77
|
ORDER BY created_at DESC, rowid DESC
|
|
59
78
|
LIMIT ?
|
|
60
|
-
`).all(b,c).map(
|
|
79
|
+
`).all(b,c).map(k)}function o(a,b,c,d={}){let e=Date.now();if(0===a.prepare(`
|
|
61
80
|
UPDATE tasks
|
|
62
81
|
SET status = ?,
|
|
63
82
|
updated_at = ?,
|
|
@@ -65,20 +84,33 @@
|
|
|
65
84
|
finished_at = CASE WHEN ? = 1 THEN ? ELSE finished_at END,
|
|
66
85
|
last_verification_run_id = COALESCE(?, last_verification_run_id)
|
|
67
86
|
WHERE id = ?
|
|
68
|
-
`).run(c,
|
|
69
|
-
SELECT ${
|
|
87
|
+
`).run(c,e,c,e,+!!i(c),e,d.lastVerificationRunId??null,b).changes)throw Error(`Task ${b} not found`);return m(a,b)}function p(a,b,c,d){let e=["worktree_id = ?"],f=[b];void 0!==c&&(e.push("cli_tool_id = ?"),f.push(c)),void 0!==d&&(e.push("instance_id = ?"),f.push(d));let h=g.map(()=>"?").join(", "),i=a.prepare(`
|
|
88
|
+
SELECT ${j} FROM tasks
|
|
89
|
+
WHERE ${e.join(" AND ")} AND status IN (${h})
|
|
90
|
+
ORDER BY updated_at DESC, created_at DESC, rowid DESC
|
|
91
|
+
LIMIT 1
|
|
92
|
+
`).get(...f,...g);return i?k(i):null}function q(a,b){let c=h.map(()=>"?").join(", "),d=a.prepare(`
|
|
93
|
+
SELECT ${j} FROM tasks
|
|
70
94
|
WHERE worktree_id = ? AND status IN (${c})
|
|
71
95
|
ORDER BY updated_at DESC, created_at DESC, rowid DESC
|
|
72
96
|
LIMIT 1
|
|
73
|
-
`).get(b,...
|
|
74
|
-
SELECT ${
|
|
97
|
+
`).get(b,...h);return d?k(d):null}function r(a,b,c,d){let e=d===c,f=g.map(()=>"?").join(", "),h=a.prepare(`
|
|
98
|
+
SELECT ${j} FROM tasks
|
|
75
99
|
WHERE worktree_id = ?
|
|
76
100
|
AND cli_tool_id = ?
|
|
77
101
|
AND (instance_id = ? OR (instance_id IS NULL AND ?))
|
|
78
|
-
AND status IN (${
|
|
102
|
+
AND status IN (${f})
|
|
79
103
|
ORDER BY updated_at DESC, created_at DESC, rowid DESC
|
|
80
104
|
LIMIT 1
|
|
81
|
-
`).get(b,c,d,+!!e,...
|
|
105
|
+
`).get(b,c,d,+!!e,...g);return h?k(h):null}},72456:(a,b,c)=>{c.d(b,{FT:()=>f,Mj:()=>g,PS:()=>h,Wy:()=>ab,vI:()=>aa,i6:()=>i});var d=c(33873),e=c.n(d);let f=55;function g(a){try{let b=a.prepare("SELECT MAX(version) as version FROM schema_version").get();return b?.version??0}catch{return 0}}function h(a){try{return a.prepare(`
|
|
106
|
+
SELECT version, name, applied_at
|
|
107
|
+
FROM schema_version
|
|
108
|
+
ORDER BY version ASC
|
|
109
|
+
`).all().map(a=>({version:a.version,name:a.name,appliedAt:new Date(a.applied_at)}))}catch{return[]}}function i(a){try{let b=a.prepare(`
|
|
110
|
+
SELECT name FROM sqlite_master
|
|
111
|
+
WHERE type='table' AND name NOT LIKE 'sqlite_%'
|
|
112
|
+
ORDER BY name
|
|
113
|
+
`).all().map(a=>a.name),c=["worktrees","chat_messages","session_states","schema_version","worktree_memos","worktree_todos","external_apps","repositories","clone_jobs","scheduled_executions","execution_logs","daily_reports","report_templates","app_settings","assistant_conversations","assistant_messages","assistant_session_states","agent_instances"].filter(a=>!b.includes(a));if(c.length>0)return console.error("Missing required tables:",c.join(", ")),!1;return!0}catch(a){return console.error("Schema validation failed:",a),!1}}function j(a){let b=c(29021),d=a;for(;d!==e().dirname(d);){let a=e().join(d,".git");if(b.existsSync(a)){let c=b.statSync(a);if(c.isDirectory())return d;if(c.isFile()){let c=b.readFileSync(a,"utf-8").trim().match(/^gitdir:\s*(.+)$/);if(c)return c[1].split("/.git/")[0]}}d=e().dirname(d)}return a}var k=c(90444);let l=[{version:1,name:"initial-schema",up:a=>{(0,k.s4)(a)},down:a=>{a.exec("DROP TABLE IF EXISTS session_states;"),a.exec("DROP TABLE IF EXISTS chat_messages;"),a.exec("DROP TABLE IF EXISTS worktrees;")}},{version:2,name:"add-multi-repo-and-memo-support",up:a=>{a.exec(`
|
|
82
114
|
ALTER TABLE worktrees ADD COLUMN repository_path TEXT;
|
|
83
115
|
ALTER TABLE worktrees ADD COLUMN repository_name TEXT;
|
|
84
116
|
ALTER TABLE worktrees ADD COLUMN memo TEXT;
|
|
@@ -92,7 +124,7 @@
|
|
|
92
124
|
SET repository_path = ?,
|
|
93
125
|
repository_name = ?
|
|
94
126
|
WHERE id = ?
|
|
95
|
-
`);for(let a of b){let b=
|
|
127
|
+
`);for(let a of b){let b=j(a.path),d=e().basename(b);c.run(b,d,a.id)}let d=a.prepare(`
|
|
96
128
|
UPDATE worktrees
|
|
97
129
|
SET last_user_message = ?,
|
|
98
130
|
last_user_message_at = ?
|
|
@@ -136,7 +168,7 @@
|
|
|
136
168
|
SET repository_path = ?,
|
|
137
169
|
repository_name = ?
|
|
138
170
|
WHERE id = ?
|
|
139
|
-
`);for(let a of b){let b=
|
|
171
|
+
`);for(let a of b){let b=j(a.path),d=e().basename(b);c.run(b,d,a.id)}},down:()=>{console.log("No rollback needed for repository path fix")}},{version:4,name:"add-favorite-field",up:a=>{a.exec(`
|
|
140
172
|
ALTER TABLE worktrees ADD COLUMN favorite INTEGER DEFAULT 0;
|
|
141
173
|
`),a.exec(`
|
|
142
174
|
CREATE INDEX IF NOT EXISTS idx_worktrees_favorite
|
|
@@ -150,7 +182,7 @@
|
|
|
150
182
|
ON worktrees(status);
|
|
151
183
|
`)},down:a=>{a.exec(`
|
|
152
184
|
DROP INDEX IF EXISTS idx_worktrees_status;
|
|
153
|
-
`)}}],
|
|
185
|
+
`)}}],m=[{version:6,name:"add-link-field",up:a=>{a.exec(`
|
|
154
186
|
ALTER TABLE worktrees ADD COLUMN link TEXT DEFAULT NULL;
|
|
155
187
|
`)},down:()=>{console.log("No rollback needed for link field")}},{version:7,name:"add-cli-tool-id",up:a=>{a.exec(`
|
|
156
188
|
ALTER TABLE worktrees ADD COLUMN cli_tool_id TEXT DEFAULT 'claude';
|
|
@@ -256,7 +288,7 @@
|
|
|
256
288
|
`).all(),e=a.prepare(`
|
|
257
289
|
INSERT INTO worktree_memos (id, worktree_id, title, content, position, created_at, updated_at)
|
|
258
290
|
VALUES (?, ?, 'Memo', ?, 0, ?, ?)
|
|
259
|
-
`),f=Date.now();for(let a of d)e.run(b(),a.id,a.memo,f,f);console.log("Created worktree_memos table"),console.log(`Migrated ${d.length} existing memos to new table`)},down:a=>{a.exec("DROP TABLE IF EXISTS worktree_memos"),console.log("Dropped worktree_memos table")}}],
|
|
291
|
+
`),f=Date.now();for(let a of d)e.run(b(),a.id,a.memo,f,f);console.log("Created worktree_memos table"),console.log(`Migrated ${d.length} existing memos to new table`)},down:a=>{a.exec("DROP TABLE IF EXISTS worktree_memos"),console.log("Dropped worktree_memos table")}}],n=[{version:11,name:"add-viewed-tracking",up:a=>{a.exec(`
|
|
260
292
|
ALTER TABLE worktrees ADD COLUMN last_viewed_at TEXT;
|
|
261
293
|
`),a.exec(`
|
|
262
294
|
CREATE INDEX IF NOT EXISTS idx_chat_messages_assistant_latest
|
|
@@ -401,7 +433,7 @@
|
|
|
401
433
|
|
|
402
434
|
CREATE INDEX IF NOT EXISTS idx_worktrees_cli_tool
|
|
403
435
|
ON worktrees(cli_tool_id);
|
|
404
|
-
`),console.log("Removed initial_branch column from worktrees table")}}],
|
|
436
|
+
`),console.log("Removed initial_branch column from worktrees table")}}],o=[{version:16,name:"add-issue-no-to-external-apps",up:a=>{a.exec(`
|
|
405
437
|
ALTER TABLE external_apps ADD COLUMN issue_no INTEGER;
|
|
406
438
|
`),a.exec(`
|
|
407
439
|
CREATE INDEX IF NOT EXISTS idx_external_apps_issue_no ON external_apps(issue_no);
|
|
@@ -516,7 +548,7 @@
|
|
|
516
548
|
ALTER TABLE worktrees ADD COLUMN vibe_local_model TEXT DEFAULT NULL;
|
|
517
549
|
`),console.log("Added vibe_local_model column to worktrees table")},down:()=>{console.log("No rollback for vibe_local_model column (SQLite limitation)")}},{version:20,name:"add-vibe-local-context-window-column",up:a=>{a.exec(`
|
|
518
550
|
ALTER TABLE worktrees ADD COLUMN vibe_local_context_window INTEGER DEFAULT NULL;
|
|
519
|
-
`),console.log("Added vibe_local_context_window column to worktrees table")},down:()=>{console.log("No rollback for vibe_local_context_window column (SQLite limitation)")}}],
|
|
551
|
+
`),console.log("Added vibe_local_context_window column to worktrees table")},down:()=>{console.log("No rollback for vibe_local_context_window column (SQLite limitation)")}}],p=[{version:21,name:"add-scheduled-executions-worktree-enabled-index",up:a=>{a.exec(`
|
|
520
552
|
CREATE INDEX IF NOT EXISTS idx_scheduled_executions_worktree_enabled
|
|
521
553
|
ON scheduled_executions(worktree_id, enabled);
|
|
522
554
|
`),console.log("Created composite index idx_scheduled_executions_worktree_enabled")},down:a=>{a.exec("DROP INDEX IF EXISTS idx_scheduled_executions_worktree_enabled"),console.log("Dropped idx_scheduled_executions_worktree_enabled index")}},{version:22,name:"add-archived-column-to-chat-messages",up:a=>{a.exec(`
|
|
@@ -549,7 +581,7 @@
|
|
|
549
581
|
DROP INDEX IF EXISTS idx_timer_messages_status_scheduled;
|
|
550
582
|
DROP INDEX IF EXISTS idx_timer_messages_worktree_status;
|
|
551
583
|
DROP TABLE IF EXISTS timer_messages;
|
|
552
|
-
`)}}],
|
|
584
|
+
`)}}],q=[{version:24,name:"add-daily-reports-table",up:a=>{a.exec(`
|
|
553
585
|
CREATE TABLE daily_reports (
|
|
554
586
|
date TEXT PRIMARY KEY,
|
|
555
587
|
content TEXT NOT NULL,
|
|
@@ -558,7 +590,7 @@
|
|
|
558
590
|
created_at INTEGER NOT NULL DEFAULT (unixepoch() * 1000),
|
|
559
591
|
updated_at INTEGER NOT NULL DEFAULT (unixepoch() * 1000)
|
|
560
592
|
);
|
|
561
|
-
`),console.log("Created daily_reports table")},down:a=>{a.exec("DROP TABLE IF EXISTS daily_reports"),console.log("Dropped daily_reports table")}}],
|
|
593
|
+
`),console.log("Created daily_reports table")},down:a=>{a.exec("DROP TABLE IF EXISTS daily_reports"),console.log("Dropped daily_reports table")}}],r=[{version:25,name:"add-report-templates-table",up:a=>{a.exec(`
|
|
562
594
|
CREATE TABLE report_templates (
|
|
563
595
|
id TEXT PRIMARY KEY,
|
|
564
596
|
name TEXT NOT NULL,
|
|
@@ -567,14 +599,14 @@
|
|
|
567
599
|
created_at INTEGER NOT NULL DEFAULT (unixepoch() * 1000),
|
|
568
600
|
updated_at INTEGER NOT NULL DEFAULT (unixepoch() * 1000)
|
|
569
601
|
);
|
|
570
|
-
`),console.log("Created report_templates table")},down:a=>{a.exec("DROP TABLE IF EXISTS report_templates"),console.log("Dropped report_templates table")}}],
|
|
602
|
+
`),console.log("Created report_templates table")},down:a=>{a.exec("DROP TABLE IF EXISTS report_templates"),console.log("Dropped report_templates table")}}],s=[{version:26,name:"add-repository-display-name",up:a=>{a.exec("ALTER TABLE repositories ADD COLUMN display_name TEXT;"),console.log("Added display_name column to repositories table")},down:a=>{a.exec("ALTER TABLE repositories DROP COLUMN display_name;"),console.log("Removed display_name column from repositories table")}}],t=[{version:27,name:"add-app-settings-table",up:a=>{a.exec(`
|
|
571
603
|
CREATE TABLE IF NOT EXISTS app_settings (
|
|
572
604
|
key TEXT PRIMARY KEY,
|
|
573
605
|
value TEXT NOT NULL,
|
|
574
606
|
created_at INTEGER NOT NULL DEFAULT (unixepoch() * 1000),
|
|
575
607
|
updated_at INTEGER NOT NULL DEFAULT (unixepoch() * 1000)
|
|
576
608
|
);
|
|
577
|
-
`)},down:a=>{a.exec("DROP TABLE IF EXISTS app_settings")}}],
|
|
609
|
+
`)},down:a=>{a.exec("DROP TABLE IF EXISTS app_settings")}}],u=[{version:28,name:"add-assistant-conversation-tables",up:a=>{a.exec(`
|
|
578
610
|
CREATE TABLE IF NOT EXISTS assistant_conversations (
|
|
579
611
|
id TEXT PRIMARY KEY,
|
|
580
612
|
repository_id TEXT NOT NULL,
|
|
@@ -627,7 +659,7 @@
|
|
|
627
659
|
DROP TABLE IF EXISTS assistant_session_states;
|
|
628
660
|
DROP TABLE IF EXISTS assistant_messages;
|
|
629
661
|
DROP TABLE IF EXISTS assistant_conversations;
|
|
630
|
-
`)}}],
|
|
662
|
+
`)}}],v=[{version:29,name:"add-assistant-non-interactive-executions",up:a=>{a.exec(`
|
|
631
663
|
ALTER TABLE assistant_conversations
|
|
632
664
|
ADD COLUMN execution_mode TEXT NOT NULL DEFAULT 'interactive';
|
|
633
665
|
|
|
@@ -677,19 +709,19 @@
|
|
|
677
709
|
ON assistant_executions(status, updated_at DESC);
|
|
678
710
|
`)},down:a=>{a.exec(`
|
|
679
711
|
DROP TABLE IF EXISTS assistant_executions;
|
|
680
|
-
`)}}],
|
|
712
|
+
`)}}],w=[{version:30,name:"add-assistant-context-snapshot",up:a=>{a.exec(`
|
|
681
713
|
ALTER TABLE assistant_conversations
|
|
682
714
|
ADD COLUMN context_snapshot TEXT;
|
|
683
715
|
`)},down:a=>{a.exec(`
|
|
684
716
|
ALTER TABLE assistant_conversations
|
|
685
717
|
DROP COLUMN context_snapshot;
|
|
686
|
-
`)}}],
|
|
718
|
+
`)}}],x=[{version:31,name:"add-repository-visible",up:a=>{a.exec("ALTER TABLE repositories ADD COLUMN visible INTEGER NOT NULL DEFAULT 1;")},down:a=>{a.exec("ALTER TABLE repositories DROP COLUMN visible;")}}],y=[{version:32,name:"add-messages-role-composite-index",up:a=>{a.exec(`
|
|
687
719
|
CREATE INDEX IF NOT EXISTS idx_messages_worktree_role_archived_time
|
|
688
720
|
ON chat_messages(worktree_id, role, archived, timestamp DESC);
|
|
689
721
|
`),a.exec("DROP INDEX IF EXISTS idx_messages_archived;")},down:a=>{a.exec("DROP INDEX IF EXISTS idx_messages_worktree_role_archived_time;"),a.exec(`
|
|
690
722
|
CREATE INDEX IF NOT EXISTS idx_messages_archived
|
|
691
723
|
ON chat_messages(worktree_id, archived, timestamp DESC);
|
|
692
|
-
`)}}],
|
|
724
|
+
`)}}],z=[{version:33,name:"add-agent-instances",up:a=>{a.exec(`
|
|
693
725
|
CREATE TABLE session_states_new (
|
|
694
726
|
worktree_id TEXT NOT NULL,
|
|
695
727
|
cli_tool_id TEXT NOT NULL DEFAULT 'claude',
|
|
@@ -757,7 +789,7 @@
|
|
|
757
789
|
SELECT worktree_id, cli_tool_id, last_captured_line, in_progress_message_id
|
|
758
790
|
FROM session_states
|
|
759
791
|
WHERE instance_id = cli_tool_id;
|
|
760
|
-
`),a.exec("DROP TABLE session_states;"),a.exec("ALTER TABLE session_states_old RENAME TO session_states;"),console.log("Rolled back agent_instances migration (v33)")}}],
|
|
792
|
+
`),a.exec("DROP TABLE session_states;"),a.exec("ALTER TABLE session_states_old RENAME TO session_states;"),console.log("Rolled back agent_instances migration (v33)")}}],A=[{version:34,name:"add-repository-todos",up:a=>{a.exec(`
|
|
761
793
|
CREATE TABLE IF NOT EXISTS repository_todos (
|
|
762
794
|
id TEXT PRIMARY KEY,
|
|
763
795
|
repository_id TEXT NOT NULL,
|
|
@@ -771,13 +803,13 @@
|
|
|
771
803
|
`),a.exec(`
|
|
772
804
|
CREATE INDEX IF NOT EXISTS idx_repository_todos_repo
|
|
773
805
|
ON repository_todos(repository_id, position);
|
|
774
|
-
`)},down:a=>{a.exec("DROP TABLE IF EXISTS repository_todos;")}}],
|
|
806
|
+
`)},down:a=>{a.exec("DROP TABLE IF EXISTS repository_todos;")}}],B=[{version:35,name:"add-instance-id-to-timer-messages",up:a=>{a.exec(`
|
|
775
807
|
ALTER TABLE timer_messages ADD COLUMN instance_id TEXT;
|
|
776
808
|
`),a.exec(`
|
|
777
809
|
UPDATE timer_messages SET instance_id = cli_tool_id WHERE instance_id IS NULL;
|
|
778
|
-
`),console.log("Added instance_id column to timer_messages table")},down:()=>{console.log("No rollback for instance_id column (SQLite limitation)")}}],
|
|
810
|
+
`),console.log("Added instance_id column to timer_messages table")},down:()=>{console.log("No rollback for instance_id column (SQLite limitation)")}}],C=[{version:36,name:"add-branch-to-worktrees",up:a=>{a.exec(`
|
|
779
811
|
ALTER TABLE worktrees ADD COLUMN branch TEXT;
|
|
780
|
-
`),console.log("Added branch column to worktrees table")},down:()=>{console.log("No rollback for branch column (SQLite limitation)")}}],
|
|
812
|
+
`),console.log("Added branch column to worktrees table")},down:()=>{console.log("No rollback for branch column (SQLite limitation)")}}],D=[{version:37,name:"add-worktree-todos",up:a=>{a.exec(`
|
|
781
813
|
CREATE TABLE IF NOT EXISTS worktree_todos (
|
|
782
814
|
id TEXT PRIMARY KEY,
|
|
783
815
|
worktree_id TEXT NOT NULL,
|
|
@@ -791,17 +823,17 @@
|
|
|
791
823
|
`),a.exec(`
|
|
792
824
|
CREATE INDEX IF NOT EXISTS idx_worktree_todos_wt
|
|
793
825
|
ON worktree_todos(worktree_id, position);
|
|
794
|
-
`)},down:a=>{a.exec("DROP TABLE IF EXISTS worktree_todos;")}}],
|
|
826
|
+
`)},down:a=>{a.exec("DROP TABLE IF EXISTS worktree_todos;")}}],E=[{version:38,name:"add-status-to-worktree-todos",up:a=>{a.exec(`
|
|
795
827
|
ALTER TABLE worktree_todos
|
|
796
828
|
ADD COLUMN status TEXT NOT NULL DEFAULT 'todo';
|
|
797
829
|
`),a.exec(`
|
|
798
830
|
UPDATE worktree_todos SET status = 'done' WHERE done = 1;
|
|
799
|
-
`)},down:()=>{}}],
|
|
831
|
+
`)},down:()=>{}}],F=[{version:39,name:"add-detail-to-worktree-todos",up:a=>{a.exec(`
|
|
800
832
|
ALTER TABLE worktree_todos
|
|
801
833
|
ADD COLUMN detail TEXT NOT NULL DEFAULT '';
|
|
802
|
-
`)},down:()=>{}}],
|
|
834
|
+
`)},down:()=>{}}],G=[{version:40,name:"add-error-to-timer-messages",up:a=>{a.exec(`
|
|
803
835
|
ALTER TABLE timer_messages ADD COLUMN error TEXT;
|
|
804
|
-
`),console.log("Added error column to timer_messages table")},down:()=>{console.log("No rollback for error column (SQLite limitation)")}}],
|
|
836
|
+
`),console.log("Added error column to timer_messages table")},down:()=>{console.log("No rollback for error column (SQLite limitation)")}}],H=[{version:41,name:"add-push-subscriptions",up:a=>{a.exec(`
|
|
805
837
|
CREATE TABLE IF NOT EXISTS push_subscriptions (
|
|
806
838
|
id TEXT PRIMARY KEY,
|
|
807
839
|
endpoint TEXT NOT NULL UNIQUE,
|
|
@@ -816,16 +848,16 @@
|
|
|
816
848
|
`),a.exec(`
|
|
817
849
|
CREATE INDEX IF NOT EXISTS idx_push_subscriptions_endpoint
|
|
818
850
|
ON push_subscriptions(endpoint);
|
|
819
|
-
`)},down:a=>{a.exec("DROP TABLE IF EXISTS push_subscriptions;")}}],
|
|
851
|
+
`)},down:a=>{a.exec("DROP TABLE IF EXISTS push_subscriptions;")}}],I=[{version:42,name:"add-locale-to-push-subscriptions",up:a=>{a.exec(`
|
|
820
852
|
ALTER TABLE push_subscriptions ADD COLUMN locale TEXT;
|
|
821
853
|
`)},down:a=>{a.exec(`
|
|
822
854
|
ALTER TABLE push_subscriptions DROP COLUMN locale;
|
|
823
|
-
`)}}],
|
|
855
|
+
`)}}],J=[{version:43,name:"remove-cm-root-dir-ghost-repository",up:a=>{let b=function(){let a=process.env.CM_ROOT_DIR??process.env.MCBD_ROOT_DIR;return a&&a.trim()?e().resolve(a.trim()):null}();return b?(function(){let a=process.env.WORKTREE_REPOS;return a&&a.trim()?a.split(",").map(a=>a.trim()).filter(a=>a.length>0).map(a=>e().resolve(a)):[]})().includes(b)?void console.log(`Migration 43: ${b} is a WORKTREE_REPOS entry; keeping its repository row`):void(a.prepare(`DELETE FROM repositories
|
|
824
856
|
WHERE path = ?
|
|
825
857
|
AND is_env_managed = 1
|
|
826
858
|
AND NOT EXISTS (
|
|
827
859
|
SELECT 1 FROM worktrees WHERE worktrees.repository_path = ?
|
|
828
|
-
)`).run(b,b).changes>0?console.log(`Migration 43: removed CM_ROOT_DIR ghost repository row (${b})`):console.log(`Migration 43: no ghost repository row at ${b}`)):void console.log("Migration 43: CM_ROOT_DIR is not set; no ghost row to remove")},down:()=>{console.log("No rollback for the CM_ROOT_DIR ghost row removal")}}],
|
|
860
|
+
)`).run(b,b).changes>0?console.log(`Migration 43: removed CM_ROOT_DIR ghost repository row (${b})`):console.log(`Migration 43: no ghost repository row at ${b}`)):void console.log("Migration 43: CM_ROOT_DIR is not set; no ghost row to remove")},down:()=>{console.log("No rollback for the CM_ROOT_DIR ghost row removal")}}],K=[{version:44,name:"add-skill-operations",up:a=>{a.exec(`
|
|
829
861
|
CREATE TABLE IF NOT EXISTS skill_operations (
|
|
830
862
|
id TEXT PRIMARY KEY,
|
|
831
863
|
operation_id TEXT NOT NULL,
|
|
@@ -869,7 +901,7 @@
|
|
|
869
901
|
BEGIN
|
|
870
902
|
SELECT RAISE(ABORT, 'skill_operations is append-only');
|
|
871
903
|
END;
|
|
872
|
-
`)},down:a=>{a.exec("DROP TRIGGER IF EXISTS skill_operations_no_delete;"),a.exec("DROP TRIGGER IF EXISTS skill_operations_no_update;"),a.exec("DROP TABLE IF EXISTS skill_operations;")}}],
|
|
904
|
+
`)},down:a=>{a.exec("DROP TRIGGER IF EXISTS skill_operations_no_delete;"),a.exec("DROP TRIGGER IF EXISTS skill_operations_no_update;"),a.exec("DROP TABLE IF EXISTS skill_operations;")}}],L=[{version:45,name:"add-skill-installations",up:a=>{a.exec(`
|
|
873
905
|
CREATE TABLE IF NOT EXISTS skill_installations (
|
|
874
906
|
id TEXT PRIMARY KEY,
|
|
875
907
|
worktree_id TEXT NOT NULL,
|
|
@@ -893,11 +925,11 @@
|
|
|
893
925
|
`),a.exec(`
|
|
894
926
|
CREATE INDEX IF NOT EXISTS idx_skill_installations_skill
|
|
895
927
|
ON skill_installations(skill_id, version);
|
|
896
|
-
`)},down:a=>{a.exec("DROP INDEX IF EXISTS idx_skill_installations_skill;"),a.exec("DROP INDEX IF EXISTS idx_skill_installations_worktree;"),a.exec("DROP TABLE IF EXISTS skill_installations;")}}],
|
|
928
|
+
`)},down:a=>{a.exec("DROP INDEX IF EXISTS idx_skill_installations_skill;"),a.exec("DROP INDEX IF EXISTS idx_skill_installations_worktree;"),a.exec("DROP TABLE IF EXISTS skill_installations;")}}],M=`
|
|
897
929
|
id, worktree_id, skill_id, version, install_root, receipt_sha256,
|
|
898
930
|
source_repository, source_ref, source_commit, artifact_sha256,
|
|
899
931
|
effective_risk, operation_id, installed_at, updated_at
|
|
900
|
-
`,
|
|
932
|
+
`,N=`
|
|
901
933
|
id TEXT PRIMARY KEY,
|
|
902
934
|
worktree_id TEXT NOT NULL,
|
|
903
935
|
skill_id TEXT NOT NULL,
|
|
@@ -913,30 +945,30 @@
|
|
|
913
945
|
installed_at INTEGER NOT NULL,
|
|
914
946
|
updated_at INTEGER NOT NULL,
|
|
915
947
|
UNIQUE (worktree_id, skill_id)
|
|
916
|
-
`;function
|
|
948
|
+
`;function O(a){a.exec(`
|
|
917
949
|
CREATE INDEX IF NOT EXISTS idx_skill_installations_worktree
|
|
918
950
|
ON skill_installations(worktree_id);
|
|
919
951
|
`),a.exec(`
|
|
920
952
|
CREATE INDEX IF NOT EXISTS idx_skill_installations_skill
|
|
921
953
|
ON skill_installations(skill_id, version);
|
|
922
|
-
`)}let
|
|
954
|
+
`)}let P=[{version:46,name:"skill-installations-worktree-cascade",up:a=>{a.exec(`
|
|
923
955
|
CREATE TABLE skill_installations_new (
|
|
924
|
-
${
|
|
956
|
+
${N},
|
|
925
957
|
FOREIGN KEY (worktree_id) REFERENCES worktrees(id) ON DELETE CASCADE
|
|
926
958
|
);
|
|
927
959
|
`),a.exec(`
|
|
928
|
-
INSERT INTO skill_installations_new (${
|
|
929
|
-
SELECT ${
|
|
960
|
+
INSERT INTO skill_installations_new (${M})
|
|
961
|
+
SELECT ${M} FROM skill_installations
|
|
930
962
|
WHERE worktree_id IN (SELECT id FROM worktrees);
|
|
931
963
|
`);let b=a.prepare(`SELECT COUNT(*) AS n FROM skill_installations
|
|
932
|
-
WHERE worktree_id NOT IN (SELECT id FROM worktrees)`).get();a.exec("DROP TABLE skill_installations;"),a.exec("ALTER TABLE skill_installations_new RENAME TO skill_installations;"),
|
|
964
|
+
WHERE worktree_id NOT IN (SELECT id FROM worktrees)`).get();a.exec("DROP TABLE skill_installations;"),a.exec("ALTER TABLE skill_installations_new RENAME TO skill_installations;"),O(a),b.n>0&&console.log(`Removed ${b.n} skill_installations row(s) with no worktree`),console.log("skill_installations now cascades with its worktree")},down:a=>{a.exec(`
|
|
933
965
|
CREATE TABLE skill_installations_old (
|
|
934
|
-
${
|
|
966
|
+
${N}
|
|
935
967
|
);
|
|
936
968
|
`),a.exec(`
|
|
937
|
-
INSERT INTO skill_installations_old (${
|
|
938
|
-
SELECT ${
|
|
939
|
-
`),a.exec("DROP TABLE skill_installations;"),a.exec("ALTER TABLE skill_installations_old RENAME TO skill_installations;"),
|
|
969
|
+
INSERT INTO skill_installations_old (${M})
|
|
970
|
+
SELECT ${M} FROM skill_installations;
|
|
971
|
+
`),a.exec("DROP TABLE skill_installations;"),a.exec("ALTER TABLE skill_installations_old RENAME TO skill_installations;"),O(a),console.log("Rolled back skill_installations cascade (v46)")}}],Q=[{version:47,name:"add-skill-installations-roots",up:a=>{a.exec("ALTER TABLE skill_installations ADD COLUMN install_roots TEXT;")},down:a=>{a.exec(`
|
|
940
972
|
CREATE TABLE skill_installations__v46 (
|
|
941
973
|
id TEXT PRIMARY KEY,
|
|
942
974
|
worktree_id TEXT NOT NULL,
|
|
@@ -971,7 +1003,7 @@
|
|
|
971
1003
|
`),a.exec(`
|
|
972
1004
|
CREATE INDEX IF NOT EXISTS idx_skill_installations_skill
|
|
973
1005
|
ON skill_installations(skill_id, version);
|
|
974
|
-
`)}}],
|
|
1006
|
+
`)}}],R=[{version:48,name:"add-skill-operations-audit-index",up:a=>{a.exec("ALTER TABLE skill_operations ADD COLUMN from_version TEXT;"),a.exec("ALTER TABLE skill_operations ADD COLUMN to_version TEXT;"),a.exec(`
|
|
975
1007
|
CREATE INDEX IF NOT EXISTS idx_skill_operations_recent
|
|
976
1008
|
ON skill_operations(recorded_at DESC, id DESC);
|
|
977
1009
|
`),a.exec(`
|
|
@@ -1034,7 +1066,7 @@
|
|
|
1034
1066
|
BEGIN
|
|
1035
1067
|
SELECT RAISE(ABORT, 'skill_operations is append-only');
|
|
1036
1068
|
END;
|
|
1037
|
-
`)}}],
|
|
1069
|
+
`)}}],S=[{version:49,name:"add-verification-runs",up:a=>{a.exec(`
|
|
1038
1070
|
CREATE TABLE IF NOT EXISTS verification_runs (
|
|
1039
1071
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
1040
1072
|
worktree_id TEXT NOT NULL,
|
|
@@ -1065,7 +1097,7 @@
|
|
|
1065
1097
|
`),a.exec(`
|
|
1066
1098
|
CREATE INDEX IF NOT EXISTS idx_verification_gate_results_run
|
|
1067
1099
|
ON verification_gate_results(run_id);
|
|
1068
|
-
`)},down:a=>{a.exec("DROP TABLE IF EXISTS verification_gate_results;"),a.exec("DROP TABLE IF EXISTS verification_runs;")}}],
|
|
1100
|
+
`)},down:a=>{a.exec("DROP TABLE IF EXISTS verification_gate_results;"),a.exec("DROP TABLE IF EXISTS verification_runs;")}}],T=[{version:50,name:"add-tasks",up:a=>{a.exec(`
|
|
1069
1101
|
CREATE TABLE IF NOT EXISTS tasks (
|
|
1070
1102
|
id TEXT PRIMARY KEY,
|
|
1071
1103
|
worktree_id TEXT NOT NULL,
|
|
@@ -1085,7 +1117,7 @@
|
|
|
1085
1117
|
`),a.exec(`
|
|
1086
1118
|
CREATE INDEX IF NOT EXISTS idx_tasks_worktree
|
|
1087
1119
|
ON tasks(worktree_id, created_at DESC);
|
|
1088
|
-
`)},down:a=>{a.exec("DROP TABLE IF EXISTS tasks;")}}],
|
|
1120
|
+
`)},down:a=>{a.exec("DROP TABLE IF EXISTS tasks;")}}],U=[{version:51,name:"add-task-events",up:a=>{a.exec(`
|
|
1089
1121
|
CREATE TABLE IF NOT EXISTS task_events (
|
|
1090
1122
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
1091
1123
|
task_id TEXT NOT NULL,
|
|
@@ -1098,12 +1130,12 @@
|
|
|
1098
1130
|
`),a.exec(`
|
|
1099
1131
|
CREATE INDEX IF NOT EXISTS idx_task_events_task
|
|
1100
1132
|
ON task_events(task_id, created_at);
|
|
1101
|
-
`)},down:a=>{a.exec("DROP TABLE IF EXISTS task_events;")}}];var
|
|
1133
|
+
`)},down:a=>{a.exec("DROP TABLE IF EXISTS task_events;")}}];var V=c(40277);let W=[{version:52,name:"delete-orphaned-worktree-children",up:a=>{let b=0;for(let{table:c,column:d}of(0,V.ZN)(a)){let e=a.prepare(`DELETE FROM "${c}"
|
|
1102
1134
|
WHERE "${d}" IS NOT NULL
|
|
1103
1135
|
AND NOT EXISTS (
|
|
1104
1136
|
SELECT 1 FROM worktrees AS cm_parent
|
|
1105
1137
|
WHERE cm_parent.id = "${c}"."${d}"
|
|
1106
|
-
)`).run();e.changes>0&&(console.log(`Deleted ${e.changes} orphaned row(s) from ${c}.${d}`),b+=e.changes)}0===b&&console.log("No orphaned worktree child rows found")},down:()=>{console.log("No rollback for orphaned child row cleanup (rows are gone)")}}],
|
|
1138
|
+
)`).run();e.changes>0&&(console.log(`Deleted ${e.changes} orphaned row(s) from ${c}.${d}`),b+=e.changes)}0===b&&console.log("No orphaned worktree child rows found")},down:()=>{console.log("No rollback for orphaned child row cleanup (rows are gone)")}}],X=[{version:53,name:"add-worktree-aliases",up:a=>{a.exec(`
|
|
1107
1139
|
CREATE TABLE IF NOT EXISTS worktree_aliases (
|
|
1108
1140
|
old_id TEXT PRIMARY KEY,
|
|
1109
1141
|
worktree_id TEXT NOT NULL REFERENCES worktrees(id) ON DELETE CASCADE,
|
|
@@ -1112,19 +1144,28 @@
|
|
|
1112
1144
|
`),a.exec(`
|
|
1113
1145
|
CREATE INDEX IF NOT EXISTS idx_worktree_aliases_worktree_id
|
|
1114
1146
|
ON worktree_aliases(worktree_id);
|
|
1115
|
-
`)},down:a=>{a.exec("DROP INDEX IF EXISTS idx_worktree_aliases_worktree_id;"),a.exec("DROP TABLE IF EXISTS worktree_aliases;")}}];var
|
|
1147
|
+
`)},down:a=>{a.exec("DROP INDEX IF EXISTS idx_worktree_aliases_worktree_id;"),a.exec("DROP TABLE IF EXISTS worktree_aliases;")}}];var Y=c(23718),Z=c(27923);let $="cmate-mig54-",_=[...l,...m,...n,...o,...p,...q,...r,...s,...t,...u,...v,...w,...x,...y,...z,...A,...B,...C,...D,...E,...F,...G,...H,...I,...J,...K,...L,...P,...Q,...R,...S,...T,...U,...W,...X,{version:54,name:"renumber-worktree-ids-from-path",up:a=>{let b=a.prepare("SELECT id, path FROM worktrees ORDER BY id").all();if(0===b.length)return void console.log("No worktrees to renumber");let c=void 0!==a.prepare("SELECT 1 FROM sqlite_master WHERE type = 'table' AND name = 'worktree_aliases'").get(),d=c?a.prepare("SELECT old_id FROM worktree_aliases").all().map(a=>a.old_id):[],f=function(a,b){let c=new Set([...new Set(a.map(a=>a.id)),...b]),d=new Set,f=[];for(let b of a){let a=new Set([...c,...d]);a.delete(b.id);let g=(0,Y.ko)(e().resolve(b.path),a);d.add(g),g!==b.id&&f.push({oldId:b.id,newId:g})}return f}(b,d);if(0===f.length)return void console.log(`Worktree IDs already path-derived (${b.length} row(s) checked)`);let g=new Set([...b.map(a=>a.id),...d,...f.map(a=>a.newId)]),h=f.map((a,b)=>{let c=`${$}${b}`;for(let a=1;g.has(c);a++)c=`${$}${b}-${a}`;return g.add(c),c}),i=Date.now();f.forEach((b,c)=>{(0,Z.D6)(a,b.oldId,h[c],i)}),f.forEach((b,c)=>{(0,Z.D6)(a,h[c],b.newId,i)});let j=c?a.prepare("DELETE FROM worktree_aliases WHERE old_id = ?"):null;if(j)for(let a of h)j.run(a);for(let a of f)console.log(`Renumbered worktree ${a.oldId} -> ${a.newId}`);console.log(`Renumbered ${f.length} of ${b.length} worktree(s) to path-derived IDs`)},down:a=>{if(void 0===a.prepare("SELECT 1 FROM sqlite_master WHERE type = 'table' AND name = 'worktree_aliases'").get())return void console.log("No worktree_aliases table: nothing to roll back");let b=a.prepare(`SELECT a.old_id, a.worktree_id
|
|
1116
1148
|
FROM worktree_aliases AS a
|
|
1117
1149
|
JOIN worktrees AS w ON w.id = a.worktree_id
|
|
1118
|
-
ORDER BY a.old_id`).all();if(0===b.length)return void console.log("No worktree aliases to roll back");let c=Date.now(),d=b.map((a,b)=>`${
|
|
1150
|
+
ORDER BY a.old_id`).all();if(0===b.length)return void console.log("No worktree aliases to roll back");let c=Date.now(),d=b.map((a,b)=>`${$}down-${b}`);b.forEach((b,e)=>{(0,Z.D6)(a,b.worktree_id,d[e],c)}),b.forEach((b,e)=>{(0,Z.D6)(a,d[e],b.old_id,c)});let e=a.prepare("DELETE FROM worktree_aliases WHERE old_id = ?");for(let a of d)e.run(a);for(let a of b)e.run(a.worktree_id);console.log(`Rolled back ${b.length} worktree ID renumbering(s)`)}},{version:55,name:"compact-churned-worktree-ids",up:a=>{let b=a.prepare("SELECT id, path FROM worktrees ORDER BY id").all();if(0===b.length)return void console.log("No worktrees to compact");let c=void 0!==a.prepare("SELECT 1 FROM sqlite_master WHERE type = 'table' AND name = 'worktree_aliases'").get(),{renames:d,droppedAliasIds:f}=function(a,b){let c=new Map;for(let a of b){let b=c.get(a.worktreeId);b?b.push(a.oldId):c.set(a.worktreeId,[a.oldId])}let d=new Set([...a.map(a=>a.id),...b.map(a=>a.oldId)]),f=new Set,g=[],h=[];for(let b of a){let a=e().resolve(b.path),i=c.get(b.id)??[],j=new Set([...d,...f]);for(let a of(j.delete(b.id),i))j.delete(a);let k=(0,Y.ko)(a,j);if(k.length>=b.id.length){f.add(b.id);continue}for(let c of(f.add(k),g.push({oldId:b.id,newId:k}),i))c.length>k.length&&(0,Y.a1)(c,a)&&h.push(c)}return{renames:g,droppedAliasIds:h}}(b,c?a.prepare("SELECT old_id, worktree_id FROM worktree_aliases ORDER BY old_id").all().map(a=>({oldId:a.old_id,worktreeId:a.worktree_id})):[]);if(0===d.length)return void console.log(`No churned worktree IDs to compact (${b.length} row(s) checked)`);if(c&&f.length>0){let b=a.prepare("DELETE FROM worktree_aliases WHERE old_id = ?");for(let a of f)b.run(a)}let g=Date.now();for(let b of d)(0,Z.D6)(a,b.oldId,b.newId,g),console.log(`Compacted worktree ${b.oldId} -> ${b.newId}`);console.log(`Compacted ${d.length} of ${b.length} worktree ID(s); dropped ${f.length} intermediate alias(es)`)},down:a=>{if(void 0===a.prepare("SELECT 1 FROM sqlite_master WHERE type = 'table' AND name = 'worktree_aliases'").get())return void console.log("No worktree_aliases table: nothing to roll back");let b=a.prepare("SELECT id, path FROM worktrees ORDER BY id").all(),c=a.prepare("DELETE FROM worktree_aliases WHERE old_id = ?"),d=Date.now(),f=0;for(let g of b){let b=e().resolve(g.path),h=a.prepare("SELECT old_id FROM worktree_aliases WHERE worktree_id = ?").all(g.id).map(a=>a.old_id).filter(a=>a.length>g.id.length&&(0,Y.a1)(a,b)).sort((a,b)=>b.length-a.length||a.localeCompare(b))[0];h&&(c.run(h),(0,Z.D6)(a,g.id,h,d),c.run(g.id),f++)}console.log(`Rolled back ${f} worktree ID compaction(s)`)}}];function aa(a){!function(a,b){a.exec(`
|
|
1119
1151
|
CREATE TABLE IF NOT EXISTS schema_version (
|
|
1120
1152
|
version INTEGER PRIMARY KEY,
|
|
1121
1153
|
name TEXT NOT NULL,
|
|
1122
1154
|
applied_at INTEGER NOT NULL
|
|
1123
1155
|
);
|
|
1124
|
-
`);let c=
|
|
1156
|
+
`);let c=g(a);if(console.log(`Current schema version: ${c}`),c>f)throw Error(`This database (schema v${c}) was created by a newer version of CommandMate (this build supports up to v${f}). Please update: commandmate update`);let d=b.filter(a=>a.version>c);if(0===d.length)return console.log("Schema is up to date");for(let b of(console.log(`Found ${d.length} pending migration(s)`),d)){console.log(`Applying migration ${b.version}: ${b.name}...`);try{a.transaction(()=>{b.up(a),a.prepare(`
|
|
1125
1157
|
INSERT INTO schema_version (version, name, applied_at)
|
|
1126
1158
|
VALUES (?, ?, ?)
|
|
1127
|
-
`).run(b.version,b.name,Date.now())})(),console.log(`Migration ${b.version} applied successfully`)}catch(c){let a=c instanceof Error?c.message:String(c);throw console.error(`Migration ${b.version} failed:`,a),Error(`Migration ${b.version} (${b.name}) failed: ${a}`)}}console.log(`All migrations completed. Current version: ${
|
|
1159
|
+
`).run(b.version,b.name,Date.now())})(),console.log(`Migration ${b.version} applied successfully`)}catch(c){let a=c instanceof Error?c.message:String(c);throw console.error(`Migration ${b.version} failed:`,a),Error(`Migration ${b.version} (${b.name}) failed: ${a}`)}}console.log(`All migrations completed. Current version: ${g(a)}`)}(a,_)}function ab(a,b){!function(a,b,c){let d=g(a);if(c>=d)return console.log("No rollback needed");for(let e of(console.log(`Rolling back from version ${d} to ${c}...`),b.filter(a=>a.version>c&&a.version<=d).sort((a,b)=>b.version-a.version))){if(!e.down)throw Error(`Cannot rollback migration ${e.version} (${e.name}): no down() function defined`);console.log(`Rolling back migration ${e.version}: ${e.name}...`);try{a.transaction(()=>{e.down(a),a.prepare("DELETE FROM schema_version WHERE version = ?").run(e.version)})(),console.log(`Migration ${e.version} rolled back`)}catch(b){let a=b instanceof Error?b.message:String(b);throw console.error(`Rollback ${e.version} failed:`,a),Error(`Rollback of migration ${e.version} failed: ${a}`)}}console.log(`Rollback completed. Current version: ${g(a)}`)}(a,_,b)}},87009:(a,b,c)=>{function d(a){return{id:a.id,taskId:a.task_id,event:a.event,fromStatus:a.from_status,toStatus:a.to_status,payload:null===a.payload_json?null:JSON.parse(a.payload_json),createdAt:new Date(a.created_at)}}function e(a,b){let c=void 0===b.payload||0===Object.keys(b.payload).length?null:JSON.stringify(b.payload);return Number(a.prepare(`
|
|
1160
|
+
INSERT INTO task_events (task_id, event, from_status, to_status, payload_json, created_at)
|
|
1161
|
+
VALUES (?, ?, ?, ?, ?, ?)
|
|
1162
|
+
`).run(b.taskId,b.event,b.fromStatus,b.toStatus,c,b.createdAt).lastInsertRowid)}function f(a,b,c=200){return a.prepare(`
|
|
1163
|
+
SELECT id, task_id, event, from_status, to_status, payload_json, created_at
|
|
1164
|
+
FROM task_events
|
|
1165
|
+
WHERE task_id = ?
|
|
1166
|
+
ORDER BY created_at ASC, id ASC
|
|
1167
|
+
LIMIT ?
|
|
1168
|
+
`).all(b,c).map(d)}c.d(b,{H:()=>f,P:()=>e})},87374:(a,b,c)=>{c.d(b,{Dr:()=>i,HR:()=>h,Ky:()=>f,XS:()=>e,ms:()=>g,u8:()=>d}),Array.from({length:Math.floor(104)+1},(a,b)=>3e5+3e5*b);let d=5,e=50,f=100,g=1e4,h={PENDING:"pending",SENDING:"sending",SENT:"sent",FAILED:"failed",CANCELLED:"cancelled",NO_SESSION:"no_session"};function i(a){return"number"==typeof a&&a>=3e5&&a<=315e5&&a%3e5==0}},88807:(a,b,c)=>{c.r(b),c.d(b,{closeDbInstance:()=>p,getDbInstance:()=>o});var d=c(33873),e=c.n(d),f=c(72456),g=c(79646),h=c(87550),i=c.n(h);let j=!1;function k(a){return a instanceof Error&&"ERR_DLOPEN_FAILED"===a.code&&a.message.includes("NODE_MODULE_VERSION")}function l(a,b){let c=["better-sqlite3 could not be loaded: it was built for a different Node.js version.","This usually happens after switching Node.js versions (nvm, fnm, Homebrew, ...).","",`Automatic recovery failed: ${a}`,"","How to fix it manually:"];return b?c.push(" The install directory is not writable by the current user, so the addon"," cannot be rebuilt in place. Do not re-run this with sudo — root-owned"," files there will break future installs and updates.",""," Either switch back to the Node.js version CommandMate was installed with:",` node -v (currently ${process.version}, NODE_MODULE_VERSION ${process.versions.modules})`,""," Or reinstall CommandMate under a Node.js version manager, which keeps"," global packages in a user-owned directory:"," nvm use <version> && npm install -g commandmate"):c.push(` 1. cd ${process.cwd()}`," 2. npm rebuild better-sqlite3"," 3. Start CommandMate again",""," If that fails, reinstalling picks up the current Node.js version:"," npm install -g commandmate"),c.join("\n")}var m=c(87447);let n=null;function o(){if(!n){let a=(0,m._$)().CM_DB_PATH,b=c(29021),d=e().dirname(a);b.existsSync(d)||b.mkdirSync(d,{recursive:!0,mode:448});let h=function(a){try{return new(i())(a)}catch(c){if(!k(c))throw c;if(j)throw Error(l("a rebuild was already attempted in this process.",!1));j=!0,console.error("[commandmate] better-sqlite3 was built for a different Node.js version.\n[commandmate] Rebuilding it automatically — this can take a few minutes...");let b=function(){let a=(0,g.spawnSync)("npm",["rebuild","better-sqlite3"],{cwd:process.cwd(),encoding:"utf-8",timeout:3e5,env:{...process.env,PATH:`${e().dirname(process.execPath)}${e().delimiter}${process.env.PATH??""}`}}),b=`${a.stdout??""}${a.stderr??""}`;return a.error||0!==a.status?{success:!1,permissionDenied:/EACCES|permission denied/i.test(b),output:b}:{success:!0,permissionDenied:!1,output:b}}();if(!b.success)throw Error(l("npm rebuild better-sqlite3 failed.",b.permissionDenied));console.error("[commandmate] Rebuild succeeded. Continuing startup.");try{return new(i())(a)}catch(a){if(k(a))throw Error(l("the addon still reports a version mismatch after rebuilding.",!1));throw a}}}(a);h.pragma("foreign_keys = ON"),h.pragma("journal_mode = WAL"),h.pragma("busy_timeout = 5000");try{(0,f.vI)(h)}catch(a){throw h.close(),a}n=h}return n}function p(){n&&(n.close(),n=null)}},90444:(a,b,c)=>{function d(a){a.exec(`
|
|
1128
1169
|
CREATE TABLE IF NOT EXISTS worktrees (
|
|
1129
1170
|
id TEXT PRIMARY KEY,
|
|
1130
1171
|
name TEXT NOT NULL,
|
|
@@ -1176,7 +1217,7 @@
|
|
|
1176
1217
|
PRIMARY KEY (worktree_id, cli_tool_id),
|
|
1177
1218
|
FOREIGN KEY (worktree_id) REFERENCES worktrees(id) ON DELETE CASCADE
|
|
1178
1219
|
);
|
|
1179
|
-
`)}c.d(b,{AC:()=>
|
|
1220
|
+
`)}c.d(b,{ks:()=>g.ks,EL:()=>aE.EL,AC:()=>m.AC,Tu:()=>az,ug:()=>m.ug,eP:()=>aB,mg:()=>aA,lm:()=>o,Hi:()=>aE.Hi,sA:()=>aE.sA,af:()=>am,KG:()=>E,Uq:()=>m.Uq,cD:()=>_,Jj:()=>aa,Ud:()=>N.Ud,$$:()=>N.$$,ul:()=>N.ul,YX:()=>k,cf:()=>g.cf,jf:()=>N.jf,fs:()=>m.fs,G4:()=>W,hL:()=>ac,qp:()=>Y,hl:()=>at,To:()=>s,oH:()=>g.oH,UT:()=>aE.UT,CR:()=>N.CR,py:()=>B,rY:()=>ar,yy:()=>J,pE:()=>g.pE,z2:()=>ak,cP:()=>u,DF:()=>g.DF,lA:()=>g.lA,Qp:()=>g.Qp,th:()=>al.th,oZ:()=>e.oZ,ZP:()=>l,Ys:()=>D,vg:()=>L,Rm:()=>e.Rm,C8:()=>au,u$:()=>as,__:()=>aE.__,MH:()=>aE.MH,BN:()=>m.BN,m0:()=>m.m0,r3:()=>f.r3,Se:()=>al.Se,Tk:()=>z,fX:()=>f.fX,nO:()=>e.nO,Sj:()=>e.Sj,iT:()=>U,gp:()=>V,$r:()=>ae,yE:()=>ab,BE:()=>$,qK:()=>ai,ap:()=>O.ap,p4:()=>e.p4,nP:()=>g.nP,sy:()=>g.sy,r8:()=>g.r8,of:()=>af,DN:()=>r,pZ:()=>q,kA:()=>g.kA,VL:()=>g.VL,lr:()=>g.lr,GF:()=>N.GF,_O:()=>N._O,CF:()=>al.CF,gn:()=>al.gn,NV:()=>e.NV,ce:()=>ag,WZ:()=>aw,y1:()=>h,gg:()=>aE.gg,kx:()=>N.kx,DP:()=>N.DP,Nr:()=>A,ob:()=>y,fr:()=>H,J6:()=>av,Q2:()=>f.Q2,Ui:()=>e.Ui,P9:()=>e.P9,eN:()=>I,vi:()=>e.vi,uJ:()=>e.uJ,s4:()=>d,uB:()=>aE.uB,yT:()=>F,b2:()=>ah,Fi:()=>ax,HB:()=>aF.H,Vk:()=>aE.Vk,Mt:()=>ay,UE:()=>aD,PL:()=>g.PL,_h:()=>e._h,jp:()=>g.jp,pG:()=>g.pG,xJ:()=>f.xJ,Xm:()=>N.Xm,NU:()=>m.NU,nQ:()=>v,yb:()=>M,l0:()=>f.l0,tt:()=>O.tt,GA:()=>e.GA,Cs:()=>m.Cs,OF:()=>j,xR:()=>X,az:()=>ad,nZ:()=>Z,PP:()=>aj,Dx:()=>e.Dx,IF:()=>O.IF,O:()=>e.O,EU:()=>g.EU,HZ:()=>e.HZ,UY:()=>t,e8:()=>g.e8,cw:()=>g.cw,jJ:()=>al.jJ,DC:()=>e.DC,gb:()=>i,yB:()=>e.yB,j2:()=>N.j2,uy:()=>C,s:()=>e.s,iu:()=>e.iu,hq:()=>e.hq,z1:()=>e.z1,bl:()=>K,jA:()=>al.jA,ZL:()=>e.ZL});var e=c(73753),f=c(95506),g=c(52660);function h(a,b,c="claude"){let d=a.prepare(`
|
|
1180
1221
|
SELECT worktree_id, cli_tool_id, instance_id, last_captured_line, in_progress_message_id
|
|
1181
1222
|
FROM session_states
|
|
1182
1223
|
WHERE worktree_id = ? AND instance_id = ?
|
|
@@ -1186,13 +1227,13 @@
|
|
|
1186
1227
|
ON CONFLICT(worktree_id, instance_id) DO UPDATE SET
|
|
1187
1228
|
last_captured_line = excluded.last_captured_line,
|
|
1188
1229
|
cli_tool_id = excluded.cli_tool_id
|
|
1189
|
-
`).run(b,c,f,d)}function j(a,b,c,d){let e
|
|
1230
|
+
`).run(b,c,f,d)}function j(a,b,c,d,e){let f=e??c;a.prepare(`
|
|
1190
1231
|
INSERT INTO session_states (worktree_id, cli_tool_id, instance_id, last_captured_line, in_progress_message_id)
|
|
1191
1232
|
VALUES (?, ?, ?, 0, ?)
|
|
1192
1233
|
ON CONFLICT(worktree_id, instance_id) DO UPDATE SET
|
|
1193
1234
|
in_progress_message_id = excluded.in_progress_message_id,
|
|
1194
1235
|
cli_tool_id = excluded.cli_tool_id
|
|
1195
|
-
`).run(b,c,
|
|
1236
|
+
`).run(b,c,f,d)}function k(a,b,c,d){j(a,b,c,null,d)}function l(a,b,c,d){d?a.prepare(`
|
|
1196
1237
|
DELETE FROM session_states
|
|
1197
1238
|
WHERE worktree_id = ? AND instance_id = ?
|
|
1198
1239
|
`).run(b,d):c?a.prepare(`
|
|
@@ -1201,26 +1242,26 @@
|
|
|
1201
1242
|
`).run(b,c):a.prepare(`
|
|
1202
1243
|
DELETE FROM session_states
|
|
1203
1244
|
WHERE worktree_id = ?
|
|
1204
|
-
`).run(b)}var
|
|
1245
|
+
`).run(b)}var m=c(28274),n=c(55511);class o extends Error{constructor(a,b,c){super(a),this.code=b,this.cause=c,this.name="MemoDbError"}}function p(a){return{id:a.id,worktreeId:a.worktree_id,title:a.title,content:a.content,position:a.position,createdAt:new Date(a.created_at),updatedAt:new Date(a.updated_at)}}function q(a,b){return a.prepare(`
|
|
1205
1246
|
SELECT id, worktree_id, title, content, position, created_at, updated_at
|
|
1206
1247
|
FROM worktree_memos
|
|
1207
1248
|
WHERE worktree_id = ?
|
|
1208
1249
|
ORDER BY position ASC
|
|
1209
|
-
`).all(b).map(
|
|
1250
|
+
`).all(b).map(p)}function r(a,b){let c=a.prepare(`
|
|
1210
1251
|
SELECT id, worktree_id, title, content, position, created_at, updated_at
|
|
1211
1252
|
FROM worktree_memos
|
|
1212
1253
|
WHERE id = ?
|
|
1213
|
-
`).get(b);return c?
|
|
1254
|
+
`).get(b);return c?p(c):null}function s(a,b,c){let d=(0,n.randomUUID)(),e=Date.now(),f=c.title??"Memo",g=c.content??"",h=a.prepare(`
|
|
1214
1255
|
INSERT INTO worktree_memos (id, worktree_id, title, content, position, created_at, updated_at)
|
|
1215
1256
|
VALUES (?, ?, ?, ?, ?, ?, ?)
|
|
1216
|
-
`);try{h.run(d,b,f,g,c.position,e,e)}catch(a){if(a instanceof Error&&a.message.includes("UNIQUE constraint"))throw new
|
|
1257
|
+
`);try{h.run(d,b,f,g,c.position,e,e)}catch(a){if(a instanceof Error&&a.message.includes("UNIQUE constraint"))throw new o(`Memo position ${c.position} is already in use for worktree "${b}"`,"DUPLICATE_POSITION",a);throw a}return{id:d,worktreeId:b,title:f,content:g,position:c.position,createdAt:new Date(e),updatedAt:new Date(e)}}function t(a,b,c){let d=Date.now(),e=["updated_at = ?"],f=[d];void 0!==c.title&&(e.push("title = ?"),f.push(c.title)),void 0!==c.content&&(e.push("content = ?"),f.push(c.content)),f.push(b),a.prepare(`
|
|
1217
1258
|
UPDATE worktree_memos
|
|
1218
1259
|
SET ${e.join(", ")}
|
|
1219
1260
|
WHERE id = ?
|
|
1220
|
-
`).run(...f)}function
|
|
1261
|
+
`).run(...f)}function u(a,b){a.prepare(`
|
|
1221
1262
|
DELETE FROM worktree_memos
|
|
1222
1263
|
WHERE id = ?
|
|
1223
|
-
`).run(b)}function
|
|
1264
|
+
`).run(b)}function v(a,b,c){if(0===c.length)return;let d=Date.now();a.transaction(()=>{let b=a.prepare(`
|
|
1224
1265
|
UPDATE worktree_memos
|
|
1225
1266
|
SET position = -1 - position
|
|
1226
1267
|
WHERE id = ?
|
|
@@ -1228,7 +1269,7 @@
|
|
|
1228
1269
|
UPDATE worktree_memos
|
|
1229
1270
|
SET position = ?, updated_at = ?
|
|
1230
1271
|
WHERE id = ?
|
|
1231
|
-
`);c.forEach((a,b)=>{e.run(b,d,a)})})()}let
|
|
1272
|
+
`);c.forEach((a,b)=>{e.run(b,d,a)})})()}let w=`
|
|
1232
1273
|
SELECT
|
|
1233
1274
|
t.id,
|
|
1234
1275
|
t.repository_id,
|
|
@@ -1241,50 +1282,50 @@
|
|
|
1241
1282
|
t.updated_at
|
|
1242
1283
|
FROM repository_todos t
|
|
1243
1284
|
JOIN repositories r ON r.id = t.repository_id
|
|
1244
|
-
`;function
|
|
1245
|
-
${
|
|
1285
|
+
`;function x(a){return{id:a.id,repositoryId:a.repository_id,repositoryName:a.repository_name,repositoryDisplayName:a.repository_display_name||void 0,content:a.content,done:1===a.done,position:a.position,createdAt:new Date(a.created_at),updatedAt:new Date(a.updated_at)}}function y(a,b){return a.prepare(`
|
|
1286
|
+
${w}
|
|
1246
1287
|
WHERE t.repository_id = ?
|
|
1247
1288
|
ORDER BY t.position ASC, t.created_at ASC
|
|
1248
|
-
`).all(b).map(
|
|
1249
|
-
${
|
|
1289
|
+
`).all(b).map(x)}function z(a){return a.prepare(`
|
|
1290
|
+
${w}
|
|
1250
1291
|
ORDER BY
|
|
1251
1292
|
COALESCE(NULLIF(TRIM(r.display_name), ''), r.name) COLLATE NOCASE ASC,
|
|
1252
1293
|
t.position ASC,
|
|
1253
1294
|
t.created_at ASC,
|
|
1254
1295
|
t.id ASC
|
|
1255
|
-
`).all().map(
|
|
1256
|
-
${
|
|
1296
|
+
`).all().map(x)}function A(a,b){let c=a.prepare(`
|
|
1297
|
+
${w}
|
|
1257
1298
|
WHERE t.id = ?
|
|
1258
|
-
`).get(b);return c?
|
|
1299
|
+
`).get(b);return c?x(c):null}function B(a,b,c){let d=(0,n.randomUUID)(),e=Date.now();a.prepare(`
|
|
1259
1300
|
INSERT INTO repository_todos (id, repository_id, content, done, position, created_at, updated_at)
|
|
1260
1301
|
VALUES (?, ?, ?, 0, ?, ?, ?)
|
|
1261
|
-
`).run(d,b,c.content,c.position,e,e);let f=
|
|
1302
|
+
`).run(d,b,c.content,c.position,e,e);let f=A(a,d);if(!f)throw Error(`Failed to load created todo '${d}'`);return f}function C(a,b,c){let d=Date.now(),e=["updated_at = ?"],f=[d];void 0!==c.content&&(e.push("content = ?"),f.push(c.content)),void 0!==c.done&&(e.push("done = ?"),f.push(+!!c.done)),f.push(b),a.prepare(`
|
|
1262
1303
|
UPDATE repository_todos
|
|
1263
1304
|
SET ${e.join(", ")}
|
|
1264
1305
|
WHERE id = ?
|
|
1265
|
-
`).run(...f)}function
|
|
1306
|
+
`).run(...f)}function D(a,b){a.prepare(`
|
|
1266
1307
|
DELETE FROM repository_todos
|
|
1267
1308
|
WHERE id = ?
|
|
1268
|
-
`).run(b)}let
|
|
1309
|
+
`).run(b)}let E=["todo","doing","done"];function F(a){return"todo"===a||"doing"===a||"done"===a}function G(a){var b,c;let d=(b=a.status,c=a.done,F(b)?b:1===c?"done":"todo");return{id:a.id,worktreeId:a.worktree_id,content:a.content,detail:a.detail??"",status:d,done:"done"===d,position:a.position,createdAt:new Date(a.created_at),updatedAt:new Date(a.updated_at)}}function H(a,b){return a.prepare(`
|
|
1269
1310
|
SELECT id, worktree_id, content, detail, done, status, position, created_at, updated_at
|
|
1270
1311
|
FROM worktree_todos
|
|
1271
1312
|
WHERE worktree_id = ?
|
|
1272
1313
|
ORDER BY position ASC, created_at ASC
|
|
1273
|
-
`).all(b).map(
|
|
1314
|
+
`).all(b).map(G)}function I(a,b){let c=a.prepare(`
|
|
1274
1315
|
SELECT id, worktree_id, content, detail, done, status, position, created_at, updated_at
|
|
1275
1316
|
FROM worktree_todos
|
|
1276
1317
|
WHERE id = ?
|
|
1277
|
-
`).get(b);return c?
|
|
1318
|
+
`).get(b);return c?G(c):null}function J(a,b,c){let d=(0,n.randomUUID)(),e=Date.now(),f=c.status??"todo",g=c.detail??"";return a.prepare(`
|
|
1278
1319
|
INSERT INTO worktree_todos (id, worktree_id, content, detail, done, status, position, created_at, updated_at)
|
|
1279
1320
|
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)
|
|
1280
|
-
`).run(d,b,c.content,g,+("done"===f),f,c.position,e,e),{id:d,worktreeId:b,content:c.content,detail:g,status:f,done:"done"===f,position:c.position,createdAt:new Date(e),updatedAt:new Date(e)}}function
|
|
1321
|
+
`).run(d,b,c.content,g,+("done"===f),f,c.position,e,e),{id:d,worktreeId:b,content:c.content,detail:g,status:f,done:"done"===f,position:c.position,createdAt:new Date(e),updatedAt:new Date(e)}}function K(a,b,c){let d,e=Date.now(),f=["updated_at = ?"],g=[e];void 0!==c.content&&(f.push("content = ?"),g.push(c.content)),void 0!==c.detail&&(f.push("detail = ?"),g.push(c.detail)),void 0!==c.status?d=c.status:void 0!==c.done&&(d=c.done?"done":"todo"),void 0!==d&&(f.push("status = ?"),g.push(d),f.push("done = ?"),g.push(+("done"===d))),g.push(b),a.prepare(`
|
|
1281
1322
|
UPDATE worktree_todos
|
|
1282
1323
|
SET ${f.join(", ")}
|
|
1283
1324
|
WHERE id = ?
|
|
1284
|
-
`).run(...g)}function
|
|
1325
|
+
`).run(...g)}function L(a,b){a.prepare(`
|
|
1285
1326
|
DELETE FROM worktree_todos
|
|
1286
1327
|
WHERE id = ?
|
|
1287
|
-
`).run(b)}function
|
|
1328
|
+
`).run(b)}function M(a,b,c){if(0===c.length)return;let d=Date.now();a.transaction(()=>{let e=a.prepare(`
|
|
1288
1329
|
UPDATE worktree_todos
|
|
1289
1330
|
SET position = -1 - position
|
|
1290
1331
|
WHERE id = ? AND worktree_id = ?
|
|
@@ -1292,139 +1333,148 @@
|
|
|
1292
1333
|
UPDATE worktree_todos
|
|
1293
1334
|
SET position = ?, updated_at = ?
|
|
1294
1335
|
WHERE id = ? AND worktree_id = ?
|
|
1295
|
-
`);c.forEach((a,c)=>{f.run(c,d,a,b)})})()}function
|
|
1336
|
+
`);c.forEach((a,c)=>{f.run(c,d,a,b)})})()}var N=c(34129),O=c(4868);function P(a,b){return Buffer.byteLength(a,"utf-8")<=b?a:Buffer.from(a,"utf-8").subarray(0,b).toString("utf-8")}function Q(a){return{id:a.id,repositoryId:a.repository_id,cliToolId:a.cli_tool_id,workingDirectory:a.working_directory,executionMode:a.execution_mode??"interactive",resumeSessionId:a.resume_session_id??void 0,lastExecutionId:a.last_execution_id??void 0,sessionName:a.session_name??void 0,status:"idle"===a.status?"stopped":a.status,lastStartedAt:a.last_started_at?new Date(a.last_started_at):void 0,lastStoppedAt:a.last_stopped_at?new Date(a.last_stopped_at):void 0,contextSentAt:a.context_sent_at?new Date(a.context_sent_at):void 0,contextSnapshot:a.context_snapshot??void 0,createdAt:new Date(a.created_at),updatedAt:new Date(a.updated_at),archived:1===a.archived}}function R(a){return{id:a.id,conversationId:a.conversation_id,role:a.role,content:a.content,summary:a.summary??void 0,timestamp:new Date(a.timestamp),messageType:a.message_type,deliveryStatus:a.delivery_status??void 0,archived:1===a.archived}}function S(a){return{id:a.id,conversationId:a.conversation_id,cliToolId:a.cli_tool_id,status:a.status,pid:a.pid??void 0,commandLine:a.command_line,promptText:a.prompt_text,stdoutText:a.stdout_text??void 0,stderrText:a.stderr_text??void 0,finalMessageText:a.final_message_text??void 0,exitCode:a.exit_code,resumeSessionIdBefore:a.resume_session_id_before??void 0,resumeSessionIdAfter:a.resume_session_id_after??void 0,startedAt:a.started_at?new Date(a.started_at):void 0,finishedAt:a.finished_at?new Date(a.finished_at):void 0,createdAt:new Date(a.created_at),updatedAt:new Date(a.updated_at)}}function T(a,b,c){a.prepare(`
|
|
1296
1337
|
UPDATE assistant_conversations
|
|
1297
1338
|
SET updated_at = ?
|
|
1298
1339
|
WHERE id = ?
|
|
1299
|
-
`).run(c.getTime(),b)}function
|
|
1340
|
+
`).run(c.getTime(),b)}function U(a,b,c={}){let d=`
|
|
1300
1341
|
SELECT *
|
|
1301
1342
|
FROM assistant_conversations
|
|
1302
1343
|
WHERE id = ?
|
|
1303
1344
|
${c.includeArchived?"":"AND archived = 0"}
|
|
1304
1345
|
LIMIT 1
|
|
1305
|
-
`,e=a.prepare(d).get(b);return e?
|
|
1346
|
+
`,e=a.prepare(d).get(b);return e?Q(e):null}function V(a,b,c,d={}){let e=`
|
|
1306
1347
|
SELECT *
|
|
1307
1348
|
FROM assistant_conversations
|
|
1308
1349
|
WHERE repository_id = ?
|
|
1309
1350
|
AND cli_tool_id = ?
|
|
1310
1351
|
${d.includeArchived?"":"AND archived = 0"}
|
|
1311
1352
|
LIMIT 1
|
|
1312
|
-
`,f=a.prepare(e).get(b,c);return f?
|
|
1353
|
+
`,f=a.prepare(e).get(b,c);return f?Q(f):null}function W(a,b){let c=(0,n.randomUUID)(),d=Date.now();return a.prepare(`
|
|
1313
1354
|
INSERT INTO assistant_conversations (
|
|
1314
1355
|
id, repository_id, cli_tool_id, working_directory, execution_mode, resume_session_id,
|
|
1315
1356
|
last_execution_id, session_name, status,
|
|
1316
1357
|
last_started_at, last_stopped_at, context_sent_at, created_at, updated_at, archived
|
|
1317
1358
|
)
|
|
1318
1359
|
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, 0)
|
|
1319
|
-
`).run(c,b.repositoryId,b.cliToolId,b.workingDirectory,b.executionMode??"interactive",b.resumeSessionId??null,b.lastExecutionId??null,b.sessionName??null,b.status??"stopped",b.lastStartedAt?.getTime()??null,b.lastStoppedAt?.getTime()??null,b.contextSentAt?.getTime()??null,d,d),{id:c,repositoryId:b.repositoryId,cliToolId:b.cliToolId,workingDirectory:b.workingDirectory,executionMode:b.executionMode??"interactive",resumeSessionId:b.resumeSessionId,lastExecutionId:b.lastExecutionId,sessionName:b.sessionName,status:b.status??"stopped",contextSentAt:b.contextSentAt,lastStartedAt:b.lastStartedAt,lastStoppedAt:b.lastStoppedAt,createdAt:new Date(d),updatedAt:new Date(d),archived:!1}}function
|
|
1360
|
+
`).run(c,b.repositoryId,b.cliToolId,b.workingDirectory,b.executionMode??"interactive",b.resumeSessionId??null,b.lastExecutionId??null,b.sessionName??null,b.status??"stopped",b.lastStartedAt?.getTime()??null,b.lastStoppedAt?.getTime()??null,b.contextSentAt?.getTime()??null,d,d),{id:c,repositoryId:b.repositoryId,cliToolId:b.cliToolId,workingDirectory:b.workingDirectory,executionMode:b.executionMode??"interactive",resumeSessionId:b.resumeSessionId,lastExecutionId:b.lastExecutionId,sessionName:b.sessionName,status:b.status??"stopped",contextSentAt:b.contextSentAt,lastStartedAt:b.lastStartedAt,lastStoppedAt:b.lastStoppedAt,createdAt:new Date(d),updatedAt:new Date(d),archived:!1}}function X(a,b,c){let d=[],e=[];void 0!==c.workingDirectory&&(d.push("working_directory = ?"),e.push(c.workingDirectory)),void 0!==c.executionMode&&(d.push("execution_mode = ?"),e.push(c.executionMode)),void 0!==c.resumeSessionId&&(d.push("resume_session_id = ?"),e.push(c.resumeSessionId)),void 0!==c.lastExecutionId&&(d.push("last_execution_id = ?"),e.push(c.lastExecutionId)),void 0!==c.sessionName&&(d.push("session_name = ?"),e.push(c.sessionName)),void 0!==c.status&&(d.push("status = ?"),e.push(c.status)),void 0!==c.lastStartedAt&&(d.push("last_started_at = ?"),e.push(c.lastStartedAt?.getTime()??null)),void 0!==c.lastStoppedAt&&(d.push("last_stopped_at = ?"),e.push(c.lastStoppedAt?.getTime()??null)),void 0!==c.contextSentAt&&(d.push("context_sent_at = ?"),e.push(c.contextSentAt?.getTime()??null)),void 0!==c.contextSnapshot&&(d.push("context_snapshot = ?"),e.push(c.contextSnapshot??null)),void 0!==c.archived&&(d.push("archived = ?"),e.push(+!!c.archived));let f=c.updatedAt??new Date;return d.push("updated_at = ?"),e.push(f.getTime()),e.push(b),a.prepare(`
|
|
1320
1361
|
UPDATE assistant_conversations
|
|
1321
1362
|
SET ${d.join(", ")}
|
|
1322
1363
|
WHERE id = ?
|
|
1323
|
-
`).run(...e),
|
|
1364
|
+
`).run(...e),U(a,b,{includeArchived:!0})}function Y(a,b){let c=(0,n.randomUUID)();return a.prepare(`
|
|
1324
1365
|
INSERT INTO assistant_messages (
|
|
1325
1366
|
id, conversation_id, role, content, summary, timestamp, message_type, delivery_status, archived
|
|
1326
1367
|
)
|
|
1327
1368
|
VALUES (?, ?, ?, ?, ?, ?, ?, ?, 0)
|
|
1328
|
-
`).run(c,b.conversationId,b.role,b.content,b.summary??null,b.timestamp.getTime(),b.messageType,b.deliveryStatus??null),
|
|
1369
|
+
`).run(c,b.conversationId,b.role,b.content,b.summary??null,b.timestamp.getTime(),b.messageType,b.deliveryStatus??null),T(a,b.conversationId,b.timestamp),{id:c,...b,archived:!1}}function Z(a,b,c){a.prepare(`
|
|
1329
1370
|
UPDATE assistant_messages
|
|
1330
1371
|
SET delivery_status = ?
|
|
1331
1372
|
WHERE id = ?
|
|
1332
|
-
`).run(c,b)}function
|
|
1373
|
+
`).run(c,b)}function $(a,b,c={}){let{limit:d=200,before:e,includeArchived:f=!1}=c,g=[b,e?.getTime()??null,e?.getTime()??null],h=`
|
|
1333
1374
|
SELECT *
|
|
1334
1375
|
FROM assistant_messages
|
|
1335
1376
|
WHERE conversation_id = ?
|
|
1336
1377
|
AND (? IS NULL OR timestamp < ?)
|
|
1337
|
-
`;return f||(h+=" AND archived = 0"),h+=" ORDER BY timestamp DESC LIMIT ?",g.push(d),a.prepare(h).all(...g).map(
|
|
1378
|
+
`;return f||(h+=" AND archived = 0"),h+=" ORDER BY timestamp DESC LIMIT ?",g.push(d),a.prepare(h).all(...g).map(R)}function _(a,b){return a.prepare(`
|
|
1338
1379
|
UPDATE assistant_messages
|
|
1339
1380
|
SET archived = 1
|
|
1340
1381
|
WHERE conversation_id = ?
|
|
1341
1382
|
AND archived = 0
|
|
1342
|
-
`).run(b).changes}function
|
|
1383
|
+
`).run(b).changes}function aa(a,b,c){return a.prepare(`
|
|
1343
1384
|
UPDATE assistant_messages
|
|
1344
1385
|
SET archived = 1
|
|
1345
1386
|
WHERE conversation_id = ?
|
|
1346
1387
|
AND archived = 0
|
|
1347
1388
|
AND timestamp >= ?
|
|
1348
|
-
`).run(b,c).changes}function
|
|
1389
|
+
`).run(b,c).changes}function ab(a,b){let c=a.prepare(`
|
|
1349
1390
|
SELECT * FROM assistant_messages WHERE id = ?
|
|
1350
|
-
`).get(b);return c?
|
|
1391
|
+
`).get(b);return c?R(c):null}function ac(a,b){let c=(0,n.randomUUID)(),d=Date.now();return a.prepare(`
|
|
1351
1392
|
INSERT INTO assistant_executions (
|
|
1352
1393
|
id, conversation_id, cli_tool_id, status, pid, command_line, prompt_text,
|
|
1353
1394
|
stdout_text, stderr_text, final_message_text, exit_code, resume_session_id_before,
|
|
1354
1395
|
resume_session_id_after, started_at, finished_at, created_at, updated_at
|
|
1355
1396
|
)
|
|
1356
1397
|
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
|
|
1357
|
-
`).run(c,b.conversationId,b.cliToolId,b.status??"queued",b.pid??null,b.commandLine,
|
|
1398
|
+
`).run(c,b.conversationId,b.cliToolId,b.status??"queued",b.pid??null,b.commandLine,P(b.promptText,65536),P(b.stdoutText??"",262144)||null,P(b.stderrText??"",262144)||null,b.finalMessageText?P(b.finalMessageText,65536):null,b.exitCode??null,b.resumeSessionIdBefore??null,b.resumeSessionIdAfter??null,b.startedAt?.getTime()??null,b.finishedAt?.getTime()??null,d,d),T(a,b.conversationId,new Date(d)),{id:c,conversationId:b.conversationId,cliToolId:b.cliToolId,status:b.status??"queued",pid:b.pid,commandLine:b.commandLine,promptText:P(b.promptText,65536),stdoutText:b.stdoutText?P(b.stdoutText,262144):void 0,stderrText:b.stderrText?P(b.stderrText,262144):void 0,finalMessageText:b.finalMessageText?P(b.finalMessageText,65536):void 0,exitCode:b.exitCode,resumeSessionIdBefore:b.resumeSessionIdBefore,resumeSessionIdAfter:b.resumeSessionIdAfter,startedAt:b.startedAt,finishedAt:b.finishedAt,createdAt:new Date(d),updatedAt:new Date(d)}}function ad(a,b,c){let d=[],e=[];void 0!==c.status&&(d.push("status = ?"),e.push(c.status)),void 0!==c.pid&&(d.push("pid = ?"),e.push(c.pid)),void 0!==c.stdoutText&&(d.push("stdout_text = ?"),e.push(c.stdoutText?P(c.stdoutText,262144):null)),void 0!==c.stderrText&&(d.push("stderr_text = ?"),e.push(c.stderrText?P(c.stderrText,262144):null)),void 0!==c.finalMessageText&&(d.push("final_message_text = ?"),e.push(c.finalMessageText?P(c.finalMessageText,65536):null)),void 0!==c.exitCode&&(d.push("exit_code = ?"),e.push(c.exitCode)),void 0!==c.resumeSessionIdAfter&&(d.push("resume_session_id_after = ?"),e.push(c.resumeSessionIdAfter)),void 0!==c.startedAt&&(d.push("started_at = ?"),e.push(c.startedAt?.getTime()??null)),void 0!==c.finishedAt&&(d.push("finished_at = ?"),e.push(c.finishedAt?.getTime()??null));let f=c.updatedAt??new Date;return d.push("updated_at = ?"),e.push(f.getTime(),b),a.prepare(`
|
|
1358
1399
|
UPDATE assistant_executions
|
|
1359
1400
|
SET ${d.join(", ")}
|
|
1360
1401
|
WHERE id = ?
|
|
1361
|
-
`).run(...e),function(a,b){let c=a.prepare(`
|
|
1402
|
+
`).run(...e),ae(a,b)}function ae(a,b){let c=a.prepare(`
|
|
1362
1403
|
SELECT *
|
|
1363
1404
|
FROM assistant_executions
|
|
1364
1405
|
WHERE id = ?
|
|
1365
1406
|
LIMIT 1
|
|
1366
|
-
`).get(b);return c?
|
|
1407
|
+
`).get(b);return c?S(c):null}function af(a,b){let c=a.prepare(`
|
|
1367
1408
|
SELECT *
|
|
1368
1409
|
FROM assistant_executions
|
|
1369
1410
|
WHERE conversation_id = ?
|
|
1370
1411
|
ORDER BY created_at DESC
|
|
1371
1412
|
LIMIT 1
|
|
1372
|
-
`).get(b);return c?
|
|
1413
|
+
`).get(b);return c?S(c):null}function ag(a,b){let c=a.prepare(`
|
|
1373
1414
|
SELECT *
|
|
1374
1415
|
FROM assistant_executions
|
|
1375
1416
|
WHERE conversation_id = ?
|
|
1376
1417
|
AND status = 'running'
|
|
1377
1418
|
ORDER BY created_at DESC
|
|
1378
1419
|
LIMIT 1
|
|
1379
|
-
`).get(b);return c?
|
|
1420
|
+
`).get(b);return c?S(c):null}function ah(a){return a.prepare(`
|
|
1421
|
+
SELECT *
|
|
1422
|
+
FROM assistant_executions
|
|
1423
|
+
WHERE status = 'running'
|
|
1424
|
+
ORDER BY created_at DESC
|
|
1425
|
+
`).all().map(S)}function ai(a,b){let c=a.prepare(`
|
|
1380
1426
|
SELECT conversation_id, last_captured_line, in_progress_message_id
|
|
1381
1427
|
FROM assistant_session_states
|
|
1382
1428
|
WHERE conversation_id = ?
|
|
1383
|
-
`).get(b);return c?{conversationId:c.conversation_id,lastCapturedLine:c.last_captured_line,inProgressMessageId:c.in_progress_message_id}:null}function
|
|
1429
|
+
`).get(b);return c?{conversationId:c.conversation_id,lastCapturedLine:c.last_captured_line,inProgressMessageId:c.in_progress_message_id}:null}function aj(a,b,c,d){a.prepare(`
|
|
1384
1430
|
INSERT INTO assistant_session_states (conversation_id, last_captured_line, in_progress_message_id)
|
|
1385
1431
|
VALUES (?, ?, ?)
|
|
1386
1432
|
ON CONFLICT(conversation_id) DO UPDATE SET
|
|
1387
1433
|
last_captured_line = excluded.last_captured_line,
|
|
1388
1434
|
in_progress_message_id = excluded.in_progress_message_id
|
|
1389
|
-
`).run(b,c,d??null)}function
|
|
1435
|
+
`).run(b,c,d??null)}function ak(a,b){a.prepare(`
|
|
1390
1436
|
DELETE FROM assistant_session_states
|
|
1391
1437
|
WHERE conversation_id = ?
|
|
1392
|
-
`).run(b)}
|
|
1438
|
+
`).run(b)}var al=c(43167);let am=["manual","wait","api","task"],an=`
|
|
1393
1439
|
id, worktree_id, instance_id, task_id, trigger, status, base_ref, started_at, finished_at
|
|
1394
|
-
`,
|
|
1440
|
+
`,ao=`
|
|
1395
1441
|
id, run_id, gate_id, command, status, exit_code, duration_ms, log_tail, started_at, finished_at
|
|
1396
|
-
`;function
|
|
1442
|
+
`;function ap(a){return{id:a.id,worktreeId:a.worktree_id,instanceId:a.instance_id,taskId:a.task_id,trigger:a.trigger,status:a.status,baseRef:a.base_ref,startedAt:new Date(a.started_at),finishedAt:null===a.finished_at?null:new Date(a.finished_at)}}function aq(a){return{id:a.id,runId:a.run_id,gateId:a.gate_id,command:a.command,status:a.status,exitCode:a.exit_code,durationMs:a.duration_ms,logTail:a.log_tail,startedAt:new Date(a.started_at),finishedAt:null===a.finished_at?null:new Date(a.finished_at),timingsMeasured:null!==a.finished_at&&null!==a.duration_ms&&a.finished_at-a.started_at===a.duration_ms}}function ar(a,b){let c=Date.now(),d=a.prepare(`
|
|
1397
1443
|
INSERT INTO verification_runs (
|
|
1398
1444
|
worktree_id, instance_id, task_id, trigger, status, base_ref, started_at, finished_at
|
|
1399
1445
|
)
|
|
1400
1446
|
VALUES (?, ?, ?, ?, 'running', ?, ?, NULL)
|
|
1401
|
-
`).run(b.worktreeId,b.instanceId??null,b.taskId??null,b.trigger,b.baseRef??null,c),e=a.prepare(`SELECT ${
|
|
1447
|
+
`).run(b.worktreeId,b.instanceId??null,b.taskId??null,b.trigger,b.baseRef??null,c),e=a.prepare(`SELECT ${an} FROM verification_runs WHERE id = ?`).get(Number(d.lastInsertRowid));if(!e)throw Error("Failed to persist verification run");return ap(e)}function as(a,b,c){if(0===a.prepare("UPDATE verification_runs SET status = ?, finished_at = ? WHERE id = ?").run(c,Date.now(),b).changes)throw Error(`Verification run ${b} not found`)}function at(a,b,c){let d=Date.now(),e=a.prepare(`
|
|
1402
1448
|
INSERT INTO verification_gate_results (
|
|
1403
1449
|
run_id, gate_id, command, status, exit_code, duration_ms, log_tail, started_at, finished_at
|
|
1404
1450
|
)
|
|
1405
1451
|
VALUES (?, ?, ?, 'running', NULL, NULL, NULL, ?, NULL)
|
|
1406
|
-
`).run(b,c.gateId,c.command,d),f=a.prepare(`SELECT ${
|
|
1452
|
+
`).run(b,c.gateId,c.command,d),f=a.prepare(`SELECT ${ao} FROM verification_gate_results WHERE id = ?`).get(Number(e.lastInsertRowid));if(!f)throw Error("Failed to persist verification gate result");return aq(f)}function au(a,b,c){if(0===a.prepare(`
|
|
1407
1453
|
UPDATE verification_gate_results
|
|
1408
1454
|
SET status = ?, exit_code = ?, duration_ms = ?, log_tail = ?,
|
|
1409
1455
|
started_at = COALESCE(?, started_at),
|
|
1410
1456
|
finished_at = ?
|
|
1411
1457
|
WHERE id = ?
|
|
1412
|
-
`).run(c.status,c.exitCode??null,c.durationMs??null,c.logTail??null,c.executionWindow?.startedAt??null,c.executionWindow?.finishedAt??Date.now(),b).changes)throw Error(`Verification gate result ${b} not found`)}function
|
|
1413
|
-
SELECT ${
|
|
1458
|
+
`).run(c.status,c.exitCode??null,c.durationMs??null,c.logTail??null,c.executionWindow?.startedAt??null,c.executionWindow?.finishedAt??Date.now(),b).changes)throw Error(`Verification gate result ${b} not found`)}function av(a,b){let c=a.prepare(`SELECT ${an} FROM verification_runs WHERE id = ?`).get(b);if(!c)return null;let d=a.prepare(`
|
|
1459
|
+
SELECT ${ao} FROM verification_gate_results
|
|
1414
1460
|
WHERE run_id = ?
|
|
1415
1461
|
ORDER BY started_at ASC, id ASC
|
|
1416
|
-
`).all(b);return{...
|
|
1417
|
-
SELECT ${
|
|
1462
|
+
`).all(b);return{...ap(c),gates:d.map(aq)}}function aw(a,b){let c=a.prepare(`
|
|
1463
|
+
SELECT ${an} FROM verification_runs
|
|
1418
1464
|
WHERE worktree_id = ? AND status = 'running'
|
|
1419
1465
|
ORDER BY id DESC
|
|
1420
1466
|
LIMIT 1
|
|
1421
|
-
`).get(b);return c?
|
|
1422
|
-
SELECT ${
|
|
1467
|
+
`).get(b);return c?ap(c):null}function ax(a){return a.prepare(`
|
|
1468
|
+
SELECT ${an} FROM verification_runs
|
|
1469
|
+
WHERE status = 'running'
|
|
1470
|
+
ORDER BY id ASC
|
|
1471
|
+
`).all().map(ap)}function ay(a,b,c=20){return a.prepare(`
|
|
1472
|
+
SELECT ${an} FROM verification_runs
|
|
1423
1473
|
WHERE worktree_id = ?
|
|
1424
1474
|
ORDER BY started_at DESC, id DESC
|
|
1425
1475
|
LIMIT ?
|
|
1426
|
-
`).all(b,c).map(
|
|
1427
|
-
SELECT ${
|
|
1476
|
+
`).all(b,c).map(ap)}let az=50,aA=500,aB=90;function aC(a,b,c,d){return void 0!==a&&Number.isFinite(a)?Math.min(Math.max(Math.trunc(a),c),d):b}function aD(a,b={}){let c=aC(b.limit,az,1,aA),d=[],e=[];if(void 0!==b.worktreeId&&(d.push("worktree_id = ?"),e.push(b.worktreeId)),void 0!==b.days){let a=aC(b.days,aB,1,aB);d.push("started_at >= ?"),e.push(Date.now()-864e5*a)}let f=d.length>0?`WHERE ${d.join(" AND ")}`:"",g=a.prepare(`
|
|
1477
|
+
SELECT ${an} FROM verification_runs
|
|
1428
1478
|
${f}
|
|
1429
1479
|
ORDER BY started_at DESC, id DESC
|
|
1430
1480
|
LIMIT ?
|
|
@@ -1433,6 +1483,9 @@
|
|
|
1433
1483
|
FROM verification_gate_results
|
|
1434
1484
|
WHERE run_id IN (${h})
|
|
1435
1485
|
ORDER BY started_at ASC, id ASC
|
|
1436
|
-
`).all(...g.map(a=>a.id)),j=new Map;for(let a of i){let b={gateId:a.gate_id,status:a.status,exitCode:a.exit_code,durationMs:a.duration_ms},c=j.get(a.run_id);c?c.push(b):j.set(a.run_id,[b])}return g.map(a=>({...
|
|
1486
|
+
`).all(...g.map(a=>a.id)),j=new Map;for(let a of i){let b={gateId:a.gate_id,status:a.status,exitCode:a.exit_code,durationMs:a.duration_ms},c=j.get(a.run_id);c?c.push(b):j.set(a.run_id,[b])}return g.map(a=>({...ap(a),gates:j.get(a.id)??[]}))}var aE=c(48524),aF=c(87009)},95506:(a,b,c)=>{c.d(b,{Q2:()=>h,fX:()=>i,l0:()=>g,r3:()=>j,xJ:()=>f});var d=c(27923);function e(a){return void 0!==a.prepare("SELECT 1 FROM sqlite_master WHERE type = 'table' AND name = 'worktree_aliases'").get()}function f(a,b,c,e=Date.now()){(0,d.b$)(a,b,c,e)}function g(a,b){if(!b)return null;if(a.prepare("SELECT 1 FROM worktrees WHERE id = ?").get(b))return b;if(!e(a))return null;let c=a.prepare("SELECT worktree_id FROM worktree_aliases WHERE old_id = ?").get(b);return c&&a.prepare("SELECT 1 FROM worktrees WHERE id = ?").get(c.worktree_id)?c.worktree_id:null}function h(a,b){return e(a)?a.prepare(`SELECT old_id, worktree_id, created_at
|
|
1487
|
+
FROM worktree_aliases
|
|
1488
|
+
WHERE worktree_id = ?
|
|
1489
|
+
ORDER BY created_at DESC, old_id ASC`).all(b).map(a=>({oldId:a.old_id,worktreeId:a.worktree_id,createdAt:a.created_at})):[]}function i(a){return e(a)?a.prepare(`SELECT old_id, worktree_id, created_at
|
|
1437
1490
|
FROM worktree_aliases
|
|
1438
|
-
ORDER BY created_at ASC, old_id ASC`).all().map(a=>({oldId:a.old_id,worktreeId:a.worktree_id,createdAt:a.created_at})):[]}function
|
|
1491
|
+
ORDER BY created_at ASC, old_id ASC`).all().map(a=>({oldId:a.old_id,worktreeId:a.worktree_id,createdAt:a.created_at})):[]}function j(a){return e(a)?a.prepare("SELECT old_id FROM worktree_aliases").all().map(a=>a.old_id):[]}}};
|