commandmate 0.27.0 → 0.28.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/.env.example +28 -0
- package/.next/BUILD_ID +1 -1
- package/.next/app-build-manifest.json +286 -256
- package/.next/app-path-routes-manifest.json +36 -32
- package/.next/build-manifest.json +2 -2
- package/.next/prerender-manifest.json +12 -12
- package/.next/required-server-files.json +1 -1
- package/.next/routes-manifest.json +32 -0
- package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/server/app/api/app/update/route.js +1 -1
- package/.next/server/app/api/app/update/route.js.nft.json +1 -1
- package/.next/server/app/api/app/update/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/app/update-check/route.js +1 -1
- package/.next/server/app/api/app/update-check/route_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 +32 -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 +34 -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/capabilities/route.js +1 -1
- package/.next/server/app/api/capabilities/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 +2 -2
- package/.next/server/app/api/hooks/claude-done/route.js.nft.json +1 -1
- package/.next/server/app/api/hooks/claude-done/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/hooks/permission-request/route.js +1 -1
- package/.next/server/app/api/hooks/permission-request/route.js.nft.json +1 -1
- package/.next/server/app/api/hooks/permission-request/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/metrics/vibe/route.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/escalation/route.js +1 -1
- package/.next/server/app/api/push/escalation/route.js.nft.json +1 -1
- package/.next/server/app/api/push/escalation/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/push/subscriptions/route.js +7 -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.js.nft.json +1 -1
- package/.next/server/app/api/skills/[id]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/skills/installations/route.js +1 -1
- package/.next/server/app/api/skills/installations/route.js.nft.json +1 -1
- package/.next/server/app/api/skills/installations/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/skills/operations/route.js +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.js.nft.json +1 -1
- package/.next/server/app/api/skills/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/slash-commands/route.js.nft.json +1 -1
- package/.next/server/app/api/slash-commands/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/tasks/[taskId]/cancel/route.js +1 -1
- 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 -1
- package/.next/server/app/api/tasks/[taskId]/route.js.nft.json +1 -1
- package/.next/server/app/api/tasks/[taskId]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/templates/[id]/route.js +2 -2
- package/.next/server/app/api/templates/[id]/route.js.nft.json +1 -1
- package/.next/server/app/api/templates/[id]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/templates/route.js +2 -2
- package/.next/server/app/api/templates/route.js.nft.json +1 -1
- package/.next/server/app/api/templates/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/todos/route.js +1 -1
- package/.next/server/app/api/todos/route.js.nft.json +1 -1
- package/.next/server/app/api/todos/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/verification/runs/[runId]/route.js +1 -1
- package/.next/server/app/api/verification/runs/[runId]/route.js.nft.json +1 -1
- package/.next/server/app/api/verification/runs/[runId]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/verification/runs/route.js +1 -1
- package/.next/server/app/api/verification/runs/route.js.nft.json +1 -1
- package/.next/server/app/api/verification/runs/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/auto-yes/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/auto-yes/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/auto-yes/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/capture/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/capture/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/capture/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/clear-composer/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/clear-composer/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/clear-composer/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/cli-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 +2 -2
- package/.next/server/app/api/worktrees/[id]/current-output/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/current-output/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/env/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/env/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/env/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/execution-logs/[logId]/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/execution-logs/[logId]/route.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]/instances/opencode/route.js +1 -0
- package/.next/server/app/api/worktrees/[id]/instances/opencode/route.js.nft.json +1 -0
- package/.next/server/app/api/worktrees/[id]/instances/opencode/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/worktrees/[id]/interrupt/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/interrupt/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/interrupt/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/kill-session/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/kill-session/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/kill-session/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/logs/[filename]/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/logs/[filename]/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/logs/[filename]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/logs/route.js +2 -2
- package/.next/server/app/api/worktrees/[id]/logs/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/logs/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/marp-render/route.js +4 -4
- 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]/opencode/diff/route.js +1 -0
- package/.next/server/app/api/worktrees/[id]/opencode/diff/route.js.nft.json +1 -0
- package/.next/server/app/api/worktrees/[id]/opencode/diff/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/worktrees/[id]/opencode/session/route.js +1 -0
- package/.next/server/app/api/worktrees/[id]/opencode/session/route.js.nft.json +1 -0
- package/.next/server/app/api/worktrees/[id]/opencode/session/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/worktrees/[id]/opencode/share/route.js +1 -0
- package/.next/server/app/api/worktrees/[id]/opencode/share/route.js.nft.json +1 -0
- package/.next/server/app/api/worktrees/[id]/opencode/share/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/worktrees/[id]/prompt-response/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/prompt-response/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/prompt-response/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/resolve-target/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/resolve-target/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/resolve-target/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/respond/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/respond/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/respond/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/schedules/[scheduleId]/route.js +5 -1
- 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 +6 -2
- 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 +7 -3
- 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 +1 -1
- 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 -3
- 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 -1
- 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.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.js +1 -1
- package/.next/server/app/review/page.js.nft.json +1 -1
- package/.next/server/app/review/page_client-reference-manifest.js +1 -1
- package/.next/server/app/sessions/page_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 +15 -10
- 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 +2 -2
- 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 +36 -32
- package/.next/server/chunks/1058.js +1 -0
- package/.next/server/chunks/1068.js +1 -3
- package/.next/server/chunks/1191.js +13 -0
- package/.next/server/chunks/1296.js +1 -1
- package/.next/server/chunks/1601.js +2 -2
- package/.next/server/chunks/1714.js +7 -0
- package/.next/server/chunks/1886.js +5 -0
- package/.next/server/chunks/1944.js +1 -0
- package/.next/server/chunks/2119.js +1 -1
- package/.next/server/chunks/221.js +19 -0
- package/.next/server/chunks/222.js +1 -0
- package/.next/server/chunks/2328.js +1 -1
- package/.next/server/chunks/2366.js +1 -0
- package/.next/server/chunks/2404.js +2 -2
- package/.next/server/chunks/243.js +1 -0
- package/.next/server/chunks/2445.js +1 -1
- package/.next/server/chunks/2759.js +1 -1
- package/.next/server/chunks/3346.js +1 -1
- package/.next/server/chunks/3480.js +17 -1
- package/.next/server/chunks/3558.js +1 -0
- package/.next/server/chunks/4299.js +1 -0
- package/.next/server/chunks/4393.js +1 -1
- package/.next/server/chunks/5017.js +1 -1
- package/.next/server/chunks/5089.js +1 -1
- package/.next/server/chunks/5354.js +1 -1
- package/.next/server/chunks/5571.js +1 -1
- package/.next/server/chunks/6130.js +1 -1
- package/.next/server/chunks/6274.js +11 -10
- package/.next/server/chunks/6285.js +1 -1
- package/.next/server/chunks/6337.js +1 -0
- package/.next/server/chunks/6401.js +1 -1
- package/.next/server/chunks/663.js +78 -0
- package/.next/server/chunks/7472.js +1 -1
- package/.next/server/chunks/7824.js +1 -0
- package/.next/server/chunks/7905.js +1 -0
- package/.next/server/chunks/880.js +1 -1
- package/.next/server/chunks/8807.js +84 -18
- package/.next/server/chunks/9130.js +5 -0
- package/.next/server/chunks/9328.js +1 -1
- package/.next/server/chunks/9358.js +1 -1
- package/.next/server/chunks/9508.js +1 -1
- package/.next/server/chunks/9584.js +1 -0
- package/.next/server/chunks/9627.js +274 -0
- package/.next/server/chunks/9798.js +2 -0
- package/.next/server/chunks/9938.js +1 -1
- package/.next/server/middleware-manifest.json +5 -5
- package/.next/server/pages/500.html +1 -1
- package/.next/server/server-reference-manifest.json +1 -1
- package/.next/static/chunks/1188-8567ee5ecfef02ee.js +1 -0
- package/.next/static/chunks/3361-aa1b6e7c1d7eeeb4.js +1 -0
- package/.next/static/chunks/3968-8d8ca15657748bfb.js +1 -0
- package/.next/static/chunks/6381-d921ab728eda1191.js +1 -0
- package/.next/static/chunks/app/api/app/update/route-9247d6b9d647f750.js +1 -0
- package/.next/static/chunks/app/api/app/update-check/route-9247d6b9d647f750.js +1 -0
- package/.next/static/chunks/app/api/assistant/conversation/route-9247d6b9d647f750.js +1 -0
- package/.next/static/chunks/app/api/assistant/current-output/route-9247d6b9d647f750.js +1 -0
- package/.next/static/chunks/app/api/assistant/messages/route-9247d6b9d647f750.js +1 -0
- package/.next/static/chunks/app/api/assistant/session/route-9247d6b9d647f750.js +1 -0
- package/.next/static/chunks/app/api/assistant/start/route-9247d6b9d647f750.js +1 -0
- package/.next/static/chunks/app/api/assistant/terminal/route-9247d6b9d647f750.js +1 -0
- package/.next/static/chunks/app/api/assistant/tools/route-9247d6b9d647f750.js +1 -0
- package/.next/static/chunks/app/api/auth/login/route-9247d6b9d647f750.js +1 -0
- package/.next/static/chunks/app/api/auth/logout/route-9247d6b9d647f750.js +1 -0
- package/.next/static/chunks/app/api/auth/status/route-9247d6b9d647f750.js +1 -0
- package/.next/static/chunks/app/api/capabilities/route-9247d6b9d647f750.js +1 -0
- package/.next/static/chunks/app/api/daily-summary/route-9247d6b9d647f750.js +1 -0
- package/.next/static/chunks/app/api/daily-summary/status/route-9247d6b9d647f750.js +1 -0
- package/.next/static/chunks/app/api/external-apps/[id]/health/route-9247d6b9d647f750.js +1 -0
- package/.next/static/chunks/app/api/external-apps/[id]/route-9247d6b9d647f750.js +1 -0
- package/.next/static/chunks/app/api/external-apps/route-9247d6b9d647f750.js +1 -0
- package/.next/static/chunks/app/api/fs/browse/route-9247d6b9d647f750.js +1 -0
- package/.next/static/chunks/app/api/fs/recent-paths/route-9247d6b9d647f750.js +1 -0
- package/.next/static/chunks/app/api/hooks/agent-event/route-9247d6b9d647f750.js +1 -0
- package/.next/static/chunks/app/api/hooks/claude-done/route-9247d6b9d647f750.js +1 -0
- package/.next/static/chunks/app/api/hooks/permission-request/route-9247d6b9d647f750.js +1 -0
- package/.next/static/chunks/app/api/metrics/vibe/route-9247d6b9d647f750.js +1 -0
- package/.next/static/chunks/app/api/ollama/models/route-9247d6b9d647f750.js +1 -0
- package/.next/static/chunks/app/api/push/escalation/route-9247d6b9d647f750.js +1 -0
- package/.next/static/chunks/app/api/push/subscriptions/route-9247d6b9d647f750.js +1 -0
- package/.next/static/chunks/app/api/push/vapid/route-9247d6b9d647f750.js +1 -0
- package/.next/static/chunks/app/api/repositories/[id]/route-9247d6b9d647f750.js +1 -0
- package/.next/static/chunks/app/api/repositories/[id]/todos/[todoId]/route-9247d6b9d647f750.js +1 -0
- package/.next/static/chunks/app/api/repositories/[id]/todos/route-9247d6b9d647f750.js +1 -0
- package/.next/static/chunks/app/api/repositories/clone/[jobId]/route-9247d6b9d647f750.js +1 -0
- package/.next/static/chunks/app/api/repositories/clone/route-9247d6b9d647f750.js +1 -0
- package/.next/static/chunks/app/api/repositories/excluded/route-9247d6b9d647f750.js +1 -0
- package/.next/static/chunks/app/api/repositories/restore/route-9247d6b9d647f750.js +1 -0
- package/.next/static/chunks/app/api/repositories/route-9247d6b9d647f750.js +1 -0
- package/.next/static/chunks/app/api/repositories/scan/route-9247d6b9d647f750.js +1 -0
- package/.next/static/chunks/app/api/repositories/sync/route-9247d6b9d647f750.js +1 -0
- package/.next/static/chunks/app/api/repositories/validate-path/route-9247d6b9d647f750.js +1 -0
- package/.next/static/chunks/app/api/sidebar/group-order/route-9247d6b9d647f750.js +1 -0
- package/.next/static/chunks/app/api/skills/[id]/route-9247d6b9d647f750.js +1 -0
- package/.next/static/chunks/app/api/skills/installations/route-9247d6b9d647f750.js +1 -0
- package/.next/static/chunks/app/api/skills/operations/route-9247d6b9d647f750.js +1 -0
- package/.next/static/chunks/app/api/skills/reindex/route-9247d6b9d647f750.js +1 -0
- package/.next/static/chunks/app/api/skills/route-9247d6b9d647f750.js +1 -0
- package/.next/static/chunks/app/api/slash-commands/route-9247d6b9d647f750.js +1 -0
- package/.next/static/chunks/app/api/tasks/[taskId]/cancel/route-9247d6b9d647f750.js +1 -0
- package/.next/static/chunks/app/api/tasks/[taskId]/route-9247d6b9d647f750.js +1 -0
- package/.next/static/chunks/app/api/templates/[id]/route-9247d6b9d647f750.js +1 -0
- package/.next/static/chunks/app/api/templates/route-9247d6b9d647f750.js +1 -0
- package/.next/static/chunks/app/api/todos/route-9247d6b9d647f750.js +1 -0
- package/.next/static/chunks/app/api/verification/runs/[runId]/route-9247d6b9d647f750.js +1 -0
- package/.next/static/chunks/app/api/verification/runs/route-9247d6b9d647f750.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/auto-yes/route-9247d6b9d647f750.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/capture/route-9247d6b9d647f750.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/clear-composer/route-9247d6b9d647f750.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/cli-tool/route-9247d6b9d647f750.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/cmate/schedules/route-9247d6b9d647f750.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/current-output/route-9247d6b9d647f750.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/env/route-9247d6b9d647f750.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/execution-logs/[logId]/route-9247d6b9d647f750.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/execution-logs/route-9247d6b9d647f750.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/files/[...path]/route-9247d6b9d647f750.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/branch/create/route-9247d6b9d647f750.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/branch/delete/route-9247d6b9d647f750.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/branches/route-9247d6b9d647f750.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/checkout/route-9247d6b9d647f750.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/commit/route-9247d6b9d647f750.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/diff/route-9247d6b9d647f750.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/fetch/route-9247d6b9d647f750.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/log/route-9247d6b9d647f750.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/pull/route-9247d6b9d647f750.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/push/route-9247d6b9d647f750.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/reset/route-9247d6b9d647f750.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/revert/route-9247d6b9d647f750.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/show/[commitHash]/route-9247d6b9d647f750.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/stage/route-9247d6b9d647f750.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/staged/route-9247d6b9d647f750.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/stash/[index]/route-9247d6b9d647f750.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/stash/apply/route-9247d6b9d647f750.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/stash/pop/route-9247d6b9d647f750.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/stash/push/route-9247d6b9d647f750.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/stash/route-9247d6b9d647f750.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/status/route-9247d6b9d647f750.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/unstage/route-9247d6b9d647f750.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/working-diff/route-9247d6b9d647f750.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/instances/opencode/route-9247d6b9d647f750.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/interrupt/route-9247d6b9d647f750.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/kill-session/route-9247d6b9d647f750.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/logs/[filename]/route-9247d6b9d647f750.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/logs/route-9247d6b9d647f750.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/marp-render/route-9247d6b9d647f750.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/memos/[memoId]/route-9247d6b9d647f750.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/memos/route-9247d6b9d647f750.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/messages/route-9247d6b9d647f750.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/opencode/diff/route-9247d6b9d647f750.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/opencode/session/route-9247d6b9d647f750.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/opencode/share/route-9247d6b9d647f750.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/prompt-response/route-9247d6b9d647f750.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/resolve-target/route-9247d6b9d647f750.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/respond/route-9247d6b9d647f750.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/route-9247d6b9d647f750.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/schedules/[scheduleId]/route-9247d6b9d647f750.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/schedules/active/route-9247d6b9d647f750.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/schedules/route-9247d6b9d647f750.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/search/route-9247d6b9d647f750.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/send/route-9247d6b9d647f750.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/git-workflow/route-9247d6b9d647f750.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/install/route-9247d6b9d647f750.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/plan/route-9247d6b9d647f750.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/uninstall/route-9247d6b9d647f750.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/uninstall-plan/route-9247d6b9d647f750.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/update/route-9247d6b9d647f750.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/update-plan/route-9247d6b9d647f750.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/skills/route-9247d6b9d647f750.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/slash-commands/route-9247d6b9d647f750.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/special-keys/route-9247d6b9d647f750.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/start-polling/route-9247d6b9d647f750.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/tasks/route-9247d6b9d647f750.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/terminal/route-9247d6b9d647f750.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/timers/history/route-9247d6b9d647f750.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/timers/route-9247d6b9d647f750.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/todos/[todoId]/route-9247d6b9d647f750.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/todos/route-9247d6b9d647f750.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/tree/[...path]/route-9247d6b9d647f750.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/tree/route-9247d6b9d647f750.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/upload/[...path]/route-9247d6b9d647f750.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/verify/route-9247d6b9d647f750.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/verify/runs/[runId]/route-9247d6b9d647f750.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/verify/runs/route-9247d6b9d647f750.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/viewed/route-9247d6b9d647f750.js +1 -0
- package/.next/static/chunks/app/api/worktrees/route-9247d6b9d647f750.js +1 -0
- package/.next/static/chunks/app/manifest.webmanifest/route-9247d6b9d647f750.js +1 -0
- package/.next/static/chunks/app/more/page-03867ab635d197c7.js +1 -0
- package/.next/static/chunks/app/proxy/[...path]/route-9247d6b9d647f750.js +1 -0
- package/.next/static/chunks/app/review/page-9a6d18ddcccbb63c.js +1 -0
- package/.next/static/chunks/app/worktrees/[id]/layout-9247d6b9d647f750.js +1 -0
- package/.next/static/chunks/app/worktrees/[id]/page-27b7cb2e77099eec.js +1 -0
- package/.next/static/chunks/app/worktrees/[id]/terminal/page-00ad5d9a62a71cab.js +1 -0
- package/.next/static/css/98722bc4152cedcc.css +1 -0
- package/.next/trace +13 -13
- package/.next/types/app/api/worktrees/[id]/instances/opencode/route.ts +347 -0
- package/.next/types/app/api/worktrees/[id]/opencode/diff/route.ts +347 -0
- package/.next/types/app/api/worktrees/[id]/opencode/session/route.ts +347 -0
- package/.next/types/app/api/worktrees/[id]/opencode/share/route.ts +347 -0
- package/.next/types/routes.d.ts +5 -1
- package/.next/types/validator.ts +36 -0
- package/README.md +9 -1
- package/dist/cli/commands/init.d.ts.map +1 -1
- package/dist/cli/commands/init.js +66 -0
- package/dist/cli/commands/instances.d.ts.map +1 -1
- package/dist/cli/commands/instances.js +46 -1
- package/dist/cli/commands/interrupt.d.ts +25 -0
- package/dist/cli/commands/interrupt.d.ts.map +1 -0
- package/dist/cli/commands/interrupt.js +146 -0
- package/dist/cli/commands/report.d.ts.map +1 -1
- package/dist/cli/commands/report.js +11 -4
- package/dist/cli/commands/respond.d.ts.map +1 -1
- package/dist/cli/commands/respond.js +146 -1
- package/dist/cli/commands/status.d.ts.map +1 -1
- package/dist/cli/commands/status.js +104 -0
- package/dist/cli/commands/wait.d.ts.map +1 -1
- package/dist/cli/commands/wait.js +39 -1
- package/dist/cli/config/agent-target-options.d.ts +12 -0
- package/dist/cli/config/agent-target-options.d.ts.map +1 -1
- package/dist/cli/config/agent-target-options.js +15 -1
- 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 +34 -0
- package/dist/cli/program.d.ts.map +1 -1
- package/dist/cli/program.js +6 -0
- package/dist/cli/types/api-responses.d.ts +375 -0
- package/dist/cli/types/api-responses.d.ts.map +1 -1
- package/dist/cli/types/index.d.ts +63 -0
- package/dist/cli/types/index.d.ts.map +1 -1
- package/dist/cli/types/index.js +31 -1
- package/dist/cli/utils/daemon.d.ts.map +1 -1
- package/dist/cli/utils/daemon.js +3 -0
- package/dist/cli/utils/env-setup.d.ts +24 -0
- package/dist/cli/utils/env-setup.d.ts.map +1 -1
- package/dist/cli/utils/env-setup.js +70 -0
- package/dist/cli/utils/vapid-keygen.d.ts +74 -0
- package/dist/cli/utils/vapid-keygen.d.ts.map +1 -0
- package/dist/cli/utils/vapid-keygen.js +111 -0
- package/dist/lib/cli-tools/types.d.ts +11 -1
- package/dist/lib/cli-tools/types.d.ts.map +1 -1
- package/dist/lib/detection/tools/verified-against.d.ts +14 -3
- package/dist/lib/detection/tools/verified-against.d.ts.map +1 -1
- package/dist/lib/detection/tools/verified-against.js +14 -3
- package/dist/lib/push/vapid.d.ts +178 -0
- package/dist/lib/push/vapid.d.ts.map +1 -0
- package/dist/lib/push/vapid.js +293 -0
- package/dist/lib/server/localhost-self-check.d.ts +203 -0
- package/dist/lib/server/localhost-self-check.d.ts.map +1 -0
- package/dist/lib/server/localhost-self-check.js +333 -0
- package/dist/server/locales/en/notifications.json +23 -1
- package/dist/server/locales/ja/notifications.json +23 -1
- package/dist/server/server.js +103 -0
- package/dist/server/src/config/image-extensions.js +244 -0
- package/dist/server/src/config/opencode-constants.js +69 -0
- package/dist/server/src/config/tmux-pane-config.js +100 -1
- package/dist/server/src/lib/cli-tools/base.js +33 -48
- package/dist/server/src/lib/cli-tools/opencode-config.js +12 -0
- package/dist/server/src/lib/cli-tools/opencode.js +435 -7
- package/dist/server/src/lib/cli-tools/start-availability.js +160 -0
- package/dist/server/src/lib/cmate-cli-tool-parser.js +328 -7
- package/dist/server/src/lib/cmate-parser.js +12 -0
- package/dist/server/src/lib/db/agent-instances-db.js +129 -0
- package/dist/server/src/lib/db/agent-session-cost-db.js +204 -0
- package/dist/server/src/lib/db/agent-session-cost-sampler.js +194 -0
- package/dist/server/src/lib/db/chat-db.js +33 -0
- package/dist/server/src/lib/db/db-instance.js +11 -0
- package/dist/server/src/lib/db/db.js +8 -3
- package/dist/server/src/lib/db/migrations/index.js +6 -0
- package/dist/server/src/lib/db/migrations/runner.js +1 -1
- package/dist/server/src/lib/db/migrations/v57-push-subscription-defaults-notice.js +54 -0
- package/dist/server/src/lib/db/migrations/v58-agent-session-costs.js +100 -0
- package/dist/server/src/lib/db/migrations/v59-opencode-instance-settings.js +71 -0
- package/dist/server/src/lib/db/push-subscriptions-db.js +56 -5
- package/dist/server/src/lib/detection/cli-patterns.js +17 -6
- package/dist/server/src/lib/detection/excerpt.js +48 -0
- package/dist/server/src/lib/detection/model-info-extractor.js +26 -3
- package/dist/server/src/lib/detection/opencode-modal-overlay.js +400 -0
- package/dist/server/src/lib/detection/opencode-pane-obstruction.js +181 -0
- package/dist/server/src/lib/detection/status-detector.js +7 -0
- package/dist/server/src/lib/detection/status-reason.js +20 -0
- package/dist/server/src/lib/detection/terminal-columns.js +94 -0
- package/dist/server/src/lib/detection/tools/opencode/detect.js +43 -0
- package/dist/server/src/lib/detection/tools/opencode/prompt.js +20 -0
- package/dist/server/src/lib/detection/tools/verified-against.js +14 -3
- package/dist/server/src/lib/detection/upstream-faults.js +7 -22
- package/dist/server/src/lib/hooks/agent-session-telemetry.js +324 -0
- package/dist/server/src/lib/hooks/pending-decision-kind.js +72 -0
- package/dist/server/src/lib/hooks/sources/define-source.js +88 -0
- package/dist/server/src/lib/hooks/sources/opencode/client.js +907 -2
- package/dist/server/src/lib/hooks/sources/opencode/diff.js +336 -0
- package/dist/server/src/lib/hooks/sources/opencode/history.js +480 -0
- package/dist/server/src/lib/hooks/sources/opencode/ingest.js +76 -7
- package/dist/server/src/lib/hooks/sources/opencode/launch-settings.js +222 -0
- package/dist/server/src/lib/hooks/sources/opencode/mappers.js +31 -0
- package/dist/server/src/lib/hooks/sources/opencode/payloads.js +45 -0
- package/dist/server/src/lib/hooks/sources/opencode/ports.js +16 -0
- package/dist/server/src/lib/hooks/sources/opencode/push.js +307 -0
- package/dist/server/src/lib/hooks/sources/opencode/reattach.js +284 -0
- package/dist/server/src/lib/hooks/sources/opencode/runtime.js +165 -2
- package/dist/server/src/lib/hooks/sources/opencode/source.js +46 -2
- package/dist/server/src/lib/hooks/sources/opencode/subscription.js +407 -4
- package/dist/server/src/lib/hooks/sources/opencode/transcript.js +383 -0
- package/dist/server/src/lib/hooks/structured-decision-response.js +460 -0
- package/dist/server/src/lib/job-executor.js +43 -20
- package/dist/server/src/lib/polling/response-checker.js +43 -16
- package/dist/server/src/lib/polling/structured-history-gate.js +75 -0
- package/dist/server/src/lib/prompt-answer-sender.js +153 -2
- package/dist/server/src/lib/push/delivery-health.js +237 -0
- package/dist/server/src/lib/push/failure-push-notifier.js +109 -7
- package/dist/server/src/lib/push/index.js +25 -1
- package/dist/server/src/lib/push/prompt-card-state.js +254 -14
- package/dist/server/src/lib/push/push-sender.js +63 -12
- package/dist/server/src/lib/push/resolution-push-notifier.js +15 -3
- package/dist/server/src/lib/push/vapid.js +264 -5
- package/dist/server/src/lib/push/waiting-push-notifier.js +7 -0
- package/dist/server/src/lib/server/localhost-self-check.js +333 -0
- package/dist/server/src/lib/session/agent-event-state.js +169 -4
- package/dist/server/src/lib/session/claude-executor.js +152 -15
- package/dist/server/src/lib/session/current-output-builder.js +182 -15
- package/dist/server/src/lib/session/opencode-session-api.js +214 -0
- package/dist/server/src/lib/session/opencode-session-recall.js +168 -0
- package/dist/server/src/lib/session/opencode-session-store.js +274 -0
- package/dist/server/src/lib/session/provisional-turn.js +54 -1
- package/dist/server/src/lib/session/send-user-message.js +6 -5
- package/dist/server/src/lib/session/structured-prompt.js +53 -2
- package/dist/server/src/lib/skills/compatibility-matrix.js +50 -1
- package/dist/server/src/lib/tmux/tmux.js +74 -4
- package/dist/server/src/lib/verification/gate-runner.js +71 -8
- package/dist/server/src/types/agent-session.js +63 -0
- package/dist/server/src/types/agent-transcript.js +80 -0
- package/dist/server/src/types/opencode-export.js +228 -0
- package/dist/server/src/types/opencode-instance-settings.js +140 -0
- package/dist/server/src/types/opencode-share.js +111 -0
- package/dist/server/src/types/terminal-keys.js +69 -1
- package/dist/types/cli-tool-contracts.d.ts +48 -0
- package/dist/types/cli-tool-contracts.d.ts.map +1 -1
- package/dist/types/terminal-keys.d.ts +89 -0
- package/dist/types/terminal-keys.d.ts.map +1 -0
- package/dist/types/terminal-keys.js +105 -0
- package/package.json +1 -1
- package/.next/server/chunks/1029.js +0 -1
- package/.next/server/chunks/1239.js +0 -1
- package/.next/server/chunks/1538.js +0 -7
- package/.next/server/chunks/2546.js +0 -1
- package/.next/server/chunks/2689.js +0 -13
- package/.next/server/chunks/3292.js +0 -1
- package/.next/server/chunks/3417.js +0 -1
- package/.next/server/chunks/3736.js +0 -1
- package/.next/server/chunks/4423.js +0 -1
- package/.next/server/chunks/4444.js +0 -32
- package/.next/server/chunks/4565.js +0 -3
- package/.next/server/chunks/467.js +0 -1
- package/.next/server/chunks/4905.js +0 -5
- package/.next/server/chunks/552.js +0 -19
- package/.next/server/chunks/5998.js +0 -74
- package/.next/server/chunks/6919.js +0 -1
- package/.next/server/chunks/7970.js +0 -229
- package/.next/server/chunks/8536.js +0 -1
- package/.next/server/chunks/9284.js +0 -1
- package/.next/static/chunks/3361-5d6e93fba8a92bc1.js +0 -1
- package/.next/static/chunks/6381-b7250e8ca7a44c6c.js +0 -1
- package/.next/static/chunks/8521-c43994fb58501d13.js +0 -1
- package/.next/static/chunks/app/api/app/update/route-6add0d88e2828c23.js +0 -1
- package/.next/static/chunks/app/api/app/update-check/route-6add0d88e2828c23.js +0 -1
- package/.next/static/chunks/app/api/assistant/conversation/route-6add0d88e2828c23.js +0 -1
- package/.next/static/chunks/app/api/assistant/current-output/route-6add0d88e2828c23.js +0 -1
- package/.next/static/chunks/app/api/assistant/messages/route-6add0d88e2828c23.js +0 -1
- package/.next/static/chunks/app/api/assistant/session/route-6add0d88e2828c23.js +0 -1
- package/.next/static/chunks/app/api/assistant/start/route-6add0d88e2828c23.js +0 -1
- package/.next/static/chunks/app/api/assistant/terminal/route-6add0d88e2828c23.js +0 -1
- package/.next/static/chunks/app/api/assistant/tools/route-6add0d88e2828c23.js +0 -1
- package/.next/static/chunks/app/api/auth/login/route-6add0d88e2828c23.js +0 -1
- package/.next/static/chunks/app/api/auth/logout/route-6add0d88e2828c23.js +0 -1
- package/.next/static/chunks/app/api/auth/status/route-6add0d88e2828c23.js +0 -1
- package/.next/static/chunks/app/api/capabilities/route-6add0d88e2828c23.js +0 -1
- package/.next/static/chunks/app/api/daily-summary/route-6add0d88e2828c23.js +0 -1
- package/.next/static/chunks/app/api/daily-summary/status/route-6add0d88e2828c23.js +0 -1
- package/.next/static/chunks/app/api/external-apps/[id]/health/route-6add0d88e2828c23.js +0 -1
- package/.next/static/chunks/app/api/external-apps/[id]/route-6add0d88e2828c23.js +0 -1
- package/.next/static/chunks/app/api/external-apps/route-6add0d88e2828c23.js +0 -1
- package/.next/static/chunks/app/api/fs/browse/route-6add0d88e2828c23.js +0 -1
- package/.next/static/chunks/app/api/fs/recent-paths/route-6add0d88e2828c23.js +0 -1
- package/.next/static/chunks/app/api/hooks/agent-event/route-6add0d88e2828c23.js +0 -1
- package/.next/static/chunks/app/api/hooks/claude-done/route-6add0d88e2828c23.js +0 -1
- package/.next/static/chunks/app/api/hooks/permission-request/route-6add0d88e2828c23.js +0 -1
- package/.next/static/chunks/app/api/metrics/vibe/route-6add0d88e2828c23.js +0 -1
- package/.next/static/chunks/app/api/ollama/models/route-6add0d88e2828c23.js +0 -1
- package/.next/static/chunks/app/api/push/escalation/route-6add0d88e2828c23.js +0 -1
- package/.next/static/chunks/app/api/push/subscriptions/route-6add0d88e2828c23.js +0 -1
- package/.next/static/chunks/app/api/push/vapid/route-6add0d88e2828c23.js +0 -1
- package/.next/static/chunks/app/api/repositories/[id]/route-6add0d88e2828c23.js +0 -1
- package/.next/static/chunks/app/api/repositories/[id]/todos/[todoId]/route-6add0d88e2828c23.js +0 -1
- package/.next/static/chunks/app/api/repositories/[id]/todos/route-6add0d88e2828c23.js +0 -1
- package/.next/static/chunks/app/api/repositories/clone/[jobId]/route-6add0d88e2828c23.js +0 -1
- package/.next/static/chunks/app/api/repositories/clone/route-6add0d88e2828c23.js +0 -1
- package/.next/static/chunks/app/api/repositories/excluded/route-6add0d88e2828c23.js +0 -1
- package/.next/static/chunks/app/api/repositories/restore/route-6add0d88e2828c23.js +0 -1
- package/.next/static/chunks/app/api/repositories/route-6add0d88e2828c23.js +0 -1
- package/.next/static/chunks/app/api/repositories/scan/route-6add0d88e2828c23.js +0 -1
- package/.next/static/chunks/app/api/repositories/sync/route-6add0d88e2828c23.js +0 -1
- package/.next/static/chunks/app/api/repositories/validate-path/route-6add0d88e2828c23.js +0 -1
- package/.next/static/chunks/app/api/sidebar/group-order/route-6add0d88e2828c23.js +0 -1
- package/.next/static/chunks/app/api/skills/[id]/route-6add0d88e2828c23.js +0 -1
- package/.next/static/chunks/app/api/skills/installations/route-6add0d88e2828c23.js +0 -1
- package/.next/static/chunks/app/api/skills/operations/route-6add0d88e2828c23.js +0 -1
- package/.next/static/chunks/app/api/skills/reindex/route-6add0d88e2828c23.js +0 -1
- package/.next/static/chunks/app/api/skills/route-6add0d88e2828c23.js +0 -1
- package/.next/static/chunks/app/api/slash-commands/route-6add0d88e2828c23.js +0 -1
- package/.next/static/chunks/app/api/tasks/[taskId]/cancel/route-6add0d88e2828c23.js +0 -1
- package/.next/static/chunks/app/api/tasks/[taskId]/route-6add0d88e2828c23.js +0 -1
- package/.next/static/chunks/app/api/templates/[id]/route-6add0d88e2828c23.js +0 -1
- package/.next/static/chunks/app/api/templates/route-6add0d88e2828c23.js +0 -1
- package/.next/static/chunks/app/api/todos/route-6add0d88e2828c23.js +0 -1
- package/.next/static/chunks/app/api/verification/runs/[runId]/route-6add0d88e2828c23.js +0 -1
- package/.next/static/chunks/app/api/verification/runs/route-6add0d88e2828c23.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/auto-yes/route-6add0d88e2828c23.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/capture/route-6add0d88e2828c23.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/clear-composer/route-6add0d88e2828c23.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/cli-tool/route-6add0d88e2828c23.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/cmate/schedules/route-6add0d88e2828c23.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/current-output/route-6add0d88e2828c23.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/env/route-6add0d88e2828c23.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/execution-logs/[logId]/route-6add0d88e2828c23.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/execution-logs/route-6add0d88e2828c23.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/files/[...path]/route-6add0d88e2828c23.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/branch/create/route-6add0d88e2828c23.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/branch/delete/route-6add0d88e2828c23.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/branches/route-6add0d88e2828c23.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/checkout/route-6add0d88e2828c23.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/commit/route-6add0d88e2828c23.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/diff/route-6add0d88e2828c23.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/fetch/route-6add0d88e2828c23.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/log/route-6add0d88e2828c23.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/pull/route-6add0d88e2828c23.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/push/route-6add0d88e2828c23.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/reset/route-6add0d88e2828c23.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/revert/route-6add0d88e2828c23.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/show/[commitHash]/route-6add0d88e2828c23.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/stage/route-6add0d88e2828c23.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/staged/route-6add0d88e2828c23.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/stash/[index]/route-6add0d88e2828c23.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/stash/apply/route-6add0d88e2828c23.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/stash/pop/route-6add0d88e2828c23.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/stash/push/route-6add0d88e2828c23.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/stash/route-6add0d88e2828c23.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/status/route-6add0d88e2828c23.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/unstage/route-6add0d88e2828c23.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/working-diff/route-6add0d88e2828c23.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/interrupt/route-6add0d88e2828c23.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/kill-session/route-6add0d88e2828c23.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/logs/[filename]/route-6add0d88e2828c23.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/logs/route-6add0d88e2828c23.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/marp-render/route-6add0d88e2828c23.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/memos/[memoId]/route-6add0d88e2828c23.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/memos/route-6add0d88e2828c23.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/messages/route-6add0d88e2828c23.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/prompt-response/route-6add0d88e2828c23.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/resolve-target/route-6add0d88e2828c23.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/respond/route-6add0d88e2828c23.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/route-6add0d88e2828c23.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/schedules/[scheduleId]/route-6add0d88e2828c23.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/schedules/active/route-6add0d88e2828c23.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/schedules/route-6add0d88e2828c23.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/search/route-6add0d88e2828c23.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/send/route-6add0d88e2828c23.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/git-workflow/route-6add0d88e2828c23.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/install/route-6add0d88e2828c23.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/plan/route-6add0d88e2828c23.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/uninstall/route-6add0d88e2828c23.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/uninstall-plan/route-6add0d88e2828c23.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/update/route-6add0d88e2828c23.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/update-plan/route-6add0d88e2828c23.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/skills/route-6add0d88e2828c23.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/slash-commands/route-6add0d88e2828c23.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/special-keys/route-6add0d88e2828c23.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/start-polling/route-6add0d88e2828c23.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/tasks/route-6add0d88e2828c23.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/terminal/route-6add0d88e2828c23.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/timers/history/route-6add0d88e2828c23.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/timers/route-6add0d88e2828c23.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/todos/[todoId]/route-6add0d88e2828c23.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/todos/route-6add0d88e2828c23.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/tree/[...path]/route-6add0d88e2828c23.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/tree/route-6add0d88e2828c23.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/upload/[...path]/route-6add0d88e2828c23.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/verify/route-6add0d88e2828c23.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/verify/runs/[runId]/route-6add0d88e2828c23.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/verify/runs/route-6add0d88e2828c23.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/viewed/route-6add0d88e2828c23.js +0 -1
- package/.next/static/chunks/app/api/worktrees/route-6add0d88e2828c23.js +0 -1
- package/.next/static/chunks/app/manifest.webmanifest/route-6add0d88e2828c23.js +0 -1
- package/.next/static/chunks/app/more/page-3266dfa945972649.js +0 -1
- package/.next/static/chunks/app/proxy/[...path]/route-6add0d88e2828c23.js +0 -1
- package/.next/static/chunks/app/review/page-8f63aff862fee421.js +0 -1
- package/.next/static/chunks/app/worktrees/[id]/layout-6add0d88e2828c23.js +0 -1
- package/.next/static/chunks/app/worktrees/[id]/page-e4f28966b4fc0ce1.js +0 -1
- package/.next/static/chunks/app/worktrees/[id]/terminal/page-a75fe180a7233b2b.js +0 -1
- package/.next/static/css/928e5a8830fbf997.css +0 -1
- /package/.next/static/{t0BoV4H46ZgKmTjSi7GIz → 0GHE2JGlFzqvSBZAcBFSt}/_buildManifest.js +0 -0
- /package/.next/static/{t0BoV4H46ZgKmTjSi7GIz → 0GHE2JGlFzqvSBZAcBFSt}/_ssgManifest.js +0 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";exports.id=8807,exports.ids=[8807],exports.modules={
|
|
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)}},27727:(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=59;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(`
|
|
2
2
|
SELECT version, name, applied_at
|
|
3
3
|
FROM schema_version
|
|
4
4
|
ORDER BY version ASC
|
|
@@ -1046,7 +1046,50 @@
|
|
|
1046
1046
|
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)`)}},{version:56,name:"add-source-to-verification-gate-results",up:a=>{a.prepare("PRAGMA table_info(verification_gate_results)").all().some(a=>"source"===a.name)||a.exec(`
|
|
1047
1047
|
ALTER TABLE verification_gate_results ADD COLUMN source TEXT
|
|
1048
1048
|
CHECK (source IS NULL OR source IN ('builtin', 'verify.yaml', 'contract'));
|
|
1049
|
-
`)},down:()=>{}}
|
|
1049
|
+
`)},down:()=>{}},{version:57,name:"add-defaults-version-to-push-subscriptions",up:a=>{a.exec(`
|
|
1050
|
+
ALTER TABLE push_subscriptions
|
|
1051
|
+
ADD COLUMN defaults_version INTEGER NOT NULL DEFAULT 0;
|
|
1052
|
+
`)},down:a=>{a.exec(`
|
|
1053
|
+
ALTER TABLE push_subscriptions DROP COLUMN defaults_version;
|
|
1054
|
+
`)}},{version:58,name:"agent-session-costs",up:a=>{a.exec(`
|
|
1055
|
+
CREATE TABLE IF NOT EXISTS agent_session_costs (
|
|
1056
|
+
session_id TEXT PRIMARY KEY,
|
|
1057
|
+
worktree_id TEXT NOT NULL,
|
|
1058
|
+
cli_tool_id TEXT NOT NULL,
|
|
1059
|
+
instance_id TEXT,
|
|
1060
|
+
date TEXT NOT NULL,
|
|
1061
|
+
title TEXT,
|
|
1062
|
+
agent TEXT,
|
|
1063
|
+
model TEXT,
|
|
1064
|
+
provider TEXT,
|
|
1065
|
+
cost REAL,
|
|
1066
|
+
tokens_input INTEGER,
|
|
1067
|
+
tokens_output INTEGER,
|
|
1068
|
+
tokens_reasoning INTEGER,
|
|
1069
|
+
tokens_cache_read INTEGER,
|
|
1070
|
+
tokens_cache_write INTEGER,
|
|
1071
|
+
first_seen_at INTEGER NOT NULL,
|
|
1072
|
+
observed_at INTEGER NOT NULL,
|
|
1073
|
+
|
|
1074
|
+
FOREIGN KEY (worktree_id) REFERENCES worktrees(id) ON DELETE CASCADE
|
|
1075
|
+
);
|
|
1076
|
+
`),a.exec(`
|
|
1077
|
+
CREATE INDEX IF NOT EXISTS idx_agent_session_costs_date
|
|
1078
|
+
ON agent_session_costs(date, worktree_id);
|
|
1079
|
+
`)},down:a=>{a.exec("DROP INDEX IF EXISTS idx_agent_session_costs_date;"),a.exec("DROP TABLE IF EXISTS agent_session_costs;")}},{version:59,name:"opencode-instance-settings",up:a=>{a.exec(`
|
|
1080
|
+
CREATE TABLE IF NOT EXISTS opencode_instance_settings (
|
|
1081
|
+
worktree_id TEXT NOT NULL,
|
|
1082
|
+
instance_id TEXT NOT NULL,
|
|
1083
|
+
agent TEXT,
|
|
1084
|
+
provider_id TEXT,
|
|
1085
|
+
model_id TEXT,
|
|
1086
|
+
variant TEXT,
|
|
1087
|
+
updated_at INTEGER NOT NULL,
|
|
1088
|
+
|
|
1089
|
+
PRIMARY KEY (worktree_id, instance_id),
|
|
1090
|
+
FOREIGN KEY (worktree_id) REFERENCES worktrees(id) ON DELETE CASCADE
|
|
1091
|
+
);
|
|
1092
|
+
`)},down:a=>{a.exec("DROP TABLE IF EXISTS opencode_instance_settings;")}}];function aa(a){!function(a,b){a.exec(`
|
|
1050
1093
|
CREATE TABLE IF NOT EXISTS schema_version (
|
|
1051
1094
|
version INTEGER PRIMARY KEY,
|
|
1052
1095
|
name TEXT NOT NULL,
|
|
@@ -1055,28 +1098,51 @@
|
|
|
1055
1098
|
`);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(`
|
|
1056
1099
|
INSERT INTO schema_version (version, name, applied_at)
|
|
1057
1100
|
VALUES (?, ?, ?)
|
|
1058
|
-
`).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)}},
|
|
1101
|
+
`).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)}},28274:(a,b,c)=>{c.d(b,{AC:()=>f,BN:()=>k,Cs:()=>n,NU:()=>p,Oe:()=>q,Uq:()=>o,YN:()=>r,fs:()=>m,m0:()=>j,sB:()=>l,ug:()=>g});var d=c(79827),e=c(15194);class f extends Error{constructor(a,b=e.Ab){super(`Worktree ${a} cannot have more than ${b} agent instances`),this.name="AgentInstanceLimitError"}}class g extends Error{constructor(a){super(a),this.name="InvalidAgentInstanceError"}}function h(a){let b=a.cli_tool_id,c=a.alias&&a.alias.length>0?a.alias:(0,e.hR)(a.cli_tool_id)?(0,e.oo)(b):a.cli_tool_id;return{id:a.instance_id,cliTool:b,alias:c,order:a.sort_order}}function i(a){if(!(0,e.n6)(a.id))throw new g(`Invalid instance id: ${String(a.id)}`);if(!(0,e.hR)(a.cliTool))throw new g(`Invalid CLI tool: ${String(a.cliTool)}`);if("string"==typeof a.alias&&a.alias.length>e.pQ)throw new g(`Alias exceeds ${e.pQ} characters`)}function j(a,b){return a.prepare(`
|
|
1059
1102
|
SELECT worktree_id, instance_id, cli_tool_id, alias, sort_order, created_at
|
|
1060
1103
|
FROM agent_instances
|
|
1061
1104
|
WHERE worktree_id = ?
|
|
1062
1105
|
ORDER BY sort_order ASC, instance_id ASC
|
|
1063
|
-
`).all(b).map(
|
|
1106
|
+
`).all(b).map(h)}function k(a,b,c){let d=a.prepare(`
|
|
1064
1107
|
SELECT worktree_id, instance_id, cli_tool_id, alias, sort_order, created_at
|
|
1065
1108
|
FROM agent_instances
|
|
1066
1109
|
WHERE worktree_id = ? AND instance_id = ?
|
|
1067
|
-
`).get(b,c);return d?
|
|
1110
|
+
`).get(b,c);return d?h(d):null}function l(a,b,c,d){if(!c)return{ok:!0,cliToolId:d??null};let f=k(a,b,c);return f&&(0,e.hR)(f.cliTool)?d&&d!==f.cliTool?{ok:!1,instanceId:c,rosterCliTool:f.cliTool,requestedCliTool:d}:{ok:!0,cliToolId:f.cliTool}:d?{ok:!0,cliToolId:d}:(0,e.hR)(c)?{ok:!0,cliToolId:c}:{ok:!0,cliToolId:null}}function m(a,b){return a.prepare(`
|
|
1068
1111
|
SELECT COUNT(*) as count FROM agent_instances WHERE worktree_id = ?
|
|
1069
|
-
`).get(b).count}function
|
|
1112
|
+
`).get(b).count}function n(a,b,c){if(c.length>e.Ab)throw new f(b);let d=new Set;for(let a of c){if(i(a),d.has(a.id))throw new g(`Duplicate instance id: ${a.id}`);d.add(a.id)}let h=Date.now();a.transaction(()=>{a.prepare("DELETE FROM agent_instances WHERE worktree_id = ?").run(b),function(a,b,c){if(0===c.length)return a.prepare(`
|
|
1113
|
+
DELETE FROM opencode_instance_settings WHERE worktree_id = ?
|
|
1114
|
+
`).run(b).changes;let d=c.map(()=>"?").join(", ");a.prepare(`
|
|
1115
|
+
DELETE FROM opencode_instance_settings
|
|
1116
|
+
WHERE worktree_id = ? AND instance_id NOT IN (${d})
|
|
1117
|
+
`).run(b,...c).changes}(a,b,c.map(a=>a.id));let d=a.prepare(`
|
|
1070
1118
|
INSERT INTO agent_instances
|
|
1071
1119
|
(worktree_id, instance_id, cli_tool_id, alias, sort_order, created_at)
|
|
1072
1120
|
VALUES (?, ?, ?, ?, ?, ?)
|
|
1073
|
-
`);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,
|
|
1121
|
+
`);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,h)})})()}function o(a,b,c){i(c),a.transaction(()=>{let d=m(a,b);if(d>=e.Ab)throw new f(b);if(k(a,b,c.id))throw new g(`Instance ${c.id} already exists for worktree ${b}`);let h=Number.isInteger(c.order)?c.order:d;a.prepare(`
|
|
1074
1122
|
INSERT INTO agent_instances
|
|
1075
1123
|
(worktree_id, instance_id, cli_tool_id, alias, sort_order, created_at)
|
|
1076
1124
|
VALUES (?, ?, ?, ?, ?, ?)
|
|
1077
|
-
`).run(b,c.id,c.cliTool,c.alias??"",h,Date.now())})()}function
|
|
1125
|
+
`).run(b,c.id,c.cliTool,c.alias??"",h,Date.now())})()}function p(a,b,c){let d=a.prepare(`
|
|
1078
1126
|
DELETE FROM agent_instances WHERE worktree_id = ? AND instance_id = ?
|
|
1079
|
-
`).run(b,c)
|
|
1127
|
+
`).run(b,c);return a.prepare(`
|
|
1128
|
+
DELETE FROM opencode_instance_settings WHERE worktree_id = ? AND instance_id = ?
|
|
1129
|
+
`).run(b,c),d.changes>0}function q(a,b){let c=a.prepare(`
|
|
1130
|
+
SELECT instance_id, agent, provider_id, model_id, variant
|
|
1131
|
+
FROM opencode_instance_settings
|
|
1132
|
+
WHERE worktree_id = ?
|
|
1133
|
+
`).all(b),e={};for(let a of c)e[a.instance_id]=(0,d.ZH)({agent:a.agent,providerId:a.provider_id,modelId:a.model_id,variant:a.variant});return e}function r(a,b,c,f,h=Date.now()){if(!(0,e.n6)(c))throw new g(`Invalid instance id: ${String(c)}`);let i=(0,d.ZH)(f);return(0,d.Mj)(i)?a.prepare(`
|
|
1134
|
+
INSERT INTO opencode_instance_settings
|
|
1135
|
+
(worktree_id, instance_id, agent, provider_id, model_id, variant, updated_at)
|
|
1136
|
+
VALUES (?, ?, ?, ?, ?, ?, ?)
|
|
1137
|
+
ON CONFLICT(worktree_id, instance_id) DO UPDATE SET
|
|
1138
|
+
agent = excluded.agent,
|
|
1139
|
+
provider_id = excluded.provider_id,
|
|
1140
|
+
model_id = excluded.model_id,
|
|
1141
|
+
variant = excluded.variant,
|
|
1142
|
+
updated_at = excluded.updated_at
|
|
1143
|
+
`).run(b,c,i.agent,i.providerId,i.modelId,i.variant,h):a.prepare(`
|
|
1144
|
+
DELETE FROM opencode_instance_settings WHERE worktree_id = ? AND instance_id = ?
|
|
1145
|
+
`).run(b,c),i}},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(`
|
|
1080
1146
|
INSERT INTO timer_messages (id, worktree_id, cli_tool_id, instance_id, message, delay_ms, scheduled_send_time, status, created_at, sent_at)
|
|
1081
1147
|
VALUES (?, ?, ?, ?, ?, ?, ?, 'pending', ?, NULL)
|
|
1082
1148
|
`).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(`
|
|
@@ -1104,22 +1170,22 @@
|
|
|
1104
1170
|
AND status NOT IN ('pending', 'sending')
|
|
1105
1171
|
`).run(b).changes}function r(a){return a.prepare(`
|
|
1106
1172
|
UPDATE timer_messages SET status = 'failed', error = ? WHERE status = 'sending'
|
|
1107
|
-
`).run("Recovered from a stuck 'sending' state after a server restart.").changes}},43167:(a,b,c)=>{c.d(b,{CF:()=>
|
|
1173
|
+
`).run("Recovered from a stuck 'sending' state after a server restart.").changes}},43167:(a,b,c)=>{c.d(b,{CF:()=>k,Se:()=>l,VP:()=>g,Zj:()=>o,gn:()=>m,jA:()=>j,jJ:()=>p,rC:()=>n,s6:()=>f,th:()=>q});var d=c(55511);let e={prompt:"enabled_prompt",failure:"enabled_prompt",completion:"enabled_completion"},f={enabledPrompt:!0,enabledCompletion:!1},g=1;function h(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,defaultsVersion:a.defaults_version,createdAt:new Date(a.created_at),updatedAt:new Date(a.updated_at)}}let i=`
|
|
1108
1174
|
id, endpoint, p256dh, auth, device_label,
|
|
1109
|
-
enabled_prompt, enabled_completion, locale, created_at, updated_at
|
|
1110
|
-
`;function
|
|
1175
|
+
enabled_prompt, enabled_completion, locale, defaults_version, created_at, updated_at
|
|
1176
|
+
`;function j(a,b){let c=Date.now(),e=b.deviceLabel??null,h=b.locale??null;a.prepare(`
|
|
1111
1177
|
INSERT INTO push_subscriptions (
|
|
1112
1178
|
id, endpoint, p256dh, auth, device_label,
|
|
1113
|
-
enabled_prompt, enabled_completion, locale, created_at, updated_at
|
|
1179
|
+
enabled_prompt, enabled_completion, locale, defaults_version, created_at, updated_at
|
|
1114
1180
|
)
|
|
1115
|
-
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
|
|
1181
|
+
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
|
|
1116
1182
|
ON CONFLICT(endpoint) DO UPDATE SET
|
|
1117
1183
|
p256dh = excluded.p256dh,
|
|
1118
1184
|
auth = excluded.auth,
|
|
1119
1185
|
device_label = excluded.device_label,
|
|
1120
1186
|
locale = COALESCE(excluded.locale, push_subscriptions.locale),
|
|
1121
1187
|
updated_at = excluded.updated_at
|
|
1122
|
-
`).run((0,d.randomUUID)(),b.endpoint,b.p256dh,b.auth,e,+!!f.enabledPrompt,+!!f.enabledCompletion,g,c,c);let
|
|
1188
|
+
`).run((0,d.randomUUID)(),b.endpoint,b.p256dh,b.auth,e,+!!f.enabledPrompt,+!!f.enabledCompletion,h,g,c,c);let i=k(a,b.endpoint);if(!i)throw Error("Failed to persist push subscription");return i}function k(a,b){let c=a.prepare(`SELECT ${i} FROM push_subscriptions WHERE endpoint = ?`).get(b);return c?h(c):null}function l(a){return a.prepare(`SELECT ${i} FROM push_subscriptions ORDER BY created_at ASC`).all().map(h)}function m(a,b){let c=e[b];return a.prepare(`SELECT ${i} FROM push_subscriptions WHERE ${c} = 1 ORDER BY created_at ASC`).all().map(h)}function n(a,b){let c=e[b];return a.prepare(`SELECT COUNT(*) AS total FROM push_subscriptions WHERE ${c} = 1`).get().total}function o(a){return a.defaultsVersion<g}function p(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)),c.acknowledgeDefaultsNotice&&(d.push("defaults_version = ?"),e.push(g)),e.push(b),a.prepare(`UPDATE push_subscriptions SET ${d.join(", ")} WHERE endpoint = ?`).run(...e),k(a,b)}function q(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=`
|
|
1123
1189
|
id, worktree_id, cli_tool_id, instance_id, title, goal, contract_path, contract_json,
|
|
1124
1190
|
status, last_verification_run_id, created_at, updated_at, started_at, finished_at
|
|
1125
1191
|
`;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(`
|
|
@@ -1159,7 +1225,7 @@
|
|
|
1159
1225
|
AND status IN (${f})
|
|
1160
1226
|
ORDER BY updated_at DESC, created_at DESC, rowid DESC
|
|
1161
1227
|
LIMIT 1
|
|
1162
|
-
`).get(b,c,d,+!!e,...g);return h?k(h):null}},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(`
|
|
1228
|
+
`).get(b,c,d,+!!e,...g);return h?k(h):null}},79827:(a,b,c)=>{c.d(b,{Mj:()=>i,ZH:()=>k,gF:()=>h,qQ:()=>m,sw:()=>l});let d=/^[A-Za-z0-9][A-Za-z0-9._-]{0,63}$/,e=/^[A-Za-z0-9][A-Za-z0-9._-]{0,63}$/,f=/^[A-Za-z0-9][A-Za-z0-9._:/-]{0,127}$/,g=/^[A-Za-z0-9][A-Za-z0-9._-]{0,31}$/,h=Object.freeze({agent:null,providerId:null,modelId:null,variant:null});function i(a){return!!a&&!!(a.agent||a.providerId||a.modelId||a.variant)}function j(a,b){if("string"!=typeof a)return null;let c=a.trim();return 0===c.length?null:b.test(c)?c:null}function k(a){if("object"!=typeof a||null===a)return{...h};let b=j(a.providerId,e),c=j(a.modelId,f),i=null!==b&&null!==c;return{agent:j(a.agent,d),providerId:i?b:null,modelId:i?c:null,variant:j(a.variant,g)}}function l(a){return a?.providerId&&a.modelId?`${a.providerId}/${a.modelId}`:null}let m={connected:!1,providers:[],agents:[]}},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(`
|
|
1163
1229
|
INSERT INTO task_events (task_id, event, from_status, to_status, payload_json, created_at)
|
|
1164
1230
|
VALUES (?, ?, ?, ?, ?, ?)
|
|
1165
1231
|
`).run(b.taskId,b.event,b.fromStatus,b.toStatus,c,b.createdAt).lastInsertRowid)}function f(a,b,c=200){return a.prepare(`
|
|
@@ -1168,7 +1234,7 @@
|
|
|
1168
1234
|
WHERE task_id = ?
|
|
1169
1235
|
ORDER BY created_at ASC, id ASC
|
|
1170
1236
|
LIMIT ?
|
|
1171
|
-
`).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:()=>
|
|
1237
|
+
`).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:()=>q,getDbInstance:()=>p});var d=c(33873),e=c.n(d),f=c(27727),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(93636),n=c(87447);let o=null;function p(){if(!o){let a=(0,n._$)().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}o=h,(0,m.fe)(h)}return o}function q(){o&&((0,m.zZ)(),o.close(),o=null)}},90444:(a,b,c)=>{function d(a){a.exec(`
|
|
1172
1238
|
CREATE TABLE IF NOT EXISTS worktrees (
|
|
1173
1239
|
id TEXT PRIMARY KEY,
|
|
1174
1240
|
name TEXT NOT NULL,
|
|
@@ -1220,7 +1286,7 @@
|
|
|
1220
1286
|
PRIMARY KEY (worktree_id, cli_tool_id),
|
|
1221
1287
|
FOREIGN KEY (worktree_id) REFERENCES worktrees(id) ON DELETE CASCADE
|
|
1222
1288
|
);
|
|
1223
|
-
`)}c.d(b,{ks:()=>g.ks,EL:()=>aF.EL,AC:()=>m.AC,Tu:()=>aA,ug:()=>m.ug,eP:()=>aC,mg:()=>aB,lm:()=>o,s6:()=>al.s6,Hi:()=>aF.Hi,sA:()=>aF.sA,Dx:()=>an,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,rC:()=>al.rC,G4:()=>W,hL:()=>ac,qp:()=>Y,hl:()=>au,To:()=>s,oH:()=>g.oH,UT:()=>aF.UT,CR:()=>N.CR,py:()=>B,rY:()=>as,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:()=>av,u$:()=>at,__:()=>aF.__,MH:()=>aF.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:()=>ax,y1:()=>h,gg:()=>aF.gg,kx:()=>N.kx,DP:()=>N.DP,Nr:()=>A,ob:()=>y,fr:()=>H,J6:()=>aw,Q2:()=>f.Q2,Ui:()=>e.Ui,P9:()=>e.P9,eN:()=>I,vi:()=>e.vi,uJ:()=>e.uJ,s4:()=>d,uB:()=>aF.uB,yT:()=>F,b2:()=>ah,Fi:()=>ay,HB:()=>aG.H,Vk:()=>aF.Vk,Mt:()=>az,UE:()=>aE,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,WU:()=>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(`
|
|
1289
|
+
`)}c.d(b,{ks:()=>g.ks,EL:()=>aF.EL,AC:()=>m.AC,Tu:()=>aA,ug:()=>m.ug,eP:()=>aC,mg:()=>aB,lm:()=>o,s6:()=>al.s6,VP:()=>al.VP,Hi:()=>aF.Hi,sA:()=>aF.sA,Dx:()=>an,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,rC:()=>al.rC,G4:()=>W,hL:()=>ac,qp:()=>Y,hl:()=>au,To:()=>s,oH:()=>g.oH,UT:()=>aF.UT,CR:()=>N.CR,py:()=>B,rY:()=>as,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,Ow:()=>g.Ow,C8:()=>av,u$:()=>at,__:()=>aF.__,MH:()=>aF.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:()=>ax,y1:()=>h,gg:()=>aF.gg,kx:()=>N.kx,DP:()=>N.DP,Nr:()=>A,ob:()=>y,fr:()=>H,J6:()=>aw,Q2:()=>f.Q2,Ui:()=>e.Ui,P9:()=>e.P9,eN:()=>I,vi:()=>e.vi,uJ:()=>e.uJ,s4:()=>d,uB:()=>aF.uB,yT:()=>F,b2:()=>ah,Fi:()=>ay,HB:()=>aG.H,Vk:()=>aF.Vk,Mt:()=>az,UE:()=>aE,PL:()=>g.PL,_h:()=>e._h,Zj:()=>al.Zj,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,WU:()=>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(`
|
|
1224
1290
|
SELECT worktree_id, cli_tool_id, instance_id, last_captured_line, in_progress_message_id
|
|
1225
1291
|
FROM session_states
|
|
1226
1292
|
WHERE worktree_id = ? AND instance_id = ?
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
"use strict";exports.id=9130,exports.ids=[9130],exports.modules={2669:(a,b,c)=>{c.d(b,{JI:()=>m,M7:()=>d,Sr:()=>h,Zf:()=>f,c7:()=>e,lU:()=>j,mR:()=>i,su:()=>l,wQ:()=>k});let d="SESSION_STARTING",e="SESSION_START_FAILED",f="SESSION_START_UNAVAILABLE",g=[d,e];class h extends Error{constructor(a,b,c){super(`${a} did not reach its input prompt within ${Math.round(c/1e3)}s (initialization timeout). The tmux session '${b}' and its process are still running, so this is a slow start, not a failed one — the message was not delivered, but nothing needs repairing. Retry the send in a few seconds, or run \`commandmate capture <worktree-id>\` to see what it is waiting on.`),this.toolName=a,this.sessionName=b,this.timeoutMs=c,this.code=d,this.name="SessionStartTimeoutError"}}class i extends Error{constructor(a,b,c){super(`${a} reported an error while starting in tmux session '${b}': "${c}". Retrying will not help until that is resolved; run \`commandmate capture <worktree-id>\` to see the session output.`),this.toolName=a,this.sessionName=b,this.detectedPattern=c,this.code=e,this.name="SessionStartFailedError"}}class j extends Error{constructor(a,b=`${a} is not installed. Please install it first.`){super(b),this.toolName=a,this.code=f,this.name="SessionStartUnavailableError"}}function k(a){return n(a)===d}function l(a){let b=n(a);return void 0!==b&&g.includes(b)}function m(a){return n(a)===f}function n(a){if("object"!=typeof a||null===a)return;let b=a.code;return"string"==typeof b?b:void 0}},2734:(a,b,c)=>{c.d(b,{c:()=>d});let d="codex"},21758:(a,b,c)=>{c.d(b,{Rv:()=>J,TV:()=>r,cN:()=>w,nL:()=>p});var d=c(29021),e=c(21820),f=c(33873),g=c(8004),h=c(15194),i=c(87447),j=c(43252),k=c(66007),l=c(72626),m=c(45567),n=c(54633);let o=(0,l.h)("lib/hooks/sources/copilot/hook-settings"),p="gh copilot",q="cmate-copilot-agent-hooks",r=10,s="CM_AGENT_WORKTREE_ID",t="CM_AGENT_INSTANCE_ID",u="CM_AUTH_TOKEN",v=m.wS,w="PreToolUse",x=[["SessionStart","session_start"],["UserPromptSubmit","user_prompt_submit"],["PostToolUse","post_tool_use"],["Stop","stop"],["SessionEnd","session_end"]];function y(a=""){return`: ${q}; if [ -z "\${${s}:-}" ]; then cat >/dev/null; ${a}exit 0; fi; case "$${v}" in ''|*[!0-9]*) cat >/dev/null; ${a}exit 0;; esac; `}let z=`"\${${t}:-${n.V}}"`,A=`"$${s}"`;function B(){return`set -- -fsS -m 4 -X POST -H 'Content-Type: application/json'; if [ -n "\${${u}:-}" ]; then set -- "$@" -H "Authorization: Bearer $${u}"; fi; `}function C(a){return`${(0,j.ZL)("http://127.0.0.1:")}"$${v}"${(0,j.ZL)(a)}`}function D(a){return`${C(`${a}?tool=${n.V}&worktreeId=`)}${A}'&instanceId='${z}`}function E(a){return`rc=$?; printf '%s\\n' "${q}: ${a} rc=$rc" >&2`}function F(a){return"object"==typeof a&&null!==a&&!Array.isArray(a)}function G(a){return F(a)&&"string"==typeof a.command&&a.command.includes(q)}function H(a){try{return(0,d.readFileSync)(a,"utf8")}catch(a){if("ENOENT"===a.code)return"";throw a}}class I extends Error{constructor(a){super(`copilot config.json still has a "hooks" key (${a}); copilot migrates it over settings.json at startup, so CommandMate is not writing hooks this launch`),this.configPath=a,this.name="CopilotConfigHooksShadowError"}}function J(a,b,c={}){let l={command:a,settingsPath:null,env:{}};if("0"===process.env.CM_AGENT_HOOKS_INJECT)return l;let m=b.instanceId??n.V;if(!(0,h.n6)(m)||!(0,k.h6)(b.worktreeId))return o.warn("copilot-hook-invalid-correlation-key",{worktreeId:b.worktreeId}),l;try{let h=function(a={}){let b=a.settingsPath??(0,f.join)(function(){let a=(0,f.join)((0,e.homedir)(),".copilot");return(0,g.T)(process.env.COPILOT_HOME,a,"COPILOT_HOME")}(),"settings.json"),c=a.configPath??(0,f.join)((0,f.dirname)(b),"config.json"),h=function(a){let b,c=H(a);if(""===c.trim())return"absent";try{b=JSON.parse(function(a){let b="",c=!1,d=!1;for(let e=0;e<a.length;e+=1){let f=a[e];if(c){b+=f,d?d=!1:"\\"===f?d=!0:'"'===f&&(c=!1);continue}if('"'===f){c=!0,b+=f;continue}if("/"===f&&"/"===a[e+1]){for(;e<a.length&&"\n"!==a[e];)e+=1;b+="\n";continue}if("/"===f&&"*"===a[e+1]){for(e+=2;e<a.length&&("*"!==a[e]||"/"!==a[e+1]);)e+=1;e+=1;continue}b+=f}return b}(c))}catch{return"unreadable"}if(!F(b))return"unreadable";let d=b.hooks;return null==d||F(d)&&0===Object.keys(d).length||Array.isArray(d)&&0===d.length?"absent":"present"}(c);if("present"===h)throw new I(c);return"unreadable"===h&&o.warn("copilot-config-json-unreadable",{configPath:c}),(0,d.mkdirSync)((0,f.dirname)(b),{recursive:!0,mode:448}),function(a,b){let c,e=(0,f.join)(a,".cmate.lock");try{c=(0,d.openSync)(e,"wx",384)}catch(b){if("EEXIST"!==b.code)throw b;let a=Date.now()-(0,d.statSync)(e).mtimeMs;if(a<1e4)throw Error(`copilot settings.json is locked by another CommandMate server (${e})`);o.warn("copilot-hook-settings-lock-stale",{lockPath:e,heldForMs:a}),(0,d.unlinkSync)(e),c=(0,d.openSync)(e,"wx",384)}try{(0,d.writeSync)(c,`${process.pid}
|
|
2
|
+
`)}finally{(0,d.closeSync)(c)}try{return b()}finally{try{(0,d.unlinkSync)(e)}catch{}}}((0,f.dirname)(b),()=>{let c=H(b),e=function(a,b){let c=a.hooks;if(void 0!==c&&!F(c))throw Error('copilot settings.json has a non-object "hooks" key');let d={...c??{}};for(let[a,c]of Object.entries(b.hooks)){let b=d[a];if(void 0!==b&&!Array.isArray(b)){o.warn("copilot-hook-event-not-an-array",{event:a});continue}d[a]=[...function(a){let b=[];for(let c of a)if(!G(c)){if(F(c)&&Array.isArray(c.hooks)){let a=c.hooks.filter(a=>!G(a));if(0===a.length&&c.hooks.length>0)continue;b.push({...c,hooks:a});continue}b.push(c)}return b}(b??[]),...c]}return{...a,hooks:d}}(function(a){if(""===a.trim())return{};let b=JSON.parse(a);if(!F(b))throw Error("copilot settings.json is not a JSON object");return b}(c),function(a={}){let b={};for(let[c,d]of x)b[c]=[{hooks:[{type:"command",command:function(a,b={}){let c=void 0===b.relayScriptPath?(0,j.Os)():b.relayScriptPath,d=B()+`curl "$@" --data-binary @- ${D(j.jx)} >/dev/null 2>&1 || `+`{ ${E("agent_event_post_failed")}; }`;return c?y()+`if [ -x ${(0,j.ZL)(c)} ]; then `+[(0,j.ZL)(c),"--tool",(0,j.ZL)(n.V),"--event",(0,j.ZL)(a),"--worktree-id",A,"--instance-id",z,"--url",C(j.jx),"--stdin-json"].join(" ")+"; exit 0; fi; "+d:y()+d}(d,a)}]}];return b[w]=[{hooks:[{type:"command",command:function(a={}){return y("printf '{}'; ")+B()+`out=$(curl "$@" --data-binary @- ${D(j.WZ)} `+`2>/dev/null) || { ${E("permission_request_failed")}; out=''; }; `+"[ -n \"$out\" ] || out='{}'; printf '%s' \"$out\""}(a)}]}],{hooks:b}}(a)),f=`${JSON.stringify(e,null,2)}
|
|
3
|
+
`;if(c===f)return b;""!==c&&(0,d.copyFileSync)(b,`${b}.cmate-backup`);let g=`${b}.${process.pid}.tmp`;try{(0,d.writeFileSync)(g,f,{mode:384}),(0,d.renameSync)(g,b)}catch(a){try{(0,d.unlinkSync)(g)}catch{}throw a}return b})}(c);return{command:a,settingsPath:h,env:function(a,b,c={}){return{[s]:a,[t]:b,[v]:String(c.port??(0,i.D0)())}}(b.worktreeId,m,c)}}catch(a){if(a instanceof I)return o.warn("copilot-hook-config-json-shadows-settings",{worktreeId:b.worktreeId,configPath:a.configPath}),l;return o.warn("copilot-hook-settings-write-failed",{worktreeId:b.worktreeId,error:a instanceof Error?a.message:String(a)}),l}}},22354:(a,b,c)=>{c.d(b,{F0:()=>j.F,K9:()=>e.K9,VM:()=>d.VM,_0:()=>f._0,c1:()=>k.c,o:()=>i.o,vm:()=>h.v,y_:()=>g.y_});var d=c(97709);c(66101);var e=c(45567);c(57510),c(38367);var f=c(25071),g=c(50474),h=c(70997),i=c(77904),j=c(76835),k=c(2734)},25071:(a,b,c)=>{c.d(b,{GW:()=>l,_0:()=>k,o4:()=>j,oy:()=>i,qK:()=>h});var d=c(24455);let e=(0,c(72626).h)("lib/hooks/sources/pending-decisions"),f=globalThis.__agentSourcePendingDecisions??=new Map;function g(a){return(0,d.v7)(a.worktreeId,a.cliToolId,a.instanceId)}function h(a){return(f.get(g(a))??[]).map(a=>a.decision)}function i(a,b,c){let d=f.get(g(a));if(!d)return!1;let e=d.find(a=>a.decision.id===b);return!!e&&(e.delivery=c,!0)}function j(a,b,c){let d=f.get(g(a));if(!d)return!1;let e=d.find(a=>a.decision.id===b);return!!e&&(e.body=c,!0)}async function k(a,b,c,d){return(await l(a,b,c,d)).body}async function l(a,b,c,d){let h=function(a,b){let c=g(a),d={key:c,ref:a,decision:b,body:null,delivery:null},e=f.get(c)??[];for(e.push(d);e.length>16;)e.shift();return f.set(c,e),d}(b,c);try{await a.decide(b,c,d)}catch(a){e.warn("agent-source-decide-failed",{worktreeId:b.worktreeId,cliToolId:b.cliToolId,instanceId:b.instanceId??b.cliToolId,decisionId:c.id,error:a instanceof Error?a.message:String(a)}),h.delivery={delivered:!1,reason:a instanceof Error?`decide-threw:${a.message}`:"decide-threw"}}let i=h.delivery;return{body:function(a){let b=f.get(a.key);if(b){let c=b.indexOf(a);c>=0&&b.splice(c,1),0===b.length&&f.delete(a.key)}return a.body??{}}(h),delivery:i}}},38367:(a,b,c)=>{c.d(b,{Jp:()=>h,WK:()=>e,lb:()=>f,ue:()=>g});var d=c(57510);let e={Stop:"stop",SubagentStop:"stop",Notification:"notification",SessionStart:"session_start",SessionEnd:"session_end",UserPromptSubmit:"user_prompt_submit",PreToolUse:"pre_tool_use",PostToolUse:"post_tool_use"},f=["session_id","conversationId"],g=["tool_use_id"];function h(a,b){let c="notification"===a?"notification_type":"session_end"===a?"reason":"session_start"===a?"source":"pre_tool_use"===a||"post_tool_use"===a?"tool_name":null;return null===c?null:(0,d.Wv)((0,d.O2)(b,c))}},45567:(a,b,c)=>{c.d(b,{K9:()=>g,ZM:()=>e,wS:()=>f});var d=c(43252);let e="CM_HOOK_URL",f="CM_HOOK_PORT";function g(a){let b=Object.entries(a.env).map(([a,b])=>`${a}=${(0,d.ZL)(b)}`);return 0===b.length?a.command:`${b.join(" ")} ${a.command}`}},50474:(a,b,c)=>{c.d(b,{y_:()=>d});function d(a){var b=a.noDecision;switch(b.kind){case"proceeds":return{safe:!0,blocksForMs:0,summary:"the agent continues with its own approval flow"};case"blocks":return{safe:!1,blocksForMs:null,summary:"the agent waits indefinitely; nothing else will unblock it"};case"blocksUntil":return{safe:!1,blocksForMs:b.timeoutMs,summary:`the agent waits up to ${b.timeoutMs}ms before continuing`}}}},54633:(a,b,c)=>{c.d(b,{V:()=>d});let d="copilot"},66101:(a,b,c)=>{c.d(b,{Kf:()=>j,UB:()=>h,kS:()=>i});var d=c(62887),e=c(57510),f=c(25071);let g={close:async()=>{},liveness:{state:"unknown"}};function h(a){let b=a.nativeEventNameFields??["hook_event_name"];return{cliToolId:a.cliToolId,transport:"push",noDecision:a.noDecision,capabilities:a.capabilities,normalizeEvent(c){let f=c.receivedAt??Date.now(),g=b.length>0?(0,e.oJ)(c.payload,b):null;if(null!=c.event&&(0,d.o0)(c.event))return(0,e.Uq)({event:c.event},c.payload,f,{detail:a.extractDetail,conversationId:a.conversationIdFields,toolCallId:a.toolCallIdFields,modelFields:a.modelFields,extractModel:a.extractModel});let h=(0,e.qU)(a.mappers,g,c.payload);return h?(0,e.Uq)(h,c.payload,f,{detail:a.extractDetail,conversationId:a.conversationIdFields,toolCallId:a.toolCallIdFields,modelFields:a.modelFields,extractModel:a.extractModel}):((0,e.ex)(a.cliToolId,g),null)},eventIdentityOf:b=>a.extractEventIdentity?.(b)??null,parsePermissionRequest:a.parsePermissionRequest,parseQuestion:a.parseQuestion,encodeVerdict:b=>({kind:"responseBody",body:a.encodeVerdict(b)}),prepareLaunch:a.prepareLaunch,subscribe:async()=>g,async decide(b,c,d){let e=(0,f.o4)(b,c.id,a.encodeVerdict(d));(0,f.oy)(b,c.id,{delivered:e,reason:e?"response-body":"slot-closed"})},listPending:async a=>(0,f.qK)(a),probeActivity:async()=>null,liveness:()=>({state:"unknown"})}}function i(a){let b=a.nativeEventNameFields??["type"];return{cliToolId:a.cliToolId,transport:"pull",noDecision:a.noDecision,capabilities:a.capabilities,normalizeEvent(c){let f=c.receivedAt??Date.now(),g=b.length>0?(0,e.oJ)(c.payload,b):null;if(null!=c.event&&(0,d.o0)(c.event))return(0,e.Uq)({event:c.event},c.payload,f,{detail:a.extractDetail,conversationId:a.conversationIdFields,toolCallId:a.toolCallIdFields,modelFields:a.modelFields,extractModel:a.extractModel});let h=(0,e.qU)(a.mappers,g,c.payload);return h?(0,e.Uq)(h,c.payload,f,{detail:a.extractDetail,conversationId:a.conversationIdFields,toolCallId:a.toolCallIdFields,modelFields:a.modelFields,extractModel:a.extractModel}):((0,e.ex)(a.cliToolId,g),null)},eventIdentityOf:b=>a.extractEventIdentity?.(b)??null,parsePermissionRequest:a.parsePermissionRequest,parseQuestion:a.parseQuestion,encodeVerdict:()=>({kind:"outOfBand"}),prepareLaunch:a.prepareLaunch??(a=>({command:a.executablePath,settingsPath:null,env:{}})),subscribe:a.subscribe,decide:a.decide,listPending:a.listPending,probeActivity:a.probeActivity,liveness:a.liveness}}function j(a,b,c){let d="pull"===a.transport?"sse":0===a.capabilities.supportedEvents.length?"scraper":"hooks";if("sse"!==d)return{kind:d};switch(b.state){case"live":return c-b.lastHeartbeatAt>=3e4?{kind:"sse",liveness:"stale",degradedReason:"heartbeat_stale"}:{kind:"sse",liveness:"live"};case"lost":return{kind:"scraper",liveness:"stale",degradedReason:b.reason};case"unknown":return{kind:"scraper",degradedReason:"not_subscribed"}}}},76835:(a,b,c)=>{c.d(b,{F:()=>d});let d="antigravity"},77904:(a,b,c)=>{c.d(b,{o:()=>d});let d="gemini"},85965:(a,b,c)=>{c.d(b,{cC:()=>u});var d=c(62887),e=c(43252),f=c(72626),g=c(66101),h=c(25071),i=c(49791),j=c(75356),k=c(98211),l=c(18529),m=c(84574),n=c(13602),o=c(85322);let p=(0,f.h)("lib/hooks/sources/opencode/source"),q=d.b0;async function r(a,b,c){let d=a.instanceId??a.cliToolId;if("abstain"===c.kind){p.warn("opencode-verdict-abstained",{worktreeId:a.worktreeId,instanceId:d,decisionId:b.id,consequence:"the agent waits indefinitely; nothing else will unblock it"}),(0,h.oy)(a,b.id,{delivered:!1,reason:"abstained"});return}let e=(0,m.hC)(a);if(null===e){p.warn("opencode-verdict-undeliverable-no-port",{worktreeId:a.worktreeId,instanceId:d,decisionId:b.id}),(0,h.oy)(a,b.id,{delivered:!1,reason:"no-port"});return}if("question"===b.kind){if("answer"!==c.kind){p.info("opencode-question-not-answerable",{worktreeId:a.worktreeId,instanceId:d,decisionId:b.id,verdict:c.kind}),(0,h.oy)(a,b.id,{delivered:!1,reason:"question-needs-answer-verdict"});return}let f=await (0,i.Ei)(e,b.id,c.answers);p.info("opencode-question-replied",{worktreeId:a.worktreeId,instanceId:d,decisionId:b.id,delivered:f}),(0,h.oy)(a,b.id,{delivered:f,reason:f?"question-reply":"question-reply-failed"});return}let f=function(a){switch(a.kind){case"allowOnce":return"once";case"allowAlways":return"always";case"deny":return"reject";case"answer":case"abstain":return null}}(c);if(null===f)return void(0,h.oy)(a,b.id,{delivered:!1,reason:"no-wire-value"});let g=await (0,i.LV)(e,b.id,f,"deny"===c.kind?c.message:void 0);p.info("opencode-permission-replied",{worktreeId:a.worktreeId,instanceId:d,decisionId:b.id,reply:f,delivered:g}),(0,h.oy)(a,b.id,{delivered:g,reason:g?`permission-reply:${f}`:"permission-reply-failed"})}async function s(a){let b=(0,m.hC)(a);if(null===b)return[];let c=Date.now(),[d,e]=await Promise.all([(0,i.Li)(b),(0,i.er)(b)]),f=[];for(let a of d){let b=(0,k.Lu)(a,c);b&&f.push(b)}for(let a of e){let b=(0,k.AB)(a,c);b&&f.push(b)}return f}async function t(a){let b=(0,m.hC)(a);return null===b?null:(0,i.xR)(b)}let u=(0,g.kS)({cliToolId:o.k,noDecision:{kind:"blocks"},capabilities:{supportedEvents:q,configScope:"none",decisionTimeoutSeconds:null,permissionHookPredictsDialog:!1,sessionStartMayArriveLate:!1,permissionReplyReleasesPrompt:!0,eventIdentity:"permission-id",resync:"session-status-poll"},mappers:j.lu,nativeEventNameFields:["type"],conversationIdFields:[],extractModel:j.pV,extractEventIdentity:j.oG,parsePermissionRequest:k.FZ,parseQuestion:k.v1,subscribe:(a,b)=>(0,n.bP)(a,b,a=>u.normalizeEvent(a),{resync:u.capabilities.resync}),decide:r,listPending:s,probeActivity:t,liveness:a=>(0,n.lf)(a),prepareLaunch:function({target:a,executablePath:b}){let c={command:b,settingsPath:null,env:{}};if(!(0,e.q)())return c;let d=(0,m.hC)(a);if(null===d)return c;let f=(0,l.Lj)((0,l.Q1)(a));return{command:`${(0,e.ZL)(b)} --port ${d} --hostname ${i.Vc}`+f,settingsPath:null,env:{}}}})},97709:(a,b,c)=>{c.d(b,{VM:()=>am});var d=c(2466),e=c(13287),f=c(62887),g=c(43252),h=c(66101),i=c(57510),j=c(38367),k=c(70997);let l={};function m(a){return"allowOnce"!==a.kind?l:{hookSpecificOutput:{hookEventName:e.l9,decision:{behavior:"allow"}}}}let n=(0,h.UB)({cliToolId:k.v,noDecision:{kind:"proceeds"},capabilities:{supportedEvents:f.b0,configScope:"per-instance",decisionTimeoutSeconds:g.sI,permissionHookPredictsDialog:!0,sessionStartMayArriveLate:!1,permissionReplyReleasesPrompt:!1,eventIdentity:null,resync:"none"},mappers:(0,i.mJ)(j.WK),nativeEventNameFields:["hook_event_name"],conversationIdFields:j.lb,toolCallIdFields:j.ue,modelFields:["model"],extractDetail:j.Jp,parsePermissionRequest:a=>(0,e.ss)(a),parseQuestion:a=>(0,d.ek)(a),encodeVerdict:m,prepareLaunch:({target:a,executablePath:b})=>{let c=(0,g.D2)(b,{worktreeId:a.worktreeId,instanceId:a.instanceId,cliToolId:a.cliToolId}),d=(0,g.q)()&&c!==b?(0,g.iR)({worktreeId:a.worktreeId,instanceId:a.instanceId,cliToolId:a.cliToolId}):null;return{command:c,settingsPath:d,env:{}}}});var o=c(92196),p=c(21758),q=c(54633);let r={},s=(0,h.UB)({cliToolId:q.V,noDecision:{kind:"proceeds"},capabilities:{supportedEvents:["stop","session_start","session_end","user_prompt_submit","post_tool_use"],configScope:"global-singleton",decisionTimeoutSeconds:p.TV,permissionHookPredictsDialog:!1,sessionStartMayArriveLate:!0,permissionReplyReleasesPrompt:!1,eventIdentity:null,resync:"none"},mappers:(0,i.mJ)(j.WK),nativeEventNameFields:["hook_event_name"],conversationIdFields:j.lb,toolCallIdFields:j.ue,extractDetail:j.Jp,parsePermissionRequest:function(a){if(!(0,i.Qd)(a)||a.hook_event_name!==p.cN)return null;let b=(0,i.O2)(a,"tool_name");if(!b||b.length>e.vy)return null;let c=(0,o.mw)(a.tool_input);return c?{toolName:b,toolInput:c.toolInput,toolInputNormalization:c.normalization,promptId:null,sessionId:(0,i.O2)(a,"session_id"),permissionMode:null,permissionSuggestions:null}:null},parseQuestion:()=>null,encodeVerdict:function(a){return"allowOnce"===a.kind?{hookSpecificOutput:{hookEventName:p.cN,permissionDecision:"allow"}}:"deny"===a.kind?{hookSpecificOutput:{hookEventName:p.cN,permissionDecision:"deny",permissionDecisionReason:a.message??"denied by CommandMate"}}:r},prepareLaunch:({target:a,executablePath:b})=>(0,p.Rv)(b,a)});var t=c(15194);let u={ToolPermission:"permission_prompt"};var v=c(33873),w=c(72626),x=c(45567),y=c(29021),z=c(7956);function A(a){if(!(0,y.existsSync)(a))return null;try{let b=JSON.parse((0,y.readFileSync)(a,"utf8"));return(0,i.Qd)(b)?b:null}catch{return null}}function B(a,b){if((0,z.Mb)(a))throw Error(`Refusing to write inside a virtual filesystem: ${a} (a recursive mkdir under /proc, /sys or /dev never returns on Linux; Issue #1774)`);(0,y.mkdirSync)((0,v.dirname)(a),{recursive:!0,mode:448}),(0,y.writeFileSync)(a,`${JSON.stringify(b,null,2)}
|
|
4
|
+
`,{mode:384})}var C=c(77904);let D=(0,w.h)("lib/hooks/sources/gemini/settings-generator"),E=1e3*g.W6,F=[["SessionStart","session_start"],["BeforeAgent","user_prompt_submit"],["AfterAgent","stop"],["Notification","notification"],["SessionEnd","session_end"]];function G(a,b){return a.includes("cmate-agent-event.sh")&&a.includes(`--tool ${C.o}`)&&a.includes(`--worktree-id ${(0,g.ZL)(b)}`)}let H=(0,h.UB)({cliToolId:C.o,noDecision:{kind:"proceeds"},capabilities:{supportedEvents:["session_start","user_prompt_submit","stop","notification","session_end"],configScope:"per-worktree",decisionTimeoutSeconds:0,permissionHookPredictsDialog:!1,sessionStartMayArriveLate:!1,permissionReplyReleasesPrompt:!1,eventIdentity:null,resync:"none"},mappers:(0,i.mJ)({SessionStart:"session_start",SessionEnd:"session_end",BeforeAgent:"user_prompt_submit",AfterAgent:"stop",BeforeTool:"pre_tool_use",AfterTool:"post_tool_use",Notification:"notification"}),nativeEventNameFields:["hook_event_name"],conversationIdFields:j.lb,toolCallIdFields:[],extractDetail:function(a,b){if("notification"!==a)return(0,j.Jp)(a,b);let c=(0,i.O2)(b,"notification_type");return null===c?null:(0,i.Wv)(u[c]??c)},parsePermissionRequest:()=>null,parseQuestion:()=>null,encodeVerdict:()=>({}),prepareLaunch:function({target:a,executablePath:b,worktreePath:c}){let d={worktreeId:a.worktreeId,instanceId:a.instanceId,cliToolId:C.o},e=(0,t.n6)(a.instanceId??C.o)?function(a,b){if(!(0,g.q)())return null;let c=(0,g.Os)();if(!c)return D.warn("gemini-hook-relay-missing",{worktreeId:b.worktreeId}),null;let d=(0,v.join)(a,".gemini","settings.json");try{let a=A(d),e=function(a,b){let c={};for(let[e,f]of F){var d;c[e]=[{hooks:[{type:"command",command:(d=b.worktreeId,[(0,g.ZL)(a),"--tool",C.o,"--event",f,"--worktree-id",(0,g.ZL)(d),"--stdin-json"].join(" ")),timeout:E}]}]}return c}(c,b);return B(d,function(a,b,c){let d=(0,i.Qd)(a?.hooks)?a.hooks:{},e={};for(let[a,b]of Object.entries(d)){if(!Array.isArray(b)){e[a]=b;continue}let d=b.filter(a=>!function(a,b){if(!(0,i.Qd)(a))return!1;let c=a.hooks;return Array.isArray(c)?c.length>0&&c.every(a=>(0,i.Qd)(a)&&"string"==typeof a.command&&G(a.command,b)):"string"==typeof a.command&&G(a.command,b)}(a,c));e[a]=d.length===b.length?b:d}for(let[a,c]of Object.entries(b)){let b=e[a];e[a]=Array.isArray(b)?[...b,...c]:[...c]}return{...a,hooks:e}}(a,e,b.worktreeId)),d}catch(a){return D.warn("gemini-hook-settings-write-failed",{worktreeId:b.worktreeId,error:a instanceof Error?a.message:String(a)}),null}}(c,d):null,{command:f,env:h}=function(a,b,c={}){if(!(0,g.q)())return{command:a,env:{}};if(!(0,t.n6)((0,g.g5)(b)))return D.warn("gemini-hook-invalid-instance-id",{worktreeId:b.worktreeId}),{command:a,env:{}};let d=(0,g.xM)({...b,cliToolId:C.o},c);return{command:(0,g.ZL)(a),env:{[x.ZM]:d}}}(b,d);return{command:f,settingsPath:e,env:h}}});var I=c(21820),J=c(76835);let K=(0,w.h)("lib/hooks/sources/antigravity/hooks-config"),L=[["SessionStart","session_start"],["PostToolUse","post_tool_use"],["Stop","stop"]],M="CM_PERMISSION_HOOK_URL",N=g.sI,O=new Set(["PreToolUse","PostToolUse"]),P={decision:"ask"},Q=(0,h.UB)({cliToolId:J.F,noDecision:{kind:"proceeds"},capabilities:{supportedEvents:["session_start","post_tool_use","stop"],configScope:"global-singleton",decisionTimeoutSeconds:N,permissionHookPredictsDialog:!1,sessionStartMayArriveLate:!1,permissionReplyReleasesPrompt:!1,eventIdentity:null,resync:"none"},mappers:[],nativeEventNameFields:[],conversationIdFields:["conversationId"],toolCallIdFields:[],modelFields:["modelName"],extractDetail:(a,b)=>"pre_tool_use"===a||"post_tool_use"===a?(0,i.Wv)((0,i.NZ)(b,["toolCall","name"])):null,parsePermissionRequest:function(a){if(!(0,i.Qd)(a))return null;let b=a.toolCall;if(!(0,i.Qd)(b))return null;let c=(0,i.O2)(b,"name");return c&&!(c.length>e.vy)&&(0,i.Qd)(b.args)?{toolName:c,toolInput:b.args,promptId:null,sessionId:(0,i.O2)(a,"conversationId"),permissionMode:null,permissionSuggestions:null}:null},parseQuestion:()=>null,encodeVerdict:function(a){return"allowOnce"===a.kind?{decision:"allow"}:"deny"===a.kind?{decision:"deny",reason:a.message??""}:{...P}},prepareLaunch:({target:a,executablePath:b})=>{let c=function(a={}){if(!(0,g.q)())return null;let b=(0,g.Os)();if(!b)return K.warn("antigravity-hook-relay-missing"),null;let c=function(a={}){return a.path??(0,v.join)((0,I.homedir)(),".gemini","config","hooks.json")}(a);try{var d;let a=A(c);return B(c,(d=function(a){let b={};for(let[c,d]of L){let e={type:"command",command:[(0,g.ZL)(a),"--tool",J.F,"--event",d,"--stdin-json"].join(" "),timeout:g.W6};b[c]=O.has(c)?[{matcher:"*",hooks:[e]}]:[e]}return b.PreToolUse=[{matcher:"*",hooks:[{type:"command",command:function(){let a=`"$${M}"`,b=`printf '%s' ${(0,g.ZL)('{"decision":"ask"}')}`;return`if [ -z "\${${M}:-}" ]; then cat >/dev/null; ${b}; exit 0; fi; set -- -sS -f -m 4 -X POST -H 'Content-Type: application/json'; if [ -n "\${${g.XE}:-}" ]; then set -- "$@" -H "Authorization: Bearer $${g.XE}"; fi; out=$(curl "$@" --data-binary @- ${a} 2>/dev/null); case "$out" in '{'*'"decision"'*) printf '%s' "$out" ;; *) ${b} ;; esac`}(),timeout:g.sI}]}],b}(b),{...a,commandmate:d})),c}catch(a){return K.warn("antigravity-hooks-config-write-failed",{error:a instanceof Error?a.message:String(a)}),null}}(),{command:d,env:e}=function(a,b,c={}){if(!(0,g.q)())return{command:a,env:{}};if(!(0,t.n6)((0,g.g5)(b)))return K.warn("antigravity-hook-invalid-instance-id",{worktreeId:b.worktreeId}),{command:a,env:{}};let d={...b,cliToolId:J.F};return{command:(0,g.ZL)(a),env:{[x.ZM]:(0,g.xM)(d,c),[M]:(0,g.O$)(d,c)}}}(b,{worktreeId:a.worktreeId,instanceId:a.instanceId,cliToolId:J.F});return{command:d,settingsPath:c,env:e}}});var R=c(8004),S=c(87447),T=c(66007),U=c(2734);let V=(0,w.h)("lib/hooks/sources/codex/hooks-config"),W="127.0.0.1",X="commandmate:agent-hooks",Y="CODEX_HOME",Z="CM_AGENT_WORKTREE_ID",$="CM_AGENT_INSTANCE_ID",_="CM_HOOK_URL",aa="CM_PERMISSION_HOOK_URL",ab={SessionStart:"session_start",UserPromptSubmit:"user_prompt_submit",Stop:"stop",SessionEnd:"session_end"},ac="PermissionRequest",ad=Object.values(ab);function ae(a={}){let b=(0,v.join)((0,I.homedir)(),".codex");return a.codexHome?(0,R.T)(a.codexHome,b,"CodexHookOptions.codexHome"):(0,R.T)(process.env[Y],b,Y)}function af(a,b){return`http://${W}:\${CM_PORT:-3000}${a}${b}`}let ag={},ah=(0,h.UB)({cliToolId:U.c,noDecision:{kind:"proceeds"},capabilities:{supportedEvents:ad,configScope:"global-singleton",decisionTimeoutSeconds:5,permissionHookPredictsDialog:!0,sessionStartMayArriveLate:!1,permissionReplyReleasesPrompt:!1,eventIdentity:null,resync:"none"},mappers:(0,i.mJ)(j.WK),nativeEventNameFields:["hook_event_name"],conversationIdFields:j.lb,toolCallIdFields:j.ue,modelFields:["model"],extractDetail:j.Jp,parsePermissionRequest:a=>(0,e.ss)(a),parseQuestion:()=>null,encodeVerdict:function(a){return"allowOnce"===a.kind?{hookSpecificOutput:{hookEventName:ac,decision:{behavior:"allow"}}}:"deny"===a.kind?{hookSpecificOutput:{hookEventName:ac,decision:{behavior:"deny",message:a.message??""}}}:ag},prepareLaunch:({target:a,executablePath:b})=>(function(a,b,c={}){let d={command:a,settingsPath:null,env:{}};if(!(0,g.q)())return d;let e=b.instanceId??U.c;if(!(0,T.h6)(b.worktreeId)||!(0,t.n6)(e))return V.warn("codex-hooks-invalid-correlation-key",{worktreeId:b.worktreeId}),d;try{let f=function(a={}){let b=function(a={}){return(0,v.join)(ae(a),"hooks.json")}(a),c=null,d=null;if((0,y.existsSync)(b))try{d=(0,y.readFileSync)(b,"utf8"),c=JSON.parse(d)}catch(a){return V.warn("codex-hooks-config-unreadable",{settingsPath:b,error:a instanceof Error?a.message:String(a)}),null}let e=`${JSON.stringify(function(a,b){let c=(0,i.Qd)(a)?{...a}:{},d=(0,i.Qd)(c.hooks)?c.hooks:{},e={};for(let[a,b]of Object.entries(d))e[a]=Array.isArray(b)?b.map(a=>{if(!(0,i.Qd)(a)||!Array.isArray(a.hooks))return a;let b=a.hooks.filter(a=>!((0,i.Qd)(a)&&"string"==typeof a.command&&a.command.includes(X)));return b.length===a.hooks.length?a:{...a,hooks:b}}).filter(a=>!((0,i.Qd)(a)&&Array.isArray(a.hooks))||a.hooks.length>0):b;for(let[a,c]of Object.entries(b.hooks)){let b=e[a];(void 0===b||Array.isArray(b))&&(e[a]=[...b??[],...c])}return c.hooks=e,c}(c,function(a={}){let b=(b,c)=>({hooks:[{type:"command",command:function(a,b={}){let c=` # ${X}`,d=void 0===b.relayScriptPath?(0,g.Os)():b.relayScriptPath;if(d)return[(0,g.ZL)(d),"--tool",U.c,"--event",a,"--worktree-id",`"$${Z}"`,"--instance-id",`"$${$}"`,"--stdin-json"].join(" ")+c;let e=b.withAuthHeader??(0,g.yc)()?` -H "Authorization: Bearer $${g.XE}"`:"",f=`"\${${_}:-${af(g.jx,"")}}?tool=${U.c}\${${Z}:+&worktreeId=$${Z}}\${${$}:+&instanceId=$${$}}"`;return`curl -sS -f -m ${g.W6} -X POST -H 'Content-Type: application/json'${e} --data-binary @- ${f} >/dev/null 2>&1 || true${c}`}(b,a),timeout:c}]}),c={};for(let[a,d]of Object.entries(ab)){let e="SessionEnd"===a?3:g.W6;c[a]=[b(d,e)]}return c[ac]=[{hooks:[{type:"command",command:function(a={}){let b=a.withAuthHeader??(0,g.yc)()?` -H "Authorization: Bearer $${g.XE}"`:"",c=`"\${${aa}:-${af(g.WZ,`?tool=${U.c}`)}}"`;return`curl -sS -f -m ${g.sI} -X POST -H 'Content-Type: application/json'${b} --data-binary @- ${c} 2>/dev/null || true # ${X}`}(a),timeout:g.sI}]}],{hooks:c}}(a)),null,2)}
|
|
5
|
+
`;return d===e||((0,y.mkdirSync)((0,v.dirname)(b),{recursive:!0,mode:448}),(0,y.writeFileSync)(b,e,{mode:384})),b}(c);if(!f)return d;let h=c.port??(0,S.D0)(),j=new URLSearchParams({tool:U.c,worktreeId:b.worktreeId,instanceId:e}),k={[Y]:ae(c),CM_AGENT_TOOL:U.c,[Z]:b.worktreeId,[$]:e,[_]:`http://${W}:${h}${g.jx}`,[aa]:`http://${W}:${h}${g.WZ}?${j.toString()}`},l="bypass"===process.env.CM_CODEX_HOOK_TRUST?" --dangerously-bypass-hook-trust":"";return{command:`${(0,g.ZL)(a)}${l}`,settingsPath:f,env:k}}catch(a){return V.warn("codex-hooks-config-write-failed",{worktreeId:b.worktreeId,error:a instanceof Error?a.message:String(a)}),d}})(b,a)});var ai=c(85965);let aj=globalThis.__agentEventSources??=new Map,ak=globalThis.__agentEventLegacySources??=new Map;function al(a){aj.set(a.cliToolId,a),ak.delete(a.cliToolId)}function am(a){let b=aj.get(a);if(b)return b;let c=ak.get(a);if(c)return c;let f=(0,h.UB)({cliToolId:a,noDecision:{kind:"proceeds"},capabilities:{supportedEvents:[],configScope:"none",decisionTimeoutSeconds:null,permissionHookPredictsDialog:!1,sessionStartMayArriveLate:!1,permissionReplyReleasesPrompt:!1,eventIdentity:null,resync:"none"},mappers:(0,i.mJ)(j.WK),nativeEventNameFields:["hook_event_name"],conversationIdFields:j.lb,toolCallIdFields:j.ue,extractDetail:j.Jp,parsePermissionRequest:a=>(0,e.ss)(a),parseQuestion:a=>(0,d.ek)(a),encodeVerdict:m,prepareLaunch:({executablePath:a})=>({command:a,settingsPath:null,env:{}})});return ak.set(a,f),f}al(n),al(s),al(H),al(Q),al(ah),al(ai.cC)}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";exports.id=9328,exports.ids=[9328],exports.modules={49328:a=>{a.exports=JSON.parse('{"page":{"title":"レビュー","description":"対応が必要な worktree。"},"tabs":{"review":"レビュー","report":"レポート","template":"テンプレート"},"status":{"inReview":"レビュー中","approval":"承認待ち","stalled":"停滞"},"filters":{"ariaLabel":"レビューフィルター","loading":"レビューを読み込み中"},"empty":{"inReview":"レビュー中のワークツリーはありません。","approval":"承認待ちのワークツリーはありません。","stalled":"停滞しているワークツリーはありません。"},"datePicker":{"previousDay":"前日","nextDay":"翌日"},"report":{"regenerateConfirm":"この日付のレポートは既に存在します。再生成して上書きしますか?","toolLabel":"ツール:","modelPlaceholder":"モデル(任意)","generationMode":"生成モード","modes":{"none":"指示なし","template":"テンプレート","custom":"カスタム"},"selectTemplate":"テンプレートを選択","loadingTemplates":"テンプレートを読み込み中","noTemplates":"利用できるテンプレートがありません。Template タブで作成してください。","templatePlaceholderOption":"-- テンプレートを選択 --","instructionPlaceholderTemplate":"上でテンプレートを選択するとこの欄に反映されます","instructionPlaceholderCustom":"サマリー生成への追加指示","generate":"サマリーを生成","generating":"生成中...","noMessages":"この日付のメッセージはありません。","messagesFound":"この日付のメッセージが{count}件見つかりました。","generatingRemote":"レポートを生成中...(ツール: {tool})","generatingRemoteWithTime":"レポートを生成中...(ツール: {tool}、開始: {seconds}秒前)","generatingSummary":"サマリーを生成中...","generatedBy":"生成ツール: {tool}","copy":"コピー","copied":"コピーしました!","edit":"編集","save":"保存","saving":"保存中...","errors":{"fetch":"レポートの取得に失敗しました","rateLimited":"別のサマリーを生成中です。しばらくお待ちください。","generate":"サマリーの生成に失敗しました","emptyContent":"内容を入力してください","save":"レポートの保存に失敗しました"}},"template":{"deleteConfirm":"このテンプレートを削除しますか?","heading":"テンプレート({count}/{max})","loading":"テンプレートを読み込み中","empty":"テンプレートはまだありません。","edit":"編集","delete":"削除","save":"保存","saving":"保存中...","cancel":"キャンセル","newHeading":"新規テンプレート","namePlaceholder":"テンプレート名","contentPlaceholder":"テンプレート本文(レポート生成への指示)","create":"テンプレートを作成","creating":"作成中...","errors":{"fetch":"テンプレートの取得に失敗しました","nameAndContentRequired":"名前と本文は必須です","create":"テンプレートの作成に失敗しました","update":"テンプレートの更新に失敗しました","delete":"テンプレートの削除に失敗しました"}}}')}};
|
|
1
|
+
"use strict";exports.id=9328,exports.ids=[9328],exports.modules={49328:a=>{a.exports=JSON.parse('{"page":{"title":"レビュー","description":"対応が必要な worktree。"},"tabs":{"review":"レビュー","report":"レポート","template":"テンプレート"},"status":{"inReview":"レビュー中","approval":"承認待ち","stalled":"停滞"},"filters":{"ariaLabel":"レビューフィルター","loading":"レビューを読み込み中"},"empty":{"inReview":"レビュー中のワークツリーはありません。","approval":"承認待ちのワークツリーはありません。","stalled":"停滞しているワークツリーはありません。"},"datePicker":{"previousDay":"前日","nextDay":"翌日"},"report":{"regenerateConfirm":"この日付のレポートは既に存在します。再生成して上書きしますか?","toolLabel":"ツール:","modelPlaceholder":"モデル(任意)","modelPlaceholderOpencode":"provider/model(任意)","generationMode":"生成モード","modes":{"none":"指示なし","template":"テンプレート","custom":"カスタム"},"selectTemplate":"テンプレートを選択","loadingTemplates":"テンプレートを読み込み中","noTemplates":"利用できるテンプレートがありません。Template タブで作成してください。","templatePlaceholderOption":"-- テンプレートを選択 --","instructionPlaceholderTemplate":"上でテンプレートを選択するとこの欄に反映されます","instructionPlaceholderCustom":"サマリー生成への追加指示","generate":"サマリーを生成","generating":"生成中...","noMessages":"この日付のメッセージはありません。","messagesFound":"この日付のメッセージが{count}件見つかりました。","generatingRemote":"レポートを生成中...(ツール: {tool})","generatingRemoteWithTime":"レポートを生成中...(ツール: {tool}、開始: {seconds}秒前)","generatingSummary":"サマリーを生成中...","generatedBy":"生成ツール: {tool}","copy":"コピー","copied":"コピーしました!","edit":"編集","save":"保存","saving":"保存中...","errors":{"fetch":"レポートの取得に失敗しました","rateLimited":"別のサマリーを生成中です。しばらくお待ちください。","generate":"サマリーの生成に失敗しました","emptyContent":"内容を入力してください","save":"レポートの保存に失敗しました"}},"template":{"deleteConfirm":"このテンプレートを削除しますか?","heading":"テンプレート({count}/{max})","loading":"テンプレートを読み込み中","empty":"テンプレートはまだありません。","edit":"編集","delete":"削除","save":"保存","saving":"保存中...","cancel":"キャンセル","newHeading":"新規テンプレート","namePlaceholder":"テンプレート名","contentPlaceholder":"テンプレート本文(レポート生成への指示)","create":"テンプレートを作成","creating":"作成中...","errors":{"fetch":"テンプレートの取得に失敗しました","nameAndContentRequired":"名前と本文は必須です","create":"テンプレートの作成に失敗しました","update":"テンプレートの更新に失敗しました","delete":"テンプレートの削除に失敗しました"}}}')}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";exports.id=9358,exports.ids=[9358],exports.modules={49358:a=>{a.exports=JSON.parse('{"title":"Notifications","description":"Get a push notification when something needs you — a prompt, a failed verification, an upstream API fault, or a session that could not start — even when the app is closed. Completions are optional.","enable":"Enable notifications","enabling":"Enabling…","enabledOnThisDevice":"Notifications are enabled on this device.","unsubscribe":"Unsubscribe this device","types":{"heading":"Notify me about","promptWaiting":"When you need to act","promptWaitingDesc":"A prompt waiting for you, a failed verification gate, an upstream API fault, or a session that could not start. Nothing moves until you do","completion":"Also tell me about completions (optional)","completionDesc":"Ordinary completions that need nothing from you. Off by default on newly registered devices (change it for this device here)"},"permission":{"denied":"Notifications are blocked in your browser settings. Allow them for this site to receive push notifications."},"unsupported":"This browser does not support push notifications.","notConfigured":"Push notifications are not configured on this server. Set the VAPID keys to enable them.","ios":{"guidance":"On iPhone/iPad, add this app to your Home Screen and open it from there to enable notifications."},"toast":{"enabled":"Notifications enabled on this device","disabled":"Notifications turned off on this device","error":"Could not enable notifications","updated":"Notification settings updated"},"push":{"promptWaitingWithExcerpt":"Waiting for reply: {excerpt}","promptWaiting":"Waiting for your reply","completionWithExcerpt":"Done: {excerpt}","completion":"Session complete","terminalAttentionWithExcerpt":"Needs attention in the terminal: {excerpt}","terminalAttention":"Needs attention in the terminal","stillWaitingPrompt":"Still waiting for your reply ({minutes} min)","stillWaitingTerminal":"Still needs attention in the terminal ({minutes} min)","failureVerificationWithExcerpt":"Verification failed: {excerpt}","failureVerification":"Verification failed","failureUpstreamWithExcerpt":"Stalled by an upstream API fault: {excerpt}","failureUpstream":"Stalled by an upstream API fault","failureSessionStartWithExcerpt":"Could not start the session: {excerpt}","failureSessionStart":"Could not start the session","failureSessionUnavailableWithExcerpt":"Could not start the session: {excerpt} is not installed","failureSessionUnavailable":"Could not start the session: the CLI tool is not installed","failureWithExcerpt":"Failed: {excerpt}","failure":"Failed","promptResolved":"Handled — answered on another device"},"escalation":{"heading":"Reminder","toggle":"Remind me if still waiting","toggleDesc":"Send one more notification when an agent has been waiting this long. Applies to every device.","threshold":"Remind after","minutes":"{count} min"},"inApp":{"heading":"In-app notifications","waitingToggle":"Waiting toast","waitingToggleDesc":"Show a toast when another worktree starts waiting for you","waitingToast":"{name} is waiting for your input","soundToggle":"Waiting sound","soundToggleDesc":"Play a short chime when a worktree starts waiting for you. Takes effect after you click or press a key on the page."}}')}};
|
|
1
|
+
"use strict";exports.id=9358,exports.ids=[9358],exports.modules={49358:a=>{a.exports=JSON.parse('{"title":"Notifications","description":"Get a push notification when something needs you — a prompt, a failed verification, an upstream API fault, or a session that could not start — even when the app is closed. Completions are optional.","enable":"Enable notifications","enabling":"Enabling…","enabledOnThisDevice":"Notifications are enabled on this device.","unsubscribe":"Unsubscribe this device","types":{"heading":"Notify me about","promptWaiting":"When you need to act","promptWaitingDesc":"A prompt waiting for you, a failed verification gate, an upstream API fault, or a session that could not start. Nothing moves until you do","completion":"Also tell me about completions (optional)","completionDesc":"Ordinary completions that need nothing from you. Off by default on newly registered devices (change it for this device here)"},"defaultsNotice":{"heading":"What changed in notifications","completionChanged":"Ordinary completions that need nothing from you are now off by default on newly registered devices. This device is still on, so they keep arriving.","failuresAdded":"\\"When you need to act\\" now also covers a failed verification gate, an upstream API fault, and a session that could not start. This device receives those too.","adopt":"Use the new default (turn completions off)","keep":"Keep this device as it is","adopted":"Completions turned off on this device","kept":"Left this device\'s settings unchanged"},"permission":{"denied":"Notifications are blocked in your browser settings. Allow them for this site to receive push notifications."},"delivery":{"headingFailing":"This device is not receiving notifications","headingRemoved":"This device was dropped by the push service","failing":"The push service has rejected the last {count} notification(s) for this device (HTTP {status}). Your subscription is intact — nothing was deleted.","failingUnknownStatus":"The push service has rejected the last {count} notification(s) for this device. Your subscription is intact — nothing was deleted.","removed":"The push service reported this subscription as gone (HTTP {status}), so the server stopped sending to it. Turn notifications on again below to re-subscribe.","removedUnknownStatus":"The push service reported this subscription as gone, so the server stopped sending to it. Turn notifications on again below to re-subscribe.","apnsHint":"On iPhone/iPad an HTTP 403 usually means the server\'s CM_VAPID_SUBJECT is not a contact Apple accepts. See docs/user-guide/webapp-guide.md.","since":"First failure: {timestamp}"},"unsupported":"This browser does not support push notifications.","notConfigured":"Push notifications are not configured on this server. Set the VAPID keys to enable them.","ios":{"guidance":"On iPhone/iPad, add this app to your Home Screen and open it from there to enable notifications."},"toast":{"enabled":"Notifications enabled on this device","disabled":"Notifications turned off on this device","error":"Could not enable notifications","updated":"Notification settings updated"},"push":{"promptWaitingWithExcerpt":"Waiting for reply: {excerpt}","promptWaiting":"Waiting for your reply","completionWithExcerpt":"Done: {excerpt}","completion":"Session complete","terminalAttentionWithExcerpt":"Needs attention in the terminal: {excerpt}","terminalAttention":"Needs attention in the terminal","stillWaitingPrompt":"Still waiting for your reply ({minutes} min)","stillWaitingTerminal":"Still needs attention in the terminal ({minutes} min)","failureVerificationWithExcerpt":"Verification failed: {excerpt}","failureVerification":"Verification failed","failureUpstreamWithExcerpt":"Stalled by an upstream API fault: {excerpt}","failureUpstream":"Stalled by an upstream API fault","failureSessionStartWithExcerpt":"Could not start the session: {excerpt}","failureSessionStart":"Could not start the session","failureSessionUnavailableWithExcerpt":"Could not start the session: {excerpt} is not installed","failureSessionUnavailable":"Could not start the session: the CLI tool is not installed","failureWithExcerpt":"Failed: {excerpt}","failure":"Failed","failureAgentSessionWithExcerpt":"The agent stopped with an error: {excerpt}","failureAgentSession":"The agent stopped with an error","promptResolved":"Handled — answered on another device","updateAvailable":"An update for {agent} is available: {version}"},"escalation":{"heading":"Reminder","toggle":"Remind me if still waiting","toggleDesc":"Send one more notification when an agent has been waiting this long. Applies to every device.","threshold":"Remind after","minutes":"{count} min"},"inApp":{"heading":"In-app notifications","waitingToggle":"Waiting toast","waitingToggleDesc":"Show a toast when another worktree starts waiting for you","waitingToast":"{name} is waiting for your input","soundToggle":"Waiting sound","soundToggleDesc":"Play a short chime when a worktree starts waiting for you. Takes effect after you click or press a key on the page."}}')}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";exports.id=9508,exports.ids=[9508],exports.modules={99508:(a,b,c)=>{c.r(b),c.d(b,{INTERACTION_SNAPSHOT_RETRY_DELAYS_MS:()=>l,__resetTerminalBroadcastState:()=>s,broadcastSessionStatus:()=>r,broadcastTerminalSnapshot:()=>m,broadcastTerminalSnapshotAfterInteraction:()=>q});var d=c(95620),e=c(88807),f=c(
|
|
1
|
+
"use strict";exports.id=9508,exports.ids=[9508],exports.modules={99508:(a,b,c)=>{c.r(b),c.d(b,{INTERACTION_SNAPSHOT_RETRY_DELAYS_MS:()=>l,__resetTerminalBroadcastState:()=>s,broadcastSessionStatus:()=>r,broadcastTerminalSnapshot:()=>m,broadcastTerminalSnapshotAfterInteraction:()=>q});var d=c(95620),e=c(88807),f=c(1058),g=c(72626),h=c(59701),i=c(93997);let j=(0,g.h)("terminal-broadcast"),k=new Map,l=[100,250,500,750];async function m(a,b,c){if((0,d.hasRoomSubscribers)(a))try{let d=(0,e.getDbInstance)(),g=await (0,f.$)(d,a,b,c);p(a,b,g,c)}catch(b){j.error("terminal-snapshot:failed",{worktreeId:a,error:b instanceof Error?b.message:String(b)})}}function n(a){return JSON.stringify([a.fullOutput??"",a.isRunning,a.thinking??!1,a.isPromptWaiting??!1,a.isSelectionListActive??!1,a.isPagerActive??!1,a.isUnclassifiedActive??!1])}async function o(a,b,c){let d=h.CLIToolManager.getInstance().getTool(b);return(0,i.gm)(d.getSessionName(a,c)),(0,f.$)((0,e.getDbInstance)(),a,b,c)}function p(a,b,c,e){let f=e??b,g=`${a}:${b}:${f}`;(0,d.broadcast)(a,{type:"terminal_snapshot",worktreeId:a,cliToolId:b,instanceId:f,output:c.fullOutput??"",isRunning:c.isRunning,thinking:c.thinking??!1,isPromptWaiting:c.isPromptWaiting??!1,promptData:c.promptData??null,isSelectionListActive:c.isSelectionListActive??!1,isPagerActive:c.isPagerActive??!1,isUnclassifiedActive:c.isUnclassifiedActive??!1,version:function(a){let b=(k.get(a)??0)+1;return k.set(a,b),b}(g)})}async function q(a,b,c,e=l){if((0,d.hasRoomSubscribers)(a))try{let d=await o(a,b,c),f=n(d);for(let g of(p(a,b,d,c),e)){await new Promise(a=>setTimeout(a,g));let d=await o(a,b,c);if(n(d)!==f)return void p(a,b,d,c)}}catch(d){j.error("terminal-snapshot:interaction-refresh-failed",{worktreeId:a,cliToolId:b,instanceId:c,error:d instanceof Error?d.message:String(d)})}}function r(a,b,c){(0,d.broadcast)(a,{type:"session_status_changed",worktreeId:a,isRunning:b,cliTool:c?.cliTool??null,instance:c?.instance??null})}function s(){k.clear()}}};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";exports.id=9584,exports.ids=[9584],exports.modules={4548:(a,b,c)=>{c.d(b,{TW:()=>i,uu:()=>o}),c(55511);var d=c(29021);c(33873),c(7956);var e=c(75359),f=c(93356),g=c(55927),h=c(44440);d.constants.O_NOFOLLOW;let i=[".bash",".bat",".cjs",".cmd",".fish",".js",".lua",".mjs",".php",".pl",".ps1",".py",".rb",".sh",".ts",".zsh"],j=[".md",".markdown",".rst",".txt"];function k(a){let b=a.slice(a.lastIndexOf("/")+1),c=b.lastIndexOf(".");return c<=0?"":b.slice(c).toLowerCase()}function l(a,b){return!!i.includes(k(a))||b.length>=2&&35===b[0]&&33===b[1]}function m(a,b){throw new g.Om(a,b)}function n(a,b){return a.files.find(a=>a.path===b)}function o(a,b){return function(a,b){let c;for(let b of e.wD)n(a,b)||m(g.xC.LAYOUT_INVALID,{reason:"missing-required-entry",entry:b});let d=function(a){let b,c=n(a,e.KH);for(let b of(c||m(g.xC.MANIFEST_MISSING,{reason:"absent"}),a.files))b.path!==e.KH&&b.path.endsWith(`/${e.KH}`)&&m(g.xC.LAYOUT_INVALID,{reason:"nested-manifest",entry:(0,g.FC)(b.path)});try{b=(0,h.an)(c.bytes)}catch(a){throw(0,h.pg)(a)&&m(g.xC.MANIFEST_INVALID,{reason:a.code}),a}let d=(0,e.bX)(b);if(!d.ok){let a=d.errors[0];m(g.xC.MANIFEST_INVALID,{reason:a.code,field:a.path})}return d.value}(a);d.id!==b.skillId&&m(g.xC.MANIFEST_MISMATCH,{reason:"id"}),d.version!==b.version&&m(g.xC.MANIFEST_MISMATCH,{reason:"version"});let i=n(a,e.Wr);i||m(g.xC.SKILL_MD_INVALID,{reason:"absent"});try{c=(0,h.pM)(Buffer.from(i.bytes).toString("utf8"))}catch(a){throw(0,h.pg)(a)&&m(g.xC.SKILL_MD_INVALID,{reason:a.code}),a}(null===c||"object"!=typeof c||Array.isArray(c))&&m(g.xC.SKILL_MD_INVALID,{reason:"frontmatter-missing"});let o=c.name;"string"!=typeof o&&m(g.xC.SKILL_MD_INVALID,{reason:"frontmatter-name-missing"});let p=(0,e.EU)({directoryName:d.id,skillMdName:o,manifestId:d.id,manifestName:d.name});p.ok||m(g.xC.SKILL_MD_INVALID,{reason:p.errors[0].code});let q=(0,e.Yz)(d,a.files.map(a=>a.path));if(!q.ok){let a=q.errors[0];m(g.xC.MANIFEST_MISMATCH,{reason:a.message,entry:(0,g.FC)(String(a.detail?.path??""))})}for(let b of a.files)b.path!==e.KH&&function(a,b){var c,d;let h=b.files.find(b=>b.path===a.path);h||m(g.xC.MANIFEST_MISMATCH,{reason:"undeclared-file",entry:(0,g.FC)(a.path)});let i={entry:(0,g.FC)(a.path)};h.size!==a.size&&m(g.xC.SIZE_MISMATCH,i),(0,f.U2)(h.sha256,a.sha256)||m(g.xC.DIGEST_MISMATCH,i);let n=(c=a.path,d=a.bytes,c===e.Wr?"skill_md":l(c,d)?"script":j.includes(k(c))?"instruction":"asset");l(a.path,a.bytes)&&(!h.script||"script"!==h.kind)&&m(g.xC.UNDECLARED_SCRIPT,i),"script"!==h.kind||h.script||m(g.xC.MANIFEST_MISMATCH,{...i,reason:"kind-script-not-declared"}),"skill_md"===n!=("skill_md"===h.kind)&&m(g.xC.MANIFEST_MISMATCH,{...i,reason:"kind-mismatch"}),a.executable&&!h.executable&&m(g.xC.UNDECLARED_EXECUTABLE,i),!a.executable&&h.executable&&m(g.xC.MANIFEST_MISMATCH,{...i,reason:"executable-not-present"})}(b,d);let r={executable_paths:d.files.filter(a=>a.executable).map(a=>a.path).sort(),script_paths:d.files.filter(a=>a.script).map(a=>a.path).sort(),network_hosts:[...d.requirements.network_hosts],declared_permissions:[...d.declared_permissions]},s=(0,e.MD)(r),t=new Map(a.files.map(a=>[a.path,a.bytes])),u=a.files.map(a=>({path:a.path,sha256:a.sha256,size:a.size,executable:a.executable})).sort((a,b)=>a.path<b.path?-1:+(a.path>b.path));return Object.freeze({skillId:b.skillId,version:b.version,manifest:d,files:Object.freeze(u),directories:Object.freeze([...a.directories].sort()),inspection:Object.freeze(r),declaredRisk:d.declared_risk,computedRisk:s,effectiveRisk:(0,e.qZ)(d.declared_risk,s),readFile(a){let b=t.get(a);return b||m(g.xC.MANIFEST_MISMATCH,{reason:"unknown-file",entry:(0,g.FC)(a)}),new Uint8Array(b)}})}((0,g.qt)(a,b),b)}},55927:(a,b,c)=>{c.d(b,{FC:()=>l,Om:()=>j,qt:()=>q,uI:()=>k,xC:()=>g});var d=c(74075),e=c(75359),f=c(93356);let g={ARCHIVE_FORMAT:"SKILL_PACKAGE_ARCHIVE_FORMAT",ARCHIVE_TRUNCATED:"SKILL_PACKAGE_ARCHIVE_TRUNCATED",ENTRY_TYPE_FORBIDDEN:"SKILL_PACKAGE_ENTRY_TYPE_FORBIDDEN",ENTRY_PATH_UNSAFE:"SKILL_PACKAGE_ENTRY_PATH_UNSAFE",ENTRY_DUPLICATE:"SKILL_PACKAGE_ENTRY_DUPLICATE",ENTRY_COLLISION:"SKILL_PACKAGE_ENTRY_COLLISION",ENTRY_MODE_FORBIDDEN:"SKILL_PACKAGE_ENTRY_MODE_FORBIDDEN",ENTRY_LIMIT_EXCEEDED:"SKILL_PACKAGE_ENTRY_LIMIT_EXCEEDED",SIZE_LIMIT_EXCEEDED:"SKILL_PACKAGE_SIZE_LIMIT_EXCEEDED",COMPRESSION_RATIO_EXCEEDED:"SKILL_PACKAGE_COMPRESSION_RATIO_EXCEEDED",LAYOUT_INVALID:"SKILL_PACKAGE_LAYOUT_INVALID",MANIFEST_MISSING:"SKILL_PACKAGE_MANIFEST_MISSING",MANIFEST_INVALID:"SKILL_PACKAGE_MANIFEST_INVALID",MANIFEST_MISMATCH:"SKILL_PACKAGE_MANIFEST_MISMATCH",UNDECLARED_EXECUTABLE:"SKILL_PACKAGE_UNDECLARED_EXECUTABLE",UNDECLARED_SCRIPT:"SKILL_PACKAGE_UNDECLARED_SCRIPT",DIGEST_MISMATCH:"SKILL_PACKAGE_DIGEST_MISMATCH",SIZE_MISMATCH:"SKILL_PACKAGE_SIZE_MISMATCH",SKILL_MD_INVALID:"SKILL_PACKAGE_SKILL_MD_INVALID",STAGING_IO:"SKILL_PACKAGE_STAGING_IO",ABORTED:"SKILL_PACKAGE_ABORTED"},h={[g.ARCHIVE_FORMAT]:"archive",[g.ARCHIVE_TRUNCATED]:"archive",[g.ENTRY_TYPE_FORBIDDEN]:"path",[g.ENTRY_PATH_UNSAFE]:"path",[g.ENTRY_DUPLICATE]:"path",[g.ENTRY_COLLISION]:"path",[g.ENTRY_MODE_FORBIDDEN]:"path",[g.ENTRY_LIMIT_EXCEEDED]:"limit",[g.SIZE_LIMIT_EXCEEDED]:"limit",[g.COMPRESSION_RATIO_EXCEEDED]:"limit",[g.LAYOUT_INVALID]:"manifest",[g.MANIFEST_MISSING]:"manifest",[g.MANIFEST_INVALID]:"manifest",[g.MANIFEST_MISMATCH]:"manifest",[g.UNDECLARED_EXECUTABLE]:"manifest",[g.UNDECLARED_SCRIPT]:"manifest",[g.DIGEST_MISMATCH]:"integrity",[g.SIZE_MISMATCH]:"integrity",[g.SKILL_MD_INVALID]:"manifest",[g.STAGING_IO]:"staging",[g.ABORTED]:"staging"},i={[g.ARCHIVE_FORMAT]:"Skill package is not a readable tar.gz archive",[g.ARCHIVE_TRUNCATED]:"Skill package archive is truncated",[g.ENTRY_TYPE_FORBIDDEN]:"Skill package contains a forbidden entry type",[g.ENTRY_PATH_UNSAFE]:"Skill package contains an unsafe entry path",[g.ENTRY_DUPLICATE]:"Skill package declares the same entry twice",[g.ENTRY_COLLISION]:"Skill package contains colliding entry paths",[g.ENTRY_MODE_FORBIDDEN]:"Skill package entry carries forbidden mode bits",[g.ENTRY_LIMIT_EXCEEDED]:"Skill package contains too many entries",[g.SIZE_LIMIT_EXCEEDED]:"Skill package exceeds a size limit",[g.COMPRESSION_RATIO_EXCEEDED]:"Skill package decompression ratio exceeds the limit",[g.LAYOUT_INVALID]:"Skill package layout does not match the contract",[g.MANIFEST_MISSING]:"Skill package manifest is missing or misplaced",[g.MANIFEST_INVALID]:"Skill package manifest is not valid",[g.MANIFEST_MISMATCH]:"Skill package manifest does not match the package",[g.UNDECLARED_EXECUTABLE]:"Skill package contains an undeclared executable",[g.UNDECLARED_SCRIPT]:"Skill package contains an undeclared script",[g.DIGEST_MISMATCH]:"Skill package file digest does not match the manifest",[g.SIZE_MISMATCH]:"Skill package file size does not match the manifest",[g.SKILL_MD_INVALID]:"Skill package SKILL.md is missing or inconsistent",[g.STAGING_IO]:"Skill package staging could not be prepared",[g.ABORTED]:"Skill package processing was aborted"};class j extends Error{constructor(a,b){super(i[a]),this.name="SkillPackageError",this.code=a,this.category=h[a],b&&(this.detail=b)}}function k(a){return a instanceof j}function l(a){let b=a.replace(/[^A-Za-z0-9._/-]/g,a=>[...a].map(a=>`%${a.charCodeAt(0).toString(16).toUpperCase().padStart(2,"0")}`).join(""));return b.length>120?`${b.slice(0,120)}…`:b}function m(a,b){throw new j(a,b)}let n=new Set(["0","\0"]);function o(a,b,c){let d=a.subarray(b,b+c),e=d.indexOf(0);-1===e&&(e=d.length);for(let a=e;a<d.length;a++)0!==d[a]&&m(g.ARCHIVE_FORMAT,{field:"padding"});let f=Buffer.from(d.subarray(0,e)),h=f.toString("utf8");return Buffer.from(h,"utf8").equals(f)||m(g.ARCHIVE_FORMAT,{field:"encoding"}),h}function p(a,b,c){(128&a[b])!=0&&m(g.ARCHIVE_FORMAT,{field:"numeric-encoding"});let d="";for(let e=b;e<b+c;e++){let b=a[e];0!==b&&32!==b&&((b<48||b>55)&&m(g.ARCHIVE_FORMAT,{field:"numeric"}),d+=String.fromCharCode(b))}if(""===d)return 0;let e=parseInt(d,8);return Number.isSafeInteger(e)||m(g.ARCHIVE_FORMAT,{field:"numeric-range"}),e}function q(a,b){let c;(a.byteLength<2||31!==a[0]||139!==a[1])&&m(g.ARCHIVE_FORMAT,{field:"gzip-magic"});try{c=(0,d.gunzipSync)(a,{maxOutputLength:0x4000000})}catch(a){"ERR_BUFFER_TOO_LARGE"===a?.code&&m(g.SIZE_LIMIT_EXCEEDED,{limit:0x4000000}),m(g.ARCHIVE_FORMAT,{field:"gzip"})}c.byteLength>1048576&&c.byteLength/a.byteLength>200&&m(g.COMPRESSION_RATIO_EXCEEDED,{limit:200});let h=(function(a){(0===a.byteLength||a.byteLength%512!=0)&&m(g.ARCHIVE_TRUNCATED,{field:"alignment"});let b=[],c=0;for(;c+512<=a.byteLength;){let d=a.subarray(c,c+512);if(function(a){for(let b=0;b<a.length;b++)if(0!==a[b])return!1;return!0}(d)){for(let b=c;b<a.byteLength;b++)0!==a[b]&&m(g.ARCHIVE_FORMAT,{field:"trailer"});return b}!function(a,b){let c=0,d=0;for(let b=0;b<512;b++){let e=b>=148&&b<156?32:a[b];c+=e,d+=e>127?e-256:e}b!==c&&b!==d&&m(g.ARCHIVE_FORMAT,{field:"checksum"})}(d,p(d,148,8)),"ustar"!==o(d,257,6).trim()&&m(g.ARCHIVE_FORMAT,{field:"magic"});let f=o(d,156,1)||"\0",h="5"===f;h||n.has(f)||m(g.ENTRY_TYPE_FORBIDDEN,{typeflag:l(f)}),""!==o(d,157,100)&&m(g.ENTRY_TYPE_FORBIDDEN,{typeflag:"link"});let i=p(d,100,8);(3584&i)!=0&&m(g.ENTRY_MODE_FORBIDDEN,{bits:(3584&i).toString(8)});let j=o(d,345,155),k=o(d,0,100),q=""===j?k:`${j}/${k}`,r=p(d,124,12);h&&0!==r&&m(g.ARCHIVE_FORMAT,{field:"directory-size"}),r>e.em&&m(g.SIZE_LIMIT_EXCEEDED,{limit:e.em});let s=c+512,t=s+r;t>a.byteLength&&m(g.ARCHIVE_TRUNCATED),b.push({name:q,isDirectory:h,mode:i,size:r,bytes:h?new Uint8Array(0):a.subarray(s,t)}),b.length>1e3&&m(g.ENTRY_LIMIT_EXCEEDED,{limit:1e3}),c=s+512*Math.ceil(r/512)}return m(g.ARCHIVE_TRUNCATED,{field:"trailer"})})(c).map(a=>({entry:a,...function(a){let b=a;b.startsWith("./")&&(b=b.slice(2));let c=b.endsWith("/");return c&&(b=b.slice(0,-1)),""===b&&m(g.ENTRY_PATH_UNSAFE,{reason:"empty"}),{path:b,trailingSlash:c}}(a.name)})),i=function(a,b){let c=[b.skillId,`${b.skillId}-${b.version}`],d=new Set(a.map(a=>a.split("/")[0]));if(1!==d.size)return null;let e=[...d][0];return a.some(a=>a.startsWith(`${e}/`))?(c.includes(e)||m(g.LAYOUT_INVALID,{reason:"root-directory",entry:l(e)}),e):null}(h.map(a=>a.path),b),j=[],k=[],q=new Map,r=new Map,s=0;for(let a of h){let b=a.path;if(null!==i){if(b===i)continue;b=b.slice(i.length+1)}let c=a.entry.isDirectory||a.trailingSlash,d=(0,e.r5)(b,"/entry");d.ok||m(g.ENTRY_PATH_UNSAFE,{entry:l(b),reason:d.errors[0].message}),q.has(b)&&m(g.ENTRY_DUPLICATE,{entry:l(b)});let h=b.split("/").map(a=>(0,e.vy)(a)).join("/");if(void 0!==r.get(h)&&m(g.ENTRY_COLLISION,{entry:l(b)}),q.set(b,c),r.set(h,b),c){k.push(b);continue}(s+=a.entry.size)>0x4000000&&m(g.SIZE_LIMIT_EXCEEDED,{limit:0x4000000});let n=new Uint8Array(a.entry.bytes);j.push({path:b,size:a.entry.size,sha256:(0,f.Q_)(n),executable:(73&a.entry.mode)!=0,bytes:n})}for(let a of(j.filter(a=>a.path!==e.KH).length>e.xP&&m(g.ENTRY_LIMIT_EXCEEDED,{limit:e.xP}),k))j.some(b=>b.path===a)&&m(g.ENTRY_DUPLICATE,{entry:l(a)});for(let a of j){let b=a.path.split("/").slice(0,-1),c="";for(let d of b)c=""===c?d:`${c}/${d}`,j.some(a=>a.path===c)&&m(g.ENTRY_PATH_UNSAFE,{entry:l(a.path),reason:"parent-is-file"})}return{rootName:i,files:j,directories:k,compressedSize:a.byteLength,decompressedSize:c.byteLength}}},56791:(a,b,c)=>{c.r(b),c.d(b,{ACTIVE_FILTER:()=>d.ks,ACTIVE_TASK_STATUSES:()=>d.EL,AgentInstanceLimitError:()=>d.AC,CURRENT_SCHEMA_VERSION:()=>f.FT,DEFAULT_RUN_HISTORY_LIMIT:()=>d.Tu,InvalidAgentInstanceError:()=>d.ug,MAX_DISABLED_REPOSITORIES:()=>h.nc,MAX_RUN_HISTORY_DAYS:()=>d.eP,MAX_RUN_HISTORY_LIMIT:()=>d.mg,MemoDbError:()=>d.lm,NEW_SUBSCRIPTION_DEFAULTS:()=>d.s6,PUSH_DEFAULTS_VERSION:()=>d.VP,RepositoryDbError:()=>h.j8,TASK_STATUSES:()=>d.Hi,TERMINAL_TASK_STATUSES:()=>d.sA,VERIFICATION_GATE_SOURCES:()=>d.Dx,VERIFICATION_TRIGGERS:()=>d.af,WORKTREE_TODO_STATUSES:()=>d.KG,addAgentInstance:()=>d.Uq,archiveAllAssistantMessages:()=>d.cD,archiveAssistantMessagesFrom:()=>d.Jj,cancelTimer:()=>d.Ud,cancelTimersByWorktree:()=>d.$$,cleanupOldTimers:()=>d.ul,clearInProgressMessageId:()=>d.YX,clearLastUserMessage:()=>d.cf,clearTimerHistory:()=>d.jf,closeDbInstance:()=>e.closeDbInstance,countAgentInstances:()=>d.fs,countDisabledRepositories:()=>h.QJ,countPushSubscriptionsForKind:()=>d.rC,countWorktreesByRepositoryPath:()=>h.kp,createAssistantConversation:()=>d.G4,createAssistantExecution:()=>d.hL,createAssistantMessage:()=>d.qp,createCloneJob:()=>h.tw,createGateResult:()=>d.hl,createMemo:()=>d.To,createMessage:()=>d.oH,createRepository:()=>h.vB,createTask:()=>d.UT,createTimer:()=>d.CR,createTodo:()=>d.py,createVerificationRun:()=>d.rY,createWorktreeTodo:()=>d.yy,deleteAllMessages:()=>d.pE,deleteAssistantSessionState:()=>d.z2,deleteMemo:()=>d.cP,deleteMessageById:()=>d.DF,deleteMessagesByCliTool:()=>d.lA,deleteMessagesByInstance:()=>d.Qp,deletePushSubscriptionByEndpoint:()=>d.th,deleteRepository:()=>h.oG,deleteRepositoryWorktrees:()=>d.oZ,deleteSessionState:()=>d.ZP,deleteTodo:()=>d.Ys,deleteWorktreeTodo:()=>d.vg,deleteWorktreesByIds:()=>d.Rm,disableExistingRepository:()=>h.eP,disableRepository:()=>h.l$,ensureEnvRepositoriesRegistered:()=>h.ES,filterExcludedPaths:()=>h.Ho,findMessageByRequestId:()=>d.Ow,finishGateResult:()=>d.C8,finishVerificationRun:()=>d.u$,getActiveCloneJobByUrl:()=>h.fD,getActiveTask:()=>d.__,getActiveTaskForInstance:()=>d.MH,getAgentInstance:()=>d.BN,getAgentInstances:()=>d.m0,getAliasedWorktreeIds:()=>d.r3,getAllPushSubscriptions:()=>d.Se,getAllRepositories:()=>h.Yg,getAllRepositoriesWithWorktreeCount:()=>h._D,getAllTodos:()=>d.Tk,getAllWorktreeAliases:()=>d.fX,getAllWorktreeIds:()=>d.nO,getAllWorktreePathIds:()=>d.Sj,getAssistantConversationById:()=>d.iT,getAssistantConversationByRepositoryAndCliTool:()=>d.gp,getAssistantExecutionById:()=>d.$r,getAssistantMessageById:()=>d.yE,getAssistantMessages:()=>d.BE,getAssistantSessionState:()=>d.qK,getCloneJob:()=>h.bM,getCloneJobsByStatus:()=>h.n_,getCurrentVersion:()=>f.Mj,getDailyReport:()=>d.ap,getDbInstance:()=>e.getDbInstance,getDefaultDbPath:()=>g.$b,getExcludedRepositories:()=>h.lS,getExcludedRepositoryPaths:()=>h.pr,getInitialBranch:()=>d.p4,getIssueDbPath:()=>g.zm,getLastAssistantMessageAt:()=>d.nP,getLastMessage:()=>d.sy,getLastUserMessage:()=>d.r8,getLatestAssistantExecutionByConversation:()=>d.of,getLegacyDbPaths:()=>q,getMemoById:()=>d.DN,getMemosByWorktreeId:()=>d.pZ,getMessageById:()=>d.kA,getMessages:()=>d.VL,getMessagesByDateRange:()=>d.lr,getMigrationHistory:()=>f.PS,getPendingTimerCountByWorktree:()=>d.GF,getPendingTimers:()=>d._O,getPushSubscriptionByEndpoint:()=>d.CF,getPushSubscriptionsForKind:()=>d.gn,getRepositories:()=>d.NV,getRepositoryById:()=>h.r,getRepositoryByNormalizedUrl:()=>h.Uj,getRepositoryByPath:()=>h.Dp,getRunningAssistantExecutionByConversation:()=>d.ce,getRunningVerificationRun:()=>d.WZ,getSessionState:()=>d.y1,getTask:()=>d.gg,getTimerById:()=>d.kx,getTimersByWorktree:()=>d.DP,getTodoById:()=>d.Nr,getTodosByRepositoryId:()=>d.ob,getTodosByWorktreeId:()=>d.fr,getVerificationRun:()=>d.J6,getWorktreeAliases:()=>d.Q2,getWorktreeById:()=>d.Ui,getWorktreeIdsByRepository:()=>d.P9,getWorktreeTodoById:()=>d.eN,getWorktrees:()=>d.vi,getWorktreesByRepository:()=>d.uJ,initDatabase:()=>d.s4,isTerminalTaskStatus:()=>d.uB,isWorktreeTodoStatus:()=>d.yT,listRunningAssistantExecutions:()=>d.b2,listRunningVerificationRuns:()=>d.Fi,listTaskEvents:()=>d.HB,listTasks:()=>d.Vk,listVerificationRuns:()=>d.Mt,listVerificationRunsForPeriod:()=>d.UE,markPendingPromptsAsAnswered:()=>d.PL,migrateDbIfNeeded:()=>r,migrateWorktreeIdPreservingChildren:()=>d._h,pushSubscriptionNeedsDefaultsNotice:()=>d.Zj,recomputeLastUserMessage:()=>d.jp,recordAnsweredPrompt:()=>d.pG,recordWorktreeAlias:()=>d.xJ,recoverStuckSendingTimers:()=>d.Xm,registerAndFilterRepositories:()=>h.$G,removeAgentInstance:()=>d.NU,reorderMemos:()=>d.nQ,reorderWorktreeTodos:()=>d.yb,resolveAndValidatePath:()=>p,resolveRepositoryPath:()=>h.mE,resolveWorktreeIdWithAlias:()=>d.l0,restoreRepository:()=>h.RS,rollbackMigrations:()=>f.Wy,runMigrations:()=>f.vI,saveDailyReport:()=>d.tt,saveInitialBranch:()=>d.GA,setAgentInstances:()=>d.Cs,setInProgressMessageId:()=>d.OF,setRepositoryEnabled:()=>h.iQ,updateAssistantConversation:()=>d.xR,updateAssistantExecution:()=>d.az,updateAssistantMessageStatus:()=>d.nZ,updateAssistantSessionState:()=>d.PP,updateCliToolId:()=>d.WU,updateCloneJob:()=>h.k5,updateDailyReportContent:()=>d.IF,updateFavorite:()=>d.O,updateLastUserMessage:()=>d.EU,updateLastViewedAt:()=>d.HZ,updateMemo:()=>d.UY,updateMessageContent:()=>d.e8,updatePromptData:()=>d.cw,updatePushSubscriptionPreferences:()=>d.jJ,updateRepository:()=>h.Ir,updateSelectedAgents:()=>d.DC,updateSessionState:()=>d.gb,updateStatus:()=>d.yB,updateTimerStatus:()=>d.j2,updateTodo:()=>d.uy,updateVibeLocalContextWindow:()=>d.s,updateVibeLocalModel:()=>d.iu,updateWorktreeDescription:()=>d.hq,updateWorktreeLink:()=>d.z1,updateWorktreeTodo:()=>d.bl,upsertPushSubscription:()=>d.jA,upsertWorktree:()=>d.ZL,validateDbPath:()=>g.Sv,validateRepositoryPath:()=>h.Ux,validateSchema:()=>f.i6});var d=c(90444),e=c(88807),f=c(27727),g=c(20416),h=c(10406),i=c(29021),j=c.n(i),k=c(33873),l=c.n(k),m=c(21820),n=c(7956);let o=(0,c(72626).h)("db-migration-path");function p(a,b){try{if(!j().existsSync(a))return null;let c=j().realpathSync(a);if((0,n.fW)(c))return o.warn(`[Security] ${b} points to system directory, skipping: ${c}`),null;return c}catch{return o.warn(`[Security] Failed to resolve ${b}: ${a}`),null}}function q(){let a=[];a.push(l().join(process.cwd(),"data","db.sqlite")),a.push(l().join(process.cwd(),"data","cm.db")),a.push(l().join((0,m.homedir)(),".commandmate","data","db.sqlite"));let b=process.env.DATABASE_PATH;if(b)try{let c=l().resolve(b);(0,n.fW)(c)?o.warn(`[Security] Skipping DATABASE_PATH in system directory: ${c}`):a.push(b)}catch{o.warn(`[Security] Invalid DATABASE_PATH: ${b}`)}return a}function r(a){let b=l().resolve(a);if((0,n.fW)(b))throw Error(`Security error: Target path cannot be in system directory: ${b}`);if(j().existsSync(a)){let b=p(a,"target path");if(b)return{migrated:!1,targetPath:b}}for(let a of q()){let c=p(a,"legacy path");if(!c)continue;let d=`${c}.bak`;j().copyFileSync(c,d),j().chmodSync(d,384);let e=l().dirname(b);return j().existsSync(e)||j().mkdirSync(e,{recursive:!0,mode:448}),j().copyFileSync(c,b),o.info(`[Migration] Database migrated from ${c} to ${b}`),o.info(`[Migration] Backup created at ${d}`),{migrated:!0,sourcePath:c,targetPath:b,backupPath:d}}return{migrated:!1,targetPath:b}}},82484:(a,b,c)=>{c.d(b,{E4:()=>y,QY:()=>r,Sw:()=>C,cl:()=>z,jY:()=>t,ne:()=>w});var d=c(55511),e=c(33873),f=c.n(e),g=c(96210),h=c(93356),i=c(52710),j=c(33095),k=c(1185),l=c(89936),m=c(4548),n=c(36931);let o={LOCAL_CHANGES:"SKILL_UPDATE_LOCAL_CHANGES",ROOT_MISSING:"SKILL_UPDATE_ROOT_MISSING",RECEIPT_MISSING:"SKILL_UPDATE_RECEIPT_MISSING",RECEIPT_UNREADABLE:"SKILL_UPDATE_RECEIPT_UNREADABLE",RECEIPT_FOREIGN:"SKILL_UPDATE_RECEIPT_FOREIGN",ROOT_RECEIPT_DIVERGED:"SKILL_UPDATE_ROOT_RECEIPT_DIVERGED",TREE_SCAN_TRUNCATED:"SKILL_UPDATE_TREE_SCAN_TRUNCATED",INCOMPATIBLE:"SKILL_UPDATE_INCOMPATIBLE"},p={[o.LOCAL_CHANGES]:"skills.update.blocked.localChanges",[o.ROOT_MISSING]:"skills.update.blocked.rootMissing",[o.RECEIPT_MISSING]:"skills.update.blocked.receiptMissing",[o.RECEIPT_UNREADABLE]:"skills.update.blocked.receiptUnreadable",[o.RECEIPT_FOREIGN]:"skills.update.blocked.receiptForeign",[o.ROOT_RECEIPT_DIVERGED]:"skills.update.blocked.rootReceiptDiverged",[o.TREE_SCAN_TRUNCATED]:"skills.update.blocked.treeScanTruncated",[o.INCOMPATIBLE]:"skills.update.blocked.incompatible"},q={updatable:"skills.update.nextAction.updatable",blocked:"skills.update.nextAction.blocked"};function r(a,b,c){let d;if(!g.X0.test(b)||b.length>g.cj)throw new i.nf(i.ER.TARGET_UNSAFE);try{d=(0,j.yj)(a,c,b)}catch{throw new i.nf(i.ER.TARGET_UNSAFE)}let e=(0,j.bh)(d);if(!e.present)return{state:"not_installed"};let f=e.files.find(a=>a.path===i.zi);if(!f)return{state:"receipt_missing"};let h=(0,i.q$)(f.bytes);return null===h?{state:"receipt_unreadable"}:h.skill_id!==b?{state:"receipt_foreign"}:{state:"ok",receipt:h,receiptDigest:f.sha256}}let s=globalThis.__skillUpdatePlans??(globalThis.__skillUpdatePlans={records:new Map}),t=/^[0-9a-f]{48}$/;function u(a){s.records.delete(a.token),null===a.consumedAt&&(0,l.TO)(a.binding.snapshotId)}function v(a,b){let c=0;for(let d of[...s.records.values()])d.token!==b&&a>=d.expiresAt&&(u(d),c+=1);return c}function w(a={}){return v(a.now??Date.now())}function x(a,b){if(!t.test(a))throw new i.nf(i.ER.NOT_FOUND);let c=s.records.get(a);if(v(b,a),!c)throw new i.nf(i.ER.NOT_FOUND);let e=Buffer.from(a,"utf-8"),f=Buffer.from(c.token,"utf-8");if(e.length!==f.length||!(0,d.timingSafeEqual)(e,f))throw new i.nf(i.ER.NOT_FOUND);if(b>=c.expiresAt)throw u(c),new i.nf(i.ER.EXPIRED);if(null!==c.consumedAt)throw new i.nf(i.ER.CONSUMED);return c}function y(a,b={}){return x(a,b.now??Date.now())}function z(a,b,c,d={}){let e=d.now??Date.now(),f=x(a,e),{binding:g}=f;if(g.actor.type!==b.actor.type||g.actor.id!==b.actor.id||g.worktreeId!==b.worktreeId||g.skillId!==b.skillId||g.toVersion!==b.toVersion)throw new i.nf(i.ER.BINDING_MISMATCH);if(!f.dto.updatable)throw new i.nf(i.ER.NOT_INSTALLABLE);if(f.dto.requiresRiskAcknowledgement&&!b.riskAcknowledged)throw new i.nf(i.ER.RISK_NOT_ACKNOWLEDGED);if(f.dto.riskIncreased&&!b.riskIncreaseAcknowledged)throw new i.nf(i.ER.RISK_NOT_ACKNOWLEDGED,{riskIncreased:!0});if(c.branch!==g.branch||c.headCommit!==g.headCommit||c.currentTreeHash!==g.currentTreeHash||null===c.receiptDigest||!(0,h.U2)(c.receiptDigest,g.currentReceiptDigest))throw new i.nf(i.ER.STALE);return f.consumedAt=e,f}function A(a,b,c=null){return{code:a,path:b,messageKey:p[a],detail:c}}let B={[k.sJ.LOCAL_MODIFICATION]:o.LOCAL_CHANGES,[k.sJ.RECEIPT_ORPHAN]:o.LOCAL_CHANGES,[k.sJ.UNMANAGED_FILE]:o.LOCAL_CHANGES,[k.sJ.NOT_A_REGULAR_FILE]:o.LOCAL_CHANGES,[k.sJ.NOT_INSTALLED]:o.ROOT_MISSING,[k.sJ.RECEIPT_MISSING]:o.RECEIPT_MISSING,[k.sJ.RECEIPT_UNREADABLE]:o.RECEIPT_UNREADABLE,[k.sJ.RECEIPT_FOREIGN]:o.RECEIPT_FOREIGN,[k.sJ.TREE_SCAN_TRUNCATED]:o.TREE_SCAN_TRUNCATED};function C(a){let b;if(!g.X0.test(a.skillId)||a.skillId.length>g.cj)throw new i.nf(i.ER.TARGET_UNSAFE);let c=a.now??Date.now(),{snapshot:e}=a,l=r(a.worktree.path,a.skillId,g.pg);if("not_installed"===l.state)throw new i.nf(i.ER.NOT_FOUND);if("ok"!==l.state||l.receipt.version!==a.fromVersion)throw new i.nf(i.ER.STALE);let p=l.receipt;try{b=(0,i.Pw)(p).map(b=>{let c=f().posix.dirname(b),d=(0,j.yj)(a.worktree.path,c,a.skillId),e=(0,j.bh)(d);return{prefix:c,rel:(0,j.QL)(c,a.skillId),existing:e,assessment:(0,k.II)(d,a.skillId,{existing:e,rootPrefix:c})}})}catch{throw new i.nf(i.ER.TARGET_UNSAFE)}let t=b[0],w=[];for(let a of b){for(let b of a.assessment.blockers){let a=B[b.code];a&&w.push(A(a,b.path,b.code))}a!==t&&null!==a.assessment.receiptDigest&&a.assessment.receiptDigest!==t.assessment.receiptDigest&&w.push(A(o.ROOT_RECEIPT_DIVERGED,`${a.rel}/${i.zi}`))}"compatible"!==a.compatibility.status&&w.push(A(o.INCOMPATIBLE,null));let x=b.map(a=>a.prefix),y=(0,i.$h)({snapshot:e,version:a.version,rootPrefixes:x}),z=(0,i.tJ)(y),C=(0,d.createHash)("sha256").update(z).digest("hex"),D=new Map(p.files.map(a=>[a.path,{sha256:a.sha256,size:a.size,executable:a.executable}])),E=t.existing.files.find(a=>a.path===i.zi);D.set(i.zi,{sha256:l.receiptDigest,size:E?.size??null,executable:!1});let F=new Map(e.files.map(a=>[a.path,{sha256:a.sha256,size:a.size,executable:a.executable,generated:!1}]));F.set(i.zi,{sha256:C,size:z.byteLength,executable:!1,generated:!0});let G=new Map(t.existing.files.map(a=>[a.path,a])),H={remainingBytes:j.mo},I=[],J={added:0,updated:0,removed:0,unchanged:0,localModified:0,localMissing:0,localUnknown:0,irregular:0},K=!1,L=!1;for(let a of[...new Set([...D.keys(),...F.keys()])].sort()){let b,c,d=D.get(a)??null,f=F.get(a)??null,g=G.get(a)??null;b=d&&f?(0,h.U2)(d.sha256,f.sha256)&&d.executable===f.executable?"unchanged":"update":f?"add":"remove",c=null===d?null===g?"match":"unknown":null===g?"missing":(0,h.U2)(g.sha256,d.sha256)&&g.executable===d.executable?"match":"modified";let k=f?.generated??a===i.zi,l=null!==d&&null!==g&&"match"===c?g.bytes:null,m=null===f?null:k?z:e.readFile(a),n=null!==l&&(0,j.VA)(l)||null!==m&&(0,j.VA)(m),o=null!==d&&"match"!==c,p=n||o||"unchanged"===b?{text:null,truncated:!1,additions:0,deletions:0}:(0,j.kt)(l,m,H);I.push({path:`${t.rel}/${a}`,relativePath:a,change:b,generated:k,recordedSha256:d?.sha256??null,candidateSha256:f?.sha256??null,currentSha256:g?.sha256??null,localState:c,size:f?.size??d?.size??null,executable:f?.executable??d?.executable??!1,binary:n,diff:p.text,diffTruncated:p.truncated,additions:p.additions,deletions:p.deletions}),"add"===b?J.added+=1:"update"===b?J.updated+=1:"remove"===b?J.removed+=1:J.unchanged+=1,n&&(K=!0),p.truncated&&(L=!0)}for(let a of b)J.localModified+=a.assessment.stats.modified,J.localMissing+=a.assessment.stats.missing,J.localUnknown+=a.assessment.stats.unknown,J.irregular+=a.assessment.stats.irregular;let M=(0,j.Hg)([...F.entries()].map(([a,b])=>({path:a,sha256:b.sha256,executable:b.executable}))),N=[];"detached"===a.git.headState&&N.push(j.OV.DETACHED_HEAD),"unborn"===a.git.headState&&N.push(j.OV.UNBORN_HEAD),"unknown"===a.git.headState&&N.push(j.OV.HEAD_UNRESOLVED),a.git.dirty&&N.push(j.OV.WORKING_TREE_DIRTY),K&&N.push(j.OV.BINARY_CONTENT),L&&N.push(j.OV.DIFF_TRUNCATED),b.some(a=>a.existing.truncated)&&N.push(j.OV.TREE_SCAN_TRUNCATED);let O=function(a,b,c,d){let e={declared:a.declared_risk,computed:a.computed_risk,effective:a.effective_risk},f={declared:b.declaredRisk,computed:b.computedRisk,effective:b.effectiveRisk},h=new Set(a.declared_permissions),i=new Set(b.inspection.declared_permissions),j={added:[...i].filter(a=>!h.has(a)),removed:[...h].filter(a=>!i.has(a)),unchanged:[...i].filter(a=>h.has(a))},k=new Set(a.files.map(a=>a.path)),l=new Set(b.files.map(a=>a.path)),o=a.files.filter(a=>a.executable).map(a=>a.path),p=b.files.filter(a=>a.executable).map(a=>a.path),q={added:p.filter(a=>!o.includes(a)),removed:o.filter(a=>!p.includes(a))},r={added:b.inspection.script_paths.filter(a=>!k.has(a)),removed:[...k].filter(a=>(function(a){let b=a.slice(a.lastIndexOf("/")+1),c=b.lastIndexOf(".");return!(c<=0)&&m.TW.includes(b.slice(c).toLowerCase())})(a)&&!l.has(a))},s=d.versions.filter(b=>{let d=(0,n.Cg)(b.version,a.version),e=(0,n.Cg)(b.version,c.version);return null!==d&&d>0&&null!==e&&e<=0}).sort((a,b)=>(0,n.Cg)(b.version,a.version)??0).map(a=>({version:a.version,changelog:a.changelog}));return{risk:{from:e,to:f,increased:g.$Y[f.effective]>g.$Y[e.effective]},permissions:j,executables:q,scripts:r,requirements:{commands:b.manifest.requirements.commands.map(a=>({name:a.name,versionRange:a.version_range??null})),networkHosts:[...b.manifest.requirements.network_hosts]},changelogs:s,agents:{from:a.agent_compatibility.map(a=>({...a})),to:c.compatibility.agents.map(a=>({...a}))}}}(p,e,a.version,a.catalogEntry),P="high"===e.effectiveRisk,Q=O.risk.increased,R=(0,d.randomBytes)(24).toString("hex"),S=c+i.c$,T={actor:a.actor,operation:"update",worktreeId:a.worktree.id,skillId:a.skillId,fromVersion:p.version,toVersion:e.version,artifactSha256:a.version.artifact.sha256,snapshotId:a.snapshotId,currentReceiptDigest:l.receiptDigest,branch:a.git.branch,headCommit:a.git.headCommit,currentTreeHash:t.assessment.currentTreeHash,plannedTreeHash:M},U={token:R,expiresAt:new Date(S).toISOString().replace(/\.\d{3}Z$/,"Z"),updatable:0===w.length,blockers:w,nextActionKey:0===w.length?q.updatable:q.blocked,requiresRiskAcknowledgement:P,riskAcknowledgementMessageKey:P?"skills.update.highRiskAcknowledgement":null,riskIncreased:Q,riskIncreaseMessageKey:Q?"skills.update.riskIncreaseAcknowledgement":null,update:{fromVersion:p.version,toVersion:e.version,latestVersion:a.latestVersion,reasonCode:a.reasonCode,prerelease:a.prerelease},target:{worktreeId:a.worktree.id,worktreeName:a.worktree.name,repositoryName:a.worktree.repositoryName,branch:a.git.branch,headState:a.git.headState,headCommit:a.git.headCommit,workingTreeDirty:a.git.dirty,installRoot:t.rel,installRoots:b.map(a=>a.rel),roots:b.map(a=>({installRoot:a.rel,rootPrefix:a.prefix,clean:a.assessment.removable,receiptDigest:a.assessment.receiptDigest,currentTreeHash:a.assessment.currentTreeHash})),currentTreeHash:t.assessment.currentTreeHash,plannedTreeHash:M},skill:function(a,b,c){let{manifest:d}=a;return{id:a.skillId,name:d.name,version:a.version,summary:d.summary,description:d.description,capabilities:[...d.capabilities],expectedOutcomes:[...d.expected_outcomes],provider:{...d.provider},license:d.license,homepage:d.homepage??null,declaredPermissions:[...a.inspection.declared_permissions],requirements:{commands:d.requirements.commands.map(a=>({name:a.name,versionRange:a.version_range??null})),networkHosts:[...d.requirements.network_hosts]},declaredRisk:a.declaredRisk,computedRisk:a.computedRisk,effectiveRisk:a.effectiveRisk,riskRationale:d.risk_rationale,executablePaths:[...a.inspection.executable_paths],scriptPaths:[...a.inspection.script_paths],compatibility:{commandmate:c,agents:b.compatibility.agents.map(a=>({...a}))},source:{repository:b.source.repository,ref:b.source.ref,commit:b.source.commit},artifact:{assetName:b.artifact.asset_name,sha256:b.artifact.sha256,size:b.artifact.size,format:b.artifact.format}}}(e,a.version,a.compatibility),securityDiff:O,receipt:{path:`${t.rel}/${i.zi}`,sha256:C,size:z.byteLength},files:I,stats:J,warnings:N},V={token:R,binding:T,bindingHash:(0,d.createHash)("sha256").update(function a(b){if(null===b||"object"!=typeof b)return JSON.stringify(b)??"null";if(Array.isArray(b))return`[${b.map(a).join(",")}]`;let c=Object.entries(b).filter(([,a])=>void 0!==a).sort(([a],[b])=>a<b?-1:+(a>b));return`{${c.map(([b,c])=>`${JSON.stringify(b)}:${a(c)}`).join(",")}}`}(T)).digest("hex"),createdAt:c,expiresAt:S,consumedAt:null,worktreePath:a.worktree.path,rootPrefixes:x,receipt:y,receiptBytes:z,dto:U};for(v(c);s.records.size>=i.sK;){let a=[...s.records.values()].sort((a,b)=>a.createdAt-b.createdAt)[0];if(!a)break;u(a)}return s.records.set(R,V),V}},98170:(a,b,c)=>{c.d(b,{mF:()=>l});var d=c(32520),e=c(72626),f=c(52710),g=c(1185),h=c(82484),i=c(89936);let j=(0,e.h)("lib/skills/plan-sweeper"),k=globalThis.__skillPlanSweeper??(globalThis.__skillPlanSweeper={timer:null});function l(){if(k.timer)return;let a=setInterval(()=>{try{let a=function(a={}){let b=a.now??Date.now(),c=(0,f.Jg)({now:b}),d=(0,g.kq)({now:b}),e=(0,h.ne)({now:b});return{installPlans:c,uninstallPlans:d,updatePlans:e,snapshots:(0,i.nW)()?(0,i.Jk)({now:b}):0}}();(a.installPlans||a.uninstallPlans||a.updatePlans||a.snapshots)&&j.debug("skill-plan-sweep",{...a})}catch(a){j.warn("skill-plan-sweep-failed",{error:a instanceof Error?a.message:String(a)})}},d.Oj);a.unref(),k.timer=a}}};
|