commandmate 0.46.0 → 0.46.1
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 +259 -259
- package/.next/app-path-routes-manifest.json +14 -14
- package/.next/build-manifest.json +5 -5
- package/.next/prerender-manifest.json +9 -9
- package/.next/react-loadable-manifest.json +2 -2
- 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/release-notes/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_client-reference-manifest.js +1 -1
- package/.next/server/app/api/auth/login/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/auth/logout/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/auth/status/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/capabilities/route.js +1 -1
- package/.next/server/app/api/capabilities/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/daily-summary/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/daily-summary/status/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/external-apps/[id]/health/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/external-apps/[id]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/external-apps/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/fs/browse/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/fs/recent-paths/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/hooks/agent-event/route.js.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 +9 -9
- 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.nft.json +1 -1
- package/.next/server/app/api/hooks/permission-request/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/metrics/vibe/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/ollama/models/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/push/escalation/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/push/subscriptions/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/push/vapid/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/relays/[relayId]/cancel/route.js.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/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/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_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]/direct-input/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/direct-input/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/direct-input/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_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 +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.js +9 -9
- 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_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/schedules/active/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/schedules/route_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_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/verify/runs/[runId]/cancel/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/verify/runs/[runId]/route_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/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 +7 -7
- 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 +14 -14
- package/.next/server/chunks/1501.js +2 -2
- package/.next/server/chunks/1559.js +1 -1
- package/.next/server/chunks/2460.js +1 -1
- package/.next/server/chunks/2908.js +1 -1
- package/.next/server/chunks/2984.js +25 -0
- package/.next/server/chunks/5209.js +1 -1
- package/.next/server/chunks/5292.js +2 -2
- package/.next/server/chunks/5845.js +1 -1
- package/.next/server/chunks/6130.js +1 -1
- package/.next/server/chunks/6401.js +1 -1
- package/.next/server/chunks/6722.js +1 -1
- package/.next/server/chunks/8581.js +4 -4
- package/.next/server/chunks/8728.js +2 -2
- package/.next/server/chunks/8791.js +1 -1
- package/.next/server/chunks/8918.js +5 -5
- package/.next/server/chunks/9390.js +1 -1
- package/.next/server/chunks/9627.js +2 -1
- package/.next/server/chunks/9731.js +1 -1
- package/.next/server/middleware-build-manifest.js +1 -1
- package/.next/server/middleware-manifest.json +5 -5
- package/.next/server/middleware-react-loadable-manifest.js +1 -1
- package/.next/server/pages/500.html +1 -1
- package/.next/server/server-reference-manifest.json +1 -1
- package/.next/static/chunks/{2407-acb644c5487e1720.js → 2407-9703c569370b8a9d.js} +1 -1
- package/.next/static/chunks/{2717.21abf5b6bbd45520.js → 2717.1583400c272dc1d9.js} +1 -1
- package/.next/static/chunks/5371-0dc947683e46e78c.js +1 -0
- package/.next/static/chunks/5794-4eee51ff1e878aa6.js +1 -0
- package/.next/static/chunks/{8407-9a72e6f07c5d5458.js → 8407-155f84e5ba05f1d5.js} +1 -1
- package/.next/static/chunks/app/{layout-ae30ce63569c22be.js → layout-3e357690446cd2da.js} +1 -1
- package/.next/static/chunks/app/worktrees/[id]/page-effbf0796881dd5a.js +1 -0
- package/.next/static/chunks/{webpack-c0b821f340afdebf.js → webpack-468b7b33030234b3.js} +1 -1
- package/.next/trace +13 -13
- package/dist/cli/commands/wait.d.ts.map +1 -1
- package/dist/cli/commands/wait.js +6 -1
- package/dist/cli/types/api-responses.d.ts +8 -6
- package/dist/cli/types/api-responses.d.ts.map +1 -1
- package/dist/lib/polling/auto-yes-suppression-reason.d.ts +13 -1
- package/dist/lib/polling/auto-yes-suppression-reason.d.ts.map +1 -1
- package/dist/lib/polling/auto-yes-suppression-reason.js +3 -0
- package/dist/server/src/lib/assistant-response-saver.js +13 -0
- package/dist/server/src/lib/auto-yes-poller.js +252 -54
- package/dist/server/src/lib/conversation-logger.js +14 -2
- package/dist/server/src/lib/db/chat-db.js +2 -1
- package/dist/server/src/lib/history/user-turn-recorder.js +14 -0
- package/dist/server/src/lib/hooks/sources/antigravity/history.js +28 -0
- package/dist/server/src/lib/hooks/sources/claude/history.js +7 -0
- package/dist/server/src/lib/hooks/sources/codex/history.js +7 -0
- package/dist/server/src/lib/hooks/sources/command-code/history.js +7 -0
- package/dist/server/src/lib/hooks/sources/transcript-history.js +34 -0
- package/dist/server/src/lib/log-manager.js +7 -2
- package/dist/server/src/lib/polling/auto-yes-enter-fallback-state.js +22 -3
- package/dist/server/src/lib/polling/auto-yes-poller-state.js +234 -0
- package/dist/server/src/lib/polling/auto-yes-suppression-reason.js +3 -0
- package/dist/server/src/lib/polling/pending-scraped-response.js +119 -3
- package/dist/server/src/lib/polling/poller-owner.js +110 -0
- package/dist/server/src/lib/polling/response-checker.js +202 -39
- package/dist/server/src/lib/polling/response-dedup.js +8 -0
- package/dist/server/src/lib/polling/response-poller-core.js +131 -12
- package/dist/server/src/lib/polling/structured-history-gate.js +20 -1
- package/dist/server/src/lib/prompt-answer-sender.js +59 -12
- package/dist/server/src/lib/realtime/terminal-broadcast.js +14 -0
- package/dist/server/src/lib/session/chat-turn-progress.js +57 -6
- package/dist/server/src/lib/session/current-output-builder.js +19 -0
- package/dist/server/src/lib/session/worktree-session-reconcile.js +83 -10
- package/dist/server/src/lib/timer-manager.js +7 -0
- package/dist/server/src/lib/tmux/tmux.js +24 -2
- package/dist/server/src/lib/verification/env-clean-gate.js +30 -2
- package/package.json +1 -1
- package/release-notes/0.46.1.json +40 -0
- package/.next/server/chunks/5625.js +0 -25
- package/.next/static/chunks/5371-a94ed618148287a0.js +0 -1
- package/.next/static/chunks/5794-947fb4934d8be193.js +0 -1
- package/.next/static/chunks/app/worktrees/[id]/page-2eb1d0fd0a077b7e.js +0 -1
- /package/.next/static/{zI2nQ6WKboSbFbMF4EtrJ → QxDf7lm-JJkWoj-TyWiSB}/_buildManifest.js +0 -0
- /package/.next/static/{zI2nQ6WKboSbFbMF4EtrJ → QxDf7lm-JJkWoj-TyWiSB}/_ssgManifest.js +0 -0
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";exports.id=1559,exports.ids=[1559],exports.modules={24581:(a,b,c)=>{c.d(b,{Cb:()=>f,Mu:()=>g,RY:()=>j,Tt:()=>i,Ui:()=>q,Xq:()=>m,ZV:()=>t,h_:()=>h,jF:()=>r,kT:()=>p,nY:()=>l,qX:()=>s,wt:()=>o});var d=c(62887),e=c(27870);let f=new Set(["user_prompt_submit","pre_tool_use","post_tool_use"]),g=18e5,h={predicted:2e4,confirmed:18e5},i=3,j=16,k={turnId:null,openedAt:null,closedAt:null,closedBy:null};function l(a){return null===a?k:{turnId:a.turnId,openedAt:a.openedAt,closedAt:a.closedAt,closedBy:a.closedBy}}function m(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 n(a,b){return"string"!=typeof a||""===a?null:a.slice(0,b)}function o(a){return n(a,e.lY)}function p(a){return n(a,d.h9)}function q(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 r(a,b){let c=null===a.confirmedAt?h.predicted:h.confirmed;return b-a.at<c}function s(a,b,c){return null!==b&&c-a.at>=1e3*b}function t(a,b){return null===a.sessionId||null===b||a.sessionId===b}},26547:(a,b,c)=>{c.d(b,{Yz:()=>L,jw:()=>J});var d=c(51297),e=c(61789);let f=["minimal","low","medium","high","xhigh","max","ultra","persistent"];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|max|ultra|persistent)\b)?/i,n=/^\s*[^\s·]+\s+[A-Za-z][A-Za-z_-]*(?=\s|$)/,o=/^\s*\S[^·]*·\s*~?\/\S*(?:\s*·[^\n]*|[^\S\n]{2,}\S[^\n]*)$/;function p(a){if(!e.aW.test(a)&&!o.test(a))return null;let b=a.indexOf("\xb7");if(b<0)return null;let c=a.slice(0,b),d=m.exec(c);if(!d)return null;let f=d[1];if(!j(f))return null;let g=d[2]?l(d[2]):null;return null!==g||/\d/.test(f)?null===g&&n.test(c)?{model:f,effort:null,effortUnreadable:!0}:{model:f,effort:g}:null}let q=/^\s*[\u2500-\u259F][\s\u2500-\u259F]*(\S[^\u2500-\u259F]*?)\s+with\s+(minimal|low|medium|high|xhigh)\s+effort\b/i,r=/^\s*[\u2500-\u259F][\s\u2500-\u259F]*(\S[^\u2500-\u259F·]*?)\s+·\s+Claude\s+[A-Za-z]+\b/,s=/^\s*\S\s+([A-Za-z]+)\s+·\s+\/effort\s*$/;function t(a){let b=q.exec(a);if(b){let a=b[1].trim();return k(a)?{model:a,effort:l(b[2])}:null}let c=r.exec(a);if(!c)return null;let d=c[1].trim();return/\swith\s/i.test(d)||!k(d)?null:{model:d,effort:null}}function u(a){let b=s.exec(a);if(!b)return null;let c=l(b[1]);return null===c?null:{model:null,effort:c}}let v=/^\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 w(a){let b=v.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 x=/^\s*(?:\?\s+for\s+shortcuts|esc\s+to\s+cancel)\b/i,y=/^\s*[\u2500-\u259F][\s\u2500-\u259F]*(\S[^\u2500-\u259F]*?)\s+\((minimal|low|medium|high|xhigh)\)\s*$/i;function z(a){if(!x.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 A(a){let b=y.exec(a);if(!b)return null;let c=b[1].trim();return k(c)?{model:c,effort:l(b[2])}:null}let B=/^\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 C(a){let b=B.exec(a);if(!b)return null;let c=b[1];return j(c)?{model:c,effort:b[2]?l(b[2]):null}:null}let D=/^\s*▣\s+[A-Za-z][A-Za-z0-9-]*\s+·\s+([^·]+?)(?:\s+·\s+[\d.]+\s?m?s)?\s*$/,E=/^\s*[A-Za-z][A-Za-z0-9-]*\s+·\s+([^·]+?)\s+·\s+[\d.]+\s?m?s\s*$/,F=/^\s*[┃╹]/,G=/^\s*#\s+models:\s*([^·]+?)(?:\s+with\s+([A-Za-z]+)\s+effort)?\s*(?:·|$)/i;function H(a){let b=G.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 I(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 J(a,b){if(!b)return g();switch(a){case"codex":return I(b,p)??g();case"claude":return function(a){let b=I(a,t);if(!b||null!==b.effort)return b;let c=I(a,u);return c?{model:b.model,effort:c.effort}:b}(b)??I(b,w)??g();case"antigravity":return I(b,z)??I(b,A)??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=I(b,C);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":case"opencode-v2":return function(a){let b=a.split("\n").map(a=>(0,d.aJ)(a));for(let a=b.length-1;a>=0;a--){let c=function(a){let b=D.exec(a);if(!b)return null;let c=b[1].trim();return k(c)?{model:c,effort:null}:null}(b[a])??function(a,b){let c=E.exec(a[b]);if(!c)return null;let d=c[1].trim();if(!k(d))return null;for(let c=b+1;c<a.length;c++)if(""!==a[c].trim())return F.test(a[c])?{model:d,effort:null}:null;return null}(b,a);if(c)return c}return null}(b)??g();case"command-code":return I(b,H)??g();default:return g()}}let K=/-(low|medium|high)$/i;function L(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=K.exec(a);return b?b[1].toLowerCase():null}(e)??f:f;return{model:e,effort:(d||null)??g}}},27675:(a,b,c)=>{c.d(b,{GR:()=>g,MR:()=>m,NR:()=>o,Wl:()=>i,YN:()=>l,cr:()=>r,eZ:()=>q,gq:()=>j,li:()=>k,vR:()=>n});var d=c(85726),e=c(24455),f=c(36925);function g(a){let b="multiple_choice"===a.type?a.options.map(a=>`${a.number}.${a.label}`):a.options;return[(0,d.J)(a),...b].join("\0")}let h=(0,f.v)("__autoYesEnterFallbacks",()=>new Map);function i(a,b,c,d,f=Date.now()){h.set((0,e.v7)(a,b,c),{outcome:"sent",...d,sentAt:f,at:f})}function j(a,b,c,d,f=Date.now()){let g=(0,e.v7)(a,b,c),i=h.get(g);i&&i.screenKey===d&&h.set(g,{...i,outcome:"no-effect",at:f})}function k(a,b,c){return h.get((0,e.v7)(a,b,c))??null}function l(a,b){return null===a?null:{outcome:a.outcome,promptType:a.promptType,refusalReason:a.refusalReason,sentAt:a.sentAt,at:a.at,currentPrompt:null!=b&&g(b)===a.screenKey}}function m(a){h.delete(a)}function n(a){for(let b of(0,e._9)([...h.keys()],a))h.delete(b)}function o(){h.clear()}let p=(0,f.v)("__autoYesEnterFallbackEpochs",()=>new Map);function q(a,b,c){let d=(0,e.v7)(a,b,c);h.delete(d),p.set(d,(p.get(d)??0)+1)}function r(a){return p.get(a)??0}},27870:(a,b,c)=>{c.d(b,{lY:()=>h,QB:()=>e,Yo:()=>m,fO:()=>n,LF:()=>j,PP:()=>i,T5:()=>g});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={"opencode-v2":{once:"Allow once",always:"Always allow",reject:"Reject"}};function g(a){let b=f[a];return b?e.map(a=>b[a.reply]?{...a,label:b[a.reply]}:a):e}let h=500;function i(a){return"string"==typeof a&&""!==a}function j(a,b){return"permission-id"===a&&b.some(a=>i(a.id)&&!a.deliveryExpired)}let k={notification:"Notification(permission_prompt)","permission-request":"PermissionRequest (no decision)"};function l(a,b){let c=[`A dialog is open in ${a}: the agent reported it via ${k[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,g=i(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(" / ")}. `+(g?`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 m(a,b){return{type:d.LT,status:"pending",question:l(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:i(b.decisionId)?b.decisionId:null,...b.patterns&&b.patterns.length>0?{patterns:[...b.patterns]}:{}}}function n(a,b){return{type:d.LT,status:"unclassified",question:l(a,b),options:[],source:b.source,...b.message?{message:b.message}:{},...b.toolName?{toolName:b.toolName}:{},...b.askUserQuestion?{askUserQuestion:b.askUserQuestion}:{}}}},27939:(a,b,c)=>{c.d(b,{F_:()=>t,KA:()=>u,XO:()=>x,Y2:()=>n,jp:()=>m,lr:()=>v,pr:()=>w});var d=c(29021),e=c(21820),f=c(33873),g=c(8004),h=c(24455),i=c(72626),j=c(36925);let k=(0,i.h)("lib/session/opencode-session-store"),l=/^ses[A-Za-z0-9_-]{1,128}$/;function m(a){return"string"==typeof a&&l.test(a)}let n=200,o=(0,j.v)("__opencodeSessionMemories",()=>new Map);function p(a){return(0,h.v7)(a.worktreeId,a.cliToolId,a.instanceId)}function q(){let a=(0,f.join)((0,e.homedir)(),".commandmate","opencode-sessions.json");return(0,g.T)(process.env.CM_OPENCODE_SESSION_FILE,a,"CM_OPENCODE_SESSION_FILE")}function r(){try{let a=JSON.parse((0,d.readFileSync)(q(),"utf8"));if("object"!=typeof a||null===a||Array.isArray(a))return{};let b={};for(let[c,d]of Object.entries(a))!("object"!=typeof d||null===d||Array.isArray(d))&&m(d.sessionId)&&"string"==typeof d.worktreePath&&d.worktreePath.length>0&&(b[c]={sessionId:d.sessionId,title:"string"==typeof d.title?d.title:null,worktreePath:d.worktreePath,updatedAt:"number"==typeof d.updatedAt?d.updatedAt:0});return b}catch{return{}}}function s(a){let b=q();try{(0,d.mkdirSync)((0,f.dirname)(b),{recursive:!0}),(0,d.writeFileSync)(b,`${JSON.stringify(a,null,2)}
|
|
1
|
+
"use strict";exports.id=1559,exports.ids=[1559],exports.modules={24581:(a,b,c)=>{c.d(b,{Cb:()=>f,Mu:()=>g,RY:()=>j,Tt:()=>i,Ui:()=>q,Xq:()=>m,ZV:()=>t,h_:()=>h,jF:()=>r,kT:()=>p,nY:()=>l,qX:()=>s,wt:()=>o});var d=c(62887),e=c(27870);let f=new Set(["user_prompt_submit","pre_tool_use","post_tool_use"]),g=18e5,h={predicted:2e4,confirmed:18e5},i=3,j=16,k={turnId:null,openedAt:null,closedAt:null,closedBy:null};function l(a){return null===a?k:{turnId:a.turnId,openedAt:a.openedAt,closedAt:a.closedAt,closedBy:a.closedBy}}function m(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 n(a,b){return"string"!=typeof a||""===a?null:a.slice(0,b)}function o(a){return n(a,e.lY)}function p(a){return n(a,d.h9)}function q(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 r(a,b){let c=null===a.confirmedAt?h.predicted:h.confirmed;return b-a.at<c}function s(a,b,c){return null!==b&&c-a.at>=1e3*b}function t(a,b){return null===a.sessionId||null===b||a.sessionId===b}},26547:(a,b,c)=>{c.d(b,{Yz:()=>L,jw:()=>J});var d=c(51297),e=c(61789);let f=["minimal","low","medium","high","xhigh","max","ultra","persistent"];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|max|ultra|persistent)\b)?/i,n=/^\s*[^\s·]+\s+[A-Za-z][A-Za-z_-]*(?=\s|$)/,o=/^\s*\S[^·]*·\s*~?\/\S*(?:\s*·[^\n]*|[^\S\n]{2,}\S[^\n]*)$/;function p(a){if(!e.aW.test(a)&&!o.test(a))return null;let b=a.indexOf("\xb7");if(b<0)return null;let c=a.slice(0,b),d=m.exec(c);if(!d)return null;let f=d[1];if(!j(f))return null;let g=d[2]?l(d[2]):null;return null!==g||/\d/.test(f)?null===g&&n.test(c)?{model:f,effort:null,effortUnreadable:!0}:{model:f,effort:g}:null}let q=/^\s*[\u2500-\u259F][\s\u2500-\u259F]*(\S[^\u2500-\u259F]*?)\s+with\s+(minimal|low|medium|high|xhigh)\s+effort\b/i,r=/^\s*[\u2500-\u259F][\s\u2500-\u259F]*(\S[^\u2500-\u259F·]*?)\s+·\s+Claude\s+[A-Za-z]+\b/,s=/^\s*\S\s+([A-Za-z]+)\s+·\s+\/effort\s*$/;function t(a){let b=q.exec(a);if(b){let a=b[1].trim();return k(a)?{model:a,effort:l(b[2])}:null}let c=r.exec(a);if(!c)return null;let d=c[1].trim();return/\swith\s/i.test(d)||!k(d)?null:{model:d,effort:null}}function u(a){let b=s.exec(a);if(!b)return null;let c=l(b[1]);return null===c?null:{model:null,effort:c}}let v=/^\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 w(a){let b=v.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 x=/^\s*(?:\?\s+for\s+shortcuts|esc\s+to\s+cancel)\b/i,y=/^\s*[\u2500-\u259F][\s\u2500-\u259F]*(\S[^\u2500-\u259F]*?)\s+\((minimal|low|medium|high|xhigh)\)\s*$/i;function z(a){if(!x.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 A(a){let b=y.exec(a);if(!b)return null;let c=b[1].trim();return k(c)?{model:c,effort:l(b[2])}:null}let B=/^\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 C(a){let b=B.exec(a);if(!b)return null;let c=b[1];return j(c)?{model:c,effort:b[2]?l(b[2]):null}:null}let D=/^\s*▣\s+[A-Za-z][A-Za-z0-9-]*\s+·\s+([^·]+?)(?:\s+·\s+[\d.]+\s?m?s)?\s*$/,E=/^\s*[A-Za-z][A-Za-z0-9-]*\s+·\s+([^·]+?)\s+·\s+[\d.]+\s?m?s\s*$/,F=/^\s*[┃╹]/,G=/^\s*#\s+models:\s*([^·]+?)(?:\s+with\s+([A-Za-z]+)\s+effort)?\s*(?:·|$)/i;function H(a){let b=G.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 I(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 J(a,b){if(!b)return g();switch(a){case"codex":return I(b,p)??g();case"claude":return function(a){let b=I(a,t);if(!b||null!==b.effort)return b;let c=I(a,u);return c?{model:b.model,effort:c.effort}:b}(b)??I(b,w)??g();case"antigravity":return I(b,z)??I(b,A)??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=I(b,C);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":case"opencode-v2":return function(a){let b=a.split("\n").map(a=>(0,d.aJ)(a));for(let a=b.length-1;a>=0;a--){let c=function(a){let b=D.exec(a);if(!b)return null;let c=b[1].trim();return k(c)?{model:c,effort:null}:null}(b[a])??function(a,b){let c=E.exec(a[b]);if(!c)return null;let d=c[1].trim();if(!k(d))return null;for(let c=b+1;c<a.length;c++)if(""!==a[c].trim())return F.test(a[c])?{model:d,effort:null}:null;return null}(b,a);if(c)return c}return null}(b)??g();case"command-code":return I(b,H)??g();default:return g()}}let K=/-(low|medium|high)$/i;function L(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=K.exec(a);return b?b[1].toLowerCase():null}(e)??f:f;return{model:e,effort:(d||null)??g}}},27675:(a,b,c)=>{c.d(b,{GR:()=>g,MR:()=>m,NR:()=>o,Wl:()=>i,YN:()=>l,cr:()=>r,eZ:()=>q,gq:()=>j,li:()=>k,vR:()=>n});var d=c(85726),e=c(24455),f=c(36925);function g(a){let b="multiple_choice"===a.type?a.options.map(a=>`${a.number}.${a.label}`):a.options;return[(0,d.J)(a),...b].join("\0")}let h=(0,f.v)("__autoYesEnterFallbacks",()=>new Map);function i(a,b,c,d,f=Date.now()){let g=(0,e.v7)(a,b,c),j=r(g),{epoch:k=j,...l}=d;return k===j&&(h.set(g,{outcome:"sent",...l,sentAt:f,at:f,epoch:k}),!0)}function j(a,b,c,d,f=Date.now()){let g=(0,e.v7)(a,b,c),i=h.get(g);i&&i.screenKey===d&&h.set(g,{...i,outcome:"no-effect",at:f})}function k(a,b,c){let d=(0,e.v7)(a,b,c),f=h.get(d);return f&&f.epoch===r(d)?f:null}function l(a,b){return null===a?null:{outcome:a.outcome,promptType:a.promptType,refusalReason:a.refusalReason,sentAt:a.sentAt,at:a.at,currentPrompt:null!=b&&g(b)===a.screenKey}}function m(a){h.delete(a)}function n(a){for(let b of(0,e._9)([...h.keys()],a))h.delete(b)}function o(){h.clear()}let p=(0,f.v)("__autoYesEnterFallbackEpochs",()=>new Map);function q(a,b,c){let d=(0,e.v7)(a,b,c);h.delete(d),p.set(d,(p.get(d)??0)+1)}function r(a){return p.get(a)??0}},27870:(a,b,c)=>{c.d(b,{lY:()=>h,QB:()=>e,Yo:()=>m,fO:()=>n,LF:()=>j,PP:()=>i,T5:()=>g});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={"opencode-v2":{once:"Allow once",always:"Always allow",reject:"Reject"}};function g(a){let b=f[a];return b?e.map(a=>b[a.reply]?{...a,label:b[a.reply]}:a):e}let h=500;function i(a){return"string"==typeof a&&""!==a}function j(a,b){return"permission-id"===a&&b.some(a=>i(a.id)&&!a.deliveryExpired)}let k={notification:"Notification(permission_prompt)","permission-request":"PermissionRequest (no decision)"};function l(a,b){let c=[`A dialog is open in ${a}: the agent reported it via ${k[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,g=i(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(" / ")}. `+(g?`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 m(a,b){return{type:d.LT,status:"pending",question:l(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:i(b.decisionId)?b.decisionId:null,...b.patterns&&b.patterns.length>0?{patterns:[...b.patterns]}:{}}}function n(a,b){return{type:d.LT,status:"unclassified",question:l(a,b),options:[],source:b.source,...b.message?{message:b.message}:{},...b.toolName?{toolName:b.toolName}:{},...b.askUserQuestion?{askUserQuestion:b.askUserQuestion}:{}}}},27939:(a,b,c)=>{c.d(b,{F_:()=>t,KA:()=>u,XO:()=>x,Y2:()=>n,jp:()=>m,lr:()=>v,pr:()=>w});var d=c(29021),e=c(21820),f=c(33873),g=c(8004),h=c(24455),i=c(72626),j=c(36925);let k=(0,i.h)("lib/session/opencode-session-store"),l=/^ses[A-Za-z0-9_-]{1,128}$/;function m(a){return"string"==typeof a&&l.test(a)}let n=200,o=(0,j.v)("__opencodeSessionMemories",()=>new Map);function p(a){return(0,h.v7)(a.worktreeId,a.cliToolId,a.instanceId)}function q(){let a=(0,f.join)((0,e.homedir)(),".commandmate","opencode-sessions.json");return(0,g.T)(process.env.CM_OPENCODE_SESSION_FILE,a,"CM_OPENCODE_SESSION_FILE")}function r(){try{let a=JSON.parse((0,d.readFileSync)(q(),"utf8"));if("object"!=typeof a||null===a||Array.isArray(a))return{};let b={};for(let[c,d]of Object.entries(a))!("object"!=typeof d||null===d||Array.isArray(d))&&m(d.sessionId)&&"string"==typeof d.worktreePath&&d.worktreePath.length>0&&(b[c]={sessionId:d.sessionId,title:"string"==typeof d.title?d.title:null,worktreePath:d.worktreePath,updatedAt:"number"==typeof d.updatedAt?d.updatedAt:0});return b}catch{return{}}}function s(a){let b=q();try{(0,d.mkdirSync)((0,f.dirname)(b),{recursive:!0}),(0,d.writeFileSync)(b,`${JSON.stringify(a,null,2)}
|
|
2
2
|
`,{mode:384})}catch(a){k.warn("opencode-session-file-write-failed",{path:b,error:a instanceof Error?a.message:String(a)})}}function t(a,b,c=Date.now()){if(!m(b.sessionId))return k.warn("opencode-session-id-rejected",{worktreeId:a.worktreeId,instanceId:a.instanceId??a.cliToolId}),!1;if(0===b.worktreePath.length)return!1;let d={sessionId:b.sessionId,title:"string"==typeof b.title?b.title.slice(0,n):null,worktreePath:b.worktreePath,updatedAt:c},e=p(a);o.set(e,d);let f=r();return f[e]=d,s(f),!0}function u(a){let b=p(a),c=o.get(b);if(c)return c;let d=r()[b];return d?(o.set(b,d),d):null}function v(a){let b=p(a);o.delete(b);let c=r();b in c&&(delete c[b],s(c))}function w(a,b){let c=u(a);return c?c.worktreePath!==b?(k.info("opencode-session-recovery-path-mismatch",{worktreeId:a.worktreeId,instanceId:a.instanceId??a.cliToolId,recorded:c.worktreePath}),null):m(c.sessionId)?c.sessionId:null:null}function x(a,b){return m(b)?`${a} -s ${b}`:a}},33294:(a,b,c)=>{c.r(b),c.d(b,{AGENT_EVENT_DEDUP_WINDOW_MS:()=>l,AGENT_MODEL_EFFORT_SUFFIX_PATTERN:()=>H,LIFECYCLE_AGENT_EVENT_TYPES:()=>v,STRUCTURED_PROMPT_PROVISIONAL_MAX_AGE_MS:()=>aQ,STRUCTURED_STATE_MAX_AGE_MS:()=>aw,agentEventKeyClaimedAt:()=>r,beginAgentEventGeneration:()=>aN,classifyAgentEventDelivery:()=>w,clearAgentStopEvents:()=>aX,clearAskUserQuestion:()=>aF,clearStructuredPromptWaiting:()=>aW,closeAgentTurn:()=>aj,corroborateStructuredPromptWaiting:()=>aU,discardAgentEventState:()=>aP,getAgentEventDropCounts:()=>o,getAgentEventGenerationStartedAt:()=>aO,getAgentModelBaseline:()=>M,getAgentTurn:()=>ah,getAskUserQuestion:()=>aE,getAwaitingInstruction:()=>az,getLastAgentEvent:()=>aM,getLastCapturedModelInfo:()=>S,getLastKnownAgentEffort:()=>Y,getLastKnownAgentModel:()=>P,getLastReportedAgentEffort:()=>X,getLastStopEventAt:()=>aJ,getPendingDecisions:()=>ag,getPublishedAgentTurn:()=>ai,getRecentEventIdentityCount:()=>y,getRecentEventKeyCount:()=>u,getResolvedAgentModelInfo:()=>T,getStructuredPromptWaiting:()=>aT,getStructuredSessionState:()=>ax,isAwaitingInstruction:()=>aA,isDuplicateAgentEvent:()=>p,isPreToolUseOutsideTurn:()=>an,isSameAgentModelName:()=>K,joinOpenTurnFromDuplicate:()=>aq,markStructuredPromptRecorded:()=>aV,observeScraperCompletionEvidence:()=>ak,onAgentModelChange:()=>L,recordAgentEvent:()=>aL,recordAgentReportedEffort:()=>W,recordAgentReportedModel:()=>Q,recordAgentStopEvent:()=>aI,recordAskUserQuestion:()=>aD,recordCapturedModelInfo:()=>R,reportPermissionRequestPending:()=>aR,reportQuestionPending:()=>aS,shortSessionTag:()=>s});var d=c(24455),e=c(27675),f=c(55511),g=c(24581),h=c(36925);let i=(0,h.v)("__agentEventDrops",()=>new Map),j=(0,h.v)("__agentEventRecentKeys",()=>new Map),k=(0,h.v)("__agentEventRecentIdentities",()=>new Map),l=3e3;function m(){return{dedupDropped:{identity:0,timeWindow:0},decisionEvicted:0,idsDiscarded:0,dialogTimedOut:0,decisionOverflow:0}}function n(a){let b=i.get(a);return b||(b=m(),i.set(a,b),x(i,512)),b}function o(a,b,c){let e=i.get((0,d.v7)(a,b,c));return e?{...e,dedupDropped:{...e.dedupDropped}}:m()}function p(a,b,c,e,f,h=Date.now(),i=null){var k,m;if(!f)return!1;let n=(0,d.v7)(a,b,c),o=q(n,e,i,f),r=j.get(o);return void 0!==r&&h-r<l||(j.set(o,h),g.Cb.has(e)?t(n,["stop"],f):"stop"===e&&(k=n,m=f,t(k,g.Cb,m)),function(a){for(let[b,c]of j)a-c>=l&&j.delete(b);for(;j.size>512;){let a=j.keys().next();if(a.done)break;j.delete(a.value)}}(h),!1)}function q(a,b,c,d){return[a,b,c??"",d].join(" ")}function r(a,b,c,e,f,g=null){if(!f)return null;let h=(0,d.v7)(a,b,c);return j.get(q(h,e,g,f))??null}function s(a){return(0,f.createHash)("sha256").update(a).digest("hex").slice(0,8)}function t(a,b,c){let d=Array.from(b,b=>`${a} ${b} `),e=` ${c}`,f=(a,b)=>a.length>=b.length+e.length&&a.startsWith(b);for(let a of j.keys())a.endsWith(e)&&d.some(b=>f(a,b))&&j.delete(a)}function u(){return j.size}let v=["stop","session_end"];function w(a){let b=(0,d.v7)(a.worktreeId,a.cliToolId,a.instanceId);if(null!==a.identityKind){let e=null===a.identity?null:(0,g.Xq)(a.identity);if(null!==a.identity&&null===e&&(n(b).idsDiscarded+=1),null!==e)return!function(a,b){let c=(0,d.v7)(a.worktreeId,a.cliToolId,a.instanceId),e=k.get(c);e||(e=new Map,k.set(c,e),x(k,512));let f=[a.event,a.detail??"",b].join(" ");return!!e.has(f)||(e.set(f,a.at),x(e,512),!1)}(a,e)?{duplicate:!1}:(n(b).dedupDropped.identity+=1,{duplicate:!0,by:"identity"});if(v.includes(a.event)){var c;return"stop"===a.event&&a.sessionId&&(c=a.sessionId,t(b,g.Cb,c)),{duplicate:!1}}}return p(a.worktreeId,a.cliToolId,a.instanceId,a.event,a.sessionId,a.at,a.detail)?(n(b).dedupDropped.timeWindow+=1,{duplicate:!0,by:"time-window"}):{duplicate:!1}}function x(a,b){for(;a.size>b;){let b=a.keys().next();if(b.done)break;a.delete(b.value)}}function y(a,b,c){if(void 0===a||void 0===b){let a=0;for(let b of k.values())a+=b.size;return a}return k.get((0,d.v7)(a,b,c))?.size??0}var z=c(62887),A=c(26547);let B=(0,h.v)("__agentEventLastModel",()=>new Map),C=(0,h.v)("__agentEventLastModelAt",()=>new Map),D=(0,h.v)("__agentCapturedModelInfo",()=>new Map),E=(0,h.v)("__agentEventLastEffort",()=>new Map),F=(0,h.v)("__agentModelBaseline",()=>new Map),G=(0,h.v)("__agentModelChangeListeners",()=>new Set),H=/[-_ ](?:minimal|low|medium|high|xhigh)$/i,I=/\bcontext\b/gi;function J(a){return a.replace(H,"").replace(I,"").toLowerCase().replace(/[^a-z0-9]/g,"")}function K(a,b,c={}){let d=J(a),e=J(b);return d===e||!!c.crossSource&&0!==d.length&&0!==e.length&&(d.includes(e)||e.includes(d))}function L(a){return G.add(a),()=>{G.delete(a)}}function M(a,b,c){return F.get((0,d.v7)(a,b,c))??null}function N(a,b,c,e,f){let g=(0,d.v7)(a,b,c),{info:h,source:i}=V(g,b),j=h.model;if(null===j||null===i)return;let k=F.get(g),l={model:j,source:i};if(void 0===k){F.set(g,l),x(F,512);return}if(K(k.model,j,{crossSource:k.source!==i}))return void F.set(g,l);F.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 G)try{a(m)}catch{}}function O(a,b){"string"==typeof b.model&&""!==b.model&&(B.set(a,b.model.slice(0,z.h9)),C.set(a,b.at))}function P(a,b,c){return B.get((0,d.v7)(a,b,c))??null}function Q(a,b,c,e,f=Date.now()){if("string"!=typeof e||""===e)return;let g=(0,d.v7)(a,b,c);B.set(g,e.slice(0,z.h9)),C.set(g,f),N(a,b,c,"hook",f)}function R(a,b,c,e,f=Date.now()){if(!e.model&&!e.effort)return;let g=(0,d.v7)(a,b,c),h=D.get(g),i=e.model?e.model.slice(0,z.h9):h?.model??null;D.set(g,{model:i,effort:e.effortUnreadable?null:e.effort??h?.effort??null,modelChangedAt:null===i?null:i===(h?.model??null)?h?.modelChangedAt??f:f}),e.model&&N(a,b,c,"frame",f)}function S(a,b,c){let e=D.get((0,d.v7)(a,b,c));return{model:e?.model??null,effort:e?.effort??null}}function T(a,b,c){return V((0,d.v7)(a,b,c),b).info}let U=new Set(["claude"]);function V(a,b){let c=B.get(a)??null,d=D.get(a),e={model:d?.model??null,effort:d?.effort??null},f=E.get(a)??null,g=d?.modelChangedAt??null,h=null!==c&&null!==e.model&&null!==g&&U.has(b)&&g>(C.get(a)??0)&&!K(c,e.model,{crossSource:!0}),i=(0,A.Yz)(b,h?null:c,e,f);return null===i.model?{info:i,source:null}:{info:i,source:null===c||h?"frame":"hook"}}function W(a,b,c,e){"string"==typeof e&&""!==e&&E.set((0,d.v7)(a,b,c),e.slice(0,z.h9))}function X(a,b,c){return E.get((0,d.v7)(a,b,c))??null}function Y(a,b,c){return T(a,b,c).effort}let Z=(0,h.v)("__agentEventGenerationStartedAt",()=>new Map),$=(0,h.v)("__agentEventTurns",()=>new Map),_=(0,h.v)("__agentEventReopenedTurns",()=>new Map),aa=(0,h.v)("__agentEventTurnSeq",()=>({value:0}));function ab(a){return Z.get(a)??null}function ac(a){let b=$.get(a);return b&&b.generationAt===ab(a)?b:null}function ad(a,b){let c=ac(a);return null===c?null:(null===c.closedAt&&b-c.displayEvent.at>=g.Mu&&(c.closedAt=c.displayEvent.at+g.Mu,c.closedBy="stale"),c)}function ae(a){return aa.value+=1,`turn-${a}-${aa.value}`}function af(a,b,c){let d=b.pendingDecisions.filter(a=>(0,g.jF)(a,c)),e=b.pendingDecisions.length-d.length;return e>0&&(n(a).dialogTimedOut+=e,b.pendingDecisions=d),d}function ag(a,b,c,e=Date.now()){let f=(0,d.v7)(a,b,c),g=ad(f,e);return null===g?[]:af(f,g,e)}function ah(a,b,c,e=Date.now()){return ad((0,d.v7)(a,b,c),e)}function ai(a,b,c,d=Date.now()){return(0,g.nY)(ah(a,b,c,d))}function aj(a,b,c,e,f=Date.now()){let g=ac((0,d.v7)(a,b,c));return null!==g&&null===g.closedAt&&(g.closedAt=f,g.closedBy=e,!0)}function ak(a,b,c,e,f=Date.now(),h=!0){let i=ac((0,d.v7)(a,b,c));return null!==i&&null===i.closedAt&&(e?(i.scraperCompletionPolls+=1,!(i.scraperCompletionPolls<g.Tt)&&!!h&&(i.closedAt=f,i.closedBy="scraper_evidence",!0)):(i.scraperCompletionPolls=0,!1))}function al(a,b){let c=$.get(a);c&&(0!==c.pendingDecisions.length&&(n(a).decisionEvicted+=c.pendingDecisions.length,c.pendingDecisions=[]),null===c.closedAt&&(c.closedAt=b,c.closedBy="generation",c.generationAt=b))}function am(a){let b=ac(a);return null!==b&&null!==b.closedAt&&"stop"===b.closedBy}function an(a,b,c,e){return e&&am((0,d.v7)(a,b,c))}function ao(a){return{event:a.event,at:a.at,detail:a.detail}}function ap(a,b,c,{continueOpen:d}){let e=ac(a),f=null!==e&&null===e.closedAt&&null!==e.openedAt&&(0,g.ZV)(e,b.sessionId);if(d&&f){e.displayEvent=ao(b),e.sessionId??=b.sessionId,e.scraperCompletionPolls=0;return}let h=null!==e&&null===e.openedAt&&null===e.closedAt?e.pendingDecisions:[],i={turnId:ae(b.at),sessionId:b.sessionId,openedAt:b.at,closedAt:null,closedBy:null,generationAt:c,displayEvent:ao(b),pendingDecisions:h,scraperCompletionPolls:0};$.set(a,i),au(),"user_prompt_submit"===b.event&&f&&(_.set(a,{turnId:i.turnId,replaced:e}),x(_,512))}function aq(a,b,c,e){if("user_prompt_submit"!==e.event||!0!==e.joinsOpenTurn)return!1;let f=(0,d.v7)(a,b,c),h=_.get(f),i=ac(f);if(!h||null===i||i.turnId!==h.turnId||null!==i.closedAt||!(0,g.ZV)(i,e.sessionId))return!1;let{replaced:j}=h;return j.generationAt===i.generationAt&&($.set(f,{...j,closedAt:null,closedBy:null,displayEvent:i.displayEvent,pendingDecisions:i.pendingDecisions,scraperCompletionPolls:0}),_.delete(f),!0)}function ar(a,b,c){let d=ac(a);null===d?(d={turnId:ae(c.at),sessionId:null,openedAt:null,closedAt:null,closedBy:null,generationAt:b,displayEvent:c.bootstrapDisplay,pendingDecisions:[],scraperCompletionPolls:0},$.set(a,d),au()):null!==d.closedAt&&(d={turnId:ae(c.at),sessionId:null,openedAt:null,closedAt:null,closedBy:null,generationAt:b,displayEvent:c.bootstrapDisplay,pendingDecisions:[],scraperCompletionPolls:0},$.set(a,d),au());let e=null===c.decisionId?null:(0,g.Xq)(c.decisionId);null!==c.decisionId&&null===e&&(n(a).idsDiscarded+=1);let f="notification"===c.source,h=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(h){h.message=(0,g.wt)(c.message)??h.message,h.toolName=(0,g.kT)(c.toolName)??h.toolName,h.patterns=(0,g.Ui)(c.patterns)??h.patterns,h.decisionId??=e,f&&(h.source="notification",h.confirmedAt??=c.at);return}if(d.pendingDecisions.length>=g.RY){n(a).decisionOverflow+=1;return}d.pendingDecisions.push({decisionId:e,at:c.at,source:c.source,message:(0,g.wt)(c.message),toolName:(0,g.kT)(c.toolName),patterns:(0,g.Ui)(c.patterns),confirmedAt:f?c.at:null,scraperCorroborated:!1,recorded:!1})}function as(a){let b=ac(a);null!==b&&(b.pendingDecisions=[])}function at(a,b){let c=ac(a);if(null===c||0===c.pendingDecisions.length)return;let d=null===b.decisionId||void 0===b.decisionId?null:(0,g.Xq)(b.decisionId);if(null===d){c.pendingDecisions=[];return}c.pendingDecisions=c.pendingDecisions.filter(a=>null!==a.decisionId&&a.decisionId!==d)}function au(){x($,512)}var av=c(67882);let aw=g.Mu;function ax(a,b,c,e=Date.now()){let f=(0,d.v7)(a,b,c),g=ad(f,e);if(null===g)return null;let h=g.displayEvent;if(e-h.at>=aw)return null;let i={event:h.event,at:h.at,detail:h.detail},j=af(f,g,e);if(j.length>0)return{status:"waiting",reason:"notification"===j[0].source?av.Oh.PERMISSION_PROMPT:av.Oh.PERMISSION_REQUEST,...i};if(null!==g.closedAt)return"stop"===g.closedBy?{status:"ready",reason:av.Oh.STOP,...i}:null;let k=(0,av.DA)(h.event,h.detail);return null===k||"waiting"===k.status?null===g.openedAt?null:{status:"running",reason:av.Oh.PROMPT_SUBMIT,...i}:{...k,...i}}let ay=(0,h.v)("__agentEventAwaitingInstruction",()=>new Map);function az(a,b,c){let e=(0,d.v7)(a,b,c),f=ay.get(e);if(!f)return null;let g=Z.get(e);return void 0!==g&&f.at<g?null:f}function aA(a,b,c){return null!==az(a,b,c)}var aB=c(49154);let aC=(0,h.v)("__agentEventAskUserQuestion",()=>new Map);function aD(a,b,c,e,f=Date.now()){aC.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=aC.get(f);if(!g)return null;let h=Z.get(f);return void 0!==h&&g.at<h||e-g.at>=aw?null:g}function aF(a,b,c){aC.delete((0,d.v7)(a,b,c))}let aG=(0,h.v)("__agentEventLastStopAt",()=>new Map),aH=(0,h.v)("__agentEventLast",()=>new Map);function aI(a,b,c,e=Date.now()){aG.set((0,d.v7)(a,b,c),e)}function aJ(a,b,c){return aG.get((0,d.v7)(a,b,c))??null}let aK=["running","waiting"];function aL(a,b,c,f,h={}){let i=(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=ax(a,b,c,e.at);if(null===g||!aK.includes(g.status))return!1;let h=aH.get((0,d.v7)(a,b,c))?.sessionId??null;return null===h||null==e.sessionId||e.sessionId===h}(a,b,c,f,h)?(aH.set(i,f),"session_start"===f.event&&F.delete(i),O(i,f),N(a,b,c,"hook",f.at),!function(a,b){switch(b.event){case"pre_tool_use":aB.mW.includes(b.detail??"")||aC.delete(a);return;case"notification":"idle_prompt"===b.detail&&aC.delete(a);return;case"post_tool_use":case"stop":case"user_prompt_submit":case"session_start":case"session_end":aC.delete(a);return;default:b.event;return}}(i,f),"session_start"===f.event&&(Z.set(i,f.at),(0,e.eZ)(a,b,c),al(i,f.at)),!function(a,b){let c=ab(a);if(null===c||!(b.at<c))switch(b.event){case"user_prompt_submit":ap(a,b,c,{continueOpen:!0===b.joinsOpenTurn}),as(a);return;case"post_tool_use":ap(a,b,c,{continueOpen:!0}),as(a);return;case"pre_tool_use":if(!0===b.promptOpensTurns&&am(a))return;ap(a,b,c,{continueOpen:!0});return;case"stop":!function(a,b,c){let d=ac(a);if(null!==d&&null===d.closedAt&&null!==d.openedAt){if(!(0,g.ZV)(d,b.sessionId))return;d.closedAt=b.at,d.closedBy="stop",d.displayEvent=ao(b),as(a);return}$.set(a,{turnId:ae(b.at),sessionId:b.sessionId,openedAt:null,closedAt:b.at,closedBy:"stop",generationAt:c,displayEvent:ao(b),pendingDecisions:[],scraperCompletionPolls:0}),au()}(a,b,c);return;case"session_end":(function(a,b){let c=ac(a);null!==c&&(0,g.ZV)(c,b.sessionId)&&(c.closedAt=b.at,c.closedBy="session_end")})(a,b),as(a);return;case"session_start":return;case"notification":!function(a,b,c){if("permission_prompt"===b.detail)return!0===b.promptSettled?at(a,b):ar(a,c,{source:"notification",at:b.at,message:b.message??null,toolName:b.toolName??null,patterns:b.decisionPatterns??null,decisionId:b.decisionId??null,bootstrapDisplay:ao(b)});if(b.detail===z.KC){!0===b.promptSettled&&at(a,b);return}if("idle_prompt"===b.detail){as(a);let d=ac(a);if(null!==d&&null===d.closedAt){d.displayEvent=ao(b);return}if(null!==d)return;$.set(a,{turnId:ae(b.at),sessionId:b.sessionId,openedAt:null,closedAt:null,closedBy:null,generationAt:c,displayEvent:ao(b),pendingDecisions:[],scraperCompletionPolls:0}),au()}}(a,b,c);return;default:b.event;return}}(i,f),!function(a,b){switch(b.event){case"notification":"idle_prompt"===b.detail&&ay.set(a,{at:b.at,message:b.message??null});return;case"user_prompt_submit":case"session_start":case"session_end":ay.delete(a);return;case"stop":case"pre_tool_use":case"post_tool_use":return;default:b.event;return}}(i,f),{recorded:!0}):(O(i,f),N(a,b,c,"hook",f.at),{recorded:!1,skipped:"late-session-start"})}function aM(a,b,c){return aH.get((0,d.v7)(a,b,c))??null}function aN(a,b,c,e=Date.now()){let f=(0,d.v7)(a,b,c);Z.set(f,e),al(f,e),aC.delete(f),ay.delete(f),B.delete(f),C.delete(f),D.delete(f),E.delete(f),F.delete(f),k.delete(f)}function aO(a,b,c){return Z.get((0,d.v7)(a,b,c))??null}function aP(a,b,c){let e=(0,d.v7)(a,b,c);aH.delete(e),Z.delete(e),$.delete(e),i.delete(e),aC.delete(e),ay.delete(e),B.delete(e),C.delete(e),D.delete(e),E.delete(e),F.delete(e),k.delete(e)}let aQ=g.h_.predicted;function aR(a,b,c,e,f=Date.now()){let g=(0,d.v7)(a,b,c);ar(g,ab(g),{source:"permission-request",at:f,message:null,toolName:e,patterns:null,decisionId:null,bootstrapDisplay:{event:"notification",at:f,detail:"permission_prompt"}})}function aS(a,b,c,e,f=Date.now()){let g=(0,d.v7)(a,b,c);ar(g,ab(g),{source:"notification",at:f,message:null,toolName:e.toolName,patterns:null,decisionId:e.decisionId,bootstrapDisplay:{event:"notification",at:f,detail:e.detail}})}function aT(a,b,c,d=Date.now()){return ag(a,b,c,d)[0]??null}function aU(a,b,c,d=Date.now()){let e=aT(a,b,c,d);e&&(e.scraperCorroborated=!0,e.confirmedAt??=d)}function aV(a,b,c){let d=aT(a,b,c);d&&(d.recorded=!0)}function aW(a,b,c){as((0,d.v7)(a,b,c))}function aX(){aG.clear(),aH.clear(),j.clear(),k.clear(),Z.clear(),$.clear(),_.clear(),i.clear(),aC.clear(),ay.clear(),B.clear(),C.clear(),D.clear(),E.clear(),F.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,cancelTimer:()=>d.Ud,cancelTimersByWorktree:()=>d.$$,cleanupOldTimers:()=>d.ul,clearInProgressMessageId:()=>d.YX,clearLastUserMessage:()=>d.cf,clearTimerHistory:()=>d.jf,closeDbInstance:()=>e.closeDbInstance,countAgentInstances:()=>d.fs,countDisabledRepositories:()=>h.QJ,countPushSubscriptionsForKind:()=>d.rC,countWorktreesByRepositoryPath:()=>h.kp,createCloneJob:()=>h.tw,createGateResult:()=>d.hl,createMemo:()=>d.To,createMessage:()=>d.oH,createRepository:()=>h.vB,createTask:()=>d.UT,createTimer:()=>d.CR,createVerificationRun:()=>d.rY,createWorktreeTodo:()=>d.yy,deleteAllMessages:()=>d.pE,deleteMemo:()=>d.cP,deleteMessageById:()=>d.DF,deleteMessagesByCliTool:()=>d.lA,deleteMessagesByInstance:()=>d.Qp,deletePushSubscriptionByEndpoint:()=>d.th,deleteRepository:()=>h.oG,deleteRepositoryWorktrees:()=>d.oZ,deleteSessionState:()=>d.ZP,deleteWorktreeTodo:()=>d.vg,deleteWorktreesByIds:()=>d.Rm,disableExistingRepository:()=>h.eP,disableRepository:()=>h.l$,ensureEnvRepositoriesRegistered:()=>h.ES,filterExcludedPaths:()=>h.Ho,findMessageByRequestId:()=>d.Ow,finishGateResult:()=>d.C8,finishVerificationRun:()=>d.u$,getActiveCloneJobByUrl:()=>h.fD,getActiveTask:()=>d.__,getActiveTaskForInstance:()=>d.MH,getAgentInstance:()=>d.BN,getAgentInstances:()=>d.m0,getAliasedWorktreeIds:()=>d.r3,getAllPushSubscriptions:()=>d.Se,getAllRepositories:()=>h.Yg,getAllRepositoriesWithWorktreeCount:()=>h._D,getAllWorktreeAliases:()=>d.fX,getAllWorktreeIds:()=>d.nO,getAllWorktreePathIds:()=>d.Sj,getCloneJob:()=>h.bM,getCloneJobsByStatus:()=>h.n_,getCurrentVersion:()=>f.Mj,getDailyReport:()=>d.ap,getDbInstance:()=>e.getDbInstance,getDefaultDbPath:()=>g.$b,getExcludedRepositories:()=>h.lS,getExcludedRepositoryPaths:()=>h.pr,getInitialBranch:()=>d.p4,getIssueDbPath:()=>g.zm,getLastAssistantMessageAt:()=>d.nP,getLastMessage:()=>d.sy,getLastUserMessage:()=>d.r8,getLegacyDbPaths:()=>q,getMemoById:()=>d.DN,getMemosByWorktreeId:()=>d.pZ,getMessageById:()=>d.kA,getMessages:()=>d.VL,getMessagesByDateRange:()=>d.lr,getMigrationHistory:()=>f.PS,getPendingTimerCountByWorktree:()=>d.GF,getPendingTimers:()=>d._O,getPushSubscriptionByEndpoint:()=>d.CF,getPushSubscriptionsForKind:()=>d.gn,getRepositories:()=>d.NV,getRepositoryById:()=>h.r,getRepositoryByNormalizedUrl:()=>h.Uj,getRepositoryByPath:()=>h.Dp,getRunningVerificationRun:()=>d.WZ,getSessionState:()=>d.y1,getTask:()=>d.gg,getTimerById:()=>d.kx,getTimersByWorktree:()=>d.DP,getTodosByWorktreeId:()=>d.fr,getVerificationRun:()=>d.J6,getWorktreeAliases:()=>d.Q2,getWorktreeById:()=>d.Ui,getWorktreeIdsByRepository:()=>d.P9,getWorktreeTodoById:()=>d.eN,getWorktrees:()=>d.vi,getWorktreesByRepository:()=>d.uJ,initDatabase:()=>d.s4,isTerminalTaskStatus:()=>d.uB,isWorktreeTodoStatus:()=>d.yT,listRunningVerificationRuns:()=>d.Fi,listTaskEvents:()=>d.HB,listTasks:()=>d.Vk,listVerificationRuns:()=>d.Mt,listVerificationRunsForPeriod:()=>d.UE,markPendingPromptsAsAnswered:()=>d.PL,migrateDbIfNeeded:()=>r,migrateWorktreeIdPreservingChildren:()=>d._h,pushSubscriptionNeedsDefaultsNotice:()=>d.Zj,recomputeLastUserMessage:()=>d.jp,recordAnsweredPrompt:()=>d.pG,recordWorktreeAlias:()=>d.xJ,recoverStuckSendingTimers:()=>d.Xm,registerAndFilterRepositories:()=>h.$G,removeAgentInstance:()=>d.NU,reorderMemos:()=>d.nQ,reorderWorktreeTodos:()=>d.yb,resolveAndValidatePath:()=>p,resolveRepositoryPath:()=>h.mE,resolveWorktreeIdWithAlias:()=>d.l0,restoreRepository:()=>h.RS,rollbackMigrations:()=>f.Wy,runMigrations:()=>f.vI,saveDailyReport:()=>d.tt,saveInitialBranch:()=>d.GA,setAgentInstances:()=>d.Cs,setInProgressMessageId:()=>d.OF,setRepositoryEnabled:()=>h.iQ,updateCliToolId:()=>d.WU,updateCloneJob:()=>h.k5,updateDailyReportContent:()=>d.IF,updateFavorite:()=>d.O,updateLastUserMessage:()=>d.EU,updateLastViewedAt:()=>d.HZ,updateMemo:()=>d.UY,updateMessageContent:()=>d.e8,updatePromptData:()=>d.cw,updatePushSubscriptionPreferences:()=>d.jJ,updateRepository:()=>h.Ir,updateSelectedAgents:()=>d.DC,updateSessionState:()=>d.PP,updateStatus:()=>d.yB,updateTimerStatus:()=>d.j2,updateVibeLocalContextWindow:()=>d.s,updateVibeLocalModel:()=>d.iu,updateWorktreeDescription:()=>d.hq,updateWorktreeLink:()=>d.z1,updateWorktreeTodo:()=>d.bl,upsertPushSubscription:()=>d.jA,upsertWorktree:()=>d.ZL,validateDbPath:()=>g.Sv,validateRepositoryPath:()=>h.Ux,validateSchema:()=>f.i6});var d=c(683),e=c(88807),f=c(67469),g=c(20416),h=c(10406),i=c(29021),j=c.n(i),k=c(33873),l=c.n(k),m=c(21820),n=c(7956);let o=(0,c(72626).h)("db-migration-path");function p(a,b){try{if(!j().existsSync(a))return null;let c=j().realpathSync(a);if((0,n.fW)(c))return o.warn(`[Security] ${b} points to system directory, skipping: ${c}`),null;return c}catch{return o.warn(`[Security] Failed to resolve ${b}: ${a}`),null}}function q(){let a=[];a.push(l().join(process.cwd(),"data","db.sqlite")),a.push(l().join(process.cwd(),"data","cm.db")),a.push(l().join((0,m.homedir)(),".commandmate","data","db.sqlite"));let b=process.env.DATABASE_PATH;if(b)try{let c=l().resolve(b);(0,n.fW)(c)?o.warn(`[Security] Skipping DATABASE_PATH in system directory: ${c}`):a.push(b)}catch{o.warn(`[Security] Invalid DATABASE_PATH: ${b}`)}return a}function r(a){let b=l().resolve(a);if((0,n.fW)(b))throw Error(`Security error: Target path cannot be in system directory: ${b}`);if(j().existsSync(a)){let b=p(a,"target path");if(b)return{migrated:!1,targetPath:b}}for(let a of q()){let c=p(a,"legacy path");if(!c)continue;let d=`${c}.bak`;j().copyFileSync(c,d),j().chmodSync(d,384);let e=l().dirname(b);return j().existsSync(e)||j().mkdirSync(e,{recursive:!0,mode:448}),j().copyFileSync(c,b),o.info(`[Migration] Database migrated from ${c} to ${b}`),o.info(`[Migration] Backup created at ${d}`),{migrated:!0,sourcePath:c,targetPath:b,backupPath:d}}return{migrated:!1,targetPath:b}}},67882:(a,b,c)=>{c.d(b,{DA:()=>e,O_:()=>f,Oh:()=>d,_K:()=>i,kA:()=>g,px:()=>h});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,b=!1){switch(a){case"waiting":return{isWaitingForResponse:!0,isProcessing:!1};case"running":return{isWaitingForResponse:!1,isProcessing:!b};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?.isUnclassified===!0&&"ready"===g(a)}function i(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}},85322:(a,b,c)=>{c.d(b,{k:()=>d});let d="opencode"},85726:(a,b,c)=>{c.d(b,{J:()=>d});function d(a){return`${a.type}:${a.question}`}}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";exports.id=2460,exports.ids=[2460,9130],exports.modules={2669:(a,b,c)=>{c.d(b,{JI:()=>n,M7:()=>d,Sr:()=>h,Zf:()=>f,c7:()=>e,lU:()=>k,mR:()=>j,qO:()=>i,su:()=>m,wQ:()=>l});let d="SESSION_STARTING",e="SESSION_START_FAILED",f="SESSION_START_UNAVAILABLE",g=[d,e];class h extends Error{constructor(a,b,c){super(`${a} did not reach its input prompt within ${Math.round(c/1e3)}s (initialization timeout). The tmux session '${b}' and its process are still running, so this is a slow start, not a failed one — the message was not delivered, but nothing needs repairing. Retry the send in a few seconds, or run \`commandmate capture <worktree-id>\` to see what it is waiting on.`),this.toolName=a,this.sessionName=b,this.timeoutMs=c,this.code=d,this.name="SessionStartTimeoutError"}}function i(a,b){return`${a} exited before reaching its input prompt: the tmux session '${b}' is back at a shell, so this is not a slow start and waiting will not help. The message was not delivered. Run \`commandmate capture <worktree-id>\` to see why it exited (for example a startup dialog answered with exit, or a missing login), fix that, then send again.`}class j extends Error{constructor(a,b,c){super(`${a} reported an error while starting in tmux session '${b}': "${c}". Retrying will not help until that is resolved; run \`commandmate capture <worktree-id>\` to see the session output.`),this.toolName=a,this.sessionName=b,this.detectedPattern=c,this.code=e,this.name="SessionStartFailedError"}}class k extends Error{constructor(a,b=`${a} is not installed. Please install it first.`){super(b),this.toolName=a,this.code=f,this.name="SessionStartUnavailableError"}}function l(a){return o(a)===d}function m(a){let b=o(a);return void 0!==b&&g.includes(b)}function n(a){return o(a)===f}function o(a){if("object"!=typeof a||null===a)return;let b=a.code;return"string"==typeof b?b:void 0}},22354:(a,b,c)=>{c.d(b,{F0:()=>j.F,K9:()=>e.K9,VM:()=>d.VM,_0:()=>f._0,c1:()=>k.c,o:()=>i.o,vm:()=>h.v,y_:()=>g.y_});var d=c(59409);c(66101);var e=c(45567);c(57510),c(38367);var f=c(25071),g=c(50474),h=c(70997),i=c(77904),j=c(76835),k=c(2734)},23197:(a,b,c)=>{c.d(b,{H:()=>d});let d="__global__"},32002:(a,b,c)=>{c.d(b,{e:()=>h});var d=c(56791),e=c(26923),f=c(52201),g=c(15194);function h(a,b,c){let h=(0,d.getAgentInstances)(a,b);return h.length>0?h:(0,g.lu)((0,f.eG)({worktree:c,appSettings:(0,e.Ds)(a)}))}},50474:(a,b,c)=>{c.d(b,{y_:()=>d});function d(a){var b=a.noDecision;switch(b.kind){case"proceeds":return{safe:!0,blocksForMs:0,summary:"the agent continues with its own approval flow"};case"blocks":return{safe:!1,blocksForMs:null,summary:"the agent waits indefinitely; nothing else will unblock it"};case"blocksUntil":return{safe:!1,blocksForMs:b.timeoutMs,summary:`the agent waits up to ${b.timeoutMs}ms before continuing`}}}},89398:(a,b,c)=>{c.d(b,{z:()=>y,B:()=>B});var d=c(8360),e=c(15194),f=c(31990),g=c(95595),h=c(37717),i=c(35583),j=c(67882),k=c(64501),l=c(70594),m=c(23365),n=c(50945),o=c(
|
|
1
|
+
"use strict";exports.id=2460,exports.ids=[2460,9130],exports.modules={2669:(a,b,c)=>{c.d(b,{JI:()=>n,M7:()=>d,Sr:()=>h,Zf:()=>f,c7:()=>e,lU:()=>k,mR:()=>j,qO:()=>i,su:()=>m,wQ:()=>l});let d="SESSION_STARTING",e="SESSION_START_FAILED",f="SESSION_START_UNAVAILABLE",g=[d,e];class h extends Error{constructor(a,b,c){super(`${a} did not reach its input prompt within ${Math.round(c/1e3)}s (initialization timeout). The tmux session '${b}' and its process are still running, so this is a slow start, not a failed one — the message was not delivered, but nothing needs repairing. Retry the send in a few seconds, or run \`commandmate capture <worktree-id>\` to see what it is waiting on.`),this.toolName=a,this.sessionName=b,this.timeoutMs=c,this.code=d,this.name="SessionStartTimeoutError"}}function i(a,b){return`${a} exited before reaching its input prompt: the tmux session '${b}' is back at a shell, so this is not a slow start and waiting will not help. The message was not delivered. Run \`commandmate capture <worktree-id>\` to see why it exited (for example a startup dialog answered with exit, or a missing login), fix that, then send again.`}class j extends Error{constructor(a,b,c){super(`${a} reported an error while starting in tmux session '${b}': "${c}". Retrying will not help until that is resolved; run \`commandmate capture <worktree-id>\` to see the session output.`),this.toolName=a,this.sessionName=b,this.detectedPattern=c,this.code=e,this.name="SessionStartFailedError"}}class k extends Error{constructor(a,b=`${a} is not installed. Please install it first.`){super(b),this.toolName=a,this.code=f,this.name="SessionStartUnavailableError"}}function l(a){return o(a)===d}function m(a){let b=o(a);return void 0!==b&&g.includes(b)}function n(a){return o(a)===f}function o(a){if("object"!=typeof a||null===a)return;let b=a.code;return"string"==typeof b?b:void 0}},22354:(a,b,c)=>{c.d(b,{F0:()=>j.F,K9:()=>e.K9,VM:()=>d.VM,_0:()=>f._0,c1:()=>k.c,o:()=>i.o,vm:()=>h.v,y_:()=>g.y_});var d=c(59409);c(66101);var e=c(45567);c(57510),c(38367);var f=c(25071),g=c(50474),h=c(70997),i=c(77904),j=c(76835),k=c(2734)},23197:(a,b,c)=>{c.d(b,{H:()=>d});let d="__global__"},32002:(a,b,c)=>{c.d(b,{e:()=>h});var d=c(56791),e=c(26923),f=c(52201),g=c(15194);function h(a,b,c){let h=(0,d.getAgentInstances)(a,b);return h.length>0?h:(0,g.lu)((0,f.eG)({worktree:c,appSettings:(0,e.Ds)(a)}))}},50474:(a,b,c)=>{c.d(b,{y_:()=>d});function d(a){var b=a.noDecision;switch(b.kind){case"proceeds":return{safe:!0,blocksForMs:0,summary:"the agent continues with its own approval flow"};case"blocks":return{safe:!1,blocksForMs:null,summary:"the agent waits indefinitely; nothing else will unblock it"};case"blocksUntil":return{safe:!1,blocksForMs:b.timeoutMs,summary:`the agent waits up to ${b.timeoutMs}ms before continuing`}}}},89398:(a,b,c)=>{c.d(b,{z:()=>y,B:()=>B});var d=c(8360),e=c(15194),f=c(31990),g=c(95595),h=c(37717),i=c(35583),j=c(67882),k=c(64501),l=c(70594),m=c(23365),n=c(50945),o=c(39217),p=c(23197),q=c(30008),r=c(40043),s=c(57836),t=c(33294),u=c(26547),v=c(59409),w=c(66101);let x=(0,c(72626).h)("lib/session/worktree-status-helper");function y(){return{probeCount:0,captureCount:0,healthCheckCount:0}}let z={prompt:3,menu:2,unclassified:1};async function A(a,b,d,e,p,y,z,A,B){let C=p.has(e),D=C,E=null,F=(0,i.Bk)(a,b,d);if(D&&null===F){B&&B.healthCheckCount++;let a=await (0,n.S)(e,b);a.alive||(D=!1,E=a.reason)}let G={startingSince:F,isWaitingForResponse:!1,isProcessing:!1,waitingKind:null,structuredWaitingSince:null,statusEvidence:null,sessionStatusReason:null,isUnclassified:!1};if(D)try{var H;let e=(0,m.y)(b).statusLines;B&&B.captureCount++;let h=await (0,f.Wh)(a,b,e,d),n={db:y,worktreeId:a,cliToolId:b,instanceId:d},{compositeKey:p,statusResult:s}=function(a,b,c){let{worktreeId:d,cliToolId:e,instanceId:f}=b,h=(0,o.v7)(d,e,f),k=(0,o.xU)(h),l=k?new Date(k):void 0,m=(0,g.WC)(c,e,l);a.startingSince=(0,i.a3)(d,e,f,"waiting"===m.status||m.hasActivePrompt);let n=null===a.startingSince?m:(0,i.Gz)(m);return(0,t.recordCapturedModelInfo)(d,e,f,(0,u.jw)(e,c)),a.isUnclassified=(0,r.Q4)(n.status,n.reason),{isWaitingForResponse:a.isWaitingForResponse,isProcessing:a.isProcessing}=(0,j.O_)(n.status,a.isUnclassified),a.sessionStatusReason=n.reason,a.statusEvidence=n.evidence,{compositeKey:h,statusResult:n}}(G,n,h),{db:w,worktreeId:C,cliToolId:D,instanceId:E}=n,F=(0,q.xF)({worktreeId:C,cliToolId:D,instanceId:E,scraper:{status:s.status,reason:s.reason,hasActivePrompt:s.hasActivePrompt}});G.isWaitingForResponse=G.isWaitingForResponse||null===G.startingSince&&F.waiting;let I=null!==G.startingSince||G.isWaitingForResponse?null:function(a){let{worktreeId:b,cliToolId:c,instanceId:d,output:e,statusResult:f}=a;if(!a.isProcessing&&!(0,k.NV)(b,c,d,e))return null;let h=(0,k.$K)(b,c,d,(0,k.$x)(b,c,d),e);if(null===h)return null;let i={status:f.status,reason:f.reason,thinking:(0,g.f8)(f),evidence:f.evidence,isUnclassifiedActive:a.isUnclassified},j=(0,t.getPublishedAgentTurn)(b,c,d),m=(0,l.wG)(i,h,j)?(0,l.mi)(a.db,b,c,d):null;return(0,l.aT)(i,h,null,j,m)}({db:w,worktreeId:C,cliToolId:D,instanceId:E,output:h,statusResult:s,isUnclassified:G.isUnclassified,isProcessing:G.isProcessing});null!==I&&(G.isProcessing="running"===I.status),(0,r.ox)(p,I??{status:s.status,reason:s.reason,evidence:s.evidence}),G.structuredWaitingSince=null===G.startingSince?F.structured?.at??null:null,G.waitingKind=(H={waiting:G.isWaitingForResponse,hasActivePrompt:s.hasActivePrompt,scraperStatus:s.status,scraperReason:s.reason,apiAnswerable:null===G.startingSince&&(0,q.$G)(F.structured,(0,v.VM)(D).capabilities.eventIdentity)}).waiting?H.hasActivePrompt||!0===H.apiAnswerable?"prompt":"waiting"===H.scraperStatus&&g.ug.has(H.scraperReason)?"menu":"unclassified":null;let{db:J,worktreeId:K,cliToolId:L,instanceId:M}=n;!s.hasActivePrompt&&z(J,K,{limit:10,cliToolId:L,instanceId:M}).some(a=>"prompt"===a.messageType&&a.promptData?.status!=="answered")&&A(J,K,L,M,a=>{Promise.resolve().then(c.bind(c,43015)).then(({broadcastMessage:b})=>{b("message_updated",{worktreeId:K,message:a})}).catch(a=>{x.warn("prompt-sweep-broadcast-failed",{worktreeId:K,error:a instanceof Error?a.message:String(a)})})})}catch{G.isProcessing=!0}let I=(0,s.hd)({worktreeId:a,cliToolId:b,instanceId:d,waiting:G.isWaitingForResponse,kind:G.waitingKind,structuredSince:G.structuredWaitingSince}),{model:J,effort:K}=(0,t.getResolvedAgentModelInfo)(a,b,d),L=(0,o.v7)(a,b,d);D||(0,r.xG)(L);let M=D?(0,r.AD)(L):null,N=D?function(a,b,c){try{let d=(0,v.VM)(b),e=(0,w.Kf)(d,d.liveness({worktreeId:a,cliToolId:b,instanceId:c}),Date.now());if(void 0===e.degradedReason&&void 0===e.liveness)return null;return e}catch{return null}}(a,b,d):null;try{C?await (0,f.N5)({sessionName:e,worktreeId:a,cliToolId:b,instanceId:d,status:(0,j.kA)({isRunning:D,isWaitingForResponse:G.isWaitingForResponse,isProcessing:G.isProcessing})}):(0,f.Lw)(e)}catch(a){x.debug("tmux-surface:publish-failed",{sessionName:e,error:a instanceof Error?a.message:String(a)})}var O={worktreeId:a,cliToolId:b,instanceId:d,isRunning:D,exitedReason:E,waitingSince:I,model:J,effort:K,lastKnown:M,eventSource:N};let{worktreeId:P,cliToolId:Q,instanceId:R,isRunning:S,exitedReason:T,model:U,effort:V,lastKnown:W,eventSource:X}=O,{isWaitingForResponse:Y,isProcessing:Z,waitingKind:$,statusEvidence:_,sessionStatusReason:aa,isUnclassified:ab,startingSince:ac}=G;return{isRunning:S,isWaitingForResponse:Y,isProcessing:Z,waitingKind:$,waitingSince:O.waitingSince,awaitingInstruction:S&&(0,t.isAwaitingInstruction)(P,Q,R),...null!==U?{model:U}:{},...null!==V?{reasoningEffort:V}:{},...null!==_?{statusEvidence:_}:{},...null!==aa?{sessionStatusReason:aa}:{},...ab?{isUnclassified:!0}:{},...null!==T?{sessionStatusReason:h.g.EXITED,statusEvidence:"positive"}:{},...null!==W?{lastKnownStatus:W.status,lastKnownStatusAt:W.at}:{},...null!==X?{eventSource:X}:{},...null!==ac?{startingSince:ac}:{}}}async function B(a,b,c,f,g,h,i){if(a===p.H)return{sessionStatusByCli:{},sessionStatusByInstance:{},isSessionRunning:!1,isWaitingForResponse:!1,isProcessing:!1};let j=d.CLIToolManager.getInstance(),k=e.XH,l=h(c,a).filter(a=>a.id!==a.cliTool),m=k.map(b=>({cliToolId:b,instanceId:b,sessionName:j.getTool(b).getSessionName(a,b)}));for(let b of l)m.push({cliToolId:b.cliTool,instanceId:b.id,sessionName:j.getTool(b.cliTool).getSessionName(a,b.id)});i&&(i.probeCount+=m.length);let n=await Promise.all(m.map(async d=>{let e=await A(a,d.cliToolId,d.instanceId,d.sessionName,b,c,f,g,i);return{...d,status:e}})),o={},q={};for(let{cliToolId:a,instanceId:b,status:c}of n){q[b]=c;let d=o[a];o[a]=d?function(a,b){var c,d,e,f;return{isRunning:a.isRunning||b.isRunning,isWaitingForResponse:a.isWaitingForResponse||b.isWaitingForResponse,isProcessing:a.isProcessing||b.isProcessing,waitingKind:(c=a.waitingKind,d=b.waitingKind,null===c?d:null===d||z[c]>=z[d]?c:d),waitingSince:(e=a.waitingSince,f=b.waitingSince,null===e?f:null===f?e:Math.min(e,f)),awaitingInstruction:a.awaitingInstruction||b.awaitingInstruction,...a.isUnclassified||b.isUnclassified?{isUnclassified:!0}:{}}}(d,c):c}let r=!1,s=!1,t=!1;for(let a of Object.values(o))a&&(a.isRunning&&(r=!0),a.isWaitingForResponse&&(s=!0),a.isProcessing&&(t=!0));return{sessionStatusByCli:o,sessionStatusByInstance:q,isSessionRunning:r,isWaitingForResponse:s,isProcessing:t}}}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";exports.id=2908,exports.ids=[850,2839,2908,5220,9130],exports.modules={2669:(a,b,c)=>{c.d(b,{JI:()=>n,M7:()=>d,Sr:()=>h,Zf:()=>f,c7:()=>e,lU:()=>k,mR:()=>j,qO:()=>i,su:()=>m,wQ:()=>l});let d="SESSION_STARTING",e="SESSION_START_FAILED",f="SESSION_START_UNAVAILABLE",g=[d,e];class h extends Error{constructor(a,b,c){super(`${a} did not reach its input prompt within ${Math.round(c/1e3)}s (initialization timeout). The tmux session '${b}' and its process are still running, so this is a slow start, not a failed one — the message was not delivered, but nothing needs repairing. Retry the send in a few seconds, or run \`commandmate capture <worktree-id>\` to see what it is waiting on.`),this.toolName=a,this.sessionName=b,this.timeoutMs=c,this.code=d,this.name="SessionStartTimeoutError"}}function i(a,b){return`${a} exited before reaching its input prompt: the tmux session '${b}' is back at a shell, so this is not a slow start and waiting will not help. The message was not delivered. Run \`commandmate capture <worktree-id>\` to see why it exited (for example a startup dialog answered with exit, or a missing login), fix that, then send again.`}class j extends Error{constructor(a,b,c){super(`${a} reported an error while starting in tmux session '${b}': "${c}". Retrying will not help until that is resolved; run \`commandmate capture <worktree-id>\` to see the session output.`),this.toolName=a,this.sessionName=b,this.detectedPattern=c,this.code=e,this.name="SessionStartFailedError"}}class k extends Error{constructor(a,b=`${a} is not installed. Please install it first.`){super(b),this.toolName=a,this.code=f,this.name="SessionStartUnavailableError"}}function l(a){return o(a)===d}function m(a){let b=o(a);return void 0!==b&&g.includes(b)}function n(a){return o(a)===f}function o(a){if("object"!=typeof a||null===a)return;let b=a.code;return"string"==typeof b?b:void 0}},22354:(a,b,c)=>{c.d(b,{F0:()=>j.F,K9:()=>e.K9,VM:()=>d.VM,_0:()=>f._0,c1:()=>k.c,o:()=>i.o,vm:()=>h.v,y_:()=>g.y_});var d=c(59409);c(66101);var e=c(45567);c(57510),c(38367);var f=c(25071),g=c(50474),h=c(70997),i=c(77904),j=c(76835),k=c(2734)},39687:(a,b,c)=>{c.d(b,{d:()=>t});var d=c(56791),e=c(8360),f=c(15194),g=c(95220),h=c(12462),i=c(43015),j=c(54325),k=c(72626),l=c(34331),m=c(40964),n=c(58707),o=c(2669),p=c(49319);let q=(0,k.h)("session/send-user-message");function r(a){return a instanceof Error?a.message:String(a)}async function s(a,b){let c=`${a}:${b}`,d=Date.now()+5e3;for(;(0,g.getActivePollers)().includes(c);){if(Date.now()>=d)return!1;await new Promise(a=>setTimeout(a,100))}return!0}async function t(a,b){let{worktreeId:c,content:k,cliToolId:t,instanceId:u,absoluteImagePath:v,copilotModel:w}=b,x=b.messageType??"normal",y=u??t,z=e.CLIToolManager.getInstance().getTool(t),A=(0,m.mf)(t,c,u),B=await (0,l.L)(c,A,a);if(null===B||"foreign"===B.verdict)return q.warn("send-refused-foreign-session",{worktreeId:c,cliToolId:t,instanceId:y,sessionName:A,sessionPath:B?.sessionPath??null,reason:B?"foreign":"worktree_not_found"}),{ok:!1,stage:"foreign_session",error:B?`tmux session "${A}" belongs to another CommandMate server`:`Worktree '${c}' not found; cannot confirm tmux session "${A}" is this server's`};let C=await (0,n.a3)(c,t,u,{ignoreStructured:b.ignoreStructuredPromptGuard});if(C.waiting)return q.info("send-refused-prompt-waiting",{worktreeId:c,cliToolId:t,reason:C.reason,blockedBy:C.blockedBy}),{ok:!1,stage:"prompt_waiting",error:(0,n.br)(c,C.blockedBy)};if(w&&"copilot"===t){try{await z.sendModelCommand(c,w,u),q.info("copilot-model-command-sent",{model:w})}catch(a){return q.error("failed-to-send-model-command:",{error:r(a)}),{ok:!1,stage:"model",error:r(a)}}await s(c,y)||q.warn("previous-turn-poller-still-running",{worktreeId:c,instanceId:y,waitedMs:5e3})}let D=new Date;try{await (0,h.o4)(a,c,t,D,u)}catch(a){q.error("failed-to-save-pending-assistant-response:",{error:r(a)})}let E=null;try{let b=(0,d.getMessages)(a,c,{limit:1,cliToolId:t,instanceId:y,matchResolvedInstance:!0});b.length>0&&"user"===b[0].role&&b[0].content===k&&(E=b[0].id)}catch(a){q.error("failed-to-detect-orphaned-messages:",{error:r(a)})}try{v?(0,f._J)(z)?await z.sendMessageWithImage(c,k,v,u):await z.sendMessage(c,(0,p.TZ)(k,v),u):await z.sendMessage(c,k,u)}catch(a){if(q.error("failed-to-send-message-to:",{error:r(a)}),(0,o.wQ)(a))return{ok:!1,stage:"send",error:a.message,code:o.M7};return{ok:!1,stage:"send",error:r(a)}}let F=(0,d.createMessage)(a,{worktreeId:c,role:"user",content:k,messageType:x,timestamp:D,cliToolId:t,instanceId:u,requestId:b.requestId});try{(0,i.broadcastMessage)("message",{worktreeId:c,message:{...F,cliToolId:t,instanceId:y}})}catch(a){q.warn("user-message-broadcast-failed",{error:r(a)})}if(E)try{if((0,d.deleteMessageById)(a,E)){q.info("cleaned-up-orphaned-user");try{(0,i.broadcastMessage)(j.dz,{worktreeId:c,cliToolId:t,instanceId:y,reason:"orphan_cleanup"})}catch(a){q.warn("orphan-cleanup-broadcast-failed",{error:r(a)})}}}catch(a){q.error("failed-to-clean-up-orphaned-message:",{error:r(a)})}return(0,d.updateLastUserMessage)(a,c,k,D),(0,d.clearInProgressMessageId)(a,c,t,u),q.info("cleared-in-progress-message"),(0,g.startPolling)(c,t,u),{ok:!0,message:F}}},50474:(a,b,c)=>{c.d(b,{y_:()=>d});function d(a){var b=a.noDecision;switch(b.kind){case"proceeds":return{safe:!0,blocksForMs:0,summary:"the agent continues with its own approval flow"};case"blocks":return{safe:!1,blocksForMs:null,summary:"the agent waits indefinitely; nothing else will unblock it"};case"blocksUntil":return{safe:!1,blocksForMs:b.timeoutMs,summary:`the agent waits up to ${b.timeoutMs}ms before continuing`}}}},58707:(a,b,c)=>{c.d(b,{$n:()=>k,a3:()=>l,br:()=>m});var d=c(8360),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).`}},85775:(a,b,c)=>{c.d(b,{Tm:()=>p,x4:()=>n,xJ:()=>o});var d=c(34129),e=c(8360),f=c(88807),g=c(72626),h=c(87374),i=c(39687),j=c(36925);let k=(0,g.h)("timer-manager");function l(){return(0,j.v)("__timerManagerState",()=>({timers:new Map,timerWorktrees:new Map,initialized:!1}))}async function m(a){let b=l(),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
|
|
1
|
+
"use strict";exports.id=2908,exports.ids=[850,2839,2908,5220,9130],exports.modules={2669:(a,b,c)=>{c.d(b,{JI:()=>n,M7:()=>d,Sr:()=>h,Zf:()=>f,c7:()=>e,lU:()=>k,mR:()=>j,qO:()=>i,su:()=>m,wQ:()=>l});let d="SESSION_STARTING",e="SESSION_START_FAILED",f="SESSION_START_UNAVAILABLE",g=[d,e];class h extends Error{constructor(a,b,c){super(`${a} did not reach its input prompt within ${Math.round(c/1e3)}s (initialization timeout). The tmux session '${b}' and its process are still running, so this is a slow start, not a failed one — the message was not delivered, but nothing needs repairing. Retry the send in a few seconds, or run \`commandmate capture <worktree-id>\` to see what it is waiting on.`),this.toolName=a,this.sessionName=b,this.timeoutMs=c,this.code=d,this.name="SessionStartTimeoutError"}}function i(a,b){return`${a} exited before reaching its input prompt: the tmux session '${b}' is back at a shell, so this is not a slow start and waiting will not help. The message was not delivered. Run \`commandmate capture <worktree-id>\` to see why it exited (for example a startup dialog answered with exit, or a missing login), fix that, then send again.`}class j extends Error{constructor(a,b,c){super(`${a} reported an error while starting in tmux session '${b}': "${c}". Retrying will not help until that is resolved; run \`commandmate capture <worktree-id>\` to see the session output.`),this.toolName=a,this.sessionName=b,this.detectedPattern=c,this.code=e,this.name="SessionStartFailedError"}}class k extends Error{constructor(a,b=`${a} is not installed. Please install it first.`){super(b),this.toolName=a,this.code=f,this.name="SessionStartUnavailableError"}}function l(a){return o(a)===d}function m(a){let b=o(a);return void 0!==b&&g.includes(b)}function n(a){return o(a)===f}function o(a){if("object"!=typeof a||null===a)return;let b=a.code;return"string"==typeof b?b:void 0}},22354:(a,b,c)=>{c.d(b,{F0:()=>j.F,K9:()=>e.K9,VM:()=>d.VM,_0:()=>f._0,c1:()=>k.c,o:()=>i.o,vm:()=>h.v,y_:()=>g.y_});var d=c(59409);c(66101);var e=c(45567);c(57510),c(38367);var f=c(25071),g=c(50474),h=c(70997),i=c(77904),j=c(76835),k=c(2734)},39687:(a,b,c)=>{c.d(b,{d:()=>t});var d=c(56791),e=c(8360),f=c(15194),g=c(95220),h=c(12462),i=c(43015),j=c(54325),k=c(72626),l=c(34331),m=c(40964),n=c(58707),o=c(2669),p=c(49319);let q=(0,k.h)("session/send-user-message");function r(a){return a instanceof Error?a.message:String(a)}async function s(a,b){let c=`${a}:${b}`,d=Date.now()+5e3;for(;(0,g.getActivePollers)().includes(c);){if(Date.now()>=d)return!1;await new Promise(a=>setTimeout(a,100))}return!0}async function t(a,b){let{worktreeId:c,content:k,cliToolId:t,instanceId:u,absoluteImagePath:v,copilotModel:w}=b,x=b.messageType??"normal",y=u??t,z=e.CLIToolManager.getInstance().getTool(t),A=(0,m.mf)(t,c,u),B=await (0,l.L)(c,A,a);if(null===B||"foreign"===B.verdict)return q.warn("send-refused-foreign-session",{worktreeId:c,cliToolId:t,instanceId:y,sessionName:A,sessionPath:B?.sessionPath??null,reason:B?"foreign":"worktree_not_found"}),{ok:!1,stage:"foreign_session",error:B?`tmux session "${A}" belongs to another CommandMate server`:`Worktree '${c}' not found; cannot confirm tmux session "${A}" is this server's`};let C=await (0,n.a3)(c,t,u,{ignoreStructured:b.ignoreStructuredPromptGuard});if(C.waiting)return q.info("send-refused-prompt-waiting",{worktreeId:c,cliToolId:t,reason:C.reason,blockedBy:C.blockedBy}),{ok:!1,stage:"prompt_waiting",error:(0,n.br)(c,C.blockedBy)};if(w&&"copilot"===t){try{await z.sendModelCommand(c,w,u),q.info("copilot-model-command-sent",{model:w})}catch(a){return q.error("failed-to-send-model-command:",{error:r(a)}),{ok:!1,stage:"model",error:r(a)}}await s(c,y)||q.warn("previous-turn-poller-still-running",{worktreeId:c,instanceId:y,waitedMs:5e3})}let D=new Date;try{await (0,h.o4)(a,c,t,D,u)}catch(a){q.error("failed-to-save-pending-assistant-response:",{error:r(a)})}let E=null;try{let b=(0,d.getMessages)(a,c,{limit:1,cliToolId:t,instanceId:y,matchResolvedInstance:!0});b.length>0&&"user"===b[0].role&&b[0].content===k&&(E=b[0].id)}catch(a){q.error("failed-to-detect-orphaned-messages:",{error:r(a)})}try{v?(0,f._J)(z)?await z.sendMessageWithImage(c,k,v,u):await z.sendMessage(c,(0,p.TZ)(k,v),u):await z.sendMessage(c,k,u)}catch(a){if(q.error("failed-to-send-message-to:",{error:r(a)}),(0,o.wQ)(a))return{ok:!1,stage:"send",error:a.message,code:o.M7};return{ok:!1,stage:"send",error:r(a)}}let F=(0,d.createMessage)(a,{worktreeId:c,role:"user",content:k,messageType:x,timestamp:D,cliToolId:t,instanceId:u,requestId:b.requestId});try{(0,i.broadcastMessage)("message",{worktreeId:c,message:{...F,cliToolId:t,instanceId:y}})}catch(a){q.warn("user-message-broadcast-failed",{error:r(a)})}if(E)try{if((0,d.deleteMessageById)(a,E)){q.info("cleaned-up-orphaned-user");try{(0,i.broadcastMessage)(j.dz,{worktreeId:c,cliToolId:t,instanceId:y,reason:"orphan_cleanup"})}catch(a){q.warn("orphan-cleanup-broadcast-failed",{error:r(a)})}}}catch(a){q.error("failed-to-clean-up-orphaned-message:",{error:r(a)})}return(0,d.updateLastUserMessage)(a,c,k,D),(0,d.clearInProgressMessageId)(a,c,t,u),q.info("cleared-in-progress-message"),(0,g.startPolling)(c,t,u),{ok:!0,message:F}}},50474:(a,b,c)=>{c.d(b,{y_:()=>d});function d(a){var b=a.noDecision;switch(b.kind){case"proceeds":return{safe:!0,blocksForMs:0,summary:"the agent continues with its own approval flow"};case"blocks":return{safe:!1,blocksForMs:null,summary:"the agent waits indefinitely; nothing else will unblock it"};case"blocksUntil":return{safe:!1,blocksForMs:b.timeoutMs,summary:`the agent waits up to ${b.timeoutMs}ms before continuing`}}}},58707:(a,b,c)=>{c.d(b,{$n:()=>k,a3:()=>l,br:()=>m});var d=c(8360),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).`}},85775:(a,b,c)=>{c.d(b,{Tm:()=>p,x4:()=>n,xJ:()=>o});var d=c(34129),e=c(8360),f=c(88807),g=c(72626),h=c(87374),i=c(39687),j=c(36925);let k=(0,g.h)("timer-manager");function l(){return(0,j.v)("__timerManagerState",()=>({timers:new Map,timerWorktrees:new Map,initialized:!1}))}async function m(a){let b=l(),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,j=await f.isRunning(b.worktreeId,g),l=(0,d.kx)(c,a);if(!l||"pending"!==l.status)return;if(!j){k.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 m=await (0,i.d)(c,{worktreeId:b.worktreeId,content:b.message,cliToolId:b.cliToolId,instanceId:g});if(!m.ok){let b=`[${m.stage}] ${m.error}`;(0,d.j2)(c,a,"failed",void 0,b),k.error("timer:send-failed",{timerId:a,stage:m.stage,error:m.error});return}(0,d.j2)(c,a,"sent",Date.now()),k.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{}k.error("timer:send-failed",{timerId:a,error:b})}finally{b.timers.delete(a),b.timerWorktrees.delete(a)}}function n(a,b,c){let d=l(),e=setTimeout(()=>{m(a)},c);d.timers.set(a,e),d.timerWorktrees.set(a,b)}function o(a){let b=l(),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 p(a){let b=l(),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)}};
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";exports.id=2984,exports.ids=[2984],exports.modules={60:(a,b,c)=>{c.d(b,{QM:()=>h,V0:()=>e,ZX:()=>f,bE:()=>g});var d=c(61789);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)}},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)."}}},18778:(a,b,c)=>{c.d(b,{T:()=>i});var d=c(56791),e=c(41364),f=c(72626),g=c(85038);let h=(0,f.h)("conversation-logger");async function i(a,b,c,f="claude",j={}){let{pollerKey:k}=j,l=void 0===k?void 0:()=>(0,g._B)(k);if(l&&!l())return void h.info("conversation:log-refused",{worktreeId:b,cliToolId:f});let m=(0,d.getLastUserMessage)(a,b);if(m)try{let a=await (0,e.hM)(b,m.content,c,f,{mayWrite:l});null===a&&h.info("conversation:log-refused",{worktreeId:b,cliToolId:f})}catch(a){h.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")}},28480:(a,b,c)=>{c.d(b,{B9:()=>w,Bm:()=>q,TS:()=>y,Tq:()=>t,hB:()=>x,mQ:()=>o,r4:()=>r,t1:()=>s,vb:()=>v});var d=c(88807),e=c(56791),f=c(43015),g=c(18778),h=c(72626),i=c(71080),j=c(28918),k=c(31517),l=c(36925),m=c(85038);let n=(0,h.h)("response-poller"),o=k.sD.reduce((a,b)=>a+b,0),p=(0,l.v)("__pendingScrapedResponses",()=>new Map);function q(a){return p.has(a)}function r(a,b){if(!(0,m._B)(a)){let a=(0,m.Bh)();return n.info("pending-scrape-hold-refused",{worktreeId:b.worktreeId,cliToolId:b.cliToolId,instanceId:b.instanceId,generation:a?.generation}),!1}let c=p.get(a);return c?c.content=b.content:p.set(a,b),!0}function s(a){(0,m._B)(a)&&p.delete(a)}function t(a,b){if(!(0,m._B)(a))return!1;let c=p.get(a);return!!c&&(p.delete(a),u(c,b))}function u(a,b){try{let c=(0,d.getDbInstance)(),h=(0,e.createMessage)(c,{worktreeId:a.worktreeId,role:"assistant",content:a.content,messageType:"normal",timestamp:a.timestamp,cliToolId:a.cliToolId,instanceId:a.instanceId,summary:a.summary,logFileName:a.logFileName,requestId:a.requestId});return(0,f.broadcastMessage)("message",{worktreeId:a.worktreeId,message:h}),n.info("pending-scrape-flushed",{worktreeId:a.worktreeId,cliToolId:a.cliToolId,instanceId:a.instanceId,reason:b,scrapedLength:a.content.length,heldForMs:Date.now()-a.timestamp.getTime()}),(0,g.T)(c,a.worktreeId,a.content,a.cliToolId).catch(()=>{}),!0}catch(c){return n.warn("pending-scrape-flush-failed",{worktreeId:a.worktreeId,cliToolId:a.cliToolId,instanceId:a.instanceId,reason:b,error:c instanceof Error?c.message:String(c)}),!1}}async function v(a){if(!(0,m._B)(a))return;let b=p.get(a);if(!b||Date.now()<b.expiresAt)return;let c=await (0,j.captureStructuredHistoryTurn)(b.worktreeId,b.cliToolId,b.instanceId,{worktreePath:b.worktreePath,transcriptPathHint:b.transcriptPathHint});if(!(0,m._B)(a)||p.get(a)!==b)return void n.info("pending-scrape-settle-abandoned",{worktreeId:b.worktreeId,cliToolId:b.cliToolId,instanceId:b.instanceId,captured:c});if(c){p.delete(a),(0,i.oE)(a),n.info("pending-scrape-superseded",{worktreeId:b.worktreeId,cliToolId:b.cliToolId,instanceId:b.instanceId,heldForMs:Date.now()-b.timestamp.getTime()});return}p.delete(a),u(b,"hold-expired")}function w(){return Array.from(p.keys())}function x(a,b){let c=p.get(a);return!!c&&(p.set(a,{...c,worktreeId:b}),!0)}function y(a){let b=[];for(let{oldKey:c,newKey:d,newWorktreeId:e}of a){if(c===d)continue;let a=p.get(c);a&&(p.delete(c),b.push({newKey:d,pending:{...a,worktreeId:e}}))}for(let{newKey:a,pending:c}of b){let b=p.get(a);b&&(p.delete(a),u(b,"migration-displaced")),p.set(a,c)}}},34331:(a,b,c)=>{c.d(b,{L:()=>g});var d=c(88807),e=c(73753),f=c(96463);async function g(a,b,c=(0,d.getDbInstance)()){let h=(0,e.getWorktreeById)(c,a);return h?(0,f.s_)(b,h.path):null}},39217:(a,b,c)=>{c.d(b,{v7:()=>d.v7,DR:()=>d.DR,LP:()=>d.LP,XK:()=>d.XK,pL:()=>d.pL,GE:()=>d.GE,Ue:()=>d.Ue,aq:()=>d.aq,hN:()=>d.hN,kC:()=>d.kC,xU:()=>U,bZ:()=>V,W8:()=>d.W8,W5:()=>ai,BS:()=>ak,_i:()=>aj,_C:()=>al});var d=c(24455),e=c(31990),f=c(89253),g=c(77244),h=c(75498),i=c(91318),j=c(32236),k=c(61878),l=c(16402),m=c(51607),n=c(52767),o=c(88807),p=c(52660),q=c(34331),r=c(63869),s=c(4803),t=c(79892),u=c(8360),v=c(61789),w=c(85726),x=c(77093),y=c(93997),z=c(68901),A=c(72626),B=c(66007),C=c(36925),D=c(27675);let E=(0,A.h)("auto-yes-poller");function F(a){let b="multiple_choice"===a.type?a.options.map(a=>`${a.isDefault?">":""}${a.number}.${a.label}`).join("\n"):"";return[(0,w.J)(a),b,a.approvalTarget??""].join("\0")}function G(a,b,c,d){let e=`${c}\u0000${b}`;if(a.lastSkipWarnKey===e)return void E.debug(c,{...d,repeated:!0});a.lastSkipWarnKey=e,E.warn(c,d)}let H=(0,C.v)("__autoYesPartialAnswers",()=>new Map);function I(a,b){for(let c of(H.delete(a),[...J]))c.recordKey===a&&(void 0===b||c.screenKey===b)&&M(c)}let J=(0,C.v)("__autoYesSendAttempts",()=>new Set),K=(0,C.v)("__autoYesSendAttemptSeq",()=>({last:0}));function L(a,b,c=Date.now()){if("pending"!==a.state||(a.state="settled",J.delete(a),!b||(0,D.cr)(a.recordKey)!==a.recordEpoch))return;let d=H.get(a.recordKey);void 0!==d&&d.epoch===a.recordEpoch&&d.seq>a.seq||H.set(a.recordKey,{screenKey:a.screenKey,epoch:a.recordEpoch,at:c,seq:a.seq})}function M(a){"pending"===a.state&&(a.state="expired"),J.delete(a)}var N=c(52277);function O(a,b,c,d,e){let{worktreeId:f,cliToolId:g,instanceId:h}=a;(0,N.ZS)(f,g,h,b),G(a.pollerState,c,d,{worktreeId:f,cliToolId:g,instanceId:h,...e})}function P(a,b){let{promptData:c,frameKey:d}=a;O(a,{reason:"unclassified-frame",mode:null,promptType:c.type},`${d}\u0000${b.dialog?.kind??""}\u0000${b.mode}`,"poller:auto-yes-skipped-unclassified-frame",{promptType:c.type,dialogKind:b.dialog?.kind??null,answerMode:b.dialog?.answerMode??null,gateMode:b.mode})}let Q=(0,A.h)("auto-yes-poller"),R=(0,C.v)("__autoYesPollerStates",()=>new Map),S=(0,C.v)("__autoYesWithheldNoReceiptLoggedAt",()=>new Map);function T(a){return R.get(a)}function U(a){let b=T(a);return b?.lastServerResponseTimestamp??null}function V(a){return R.has(a)}function W(a,b){let c=Y(a,b);c&&(c.consecutiveErrors=0,c.currentInterval=d.ps)}function X(a,b){let c=Y(a,b);if(c&&(c.consecutiveErrors++,c.currentInterval=(0,d.G)(c.consecutiveErrors),c.consecutiveErrors>=z.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),aj(a)}}function Y(a,b){let c=T(a);if(void 0===b||c===b)return c}function Z(a){return T(a.compositeKey)===a.pollerState}function $(a){if(!Z(a))return!1;let b=(0,d.aq)(a.worktreeId,a.cliToolId,a.instanceId);return b===a.grant&&!!b.enabled&&_(a)}function _(a){return(0,m.cr)(a.compositeKey)===a.sessionEpoch}function aa(a){Q.debug("poller:auto-yes-tick-superseded",{worktreeId:a.worktreeId,cliToolId:a.cliToolId,instanceId:a.instanceId,pollerCurrent:Z(a)}),Z(a)&&ah(a)}async function ab(a,b,c,d){let f=c??z.FW,g=await (0,e.Wh)(a,b,f,d);return{raw:g,clean:(0,v._A)((0,v.aJ)(g))}}async function ac(a,b,c,d,g){let{worktreeId:n,cliToolId:o,instanceId:p,pollerState:r,promptData:w,frameKey:x}=a,z=null===c.dialog?(0,m.gp)(o,d):null;if(null===z||!z.eligible)return r.enterFallbackCandidateKey=null,P(a,c),!1;let A=(0,m.GR)(w);if(r.enterFallbackSentKey===x)return r.enterFallbackCandidateKey=null,(0,m.gq)(n,o,p,A),P(a,c),G(r,`${x}\u0000enter-fallback-no-effect`,"poller:auto-yes-enter-fallback-no-effect",{worktreeId:n,cliToolId:o,instanceId:p,promptType:w.type,refusalReason:z.refusalReason}),!1;let B=(0,i.n)(n,o,p),C=(0,h.sD)(w,B);if(C.suppressedBy)return r.enterFallbackCandidateKey=null,O(a,{reason:C.suppressedBy,mode:B?.mode??null,promptType:w.type,pattern:C.pattern},`${x}\u0000${C.suppressedBy}\u0000${B?.mode??""}\u0000${C.pattern??""}`,"poller:auto-yes-suppressed-by-policy",{reason:C.suppressedBy,mode:B?.mode??null,pattern:C.pattern,promptType:w.type,enterFallback:!0}),!1;if(null===C.answer||"multiple_choice"===w.type&&(0,s.eM)(w))return r.enterFallbackCandidateKey=null,P(a,c),!1;if(r.enterFallbackCandidateKey!==x)return r.enterFallbackCandidateKey=x,Q.debug("poller:auto-yes-enter-fallback-candidate",{worktreeId:n,cliToolId:o,instanceId:p,promptType:w.type}),!1;let D=u.CLIToolManager.getInstance().getTool(o).getSessionName(n,p),E=await (0,q.L)(n,D);if(void 0!==g&&!$(g))return!1;if(null===E||"foreign"===E.verdict)return G(r,`${x}\u0000${D}\u0000${E?"foreign":"worktree_not_found"}`,"poller:auto-yes-skipped-foreign-session",{worktreeId:n,cliToolId:o,instanceId:p,sessionName:D,sessionPath:E?.sessionPath??null,reason:E?"foreign":"worktree_not_found",enterFallback:!0}),!1;let H=await (0,e.WD)(n,o,(d??"").split("\n").length,p);if(void 0!==g&&!$(g))return!1;if(!function(a,b){let{worktreeId:c,cliToolId:d,instanceId:e,frameKey:g}=a,h=(0,v._A)((0,v.aJ)(b)),i=(0,k.zJ)(b,d),n=(0,f.$M)(h,d,h.split("\n"),b,{worktreeId:c,instanceId:e},i);if(!n.isPrompt||!n.promptData||F(n.promptData)!==g||"codex"===d&&((0,v.E6)(i)||(0,j.AD)(i)))return!1;let o=(0,l.r_)(d,n.promptData.type,i);return!o.allowed&&null===o.dialog&&(0,m.gp)(d,b).eligible}(a,H))return r.enterFallbackCandidateKey=null,Q.debug("poller:auto-yes-enter-fallback-fresh-frame-differs",{worktreeId:n,cliToolId:o,instanceId:p,promptType:w.type}),!1;try{await (0,t.KB)(D,["Enter"])}finally{(0,y.gm)(D)}return(void 0===g||Z(g)&&_(g))&&(r.enterFallbackSentKey=x,r.enterFallbackCandidateKey=null,(0,m.Wl)(n,o,p,{promptType:w.type,refusalReason:z.refusalReason,screenKey:A,...void 0!==g?{epoch:g.sessionEpoch}:{}})),Q.info("poller:auto-yes-enter-fallback-sent",{worktreeId:n,cliToolId:o,instanceId:p,promptType:w.type,refusalReason:z.refusalReason,composerState:z.composerState}),await ad(a,b,"[Enter]",g),!0}async function ad(a,b,d,e){let{worktreeId:f,cliToolId:g,instanceId:h,compositeKey:i,pollerState:j,promptData:k,promptKey:l}=a,m=void 0===e||_(e);m&&(!function(a,b,c){let d=Y(a,c);d&&(d.lastServerResponseTimestamp=b)}(i,Date.now(),e?.pollerState),W(i,e?.pollerState),j.lastAnsweredPromptKey=l,j.lastAnsweredAt=Date.now(),j.lastSkipWarnKey=null),Q.info("poller:response-sent",{worktreeId:f,cliToolId:g,instanceId:h,sameSession:m}),m&&(0,n.r)((0,o.getDbInstance)(),f,g,h??g,"prompt_answered_auto",{promptType:k.type});let q=null;try{q=(0,p.recordAnsweredPrompt)((0,o.getDbInstance)(),{worktreeId:f,cliToolId:g,instanceId:h??g,promptData:k,answer:d,answeredBy:"auto",content:b.rawContent||b.cleanContent,...m?{}:{pendingSavedAtOrBefore:e.startedAt}})}catch(a){Q.warn("poller:prompt-audit-record-failed",{worktreeId:f,cliToolId:g,instanceId:h,error:(0,x.u1)(a)})}if(q){let a=q;Promise.resolve().then(c.bind(c,43015)).then(({broadcastMessage:b})=>{b(a.created?"message":"message_updated",{worktreeId:f,message:a.message})}).catch(()=>{})}let[{startPolling:r},{broadcastTerminalSnapshotAfterInteraction:s}]=await Promise.all([c.e(2839).then(c.bind(c,95220)),Promise.resolve().then(c.bind(c,99508))]);m&&(void 0===e||_(e))&&(r(f,g,h),s(f,g,h))}async function ae(a,b,c,e,n,o,p,s){let t=(0,d.v7)(a,c,o),x=null;try{let z=(0,m.cr)(t);(b.enterFallbackEpoch??0)!==z&&(b.enterFallbackSentKey=null,b.enterFallbackCandidateKey=null,b.enterFallbackEpoch=z);let A=(0,k.zJ)(p??e,c),B=(0,f.$M)(e,c,n,p,{worktreeId:a,instanceId:o},A);if(!B.isPrompt||!B.promptData)return I(t),b.lastAnsweredPromptKey=null,b.lastAnsweredAt=null,b.lastSkipWarnKey=null,b.enterFallbackCandidateKey=null,"antigravity"!==c||B.isPrompt||function(a,b,c,d){if((0,g.FD)(a,"antigravity",b))return;let e=Date.now(),f=S.get(c);if(void 0!==f&&e-f<6e4)return;let h=d();if(h.isPrompt&&h.promptData){for(let[a,b]of S)e-b>=6e4&&S.delete(a);S.set(c,e),Q.info("antigravity-autoyes-withheld-no-hook-receipt",{worktreeId:a,instanceId:b??"antigravity",windowMs:g.Wo,hint:"hook の受信記録が直近に無いため Auto-Yes は答えなかった。~/.gemini/config/hooks.json の向き先(#2622)を確認"})}}(a,o,t,()=>(0,f.$M)(e,c,n,p)),"no_prompt";let C=(0,w.J)(B.promptData),D=F(B.promptData);if(b.lastAnsweredPromptKey===C&&null!==b.lastAnsweredAt&&Date.now()-b.lastAnsweredAt<d.UL)return"duplicate";let E={worktreeId:a,cliToolId:c,instanceId:o,compositeKey:t,pollerState:b,promptData:B.promptData,promptKey:C,frameKey:D},M=function(a){let b="multiple_choice"===a.type?a.options.map(a=>`${a.number}.${a.label}`).join("\n"):a.options.join("\n");return[(0,w.J)(a),b,(a.approvalTarget??"").split("\n").map(a=>a.replace(/^[\s\u276F\u203A>\u25B6\u25BA\u25CF\u25CB\u25C9\u2192]+/u,"")).join("\n")].join("\0")}(B.promptData),N=function(a,b){let c=H.get(a);return c?c.epoch!==b?(H.delete(a),null):c:null}(t,z);if(null!==N){if(N.screenKey===M)return O(E,{reason:"partial-answer",mode:null,promptType:B.promptData.type},`${D}\u0000partial-answer`,"poller:auto-yes-skipped-partial-answer",{promptType:B.promptData.type,stoppedAt:N.at}),"no_answer";I(t,N.screenKey)}if(function(a,b,c){for(let d of J)if(d.moved&&d.recordKey===a&&d.recordEpoch===b&&d.screenKey===c)return!0;return!1}(t,z,M))return G(b,`${D}\u0000moved-send-in-flight`,"poller:auto-yes-skipped-moved-send-in-flight",{worktreeId:a,cliToolId:c,instanceId:o,promptType:B.promptData.type}),"no_answer";let P=function(a,b){let{cliToolId:c,promptData:d,frameKey:e}=a,f="codex"===c?(0,v.E6)(b):null;if(f)return O(a,{reason:"agent-launch-dialog",mode:null,promptType:d.type},`${e}\u0000${f}`,"poller:auto-yes-skipped-launch-dialog",{dialog:f,promptType:d.type}),{kind:"left-alone"};if("codex"===c&&(0,j.AD)(b))return O(a,{reason:"unclassified-frame",mode:null,promptType:d.type},`${e}\u0000codex-model-picker`,"poller:auto-yes-skipped-model-picker",{promptType:d.type}),{kind:"left-alone"};let g=(0,l.r_)(c,d.type,b);return g.allowed?{kind:"ours"}:{kind:"dialog-gate-refused",dialogGate:g}}(E,A);if("dialog-gate-refused"!==P.kind&&(b.enterFallbackCandidateKey=null),"left-alone"===P.kind)return"no_answer";if("dialog-gate-refused"===P.kind)return await ac(E,B,P.dialogGate,p,s)?"responded":"no_answer";let R=(0,i.n)(a,c,o),T=(0,h.sD)(B.promptData,R);T.suppressedBy&&O(E,{reason:T.suppressedBy,mode:R?.mode??null,promptType:B.promptData.type,pattern:T.pattern},`${D}\u0000${T.suppressedBy}\u0000${R?.mode??""}\u0000${T.pattern??""}`,"poller:auto-yes-suppressed-by-policy",{reason:T.suppressedBy,mode:R?.mode??null,pattern:T.pattern,promptType:B.promptData.type});let U=T.answer;if(null===U)return"no_answer";let V=u.CLIToolManager.getInstance().getTool(c).getSessionName(a,o),W=await (0,q.L)(a,V);if(void 0!==s&&!$(s))return"no_answer";if(null===W||"foreign"===W.verdict)return G(b,`${D}\u0000${V}\u0000${W?"foreign":"worktree_not_found"}`,"poller:auto-yes-skipped-foreign-session",{worktreeId:a,cliToolId:c,instanceId:o,sessionName:V,sessionPath:W?.sessionPath??null,reason:W?"foreign":"worktree_not_found"}),"no_answer";x=function(a,b,c){let d={seq:++K.last,screenKey:b,recordKey:a,recordEpoch:c,moved:!1,state:"pending"};return J.add(d),d}(t,M,s?.sessionEpoch??z);try{await (0,r.tV)({sessionName:V,answer:U,cliToolId:c,promptData:B.promptData,...void 0!==s?{stillCurrent:()=>$(s)}:{}})}finally{(0,y.gm)(V)}return L(x,!1),await ad(E,B,U,s),"responded"}catch(b){if(void 0!==s&&!$(s)){let d=b instanceof Error&&"keysSent"in b?!!b.keysSent:null;return null!==x&&L(x,!0===d),Q.info("poller:auto-yes-answer-abandoned",{worktreeId:a,cliToolId:c,instanceId:o,keysSent:d}),"no_answer"}return null!==x&&L(x,!1),X(t,s?.pollerState),Q.warn("poller:detect-respond-error",{worktreeId:a,cliToolId:c,instanceId:o}),"error"}}async function af(a,b,c,e){let f=(0,d.v7)(a,b,c),g=T(f);if(void 0!==e&&g!==e||"valid"!==function(a,b){if(!b)return"stopped";let c=(0,d.Ue)(a),e=(0,d.pL)(a);if(!e)return aj(a),"expired";let f=(0,d.GE)(a)??void 0,g=(0,d.aq)(c,e,f);return g?.enabled?"valid":(aj(a),"expired")}(f,g))return;let h=(0,d.aq)(a,b,c);if(!h?.enabled)return;let i={compositeKey:f,worktreeId:a,cliToolId:b,instanceId:c,pollerState:g,grant:h,sessionEpoch:(0,m.cr)(f),startedAt:Date.now()};try{let e=h.stopPattern?z.FW:z.Ke,{raw:j,clean:k}=await ab(a,b,e,c);if(!$(i))return void aa(i);g.waitingForSession&&(g.waitingForSession=!1,Q.info("poller:session-appeared",{worktreeId:a,cliToolId:b,instanceId:c}));let l=k.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,aj)}return c.length<e&&(b.stopCheckBaselineLength=c.length),!1}(f,g,k))return;let m=await ae(a,g,b,k,l,c,j,i);if(!$(i))return void aa(i);if("error"!==m&&W(f,i.pollerState),"responded"===m)return void ah(i,d.ZO);if("no_prompt"===m){let a=l.slice(-d.Re).join("\n");if((0,v.ut)(b,a))return void ah(i,z.QN)}}catch(h){let e=await ag(a,b,c);if(!$(i))return void aa(i);if(e){g.waitingForSession||(g.waitingForSession=!0,Q.info("poller:waiting-for-session",{worktreeId:a,cliToolId:b,instanceId:c})),ah(i,d.BT);return}X(f,i.pollerState),Q.warn("poller:poll-error",{worktreeId:a,cliToolId:b,instanceId:c,error:(0,x.u1)(h)})}ah(i)}async function ag(a,b,c){try{return await (0,e.Qj)(a,b,c)==="absent"}catch{return!1}}function ah(a,b){if(!Z(a))return;let{worktreeId:c,cliToolId:e,instanceId:f,pollerState:g}=a,h=Math.max(b??g.currentInterval,d.ps);g.timerId=setTimeout(()=>{af(c,e,f,g)},h)}function ai(a,b,c){if(!(0,B.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),h=T(g);if(!h&&R.size>=d.fC)return{started:!1,reason:"max concurrent pollers reached"};if(h&&h.cliToolId===b)return{started:!0,reason:"already_running"};h&&aj(g);let j={timerId:null,cliToolId:b,instanceId:e,consecutiveErrors:0,currentInterval:d.ps,lastServerResponseTimestamp:null,lastAnsweredPromptKey:null,lastAnsweredAt:null,stopCheckBaselineLength:-1,lastSkipWarnKey:null};return R.set(g,j),(0,i.ie)(g),j.timerId=setTimeout(()=>{af(a,b,e,j)},d.ps),Q.info("poller:started",{worktreeId:a,cliToolId:b,instanceId:e}),{started:!0}}function aj(a){(0,m.MR)(a);let b=T(a);b&&(b.timerId&&clearTimeout(b.timerId),R.delete(a),(0,i.ie)(a),Q.info("poller:stopped",{compositeKey:a}))}function ak(){for(let[a,b]of R.entries())b.timerId&&clearTimeout(b.timerId),(0,i.ie)(a),Q.info("poller:stopped",{compositeKey:a,reason:"shutdown"});for(let a of(R.clear(),(0,m.NR)(),H.clear(),[...J]))M(a)}function al(a,b){(0,d._9)(Array.from(R.keys()),a).forEach(a=>aj(a)),(0,m.vR)(a),b?.keepPartialAnswers||function(a){for(let b of(0,d._9)([...H.keys()],a))H.delete(b);let b=new Set((0,d._9)([...J].map(a=>a.recordKey),a));for(let a of[...J])b.has(a.recordKey)&&M(a)}(a)}},40043:(a,b,c)=>{c.d(b,{AD:()=>l,Q4:()=>h,ox:()=>k,xG:()=>m});var d=c(37717),e=c(33294),f=c(36925);let g=new Set([d.g.NO_RECENT_OUTPUT,d.g.UNKNOWN_FRAME,d.g.DEFAULT]);function h(a,b){return"running"===a&&g.has(b)}let i=e.STRUCTURED_STATE_MAX_AGE_MS,j=(0,f.v)("__lastKnownStatusByKey",()=>new Map);function k(a,b,c=Date.now()){for(let[a,b]of j)c-b.at>=i&&j.delete(a);for(;j.size>512;){let a=j.keys().next();if(a.done)break;j.delete(a.value)}"positive"===b.evidence&&(j.delete(a),j.set(a,{status:b.status,reason:b.reason,at:c}))}function l(a,b=Date.now()){let c=j.get(a);return void 0===c?null:b-c.at>=i?(j.delete(a),null):c}function m(a){j.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",f={}){await m(d);let i=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),j=(0,h.GP)(new Date,"yyyy-MM-dd HH:mm:ss"),o="";try{o=await e().readFile(i,"utf-8")}catch{let b=(0,k.hR)(d)?k.ef[d]:d;o=`# ${b} Conversation Log: ${a}
|
|
2
|
+
|
|
3
|
+
Created: ${j}
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
`}o+=`## Conversation at ${j}
|
|
8
|
+
|
|
9
|
+
`,o+=`### User
|
|
10
|
+
|
|
11
|
+
`,o+=`${b}
|
|
12
|
+
|
|
13
|
+
`;let p=(0,k.hR)(d)?k.ef[d]:d;return(o+=`### ${p}
|
|
14
|
+
|
|
15
|
+
`,o+=`${c}
|
|
16
|
+
|
|
17
|
+
`,o+=`---
|
|
18
|
+
|
|
19
|
+
`,f.mayWrite&&!f.mayWrite())?null:(await e().writeFile(i,o,"utf-8"),i)}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,{DS:()=>h,LN:()=>f,XH:()=>g});var d=c(24455);let e=(0,c(36925).v)("__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){let b=[];for(let{oldWorktreeId:c,newWorktreeId:f,cliToolId:g,instanceId:h}of a){if(c===f)continue;let a=(0,d.v7)(c,g,h);b.push({newKey:(0,d.v7)(f,g,h),record:e.get(a)}),e.delete(a)}for(let{newKey:a,record:c}of b)void 0!==c&&e.set(a,c)}},45146:(a,b,c)=>{c.d(b,{Et:()=>B,KQ:()=>D,MN:()=>t,fq:()=>C,g8:()=>v,sR:()=>F});var d=c(72626),e=c(13033),f=c(72457),g=c(71080),h=c(44321),i=c(89253),j=c(28480),k=c(85038),l=c(99508),m=c(56455),n=c(40964),o=c(36925);let p=(0,d.h)("response-poller"),q=(0,o.v)("__responsePollerCoordinator",()=>({activePollers:new Map,pollingStartTimes:new Map,owners:new Map,running:new Map,pendingRestart:new Map,latestOwners:new Map,generationCounter:0,pausedOnPrompt:new Set}));q.pausedOnPrompt??=new Set,q.latestOwners??=new Map;let r=q.activePollers,s=q.pollingStartTimes;function t(a,b,c){return(0,k.pP)(a,b,c)}function u(a){return"opencode"===a||"copilot"===a}function v(a,b,c){let d=t(a,b,c),e={worktreeId:a,cliToolId:b,instanceId:c},f=q.running.get(d);if(f){if(f.owner.superseded=!0,Date.now()-f.since<6e4)return void q.pendingRestart.set(d,{target:e,behind:f.owner});p.warn("poller:restart-past-stalled-tick",{pollerKey:d,generation:f.owner.generation,runningForMs:Date.now()-f.since}),q.running.delete(d)}w(d,e)}function w(a,b){let c=q.pausedOnPrompt.has(a);A(a,{resume:c}),c&&p.info("poller:resumed-after-prompt",{pollerKey:a}),function(a){let b=t(a.worktreeId,a.cliToolId,a.instanceId);q.pollingStartTimes.set(b,Date.now()),u(a.cliToolId)&&(0,e.tb)(b),x(a.worktreeId,a.cliToolId,a.instanceId)}(b)}function x(a,b,c){let d=t(a,b,c);y({worktreeId:a,cliToolId:b,instanceId:c},function(a){let b=q.owners.get(a)??q.latestOwners.get(a);b&&(b.superseded=!0);let c={pollerKey:a,generation:++q.generationCounter,superseded:!1,stopped:!1,selfStopped:!1};return q.owners.set(a,c),q.latestOwners.set(a,c),c}(d))}function y(a,b){let c=setTimeout(()=>{z(a,b)},2e3);q.activePollers.set(b.pollerKey,c)}async function z(a,b){let c=b.pollerKey;if(!b.superseded&&!b.stopped){q.running.set(c,{owner:b,since:Date.now()});try{let d,e=q.pollingStartTimes.get(c);if(e&&Date.now()-e>18e5)return void A(c);try{d=await (0,m.y)(a.worktreeId,(0,n.mf)(a.cliToolId,a.worktreeId,a.instanceId))}catch(d){p.error("poller:ownership-check-failed",{pollerKey:c,error:d instanceof Error?d.message:String(d)}),b.superseded||b.stopped||y(a,b);return}if(null!==d){p.warn("poller:session-refused",{pollerKey:c,generation:b.generation,refusal:d}),b.superseded||b.stopped||A(c);return}let f=!1;try{f=await k.tV.run(b,()=>(0,i.zX)(a.worktreeId,a.cliToolId,a.instanceId))}catch(a){p.error("error:",{error:a instanceof Error?a.message:String(a)})}b.selfStopped&&function(a,b,c){if(c&&!u(b.cliToolId)){q.pausedOnPrompt.add(a.pollerKey),p.info("poller:paused-on-prompt",{pollerKey:a.pollerKey,generation:a.generation});return}(0,g.L1)(a.pollerKey)}(b,a,f),b.superseded||k.LF.run(b,()=>(0,l.broadcastTerminalSnapshot)(a.worktreeId,a.cliToolId,a.instanceId)),b.superseded||b.stopped||y(a,b)}finally{q.running.get(c)?.owner===b&&q.running.delete(c);let a=q.pendingRestart.get(c);a&&a.behind===b&&(q.pendingRestart.delete(c),w(c,a.target))}}}function A(a,b={}){let c=k.tV.getStore();if(c&&c.pollerKey===a&&(c.superseded||c.stopped))return void p.info("poller:stale-stop-ignored",{pollerKey:a,generation:c.generation});b.resume||(0,i.Tq)(a,"poller-stopped");let d=q.owners.get(a),h=void 0!==d&&c===d;d&&(d.stopped=!0,d.selfStopped=h,q.owners.delete(a)),q.pendingRestart.delete(a),q.pausedOnPrompt.delete(a);let j=q.activePollers.get(a);j&&(clearTimeout(j),q.activePollers.delete(a),q.pollingStartTimes.delete(a)),(0,e.q1)(a),(0,f.iX)(a),h||b.resume||(0,g.L1)(a)}function B(a,b,c){A(t(a,b,c))}function C(){for(let a of new Set([...Array.from(q.activePollers.keys()),...Array.from(q.owners.keys()),...Array.from(q.pausedOnPrompt)]))A(a);q.pendingRestart.clear(),q.pausedOnPrompt.clear()}function D(){return Array.from(q.activePollers.keys())}function E(a){let b=a.indexOf(":");return b<=0||b===a.length-1?null:{worktreeId:a.slice(0,b),instanceId:a.slice(b+1)}}function F(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=[],i=[];for(let a of Array.from(r.keys())){let e=E(a);if(!e)continue;let f=c.get(e.worktreeId);if(!f)continue;let g=b(e.worktreeId,e.instanceId);if(!g){i.push({pollerKey:a,newWorktreeId:f});continue}d.push({oldKey:a,newKey:t(f,g,e.instanceId),newWorktreeId:f,cliToolId:g,instanceId:e.instanceId})}let k=new Map,l=d.filter(a=>{let b=q.running.get(a.oldKey);return void 0!==b&&b.owner===q.owners.get(a.oldKey)});for(let a of d){let b=r.get(a.oldKey);b&&clearTimeout(b),r.delete(a.oldKey);let c=q.owners.get(a.oldKey);c&&(c.superseded=!0,c.stopped=!0,q.owners.delete(a.oldKey)),q.pendingRestart.delete(a.oldKey),k.set(a.newKey,{startedAt:s.get(a.oldKey)}),s.delete(a.oldKey),(0,e.q1)(a.oldKey)}for(let{pollerKey:a,newWorktreeId:b}of i)(0,j.hB)(a,b),A(a),p.warn("poller:migrate-abandoned",{pollerKey:a});let m=new Set(i.map(({pollerKey:a})=>a)),n=[];for(let a of Array.from(q.pausedOnPrompt)){let b=E(a);if(!b)continue;let d=c.get(b.worktreeId);d&&n.push({oldKey:a,newKey:`${d}:${b.instanceId}`})}let o=[];for(let a of(0,j.B9)()){if(m.has(a))continue;let b=E(a);if(!b)continue;let d=c.get(b.worktreeId);d&&o.push({oldKey:a,newKey:`${d}:${b.instanceId}`,newWorktreeId:d})}let v=new Set([...d.map(a=>a.oldKey),...n.map(a=>a.oldKey),...o.map(a=>a.oldKey)]);for(let a of new Set([...d.map(a=>a.newKey),...n.map(a=>a.newKey),...o.map(a=>a.newKey)]))!(v.has(a)||m.has(a))&&(q.owners.has(a)||r.has(a)||q.pausedOnPrompt.has(a)||(0,j.Bm)(a))&&(A(a),p.warn("poller:migrate-displaced",{pollerKey:a}));for(let a of l)(0,g.L1)(a.oldKey);for(let a of((0,f.nZ)(d),(0,g.qt)([...d,...n]),(0,j.TS)(o),(0,h.DS)(d.flatMap(a=>{let b=E(a.oldKey);return b?[{oldWorktreeId:b.worktreeId,newWorktreeId:a.newWorktreeId,cliToolId:a.cliToolId,instanceId:a.instanceId}]:[]})),d)){let b=k.get(a.newKey)?.startedAt;s.set(a.newKey,b??Date.now()),u(a.cliToolId)&&(0,e.tb)(a.newKey),x(a.newWorktreeId,a.cliToolId,a.instanceId)}for(let a of n)q.pausedOnPrompt.delete(a.oldKey);for(let a of n)q.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)})}}},51607:(a,b,c)=>{c.d(b,{GR:()=>j.GR,MR:()=>j.MR,NR:()=>j.NR,Wl:()=>j.Wl,YN:()=>j.YN,cr:()=>j.cr,gp:()=>o,gq:()=>j.gq,li:()=>j.li,vR:()=>j.vR});var d=c(91536),e=c(11472),f=c(94154),g=c(61789),h=c(24455),i=c(16402),j=c(27675);let k=["enabled","disabled"],l={claude:"enabled",codex:"enabled",copilot:"disabled",opencode:"disabled","opencode-v2":"disabled",gemini:"disabled",antigravity:"disabled","vibe-local":"disabled","command-code":"disabled"},m=new Set(["content","ghost","empty"]),n=new Set(["claude","codex"]);function o(a,b,c=process.env){if("enabled"!==function(a,b=process.env){let c=b.CM_AUTOYES_ENTER_FALLBACK,d=null,e=null;if("string"==typeof c&&""!==c.trim())for(let b of c.split(",")){let[c,f]=b.split("=");if(void 0===f)continue;let g=c.trim(),h=f.trim();k.includes(h)&&("*"===g?d=h:g===a&&(e=h))}return e??d??l[a]??"disabled"}(a,c))return{eligible:!1,reason:"tool-disabled",refusalReason:null,composerState:null};if(void 0===b)return{eligible:!1,reason:"no-raw-frame",refusalReason:null,composerState:null};let j=(0,i.dd)(a,b).refusal;if(null===j)return{eligible:!1,reason:"answerable",refusalReason:null,composerState:null};let p=(0,f.ji)(b,a).state,q=a=>({eligible:!1,reason:a,refusalReason:j.reason,composerState:p});if(m.has(p))return q("composer-visible");let r=j.reason===i.bj,s=n.has(a)&&"no_composer"===p;if(!r&&!s)return q("no-choice-screen-evidence");if(!(0,e.Hg)(b,(0,d.H7)(a)).alive)return q("tool-exited");let t=(0,g.aJ)(b).split("\n").slice(-h.Re).join("\n");return(0,g.ut)(a,t)?q("thinking"):{eligible:!0,refusalReason:j.reason,composerState:p}}},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:"context-limit",pattern:/\bmaximum context length is \d+ tokens\b/i,selfRetrying:!1},{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:()=>s,Pw:()=>p,WG:()=>w,if:()=>r,tV:()=>D});var d=c(79892),e=c(61878),f=c(8491),g=c(69119),h=c(96742),i=c(29169),j=c(81254),k=c(93997),l=c(4803),m=c(20610);let n=/^\d+(?:,\d+)*$/,o="answer_mode_keys";class p 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 (${o}). The digit would be swallowed and the Enter after it would confirm whatever is highlighted. Nothing was sent.`),this.name="PromptAnswerRejectedError",this.reason=o,this.dialogKind=c.kind,this.answerMode=c.answerMode}}let q="unresolvable_answer";class r 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=q,this.optionNumbers=b,this.kind=c?.kind??"menu_row",this.cursorOptionNumber=c?.cursorOptionNumber??null}}class s 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=q,this.optionCount=b}}async function t(a){if(void 0!==a.frame)return a.frame;try{return await (0,d.Xg)(a.sessionName,200)}catch{return null}}async function u(a){if(!/^\d+$/.test(a.answer))return null;let b=(0,f.bN)(a.cliToolId);if(!b.hasDialogRules)return null;let c=await t(a);if(null===c)return null;let d=b.detectDialog((0,e.zJ)(c,a.cliToolId));if(null===d)return null;if("numbered"===d.answerMode)return d;throw new p(a.cliToolId,a.answer,d)}function v(a){if(0===a)return[];let b=a>0?"Down":"Up";return Array.from({length:Math.abs(a)},()=>b)}class w extends Error{constructor(a,b,c){super(`The question was not submitted (${a}). `+(b?"Some boxes may have been ticked, but the confirm row was not pressed, so the question is still on screen exactly as the pane shows it. ":"No key was sent. ")+`Requested selection: ${c.join(", ")}. Check the terminal and answer it there, or `+"retry once the screen has settled."),this.name="MultiSelectAnswerRejectedError",this.reason="multi_select_not_committed",this.stage=a,this.keysSent=b,this.wanted=c}}function x(a){return a.options.filter(a=>!0===a.checked).map(a=>a.number)}async function y(a){await new Promise(a=>setTimeout(a,m.x9));try{return await (0,d.Xg)(a,200)}catch{return null}}async function z(a,b,c,d){var e,f;if(void 0===b.options.find(a=>!0===a.isDefault))throw new w("cursor-unknown",!1,c);let g=x(b),j=[...c.filter(a=>!g.includes(a)),...g.filter(a=>!c.includes(a))].sort((a,b)=>a-b);j.length>0&&await C(a,j.map(String),d);let k=j.length>0,l=await y(a);if(B(d,k),null===l)throw new w("recapture-failed",k,c);let m=(0,h.nK)(l);if("prompt"!==m.kind||m.prompt.promptData?.type!=="multiple_choice"||!0!==m.prompt.promptData.multiSelect||m.prompt.promptData.question!==b.question||m.prompt.promptData.options.length!==b.options.length)throw new w("screen-changed",k,c);let n=m.prompt.promptData;if(e=x(n),f=[...c],!(e.length===f.length&&e.every((a,b)=>a===f[b])))throw new w("toggle-mismatch",k,c);let o=n.options.find(a=>!0===a.isDefault);if(void 0===o)throw new w("cursor-unknown",k,c);await C(a,[...Array.from({length:Math.max(0,n.options.length-o.number+1)},()=>"Down"),"Enter"],d);let p=await y(a);if(B(d,!0),null===p)throw new w("recapture-failed",!0,c);let q=(0,i.uG)(p);if(null!==q){if(q.hasUnansweredWarning)throw new w("review-unanswered",!0,c);await C(a,["Enter"],d);return}let r=(0,h.nK)(p);if("prompt"!==r.kind||r.prompt.promptData?.type!=="multiple_choice"||r.prompt.promptData.question===b.question)throw new w("not-committed",!0,c)}class A extends Error{constructor(a){super(`Prompt answer stopped by its caller (${a?"some keys were sent":"no key was sent"})`),this.keysSent=a,this.name="PromptAnswerAbortedError"}}function B(a,b){if(a&&!a())throw new A(b)}async function C(a,b,c){if(!c)return void await (0,d.KB)(a,b);try{await (0,d.KB)(a,b,{shouldContinue:c})}catch(a){if(a instanceof Error&&"SpecialKeysAbortedError"===a.name)throw new A(!0);throw a}}async function D(a){let{sessionName:b,answer:c,cliToolId:e,promptData:f,fallbackPromptType:h,fallbackDefaultOptionNumber:i,stillCurrent:o}=a,p=function(a){if("command-code"!==a.cliToolId)return null;let{promptData:b}=a;return b?.type==="multiple_choice"&&!0===b.multiSelect&&n.test(a.answer)?{promptData:b,wanted:[...new Set(a.answer.split(",").map(Number))].sort((a,b)=>a-b)}:null}(a);if(null!==p){await z(b,p.promptData,p.wanted,o),(0,k.gm)(b);return}let q=await u(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 s(a.cliToolId,b.options.length);if(!c.some(g.J0))throw new r(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 r(a.cliToolId,c.map(a=>a.number),{kind:"cursor_elsewhere",cursorOptionNumber:d.number})}(a),B(o,!1),("claude"===e||"antigravity"===e)&&(f?.type==="multiple_choice"||"multiple_choice"===h)&&/^\d+$/.test(c)){let a,d=parseInt(c,10),e=null;if(f?.type==="multiple_choice"){let b=(e=f.options).find(a=>a.isDefault);a=b?.number??1}else a=i??1;let g=d-a;if(null!==e&&(0,l.kN)(e)&&null!==e){let a=e.filter(a=>(0,l.kN)([a])).length,c=[...v(g),"Space"];c.push(...v(a-d+1)),c.push("Enter"),await C(b,c,o)}else{let a=v(g),c=f?.type==="multiple_choice"&&!0===f.isAskUserQuestion&&0===g?["Down","Up","Enter"]:[...a,"Enter"];await C(b,c,o)}}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,j.MI)(d)?d:"answer_then_enter"}(a,q);"answer_only"===e&&(null!==q||a.promptData?.type==="multiple_choice"||"multiple_choice"===a.fallbackPromptType)&&/^\d+$/.test(a.answer)||(await new Promise(a=>setTimeout(a,m.pL)),B(o,!0),await (0,d.V1)(b,"",!0))}(0,k.gm)(b)}},64501:(a,b,c)=>{c.d(b,{$x:()=>j,NV:()=>k,KO:()=>i,$K:()=>l});var d=c(51297);let e={codex:{showsAbandonedTurn:c(27789).Y7}};var f=c(66101),g=c(59409),h=c(33294);function i(a,b,c){return"hooks"!==a||function(a,b){let c=e[a];return!c||c.showsAbandonedTurn((0,d.aJ)(b).split("\n"))}(b,c)}function j(a,b,c,d=Date.now()){let e=(0,g.VM)(b);return(0,f.Kf)(e,e.liveness({worktreeId:a,cliToolId:b,instanceId:c??b}),d).kind}function k(a,b,c,d,e=Date.now()){return!i(j(a,b,c,e),b,d)&&(0,h.getStructuredSessionState)(a,b,c,e)?.status==="running"}function l(a,b,c,f,g,i=Date.now()){let j=(0,h.getStructuredSessionState)(a,b,c,i);return j?.status==="running"&&"hooks"===f&&function(a,b){let c=e[a];return!!c&&c.showsAbandonedTurn((0,d.aJ)(b).split("\n"))}(b,g)?null:j}},70594:(a,b,c)=>{c.d(b,{EV:()=>h,aT:()=>i,mi:()=>k,wG:()=>j});var d=c(52660),e=c(72626),f=c(30008);let g=(0,e.h)("current-output-builder");function h(a){let b=a?.spec.questions[0];return b?{question:b.question,labels:b.choices.map(a=>a.label),questionCount:a.spec.questions.length,...b.custom?{custom:!0}:{}}:null}function i(a,b,c=null,d=null,e=null){if("waiting"===a.status)return{...a,structuredApplied:!1};if(null!==c)return{status:"waiting",reason:(0,f.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||!j(a,b,c))return!1;let e=c?.closedAt??null;return null!==e&&e<d}(a,b,d,e))return{...a,structuredApplied:!1};let g="running"===b.status,h="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:g,evidence:h,isUnclassifiedActive:a.isUnclassifiedActive,structuredApplied:!0}}function j(a,b,c){return!!a.thinking&&null!==b&&"ready"===b.status&&null!==c&&"stop"===c.closedBy&&null!==c.closedAt}function k(a,b,c,e){try{let f=(0,d.getLastUserMessageForInstance)(a,b,c,e);if(!f)return null;let g=f.timestamp instanceof Date?f.timestamp.getTime():NaN;return Number.isFinite(g)?g:null}catch(a){return g.debug("newest-prompt-read-failed",{worktreeId:b,cliToolId:c,instanceId:e,error:a instanceof Error?a.message:String(a)}),null}}},71080:(a,b,c)=>{c.d(b,{H:()=>j,L1:()=>q,Pe:()=>n,fS:()=>m,j7:()=>k,oE:()=>o,o_:()=>l,pN:()=>p,qt:()=>r});var d=c(55511),e=c(36925),f=c(85038);let g=(0,e.v)("__responseHashCache",()=>new Map),h=(0,e.v)("__structuredHistoryRecheckCache",()=>new Map),i=(0,e.v)("__duplicateResponseSkipStreak",()=>new Map),j=30;function k(a,b){let c=(0,d.createHash)("sha256").update(b).digest("hex");return g.get(a)===c||!!(0,f._B)(a)&&(g.set(a,c),i.delete(a),!1)}function l(a){let b=(i.get(a)??0)+1;i.set(a,b);let c=(b-1)%j==0,d=1===b?0:j-1;return{log:c,consecutive:b,suppressed:d}}function m(a){i.delete(a)}function n(a){h.has(a)||h.set(a,0)}function o(a){h.delete(a)}function p(a){let b=h.get(a);return void 0!==b&&(b>0?(h.set(a,b-1),!1):(h.set(a,2),!0))}function q(a){g.delete(a),h.delete(a),i.delete(a)}function r(a){let b=[];for(let{oldKey:c,newKey:d}of a)c!==d&&b.push({newKey:d,state:function(a){let b={hash:g.get(a),recheck:h.get(a),streak:i.get(a)};return g.delete(a),h.delete(a),i.delete(a),b}(c)});for(let{newKey:a,state:c}of b)void 0!==c.hash&&g.set(a,c.hash),void 0!==c.recheck?h.set(a,c.recheck):void 0!==c.hash&&h.delete(a),void 0!==c.hash&&(void 0!==c.streak?i.set(a,c.streak):i.delete(a))}},72457:(a,b,c)=>{c.d(b,{WR:()=>l,gv:()=>j,i2:()=>n,iX:()=>m,nZ:()=>o,p6:()=>k,zm:()=>p});var d=c(55511),e=c(36925),f=c(71080);let g=(0,e.v)("__promptHashCache",()=>new Map),h=(0,e.v)("__duplicatePromptSkipStreak",()=>new Map),i=f.H;function j(a,b){let c=(0,d.createHash)("sha256").update(b).digest("hex");return g.get(a)===c||(g.set(a,c),h.delete(a),!1)}function k(a){let b=(h.get(a)??0)+1;h.set(a,b);let c=(b-1)%i==0,d=1===b?0:i-1;return{log:c,consecutive:b,suppressed:d}}function l(a){h.delete(a)}function m(a){g.delete(a),h.delete(a)}function n(a,b){o([{oldKey:a,newKey:b}])}function o(a){let b=[];for(let{oldKey:c,newKey:d}of a)c!==d&&(b.push({newKey:d,hash:g.get(c),streak:h.get(c)}),g.delete(c),h.delete(c));for(let{newKey:a,hash:c,streak:d}of b)void 0!==c&&(g.set(a,c),void 0!==d?h.set(a,d):h.delete(a))}function p(a,b){return"copilot"!==b?a:a.replace(/^[❯>]\s/gm," ")}},73478:(a,b,c)=>{c.d(b,{I7:()=>v});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),n=c(36925);let o=(0,g.h)("push/waiting-notifier"),p=(0,n.v)("__waitingPushPending",()=>new Map),q=(0,n.v)("__waitingPushGraceTimers",()=>new Map);async function r(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){o.warn("waiting-push-failed",{worktreeId:a.worktreeId,instanceId:d,escalated:b,error:c instanceof Error?c.message:String(c)})}}function s(a){let b=q.get(a);void 0!==b&&(clearTimeout(b),q.delete(a))}function t(a,b){(0,j.R)({worktreeId:a.worktreeId,cliToolId:a.cliToolId,instanceId:a.instanceId,waitingSince:a.since})||r(a,!1,b)}function u(){if(p.size>0)return;let a=globalThis.__waitingPushEscalationTimer;void 0!==a&&(clearInterval(a),globalThis.__waitingPushEscalationTimer=void 0)}function v(){let a=globalThis.__waitingPushUnsubscribe;for(let b of(a&&(a(),globalThis.__waitingPushUnsubscribe=void 0),q.values()))clearTimeout(b);q.clear(),p.clear(),u();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){s(c),p.delete(c),u(),(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(p.set(c,e),!function(){if(void 0!==globalThis.__waitingPushEscalationTimer)return;let a=setInterval(()=>{!function(a=Date.now()){if(0===p.size)return u();let b=(0,i.rS)(),c=6e4*b.thresholdMinutes;for(let[d,e]of Array.from(p)){let f=(0,h.Jp)(e.worktreeId,e.cliToolId,e.instanceId);if(null===f||f.since!==e.since){p.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})||(p.delete(d),r({...e,kind:f.kind??e.kind},!0,a)))}u()}()},6e4);a.unref?.(),globalThis.__waitingPushEscalationTimer=a}(),null==(b=e.kind)||"unclassified"===b){s(c);let a=setTimeout(()=>{!function(a){q.delete(a);let b=p.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){p.delete(a),u();return}let d={...b,kind:c.kind};p.set(a,d),t(d,Date.now())}(c)},8e3);a.unref?.(),q.set(c,a);return}t(e,a.at)}(a)});return globalThis.__waitingPushUnsubscribe=b,b}},79565:(a,b,c)=>{c.d(b,{$v:()=>ak,emitChatTurnProgress:()=>ac});var d=c(56791),e=c(36925);let f=(0,e.v)("__unclassifiedFrameRuns",()=>new Map);var g=c(35583),h=c(94154),i=c(63209),j=c(51297),k=c(76777),l=c(50524);let m=/^([^\S\n]*)╹(▀{4,})/,n=/^([^\S\n]*)[│┃]/;var o=c(72626),p=c(8360),q=c(15194),r=c(59409),s=c(64501),t=c(66101),u=c(33198),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(39217),E=c(52277),F=c(51607),G=c(44321),H=c(34405),I=c(93997);function J(a){return""===(0,j.aJ)(a).trim()}var K=c(33294),L=c(30008),M=c(24581),N=c(40043),O=c(9516),P=c(31239),Q=c(16402),R=c(61789),S=c(62887);let T=(0,o.h)("layer-disagreement"),U=(0,e.v)("__layerDisagreementReported",()=>new Set);var V=c(27870),W=c(54325),X=c(85038);let Y=(0,o.h)("current-output-builder");function Z(){return{version:0,askedAt:-1/0,turnKey:null,body:null,loggedOutcome:null,loggedTurnKey:null}}let $=(0,e.v)("__chatTurnProgressState",()=>new Map);function _(a){return`${a.worktreeId}:${a.cliToolId}:${a.instanceId??a.cliToolId}`}function aa(a,b,c,d={}){let e=_(a),f=$.get(e)??Z();$.set(e,f),(f.loggedOutcome!==b||f.loggedTurnKey!==c)&&(f.loggedOutcome=b,f.loggedTurnKey=c,Y.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 ab(a,b,c){let d,e=_(a),f=$.get(e)??Z();if(c-f.askedAt<W.r9)return null;f.askedAt=c,$.set(e,f);try{d=await b()}catch{return null}if(!d||0===d.body.length||!(0,X.Z)())return null;let g=(0,W.rx)(d.body);return d.turnKey===f.turnKey&&g.body===f.body?null:{turnKey:d.turnKey,body:g.body,partial:g.truncated||!0===d.partial}}async function ac(a,b,d=Date.now()){try{let{broadcast:e,hasRoomSubscribers:f}=await Promise.resolve().then(c.bind(c,43015));if(!f(a.worktreeId))return aa(a,"no-subscribers",null),!1;let g=await ab(a,b,d);if(!g||!(0,X.Z)())return!1;let h=function(a,b){let c=_(a),d=$.get(c)??Z();return b.turnKey===d.turnKey&&b.body===d.body?null:(d.turnKey=b.turnKey,d.body=b.body,d.version+=1,$.set(c,d),{type:W.rz,worktreeId:a.worktreeId,cliToolId:a.cliToolId,instanceId:a.instanceId??a.cliToolId,turnKey:b.turnKey,body:b.body,partial:b.partial,version:d.version,done:!1})}(a,g);if(!h)return!1;return e(a.worktreeId,h),aa(a,"published",h.turnKey,{version:h.version,bodyLength:h.body.length,partial:h.partial}),!0}catch(b){return aa(a,"failed",null,{error:b instanceof Error?b.message:String(b)}),!1}}async function ad(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(!(0,X.Z)())return;if(!i(b))return void aa(f,"no-subscribers",null);ac(f,async()=>{let{readClaudeTurnProgress:a}=await Promise.resolve().then(c.bind(c,71133));return a({worktreeId:b,cliToolId:d,instanceId:e??d},{worktreePath:h})})}catch(a){aa(f,"failed",null,{error:a instanceof Error?a.message:String(a)})}}var ae=c(70594),af=c(81254);let ag=(0,o.h)("current-output-builder");function ah(a,b){Promise.resolve().then(c.bind(c,43015)).then(({broadcastMessage:c})=>{c("message",{worktreeId:a,message:b})}).catch(b=>{ag.warn("history-row-broadcast-failed",{worktreeId:a,error:b instanceof Error?b.message:String(b)})})}let ai=(0,e.v)("__detectionDivergenceEpisodes",()=>new Map),aj=(0,o.h)("current-output-builder");async function ak(a,b,c,d,e){let f=await al(a,b,c,d);if(!(0,X.Z)())throw new X.SC;return(f.isRunning&&"running"===f.sessionStatus&&null==f.startingSince&&await ad(a,b,c,d),e)?{...f,resolvedBy:e.resolvedBy,conflict:e.conflict??null}:f}async function al(a,b,c,e){let o=e??c,W=p.CLIToolManager.getInstance().getTool(c),Y=W.getSessionName(b,e),{stopEventAt:Z,eventSource:$,askUserQuestion:_,structuredEvents:aa}=function(a,b,c,d){let e=(0,K.getLastStopEventAt)(a,b,c),f=(0,K.getLastAgentEvent)(a,b,c),g=(0,r.VM)(b),h=Date.now(),i=(0,K.getPendingDecisions)(a,b,c,h),j=(0,K.getAskUserQuestion)(a,b,c,h),k=(0,x.Jl)(a,b,c),l={lastEventType:f?.event??null,lastEventAt:f?.at??null,lastEventDetail:f?.detail??null,...(0,K.getPublishedAgentTurn)(a,b,c,h),pendingDecisions:i.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,M.qX)(a,g.capabilities.decisionTimeoutSeconds,h),kind:b,questionOptions:"question"===b&&j?(0,A.dZ)(j.spec).map(a=>({number:a.number,label:a.label})):null}}),dedupDropped:(0,K.getAgentEventDropCounts)(a,b,c),dialogPendingMaxMs:{...M.h_},promptWaitingSince:null,promptWaitingSource:null,toolInputNormalization:(0,w.SQ)(a,b,c),permissionDecision:(0,v.CD)(a,b,c),source:{cliToolId:g.cliToolId,capabilities:g.capabilities,...(0,t.Kf)(g,g.liveness({worktreeId:a,cliToolId:b,instanceId:d}),h),probedActivity:(0,u.hS)({worktreeId:a,cliToolId:b,instanceId:d})},session:k,sessionContext:(0,x.sc)({worktreeId:a,cliToolId:b,instanceId:c},k),sessionDiff:(0,z.rn)({worktreeId:a,cliToolId:b,instanceId:c})};return{stopEventAt:e,eventSource:g,askUserQuestion:j,structuredEvents:l}}(b,c,e,o),ab=await W.isRunning(b,e);if(!(0,X.Z)())throw new X.SC;if(!ab)return(0,N.xG)((0,D.v7)(b,c,e)),{isRunning:!1,startingSince:(0,g.Bk)(b,c,e),sessionName:Y,content:"",lineCount:0,cliToolId:c,sessionStatus:"idle",sessionStatusReason:"session_not_running",statusEvidence:"positive",lastKnownStatus:null,lastKnownStatusAt:null,lastStopEventAt:Z,structuredEvents:aa,model:null,reasoningEffort:null,promptDedup:(0,G.XH)(b,c,e),upstreamFault:null,paneObstruction:null,composerText:null,composerState:"no_composer"};let ac=(0,d.getSessionState)(a,b,o),ad=ac?.lastCapturedLine||0,ak=await (0,B.Wh)(b,c,H._,e);if(!(0,X.Z)())throw new X.SC;let al=ak.split("\n"),am=al.length,an=(0,I.sl)(am,Math.min(H._,I.xE)),ao=((0,q.qR)(c,an)?al.slice(Math.max(0,ad)):al).join("\n"),{compositeKey:ap,lastServerResponseTimestamp:aq,statusResult:ar,startingSince:as,thinking:at,scraperPromptWaiting:au,isSelectionListActive:av,isPagerActive:aw,isDismissablePanelActive:ax,evidence:ay,isUnclassifiedActive:az}=function(a,b,c,d){let e=(0,D.v7)(a,b,c),f=(0,D.xU)(e),h=f?new Date(f):void 0,i=(0,C.WC)(d,b,h),j=(0,g.a3)(a,b,c,"waiting"===i.status||i.hasActivePrompt),k=null===j?i:(0,g.Gz)(i),l=(0,C.f8)(k),m=k.hasActivePrompt,n="waiting"===k.status&&C.ug.has(k.reason),o=k.reason===C.gv.CODEX_PAGER,p="waiting"===k.status&&k.reason===C.gv.COMMAND_CODE_DISMISSABLE_PANEL,q=k.evidence,r=(0,N.Q4)(k.status,k.reason);return{compositeKey:e,lastServerResponseTimestamp:f,statusResult:k,startingSince:j,thinking:l,scraperPromptWaiting:m,isSelectionListActive:n,isPagerActive:o,isDismissablePanelActive:p,evidence:q,isUnclassifiedActive:r}}(b,c,e,ak);(0,K.observeScraperCompletionEvidence)(b,c,e,"ready"===ar.status&&"positive"===ay,void 0,(0,s.KO)(aa.source.kind,c,ak));let aA=(0,s.$K)(b,c,e,aa.source.kind,ak),aB=(0,L._G)({worktreeId:b,cliToolId:c,instanceId:e,scraper:{status:ar.status,reason:ar.reason,hasActivePrompt:au}}),aC=aB.structured;null!==aC&&(aa.promptWaitingSince=aC.at,aa.promptWaitingSource=aC.source);let aD={status:ar.status,reason:ar.reason,thinking:at,evidence:ay,isUnclassifiedActive:az},aE=(0,ae.wG)(aD,aA,aa)?(0,ae.mi)(a,b,c,o):null,aF=(0,ae.aT)(aD,aA,aC,aa,aE),aG=null===as&&aB.waiting,{structuredFacts:aH,promptData:aI,promptAnswerable:aJ}=function({worktreeId:a,cliToolId:b,output:c,statusResult:d,startingSince:e,promptWaiting:f,askUserQuestion:g,eventSource:h}){let i=d.hasActivePrompt,j=d.promptDetection.promptData,k=j&&g?(0,O.Hu)(j,g.spec):null,l=null!==f&&(0,L.$G)(f,h.capabilities.eventIdentity)?f.decisionId:null,m=null!==f&&"question"===(0,y.Wk)(f.toolName),n=null===l||m?null:(0,V.T5)(b),o=null===f?null:{...f,askUserQuestion:(0,ae.EV)(g),decisionOptions:n,decisionId:l,patterns:null!==n?f.patterns:null},p=null!==e?null:i?k??j??(o?(0,V.Yo)(a,o):null):o?(0,V.Yo)(a,o):null;return{structuredFacts:o,promptData:p,promptAnswerable:i&&(k??j)?null===(0,Q.dd)(b,c).refusal:void 0}}({worktreeId:b,cliToolId:c,output:ak,statusResult:ar,startingSince:as,promptWaiting:aC,askUserQuestion:_,eventSource:$}),aK=null!==aA&&aA.status!==ar.status;aK&&aj.info("detection-divergence",{worktreeId:b,cliToolId:c,instanceId:o,scraperStatus:ar.status,scraperReason:ar.reason,structuredStatus:aA.status,structuredReason:aA.reason,structuredEvent:aA.event,structuredEventAt:aA.at,applied:aF.structuredApplied});let aL=function(a,b,c,d,e=Date.now()){let f=`${a}\u0000${b}\u0000${c}`,g=ai.get(f);return d?(g?g.polls++:ai.set(f,{startedAt:e,polls:1}),null):g?(ai.delete(f),{durationMs:Math.max(0,e-g.startedAt),polls:g.polls}):null}(b,c,o,aK);null!==aL&&aj.info("detection-divergence-resolved",{worktreeId:b,cliToolId:c,instanceId:o,durationMs:aL.durationMs,polls:aL.polls});let aM=(function(a){let b=a.slice(-100);if(b.some(a=>!J(a)))return b;let c=a.length-1;for(;c>=0&&J(a[c]);)c-=1;return c<0?b:a.slice(Math.max(0,c+1-100),c+1)})(al).join("\n"),aN="opencode"===c?function(a){let b=(0,j.aJ)(a).split("\n"),c=-1,d=-1,e=-1;for(let a=0;a<b.length;a++){let f=m.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=n.exec(h);if(!a||a[1].length!==d)continue}let i=h.slice((0,l.sh)(h,e)).trim();""!==i&&(f+=1,""===g&&(g=(0,k.D)(i,200,"…[truncated]")))}return f<2?null:{id:"opencode_sidebar",matchedText:g,boxRight:e,rows:f}}(aM):null,aO=(0,V.LF)($.capabilities.eventIdentity,aa.pendingDecisions??[]),aP=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})}(ap,aF.isUnclassifiedActive&&!aO&&null===as);aP.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:af.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});ag.info("unclassified-frame-recorded",{worktreeId:b.worktreeId,cliToolId:b.cliToolId,dwellSeconds:e,statusReason:f}),ah(b.worktreeId,c)}catch(a){ag.warn("unclassified-frame-record-failed",{worktreeId:b.worktreeId,error:a instanceof Error?a.message:String(a)})}}(a,{worktreeId:b,cliToolId:c,instanceId:o,dwellMs:aP.dwellMs,sessionStatus:aF.status,sessionStatusReason:aF.reason,obstruction:aN});let aQ=(aR={supportedEvents:$.capabilities.supportedEvents,scraperStatus:ar.status,scraperReason:ar.reason,hasActivePrompt:au,lastEventType:aa.lastEventType,lastEventDetail:aa.lastEventDetail}).supportedEvents.includes("user_prompt_submit")&&aR.supportedEvents.includes("stop")&&"waiting"===aR.scraperStatus&&"stop"===aR.lastEventType&&aR.lastEventDetail!==S.HV?aR.hasActivePrompt?"approval-after-stop":C.ug.has(aR.scraperReason)?"menu-after-stop":null:null;if(null!==aQ&&function(a){let b=`${a.compositeKey}|${a.turnId??"-"}|${a.kind}`;if(U.has(b))return;U.size>=512&&U.clear(),U.add(b);let c=(0,R.aJ)(a.frame).split("\n").filter(a=>""!==a.trim());T.warn("layerDisagreement",{kind:a.kind,worktreeId:a.worktreeId,cliToolId:a.cliToolId,instanceId:a.instanceId,turnId:a.turnId,scraperReason:a.scraperReason,frameTail:c.slice(-40).join("\n")})}({compositeKey:ap,worktreeId:b,cliToolId:c,instanceId:o,turnId:aa.turnId,kind:aQ,scraperReason:ar.reason,frame:ak}),null!==aC&&null!==aH&&!au&&!aC.recorded&&!aO){(0,K.markStructuredPromptRecorded)(b,c,e);var aR,aS=b,aT=c,aU=o,aV=aC,aW=aH;let f=(0,V.fO)(aS,aW);try{let b=(0,d.createMessage)(a,{worktreeId:aS,role:"assistant",content:f.question,summary:`structured prompt \xb7 source=${aV.source}${aV.toolName?` \xb7 tool=${aV.toolName}`:""}`,messageType:"prompt",promptData:f,timestamp:new Date,cliToolId:aT,instanceId:aU});ag.info("structured-prompt-recorded",{worktreeId:aS,cliToolId:aT,instanceId:aU,source:aV.source,toolName:aV.toolName}),ah(aS,b)}catch(a){ag.warn("structured-prompt-record-failed",{worktreeId:aS,error:a instanceof Error?a.message:String(a)})}}let aX=(0,h.ji)(ak,c),aY=(0,i.bT)(aM),aZ=(0,D.aq)(b,c,e),{model:a$,effort:a_}=(0,K.getResolvedAgentModelInfo)(b,c,e),a0=null===as?aF:{...aF,status:"running",reason:C.gv.STARTING,thinking:!1};(0,N.ox)(ap,{status:a0.status,reason:a0.reason,evidence:a0.evidence});let a1=(0,N.AD)(ap);return function({worktreeId:a,cliToolId:b,instanceId:c,sessionName:d,published:e,merged:f,newContent:g,output:h,realtimeSnippet:i,totalLines:j,lastCapturedLine:k,isPromptWaiting:l,promptData:m,promptAnswerable:n,autoYesState:o,lastEnterFallback:p,isSelectionListActive:q,isPagerActive:r,isDismissablePanelActive:s,startingSince:t,lastKnown:u,lastServerResponseTimestamp:v,compositeKey:w,stopEventAt:x,structuredEvents:y,model:z,effort:A,upstreamFaultMatch:B,paneObstruction:C,composer:F}){return{isRunning:!0,sessionName:d,cliToolId:b,sessionStatus:e.status,sessionStatusReason:e.reason,content:g,fullOutput:h,realtimeSnippet:i,lineCount:j,lastCapturedLine:k,thinking:e.thinking,isPromptWaiting:l,promptData:m,...void 0!==n?{promptAnswerable:n}:{},promptView:(0,P.ds)(m),autoYes:{enabled:o?.enabled??!1,expiresAt:o?.enabled?o.expiresAt:null,stopReason:o?.stopReason,lastSuppression:(0,E.gb)(a,b,c),stopMatchedText:o?.stopMatchedText,lastEnterFallback:p},isSelectionListActive:q,isPagerActive:r,isDismissablePanelActive:s,isUnclassifiedActive:null===t&&f.isUnclassifiedActive,startingSince:t,statusEvidence:e.evidence,lastKnownStatus:u?.status??null,lastKnownStatusAt:u?.at??null,lastServerResponseTimestamp:v,serverPollerActive:(0,D.bZ)(w),lastStopEventAt:x,structuredEvents:y,model:z,reasoningEffort:A,promptDedup:(0,G.XH)(a,b,c),upstreamFault:B?{id:B.fault.id,matchedText:B.matchedText,at:Date.now()}:null,paneObstruction:C?{id:C.id,matchedText:C.matchedText,at:Date.now()}:null,composerText:"content"===F.state?F.text:null,composerState:F.state}}({worktreeId:b,cliToolId:c,instanceId:e,sessionName:Y,published:a0,merged:aF,newContent:ao,output:ak,realtimeSnippet:aM,totalLines:am,lastCapturedLine:ad,isPromptWaiting:aG,promptData:aI,promptAnswerable:aJ,autoYesState:aZ,lastEnterFallback:(0,F.YN)((0,F.li)(b,c,e),void 0!==aJ?ar.promptDetection.promptData:null),isSelectionListActive:av,isPagerActive:aw,isDismissablePanelActive:ax,startingSince:as,lastKnown:a1,lastServerResponseTimestamp:aq,compositeKey:ap,stopEventAt:Z,structuredEvents:aa,model:a$,effort:a_,upstreamFaultMatch:aY,paneObstruction:aN,composer:aX})}},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
|
+
INSERT INTO app_settings (key, value, created_at, updated_at)
|
|
21
|
+
VALUES (?, ?, ?, ?)
|
|
22
|
+
ON CONFLICT(key) DO UPDATE SET
|
|
23
|
+
value = excluded.value,
|
|
24
|
+
updated_at = excluded.updated_at
|
|
25
|
+
`).run(f,JSON.stringify(b),c,c),b}},89253:(a,b,c)=>{c.d(b,{zX:()=>ah,$M:()=>aa,Tq:()=>B.Tq});var d=c(31990),e=c(88807),f=c(56791),g=c(43015),h=c(26895),i=c(28861),j=c(61878),k=c(70605),l=c(96742),m=c(18778),n=c(15194),o=c(8988),p=c(61789),q=c(72626),r=c(46423),s=c(93997),t=c(60),u=c(82450),v=c(56263),w=c(13033),x=c(72457),y=c(44321),z=c(71080),A=c(28918),B=c(28480),C=c(43925),D=c(40964),E=c(83598),F=c(31442),G=c(45146),H=c(85038),I=c(91601),J=c(92010),K=c(81099),L=c(63209),M=c(73478),N=c(57836),O=c(52767);function P(a){return{response:"",isComplete:!1,lineCount:a}}function Q(a,b,c,d,e,f,g,h=!1){let i=(0,t.QM)(b,c,d,e,f,h),j=a.slice(i);return{response:(0,p.aJ)(j.join("\n")),isComplete:!0,lineCount:c,promptDetection:g,bufferReset:d,captureWindowSaturated:h}}var R=c(77244),S=c(16402);let T=(0,q.h)("response-poller");function U(a){return!(void 0===a||(0,R.FD)(a.worktreeId,"antigravity",a.instanceId))&&(T.debug("antigravity-dialog-no-recent-receipt",{worktreeId:a.worktreeId,instanceId:a.instanceId??"antigravity"}),!0)}function V(a,b,c){let d=(0,S.vm)(a,b.promptData?.type,c);return!!d.present||(T.debug("prompt-candidate-not-vouched",{cliToolId:a,promptType:b.promptData?.type,gateMode:d.mode}),!1)}var W=c(96486);let X=["Waiting for auth","⠋","⠙","⠹","⠸","⠼","⠴","⠦","⠧","⠇","⠏"],Y=(0,q.h)("response-poller");function Z(a,b,c,d){let{cliToolId:e,lines:f,lastCapturedLine:g,bufferReset:h,captureWindowSaturated:i}=b;return e===a&&c&&!i&&(0,W.K)(e,f)?((h||d>g)&&Y.info(`${a} startup screen suppressed, response not saved`,{responseLength:c.length,lineCount:d}),{response:"",isComplete:!0,lineCount:d,bufferReset:h,captureWindowSaturated:i}):null}let $=(0,q.h)("response-poller");function _(a){return b=>{try{(0,g.broadcastMessage)("message_updated",{worktreeId:a,message:b})}catch(b){$.warn("prompt-sweep-broadcast-failed",{worktreeId:a,error:b instanceof Error?b.message:String(b)})}}}function aa(a,b,c,d,e,f){if("antigravity"===b){let b=(0,i.g)(a);if(null!==b)return U(e)?{isPrompt:!1,cleanContent:a.trim()}:b}if("command-code"===b&&void 0!==d){let b=(0,l.nK)(d);if("prompt"===b.kind)return b.prompt;if("unsupported"===b.kind)return{isPrompt:!1,cleanContent:a.trim()}}let g=(0,p.KO)(b),m=(0,h.gF)(a,c?{...g,precomputedLines:c}:g);if(m.isPrompt){let c=void 0!==f?(0,j.Yc)(f,b):(0,j.zJ)(d??a,b).liveRegion;if((0,k.z8)(c,m))return{isPrompt:!1,cleanContent:a.trim()}}return"antigravity"===b&&m.isPrompt&&U(e)?{isPrompt:!1,cleanContent:a.trim()}:m}function ab(a,b){return aa((0,p._A)((0,p.aJ)(a)),b,void 0,a)}function ac(a,b){if((0,H._B)(a.pollerKey))return!0;let c=(0,H.Bh)();return void 0!==c&&ad.has(c)||(c&&ad.add(c),$.info("retired-tick-refused",{worktreeId:a.worktreeId,cliToolId:a.cliToolId,instanceId:a.resolvedInstanceId,generation:c?.generation,after:b})),!1}(0,M.I7)();let ad=new WeakSet;async function ae(a,b,c){let{db:d,worktree:e,worktreeId:g,cliToolId:h,instanceId:i,resolvedInstanceId:j,pollerKey:k}=a;if(!ac(a,"capture"))return!1;let l=(0,z.o_)(k);if(l.log&&$.info("duplicate-response-skipped",{worktreeId:g,cliToolId:h,instanceId:j,...l.consecutive>1?{consecutive:l.consecutive,suppressed:l.suppressed}:{}}),(0,f.updateSessionState)(d,g,h,b.lineCount,j),(0,z.pN)(k)){let b=await (0,A.captureStructuredHistoryTurn)(g,h,i,{worktreePath:e.path,transcriptPathHint:c?.logFilePath??null});if(!ac(a,"recheck-reader"))return b;if(b)return(0,z.oE)(k),(0,B.t1)(k),$.info("structured-history-recheck-captured",{worktreeId:g,cliToolId:h,instanceId:j}),!0}return!1}function af(a,b,c,d){let{db:e,worktree:h,worktreeId:i,cliToolId:j,resolvedInstanceId:k,pollerKey:l}=a,{structuredHistoryLive:m,suppressScrapedHistory:n,holdScrapedHistory:o}=d;if(o)(0,B.r4)(l,{worktreeId:i,cliToolId:j,instanceId:k,content:b,timestamp:new Date,summary:c?.summary,logFileName:c?.logFileName,requestId:c?.requestId,worktreePath:h.path,transcriptPathHint:c?.logFilePath??null,expiresAt:Date.now()+B.mQ})&&($.info("structured-history-scrape-held",{worktreeId:i,cliToolId:j,instanceId:k,scrapedLength:b.length,holdMs:B.mQ}),(0,C.vQ)(i,j,k,!1));else if(n||(0,H._B)(l))if(n)m&&(0,B.t1)(l),$.info("structured-history-scrape-suppressed",{worktreeId:i,cliToolId:j,instanceId:k,scrapedLength:b.length,reason:m?"structured-history":"geometry-delegated"});else{let a=(0,f.createMessage)(e,{worktreeId:i,role:"assistant",content:b,messageType:"normal",timestamp:new Date,cliToolId:j,instanceId:k,summary:c?.summary,logFileName:c?.logFileName,requestId:c?.requestId});(0,g.broadcastMessage)("message",{worktreeId:i,message:a}),(0,C.vQ)(i,j,k,!1)}else $.info("scraped-response-save-refused",{worktreeId:i,cliToolId:j,instanceId:k,generation:(0,H.Bh)()?.generation})}async function ag(a,b,c,d,e){let{db:g,worktree:h,worktreeId:i,cliToolId:j,instanceId:k,resolvedInstanceId:l,pollerKey:n}=a,{result:o,isFullScreenTui:p,lineCountIsCursor:q}=b,r={},s=(0,A.isStructuredHistoryWriterLive)(i,j,k)||await (0,A.captureStructuredHistoryTurn)(i,j,k,{worktreePath:h.path,transcriptPathHint:c?.logFilePath??null},r);ac(a,"reader")&&(s?(0,z.oE)(n):(0,z.Pe)(n));let t=s||e.delegated,u=!t&&"not_yet_closed"===r.outcome;if(!d||t||u||await (0,m.T)(g,i,d,j,{pollerKey:n}),!ac(a,"conversation-log"))return af(a,d,c,{structuredHistoryLive:s,suppressScrapedHistory:t,holdScrapedHistory:u}),!1;(0,f.markPendingPromptsAsAnswered)(g,i,j,l,_(i))>0&&$.info("marked-answeredcount-pending");let v=(0,f.getSessionState)(g,i,l);return q&&v&&o.lineCount<=v.lastCapturedLine?($.info("race-condition-detected-skipping-save-re"),!1):(af(a,d,c,{structuredHistoryLive:s,suppressScrapedHistory:t,holdScrapedHistory:u}),(0,N.hd)({worktreeId:i,cliToolId:j,instanceId:k,waiting:!1}),(0,I.J$)({worktreeId:i,worktreeName:h.name,kind:"completion",agentName:l,excerpt:d}).catch(()=>{}),(0,f.updateSessionState)(g,i,j,o.lineCount,l),p&&(0,G.Et)(i,j,k),!0)}async function ah(a,b,c){let h=(0,e.getDbInstance)(),i=c??b;try{let e=(0,f.getWorktreeById)(h,a);if(!e)return $.error("worktree-not-found"),(0,G.Et)(a,b,c),!1;let j=(0,G.MN)(a,b,c),k={db:h,worktree:e,worktreeId:a,cliToolId:b,instanceId:c,resolvedInstanceId:i,pollerKey:j},l=await (0,d.K1)(a,b,c);if(!ac(k,"session-check"))return!1;if(!l)return $.info("session-not-running"),(0,G.Et)(a,b,c),!1;if(await (0,B.vb)(j),!ac(k,"pending-scrape-settle"))return!1;let m=(0,D.mf)(b,a,c),q=(0,F.n9)(m)?await (0,E.zQ)(m):{delegated:!1,released:!1};if(!ac(k,"geometry-probe"))return!1;q.released&&((0,f.updateSessionState)(h,a,b,0,i),$.info("geometry-delegation-released",{worktreeId:a,cliToolId:b,instanceId:i}));let A=(0,f.getSessionState)(h,a,i),C=A?.lastCapturedLine||0,M=await (0,d.Wh)(a,b,s.xE,c),R=ac(k,"capture"),S=function(a,b,c,d){let{db:e,worktreeId:g,cliToolId:h,instanceId:i,resolvedInstanceId:j,pollerKey:k}=a;if(d&&function(a,b,c,d){let e=d.split("\n").slice(-100).join("\n"),f=(0,L.bT)(e);(0,K.notifyUpstreamFaultPush)({worktreeId:a,cliToolId:b,instanceId:c,faultId:f?.fault.id??null,matchedText:f?.matchedText}).catch(()=>{})}(g,h,i,b),d&&("opencode"===h||"copilot"===h)){let a="opencode"===h?(0,t.ZX)(b):b;(0,w.IZ)(k,a,h)}let l=function(a,b,c,d=s.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,s.sl)(e.length,d),j="opencode"===c?g.map(p.aJ):null,k="claude"===c?(0,p.GT)(g):"copilot"===c?(0,p.wv)(g):"command-code"===c?(0,p.I$)(g):"codex"===c?(0,p.Zu)(g):j?(0,p.x7)(j):-1,l=k>=0?k:h,m=h>0&&b>25&&h+25<b,n=h>0&&b>50&&h<50,o=m||n;if(!o&&h<b-5)return null;let q=Math.max(0,h-20),u=g.slice(q),v=j?j.join("\n"):u.join("\n"),{promptPattern:w,separatorPattern:x,thinkingPattern:y,skipPatterns:z}=(0,p._X)(c),A=(a=60)=>(function(a,b,c,d,e,f){let g;if("codex"===a)return(0,p.Nc)(b,e,f,d>=0);if(c)return(0,t.V0)(c).echoEnd;if("copilot"===a){for(let a=e-1;a>=Math.max(0,e-f);a--){if(!p.y.test((0,p.aJ)(b[a])))continue;let c=a;for(;c+1<e&&p.Fg.test((0,p.aJ)(b[c+1]));)c++;return c}return -1}g=/^[>❯]\s+\S/;for(let a=e-1;a>=Math.max(0,e-f);a--){let c=(0,p.aJ)(b[a]);if(g.test(c))return a}return -1})(c,g,j,k,l,a);if("claude"===c||"codex"===c||"copilot"===c||"command-code"===c){let a=g.join("\n"),d=ab(a,c);if(d.isPrompt&&V(c,d,a))return Q(g,b,h,o,c,A,d,i)}let B={cliToolId:c,lines:g,totalLines:h,openCodeCleanLines:j,chromeStart:k,contentEnd:l,lastCapturedLine:b,bufferReset:o,captureWindowSaturated:i,checkLineCount:20,cleanOutputToCheck:(0,p.aJ)(v),promptPattern:w,separatorPattern:x,thinkingPattern:y,skipPatterns:z,findRecentUserPromptIndex:A};if(function(a){let{cliToolId:b,lines:c,totalLines:d,checkLineCount:e,cleanOutputToCheck:f,promptPattern:g,separatorPattern:h,thinkingPattern:i}=a,j=g.test(f),k=h.test(f),l="codex"===b?(0,p.DR)(c,e):i.test(f),m="copilot"===b?(0,p.Wn)(c.slice(Math.max(0,d-8)).map(p.aJ)):null,n="copilot"===b?"idle"===m:("codex"===b||"gemini"===b||"vibe-local"===b||"antigravity"===b)&&j&&!l,o="opencode"===b&&(0,t.bE)(f);return n||"claude"===b&&j&&k&&!l||"command-code"===b&&j&&k&&!l||o}(B))return function(a){let{cliToolId:b,totalLines:c,openCodeCleanLines:d,bufferReset:e,captureWindowSaturated:f,thinkingPattern:g,skipPatterns:h,findRecentUserPromptIndex:i}=a,{response:j,endIndex:k}=function(a){let{cliToolId:b,lines:c,totalLines:d,chromeStart:e,contentEnd:f,lastCapturedLine:g,bufferReset:h,captureWindowSaturated:i,skipPatterns:j,findRecentUserPromptIndex:k}=a,l=[],m=(0,t.QM)(g,d,h,b,k,i),n="codex"===b?f:d;for(let a=m;a<f;a++){let d=c[a],f=(0,p.aJ)(d);if("codex"===b&&/^›\s+/.test(f)||"gemini"===b&&/^(%|\$|.*@.*[%$#])\s*$/.test(f)||"antigravity"===b&&/^>\s*$/.test(f)||"opencode"===b&&e<0&&(p.sy.test(f)||p.uA.test(f))){n=a;break}j.some(a=>a.test(f))||l.push(d)}return{response:l.join("\n").trim(),endIndex:n}}(a),l=j.split("\n").slice(-r.$).join("\n");if("copilot"!==b&&g.test(l))return P(c);let m=function(a,b,c,d,e){if("claude"===a){let a=(0,p.aJ)(b),f=/[╭╮╰╯]/.test(a)||/░{3,}/.test(a)||/▓{3,}/.test(a),g=/Claude Code v\d+\.\d+|claude\//.test(a),h=/Tip:|for shortcuts|\?\s*for help/.test(a),i=/^\s*\/Users\/.*$/m.test(a)&&a.split("\n").length<30,j=e(c)>=0,k=a.match(/^[>❯]\s+(\S.*)$/m);if(k){let b=a.indexOf(k[0]);if(0===a.substring(b+k[0].length).trim().split("\n").filter(a=>{let b=a.trim();return b&&!d.some(a=>a.test(b))&&!/^─+$/.test(b)}).length)return P(c)}else if(!j&&(f||g||h||i)&&b.length<2e3)return Y.info("Claude startup banner suppressed, response not saved",{responseLength:b.length,hasBannerArt:f,hasVersionInfo:g,hasStartupTips:h,hasProjectInit:i}),P(c)}return null}(b,j,c,h,i)??function(a,b,c){if("copilot"===a){let a=(0,p.aJ)(b);if(!a.split("\n").some(a=>p.y.test(a))&&p.E0.some(b=>b.test(a)))return P(c)}return null}(b,j,c)??("command-code"===b&&0>i(c)?(Y.info("Command Code launch screen suppressed, response not saved",{responseLength:j.length}),P(c)):null)??function(a,b,c){if("gemini"===a&&((b.match(/[░█]/g)||[]).length>.3*b.length||X.some(a=>b.includes(a))||!b.includes("✦")&&b.length<10))return P(c);return null}(b,j,c)??Z("codex",a,j,k)??Z("vibe-local",a,j,k);return m||{response:j,isComplete:!0,lineCount:k,bufferReset:e,captureWindowSaturated:f,turnHeadTruncated:d?(0,t.V0)(d).headTruncated:void 0}}(B);if("opencode"!==c){let a=g.join("\n"),d=ab(a,c);if(d.isPrompt&&V(c,d,a))return Q(g,b,h,o,c,A,d,i)}return function(a){let{lines:b,totalLines:c,contentEnd:d,lastCapturedLine:e,bufferReset:f,captureWindowSaturated:g,skipPatterns:h,findRecentUserPromptIndex:i}=a,j=[],k=f||g||e>=c-5,l=k?i(80):-1,m=k?l>=0?l+1:Math.max(0,c-80):Math.max(0,e);for(let a=m;a<Math.min(c,d);a++){let c=b[a],d=(0,p.aJ)(c);h.some(a=>a.test(d))||j.push(c)}let n=j.join("\n").trim();return n?{response:n,isComplete:!1,lineCount:c}:P(c)}(B)}(b,c,h,s.xE);if(!l||!l.isComplete){d&&l&&((0,x.WR)(k),(0,z.fS)(k));let{thinkingPattern:a}=(0,p._X)(h),c=(0,p.aJ)(b).split("\n").slice(-r.$).join("\n");return d&&a.test(c)&&(0,f.markPendingPromptsAsAnswered)(e,g,h,j,_(g))>0&&$.info("marked-answeredcount-pending"),!1}let m="opencode"===h||"copilot"===h,o=!(0,n.VA)(h)&&!l.captureWindowSaturated;return(!o||!!l.bufferReset||l.lineCount!==c)&&(o&&!l.bufferReset&&l.lineCount<=c?($.debug("already-saved-up-to-last-captured-line",{worktreeId:g,cliToolId:h,instanceId:j,lineCount:l.lineCount,lastCapturedLine:c}),!1):{result:l,isFullScreenTui:m,lineCountIsCursor:o})}(k,M,C,R);if(!S)return!1;let{result:T,isFullScreenTui:U,lineCountIsCursor:W}=S,aa=T.promptDetection??ab(T.response,b);if(aa.isPrompt&&V(b,aa,M))return R&&(0,z.fS)(j),function(a,b,c,d){let{db:e,worktree:h,worktreeId:i,cliToolId:j,instanceId:k,resolvedInstanceId:l,pollerKey:m}=a;if(!(0,H._B)(m))return $.info("prompt-save-refused",{worktreeId:i,cliToolId:j,instanceId:l,generation:(0,H.Bh)()?.generation}),!1;let n=b.rawContent||b.cleanContent,o=(0,x.zm)(n,j);if((0,x.gv)(m,o)){(0,y.LN)(i,j,k);let a=(0,x.p6)(m);return a.log&&$.info("duplicate-prompt-skipped",{worktreeId:i,cliToolId:j,...a.consecutive>1?{consecutive:a.consecutive,suppressed:a.suppressed}:{}}),!1}let p=n;"copilot"===j&&(p=(0,u.LH)(n),p=(0,u.Sj)(p,v.Rf,v.ky)),(0,f.clearInProgressMessageId)(e,i,j,l);let q=(0,f.createMessage)(e,{worktreeId:i,role:"assistant",content:p,messageType:"prompt",promptData:b.promptData,timestamp:new Date,cliToolId:j,instanceId:l});(0,f.updateSessionState)(e,i,j,c.lineCount,l),(0,g.broadcastMessage)("message",{worktreeId:i,message:q}),(0,O.r)(e,i,j,l,"prompt_detected",{promptType:b.promptData?.type});let r=Date.now(),s=(0,N.Jp)(i,j,k)?.since??r;return(0,J.R)({worktreeId:i,cliToolId:j,instanceId:k,waitingSince:s})||(0,I.J$)({worktreeId:i,worktreeName:h.name,kind:"prompt",agentName:l,instanceId:l,waitingKind:"prompt",waitingSince:s,excerpt:b.promptData?.question??p}).catch(()=>{}),(0,N.hd)({worktreeId:i,cliToolId:j,instanceId:k,waiting:!0,kind:"prompt",now:r}),d||(0,G.Et)(i,j,k),!0}(k,aa,T,U);if(R&&(0,x.WR)(j),!T.response||""===T.response.trim())return R&&((0,z.fS)(j),(0,f.updateSessionState)(h,a,b,T.lineCount,i)),!1;let ad="claude"===b?(0,o.R)(T.response):void 0,af=function(a,b,c,d){let e=b.response;if("gemini"===a)e=(0,u.IS)(b.response);else if("claude"===a)e=(0,u.NN)(b.response);else if("copilot"===a){let a=(0,w.Uz)(c)||b.response;e=(0,u.LH)(a),e=(0,u.Sj)(e,v.Rf,v.ky),d&&(0,w.q1)(c)}else if("opencode"===a){let a=(0,w.Uz)(c),f=b.turnHeadTruncated&&a?a:b.response;e=(0,u.aW)(f),d&&(0,w.q1)(c)}return e}(b,T,j,R);if(!af||""===af.trim()||"[No content]"===af)return R&&((0,z.fS)(j),(0,f.updateSessionState)(h,a,b,T.lineCount,i)),(0,f.clearInProgressMessageId)(h,a,b,i),!1;if(!W&&(0,z.j7)(j,af))return await ae(k,T,ad);return await ag(k,S,ad,af,q)}catch(a){return $.error("response:check-failed",{error:a instanceof Error?a.message:String(a)}),!1}}},91601:(a,b,c)=>{c.d(b,{Di:()=>f.Di,HR:()=>d.HR,J$:()=>e.notifyPushSubscribers,O$:()=>f.O$,d7:()=>f.d7,rS:()=>f.rS});var d=c(27519);c(8532);var e=c(61191);c(3915),c(92010),c(81099),c(77703),c(73478);var f=c(80544);c(50779),c(4806),c(55233)},92010:(a,b,c)=>{c.d(b,{R:()=>h});var d=c(24455),e=c(72626),f=c(52277);let g=(0,e.h)("push/prompt-gate");function h(a){let b=function(a){let{worktreeId:b,cliToolId:c,instanceId:e,waitingSince:g}=a,h=(0,d.aq)(b,c,e);if(null===h||!h.enabled)return{suppress:!1,reason:"auto-yes-inactive",stopReason:h?.stopReason};let i=(0,f.gb)(b,c,e);return null!==i&&i.at>=g?{suppress:!1,reason:"policy-withheld",suppressedBy:i.reason}:!0===a.escalated?{suppress:!1,reason:"escalation-reminder"}:{suppress:!0,reason:"auto-yes-answering"}}(a),c={worktreeId:a.worktreeId,cliToolId:a.cliToolId,instanceId:a.instanceId??a.cliToolId,waitingSince:a.waitingSince,escalated:!0===a.escalated,reason:b.reason,...void 0!==b.stopReason?{stopReason:b.stopReason}:{},...void 0!==b.suppressedBy?{suppressedBy:b.suppressedBy}:{}};return b.suppress?g.info("prompt-push-suppressed",c):g.debug("prompt-push-allowed",c),b.suppress}},97751:(a,b,c)=>{c.d(b,{M4:()=>p,W7:()=>r,aK:()=>q,dV:()=>l,dZ:()=>m,yQ:()=>j});var d=c(72626),e=c(27870),f=c(25071),g=c(59409),h=c(62887);let i=(0,d.h)("lib/hooks/structured-decision-response"),j="Rejected by the operator via `commandmate respond`.",k={1:["once","allow once","allow","yes","y"],2:["always","allow always","allow-always"],3:["reject","deny","no","n"]};function l(a,b){let c=a.trim().toLowerCase();if(""===c)return null;for(let a of void 0===b?e.QB:(0,e.T5)(b))if(c===String(a.number)||c===a.label.toLowerCase()||c===a.reply||(k[a.number]??[]).includes(c))return a;return null}function m(a){let b=a.questions[0];return b?b.choices.map((a,b)=>({number:b+1,label:a.label,reply:a.label})):[]}let n=/^\d+(?:\s*[,\s]\s*\d+)*$/;function o(a){return a.map(a=>`${a.number} = ${a.label}`).join(", ")}function p(a,b){let c=b.trim();if(""===c)return{ok:!1,reason:"unresolvable_answer",message:"An empty answer names no choice."};if(1!==a.questions.length)return{ok:!1,reason:"multi_question_unsupported",message:`This call asks ${a.questions.length} questions and \`answers\` carries one array per question; a single answer cannot say what the others are. Answer it in the terminal.`};let d=a.questions[0],e=m(a);if(n.test(c)){let a=[];for(let b of c.split(/[,\s]+/)){let d=e.find(a=>a.number===Number(b));if(!d)return{ok:!1,reason:"answer_out_of_range",message:`'${c}' names no choice this question offers. ${o(e)}.`};a.some(a=>a.number===d.number)||a.push(d)}return a.length>1&&!d.multiSelect?{ok:!1,reason:"multi_select_not_offered",message:`This question accepts one choice. Send a single number: ${o(e)}.`}:{ok:!0,resolved:{answers:[a.map(a=>a.reply)],selected:a,freeText:!1}}}let f=e.find(a=>a.label.toLowerCase()===c.toLowerCase());return f?{ok:!0,resolved:{answers:[[f.reply]],selected:[f],freeText:!1}}:c.length>1e3?{ok:!1,reason:"unresolvable_answer",message:"A free-text answer is limited to 1000 characters; this one is longer and is refused rather than cut short."}:{ok:!0,resolved:{answers:[[c]],selected:[],freeText:!0}}}function q(a){return{kind:"answer",answers:a.answers}}async function r({worktreeId:a,cliToolId:b,instanceId:d,answer:k,useDefault:m=!1}){let n,o=(0,g.VM)(b);if(null===o.capabilities.eventIdentity)return{kind:"not-applicable",reason:"no-decision-identity"};let p={worktreeId:a,cliToolId:b,instanceId:d};try{n=await o.listPending(p)}catch(c){return i.warn("structured-decision-unreachable",{worktreeId:a,cliToolId:b,instanceId:d??b,error:c instanceof Error?c.message:String(c)}),{kind:"not-applicable",reason:"source-unreachable"}}let q=n.filter(a=>"permission"===a.kind);if(0===q.length)return{kind:"not-applicable",reason:"no-pending-decision"};let r=q[0];if(q.length>1&&i.info("structured-decision-multiple-pending",{worktreeId:a,cliToolId:b,instanceId:d??b,pending:q.length,answering:r.id}),m)return{kind:"refused",reason:"unresolvable_answer",message:`--default cannot answer a structured approval: the agent publishes no default verdict. Send a number instead — ${(0,e.T5)(b).map(a=>`${a.number} = ${a.label}`).join(", ")}.`};let s=void 0===k?null:l(k,b);if(!s)return{kind:"refused",reason:"answer_out_of_range",message:`'${k??""}' is not one of the verdicts this approval accepts. `+(0,e.T5)(b).map(a=>`${a.number} = ${a.label} (${a.reply})`).join(", ")+"."};let t=function(a){switch(a){case 1:return{kind:"allowOnce"};case 2:return{kind:"allowAlways"};case 3:return{kind:"deny",message:j};default:return null}}(s.number);if(!t)return{kind:"refused",reason:"unresolvable_answer",message:`Option ${s.number} has no verdict on this server.`};let{delivery:u}=await (0,f.GW)(o,p,r,t),v=u?.delivered===!0;if(v&&o.capabilities.permissionReplyReleasesPrompt){let{recordAgentEvent:e}=await Promise.resolve().then(c.bind(c,33294));e(a,b,d,{event:"notification",at:Date.now(),detail:h.KC,sessionId:r.conversationId,decisionId:r.id,promptSettled:!0})}return i.info("structured-decision-answered",{worktreeId:a,cliToolId:b,instanceId:d??b,decisionId:r.id,optionNumber:s.number,reply:s.reply,delivered:v}),{kind:"answered",decisionId:r.id,option:s,delivered:v}}},99508:(a,b,c)=>{c.r(b),c.d(b,{INTERACTION_SNAPSHOT_RETRY_DELAYS_MS:()=>o,__resetTerminalBroadcastState:()=>w,broadcastSessionStatus:()=>v,broadcastTerminalSnapshot:()=>p,broadcastTerminalSnapshotAfterInteraction:()=>u});var d=c(43015),e=c(88807),f=c(79565),g=c(72626),h=c(8360),i=c(93997),j=c(36925),k=c(56455),l=c(85038);let m=(0,g.h)("terminal-broadcast"),n=(0,j.v)("__terminalSnapshotVersions",()=>new Map),o=[100,250,500,750];async function p(a,b,c){if((0,d.hasRoomSubscribers)(a))try{if(!await r(a,b,c))return;if(!(0,l.Z)())throw new l.SC;let d=(0,e.getDbInstance)(),g=await (0,f.$v)(d,a,b,c);if(!(0,l.Z)())throw new l.SC;t(a,b,g,c)}catch(d){if(d instanceof l.SC)return void m.info("terminal-snapshot:retired",{worktreeId:a,cliToolId:b,instanceId:c});m.error("terminal-snapshot:failed",{worktreeId:a,error:d instanceof Error?d.message:String(d)})}}function q(a){return JSON.stringify([a.fullOutput??"",a.isRunning,a.sessionStatus,a.thinking??!1,a.isPromptWaiting??!1,a.promptAnswerable??null,a.autoYes?.lastEnterFallback??null,a.isSelectionListActive??!1,a.isPagerActive??!1,a.isDismissablePanelActive??!1,a.isUnclassifiedActive??!1,a.startingSince??null])}async function r(a,b,c){let d=h.CLIToolManager.getInstance().getTool(b).getSessionName(a,c),e=await (0,k.y)(a,d);return null===e||(m.info("terminal-snapshot:refused",{worktreeId:a,cliToolId:b,instanceId:c,refusal:e}),!1)}async function s(a,b,c){if(!await r(a,b,c))return null;let d=h.CLIToolManager.getInstance().getTool(b);return(0,i.gm)(d.getSessionName(a,c)),(0,f.$v)((0,e.getDbInstance)(),a,b,c)}function t(a,b,c,e){let f=e??b,g=`${a}:${b}:${f}`;(0,d.broadcast)(a,{type:"terminal_snapshot",worktreeId:a,cliToolId:b,instanceId:f,output:c.fullOutput??"",isRunning:c.isRunning,sessionStatus:c.sessionStatus,thinking:c.thinking??!1,isPromptWaiting:c.isPromptWaiting??!1,promptData:c.promptData??null,promptAnswerable:c.promptAnswerable,autoYesEnterFallback:c.autoYes?.lastEnterFallback,isSelectionListActive:c.isSelectionListActive??!1,isPagerActive:c.isPagerActive??!1,isDismissablePanelActive:c.isDismissablePanelActive??!1,isUnclassifiedActive:c.isUnclassifiedActive??!1,startingSince:c.startingSince??null,version:function(a){let b=(n.get(a)??0)+1;return n.set(a,b),b}(g)})}async function u(a,b,c,e=o){if((0,d.hasRoomSubscribers)(a))try{let d=await s(a,b,c);if(null===d)return;let f=q(d);for(let g of(t(a,b,d,c),e)){await new Promise(a=>setTimeout(a,g));let d=await s(a,b,c);if(null===d)return;if(q(d)!==f)return void t(a,b,d,c)}}catch(d){m.error("terminal-snapshot:interaction-refresh-failed",{worktreeId:a,cliToolId:b,instanceId:c,error:d instanceof Error?d.message:String(d)})}}function v(a,b,c){(0,d.broadcast)(a,{type:"session_status_changed",worktreeId:a,isRunning:b,cliTool:c?.cliTool??null,instance:c?.instance??null})}function w(){n.clear()}}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";exports.id=5209,exports.ids=[5209],exports.modules={998:(a,b,c)=>{c.d(b,{BF:()=>f,EH:()=>i,_R:()=>h});var d=c(
|
|
1
|
+
"use strict";exports.id=5209,exports.ids=[5209],exports.modules={998:(a,b,c)=>{c.d(b,{BF:()=>f,EH:()=>i,_R:()=>h});var d=c(39217);let e={"session-killed":{state:"disable",poller:"stop"},"instance-removed":{state:"delete",poller:"stop"},"worktree-deleted":{state:"delete",poller:"stop"},"orphan-swept":{state:"delete",poller:"stop"},"consecutive-errors":{state:"disable",stopReason:"consecutive_errors",poller:"stop"},"server-shutdown":{state:"none",poller:"stop"}};function f(a,b){if("stop"===e[a].poller)switch(b.scope){case"instance":(0,d._i)((0,d.v7)(b.worktreeId,b.cliToolId,b.instanceId));return;case"worktree":(0,d._C)(b.worktreeId);return;case"key":(0,d._i)(b.compositeKey);return;case"all":(0,d.BS)();return}}function g(a,b){let c=(0,d.pL)(a);c&&(0,d.XK)((0,d.Ue)(a),c,b,(0,d.GE)(a)??void 0)}function h(a,b){let c=e[a];if("none"!==c.state)switch(b.scope){case"instance":"disable"===c.state?(0,d.XK)(b.worktreeId,b.cliToolId,c.stopReason,b.instanceId):(0,d.DR)((0,d.v7)(b.worktreeId,b.cliToolId,b.instanceId));return;case"worktree":"disable"===c.state?(0,d.kC)(b.worktreeId).forEach(a=>g(a,c.stopReason)):(0,d.LP)(b.worktreeId);return;case"key":"disable"===c.state?g(b.compositeKey,c.stopReason):(0,d.DR)(b.compositeKey);return;case"all":(0,d.hN)().forEach(a=>"disable"===c.state?g(a,c.stopReason):(0,d.DR)(a));return}}function i(a,b){f(a,b),h(a,b)}},23197:(a,b,c)=>{c.d(b,{H:()=>d});let d="__global__"},65209:(a,b,c)=>{c.d(b,{Nz:()=>t,l7:()=>x,vr:()=>v});var d=c(95220),e=c(998),f=c(56793),g=c(85775),h=c(93997),i=c(15194),j=c(23197),k=c(77093),l=c(72626),m=c(8360),n=c(79892),o=c(82325),p=c(73753),q=c(31347);let r=(0,l.h)("session-cleanup");async function s(a,b){let c={worktreeId:a,sessionsKilled:[],sessionErrors:[],pollersStopped:[],pollerErrors:[]};for(let e of((0,h.pc)(),i.XH)){try{await b(a,e)&&(c.sessionsKilled.push(e),r.info("session:killed",{worktreeId:a,cliToolId:e}))}catch(d){let b=`${e}: ${(0,k.u1)(d)}`;c.sessionErrors.push(b),r.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,k.u1)(d)}`;c.pollerErrors.push(b),r.warn("response-poller:stop-failed",{worktreeId:a,cliToolId:e,error:d instanceof Error?d.message:String(d)})}}try{(0,e.BF)("worktree-deleted",{scope:"worktree",worktreeId:a}),c.pollersStopped.push("auto-yes-poller")}catch(d){let b=`auto-yes-poller: ${(0,k.u1)(d)}`;c.pollerErrors.push(b),r.warn("auto-yes-poller:stop-failed",{worktreeId:a,error:d instanceof Error?d.message:String(d)})}try{(0,e._R)("worktree-deleted",{scope:"worktree",worktreeId:a}),c.pollersStopped.push("auto-yes-state")}catch(d){let b=`auto-yes-state: ${(0,k.u1)(d)}`;c.pollerErrors.push(b),r.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,k.u1)(d)}`;c.pollerErrors.push(b),r.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,k.u1)(d)}`;c.pollerErrors.push(b),r.warn("timer-manager:stop-failed",{worktreeId:a,error:d instanceof Error?d.message:String(d)})}return c}async function t(a,b){let c=await Promise.allSettled(a.map(a=>s(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,k.u1)(f.reason)}`)}return{results:d,warnings:e}}async function u(a,b,c){try{let e=m.CLIToolManager.getInstance().getTool(b);if(!await e.isRunning(a))return!1;let f=e.getSessionName(a),g=await (0,q.s_)(f,c);if("owned"!==g.verdict)return!1;let h=`${a}:${b}`;return(0,d.clearPromptHashCache)(h),(0,n.fY)(f)}catch{return!1}}function v(a){return async(b,c)=>{let d=a.get(b);return void 0!==d&&u(b,c,d)}}async function w(){let a=0,b=m.CLIToolManager.getInstance();for(let c of i.XH)try{let d=b.getTool(c).getSessionName(j.H);await (0,n.N)(d)&&await (0,n.fY)(d)&&(a++,r.info("global-session:killed",{cliToolId:c,sessionName:d}))}catch(a){r.warn("global-session:kill-failed",{cliToolId:c,error:(0,k.u1)(a)})}return a}async function x(a,b){let c=new Map((0,p.Sj)(a).map(a=>[a.id,a.path])),d=(0,o.L0)(a,b);try{await w()}catch(a){r.warn("sync:global-cleanup-failed",{error:(0,k.u1)(a)})}let e=[];if(d.deletedIds.length>0)try{let a=await t(d.deletedIds,v(c));a.warnings.length>0&&(r.warn("sync:cleanup-warnings",{warnings:a.warnings}),e=[`${a.warnings.length} session cleanup warning(s) occurred`])}catch(a){r.error("sync:cleanup-failed",{error:(0,k.u1)(a)}),e=["Session cleanup encountered an error"]}return{syncResult:d,cleanupWarnings:e}}},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}}};
|