commandmate 0.36.1 → 0.38.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 +172 -172
- package/.next/app-path-routes-manifest.json +30 -30
- package/.next/build-manifest.json +2 -2
- package/.next/prerender-manifest.json +3 -3
- package/.next/required-server-files.json +1 -1
- package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/server/app/api/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/update/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/app/update-check/route.js +1 -1
- package/.next/server/app/api/app/update-check/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/assistant/conversation/route.js.nft.json +1 -1
- package/.next/server/app/api/assistant/conversation/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/assistant/current-output/route.js.nft.json +1 -1
- package/.next/server/app/api/assistant/current-output/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/assistant/messages/route.js +1 -1
- package/.next/server/app/api/assistant/messages/route.js.nft.json +1 -1
- package/.next/server/app/api/assistant/messages/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/assistant/session/route.js +1 -1
- package/.next/server/app/api/assistant/session/route.js.nft.json +1 -1
- package/.next/server/app/api/assistant/session/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/assistant/start/route.js +1 -1
- package/.next/server/app/api/assistant/start/route.js.nft.json +1 -1
- package/.next/server/app/api/assistant/start/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/assistant/terminal/route.js +1 -1
- package/.next/server/app/api/assistant/terminal/route.js.nft.json +1 -1
- package/.next/server/app/api/assistant/terminal/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/assistant/tools/route.js.nft.json +1 -1
- package/.next/server/app/api/assistant/tools/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/auth/login/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/auth/logout/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/auth/status/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/capabilities/route.js +1 -1
- package/.next/server/app/api/capabilities/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/daily-summary/route.js +1 -1
- package/.next/server/app/api/daily-summary/route.js.nft.json +1 -1
- package/.next/server/app/api/daily-summary/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/daily-summary/status/route.js +1 -1
- package/.next/server/app/api/daily-summary/status/route.js.nft.json +1 -1
- package/.next/server/app/api/daily-summary/status/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/external-apps/[id]/health/route_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.js +1 -1
- package/.next/server/app/api/push/escalation/route.js.nft.json +1 -1
- package/.next/server/app/api/push/escalation/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/push/subscriptions/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/push/vapid/route.js +1 -1
- package/.next/server/app/api/push/vapid/route.js.nft.json +1 -1
- package/.next/server/app/api/push/vapid/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/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.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/[id]/todos/[todoId]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/repositories/[id]/todos/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/repositories/clone/[jobId]/route.js +1 -1
- package/.next/server/app/api/repositories/clone/[jobId]/route.js.nft.json +1 -1
- package/.next/server/app/api/repositories/clone/[jobId]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/repositories/clone/route.js +1 -1
- package/.next/server/app/api/repositories/clone/route.js.nft.json +1 -1
- package/.next/server/app/api/repositories/clone/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/repositories/excluded/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/repositories/restore/route.js +1 -1
- package/.next/server/app/api/repositories/restore/route.js.nft.json +1 -1
- package/.next/server/app/api/repositories/restore/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/repositories/route.js +1 -1
- package/.next/server/app/api/repositories/route.js.nft.json +1 -1
- package/.next/server/app/api/repositories/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/repositories/scan/route.js +1 -1
- package/.next/server/app/api/repositories/scan/route.js.nft.json +1 -1
- package/.next/server/app/api/repositories/scan/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/repositories/sync/route.js +1 -1
- package/.next/server/app/api/repositories/sync/route.js.nft.json +1 -1
- package/.next/server/app/api/repositories/sync/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/repositories/validate-path/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/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_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/todos/route_client-reference-manifest.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_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.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_client-reference-manifest.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.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/cmate/schedules/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/current-output/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/current-output/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/current-output/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/env/route_client-reference-manifest.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 +4 -3
- package/.next/server/app/api/worktrees/[id]/execution-logs/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/execution-logs/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/files/[...path]/route_client-reference-manifest.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_client-reference-manifest.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_client-reference-manifest.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_client-reference-manifest.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_client-reference-manifest.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_client-reference-manifest.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_client-reference-manifest.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_client-reference-manifest.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_client-reference-manifest.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_client-reference-manifest.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_client-reference-manifest.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_client-reference-manifest.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_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.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.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_client-reference-manifest.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_client-reference-manifest.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_client-reference-manifest.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_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_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 -6
- package/.next/server/app/api/worktrees/[id]/schedules/[scheduleId]/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/schedules/[scheduleId]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/schedules/active/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/schedules/active/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/schedules/active/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/schedules/route.js +2 -7
- package/.next/server/app/api/worktrees/[id]/schedules/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/schedules/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/search/route_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.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_client-reference-manifest.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_client-reference-manifest.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_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_client-reference-manifest.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_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/verify/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/verify/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/verify/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/verify/runs/[runId]/cancel/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/verify/runs/[runId]/cancel/route.js.nft.json +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_client-reference-manifest.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_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/chat/page_client-reference-manifest.js +1 -1
- package/.next/server/app/login/page_client-reference-manifest.js +1 -1
- package/.next/server/app/manifest.webmanifest/route_client-reference-manifest.js +1 -1
- package/.next/server/app/more/page_client-reference-manifest.js +1 -1
- package/.next/server/app/offline/page_client-reference-manifest.js +1 -1
- package/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/server/app/proxy/[...path]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/repositories/page_client-reference-manifest.js +1 -1
- package/.next/server/app/review/page_client-reference-manifest.js +1 -1
- package/.next/server/app/sessions/page_client-reference-manifest.js +1 -1
- package/.next/server/app/skills/[skillId]/page_client-reference-manifest.js +1 -1
- package/.next/server/app/skills/installed/page_client-reference-manifest.js +1 -1
- package/.next/server/app/skills/page_client-reference-manifest.js +1 -1
- package/.next/server/app/worktrees/[id]/files/[...path]/page_client-reference-manifest.js +1 -1
- package/.next/server/app/worktrees/[id]/page.js +11 -9
- package/.next/server/app/worktrees/[id]/page_client-reference-manifest.js +1 -1
- package/.next/server/app/worktrees/[id]/terminal/page_client-reference-manifest.js +1 -1
- package/.next/server/app-paths-manifest.json +30 -30
- package/.next/server/chunks/1467.js +1 -1
- package/.next/server/chunks/1707.js +1 -1
- package/.next/server/chunks/1886.js +2 -2
- package/.next/server/chunks/2119.js +1 -1
- package/.next/server/chunks/2445.js +1 -1
- package/.next/server/chunks/3480.js +1 -18
- package/.next/server/chunks/3730.js +1 -1
- package/.next/server/chunks/4207.js +5 -0
- package/.next/server/chunks/4443.js +1 -1
- package/.next/server/chunks/5164.js +1 -1
- package/.next/server/chunks/6130.js +1 -1
- package/.next/server/chunks/650.js +1 -1
- package/.next/server/chunks/6661.js +1 -1
- package/.next/server/chunks/6677.js +2 -2
- package/.next/server/chunks/6793.js +13 -0
- package/.next/server/chunks/7075.js +1 -1
- package/.next/server/chunks/8052.js +74 -0
- package/.next/server/chunks/8728.js +2 -2
- package/.next/server/chunks/9080.js +1 -1
- package/.next/server/middleware-manifest.json +5 -5
- package/.next/server/pages/500.html +1 -1
- package/.next/server/server-reference-manifest.json +1 -1
- package/.next/static/chunks/{2407-e738634dab84534c.js → 2407-6fd60b674e20ec06.js} +1 -1
- package/.next/static/chunks/4388-a778968d9c4e9327.js +1 -0
- package/.next/static/chunks/4949-7dbce1029c6bdbb9.js +1 -0
- package/.next/static/chunks/998-292ebcd30f329eb1.js +1 -0
- package/.next/static/chunks/app/worktrees/[id]/page-86ef4510c70adefc.js +1 -0
- package/.next/trace +14 -14
- package/README.md +1 -1
- package/dist/cli/commands/ls.d.ts +64 -0
- package/dist/cli/commands/ls.d.ts.map +1 -1
- package/dist/cli/commands/ls.js +238 -30
- package/dist/cli/commands/respond.d.ts.map +1 -1
- package/dist/cli/commands/respond.js +14 -0
- package/dist/cli/commands/status.d.ts.map +1 -1
- package/dist/cli/commands/status.js +154 -15
- package/dist/cli/docs/agent-operations.d.ts +1 -1
- package/dist/cli/docs/agent-operations.d.ts.map +1 -1
- package/dist/cli/docs/agent-operations.js +37 -1
- package/dist/cli/types/api-responses.d.ts.map +1 -1
- package/dist/cli/utils/server-url.d.ts +27 -0
- package/dist/cli/utils/server-url.d.ts.map +1 -1
- package/dist/cli/utils/server-url.js +48 -6
- package/dist/lib/cli-tools/types.d.ts +22 -1
- package/dist/lib/cli-tools/types.d.ts.map +1 -1
- package/dist/lib/detection/tools/verified-against.d.ts +8 -0
- package/dist/lib/detection/tools/verified-against.d.ts.map +1 -1
- package/dist/lib/detection/tools/verified-against.js +8 -0
- package/dist/server/locales/en/worktree.json +21 -0
- package/dist/server/locales/ja/worktree.json +21 -0
- package/dist/server/src/lib/cli-tools/agent-mode-spec.js +327 -0
- package/dist/server/src/lib/cli-tools/base.js +22 -0
- package/dist/server/src/lib/cmate-parser.js +26 -6
- package/dist/server/src/lib/cmate-validator.js +354 -0
- package/dist/server/src/lib/detection/cli-patterns.js +40 -2
- package/dist/server/src/lib/detection/model-info-extractor.js +40 -3
- package/dist/server/src/lib/detection/prompt-detect-multiple-choice.js +44 -0
- package/dist/server/src/lib/detection/tools/antigravity/detect.js +9 -0
- package/dist/server/src/lib/detection/tools/command-code/detect.js +14 -3
- package/dist/server/src/lib/detection/tools/command-code/permission.js +104 -0
- package/dist/server/src/lib/detection/tools/verified-against.js +8 -0
- package/dist/server/src/lib/polling/auto-yes-dialog-gate.js +20 -2
- package/dist/server/src/lib/prompt-answer-sender.js +339 -16
- package/dist/server/src/lib/session/claude-executor.js +190 -17
- package/dist/server/src/types/cli-tool-contracts.js +75 -1
- package/dist/types/cli-tool-contracts.d.ts +162 -0
- package/dist/types/cli-tool-contracts.d.ts.map +1 -1
- package/dist/types/cli-tool-contracts.js +75 -1
- package/package.json +1 -1
- package/.next/server/chunks/6337.js +0 -1
- package/.next/server/chunks/663.js +0 -79
- package/.next/static/chunks/4388-410b1d8ed0d8d98b.js +0 -1
- package/.next/static/chunks/4949-f547605bd6078157.js +0 -1
- package/.next/static/chunks/998-ac0ded6d5eeb4dc0.js +0 -1
- package/.next/static/chunks/app/worktrees/[id]/page-3d147d6dd2fdc101.js +0 -1
- /package/.next/static/{OjmwYkJmQbLPFMjXdrB1R → rM1BO5QIz3tynGdyJy0T-}/_buildManifest.js +0 -0
- /package/.next/static/{OjmwYkJmQbLPFMjXdrB1R → rM1BO5QIz3tynGdyJy0T-}/_ssgManifest.js +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";exports.id=6661,exports.ids=[6661],exports.modules={24581:(a,b,c)=>{c.d(b,{Mu:()=>f,RY:()=>i,Tt:()=>h,Ui:()=>p,Xq:()=>l,ZV:()=>s,h_:()=>g,jF:()=>q,kT:()=>o,nY:()=>k,qX:()=>r,wt:()=>n});var d=c(62887),e=c(36051);let f=18e5,g={predicted:2e4,confirmed:18e5},h=3,i=16,j={turnId:null,openedAt:null,closedAt:null,closedBy:null};function k(a){return null===a?j:{turnId:a.turnId,openedAt:a.openedAt,closedAt:a.closedAt,closedBy:a.closedBy}}function l(a){if("string"!=typeof a||0===a.length||a.length>128)return null;for(let b=0;b<a.length;b++){let c=a.charCodeAt(b);if(c<32||127===c)return null}return a}function m(a,b){return"string"!=typeof a||""===a?null:a.slice(0,b)}function n(a){return m(a,e.lY)}function o(a){return m(a,d.h9)}function p(a){if(!Array.isArray(a))return null;let b=[];for(let c of a)if("string"==typeof c&&""!==c&&(b.push(c.slice(0,200)),b.length>=8))break;return b.length>0?b:null}function q(a,b){let c=null===a.confirmedAt?g.predicted:g.confirmed;return b-a.at<c}function r(a,b,c){return null!==b&&c-a.at>=1e3*b}function s(a,b){return null===a.sessionId||null===b||a.sessionId===b}},26547:(a,b,c)=>{c.d(b,{Yz:()=>F,jw:()=>D});var d=c(51297),e=c(85164);let f=["minimal","low","medium","high","xhigh"];function g(){return{model:null,effort:null}}let h=/^[A-Za-z0-9][A-Za-z0-9._:@/-]*$/,i=/^[A-Za-z0-9][A-Za-z0-9 .()[\]_:@/-]*$/;function j(a){return a.length>0&&a.length<=64&&h.test(a)}function k(a){return a.length>0&&a.length<=64&&i.test(a)}function l(a,b={}){let c=a.trim().toLowerCase();if(""===c)return null;if(f.includes(c))return c;if(!b.allowTruncated||c.length<2)return null;let d=f.filter(a=>a.length===c.length+1&&a.startsWith(c));return 1===d.length?d[0]:null}let m=/^\s*([^\s·]+)(?:\s+(minimal|low|medium|high|xhigh)\b)?/i;function n(a){if(!e.aW.test(a))return null;let b=a.indexOf("\xb7");if(b<0)return null;let c=m.exec(a.slice(0,b));if(!c)return null;let d=c[1];if(!j(d))return null;let f=c[2]?l(c[2]):null;return null!==f||/\d/.test(d)?{model:d,effort:f}:null}let o=/^\s*[\u2500-\u259F][\s\u2500-\u259F]*(\S[^\u2500-\u259F]*?)\s+with\s+(minimal|low|medium|high|xhigh)\s+effort\b/i;function p(a){let b=o.exec(a);if(!b)return null;let c=b[1].trim();return k(c)?{model:c,effort:l(b[2])}:null}let q=/^\s*⎿\s+(?:Set model to|Kept model as)\s+(?!(?:and saved as your default|for this session only)\b)([A-Za-z0-9][A-Za-z0-9 .()[\]_:@/-]*?)(?:\s+(?:and saved as your default for new sessions|for this session only))?(?:\s+with\s+([A-Za-z]+)\s+effort\b[^·]*)?\s*(?:·.*)?$/;function r(a){let b=q.exec(a);if(!b)return null;let c=b[1].trim();return k(c)?{model:c,effort:b[2]?l(b[2]):null}:null}let s=/^\s*(?:\?\s+for\s+shortcuts|esc\s+to\s+cancel)\b/i,t=/^\s*[\u2500-\u259F][\s\u2500-\u259F]*(\S[^\u2500-\u259F]*?)\s+\((minimal|low|medium|high|xhigh)\)\s*$/i;function u(a){if(!s.test(a))return null;let b=a.lastIndexOf("\xb7");if(b<0)return null;let c=l(a.slice(b+1),{allowTruncated:!0});if(!c)return null;let d=a.slice(0,b).trimEnd().split(/\s{2,}/),e=(d[d.length-1]??"").trim();return{model:k(e)?e:null,effort:c}}function v(a){let b=t.exec(a);if(!b)return null;let c=b[1].trim();return k(c)?{model:c,effort:l(b[2])}:null}let w=/^\s*[●◉◎○]\s+Model\s+changed\s+from\s+\S+(?:\s+\([^)]*\))?\s+to\s+(\S+)(?:\s+\((minimal|low|medium|high|xhigh)\))?\s+for\s+this\s+session\b/i;function x(a){let b=w.exec(a);if(!b)return null;let c=b[1];return j(c)?{model:c,effort:b[2]?l(b[2]):null}:null}let y=/^\s*▣\s+[A-Za-z][A-Za-z0-9-]*\s+·\s+([^·]+?)(?:\s+·\s+[\d.]+\s?m?s)?\s*$/;function z(a){let b=y.exec(a);if(!b)return null;let c=b[1].trim();return k(c)?{model:c,effort:null}:null}let A=/^\s*#\s+models:\s*([^·]+?)(?:\s+with\s+([A-Za-z]+)\s+effort)?\s*(?:·|$)/i;function B(a){let b=A.exec(a);if(!b)return null;let c=b[1].trim();return k(c)?{model:c,effort:b[2]?l(b[2]):null}:null}function C(a,b){let c=a.split("\n");for(let a=c.length-1;a>=0;a--){let e=b((0,d.aJ)(c[a]));if(e)return e}return null}function D(a,b){if(!b)return g();switch(a){case"codex":return C(b,n)??g();case"claude":return C(b,p)??C(b,r)??g();case"antigravity":return C(b,u)??C(b,v)??g();case"copilot":{let a=function(a){let b=a.split("\n");for(let a=b.length-1;a>=0;a--){let c=(0,d.aJ)(b[a]);if(""!==c.trim()){if(!e.Ub.test(c)&&!e.tJ.test(c))return null;let a=c.trim().split(/\s{2,}/);if(a.length<2)return null;let b=a[a.length-1].split("\xb7").map(a=>a.trim());if(b.length>2)return null;let d=b[0];if(!k(d))return null;if(1===b.length)return{model:d,effort:null};let f=l(b[1]);return null===f?null:{model:d,effort:f}}}return null}(b),c=C(b,x);if(!a)return c??g();if(null!==a.effort||null===c||null===c.effort)return a;return!function(a,b){let c=a=>a.toLowerCase().replace(/[^a-z0-9]/g,"");return c(a)===c(b)}(a.model,c.model)?a:{model:a.model,effort:c.effort}}case"opencode":return C(b,z)??g();case"command-code":return C(b,B)??g();default:return g()}}let E=/-(low|medium|high)$/i;function F(a,b,c,d){let e=(b||null)??c?.model??null,f=c?.effort??null,g="antigravity"===a?function(a){if(!a)return null;let b=E.exec(a);return b?b[1].toLowerCase():null}(e)??f:f;return{model:e,effort:(d||null)??g}}},36051:(a,b,c)=>{c.d(b,{PP:()=>g,QB:()=>e,Yo:()=>j,fO:()=>k,lY:()=>f});var d=c(81254);let e=[{number:1,label:"Allow once",reply:"once"},{number:2,label:"Allow always",reply:"always"},{number:3,label:"Reject",reply:"reject"}],f=500;function g(a){return"string"==typeof a&&""!==a}let h={notification:"Notification(permission_prompt)","permission-request":"PermissionRequest (no decision)"};function i(a,b){let c=[`A dialog is open in ${a}: the agent reported it via ${h[b.source]}${b.toolName?` for ${b.toolName}`:""}, but the detection layer published no options for it.`];if(b.decisionOptions&&b.decisionOptions.length>0?c.push(`Answer it with \`commandmate respond ${a} <number>\`: `+b.decisionOptions.map(a=>`${a.number} = ${a.label} (${a.reply})`).join(", ")+". The reply goes to the agent's own API, so no keys are sent to the terminal "+`and the label works too (\`respond ${a} "Allow once"\`).`):c.push(`Answer it in the terminal, or send the option NUMBER with \`commandmate respond ${a} <number>\` — yes/no is not resolved on a numbered dialog (Issue #1681).`),b.message&&c.push(`Agent message: "${b.message}"`),b.askUserQuestion){let{question:d,labels:e,questionCount:f}=b.askUserQuestion,h=g(b.decisionId)&&1===f&&!(b.decisionOptions&&b.decisionOptions.length>0);c.push(`The agent asked${f>1?` ${f} questions, the first being`:""}: "${d}" — offering: ${e.join(" / ")}. `+(h?`Answer it with \`commandmate respond ${a} <number>\`: `+e.map((a,b)=>`${b+1} = ${a}`).join(", ")+". The number is this list's own position and the reply goes to the agent's own API, so no keys are sent to the terminal (the label works too).":"The picker renumbers and adds its own entries, so read the option NUMBER off the terminal rather than counting this list."))}return c.join(" ")}function j(a,b){return{type:d.LT,status:"pending",question:i(a,b),options:[],source:b.source,...b.message?{message:b.message}:{},...b.toolName?{toolName:b.toolName}:{},...b.askUserQuestion?{askUserQuestion:b.askUserQuestion}:{},...b.decisionOptions&&b.decisionOptions.length>0?{decisionOptions:b.decisionOptions}:{},decisionId:g(b.decisionId)?b.decisionId:null,...b.patterns&&b.patterns.length>0?{patterns:[...b.patterns]}:{}}}function k(a,b){return{type:d.LT,status:"unclassified",question:i(a,b),options:[],source:b.source,...b.message?{message:b.message}:{},...b.toolName?{toolName:b.toolName}:{},...b.askUserQuestion?{askUserQuestion:b.askUserQuestion}:{}}}},48083:(a,b,c)=>{c.r(b),c.d(b,{AGENT_EVENT_DEDUP_WINDOW_MS:()=>G,AGENT_MODEL_EFFORT_SUFFIX_PATTERN:()=>z,LIFECYCLE_AGENT_EVENT_TYPES:()=>aI,STRUCTURED_PROMPT_PROVISIONAL_MAX_AGE_MS:()=>aw,STRUCTURED_STATE_MAX_AGE_MS:()=>ar,beginAgentEventGeneration:()=>as,classifyAgentEventDelivery:()=>aJ,clearAgentStopEvents:()=>aM,clearAskUserQuestion:()=>aF,clearStructuredPromptWaiting:()=>aC,closeAgentTurn:()=>T,corroborateStructuredPromptWaiting:()=>aA,discardAgentEventState:()=>au,getAgentEventDropCounts:()=>K,getAgentEventGenerationStartedAt:()=>at,getAgentModelBaseline:()=>E,getAgentTurn:()=>R,getAskUserQuestion:()=>aE,getAwaitingInstruction:()=>_,getLastAgentEvent:()=>ah,getLastCapturedModelInfo:()=>ak,getLastKnownAgentEffort:()=>aq,getLastKnownAgentModel:()=>ai,getLastReportedAgentEffort:()=>ap,getLastStopEventAt:()=>W,getPendingDecisions:()=>Q,getPublishedAgentTurn:()=>S,getRecentEventIdentityCount:()=>aL,getRecentEventKeyCount:()=>aH,getResolvedAgentModelInfo:()=>al,getStructuredPromptWaiting:()=>az,getStructuredSessionState:()=>av,isAwaitingInstruction:()=>aa,isDuplicateAgentEvent:()=>aG,isSameAgentModelName:()=>C,markStructuredPromptRecorded:()=>aB,observeScraperCompletionEvidence:()=>U,onAgentModelChange:()=>D,recordAgentEvent:()=>Y,recordAgentReportedEffort:()=>ao,recordAgentStopEvent:()=>V,recordAskUserQuestion:()=>aD,recordCapturedModelInfo:()=>aj,reportPermissionRequestPending:()=>ax,reportQuestionPending:()=>ay});var d=c(24455),e=c(62887),f=c(49154),g=c(26547),h=c(67882),i=c(24581);let j=globalThis.__agentEventLastStopAt??(globalThis.__agentEventLastStopAt=new Map),k=globalThis.__agentEventLast??(globalThis.__agentEventLast=new Map),l=globalThis.__agentEventGenerationStartedAt??(globalThis.__agentEventGenerationStartedAt=new Map),m=globalThis.__agentEventTurns??(globalThis.__agentEventTurns=new Map),n=globalThis.__agentEventDrops??(globalThis.__agentEventDrops=new Map),o=globalThis.__agentEventTurnSeq??(globalThis.__agentEventTurnSeq={value:0}),p=globalThis.__agentEventAskUserQuestion??(globalThis.__agentEventAskUserQuestion=new Map),q=globalThis.__agentEventRecentKeys??(globalThis.__agentEventRecentKeys=new Map),r=globalThis.__agentEventRecentIdentities??(globalThis.__agentEventRecentIdentities=new Map),s=globalThis.__agentEventAwaitingInstruction??(globalThis.__agentEventAwaitingInstruction=new Map),t=globalThis.__agentEventLastModel??(globalThis.__agentEventLastModel=new Map),u=globalThis.__agentEventLastModelAt??(globalThis.__agentEventLastModelAt=new Map),v=globalThis.__agentCapturedModelInfo??(globalThis.__agentCapturedModelInfo=new Map),w=globalThis.__agentEventLastEffort??(globalThis.__agentEventLastEffort=new Map),x=globalThis.__agentModelBaseline??(globalThis.__agentModelBaseline=new Map),y=globalThis.__agentModelChangeListeners??(globalThis.__agentModelChangeListeners=new Set),z=/[-_ ](?:minimal|low|medium|high|xhigh)$/i,A=/\bcontext\b/gi;function B(a){return a.replace(z,"").replace(A,"").toLowerCase().replace(/[^a-z0-9]/g,"")}function C(a,b,c={}){let d=B(a),e=B(b);return d===e||!!c.crossSource&&0!==d.length&&0!==e.length&&(d.includes(e)||e.includes(d))}function D(a){return y.add(a),()=>{y.delete(a)}}function E(a,b,c){return x.get((0,d.v7)(a,b,c))??null}function F(a,b,c,e,f){let g=(0,d.v7)(a,b,c),{info:h,source:i}=an(g,b),j=h.model;if(null===j||null===i)return;let k=x.get(g),l={model:j,source:i};if(void 0===k){x.set(g,l),aK(x,H);return}if(C(k.model,j,{crossSource:k.source!==i}))return void x.set(g,l);x.set(g,l);var m={worktreeId:a,cliToolId:b,instanceId:c??b,from:k.model,to:j,source:e,at:f};for(let a of y)try{a(m)}catch{}}let G=3e3,H=512;function I(){return{dedupDropped:{identity:0,timeWindow:0},decisionEvicted:0,idsDiscarded:0,dialogTimedOut:0,decisionOverflow:0}}function J(a){let b=n.get(a);return b||(b=I(),n.set(a,b),aK(n,H)),b}function K(a,b,c){let e=n.get((0,d.v7)(a,b,c));return e?{...e,dedupDropped:{...e.dedupDropped}}:I()}function L(a){return l.get(a)??null}function M(a){let b=m.get(a);return b&&b.generationAt===L(a)?b:null}function N(a,b){let c=M(a);return null===c?null:(null===c.closedAt&&b-c.displayEvent.at>=i.Mu&&(c.closedAt=c.displayEvent.at+i.Mu,c.closedBy="stale"),c)}function O(a){return o.value+=1,`turn-${a}-${o.value}`}function P(a,b,c){let d=b.pendingDecisions.filter(a=>(0,i.jF)(a,c)),e=b.pendingDecisions.length-d.length;return e>0&&(J(a).dialogTimedOut+=e,b.pendingDecisions=d),d}function Q(a,b,c,e=Date.now()){let f=(0,d.v7)(a,b,c),g=N(f,e);return null===g?[]:P(f,g,e)}function R(a,b,c,e=Date.now()){return N((0,d.v7)(a,b,c),e)}function S(a,b,c,d=Date.now()){return(0,i.nY)(R(a,b,c,d))}function T(a,b,c,e,f=Date.now()){let g=M((0,d.v7)(a,b,c));return null!==g&&null===g.closedAt&&(g.closedAt=f,g.closedBy=e,!0)}function U(a,b,c,e,f=Date.now()){let g=M((0,d.v7)(a,b,c));return null!==g&&null===g.closedAt&&(e?(g.scraperCompletionPolls+=1,!(g.scraperCompletionPolls<i.Tt)&&(g.closedAt=f,g.closedBy="scraper_evidence",!0)):(g.scraperCompletionPolls=0,!1))}function V(a,b,c,e=Date.now()){j.set((0,d.v7)(a,b,c),e)}function W(a,b,c){return j.get((0,d.v7)(a,b,c))??null}let X=["running","waiting"];function Y(a,b,c,g,h={}){let j=(0,d.v7)(a,b,c);return!function(a,b,c,e,f){if("session_start"!==e.event||!0!==f.sessionStartMayArriveLate)return!1;let g=av(a,b,c,e.at);if(null===g||!X.includes(g.status))return!1;let h=k.get((0,d.v7)(a,b,c))?.sessionId??null;return null===h||null==e.sessionId||e.sessionId===h}(a,b,c,g,h)?(k.set(j,g),"session_start"===g.event&&x.delete(j),$(j,g),F(a,b,c,"hook",g.at),function(a,b){switch(b.event){case"pre_tool_use":f.mW.includes(b.detail??"")||p.delete(a);return;case"notification":"idle_prompt"===b.detail&&p.delete(a);return;case"post_tool_use":case"stop":case"user_prompt_submit":case"session_start":case"session_end":p.delete(a);return;default:b.event;return}}(j,g),"session_start"===g.event&&(l.set(j,g.at),Z(j,g.at)),function(a,b){let c=L(a);if(null===c||!(b.at<c))switch(b.event){case"user_prompt_submit":ac(a,b,c,{continueOpen:!1}),ae(a);return;case"post_tool_use":ac(a,b,c,{continueOpen:!0}),ae(a);return;case"pre_tool_use":ac(a,b,c,{continueOpen:!0});return;case"stop":!function(a,b,c){let d=M(a);if(null!==d&&null===d.closedAt&&null!==d.openedAt){if(!(0,i.ZV)(d,b.sessionId))return;d.closedAt=b.at,d.closedBy="stop",d.displayEvent=ab(b),ae(a);return}m.set(a,{turnId:O(b.at),sessionId:b.sessionId,openedAt:null,closedAt:b.at,closedBy:"stop",generationAt:c,displayEvent:ab(b),pendingDecisions:[],scraperCompletionPolls:0}),ag()}(a,b,c);return;case"session_end":(function(a,b){let c=M(a);null!==c&&(0,i.ZV)(c,b.sessionId)&&(c.closedAt=b.at,c.closedBy="session_end")})(a,b),ae(a);return;case"session_start":return;case"notification":!function(a,b,c){if("permission_prompt"===b.detail)return!0===b.promptSettled?af(a,b):ad(a,c,{source:"notification",at:b.at,message:b.message??null,toolName:b.toolName??null,patterns:b.decisionPatterns??null,decisionId:b.decisionId??null,bootstrapDisplay:ab(b)});if(b.detail===e.KC){!0===b.promptSettled&&af(a,b);return}if("idle_prompt"===b.detail){ae(a);let d=M(a);if(null!==d&&null===d.closedAt){d.displayEvent=ab(b);return}if(null!==d)return;m.set(a,{turnId:O(b.at),sessionId:b.sessionId,openedAt:null,closedAt:null,closedBy:null,generationAt:c,displayEvent:ab(b),pendingDecisions:[],scraperCompletionPolls:0}),ag()}}(a,b,c);return;default:b.event;return}}(j,g),function(a,b){switch(b.event){case"notification":"idle_prompt"===b.detail&&s.set(a,{at:b.at,message:b.message??null});return;case"user_prompt_submit":case"session_start":case"session_end":s.delete(a);return;case"stop":case"pre_tool_use":case"post_tool_use":return;default:b.event;return}}(j,g),{recorded:!0}):($(j,g),F(a,b,c,"hook",g.at),{recorded:!1,skipped:"late-session-start"})}function Z(a,b){let c=m.get(a);c&&(0!==c.pendingDecisions.length&&(J(a).decisionEvicted+=c.pendingDecisions.length,c.pendingDecisions=[]),null===c.closedAt&&(c.closedAt=b,c.closedBy="generation",c.generationAt=b))}function $(a,b){"string"==typeof b.model&&""!==b.model&&(t.set(a,b.model.slice(0,e.h9)),u.set(a,b.at))}function _(a,b,c){let e=(0,d.v7)(a,b,c),f=s.get(e);if(!f)return null;let g=l.get(e);return void 0!==g&&f.at<g?null:f}function aa(a,b,c){return null!==_(a,b,c)}function ab(a){return{event:a.event,at:a.at,detail:a.detail}}function ac(a,b,c,{continueOpen:d}){let e=M(a),f=null!==e&&null===e.closedAt&&null!==e.openedAt&&(0,i.ZV)(e,b.sessionId);if(d&&f){e.displayEvent=ab(b),e.sessionId??=b.sessionId,e.scraperCompletionPolls=0;return}let g=null!==e&&null===e.openedAt&&null===e.closedAt?e.pendingDecisions:[];m.set(a,{turnId:O(b.at),sessionId:b.sessionId,openedAt:b.at,closedAt:null,closedBy:null,generationAt:c,displayEvent:ab(b),pendingDecisions:g,scraperCompletionPolls:0}),ag()}function ad(a,b,c){let d=M(a);null===d?(d={turnId:O(c.at),sessionId:null,openedAt:null,closedAt:null,closedBy:null,generationAt:b,displayEvent:c.bootstrapDisplay,pendingDecisions:[],scraperCompletionPolls:0},m.set(a,d),ag()):null!==d.closedAt&&(d={turnId:O(c.at),sessionId:null,openedAt:null,closedAt:null,closedBy:null,generationAt:b,displayEvent:c.bootstrapDisplay,pendingDecisions:[],scraperCompletionPolls:0},m.set(a,d),ag());let e=null===c.decisionId?null:(0,i.Xq)(c.decisionId);null!==c.decisionId&&null===e&&(J(a).idsDiscarded+=1);let f="notification"===c.source,g=null!==e?d.pendingDecisions.find(a=>a.decisionId===e)??d.pendingDecisions.find(a=>null===a.decisionId&&"permission-request"===a.source):d.pendingDecisions.find(a=>null===a.decisionId);if(g){g.message=(0,i.wt)(c.message)??g.message,g.toolName=(0,i.kT)(c.toolName)??g.toolName,g.patterns=(0,i.Ui)(c.patterns)??g.patterns,g.decisionId??=e,f&&(g.source="notification",g.confirmedAt??=c.at);return}if(d.pendingDecisions.length>=i.RY){J(a).decisionOverflow+=1;return}d.pendingDecisions.push({decisionId:e,at:c.at,source:c.source,message:(0,i.wt)(c.message),toolName:(0,i.kT)(c.toolName),patterns:(0,i.Ui)(c.patterns),confirmedAt:f?c.at:null,scraperCorroborated:!1,recorded:!1})}function ae(a){let b=M(a);null!==b&&(b.pendingDecisions=[])}function af(a,b){let c=M(a);if(null===c||0===c.pendingDecisions.length)return;let d=null===b.decisionId||void 0===b.decisionId?null:(0,i.Xq)(b.decisionId);if(null===d){c.pendingDecisions=[];return}c.pendingDecisions=c.pendingDecisions.filter(a=>null!==a.decisionId&&a.decisionId!==d)}function ag(){aK(m,H)}function ah(a,b,c){return k.get((0,d.v7)(a,b,c))??null}function ai(a,b,c){return t.get((0,d.v7)(a,b,c))??null}function aj(a,b,c,f,g=Date.now()){if(!f.model&&!f.effort)return;let h=(0,d.v7)(a,b,c),i=v.get(h),j=f.model?f.model.slice(0,e.h9):i?.model??null;v.set(h,{model:j,effort:f.effort??i?.effort??null,modelChangedAt:null===j?null:j===(i?.model??null)?i?.modelChangedAt??g:g}),f.model&&F(a,b,c,"frame",g)}function ak(a,b,c){let e=v.get((0,d.v7)(a,b,c));return{model:e?.model??null,effort:e?.effort??null}}function al(a,b,c){return an((0,d.v7)(a,b,c),b).info}let am=new Set(["claude"]);function an(a,b){let c=t.get(a)??null,d=v.get(a),e={model:d?.model??null,effort:d?.effort??null},f=w.get(a)??null,h=d?.modelChangedAt??null,i=null!==c&&null!==e.model&&null!==h&&am.has(b)&&h>(u.get(a)??0)&&!C(c,e.model,{crossSource:!0}),j=(0,g.Yz)(b,i?null:c,e,f);return null===j.model?{info:j,source:null}:{info:j,source:null===c||i?"frame":"hook"}}function ao(a,b,c,f){"string"==typeof f&&""!==f&&w.set((0,d.v7)(a,b,c),f.slice(0,e.h9))}function ap(a,b,c){return w.get((0,d.v7)(a,b,c))??null}function aq(a,b,c){return al(a,b,c).effort}let ar=i.Mu;function as(a,b,c,e=Date.now()){let f=(0,d.v7)(a,b,c);l.set(f,e),Z(f,e),p.delete(f),s.delete(f),t.delete(f),u.delete(f),v.delete(f),w.delete(f),x.delete(f),r.delete(f)}function at(a,b,c){return l.get((0,d.v7)(a,b,c))??null}function au(a,b,c){let e=(0,d.v7)(a,b,c);k.delete(e),l.delete(e),m.delete(e),n.delete(e),p.delete(e),s.delete(e),t.delete(e),u.delete(e),v.delete(e),w.delete(e),x.delete(e),r.delete(e)}function av(a,b,c,e=Date.now()){let f=(0,d.v7)(a,b,c),g=N(f,e);if(null===g)return null;let i=g.displayEvent;if(e-i.at>=ar)return null;let j={event:i.event,at:i.at,detail:i.detail},k=P(f,g,e);if(k.length>0)return{status:"waiting",reason:"notification"===k[0].source?h.Oh.PERMISSION_PROMPT:h.Oh.PERMISSION_REQUEST,...j};if(null!==g.closedAt)return"stop"===g.closedBy?{status:"ready",reason:h.Oh.STOP,...j}:null;let l=(0,h.DA)(i.event,i.detail);return null===l||"waiting"===l.status?null===g.openedAt?null:{status:"running",reason:h.Oh.PROMPT_SUBMIT,...j}:{...l,...j}}let aw=i.h_.predicted;function ax(a,b,c,e,f=Date.now()){let g=(0,d.v7)(a,b,c);ad(g,L(g),{source:"permission-request",at:f,message:null,toolName:e,patterns:null,decisionId:null,bootstrapDisplay:{event:"notification",at:f,detail:"permission_prompt"}})}function ay(a,b,c,e,f=Date.now()){let g=(0,d.v7)(a,b,c);ad(g,L(g),{source:"notification",at:f,message:null,toolName:e.toolName,patterns:null,decisionId:e.decisionId,bootstrapDisplay:{event:"notification",at:f,detail:e.detail}})}function az(a,b,c,d=Date.now()){return Q(a,b,c,d)[0]??null}function aA(a,b,c,d=Date.now()){let e=az(a,b,c,d);e&&(e.scraperCorroborated=!0,e.confirmedAt??=d)}function aB(a,b,c){let d=az(a,b,c);d&&(d.recorded=!0)}function aC(a,b,c){ae((0,d.v7)(a,b,c))}function aD(a,b,c,e,f=Date.now()){p.set((0,d.v7)(a,b,c),{at:f,spec:e})}function aE(a,b,c,e=Date.now()){let f=(0,d.v7)(a,b,c),g=p.get(f);if(!g)return null;let h=l.get(f);return void 0!==h&&g.at<h||e-g.at>=ar?null:g}function aF(a,b,c){p.delete((0,d.v7)(a,b,c))}function aG(a,b,c,e,f,g=Date.now(),h=null){if(!f)return!1;let i=[(0,d.v7)(a,b,c),e,h??"",f].join(" "),j=q.get(i);return void 0!==j&&g-j<G||(q.set(i,g),function(a){for(let[b,c]of q)a-c>=G&&q.delete(b);for(;q.size>H;){let a=q.keys().next();if(a.done)break;q.delete(a.value)}}(g),!1)}function aH(){return q.size}let aI=["stop","session_end"];function aJ(a){let b=(0,d.v7)(a.worktreeId,a.cliToolId,a.instanceId);if(null!==a.identityKind){let c=null===a.identity?null:(0,i.Xq)(a.identity);if(null!==a.identity&&null===c&&(J(b).idsDiscarded+=1),null!==c)return!function(a,b){let c=(0,d.v7)(a.worktreeId,a.cliToolId,a.instanceId),e=r.get(c);e||(e=new Map,r.set(c,e),aK(r,H));let f=[a.event,a.detail??"",b].join(" ");return!!e.has(f)||(e.set(f,a.at),aK(e,H),!1)}(a,c)?{duplicate:!1}:(J(b).dedupDropped.identity+=1,{duplicate:!0,by:"identity"});if(aI.includes(a.event))return{duplicate:!1}}return aG(a.worktreeId,a.cliToolId,a.instanceId,a.event,a.sessionId,a.at,a.detail)?(J(b).dedupDropped.timeWindow+=1,{duplicate:!0,by:"time-window"}):{duplicate:!1}}function aK(a,b){for(;a.size>b;){let b=a.keys().next();if(b.done)break;a.delete(b.value)}}function aL(a,b,c){if(void 0===a||void 0===b){let a=0;for(let b of r.values())a+=b.size;return a}return r.get((0,d.v7)(a,b,c))?.size??0}function aM(){j.clear(),k.clear(),q.clear(),r.clear(),l.clear(),m.clear(),n.clear(),p.clear(),s.clear(),t.clear(),u.clear(),v.clear(),w.clear(),x.clear()}},49154:(a,b,c)=>{c.d(b,{GF:()=>e,Wk:()=>g,mW:()=>f});var d=c(13287);let e="question",f=[d.k$,e];function g(a){return null!==a&&f.includes(a)?"question":"permission"}},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}}},67882:(a,b,c)=>{c.d(b,{DA:()=>e,O_:()=>f,Oh:()=>d,_K:()=>h,kA:()=>g});let d={PROMPT_SUBMIT:"hook_prompt_submit",STOP:"hook_stop",PERMISSION_PROMPT:"hook_permission_prompt",PERMISSION_REQUEST:"hook_permission_request",IDLE_PROMPT:"hook_idle_prompt",PRE_TOOL_USE:"hook_pre_tool_use",POST_TOOL_USE:"hook_post_tool_use"};function e(a,b){switch(a){case"user_prompt_submit":return{status:"running",reason:d.PROMPT_SUBMIT};case"pre_tool_use":return{status:"running",reason:d.PRE_TOOL_USE};case"post_tool_use":return{status:"running",reason:d.POST_TOOL_USE};case"stop":return{status:"ready",reason:d.STOP};case"notification":if("permission_prompt"===b)return{status:"waiting",reason:d.PERMISSION_PROMPT};if("idle_prompt"===b)return{status:"ready",reason:d.IDLE_PROMPT};return null;default:return null}}function f(a){switch(a){case"waiting":return{isWaitingForResponse:!0,isProcessing:!1};case"running":return{isWaitingForResponse:!1,isProcessing:!0};default:return{isWaitingForResponse:!1,isProcessing:!1}}}function g(a){return a?a.isWaitingForResponse?"waiting":a.isProcessing?"running":a.isRunning?"ready":"idle":"idle"}function h(a){return a.isSessionRunning?a.isWaitingForResponse?"waiting":a.isProcessing?"running":"ready":null}},81254:(a,b,c)=>{function d(a){return"answer_only"===a||"answer_then_enter"===a}c.d(b,{LT:()=>e,MI:()=>d,XF:()=>f});let e="unclassified";function f(a){return null!=a&&a.type!==e}}};
|
|
1
|
+
"use strict";exports.id=6661,exports.ids=[6661],exports.modules={24581:(a,b,c)=>{c.d(b,{Mu:()=>f,RY:()=>i,Tt:()=>h,Ui:()=>p,Xq:()=>l,ZV:()=>s,h_:()=>g,jF:()=>q,kT:()=>o,nY:()=>k,qX:()=>r,wt:()=>n});var d=c(62887),e=c(36051);let f=18e5,g={predicted:2e4,confirmed:18e5},h=3,i=16,j={turnId:null,openedAt:null,closedAt:null,closedBy:null};function k(a){return null===a?j:{turnId:a.turnId,openedAt:a.openedAt,closedAt:a.closedAt,closedBy:a.closedBy}}function l(a){if("string"!=typeof a||0===a.length||a.length>128)return null;for(let b=0;b<a.length;b++){let c=a.charCodeAt(b);if(c<32||127===c)return null}return a}function m(a,b){return"string"!=typeof a||""===a?null:a.slice(0,b)}function n(a){return m(a,e.lY)}function o(a){return m(a,d.h9)}function p(a){if(!Array.isArray(a))return null;let b=[];for(let c of a)if("string"==typeof c&&""!==c&&(b.push(c.slice(0,200)),b.length>=8))break;return b.length>0?b:null}function q(a,b){let c=null===a.confirmedAt?g.predicted:g.confirmed;return b-a.at<c}function r(a,b,c){return null!==b&&c-a.at>=1e3*b}function s(a,b){return null===a.sessionId||null===b||a.sessionId===b}},26547:(a,b,c)=>{c.d(b,{Yz:()=>G,jw:()=>E});var d=c(51297),e=c(85164);let f=["minimal","low","medium","high","xhigh"];function g(){return{model:null,effort:null}}let h=/^[A-Za-z0-9][A-Za-z0-9._:@/-]*$/,i=/^[A-Za-z0-9][A-Za-z0-9 .()[\]_:@/-]*$/;function j(a){return a.length>0&&a.length<=64&&h.test(a)}function k(a){return a.length>0&&a.length<=64&&i.test(a)}function l(a,b={}){let c=a.trim().toLowerCase();if(""===c)return null;if(f.includes(c))return c;if(!b.allowTruncated||c.length<2)return null;let d=f.filter(a=>a.length===c.length+1&&a.startsWith(c));return 1===d.length?d[0]:null}let m=/^\s*([^\s·]+)(?:\s+(minimal|low|medium|high|xhigh)\b)?/i,n=/^\s*\S[^·]*·\s*~?\/\S*(?:\s*·[^\n]*|[^\S\n]{2,}\S[^\n]*)$/;function o(a){if(!e.aW.test(a)&&!n.test(a))return null;let b=a.indexOf("\xb7");if(b<0)return null;let c=m.exec(a.slice(0,b));if(!c)return null;let d=c[1];if(!j(d))return null;let f=c[2]?l(c[2]):null;return null!==f||/\d/.test(d)?{model:d,effort:f}:null}let p=/^\s*[\u2500-\u259F][\s\u2500-\u259F]*(\S[^\u2500-\u259F]*?)\s+with\s+(minimal|low|medium|high|xhigh)\s+effort\b/i;function q(a){let b=p.exec(a);if(!b)return null;let c=b[1].trim();return k(c)?{model:c,effort:l(b[2])}:null}let r=/^\s*⎿\s+(?:Set model to|Kept model as)\s+(?!(?:and saved as your default|for this session only)\b)([A-Za-z0-9][A-Za-z0-9 .()[\]_:@/-]*?)(?:\s+(?:and saved as your default for new sessions|for this session only))?(?:\s+with\s+([A-Za-z]+)\s+effort\b[^·]*)?\s*(?:·.*)?$/;function s(a){let b=r.exec(a);if(!b)return null;let c=b[1].trim();return k(c)?{model:c,effort:b[2]?l(b[2]):null}:null}let t=/^\s*(?:\?\s+for\s+shortcuts|esc\s+to\s+cancel)\b/i,u=/^\s*[\u2500-\u259F][\s\u2500-\u259F]*(\S[^\u2500-\u259F]*?)\s+\((minimal|low|medium|high|xhigh)\)\s*$/i;function v(a){if(!t.test(a))return null;let b=a.lastIndexOf("\xb7");if(b<0)return null;let c=l(a.slice(b+1),{allowTruncated:!0});if(!c)return null;let d=a.slice(0,b).trimEnd().split(/\s{2,}/),e=(d[d.length-1]??"").trim();return{model:k(e)?e:null,effort:c}}function w(a){let b=u.exec(a);if(!b)return null;let c=b[1].trim();return k(c)?{model:c,effort:l(b[2])}:null}let x=/^\s*[●◉◎○]\s+Model\s+changed\s+from\s+\S+(?:\s+\([^)]*\))?\s+to\s+(\S+)(?:\s+\((minimal|low|medium|high|xhigh)\))?\s+for\s+this\s+session\b/i;function y(a){let b=x.exec(a);if(!b)return null;let c=b[1];return j(c)?{model:c,effort:b[2]?l(b[2]):null}:null}let z=/^\s*▣\s+[A-Za-z][A-Za-z0-9-]*\s+·\s+([^·]+?)(?:\s+·\s+[\d.]+\s?m?s)?\s*$/;function A(a){let b=z.exec(a);if(!b)return null;let c=b[1].trim();return k(c)?{model:c,effort:null}:null}let B=/^\s*#\s+models:\s*([^·]+?)(?:\s+with\s+([A-Za-z]+)\s+effort)?\s*(?:·|$)/i;function C(a){let b=B.exec(a);if(!b)return null;let c=b[1].trim();return k(c)?{model:c,effort:b[2]?l(b[2]):null}:null}function D(a,b){let c=a.split("\n");for(let a=c.length-1;a>=0;a--){let e=b((0,d.aJ)(c[a]));if(e)return e}return null}function E(a,b){if(!b)return g();switch(a){case"codex":return D(b,o)??g();case"claude":return D(b,q)??D(b,s)??g();case"antigravity":return D(b,v)??D(b,w)??g();case"copilot":{let a=function(a){let b=a.split("\n");for(let a=b.length-1;a>=0;a--){let c=(0,d.aJ)(b[a]);if(""!==c.trim()){if(!e.Ub.test(c)&&!e.tJ.test(c))return null;let a=c.trim().split(/\s{2,}/);if(a.length<2)return null;let b=a[a.length-1].split("\xb7").map(a=>a.trim());if(b.length>2)return null;let d=b[0];if(!k(d))return null;if(1===b.length)return{model:d,effort:null};let f=l(b[1]);return null===f?null:{model:d,effort:f}}}return null}(b),c=D(b,y);if(!a)return c??g();if(null!==a.effort||null===c||null===c.effort)return a;return!function(a,b){let c=a=>a.toLowerCase().replace(/[^a-z0-9]/g,"");return c(a)===c(b)}(a.model,c.model)?a:{model:a.model,effort:c.effort}}case"opencode":return D(b,A)??g();case"command-code":return D(b,C)??g();default:return g()}}let F=/-(low|medium|high)$/i;function G(a,b,c,d){let e=(b||null)??c?.model??null,f=c?.effort??null,g="antigravity"===a?function(a){if(!a)return null;let b=F.exec(a);return b?b[1].toLowerCase():null}(e)??f:f;return{model:e,effort:(d||null)??g}}},36051:(a,b,c)=>{c.d(b,{PP:()=>g,QB:()=>e,Yo:()=>j,fO:()=>k,lY:()=>f});var d=c(81254);let e=[{number:1,label:"Allow once",reply:"once"},{number:2,label:"Allow always",reply:"always"},{number:3,label:"Reject",reply:"reject"}],f=500;function g(a){return"string"==typeof a&&""!==a}let h={notification:"Notification(permission_prompt)","permission-request":"PermissionRequest (no decision)"};function i(a,b){let c=[`A dialog is open in ${a}: the agent reported it via ${h[b.source]}${b.toolName?` for ${b.toolName}`:""}, but the detection layer published no options for it.`];if(b.decisionOptions&&b.decisionOptions.length>0?c.push(`Answer it with \`commandmate respond ${a} <number>\`: `+b.decisionOptions.map(a=>`${a.number} = ${a.label} (${a.reply})`).join(", ")+". The reply goes to the agent's own API, so no keys are sent to the terminal "+`and the label works too (\`respond ${a} "Allow once"\`).`):c.push(`Answer it in the terminal, or send the option NUMBER with \`commandmate respond ${a} <number>\` — yes/no is not resolved on a numbered dialog (Issue #1681).`),b.message&&c.push(`Agent message: "${b.message}"`),b.askUserQuestion){let{question:d,labels:e,questionCount:f}=b.askUserQuestion,h=g(b.decisionId)&&1===f&&!(b.decisionOptions&&b.decisionOptions.length>0);c.push(`The agent asked${f>1?` ${f} questions, the first being`:""}: "${d}" — offering: ${e.join(" / ")}. `+(h?`Answer it with \`commandmate respond ${a} <number>\`: `+e.map((a,b)=>`${b+1} = ${a}`).join(", ")+". The number is this list's own position and the reply goes to the agent's own API, so no keys are sent to the terminal (the label works too).":"The picker renumbers and adds its own entries, so read the option NUMBER off the terminal rather than counting this list."))}return c.join(" ")}function j(a,b){return{type:d.LT,status:"pending",question:i(a,b),options:[],source:b.source,...b.message?{message:b.message}:{},...b.toolName?{toolName:b.toolName}:{},...b.askUserQuestion?{askUserQuestion:b.askUserQuestion}:{},...b.decisionOptions&&b.decisionOptions.length>0?{decisionOptions:b.decisionOptions}:{},decisionId:g(b.decisionId)?b.decisionId:null,...b.patterns&&b.patterns.length>0?{patterns:[...b.patterns]}:{}}}function k(a,b){return{type:d.LT,status:"unclassified",question:i(a,b),options:[],source:b.source,...b.message?{message:b.message}:{},...b.toolName?{toolName:b.toolName}:{},...b.askUserQuestion?{askUserQuestion:b.askUserQuestion}:{}}}},48083:(a,b,c)=>{c.r(b),c.d(b,{AGENT_EVENT_DEDUP_WINDOW_MS:()=>G,AGENT_MODEL_EFFORT_SUFFIX_PATTERN:()=>z,LIFECYCLE_AGENT_EVENT_TYPES:()=>aI,STRUCTURED_PROMPT_PROVISIONAL_MAX_AGE_MS:()=>aw,STRUCTURED_STATE_MAX_AGE_MS:()=>ar,beginAgentEventGeneration:()=>as,classifyAgentEventDelivery:()=>aJ,clearAgentStopEvents:()=>aM,clearAskUserQuestion:()=>aF,clearStructuredPromptWaiting:()=>aC,closeAgentTurn:()=>T,corroborateStructuredPromptWaiting:()=>aA,discardAgentEventState:()=>au,getAgentEventDropCounts:()=>K,getAgentEventGenerationStartedAt:()=>at,getAgentModelBaseline:()=>E,getAgentTurn:()=>R,getAskUserQuestion:()=>aE,getAwaitingInstruction:()=>_,getLastAgentEvent:()=>ah,getLastCapturedModelInfo:()=>ak,getLastKnownAgentEffort:()=>aq,getLastKnownAgentModel:()=>ai,getLastReportedAgentEffort:()=>ap,getLastStopEventAt:()=>W,getPendingDecisions:()=>Q,getPublishedAgentTurn:()=>S,getRecentEventIdentityCount:()=>aL,getRecentEventKeyCount:()=>aH,getResolvedAgentModelInfo:()=>al,getStructuredPromptWaiting:()=>az,getStructuredSessionState:()=>av,isAwaitingInstruction:()=>aa,isDuplicateAgentEvent:()=>aG,isSameAgentModelName:()=>C,markStructuredPromptRecorded:()=>aB,observeScraperCompletionEvidence:()=>U,onAgentModelChange:()=>D,recordAgentEvent:()=>Y,recordAgentReportedEffort:()=>ao,recordAgentStopEvent:()=>V,recordAskUserQuestion:()=>aD,recordCapturedModelInfo:()=>aj,reportPermissionRequestPending:()=>ax,reportQuestionPending:()=>ay});var d=c(24455),e=c(62887),f=c(49154),g=c(26547),h=c(67882),i=c(24581);let j=globalThis.__agentEventLastStopAt??(globalThis.__agentEventLastStopAt=new Map),k=globalThis.__agentEventLast??(globalThis.__agentEventLast=new Map),l=globalThis.__agentEventGenerationStartedAt??(globalThis.__agentEventGenerationStartedAt=new Map),m=globalThis.__agentEventTurns??(globalThis.__agentEventTurns=new Map),n=globalThis.__agentEventDrops??(globalThis.__agentEventDrops=new Map),o=globalThis.__agentEventTurnSeq??(globalThis.__agentEventTurnSeq={value:0}),p=globalThis.__agentEventAskUserQuestion??(globalThis.__agentEventAskUserQuestion=new Map),q=globalThis.__agentEventRecentKeys??(globalThis.__agentEventRecentKeys=new Map),r=globalThis.__agentEventRecentIdentities??(globalThis.__agentEventRecentIdentities=new Map),s=globalThis.__agentEventAwaitingInstruction??(globalThis.__agentEventAwaitingInstruction=new Map),t=globalThis.__agentEventLastModel??(globalThis.__agentEventLastModel=new Map),u=globalThis.__agentEventLastModelAt??(globalThis.__agentEventLastModelAt=new Map),v=globalThis.__agentCapturedModelInfo??(globalThis.__agentCapturedModelInfo=new Map),w=globalThis.__agentEventLastEffort??(globalThis.__agentEventLastEffort=new Map),x=globalThis.__agentModelBaseline??(globalThis.__agentModelBaseline=new Map),y=globalThis.__agentModelChangeListeners??(globalThis.__agentModelChangeListeners=new Set),z=/[-_ ](?:minimal|low|medium|high|xhigh)$/i,A=/\bcontext\b/gi;function B(a){return a.replace(z,"").replace(A,"").toLowerCase().replace(/[^a-z0-9]/g,"")}function C(a,b,c={}){let d=B(a),e=B(b);return d===e||!!c.crossSource&&0!==d.length&&0!==e.length&&(d.includes(e)||e.includes(d))}function D(a){return y.add(a),()=>{y.delete(a)}}function E(a,b,c){return x.get((0,d.v7)(a,b,c))??null}function F(a,b,c,e,f){let g=(0,d.v7)(a,b,c),{info:h,source:i}=an(g,b),j=h.model;if(null===j||null===i)return;let k=x.get(g),l={model:j,source:i};if(void 0===k){x.set(g,l),aK(x,H);return}if(C(k.model,j,{crossSource:k.source!==i}))return void x.set(g,l);x.set(g,l);var m={worktreeId:a,cliToolId:b,instanceId:c??b,from:k.model,to:j,source:e,at:f};for(let a of y)try{a(m)}catch{}}let G=3e3,H=512;function I(){return{dedupDropped:{identity:0,timeWindow:0},decisionEvicted:0,idsDiscarded:0,dialogTimedOut:0,decisionOverflow:0}}function J(a){let b=n.get(a);return b||(b=I(),n.set(a,b),aK(n,H)),b}function K(a,b,c){let e=n.get((0,d.v7)(a,b,c));return e?{...e,dedupDropped:{...e.dedupDropped}}:I()}function L(a){return l.get(a)??null}function M(a){let b=m.get(a);return b&&b.generationAt===L(a)?b:null}function N(a,b){let c=M(a);return null===c?null:(null===c.closedAt&&b-c.displayEvent.at>=i.Mu&&(c.closedAt=c.displayEvent.at+i.Mu,c.closedBy="stale"),c)}function O(a){return o.value+=1,`turn-${a}-${o.value}`}function P(a,b,c){let d=b.pendingDecisions.filter(a=>(0,i.jF)(a,c)),e=b.pendingDecisions.length-d.length;return e>0&&(J(a).dialogTimedOut+=e,b.pendingDecisions=d),d}function Q(a,b,c,e=Date.now()){let f=(0,d.v7)(a,b,c),g=N(f,e);return null===g?[]:P(f,g,e)}function R(a,b,c,e=Date.now()){return N((0,d.v7)(a,b,c),e)}function S(a,b,c,d=Date.now()){return(0,i.nY)(R(a,b,c,d))}function T(a,b,c,e,f=Date.now()){let g=M((0,d.v7)(a,b,c));return null!==g&&null===g.closedAt&&(g.closedAt=f,g.closedBy=e,!0)}function U(a,b,c,e,f=Date.now()){let g=M((0,d.v7)(a,b,c));return null!==g&&null===g.closedAt&&(e?(g.scraperCompletionPolls+=1,!(g.scraperCompletionPolls<i.Tt)&&(g.closedAt=f,g.closedBy="scraper_evidence",!0)):(g.scraperCompletionPolls=0,!1))}function V(a,b,c,e=Date.now()){j.set((0,d.v7)(a,b,c),e)}function W(a,b,c){return j.get((0,d.v7)(a,b,c))??null}let X=["running","waiting"];function Y(a,b,c,g,h={}){let j=(0,d.v7)(a,b,c);return!function(a,b,c,e,f){if("session_start"!==e.event||!0!==f.sessionStartMayArriveLate)return!1;let g=av(a,b,c,e.at);if(null===g||!X.includes(g.status))return!1;let h=k.get((0,d.v7)(a,b,c))?.sessionId??null;return null===h||null==e.sessionId||e.sessionId===h}(a,b,c,g,h)?(k.set(j,g),"session_start"===g.event&&x.delete(j),$(j,g),F(a,b,c,"hook",g.at),function(a,b){switch(b.event){case"pre_tool_use":f.mW.includes(b.detail??"")||p.delete(a);return;case"notification":"idle_prompt"===b.detail&&p.delete(a);return;case"post_tool_use":case"stop":case"user_prompt_submit":case"session_start":case"session_end":p.delete(a);return;default:b.event;return}}(j,g),"session_start"===g.event&&(l.set(j,g.at),Z(j,g.at)),function(a,b){let c=L(a);if(null===c||!(b.at<c))switch(b.event){case"user_prompt_submit":ac(a,b,c,{continueOpen:!1}),ae(a);return;case"post_tool_use":ac(a,b,c,{continueOpen:!0}),ae(a);return;case"pre_tool_use":ac(a,b,c,{continueOpen:!0});return;case"stop":!function(a,b,c){let d=M(a);if(null!==d&&null===d.closedAt&&null!==d.openedAt){if(!(0,i.ZV)(d,b.sessionId))return;d.closedAt=b.at,d.closedBy="stop",d.displayEvent=ab(b),ae(a);return}m.set(a,{turnId:O(b.at),sessionId:b.sessionId,openedAt:null,closedAt:b.at,closedBy:"stop",generationAt:c,displayEvent:ab(b),pendingDecisions:[],scraperCompletionPolls:0}),ag()}(a,b,c);return;case"session_end":(function(a,b){let c=M(a);null!==c&&(0,i.ZV)(c,b.sessionId)&&(c.closedAt=b.at,c.closedBy="session_end")})(a,b),ae(a);return;case"session_start":return;case"notification":!function(a,b,c){if("permission_prompt"===b.detail)return!0===b.promptSettled?af(a,b):ad(a,c,{source:"notification",at:b.at,message:b.message??null,toolName:b.toolName??null,patterns:b.decisionPatterns??null,decisionId:b.decisionId??null,bootstrapDisplay:ab(b)});if(b.detail===e.KC){!0===b.promptSettled&&af(a,b);return}if("idle_prompt"===b.detail){ae(a);let d=M(a);if(null!==d&&null===d.closedAt){d.displayEvent=ab(b);return}if(null!==d)return;m.set(a,{turnId:O(b.at),sessionId:b.sessionId,openedAt:null,closedAt:null,closedBy:null,generationAt:c,displayEvent:ab(b),pendingDecisions:[],scraperCompletionPolls:0}),ag()}}(a,b,c);return;default:b.event;return}}(j,g),function(a,b){switch(b.event){case"notification":"idle_prompt"===b.detail&&s.set(a,{at:b.at,message:b.message??null});return;case"user_prompt_submit":case"session_start":case"session_end":s.delete(a);return;case"stop":case"pre_tool_use":case"post_tool_use":return;default:b.event;return}}(j,g),{recorded:!0}):($(j,g),F(a,b,c,"hook",g.at),{recorded:!1,skipped:"late-session-start"})}function Z(a,b){let c=m.get(a);c&&(0!==c.pendingDecisions.length&&(J(a).decisionEvicted+=c.pendingDecisions.length,c.pendingDecisions=[]),null===c.closedAt&&(c.closedAt=b,c.closedBy="generation",c.generationAt=b))}function $(a,b){"string"==typeof b.model&&""!==b.model&&(t.set(a,b.model.slice(0,e.h9)),u.set(a,b.at))}function _(a,b,c){let e=(0,d.v7)(a,b,c),f=s.get(e);if(!f)return null;let g=l.get(e);return void 0!==g&&f.at<g?null:f}function aa(a,b,c){return null!==_(a,b,c)}function ab(a){return{event:a.event,at:a.at,detail:a.detail}}function ac(a,b,c,{continueOpen:d}){let e=M(a),f=null!==e&&null===e.closedAt&&null!==e.openedAt&&(0,i.ZV)(e,b.sessionId);if(d&&f){e.displayEvent=ab(b),e.sessionId??=b.sessionId,e.scraperCompletionPolls=0;return}let g=null!==e&&null===e.openedAt&&null===e.closedAt?e.pendingDecisions:[];m.set(a,{turnId:O(b.at),sessionId:b.sessionId,openedAt:b.at,closedAt:null,closedBy:null,generationAt:c,displayEvent:ab(b),pendingDecisions:g,scraperCompletionPolls:0}),ag()}function ad(a,b,c){let d=M(a);null===d?(d={turnId:O(c.at),sessionId:null,openedAt:null,closedAt:null,closedBy:null,generationAt:b,displayEvent:c.bootstrapDisplay,pendingDecisions:[],scraperCompletionPolls:0},m.set(a,d),ag()):null!==d.closedAt&&(d={turnId:O(c.at),sessionId:null,openedAt:null,closedAt:null,closedBy:null,generationAt:b,displayEvent:c.bootstrapDisplay,pendingDecisions:[],scraperCompletionPolls:0},m.set(a,d),ag());let e=null===c.decisionId?null:(0,i.Xq)(c.decisionId);null!==c.decisionId&&null===e&&(J(a).idsDiscarded+=1);let f="notification"===c.source,g=null!==e?d.pendingDecisions.find(a=>a.decisionId===e)??d.pendingDecisions.find(a=>null===a.decisionId&&"permission-request"===a.source):d.pendingDecisions.find(a=>null===a.decisionId);if(g){g.message=(0,i.wt)(c.message)??g.message,g.toolName=(0,i.kT)(c.toolName)??g.toolName,g.patterns=(0,i.Ui)(c.patterns)??g.patterns,g.decisionId??=e,f&&(g.source="notification",g.confirmedAt??=c.at);return}if(d.pendingDecisions.length>=i.RY){J(a).decisionOverflow+=1;return}d.pendingDecisions.push({decisionId:e,at:c.at,source:c.source,message:(0,i.wt)(c.message),toolName:(0,i.kT)(c.toolName),patterns:(0,i.Ui)(c.patterns),confirmedAt:f?c.at:null,scraperCorroborated:!1,recorded:!1})}function ae(a){let b=M(a);null!==b&&(b.pendingDecisions=[])}function af(a,b){let c=M(a);if(null===c||0===c.pendingDecisions.length)return;let d=null===b.decisionId||void 0===b.decisionId?null:(0,i.Xq)(b.decisionId);if(null===d){c.pendingDecisions=[];return}c.pendingDecisions=c.pendingDecisions.filter(a=>null!==a.decisionId&&a.decisionId!==d)}function ag(){aK(m,H)}function ah(a,b,c){return k.get((0,d.v7)(a,b,c))??null}function ai(a,b,c){return t.get((0,d.v7)(a,b,c))??null}function aj(a,b,c,f,g=Date.now()){if(!f.model&&!f.effort)return;let h=(0,d.v7)(a,b,c),i=v.get(h),j=f.model?f.model.slice(0,e.h9):i?.model??null;v.set(h,{model:j,effort:f.effort??i?.effort??null,modelChangedAt:null===j?null:j===(i?.model??null)?i?.modelChangedAt??g:g}),f.model&&F(a,b,c,"frame",g)}function ak(a,b,c){let e=v.get((0,d.v7)(a,b,c));return{model:e?.model??null,effort:e?.effort??null}}function al(a,b,c){return an((0,d.v7)(a,b,c),b).info}let am=new Set(["claude"]);function an(a,b){let c=t.get(a)??null,d=v.get(a),e={model:d?.model??null,effort:d?.effort??null},f=w.get(a)??null,h=d?.modelChangedAt??null,i=null!==c&&null!==e.model&&null!==h&&am.has(b)&&h>(u.get(a)??0)&&!C(c,e.model,{crossSource:!0}),j=(0,g.Yz)(b,i?null:c,e,f);return null===j.model?{info:j,source:null}:{info:j,source:null===c||i?"frame":"hook"}}function ao(a,b,c,f){"string"==typeof f&&""!==f&&w.set((0,d.v7)(a,b,c),f.slice(0,e.h9))}function ap(a,b,c){return w.get((0,d.v7)(a,b,c))??null}function aq(a,b,c){return al(a,b,c).effort}let ar=i.Mu;function as(a,b,c,e=Date.now()){let f=(0,d.v7)(a,b,c);l.set(f,e),Z(f,e),p.delete(f),s.delete(f),t.delete(f),u.delete(f),v.delete(f),w.delete(f),x.delete(f),r.delete(f)}function at(a,b,c){return l.get((0,d.v7)(a,b,c))??null}function au(a,b,c){let e=(0,d.v7)(a,b,c);k.delete(e),l.delete(e),m.delete(e),n.delete(e),p.delete(e),s.delete(e),t.delete(e),u.delete(e),v.delete(e),w.delete(e),x.delete(e),r.delete(e)}function av(a,b,c,e=Date.now()){let f=(0,d.v7)(a,b,c),g=N(f,e);if(null===g)return null;let i=g.displayEvent;if(e-i.at>=ar)return null;let j={event:i.event,at:i.at,detail:i.detail},k=P(f,g,e);if(k.length>0)return{status:"waiting",reason:"notification"===k[0].source?h.Oh.PERMISSION_PROMPT:h.Oh.PERMISSION_REQUEST,...j};if(null!==g.closedAt)return"stop"===g.closedBy?{status:"ready",reason:h.Oh.STOP,...j}:null;let l=(0,h.DA)(i.event,i.detail);return null===l||"waiting"===l.status?null===g.openedAt?null:{status:"running",reason:h.Oh.PROMPT_SUBMIT,...j}:{...l,...j}}let aw=i.h_.predicted;function ax(a,b,c,e,f=Date.now()){let g=(0,d.v7)(a,b,c);ad(g,L(g),{source:"permission-request",at:f,message:null,toolName:e,patterns:null,decisionId:null,bootstrapDisplay:{event:"notification",at:f,detail:"permission_prompt"}})}function ay(a,b,c,e,f=Date.now()){let g=(0,d.v7)(a,b,c);ad(g,L(g),{source:"notification",at:f,message:null,toolName:e.toolName,patterns:null,decisionId:e.decisionId,bootstrapDisplay:{event:"notification",at:f,detail:e.detail}})}function az(a,b,c,d=Date.now()){return Q(a,b,c,d)[0]??null}function aA(a,b,c,d=Date.now()){let e=az(a,b,c,d);e&&(e.scraperCorroborated=!0,e.confirmedAt??=d)}function aB(a,b,c){let d=az(a,b,c);d&&(d.recorded=!0)}function aC(a,b,c){ae((0,d.v7)(a,b,c))}function aD(a,b,c,e,f=Date.now()){p.set((0,d.v7)(a,b,c),{at:f,spec:e})}function aE(a,b,c,e=Date.now()){let f=(0,d.v7)(a,b,c),g=p.get(f);if(!g)return null;let h=l.get(f);return void 0!==h&&g.at<h||e-g.at>=ar?null:g}function aF(a,b,c){p.delete((0,d.v7)(a,b,c))}function aG(a,b,c,e,f,g=Date.now(),h=null){if(!f)return!1;let i=[(0,d.v7)(a,b,c),e,h??"",f].join(" "),j=q.get(i);return void 0!==j&&g-j<G||(q.set(i,g),function(a){for(let[b,c]of q)a-c>=G&&q.delete(b);for(;q.size>H;){let a=q.keys().next();if(a.done)break;q.delete(a.value)}}(g),!1)}function aH(){return q.size}let aI=["stop","session_end"];function aJ(a){let b=(0,d.v7)(a.worktreeId,a.cliToolId,a.instanceId);if(null!==a.identityKind){let c=null===a.identity?null:(0,i.Xq)(a.identity);if(null!==a.identity&&null===c&&(J(b).idsDiscarded+=1),null!==c)return!function(a,b){let c=(0,d.v7)(a.worktreeId,a.cliToolId,a.instanceId),e=r.get(c);e||(e=new Map,r.set(c,e),aK(r,H));let f=[a.event,a.detail??"",b].join(" ");return!!e.has(f)||(e.set(f,a.at),aK(e,H),!1)}(a,c)?{duplicate:!1}:(J(b).dedupDropped.identity+=1,{duplicate:!0,by:"identity"});if(aI.includes(a.event))return{duplicate:!1}}return aG(a.worktreeId,a.cliToolId,a.instanceId,a.event,a.sessionId,a.at,a.detail)?(J(b).dedupDropped.timeWindow+=1,{duplicate:!0,by:"time-window"}):{duplicate:!1}}function aK(a,b){for(;a.size>b;){let b=a.keys().next();if(b.done)break;a.delete(b.value)}}function aL(a,b,c){if(void 0===a||void 0===b){let a=0;for(let b of r.values())a+=b.size;return a}return r.get((0,d.v7)(a,b,c))?.size??0}function aM(){j.clear(),k.clear(),q.clear(),r.clear(),l.clear(),m.clear(),n.clear(),p.clear(),s.clear(),t.clear(),u.clear(),v.clear(),w.clear(),x.clear()}},49154:(a,b,c)=>{c.d(b,{GF:()=>e,Wk:()=>g,mW:()=>f});var d=c(13287);let e="question",f=[d.k$,e];function g(a){return null!==a&&f.includes(a)?"question":"permission"}},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}}},67882:(a,b,c)=>{c.d(b,{DA:()=>e,O_:()=>f,Oh:()=>d,_K:()=>h,kA:()=>g});let d={PROMPT_SUBMIT:"hook_prompt_submit",STOP:"hook_stop",PERMISSION_PROMPT:"hook_permission_prompt",PERMISSION_REQUEST:"hook_permission_request",IDLE_PROMPT:"hook_idle_prompt",PRE_TOOL_USE:"hook_pre_tool_use",POST_TOOL_USE:"hook_post_tool_use"};function e(a,b){switch(a){case"user_prompt_submit":return{status:"running",reason:d.PROMPT_SUBMIT};case"pre_tool_use":return{status:"running",reason:d.PRE_TOOL_USE};case"post_tool_use":return{status:"running",reason:d.POST_TOOL_USE};case"stop":return{status:"ready",reason:d.STOP};case"notification":if("permission_prompt"===b)return{status:"waiting",reason:d.PERMISSION_PROMPT};if("idle_prompt"===b)return{status:"ready",reason:d.IDLE_PROMPT};return null;default:return null}}function f(a){switch(a){case"waiting":return{isWaitingForResponse:!0,isProcessing:!1};case"running":return{isWaitingForResponse:!1,isProcessing:!0};default:return{isWaitingForResponse:!1,isProcessing:!1}}}function g(a){return a?a.isWaitingForResponse?"waiting":a.isProcessing?"running":a.isRunning?"ready":"idle":"idle"}function h(a){return a.isSessionRunning?a.isWaitingForResponse?"waiting":a.isProcessing?"running":"ready":null}},81254:(a,b,c)=>{function d(a){return"answer_only"===a||"answer_then_enter"===a}c.d(b,{LT:()=>e,MI:()=>d,XF:()=>f});let e="unclassified";function f(a){return null!=a&&a.type!==e}}};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";exports.id=6677,exports.ids=[6677],exports.modules={60:(a,b,c)=>{c.d(b,{QM:()=>h,V0:()=>e,ZX:()=>f,bE:()=>g});var d=c(85164);function e(a){let b=(0,d.x7)(a),c=(0,d.M4)(a,b);return{chromeStart:b,echoEnd:c,start:c+1,end:b>=0?b:a.length,headTruncated:c<0}}function f(a){let b=a.split("\n"),c=e(b.map(d.aJ));return c.start>=c.end?"":b.slice(c.start,c.end).join("\n")}function g(a){let b=a.split("\n"),c=e(b),f=c.start>=c.end?"":b.slice(c.start,c.end).join("\n");return d.$t.test(f)&&!d.kD.test(a)&&!d.Ty.test(a)}function h(a,b,c,d,e,f=!1){if(a=Math.max(0,a),"opencode"===d||"copilot"===d||f){let a=e(b);return a>=0?a+1:0}if("antigravity"===d||"command-code"===d){let c=e(b);return c>=0?c+1:Math.max(0,a)}if(a>=b||c){let a=e(40);return a>=0?a+1:0}if("codex"===d)return Math.max(0,a);if(a>=b-5){let a=e(50);return a>=0?a+1:Math.max(0,b-40)}return Math.max(0,a)}},1058:(a,b,c)=>{c.d(b,{$v:()=>R,emitChatTurnProgress:()=>Y});var d=c(56791),e=c(52660);let f=globalThis.__unclassifiedFrameRuns??(globalThis.__unclassifiedFrameRuns=new Map);var g=c(94154),h=c(63209),i=c(51297),j=c(76777),k=c(50524);let l=/^([^\S\n]*)╹(▀{4,})/,m=/^([^\S\n]*)[│┃]/;var n=c(54325),o=c(81254),p=c(72626),q=c(43234),r=c(15194),s=c(129),t=c(66101),u=c(53163),v=c(17287),w=c(15388),x=c(3161),y=c(49154),z=c(62171),A=c(97751),B=c(31990),C=c(95595),D=c(5363),E=c(52277),F=c(44321),G=c(34405),H=c(93997),I=c(48083),J=c(30008),K=c(24581),L=c(40043),M=c(9516),N=c(36051);let O=(0,p.h)("current-output-builder");function P(a,b){Promise.resolve().then(c.bind(c,43015)).then(({broadcastMessage:c})=>{c("message",{worktreeId:a,message:b})}).catch(b=>{O.warn("history-row-broadcast-failed",{worktreeId:a,error:b instanceof Error?b.message:String(b)})})}function Q(a,b,c){return!!a.thinking&&null!==b&&"ready"===b.status&&null!==c&&"stop"===c.closedBy&&null!==c.closedAt}async function R(a,b,c,d,e){let f=await S(a,b,c,d);return(f.isRunning&&"running"===f.sessionStatus&&await Z(a,b,c,d),e)?{...f,resolvedBy:e.resolvedBy,conflict:e.conflict??null}:f}async function S(a,b,c,n){let p=n??c,R=q.CLIToolManager.getInstance().getTool(c),S=(0,I.getLastStopEventAt)(b,c,n),T=(0,I.getLastAgentEvent)(b,c,n),U=(0,s.VM)(c),V=Date.now(),W=(0,I.getPendingDecisions)(b,c,n,V),X=(0,I.getAskUserQuestion)(b,c,n,V),Y=(0,x.Jl)(b,c,n),Z={lastEventType:T?.event??null,lastEventAt:T?.at??null,lastEventDetail:T?.detail??null,...(0,I.getPublishedAgentTurn)(b,c,n,V),pendingDecisions:W.map(a=>{let b=(0,y.Wk)(a.toolName);return{id:a.decisionId,at:a.at,source:a.source,toolName:a.toolName,confirmedAt:a.confirmedAt,scraperCorroborated:a.scraperCorroborated,deliveryExpired:(0,K.qX)(a,U.capabilities.decisionTimeoutSeconds,V),kind:b,questionOptions:"question"===b&&X?(0,A.dZ)(X.spec).map(a=>({number:a.number,label:a.label})):null}}),dedupDropped:(0,I.getAgentEventDropCounts)(b,c,n),dialogPendingMaxMs:{...K.h_},promptWaitingSince:null,promptWaitingSource:null,toolInputNormalization:(0,w.SQ)(b,c,n),permissionDecision:(0,v.CD)(b,c,n),source:{cliToolId:U.cliToolId,capabilities:U.capabilities,...(0,t.Kf)(U,U.liveness({worktreeId:b,cliToolId:c,instanceId:p}),V),probedActivity:(0,u.hS)({worktreeId:b,cliToolId:c,instanceId:p})},session:Y,sessionContext:(0,x.sc)({worktreeId:b,cliToolId:c,instanceId:n},Y),sessionDiff:(0,z.rn)({worktreeId:b,cliToolId:c,instanceId:n})};if(!await R.isRunning(b,n))return(0,L.xG)((0,D.v7)(b,c,n)),{isRunning:!1,content:"",lineCount:0,cliToolId:c,sessionStatus:"idle",sessionStatusReason:"session_not_running",statusEvidence:"positive",lastKnownStatus:null,lastKnownStatusAt:null,lastStopEventAt:S,structuredEvents:Z,model:null,reasoningEffort:null,promptDedup:(0,F.XH)(b,c,n),upstreamFault:null,paneObstruction:null,composerText:null,composerState:"no_composer"};let $=(0,d.getSessionState)(a,b,p),_=$?.lastCapturedLine||0,aa=await (0,B.Wh)(b,c,G._,n),ab=aa.split("\n"),ac=ab.length,ad=(0,H.sl)(ac,Math.min(G._,H.xE)),ae=((0,r.qR)(c,ad)?ab.slice(Math.max(0,_)):ab).join("\n"),af=(0,D.v7)(b,c,n),ag=(0,D.xU)(af),ah=ag?new Date(ag):void 0,ai=(0,C.WC)(aa,c,ah),aj=(0,C.f8)(ai),ak=ai.hasActivePrompt,al="waiting"===ai.status&&C.ug.has(ai.reason),am=ai.reason===C.gv.CODEX_PAGER,an="waiting"===ai.status&&ai.reason===C.gv.COMMAND_CODE_DISMISSABLE_PANEL,ao=ai.evidence,ap=(0,L.Q4)(ai.status,ai.reason);(0,I.observeScraperCompletionEvidence)(b,c,n,"ready"===ai.status&&"positive"===ao);let aq=(0,I.getStructuredSessionState)(b,c,n),ar=(0,J._G)({worktreeId:b,cliToolId:c,instanceId:n,scraper:{status:ai.status,reason:ai.reason,hasActivePrompt:ak}}),as=ar.structured;null!==as&&(Z.promptWaitingSince=as.at,Z.promptWaitingSource=as.source);let at={status:ai.status,reason:ai.reason,thinking:aj,evidence:ao,isUnclassifiedActive:ap},au=Q(at,aq,Z)?function(a,b,c,d){try{let f=(0,e.getLastUserMessageForInstance)(a,b,c,d);if(!f)return null;let g=f.timestamp instanceof Date?f.timestamp.getTime():NaN;return Number.isFinite(g)?g:null}catch(a){return O.debug("newest-prompt-read-failed",{worktreeId:b,cliToolId:c,instanceId:d,error:a instanceof Error?a.message:String(a)}),null}}(a,b,c,p):null,av=function(a,b,c=null,d=null,e=null){if("waiting"===a.status)return{...a,structuredApplied:!1};if(null!==c)return{status:"waiting",reason:(0,J.rB)(c),thinking:!1,evidence:a.evidence,isUnclassifiedActive:a.isUnclassifiedActive,structuredApplied:!0};if(null===b||"waiting"===b.status||function(a,b,c,d){if(null===d||!Q(a,b,c))return!1;let e=c?.closedAt??null;return null!==e&&e<d}(a,b,d,e))return{...a,structuredApplied:!1};let f="running"===b.status,g="ready"===b.status&&function(a){if(null===a)return!1;let{closedBy:b,closedAt:c,openedAt:d}=a;return"stop"===b&&null!==c&&null!==d&&c>d}(d)?"positive":a.evidence;return{status:b.status,reason:b.reason,thinking:f,evidence:g,isUnclassifiedActive:a.isUnclassifiedActive,structuredApplied:!0}}(at,aq,as,Z,au),aw=ar.waiting,ax=ai.promptDetection.promptData,ay=ax&&X?(0,M.Hu)(ax,X.spec):null,az=null!==as&&"notification"===as.source&&"permission-id"===U.capabilities.eventIdentity&&(0,N.PP)(as.decisionId)?as.decisionId:null,aA=null!==as&&"question"===(0,y.Wk)(as.toolName),aB=null===az||aA?null:N.QB,aC=null===as?null:{...as,askUserQuestion:function(a){let b=a?.spec.questions[0];return b?{question:b.question,labels:b.choices.map(a=>a.label),questionCount:a.spec.questions.length}:null}(X),decisionOptions:aB,decisionId:az,patterns:null!==aB?as.patterns:null},aD=ak?ay??ax??(aC?(0,N.Yo)(b,aC):null):aC?(0,N.Yo)(b,aC):null;null!==aq&&aq.status!==ai.status&&O.info("detection-divergence",{worktreeId:b,cliToolId:c,instanceId:p,scraperStatus:ai.status,scraperReason:ai.reason,structuredStatus:aq.status,structuredReason:aq.reason,structuredEvent:aq.event,structuredEventAt:aq.at,applied:av.structuredApplied});let aE=ab.slice(-100).join("\n"),aF="opencode"===c?function(a){let b=(0,i.aJ)(a).split("\n"),c=-1,d=-1,e=-1;for(let a=0;a<b.length;a++){let f=l.exec(b[a]);f&&(c=a,e=(d=f[1].length)+1+f[2].length)}if(-1===c)return null;let f=0,g="";for(let a=0;a<b.length;a++){let h=b[a];if(a!==c){let a=m.exec(h);if(!a||a[1].length!==d)continue}let i=h.slice((0,k.sh)(h,e)).trim();""!==i&&(f+=1,""===g&&(g=(0,j.D)(i,200,"…[truncated]")))}return f<2?null:{id:"opencode_sidebar",matchedText:g,boxRight:e,rows:f}}(aE):null,aG=function(a,b,c=Date.now()){for(let[a,b]of f)c-b.lastSeen>36e5&&f.delete(a);if(!b)return f.delete(a),{dwellMs:0,shouldRecord:!1};let d=f.get(a);if(!d)return f.set(a,{since:c,lastSeen:c,recorded:!1}),{dwellMs:0,shouldRecord:!1};d.lastSeen=c;let e=Math.max(0,c-d.since);return d.recorded||e<6e4?{dwellMs:e,shouldRecord:!1}:(d.recorded=!0,{dwellMs:e,shouldRecord:!0})}(af,av.isUnclassifiedActive);if(aG.shouldRecord&&function(a,b){var c;let e=Math.round(b.dwellMs/1e3),f=`${b.sessionStatus}/${b.sessionStatusReason}`,g=`Unclassified interactive frame (${f}) held for ${e}s. The detection layer could not parse it, so no prompt was published and nothing could answer it. Inspect the raw pane with \`commandmate capture ${b.worktreeId} --pane\`.`+((c=b.obstruction)?` Cause: opencode's sidebar is sharing rows with the transcript (paneObstruction=${c.id}, second column reads ${JSON.stringify(c.matchedText)}), which covers the marker that ends a turn. Press \`ctrl+x b\` in the pane to close it.`:""),h={type:o.LT,status:"unclassified",question:g,options:[],dwellSeconds:e,sessionStatusReason:f};try{let c=(0,d.createMessage)(a,{worktreeId:b.worktreeId,role:"assistant",content:g,messageType:"prompt",promptData:h,timestamp:new Date,cliToolId:b.cliToolId,instanceId:b.instanceId});O.info("unclassified-frame-recorded",{worktreeId:b.worktreeId,cliToolId:b.cliToolId,dwellSeconds:e,statusReason:f}),P(b.worktreeId,c)}catch(a){O.warn("unclassified-frame-record-failed",{worktreeId:b.worktreeId,error:a instanceof Error?a.message:String(a)})}}(a,{worktreeId:b,cliToolId:c,instanceId:p,dwellMs:aG.dwellMs,sessionStatus:av.status,sessionStatusReason:av.reason,obstruction:aF}),null!==as&&null!==aC&&!ak&&!as.recorded){(0,I.markStructuredPromptRecorded)(b,c,n);var aH=b,aI=c,aJ=p,aK=as,aL=aC;let e=(0,N.fO)(aH,aL);try{let b=(0,d.createMessage)(a,{worktreeId:aH,role:"assistant",content:e.question,summary:`structured prompt \xb7 source=${aK.source}${aK.toolName?` \xb7 tool=${aK.toolName}`:""}`,messageType:"prompt",promptData:e,timestamp:new Date,cliToolId:aI,instanceId:aJ});O.info("structured-prompt-recorded",{worktreeId:aH,cliToolId:aI,instanceId:aJ,source:aK.source,toolName:aK.toolName}),P(aH,b)}catch(a){O.warn("structured-prompt-record-failed",{worktreeId:aH,error:a instanceof Error?a.message:String(a)})}}let aM=(0,g.ji)(aa,c),aN=(0,h.bT)(aE),aO=(0,D.aq)(b,c,n),{model:aP,effort:aQ}=(0,I.getResolvedAgentModelInfo)(b,c,n);(0,L.ox)(af,{status:av.status,reason:av.reason,evidence:av.evidence});let aR=(0,L.AD)(af);return{isRunning:!0,cliToolId:c,sessionStatus:av.status,sessionStatusReason:av.reason,content:ae,fullOutput:aa,realtimeSnippet:aE,lineCount:ac,lastCapturedLine:_,isComplete:aw,isGenerating:av.thinking,thinking:av.thinking,thinkingMessage:av.thinking?"Claude is thinking...":null,isPromptWaiting:aw,promptData:aD,autoYes:{enabled:aO?.enabled??!1,expiresAt:aO?.enabled?aO.expiresAt:null,stopReason:aO?.stopReason,lastSuppression:(0,E.gb)(b,c,n),stopMatchedText:aO?.stopMatchedText},isSelectionListActive:al,isPagerActive:am,isDismissablePanelActive:an,isUnclassifiedActive:av.isUnclassifiedActive,statusEvidence:av.evidence,lastKnownStatus:aR?.status??null,lastKnownStatusAt:aR?.at??null,lastServerResponseTimestamp:ag,serverPollerActive:(0,D.bZ)(af),lastStopEventAt:S,structuredEvents:Z,model:aP,reasoningEffort:aQ,promptDedup:(0,F.XH)(b,c,n),upstreamFault:aN?{id:aN.fault.id,matchedText:aN.matchedText,at:Date.now()}:null,paneObstruction:aF?{id:aF.id,matchedText:aF.matchedText,at:Date.now()}:null,composerText:"content"===aM.state?aM.text:null,composerState:aM.state}}function T(){return{version:0,askedAt:-1/0,turnKey:null,body:null,loggedOutcome:null,loggedTurnKey:null}}let U=globalThis.__chatTurnProgressState??=new Map;function V(a){return`${a.worktreeId}:${a.cliToolId}:${a.instanceId??a.cliToolId}`}function W(a,b,c,d={}){let e=V(a),f=U.get(e)??T();U.set(e,f),(f.loggedOutcome!==b||f.loggedTurnKey!==c)&&(f.loggedOutcome=b,f.loggedTurnKey=c,O.info("published"===b?"chat-turn-progress-published":"no-subscribers"===b?"chat-turn-progress-no-subscribers":"chat-turn-progress-failed",{worktreeId:a.worktreeId,cliToolId:a.cliToolId,instanceId:a.instanceId??a.cliToolId,turnKey:c,...d}))}async function X(a,b,c=Date.now()){let d,e=V(a),f=U.get(e)??T();if(c-f.askedAt<n.r9)return null;f.askedAt=c,U.set(e,f);try{d=await b()}catch{return null}if(!d||0===d.body.length)return null;let g=(0,n.rx)(d.body);return d.turnKey===f.turnKey&&g.body===f.body?null:(f.turnKey=d.turnKey,f.body=g.body,f.version+=1,{type:n.rz,worktreeId:a.worktreeId,cliToolId:a.cliToolId,instanceId:a.instanceId??a.cliToolId,turnKey:d.turnKey,body:g.body,partial:g.truncated||!0===d.partial,version:f.version,done:!1})}async function Y(a,b,d=Date.now()){try{let{broadcast:e,hasRoomSubscribers:f}=await Promise.resolve().then(c.bind(c,43015));if(!f(a.worktreeId))return W(a,"no-subscribers",null),!1;let g=await X(a,b,d);if(!g)return!1;return e(a.worktreeId,g),W(a,"published",g.turnKey,{version:g.version,bodyLength:g.body.length,partial:g.partial}),!0}catch(b){return W(a,"failed",null,{error:b instanceof Error?b.message:String(b)}),!1}}async function Z(a,b,d,e){if("claude"!==d)return;let f={worktreeId:b,cliToolId:d,instanceId:e};try{let{getWorktreeById:g}=await Promise.resolve().then(c.bind(c,73753)),h=g(a,b)?.path;if(!h)return;let{hasRoomSubscribers:i}=await Promise.resolve().then(c.bind(c,43015));if(!i(b))return void W(f,"no-subscribers",null);Y(f,async()=>{let{readClaudeTurnProgress:a}=await Promise.resolve().then(c.bind(c,79696));return a({worktreeId:b,cliToolId:d,instanceId:e??d},{worktreePath:h})})}catch(a){W(f,"failed",null,{error:a instanceof Error?a.message:String(a)})}}},3523:(a,b,c)=>{c.d(b,{$M:()=>R,Tq:()=>Y,z$:()=>U,zX:()=>$});var d=c(31990),e=c(88807),f=c(56791),g=c(43015),h=c(26895),i=c(28861),j=c(96742),k=c(18778),l=c(15194),m=c(8988),n=c(85164),o=c(72626),p=c(46423),q=c(93997),r=c(60),s=c(82450),t=c(56263),u=c(13033),v=c(72457),w=c(16402),x=c(44321),y=c(71080),z=c(28918),A=c(31517),B=c(43925),C=c(40964),D=c(83598),E=c(31442),F=c(45146),G=c(91601),H=c(92010),I=c(81099),J=c(63209),K=c(73478),L=c(57836),M=c(52767);let N=(0,o.h)("response-poller");function O(a){return b=>{try{(0,g.broadcastMessage)("message_updated",{worktreeId:a,message:b})}catch(b){N.warn("prompt-sweep-broadcast-failed",{worktreeId:a,error:b instanceof Error?b.message:String(b)})}}}function P(a){return{response:"",isComplete:!1,lineCount:a}}function Q(a,b,c,d,e,f,g,h=!1){let i=(0,r.QM)(b,c,d,e,f,h),j=a.slice(i);return{response:(0,n.aJ)(j.join("\n")),isComplete:!0,lineCount:c,promptDetection:g,bufferReset:d,captureWindowSaturated:h}}function R(a,b,c,d){if("antigravity"===b){let b=(0,i.g)(a);if(null!==b)return b}if("command-code"===b&&void 0!==d){let b=(0,j.nK)(d);if("prompt"===b.kind)return b.prompt;if("unsupported"===b.kind)return{isPrompt:!1,cleanContent:a.trim()}}let e=(0,n.KO)(b);return(0,h.gF)(a,c?{...e,precomputedLines:c}:e)}function S(a,b,c){let d=(0,w.vm)(a,b.promptData?.type,c);return!!d.present||(N.debug("prompt-candidate-not-vouched",{cliToolId:a,promptType:b.promptData?.type,gateMode:d.mode}),!1)}function T(a,b){return R((0,n._A)((0,n.aJ)(a)),b,void 0,a)}function U(a,b,c,d=q.xE){let e=a.split("\n"),f=e.length;for(;f>0&&""===e[f-1].trim();)f--;let g=e.slice(0,f),h=g.length,i=(0,q.sl)(e.length,d),j="opencode"===c?g.map(n.aJ):null,k="claude"===c?(0,n.GT)(g):"copilot"===c?(0,n.wv)(g):"command-code"===c?(0,n.I$)(g):"codex"===c?(0,n.Zu)(g):j?(0,n.x7)(j):-1,l=k>=0?k:h,m=h>0&&b>25&&h+25<b,o=h>0&&b>50&&h<50,s=m||o;if(!s&&h<b-5)return null;let t=Math.max(0,h-20),u=g.slice(t),v=j?j.join("\n"):u.join("\n"),{promptPattern:w,separatorPattern:x,thinkingPattern:y,skipPatterns:z}=(0,n._X)(c),A=(a=60)=>{let b;if("codex"===c)return(0,n.Nc)(g,l,a,k>=0);if(j)return(0,r.V0)(j).echoEnd;if("copilot"===c){for(let b=l-1;b>=Math.max(0,l-a);b--){if(!n.y.test((0,n.aJ)(g[b])))continue;let a=b;for(;a+1<l&&n.Fg.test((0,n.aJ)(g[a+1]));)a++;return a}return -1}b=/^[>❯]\s+\S/;for(let c=l-1;c>=Math.max(0,l-a);c--){let a=(0,n.aJ)(g[c]);if(b.test(a))return c}return -1};if("claude"===c||"codex"===c||"copilot"===c||"command-code"===c){let a=g.join("\n"),d=T(a,c);if(d.isPrompt&&S(c,d,a))return Q(g,b,h,s,c,A,d,i)}let B=(0,n.aJ)(v),C=w.test(B),D=x.test(B),E="codex"===c?(0,n.DR)(g,20):y.test(B),G="copilot"===c?(0,n.Wn)(g.slice(Math.max(0,h-8)).map(n.aJ)):null,H="copilot"===c?"idle"===G:("codex"===c||"gemini"===c||"vibe-local"===c||"antigravity"===c)&&C&&!E,I="claude"===c&&C&&D&&!E,J="command-code"===c&&C&&D&&!E,K="opencode"===c&&(0,r.bE)(B);if(H||I||J||K){let a=[],d=(0,r.QM)(b,h,s,c,A,i),e="codex"===c?l:h;for(let b=d;b<l;b++){let d=g[b],f=(0,n.aJ)(d);if("codex"===c&&/^›\s+/.test(f)||"gemini"===c&&/^(%|\$|.*@.*[%$#])\s*$/.test(f)||"antigravity"===c&&/^>\s*$/.test(f)||"opencode"===c&&k<0&&(n.sy.test(f)||n.uA.test(f))){e=b;break}z.some(a=>a.test(f))||a.push(d)}let f=a.join("\n").trim(),m=f.split("\n").slice(-p.$).join("\n");if("copilot"!==c&&y.test(m))return P(h);if("claude"===c){let a=(0,n.aJ)(f),b=/[╭╮╰╯]/.test(a)||/░{3,}/.test(a)||/▓{3,}/.test(a),c=/Claude Code v\d+\.\d+|claude\//.test(a),d=/Tip:|for shortcuts|\?\s*for help/.test(a),e=/^\s*\/Users\/.*$/m.test(a)&&a.split("\n").length<30,g=A(h)>=0,i=a.match(/^[>❯]\s+(\S.*)$/m);if(i){let b=a.indexOf(i[0]);if(0===a.substring(b+i[0].length).trim().split("\n").filter(a=>{let b=a.trim();return b&&!z.some(a=>a.test(b))&&!/^─+$/.test(b)}).length)return P(h)}else if(!g&&(b||c||d||e)&&f.length<2e3)return N.info("Claude startup banner suppressed, response not saved",{responseLength:f.length,hasBannerArt:b,hasVersionInfo:c,hasStartupTips:d,hasProjectInit:e}),P(h)}if("copilot"===c){let a=(0,n.aJ)(f);if(!a.split("\n").some(a=>n.y.test(a))&&n.E0.some(b=>b.test(a)))return P(h)}if("command-code"===c&&0>A(h))return N.info("Command Code launch screen suppressed, response not saved",{responseLength:f.length}),P(h);if("gemini"===c&&((f.match(/[░███]/g)||[]).length>.3*f.length||F.SI.some(a=>f.includes(a))||!f.includes("✦")&&f.length<10))return P(h);if("opencode"===c){let a=(0,n.aJ)(f);if((a.length<50||!n.Md.test(B))&&0===a.split("\n").filter(a=>{let b=a.trim();return b&&!n.sx.some(a=>a.test(b))}).length)return P(h)}return{response:f,isComplete:!0,lineCount:e,bufferReset:s,captureWindowSaturated:i,turnHeadTruncated:j?(0,r.V0)(j).headTruncated:void 0}}if("opencode"!==c){let a=g.join("\n"),d=T(a,c);if(d.isPrompt&&S(c,d,a))return Q(g,b,h,s,c,A,d,i)}let L=[],M=s||i||b>=h-5,O=M?A(80):-1,R=M?O>=0?O+1:Math.max(0,h-80):Math.max(0,b);for(let a=R;a<Math.min(h,l);a++){let b=g[a],c=(0,n.aJ)(b);z.some(a=>a.test(c))||L.push(b)}let V=L.join("\n").trim();return V?{response:V,isComplete:!1,lineCount:h}:P(h)}(0,K.I7)();let V=A.sD.reduce((a,b)=>a+b,0),W=globalThis.__pendingScrapedResponses??=new Map;function X(a){W.delete(a)}function Y(a,b){let c=W.get(a);if(!c)return!1;W.delete(a);try{let a=(0,e.getDbInstance)(),d=(0,f.createMessage)(a,{worktreeId:c.worktreeId,role:"assistant",content:c.content,messageType:"normal",timestamp:c.timestamp,cliToolId:c.cliToolId,instanceId:c.instanceId,summary:c.summary,logFileName:c.logFileName,requestId:c.requestId});return(0,g.broadcastMessage)("message",{worktreeId:c.worktreeId,message:d}),N.info("pending-scrape-flushed",{worktreeId:c.worktreeId,cliToolId:c.cliToolId,instanceId:c.instanceId,reason:b,scrapedLength:c.content.length,heldForMs:Date.now()-c.timestamp.getTime()}),(0,k.T)(a,c.worktreeId,c.content,c.cliToolId).catch(()=>{}),!0}catch(a){return N.warn("pending-scrape-flush-failed",{worktreeId:c.worktreeId,cliToolId:c.cliToolId,instanceId:c.instanceId,reason:b,error:a instanceof Error?a.message:String(a)}),!1}}async function Z(a){let b=W.get(a);if(!(!b||Date.now()<b.expiresAt)){if(await (0,z.captureStructuredHistoryTurn)(b.worktreeId,b.cliToolId,b.instanceId,{worktreePath:b.worktreePath,transcriptPathHint:b.transcriptPathHint})){X(a),(0,y.oE)(a),N.info("pending-scrape-superseded",{worktreeId:b.worktreeId,cliToolId:b.cliToolId,instanceId:b.instanceId,heldForMs:Date.now()-b.timestamp.getTime()});return}Y(a,"hold-expired")}}async function $(a,b,c){let h=(0,e.getDbInstance)(),i=c??b;try{let e=(0,f.getWorktreeById)(h,a);if(!e)return N.error("worktree-worktreeid-not"),(0,F.Et)(a,b,c),!1;if(!await (0,d.K1)(a,b,c))return N.info("session-not-running"),(0,F.Et)(a,b,c),!1;let j=(0,F.MN)(a,b,c);await Z(j);let o=(0,C.m)(b,a,c),w=(0,E.n9)(o)?await (0,D.zQ)(o):{delegated:!1,released:!1};w.released&&((0,f.updateSessionState)(h,a,b,0,i),N.info("geometry-delegation-released",{worktreeId:a,cliToolId:b,instanceId:i}));let A=(0,f.getSessionState)(h,a,i),K=A?.lastCapturedLine||0,P=await (0,d.Wh)(a,b,q.xE,c),Q=P.split("\n").slice(-100).join("\n"),R=(0,J.bT)(Q);if((0,I.notifyUpstreamFaultPush)({worktreeId:a,cliToolId:b,instanceId:c,faultId:R?.fault.id??null,matchedText:R?.matchedText}).catch(()=>{}),"opencode"===b||"copilot"===b){let a="opencode"===b?(0,r.ZX)(P):P;(0,u.IZ)(j,a,b)}let Y=U(P,K,b,q.xE);if(!Y||!Y.isComplete){let{thinkingPattern:c}=(0,n._X)(b),d=(0,n.aJ)(P).split("\n").slice(-p.$).join("\n");return c.test(d)&&(0,f.markPendingPromptsAsAnswered)(h,a,b,i,O(a))>0&&N.info("marked-answeredcount-pending"),!1}let $="opencode"===b||"copilot"===b,_=!(0,l.VA)(b)&&!Y.captureWindowSaturated;if(_&&!Y.bufferReset&&Y.lineCount===K&&!A?.inProgressMessageId)return!1;if(_&&!Y.bufferReset&&Y.lineCount<=K)return N.info("already-saved-up-to-line-lastcapturedlin"),!1;let aa=Y.promptDetection??T(Y.response,b);if(aa.isPrompt&&S(b,aa,P)){let d=aa.rawContent||aa.cleanContent,k=(0,v.zm)(d,b);if((0,v.gv)(j,k))return(0,x.LN)(a,b,c),N.info("duplicate-prompt-skipped",{worktreeId:a,cliToolId:b}),!1;let l=d;"copilot"===b&&(l=(0,s.LH)(d),l=(0,s.Sj)(l,t.Rf,t.ky)),(0,f.clearInProgressMessageId)(h,a,b,i);let m=(0,f.createMessage)(h,{worktreeId:a,role:"assistant",content:l,messageType:"prompt",promptData:aa.promptData,timestamp:new Date,cliToolId:b,instanceId:i});(0,f.updateSessionState)(h,a,b,Y.lineCount,i),(0,g.broadcastMessage)("message",{worktreeId:a,message:m}),(0,M.r)(h,a,b,i,"prompt_detected",{promptType:aa.promptData?.type});let n=Date.now(),o=(0,L.Jp)(a,b,c)?.since??n;return(0,H.R)({worktreeId:a,cliToolId:b,instanceId:c,waitingSince:o})||(0,G.J$)({worktreeId:a,worktreeName:e.name,kind:"prompt",agentName:i,instanceId:i,waitingKind:"prompt",waitingSince:o,excerpt:aa.promptData?.question??l}).catch(()=>{}),(0,L.hd)({worktreeId:a,cliToolId:b,instanceId:c,waiting:!0,kind:"prompt",now:n}),$||(0,F.Et)(a,b,c),!0}if(!Y.response||""===Y.response.trim())return(0,f.updateSessionState)(h,a,b,Y.lineCount,i),!1;let ab="claude"===b?(0,m.R)(Y.response):void 0,ac=Y.response;if("gemini"===b)ac=(0,s.IS)(Y.response);else if("claude"===b)ac=(0,s.NN)(Y.response);else if("copilot"===b){let a=(0,u.Uz)(j)||Y.response;ac=(0,s.LH)(a),ac=(0,s.Sj)(ac,t.Rf,t.ky),(0,u.q1)(j)}else if("opencode"===b){let a=(0,u.Uz)(j),b=Y.turnHeadTruncated&&a?a:Y.response;ac=(0,s.aW)(b),(0,u.q1)(j)}if(!ac||""===ac.trim()||"[No content]"===ac)return(0,f.updateSessionState)(h,a,b,Y.lineCount,i),(0,f.clearInProgressMessageId)(h,a,b,i),!1;if(!_&&(0,y.j7)(j,ac)){if(N.info("duplicate-response-skipped",{worktreeId:a,cliToolId:b,instanceId:i}),(0,f.updateSessionState)(h,a,b,Y.lineCount,i),(0,y.pN)(j)&&await (0,z.captureStructuredHistoryTurn)(a,b,c,{worktreePath:e.path,transcriptPathHint:ab?.logFilePath??null}))return(0,y.oE)(j),X(j),N.info("structured-history-recheck-captured",{worktreeId:a,cliToolId:b,instanceId:i}),!0;return!1}let ad={},ae=(0,z.isStructuredHistoryWriterLive)(a,b,c)||await (0,z.captureStructuredHistoryTurn)(a,b,c,{worktreePath:e.path,transcriptPathHint:ab?.logFilePath??null},ad);ae?(0,y.oE)(j):(0,y.Pe)(j);let af=ae||w.delegated,ag=!af&&"not_yet_closed"===ad.outcome;!ac||af||ag||await (0,k.T)(h,a,ac,b),(0,f.markPendingPromptsAsAnswered)(h,a,b,i,O(a))>0&&N.info("marked-answeredcount-pending");let ah=(0,f.getSessionState)(h,a,i);if(_&&ah&&Y.lineCount<=ah.lastCapturedLine)return N.info("race-condition-detected-skipping-save-re"),!1;if(ag)!function(a,b){let c=W.get(a);if(c){c.content=b.content;return}W.set(a,b)}(j,{worktreeId:a,cliToolId:b,instanceId:i,content:ac,timestamp:new Date,summary:ab?.summary,logFileName:ab?.logFileName,requestId:ab?.requestId,worktreePath:e.path,transcriptPathHint:ab?.logFilePath??null,expiresAt:Date.now()+V}),N.info("structured-history-scrape-held",{worktreeId:a,cliToolId:b,instanceId:i,scrapedLength:ac.length,holdMs:V}),(0,B.vQ)(a,b,i,!1);else if(af)ae&&X(j),N.info("structured-history-scrape-suppressed",{worktreeId:a,cliToolId:b,instanceId:i,scrapedLength:ac.length,reason:ae?"structured-history":"geometry-delegated"});else{let c=(0,f.createMessage)(h,{worktreeId:a,role:"assistant",content:ac,messageType:"normal",timestamp:new Date,cliToolId:b,instanceId:i,summary:ab?.summary,logFileName:ab?.logFileName,requestId:ab?.requestId});(0,g.broadcastMessage)("message",{worktreeId:a,message:c}),(0,B.vQ)(a,b,i,!1)}return(0,L.hd)({worktreeId:a,cliToolId:b,instanceId:c,waiting:!1}),(0,G.J$)({worktreeId:a,worktreeName:e.name,kind:"completion",agentName:i,excerpt:ac}).catch(()=>{}),(0,f.updateSessionState)(h,a,b,Y.lineCount,i),$&&(0,F.Et)(a,b,c),!0}catch(a){return N.error("response:check-failed",{error:a instanceof Error?a.message:String(a)}),!1}}},5363:(a,b,c)=>{c.d(b,{v7:()=>d.v7,LP:()=>d.LP,pL:()=>d.pL,GE:()=>d.GE,aq:()=>d.aq,kC:()=>d.kC,xU:()=>y,bZ:()=>z,W8:()=>d.W8,W5:()=>F,_i:()=>G,_C:()=>H});var d=c(24455),e=c(31990),f=c(3523),g=c(75498),h=c(91318),i=c(52277),j=c(16402),k=c(52767),l=c(88807),m=c(52660),n=c(63869),o=c(43234),p=c(85164),q=c(77093),r=c(93997),s=c(68901),t=c(72626),u=c(66007);let v=(0,t.h)("auto-yes-poller"),w=globalThis.__autoYesPollerStates??(globalThis.__autoYesPollerStates=new Map);function x(a){return w.get(a)}function y(a){let b=x(a);return b?.lastServerResponseTimestamp??null}function z(a){return w.has(a)}function A(a){let b=x(a);if(b&&(b.consecutiveErrors++,b.currentInterval=(0,d.G)(b.consecutiveErrors),b.consecutiveErrors>=s.ul)){let b=(0,d.Ue)(a),c=(0,d.pL)(a);c&&(0,d.XK)(b,c,"consecutive_errors",(0,d.GE)(a)??void 0),G(a)}}async function B(a,b,c,d){let f=c??s.FW,g=await (0,e.Wh)(a,b,f,d);return{raw:g,clean:(0,p._A)((0,p.aJ)(g))}}async function C(a,b,e,s,t,u,w){let y=(0,d.v7)(a,e,u);try{let A=(0,f.$M)(s,e,t,w);if(!A.isPrompt||!A.promptData)return b.lastAnsweredPromptKey=null,b.lastAnsweredAt=null,"no_prompt";let C=(z=A.promptData,`${z.type}:${z.question}`);if(b.lastAnsweredPromptKey===C&&null!==b.lastAnsweredAt&&Date.now()-b.lastAnsweredAt<d.UL)return"duplicate";let D="codex"===e?(0,p.E6)(s):null;if(D)return(0,i.ZS)(a,e,u,{reason:"agent-launch-dialog",mode:null,promptType:A.promptData.type}),v.warn("poller:auto-yes-skipped-launch-dialog",{worktreeId:a,cliToolId:e,instanceId:u,dialog:D,promptType:A.promptData.type}),"no_answer";let E=(0,j.r_)(e,A.promptData.type,s);if(!E.allowed)return(0,i.ZS)(a,e,u,{reason:"unclassified-frame",mode:null,promptType:A.promptData.type}),v.warn("poller:auto-yes-skipped-unclassified-frame",{worktreeId:a,cliToolId:e,instanceId:u,promptType:A.promptData.type,dialogKind:E.dialog?.kind??null,answerMode:E.dialog?.answerMode??null,gateMode:E.mode}),"no_answer";let F=(0,h.n)(a,e,u),G=(0,g.sD)(A.promptData,F);G.suppressedBy&&((0,i.ZS)(a,e,u,{reason:G.suppressedBy,mode:F?.mode??null,promptType:A.promptData.type,pattern:G.pattern}),v.warn("poller:auto-yes-suppressed-by-policy",{worktreeId:a,cliToolId:e,instanceId:u,reason:G.suppressedBy,mode:F?.mode??null,pattern:G.pattern,promptType:A.promptData.type}));let H=G.answer;if(null===H)return"no_answer";let I=o.CLIToolManager.getInstance().getTool(e).getSessionName(a,u);try{await (0,n.tV)({sessionName:I,answer:H,cliToolId:e,promptData:A.promptData})}finally{(0,r.gm)(I)}var z,B=Date.now();let J=x(y);J&&(J.lastServerResponseTimestamp=B);let K=x(y);K&&(K.consecutiveErrors=0,K.currentInterval=d.ps),b.lastAnsweredPromptKey=C,b.lastAnsweredAt=Date.now(),v.info("poller:response-sent",{worktreeId:a,cliToolId:e,instanceId:u}),(0,k.r)((0,l.getDbInstance)(),a,e,u??e,"prompt_answered_auto",{promptType:A.promptData.type});let L=null;try{L=(0,m.recordAnsweredPrompt)((0,l.getDbInstance)(),{worktreeId:a,cliToolId:e,instanceId:u??e,promptData:A.promptData,answer:H,answeredBy:"auto",content:A.rawContent||A.cleanContent})}catch(b){v.warn("poller:prompt-audit-record-failed",{worktreeId:a,cliToolId:e,instanceId:u,error:(0,q.u1)(b)})}if(L){let b=L;Promise.resolve().then(c.bind(c,43015)).then(({broadcastMessage:c})=>{c(b.created?"message":"message_updated",{worktreeId:a,message:b.message})}).catch(()=>{})}let[{startPolling:M},{broadcastTerminalSnapshotAfterInteraction:N}]=await Promise.all([c.e(2839).then(c.bind(c,95220)),Promise.resolve().then(c.bind(c,99508))]);return M(a,e,u),N(a,e,u),"responded"}catch{return A(y),v.warn("poller:detect-respond-error",{worktreeId:a,cliToolId:e,instanceId:u}),"error"}}async function D(a,b,c){let e=(0,d.v7)(a,b,c),f=x(e);if("valid"===function(a,b){if(!b)return"stopped";let c=(0,d.Ue)(a),e=(0,d.pL)(a);if(!e)return G(a),"expired";let f=(0,d.GE)(a)??void 0,g=(0,d.aq)(c,e,f);return g?.enabled?"valid":(G(a),"expired")}(e,f)){try{let g=(0,d.aq)(a,b,c),h=g?.stopPattern?s.FW:s.Ke,{raw:i,clean:j}=await B(a,b,h,c),k=j.split("\n");if(function(a,b,c){if(b.stopCheckBaselineLength<0)return b.stopCheckBaselineLength=c.length,!1;let e=b.stopCheckBaselineLength;if(c.length>e){let f=c.substring(e);return b.stopCheckBaselineLength=c.length,(0,d.Cs)(a,f,G)}return c.length<e&&(b.stopCheckBaselineLength=c.length),!1}(e,f,j))return;let l=await C(a,f,b,j,k,c,i);if("responded"===l)return void E(a,b,c,d.ZO);if("no_prompt"===l){let e=k.slice(-d.Re).join("\n");if((0,p.ut)(b,e))return void E(a,b,c,s.QN)}}catch(d){A(e),v.warn("poller:poll-error",{worktreeId:a,cliToolId:b,instanceId:c,error:(0,q.u1)(d)})}E(a,b,c)}}function E(a,b,c,e){let f=x((0,d.v7)(a,b,c));if(!f)return;let g=Math.max(e??f.currentInterval,d.ps);f.timerId=setTimeout(()=>{D(a,b,c)},g)}function F(a,b,c){if(!(0,u.h6)(a))return{started:!1,reason:"invalid worktree ID"};let e=c??b,f=(0,d.aq)(a,b,e);if(!f?.enabled)return{started:!1,reason:"auto-yes not enabled"};let g=(0,d.v7)(a,b,e),i=x(g);if(!i&&w.size>=d.fC)return{started:!1,reason:"max concurrent pollers reached"};if(i&&i.cliToolId===b)return{started:!0,reason:"already_running"};i&&G(g);let j={timerId:null,cliToolId:b,instanceId:e,consecutiveErrors:0,currentInterval:d.ps,lastServerResponseTimestamp:null,lastAnsweredPromptKey:null,lastAnsweredAt:null,stopCheckBaselineLength:-1};return w.set(g,j),(0,h.ie)(g),j.timerId=setTimeout(()=>{D(a,b,e)},d.ps),v.info("poller:started",{worktreeId:a,cliToolId:b,instanceId:e}),{started:!0}}function G(a){let b=x(a);b&&(b.timerId&&clearTimeout(b.timerId),w.delete(a),(0,h.ie)(a),v.info("poller:stopped",{compositeKey:a}))}function H(a){(0,d._9)(Array.from(w.keys()),a).forEach(a=>G(a))}},8988:(a,b,c)=>{c.d(b,{R:()=>g});let d=/📄 Session log: (.+?\/([^\/\s]+\.jsonl))/,e=/Request ID: ([^\s\n]+)/,f=/Summary: (.+?)(?:\n─|$)/s;function g(a){let b={content:a},c=d.exec(a);c&&(b.logFileName=c[2],b.logFilePath=c[1]);let g=e.exec(a);g&&(b.requestId=g[1]);let h=f.exec(a);return h&&(b.summary=h[1].trim()),b}},9516:(a,b,c)=>{c.d(b,{Hu:()=>i,Ll:()=>j});let d=["type something","chat about this"],e=/^\s*\[[ xX]\]\s*/,f=/(?:…|\.\.\.)\s*$/,g=new Set(["yes","y","no","n"]);function h(a){return a.replace(e,"").replace(f,"").replace(/\s+/g," ").trim().toLowerCase()}function i(a,b){if("multiple_choice"!==a.type)return null;let c=function(a,b){let c=h(b);if(""===c)return null;let d=a.questions.map((a,b)=>({entry:a,index:b})).filter(({entry:a})=>(function(a,b){let[c,d]=a.length<=b.length?[a,b]:[b,a];return c.length<8?c===d:d.includes(c)})(h(a.question),c));return 1===d.length?d[0]:null}(b,a.question);if(null===c)return null;let{entry:f,index:g}=c,i=new Map(a.options.map(a=>[a.number,a])),j=[];for(let[a,b]of f.choices.entries()){var k;let c=a+1,d=i.get(c);if(!d||!function(a,b){if(""===a||""===b)return!1;if(a===b)return!0;let[c,d]=a.length<=b.length?[a,b]:[b,a];return!(c.length<8)&&d.startsWith(c)}(h(d.label),h(b.label)))return null;j.push({...d,label:`${(k=d.label,e.exec(k)?.[0]??"")}${b.label}`,...b.description?{description:b.description}:{}})}let l=[];for(let b of a.options)!(b.number<=f.choices.length)&&function(a){let b=h(a);return d.some(a=>b===a||b.startsWith(a))}(b.label)&&(j.push(b),l.push(b.number));return j.sort((a,b)=>a.number-b.number),{...a,question:f.question,options:j,isAskUserQuestion:!0,askUserQuestion:{...f.header?{header:f.header}:{},multiSelect:f.multiSelect,questionIndex:g,questionCount:b.questions.length,metaOptionNumbers:l}}}function j(a,b){let c=b.trim();if(/^\d+$/.test(c)){let b=Number.parseInt(c,10);return a.options.some(a=>a.number===b)?{ok:!0,input:String(b)}:{ok:!1,reason:"answer_out_of_range",message:"The option number is outside the range this prompt offers. Use `commandmate capture <worktree-id> --json` to list the current options."}}let d=function(a,b){let c=h(b);if(""===c)return[];let d=a.filter(a=>h(a.label)===c);return d.length>0?d:c.length<2?[]:a.filter(a=>h(a.label).startsWith(c))}(a.options,c);if(1===d.length){let[a]=d;return{ok:!0,input:String(a.number),resolved:{via:"semantic",optionNumber:a.number,optionLabel:a.label}}}return d.length>1?{ok:!1,reason:"unresolvable_answer",message:"The answer matches more than one option label. Answer with an option number."}:a.options.some(a=>!0===a.requiresTextInput)&&!g.has(c.toLowerCase())?{ok:!0,input:b}:{ok:!1,reason:"unresolvable_answer",message:"No option label matches the answer. Answer with an option number (yes/no is not resolved on a numbered picker — Issue #1681)."}}},15388:(a,b,c)=>{c.d(b,{RJ:()=>f,SQ:()=>g});var d=c(24455);let e=globalThis.__toolInputNormalizations??(globalThis.__toolInputNormalizations=new Map);function f(a,b,c,g,h,i=Date.now()){e.set((0,d.v7)(a,b,c),{...g,toolName:h,at:i})}function g(a,b,c){return e.get((0,d.v7)(a,b,c))??null}},16402:(a,b,c)=>{c.d(b,{b1:()=>l,bj:()=>k,r_:()=>h,vm:()=>j});var d=c(74258),e=c(5142);let f=["enforce","legacy"],g={claude:"enforce",codex:"enforce",copilot:"enforce",opencode:"enforce",gemini:"legacy",antigravity:"legacy","vibe-local":"legacy","command-code":"legacy"};function h(a,b,c,d=process.env){let e=i(a,b,c,function(a,b=process.env){let c=b.CM_AUTOYES_DIALOG_GATE,d=null,e=null;if("string"==typeof c&&""!==c.trim())for(let b of c.split(",")){let[c,g]=b.split("=");if(void 0===g)continue;let h=c.trim(),i=g.trim();f.includes(i)&&("*"===h?d=i:h===a&&(e=i))}return e??d??g[a]??"legacy"}(a,d));return{allowed:!e.gated||null!==e.dialog&&"numbered"===e.dialog.answerMode,dialog:e.dialog,mode:e.mode,gated:e.gated}}function i(a,b,c,f){let g=(0,e.bN)(a);if("multiple_choice"!==b||!g.hasDialogRules||"legacy"===f)return{present:!0,dialog:null,mode:f,gated:!1};let h=g.detectDialog((0,d.z)(c));return{present:null!==h,dialog:h,mode:f,gated:!0}}function j(a,b,c){return i(a,b,c,g[a]??"legacy")}let k="unsupported_dialog_layout";function l(a,b){if(a.isPrompt&&b.present)return null;let c=a.promptData;return a.isPrompt&&b.gated&&c?.type==="multiple_choice"&&!0===c.isAskUserQuestion?{reason:k,message:"An AskUserQuestion picker is on screen, but its layout could not be verified as one of the agent's dialogs, so no key was sent. Answer it in the terminal, or retry once the screen has settled."}:{reason:"prompt_no_longer_active"}}},18778:(a,b,c)=>{c.d(b,{T:()=>g});var d=c(56791),e=c(41364);let f=(0,c(72626).h)("conversation-logger");async function g(a,b,c,h="claude"){let i=(0,d.getLastUserMessage)(a,b);if(i)try{await (0,e.hM)(b,i.content,c,h)}catch(a){f.error("conversation:log-failed",{error:a instanceof Error?a.message:String(a)})}}},21684:(a,b,c)=>{c.d(b,{U:()=>h});var d=c(33873),e=c.n(d),f=c(87447),g=c(8004);function h(){let a=e().join(process.cwd(),"data","logs");return(0,g.T)((0,f._p)("CM_LOG_DIR"),a,"CM_LOG_DIR")}},40043:(a,b,c)=>{c.d(b,{AD:()=>k,Q4:()=>g,ox:()=>j,xG:()=>l});var d=c(37717),e=c(48083);let f=new Set([d.g.NO_RECENT_OUTPUT,d.g.UNKNOWN_FRAME,d.g.DEFAULT]);function g(a,b){return"running"===a&&f.has(b)}let h=e.STRUCTURED_STATE_MAX_AGE_MS,i=globalThis.__lastKnownStatusByKey??(globalThis.__lastKnownStatusByKey=new Map);function j(a,b,c=Date.now()){for(let[a,b]of i)c-b.at>=h&&i.delete(a);for(;i.size>512;){let a=i.keys().next();if(a.done)break;i.delete(a.value)}"positive"===b.evidence&&(i.delete(a),i.set(a,{status:b.status,reason:b.reason,at:c}))}function k(a,b=Date.now()){let c=i.get(a);return void 0===c?null:b-c.at>=h?(i.delete(a),null):c}function l(a){i.delete(a)}},41364:(a,b,c)=>{c.d(b,{Gv:()=>o,hM:()=>n});var d=c(79748),e=c.n(d),f=c(33873),g=c.n(f),h=c(1634),i=c(21684),j=c(72626),k=c(15194);function l(a="claude"){return g().join((0,i.U)(),a)}async function m(a="claude"){let b=l(a);try{await e().access(b)}catch{await e().mkdir(b,{recursive:!0})}}async function n(a,b,c,d="claude"){await m(d);let f=function(a,b="claude"){let c=(0,h.GP)(new Date,"yyyy-MM-dd"),d=`${a}-${c}.md`,e=l(b);return g().join(e,d)}(a,d),i=(0,h.GP)(new Date,"yyyy-MM-dd HH:mm:ss"),j="";try{j=await e().readFile(f,"utf-8")}catch{let b=(0,k.hR)(d)?k.ef[d]:d;j=`# ${b} Conversation Log: ${a}
|
|
1
|
+
"use strict";exports.id=6677,exports.ids=[6677],exports.modules={60:(a,b,c)=>{c.d(b,{QM:()=>h,V0:()=>e,ZX:()=>f,bE:()=>g});var d=c(85164);function e(a){let b=(0,d.x7)(a),c=(0,d.M4)(a,b);return{chromeStart:b,echoEnd:c,start:c+1,end:b>=0?b:a.length,headTruncated:c<0}}function f(a){let b=a.split("\n"),c=e(b.map(d.aJ));return c.start>=c.end?"":b.slice(c.start,c.end).join("\n")}function g(a){let b=a.split("\n"),c=e(b),f=c.start>=c.end?"":b.slice(c.start,c.end).join("\n");return d.$t.test(f)&&!d.kD.test(a)&&!d.Ty.test(a)}function h(a,b,c,d,e,f=!1){if(a=Math.max(0,a),"opencode"===d||"copilot"===d||f){let a=e(b);return a>=0?a+1:0}if("antigravity"===d||"command-code"===d){let c=e(b);return c>=0?c+1:Math.max(0,a)}if(a>=b||c){let a=e(40);return a>=0?a+1:0}if("codex"===d)return Math.max(0,a);if(a>=b-5){let a=e(50);return a>=0?a+1:Math.max(0,b-40)}return Math.max(0,a)}},1058:(a,b,c)=>{c.d(b,{$v:()=>R,emitChatTurnProgress:()=>Y});var d=c(56791),e=c(52660);let f=globalThis.__unclassifiedFrameRuns??(globalThis.__unclassifiedFrameRuns=new Map);var g=c(94154),h=c(63209),i=c(51297),j=c(76777),k=c(50524);let l=/^([^\S\n]*)╹(▀{4,})/,m=/^([^\S\n]*)[│┃]/;var n=c(54325),o=c(81254),p=c(72626),q=c(43234),r=c(15194),s=c(129),t=c(66101),u=c(53163),v=c(17287),w=c(15388),x=c(3161),y=c(49154),z=c(62171),A=c(97751),B=c(31990),C=c(95595),D=c(5363),E=c(52277),F=c(44321),G=c(34405),H=c(93997),I=c(48083),J=c(30008),K=c(24581),L=c(40043),M=c(9516),N=c(36051);let O=(0,p.h)("current-output-builder");function P(a,b){Promise.resolve().then(c.bind(c,43015)).then(({broadcastMessage:c})=>{c("message",{worktreeId:a,message:b})}).catch(b=>{O.warn("history-row-broadcast-failed",{worktreeId:a,error:b instanceof Error?b.message:String(b)})})}function Q(a,b,c){return!!a.thinking&&null!==b&&"ready"===b.status&&null!==c&&"stop"===c.closedBy&&null!==c.closedAt}async function R(a,b,c,d,e){let f=await S(a,b,c,d);return(f.isRunning&&"running"===f.sessionStatus&&await Z(a,b,c,d),e)?{...f,resolvedBy:e.resolvedBy,conflict:e.conflict??null}:f}async function S(a,b,c,n){let p=n??c,R=q.CLIToolManager.getInstance().getTool(c),S=(0,I.getLastStopEventAt)(b,c,n),T=(0,I.getLastAgentEvent)(b,c,n),U=(0,s.VM)(c),V=Date.now(),W=(0,I.getPendingDecisions)(b,c,n,V),X=(0,I.getAskUserQuestion)(b,c,n,V),Y=(0,x.Jl)(b,c,n),Z={lastEventType:T?.event??null,lastEventAt:T?.at??null,lastEventDetail:T?.detail??null,...(0,I.getPublishedAgentTurn)(b,c,n,V),pendingDecisions:W.map(a=>{let b=(0,y.Wk)(a.toolName);return{id:a.decisionId,at:a.at,source:a.source,toolName:a.toolName,confirmedAt:a.confirmedAt,scraperCorroborated:a.scraperCorroborated,deliveryExpired:(0,K.qX)(a,U.capabilities.decisionTimeoutSeconds,V),kind:b,questionOptions:"question"===b&&X?(0,A.dZ)(X.spec).map(a=>({number:a.number,label:a.label})):null}}),dedupDropped:(0,I.getAgentEventDropCounts)(b,c,n),dialogPendingMaxMs:{...K.h_},promptWaitingSince:null,promptWaitingSource:null,toolInputNormalization:(0,w.SQ)(b,c,n),permissionDecision:(0,v.CD)(b,c,n),source:{cliToolId:U.cliToolId,capabilities:U.capabilities,...(0,t.Kf)(U,U.liveness({worktreeId:b,cliToolId:c,instanceId:p}),V),probedActivity:(0,u.hS)({worktreeId:b,cliToolId:c,instanceId:p})},session:Y,sessionContext:(0,x.sc)({worktreeId:b,cliToolId:c,instanceId:n},Y),sessionDiff:(0,z.rn)({worktreeId:b,cliToolId:c,instanceId:n})};if(!await R.isRunning(b,n))return(0,L.xG)((0,D.v7)(b,c,n)),{isRunning:!1,content:"",lineCount:0,cliToolId:c,sessionStatus:"idle",sessionStatusReason:"session_not_running",statusEvidence:"positive",lastKnownStatus:null,lastKnownStatusAt:null,lastStopEventAt:S,structuredEvents:Z,model:null,reasoningEffort:null,promptDedup:(0,F.XH)(b,c,n),upstreamFault:null,paneObstruction:null,composerText:null,composerState:"no_composer"};let $=(0,d.getSessionState)(a,b,p),_=$?.lastCapturedLine||0,aa=await (0,B.Wh)(b,c,G._,n),ab=aa.split("\n"),ac=ab.length,ad=(0,H.sl)(ac,Math.min(G._,H.xE)),ae=((0,r.qR)(c,ad)?ab.slice(Math.max(0,_)):ab).join("\n"),af=(0,D.v7)(b,c,n),ag=(0,D.xU)(af),ah=ag?new Date(ag):void 0,ai=(0,C.WC)(aa,c,ah),aj=(0,C.f8)(ai),ak=ai.hasActivePrompt,al="waiting"===ai.status&&C.ug.has(ai.reason),am=ai.reason===C.gv.CODEX_PAGER,an="waiting"===ai.status&&ai.reason===C.gv.COMMAND_CODE_DISMISSABLE_PANEL,ao=ai.evidence,ap=(0,L.Q4)(ai.status,ai.reason);(0,I.observeScraperCompletionEvidence)(b,c,n,"ready"===ai.status&&"positive"===ao);let aq=(0,I.getStructuredSessionState)(b,c,n),ar=(0,J._G)({worktreeId:b,cliToolId:c,instanceId:n,scraper:{status:ai.status,reason:ai.reason,hasActivePrompt:ak}}),as=ar.structured;null!==as&&(Z.promptWaitingSince=as.at,Z.promptWaitingSource=as.source);let at={status:ai.status,reason:ai.reason,thinking:aj,evidence:ao,isUnclassifiedActive:ap},au=Q(at,aq,Z)?function(a,b,c,d){try{let f=(0,e.getLastUserMessageForInstance)(a,b,c,d);if(!f)return null;let g=f.timestamp instanceof Date?f.timestamp.getTime():NaN;return Number.isFinite(g)?g:null}catch(a){return O.debug("newest-prompt-read-failed",{worktreeId:b,cliToolId:c,instanceId:d,error:a instanceof Error?a.message:String(a)}),null}}(a,b,c,p):null,av=function(a,b,c=null,d=null,e=null){if("waiting"===a.status)return{...a,structuredApplied:!1};if(null!==c)return{status:"waiting",reason:(0,J.rB)(c),thinking:!1,evidence:a.evidence,isUnclassifiedActive:a.isUnclassifiedActive,structuredApplied:!0};if(null===b||"waiting"===b.status||function(a,b,c,d){if(null===d||!Q(a,b,c))return!1;let e=c?.closedAt??null;return null!==e&&e<d}(a,b,d,e))return{...a,structuredApplied:!1};let f="running"===b.status,g="ready"===b.status&&function(a){if(null===a)return!1;let{closedBy:b,closedAt:c,openedAt:d}=a;return"stop"===b&&null!==c&&null!==d&&c>d}(d)?"positive":a.evidence;return{status:b.status,reason:b.reason,thinking:f,evidence:g,isUnclassifiedActive:a.isUnclassifiedActive,structuredApplied:!0}}(at,aq,as,Z,au),aw=ar.waiting,ax=ai.promptDetection.promptData,ay=ax&&X?(0,M.Hu)(ax,X.spec):null,az=null!==as&&"notification"===as.source&&"permission-id"===U.capabilities.eventIdentity&&(0,N.PP)(as.decisionId)?as.decisionId:null,aA=null!==as&&"question"===(0,y.Wk)(as.toolName),aB=null===az||aA?null:N.QB,aC=null===as?null:{...as,askUserQuestion:function(a){let b=a?.spec.questions[0];return b?{question:b.question,labels:b.choices.map(a=>a.label),questionCount:a.spec.questions.length}:null}(X),decisionOptions:aB,decisionId:az,patterns:null!==aB?as.patterns:null},aD=ak?ay??ax??(aC?(0,N.Yo)(b,aC):null):aC?(0,N.Yo)(b,aC):null;null!==aq&&aq.status!==ai.status&&O.info("detection-divergence",{worktreeId:b,cliToolId:c,instanceId:p,scraperStatus:ai.status,scraperReason:ai.reason,structuredStatus:aq.status,structuredReason:aq.reason,structuredEvent:aq.event,structuredEventAt:aq.at,applied:av.structuredApplied});let aE=ab.slice(-100).join("\n"),aF="opencode"===c?function(a){let b=(0,i.aJ)(a).split("\n"),c=-1,d=-1,e=-1;for(let a=0;a<b.length;a++){let f=l.exec(b[a]);f&&(c=a,e=(d=f[1].length)+1+f[2].length)}if(-1===c)return null;let f=0,g="";for(let a=0;a<b.length;a++){let h=b[a];if(a!==c){let a=m.exec(h);if(!a||a[1].length!==d)continue}let i=h.slice((0,k.sh)(h,e)).trim();""!==i&&(f+=1,""===g&&(g=(0,j.D)(i,200,"…[truncated]")))}return f<2?null:{id:"opencode_sidebar",matchedText:g,boxRight:e,rows:f}}(aE):null,aG=function(a,b,c=Date.now()){for(let[a,b]of f)c-b.lastSeen>36e5&&f.delete(a);if(!b)return f.delete(a),{dwellMs:0,shouldRecord:!1};let d=f.get(a);if(!d)return f.set(a,{since:c,lastSeen:c,recorded:!1}),{dwellMs:0,shouldRecord:!1};d.lastSeen=c;let e=Math.max(0,c-d.since);return d.recorded||e<6e4?{dwellMs:e,shouldRecord:!1}:(d.recorded=!0,{dwellMs:e,shouldRecord:!0})}(af,av.isUnclassifiedActive);if(aG.shouldRecord&&function(a,b){var c;let e=Math.round(b.dwellMs/1e3),f=`${b.sessionStatus}/${b.sessionStatusReason}`,g=`Unclassified interactive frame (${f}) held for ${e}s. The detection layer could not parse it, so no prompt was published and nothing could answer it. Inspect the raw pane with \`commandmate capture ${b.worktreeId} --pane\`.`+((c=b.obstruction)?` Cause: opencode's sidebar is sharing rows with the transcript (paneObstruction=${c.id}, second column reads ${JSON.stringify(c.matchedText)}), which covers the marker that ends a turn. Press \`ctrl+x b\` in the pane to close it.`:""),h={type:o.LT,status:"unclassified",question:g,options:[],dwellSeconds:e,sessionStatusReason:f};try{let c=(0,d.createMessage)(a,{worktreeId:b.worktreeId,role:"assistant",content:g,messageType:"prompt",promptData:h,timestamp:new Date,cliToolId:b.cliToolId,instanceId:b.instanceId});O.info("unclassified-frame-recorded",{worktreeId:b.worktreeId,cliToolId:b.cliToolId,dwellSeconds:e,statusReason:f}),P(b.worktreeId,c)}catch(a){O.warn("unclassified-frame-record-failed",{worktreeId:b.worktreeId,error:a instanceof Error?a.message:String(a)})}}(a,{worktreeId:b,cliToolId:c,instanceId:p,dwellMs:aG.dwellMs,sessionStatus:av.status,sessionStatusReason:av.reason,obstruction:aF}),null!==as&&null!==aC&&!ak&&!as.recorded){(0,I.markStructuredPromptRecorded)(b,c,n);var aH=b,aI=c,aJ=p,aK=as,aL=aC;let e=(0,N.fO)(aH,aL);try{let b=(0,d.createMessage)(a,{worktreeId:aH,role:"assistant",content:e.question,summary:`structured prompt \xb7 source=${aK.source}${aK.toolName?` \xb7 tool=${aK.toolName}`:""}`,messageType:"prompt",promptData:e,timestamp:new Date,cliToolId:aI,instanceId:aJ});O.info("structured-prompt-recorded",{worktreeId:aH,cliToolId:aI,instanceId:aJ,source:aK.source,toolName:aK.toolName}),P(aH,b)}catch(a){O.warn("structured-prompt-record-failed",{worktreeId:aH,error:a instanceof Error?a.message:String(a)})}}let aM=(0,g.ji)(aa,c),aN=(0,h.bT)(aE),aO=(0,D.aq)(b,c,n),{model:aP,effort:aQ}=(0,I.getResolvedAgentModelInfo)(b,c,n);(0,L.ox)(af,{status:av.status,reason:av.reason,evidence:av.evidence});let aR=(0,L.AD)(af);return{isRunning:!0,cliToolId:c,sessionStatus:av.status,sessionStatusReason:av.reason,content:ae,fullOutput:aa,realtimeSnippet:aE,lineCount:ac,lastCapturedLine:_,isComplete:aw,isGenerating:av.thinking,thinking:av.thinking,thinkingMessage:av.thinking?"Claude is thinking...":null,isPromptWaiting:aw,promptData:aD,autoYes:{enabled:aO?.enabled??!1,expiresAt:aO?.enabled?aO.expiresAt:null,stopReason:aO?.stopReason,lastSuppression:(0,E.gb)(b,c,n),stopMatchedText:aO?.stopMatchedText},isSelectionListActive:al,isPagerActive:am,isDismissablePanelActive:an,isUnclassifiedActive:av.isUnclassifiedActive,statusEvidence:av.evidence,lastKnownStatus:aR?.status??null,lastKnownStatusAt:aR?.at??null,lastServerResponseTimestamp:ag,serverPollerActive:(0,D.bZ)(af),lastStopEventAt:S,structuredEvents:Z,model:aP,reasoningEffort:aQ,promptDedup:(0,F.XH)(b,c,n),upstreamFault:aN?{id:aN.fault.id,matchedText:aN.matchedText,at:Date.now()}:null,paneObstruction:aF?{id:aF.id,matchedText:aF.matchedText,at:Date.now()}:null,composerText:"content"===aM.state?aM.text:null,composerState:aM.state}}function T(){return{version:0,askedAt:-1/0,turnKey:null,body:null,loggedOutcome:null,loggedTurnKey:null}}let U=globalThis.__chatTurnProgressState??=new Map;function V(a){return`${a.worktreeId}:${a.cliToolId}:${a.instanceId??a.cliToolId}`}function W(a,b,c,d={}){let e=V(a),f=U.get(e)??T();U.set(e,f),(f.loggedOutcome!==b||f.loggedTurnKey!==c)&&(f.loggedOutcome=b,f.loggedTurnKey=c,O.info("published"===b?"chat-turn-progress-published":"no-subscribers"===b?"chat-turn-progress-no-subscribers":"chat-turn-progress-failed",{worktreeId:a.worktreeId,cliToolId:a.cliToolId,instanceId:a.instanceId??a.cliToolId,turnKey:c,...d}))}async function X(a,b,c=Date.now()){let d,e=V(a),f=U.get(e)??T();if(c-f.askedAt<n.r9)return null;f.askedAt=c,U.set(e,f);try{d=await b()}catch{return null}if(!d||0===d.body.length)return null;let g=(0,n.rx)(d.body);return d.turnKey===f.turnKey&&g.body===f.body?null:(f.turnKey=d.turnKey,f.body=g.body,f.version+=1,{type:n.rz,worktreeId:a.worktreeId,cliToolId:a.cliToolId,instanceId:a.instanceId??a.cliToolId,turnKey:d.turnKey,body:g.body,partial:g.truncated||!0===d.partial,version:f.version,done:!1})}async function Y(a,b,d=Date.now()){try{let{broadcast:e,hasRoomSubscribers:f}=await Promise.resolve().then(c.bind(c,43015));if(!f(a.worktreeId))return W(a,"no-subscribers",null),!1;let g=await X(a,b,d);if(!g)return!1;return e(a.worktreeId,g),W(a,"published",g.turnKey,{version:g.version,bodyLength:g.body.length,partial:g.partial}),!0}catch(b){return W(a,"failed",null,{error:b instanceof Error?b.message:String(b)}),!1}}async function Z(a,b,d,e){if("claude"!==d)return;let f={worktreeId:b,cliToolId:d,instanceId:e};try{let{getWorktreeById:g}=await Promise.resolve().then(c.bind(c,73753)),h=g(a,b)?.path;if(!h)return;let{hasRoomSubscribers:i}=await Promise.resolve().then(c.bind(c,43015));if(!i(b))return void W(f,"no-subscribers",null);Y(f,async()=>{let{readClaudeTurnProgress:a}=await Promise.resolve().then(c.bind(c,79696));return a({worktreeId:b,cliToolId:d,instanceId:e??d},{worktreePath:h})})}catch(a){W(f,"failed",null,{error:a instanceof Error?a.message:String(a)})}}},3523:(a,b,c)=>{c.d(b,{$M:()=>R,Tq:()=>Y,z$:()=>U,zX:()=>$});var d=c(31990),e=c(88807),f=c(56791),g=c(43015),h=c(26895),i=c(28861),j=c(96742),k=c(18778),l=c(15194),m=c(8988),n=c(85164),o=c(72626),p=c(46423),q=c(93997),r=c(60),s=c(82450),t=c(56263),u=c(13033),v=c(72457),w=c(16402),x=c(44321),y=c(71080),z=c(28918),A=c(31517),B=c(43925),C=c(40964),D=c(83598),E=c(31442),F=c(45146),G=c(91601),H=c(92010),I=c(81099),J=c(63209),K=c(73478),L=c(57836),M=c(52767);let N=(0,o.h)("response-poller");function O(a){return b=>{try{(0,g.broadcastMessage)("message_updated",{worktreeId:a,message:b})}catch(b){N.warn("prompt-sweep-broadcast-failed",{worktreeId:a,error:b instanceof Error?b.message:String(b)})}}}function P(a){return{response:"",isComplete:!1,lineCount:a}}function Q(a,b,c,d,e,f,g,h=!1){let i=(0,r.QM)(b,c,d,e,f,h),j=a.slice(i);return{response:(0,n.aJ)(j.join("\n")),isComplete:!0,lineCount:c,promptDetection:g,bufferReset:d,captureWindowSaturated:h}}function R(a,b,c,d){if("antigravity"===b){let b=(0,i.g)(a);if(null!==b)return b}if("command-code"===b&&void 0!==d){let b=(0,j.nK)(d);if("prompt"===b.kind)return b.prompt;if("unsupported"===b.kind)return{isPrompt:!1,cleanContent:a.trim()}}let e=(0,n.KO)(b);return(0,h.gF)(a,c?{...e,precomputedLines:c}:e)}function S(a,b,c){let d=(0,w.vm)(a,b.promptData?.type,c);return!!d.present||(N.debug("prompt-candidate-not-vouched",{cliToolId:a,promptType:b.promptData?.type,gateMode:d.mode}),!1)}function T(a,b){return R((0,n._A)((0,n.aJ)(a)),b,void 0,a)}function U(a,b,c,d=q.xE){let e=a.split("\n"),f=e.length;for(;f>0&&""===e[f-1].trim();)f--;let g=e.slice(0,f),h=g.length,i=(0,q.sl)(e.length,d),j="opencode"===c?g.map(n.aJ):null,k="claude"===c?(0,n.GT)(g):"copilot"===c?(0,n.wv)(g):"command-code"===c?(0,n.I$)(g):"codex"===c?(0,n.Zu)(g):j?(0,n.x7)(j):-1,l=k>=0?k:h,m=h>0&&b>25&&h+25<b,o=h>0&&b>50&&h<50,s=m||o;if(!s&&h<b-5)return null;let t=Math.max(0,h-20),u=g.slice(t),v=j?j.join("\n"):u.join("\n"),{promptPattern:w,separatorPattern:x,thinkingPattern:y,skipPatterns:z}=(0,n._X)(c),A=(a=60)=>{let b;if("codex"===c)return(0,n.Nc)(g,l,a,k>=0);if(j)return(0,r.V0)(j).echoEnd;if("copilot"===c){for(let b=l-1;b>=Math.max(0,l-a);b--){if(!n.y.test((0,n.aJ)(g[b])))continue;let a=b;for(;a+1<l&&n.Fg.test((0,n.aJ)(g[a+1]));)a++;return a}return -1}b=/^[>❯]\s+\S/;for(let c=l-1;c>=Math.max(0,l-a);c--){let a=(0,n.aJ)(g[c]);if(b.test(a))return c}return -1};if("claude"===c||"codex"===c||"copilot"===c||"command-code"===c){let a=g.join("\n"),d=T(a,c);if(d.isPrompt&&S(c,d,a))return Q(g,b,h,s,c,A,d,i)}let B=(0,n.aJ)(v),C=w.test(B),D=x.test(B),E="codex"===c?(0,n.DR)(g,20):y.test(B),G="copilot"===c?(0,n.Wn)(g.slice(Math.max(0,h-8)).map(n.aJ)):null,H="copilot"===c?"idle"===G:("codex"===c||"gemini"===c||"vibe-local"===c||"antigravity"===c)&&C&&!E,I="claude"===c&&C&&D&&!E,J="command-code"===c&&C&&D&&!E,K="opencode"===c&&(0,r.bE)(B);if(H||I||J||K){let a=[],d=(0,r.QM)(b,h,s,c,A,i),e="codex"===c?l:h;for(let b=d;b<l;b++){let d=g[b],f=(0,n.aJ)(d);if("codex"===c&&/^›\s+/.test(f)||"gemini"===c&&/^(%|\$|.*@.*[%$#])\s*$/.test(f)||"antigravity"===c&&/^>\s*$/.test(f)||"opencode"===c&&k<0&&(n.sy.test(f)||n.uA.test(f))){e=b;break}z.some(a=>a.test(f))||a.push(d)}let f=a.join("\n").trim(),m=f.split("\n").slice(-p.$).join("\n");if("copilot"!==c&&y.test(m))return P(h);if("claude"===c){let a=(0,n.aJ)(f),b=/[╭╮╰╯]/.test(a)||/░{3,}/.test(a)||/▓{3,}/.test(a),c=/Claude Code v\d+\.\d+|claude\//.test(a),d=/Tip:|for shortcuts|\?\s*for help/.test(a),e=/^\s*\/Users\/.*$/m.test(a)&&a.split("\n").length<30,g=A(h)>=0,i=a.match(/^[>❯]\s+(\S.*)$/m);if(i){let b=a.indexOf(i[0]);if(0===a.substring(b+i[0].length).trim().split("\n").filter(a=>{let b=a.trim();return b&&!z.some(a=>a.test(b))&&!/^─+$/.test(b)}).length)return P(h)}else if(!g&&(b||c||d||e)&&f.length<2e3)return N.info("Claude startup banner suppressed, response not saved",{responseLength:f.length,hasBannerArt:b,hasVersionInfo:c,hasStartupTips:d,hasProjectInit:e}),P(h)}if("copilot"===c){let a=(0,n.aJ)(f);if(!a.split("\n").some(a=>n.y.test(a))&&n.E0.some(b=>b.test(a)))return P(h)}if("command-code"===c&&0>A(h))return N.info("Command Code launch screen suppressed, response not saved",{responseLength:f.length}),P(h);if("gemini"===c&&((f.match(/[░███]/g)||[]).length>.3*f.length||F.SI.some(a=>f.includes(a))||!f.includes("✦")&&f.length<10))return P(h);if("opencode"===c){let a=(0,n.aJ)(f);if((a.length<50||!n.Md.test(B))&&0===a.split("\n").filter(a=>{let b=a.trim();return b&&!n.sx.some(a=>a.test(b))}).length)return P(h)}return{response:f,isComplete:!0,lineCount:e,bufferReset:s,captureWindowSaturated:i,turnHeadTruncated:j?(0,r.V0)(j).headTruncated:void 0}}if("opencode"!==c){let a=g.join("\n"),d=T(a,c);if(d.isPrompt&&S(c,d,a))return Q(g,b,h,s,c,A,d,i)}let L=[],M=s||i||b>=h-5,O=M?A(80):-1,R=M?O>=0?O+1:Math.max(0,h-80):Math.max(0,b);for(let a=R;a<Math.min(h,l);a++){let b=g[a],c=(0,n.aJ)(b);z.some(a=>a.test(c))||L.push(b)}let V=L.join("\n").trim();return V?{response:V,isComplete:!1,lineCount:h}:P(h)}(0,K.I7)();let V=A.sD.reduce((a,b)=>a+b,0),W=globalThis.__pendingScrapedResponses??=new Map;function X(a){W.delete(a)}function Y(a,b){let c=W.get(a);if(!c)return!1;W.delete(a);try{let a=(0,e.getDbInstance)(),d=(0,f.createMessage)(a,{worktreeId:c.worktreeId,role:"assistant",content:c.content,messageType:"normal",timestamp:c.timestamp,cliToolId:c.cliToolId,instanceId:c.instanceId,summary:c.summary,logFileName:c.logFileName,requestId:c.requestId});return(0,g.broadcastMessage)("message",{worktreeId:c.worktreeId,message:d}),N.info("pending-scrape-flushed",{worktreeId:c.worktreeId,cliToolId:c.cliToolId,instanceId:c.instanceId,reason:b,scrapedLength:c.content.length,heldForMs:Date.now()-c.timestamp.getTime()}),(0,k.T)(a,c.worktreeId,c.content,c.cliToolId).catch(()=>{}),!0}catch(a){return N.warn("pending-scrape-flush-failed",{worktreeId:c.worktreeId,cliToolId:c.cliToolId,instanceId:c.instanceId,reason:b,error:a instanceof Error?a.message:String(a)}),!1}}async function Z(a){let b=W.get(a);if(!(!b||Date.now()<b.expiresAt)){if(await (0,z.captureStructuredHistoryTurn)(b.worktreeId,b.cliToolId,b.instanceId,{worktreePath:b.worktreePath,transcriptPathHint:b.transcriptPathHint})){X(a),(0,y.oE)(a),N.info("pending-scrape-superseded",{worktreeId:b.worktreeId,cliToolId:b.cliToolId,instanceId:b.instanceId,heldForMs:Date.now()-b.timestamp.getTime()});return}Y(a,"hold-expired")}}async function $(a,b,c){let h=(0,e.getDbInstance)(),i=c??b;try{let e=(0,f.getWorktreeById)(h,a);if(!e)return N.error("worktree-worktreeid-not"),(0,F.Et)(a,b,c),!1;if(!await (0,d.K1)(a,b,c))return N.info("session-not-running"),(0,F.Et)(a,b,c),!1;let j=(0,F.MN)(a,b,c);await Z(j);let o=(0,C.m)(b,a,c),w=(0,E.n9)(o)?await (0,D.zQ)(o):{delegated:!1,released:!1};w.released&&((0,f.updateSessionState)(h,a,b,0,i),N.info("geometry-delegation-released",{worktreeId:a,cliToolId:b,instanceId:i}));let A=(0,f.getSessionState)(h,a,i),K=A?.lastCapturedLine||0,P=await (0,d.Wh)(a,b,q.xE,c),Q=P.split("\n").slice(-100).join("\n"),R=(0,J.bT)(Q);if((0,I.notifyUpstreamFaultPush)({worktreeId:a,cliToolId:b,instanceId:c,faultId:R?.fault.id??null,matchedText:R?.matchedText}).catch(()=>{}),"opencode"===b||"copilot"===b){let a="opencode"===b?(0,r.ZX)(P):P;(0,u.IZ)(j,a,b)}let Y=U(P,K,b,q.xE);if(!Y||!Y.isComplete){let{thinkingPattern:c}=(0,n._X)(b),d=(0,n.aJ)(P).split("\n").slice(-p.$).join("\n");return c.test(d)&&(0,f.markPendingPromptsAsAnswered)(h,a,b,i,O(a))>0&&N.info("marked-answeredcount-pending"),!1}let $="opencode"===b||"copilot"===b,_=!(0,l.VA)(b)&&!Y.captureWindowSaturated;if(_&&!Y.bufferReset&&Y.lineCount===K&&!A?.inProgressMessageId)return!1;if(_&&!Y.bufferReset&&Y.lineCount<=K)return N.info("already-saved-up-to-line-lastcapturedlin"),!1;let aa=Y.promptDetection??T(Y.response,b);if(aa.isPrompt&&S(b,aa,P)){let d=aa.rawContent||aa.cleanContent,k=(0,v.zm)(d,b);if((0,v.gv)(j,k))return(0,x.LN)(a,b,c),N.info("duplicate-prompt-skipped",{worktreeId:a,cliToolId:b}),!1;let l=d;"copilot"===b&&(l=(0,s.LH)(d),l=(0,s.Sj)(l,t.Rf,t.ky)),(0,f.clearInProgressMessageId)(h,a,b,i);let m=(0,f.createMessage)(h,{worktreeId:a,role:"assistant",content:l,messageType:"prompt",promptData:aa.promptData,timestamp:new Date,cliToolId:b,instanceId:i});(0,f.updateSessionState)(h,a,b,Y.lineCount,i),(0,g.broadcastMessage)("message",{worktreeId:a,message:m}),(0,M.r)(h,a,b,i,"prompt_detected",{promptType:aa.promptData?.type});let n=Date.now(),o=(0,L.Jp)(a,b,c)?.since??n;return(0,H.R)({worktreeId:a,cliToolId:b,instanceId:c,waitingSince:o})||(0,G.J$)({worktreeId:a,worktreeName:e.name,kind:"prompt",agentName:i,instanceId:i,waitingKind:"prompt",waitingSince:o,excerpt:aa.promptData?.question??l}).catch(()=>{}),(0,L.hd)({worktreeId:a,cliToolId:b,instanceId:c,waiting:!0,kind:"prompt",now:n}),$||(0,F.Et)(a,b,c),!0}if(!Y.response||""===Y.response.trim())return(0,f.updateSessionState)(h,a,b,Y.lineCount,i),!1;let ab="claude"===b?(0,m.R)(Y.response):void 0,ac=Y.response;if("gemini"===b)ac=(0,s.IS)(Y.response);else if("claude"===b)ac=(0,s.NN)(Y.response);else if("copilot"===b){let a=(0,u.Uz)(j)||Y.response;ac=(0,s.LH)(a),ac=(0,s.Sj)(ac,t.Rf,t.ky),(0,u.q1)(j)}else if("opencode"===b){let a=(0,u.Uz)(j),b=Y.turnHeadTruncated&&a?a:Y.response;ac=(0,s.aW)(b),(0,u.q1)(j)}if(!ac||""===ac.trim()||"[No content]"===ac)return(0,f.updateSessionState)(h,a,b,Y.lineCount,i),(0,f.clearInProgressMessageId)(h,a,b,i),!1;if(!_&&(0,y.j7)(j,ac)){if(N.info("duplicate-response-skipped",{worktreeId:a,cliToolId:b,instanceId:i}),(0,f.updateSessionState)(h,a,b,Y.lineCount,i),(0,y.pN)(j)&&await (0,z.captureStructuredHistoryTurn)(a,b,c,{worktreePath:e.path,transcriptPathHint:ab?.logFilePath??null}))return(0,y.oE)(j),X(j),N.info("structured-history-recheck-captured",{worktreeId:a,cliToolId:b,instanceId:i}),!0;return!1}let ad={},ae=(0,z.isStructuredHistoryWriterLive)(a,b,c)||await (0,z.captureStructuredHistoryTurn)(a,b,c,{worktreePath:e.path,transcriptPathHint:ab?.logFilePath??null},ad);ae?(0,y.oE)(j):(0,y.Pe)(j);let af=ae||w.delegated,ag=!af&&"not_yet_closed"===ad.outcome;!ac||af||ag||await (0,k.T)(h,a,ac,b),(0,f.markPendingPromptsAsAnswered)(h,a,b,i,O(a))>0&&N.info("marked-answeredcount-pending");let ah=(0,f.getSessionState)(h,a,i);if(_&&ah&&Y.lineCount<=ah.lastCapturedLine)return N.info("race-condition-detected-skipping-save-re"),!1;if(ag)!function(a,b){let c=W.get(a);if(c){c.content=b.content;return}W.set(a,b)}(j,{worktreeId:a,cliToolId:b,instanceId:i,content:ac,timestamp:new Date,summary:ab?.summary,logFileName:ab?.logFileName,requestId:ab?.requestId,worktreePath:e.path,transcriptPathHint:ab?.logFilePath??null,expiresAt:Date.now()+V}),N.info("structured-history-scrape-held",{worktreeId:a,cliToolId:b,instanceId:i,scrapedLength:ac.length,holdMs:V}),(0,B.vQ)(a,b,i,!1);else if(af)ae&&X(j),N.info("structured-history-scrape-suppressed",{worktreeId:a,cliToolId:b,instanceId:i,scrapedLength:ac.length,reason:ae?"structured-history":"geometry-delegated"});else{let c=(0,f.createMessage)(h,{worktreeId:a,role:"assistant",content:ac,messageType:"normal",timestamp:new Date,cliToolId:b,instanceId:i,summary:ab?.summary,logFileName:ab?.logFileName,requestId:ab?.requestId});(0,g.broadcastMessage)("message",{worktreeId:a,message:c}),(0,B.vQ)(a,b,i,!1)}return(0,L.hd)({worktreeId:a,cliToolId:b,instanceId:c,waiting:!1}),(0,G.J$)({worktreeId:a,worktreeName:e.name,kind:"completion",agentName:i,excerpt:ac}).catch(()=>{}),(0,f.updateSessionState)(h,a,b,Y.lineCount,i),$&&(0,F.Et)(a,b,c),!0}catch(a){return N.error("response:check-failed",{error:a instanceof Error?a.message:String(a)}),!1}}},5363:(a,b,c)=>{c.d(b,{v7:()=>d.v7,LP:()=>d.LP,pL:()=>d.pL,GE:()=>d.GE,aq:()=>d.aq,kC:()=>d.kC,xU:()=>y,bZ:()=>z,W8:()=>d.W8,W5:()=>F,_i:()=>G,_C:()=>H});var d=c(24455),e=c(31990),f=c(3523),g=c(75498),h=c(91318),i=c(52277),j=c(16402),k=c(52767),l=c(88807),m=c(52660),n=c(63869),o=c(43234),p=c(85164),q=c(77093),r=c(93997),s=c(68901),t=c(72626),u=c(66007);let v=(0,t.h)("auto-yes-poller"),w=globalThis.__autoYesPollerStates??(globalThis.__autoYesPollerStates=new Map);function x(a){return w.get(a)}function y(a){let b=x(a);return b?.lastServerResponseTimestamp??null}function z(a){return w.has(a)}function A(a){let b=x(a);if(b&&(b.consecutiveErrors++,b.currentInterval=(0,d.G)(b.consecutiveErrors),b.consecutiveErrors>=s.ul)){let b=(0,d.Ue)(a),c=(0,d.pL)(a);c&&(0,d.XK)(b,c,"consecutive_errors",(0,d.GE)(a)??void 0),G(a)}}async function B(a,b,c,d){let f=c??s.FW,g=await (0,e.Wh)(a,b,f,d);return{raw:g,clean:(0,p._A)((0,p.aJ)(g))}}async function C(a,b,e,s,t,u,w){let y=(0,d.v7)(a,e,u);try{let A=(0,f.$M)(s,e,t,w);if(!A.isPrompt||!A.promptData)return b.lastAnsweredPromptKey=null,b.lastAnsweredAt=null,"no_prompt";let C=(z=A.promptData,`${z.type}:${z.question}`);if(b.lastAnsweredPromptKey===C&&null!==b.lastAnsweredAt&&Date.now()-b.lastAnsweredAt<d.UL)return"duplicate";let D="codex"===e?(0,p.E6)(s):null;if(D)return(0,i.ZS)(a,e,u,{reason:"agent-launch-dialog",mode:null,promptType:A.promptData.type}),v.warn("poller:auto-yes-skipped-launch-dialog",{worktreeId:a,cliToolId:e,instanceId:u,dialog:D,promptType:A.promptData.type}),"no_answer";let E=(0,j.r_)(e,A.promptData.type,s);if(!E.allowed)return(0,i.ZS)(a,e,u,{reason:"unclassified-frame",mode:null,promptType:A.promptData.type}),v.warn("poller:auto-yes-skipped-unclassified-frame",{worktreeId:a,cliToolId:e,instanceId:u,promptType:A.promptData.type,dialogKind:E.dialog?.kind??null,answerMode:E.dialog?.answerMode??null,gateMode:E.mode}),"no_answer";let F=(0,h.n)(a,e,u),G=(0,g.sD)(A.promptData,F);G.suppressedBy&&((0,i.ZS)(a,e,u,{reason:G.suppressedBy,mode:F?.mode??null,promptType:A.promptData.type,pattern:G.pattern}),v.warn("poller:auto-yes-suppressed-by-policy",{worktreeId:a,cliToolId:e,instanceId:u,reason:G.suppressedBy,mode:F?.mode??null,pattern:G.pattern,promptType:A.promptData.type}));let H=G.answer;if(null===H)return"no_answer";let I=o.CLIToolManager.getInstance().getTool(e).getSessionName(a,u);try{await (0,n.tV)({sessionName:I,answer:H,cliToolId:e,promptData:A.promptData})}finally{(0,r.gm)(I)}var z,B=Date.now();let J=x(y);J&&(J.lastServerResponseTimestamp=B);let K=x(y);K&&(K.consecutiveErrors=0,K.currentInterval=d.ps),b.lastAnsweredPromptKey=C,b.lastAnsweredAt=Date.now(),v.info("poller:response-sent",{worktreeId:a,cliToolId:e,instanceId:u}),(0,k.r)((0,l.getDbInstance)(),a,e,u??e,"prompt_answered_auto",{promptType:A.promptData.type});let L=null;try{L=(0,m.recordAnsweredPrompt)((0,l.getDbInstance)(),{worktreeId:a,cliToolId:e,instanceId:u??e,promptData:A.promptData,answer:H,answeredBy:"auto",content:A.rawContent||A.cleanContent})}catch(b){v.warn("poller:prompt-audit-record-failed",{worktreeId:a,cliToolId:e,instanceId:u,error:(0,q.u1)(b)})}if(L){let b=L;Promise.resolve().then(c.bind(c,43015)).then(({broadcastMessage:c})=>{c(b.created?"message":"message_updated",{worktreeId:a,message:b.message})}).catch(()=>{})}let[{startPolling:M},{broadcastTerminalSnapshotAfterInteraction:N}]=await Promise.all([c.e(2839).then(c.bind(c,95220)),Promise.resolve().then(c.bind(c,99508))]);return M(a,e,u),N(a,e,u),"responded"}catch{return A(y),v.warn("poller:detect-respond-error",{worktreeId:a,cliToolId:e,instanceId:u}),"error"}}async function D(a,b,c){let e=(0,d.v7)(a,b,c),f=x(e);if("valid"===function(a,b){if(!b)return"stopped";let c=(0,d.Ue)(a),e=(0,d.pL)(a);if(!e)return G(a),"expired";let f=(0,d.GE)(a)??void 0,g=(0,d.aq)(c,e,f);return g?.enabled?"valid":(G(a),"expired")}(e,f)){try{let g=(0,d.aq)(a,b,c),h=g?.stopPattern?s.FW:s.Ke,{raw:i,clean:j}=await B(a,b,h,c),k=j.split("\n");if(function(a,b,c){if(b.stopCheckBaselineLength<0)return b.stopCheckBaselineLength=c.length,!1;let e=b.stopCheckBaselineLength;if(c.length>e){let f=c.substring(e);return b.stopCheckBaselineLength=c.length,(0,d.Cs)(a,f,G)}return c.length<e&&(b.stopCheckBaselineLength=c.length),!1}(e,f,j))return;let l=await C(a,f,b,j,k,c,i);if("responded"===l)return void E(a,b,c,d.ZO);if("no_prompt"===l){let e=k.slice(-d.Re).join("\n");if((0,p.ut)(b,e))return void E(a,b,c,s.QN)}}catch(d){A(e),v.warn("poller:poll-error",{worktreeId:a,cliToolId:b,instanceId:c,error:(0,q.u1)(d)})}E(a,b,c)}}function E(a,b,c,e){let f=x((0,d.v7)(a,b,c));if(!f)return;let g=Math.max(e??f.currentInterval,d.ps);f.timerId=setTimeout(()=>{D(a,b,c)},g)}function F(a,b,c){if(!(0,u.h6)(a))return{started:!1,reason:"invalid worktree ID"};let e=c??b,f=(0,d.aq)(a,b,e);if(!f?.enabled)return{started:!1,reason:"auto-yes not enabled"};let g=(0,d.v7)(a,b,e),i=x(g);if(!i&&w.size>=d.fC)return{started:!1,reason:"max concurrent pollers reached"};if(i&&i.cliToolId===b)return{started:!0,reason:"already_running"};i&&G(g);let j={timerId:null,cliToolId:b,instanceId:e,consecutiveErrors:0,currentInterval:d.ps,lastServerResponseTimestamp:null,lastAnsweredPromptKey:null,lastAnsweredAt:null,stopCheckBaselineLength:-1};return w.set(g,j),(0,h.ie)(g),j.timerId=setTimeout(()=>{D(a,b,e)},d.ps),v.info("poller:started",{worktreeId:a,cliToolId:b,instanceId:e}),{started:!0}}function G(a){let b=x(a);b&&(b.timerId&&clearTimeout(b.timerId),w.delete(a),(0,h.ie)(a),v.info("poller:stopped",{compositeKey:a}))}function H(a){(0,d._9)(Array.from(w.keys()),a).forEach(a=>G(a))}},8988:(a,b,c)=>{c.d(b,{R:()=>g});let d=/📄 Session log: (.+?\/([^\/\s]+\.jsonl))/,e=/Request ID: ([^\s\n]+)/,f=/Summary: (.+?)(?:\n─|$)/s;function g(a){let b={content:a},c=d.exec(a);c&&(b.logFileName=c[2],b.logFilePath=c[1]);let g=e.exec(a);g&&(b.requestId=g[1]);let h=f.exec(a);return h&&(b.summary=h[1].trim()),b}},9516:(a,b,c)=>{c.d(b,{Hu:()=>i,Ll:()=>j});let d=["type something","chat about this"],e=/^\s*\[[ xX]\]\s*/,f=/(?:…|\.\.\.)\s*$/,g=new Set(["yes","y","no","n"]);function h(a){return a.replace(e,"").replace(f,"").replace(/\s+/g," ").trim().toLowerCase()}function i(a,b){if("multiple_choice"!==a.type)return null;let c=function(a,b){let c=h(b);if(""===c)return null;let d=a.questions.map((a,b)=>({entry:a,index:b})).filter(({entry:a})=>(function(a,b){let[c,d]=a.length<=b.length?[a,b]:[b,a];return c.length<8?c===d:d.includes(c)})(h(a.question),c));return 1===d.length?d[0]:null}(b,a.question);if(null===c)return null;let{entry:f,index:g}=c,i=new Map(a.options.map(a=>[a.number,a])),j=[];for(let[a,b]of f.choices.entries()){var k;let c=a+1,d=i.get(c);if(!d||!function(a,b){if(""===a||""===b)return!1;if(a===b)return!0;let[c,d]=a.length<=b.length?[a,b]:[b,a];return!(c.length<8)&&d.startsWith(c)}(h(d.label),h(b.label)))return null;j.push({...d,label:`${(k=d.label,e.exec(k)?.[0]??"")}${b.label}`,...b.description?{description:b.description}:{}})}let l=[];for(let b of a.options)!(b.number<=f.choices.length)&&function(a){let b=h(a);return d.some(a=>b===a||b.startsWith(a))}(b.label)&&(j.push(b),l.push(b.number));return j.sort((a,b)=>a.number-b.number),{...a,question:f.question,options:j,isAskUserQuestion:!0,askUserQuestion:{...f.header?{header:f.header}:{},multiSelect:f.multiSelect,questionIndex:g,questionCount:b.questions.length,metaOptionNumbers:l}}}function j(a,b){let c=b.trim();if(/^\d+$/.test(c)){let b=Number.parseInt(c,10);return a.options.some(a=>a.number===b)?{ok:!0,input:String(b)}:{ok:!1,reason:"answer_out_of_range",message:"The option number is outside the range this prompt offers. Use `commandmate capture <worktree-id> --json` to list the current options."}}let d=function(a,b){let c=h(b);if(""===c)return[];let d=a.filter(a=>h(a.label)===c);return d.length>0?d:c.length<2?[]:a.filter(a=>h(a.label).startsWith(c))}(a.options,c);if(1===d.length){let[a]=d;return{ok:!0,input:String(a.number),resolved:{via:"semantic",optionNumber:a.number,optionLabel:a.label}}}return d.length>1?{ok:!1,reason:"unresolvable_answer",message:"The answer matches more than one option label. Answer with an option number."}:a.options.some(a=>!0===a.requiresTextInput)&&!g.has(c.toLowerCase())?{ok:!0,input:b}:{ok:!1,reason:"unresolvable_answer",message:"No option label matches the answer. Answer with an option number (yes/no is not resolved on a numbered picker — Issue #1681)."}}},15388:(a,b,c)=>{c.d(b,{RJ:()=>f,SQ:()=>g});var d=c(24455);let e=globalThis.__toolInputNormalizations??(globalThis.__toolInputNormalizations=new Map);function f(a,b,c,g,h,i=Date.now()){e.set((0,d.v7)(a,b,c),{...g,toolName:h,at:i})}function g(a,b,c){return e.get((0,d.v7)(a,b,c))??null}},16402:(a,b,c)=>{c.d(b,{b1:()=>l,bj:()=>k,r_:()=>h,vm:()=>j});var d=c(74258),e=c(82743);let f=["enforce","legacy"],g={claude:"enforce",codex:"enforce",copilot:"enforce",opencode:"enforce",gemini:"legacy",antigravity:"legacy","vibe-local":"legacy","command-code":"legacy"};function h(a,b,c,d=process.env){let e=i(a,b,c,function(a,b=process.env){let c=b.CM_AUTOYES_DIALOG_GATE,d=null,e=null;if("string"==typeof c&&""!==c.trim())for(let b of c.split(",")){let[c,g]=b.split("=");if(void 0===g)continue;let h=c.trim(),i=g.trim();f.includes(i)&&("*"===h?d=i:h===a&&(e=i))}return e??d??g[a]??"legacy"}(a,d));return{allowed:!e.gated||null!==e.dialog&&"numbered"===e.dialog.answerMode,dialog:e.dialog,mode:e.mode,gated:e.gated}}function i(a,b,c,f){let g=(0,e.bN)(a);if("multiple_choice"!==b||!g.hasDialogRules||"legacy"===f)return{present:!0,dialog:null,mode:f,gated:!1};let h=g.detectDialog((0,d.z)(c));return{present:null!==h,dialog:h,mode:f,gated:!0}}function j(a,b,c){return i(a,b,c,g[a]??"legacy")}let k="unsupported_dialog_layout";function l(a,b){if(a.isPrompt&&b.present)return null;let c=a.promptData;return a.isPrompt&&b.gated&&c?.type==="multiple_choice"&&!0===c.isAskUserQuestion?{reason:k,message:"An AskUserQuestion picker is on screen, but its layout could not be verified as one of the agent's dialogs, so no key was sent. Answer it in the terminal, or retry once the screen has settled."}:{reason:"prompt_no_longer_active"}}},18778:(a,b,c)=>{c.d(b,{T:()=>g});var d=c(56791),e=c(41364);let f=(0,c(72626).h)("conversation-logger");async function g(a,b,c,h="claude"){let i=(0,d.getLastUserMessage)(a,b);if(i)try{await (0,e.hM)(b,i.content,c,h)}catch(a){f.error("conversation:log-failed",{error:a instanceof Error?a.message:String(a)})}}},21684:(a,b,c)=>{c.d(b,{U:()=>h});var d=c(33873),e=c.n(d),f=c(87447),g=c(8004);function h(){let a=e().join(process.cwd(),"data","logs");return(0,g.T)((0,f._p)("CM_LOG_DIR"),a,"CM_LOG_DIR")}},40043:(a,b,c)=>{c.d(b,{AD:()=>k,Q4:()=>g,ox:()=>j,xG:()=>l});var d=c(37717),e=c(48083);let f=new Set([d.g.NO_RECENT_OUTPUT,d.g.UNKNOWN_FRAME,d.g.DEFAULT]);function g(a,b){return"running"===a&&f.has(b)}let h=e.STRUCTURED_STATE_MAX_AGE_MS,i=globalThis.__lastKnownStatusByKey??(globalThis.__lastKnownStatusByKey=new Map);function j(a,b,c=Date.now()){for(let[a,b]of i)c-b.at>=h&&i.delete(a);for(;i.size>512;){let a=i.keys().next();if(a.done)break;i.delete(a.value)}"positive"===b.evidence&&(i.delete(a),i.set(a,{status:b.status,reason:b.reason,at:c}))}function k(a,b=Date.now()){let c=i.get(a);return void 0===c?null:b-c.at>=h?(i.delete(a),null):c}function l(a){i.delete(a)}},41364:(a,b,c)=>{c.d(b,{Gv:()=>o,hM:()=>n});var d=c(79748),e=c.n(d),f=c(33873),g=c.n(f),h=c(1634),i=c(21684),j=c(72626),k=c(15194);function l(a="claude"){return g().join((0,i.U)(),a)}async function m(a="claude"){let b=l(a);try{await e().access(b)}catch{await e().mkdir(b,{recursive:!0})}}async function n(a,b,c,d="claude"){await m(d);let f=function(a,b="claude"){let c=(0,h.GP)(new Date,"yyyy-MM-dd"),d=`${a}-${c}.md`,e=l(b);return g().join(e,d)}(a,d),i=(0,h.GP)(new Date,"yyyy-MM-dd HH:mm:ss"),j="";try{j=await e().readFile(f,"utf-8")}catch{let b=(0,k.hR)(d)?k.ef[d]:d;j=`# ${b} Conversation Log: ${a}
|
|
2
2
|
|
|
3
3
|
Created: ${i}
|
|
4
4
|
|
|
@@ -16,7 +16,7 @@ Created: ${i}
|
|
|
16
16
|
|
|
17
17
|
`,j+=`---
|
|
18
18
|
|
|
19
|
-
`,await e().writeFile(f,j,"utf-8"),f}async function o(a,b="all"){let c="all"===b?[...k.XH]:[b],d=[];for(let b of c){await m(b);let c=l(b);try{let b=(await e().readdir(c)).filter(b=>b.startsWith(`${a}-`)&&b.endsWith(".md")).map(a=>g().join(c,a));d.push(...b)}catch{}}return d.sort().reverse()}(0,j.h)("log-manager")},44321:(a,b,c)=>{c.d(b,{LN:()=>f,XH:()=>g,fL:()=>h});var d=c(24455);let e=globalThis.__promptDedupSkips??(globalThis.__promptDedupSkips=new Map);function f(a,b,c,g=Date.now()){let h=(0,d.v7)(a,b,c),i=e.get(h);e.set(h,{skippedCount:(i?.skippedCount??0)+1,lastSkippedAt:g})}function g(a,b,c){return e.get((0,d.v7)(a,b,c))??{skippedCount:0,lastSkippedAt:null}}function h(a,b,c,f){if(a===b)return;let g=(0,d.v7)(a,c,f),h=e.get(g);e.delete(g),void 0!==h&&e.set((0,d.v7)(b,c,f),h)}},45146:(a,b,c)=>{c.d(b,{Et:()=>y,KQ:()=>A,MN:()=>q,SI:()=>m,fq:()=>z,g8:()=>s,sR:()=>C});var d=c(84297),e=c(72626),f=c(13033),g=c(72457),h=c(71080),i=c(44321),j=c(3523),k=c(99508);let l=(0,e.h)("response-poller"),m=["Waiting for auth","⠋","⠙","⠹","⠸","⠼","⠴","⠦","⠧","⠇","⠏"],n=globalThis.__responsePollerCoordinator??(globalThis.__responsePollerCoordinator={activePollers:new Map,pollingStartTimes:new Map,owners:new Map,running:new Map,pendingRestart:new Map,ownerStorage:new d.AsyncLocalStorage,generationCounter:0,pausedOnPrompt:new Set});n.pausedOnPrompt??=new Set;let o=n.activePollers,p=n.pollingStartTimes;function q(a,b,c){return`${a}:${c??b}`}function r(a){return"opencode"===a||"copilot"===a}function s(a,b,c){let d=q(a,b,c),e={worktreeId:a,cliToolId:b,instanceId:c},f=n.running.get(d);if(f){if(f.owner.superseded=!0,Date.now()-f.since<6e4)return void n.pendingRestart.set(d,e);l.warn("poller:restart-past-stalled-tick",{pollerKey:d,generation:f.owner.generation,runningForMs:Date.now()-f.since}),n.running.delete(d)}t(d,e)}function t(a,b){let c=n.pausedOnPrompt.has(a);x(a,{resume:c}),c&&l.info("poller:resumed-after-prompt",{pollerKey:a}),function(a){let b=q(a.worktreeId,a.cliToolId,a.instanceId);n.pollingStartTimes.set(b,Date.now()),r(a.cliToolId)&&(0,f.tb)(b),u(a.worktreeId,a.cliToolId,a.instanceId)}(b)}function u(a,b,c){let d=q(a,b,c);v({worktreeId:a,cliToolId:b,instanceId:c},function(a){let b=n.owners.get(a);b&&(b.superseded=!0);let c={pollerKey:a,generation:++n.generationCounter,superseded:!1,stopped:!1,selfStopped:!1};return n.owners.set(a,c),c}(d))}function v(a,b){let c=setTimeout(()=>{w(a,b)},2e3);n.activePollers.set(b.pollerKey,c)}async function w(a,b){let c=b.pollerKey;if(!b.superseded&&!b.stopped){n.running.set(c,{owner:b,since:Date.now()});try{let d=n.pollingStartTimes.get(c);if(d&&Date.now()-d>18e5)return void x(c);let e=!1;try{e=await n.ownerStorage.run(b,()=>(0,j.zX)(a.worktreeId,a.cliToolId,a.instanceId))}catch(a){l.error("error:",{error:a instanceof Error?a.message:String(a)})}b.selfStopped&&function(a,b,c){if(c&&!r(b.cliToolId)){n.pausedOnPrompt.add(a.pollerKey),l.info("poller:paused-on-prompt",{pollerKey:a.pollerKey,generation:a.generation});return}(0,h.L1)(a.pollerKey)}(b,a,e),b.superseded||(0,k.broadcastTerminalSnapshot)(a.worktreeId,a.cliToolId,a.instanceId),b.superseded||b.stopped||v(a,b)}finally{n.running.get(c)?.owner===b&&n.running.delete(c);let a=n.pendingRestart.get(c);a&&(n.pendingRestart.delete(c),t(c,a))}}}function x(a,b={}){let c=n.ownerStorage.getStore();if(c&&c.pollerKey===a&&(c.superseded||c.stopped))return void l.info("poller:stale-stop-ignored",{pollerKey:a,generation:c.generation});b.resume||(0,j.Tq)(a,"poller-stopped");let d=n.owners.get(a),e=void 0!==d&&c===d;d&&(d.stopped=!0,d.selfStopped=e,n.owners.delete(a)),n.pendingRestart.delete(a),n.pausedOnPrompt.delete(a);let i=n.activePollers.get(a);i&&(clearTimeout(i),n.activePollers.delete(a),n.pollingStartTimes.delete(a)),(0,f.q1)(a),(0,g.iX)(a),e||b.resume||(0,h.L1)(a)}function y(a,b,c){x(q(a,b,c))}function z(){for(let a of new Set([...Array.from(n.activePollers.keys()),...Array.from(n.owners.keys()),...Array.from(n.pausedOnPrompt)]))x(a);n.pendingRestart.clear(),n.pausedOnPrompt.clear()}function A(){return Array.from(n.activePollers.keys())}function B(a){let b=a.indexOf(":");return b<=0||b===a.length-1?null:{worktreeId:a.slice(0,b),instanceId:a.slice(b+1)}}function C(a,b){let c=new Map;for(let{oldId:b,newId:d}of a)b&&d&&b!==d&&c.set(b,d);if(0===c.size)return[];let d=[],e=[];for(let a of Array.from(o.keys())){let f=B(a);if(!f)continue;let g=c.get(f.worktreeId);if(!g)continue;let h=b(f.worktreeId,f.instanceId);if(!h){e.push(a);continue}d.push({oldKey:a,newKey:q(g,h,f.instanceId),newWorktreeId:g,cliToolId:h,instanceId:f.instanceId})}let j=new Map;for(let a of d){let b=o.get(a.oldKey);b&&clearTimeout(b),o.delete(a.oldKey);let c=n.owners.get(a.oldKey);c&&(c.superseded=!0,c.stopped=!0,n.owners.delete(a.oldKey)),n.pendingRestart.delete(a.oldKey),j.set(a.newKey,{startedAt:p.get(a.oldKey)}),p.delete(a.oldKey),(0,g.i2)(a.oldKey,a.newKey),(0,h.Re)(a.oldKey,a.newKey);let d=B(a.oldKey);d&&(0,i.fL)(d.worktreeId,a.newWorktreeId,a.cliToolId,a.instanceId),(0,f.q1)(a.oldKey)}for(let a of e)x(a),l.warn("poller:migrate-abandoned",{pollerKey:a});for(let a of d){let b=j.get(a.newKey)?.startedAt;p.set(a.newKey,b??Date.now()),r(a.cliToolId)&&(0,f.tb)(a.newKey),u(a.newWorktreeId,a.cliToolId,a.instanceId)}let k=[];for(let a of Array.from(n.pausedOnPrompt)){let b=B(a);if(!b)continue;let d=c.get(b.worktreeId);d&&k.push({oldKey:a,newKey:`${d}:${b.instanceId}`})}for(let a of k)n.pausedOnPrompt.delete(a.oldKey);for(let a of k)(0,h.Re)(a.oldKey,a.newKey),n.pausedOnPrompt.add(a.newKey);return d}},50779:(a,b,c)=>{c.d(b,{GT:()=>m});var d=c(88807),e=c(43167),f=c(73753),g=c(72626),h=c(57836),i=c(4806),j=c(61191),k=c(27519);let l=(0,g.h)("push/resolution");async function m(a){let{worktreeId:b,agentName:c,at:g=Date.now()}=a,m=function(a,b=Date.now()){let c;if(!(0,k.lU)())return{send:!1,reason:"push-unconfigured"};if(!(0,i.r0)(a,b))return{send:!1,reason:"no-card"};if((0,h.Te)(a))return{send:!1,reason:"still-waiting"};try{c=(0,e.rC)((0,d.getDbInstance)(),"prompt")}catch{return{send:!1,reason:"single-device",deviceCount:0}}return c<2?{send:!1,reason:"single-device",deviceCount:c}:{send:!0,reason:"cross-device-clear",deviceCount:c}}(b,g),n={worktreeId:b,instanceId:c,reason:m.reason,...void 0!==m.deviceCount?{deviceCount:m.deviceCount}:{}};if("still-waiting"!==m.reason&&(0,i._P)(b),!m.send)return void("single-device"===m.reason?l.info("resolution-push-skipped",n):l.debug("resolution-push-skipped",n));try{await (0,j.notifyPushSubscribers)({worktreeId:b,worktreeName:function(a){try{return(0,f.getWorktreeById)((0,d.getDbInstance)(),a)?.name??a}catch{return a}}(b),kind:"prompt",agentName:c,resolved:!0},g),l.info("resolution-push-sent",n)}catch(a){l.warn("resolution-push-failed",{...n,error:a instanceof Error?a.message:String(a)})}}},52277:(a,b,c)=>{c.d(b,{ZS:()=>f,gb:()=>g});var d=c(24455);let e=globalThis.__autoYesPolicySuppressions??(globalThis.__autoYesPolicySuppressions=new Map);function f(a,b,c,g,h=Date.now()){e.set((0,d.v7)(a,b,c),{...g,at:h})}function g(a,b,c){return e.get((0,d.v7)(a,b,c))??null}},63209:(a,b,c)=>{c.d(b,{bT:()=>g});var d=c(51297),e=c(76777);let f=[{id:"overloaded",pattern:/\b5\d{2}\s+Overloaded\b/i,selfRetrying:!0},{id:"retrying",pattern:/Retrying in \d+s\s*[·•]\s*attempt \d+\/\d+/i,selfRetrying:!0},{id:"limit-reached",pattern:/\blimit reached\b/i,selfRetrying:!1},{id:"api-error",pattern:/\bAPI Error(?::|\s+\d{3})/i,selfRetrying:!1}];function g(a){let b=(0,d.aJ)(a);for(let a of f){var c;let d=a.pattern.exec(b);if(!d)continue;let f=b.lastIndexOf("\n",d.index)+1,g=b.indexOf("\n",d.index);return{fault:a,matchedText:(c=b.slice(f,-1===g?void 0:g).trim()||d[0],(0,e.D)(c,200,"…[truncated]"))}}return null}},63869:(a,b,c)=>{c.d(b,{Pw:()=>l,tV:()=>p});var d=c(79892),e=c(74258),f=c(5142),g=c(81254),h=c(93997),i=c(20610);let j=/^\[[ x]\] /,k="answer_mode_keys";class l extends Error{constructor(a,b,c){super(`Refused to send "${b}" to ${a}: its ${c.kind} dialog takes '${c.answerMode}' input, not a typed number (${k}). The digit would be swallowed and the Enter after it would confirm whatever is highlighted. Nothing was sent.`),this.name="PromptAnswerRejectedError",this.reason=k,this.dialogKind=c.kind,this.answerMode=c.answerMode}}async function m(a){if(void 0!==a.frame)return a.frame;try{return await (0,d.Xg)(a.sessionName,200)}catch{return null}}async function n(a){if(!/^\d+$/.test(a.answer))return;let b=(0,f.bN)(a.cliToolId);if(!b.hasDialogRules)return;let c=await m(a);if(null===c)return;let d=b.detectDialog((0,e.z)(c));if(null!==d&&"numbered"!==d.answerMode)throw new l(a.cliToolId,a.answer,d)}function o(a){if(0===a)return[];let b=a>0?"Down":"Up";return Array.from({length:Math.abs(a)},()=>b)}async function p(a){let{sessionName:b,answer:c,cliToolId:e,promptData:f,fallbackPromptType:k,fallbackDefaultOptionNumber:l}=a;if(await n(a),("claude"===e||"antigravity"===e)&&(f?.type==="multiple_choice"||"multiple_choice"===k)&&/^\d+$/.test(c)){let a,e=parseInt(c,10),g=null;if(f?.type==="multiple_choice"){let b=(g=f.options).find(a=>a.isDefault);a=b?.number??1}else a=l??1;let h=e-a;if(null!==g&&g.some(a=>j.test(a.label))&&null!==g){let a=g.filter(a=>j.test(a.label)).length,c=[...o(h),"Space"];c.push(...o(a-e+1)),c.push("Enter"),await (0,d.KB)(b,c)}else{let a=o(h),c=f?.type==="multiple_choice"&&!0===f.isAskUserQuestion&&0===h?["Down","Up","Enter"]:[...a,"Enter"];await (0,d.KB)(b,c)}}else{await (0,d.V1)(b,c,!1);let e=function(a){let b=(a.promptData?.type==="multiple_choice"?a.promptData.submitMode:void 0)??a.fallbackSubmitMode??"answer_then_enter";return(0,g.MI)(b)?b:"answer_then_enter"}(a);"answer_only"===e&&(a.promptData?.type==="multiple_choice"||"multiple_choice"===a.fallbackPromptType)&&/^\d+$/.test(a.answer)||(await new Promise(a=>setTimeout(a,i.pL)),await (0,d.V1)(b,"",!0))}(0,h.gm)(b)}},71080:(a,b,c)=>{c.d(b,{L1:()=>k,Pe:()=>h,Re:()=>l,j7:()=>g,oE:()=>i,pN:()=>j});var d=c(55511);let e=globalThis.__responseHashCache??(globalThis.__responseHashCache=new Map),f=globalThis.__structuredHistoryRecheckCache??(globalThis.__structuredHistoryRecheckCache=new Map);function g(a,b){let c=(0,d.createHash)("sha256").update(b).digest("hex");return e.get(a)===c||(e.set(a,c),!1)}function h(a){f.has(a)||f.set(a,0)}function i(a){f.delete(a)}function j(a){let b=f.get(a);return void 0!==b&&(b>0?(f.set(a,b-1),!1):(f.set(a,2),!0))}function k(a){e.delete(a),f.delete(a)}function l(a,b){if(a===b)return;let c=e.get(a);e.delete(a),void 0!==c&&e.set(b,c);let d=f.get(a);f.delete(a),void 0!==d&&f.set(b,d)}},72457:(a,b,c)=>{c.d(b,{gv:()=>f,i2:()=>h,iX:()=>g,zm:()=>i});var d=c(55511);let e=globalThis.__promptHashCache??(globalThis.__promptHashCache=new Map);function f(a,b){let c=(0,d.createHash)("sha256").update(b).digest("hex");return e.get(a)===c||(e.set(a,c),!1)}function g(a){e.delete(a)}function h(a,b){if(a===b)return;let c=e.get(a);e.delete(a),void 0!==c&&e.set(b,c)}function i(a,b){return"copilot"!==b?a:a.replace(/^[❯>]\s/gm," ")}},73478:(a,b,c)=>{c.d(b,{I7:()=>u});var d=c(24455),e=c(88807),f=c(73753),g=c(72626),h=c(57836),i=c(80544),j=c(92010),k=c(61191),l=c(50779),m=c(27519);let n=(0,g.h)("push/waiting-notifier"),o=globalThis.__waitingPushPending??(globalThis.__waitingPushPending=new Map),p=globalThis.__waitingPushGraceTimers??(globalThis.__waitingPushGraceTimers=new Map);async function q(a,b,c){let d=a.instanceId??a.cliToolId;try{await (0,k.notifyPushSubscribers)({worktreeId:a.worktreeId,worktreeName:function(a){try{return(0,f.getWorktreeById)((0,e.getDbInstance)(),a)?.name??a}catch{return a}}(a.worktreeId),kind:"prompt",agentName:d,instanceId:d,waitingKind:a.kind,waitingSince:a.since,escalated:b},c)}catch(c){n.warn("waiting-push-failed",{worktreeId:a.worktreeId,instanceId:d,escalated:b,error:c instanceof Error?c.message:String(c)})}}function r(a){let b=p.get(a);void 0!==b&&(clearTimeout(b),p.delete(a))}function s(a,b){(0,j.R)({worktreeId:a.worktreeId,cliToolId:a.cliToolId,instanceId:a.instanceId,waitingSince:a.since})||q(a,!1,b)}function t(){if(o.size>0)return;let a=globalThis.__waitingPushEscalationTimer;void 0!==a&&(clearInterval(a),globalThis.__waitingPushEscalationTimer=void 0)}function u(){let a=globalThis.__waitingPushUnsubscribe;for(let b of(a&&(a(),globalThis.__waitingPushUnsubscribe=void 0),p.values()))clearTimeout(b);p.clear(),o.clear(),t();let b=(0,h.wN)(a=>{!function(a){var b;if(!(0,m.lU)())return;let c=(0,d.v7)(a.worktreeId,a.cliToolId,a.instanceId);if(!a.waiting||null===a.since){r(c),o.delete(c),t(),(0,l.GT)({worktreeId:a.worktreeId,agentName:a.instanceId??a.cliToolId,at:a.at});return}let e={worktreeId:a.worktreeId,cliToolId:a.cliToolId,instanceId:a.instanceId,since:a.since,kind:a.kind};if(o.set(c,e),!function(){if(void 0!==globalThis.__waitingPushEscalationTimer)return;let a=setInterval(()=>{!function(a=Date.now()){if(0===o.size)return t();let b=(0,i.rS)(),c=6e4*b.thresholdMinutes;for(let[d,e]of Array.from(o)){let f=(0,h.Jp)(e.worktreeId,e.cliToolId,e.instanceId);if(null===f||f.since!==e.since){o.delete(d);continue}b.enabled&&!(a-e.since<c)&&((0,j.R)({worktreeId:e.worktreeId,cliToolId:e.cliToolId,instanceId:e.instanceId,waitingSince:e.since,escalated:!0})||(o.delete(d),q({...e,kind:f.kind??e.kind},!0,a)))}t()}()},6e4);a.unref?.(),globalThis.__waitingPushEscalationTimer=a}(),null==(b=e.kind)||"unclassified"===b){r(c);let a=setTimeout(()=>{!function(a){p.delete(a);let b=o.get(a);if(void 0===b)return;let c=(0,h.Jp)(b.worktreeId,b.cliToolId,b.instanceId);if(null===c||c.since!==b.since){o.delete(a),t();return}let d={...b,kind:c.kind};o.set(a,d),s(d,Date.now())}(c)},8e3);a.unref?.(),p.set(c,a);return}s(e,a.at)}(a)});return globalThis.__waitingPushUnsubscribe=b,b}},75498:(a,b,c)=>{c.d(b,{Lj:()=>f,Tb:()=>e,sD:()=>g});var d=c(68901);let e=2e4;function f(a,b,c){if(!c)return null;if("off"===c.mode)return{reason:"mode-off"};let f=function(a,b){if(0===b.length)return{outcome:"no-match"};let c=a.map(a=>a.length>e?a.slice(0,e):a);for(let a of b){if(a.length>200||!(0,d.P0)(a).valid)return{outcome:"unusable",pattern:a};let b=new RegExp(a);for(let e of c){let c=(0,d.eJ)(b,e);if(null===c)return{outcome:"unusable",pattern:a};if(c)return{outcome:"match",pattern:a}}}return{outcome:"no-match"}}(b,c.denyPatterns);return"match"===f.outcome?{reason:"deny-pattern",pattern:f.pattern}:"unusable"===f.outcome?{reason:"deny-pattern-unusable",pattern:f.pattern}:"safe"===c.mode?"yes_no"===a?null:{reason:"type-not-allowed"}:"allow-listed"===c.mode?c.allowPromptTypes.includes(a)?null:{reason:"type-not-allowed"}:null}function g(a,b){let c=function(a){if("yes_no"===a.type)return"y";if("multiple_choice"===a.type){let b=a.options.find(a=>a.isDefault)??a.options[0];return!b||b.requiresTextInput?null:b.number.toString()}return null}(a);if(null===c)return{answer:null,suppressedBy:null};let d=f(a.type,function(a){let b=[a.question];if(a.approvalTarget&&b.push(a.approvalTarget),"multiple_choice"===a.type)for(let c of a.options)b.push(c.label);else b.push(...a.options);return b}(a),b);return d?{answer:null,suppressedBy:d.reason,pattern:d.pattern}:{answer:c,suppressedBy:null}}},80544:(a,b,c)=>{c.d(b,{Di:()=>h,O$:()=>g,d7:()=>k,rS:()=>j});var d=c(88807);let e=(0,c(72626).h)("push/escalation-settings"),f="push_escalation",g={enabled:!0,thresholdMinutes:10},h=[5,10,30,60];function i(a){if("object"!=typeof a||null===a)return{...g};let b="boolean"==typeof a.enabled?a.enabled:g.enabled,c=a.thresholdMinutes;return{enabled:b,thresholdMinutes:"number"==typeof c&&Number.isFinite(c)&&c>=1&&c<=1440?Math.round(c):g.thresholdMinutes}}function j(){try{let a=(0,d.getDbInstance)().prepare("SELECT value FROM app_settings WHERE key = ?").get(f);if(!a)return{...g};return i(JSON.parse(a.value))}catch(a){return e.warn("escalation-settings-read-failed",{error:a instanceof Error?a.message:String(a)}),{...g}}}function k(a){let b=i(a),c=Date.now();return(0,d.getDbInstance)().prepare(`
|
|
19
|
+
`,await e().writeFile(f,j,"utf-8"),f}async function o(a,b="all"){let c="all"===b?[...k.XH]:[b],d=[];for(let b of c){await m(b);let c=l(b);try{let b=(await e().readdir(c)).filter(b=>b.startsWith(`${a}-`)&&b.endsWith(".md")).map(a=>g().join(c,a));d.push(...b)}catch{}}return d.sort().reverse()}(0,j.h)("log-manager")},44321:(a,b,c)=>{c.d(b,{LN:()=>f,XH:()=>g,fL:()=>h});var d=c(24455);let e=globalThis.__promptDedupSkips??(globalThis.__promptDedupSkips=new Map);function f(a,b,c,g=Date.now()){let h=(0,d.v7)(a,b,c),i=e.get(h);e.set(h,{skippedCount:(i?.skippedCount??0)+1,lastSkippedAt:g})}function g(a,b,c){return e.get((0,d.v7)(a,b,c))??{skippedCount:0,lastSkippedAt:null}}function h(a,b,c,f){if(a===b)return;let g=(0,d.v7)(a,c,f),h=e.get(g);e.delete(g),void 0!==h&&e.set((0,d.v7)(b,c,f),h)}},45146:(a,b,c)=>{c.d(b,{Et:()=>y,KQ:()=>A,MN:()=>q,SI:()=>m,fq:()=>z,g8:()=>s,sR:()=>C});var d=c(84297),e=c(72626),f=c(13033),g=c(72457),h=c(71080),i=c(44321),j=c(3523),k=c(99508);let l=(0,e.h)("response-poller"),m=["Waiting for auth","⠋","⠙","⠹","⠸","⠼","⠴","⠦","⠧","⠇","⠏"],n=globalThis.__responsePollerCoordinator??(globalThis.__responsePollerCoordinator={activePollers:new Map,pollingStartTimes:new Map,owners:new Map,running:new Map,pendingRestart:new Map,ownerStorage:new d.AsyncLocalStorage,generationCounter:0,pausedOnPrompt:new Set});n.pausedOnPrompt??=new Set;let o=n.activePollers,p=n.pollingStartTimes;function q(a,b,c){return`${a}:${c??b}`}function r(a){return"opencode"===a||"copilot"===a}function s(a,b,c){let d=q(a,b,c),e={worktreeId:a,cliToolId:b,instanceId:c},f=n.running.get(d);if(f){if(f.owner.superseded=!0,Date.now()-f.since<6e4)return void n.pendingRestart.set(d,e);l.warn("poller:restart-past-stalled-tick",{pollerKey:d,generation:f.owner.generation,runningForMs:Date.now()-f.since}),n.running.delete(d)}t(d,e)}function t(a,b){let c=n.pausedOnPrompt.has(a);x(a,{resume:c}),c&&l.info("poller:resumed-after-prompt",{pollerKey:a}),function(a){let b=q(a.worktreeId,a.cliToolId,a.instanceId);n.pollingStartTimes.set(b,Date.now()),r(a.cliToolId)&&(0,f.tb)(b),u(a.worktreeId,a.cliToolId,a.instanceId)}(b)}function u(a,b,c){let d=q(a,b,c);v({worktreeId:a,cliToolId:b,instanceId:c},function(a){let b=n.owners.get(a);b&&(b.superseded=!0);let c={pollerKey:a,generation:++n.generationCounter,superseded:!1,stopped:!1,selfStopped:!1};return n.owners.set(a,c),c}(d))}function v(a,b){let c=setTimeout(()=>{w(a,b)},2e3);n.activePollers.set(b.pollerKey,c)}async function w(a,b){let c=b.pollerKey;if(!b.superseded&&!b.stopped){n.running.set(c,{owner:b,since:Date.now()});try{let d=n.pollingStartTimes.get(c);if(d&&Date.now()-d>18e5)return void x(c);let e=!1;try{e=await n.ownerStorage.run(b,()=>(0,j.zX)(a.worktreeId,a.cliToolId,a.instanceId))}catch(a){l.error("error:",{error:a instanceof Error?a.message:String(a)})}b.selfStopped&&function(a,b,c){if(c&&!r(b.cliToolId)){n.pausedOnPrompt.add(a.pollerKey),l.info("poller:paused-on-prompt",{pollerKey:a.pollerKey,generation:a.generation});return}(0,h.L1)(a.pollerKey)}(b,a,e),b.superseded||(0,k.broadcastTerminalSnapshot)(a.worktreeId,a.cliToolId,a.instanceId),b.superseded||b.stopped||v(a,b)}finally{n.running.get(c)?.owner===b&&n.running.delete(c);let a=n.pendingRestart.get(c);a&&(n.pendingRestart.delete(c),t(c,a))}}}function x(a,b={}){let c=n.ownerStorage.getStore();if(c&&c.pollerKey===a&&(c.superseded||c.stopped))return void l.info("poller:stale-stop-ignored",{pollerKey:a,generation:c.generation});b.resume||(0,j.Tq)(a,"poller-stopped");let d=n.owners.get(a),e=void 0!==d&&c===d;d&&(d.stopped=!0,d.selfStopped=e,n.owners.delete(a)),n.pendingRestart.delete(a),n.pausedOnPrompt.delete(a);let i=n.activePollers.get(a);i&&(clearTimeout(i),n.activePollers.delete(a),n.pollingStartTimes.delete(a)),(0,f.q1)(a),(0,g.iX)(a),e||b.resume||(0,h.L1)(a)}function y(a,b,c){x(q(a,b,c))}function z(){for(let a of new Set([...Array.from(n.activePollers.keys()),...Array.from(n.owners.keys()),...Array.from(n.pausedOnPrompt)]))x(a);n.pendingRestart.clear(),n.pausedOnPrompt.clear()}function A(){return Array.from(n.activePollers.keys())}function B(a){let b=a.indexOf(":");return b<=0||b===a.length-1?null:{worktreeId:a.slice(0,b),instanceId:a.slice(b+1)}}function C(a,b){let c=new Map;for(let{oldId:b,newId:d}of a)b&&d&&b!==d&&c.set(b,d);if(0===c.size)return[];let d=[],e=[];for(let a of Array.from(o.keys())){let f=B(a);if(!f)continue;let g=c.get(f.worktreeId);if(!g)continue;let h=b(f.worktreeId,f.instanceId);if(!h){e.push(a);continue}d.push({oldKey:a,newKey:q(g,h,f.instanceId),newWorktreeId:g,cliToolId:h,instanceId:f.instanceId})}let j=new Map;for(let a of d){let b=o.get(a.oldKey);b&&clearTimeout(b),o.delete(a.oldKey);let c=n.owners.get(a.oldKey);c&&(c.superseded=!0,c.stopped=!0,n.owners.delete(a.oldKey)),n.pendingRestart.delete(a.oldKey),j.set(a.newKey,{startedAt:p.get(a.oldKey)}),p.delete(a.oldKey),(0,g.i2)(a.oldKey,a.newKey),(0,h.Re)(a.oldKey,a.newKey);let d=B(a.oldKey);d&&(0,i.fL)(d.worktreeId,a.newWorktreeId,a.cliToolId,a.instanceId),(0,f.q1)(a.oldKey)}for(let a of e)x(a),l.warn("poller:migrate-abandoned",{pollerKey:a});for(let a of d){let b=j.get(a.newKey)?.startedAt;p.set(a.newKey,b??Date.now()),r(a.cliToolId)&&(0,f.tb)(a.newKey),u(a.newWorktreeId,a.cliToolId,a.instanceId)}let k=[];for(let a of Array.from(n.pausedOnPrompt)){let b=B(a);if(!b)continue;let d=c.get(b.worktreeId);d&&k.push({oldKey:a,newKey:`${d}:${b.instanceId}`})}for(let a of k)n.pausedOnPrompt.delete(a.oldKey);for(let a of k)(0,h.Re)(a.oldKey,a.newKey),n.pausedOnPrompt.add(a.newKey);return d}},50779:(a,b,c)=>{c.d(b,{GT:()=>m});var d=c(88807),e=c(43167),f=c(73753),g=c(72626),h=c(57836),i=c(4806),j=c(61191),k=c(27519);let l=(0,g.h)("push/resolution");async function m(a){let{worktreeId:b,agentName:c,at:g=Date.now()}=a,m=function(a,b=Date.now()){let c;if(!(0,k.lU)())return{send:!1,reason:"push-unconfigured"};if(!(0,i.r0)(a,b))return{send:!1,reason:"no-card"};if((0,h.Te)(a))return{send:!1,reason:"still-waiting"};try{c=(0,e.rC)((0,d.getDbInstance)(),"prompt")}catch{return{send:!1,reason:"single-device",deviceCount:0}}return c<2?{send:!1,reason:"single-device",deviceCount:c}:{send:!0,reason:"cross-device-clear",deviceCount:c}}(b,g),n={worktreeId:b,instanceId:c,reason:m.reason,...void 0!==m.deviceCount?{deviceCount:m.deviceCount}:{}};if("still-waiting"!==m.reason&&(0,i._P)(b),!m.send)return void("single-device"===m.reason?l.info("resolution-push-skipped",n):l.debug("resolution-push-skipped",n));try{await (0,j.notifyPushSubscribers)({worktreeId:b,worktreeName:function(a){try{return(0,f.getWorktreeById)((0,d.getDbInstance)(),a)?.name??a}catch{return a}}(b),kind:"prompt",agentName:c,resolved:!0},g),l.info("resolution-push-sent",n)}catch(a){l.warn("resolution-push-failed",{...n,error:a instanceof Error?a.message:String(a)})}}},52277:(a,b,c)=>{c.d(b,{ZS:()=>f,gb:()=>g});var d=c(24455);let e=globalThis.__autoYesPolicySuppressions??(globalThis.__autoYesPolicySuppressions=new Map);function f(a,b,c,g,h=Date.now()){e.set((0,d.v7)(a,b,c),{...g,at:h})}function g(a,b,c){return e.get((0,d.v7)(a,b,c))??null}},63209:(a,b,c)=>{c.d(b,{bT:()=>g});var d=c(51297),e=c(76777);let f=[{id:"overloaded",pattern:/\b5\d{2}\s+Overloaded\b/i,selfRetrying:!0},{id:"retrying",pattern:/Retrying in \d+s\s*[·•]\s*attempt \d+\/\d+/i,selfRetrying:!0},{id:"limit-reached",pattern:/\blimit reached\b/i,selfRetrying:!1},{id:"api-error",pattern:/\bAPI Error(?::|\s+\d{3})/i,selfRetrying:!1}];function g(a){let b=(0,d.aJ)(a);for(let a of f){var c;let d=a.pattern.exec(b);if(!d)continue;let f=b.lastIndexOf("\n",d.index)+1,g=b.indexOf("\n",d.index);return{fault:a,matchedText:(c=b.slice(f,-1===g?void 0:g).trim()||d[0],(0,e.D)(c,200,"…[truncated]"))}}return null}},63869:(a,b,c)=>{c.d(b,{It:()=>p,Pw:()=>m,if:()=>o,tV:()=>t});var d=c(79892),e=c(74258),f=c(82743),g=c(69119),h=c(81254),i=c(93997),j=c(20610);let k=/^\[[ x]\] /,l="answer_mode_keys";class m extends Error{constructor(a,b,c){super(`Refused to send "${b}" to ${a}: its ${c.kind} dialog takes '${c.answerMode}' input, not a typed number (${l}). The digit would be swallowed and the Enter after it would confirm whatever is highlighted. Nothing was sent.`),this.name="PromptAnswerRejectedError",this.reason=l,this.dialogKind=c.kind,this.answerMode=c.answerMode}}let n="unresolvable_answer";class o extends Error{constructor(a,b,c){super(function(a,b,c){let d=b.join(", ");return void 0===c?`Refused to type free text at ${a}'s prompt: option ${d} reads as taking your own words, but on this screen it is a menu row, not a text field. The text would be ignored and the Enter after it would confirm whatever is highlighted. Nothing was sent. Answer with the option number, then send the instructions as a message.`:`Refused to type free text at ${a}'s prompt: option ${d} is the text field on this screen, but the cursor is on option ${c.cursorOptionNumber}. The text would be ignored and the Enter after it would confirm option ${c.cursorOptionNumber}. Nothing was sent. Move the cursor onto the text field in the terminal and send the text again — sending its option number does not move the cursor, it selects nothing.`}(a,b,c)),this.name="FreeTextAnswerRejectedError",this.reason=n,this.optionNumbers=b,this.kind=c?.kind??"menu_row",this.cursorOptionNumber=c?.cursorOptionNumber??null}}class p extends Error{constructor(a,b){super(`Refused to type free text at ${a}'s prompt: none of its ${b} options is a text field on this screen, so the text would be ignored and the Enter after it would confirm whatever is highlighted. Nothing was sent. Answer with the option number instead, then send your instructions as a separate message.`),this.name="FreeTextAtChoiceOnlyPromptError",this.reason=n,this.optionCount=b}}async function q(a){if(void 0!==a.frame)return a.frame;try{return await (0,d.Xg)(a.sessionName,200)}catch{return null}}async function r(a){if(!/^\d+$/.test(a.answer))return null;let b=(0,f.bN)(a.cliToolId);if(!b.hasDialogRules)return null;let c=await q(a);if(null===c)return null;let d=b.detectDialog((0,e.z)(c));if(null===d)return null;if("numbered"===d.answerMode)return d;throw new m(a.cliToolId,a.answer,d)}function s(a){if(0===a)return[];let b=a>0?"Down":"Up";return Array.from({length:Math.abs(a)},()=>b)}async function t(a){let{sessionName:b,answer:c,cliToolId:e,promptData:f,fallbackPromptType:l,fallbackDefaultOptionNumber:m}=a,n=await r(a);if(!function(a){if(/^\d+$/.test(a.answer))return;let{promptData:b}=a;if(b?.type!=="multiple_choice"||0===b.options.length)return;let c=b.options.filter(a=>!0===a.requiresTextInput);if(0===c.length)throw new p(a.cliToolId,b.options.length);if(!c.some(g.J0))throw new o(a.cliToolId,c.map(a=>a.number))}(a),!function(a){if(/^\d+$/.test(a.answer))return;let{promptData:b}=a;if(b?.type!=="multiple_choice")return;let c=b.options.filter(g.J0);if(0===c.length)return;let d=b.options.find(a=>!0===a.isDefault);if(void 0!==d&&!(0,g.J0)(d))throw new o(a.cliToolId,c.map(a=>a.number),{kind:"cursor_elsewhere",cursorOptionNumber:d.number})}(a),("claude"===e||"antigravity"===e)&&(f?.type==="multiple_choice"||"multiple_choice"===l)&&/^\d+$/.test(c)){let a,e=parseInt(c,10),g=null;if(f?.type==="multiple_choice"){let b=(g=f.options).find(a=>a.isDefault);a=b?.number??1}else a=m??1;let h=e-a;if(null!==g&&g.some(a=>k.test(a.label))&&null!==g){let a=g.filter(a=>k.test(a.label)).length,c=[...s(h),"Space"];c.push(...s(a-e+1)),c.push("Enter"),await (0,d.KB)(b,c)}else{let a=s(h),c=f?.type==="multiple_choice"&&!0===f.isAskUserQuestion&&0===h?["Down","Up","Enter"]:[...a,"Enter"];await (0,d.KB)(b,c)}}else{await (0,d.V1)(b,c,!1);let e=function(a,b){let c=a.promptData?.type==="multiple_choice"?a.promptData.submitMode:void 0,d=b?.submitMode??c??a.fallbackSubmitMode??"answer_then_enter";return(0,h.MI)(d)?d:"answer_then_enter"}(a,n);"answer_only"===e&&(null!==n||a.promptData?.type==="multiple_choice"||"multiple_choice"===a.fallbackPromptType)&&/^\d+$/.test(a.answer)||(await new Promise(a=>setTimeout(a,j.pL)),await (0,d.V1)(b,"",!0))}(0,i.gm)(b)}},71080:(a,b,c)=>{c.d(b,{L1:()=>k,Pe:()=>h,Re:()=>l,j7:()=>g,oE:()=>i,pN:()=>j});var d=c(55511);let e=globalThis.__responseHashCache??(globalThis.__responseHashCache=new Map),f=globalThis.__structuredHistoryRecheckCache??(globalThis.__structuredHistoryRecheckCache=new Map);function g(a,b){let c=(0,d.createHash)("sha256").update(b).digest("hex");return e.get(a)===c||(e.set(a,c),!1)}function h(a){f.has(a)||f.set(a,0)}function i(a){f.delete(a)}function j(a){let b=f.get(a);return void 0!==b&&(b>0?(f.set(a,b-1),!1):(f.set(a,2),!0))}function k(a){e.delete(a),f.delete(a)}function l(a,b){if(a===b)return;let c=e.get(a);e.delete(a),void 0!==c&&e.set(b,c);let d=f.get(a);f.delete(a),void 0!==d&&f.set(b,d)}},72457:(a,b,c)=>{c.d(b,{gv:()=>f,i2:()=>h,iX:()=>g,zm:()=>i});var d=c(55511);let e=globalThis.__promptHashCache??(globalThis.__promptHashCache=new Map);function f(a,b){let c=(0,d.createHash)("sha256").update(b).digest("hex");return e.get(a)===c||(e.set(a,c),!1)}function g(a){e.delete(a)}function h(a,b){if(a===b)return;let c=e.get(a);e.delete(a),void 0!==c&&e.set(b,c)}function i(a,b){return"copilot"!==b?a:a.replace(/^[❯>]\s/gm," ")}},73478:(a,b,c)=>{c.d(b,{I7:()=>u});var d=c(24455),e=c(88807),f=c(73753),g=c(72626),h=c(57836),i=c(80544),j=c(92010),k=c(61191),l=c(50779),m=c(27519);let n=(0,g.h)("push/waiting-notifier"),o=globalThis.__waitingPushPending??(globalThis.__waitingPushPending=new Map),p=globalThis.__waitingPushGraceTimers??(globalThis.__waitingPushGraceTimers=new Map);async function q(a,b,c){let d=a.instanceId??a.cliToolId;try{await (0,k.notifyPushSubscribers)({worktreeId:a.worktreeId,worktreeName:function(a){try{return(0,f.getWorktreeById)((0,e.getDbInstance)(),a)?.name??a}catch{return a}}(a.worktreeId),kind:"prompt",agentName:d,instanceId:d,waitingKind:a.kind,waitingSince:a.since,escalated:b},c)}catch(c){n.warn("waiting-push-failed",{worktreeId:a.worktreeId,instanceId:d,escalated:b,error:c instanceof Error?c.message:String(c)})}}function r(a){let b=p.get(a);void 0!==b&&(clearTimeout(b),p.delete(a))}function s(a,b){(0,j.R)({worktreeId:a.worktreeId,cliToolId:a.cliToolId,instanceId:a.instanceId,waitingSince:a.since})||q(a,!1,b)}function t(){if(o.size>0)return;let a=globalThis.__waitingPushEscalationTimer;void 0!==a&&(clearInterval(a),globalThis.__waitingPushEscalationTimer=void 0)}function u(){let a=globalThis.__waitingPushUnsubscribe;for(let b of(a&&(a(),globalThis.__waitingPushUnsubscribe=void 0),p.values()))clearTimeout(b);p.clear(),o.clear(),t();let b=(0,h.wN)(a=>{!function(a){var b;if(!(0,m.lU)())return;let c=(0,d.v7)(a.worktreeId,a.cliToolId,a.instanceId);if(!a.waiting||null===a.since){r(c),o.delete(c),t(),(0,l.GT)({worktreeId:a.worktreeId,agentName:a.instanceId??a.cliToolId,at:a.at});return}let e={worktreeId:a.worktreeId,cliToolId:a.cliToolId,instanceId:a.instanceId,since:a.since,kind:a.kind};if(o.set(c,e),!function(){if(void 0!==globalThis.__waitingPushEscalationTimer)return;let a=setInterval(()=>{!function(a=Date.now()){if(0===o.size)return t();let b=(0,i.rS)(),c=6e4*b.thresholdMinutes;for(let[d,e]of Array.from(o)){let f=(0,h.Jp)(e.worktreeId,e.cliToolId,e.instanceId);if(null===f||f.since!==e.since){o.delete(d);continue}b.enabled&&!(a-e.since<c)&&((0,j.R)({worktreeId:e.worktreeId,cliToolId:e.cliToolId,instanceId:e.instanceId,waitingSince:e.since,escalated:!0})||(o.delete(d),q({...e,kind:f.kind??e.kind},!0,a)))}t()}()},6e4);a.unref?.(),globalThis.__waitingPushEscalationTimer=a}(),null==(b=e.kind)||"unclassified"===b){r(c);let a=setTimeout(()=>{!function(a){p.delete(a);let b=o.get(a);if(void 0===b)return;let c=(0,h.Jp)(b.worktreeId,b.cliToolId,b.instanceId);if(null===c||c.since!==b.since){o.delete(a),t();return}let d={...b,kind:c.kind};o.set(a,d),s(d,Date.now())}(c)},8e3);a.unref?.(),p.set(c,a);return}s(e,a.at)}(a)});return globalThis.__waitingPushUnsubscribe=b,b}},75498:(a,b,c)=>{c.d(b,{Lj:()=>f,Tb:()=>e,sD:()=>g});var d=c(68901);let e=2e4;function f(a,b,c){if(!c)return null;if("off"===c.mode)return{reason:"mode-off"};let f=function(a,b){if(0===b.length)return{outcome:"no-match"};let c=a.map(a=>a.length>e?a.slice(0,e):a);for(let a of b){if(a.length>200||!(0,d.P0)(a).valid)return{outcome:"unusable",pattern:a};let b=new RegExp(a);for(let e of c){let c=(0,d.eJ)(b,e);if(null===c)return{outcome:"unusable",pattern:a};if(c)return{outcome:"match",pattern:a}}}return{outcome:"no-match"}}(b,c.denyPatterns);return"match"===f.outcome?{reason:"deny-pattern",pattern:f.pattern}:"unusable"===f.outcome?{reason:"deny-pattern-unusable",pattern:f.pattern}:"safe"===c.mode?"yes_no"===a?null:{reason:"type-not-allowed"}:"allow-listed"===c.mode?c.allowPromptTypes.includes(a)?null:{reason:"type-not-allowed"}:null}function g(a,b){let c=function(a){if("yes_no"===a.type)return"y";if("multiple_choice"===a.type){let b=a.options.find(a=>a.isDefault)??a.options[0];return!b||b.requiresTextInput?null:b.number.toString()}return null}(a);if(null===c)return{answer:null,suppressedBy:null};let d=f(a.type,function(a){let b=[a.question];if(a.approvalTarget&&b.push(a.approvalTarget),"multiple_choice"===a.type)for(let c of a.options)b.push(c.label);else b.push(...a.options);return b}(a),b);return d?{answer:null,suppressedBy:d.reason,pattern:d.pattern}:{answer:c,suppressedBy:null}}},80544:(a,b,c)=>{c.d(b,{Di:()=>h,O$:()=>g,d7:()=>k,rS:()=>j});var d=c(88807);let e=(0,c(72626).h)("push/escalation-settings"),f="push_escalation",g={enabled:!0,thresholdMinutes:10},h=[5,10,30,60];function i(a){if("object"!=typeof a||null===a)return{...g};let b="boolean"==typeof a.enabled?a.enabled:g.enabled,c=a.thresholdMinutes;return{enabled:b,thresholdMinutes:"number"==typeof c&&Number.isFinite(c)&&c>=1&&c<=1440?Math.round(c):g.thresholdMinutes}}function j(){try{let a=(0,d.getDbInstance)().prepare("SELECT value FROM app_settings WHERE key = ?").get(f);if(!a)return{...g};return i(JSON.parse(a.value))}catch(a){return e.warn("escalation-settings-read-failed",{error:a instanceof Error?a.message:String(a)}),{...g}}}function k(a){let b=i(a),c=Date.now();return(0,d.getDbInstance)().prepare(`
|
|
20
20
|
INSERT INTO app_settings (key, value, created_at, updated_at)
|
|
21
21
|
VALUES (?, ?, ?, ?)
|
|
22
22
|
ON CONFLICT(key) DO UPDATE SET
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";exports.id=6793,exports.ids=[6793],exports.modules={12540:(a,b,c)=>{c.d(b,{Vt:()=>g,aN:()=>h,zK:()=>m,HA:()=>n,nq:()=>j,JY:()=>i,sd:()=>k,kj:()=>l});var d=c(56263);let e=/^[a-zA-Z0-9][a-zA-Z0-9 ()./_-]*$/,f=/^[a-zA-Z0-9][a-zA-Z0-9\-._]*$/,g=new Set(["copilot","opencode"]),h=new Set(["opencode"]);function i(a){return/[\x00-\x1f\x7f]/.test(a)?{valid:!1,reason:"Model name contains control characters"}:""===a.trim()?{valid:!1,reason:"Model name must not be empty"}:d.lM.test(a)?a.length>d.MJ?{valid:!1,reason:`Model name exceeds ${d.MJ} characters`}:{valid:!0}:{valid:!1,reason:"Model name contains invalid characters"}}function j(a){return/[\x00-\x1f\x7f]/.test(a)?{valid:!1,reason:"Model name contains control characters"}:""===a.trim()?{valid:!1,reason:"Model name must not be empty"}:e.test(a)?a.length>128?{valid:!1,reason:"Model name exceeds 128 characters"}:{valid:!0}:{valid:!1,reason:"Model name contains invalid characters"}}function k(a,b){return/[\x00-\x1f\x7f]/.test(a)?{valid:!1,reason:`opencode ${b} contains control characters`}:""===a.trim()?{valid:!1,reason:`opencode ${b} must not be empty`}:f.test(a)?a.length>64?{valid:!1,reason:`opencode ${b} exceeds 64 characters`}:{valid:!0}:{valid:!1,reason:`opencode ${b} contains invalid characters`}}function l(a){return/[\x00-\x1f\x7f]/.test(a)?{valid:!1,reason:"opencode title contains control characters"}:""===a.trim()?{valid:!1,reason:"opencode title must not be empty"}:a.startsWith("-")?{valid:!1,reason:'opencode title must not start with "-"'}:a.includes("|")?{valid:!1,reason:'opencode title must not contain "|"'}:a.length>200?{valid:!1,reason:"opencode title exceeds 200 characters"}:{valid:!0}}function m(a){let b=[],c=function(a){let b=a.trim();if(!b)return{cliToolId:"claude",model:void 0};let{tokens:c,error:d}=function(a){let b=[],c="",d=!1,e=null;for(let f of a){if(e){f===e?e=null:c+=f;continue}if('"'===f||"'"===f){e=f,d=!0;continue}if(/\s/.test(f)){d&&(b.push(c),c="",d=!1);continue}c+=f,d=!0}return e?{tokens:[],error:"CLI Tool column has an unterminated quote"}:(d&&b.push(c),{tokens:b})}(b);if(d)return{cliToolId:b.split(/\s+/)[0],error:d};let e=c[0];return 1===c.length?{cliToolId:e,model:void 0}:g.has(e)?h.has(e)?function(a,b){let c={cliToolId:a},d=new Set,e=(a,c)=>{let d=b[c+1];return void 0===d||d.startsWith("-")?null:d};for(let f=0;f<b.length;f++){let g=b[f];if(d.has(g))return{cliToolId:a,error:`${a} option "${g}" is repeated`};switch(g){case"--model":case"-m":{let b=e(g,f);if(null===b)return{cliToolId:a,error:`${a} option "${g}" needs a value`};d.add("--model"),d.add("-m"),c.model=b,f++;break}case"--agent":{let b=e(g,f);if(null===b)return{cliToolId:a,error:`${a} option "${g}" needs a value`};d.add(g),c.agent=b,f++;break}case"--variant":{let b=e(g,f);if(null===b)return{cliToolId:a,error:`${a} option "${g}" needs a value`};d.add(g),c.variant=b,f++;break}case"--title":{let b=e(g,f);if(null===b)return{cliToolId:a,error:`${a} option "${g}" needs a value`};d.add(g),c.title=b,f++;break}case"--continue":case"-c":d.add("--continue"),d.add("-c"),c.continueSession=!0;break;default:return{cliToolId:a,error:`${a} only supports: opencode [--model <provider/model>] [--agent <name>] [--variant <name>] [--continue] [--title <text>]`}}}return c}(e,c.slice(1)):3===c.length&&"--model"===c[1]?{cliToolId:e,model:c[2]}:{cliToolId:e,error:`${e} only supports: ${e} --model <modelName>`}:{cliToolId:e,error:`CLI Tool "${e}" does not support additional options`}}(a);if(c.error&&b.push(c.error),c.model){let a=i(c.model);a.valid||b.push(a.reason)}if(c.agent){let a=k(c.agent,"agent");a.valid||b.push(a.reason)}if(c.variant){let a=k(c.variant,"variant");a.valid||b.push(a.reason)}if(c.title){let a=l(c.title);a.valid||b.push(a.reason)}return{result:c,errors:b}}function n(a){let b={};return a.model&&g.has(a.cliToolId)&&(b.model=a.model),h.has(a.cliToolId)&&(a.agent&&(b.agent=a.agent),a.variant&&(b.variant=a.variant),a.continueSession&&(b.continueSession=!0),a.title&&(b.title=a.title)),Object.keys(b).length>0?b:void 0}},15003:(a,b,c)=>{c.d(b,{QD:()=>h,Vh:()=>g,fp:()=>d,j0:()=>f,ri:()=>i});let d="CMATE.md",e=/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F\x80-\x9F\u200B-\u200F\u2028-\u202F\uFEFF]/;function f(a){return a.replace(RegExp(e.source,"g"),"")}let g=/^[\w\u3000-\u303F\u3040-\u309F\u30A0-\u30FF\u4E00-\u9FFF\uF900-\uFAFF\s-]{1,100}$/,h=100;function i(a){if(a.length>100)return!1;let b=a.trim().split(/\s+/);return b.length>=5&&b.length<=6}},56793:(a,b,c)=>{c.d(b,{DL:()=>G,Yg:()=>F,oX:()=>E});var d=c(73736),e=c(79748),f=c(33873),g=c.n(f),h=c(15194),i=c(12540),j=c(20137);let k=["edit_file","write_file","shell_command","monitor_command","kill_shell"];var l=c(15003),m=c(72626);let n=(0,m.h)("cmate-parser");async function o(a,b){let c=await (0,e.realpath)(a),d=await (0,e.realpath)(b);if(!c.startsWith(d+g().sep)&&c!==g().join(d,l.fp))throw Error(`Path traversal detected: ${a} is not within ${b}`);return!0}async function p(a){let b=g().join(a,l.fp);try{await o(b,a);let c=await (0,e.readFile)(b,"utf-8");return function(a){let b=new Map,c=a.split("\n"),d=null,e=!1,f=!1;for(let a of c){let c=a.trim(),g=c.match(/^##\s+(.+)$/);if(g){d=g[1].trim(),e=!1,f=!1,b.has(d)||b.set(d,[]);continue}if(!c||!c.startsWith("|")||!d)continue;if(!e){e=!0;continue}if(!f){if(c.match(/^\|[\s-:|]+\|$/)){f=!0;continue}f=!0}let h=c.split("|").slice(1,-1).map(a=>a.trim());h.length>0&&b.get(d).push(h)}return b}(c)}catch(a){if(a instanceof Error&&"code"in a&&"ENOENT"===a.code)return null;throw a}}var q=c(34207),r=c(55511),s=c(29021);let t=(0,m.h)("cron-parser");function u(){let{getDbInstance:a}=c(88807);return a()}let v=(0,m.h)("job-executor");function w(){let{getDbInstance:a}=c(88807);return a()}function x(a,b,c,d){let e=w(),f=Date.now();e.prepare(`
|
|
2
|
+
UPDATE execution_logs SET status = ?, result = ?, exit_code = ?, completed_at = ? WHERE id = ?
|
|
3
|
+
`).run(b,c,d,f,a)}async function y(a){let b;if(a.isExecuting)return void v.warn("execution:skip-concurrent",{name:a.entry.name});a.isExecuting=!0;try{b=function(a,b,c){let d=w(),e=Date.now(),f=(0,r.randomUUID)();return d.prepare(`
|
|
4
|
+
INSERT INTO execution_logs (id, schedule_id, worktree_id, message, status, started_at, created_at)
|
|
5
|
+
VALUES (?, ?, ?, ?, 'running', ?, ?)
|
|
6
|
+
`).run(f,a,b,c,e,e),f}(a.scheduleId,a.worktreeId,a.entry.message);let d=w().prepare("SELECT path, vibe_local_model FROM worktrees WHERE id = ?").get(a.worktreeId);if(!d)return void x(b,"failed","Worktree not found",null);let e=function(a,b){let c=(0,i.HA)(a);return c||("vibe-local"===a.cliToolId&&b.vibe_local_model?{model:b.vibe_local_model}:void 0)}(a.entry,d),f=await (0,q.V$)(a.entry.message,d.path,a.entry.cliToolId,a.entry.permission,e);x(b,f.status,f.output,f.exitCode);var c=a.scheduleId;let g=w(),h=Date.now();g.prepare("UPDATE scheduled_executions SET last_executed_at = ?, updated_at = ? WHERE id = ?").run(h,h,c),v.info("execution:completed",{name:a.entry.name,status:f.status})}catch(d){let c=d instanceof Error?d.message:String(d);void 0!==b&&x(b,"failed",c,null),v.error("execution:failed",{name:a.entry.name,error:c})}finally{a.isExecuting=!1}}let z=(0,m.h)("schedule-manager");function A(a){try{if("function"==typeof a.isStopped)return!a.isStopped();if("function"==typeof a.isRunning)return a.isRunning()}catch{return!1}return!0}function B(a,b){b.schedule(()=>{y(a).catch(b=>{z.error("execution:unhandled",{name:a.entry.name,error:b instanceof Error?b.message:String(b)})})})}function C(){return globalThis.__scheduleManagerStates||(globalThis.__scheduleManagerStates={timerId:null,schedules:new Map,initialized:!1,isSyncing:!1,cmateFileCache:new Map}),globalThis.__scheduleManagerStates}async function D(){let a=C();if(!a.isSyncing){a.isSyncing=!0;try{let b=function(){try{return u().prepare("SELECT id, path FROM worktrees").all()}catch(a){return t.error("worktree:fetch-failed",{error:a instanceof Error?a.message:String(a)}),[]}}(),c=new Set;for(let e of b)try{let b=function(a){let b=g().join(a,l.fp);try{return(0,s.statSync)(b).mtimeMs}catch(a){if(a instanceof Error&&"code"in a&&"ENOENT"===a.code)return null;return t.warn("file:stat-failed",{filePath:b}),null}}(e.path),f=a.cmateFileCache.get(e.path);if(null===b){void 0!==f&&a.cmateFileCache.delete(e.path);continue}let m=[],o=!1;for(let[b,c]of a.schedules)c.worktreeId===e.id&&(m.push(b),A(c.cronJob)||(o=!0));if(void 0!==f&&f===b){if(!o){for(let a of m)c.add(a);continue}z.warn("schedule:inactive-state-detected",{worktreeId:e.id})}a.cmateFileCache.set(e.path,b);let q=await p(e.path);if(!q)continue;let v=q.get("Schedules");if(!v)continue;let w=function(a){let b=[];for(let d of a){var c;let a;if(b.length>=l.QD){n.warn("maximum-schedule-entries");break}if(d.length<3){n.warn("parse:insufficient-columns",{columnCount:d.length});continue}let[e,f,g,m,o,p]=d,q=(0,l.j0)(e);if(!l.Vh.test(q)){n.warn("parse:invalid-name",{name:q});continue}if(!(0,l.ri)(f)){n.warn("parse:invalid-cron",{name:q,cron:f});continue}let r=(0,l.j0)(g);if(!r){n.warn("parse:empty-message",{name:q});continue}let s=void 0===o||""===o||"true"===o.toLowerCase(),{result:t,errors:u}=(0,i.zK)(m||"");if(u.length>0){n.warn("parse:invalid-cli-tool-column",{name:q,errors:u});continue}let v=t.cliToolId;if(!(0,h.hR)(v)){n.warn("parse:invalid-cli-tool",{name:q,cliToolId:v});continue}let w=j.Hf[v]??"",x=p?.trim()||w;switch(v){case"claude":a=j.kd;break;case"codex":a=j.o1;break;case"copilot":a=j.oN;break;case"antigravity":a=j.eb;break;case"command-code":a=j.dq;break;default:a=[],x&&(n.warn("parse:permission-ignored",{name:q,cliToolId:v,permission:x}),x="")}a.length>0&&x&&!a.includes(x)&&(n.warn("parse:invalid-permission",{name:q,cliToolId:v,permission:x,defaultPermission:w}),x=w),s&&(c=x,"command-code"===v&&j.Tp.includes(c.trim()))&&n.warn("parse:command-code-direct-write-tools-denied",{code:"command-code-direct-write-tools-denied",name:q,cliToolId:v,permission:x,deniedTools:[...k]}),b.push({name:q,cronExpression:f.trim(),message:r,cliToolId:v,enabled:s,permission:x,model:t.model,agent:t.agent,variant:t.variant,continueSession:t.continueSession,title:t.title})}return b}(v),x=function(a,b){if(0===b.length)return[];let c=u(),d=Date.now(),e=c.prepare("SELECT id, name FROM scheduled_executions WHERE worktree_id = ?").all(a),f=new Map;for(let a of e)f.set(a.name,a.id);let g=[],h=c.prepare(`
|
|
7
|
+
UPDATE scheduled_executions
|
|
8
|
+
SET message = ?, cron_expression = ?, cli_tool_id = ?, enabled = ?, updated_at = ?
|
|
9
|
+
WHERE id = ?
|
|
10
|
+
`),i=c.prepare(`
|
|
11
|
+
INSERT INTO scheduled_executions (id, worktree_id, name, message, cron_expression, cli_tool_id, enabled, created_at, updated_at)
|
|
12
|
+
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)
|
|
13
|
+
`);return c.transaction(()=>{for(let c of b){let b=f.get(c.name);if(b)h.run(c.message,c.cronExpression,c.cliToolId,+!!c.enabled,d,b),g.push(b);else{let b=(0,r.randomUUID)();i.run(b,a,c.name,c.message,c.cronExpression,c.cliToolId,+!!c.enabled,d,d),g.push(b)}}})(),g}(e.id,w);for(let b=0;b<w.length;b++){let f=w[b],g=x[b];if(c.add(g),!f.enabled||!f.cronExpression){let b=a.schedules.get(g);b&&(b.cronJob.stop(),a.schedules.delete(g),z.info("schedule:disabled",{name:f.name}));continue}let h=a.schedules.get(g);if(h){if(!A(h.cronJob)){try{h.cronJob.stop()}catch{}try{let a=new d.l4(f.cronExpression,{paused:!1,protect:!0});B(h,a),h.cronJob=a,h.entry=f,z.warn("schedule:recreated-inactive",{name:f.name,cron:f.cronExpression})}catch(b){a.cmateFileCache.delete(e.path),z.error("schedule:update-failed",{scheduleId:g,worktreeId:e.id,previousCron:h.entry.cronExpression,cron:f.cronExpression,phase:"recover",error:b instanceof Error?b.message:String(b)})}continue}if(h.entry.cronExpression!==f.cronExpression){!function(a,b){let c=a.entry.cronExpression,e=(d,e)=>(z.error("schedule:update-failed",{scheduleId:a.scheduleId,worktreeId:a.worktreeId,previousCron:c,cron:b.cronExpression,phase:d,error:e instanceof Error?e.message:String(e)}),!1),f=null;try{f=new d.l4(b.cronExpression,{paused:!0,protect:!0}),B(a,f)}catch(a){if(f)try{f.stop()}catch{}return e("prepare",a)}try{a.cronJob.stop(),f.resume()}catch(a){try{f.stop()}catch{}return e("swap",a)}return a.cronJob=f,a.entry=b,z.info("schedule:updated",{scheduleId:a.scheduleId,worktreeId:a.worktreeId,previousCron:c,cron:b.cronExpression}),!0}(h,f)&&a.cmateFileCache.delete(e.path);continue}h.entry=f;continue}if(a.schedules.size>=100){z.warn("schedule:max-concurrent-reached",{limit:100,name:f.name});continue}try{let b=function(a,b,c){let e=new d.l4(c.cronExpression,{paused:!1,protect:!0}),f={scheduleId:b,worktreeId:a,cronJob:e,isExecuting:!1,entry:c};return B(f,e),f}(e.id,g,f);a.schedules.set(g,b),z.info("schedule:created",{name:f.name,cron:f.cronExpression})}catch(a){z.warn("schedule:invalid-cron",{name:f.name,error:a instanceof Error?a.message:String(a)})}}}catch(a){z.error("schedule:sync-failed",{worktreeId:e.id,error:a instanceof Error?a.message:String(a)})}for(let[b,d]of a.schedules)c.has(b)||(d.cronJob.stop(),a.schedules.delete(b),z.info("schedule:removed-stale",{name:d.entry.name}));let e=b.map(a=>a.id);!function(a,b){if(0!==b.length)try{let c=u(),d=Date.now(),e=b.map(()=>"?").join(","),f=c.prepare(`SELECT id FROM scheduled_executions WHERE worktree_id IN (${e}) AND enabled = 1`).all(...b),g=0,h=c.prepare("UPDATE scheduled_executions SET enabled = 0, updated_at = ? WHERE id = ?");for(let b of f)!a.has(b.id)&&(h.run(d,b.id),g++);g>0&&t.info("schedule:disabled-stale",{count:g})}catch(a){t.error("schedule:disable-stale-failed",{error:a instanceof Error?a.message:String(a)})}}(c,e)}finally{a.isSyncing=!1}}}async function E(){await D()}function F(a){let b=C();for(let[c,d]of b.schedules)if(d.worktreeId===a){try{d.cronJob.stop()}catch{}b.schedules.delete(c)}try{let d=(function(){let{getDbInstance:a}=c(88807);return a()})().prepare("SELECT path FROM worktrees WHERE id = ?").get(a);d?.path&&b.cmateFileCache.delete(d.path)}catch{z.warn("cache:cleanup-failed",{worktreeId:a})}z.info("stop:worktree",{worktreeId:a})}function G(a){let b=C(),c=[];for(let[d,e]of b.schedules){if(e.worktreeId!==a)continue;let b=null;try{let a="function"==typeof e.cronJob.nextRun?e.cronJob.nextRun():null;a instanceof Date&&(b=a.getTime())}catch{b=null}c.push({scheduleId:d,worktreeId:a,name:e.entry.name,cronExpression:e.entry.cronExpression,cliToolId:e.entry.cliToolId,enabled:e.entry.enabled,isExecuting:e.isExecuting,isCronActive:A(e.cronJob),nextRunAt:b,model:e.entry.model})}return c.sort((a,b)=>a.name.localeCompare(b.name)),c}}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";exports.id=7075,exports.ids=[964,2839,5220,7075,8583],exports.modules={23197:(a,b,c)=>{c.d(b,{$M:()=>e,H1:()=>d,q5:()=>f});let d="__global__",e=2e3,f=900},39687:(a,b,c)=>{c.d(b,{d:()=>p});var d=c(56791),e=c(43234),f=c(15194),g=c(95220),h=c(12462),i=c(43015),j=c(54325),k=c(72626),l=c(58707),m=c(41466);let n=(0,k.h)("session/send-user-message");function o(a){return a instanceof Error?a.message:String(a)}async function p(a,b){let{worktreeId:c,content:k,cliToolId:p,instanceId:q,absoluteImagePath:r,copilotModel:s}=b,t=b.messageType??"normal",u=q??p,v=e.CLIToolManager.getInstance().getTool(p),w=await (0,l.a3)(c,p,q,{ignoreStructured:b.ignoreStructuredPromptGuard});if(w.waiting)return n.info("send-refused-prompt-waiting",{worktreeId:c,cliToolId:p,reason:w.reason,blockedBy:w.blockedBy}),{ok:!1,stage:"prompt_waiting",error:(0,l.br)(c,w.blockedBy)};let x=new Date;try{await (0,h.o4)(a,c,p,x,q)}catch(a){n.error("failed-to-save-pending-assistant-response:",{error:o(a)})}let y=null;try{let b=(0,d.getMessages)(a,c,{limit:1,cliToolId:p,instanceId:u,matchResolvedInstance:!0});b.length>0&&"user"===b[0].role&&b[0].content===k&&(y=b[0].id)}catch(a){n.error("failed-to-detect-orphaned-messages:",{error:o(a)})}if(s&&"copilot"===p)try{await v.sendModelCommand(c,s,q),n.info("copilot-model-command-sent",{model:s})}catch(a){return n.error("failed-to-send-model-command:",{error:o(a)}),{ok:!1,stage:"model",error:o(a)}}try{r?(0,f._J)(v)?await v.sendMessageWithImage(c,k,r,q):await v.sendMessage(c,(0,m.TZ)(k,r),q):await v.sendMessage(c,k,q)}catch(a){return n.error("failed-to-send-message-to:",{error:o(a)}),{ok:!1,stage:"send",error:o(a)}}let z=(0,d.createMessage)(a,{worktreeId:c,role:"user",content:k,messageType:t,timestamp:x,cliToolId:p,instanceId:q,requestId:b.requestId});try{(0,i.broadcastMessage)("message",{worktreeId:c,message:{...z,cliToolId:p,instanceId:u}})}catch(a){n.warn("user-message-broadcast-failed",{error:o(a)})}if(y)try{if((0,d.deleteMessageById)(a,y)){n.info("cleaned-up-orphaned-user");try{(0,i.broadcastMessage)(j.dz,{worktreeId:c,cliToolId:p,instanceId:u,reason:"orphan_cleanup"})}catch(a){n.warn("orphan-cleanup-broadcast-failed",{error:o(a)})}}}catch(a){n.error("failed-to-clean-up-orphaned-message:",{error:o(a)})}return(0,d.updateLastUserMessage)(a,c,k,x),(0,d.clearInProgressMessageId)(a,c,p,q),n.info("cleared-in-progress-message-for"),(0,g.startPolling)(c,p,q),{ok:!0,message:z}}},40964:(a,b,c)=>{c.d(b,{m:()=>g});var d=c(15194);let e=/^[a-zA-Z0-9_-]+$/;function f(a){if(!e.test(a))throw Error(`Invalid session name format: ${a}`)}function g(a,b,c){let e=`mcbd-${a}-${b}`;if(!c||c===a)return f(e),e;let g=(0,d.pL)(c,a),h=g?`${e}-${g}`:e;return f(h),h}},58707:(a,b,c)=>{c.d(b,{$n:()=>k,a3:()=>l,br:()=>m});var d=c(43234),e=c(31990),f=c(95595),g=c(34405),h=c(72626),i=c(30008);let j=(0,h.h)("prompt-waiting-guard"),k="PROMPT_WAITING";async function l(a,b,c,h){try{let k=d.CLIToolManager.getInstance().getTool(b);if(!await k.isRunning(a,c))return{waiting:!1};let l=await (0,e.Wh)(a,b,g._,c),m=(0,f.WC)(l,b),n=(0,i._G)({worktreeId:a,cliToolId:b,instanceId:c,scraper:{status:m.status,reason:m.reason,hasActivePrompt:m.hasActivePrompt},ignoreStructured:h?.ignoreStructured});if(!n.blocksSend)return null!==n.structuredSendBlockSuppressed&&j.info("structured-send-guard-not-applied",{worktreeId:a,cliToolId:b,instanceId:c,suppressed:n.structuredSendBlockSuppressed,promptWaitingSince:n.structured?.at??null}),{waiting:!1};return{waiting:!0,reason:n.blockReason??void 0,blockedBy:n.blockedBy??void 0}}catch(c){return j.warn("prompt-waiting-check-failed",{worktreeId:a,cliToolId:b,error:c instanceof Error?c.message:String(c)}),{waiting:!1}}}function m(a,b){let c=`${a} is waiting on a prompt. Sending now would type into the prompt's input line instead of reaching the agent, and would leave that text in place for the next answer. Answer the prompt first: \`commandmate respond ${a} <answer>\`.`;if("structured"!==b)return c;let d=Math.round(i.j0/6e4);return`${c} This dialog was reported by the agent's own hooks and is not visible to the terminal scraper, so if the pane looks idle the record has outlived its dialog: it stops blocking sends ${d} minutes after it was reported, or immediately with \`commandmate send ${a} <message> --ignore-structured-prompt\` (server-wide: ${i.F1}=off).`}},61068:(a,b,c)=>{c.d(b,{Nz:()=>u,EB:()=>v,l7:()=>x});var d=c(95220),e=c(5363),f=c(11099),g=c(85775),h=c(72626),i=c(43234),j=c(79892);let k=(0,h.h)("global-session-poller"),l=new Map,m=new Map;var n=c(93997),o=c(15194),p=c(23197),q=c(77093),r=c(82325);let s=(0,h.h)("session-cleanup");async function t(a,b){let c={worktreeId:a,sessionsKilled:[],sessionErrors:[],pollersStopped:[],pollerErrors:[]};for(let e of((0,n.pc)(),o.XH)){try{await b(a,e)&&(c.sessionsKilled.push(e),s.info("session:killed",{worktreeId:a,cliToolId:e}))}catch(d){let b=`${e}: ${(0,q.u1)(d)}`;c.sessionErrors.push(b),s.warn("session:kill-failed",{worktreeId:a,cliToolId:e,error:d instanceof Error?d.message:String(d)})}try{(0,d.stopPolling)(a,e),c.pollersStopped.push(`response-poller:${e}`)}catch(d){let b=`response-poller:${e}: ${(0,q.u1)(d)}`;c.pollerErrors.push(b),s.warn("response-poller:stop-failed",{worktreeId:a,cliToolId:e,error:d instanceof Error?d.message:String(d)})}}try{(0,e._C)(a),c.pollersStopped.push("auto-yes-poller")}catch(d){let b=`auto-yes-poller: ${(0,q.u1)(d)}`;c.pollerErrors.push(b),s.warn("auto-yes-poller:stop-failed",{worktreeId:a,error:d instanceof Error?d.message:String(d)})}try{(0,e.LP)(a),c.pollersStopped.push("auto-yes-state")}catch(d){let b=`auto-yes-state: ${(0,q.u1)(d)}`;c.pollerErrors.push(b),s.warn("auto-yes-state:delete-failed",{worktreeId:a,error:d instanceof Error?d.message:String(d)})}try{(0,f.Yg)(a),c.pollersStopped.push("schedule-manager")}catch(d){let b=`schedule-manager: ${(0,q.u1)(d)}`;c.pollerErrors.push(b),s.warn("schedule-manager:stop-failed",{worktreeId:a,error:d instanceof Error?d.message:String(d)})}try{(0,g.Tm)(a),c.pollersStopped.push("timer-manager")}catch(d){let b=`timer-manager: ${(0,q.u1)(d)}`;c.pollerErrors.push(b),s.warn("timer-manager:stop-failed",{worktreeId:a,error:d instanceof Error?d.message:String(d)})}return c}async function u(a,b){let c=await Promise.allSettled(a.map(a=>t(a,b))),d=[],e=[];for(let b=0;b<c.length;b++){let f=c[b],g=a[b];if("fulfilled"===f.status){let a=f.value;for(let b of(d.push(a),a.sessionErrors))e.push(`Session kill error (${g}): ${b}`);for(let b of a.pollerErrors)e.push(`Poller stop error (${g}): ${b}`)}else e.push(`Cleanup failed (${g}): ${(0,q.u1)(f.reason)}`)}return{results:d,warnings:e}}async function v(a,b){try{let c=i.CLIToolManager.getInstance().getTool(b);if(!await c.isRunning(a))return!1;let e=`${a}:${b}`;(0,d.clearPromptHashCache)(e);let f=c.getSessionName(a);return(0,j.fY)(f)}catch{return!1}}async function w(){for(let a of l.keys()){let b=l.get(a);b&&clearTimeout(b)}l.clear(),m.clear(),k.info("poll:all-stopped");let a=0,b=i.CLIToolManager.getInstance();for(let c of o.XH)try{let d=b.getTool(c).getSessionName(p.H1);await (0,j.N)(d)&&await (0,j.fY)(d)&&(a++,s.info("global-session:killed",{cliToolId:c,sessionName:d}))}catch(a){s.warn("global-session:kill-failed",{cliToolId:c,error:(0,q.u1)(a)})}return a}async function x(a,b){let c=(0,r.L0)(a,b);try{await w()}catch(a){s.warn("sync:global-cleanup-failed",{error:(0,q.u1)(a)})}let d=[];if(c.deletedIds.length>0)try{let a=await u(c.deletedIds,v);a.warnings.length>0&&(s.warn("sync:cleanup-warnings",{warnings:a.warnings}),d=[`${a.warnings.length} session cleanup warning(s) occurred`])}catch(a){s.error("sync:cleanup-failed",{error:(0,q.u1)(a)}),d=["Session cleanup encountered an error"]}return{syncResult:c,cleanupWarnings:d}}},82325:(a,b,c)=>{c.d(b,{Hz:()=>o,L0:()=>r,Mg:()=>s,YM:()=>p,Yp:()=>q});var d=c(79646),e=c(28354),f=c(29021),g=c.n(f),h=c(33873),i=c.n(h),j=c(23718),k=c(56791),l=c(72626),m=c(64185);let n=(0,l.h)("worktrees");function o(){let a=process.env.WORKTREE_REPOS;return a&&a.trim()?a.split(",").map(a=>a.trim()).filter(a=>a.length>0):[]}async function p(a){let b=(0,e.promisify)(d.exec);if(function(a){if(!a)return!1;try{return g().lstatSync(a),!1}catch(b){let a=b.code;return"ENOENT"===a||"ENOTDIR"===a}}(a))return n.warn("repository:scan-skipped-missing-dir",{repoPath:a}),[];try{let{stdout:c}=await b("git worktree list",{cwd:a}),d=function(a){if(!a||""===a.trim())return[];let b=a.trim().split("\n"),c=[];for(let a of b){let b=a.trim();if(!b)continue;let d=b.match(/^(.+?)\s+([a-z0-9]+)\s+(?:\[(.+?)\]|\(detached HEAD\))/);if(d){let[,a,b,e]=d;c.push({path:a.trim(),branch:e||`detached-${b}`,commit:b})}}return c}(c),e=i().resolve(a),f=i().basename(e);return(0,m.oZ)(e),d.map(a=>{let b=i().resolve(a.path);return{id:(0,j.ko)(b),name:a.branch,branch:a.branch,path:b,repositoryPath:e,repositoryName:f}}).filter(a=>["/etc","/root","/sys","/proc","/dev","/boot","/bin","/sbin","/usr/bin","/usr/sbin"].some(b=>a.path.startsWith(b))?(n.warn("worktree:unsafe-path-skipped",{path:a.path}),!1):!(a.path.includes("\0")||a.path.includes(".."))||(n.warn("worktree:malicious-path-skipped",{path:a.path}),!1))}catch(c){let a=c instanceof Error?c.message:String(c),b=c.code;if(a?.includes("not a git repository")||128===b)return[];throw c}}async function q(a){let b=await Promise.allSettled(a.map(async a=>{n.info("repository:scan-start",{repoPath:a});let b=await p(a);return n.info("repository:scan-complete",{repoPath:a,worktreeCount:b.length}),b})),c=[];for(let d=0;d<b.length;d++){let e=b[d];"fulfilled"===e.status?c.push(...e.value):n.error("repository:scan-failed",{repoPath:a[d],error:e.reason instanceof Error?e.reason.message:String(e.reason)})}return c}function r(a,b){if(0===b.length)return{deletedIds:[],upsertedCount:0};let c=[],d=0,e=new Map;for(let a of b){let b=a.repositoryPath||"";e.has(b)||e.set(b,[]),e.get(b).push(a)}let f=new Set([...(0,k.getAllWorktreeIds)(a),...(0,k.getAliasedWorktreeIds)(a)]),g=new Map((0,k.getAllWorktreePathIds)(a).map(a=>[i().resolve(a.path),a.id])),h=new Map,l=new Map;for(let[a,b]of g)h.set(a,new Set([b])),l.set(b,a);for(let b of(0,k.getAllWorktreeAliases)(a)){let a=l.get(b.worktreeId);a&&h.get(a)?.add(b.oldId)}let m=new Set(b.map(a=>i().resolve(a.path)));for(let[b,o]of e){if(!b)continue;let e=(0,k.getWorktreesByRepository)(a,b).filter(a=>!m.has(i().resolve(a.path))).map(a=>a.id);if(e.length>0){let b=(0,k.deleteWorktreesByIds)(a,e);for(let a of(c.push(...e),e)){f.delete(a);let b=l.get(a);void 0!==b&&(g.delete(b),h.delete(b))}n.info("worktree:cleanup",{deletedCount:b.deletedCount})}for(let b of o){let c=i().resolve(b.path),e=g.get(c),m=b.id,n=e??(m&&!f.has(m)?m:function(a,b,c){if(!c||0===c.size)return(0,j.ko)(a,b);let d=new Set(b);for(let a of c)d.delete(a);return(0,j.ko)(a,d)}(c,f,h.get(c)));f.add(n),g.set(c,n),l.set(n,c),(0,k.upsertWorktree)(a,{...b,id:n,name:b.branch??b.name}),d++}}return{deletedIds:c,upsertedCount:d}}function s(a,b){let c=new Set(b.map(a=>a.repositoryPath).filter(a=>!!a)),d=[];for(let b of(0,k.getRepositories)(a)){let e=b.path;if(!e||c.has(e)||function(a){if(!a)return!1;try{return g().existsSync(a)&&g().existsSync(i().join(a,".git"))}catch{return!0}}(e))continue;let f=(0,k.getWorktreesByRepository)(a,e).map(a=>a.id);if(0===f.length)continue;let h=(0,k.deleteWorktreesByIds)(a,f);d.push(...f),n.info("worktree:stale-repo-pruned",{repoPath:e,deletedCount:h.deletedCount})}return d}},85775:(a,b,c)=>{c.d(b,{Tm:()=>o,x4:()=>m,xJ:()=>n});var d=c(34129),e=c(43234),f=c(88807),g=c(72626),h=c(87374),i=c(39687);let j=(0,g.h)("timer-manager");function k(){return globalThis.__timerManagerState||(globalThis.__timerManagerState={timers:new Map,timerWorktrees:new Map,initialized:!1}),globalThis.__timerManagerState}async function l(a){let b=k(),c=(0,f.getDbInstance)();try{let b=(0,d.kx)(c,a);if(!b||"pending"!==b.status)return;let f=e.CLIToolManager.getInstance().getTool(b.cliToolId),g=b.instanceId;if(!await f.isRunning(b.worktreeId,g)){j.warn("timer:no-session",{timerId:a,worktreeId:b.worktreeId,instanceId:g}),(0,d.j2)(c,a,h.HR.NO_SESSION);return}(0,d.j2)(c,a,"sending");let k=await (0,i.d)(c,{worktreeId:b.worktreeId,content:b.message,cliToolId:b.cliToolId,instanceId:g});if(!k.ok){let b=`[${k.stage}] ${k.error}`;(0,d.j2)(c,a,"failed",void 0,b),j.error("timer:send-failed",{timerId:a,stage:k.stage,error:k.error});return}(0,d.j2)(c,a,"sent",Date.now()),j.info("timer:sent",{timerId:a,worktreeId:b.worktreeId})}catch(e){let b=e instanceof Error?e.message:String(e);try{(0,d.j2)(c,a,"failed",void 0,b)}catch{}j.error("timer:send-failed",{timerId:a,error:b})}finally{b.timers.delete(a),b.timerWorktrees.delete(a)}}function m(a,b,c){let d=k(),e=setTimeout(()=>{l(a)},c);d.timers.set(a,e),d.timerWorktrees.set(a,b)}function n(a){let b=k(),c=b.timers.get(a);c&&(clearTimeout(c),b.timers.delete(a),b.timerWorktrees.delete(a));let e=(0,f.getDbInstance)();(0,d.Ud)(e,a)}function o(a){let b=k(),c=(0,f.getDbInstance)();for(let[c,d]of b.timerWorktrees)if(d===a){let a=b.timers.get(c);a&&clearTimeout(a),b.timers.delete(c),b.timerWorktrees.delete(c)}(0,d.$$)(c,a)}},95220:(a,b,c)=>{c.r(b),c.d(b,{accumulateTuiContent:()=>g.IZ,cleanClaudeResponse:()=>f.NN,cleanCopilotResponse:()=>f.LH,cleanGeminiResponse:()=>f.IS,cleanOpenCodeResponse:()=>f.aW,clearPromptHashCache:()=>h.iX,clearTuiAccumulator:()=>g.q1,extractCopilotContentLines:()=>g.o0,extractTuiContentLines:()=>g.K0,findOverlapIndex:()=>g.vQ,getAccumulatedContent:()=>g.Uz,getActivePollers:()=>d.KQ,initTuiAccumulator:()=>g.tb,isDuplicatePrompt:()=>h.gv,isOpenCodeComplete:()=>e.bE,migrateResponsePollerWorktreeIds:()=>d.sR,normalizeCopilotLine:()=>g.IW,normalizePromptForDedup:()=>h.zm,renamePromptHashCacheKey:()=>h.i2,resolveExtractionStartIndex:()=>e.QM,startPolling:()=>d.g8,stopAllPolling:()=>d.fq,stopPolling:()=>d.Et,truncateMessage:()=>f.Sj});var d=c(45146),e=c(60),f=c(82450),g=c(13033),h=c(72457)}};
|
|
1
|
+
"use strict";exports.id=7075,exports.ids=[964,2839,5220,7075,8583],exports.modules={23197:(a,b,c)=>{c.d(b,{$M:()=>e,H1:()=>d,q5:()=>f});let d="__global__",e=2e3,f=900},39687:(a,b,c)=>{c.d(b,{d:()=>p});var d=c(56791),e=c(43234),f=c(15194),g=c(95220),h=c(12462),i=c(43015),j=c(54325),k=c(72626),l=c(58707),m=c(41466);let n=(0,k.h)("session/send-user-message");function o(a){return a instanceof Error?a.message:String(a)}async function p(a,b){let{worktreeId:c,content:k,cliToolId:p,instanceId:q,absoluteImagePath:r,copilotModel:s}=b,t=b.messageType??"normal",u=q??p,v=e.CLIToolManager.getInstance().getTool(p),w=await (0,l.a3)(c,p,q,{ignoreStructured:b.ignoreStructuredPromptGuard});if(w.waiting)return n.info("send-refused-prompt-waiting",{worktreeId:c,cliToolId:p,reason:w.reason,blockedBy:w.blockedBy}),{ok:!1,stage:"prompt_waiting",error:(0,l.br)(c,w.blockedBy)};let x=new Date;try{await (0,h.o4)(a,c,p,x,q)}catch(a){n.error("failed-to-save-pending-assistant-response:",{error:o(a)})}let y=null;try{let b=(0,d.getMessages)(a,c,{limit:1,cliToolId:p,instanceId:u,matchResolvedInstance:!0});b.length>0&&"user"===b[0].role&&b[0].content===k&&(y=b[0].id)}catch(a){n.error("failed-to-detect-orphaned-messages:",{error:o(a)})}if(s&&"copilot"===p)try{await v.sendModelCommand(c,s,q),n.info("copilot-model-command-sent",{model:s})}catch(a){return n.error("failed-to-send-model-command:",{error:o(a)}),{ok:!1,stage:"model",error:o(a)}}try{r?(0,f._J)(v)?await v.sendMessageWithImage(c,k,r,q):await v.sendMessage(c,(0,m.TZ)(k,r),q):await v.sendMessage(c,k,q)}catch(a){return n.error("failed-to-send-message-to:",{error:o(a)}),{ok:!1,stage:"send",error:o(a)}}let z=(0,d.createMessage)(a,{worktreeId:c,role:"user",content:k,messageType:t,timestamp:x,cliToolId:p,instanceId:q,requestId:b.requestId});try{(0,i.broadcastMessage)("message",{worktreeId:c,message:{...z,cliToolId:p,instanceId:u}})}catch(a){n.warn("user-message-broadcast-failed",{error:o(a)})}if(y)try{if((0,d.deleteMessageById)(a,y)){n.info("cleaned-up-orphaned-user");try{(0,i.broadcastMessage)(j.dz,{worktreeId:c,cliToolId:p,instanceId:u,reason:"orphan_cleanup"})}catch(a){n.warn("orphan-cleanup-broadcast-failed",{error:o(a)})}}}catch(a){n.error("failed-to-clean-up-orphaned-message:",{error:o(a)})}return(0,d.updateLastUserMessage)(a,c,k,x),(0,d.clearInProgressMessageId)(a,c,p,q),n.info("cleared-in-progress-message-for"),(0,g.startPolling)(c,p,q),{ok:!0,message:z}}},40964:(a,b,c)=>{c.d(b,{m:()=>g});var d=c(15194);let e=/^[a-zA-Z0-9_-]+$/;function f(a){if(!e.test(a))throw Error(`Invalid session name format: ${a}`)}function g(a,b,c){let e=`mcbd-${a}-${b}`;if(!c||c===a)return f(e),e;let g=(0,d.pL)(c,a),h=g?`${e}-${g}`:e;return f(h),h}},58707:(a,b,c)=>{c.d(b,{$n:()=>k,a3:()=>l,br:()=>m});var d=c(43234),e=c(31990),f=c(95595),g=c(34405),h=c(72626),i=c(30008);let j=(0,h.h)("prompt-waiting-guard"),k="PROMPT_WAITING";async function l(a,b,c,h){try{let k=d.CLIToolManager.getInstance().getTool(b);if(!await k.isRunning(a,c))return{waiting:!1};let l=await (0,e.Wh)(a,b,g._,c),m=(0,f.WC)(l,b),n=(0,i._G)({worktreeId:a,cliToolId:b,instanceId:c,scraper:{status:m.status,reason:m.reason,hasActivePrompt:m.hasActivePrompt},ignoreStructured:h?.ignoreStructured});if(!n.blocksSend)return null!==n.structuredSendBlockSuppressed&&j.info("structured-send-guard-not-applied",{worktreeId:a,cliToolId:b,instanceId:c,suppressed:n.structuredSendBlockSuppressed,promptWaitingSince:n.structured?.at??null}),{waiting:!1};return{waiting:!0,reason:n.blockReason??void 0,blockedBy:n.blockedBy??void 0}}catch(c){return j.warn("prompt-waiting-check-failed",{worktreeId:a,cliToolId:b,error:c instanceof Error?c.message:String(c)}),{waiting:!1}}}function m(a,b){let c=`${a} is waiting on a prompt. Sending now would type into the prompt's input line instead of reaching the agent, and would leave that text in place for the next answer. Answer the prompt first: \`commandmate respond ${a} <answer>\`.`;if("structured"!==b)return c;let d=Math.round(i.j0/6e4);return`${c} This dialog was reported by the agent's own hooks and is not visible to the terminal scraper, so if the pane looks idle the record has outlived its dialog: it stops blocking sends ${d} minutes after it was reported, or immediately with \`commandmate send ${a} <message> --ignore-structured-prompt\` (server-wide: ${i.F1}=off).`}},61068:(a,b,c)=>{c.d(b,{Nz:()=>u,EB:()=>v,l7:()=>x});var d=c(95220),e=c(5363),f=c(56793),g=c(85775),h=c(72626),i=c(43234),j=c(79892);let k=(0,h.h)("global-session-poller"),l=new Map,m=new Map;var n=c(93997),o=c(15194),p=c(23197),q=c(77093),r=c(82325);let s=(0,h.h)("session-cleanup");async function t(a,b){let c={worktreeId:a,sessionsKilled:[],sessionErrors:[],pollersStopped:[],pollerErrors:[]};for(let e of((0,n.pc)(),o.XH)){try{await b(a,e)&&(c.sessionsKilled.push(e),s.info("session:killed",{worktreeId:a,cliToolId:e}))}catch(d){let b=`${e}: ${(0,q.u1)(d)}`;c.sessionErrors.push(b),s.warn("session:kill-failed",{worktreeId:a,cliToolId:e,error:d instanceof Error?d.message:String(d)})}try{(0,d.stopPolling)(a,e),c.pollersStopped.push(`response-poller:${e}`)}catch(d){let b=`response-poller:${e}: ${(0,q.u1)(d)}`;c.pollerErrors.push(b),s.warn("response-poller:stop-failed",{worktreeId:a,cliToolId:e,error:d instanceof Error?d.message:String(d)})}}try{(0,e._C)(a),c.pollersStopped.push("auto-yes-poller")}catch(d){let b=`auto-yes-poller: ${(0,q.u1)(d)}`;c.pollerErrors.push(b),s.warn("auto-yes-poller:stop-failed",{worktreeId:a,error:d instanceof Error?d.message:String(d)})}try{(0,e.LP)(a),c.pollersStopped.push("auto-yes-state")}catch(d){let b=`auto-yes-state: ${(0,q.u1)(d)}`;c.pollerErrors.push(b),s.warn("auto-yes-state:delete-failed",{worktreeId:a,error:d instanceof Error?d.message:String(d)})}try{(0,f.Yg)(a),c.pollersStopped.push("schedule-manager")}catch(d){let b=`schedule-manager: ${(0,q.u1)(d)}`;c.pollerErrors.push(b),s.warn("schedule-manager:stop-failed",{worktreeId:a,error:d instanceof Error?d.message:String(d)})}try{(0,g.Tm)(a),c.pollersStopped.push("timer-manager")}catch(d){let b=`timer-manager: ${(0,q.u1)(d)}`;c.pollerErrors.push(b),s.warn("timer-manager:stop-failed",{worktreeId:a,error:d instanceof Error?d.message:String(d)})}return c}async function u(a,b){let c=await Promise.allSettled(a.map(a=>t(a,b))),d=[],e=[];for(let b=0;b<c.length;b++){let f=c[b],g=a[b];if("fulfilled"===f.status){let a=f.value;for(let b of(d.push(a),a.sessionErrors))e.push(`Session kill error (${g}): ${b}`);for(let b of a.pollerErrors)e.push(`Poller stop error (${g}): ${b}`)}else e.push(`Cleanup failed (${g}): ${(0,q.u1)(f.reason)}`)}return{results:d,warnings:e}}async function v(a,b){try{let c=i.CLIToolManager.getInstance().getTool(b);if(!await c.isRunning(a))return!1;let e=`${a}:${b}`;(0,d.clearPromptHashCache)(e);let f=c.getSessionName(a);return(0,j.fY)(f)}catch{return!1}}async function w(){for(let a of l.keys()){let b=l.get(a);b&&clearTimeout(b)}l.clear(),m.clear(),k.info("poll:all-stopped");let a=0,b=i.CLIToolManager.getInstance();for(let c of o.XH)try{let d=b.getTool(c).getSessionName(p.H1);await (0,j.N)(d)&&await (0,j.fY)(d)&&(a++,s.info("global-session:killed",{cliToolId:c,sessionName:d}))}catch(a){s.warn("global-session:kill-failed",{cliToolId:c,error:(0,q.u1)(a)})}return a}async function x(a,b){let c=(0,r.L0)(a,b);try{await w()}catch(a){s.warn("sync:global-cleanup-failed",{error:(0,q.u1)(a)})}let d=[];if(c.deletedIds.length>0)try{let a=await u(c.deletedIds,v);a.warnings.length>0&&(s.warn("sync:cleanup-warnings",{warnings:a.warnings}),d=[`${a.warnings.length} session cleanup warning(s) occurred`])}catch(a){s.error("sync:cleanup-failed",{error:(0,q.u1)(a)}),d=["Session cleanup encountered an error"]}return{syncResult:c,cleanupWarnings:d}}},82325:(a,b,c)=>{c.d(b,{Hz:()=>o,L0:()=>r,Mg:()=>s,YM:()=>p,Yp:()=>q});var d=c(79646),e=c(28354),f=c(29021),g=c.n(f),h=c(33873),i=c.n(h),j=c(23718),k=c(56791),l=c(72626),m=c(64185);let n=(0,l.h)("worktrees");function o(){let a=process.env.WORKTREE_REPOS;return a&&a.trim()?a.split(",").map(a=>a.trim()).filter(a=>a.length>0):[]}async function p(a){let b=(0,e.promisify)(d.exec);if(function(a){if(!a)return!1;try{return g().lstatSync(a),!1}catch(b){let a=b.code;return"ENOENT"===a||"ENOTDIR"===a}}(a))return n.warn("repository:scan-skipped-missing-dir",{repoPath:a}),[];try{let{stdout:c}=await b("git worktree list",{cwd:a}),d=function(a){if(!a||""===a.trim())return[];let b=a.trim().split("\n"),c=[];for(let a of b){let b=a.trim();if(!b)continue;let d=b.match(/^(.+?)\s+([a-z0-9]+)\s+(?:\[(.+?)\]|\(detached HEAD\))/);if(d){let[,a,b,e]=d;c.push({path:a.trim(),branch:e||`detached-${b}`,commit:b})}}return c}(c),e=i().resolve(a),f=i().basename(e);return(0,m.oZ)(e),d.map(a=>{let b=i().resolve(a.path);return{id:(0,j.ko)(b),name:a.branch,branch:a.branch,path:b,repositoryPath:e,repositoryName:f}}).filter(a=>["/etc","/root","/sys","/proc","/dev","/boot","/bin","/sbin","/usr/bin","/usr/sbin"].some(b=>a.path.startsWith(b))?(n.warn("worktree:unsafe-path-skipped",{path:a.path}),!1):!(a.path.includes("\0")||a.path.includes(".."))||(n.warn("worktree:malicious-path-skipped",{path:a.path}),!1))}catch(c){let a=c instanceof Error?c.message:String(c),b=c.code;if(a?.includes("not a git repository")||128===b)return[];throw c}}async function q(a){let b=await Promise.allSettled(a.map(async a=>{n.info("repository:scan-start",{repoPath:a});let b=await p(a);return n.info("repository:scan-complete",{repoPath:a,worktreeCount:b.length}),b})),c=[];for(let d=0;d<b.length;d++){let e=b[d];"fulfilled"===e.status?c.push(...e.value):n.error("repository:scan-failed",{repoPath:a[d],error:e.reason instanceof Error?e.reason.message:String(e.reason)})}return c}function r(a,b){if(0===b.length)return{deletedIds:[],upsertedCount:0};let c=[],d=0,e=new Map;for(let a of b){let b=a.repositoryPath||"";e.has(b)||e.set(b,[]),e.get(b).push(a)}let f=new Set([...(0,k.getAllWorktreeIds)(a),...(0,k.getAliasedWorktreeIds)(a)]),g=new Map((0,k.getAllWorktreePathIds)(a).map(a=>[i().resolve(a.path),a.id])),h=new Map,l=new Map;for(let[a,b]of g)h.set(a,new Set([b])),l.set(b,a);for(let b of(0,k.getAllWorktreeAliases)(a)){let a=l.get(b.worktreeId);a&&h.get(a)?.add(b.oldId)}let m=new Set(b.map(a=>i().resolve(a.path)));for(let[b,o]of e){if(!b)continue;let e=(0,k.getWorktreesByRepository)(a,b).filter(a=>!m.has(i().resolve(a.path))).map(a=>a.id);if(e.length>0){let b=(0,k.deleteWorktreesByIds)(a,e);for(let a of(c.push(...e),e)){f.delete(a);let b=l.get(a);void 0!==b&&(g.delete(b),h.delete(b))}n.info("worktree:cleanup",{deletedCount:b.deletedCount})}for(let b of o){let c=i().resolve(b.path),e=g.get(c),m=b.id,n=e??(m&&!f.has(m)?m:function(a,b,c){if(!c||0===c.size)return(0,j.ko)(a,b);let d=new Set(b);for(let a of c)d.delete(a);return(0,j.ko)(a,d)}(c,f,h.get(c)));f.add(n),g.set(c,n),l.set(n,c),(0,k.upsertWorktree)(a,{...b,id:n,name:b.branch??b.name}),d++}}return{deletedIds:c,upsertedCount:d}}function s(a,b){let c=new Set(b.map(a=>a.repositoryPath).filter(a=>!!a)),d=[];for(let b of(0,k.getRepositories)(a)){let e=b.path;if(!e||c.has(e)||function(a){if(!a)return!1;try{return g().existsSync(a)&&g().existsSync(i().join(a,".git"))}catch{return!0}}(e))continue;let f=(0,k.getWorktreesByRepository)(a,e).map(a=>a.id);if(0===f.length)continue;let h=(0,k.deleteWorktreesByIds)(a,f);d.push(...f),n.info("worktree:stale-repo-pruned",{repoPath:e,deletedCount:h.deletedCount})}return d}},85775:(a,b,c)=>{c.d(b,{Tm:()=>o,x4:()=>m,xJ:()=>n});var d=c(34129),e=c(43234),f=c(88807),g=c(72626),h=c(87374),i=c(39687);let j=(0,g.h)("timer-manager");function k(){return globalThis.__timerManagerState||(globalThis.__timerManagerState={timers:new Map,timerWorktrees:new Map,initialized:!1}),globalThis.__timerManagerState}async function l(a){let b=k(),c=(0,f.getDbInstance)();try{let b=(0,d.kx)(c,a);if(!b||"pending"!==b.status)return;let f=e.CLIToolManager.getInstance().getTool(b.cliToolId),g=b.instanceId;if(!await f.isRunning(b.worktreeId,g)){j.warn("timer:no-session",{timerId:a,worktreeId:b.worktreeId,instanceId:g}),(0,d.j2)(c,a,h.HR.NO_SESSION);return}(0,d.j2)(c,a,"sending");let k=await (0,i.d)(c,{worktreeId:b.worktreeId,content:b.message,cliToolId:b.cliToolId,instanceId:g});if(!k.ok){let b=`[${k.stage}] ${k.error}`;(0,d.j2)(c,a,"failed",void 0,b),j.error("timer:send-failed",{timerId:a,stage:k.stage,error:k.error});return}(0,d.j2)(c,a,"sent",Date.now()),j.info("timer:sent",{timerId:a,worktreeId:b.worktreeId})}catch(e){let b=e instanceof Error?e.message:String(e);try{(0,d.j2)(c,a,"failed",void 0,b)}catch{}j.error("timer:send-failed",{timerId:a,error:b})}finally{b.timers.delete(a),b.timerWorktrees.delete(a)}}function m(a,b,c){let d=k(),e=setTimeout(()=>{l(a)},c);d.timers.set(a,e),d.timerWorktrees.set(a,b)}function n(a){let b=k(),c=b.timers.get(a);c&&(clearTimeout(c),b.timers.delete(a),b.timerWorktrees.delete(a));let e=(0,f.getDbInstance)();(0,d.Ud)(e,a)}function o(a){let b=k(),c=(0,f.getDbInstance)();for(let[c,d]of b.timerWorktrees)if(d===a){let a=b.timers.get(c);a&&clearTimeout(a),b.timers.delete(c),b.timerWorktrees.delete(c)}(0,d.$$)(c,a)}},95220:(a,b,c)=>{c.r(b),c.d(b,{accumulateTuiContent:()=>g.IZ,cleanClaudeResponse:()=>f.NN,cleanCopilotResponse:()=>f.LH,cleanGeminiResponse:()=>f.IS,cleanOpenCodeResponse:()=>f.aW,clearPromptHashCache:()=>h.iX,clearTuiAccumulator:()=>g.q1,extractCopilotContentLines:()=>g.o0,extractTuiContentLines:()=>g.K0,findOverlapIndex:()=>g.vQ,getAccumulatedContent:()=>g.Uz,getActivePollers:()=>d.KQ,initTuiAccumulator:()=>g.tb,isDuplicatePrompt:()=>h.gv,isOpenCodeComplete:()=>e.bE,migrateResponsePollerWorktreeIds:()=>d.sR,normalizeCopilotLine:()=>g.IW,normalizePromptForDedup:()=>h.zm,renamePromptHashCacheKey:()=>h.i2,resolveExtractionStartIndex:()=>e.QM,startPolling:()=>d.g8,stopAllPolling:()=>d.fq,stopPolling:()=>d.Et,truncateMessage:()=>f.Sj});var d=c(45146),e=c(60),f=c(82450),g=c(13033),h=c(72457)}};
|