commandmate 0.38.1 → 0.39.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.next/BUILD_ID +1 -1
- package/.next/app-build-manifest.json +465 -570
- package/.next/app-path-routes-manifest.json +29 -39
- package/.next/build-manifest.json +5 -5
- package/.next/prerender-manifest.json +12 -12
- package/.next/react-loadable-manifest.json +2 -2
- package/.next/required-server-files.json +1 -1
- package/.next/routes-manifest.json +0 -23
- package/.next/server/app/_not-found/page.js +1 -1
- package/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/server/app/api/agents/update/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/agents/versions/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/app/release-notes/route.js +1 -0
- package/.next/server/app/api/app/release-notes/route.js.nft.json +1 -0
- package/.next/server/app/api/app/release-notes/route_client-reference-manifest.js +1 -0
- 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/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_client-reference-manifest.js +1 -1
- package/.next/server/app/api/daily-summary/status/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/external-apps/[id]/health/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/external-apps/[id]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/external-apps/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/fs/browse/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/fs/recent-paths/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/hooks/agent-event/route.js +1 -1
- package/.next/server/app/api/hooks/agent-event/route.js.nft.json +1 -1
- package/.next/server/app/api/hooks/agent-event/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/hooks/claude-done/route.js +1 -1
- package/.next/server/app/api/hooks/claude-done/route.js.nft.json +1 -1
- package/.next/server/app/api/hooks/claude-done/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/hooks/permission-request/route.js +1 -1
- package/.next/server/app/api/hooks/permission-request/route.js.nft.json +1 -1
- package/.next/server/app/api/hooks/permission-request/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/metrics/vibe/route_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_client-reference-manifest.js +1 -1
- package/.next/server/app/api/push/subscriptions/route.js +1 -1
- package/.next/server/app/api/push/subscriptions/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/push/vapid/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/relays/[relayId]/cancel/route.js +1 -1
- package/.next/server/app/api/relays/[relayId]/cancel/route.js.nft.json +1 -1
- package/.next/server/app/api/relays/[relayId]/cancel/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/relays/route.js +1 -1
- package/.next/server/app/api/relays/route.js.nft.json +1 -1
- package/.next/server/app/api/relays/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/remote/pair/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/repositories/[id]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/repositories/clone/[jobId]/route.js +1 -1
- package/.next/server/app/api/repositories/clone/[jobId]/route.js.nft.json +1 -1
- package/.next/server/app/api/repositories/clone/[jobId]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/repositories/clone/route.js +1 -1
- package/.next/server/app/api/repositories/clone/route.js.nft.json +1 -1
- package/.next/server/app/api/repositories/clone/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/repositories/excluded/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/repositories/restore/route.js +1 -1
- package/.next/server/app/api/repositories/restore/route.js.nft.json +1 -1
- package/.next/server/app/api/repositories/restore/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/repositories/route.js +1 -1
- package/.next/server/app/api/repositories/route.js.nft.json +1 -1
- package/.next/server/app/api/repositories/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/repositories/scan/route.js +1 -1
- package/.next/server/app/api/repositories/scan/route.js.nft.json +1 -1
- package/.next/server/app/api/repositories/scan/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/repositories/sync/route.js +1 -1
- package/.next/server/app/api/repositories/sync/route.js.nft.json +1 -1
- package/.next/server/app/api/repositories/sync/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/repositories/validate-path/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/settings/default-agents/route.js +1 -1
- package/.next/server/app/api/settings/default-agents/route.js.nft.json +1 -1
- package/.next/server/app/api/settings/default-agents/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/settings/default-surface-mode/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/sidebar/group-order/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/skills/[id]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/skills/installations/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/skills/operations/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/skills/reindex/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/skills/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/slash-commands/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/tasks/[taskId]/cancel/route_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_client-reference-manifest.js +1 -1
- package/.next/server/app/api/templates/[id]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/templates/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_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_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-reference/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/cli-reference/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/cli-tool/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/cli-tool/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/cmate/schedules/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/cmate/schedules/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/current-output/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/current-output/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/current-output/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/env/route.js +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_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/execution-logs/route.js +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_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/branch/create/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/branch/create/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/branch/delete/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/branch/delete/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/branches/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/branches/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/checkout/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/checkout/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/commit/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/commit/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/diff/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/diff/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/fetch/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/fetch/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/log/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/log/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/pull/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/pull/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/push/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/push/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/reset/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/reset/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/revert/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/revert/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/show/[commitHash]/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/show/[commitHash]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/stage/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/stage/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/staged/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/staged/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/stash/[index]/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/stash/[index]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/stash/apply/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/stash/apply/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/stash/pop/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/stash/pop/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/stash/push/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/stash/push/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/stash/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/stash/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/status/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/status/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/unstage/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/unstage/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/working-diff/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/working-diff/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/instances/notes/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/instances/notes/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/instances/opencode/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/instances/opencode/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/interrupt/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/interrupt/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/interrupt/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/kill-session/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/kill-session/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/kill-session/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/logs/[filename]/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/logs/[filename]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/logs/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/logs/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/marp-render/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/marp-render/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/memos/[memoId]/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/memos/[memoId]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/memos/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/memos/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/messages/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/messages/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/opencode/diff/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/opencode/diff/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/opencode/session/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/opencode/share/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/prompt-response/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/prompt-response/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/prompt-response/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/resolve-target/route.js +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 +1 -1
- package/.next/server/app/api/worktrees/[id]/schedules/[scheduleId]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/schedules/active/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/schedules/active/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/schedules/route.js +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_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/send/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/send/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/send/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/skills/[skillId]/git-workflow/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/skills/[skillId]/git-workflow/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/skills/[skillId]/git-workflow/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/skills/[skillId]/install/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/skills/[skillId]/plan/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall-plan/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/skills/[skillId]/update/route_client-reference-manifest.js +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_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/slash-commands/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/slash-commands/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/special-keys/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/special-keys/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/special-keys/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/tasks/route.js +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_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/timers/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/timers/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/timers/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/todos/[todoId]/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/todos/[todoId]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/todos/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/todos/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/tree/[...path]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/tree/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/upload/[...path]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/verify/config/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/verify/config/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_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/verify/runs/[runId]/cancel/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/verify/runs/[runId]/cancel/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_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_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_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/apply-default-agents/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/login/page.js +1 -1
- package/.next/server/app/login/page.js.nft.json +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 +2 -2
- package/.next/server/app/more/page.js.nft.json +1 -1
- package/.next/server/app/more/page_client-reference-manifest.js +1 -1
- package/.next/server/app/offline/page.js +1 -1
- package/.next/server/app/offline/page.js.nft.json +1 -1
- package/.next/server/app/offline/page_client-reference-manifest.js +1 -1
- package/.next/server/app/page.js +2 -2
- package/.next/server/app/page.js.nft.json +1 -1
- package/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/server/app/proxy/[...path]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/repositories/page.js +2 -2
- package/.next/server/app/repositories/page.js.nft.json +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.js +2 -2
- package/.next/server/app/sessions/page.js.nft.json +1 -1
- package/.next/server/app/sessions/page_client-reference-manifest.js +1 -1
- package/.next/server/app/skills/[skillId]/page.js +2 -2
- package/.next/server/app/skills/[skillId]/page.js.nft.json +1 -1
- package/.next/server/app/skills/[skillId]/page_client-reference-manifest.js +1 -1
- package/.next/server/app/skills/installed/page.js +2 -2
- package/.next/server/app/skills/installed/page.js.nft.json +1 -1
- package/.next/server/app/skills/installed/page_client-reference-manifest.js +1 -1
- package/.next/server/app/skills/page.js +1 -1
- package/.next/server/app/skills/page.js.nft.json +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 +11 -11
- package/.next/server/app/worktrees/[id]/page.js.nft.json +1 -1
- package/.next/server/app/worktrees/[id]/page_client-reference-manifest.js +1 -1
- package/.next/server/app/worktrees/[id]/terminal/page.js +1 -1
- package/.next/server/app/worktrees/[id]/terminal/page.js.nft.json +1 -1
- package/.next/server/app/worktrees/[id]/terminal/page_client-reference-manifest.js +1 -1
- package/.next/server/app-paths-manifest.json +29 -39
- package/.next/server/chunks/1210.js +1 -1
- package/.next/server/chunks/1707.js +1 -1
- package/.next/server/chunks/1825.js +1 -1
- package/.next/server/chunks/2119.js +1 -1
- package/.next/server/chunks/2445.js +1 -1
- package/.next/server/chunks/3241.js +1 -1
- package/.next/server/chunks/3323.js +1 -1
- package/.next/server/chunks/3543.js +1 -1
- package/.next/server/chunks/366.js +1 -0
- package/.next/server/chunks/3945.js +1 -1
- package/.next/server/chunks/4443.js +1 -1
- package/.next/server/chunks/5164.js +1 -1
- package/.next/server/chunks/5354.js +1 -1
- package/.next/server/chunks/6130.js +1 -1
- package/.next/server/chunks/6159.js +1 -1
- package/.next/server/chunks/6401.js +1 -1
- package/.next/server/chunks/650.js +1 -1
- package/.next/server/chunks/6661.js +1 -1
- package/.next/server/chunks/7075.js +1 -1
- package/.next/server/chunks/7086.js +15 -0
- package/.next/server/chunks/8550.js +1 -0
- package/.next/server/chunks/8581.js +60 -0
- package/.next/server/chunks/8728.js +2 -2
- package/.next/server/chunks/8807.js +184 -323
- package/.next/server/chunks/8918.js +1 -1
- package/.next/server/chunks/9130.js +3 -3
- package/.next/server/chunks/9584.js +1 -1
- package/.next/server/chunks/9627.js +1 -1
- package/.next/server/chunks/{1886.js → 9731.js} +3 -3
- package/.next/server/chunks/{6677.js → 9882.js} +1 -1
- package/.next/server/middleware-build-manifest.js +1 -1
- package/.next/server/middleware-manifest.json +5 -5
- package/.next/server/middleware-react-loadable-manifest.js +1 -1
- package/.next/server/pages/500.html +1 -1
- package/.next/server/server-reference-manifest.json +1 -1
- package/.next/static/CqFH31RhKQbrRZXsMNosJ/_buildManifest.js +1 -0
- package/.next/static/chunks/1032-9e43405ac6bf6848.js +1 -0
- package/.next/static/chunks/2318-af00abceb9b8eab5.js +1 -0
- package/.next/static/chunks/{2407-be448eda70bc19b6.js → 2407-8fe4e4d0bab1931a.js} +1 -1
- package/.next/static/chunks/2619-04bc32f026a0d946.js +1 -0
- package/.next/static/chunks/344-6f9fc1f38f01a839.js +1 -0
- package/.next/static/chunks/3504-0100ab50762f591b.js +1 -0
- package/.next/static/chunks/3778-56f41fc2cecb8c43.js +1 -0
- package/.next/static/chunks/4322-f54abdc5d16b7462.js +1 -0
- package/.next/static/chunks/4768-0ad5eb716bed5de9.js +1 -0
- package/.next/static/chunks/4949-a13ace141c0183d6.js +1 -0
- package/.next/static/chunks/5449-550bd273dccc3ae4.js +1 -0
- package/.next/static/chunks/5529-83e705fc4134a503.js +1 -0
- package/.next/static/chunks/{3313.53f7ff985c0c8852.js → 5694.dda65070757534df.js} +1 -1
- package/.next/static/chunks/6322-f1b30ed0ee43518f.js +1 -0
- package/.next/static/chunks/6966-bb854d1145783a64.js +1 -0
- package/.next/static/chunks/{7485.52361bc061cc663a.js → 7485.442b21101fca7257.js} +1 -1
- package/.next/static/chunks/8019-cc6ac1cc033fd5f0.js +1 -0
- package/.next/static/chunks/8283-26ad31a4670ea52d.js +1 -0
- package/.next/static/chunks/8606-e893c1dab6fb81bc.js +1 -0
- package/.next/static/chunks/9619-c3c4c623b0a4f681.js +1 -0
- package/.next/static/chunks/app/api/agents/update/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/agents/versions/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/app/release-notes/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/app/update/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/app/update-check/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/auth/login/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/auth/logout/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/auth/status/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/capabilities/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/daily-summary/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/daily-summary/status/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/external-apps/[id]/health/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/external-apps/[id]/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/external-apps/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/fs/browse/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/fs/recent-paths/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/hooks/agent-event/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/hooks/claude-done/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/hooks/permission-request/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/metrics/vibe/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/ollama/models/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/push/escalation/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/push/subscriptions/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/push/vapid/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/relays/[relayId]/cancel/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/relays/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/remote/pair/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/repositories/[id]/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/repositories/clone/[jobId]/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/repositories/clone/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/repositories/excluded/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/repositories/restore/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/repositories/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/repositories/scan/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/repositories/sync/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/repositories/validate-path/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/settings/default-agents/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/settings/default-surface-mode/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/sidebar/group-order/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/skills/[id]/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/skills/installations/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/skills/operations/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/skills/reindex/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/skills/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/slash-commands/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/tasks/[taskId]/cancel/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/tasks/[taskId]/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/templates/[id]/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/templates/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/verification/runs/[runId]/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/verification/runs/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/auto-yes/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/capture/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/clear-composer/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/cli-reference/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/cli-tool/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/cmate/schedules/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/current-output/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/env/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/execution-logs/[logId]/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/execution-logs/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/files/[...path]/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/branch/create/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/branch/delete/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/branches/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/checkout/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/commit/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/diff/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/fetch/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/log/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/pull/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/push/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/reset/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/revert/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/show/[commitHash]/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/stage/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/staged/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/stash/[index]/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/stash/apply/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/stash/pop/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/stash/push/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/stash/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/status/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/unstage/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/working-diff/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/instances/notes/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/instances/opencode/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/interrupt/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/kill-session/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/logs/[filename]/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/logs/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/marp-render/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/memos/[memoId]/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/memos/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/messages/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/opencode/diff/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/opencode/session/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/opencode/share/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/prompt-response/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/resolve-target/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/respond/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/schedules/[scheduleId]/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/schedules/active/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/schedules/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/search/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/send/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/git-workflow/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/install/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/plan/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/uninstall/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/uninstall-plan/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/update/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/update-plan/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/skills/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/slash-commands/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/special-keys/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/tasks/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/terminal/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/timers/history/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/timers/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/todos/[todoId]/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/todos/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/tree/[...path]/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/tree/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/upload/[...path]/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/verify/config/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/verify/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/verify/runs/[runId]/cancel/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/verify/runs/[runId]/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/verify/runs/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/viewed/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/apply-default-agents/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/api/worktrees/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/{error-c1dc1038d0a84a33.js → error-d9a7067074e7f460.js} +1 -1
- package/.next/static/chunks/app/layout-f43045c9edbc4d1f.js +1 -0
- package/.next/static/chunks/app/loading-db675c84e696591f.js +1 -0
- package/.next/static/chunks/app/login/{page-af7241bb4c4a8e59.js → page-269a9de3b91a45a2.js} +1 -1
- package/.next/static/chunks/app/manifest.webmanifest/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/more/loading-db675c84e696591f.js +1 -0
- package/.next/static/chunks/app/more/page-3963a5e56e550442.js +1 -0
- package/.next/static/chunks/app/page-0c1a29ff3609bd8b.js +1 -0
- package/.next/static/chunks/app/proxy/[...path]/route-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/repositories/loading-db675c84e696591f.js +1 -0
- package/.next/static/chunks/app/repositories/page-e9ceeefacf87d470.js +1 -0
- package/.next/static/chunks/app/review/loading-db675c84e696591f.js +1 -0
- package/.next/static/chunks/app/review/page-3028fe95de490236.js +1 -0
- package/.next/static/chunks/app/sessions/loading-db675c84e696591f.js +1 -0
- package/.next/static/chunks/app/sessions/page-3f39f99b878fdda0.js +1 -0
- package/.next/static/chunks/app/skills/[skillId]/page-6f62668eabb635f5.js +1 -0
- package/.next/static/chunks/app/skills/installed/page-c6c4ac5e26c4e73e.js +1 -0
- package/.next/static/chunks/app/skills/page-bec1d4924004d4de.js +1 -0
- package/.next/static/chunks/app/worktrees/[id]/files/[...path]/{page-f3361237420719b4.js → page-2e98f11956fe1aea.js} +1 -1
- package/.next/static/chunks/app/worktrees/[id]/layout-70779af8b4c8259a.js +1 -0
- package/.next/static/chunks/app/worktrees/[id]/loading-db675c84e696591f.js +1 -0
- package/.next/static/chunks/app/worktrees/[id]/page-0305d80c8ebda4cb.js +1 -0
- package/.next/static/chunks/app/worktrees/[id]/terminal/page-373ea37b16d930c7.js +1 -0
- package/.next/static/chunks/{webpack-0281b30457d46ebc.js → webpack-9f75198882fdaf08.js} +1 -1
- package/.next/static/css/2c63c5531f77719e.css +1 -0
- package/.next/trace +13 -14
- package/.next/types/app/api/{assistant/tools → app/release-notes}/route.ts +3 -3
- package/.next/types/routes.d.ts +3 -13
- package/.next/types/validator.ts +9 -99
- package/dist/cli/commands/wait.d.ts +45 -0
- package/dist/cli/commands/wait.d.ts.map +1 -1
- package/dist/cli/commands/wait.js +172 -3
- package/dist/server/locales/en/worktree.json +20 -4
- package/dist/server/locales/ja/worktree.json +20 -4
- package/dist/server/src/config/activity-bar-config.js +3 -1
- package/dist/server/src/lib/cli-tools/copilot.js +244 -11
- package/dist/server/src/lib/db/db.js +3 -32
- package/dist/server/src/lib/db/worktree-todo-db.js +1 -2
- package/dist/server/src/lib/detection/cli-patterns.js +39 -2
- package/dist/server/src/lib/detection/tools/codex/prompt.js +15 -1
- package/dist/server/src/lib/hooks/agent-event-types.js +19 -1
- package/dist/server/src/lib/hooks/sources/antigravity/hooks-config.js +65 -4
- package/dist/server/src/lib/hooks/sources/antigravity/source.js +32 -3
- package/dist/server/src/lib/hooks/sources/claude/source.js +5 -0
- package/dist/server/src/lib/hooks/sources/codex/source.js +2 -0
- package/dist/server/src/lib/hooks/sources/command-code/source.js +2 -0
- package/dist/server/src/lib/hooks/sources/copilot/source.js +3 -0
- package/dist/server/src/lib/hooks/sources/gemini/source.js +2 -0
- package/dist/server/src/lib/hooks/sources/legacy-relay.js +2 -0
- package/dist/server/src/lib/hooks/sources/opencode/source.js +2 -0
- package/dist/server/src/lib/session/current-output-builder.js +3 -1
- package/dist/server/src/lib/session/send-user-message.js +112 -17
- package/dist/server/src/lib/verification/verification-reconciler.js +2 -2
- package/package.json +3 -2
- package/release-notes/0.39.0.json +94 -0
- package/.next/server/app/api/assistant/conversation/route.js +0 -1
- package/.next/server/app/api/assistant/conversation/route.js.nft.json +0 -1
- package/.next/server/app/api/assistant/conversation/route_client-reference-manifest.js +0 -1
- package/.next/server/app/api/assistant/current-output/route.js +0 -1
- package/.next/server/app/api/assistant/current-output/route.js.nft.json +0 -1
- package/.next/server/app/api/assistant/current-output/route_client-reference-manifest.js +0 -1
- package/.next/server/app/api/assistant/messages/route.js +0 -1
- package/.next/server/app/api/assistant/messages/route.js.nft.json +0 -1
- package/.next/server/app/api/assistant/messages/route_client-reference-manifest.js +0 -1
- package/.next/server/app/api/assistant/session/route.js +0 -1
- package/.next/server/app/api/assistant/session/route.js.nft.json +0 -1
- package/.next/server/app/api/assistant/session/route_client-reference-manifest.js +0 -1
- package/.next/server/app/api/assistant/start/route.js +0 -32
- package/.next/server/app/api/assistant/start/route.js.nft.json +0 -1
- package/.next/server/app/api/assistant/start/route_client-reference-manifest.js +0 -1
- package/.next/server/app/api/assistant/terminal/route.js +0 -34
- package/.next/server/app/api/assistant/terminal/route.js.nft.json +0 -1
- package/.next/server/app/api/assistant/terminal/route_client-reference-manifest.js +0 -1
- package/.next/server/app/api/assistant/tools/route.js +0 -1
- package/.next/server/app/api/assistant/tools/route.js.nft.json +0 -1
- package/.next/server/app/api/assistant/tools/route_client-reference-manifest.js +0 -1
- package/.next/server/app/api/repositories/[id]/todos/[todoId]/route.js +0 -1
- package/.next/server/app/api/repositories/[id]/todos/[todoId]/route.js.nft.json +0 -1
- package/.next/server/app/api/repositories/[id]/todos/[todoId]/route_client-reference-manifest.js +0 -1
- package/.next/server/app/api/repositories/[id]/todos/route.js +0 -1
- package/.next/server/app/api/repositories/[id]/todos/route.js.nft.json +0 -1
- package/.next/server/app/api/repositories/[id]/todos/route_client-reference-manifest.js +0 -1
- package/.next/server/app/api/todos/route.js +0 -1
- package/.next/server/app/api/todos/route.js.nft.json +0 -1
- package/.next/server/app/api/todos/route_client-reference-manifest.js +0 -1
- package/.next/server/app/chat/page.js +0 -2
- package/.next/server/app/chat/page.js.nft.json +0 -1
- package/.next/server/app/chat/page_client-reference-manifest.js +0 -1
- package/.next/server/chunks/1366.js +0 -15
- package/.next/server/chunks/1467.js +0 -48
- package/.next/server/chunks/180.js +0 -1
- package/.next/server/chunks/3123.js +0 -1
- package/.next/server/chunks/3708.js +0 -1
- package/.next/server/chunks/5364.js +0 -1
- package/.next/server/chunks/6015.js +0 -1
- package/.next/server/chunks/8118.js +0 -1
- package/.next/server/chunks/8554.js +0 -1
- package/.next/server/chunks/9123.js +0 -13
- package/.next/static/DryXJ1-iHfWxfrHkkWVy8/_buildManifest.js +0 -1
- package/.next/static/chunks/3160-79d24ca264a528b9.js +0 -1
- package/.next/static/chunks/4322-59a7dbd77a7763cc.js +0 -1
- package/.next/static/chunks/4388-a778968d9c4e9327.js +0 -1
- package/.next/static/chunks/4718-56ebb6e55073ed5e.js +0 -1
- package/.next/static/chunks/4949-fa93029d6e05db0d.js +0 -1
- package/.next/static/chunks/5520-8bde9501846ae660.js +0 -1
- package/.next/static/chunks/5694-498765336d0b8c2b.js +0 -1
- package/.next/static/chunks/6402-d91e099c3f2d78f4.js +0 -1
- package/.next/static/chunks/6983-3ed2099251793bdf.js +0 -1
- package/.next/static/chunks/790-d8e6acd26e03679c.js +0 -1
- package/.next/static/chunks/8019-cbf130d0e6334d2d.js +0 -1
- package/.next/static/chunks/934-a37509667baa86ee.js +0 -1
- package/.next/static/chunks/9948-d139e3e5dbecaf73.js +0 -1
- package/.next/static/chunks/app/api/agents/update/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/agents/versions/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/app/update/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/app/update-check/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/assistant/conversation/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/assistant/current-output/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/assistant/messages/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/assistant/session/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/assistant/start/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/assistant/terminal/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/assistant/tools/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/auth/login/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/auth/logout/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/auth/status/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/capabilities/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/daily-summary/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/daily-summary/status/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/external-apps/[id]/health/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/external-apps/[id]/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/external-apps/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/fs/browse/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/fs/recent-paths/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/hooks/agent-event/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/hooks/claude-done/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/hooks/permission-request/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/metrics/vibe/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/ollama/models/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/push/escalation/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/push/subscriptions/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/push/vapid/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/relays/[relayId]/cancel/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/relays/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/remote/pair/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/repositories/[id]/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/repositories/[id]/todos/[todoId]/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/repositories/[id]/todos/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/repositories/clone/[jobId]/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/repositories/clone/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/repositories/excluded/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/repositories/restore/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/repositories/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/repositories/scan/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/repositories/sync/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/repositories/validate-path/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/settings/default-agents/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/settings/default-surface-mode/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/sidebar/group-order/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/skills/[id]/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/skills/installations/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/skills/operations/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/skills/reindex/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/skills/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/slash-commands/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/tasks/[taskId]/cancel/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/tasks/[taskId]/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/templates/[id]/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/templates/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/todos/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/verification/runs/[runId]/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/verification/runs/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/auto-yes/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/capture/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/clear-composer/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/cli-reference/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/cli-tool/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/cmate/schedules/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/current-output/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/env/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/execution-logs/[logId]/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/execution-logs/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/files/[...path]/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/branch/create/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/branch/delete/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/branches/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/checkout/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/commit/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/diff/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/fetch/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/log/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/pull/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/push/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/reset/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/revert/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/show/[commitHash]/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/stage/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/staged/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/stash/[index]/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/stash/apply/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/stash/pop/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/stash/push/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/stash/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/status/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/unstage/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/working-diff/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/instances/notes/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/instances/opencode/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/interrupt/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/kill-session/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/logs/[filename]/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/logs/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/marp-render/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/memos/[memoId]/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/memos/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/messages/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/opencode/diff/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/opencode/session/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/opencode/share/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/prompt-response/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/resolve-target/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/respond/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/schedules/[scheduleId]/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/schedules/active/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/schedules/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/search/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/send/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/git-workflow/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/install/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/plan/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/uninstall/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/uninstall-plan/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/update/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/update-plan/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/skills/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/slash-commands/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/special-keys/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/tasks/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/terminal/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/timers/history/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/timers/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/todos/[todoId]/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/todos/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/tree/[...path]/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/tree/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/upload/[...path]/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/verify/config/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/verify/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/verify/runs/[runId]/cancel/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/verify/runs/[runId]/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/verify/runs/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/viewed/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/apply-default-agents/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/chat/loading-c58ba2c3f4363277.js +0 -1
- package/.next/static/chunks/app/chat/page-bfc1f5bb17bd771d.js +0 -1
- package/.next/static/chunks/app/layout-114dc6e93e332392.js +0 -1
- package/.next/static/chunks/app/loading-c58ba2c3f4363277.js +0 -1
- package/.next/static/chunks/app/manifest.webmanifest/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/more/loading-c58ba2c3f4363277.js +0 -1
- package/.next/static/chunks/app/more/page-400ffa825f8f150e.js +0 -1
- package/.next/static/chunks/app/page-a4f03c188610c6c8.js +0 -1
- package/.next/static/chunks/app/proxy/[...path]/route-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/repositories/loading-c58ba2c3f4363277.js +0 -1
- package/.next/static/chunks/app/repositories/page-a15efb4ce1d1721e.js +0 -1
- package/.next/static/chunks/app/review/loading-c58ba2c3f4363277.js +0 -1
- package/.next/static/chunks/app/review/page-90ac618489676cbc.js +0 -1
- package/.next/static/chunks/app/sessions/loading-c58ba2c3f4363277.js +0 -1
- package/.next/static/chunks/app/sessions/page-fe42c8f6fd59b9e7.js +0 -1
- package/.next/static/chunks/app/skills/[skillId]/page-ce8f6fd9e4356580.js +0 -1
- package/.next/static/chunks/app/skills/installed/page-566dfde26d7e63ba.js +0 -1
- package/.next/static/chunks/app/skills/page-7859540e8092aace.js +0 -1
- package/.next/static/chunks/app/worktrees/[id]/layout-c4d2d5016c5f2a0a.js +0 -1
- package/.next/static/chunks/app/worktrees/[id]/loading-c58ba2c3f4363277.js +0 -1
- package/.next/static/chunks/app/worktrees/[id]/page-1eb4297af22afac8.js +0 -1
- package/.next/static/chunks/app/worktrees/[id]/terminal/page-2631bc5c4b0a9fb8.js +0 -1
- package/.next/static/css/ed092b853e52b5eb.css +0 -1
- package/.next/types/app/api/assistant/conversation/route.ts +0 -347
- package/.next/types/app/api/assistant/current-output/route.ts +0 -347
- package/.next/types/app/api/assistant/messages/route.ts +0 -347
- package/.next/types/app/api/assistant/session/route.ts +0 -347
- package/.next/types/app/api/assistant/start/route.ts +0 -347
- package/.next/types/app/api/assistant/terminal/route.ts +0 -347
- package/.next/types/app/api/repositories/[id]/todos/[todoId]/route.ts +0 -347
- package/.next/types/app/api/repositories/[id]/todos/route.ts +0 -347
- package/.next/types/app/api/todos/route.ts +0 -347
- package/.next/types/app/chat/page.ts +0 -84
- package/dist/server/src/lib/db/assistant-conversation-db.js +0 -428
- package/dist/server/src/lib/db/todo-db.js +0 -150
- package/dist/server/src/types/assistant.js +0 -5
- /package/.next/static/{DryXJ1-iHfWxfrHkkWVy8 → CqFH31RhKQbrRZXsMNosJ}/_ssgManifest.js +0 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";exports.id=8918,exports.ids=[8918],exports.modules={12462:(a,b,c)=>{c.d(b,{T8:()=>k,fT:()=>l,o4:()=>m});var d=c(31990),e=c(56791),f=c(43015),g=c(82450),h=c(15194);let i=(0,c(72626).h)("assistant-response-saver");function j(a){let b=a.split("\n"),c=b.length;for(;c>0&&""===b[c-1].trim();)c--;return c}function k(a,b){switch(b){case"claude":return(0,g.NN)(a);case"gemini":return(0,g.IS)(a);case"opencode":return(0,g.aW)(a);case"copilot":return(0,g.LH)(a);case"codex":case"command-code":case"antigravity":case"vibe-local":return(0,g.Te)(a,b);default:return a.trim()}}async function l(a){let{worktreeId:b,cliToolId:f}=a,g=a.instanceId??f;try{if((0,h.VA)(f))return null;let k=await (0,d.Wh)(b,f,1e4,a.instanceId);if(!k)return null;let l=j(k),{getDbInstance:m}=await Promise.resolve().then(c.bind(c,88807)),n=m(),o=(0,e.getSessionState)(n,b,g)?.lastCapturedLine||0;if(l<=o)return null;return(0,e.updateSessionState)(n,b,f,l,a.instanceId),i.info("transcript:cursor-advanced",{worktreeId:b,instanceId:g,from:o,to:l}),l}catch(a){return i.debug("transcript:cursor-advance-failed",{worktreeId:b,instanceId:g,error:a instanceof Error?a.message:String(a)}),null}}async function m(a,b,c,g,l){let m=l??c;try{let n;if((0,h.VA)(c))return null;let o=(0,e.getSessionState)(a,b,m),p=o?.lastCapturedLine||0;try{n=await (0,d.Wh)(b,c,1e4,l)}catch{return i.info("failed-to-capture"),null}if(!n)return null;let q=n.split("\n"),r=j(n),{bufferReset:s,reason:t}=r>0&&p>25&&r+25<p?{bufferReset:!0,reason:"shrink"}:r>0&&p>50&&r<50?{bufferReset:!0,reason:"restart"}:{bufferReset:!1,reason:null};s&&i.info("buffer:reset-detected",{reason:t,currentLineCount:r,lastCapturedLine:p});let u=s?0:p;if(!s&&r<=p)return r<p&&((0,e.updateSessionState)(a,b,c,r,l),i.info("position:corrected-stale",{from:p,to:r})),null;let v=q.slice(u).join("\n"),w=k(v,c);if(!w||""===w.trim())return(0,e.updateSessionState)(a,b,c,r,l),i.debug("response:empty-after-clean",{currentLineCount:r}),null;let x=new Date(g.getTime()-1),y=(0,e.createMessage)(a,{worktreeId:b,role:"assistant",content:w,messageType:"normal",timestamp:x,cliToolId:c,instanceId:m});return(0,e.updateSessionState)(a,b,c,r,l),(0,f.broadcastMessage)("message",{worktreeId:b,message:y}),i.info("response:saved",{fromLine:p,toLine:r}),y}catch(a){return i.error("error:",{error:a instanceof Error?a.message:String(a)}),null}}},13033:(a,b,c)=>{c.d(b,{IW:()=>h,IZ:()=>l,K0:()=>g,Uz:()=>m,l1:()=>f,o0:()=>i,q1:()=>n,tb:()=>k,vQ:()=>j});var d=c(85164);let e=globalThis.__tuiResponseAccumulator??(globalThis.__tuiResponseAccumulator=new Map);function f(a){return(0,d._A)((0,d.aJ)(a)).replace(/^\u2503\s?/,"").replace(/\s*\u2503$/,"").trim()}function g(a){let b=a.split("\n"),c=[];for(let a of b){let b=f(a);!(!b||d.sx.some(a=>a.test(b)))&&(d.Md.test(b)||c.push(b))}return c}function h(a){return a.replace(/[\u2500-\u257F]/g,"").replace(/\s{2,}/g," ").trim()}function i(a){let b=(0,d.aJ)(a).split("\n");if((0,d.gT)(b))return[];let c=(0,d.wv)(b),e=c>=0?b.slice(0,c):b,f=[],g=!1;for(let a of e){if(d.JN.test(a)){g=!1;continue}if(d.y.test(a))g=!0;else if(g){if(d.Fg.test(a))continue;g=!1}let b=h(a);b&&(d.J7.some(a=>a.test(b))||f.push(b))}return f}function j(a,b){if(0===a.length||0===b.length)return 0;let c=Math.min(a.length,b.length);for(let d=c;d>=1;d--){let c=a.slice(-d),e=b.slice(0,d),f=!0;for(let a=0;a<d;a++)if(c[a]!==e[a]){f=!1;break}if(f)return d}return 0}function k(a){e.set(a,{lines:[],lastFingerprint:[],pollCount:0})}function l(a,b,c="opencode"){let d=e.get(a);if(!d)return;let f="copilot"===c?i(b):g(b);if(0!==f.length){if(d.pollCount++,0===d.lines.length)d.lines=[...f];else{let a=j(d.lastFingerprint,f);if(a>0){let b=f.slice(a);d.lines.push(...b)}else d.lines.push(...f)}d.lastFingerprint=f.slice(-10)}}function m(a){let b=e.get(a);return b&&0!==b.lines.length?b.lines.join("\n"):""}function n(a){e.delete(a)}},18201:(a,b,c)=>{c.d(b,{Ce:()=>g,pk:()=>e});let d=(0,c(72626).h)("lib/history/user-turn-recorder");function e(a){return a.replace(/\r\n?/g,"\n").split("\n").map(a=>a.replace(/[ \t ]+$/u,"")).join("\n").trim()}function f(a){return{worktreeId:a.worktreeId,cliToolId:a.cliToolId,instanceId:a.instanceId??a.cliToolId}}async function g(a,b,h,i,j={}){let k=a.instanceId??a.cliToolId,l=e(h);if(0===b.length||0===l.length)return{outcome:"skipped",messageId:null,timestampMs:null};try{let[{getDbInstance:g},m,{broadcastMessage:n}]=await Promise.all([Promise.resolve().then(c.bind(c,88807)),Promise.resolve().then(c.bind(c,52660)),Promise.resolve().then(c.bind(c,43015))]),o=g(),p=m.findMessageByRequestId(o,a.worktreeId,b);if(p)return{outcome:"already-recorded",messageId:p.id,timestampMs:p.timestamp.getTime()};let q=i>0?i:Date.now(),r=function(a,b,c,g,h,i,j,k){var l,m,n;let o=Math.min(j-12e4,k.adoptionFromMs??1/0),p=(l=a.findUnkeyedUserMessages(b,{worktreeId:c.worktreeId,cliToolId:c.cliToolId,instanceId:g,fromMs:o,toMs:j+12e4,includeRelayDelivered:!0}),m=i,n=j,l.filter(a=>e(a.content)===m).sort((a,b)=>Math.abs(a.timestamp.getTime()-n)-Math.abs(b.timestamp.getTime()-n)));for(let e of p)if(!e.requestId&&a.setMessageRequestId(b,e.id,h))return d.info("user-turn-adopted",{...f(c),requestId:h,messageId:e.id,driftMs:e.timestamp.getTime()-j}),{outcome:"adopted",messageId:e.id,timestampMs:e.timestamp.getTime()};let q=p.find(a=>a.requestId);return q?(d.info("user-turn-already-relayed",{...f(c),requestId:h,messageId:q.id,relayRequestId:q.requestId??null,driftMs:q.timestamp.getTime()-j}),{outcome:"already-recorded",messageId:q.id,timestampMs:q.timestamp.getTime()}):null}(m,o,a,k,b,l,q,j);if(r)return r;let s=m.createMessage(o,{worktreeId:a.worktreeId,role:"user",content:h,messageType:"normal",timestamp:new Date(q),cliToolId:a.cliToolId,instanceId:k,requestId:b});return n("message",{worktreeId:a.worktreeId,message:s}),d.info("user-turn-recorded",{...f(a),requestId:b,contentLength:h.length}),{outcome:"inserted",messageId:s.id,timestampMs:q}}catch(c){return d.error("user-turn-record-failed",{...f(a),requestId:b,error:c instanceof Error?c.message:String(c)}),{outcome:"failed",messageId:null,timestampMs:null}}}},28918:(a,b,c)=>{c.r(b),c.d(b,{captureStructuredHistoryTurn:()=>a5,hasStructuredHistoryTranscript:()=>a6,isPullTranscriptHistory:()=>a3,isStructuredHistoryWriterLive:()=>a4,resetStructuredHistoryCaptureQueue:()=>a0});var d=c(72626),e=c(53163),f=c(79696),g=c(79748),h=c(21820),i=c(33873),j=c(24455);let k=(0,d.h)("lib/history/transcript-tail");async function l(a){let b;try{b=await (0,g.open)(a,"r");let{size:c}=await b.stat(),d=Math.max(0,c-4194304),e=c-d;if(e<=0)return"";let f=Buffer.alloc(e),{bytesRead:h}=await b.read(f,0,e,d),i=f.subarray(0,h).toString("utf8");if(0===d)return i;let j=i.indexOf("\n");return -1===j?"":i.slice(j+1)}catch(b){return k.warn("transcript-tail-read-failed",{path:a,error:b instanceof Error?b.message:String(b)}),null}finally{await b?.close().catch(()=>{})}}var m=c(18201),n=c(12462),o=c(86594),p=c(57510),q=c(27128);let r=["sessions"],s=".jsonl",t="\n\n_(truncated)_";function u(a){return a.replace(/\s+/g," ").trim()}function v(a){return a.length<=200?a:`${a.slice(0,199)}…`}let w=new Set(["ContextCompaction"]),x={CommandExecution:"exec",FileChange:"edit",McpToolCall:"mcp",ImageView:"view",Extension:"extension"};function y(a){return a.text?.trim()??""}let z=(0,d.h)("lib/hooks/sources/codex/history"),A=/^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,B=globalThis.__codexTranscriptSessions??=new Map,C=globalThis.__codexTranscriptPaths??=new Map;async function D(a){let b=(0,j.v7)(a.worktreeId,a.cliToolId,a.instanceId);try{let{getLastAgentEvent:d}=await Promise.resolve().then(c.bind(c,48083)),e=d(a.worktreeId,a.cliToolId,a.instanceId)?.sessionId;if("string"==typeof e&&e.length>0)return B.set(b,e),e}catch(b){z.debug("codex-transcript-session-lookup-failed",{worktreeId:a.worktreeId,instanceId:a.instanceId??a.cliToolId,error:b instanceof Error?b.message:String(b)})}return B.get(b)??null}function E(a=process.env){let b=a.CODEX_HOME;return"string"==typeof b&&b.length>0?b:(0,i.join)((0,h.homedir)(),".codex")}function F(a){return(0,i.join)(a,...r)}async function G(a,b,c=4){return A.test(b)?H(F(a),b,c):null}async function H(a,b,c){let d;if(c<=0)return null;try{d=await (0,g.readdir)(a,{withFileTypes:!0})}catch{return null}let e=[];for(let c of d){if(c.isFile()){var f;if(f=c.name,f.startsWith("rollout-")&&f.endsWith(`-${b}${s}`))return(0,i.join)(a,c.name);continue}c.isDirectory()&&e.push(c.name)}for(let d of(e.sort((a,b)=>a<b?1:a>b?-1:0),e)){let e=await H((0,i.join)(a,d),b,c-1);if(e)return e}return null}async function I(a,b={},c){let d=a.instanceId??a.cliToolId;try{let e=b.codexHome??E(),f=await D(a);if(!f)return z.debug("codex-transcript-unavailable",{worktreeId:a.worktreeId,instanceId:d,reason:"no-session-pointer"}),!1;let g=await L(e,f);if(!g)return z.debug("codex-transcript-unavailable",{worktreeId:a.worktreeId,instanceId:d,sessionId:f,reason:"no-file"}),!1;let h=await l(g);if(null===h)return!1;let i=function(a){let b=[],c=0;for(let d of a.split("\n")){let a;if(0===d.trim().length)continue;try{a=JSON.parse(d)}catch{c+=1;continue}let e=function(a){if(!(0,p.Qd)(a))return null;let b=(0,p.O2)(a,"type");if(!b)return null;let c=(0,p.Qd)(a.payload)?a.payload:null,d=c?(0,p.O2)(c,"type"):null,e=(0,p.O2)(a,"timestamp"),f=e?Date.parse(e):NaN;return{type:b,payloadType:d,turnId:c?(0,p.O2)(c,"turn_id"):null,sessionId:c?(0,p.O2)(c,"session_id")??(0,p.O2)(c,"thread_id"):null,timestampMs:Number.isFinite(f)?f:null,item:c&&"item_completed"===d?function(a){var b,c;if(!(0,p.Qd)(a))return null;let d=(0,p.O2)(a,"type");return d?{type:d,id:(0,p.O2)(a,"id"),text:(b=d,c=a,"UserMessage"===b||"AgentMessage"===b?function(a){if(!Array.isArray(a))return null;let b="";for(let c of a){if(!(0,p.Qd)(c))continue;let a=(0,p.O2)(c,"text");a&&(b+=a)}return b.length>0?b:null}(c.content):"Reasoning"===b?function(a){if(!Array.isArray(a))return null;let b=a.filter(a=>"string"==typeof a&&""!==a);return b.length>0?b.join("\n\n"):null}(c.summary_text):null),phase:(0,p.O2)(a,"phase"),detail:function(a,b){if("CommandExecution"===a){let a=function(a){if(!Array.isArray(a))return null;let b=[];for(let c of a){if(!(0,p.Qd)(c))continue;let a=(0,p.O2)(c,"cmd");a&&b.push(a)}return b.length>0?b.join(" ; "):null}(b.parsed_cmd);if(a)return v(u(a));let c=function(a){if(!Array.isArray(a))return null;let b=a.filter(a=>"string"==typeof a);return b.length>0?b.join(" "):null}(b.command);return c?v(u(c)):null}if("FileChange"===a){let a=b.changes;if(!(0,p.Qd)(a))return null;let c=Object.keys(a);return c.length>0?v(c.join(", ")):null}if("McpToolCall"===a){let a=(0,p.O2)(b,"server"),c=(0,p.O2)(b,"tool");return a||c?v([a,c].filter(Boolean).join(".")):null}if("ImageView"===a){let a=(0,p.O2)(b,"path");return a?v(a):null}if("Extension"===a){let a=(0,p.O2)(b,"query")??(0,p.O2)(b,"action");return a?v(u(a)):null}return null}(d,a)}:null}(c.item):null}}(a);e?b.push(e):c+=1}return{records:b,malformedLines:c}}(h),j=function(a,b){let c=new Map,d=0,e=0,f=null;for(let g of a){if("session_meta"===g.type&&g.sessionId&&(f=g.sessionId),"response_item"===g.type){d+=1;continue}let a=g.turnId;if(!a){e+=1;continue}let h=c.get(a);if(h||(h={sessionId:g.sessionId??f??b,turnId:a,startedAt:g.timestampMs??0,prompts:[],items:[],started:!1,closed:!1,overflowed:!1},c.set(a,h)),"task_started"===g.payloadType){h.started=!0;continue}if("task_complete"===g.payloadType){h.closed=!0;continue}let i=g.item;if(i){if("UserMessage"===i.type){i.id&&i.text&&h.prompts.push({itemId:i.id,text:i.text,timestampMs:g.timestampMs??h.startedAt});continue}if(h.items.length>=2048){h.overflowed=!0;continue}h.items.push(i)}}return{turns:[...c.values()],duplicateStreamRecords:d,turnlessRecords:e}}(i.records,f);if(0===j.turns.length)return z.info("codex-transcript-no-turn",{worktreeId:a.worktreeId,instanceId:d,path:g,records:i.records.length,malformedLines:i.malformedLines,duplicateStreamRecords:j.duplicateStreamRecords}),!1;i.malformedLines>0&&z.info("codex-transcript-partial-read",{worktreeId:a.worktreeId,instanceId:d,path:g,malformedLines:i.malformedLines,turnlessRecords:j.turnlessRecords,duplicateStreamRecords:j.duplicateStreamRecords});let k=await K(a,j.turns);if(0===k.turns.length)return z.debug("codex-transcript-turns-already-saved",{worktreeId:a.worktreeId,instanceId:d,turnsInWindow:j.turns.length}),await (0,n.fT)(a),!0;k.turns.length>1&&z.info("codex-transcript-backfilling-turns",{worktreeId:a.worktreeId,instanceId:d,path:g,pendingTurns:k.turns.length,turnsInWindow:j.turns.length,anchored:k.anchored});let m=[];for(let b=0;b<k.turns.length;b+=1){let c=0===b?k.previousStartedAt:k.turns[b-1].startedAt;m.push(await N(a,k.turns[b],c))}let o={path:g,firstRecordAt:function(a){for(let b of a)if(null!==b.timestampMs)return b.timestampMs;return null}(i.records),turnlessRecords:j.turnlessRecords,malformedLines:i.malformedLines},r=function(a){let b=new Map;for(let c of a){if("response_item"===c.type)continue;let a=c.turnId;a&&null!==c.timestampMs&&c.timestampMs>(b.get(a)??0)&&b.set(a,c.timestampMs)}return b}(i.records),s=!1;for(let b=0;b<k.turns.length;b+=1){let d=k.turns[b];s=await O(a,d,function(a){let b=[],c=new Set,d=0,e=0,f=a.items.some(a=>"AgentMessage"===a.type&&"final_answer"===a.phase&&y(a).length>0);for(let g of a.items){if("AgentMessage"===g.type){let a=y(g);if(0===a.length)continue;let c=f&&"commentary"===g.phase;b.push({kind:c?"reasoning":"prose",text:a}),d+=1;continue}if("Reasoning"===g.type){let a=g.text?.trim()??"";if(0===a.length)continue;b.push({kind:"aside",text:function(a){let b=a.trim().split("\n").map(a=>a.length>0?`> ${a}`:">").join("\n");return`> **Thinking**
|
|
1
|
+
"use strict";exports.id=8918,exports.ids=[8918],exports.modules={12462:(a,b,c)=>{c.d(b,{fT:()=>k,o4:()=>l});var d=c(31990),e=c(56791),f=c(43015),g=c(82450),h=c(15194);let i=(0,c(72626).h)("assistant-response-saver");function j(a){let b=a.split("\n"),c=b.length;for(;c>0&&""===b[c-1].trim();)c--;return c}async function k(a){let{worktreeId:b,cliToolId:f}=a,g=a.instanceId??f;try{if((0,h.VA)(f))return null;let k=await (0,d.Wh)(b,f,1e4,a.instanceId);if(!k)return null;let l=j(k),{getDbInstance:m}=await Promise.resolve().then(c.bind(c,88807)),n=m(),o=(0,e.getSessionState)(n,b,g)?.lastCapturedLine||0;if(l<=o)return null;return(0,e.updateSessionState)(n,b,f,l,a.instanceId),i.info("transcript:cursor-advanced",{worktreeId:b,instanceId:g,from:o,to:l}),l}catch(a){return i.debug("transcript:cursor-advance-failed",{worktreeId:b,instanceId:g,error:a instanceof Error?a.message:String(a)}),null}}async function l(a,b,c,k,l){let m=l??c;try{let n;if((0,h.VA)(c))return null;let o=(0,e.getSessionState)(a,b,m),p=o?.lastCapturedLine||0;try{n=await (0,d.Wh)(b,c,1e4,l)}catch{return i.info("failed-to-capture"),null}if(!n)return null;let q=n.split("\n"),r=j(n),{bufferReset:s,reason:t}=r>0&&p>25&&r+25<p?{bufferReset:!0,reason:"shrink"}:r>0&&p>50&&r<50?{bufferReset:!0,reason:"restart"}:{bufferReset:!1,reason:null};s&&i.info("buffer:reset-detected",{reason:t,currentLineCount:r,lastCapturedLine:p});let u=s?0:p;if(!s&&r<=p)return r<p&&((0,e.updateSessionState)(a,b,c,r,l),i.info("position:corrected-stale",{from:p,to:r})),null;let v=q.slice(u).join("\n"),w=function(a,b){switch(b){case"claude":return(0,g.NN)(a);case"gemini":return(0,g.IS)(a);case"opencode":return(0,g.aW)(a);case"copilot":return(0,g.LH)(a);case"codex":case"command-code":case"antigravity":case"vibe-local":return(0,g.Te)(a,b);default:return a.trim()}}(v,c);if(!w||""===w.trim())return(0,e.updateSessionState)(a,b,c,r,l),i.debug("response:empty-after-clean",{currentLineCount:r}),null;let x=new Date(k.getTime()-1),y=(0,e.createMessage)(a,{worktreeId:b,role:"assistant",content:w,messageType:"normal",timestamp:x,cliToolId:c,instanceId:m});return(0,e.updateSessionState)(a,b,c,r,l),(0,f.broadcastMessage)("message",{worktreeId:b,message:y}),i.info("response:saved",{fromLine:p,toLine:r}),y}catch(a){return i.error("error:",{error:a instanceof Error?a.message:String(a)}),null}}},13033:(a,b,c)=>{c.d(b,{IW:()=>h,IZ:()=>l,K0:()=>g,Uz:()=>m,l1:()=>f,o0:()=>i,q1:()=>n,tb:()=>k,vQ:()=>j});var d=c(85164);let e=globalThis.__tuiResponseAccumulator??(globalThis.__tuiResponseAccumulator=new Map);function f(a){return(0,d._A)((0,d.aJ)(a)).replace(/^\u2503\s?/,"").replace(/\s*\u2503$/,"").trim()}function g(a){let b=a.split("\n"),c=[];for(let a of b){let b=f(a);!(!b||d.sx.some(a=>a.test(b)))&&(d.Md.test(b)||c.push(b))}return c}function h(a){return a.replace(/[\u2500-\u257F]/g,"").replace(/\s{2,}/g," ").trim()}function i(a){let b=(0,d.aJ)(a).split("\n");if((0,d.gT)(b))return[];let c=(0,d.wv)(b),e=c>=0?b.slice(0,c):b,f=[],g=!1;for(let a of e){if(d.JN.test(a)){g=!1;continue}if(d.y.test(a))g=!0;else if(g){if(d.Fg.test(a))continue;g=!1}let b=h(a);b&&(d.J7.some(a=>a.test(b))||f.push(b))}return f}function j(a,b){if(0===a.length||0===b.length)return 0;let c=Math.min(a.length,b.length);for(let d=c;d>=1;d--){let c=a.slice(-d),e=b.slice(0,d),f=!0;for(let a=0;a<d;a++)if(c[a]!==e[a]){f=!1;break}if(f)return d}return 0}function k(a){e.set(a,{lines:[],lastFingerprint:[],pollCount:0})}function l(a,b,c="opencode"){let d=e.get(a);if(!d)return;let f="copilot"===c?i(b):g(b);if(0!==f.length){if(d.pollCount++,0===d.lines.length)d.lines=[...f];else{let a=j(d.lastFingerprint,f);if(a>0){let b=f.slice(a);d.lines.push(...b)}else d.lines.push(...f)}d.lastFingerprint=f.slice(-10)}}function m(a){let b=e.get(a);return b&&0!==b.lines.length?b.lines.join("\n"):""}function n(a){e.delete(a)}},18201:(a,b,c)=>{c.d(b,{Ce:()=>g,pk:()=>e});let d=(0,c(72626).h)("lib/history/user-turn-recorder");function e(a){return a.replace(/\r\n?/g,"\n").split("\n").map(a=>a.replace(/[ \t ]+$/u,"")).join("\n").trim()}function f(a){return{worktreeId:a.worktreeId,cliToolId:a.cliToolId,instanceId:a.instanceId??a.cliToolId}}async function g(a,b,h,i,j={}){let k=a.instanceId??a.cliToolId,l=e(h);if(0===b.length||0===l.length)return{outcome:"skipped",messageId:null,timestampMs:null};try{let[{getDbInstance:g},m,{broadcastMessage:n}]=await Promise.all([Promise.resolve().then(c.bind(c,88807)),Promise.resolve().then(c.bind(c,52660)),Promise.resolve().then(c.bind(c,43015))]),o=g(),p=m.findMessageByRequestId(o,a.worktreeId,b);if(p)return{outcome:"already-recorded",messageId:p.id,timestampMs:p.timestamp.getTime()};let q=i>0?i:Date.now(),r=function(a,b,c,g,h,i,j,k){var l,m,n;let o=Math.min(j-12e4,k.adoptionFromMs??1/0),p=(l=a.findUnkeyedUserMessages(b,{worktreeId:c.worktreeId,cliToolId:c.cliToolId,instanceId:g,fromMs:o,toMs:j+12e4,includeRelayDelivered:!0}),m=i,n=j,l.filter(a=>e(a.content)===m).sort((a,b)=>Math.abs(a.timestamp.getTime()-n)-Math.abs(b.timestamp.getTime()-n)));for(let e of p)if(!e.requestId&&a.setMessageRequestId(b,e.id,h))return d.info("user-turn-adopted",{...f(c),requestId:h,messageId:e.id,driftMs:e.timestamp.getTime()-j}),{outcome:"adopted",messageId:e.id,timestampMs:e.timestamp.getTime()};let q=p.find(a=>a.requestId);return q?(d.info("user-turn-already-relayed",{...f(c),requestId:h,messageId:q.id,relayRequestId:q.requestId??null,driftMs:q.timestamp.getTime()-j}),{outcome:"already-recorded",messageId:q.id,timestampMs:q.timestamp.getTime()}):null}(m,o,a,k,b,l,q,j);if(r)return r;let s=m.createMessage(o,{worktreeId:a.worktreeId,role:"user",content:h,messageType:"normal",timestamp:new Date(q),cliToolId:a.cliToolId,instanceId:k,requestId:b});return n("message",{worktreeId:a.worktreeId,message:s}),d.info("user-turn-recorded",{...f(a),requestId:b,contentLength:h.length}),{outcome:"inserted",messageId:s.id,timestampMs:q}}catch(c){return d.error("user-turn-record-failed",{...f(a),requestId:b,error:c instanceof Error?c.message:String(c)}),{outcome:"failed",messageId:null,timestampMs:null}}}},28918:(a,b,c)=>{c.r(b),c.d(b,{captureStructuredHistoryTurn:()=>a5,hasStructuredHistoryTranscript:()=>a6,isPullTranscriptHistory:()=>a3,isStructuredHistoryWriterLive:()=>a4,resetStructuredHistoryCaptureQueue:()=>a0});var d=c(72626),e=c(53163),f=c(79696),g=c(79748),h=c(21820),i=c(33873),j=c(24455);let k=(0,d.h)("lib/history/transcript-tail");async function l(a){let b;try{b=await (0,g.open)(a,"r");let{size:c}=await b.stat(),d=Math.max(0,c-4194304),e=c-d;if(e<=0)return"";let f=Buffer.alloc(e),{bytesRead:h}=await b.read(f,0,e,d),i=f.subarray(0,h).toString("utf8");if(0===d)return i;let j=i.indexOf("\n");return -1===j?"":i.slice(j+1)}catch(b){return k.warn("transcript-tail-read-failed",{path:a,error:b instanceof Error?b.message:String(b)}),null}finally{await b?.close().catch(()=>{})}}var m=c(18201),n=c(12462),o=c(86594),p=c(57510),q=c(27128);let r=["sessions"],s=".jsonl",t="\n\n_(truncated)_";function u(a){return a.replace(/\s+/g," ").trim()}function v(a){return a.length<=200?a:`${a.slice(0,199)}…`}let w=new Set(["ContextCompaction"]),x={CommandExecution:"exec",FileChange:"edit",McpToolCall:"mcp",ImageView:"view",Extension:"extension"};function y(a){return a.text?.trim()??""}let z=(0,d.h)("lib/hooks/sources/codex/history"),A=/^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$/,B=globalThis.__codexTranscriptSessions??=new Map,C=globalThis.__codexTranscriptPaths??=new Map;async function D(a){let b=(0,j.v7)(a.worktreeId,a.cliToolId,a.instanceId);try{let{getLastAgentEvent:d}=await Promise.resolve().then(c.bind(c,48083)),e=d(a.worktreeId,a.cliToolId,a.instanceId)?.sessionId;if("string"==typeof e&&e.length>0)return B.set(b,e),e}catch(b){z.debug("codex-transcript-session-lookup-failed",{worktreeId:a.worktreeId,instanceId:a.instanceId??a.cliToolId,error:b instanceof Error?b.message:String(b)})}return B.get(b)??null}function E(a=process.env){let b=a.CODEX_HOME;return"string"==typeof b&&b.length>0?b:(0,i.join)((0,h.homedir)(),".codex")}function F(a){return(0,i.join)(a,...r)}async function G(a,b,c=4){return A.test(b)?H(F(a),b,c):null}async function H(a,b,c){let d;if(c<=0)return null;try{d=await (0,g.readdir)(a,{withFileTypes:!0})}catch{return null}let e=[];for(let c of d){if(c.isFile()){var f;if(f=c.name,f.startsWith("rollout-")&&f.endsWith(`-${b}${s}`))return(0,i.join)(a,c.name);continue}c.isDirectory()&&e.push(c.name)}for(let d of(e.sort((a,b)=>a<b?1:a>b?-1:0),e)){let e=await H((0,i.join)(a,d),b,c-1);if(e)return e}return null}async function I(a,b={},c){let d=a.instanceId??a.cliToolId;try{let e=b.codexHome??E(),f=await D(a);if(!f)return z.debug("codex-transcript-unavailable",{worktreeId:a.worktreeId,instanceId:d,reason:"no-session-pointer"}),!1;let g=await L(e,f);if(!g)return z.debug("codex-transcript-unavailable",{worktreeId:a.worktreeId,instanceId:d,sessionId:f,reason:"no-file"}),!1;let h=await l(g);if(null===h)return!1;let i=function(a){let b=[],c=0;for(let d of a.split("\n")){let a;if(0===d.trim().length)continue;try{a=JSON.parse(d)}catch{c+=1;continue}let e=function(a){if(!(0,p.Qd)(a))return null;let b=(0,p.O2)(a,"type");if(!b)return null;let c=(0,p.Qd)(a.payload)?a.payload:null,d=c?(0,p.O2)(c,"type"):null,e=(0,p.O2)(a,"timestamp"),f=e?Date.parse(e):NaN;return{type:b,payloadType:d,turnId:c?(0,p.O2)(c,"turn_id"):null,sessionId:c?(0,p.O2)(c,"session_id")??(0,p.O2)(c,"thread_id"):null,timestampMs:Number.isFinite(f)?f:null,item:c&&"item_completed"===d?function(a){var b,c;if(!(0,p.Qd)(a))return null;let d=(0,p.O2)(a,"type");return d?{type:d,id:(0,p.O2)(a,"id"),text:(b=d,c=a,"UserMessage"===b||"AgentMessage"===b?function(a){if(!Array.isArray(a))return null;let b="";for(let c of a){if(!(0,p.Qd)(c))continue;let a=(0,p.O2)(c,"text");a&&(b+=a)}return b.length>0?b:null}(c.content):"Reasoning"===b?function(a){if(!Array.isArray(a))return null;let b=a.filter(a=>"string"==typeof a&&""!==a);return b.length>0?b.join("\n\n"):null}(c.summary_text):null),phase:(0,p.O2)(a,"phase"),detail:function(a,b){if("CommandExecution"===a){let a=function(a){if(!Array.isArray(a))return null;let b=[];for(let c of a){if(!(0,p.Qd)(c))continue;let a=(0,p.O2)(c,"cmd");a&&b.push(a)}return b.length>0?b.join(" ; "):null}(b.parsed_cmd);if(a)return v(u(a));let c=function(a){if(!Array.isArray(a))return null;let b=a.filter(a=>"string"==typeof a);return b.length>0?b.join(" "):null}(b.command);return c?v(u(c)):null}if("FileChange"===a){let a=b.changes;if(!(0,p.Qd)(a))return null;let c=Object.keys(a);return c.length>0?v(c.join(", ")):null}if("McpToolCall"===a){let a=(0,p.O2)(b,"server"),c=(0,p.O2)(b,"tool");return a||c?v([a,c].filter(Boolean).join(".")):null}if("ImageView"===a){let a=(0,p.O2)(b,"path");return a?v(a):null}if("Extension"===a){let a=(0,p.O2)(b,"query")??(0,p.O2)(b,"action");return a?v(u(a)):null}return null}(d,a)}:null}(c.item):null}}(a);e?b.push(e):c+=1}return{records:b,malformedLines:c}}(h),j=function(a,b){let c=new Map,d=0,e=0,f=null;for(let g of a){if("session_meta"===g.type&&g.sessionId&&(f=g.sessionId),"response_item"===g.type){d+=1;continue}let a=g.turnId;if(!a){e+=1;continue}let h=c.get(a);if(h||(h={sessionId:g.sessionId??f??b,turnId:a,startedAt:g.timestampMs??0,prompts:[],items:[],started:!1,closed:!1,overflowed:!1},c.set(a,h)),"task_started"===g.payloadType){h.started=!0;continue}if("task_complete"===g.payloadType){h.closed=!0;continue}let i=g.item;if(i){if("UserMessage"===i.type){i.id&&i.text&&h.prompts.push({itemId:i.id,text:i.text,timestampMs:g.timestampMs??h.startedAt});continue}if(h.items.length>=2048){h.overflowed=!0;continue}h.items.push(i)}}return{turns:[...c.values()],duplicateStreamRecords:d,turnlessRecords:e}}(i.records,f);if(0===j.turns.length)return z.info("codex-transcript-no-turn",{worktreeId:a.worktreeId,instanceId:d,path:g,records:i.records.length,malformedLines:i.malformedLines,duplicateStreamRecords:j.duplicateStreamRecords}),!1;i.malformedLines>0&&z.info("codex-transcript-partial-read",{worktreeId:a.worktreeId,instanceId:d,path:g,malformedLines:i.malformedLines,turnlessRecords:j.turnlessRecords,duplicateStreamRecords:j.duplicateStreamRecords});let k=await K(a,j.turns);if(0===k.turns.length)return z.debug("codex-transcript-turns-already-saved",{worktreeId:a.worktreeId,instanceId:d,turnsInWindow:j.turns.length}),await (0,n.fT)(a),!0;k.turns.length>1&&z.info("codex-transcript-backfilling-turns",{worktreeId:a.worktreeId,instanceId:d,path:g,pendingTurns:k.turns.length,turnsInWindow:j.turns.length,anchored:k.anchored});let m=[];for(let b=0;b<k.turns.length;b+=1){let c=0===b?k.previousStartedAt:k.turns[b-1].startedAt;m.push(await N(a,k.turns[b],c))}let o={path:g,firstRecordAt:function(a){for(let b of a)if(null!==b.timestampMs)return b.timestampMs;return null}(i.records),turnlessRecords:j.turnlessRecords,malformedLines:i.malformedLines},r=function(a){let b=new Map;for(let c of a){if("response_item"===c.type)continue;let a=c.turnId;a&&null!==c.timestampMs&&c.timestampMs>(b.get(a)??0)&&b.set(a,c.timestampMs)}return b}(i.records),s=!1;for(let b=0;b<k.turns.length;b+=1){let d=k.turns[b];s=await O(a,d,function(a){let b=[],c=new Set,d=0,e=0,f=a.items.some(a=>"AgentMessage"===a.type&&"final_answer"===a.phase&&y(a).length>0);for(let g of a.items){if("AgentMessage"===g.type){let a=y(g);if(0===a.length)continue;let c=f&&"commentary"===g.phase;b.push({kind:c?"reasoning":"prose",text:a}),d+=1;continue}if("Reasoning"===g.type){let a=g.text?.trim()??"";if(0===a.length)continue;b.push({kind:"aside",text:function(a){let b=a.trim().split("\n").map(a=>a.length>0?`> ${a}`:">").join("\n");return`> **Thinking**
|
|
2
2
|
>
|
|
3
3
|
${b}`}(a)});continue}if(g.type in x){b.push({kind:"tool",text:function(a){let b=x[a.type]??a.type;return a.detail?`- \`${b}\` — ${a.detail}`:`- \`${b}\``}(g)}),e+=1;continue}w.has(g.type)||c.add(g.type)}let g=(0,q.t3)(b).body;return!a.started&&g.length>0&&(g="_(head truncated)_\n\n"+g),g.length>2e5&&(g=g.slice(0,2e5-t.length)+t),{sessionId:a.sessionId,turnId:a.turnId,body:g,headless:!a.started,textBlocks:d,toolBlocks:e,unknownBlockTypes:[...c]}}(d),function(a,b,c=0,d=null){let e=null===b.timestampMs?a.startedAt:Math.max(a.startedAt,b.timestampMs+1);return Math.max(e,Math.min(c,null===d?1/0:d-1))}(d,m[b],r.get(d.turnId)??0,function(a,b,c){let d=a[c+1];return d?b[c+1]?.timestampMs??d.startedAt:null}(k.turns,m,b)),o,c)}return s&&await (0,n.fT)(a),s}catch(b){return z.error("codex-transcript-capture-failed",{worktreeId:a.worktreeId,instanceId:d,error:b instanceof Error?b.message:String(b)}),!1}}async function J(a,b={}){try{let c=await D(a);if(!c)return null;return await L(b.codexHome??E(),c)}catch{return null}}async function K(a,b){let[{getDbInstance:d},{findMessageByRequestId:e}]=await Promise.all([Promise.resolve().then(c.bind(c,88807)),Promise.resolve().then(c.bind(c,56791))]),f=d();for(let c=b.length-1;c>=0;c-=1){let d=(0,o.ZS)(b[c].turnId);if(e(f,a.worktreeId,d))return{turns:b.slice(c+1),previousStartedAt:b[c].startedAt,anchored:!0}}return{turns:b.slice(-1),previousStartedAt:b.length>1?b[b.length-2].startedAt:0,anchored:!1}}async function L(a,b){let c=`${a}\0${b}`,d=C.get(c);if(d&&await M(d))return d;d&&C.delete(c);let e=await G(a,b);if(!e)return null;let f=function(a,b){if(!b.endsWith(s)||b.includes("\0"))return null;let c=(0,i.resolve)(F(a)),d=(0,i.resolve)(b);return d===c||d.startsWith(c+i.sep)?d:null}(a,e);return f?(C.set(c,f),f):null}async function M(a){try{return(await (0,g.stat)(a)).isFile()}catch{return!1}}async function N(a,b,c=0){let d=a.instanceId??a.cliToolId,e={outcome:"skipped",messageId:null,timestampMs:null},f=c>0?{adoptionFromMs:c}:{};for(let c of b.prompts){let g=await (0,m.Ce)(a,(0,o.Ac)(c.itemId),c.text,c.timestampMs,f);if("failed"===g.outcome){z.warn("codex-transcript-user-turn-failed",{worktreeId:a.worktreeId,instanceId:d,sessionId:b.sessionId,turnId:b.turnId,promptItemId:c.itemId});continue}e=g}return e}async function O(a,b,d,e,f,g){let h=a.instanceId??a.cliToolId;if(g&&(g.outcome=void 0),!b.closed)return g&&(g.outcome="not_yet_closed"),z.info("codex-transcript-turn-open",{worktreeId:a.worktreeId,instanceId:h,sessionId:d.sessionId,turnId:d.turnId,items:b.items.length}),!1;if(0===d.body.length)return z.info("codex-transcript-turn-empty",{worktreeId:a.worktreeId,instanceId:h,sessionId:d.sessionId,turnId:d.turnId}),!1;d.unknownBlockTypes.length>0&&z.info("codex-transcript-unknown-items",{worktreeId:a.worktreeId,instanceId:h,sessionId:d.sessionId,turnId:d.turnId,itemTypes:d.unknownBlockTypes}),b.overflowed&&z.info("codex-transcript-turn-overflowed",{worktreeId:a.worktreeId,instanceId:h,sessionId:d.sessionId,turnId:d.turnId});let i=(0,o.ZS)(d.turnId),[{getDbInstance:j},{createMessage:k,findMessageByRequestId:l},{broadcastMessage:m}]=await Promise.all([Promise.resolve().then(c.bind(c,88807)),Promise.resolve().then(c.bind(c,56791)),Promise.resolve().then(c.bind(c,43015))]),n=j();if(l(n,a.worktreeId,i))return z.debug("codex-transcript-turn-already-saved",{worktreeId:a.worktreeId,instanceId:h,requestId:i}),!0;d.headless&&z.info("codex-transcript-turn-headless",{worktreeId:a.worktreeId,instanceId:h,sessionId:d.sessionId,turnId:d.turnId,path:f.path,windowBytes:4194304,windowFirstRecordAt:f.firstRecordAt,turnlessRecords:f.turnlessRecords,malformedLines:f.malformedLines,promptsInWindow:b.prompts.length,itemsInWindow:b.items.length});let p=k(n,{worktreeId:a.worktreeId,role:"assistant",content:d.body,messageType:"normal",timestamp:new Date(e>0?e:Date.now()),cliToolId:a.cliToolId,instanceId:h,requestId:i});return m("message",{worktreeId:a.worktreeId,message:p}),z.info("codex-transcript-turn-saved",{worktreeId:a.worktreeId,instanceId:h,sessionId:d.sessionId,requestId:i,path:f.path,bodyLength:d.body.length,textBlocks:d.textBlocks,toolBlocks:d.toolBlocks,prompts:b.prompts.length}),!0}let P=[".system_generated","logs","transcript_full.jsonl"],Q="\n\n_(truncated)_",R="MODEL",S="PLANNER_RESPONSE",T=new Set(["RUN_COMMAND","VIEW_FILE","LIST_DIRECTORY","GREP_SEARCH","SEARCH_WEB","CODE_ACTION","GENERATE_IMAGE","GENERIC"]),U=new Set(["CHECKPOINT","CONVERSATION_HISTORY","SYSTEM_MESSAGE","EPHEMERAL_MESSAGE","ERROR_MESSAGE"]);function V(a){return a.closed||a.superseded}function W(a){let b=[],c=new Set,d=0,e=0;for(let f of a.records){if(f.source===R&&f.type===S){let a=f.thinking?.trim()??"";a.length>0&&b.push({kind:"aside",text:function(a){let b=a.trim().split("\n").map(a=>a.length>0?`> ${a}`:">").join("\n");return`> **Thinking**
|
|
4
4
|
>
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
"use strict";exports.id=9130,exports.ids=[9130],exports.modules={129:(a,b,c)=>{c.d(b,{VM:()=>
|
|
2
|
-
`,{mode:384})}var D=c(77904);let E=(0,x.h)("lib/hooks/sources/gemini/settings-generator"),F=1e3*g.W6,G=[["SessionStart","session_start"],["BeforeAgent","user_prompt_submit"],["AfterAgent","stop"],["Notification","notification"],["SessionEnd","session_end"]];function H(a,b){return a.includes("cmate-agent-event.sh")&&a.includes(`--tool ${D.o}`)&&a.includes(`--worktree-id ${(0,g.ZL)(b)}`)}let I=(0,h.UB)({cliToolId:D.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",transcriptHistory:null},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)(v[c]??c)},parsePermissionRequest:()=>null,parseQuestion:()=>null,encodeVerdict:()=>({}),prepareLaunch:function({target:a,executablePath:b,worktreePath:c}){let d={worktreeId:a.worktreeId,instanceId:a.instanceId,cliToolId:D.o},e=(0,u.n6)(a.instanceId??D.o)?function(a,b){if(!(0,g.q)())return null;let c=(0,g.Os)();if(!c)return E.warn("gemini-hook-relay-missing",{worktreeId:b.worktreeId}),null;let d=(0,w.join)(a,".gemini","settings.json");try{let a=B(d),e=function(a,b){let c={};for(let[e,f]of G){var d;c[e]=[{hooks:[{type:"command",command:(d=b.worktreeId,[(0,g.ZL)(a),"--tool",D.o,"--event",f,"--worktree-id",(0,g.ZL)(d),"--stdin-json"].join(" ")),timeout:F}]}]}return c}(c,b);return C(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&&H(a.command,b)):"string"==typeof a.command&&H(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 E.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,u.n6)((0,g.g5)(b)))return E.warn("gemini-hook-invalid-instance-id",{worktreeId:b.worktreeId}),{command:a,env:{}};let d=(0,g.xM)({...b,cliToolId:D.o},c);return{command:(0,g.ZL)(a),env:{[y.ZM]:d}}}(b,d);return{command:f,settingsPath:e,env:h}}});var J=c(21820),K=c(76835);let L=(0,x.h)("lib/hooks/sources/antigravity/hooks-config"),M=[["SessionStart","session_start"],["PostToolUse","post_tool_use"],["Stop","stop"]],N="CM_PERMISSION_HOOK_URL",O=g.sI,P=new Set(["PreToolUse","PostToolUse"]),Q={decision:"ask"},R=(0,h.UB)({cliToolId:K.F,noDecision:{kind:"proceeds"},capabilities:{supportedEvents:["session_start","post_tool_use","stop"],configScope:"global-singleton",decisionTimeoutSeconds:O,permissionHookPredictsDialog:!1,sessionStartMayArriveLate:!1,permissionReplyReleasesPrompt:!1,eventIdentity:null,resync:"none",transcriptHistory:"pull"},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??""}:{...Q}},prepareLaunch:({target:a,executablePath:b})=>{let c=function(a={}){if(!(0,g.q)())return null;let b=(0,g.Os)();if(!b)return L.warn("antigravity-hook-relay-missing"),null;let c=function(a={}){return a.path??(0,w.join)((0,J.homedir)(),".gemini","config","hooks.json")}(a);try{var d;let a=B(c);return C(c,(d=function(a){let b={};for(let[c,d]of M){let e={type:"command",command:[(0,g.ZL)(a),"--tool",K.F,"--event",d,"--stdin-json"].join(" "),timeout:g.W6};b[c]=P.has(c)?[{matcher:"*",hooks:[e]}]:[e]}return b.PreToolUse=[{matcher:"*",hooks:[{type:"command",command:function(){let a=`"$${N}"`,b=`printf '%s' ${(0,g.ZL)('{"decision":"ask"}')}`;return`if [ -z "\${${N}:-}" ]; 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 L.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,u.n6)((0,g.g5)(b)))return L.warn("antigravity-hook-invalid-instance-id",{worktreeId:b.worktreeId}),{command:a,env:{}};let d={...b,cliToolId:K.F};return{command:(0,g.ZL)(a),env:{[y.ZM]:(0,g.xM)(d,c),[N]:(0,g.O$)(d,c)}}}(b,{worktreeId:a.worktreeId,instanceId:a.instanceId,cliToolId:K.F});return{command:d,settingsPath:c,env:e}}});var S=c(99432),T=c(2734);let U={},V=(0,h.UB)({cliToolId:T.c,noDecision:{kind:"proceeds"},capabilities:{supportedEvents:S.JD,configScope:"global-singleton",decisionTimeoutSeconds:5,permissionHookPredictsDialog:!0,sessionStartMayArriveLate:!1,permissionReplyReleasesPrompt:!1,eventIdentity:null,resync:"none",transcriptHistory:"pull"},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:S.l1,decision:{behavior:"allow"}}}:"deny"===a.kind?{hookSpecificOutput:{hookEventName:S.l1,decision:{behavior:"deny",message:a.message??""}}}:U},prepareLaunch:({target:a,executablePath:b})=>(0,S.S9)(b,a)});var W=c(85965),X=c(28862);let Y=(0,x.h)("lib/hooks/sources/command-code/hooks-config"),Z=[["SessionStart","session_start"],["PreToolUse","pre_tool_use"],["PostToolUse","post_tool_use"],["Stop","stop"]],$=g.W6;function _(a,b){return a.includes("cmate-agent-event.sh")&&a.includes(`--tool ${X.k}`)&&a.includes(`--worktree-id ${(0,g.ZL)(b)}`)}let aa=(0,h.UB)({cliToolId:X.k,noDecision:{kind:"proceeds"},capabilities:{supportedEvents:["session_start","pre_tool_use","post_tool_use","stop"],configScope:"per-worktree",decisionTimeoutSeconds:null,permissionHookPredictsDialog:!1,sessionStartMayArriveLate:!1,permissionReplyReleasesPrompt:!1,eventIdentity:null,resync:"none",transcriptHistory:"pull"},mappers:(0,i.mJ)({SessionStart:"session_start",PreToolUse:"pre_tool_use",PostToolUse:"post_tool_use",Stop:"stop"}),nativeEventNameFields:["hook_event_name"],conversationIdFields:["session_id"],toolCallIdFields:j.ue,extractDetail:j.Jp,parsePermissionRequest:()=>null,parseQuestion:()=>null,encodeVerdict:function(a){return{}},prepareLaunch:({target:a,executablePath:b,worktreePath:c})=>{let d={worktreeId:a.worktreeId,instanceId:a.instanceId,cliToolId:X.k},e=function(a,b){if(!(0,g.q)())return null;let c=(0,g.Os)();if(!c)return Y.warn("command-code-hook-relay-missing",{worktreeId:b.worktreeId}),null;let d=(0,w.join)(a,".commandcode","settings.local.json");try{let a=B(d),e=function(a,b){let c={};for(let[e,f]of Z){var d;c[e]=[{matcher:"",hooks:[{type:"command",command:(d=b.worktreeId,[(0,g.ZL)(a),"--tool",X.k,"--event",f,"--worktree-id",(0,g.ZL)(d),"--stdin-json"].join(" ")),timeout:$}]}]}return c}(c,b);return C(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&&_(a.command,b)):"string"==typeof a.command&&_(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 Y.warn("command-code-hook-settings-write-failed",{worktreeId:b.worktreeId,error:a instanceof Error?a.message:String(a)}),null}}(c,d),{command:f,env:h}=function(a,b,c={}){if(!(0,g.q)())return{command:a,env:{}};if(!(0,u.n6)((0,g.g5)(b)))return Y.warn("command-code-hook-invalid-instance-id",{worktreeId:b.worktreeId}),{command:a,env:{}};let d=(0,g.xM)({...b,cliToolId:X.k},c);return{command:(0,g.ZL)(a),env:{[y.ZM]:d}}}(b,d);return{command:f,settingsPath:e,env:h}}}),ab=globalThis.__agentEventSources??=new Map,ac=globalThis.__agentEventLegacySources??=new Map;function ad(a){ab.set(a.cliToolId,a),ac.delete(a.cliToolId)}function ae(a){let b=ab.get(a);if(b)return b;let c=ac.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",transcriptHistory:null},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:n,prepareLaunch:({executablePath:a})=>({command:a,settingsPath:null,env:{}})});return ac.set(a,f),f}ad(o),ad(t),ad(I),ad(R),ad(V),ad(W.cC),ad(aa)},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}
|
|
1
|
+
"use strict";exports.id=9130,exports.ids=[9130],exports.modules={129:(a,b,c)=>{c.d(b,{VM:()=>ag});var d=c(2466),e=c(13287),f=c(62887),g=c(43252),h=c(66101),i=c(57510),j=c(38367),k=c(34257),l=c(70997);let m={};function n(a){return"allowOnce"!==a.kind?m:{hookSpecificOutput:{hookEventName:e.l9,decision:{behavior:"allow"}}}}let o=(0,h.UB)({cliToolId:l.v,noDecision:{kind:"proceeds"},capabilities:{supportedEvents:f.b0,configScope:"per-instance",decisionTimeoutSeconds:g.sI,permissionHookPredictsDialog:!0,sessionStartMayArriveLate:!1,permissionReplyReleasesPrompt:!1,eventIdentity:null,resync:"none",transcriptHistory:"pull",stopReportsSelfResume:!1},mappers:[...(0,i.mJ)(j.WK),k.Bo],nativeEventNameFields:["hook_event_name"],conversationIdFields:j.lb,toolCallIdFields:j.ue,modelFields:["model"],extractModel:k._P,extractDetail:j.Jp,parsePermissionRequest:a=>(0,e.ss)(a),parseQuestion:a=>(0,d.ek)(a),encodeVerdict:n,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 p=c(92196),q=c(21758),r=c(54633);let s={},t=(0,h.UB)({cliToolId:r.V,noDecision:{kind:"proceeds"},capabilities:{supportedEvents:["stop","session_start","session_end","user_prompt_submit","post_tool_use"],configScope:"global-singleton",decisionTimeoutSeconds:q.TV,permissionHookPredictsDialog:!1,sessionStartMayArriveLate:!0,permissionReplyReleasesPrompt:!1,eventIdentity:null,resync:"none",transcriptHistory:null,stopReportsSelfResume:!1},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!==q.cN)return null;let b=(0,i.O2)(a,"tool_name");if(!b||b.length>e.vy)return null;let c=(0,p.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:q.cN,permissionDecision:"allow"}}:"deny"===a.kind?{hookSpecificOutput:{hookEventName:q.cN,permissionDecision:"deny",permissionDecisionReason:a.message??"denied by CommandMate"}}:s},prepareLaunch:({target:a,executablePath:b})=>(0,q.Rv)(b,a)});var u=c(15194);let v={ToolPermission:"permission_prompt"};var w=c(33873),x=c(72626),y=c(45567),z=c(29021),A=c(7956);function B(a){if(!(0,z.existsSync)(a))return null;try{let b=JSON.parse((0,z.readFileSync)(a,"utf8"));return(0,i.Qd)(b)?b:null}catch{return null}}function C(a,b){if((0,A.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,z.mkdirSync)((0,w.dirname)(a),{recursive:!0,mode:448}),(0,z.writeFileSync)(a,`${JSON.stringify(b,null,2)}
|
|
2
|
+
`,{mode:384})}var D=c(77904);let E=(0,x.h)("lib/hooks/sources/gemini/settings-generator"),F=1e3*g.W6,G=[["SessionStart","session_start"],["BeforeAgent","user_prompt_submit"],["AfterAgent","stop"],["Notification","notification"],["SessionEnd","session_end"]];function H(a,b){return a.includes("cmate-agent-event.sh")&&a.includes(`--tool ${D.o}`)&&a.includes(`--worktree-id ${(0,g.ZL)(b)}`)}let I=(0,h.UB)({cliToolId:D.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",transcriptHistory:null,stopReportsSelfResume:!1},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)(v[c]??c)},parsePermissionRequest:()=>null,parseQuestion:()=>null,encodeVerdict:()=>({}),prepareLaunch:function({target:a,executablePath:b,worktreePath:c}){let d={worktreeId:a.worktreeId,instanceId:a.instanceId,cliToolId:D.o},e=(0,u.n6)(a.instanceId??D.o)?function(a,b){if(!(0,g.q)())return null;let c=(0,g.Os)();if(!c)return E.warn("gemini-hook-relay-missing",{worktreeId:b.worktreeId}),null;let d=(0,w.join)(a,".gemini","settings.json");try{let a=B(d),e=function(a,b){let c={};for(let[e,f]of G){var d;c[e]=[{hooks:[{type:"command",command:(d=b.worktreeId,[(0,g.ZL)(a),"--tool",D.o,"--event",f,"--worktree-id",(0,g.ZL)(d),"--stdin-json"].join(" ")),timeout:F}]}]}return c}(c,b);return C(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&&H(a.command,b)):"string"==typeof a.command&&H(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 E.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,u.n6)((0,g.g5)(b)))return E.warn("gemini-hook-invalid-instance-id",{worktreeId:b.worktreeId}),{command:a,env:{}};let d=(0,g.xM)({...b,cliToolId:D.o},c);return{command:(0,g.ZL)(a),env:{[y.ZM]:d}}}(b,d);return{command:f,settingsPath:e,env:h}}});var J=c(21820),K=c(76835);let L=(0,x.h)("lib/hooks/sources/antigravity/hooks-config"),M=[["SessionStart","session_start"],["PostToolUse","post_tool_use"],["Stop","stop"]],N="CM_PERMISSION_HOOK_URL",O=g.sI,P=new Set(["PreToolUse","PostToolUse"]);function Q(a,b){return[(0,g.ZL)(a),"--tool",K.F,"--event",b,"--stdin-json"].join(" ")}let R="fullyIdle",S={decision:"ask"},T=(0,h.UB)({cliToolId:K.F,noDecision:{kind:"proceeds"},capabilities:{supportedEvents:["session_start","post_tool_use","stop"],configScope:"global-singleton",decisionTimeoutSeconds:O,permissionHookPredictsDialog:!1,sessionStartMayArriveLate:!1,permissionReplyReleasesPrompt:!1,eventIdentity:null,resync:"none",transcriptHistory:"pull",stopReportsSelfResume:!0},mappers:[],nativeEventNameFields:[],conversationIdFields:["conversationId"],toolCallIdFields:[],modelFields:["modelName"],extractDetail:function(a,b){return"pre_tool_use"===a||"post_tool_use"===a?(0,i.Wv)((0,i.NZ)(b,["toolCall","name"])):"stop"===a&&!1===b[R]?f.HV: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??""}:{...S}},prepareLaunch:({target:a,executablePath:b})=>{let c=function(a={}){if(!(0,g.q)())return null;let b=(0,g.Os)();if(!b)return L.warn("antigravity-hook-relay-missing"),null;let c=function(a={}){return a.path??(0,w.join)((0,J.homedir)(),".gemini","config","hooks.json")}(a);try{var d;let a=B(c);return C(c,(d=function(a){let b={};for(let[c,d]of M){let e={type:"command",command:"stop"===d?function(a){let b=`'"${R}":false'`;return`p=$(cat); set --; case "$(printf '%s' "$p" | tr -d ' \\t\\r\\n')" in *${b}*) set -- --detail ${f.HV} ;; esac; printf '%s' "$p" | ${Q(a,"stop")} "$@"`}(a):Q(a,d),timeout:g.W6};b[c]=P.has(c)?[{matcher:"*",hooks:[e]}]:[e]}return b.PreToolUse=[{matcher:"*",hooks:[{type:"command",command:function(){let a=`"$${N}"`,b=`printf '%s' ${(0,g.ZL)('{"decision":"ask"}')}`;return`if [ -z "\${${N}:-}" ]; 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 L.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,u.n6)((0,g.g5)(b)))return L.warn("antigravity-hook-invalid-instance-id",{worktreeId:b.worktreeId}),{command:a,env:{}};let d={...b,cliToolId:K.F};return{command:(0,g.ZL)(a),env:{[y.ZM]:(0,g.xM)(d,c),[N]:(0,g.O$)(d,c)}}}(b,{worktreeId:a.worktreeId,instanceId:a.instanceId,cliToolId:K.F});return{command:d,settingsPath:c,env:e}}});var U=c(99432),V=c(2734);let W={},X=(0,h.UB)({cliToolId:V.c,noDecision:{kind:"proceeds"},capabilities:{supportedEvents:U.JD,configScope:"global-singleton",decisionTimeoutSeconds:5,permissionHookPredictsDialog:!0,sessionStartMayArriveLate:!1,permissionReplyReleasesPrompt:!1,eventIdentity:null,resync:"none",transcriptHistory:"pull",stopReportsSelfResume:!1},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:U.l1,decision:{behavior:"allow"}}}:"deny"===a.kind?{hookSpecificOutput:{hookEventName:U.l1,decision:{behavior:"deny",message:a.message??""}}}:W},prepareLaunch:({target:a,executablePath:b})=>(0,U.S9)(b,a)});var Y=c(85965),Z=c(28862);let $=(0,x.h)("lib/hooks/sources/command-code/hooks-config"),_=[["SessionStart","session_start"],["PreToolUse","pre_tool_use"],["PostToolUse","post_tool_use"],["Stop","stop"]],aa=g.W6;function ab(a,b){return a.includes("cmate-agent-event.sh")&&a.includes(`--tool ${Z.k}`)&&a.includes(`--worktree-id ${(0,g.ZL)(b)}`)}let ac=(0,h.UB)({cliToolId:Z.k,noDecision:{kind:"proceeds"},capabilities:{supportedEvents:["session_start","pre_tool_use","post_tool_use","stop"],configScope:"per-worktree",decisionTimeoutSeconds:null,permissionHookPredictsDialog:!1,sessionStartMayArriveLate:!1,permissionReplyReleasesPrompt:!1,eventIdentity:null,resync:"none",transcriptHistory:"pull",stopReportsSelfResume:!1},mappers:(0,i.mJ)({SessionStart:"session_start",PreToolUse:"pre_tool_use",PostToolUse:"post_tool_use",Stop:"stop"}),nativeEventNameFields:["hook_event_name"],conversationIdFields:["session_id"],toolCallIdFields:j.ue,extractDetail:j.Jp,parsePermissionRequest:()=>null,parseQuestion:()=>null,encodeVerdict:function(a){return{}},prepareLaunch:({target:a,executablePath:b,worktreePath:c})=>{let d={worktreeId:a.worktreeId,instanceId:a.instanceId,cliToolId:Z.k},e=function(a,b){if(!(0,g.q)())return null;let c=(0,g.Os)();if(!c)return $.warn("command-code-hook-relay-missing",{worktreeId:b.worktreeId}),null;let d=(0,w.join)(a,".commandcode","settings.local.json");try{let a=B(d),e=function(a,b){let c={};for(let[e,f]of _){var d;c[e]=[{matcher:"",hooks:[{type:"command",command:(d=b.worktreeId,[(0,g.ZL)(a),"--tool",Z.k,"--event",f,"--worktree-id",(0,g.ZL)(d),"--stdin-json"].join(" ")),timeout:aa}]}]}return c}(c,b);return C(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&&ab(a.command,b)):"string"==typeof a.command&&ab(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 $.warn("command-code-hook-settings-write-failed",{worktreeId:b.worktreeId,error:a instanceof Error?a.message:String(a)}),null}}(c,d),{command:f,env:h}=function(a,b,c={}){if(!(0,g.q)())return{command:a,env:{}};if(!(0,u.n6)((0,g.g5)(b)))return $.warn("command-code-hook-invalid-instance-id",{worktreeId:b.worktreeId}),{command:a,env:{}};let d=(0,g.xM)({...b,cliToolId:Z.k},c);return{command:(0,g.ZL)(a),env:{[y.ZM]:d}}}(b,d);return{command:f,settingsPath:e,env:h}}}),ad=globalThis.__agentEventSources??=new Map,ae=globalThis.__agentEventLegacySources??=new Map;function af(a){ad.set(a.cliToolId,a),ae.delete(a.cliToolId)}function ag(a){let b=ad.get(a);if(b)return b;let c=ae.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",transcriptHistory:null,stopReportsSelfResume:!1},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:n,prepareLaunch:({executablePath:a})=>({command:a,settingsPath:null,env:{}})});return ae.set(a,f),f}af(o),af(t),af(I),af(T),af(X),af(Y.cC),af(ac)},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}
|
|
3
3
|
`)}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)}
|
|
4
|
-
`;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(129);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}}},28862:(a,b,c)=>{c.d(b,{k:()=>d});let d="command-code"},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:()=>i,ZM:()=>f,wS:()=>g});var d=c(87447),e=c(43252);let f="CM_HOOK_URL",g="CM_HOOK_PORT",h="CM_PORT";function i(a){let b=Object.entries(h in a.env?a.env:{...a.env,[h]:String((0,d.D0)())}).map(([a,b])=>`${a}=${(0,e.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(53163),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",transcriptHistory:"push"},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:{}}}})},99432:(a,b,c)=>{c.d(b,{l1:()=>z,JD:()=>A,S9:()=>F,dO:()=>C});var d=c(29021),e=c(21820),f=c(33873),g=c(8004),h=c(15194),i=c(87447),j=c(43252),k=c(72626),l=c(66007),m=c(57510);let n=(0,k.h)("lib/hooks/sources/codex/relay-install");function o(a){return(0,f.join)(a,"commandmate","cmate-agent-event.sh")}var p=c(2734);let q=(0,k.h)("lib/hooks/sources/codex/hooks-config"),r="127.0.0.1",s="commandmate:agent-hooks",t="CODEX_HOME",u="CM_AGENT_WORKTREE_ID",v="CM_AGENT_INSTANCE_ID",w="CM_HOOK_URL",x="CM_PERMISSION_HOOK_URL",y={SessionStart:"session_start",UserPromptSubmit:"user_prompt_submit",Stop:"stop",SessionEnd:"session_end"},z="PermissionRequest",A=Object.values(y);function B(){let a=process.env.CM_CODEX_HOOK_TRUST;return"bypass"===a||"never"===a||"auto"===a?a:"auto"}function C(a){if("never"===B())return!1;try{if((0,d.existsSync)((0,f.join)(a,".codex","hooks.json")))return q.info("codex-hooks-trust-withheld-repo-hooks",{worktreePath:a}),!1}catch{return!1}return!0}function D(a={}){let b=(0,f.join)((0,e.homedir)(),".codex");return a.codexHome?(0,g.T)(a.codexHome,b,"CodexHookOptions.codexHome"):(0,g.T)(process.env[t],b,t)}function E(a,b){return`http://${r}:\${CM_PORT:-3000}${a}${b}`}function F(a,b,c={}){let e={command:a,settingsPath:null,env:{}};if(!(0,j.q)())return e;let g=b.instanceId??p.c;if(!(0,l.h6)(b.worktreeId)||!(0,h.n6)(g))return q.warn("codex-hooks-invalid-correlation-key",{worktreeId:b.worktreeId}),e;try{let h=function(a={}){let b=function(a={}){return(0,f.join)(D(a),"hooks.json")}(a);void 0===a.relayScriptPath&&function(a,b){let c=o(a);if(b&&b!==c)try{let a=(0,d.readFileSync)(b,"utf8");if(((0,d.existsSync)(c)?(0,d.readFileSync)(c,"utf8"):null)!==a){(0,d.mkdirSync)((0,f.dirname)(c),{recursive:!0,mode:448});let b=`${c}.tmp`;try{(0,d.writeFileSync)(b,a,{mode:448}),(0,d.renameSync)(b,c)}catch(a){try{(0,d.unlinkSync)(b)}catch{}throw a}n.info("codex-relay-installed",{target:c})}}catch(a){n.warn("codex-relay-install-failed",{target:c,error:a instanceof Error?a.message:String(a)})}(0,d.existsSync)(c)}(D(a),(0,j.Os)());let c=null,e=null;if((0,d.existsSync)(b))try{e=(0,d.readFileSync)(b,"utf8"),c=JSON.parse(e)}catch(a){return q.warn("codex-hooks-config-unreadable",{settingsPath:b,error:a instanceof Error?a.message:String(a)}),null}let g=`${JSON.stringify(function(a,b){let c=(0,m.Qd)(a)?{...a}:{},d=(0,m.Qd)(c.hooks)?c.hooks:{},e={};for(let[a,b]of Object.entries(d))e[a]=Array.isArray(b)?b.map(a=>{if(!(0,m.Qd)(a)||!Array.isArray(a.hooks))return a;let b=a.hooks.filter(a=>!((0,m.Qd)(a)&&"string"==typeof a.command&&a.command.includes(s)));return b.length===a.hooks.length?a:{...a,hooks:b}}).filter(a=>!((0,m.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=` # ${s}`,e=function(a={}){if(void 0!==a.relayScriptPath)return a.relayScriptPath;var b=D(a);let c=o(b);return(0,d.existsSync)(c)?c:null}(b);if(e)return[(0,j.ZL)(e),"--tool",p.c,"--event",a,"--worktree-id",`"$${u}"`,"--instance-id",`"$${v}"`,"--stdin-json"].join(" ")+c;let f=b.withAuthHeader??(0,j.yc)()?` -H "Authorization: Bearer $${j.XE}"`:"",g=`"\${${w}:-${E(j.jx,"")}}?tool=${p.c}\${${u}:+&worktreeId=$${u}}\${${v}:+&instanceId=$${v}}"`;return`curl -sS -f -m ${j.W6} -X POST -H 'Content-Type: application/json'${f} --data-binary @- ${g} >/dev/null 2>&1 || true${c}`}(b,a),timeout:c}]}),c={};for(let[a,d]of Object.entries(y)){let e="SessionEnd"===a?3:j.W6;c[a]=[b(d,e)]}return c[z]=[{hooks:[{type:"command",command:function(a={}){let b=a.withAuthHeader??(0,j.yc)()?` -H "Authorization: Bearer $${j.XE}"`:"",c=`"\${${x}:-${E(j.WZ,`?tool=${p.c}`)}}"`;return`curl -sS -f -m ${j.sI} -X POST -H 'Content-Type: application/json'${b} --data-binary @- ${c} 2>/dev/null || true # ${s}`}(a),timeout:j.sI}]}],{hooks:c}}(a)),null,2)}
|
|
4
|
+
`;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(129);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}}},28862:(a,b,c)=>{c.d(b,{k:()=>d});let d="command-code"},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:()=>i,ZM:()=>f,wS:()=>g});var d=c(87447),e=c(43252);let f="CM_HOOK_URL",g="CM_HOOK_PORT",h="CM_PORT";function i(a){let b=Object.entries(h in a.env?a.env:{...a.env,[h]:String((0,d.D0)())}).map(([a,b])=>`${a}=${(0,e.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(53163),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",transcriptHistory:"push",stopReportsSelfResume:!1},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:{}}}})},99432:(a,b,c)=>{c.d(b,{l1:()=>z,JD:()=>A,S9:()=>F,dO:()=>C});var d=c(29021),e=c(21820),f=c(33873),g=c(8004),h=c(15194),i=c(87447),j=c(43252),k=c(72626),l=c(66007),m=c(57510);let n=(0,k.h)("lib/hooks/sources/codex/relay-install");function o(a){return(0,f.join)(a,"commandmate","cmate-agent-event.sh")}var p=c(2734);let q=(0,k.h)("lib/hooks/sources/codex/hooks-config"),r="127.0.0.1",s="commandmate:agent-hooks",t="CODEX_HOME",u="CM_AGENT_WORKTREE_ID",v="CM_AGENT_INSTANCE_ID",w="CM_HOOK_URL",x="CM_PERMISSION_HOOK_URL",y={SessionStart:"session_start",UserPromptSubmit:"user_prompt_submit",Stop:"stop",SessionEnd:"session_end"},z="PermissionRequest",A=Object.values(y);function B(){let a=process.env.CM_CODEX_HOOK_TRUST;return"bypass"===a||"never"===a||"auto"===a?a:"auto"}function C(a){if("never"===B())return!1;try{if((0,d.existsSync)((0,f.join)(a,".codex","hooks.json")))return q.info("codex-hooks-trust-withheld-repo-hooks",{worktreePath:a}),!1}catch{return!1}return!0}function D(a={}){let b=(0,f.join)((0,e.homedir)(),".codex");return a.codexHome?(0,g.T)(a.codexHome,b,"CodexHookOptions.codexHome"):(0,g.T)(process.env[t],b,t)}function E(a,b){return`http://${r}:\${CM_PORT:-3000}${a}${b}`}function F(a,b,c={}){let e={command:a,settingsPath:null,env:{}};if(!(0,j.q)())return e;let g=b.instanceId??p.c;if(!(0,l.h6)(b.worktreeId)||!(0,h.n6)(g))return q.warn("codex-hooks-invalid-correlation-key",{worktreeId:b.worktreeId}),e;try{let h=function(a={}){let b=function(a={}){return(0,f.join)(D(a),"hooks.json")}(a);void 0===a.relayScriptPath&&function(a,b){let c=o(a);if(b&&b!==c)try{let a=(0,d.readFileSync)(b,"utf8");if(((0,d.existsSync)(c)?(0,d.readFileSync)(c,"utf8"):null)!==a){(0,d.mkdirSync)((0,f.dirname)(c),{recursive:!0,mode:448});let b=`${c}.tmp`;try{(0,d.writeFileSync)(b,a,{mode:448}),(0,d.renameSync)(b,c)}catch(a){try{(0,d.unlinkSync)(b)}catch{}throw a}n.info("codex-relay-installed",{target:c})}}catch(a){n.warn("codex-relay-install-failed",{target:c,error:a instanceof Error?a.message:String(a)})}(0,d.existsSync)(c)}(D(a),(0,j.Os)());let c=null,e=null;if((0,d.existsSync)(b))try{e=(0,d.readFileSync)(b,"utf8"),c=JSON.parse(e)}catch(a){return q.warn("codex-hooks-config-unreadable",{settingsPath:b,error:a instanceof Error?a.message:String(a)}),null}let g=`${JSON.stringify(function(a,b){let c=(0,m.Qd)(a)?{...a}:{},d=(0,m.Qd)(c.hooks)?c.hooks:{},e={};for(let[a,b]of Object.entries(d))e[a]=Array.isArray(b)?b.map(a=>{if(!(0,m.Qd)(a)||!Array.isArray(a.hooks))return a;let b=a.hooks.filter(a=>!((0,m.Qd)(a)&&"string"==typeof a.command&&a.command.includes(s)));return b.length===a.hooks.length?a:{...a,hooks:b}}).filter(a=>!((0,m.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=` # ${s}`,e=function(a={}){if(void 0!==a.relayScriptPath)return a.relayScriptPath;var b=D(a);let c=o(b);return(0,d.existsSync)(c)?c:null}(b);if(e)return[(0,j.ZL)(e),"--tool",p.c,"--event",a,"--worktree-id",`"$${u}"`,"--instance-id",`"$${v}"`,"--stdin-json"].join(" ")+c;let f=b.withAuthHeader??(0,j.yc)()?` -H "Authorization: Bearer $${j.XE}"`:"",g=`"\${${w}:-${E(j.jx,"")}}?tool=${p.c}\${${u}:+&worktreeId=$${u}}\${${v}:+&instanceId=$${v}}"`;return`curl -sS -f -m ${j.W6} -X POST -H 'Content-Type: application/json'${f} --data-binary @- ${g} >/dev/null 2>&1 || true${c}`}(b,a),timeout:c}]}),c={};for(let[a,d]of Object.entries(y)){let e="SessionEnd"===a?3:j.W6;c[a]=[b(d,e)]}return c[z]=[{hooks:[{type:"command",command:function(a={}){let b=a.withAuthHeader??(0,j.yc)()?` -H "Authorization: Bearer $${j.XE}"`:"",c=`"\${${x}:-${E(j.WZ,`?tool=${p.c}`)}}"`;return`curl -sS -f -m ${j.sI} -X POST -H 'Content-Type: application/json'${b} --data-binary @- ${c} 2>/dev/null || true # ${s}`}(a),timeout:j.sI}]}],{hooks:c}}(a)),null,2)}
|
|
5
5
|
`;return e===g||((0,d.mkdirSync)((0,f.dirname)(b),{recursive:!0,mode:448}),(0,d.writeFileSync)(b,g,{mode:384})),b}(c);if(!h)return e;let k=c.port??(0,i.D0)(),l=new URLSearchParams({tool:p.c,worktreeId:b.worktreeId,instanceId:g}),A={[t]:D(c),CM_AGENT_TOOL:p.c,[u]:b.worktreeId,[v]:g,[w]:`http://${r}:${k}${j.jx}`,[x]:`http://${r}:${k}${j.WZ}?${l.toString()}`},C="bypass"===B()?" --dangerously-bypass-hook-trust":"";return{command:`${(0,j.ZL)(a)}${C}`,settingsPath:h,env:A}}catch(a){return q.warn("codex-hooks-config-write-failed",{worktreeId:b.worktreeId,error:a instanceof Error?a.message:String(a)}),e}}}};
|
|
@@ -1 +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(67469),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}}};
|
|
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,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,createCloneJob:()=>h.tw,createGateResult:()=>d.hl,createMemo:()=>d.To,createMessage:()=>d.oH,createRepository:()=>h.vB,createTask:()=>d.UT,createTimer:()=>d.CR,createVerificationRun:()=>d.rY,createWorktreeTodo:()=>d.yy,deleteAllMessages:()=>d.pE,deleteMemo:()=>d.cP,deleteMessageById:()=>d.DF,deleteMessagesByCliTool:()=>d.lA,deleteMessagesByInstance:()=>d.Qp,deletePushSubscriptionByEndpoint:()=>d.th,deleteRepository:()=>h.oG,deleteRepositoryWorktrees:()=>d.oZ,deleteSessionState:()=>d.ZP,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,getAllWorktreeAliases:()=>d.fX,getAllWorktreeIds:()=>d.nO,getAllWorktreePathIds:()=>d.Sj,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,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,getRunningVerificationRun:()=>d.WZ,getSessionState:()=>d.y1,getTask:()=>d.gg,getTimerById:()=>d.kx,getTimersByWorktree:()=>d.DP,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,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,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.PP,updateStatus:()=>d.yB,updateTimerStatus:()=>d.j2,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(683),e=c(88807),f=c(67469),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}}};
|
|
@@ -192,7 +192,7 @@
|
|
|
192
192
|
AND COALESCE(instance_id, cli_tool_id, 'claude') = ?
|
|
193
193
|
ORDER BY timestamp DESC
|
|
194
194
|
LIMIT 1
|
|
195
|
-
`).get(b,c,d);if(!e)return null;let h=g(e);return h.promptData?.status==="answered"?null:h}function L(a,b){return i(a,{worktreeId:b.worktreeId,role:"assistant",content:b.content,messageType:"normal",timestamp:new Date(b.at),requestId:`${G}${b.relayId}:${b.kind}`,cliToolId:b.cliToolId,instanceId:b.instanceId??b.cliToolId})}},57510:(a,b,c)=>{c.d(b,{KR:()=>e,NZ:()=>p,O2:()=>j,Qd:()=>o,Uq:()=>q,Wv:()=>l,ex:()=>i,hY:()=>n,mJ:()=>f,oJ:()=>k,qU:()=>g});var d=c(62887);function e(a,b,c){return d=>d===a?{event:b,detail:c??null}:null}function f(a){return Object.entries(a).map(([a,b])=>e(a,b))}function g(a,b,c){for(let d of a){let a=d(b,c);if(a)return a}return null}let h=globalThis.__agentSourceUnknownEvents??=new Map;function i(a,b){let c=h.get(a)??{count:0,names:[]};c.count+=1;let d=b??"(unnamed)";!c.names.includes(d)&&c.names.length<32&&c.names.push(d),h.set(a,c)}function j(a,b){let c=a[b];return"string"==typeof c&&""!==c?c:null}function k(a,b){for(let c of b){let b=j(a,c);if(null!==b)return b}return null}function l(a){return null===a||""===a?null:a.slice(0,d.h9)}let m=/^[A-Za-z0-9._:-]+$/;function n(a){return null===a||a.length>128?null:m.test(a)?a:null}function o(a){return"object"==typeof a&&null!==a&&!Array.isArray(a)}function p(a,b){let c=a;for(let a of b){if(!o(c))return null;c=c[a]}return"string"==typeof c&&""!==c?c:null}function q(a,b,c,e={}){var f;let g=void 0!==a.detail&&null!==a.detail?l(a.detail):l(e.detail?.(a.event,b)??null);return{event:a.event,detail:g,conversationId:a.conversationId??(e.conversationId?k(b,e.conversationId):null),toolCallId:a.toolCallId??(e.toolCallId?k(b,e.toolCallId):null),model:null===(f=e.extractModel?.(b)??(e.modelFields?k(b,e.modelFields):null))||""===f?null:f.slice(0,d.h9),raw:b,receivedAt:c}}},62887:(a,b,c)=>{c.d(b,{KC:()=>g,b0:()=>d,h9:()=>f,o0:()=>e});let d=["stop","notification","session_start","user_prompt_submit","session_end","pre_tool_use","post_tool_use"];function e(a){return"string"==typeof a&&d.includes(a)}let f=128,g="permission_replied"},64185:(a,b,c)=>{c.d(b,{DE:()=>n,oZ:()=>m});var d=c(29021),e=c(33873),f=c(4689),g=c(72626),h=c(52201);let i=(0,g.h)("repo-agents-config"),j=["version","agents","primary"],k=new Map;function l(a,b=120){let c=("string"==typeof a?a:Array.isArray(a)?"a list":null===a?"null":"object"==typeof a?"a mapping":String(a)).replace(/[\u0000-\u001F\u007F-\u009F]/g," ");return c.length>b?`${c.slice(0,b)}...`:c}function m(a,b=Date.now()){let c=function(a){let b,c=(0,e.join)(a,".commandmate/agents.yaml");try{b=(0,d.readFileSync)(c,"utf8")}catch(b){let a=b.code;if("ENOENT"===a||"ENOTDIR"===a)return null;return i.warn("repo-agents:read-failed",{source:c,code:a,error:l(b.message)}),null}let g=Buffer.byteLength(b,"utf8");return g>65536?(i.warn("repo-agents:too-large",{source:c,bytes:g,limit:65536}),null):function(a,b){var c;let d;try{d=(0,f.qg)(a)}catch(a){return i.warn("repo-agents:yaml-parse-failed",{source:b,error:l(a.message)}),null}if(null==d)return i.debug("repo-agents:empty",{source:b}),null;if(!("object"==typeof(c=d)&&null!==c&&!Array.isArray(c)))return i.warn("repo-agents:not-a-mapping",{source:b,got:l(d)}),null;let e=Object.keys(d).filter(a=>!j.includes(a));if(e.length>0)return i.warn("repo-agents:unknown-keys",{source:b,keys:e.map(a=>l(a,40))}),null;if(void 0!==d.version&&null!==d.version&&1!==("number"==typeof d.version?d.version:"string"==typeof d.version&&/^\d+$/.test(d.version)?Number(d.version):null))return i.warn("repo-agents:unsupported-version",{source:b,got:l(d.version)}),null;if(!Array.isArray(d.agents))return i.warn("repo-agents:agents-not-a-list",{source:b,got:l(d.agents)}),null;let g=(0,h.Lt)(d.agents);if(!g.valid)return i.warn("repo-agents:invalid-agents",{source:b,error:g.error,got:d.agents.map(a=>l(a,40))}),null;let k=g.value;if(void 0===d.primary||null===d.primary)return k;if("string"!=typeof d.primary||!k.includes(d.primary))return i.warn("repo-agents:primary-not-in-agents",{source:b,got:l(d.primary,40),agents:k}),null;let m=d.primary;return[m,...k.filter(a=>a!==m)]}(b,c)}(a);return k.set(a,{value:c,expiresAt:b+6e4}),c}function n(a,b=Date.now()){if(!a)return null;let c=k.get(a);return c&&c.expiresAt>b?c.value:m(a,b)}},66007:(a,b,c)=>{c.d(b,{B9:()=>m,Px:()=>o,Uc:()=>l,b$:()=>n,h6:()=>k});var d=c(33873),e=c.n(d),f=c(29021),g=c(72626),h=c(80438);let i=(0,g.h)("path-validator"),j=/^[a-zA-Z0-9_-]+$/;function k(a){return!!a&&0!==a.length&&j.test(a)}function l(a,b){return a===b||a.startsWith(b+e().sep)}function m(a,b){if(!a||""===a.trim()||a.includes("\0"))return!1;let c=a;try{c=decodeURIComponent(a)}catch{c=a}if(c.includes("\0"))return!1;let d=e().resolve(b),f=e().resolve(b,c),g=e().relative(d,f);return!(g.startsWith("..")||e().isAbsolute(g))}function n(a,b){if(!a||""===a.trim())throw Error("Invalid path: Path cannot be empty");if(a.includes("\0"))throw Error("Invalid path: Null bytes not allowed");if(!m(a,b))throw Error(`Path is outside allowed directory: ${a} (allowed root: ${b})`);let c=a;try{c=decodeURIComponent(a)}catch{c=a}return e().resolve(b,c)}function o(a,b){let c;try{c=(0,f.realpathSync)(b)}catch{return!1}let d=e().resolve(b,a);if((0,f.existsSync)(d))try{let b=(0,f.realpathSync)(d),e=l(b,c);return e||(0,h.h)(i,"symlink-rejected",{targetPath:a,resolvedTarget:b}),e}catch{return!1}try{if((0,f.lstatSync)(d).isSymbolicLink())try{let b=(0,f.readlinkSync)(d),g=e().resolve(e().dirname(d),b),j=l(g,c);return j||(0,h.h)(i,"dangling-symlink-rejected",{targetPath:a,resolvedLinkTarget:g}),j}catch{return!1}}catch{}let g=e().dirname(d);for(;g!==e().dirname(g);){if((0,f.existsSync)(g))try{let a=(0,f.realpathSync)(g),b=l(a,c);return b||(0,h.h)(i,"symlink-ancestor-rejected",{currentPath:g,resolvedAncestor:a}),b}catch{break}g=e().dirname(g)}return!1}},68901:(a,b,c)=>{c.d(b,{FW:()=>l,Ke:()=>k,P0:()=>n,QN:()=>j,dR:()=>i,eJ:()=>o,t6:()=>h,ul:()=>m});var d=c(82366),e=c.n(d),f=c(16983);let g=[36e5,108e5,288e5],h=36e5;function i(a){return"number"==typeof a&&g.includes(a)}let j=5e3,k=f.sO,l=5e3,m=20;function n(a){if(a.length>500)return{valid:!1,error:"Pattern must be 500 characters or less"};if(!e()(a))return{valid:!1,error:"Pattern may cause performance issues (catastrophic backtracking detected)"};try{return new RegExp(a),{valid:!0}}catch{return{valid:!1,error:"Invalid regular expression syntax"}}}function o(a,b,c=100){try{return a.test(b)}catch{return null}}},70997:(a,b,c)=>{c.d(b,{v:()=>d});let d="claude"},73753:(a,b,c)=>{c.d(b,{DC:()=>v,Dx:()=>u,GA:()=>A,HZ:()=>r,NV:()=>l,O:()=>s,P9:()=>C,Rm:()=>H,Sj:()=>E,ZL:()=>n,_D:()=>w,_h:()=>o,ef:()=>x,getWorktreeById:()=>m,hq:()=>p,iu:()=>y,nO:()=>D,oZ:()=>G,p4:()=>B,s:()=>z,uJ:()=>F,vi:()=>k,yB:()=>t,z1:()=>q});var d=c(52201),e=c(64185),f=c(26923),g=c(52660),h=c(27923);let i=new Set;function j(a){return new Set(a.prepare("SELECT DISTINCT worktree_id FROM agent_instances").all().map(a=>a.worktree_id))}function k(a,b){let c=`
|
|
195
|
+
`).get(b,c,d);if(!e)return null;let h=g(e);return h.promptData?.status==="answered"?null:h}function L(a,b){return i(a,{worktreeId:b.worktreeId,role:"assistant",content:b.content,messageType:"normal",timestamp:new Date(b.at),requestId:`${G}${b.relayId}:${b.kind}`,cliToolId:b.cliToolId,instanceId:b.instanceId??b.cliToolId})}},57510:(a,b,c)=>{c.d(b,{KR:()=>e,NZ:()=>p,O2:()=>j,Qd:()=>o,Uq:()=>q,Wv:()=>l,ex:()=>i,hY:()=>n,mJ:()=>f,oJ:()=>k,qU:()=>g});var d=c(62887);function e(a,b,c){return d=>d===a?{event:b,detail:c??null}:null}function f(a){return Object.entries(a).map(([a,b])=>e(a,b))}function g(a,b,c){for(let d of a){let a=d(b,c);if(a)return a}return null}let h=globalThis.__agentSourceUnknownEvents??=new Map;function i(a,b){let c=h.get(a)??{count:0,names:[]};c.count+=1;let d=b??"(unnamed)";!c.names.includes(d)&&c.names.length<32&&c.names.push(d),h.set(a,c)}function j(a,b){let c=a[b];return"string"==typeof c&&""!==c?c:null}function k(a,b){for(let c of b){let b=j(a,c);if(null!==b)return b}return null}function l(a){return null===a||""===a?null:a.slice(0,d.h9)}let m=/^[A-Za-z0-9._:-]+$/;function n(a){return null===a||a.length>128?null:m.test(a)?a:null}function o(a){return"object"==typeof a&&null!==a&&!Array.isArray(a)}function p(a,b){let c=a;for(let a of b){if(!o(c))return null;c=c[a]}return"string"==typeof c&&""!==c?c:null}function q(a,b,c,e={}){var f;let g=void 0!==a.detail&&null!==a.detail?l(a.detail):l(e.detail?.(a.event,b)??null);return{event:a.event,detail:g,conversationId:a.conversationId??(e.conversationId?k(b,e.conversationId):null),toolCallId:a.toolCallId??(e.toolCallId?k(b,e.toolCallId):null),model:null===(f=e.extractModel?.(b)??(e.modelFields?k(b,e.modelFields):null))||""===f?null:f.slice(0,d.h9),raw:b,receivedAt:c}}},62887:(a,b,c)=>{c.d(b,{HV:()=>h,KC:()=>g,b0:()=>d,h9:()=>f,o0:()=>e});let d=["stop","notification","session_start","user_prompt_submit","session_end","pre_tool_use","post_tool_use"];function e(a){return"string"==typeof a&&d.includes(a)}let f=128,g="permission_replied",h="self_resume_pending"},64185:(a,b,c)=>{c.d(b,{DE:()=>n,oZ:()=>m});var d=c(29021),e=c(33873),f=c(4689),g=c(72626),h=c(52201);let i=(0,g.h)("repo-agents-config"),j=["version","agents","primary"],k=new Map;function l(a,b=120){let c=("string"==typeof a?a:Array.isArray(a)?"a list":null===a?"null":"object"==typeof a?"a mapping":String(a)).replace(/[\u0000-\u001F\u007F-\u009F]/g," ");return c.length>b?`${c.slice(0,b)}...`:c}function m(a,b=Date.now()){let c=function(a){let b,c=(0,e.join)(a,".commandmate/agents.yaml");try{b=(0,d.readFileSync)(c,"utf8")}catch(b){let a=b.code;if("ENOENT"===a||"ENOTDIR"===a)return null;return i.warn("repo-agents:read-failed",{source:c,code:a,error:l(b.message)}),null}let g=Buffer.byteLength(b,"utf8");return g>65536?(i.warn("repo-agents:too-large",{source:c,bytes:g,limit:65536}),null):function(a,b){var c;let d;try{d=(0,f.qg)(a)}catch(a){return i.warn("repo-agents:yaml-parse-failed",{source:b,error:l(a.message)}),null}if(null==d)return i.debug("repo-agents:empty",{source:b}),null;if(!("object"==typeof(c=d)&&null!==c&&!Array.isArray(c)))return i.warn("repo-agents:not-a-mapping",{source:b,got:l(d)}),null;let e=Object.keys(d).filter(a=>!j.includes(a));if(e.length>0)return i.warn("repo-agents:unknown-keys",{source:b,keys:e.map(a=>l(a,40))}),null;if(void 0!==d.version&&null!==d.version&&1!==("number"==typeof d.version?d.version:"string"==typeof d.version&&/^\d+$/.test(d.version)?Number(d.version):null))return i.warn("repo-agents:unsupported-version",{source:b,got:l(d.version)}),null;if(!Array.isArray(d.agents))return i.warn("repo-agents:agents-not-a-list",{source:b,got:l(d.agents)}),null;let g=(0,h.Lt)(d.agents);if(!g.valid)return i.warn("repo-agents:invalid-agents",{source:b,error:g.error,got:d.agents.map(a=>l(a,40))}),null;let k=g.value;if(void 0===d.primary||null===d.primary)return k;if("string"!=typeof d.primary||!k.includes(d.primary))return i.warn("repo-agents:primary-not-in-agents",{source:b,got:l(d.primary,40),agents:k}),null;let m=d.primary;return[m,...k.filter(a=>a!==m)]}(b,c)}(a);return k.set(a,{value:c,expiresAt:b+6e4}),c}function n(a,b=Date.now()){if(!a)return null;let c=k.get(a);return c&&c.expiresAt>b?c.value:m(a,b)}},66007:(a,b,c)=>{c.d(b,{B9:()=>m,Px:()=>o,Uc:()=>l,b$:()=>n,h6:()=>k});var d=c(33873),e=c.n(d),f=c(29021),g=c(72626),h=c(80438);let i=(0,g.h)("path-validator"),j=/^[a-zA-Z0-9_-]+$/;function k(a){return!!a&&0!==a.length&&j.test(a)}function l(a,b){return a===b||a.startsWith(b+e().sep)}function m(a,b){if(!a||""===a.trim()||a.includes("\0"))return!1;let c=a;try{c=decodeURIComponent(a)}catch{c=a}if(c.includes("\0"))return!1;let d=e().resolve(b),f=e().resolve(b,c),g=e().relative(d,f);return!(g.startsWith("..")||e().isAbsolute(g))}function n(a,b){if(!a||""===a.trim())throw Error("Invalid path: Path cannot be empty");if(a.includes("\0"))throw Error("Invalid path: Null bytes not allowed");if(!m(a,b))throw Error(`Path is outside allowed directory: ${a} (allowed root: ${b})`);let c=a;try{c=decodeURIComponent(a)}catch{c=a}return e().resolve(b,c)}function o(a,b){let c;try{c=(0,f.realpathSync)(b)}catch{return!1}let d=e().resolve(b,a);if((0,f.existsSync)(d))try{let b=(0,f.realpathSync)(d),e=l(b,c);return e||(0,h.h)(i,"symlink-rejected",{targetPath:a,resolvedTarget:b}),e}catch{return!1}try{if((0,f.lstatSync)(d).isSymbolicLink())try{let b=(0,f.readlinkSync)(d),g=e().resolve(e().dirname(d),b),j=l(g,c);return j||(0,h.h)(i,"dangling-symlink-rejected",{targetPath:a,resolvedLinkTarget:g}),j}catch{return!1}}catch{}let g=e().dirname(d);for(;g!==e().dirname(g);){if((0,f.existsSync)(g))try{let a=(0,f.realpathSync)(g),b=l(a,c);return b||(0,h.h)(i,"symlink-ancestor-rejected",{currentPath:g,resolvedAncestor:a}),b}catch{break}g=e().dirname(g)}return!1}},68901:(a,b,c)=>{c.d(b,{FW:()=>l,Ke:()=>k,P0:()=>n,QN:()=>j,dR:()=>i,eJ:()=>o,t6:()=>h,ul:()=>m});var d=c(82366),e=c.n(d),f=c(16983);let g=[36e5,108e5,288e5],h=36e5;function i(a){return"number"==typeof a&&g.includes(a)}let j=5e3,k=f.sO,l=5e3,m=20;function n(a){if(a.length>500)return{valid:!1,error:"Pattern must be 500 characters or less"};if(!e()(a))return{valid:!1,error:"Pattern may cause performance issues (catastrophic backtracking detected)"};try{return new RegExp(a),{valid:!0}}catch{return{valid:!1,error:"Invalid regular expression syntax"}}}function o(a,b,c=100){try{return a.test(b)}catch{return null}}},70997:(a,b,c)=>{c.d(b,{v:()=>d});let d="claude"},73753:(a,b,c)=>{c.d(b,{DC:()=>v,Dx:()=>u,GA:()=>A,HZ:()=>r,NV:()=>l,O:()=>s,P9:()=>C,Rm:()=>H,Sj:()=>E,ZL:()=>n,_D:()=>w,_h:()=>o,ef:()=>x,getWorktreeById:()=>m,hq:()=>p,iu:()=>y,nO:()=>D,oZ:()=>G,p4:()=>B,s:()=>z,uJ:()=>F,vi:()=>k,yB:()=>t,z1:()=>q});var d=c(52201),e=c(64185),f=c(26923),g=c(52660),h=c(27923);let i=new Set;function j(a){return new Set(a.prepare("SELECT DISTINCT worktree_id FROM agent_instances").all().map(a=>a.worktree_id))}function k(a,b){let c=`
|
|
196
196
|
SELECT
|
|
197
197
|
w.id, w.name, w.path, w.repository_path, w.repository_name, w.description,
|
|
198
198
|
w.last_user_message, w.last_user_message_at, w.last_message_summary,
|