commandmate 0.44.1 → 0.44.3
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 +169 -169
- package/.next/app-path-routes-manifest.json +35 -35
- package/.next/build-manifest.json +2 -2
- package/.next/prerender-manifest.json +3 -3
- package/.next/react-loadable-manifest.json +0 -6
- 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.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.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.js +2 -2
- 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.js +1 -1
- package/.next/server/app/api/auth/login/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/auth/logout/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/auth/status/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/capabilities/route.js +1 -1
- package/.next/server/app/api/capabilities/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/daily-summary/route.js +1 -1
- package/.next/server/app/api/daily-summary/route.js.nft.json +1 -1
- package/.next/server/app/api/daily-summary/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/daily-summary/status/route.js +1 -1
- package/.next/server/app/api/daily-summary/status/route.js.nft.json +1 -1
- package/.next/server/app/api/daily-summary/status/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/external-apps/[id]/health/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/external-apps/[id]/route.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.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 +2 -2
- package/.next/server/app/api/hooks/agent-event/route.js.nft.json +1 -1
- package/.next/server/app/api/hooks/agent-event/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/hooks/claude-done/route.js +2 -2
- package/.next/server/app/api/hooks/claude-done/route.js.nft.json +1 -1
- package/.next/server/app/api/hooks/claude-done/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/hooks/permission-request/route.js +1 -1
- package/.next/server/app/api/hooks/permission-request/route.js.nft.json +1 -1
- package/.next/server/app/api/hooks/permission-request/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/metrics/vibe/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/ollama/models/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/push/escalation/route.js +1 -1
- package/.next/server/app/api/push/escalation/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/push/subscriptions/route.js +2 -2
- package/.next/server/app/api/push/subscriptions/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/push/vapid/route.js +1 -1
- package/.next/server/app/api/push/vapid/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/relays/[relayId]/cancel/route.js +1 -1
- package/.next/server/app/api/relays/[relayId]/cancel/route.js.nft.json +1 -1
- package/.next/server/app/api/relays/[relayId]/cancel/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/relays/route.js +1 -1
- package/.next/server/app/api/relays/route.js.nft.json +1 -1
- package/.next/server/app/api/relays/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/remote/pair/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/repositories/[id]/route.js +1 -1
- package/.next/server/app/api/repositories/[id]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/repositories/clone/[jobId]/route.js +1 -1
- package/.next/server/app/api/repositories/clone/[jobId]/route.js.nft.json +1 -1
- package/.next/server/app/api/repositories/clone/[jobId]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/repositories/clone/route.js +1 -1
- package/.next/server/app/api/repositories/clone/route.js.nft.json +1 -1
- package/.next/server/app/api/repositories/clone/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/repositories/excluded/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/repositories/restore/route.js +1 -1
- package/.next/server/app/api/repositories/restore/route.js.nft.json +1 -1
- package/.next/server/app/api/repositories/restore/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/repositories/route.js +1 -1
- package/.next/server/app/api/repositories/route.js.nft.json +1 -1
- package/.next/server/app/api/repositories/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/repositories/scan/route.js +1 -1
- package/.next/server/app/api/repositories/scan/route.js.nft.json +1 -1
- package/.next/server/app/api/repositories/scan/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/repositories/sync/route.js +1 -1
- package/.next/server/app/api/repositories/sync/route.js.nft.json +1 -1
- package/.next/server/app/api/repositories/sync/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/repositories/validate-path/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/settings/default-agents/route.js +1 -1
- package/.next/server/app/api/settings/default-agents/route.js.nft.json +1 -1
- package/.next/server/app/api/settings/default-agents/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/settings/default-surface-mode/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/sidebar/group-order/route.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.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.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.js +2 -2
- package/.next/server/app/api/templates/[id]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/templates/route.js +2 -2
- package/.next/server/app/api/templates/route_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 +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.js +1 -1
- package/.next/server/app/api/worktrees/[id]/cli-tool/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/cmate/schedules/route.js +3 -3
- package/.next/server/app/api/worktrees/[id]/cmate/schedules/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/cmate/schedules/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/current-output/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/current-output/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/current-output/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/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.js +2 -2
- package/.next/server/app/api/worktrees/[id]/execution-logs/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/execution-logs/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/files/[...path]/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/files/[...path]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/branch/create/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/branch/create/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/branch/delete/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/branch/delete/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/branches/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/checkout/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/checkout/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/commit/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/commit/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/diff/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/fetch/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/fetch/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/log/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/pull/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/pull/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/push/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/push/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/reset/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/reset/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/revert/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/revert/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/show/[commitHash]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/stage/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/stage/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/staged/route_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.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/stash/apply/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/stash/pop/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/stash/pop/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/stash/push/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/stash/push/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/stash/route_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.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.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 +1 -1
- package/.next/server/app/api/worktrees/[id]/instances/opencode/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/instances/opencode/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/interrupt/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/interrupt/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/interrupt/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/kill-session/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/kill-session/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/kill-session/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/logs/[filename]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/logs/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/marp-render/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/marp-render/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/memos/[memoId]/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/memos/[memoId]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/memos/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/memos/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/messages/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/opencode/diff/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/opencode/diff/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/opencode/session/route.js +1 -2
- package/.next/server/app/api/worktrees/[id]/opencode/session/route.js.nft.json +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.js +1 -2
- package/.next/server/app/api/worktrees/[id]/opencode/share/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/opencode/share/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/prompt-response/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/prompt-response/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/prompt-response/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/resolve-target/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/respond/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/respond/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/respond/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/schedules/[scheduleId]/route.js +2 -2
- package/.next/server/app/api/worktrees/[id]/schedules/[scheduleId]/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/schedules/[scheduleId]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/schedules/active/route.js +2 -2
- package/.next/server/app/api/worktrees/[id]/schedules/active/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/schedules/active/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/schedules/route.js +3 -3
- package/.next/server/app/api/worktrees/[id]/schedules/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/schedules/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/search/route_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 +3 -3
- 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.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.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.js +1 -1
- package/.next/server/app/api/worktrees/[id]/slash-commands/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/special-keys/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/special-keys/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/special-keys/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/tasks/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/tasks/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/terminal/route.js +2 -2
- 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.js +1 -1
- package/.next/server/app/api/worktrees/[id]/todos/[todoId]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/todos/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/todos/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/tree/[...path]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/tree/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/upload/[...path]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/verify/config/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/verify/config/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/verify/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/verify/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/verify/runs/[runId]/cancel/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/verify/runs/[runId]/cancel/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/verify/runs/[runId]/route_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.js +1 -1
- package/.next/server/app/sessions/page.js.nft.json +1 -1
- package/.next/server/app/sessions/page_client-reference-manifest.js +1 -1
- package/.next/server/app/skills/[skillId]/page_client-reference-manifest.js +1 -1
- package/.next/server/app/skills/installed/page_client-reference-manifest.js +1 -1
- package/.next/server/app/skills/page_client-reference-manifest.js +1 -1
- package/.next/server/app/worktrees/[id]/files/[...path]/page_client-reference-manifest.js +1 -1
- package/.next/server/app/worktrees/[id]/page.js +11 -11
- package/.next/server/app/worktrees/[id]/page.js.nft.json +1 -1
- package/.next/server/app/worktrees/[id]/page_client-reference-manifest.js +1 -1
- package/.next/server/app/worktrees/[id]/terminal/page_client-reference-manifest.js +1 -1
- package/.next/server/app-paths-manifest.json +35 -35
- package/.next/server/chunks/1191.js +2 -2
- package/.next/server/chunks/1210.js +1 -1
- package/.next/server/chunks/1559.js +2 -0
- package/.next/server/chunks/1789.js +1 -0
- package/.next/server/chunks/2119.js +1 -1
- package/.next/server/chunks/2404.js +1 -1
- package/.next/server/chunks/2445.js +1 -1
- package/.next/server/chunks/2460.js +1 -0
- package/.next/server/chunks/2710.js +1 -1
- package/.next/server/chunks/2908.js +1 -0
- package/.next/server/chunks/2980.js +1 -1
- package/.next/server/chunks/3241.js +1 -1
- package/.next/server/chunks/3480.js +1 -1
- package/.next/server/chunks/3718.js +1 -1
- package/.next/server/chunks/4207.js +2 -2
- package/.next/server/chunks/450.js +1 -1
- package/.next/server/chunks/4672.js +5 -0
- package/.next/server/chunks/{9353.js → 4718.js} +2 -2
- package/.next/server/chunks/4837.js +14 -0
- package/.next/server/chunks/5048.js +1 -1
- package/.next/server/chunks/5209.js +1 -0
- package/.next/server/chunks/5595.js +1 -0
- package/.next/server/chunks/5625.js +25 -0
- package/.next/server/chunks/5845.js +1 -0
- package/.next/server/chunks/611.js +1 -1
- package/.next/server/chunks/6130.js +1 -1
- package/.next/server/chunks/6401.js +1 -1
- package/.next/server/chunks/6781.js +1 -1
- package/.next/server/chunks/6793.js +3 -3
- package/.next/server/chunks/7491.js +2 -2
- package/.next/server/chunks/7905.js +1 -1
- package/.next/server/chunks/850.js +1 -0
- package/.next/server/chunks/8543.js +1 -1
- package/.next/server/chunks/8728.js +3 -3
- package/.next/server/chunks/8791.js +1 -1
- package/.next/server/chunks/8800.js +1 -1
- package/.next/server/chunks/8918.js +7 -7
- package/.next/server/chunks/9130.js +1 -5
- package/.next/server/chunks/9390.js +2 -3
- package/.next/server/chunks/9584.js +1 -1
- package/.next/server/chunks/9627.js +6 -6
- package/.next/server/chunks/9731.js +3 -3
- 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/{1642-fb2e176aaadbd137.js → 1642-767aed8e7c61ef7f.js} +1 -1
- package/.next/static/chunks/{2407-f1f258d4a1d92620.js → 2407-06d35bb1aa02de80.js} +1 -1
- package/.next/static/chunks/{2619-04bc32f026a0d946.js → 2619-a305ad4810f1393a.js} +1 -1
- package/.next/static/chunks/4727-5d695d71e3fdf97b.js +1 -0
- package/.next/static/chunks/{8165-3853772f6ae1299b.js → 8165-3525fb42f1b4976e.js} +1 -1
- package/.next/static/chunks/app/{layout-da66300cc20244ed.js → layout-0d1750b833f5cc3e.js} +1 -1
- package/.next/static/chunks/app/sessions/page-2af68c63211c751f.js +1 -0
- package/.next/static/chunks/app/worktrees/[id]/page-e36898c3a80e7302.js +1 -0
- package/.next/static/chunks/app/worktrees/[id]/terminal/{page-373ea37b16d930c7.js → page-c601f3b3ece6557e.js} +1 -1
- package/.next/static/css/057f64a65726c439.css +1 -0
- package/.next/trace +13 -13
- package/dist/cli/commands/ask.d.ts.map +1 -1
- package/dist/cli/commands/ask.js +120 -119
- package/dist/cli/commands/attach.d.ts +94 -0
- package/dist/cli/commands/attach.d.ts.map +1 -1
- package/dist/cli/commands/attach.js +145 -7
- package/dist/cli/commands/auto-yes.js +1 -1
- package/dist/cli/commands/capture.d.ts.map +1 -1
- package/dist/cli/commands/capture.js +10 -13
- package/dist/cli/commands/command-target.d.ts +23 -0
- package/dist/cli/commands/command-target.d.ts.map +1 -0
- package/dist/cli/commands/command-target.js +25 -0
- package/dist/cli/commands/instances.d.ts.map +1 -1
- package/dist/cli/commands/instances.js +41 -2
- package/dist/cli/commands/message-dispatch.d.ts +36 -0
- package/dist/cli/commands/message-dispatch.d.ts.map +1 -0
- package/dist/cli/commands/message-dispatch.js +63 -0
- package/dist/cli/commands/reply.d.ts.map +1 -1
- package/dist/cli/commands/reply.js +2 -5
- package/dist/cli/commands/respond.d.ts.map +1 -1
- package/dist/cli/commands/respond.js +3 -6
- package/dist/cli/commands/send.d.ts.map +1 -1
- package/dist/cli/commands/send.js +149 -146
- package/dist/cli/commands/wait.d.ts.map +1 -1
- package/dist/cli/commands/wait.js +608 -416
- package/dist/cli/types/api-responses.d.ts +174 -27
- package/dist/cli/types/api-responses.d.ts.map +1 -1
- package/dist/cli/types/api-responses.js +4 -2
- package/dist/cli/utils/api-client.d.ts +25 -5
- package/dist/cli/utils/api-client.d.ts.map +1 -1
- package/dist/cli/utils/api-client.js +87 -55
- package/dist/cli/utils/server-url.d.ts +1 -0
- package/dist/cli/utils/server-url.d.ts.map +1 -1
- package/dist/cli/utils/server-url.js +7 -0
- package/dist/config/uat-isolation.d.ts +140 -0
- package/dist/config/uat-isolation.d.ts.map +1 -0
- package/dist/config/uat-isolation.js +246 -0
- package/dist/lib/global-state.d.ts +12 -0
- package/dist/lib/global-state.d.ts.map +1 -0
- package/dist/lib/global-state.js +16 -0
- package/dist/lib/polling/auto-yes-suppression-reason.d.ts +33 -0
- package/dist/lib/polling/auto-yes-suppression-reason.d.ts.map +1 -0
- package/dist/lib/polling/auto-yes-suppression-reason.js +2 -0
- package/dist/lib/session/prompt-view.d.ts +228 -0
- package/dist/lib/session/prompt-view.d.ts.map +1 -0
- package/dist/lib/session/prompt-view.js +290 -0
- package/dist/lib/session/status-evidence-type.d.ts +16 -0
- package/dist/lib/session/status-evidence-type.d.ts.map +1 -0
- package/dist/lib/session/status-evidence-type.js +2 -0
- package/dist/lib/tmux/legacy-session-alias.d.ts.map +1 -1
- package/dist/lib/tmux/legacy-session-alias.js +2 -1
- package/dist/server/locales/en/worktree.json +3 -1
- package/dist/server/locales/ja/worktree.json +3 -1
- package/dist/server/server.js +5 -3
- package/dist/server/src/cli/types/api-responses.js +4 -2
- package/dist/server/src/config/cli-tool-timing-config.js +1 -6
- package/dist/server/src/config/uat-isolation.js +246 -0
- package/dist/server/src/lib/assistant-response-saver.js +62 -3
- package/dist/server/src/lib/auto-yes-lifecycle.js +139 -0
- package/dist/server/src/lib/auto-yes-poller.js +465 -160
- package/dist/server/src/lib/auto-yes-state.js +2 -2
- package/dist/server/src/lib/cli-tools/antigravity.js +39 -80
- package/dist/server/src/lib/cli-tools/base.js +151 -0
- package/dist/server/src/lib/cli-tools/codex.js +44 -80
- package/dist/server/src/lib/cli-tools/command-code.js +24 -56
- package/dist/server/src/lib/cli-tools/copilot.js +25 -67
- package/dist/server/src/lib/cli-tools/direct-input.js +8 -0
- package/dist/server/src/lib/cli-tools/gemini.js +23 -73
- package/dist/server/src/lib/cli-tools/opencode-pane-width.js +53 -0
- package/dist/server/src/lib/cli-tools/opencode-v2.js +9 -7
- package/dist/server/src/lib/cli-tools/opencode.js +21 -85
- package/dist/server/src/lib/cli-tools/submit-verified-sender.js +127 -4
- package/dist/server/src/lib/cli-tools/vibe-local.js +21 -66
- package/dist/server/src/lib/detection/cli-patterns.js +374 -3047
- package/dist/server/src/lib/detection/idle-evidence-observation.js +2 -2
- package/dist/server/src/lib/detection/prompt-detect-multiple-choice.js +7 -32
- package/dist/server/src/lib/detection/prompt-detector.js +2 -35
- package/dist/server/src/lib/detection/selection-shape-patterns.js +69 -0
- package/dist/server/src/lib/detection/selection-shape.js +32 -520
- package/dist/server/src/lib/detection/shared/pasted-text.js +41 -0
- package/dist/server/src/lib/detection/shared/shell-pane-command.js +16 -0
- package/dist/server/src/lib/detection/shared/strip-box-drawing.js +25 -0
- package/dist/server/src/lib/detection/status-detector.js +1 -1
- package/dist/server/src/lib/detection/tools/antigravity/detect.js +12 -60
- package/dist/server/src/lib/detection/tools/antigravity/dialog.js +2 -15
- package/dist/server/src/lib/detection/tools/antigravity/live-region.js +39 -0
- package/dist/server/src/lib/detection/tools/antigravity/patterns.js +286 -0
- package/dist/server/src/lib/detection/tools/claude/detect.js +11 -17
- package/dist/server/src/lib/detection/tools/claude/live-region.js +26 -0
- package/dist/server/src/lib/detection/tools/claude/patterns.js +264 -4
- package/dist/server/src/lib/detection/tools/claude/prompt.js +2 -10
- package/dist/server/src/lib/detection/tools/codex/cli-patterns.js +1 -1
- package/dist/server/src/lib/detection/tools/codex/detect.js +71 -130
- package/dist/server/src/lib/detection/tools/codex/live-region.js +104 -0
- package/dist/server/src/lib/detection/tools/codex/patterns.js +855 -0
- package/dist/server/src/lib/detection/tools/codex/prompt.js +2 -10
- package/dist/server/src/lib/detection/tools/command-code/detect.js +19 -50
- package/dist/server/src/lib/detection/tools/command-code/dialog.js +2 -18
- package/dist/server/src/lib/detection/tools/command-code/live-region.js +36 -0
- package/dist/server/src/lib/detection/tools/command-code/patterns.js +234 -0
- package/dist/server/src/lib/detection/tools/command-code/selection-shape.js +461 -0
- package/dist/server/src/lib/detection/tools/context-above.js +20 -0
- package/dist/server/src/lib/detection/tools/copilot/detect.js +13 -35
- package/dist/server/src/lib/detection/tools/copilot/live-region.js +52 -0
- package/dist/server/src/lib/detection/tools/copilot/patterns.js +640 -0
- package/dist/server/src/lib/detection/tools/copilot/prompt.js +2 -10
- package/dist/server/src/lib/detection/tools/frame.js +36 -2
- package/dist/server/src/lib/detection/tools/gemini/patterns.js +29 -0
- package/dist/server/src/lib/detection/tools/live-region-specs.js +31 -0
- package/dist/server/src/lib/detection/tools/live-region.js +204 -0
- package/dist/server/src/lib/detection/tools/opencode/detect.js +11 -49
- package/dist/server/src/lib/detection/tools/opencode/live-region.js +24 -0
- package/dist/server/src/lib/detection/tools/opencode/patterns.js +508 -0
- package/dist/server/src/lib/detection/tools/opencode-gutter-live-region.js +72 -0
- package/dist/server/src/lib/detection/tools/opencode-v2/detect.js +10 -42
- package/dist/server/src/lib/detection/tools/opencode-v2/live-region.js +24 -0
- package/dist/server/src/lib/detection/tools/opencode-v2/patterns.js +63 -0
- package/dist/server/src/lib/detection/tools/run-detection.js +31 -50
- package/dist/server/src/lib/detection/tools/verdicts.js +59 -0
- package/dist/server/src/lib/detection/tools/vibe-local/patterns.js +20 -0
- package/dist/server/src/lib/detection/truncate-raw-content.js +38 -0
- package/dist/server/src/lib/detection/turn-abandoned.js +66 -0
- package/dist/server/src/lib/detection/unclassified-frame-tracker.js +2 -2
- package/dist/server/src/lib/global-state.js +16 -0
- package/dist/server/src/lib/hooks/agent-session-telemetry.js +4 -6
- package/dist/server/src/lib/hooks/permission-decision-state.js +2 -2
- package/dist/server/src/lib/hooks/sources/antigravity/history.js +11 -76
- package/dist/server/src/lib/hooks/sources/antigravity/hooks-config.js +63 -1
- package/dist/server/src/lib/hooks/sources/antigravity/source.js +16 -0
- package/dist/server/src/lib/hooks/sources/antigravity/transcript.js +3 -12
- package/dist/server/src/lib/hooks/sources/claude/history.js +17 -156
- package/dist/server/src/lib/hooks/sources/claude/queued-notice.js +53 -0
- package/dist/server/src/lib/hooks/sources/claude/source.js +33 -3
- package/dist/server/src/lib/hooks/sources/claude/transcript.js +3 -13
- package/dist/server/src/lib/hooks/sources/codex/history.js +11 -74
- package/dist/server/src/lib/hooks/sources/codex/hooks-config.js +147 -11
- package/dist/server/src/lib/hooks/sources/codex/relay-install.js +64 -21
- package/dist/server/src/lib/hooks/sources/codex/transcript.js +5 -15
- package/dist/server/src/lib/hooks/sources/command-code/history.js +20 -121
- package/dist/server/src/lib/hooks/sources/command-code/transcript.js +3 -13
- package/dist/server/src/lib/hooks/sources/copilot/hook-settings.js +161 -31
- package/dist/server/src/lib/hooks/sources/define-source.js +40 -55
- package/dist/server/src/lib/hooks/sources/event-mapper.js +2 -1
- package/dist/server/src/lib/hooks/sources/opencode/diff.js +3 -4
- package/dist/server/src/lib/hooks/sources/opencode/history.js +2 -1
- package/dist/server/src/lib/hooks/sources/opencode/launch-settings.js +2 -1
- package/dist/server/src/lib/hooks/sources/opencode/payloads.js +2 -1
- package/dist/server/src/lib/hooks/sources/opencode/ports.js +2 -1
- package/dist/server/src/lib/hooks/sources/opencode/subscription.js +4 -3
- package/dist/server/src/lib/hooks/sources/opencode/transcript.js +3 -16
- package/dist/server/src/lib/hooks/sources/opencode-v2/history.js +2 -1
- package/dist/server/src/lib/hooks/sources/opencode-v2/mappers.js +5 -4
- package/dist/server/src/lib/hooks/sources/opencode-v2/ports.js +2 -1
- package/dist/server/src/lib/hooks/sources/opencode-v2/subscription.js +3 -7
- package/dist/server/src/lib/hooks/sources/opencode-v2/usage.js +2 -1
- package/dist/server/src/lib/hooks/sources/pending-decisions.js +2 -1
- package/dist/server/src/lib/hooks/sources/registry.js +3 -2
- package/dist/server/src/lib/hooks/sources/transcript-history.js +262 -0
- package/dist/server/src/lib/hooks/sources/turn-body.js +31 -0
- package/dist/server/src/lib/hooks/tool-input-normalization-state.js +2 -2
- package/dist/server/src/lib/polling/antigravity-permission-receipts.js +2 -2
- package/dist/server/src/lib/polling/auto-yes-dialog-gate.js +16 -4
- package/dist/server/src/lib/polling/auto-yes-enter-fallback-state.js +142 -0
- package/dist/server/src/lib/polling/auto-yes-enter-fallback.js +187 -0
- package/dist/server/src/lib/polling/auto-yes-resolver.js +9 -3
- package/dist/server/src/lib/polling/auto-yes-suppression-reason.js +2 -0
- package/dist/server/src/lib/polling/auto-yes-suppression-state.js +2 -2
- package/dist/server/src/lib/polling/pending-scraped-response.js +190 -0
- package/dist/server/src/lib/polling/prompt-dedup-state.js +2 -2
- package/dist/server/src/lib/polling/prompt-dedup.js +2 -2
- package/dist/server/src/lib/polling/response-checker-dialog-gate.js +95 -0
- package/dist/server/src/lib/polling/response-checker-extraction-result.js +50 -0
- package/dist/server/src/lib/polling/response-checker-extraction-steps.js +670 -0
- package/dist/server/src/lib/polling/response-checker.js +666 -1162
- package/dist/server/src/lib/polling/response-dedup.js +3 -4
- package/dist/server/src/lib/polling/response-poller-constants.js +17 -0
- package/dist/server/src/lib/polling/response-poller-core.js +54 -20
- package/dist/server/src/lib/polling/startup-screen.js +142 -0
- package/dist/server/src/lib/polling/structured-history-gate.js +3 -2
- package/dist/server/src/lib/prompt-answer-semantic.js +178 -0
- package/dist/server/src/lib/prompt-answer-sender.js +6 -5
- package/dist/server/src/lib/push/failure-episode-state.js +2 -2
- package/dist/server/src/lib/push/notification-dedup.js +3 -4
- package/dist/server/src/lib/push/prompt-card-state.js +2 -2
- package/dist/server/src/lib/push/waiting-push-notifier.js +3 -4
- package/dist/server/src/lib/realtime/publisher-registry.js +3 -2
- package/dist/server/src/lib/realtime/terminal-broadcast.js +38 -2
- package/dist/server/src/lib/realtime/terminal-session-ownership.js +45 -0
- package/dist/server/src/lib/relay/relay-delivery.js +6 -2
- package/dist/server/src/lib/relay/relay-readiness.js +38 -1
- package/dist/server/src/lib/relay/relay-triggers.js +9 -0
- package/dist/server/src/lib/resource-cleanup.js +6 -4
- package/dist/server/src/lib/response-cleaner.js +24 -1
- package/dist/server/src/lib/response-extractor.js +16 -0
- package/dist/server/src/lib/schedule-manager.js +8 -10
- package/dist/server/src/lib/session/agent-event-ask-user-question.js +168 -0
- package/dist/server/src/lib/session/agent-event-awaiting-instruction.js +104 -0
- package/dist/server/src/lib/session/agent-event-dedup.js +539 -0
- package/dist/server/src/lib/session/agent-event-model.js +562 -0
- package/dist/server/src/lib/session/agent-event-record.js +10 -0
- package/dist/server/src/lib/session/agent-event-state.js +106 -1854
- package/dist/server/src/lib/session/agent-event-structured-state.js +109 -0
- package/dist/server/src/lib/session/agent-event-turn.js +811 -0
- package/dist/server/src/lib/session/agent-session-lifecycle.js +11 -2
- package/dist/server/src/lib/session/chat-turn-progress.js +322 -0
- package/dist/server/src/lib/session/claude-executor.js +45 -5
- package/dist/server/src/lib/session/claude-session.js +21 -65
- package/dist/server/src/lib/session/cli-session.js +17 -0
- package/dist/server/src/lib/session/current-output-builder.js +454 -1103
- package/dist/server/src/lib/session/current-output-history-writers.js +255 -0
- package/dist/server/src/lib/session/current-output-types.js +9 -0
- package/dist/server/src/lib/session/detection-divergence.js +55 -0
- package/dist/server/src/lib/session/global-session-constants.js +2 -13
- package/dist/server/src/lib/session/hook-turn-hold.js +102 -0
- package/dist/server/src/lib/session/layer-disagreement.js +2 -2
- package/dist/server/src/lib/session/opencode-session-store.js +2 -1
- package/dist/server/src/lib/session/prompt-view.js +290 -0
- package/dist/server/src/lib/session/prompt-waiting-composition.js +35 -0
- package/dist/server/src/lib/session/provisional-turn.js +3 -1
- package/dist/server/src/lib/session/send-user-message.js +1 -1
- package/dist/server/src/lib/session/session-starting-state.js +4 -6
- package/dist/server/src/lib/session/status-evidence-type.js +2 -0
- package/dist/server/src/lib/session/status-evidence.js +2 -2
- package/dist/server/src/lib/session/structured-status-merge.js +335 -0
- package/dist/server/src/lib/session/waiting-episode-state.js +3 -4
- package/dist/server/src/lib/session/waiting-kind.js +3 -0
- package/dist/server/src/lib/session-cleanup.js +6 -8
- package/dist/server/src/lib/skills/install-plan.js +2 -1
- package/dist/server/src/lib/skills/snapshot-store.js +2 -2
- package/dist/server/src/lib/skills/uninstall-plan.js +2 -2
- package/dist/server/src/lib/timer-manager.js +6 -8
- package/dist/server/src/lib/tmux/geometry-delegation.js +3 -4
- package/dist/server/src/lib/tmux/legacy-session-alias.js +2 -1
- package/dist/server/src/lib/tmux/session-hooks.js +2 -1
- package/dist/server/src/lib/tmux/session-status-options.js +3 -3
- package/dist/server/src/lib/tmux/tmux-capture-cache.js +3 -2
- package/dist/server/src/lib/tmux/tmux.js +33 -59
- package/dist/server/src/lib/tui-accumulator.js +2 -2
- package/dist/server/src/lib/version-checker.js +6 -6
- package/dist/server/src/lib/ws-server.js +47 -11
- package/docs/en/user-guide/webapp-guide.md +27 -3
- package/package.json +1 -1
- package/release-notes/0.44.2.json +33 -0
- package/release-notes/0.44.3.json +82 -0
- package/scripts/hooks/cmate-agent-event.sh +18 -0
- package/.next/server/chunks/1068.js +0 -1
- package/.next/server/chunks/434.js +0 -1
- package/.next/server/chunks/5775.js +0 -1
- package/.next/server/chunks/6474.js +0 -14
- package/.next/server/chunks/650.js +0 -1
- package/.next/server/chunks/6661.js +0 -1
- package/.next/server/chunks/8583.js +0 -1
- package/.next/server/chunks/964.js +0 -1
- package/.next/server/chunks/967.js +0 -1
- package/.next/server/chunks/9882.js +0 -25
- package/.next/static/chunks/591-308072f285c34787.js +0 -1
- package/.next/static/chunks/app/sessions/page-049e06335187aa91.js +0 -1
- package/.next/static/chunks/app/worktrees/[id]/page-040c5f0f585e6812.js +0 -1
- package/.next/static/css/38070d879efa1371.css +0 -1
- package/dist/server/src/lib/cli-tools/index.js +0 -41
- package/dist/server/src/lib/polling/global-session-poller.js +0 -140
- /package/.next/static/{57lOiz8zSEHdw97XIm0af → tWwHQzmvc-rv9KKUtDWfQ}/_buildManifest.js +0 -0
- /package/.next/static/{57lOiz8zSEHdw97XIm0af → tWwHQzmvc-rv9KKUtDWfQ}/_ssgManifest.js +0 -0
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
"use strict";exports.id=6793,exports.ids=[6793],exports.modules={15003:(a,b,c)=>{c.d(b,{QD:()=>h,Vh:()=>g,fp:()=>d,j0:()=>f,ri:()=>i});let d="CMATE.md",e=/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F\x80-\x9F\u200B-\u200F\u2028-\u202F\uFEFF]/;function f(a){return a.replace(RegExp(e.source,"g"),"")}let g=/^[\w\u3000-\u303F\u3040-\u309F\u30A0-\u30FF\u4E00-\u9FFF\uF900-\uFAFF\s-]{1,100}$/,h=100;function i(a){if(a.length>100)return!1;let b=a.trim().split(/\s+/);return b.length>=5&&b.length<=6}},56793:(a,b,c)=>{c.d(b,{DL:()=>
|
|
1
|
+
"use strict";exports.id=6793,exports.ids=[6793],exports.modules={15003:(a,b,c)=>{c.d(b,{QD:()=>h,Vh:()=>g,fp:()=>d,j0:()=>f,ri:()=>i});let d="CMATE.md",e=/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F\x80-\x9F\u200B-\u200F\u2028-\u202F\uFEFF]/;function f(a){return a.replace(RegExp(e.source,"g"),"")}let g=/^[\w\u3000-\u303F\u3040-\u309F\u30A0-\u30FF\u4E00-\u9FFF\uF900-\uFAFF\s-]{1,100}$/,h=100;function i(a){if(a.length>100)return!1;let b=a.trim().split(/\s+/);return b.length>=5&&b.length<=6}},56793:(a,b,c)=>{c.d(b,{DL:()=>H,Yg:()=>G,oX:()=>F});var d=c(73736),e=c(79748),f=c(33873),g=c.n(f),h=c(15194),i=c(80252),j=c(20137);let k=["edit_file","write_file","shell_command","monitor_command","kill_shell"];var l=c(15003),m=c(72626);let n=(0,m.h)("cmate-parser");async function o(a,b){let c=await (0,e.realpath)(a),d=await (0,e.realpath)(b);if(!c.startsWith(d+g().sep)&&c!==g().join(d,l.fp))throw Error(`Path traversal detected: ${a} is not within ${b}`);return!0}async function p(a){let b=g().join(a,l.fp);try{await o(b,a);let c=await (0,e.readFile)(b,"utf-8");return function(a){let b=new Map,c=a.split("\n"),d=null,e=!1,f=!1;for(let a of c){let c=a.trim(),g=c.match(/^##\s+(.+)$/);if(g){d=g[1].trim(),e=!1,f=!1,b.has(d)||b.set(d,[]);continue}if(!c||!c.startsWith("|")||!d)continue;if(!e){e=!0;continue}if(!f){if(c.match(/^\|[\s-:|]+\|$/)){f=!0;continue}f=!0}let h=c.split("|").slice(1,-1).map(a=>a.trim());h.length>0&&b.get(d).push(h)}return b}(c)}catch(a){if(a instanceof Error&&"code"in a&&"ENOENT"===a.code)return null;throw a}}var q=c(34207),r=c(55511),s=c(29021);let t=(0,m.h)("cron-parser");function u(){let{getDbInstance:a}=c(88807);return a()}let v=(0,m.h)("job-executor");function w(){let{getDbInstance:a}=c(88807);return a()}function x(a,b,c,d){let e=w(),f=Date.now();e.prepare(`
|
|
2
2
|
UPDATE execution_logs SET status = ?, result = ?, exit_code = ?, completed_at = ? WHERE id = ?
|
|
3
3
|
`).run(b,c,d,f,a)}async function y(a){let b;if(a.isExecuting)return void v.warn("execution:skip-concurrent",{name:a.entry.name});a.isExecuting=!0;try{b=function(a,b,c){let d=w(),e=Date.now(),f=(0,r.randomUUID)();return d.prepare(`
|
|
4
4
|
INSERT INTO execution_logs (id, schedule_id, worktree_id, message, status, started_at, created_at)
|
|
5
5
|
VALUES (?, ?, ?, ?, 'running', ?, ?)
|
|
6
|
-
`).run(f,a,b,c,e,e),f}(a.scheduleId,a.worktreeId,a.entry.message);let d=w().prepare("SELECT path, vibe_local_model FROM worktrees WHERE id = ?").get(a.worktreeId);if(!d)return void x(b,"failed","Worktree not found",null);let e=function(a,b){let c=(0,i.HA)(a);return c||("vibe-local"===a.cliToolId&&b.vibe_local_model?{model:b.vibe_local_model}:void 0)}(a.entry,d),f=await (0,q.V$)(a.entry.message,d.path,a.entry.cliToolId,a.entry.permission,e);x(b,f.status,f.output,f.exitCode);var c=a.scheduleId;let g=w(),h=Date.now();g.prepare("UPDATE scheduled_executions SET last_executed_at = ?, updated_at = ? WHERE id = ?").run(h,h,c),v.info("execution:completed",{name:a.entry.name,status:f.status})}catch(d){let c=d instanceof Error?d.message:String(d);void 0!==b&&x(b,"failed",c,null),v.error("execution:failed",{name:a.entry.name,error:c})}finally{a.isExecuting=!1}}
|
|
6
|
+
`).run(f,a,b,c,e,e),f}(a.scheduleId,a.worktreeId,a.entry.message);let d=w().prepare("SELECT path, vibe_local_model FROM worktrees WHERE id = ?").get(a.worktreeId);if(!d)return void x(b,"failed","Worktree not found",null);let e=function(a,b){let c=(0,i.HA)(a);return c||("vibe-local"===a.cliToolId&&b.vibe_local_model?{model:b.vibe_local_model}:void 0)}(a.entry,d),f=await (0,q.V$)(a.entry.message,d.path,a.entry.cliToolId,a.entry.permission,e);x(b,f.status,f.output,f.exitCode);var c=a.scheduleId;let g=w(),h=Date.now();g.prepare("UPDATE scheduled_executions SET last_executed_at = ?, updated_at = ? WHERE id = ?").run(h,h,c),v.info("execution:completed",{name:a.entry.name,status:f.status})}catch(d){let c=d instanceof Error?d.message:String(d);void 0!==b&&x(b,"failed",c,null),v.error("execution:failed",{name:a.entry.name,error:c})}finally{a.isExecuting=!1}}var z=c(36925);let A=(0,m.h)("schedule-manager");function B(a){try{if("function"==typeof a.isStopped)return!a.isStopped();if("function"==typeof a.isRunning)return a.isRunning()}catch{return!1}return!0}function C(a,b){b.schedule(()=>{y(a).catch(b=>{A.error("execution:unhandled",{name:a.entry.name,error:b instanceof Error?b.message:String(b)})})})}function D(){return(0,z.v)("__scheduleManagerStates",()=>({timerId:null,schedules:new Map,initialized:!1,isSyncing:!1,cmateFileCache:new Map}))}async function E(){let a=D();if(!a.isSyncing){a.isSyncing=!0;try{let b=function(){try{return u().prepare("SELECT id, path FROM worktrees").all()}catch(a){return t.error("worktree:fetch-failed",{error:a instanceof Error?a.message:String(a)}),[]}}(),c=new Set;for(let e of b)try{let b=function(a){let b=g().join(a,l.fp);try{return(0,s.statSync)(b).mtimeMs}catch(a){if(a instanceof Error&&"code"in a&&"ENOENT"===a.code)return null;return t.warn("file:stat-failed",{filePath:b}),null}}(e.path),f=a.cmateFileCache.get(e.path);if(null===b){void 0!==f&&a.cmateFileCache.delete(e.path);continue}let m=[],o=!1;for(let[b,c]of a.schedules)c.worktreeId===e.id&&(m.push(b),B(c.cronJob)||(o=!0));if(void 0!==f&&f===b){if(!o){for(let a of m)c.add(a);continue}A.warn("schedule:inactive-state-detected",{worktreeId:e.id})}a.cmateFileCache.set(e.path,b);let q=await p(e.path);if(!q)continue;let v=q.get("Schedules");if(!v)continue;let w=function(a){let b=[];for(let d of a){var c;let a;if(b.length>=l.QD){n.warn("maximum-schedule-entries");break}if(d.length<3){n.warn("parse:insufficient-columns",{columnCount:d.length});continue}let[e,f,g,m,o,p]=d,q=(0,l.j0)(e);if(!l.Vh.test(q)){n.warn("parse:invalid-name",{name:q});continue}if(!(0,l.ri)(f)){n.warn("parse:invalid-cron",{name:q,cron:f});continue}let r=(0,l.j0)(g);if(!r){n.warn("parse:empty-message",{name:q});continue}let s=void 0===o||""===o||"true"===o.toLowerCase(),{result:t,errors:u}=(0,i.zK)(m||"");if(u.length>0){n.warn("parse:invalid-cli-tool-column",{name:q,errors:u});continue}let v=t.cliToolId;if(!(0,h.hR)(v)){n.warn("parse:invalid-cli-tool",{name:q,cliToolId:v});continue}if(!(0,j.Cb)(v)){n.warn("parse:unsupported-cli-tool",{name:q,cliToolId:v});continue}let w=j.Hf[v]??"",x=p?.trim()||w;switch(v){case"claude":a=j.kd;break;case"codex":a=j.o1;break;case"copilot":a=j.oN;break;case"antigravity":a=j.eb;break;case"command-code":a=j.dq;break;case"opencode-v2":a=j.u7;break;default:a=[],x&&(n.warn("parse:permission-ignored",{name:q,cliToolId:v,permission:x}),x="")}a.length>0&&x&&!a.includes(x)&&(n.warn("parse:invalid-permission",{name:q,cliToolId:v,permission:x,defaultPermission:w}),x=w),s&&(c=x,"command-code"===v&&j.Tp.includes(c.trim()))&&n.warn("parse:command-code-direct-write-tools-denied",{code:"command-code-direct-write-tools-denied",name:q,cliToolId:v,permission:x,deniedTools:[...k]}),b.push({name:q,cronExpression:f.trim(),message:r,cliToolId:v,enabled:s,permission:x,model:t.model,agent:t.agent,variant:t.variant,continueSession:t.continueSession,title:t.title})}return b}(v),x=function(a,b){if(0===b.length)return[];let c=u(),d=Date.now(),e=c.prepare("SELECT id, name FROM scheduled_executions WHERE worktree_id = ?").all(a),f=new Map;for(let a of e)f.set(a.name,a.id);let g=[],h=c.prepare(`
|
|
7
7
|
UPDATE scheduled_executions
|
|
8
8
|
SET message = ?, cron_expression = ?, cli_tool_id = ?, enabled = ?, updated_at = ?
|
|
9
9
|
WHERE id = ?
|
|
10
10
|
`),i=c.prepare(`
|
|
11
11
|
INSERT INTO scheduled_executions (id, worktree_id, name, message, cron_expression, cli_tool_id, enabled, created_at, updated_at)
|
|
12
12
|
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)
|
|
13
|
-
`);return c.transaction(()=>{for(let c of b){let b=f.get(c.name);if(b)h.run(c.message,c.cronExpression,c.cliToolId,+!!c.enabled,d,b),g.push(b);else{let b=(0,r.randomUUID)();i.run(b,a,c.name,c.message,c.cronExpression,c.cliToolId,+!!c.enabled,d,d),g.push(b)}}})(),g}(e.id,w);for(let b=0;b<w.length;b++){let f=w[b],g=x[b];if(c.add(g),!f.enabled||!f.cronExpression){let b=a.schedules.get(g);b&&(b.cronJob.stop(),a.schedules.delete(g),
|
|
13
|
+
`);return c.transaction(()=>{for(let c of b){let b=f.get(c.name);if(b)h.run(c.message,c.cronExpression,c.cliToolId,+!!c.enabled,d,b),g.push(b);else{let b=(0,r.randomUUID)();i.run(b,a,c.name,c.message,c.cronExpression,c.cliToolId,+!!c.enabled,d,d),g.push(b)}}})(),g}(e.id,w);for(let b=0;b<w.length;b++){let f=w[b],g=x[b];if(c.add(g),!f.enabled||!f.cronExpression){let b=a.schedules.get(g);b&&(b.cronJob.stop(),a.schedules.delete(g),A.info("schedule:disabled",{name:f.name}));continue}let h=a.schedules.get(g);if(h){if(!B(h.cronJob)){try{h.cronJob.stop()}catch{}try{let a=new d.l4(f.cronExpression,{paused:!1,protect:!0});C(h,a),h.cronJob=a,h.entry=f,A.warn("schedule:recreated-inactive",{name:f.name,cron:f.cronExpression})}catch(b){a.cmateFileCache.delete(e.path),A.error("schedule:update-failed",{scheduleId:g,worktreeId:e.id,previousCron:h.entry.cronExpression,cron:f.cronExpression,phase:"recover",error:b instanceof Error?b.message:String(b)})}continue}if(h.entry.cronExpression!==f.cronExpression){!function(a,b){let c=a.entry.cronExpression,e=(d,e)=>(A.error("schedule:update-failed",{scheduleId:a.scheduleId,worktreeId:a.worktreeId,previousCron:c,cron:b.cronExpression,phase:d,error:e instanceof Error?e.message:String(e)}),!1),f=null;try{f=new d.l4(b.cronExpression,{paused:!0,protect:!0}),C(a,f)}catch(a){if(f)try{f.stop()}catch{}return e("prepare",a)}try{a.cronJob.stop(),f.resume()}catch(a){try{f.stop()}catch{}return e("swap",a)}return a.cronJob=f,a.entry=b,A.info("schedule:updated",{scheduleId:a.scheduleId,worktreeId:a.worktreeId,previousCron:c,cron:b.cronExpression}),!0}(h,f)&&a.cmateFileCache.delete(e.path);continue}h.entry=f;continue}if(a.schedules.size>=100){A.warn("schedule:max-concurrent-reached",{limit:100,name:f.name});continue}try{let b=function(a,b,c){let e=new d.l4(c.cronExpression,{paused:!1,protect:!0}),f={scheduleId:b,worktreeId:a,cronJob:e,isExecuting:!1,entry:c};return C(f,e),f}(e.id,g,f);a.schedules.set(g,b),A.info("schedule:created",{name:f.name,cron:f.cronExpression})}catch(a){A.warn("schedule:invalid-cron",{name:f.name,error:a instanceof Error?a.message:String(a)})}}}catch(a){A.error("schedule:sync-failed",{worktreeId:e.id,error:a instanceof Error?a.message:String(a)})}for(let[b,d]of a.schedules)c.has(b)||(d.cronJob.stop(),a.schedules.delete(b),A.info("schedule:removed-stale",{name:d.entry.name}));let e=b.map(a=>a.id);!function(a,b){if(0!==b.length)try{let c=u(),d=Date.now(),e=b.map(()=>"?").join(","),f=c.prepare(`SELECT id FROM scheduled_executions WHERE worktree_id IN (${e}) AND enabled = 1`).all(...b),g=0,h=c.prepare("UPDATE scheduled_executions SET enabled = 0, updated_at = ? WHERE id = ?");for(let b of f)!a.has(b.id)&&(h.run(d,b.id),g++);g>0&&t.info("schedule:disabled-stale",{count:g})}catch(a){t.error("schedule:disable-stale-failed",{error:a instanceof Error?a.message:String(a)})}}(c,e)}finally{a.isSyncing=!1}}}async function F(){await E()}function G(a){let b=D();for(let[c,d]of b.schedules)if(d.worktreeId===a){try{d.cronJob.stop()}catch{}b.schedules.delete(c)}try{let d=(function(){let{getDbInstance:a}=c(88807);return a()})().prepare("SELECT path FROM worktrees WHERE id = ?").get(a);d?.path&&b.cmateFileCache.delete(d.path)}catch{A.warn("cache:cleanup-failed",{worktreeId:a})}A.info("stop:worktree",{worktreeId:a})}function H(a){let b=D(),c=[];for(let[d,e]of b.schedules){if(e.worktreeId!==a)continue;let b=null;try{let a="function"==typeof e.cronJob.nextRun?e.cronJob.nextRun():null;a instanceof Date&&(b=a.getTime())}catch{b=null}c.push({scheduleId:d,worktreeId:a,name:e.entry.name,cronExpression:e.entry.cronExpression,cliToolId:e.entry.cliToolId,enabled:e.entry.enabled,isExecuting:e.isExecuting,isCronActive:B(e.cronJob),nextRunAt:b,model:e.entry.model})}return c.sort((a,b)=>a.name.localeCompare(b.name)),c}}};
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
"use strict";exports.id=7491,exports.ids=[7491],exports.modules={26945:(a,b,c)=>{c.d(b,{Lv:()=>
|
|
2
|
-
`,{mode:384})}catch(a){
|
|
1
|
+
"use strict";exports.id=7491,exports.ids=[7491],exports.modules={26945:(a,b,c)=>{c.d(b,{Lv:()=>t,OZ:()=>r,bH:()=>q,j1:()=>o,ui:()=>s});var d=c(29021),e=c(33873),f=c(72626),g=c(84574),h=c(38892),i=c(36925);let j=(0,f.h)("lib/hooks/sources/opencode-v2/ports"),k={min:4300,max:4399},l=k.max-k.min+1,m=(0,i.v)("__opencodeV2PortAssignments",()=>new Map);function n(){return(0,e.join)((0,h.g2)(),"ports.json")}function o(){try{let a=JSON.parse((0,d.readFileSync)(n(),"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))&&"number"==typeof d.port&&Number.isInteger(d.port)&&d.port>=k.min&&d.port<=k.max&&"string"==typeof d.worktreePath&&(b[c]={port:d.port,worktreePath:d.worktreePath,updatedAt:"number"==typeof d.updatedAt?d.updatedAt:0});return b}catch{return{}}}function p(a){let b=n();try{if(0===Object.keys(a).length)return void(0,d.rmSync)(b,{force:!0});(0,h.e5)(),(0,d.writeFileSync)(b,`${JSON.stringify(a,null,2)}
|
|
2
|
+
`,{mode:384})}catch(a){j.warn("opencode-v2-port-file-write-failed",{path:b,error:a instanceof Error?a.message:String(a)})}}function q(a){return m.get((0,h.Y_)(a))?.port??null}function r(a){var b=(0,h.Y_)(a);m.delete(b);let c=o();b in c&&(delete c[b],p(c))}async function s(a,b,c=g.Ci){let d=q(a);if(null!==d&&await c(d))return d;let e=(0,h.Y_)(a),f=o()[e]?.port,i=function(a){let b=function(a){let b=0x811c9dc5;for(let c=0;c<a.length;c+=1)b^=a.charCodeAt(c),b=Math.imul(b,0x1000193)>>>0;return k.min+b%l}((0,h.Y_)(a)),c=[];for(let a=0;a<l;a+=1)c.push(k.min+(b-k.min+a)%l);return c}(a);for(let d of void 0!==f?[f,...i.filter(a=>a!==f)]:i)if(await c(d))return!function(a,b,c,d=Date.now()){let e=(0,h.Y_)(a),f={port:b,worktreePath:c,updatedAt:d};m.set(e,f);let g=o();g[e]=f,p(g)}(a,d,b),j.info("opencode-v2-port-allocated",{worktreeId:a.worktreeId,instanceId:a.instanceId??a.cliToolId,port:d}),d;return j.warn("opencode-v2-port-exhausted",{worktreeId:a.worktreeId,instanceId:a.instanceId??a.cliToolId,range:`${k.min}-${k.max}`}),null}async function t(a,b,c){let d=q(a);if(null!==d)return d;let e=(0,h.Y_)(a),f=o()[e];return f?f.worktreePath!==b?(j.info("opencode-v2-port-recovery-path-mismatch",{worktreeId:a.worktreeId,instanceId:a.instanceId??a.cliToolId}),null):await c(f.port)?(m.set(e,f),j.info("opencode-v2-port-recovered",{worktreeId:a.worktreeId,instanceId:a.instanceId??a.cliToolId,port:f.port}),f.port):(j.info("opencode-v2-port-recovery-unverified",{worktreeId:a.worktreeId,instanceId:a.instanceId??a.cliToolId,port:f.port}),null):null}},34114:(a,b,c)=>{c.d(b,{$F:()=>o,CI:()=>n,IR:()=>f,LO:()=>m,MT:()=>h,Pf:()=>p,Q4:()=>e,VW:()=>j,am:()=>t,nR:()=>s,tJ:()=>g,u7:()=>r,yk:()=>q});var d=c(57510);function e(a){return`http://127.0.0.1:${a}`}function f(a){return`Basic ${Buffer.from(`opencode:${a}`).toString("base64")}`}async function g(a,b){try{let c=await fetch(`${e(a)}/openapi.json`,{headers:{Authorization:f(b)},redirect:"error",signal:AbortSignal.timeout(2e3)});return await c.body?.cancel().catch(()=>{}),200===c.status?{kind:"healthy"}:{kind:"rejected",status:c.status}}catch{return{kind:"unreachable"}}}async function h(a,b,c){let d=await fetch(`${e(a)}/api/event`,{signal:c,redirect:"error",headers:{Accept:"text/event-stream",Authorization:f(b)}});if(!d.ok||!d.body)throw await d.body?.cancel().catch(()=>{}),Error(`opencode2 /api/event responded ${d.status}`);let g=d.headers.get("content-type")?.split(";")[0]?.trim().toLowerCase();if("text/event-stream"!==g)throw await d.body.cancel().catch(()=>{}),Error(`opencode2 /api/event answered ${g??"no content-type"}`);return i(d.body.getReader())}async function*i(a){let b=new TextDecoder,c=function(){let a="",b=[],c=0,d=!1,e=0,f=a=>{d?e+=1:b.length>0&&a.push({kind:"frame",data:b.join("\n")}),b=[],c=0,d=!1},g=(a,e)=>{if(""===a)return void f(e);if(a.startsWith(":"))return void e.push({kind:"heartbeat"});if(!a.startsWith("data:")||d)return;let g=a.slice(5).replace(/^ /,"");if((c+=g.length)>4194304){d=!0,b=[];return}b.push(g)};return{push(b){let c=[],e=(a+=b).search(/\r?\n|\r/);for(;-1!==e;){let b=a.slice(0,e),d=a.startsWith("\r\n",e)?2:1;a=a.slice(e+d),g(b,c),e=a.search(/\r?\n|\r/)}return a.length>4194304&&(a="",d=!0),c},flush(){let b=[];return""!==a&&g(a,b),a="",f(b),b},oversizedFrames:()=>e}}(),e=function*(a){for(let b of a){if("heartbeat"===b.kind){yield b;continue}let a=function(a){try{let b=JSON.parse(a);return(0,d.Qd)(b)?b:null}catch{return null}}(b.data);a&&(yield{kind:"frame",frame:a})}};try{for(;;){let{done:d,value:f}=await a.read();if(d)break;yield*e(c.push(b.decode(f,{stream:!0})))}yield*e(c.flush())}finally{await a.cancel().catch(()=>{})}}async function j(a,b,c,g){let h=new URLSearchParams({limit:String(100)});null===g?h.set("order","desc"):h.set("cursor",g);try{let g=await fetch(`${e(a)}/api/session/${encodeURIComponent(c)}/message?${h}`,{headers:{Accept:"application/json",Authorization:f(b)},redirect:"error",signal:AbortSignal.timeout(5e3)});if(200!==g.status)return await g.body?.cancel().catch(()=>{}),null;let i=await g.text();if(i.length>8388608)return null;let j=JSON.parse(i);if(!(0,d.Qd)(j)||!Array.isArray(j.data))return null;let k=(0,d.Qd)(j.cursor)&&"string"==typeof j.cursor.next?j.cursor.next:null;return{data:j.data,next:k}}catch{return null}}async function k(a,b,c,d,g){try{let h=await fetch(`${e(a)}${d}`,{method:c,headers:{Accept:"application/json",Authorization:f(b),...void 0===g?{}:{"Content-Type":"application/json"}},...void 0===g?{}:{body:JSON.stringify(g)},redirect:"error",signal:AbortSignal.timeout(5e3)}),i=await h.text();if(i.length>4194304)return null;return{status:h.status,body:""===i?null:JSON.parse(i)}}catch{return null}}function l(a){return null===a||200!==a.status?null:(0,d.Qd)(a.body)&&Array.isArray(a.body.data)?a.body.data:null}async function m(a,b){return l(await k(a,b,"GET","/api/permission/request"))}async function n(a,b){return l(await k(a,b,"GET","/api/form"))}async function o(a,b,c){return l(await k(a,b,"GET",`/api/session/${encodeURIComponent(c)}/form`))}async function p(a,b,c,d,e,f){let g=await k(a,b,"POST",`/api/session/${encodeURIComponent(c)}/permission/${encodeURIComponent(d)}/reply`,void 0===f?{decision:e}:{decision:e,message:f});return null!==g&&g.status>=200&&g.status<300}async function q(a,b,c,d,e){let f=await k(a,b,"POST",`/api/session/${encodeURIComponent(c)}/form/${encodeURIComponent(d)}/reply`,{answer:e});return null!==f&&f.status>=200&&f.status<300}async function r(a,b,c){let e=await k(a,b,"GET",`/api/session/${encodeURIComponent(c)}`);return null===e||200!==e.status?null:(0,d.Qd)(e.body)&&(0,d.Qd)(e.body.data)?e.body.data:null}async function s(a,b,c){let d=new URLSearchParams({limit:String(20),order:"desc"});return l(await k(a,b,"GET",`/api/session/${encodeURIComponent(c)}/message?${d}`))}async function t(a,b){return l(await k(a,b,"GET","/api/model"))}},38892:(a,b,c)=>{c.d(b,{Nc:()=>t,OC:()=>p,X3:()=>q,Y_:()=>m,ar:()=>o,e5:()=>l,g2:()=>k,n0:()=>r});var d=c(55511),e=c(29021),f=c(21820),g=c(33873),h=c(8004),i=c(24455);let j="CM_OPENCODE_V2_DIR";function k(){let a=(0,g.join)((0,f.homedir)(),".commandmate","opencode-v2");return(0,h.T)(process.env[j],a,j)}function l(){let a=k();return(0,e.mkdirSync)(a,{recursive:!0,mode:448}),(0,e.chmodSync)(a,448),a}function m(a){return(0,i.v7)(a.worktreeId,a.cliToolId,a.instanceId)}function n(a){return encodeURIComponent(a).replace(/%3A/gi,":").replace(/\./g,"%2E")}function o(a){return(0,g.join)(k(),`${n(m(a))}.pw`)}function p(a){l();let b=o(a);return(0,e.rmSync)(b,{force:!0}),(0,e.writeFileSync)(b,`${(0,d.randomBytes)(32).toString("base64url")}
|
|
3
3
|
`,{mode:384,flag:"wx"}),(0,e.chmodSync)(b,384),b}function q(a){return s(o(a))}function r(a){return s((0,g.join)(k(),`${n(a)}.pw`))}function s(a){try{let b=(0,e.readFileSync)(a,"utf8").split("\n")[0];return void 0!==b&&b.length>0?b:null}catch{return null}}function t(a){(0,e.rmSync)(o(a),{force:!0})}},71193:(a,b,c)=>{c.d(b,{B:()=>d,V:()=>e});let d="opencode-v2",e="opencode2"},73434:(a,b,c)=>{c.d(b,{hh:()=>f});let d=["CLAUDECODE","CM_AUTH_TOKEN","CM_AUTH_TOKEN_HASH","CM_AUTH_EXPIRE","CM_HTTPS_KEY","CM_HTTPS_CERT","CM_ALLOWED_IPS","CM_TRUST_PROXY","CM_DB_PATH","GH_DEBUG"],e=["CM_AGENT_INSTANCE_ID","CM_AGENT_TOOL","CM_AGENT_WORKTREE_ID","CM_HOOK_PORT","CM_HOOK_URL","CM_PERMISSION_HOOK_URL"];function f(){let a={...process.env};for(let b of Object.keys(a))(d.includes(b)||e.includes(b)||b.startsWith("CM_HOOK_"))&&delete a[b];return a}}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";exports.id=7905,exports.ids=[7905],exports.modules={1305:(a,b,c)=>{c.d(b,{Fq:()=>m,wK:()=>n});var d=c(22354),e=c(48083),f=c(88807),g=c(52660),h=c(54325),i=c(72626);let j=(0,i.h)("lib/session/session-generation-archive");var k=c(35583);let l=(0,i.h)("lib/session/agent-session-lifecycle");function m(a,b=Date.now()){(0,k._U)(a.worktreeId,a.cliToolId,a.instanceId,b);let i=(0,e.getAgentEventDropCounts)(a.worktreeId,a.cliToolId,a.instanceId).decisionEvicted;(0,e.beginAgentEventGeneration)(a.worktreeId,a.cliToolId,a.instanceId,b);let n=(0,e.getAgentEventDropCounts)(a.worktreeId,a.cliToolId,a.instanceId).decisionEvicted,o=(0,d.VM)(a.cliToolId);l.info("agent-session-generation-begun",{worktreeId:a.worktreeId,cliToolId:a.cliToolId,instanceId:a.instanceId??a.cliToolId,transport:o.transport,decisionsEvicted:n-i});try{!function(a,b=process.env.VITEST?null:(0,f.getDbInstance)()){var d,e,i;let k=a.instanceId??a.cliToolId;if(!b)return;let l=(0,g.deleteMessagesByInstance)(b,a.worktreeId,k);0===l||((0,g.recomputeLastUserMessage)(b,a.worktreeId),j.info("session-generation-archived",{worktreeId:a.worktreeId,cliToolId:a.cliToolId,instanceId:k,archived:l}),d=a.worktreeId,e=a.cliToolId,i=k,Promise.all([c.e(1356),c.e(1503),c.e(1191),c.e(1719),c.e(2119),c.e(2445),c.e(8728)]).then(c.bind(c,43015)).then(({broadcastMessage:a})=>{a(h.dz,{worktreeId:d,cliToolId:e,instanceId:i,reason:"session_generation"})}).catch(a=>{j.warn("session-generation-invalidate-broadcast-failed",{worktreeId:d,instanceId:i,error:a instanceof Error?a.message:String(a)})}))}(a)}catch(b){l.warn("session-generation-archive-failed",{worktreeId:a.worktreeId,cliToolId:a.cliToolId,instanceId:a.instanceId??a.cliToolId,error:b instanceof Error?b.message:String(b)})}}function n(a){return(0,d.K9)((0,d.VM)(a.target.cliToolId).prepareLaunch(a))}},11472:(a,b,c)=>{c.d(b,{Bl:()=>e,GE:()=>j,Hg:()=>k,ow:()=>i,vg:()=>g,w9:()=>f});var d=c(51297);let e=["$","%","#"],f=40,g=[/^[\w.-]+@[\w.-]+[\s:].*[$%#]$/,/^\[[\w.-]+@[\w.-]+[^\]]*\][$#]$/];function h(a){return a.split("\n").filter(a=>""!==a.trim())}function i(a,b){let c=h(a.trim()).slice(-10).join("\n");for(let a of b.fatalPatterns)if(c.includes(a))return a;for(let a of b.fatalRegexPatterns)if(a.test(c))return a.source;return null}function j(a,b){let c=h(a.trim()),d=c[c.length-1]?.trim()??"";return!/\d+%$/.test(d)&&b.shellPromptPatterns.some(a=>a.test(d))?{line:d,via:"pattern"}:d.length>=b.maxShellPromptLength?null:b.shellPromptEndings.some(a=>!(!d.endsWith(a)||"%"===a&&/\d+%$/.test(d)))?{line:d,via:"ending"}:null}function k(a,b){let c=(0,d.aJ)(a).trim();if(""===c)return b.unreadableIsExited?{alive:!1,reason:"empty output"}:{alive:!0};let e=h(c),f=null===b.aliveTailLines?c:e.slice(-b.aliveTailLines).join("\n");if(b.alivePatterns.some(a=>a.test(f)))return{alive:!0};let g=i(c,b);if(null!==g)return{alive:!1,reason:`error pattern: ${g}`};let k=j(c,b);return null!==k?"pattern"===k.via?{alive:!1,reason:`shell prompt detected: ${k.line}`}:{alive:!1,reason:`shell prompt ending detected: ${k.line}`}:{alive:!0}}},20610:(a,b,c)=>{c.d(b,{CV:()=>i,D1:()=>p,Em:()=>q,Is:()=>g,KI:()=>j,Lw:()=>o,PY:()=>m,Rk:()=>l,Uc:()=>d,Zf:()=>h,kZ:()=>r,os:()=>k,pL:()=>e,x9:()=>f,yO:()=>n});let d=100,e=100,f=200,g=300,h=500,i=500,j=2e3,k=300,l=3e3,m=200,n=3e3,o=3e3,p=15e3,q=100,r=1e3},35583:(a,b,c)=>{c.d(b,{O5:()=>n,Bk:()=>p,Hb:()=>k,_U:()=>m,a3:()=>q,PS:()=>l,Gz:()=>r});var d=c(16698),e=c(24455),f=c(37717);c(15194);let g={claude:6e4},h=globalThis.__sessionStartingRecords??(globalThis.__sessionStartingRecords=new Map),i=globalThis.__sessionStartingTokenSeq??(globalThis.__sessionStartingTokenSeq={last:0}),j=globalThis.__sessionStartingTokenScope??(globalThis.__sessionStartingTokenScope=new d.AsyncLocalStorage);function k(){return i.last+=1,i.last}function l(a,b){return j.run(a,b)}function m(a,b,c,d=Date.now()){let f=j.getStore()??k(),g=(0,e.v7)(a,b,c),i=h.get(g);return void 0!==i&&i.token>f?null:(h.set(g,{cliToolId:b,token:f,since:d,promptSeenAt:null,released:!1}),f)}function n(a,b,c,d){try{let f=(0,e.v7)(a,b,c);if(void 0!==d&&h.get(f)?.token!==d)return;h.delete(f)}catch{}}function o(a,b,c){return void 0===b||b.released?null:c-b.since>(g[b.cliToolId]??3e4)+5e3?(h.delete(a),null):b.since}function p(a,b,c,d=Date.now()){let f=(0,e.v7)(a,b,c);return o(f,h.get(f),d)}function q(a,b,c,d,f=Date.now()){let g=(0,e.v7)(a,b,c),i=h.get(g),j=o(g,i,f);return null===j||void 0===i?null:d?(i.promptSeenAt??=f,f-i.promptSeenAt>=5e3)?(i.released=!0,null):j:(i.promptSeenAt=null,j)}function r(a){return{...a,status:"running",reason:f.g.STARTING,hasActivePrompt:!1,promptDetection:{...a.promptDetection,isPrompt:!1,promptData:void 0},evidence:"positive"}}},37717:(a,b,c)=>{c.d(b,{g:()=>d});let d={PROMPT_DETECTED:"prompt_detected",THINKING_INDICATOR:"thinking_indicator",OPENCODE_PROCESSING_INDICATOR:"opencode_processing_indicator",OPENCODE_SELECTION_LIST:"opencode_selection_list",OPENCODE_MODAL_OVERLAY:"opencode_modal_overlay",OPENCODE_PERMISSION_PROMPT:"opencode_permission_prompt",CLAUDE_SELECTION_LIST:"claude_selection_list",COMMAND_CODE_SELECTION_LIST:"command_code_selection_list",COMMAND_CODE_DISMISSABLE_PANEL:"command_code_dismissable_panel",COMMAND_CODE_PLAN_REVIEW:"command_code_plan_review",COPILOT_SELECTION_LIST:"copilot_selection_list",CODEX_SELECTION_LIST:"codex_selection_list",CODEX_PAGER:"codex_pager",CODEX_HOOKS_REVIEW:"codex_hooks_review",ANTIGRAVITY_SELECTION_LIST:"antigravity_selection_list",OPENCODE_RESPONSE_COMPLETE:"opencode_response_complete",INPUT_PROMPT:"input_prompt",NO_RECENT_OUTPUT:"no_recent_output",STARTING:"starting",EXITED:"exited",UNKNOWN_FRAME:"unknown_frame",DEFAULT:"default"}},40236:(a,b,c)=>{c.d(b,{FW:()=>A});var d=c(79646),e=c(79892),f=c(93997),g=c(56717),h=c(20967),i=c(20610),j=c(72626),k=c(87673);let l=(0,j.h)("cli-tools/submit-verified-sender"),m=/\[Pasted text[\s#]/,n=0,o=/^\/[A-Za-z]/,p=/^\s*(?:ctx:\d+%\s*)?[>❯›]/;function q(a,b,c){if("opencode-box"===a){let a=(0,h.mu)(b);if(null===a)return{kind:"absent"};if(a.some(a=>h.vU.test(a)))return{kind:"empty"};let c=a.map(h.pV).find(a=>a.length>0);return void 0===c?{kind:"empty"}:{kind:"text",text:c,rows:a}}if("input-line-marker"!==a)return{kind:"absent"};let d=function(a){for(let b=a.length-1;b>=0;b--)if(p.test(a[b]))return a[b];return null}(c);if(null===d)return{kind:"absent"};let e=d.replace(p,"").trim();return 0===e.length?{kind:"empty"}:{kind:"text",text:e,rows:[d]}}function r(a){let b=a.length;for(;b>0&&""===a[b-1].trim();)b--;return a.slice(0,b)}function s(a,b){let c=b.split("\n").map(a=>a.trim()).find(a=>a.length>0)??"";return 0!==c.length&&c.startsWith(a)}let t=[{pattern:/\[Pasted text(?: #\d+)?(?: \+(\d+) lines?| (\d+) chars?)?\]/g,read:a=>void 0!==a[1]?{lines:Number(a[1])}:void 0!==a[2]?{chars:Number(a[2])}:{}},{pattern:/\[Pasted Content (\d+) chars?\]/g,read:a=>({chars:Number(a[1])})},{pattern:/\[([^\]\n]*?)… \+(\d+)L\]/g,read:a=>({head:a[1],lineTotal:Number(a[2])})}];function u(a){let b=[],c=a;for(let{pattern:d,read:e}of t)for(let f of a.matchAll(d))b.push(e(f)),c=c.replace(f[0],"");return{tokens:b,rest:c.trim()}}function v(a,b){return new Promise((c,e)=>{let f=d.execFile("tmux",a,{timeout:5e3},a=>{if(a)return void e(a);c()});void 0!==b&&f.stdin?.end(b)})}async function w(a,b){let c=`cm-send-${process.pid}-${++n}`;try{await v(["load-buffer","-b",c,"-"],b),await v(["paste-buffer","-p","-r","-d","-b",c,"-t",(0,e.lA)(a)])}catch(b){await v(["delete-buffer","-b",c]).catch(()=>void 0);let a=b instanceof Error?b.message:String(b);throw Error(`Failed to paste message into tmux session: ${a}`)}}async function x(a,b,c){try{c.clearBeforeSend?await (0,k.sr)(a,b):await (0,e.Ce)(a)}catch(c){l.error("paste-withdraw-failed",{sessionName:a,cliToolId:b,error:c instanceof Error?c.message:String(c)})}}async function y(a){let{sessionName:b,message:c,cliToolId:d,composer:i,attempts:j}=a,k="unseen",m="";for(let a=0;a<Math.max(1,j)&&(await new Promise(a=>setTimeout(a,100)),"landed"!==(k=function(a,b,c,d=(0,g.gc)(b)){let e=r((0,h.aJ)(a).split("\n")),f=q(d.reader,e,e.slice(-12));if("text"!==f.kind)return"unseen";let{tokens:i,rest:j}=u(f.text);return 0===i.length?s(f.text,c)?"landed":c.includes(f.text)?"mismatch":"unseen":i.length>1||""!==j?"mismatch":function(a,b){let c,d,e=(b.match(/\n/g)??[]).length;if(void 0!==a.head){let c=a.head.replace(/\s+/g," ").trim();if(!b.replace(/\s+/g," ").startsWith(c))return"mismatch"}if(void 0!==a.chars)c=a.chars,d=[[...b].length,b.length];else if(void 0!==a.lineTotal)c=a.lineTotal,d=[e+1];else{if(void 0===a.lines)return 0===e?"landed":"pasting";c=a.lines,d=[e,e+1]}return d.includes(c)?"landed":c<Math.min(...d)?"pasting":"mismatch"}(i[0],c)}(m=await (0,e.Xg)(b,{startLine:-i.verifyCaptureLines}),d,c,i))&&"mismatch"!==k);a++);if("landed"===k)return;if("unseen"===k&&!i.clearBeforeSend)return void l.warn("paste-landed-unverified",{sessionName:b,cliToolId:d,bytes:Buffer.byteLength(c,"utf8")});let n=Buffer.byteLength(c,"utf8"),o=c.split("\n").length,p=function(a,b){let c=r((0,h.aJ)(a).split("\n")),d=q(b.reader,c,c.slice(-12));return"absent"===d.kind?"no composer on screen":"empty"===d.kind?"an empty composer":JSON.stringify(d.text.length>80?`${d.text.slice(0,80)}…`:d.text)}(m,i);await x(b,d,i),(0,f.gm)(b),l.error("paste-not-landed",{sessionName:b,cliToolId:d,state:k,bytes:n,lines:o,shown:p});let t="mismatch"===k?`the composer does not hold the message as sent (it shows ${p})`:"pasting"===k?`the paste had not finished arriving after ${100*j}ms (the composer shows ${p})`:`the message never appeared in the composer (${p})`;throw Error(`Message body did not arrive intact for session ${b}: ${t}; the message is ${n} bytes / ${o} lines. Enter was not pressed, so nothing was submitted (Issue #2464).`)}async function z(a,b,c=(0,g.gc)(b)){if(!c.clearBeforeSend)return;let d=await (0,k.sr)(a,b);if("content"===d.state)throw l.error("pre-send-composer-clear-failed",{sessionName:a,cliToolId:b,passes:d.passes,remainingLength:d.remainingText.length,remainingText:d.remainingText}),Error(`Composer for session ${a} still holds unsent text after ${d.passes} clear passes; refusing to type the message, which would be concatenated with it (Issue #1880).`);d.passes>0&&l.warn("pre-send-composer-cleared",{sessionName:a,cliToolId:b,passes:d.passes,state:d.state,discardedLength:d.discardedText.length,discardedText:d.discardedText})}async function A(a){let{sessionName:b,message:c,cliToolId:d,composer:j=(0,g.gc)(d),textInputWaitMs:k=i.pL,interEnterWaitMs:n=i.pL,verifyAttempts:p=4,verifyDelayMs:t=i.x9,pasteLandedAttempts:v=20}=a,x=a.submitEnterCount??j.submitEnterCount;if(await z(b,d,j),Buffer.byteLength(c,"utf8")>512){let a=Date.now();await w(b,c),await y({sessionName:b,message:c,cliToolId:d,composer:j,attempts:v});let e=k-(Date.now()-a);e>0&&await new Promise(a=>setTimeout(a,e))}else await (0,e.V1)(b,c,!1,{literal:!0}),await new Promise(a=>setTimeout(a,k));for(let a=0;a<Math.max(1,x);a++)await (0,e.KB)(b,["Enter"]),a<x-1&&await new Promise(a=>setTimeout(a,n));let A=Math.max(1,p);for(let a=0;a<A;a++){await new Promise(a=>setTimeout(a,t));let i=function(a,b,c,d=(0,g.gc)(b)){let e=r((0,h.aJ)(a).split("\n")),f=e.slice(-12),i=f.join("\n");if((0,h.ut)(b,i))return"submitted";let j=q(d.reader,e,f);return"text"!==j.kind?"submitted":j.rows.some(a=>m.test(a)||u(a).tokens.length>0)||s(j.text,c)?"pending":o.test(j.text)?"replaced":"submitted"}(await (0,e.Xg)(b,{startLine:-j.verifyCaptureLines}),d,c,j);if("submitted"===i)return void(0,f.gm)(b);if("replaced"===i){try{await (0,e.Ce)(b)}catch(a){l.error("submit-clear-input-failed",{sessionName:b,cliToolId:d,error:a instanceof Error?a.message:String(a)})}throw(0,f.gm)(b),l.error("submit-replaced-by-tui-completion",{sessionName:b,cliToolId:d,attempt:a}),Error(`Message was replaced by a TUI autocompletion for session ${b}; the input no longer matches the sent text. Cleared the input line without submitting to avoid executing a different command.`)}l.warn("submit-not-confirmed:resending-enter",{sessionName:b,cliToolId:d,attempt:a}),await (0,e.KB)(b,["Enter"])}throw(0,f.gm)(b),l.error("submit-verification-failed",{sessionName:b,cliToolId:d,attempts:A}),Error(`Message submit could not be confirmed for session ${b} after ${A} attempts (typed but unsent)`)}},46749:(a,b,c)=>{c.d(b,{Y:()=>d});function d(a){return`clear 2>/dev/null; printf '\\033[3J'; ${a}`}},50945:(a,b,c)=>{c.d(b,{Q:()=>g,S:()=>h});var d=c(79892),e=c(11472),f=c(91536);async function g(a,b){let c;try{c=await (0,d.Xg)(a,{startLine:-b.probeCaptureLines})}catch{c=void 0}return"string"!=typeof c?b.unreadableIsExited?{alive:!1,reason:"capture error"}:{alive:!0}:(0,e.Hg)(c,b)}async function h(a,b){return g(a,(0,f.H7)(b))}},56717:(a,b,c)=>{c.d(b,{gc:()=>g});var d=c(16983);let e={reader:"input-line-marker",verifyCaptureLines:12,clearBeforeSend:!0,submitEnterCount:1},f={claude:e,codex:e,gemini:{...e,clearBeforeSend:!1},copilot:{...e,clearBeforeSend:!1},antigravity:{...e,clearBeforeSend:!1},"command-code":{...e,clearBeforeSend:!1},"vibe-local":{...e,clearBeforeSend:!1,submitEnterCount:2},opencode:{reader:"opencode-box",verifyCaptureLines:d.xT,clearBeforeSend:!1,submitEnterCount:1},"opencode-v2":{reader:"opencode-box",verifyCaptureLines:d.xT,clearBeforeSend:!1,submitEnterCount:1}};function g(a){return f[a]??e}},57905:(a,b,c)=>{c.d(b,{c0:()=>X,zw:()=>T,Yq:()=>U,pU:()=>W,R7:()=>V,VU:()=>Y});var d=c(79892),e=c(20967),f=c(11472),g=c(91536),h=c(50945),i=c(40236),j=c(93997),k=c(77093),l=c(20610),m=c(79646),n=c(28354),o=c(72626);let p=(0,o.h)("session-key-sender"),q=(0,n.promisify)(m.exec);async function r(a,b=50){let c=await (0,d.Xg)(a,{startLine:-b});return(0,e.aJ)(c)}async function s(a){await q("tmux set-environment -g -u CLAUDECODE 2>/dev/null || true"),await (0,d.V1)(a,"unset CLAUDECODE",!0),await new Promise(a=>setTimeout(a,l.Em))}async function t(a,b){let c=Date.now();for(;Date.now()-c<b;){let b=await r(a);if(e.hx.test(b))return;await new Promise(a=>setTimeout(a,200))}throw Error(`Prompt detection timeout (${b}ms)`)}async function u(a,b,c,f){if(!await (0,d.N)(a))throw Error(`Claude session ${a} does not exist. Start the session first.`);let g=await r(a);e.hx.test(g)||await t(a,f),await new Promise(a=>setTimeout(a,c)),await (0,i.FW)({sessionName:a,message:b,cliToolId:"claude"}),(0,j.gm)(a),p.info("sent-message-to-session",{sessionName:a})}async function v(a){try{await (0,d.N)(a)&&(await (0,d.V1)(a,"",!1),await (0,d.ds)(a,"C-d"),(0,j.gm)(a),await new Promise(a=>setTimeout(a,l.Zf)));let b=await (0,d.fY)(a);return b&&p.info("stopped-session",{sessionName:a}),b}catch(a){return p.error("session:stop-failed",{error:(0,k.u1)(a)}),!1}}var w=c(79748),x=c(31347),y=c(40964),z=c(22354),A=c(43252),B=c(80252),C=c(1305),D=c(48083),E=c(2669),F=c(46749);let G=(0,o.h)("claude-session"),H=(0,n.promisify)(m.exec);async function I(a,b,c){if(null!==c.pollsSinceAnswer&&c.pollsSinceAnswer++,null!==c.pollsSinceMove&&c.pollsSinceMove++,null===b)return;c.seen||(c.seen=!0,c.shellTellsExit=await K(a));let f=(0,e.lQ)(b);if(null!==f){if(1===f.length){if(!(null===c.pollsSinceAnswer||c.pollsSinceAnswer>=10&&c.answers<3))return;try{await (0,d.V1)(a,"",!0),c.pollsSinceAnswer=0,c.answers++,G.info("trust-dialog-detected",{keys:"Enter",attempt:c.answers})}catch{}return}if(null===c.pollsSinceMove||!(c.pollsSinceMove<3)){if(c.moves>=20)throw new E.mR("Claude Code",a,'trust dialog: cursor did not reach "Yes, I trust this folder"');try{await (0,d.KB)(a,[f[0]]),c.pollsSinceMove=0,c.moves++,G.info("trust-dialog-cursor-move",{key:f[0],attempt:c.moves})}catch{}}}}async function J(a){let b=await L(a);return null!==b&&(0,e.U1)(b)}async function K(a){let b=await L(a);return null!==b&&!(0,e.U1)(b)}async function L(a){try{let b=await (0,d.Hg)(a);return"string"==typeof b?b:null}catch{return null}}let M=(0,g.H7)("claude"),N=null;async function O(){if(N)return N;let a=process.env.CLAUDE_PATH;if(a&&(/^[/a-zA-Z0-9._-]+$/.test(a)?!a.includes("..")||(G.info("claudepath-contains-path"),!1):(G.info("claudepath-contains-invalid-characters-i"),!1)))try{return await (0,w.access)(a,w.constants.X_OK),N=a}catch{G.info("claudepath-is-not-executable:envclaudepa")}try{let{stdout:a}=await H("which claude",{timeout:5e3});return N=a.trim()}catch{for(let a of["/opt/homebrew/bin/claude","/usr/local/bin/claude","/usr/bin/claude"])try{return await H(`test -x "${a}"`,{timeout:1e3}),N=a}catch{}throw Error("Claude CLI not found. Set CLAUDE_PATH environment variable or install Claude CLI.")}}async function P(a,b=50){let c=await (0,d.Xg)(a,{startLine:-b});return(0,e.aJ)(c)}async function Q(a){let b=await (0,h.Q)(a,M);return b.alive?{healthy:!0}:{healthy:!1,reason:b.reason}}async function R(a){return!!(await Q(a)).healthy||(G.warn("session-sessionname-unhealthy:resultreas"),await (0,d.fY)(a),!1)}function S(a,b){return(0,y.mf)("claude",a,b)}async function T(){try{return await H("which claude",{timeout:5e3}),!0}catch{return!1}}async function U(a,b){let c=S(a,b);return!!await (0,d.N)(c)&&(!!(await Q(c)).healthy||(G.warn("session-sessionname-unhealthy:resultreas"),!1))}async function V(a){let{worktreeId:b,worktreePath:c,instanceId:g,model:h}=a;if(void 0!==h){let a=(0,B.LB)(h);if(!a.valid)throw Error(`Invalid Claude model name: ${a.reason}`)}if(!await T())throw new E.lU("Claude Code","Claude CLI is not installed or not in PATH");let i=S(b,g);if(await (0,d.N)(i)&&(await (0,x.St)(i,c),await R(i))){await (0,d.zT)(i),G.info("claude-session-sessionname");return}(0,C.Fq)({worktreeId:b,cliToolId:z.vm,instanceId:g});try{await (0,d.jw)({sessionName:i,workingDirectory:c}),await s(i);let a=await O(),k=(0,C.wK)({target:{worktreeId:b,cliToolId:z.vm,instanceId:g},executablePath:a,worktreePath:c}),l=void 0===h?k:`${k} --model ${(0,A.ZL)(h)}`;await (0,d.V1)(i,(0,F.Y)(l),!0);let m=Date.now(),n=!1,o={pollsSinceAnswer:null,pollsSinceMove:null,answers:0,moves:0,seen:!1,shellTellsExit:!1};for(;Date.now()-m<6e4;){var j;await new Promise(a=>setTimeout(a,300));let a=null;try{a=await P(i)}catch{}if(null===a)continue;let b=(0,e.lX)(a);if(await I(i,b?a:null,o),!b&&e.hx.test(a)){await new Promise(a=>setTimeout(a,500)),G.info("claude-initialized-in"),n=!0;break}if(!b&&o.shellTellsExit&&await J(i))throw new E.mR("Claude Code",i,"trust dialog: Claude Code exited to the shell");let c=(j=a,(0,f.ow)(j,M));if(null!==c)throw new E.mR("Claude Code",i,c)}if(!n)throw new E.Sr("Claude Code",i,6e4);G.info("started-claude-session:sessionname")}catch(a){if(N=null,G.error("session:start-failed",{error:a instanceof Error?a.message:String(a)}),(0,E.su)(a))throw a;throw Error("Failed to start Claude session")}}async function W(a,b,c){let d=S(a,c);await u(d,b,500,1e4)}async function X(a,b=1e3,c){let e=S(a,c);if(!await (0,d.N)(e))throw Error(`Claude session ${e} does not exist`);try{return await (0,d.Xg)(e,{startLine:-b})}catch(a){throw Error(`Failed to capture Claude output: ${a instanceof Error?a.message:String(a)}`)}}async function Y(a,b){let c=S(a,b),d=await v(c);return(0,D.discardAgentEventState)(a,"claude",b),d}},77093:(a,b,c)=>{c.d(b,{u1:()=>d});function d(a){return a instanceof Error?a.message:String(a)}},87673:(a,b,c)=>{c.d(b,{sr:()=>i});var d=c(79892),e=c(93997),f=c(94154);let g=(0,c(72626).h)("composer-clear"),h=a=>new Promise(b=>setTimeout(b,a));async function i(a,b,c={}){let j=c.capture??(a=>(0,d.Xg)(a,200)),k=c.sendClear??d.ou,l=c.delay??h,m=c.maxPasses??12,n=0,o=(0,f.ji)(await j(a),b),p="content"===o.state?o.text:"";for(;"content"===o.state&&n<m;)await k(a),n++,await l(120),o=(0,f.ji)(await j(a),b);n>0&&(0,e.gm)(a);let q="empty"===o.state||"ghost"===o.state;return q||g.warn("composer-clear:not-cleared",{sessionName:a,cliToolId:b,passes:n,state:o.state}),{cleared:q,passes:n,state:o.state,remainingText:o.text,discardedText:p}}},91536:(a,b,c)=>{c.d(b,{H7:()=>i});var d=c(20967),e=c(11472);let f={probeCaptureLines:50,shellPromptEndings:e.Bl,maxShellPromptLength:e.w9,fatalPatterns:[],fatalRegexPatterns:[]},g={aliveTailLines:12,shellPromptPatterns:e.vg,unreadableIsExited:!1},h={claude:{...f,alivePatterns:[d.hx],aliveTailLines:null,shellPromptPatterns:e.vg,unreadableIsExited:!0,fatalPatterns:d.F0,fatalRegexPatterns:d.Fw},codex:{...f,...g,alivePatterns:[d.gm,d.sB,d.Mt]},copilot:{...f,...g,alivePatterns:[d.Du,d.Ub,d.tJ,d.rb]},opencode:{...f,...g,alivePatterns:[d.vU,d.uA,d.Cc,d.LO,d.a2]},gemini:{...f,...g,alivePatterns:[d.wN,d.s0]},antigravity:{...f,...g,alivePatterns:[d.lE,d.kT,d.VF]},"command-code":{...f,...g,alivePatterns:[d.WK,d.jk,d.k0]},"opencode-v2":{...f,...g,alivePatterns:[d.wK,d.c7,d.xL]},"vibe-local":{...f,...g,alivePatterns:[d.Dj,d.b2]}};function i(a){return h[a]??h.claude}}};
|
|
1
|
+
"use strict";exports.id=7905,exports.ids=[7905],exports.modules={1305:(a,b,c)=>{c.d(b,{Fq:()=>n,wK:()=>o});var d=c(22354),e=c(33294),f=c(88807),g=c(52660),h=c(54325),i=c(72626);let j=(0,i.h)("lib/session/session-generation-archive");var k=c(35583),l=c(27675);let m=(0,i.h)("lib/session/agent-session-lifecycle");function n(a,b=Date.now()){(0,k._U)(a.worktreeId,a.cliToolId,a.instanceId,b);let i=(0,e.getAgentEventDropCounts)(a.worktreeId,a.cliToolId,a.instanceId).decisionEvicted;(0,e.beginAgentEventGeneration)(a.worktreeId,a.cliToolId,a.instanceId,b),(0,l.eZ)(a.worktreeId,a.cliToolId,a.instanceId);let o=(0,e.getAgentEventDropCounts)(a.worktreeId,a.cliToolId,a.instanceId).decisionEvicted,p=(0,d.VM)(a.cliToolId);m.info("agent-session-generation-begun",{worktreeId:a.worktreeId,cliToolId:a.cliToolId,instanceId:a.instanceId??a.cliToolId,transport:p.transport,decisionsEvicted:o-i});try{!function(a,b=process.env.VITEST?null:(0,f.getDbInstance)()){var d,e,i;let k=a.instanceId??a.cliToolId;if(!b)return;let l=(0,g.deleteMessagesByInstance)(b,a.worktreeId,k);0===l||((0,g.recomputeLastUserMessage)(b,a.worktreeId),j.info("session-generation-archived",{worktreeId:a.worktreeId,cliToolId:a.cliToolId,instanceId:k,archived:l}),d=a.worktreeId,e=a.cliToolId,i=k,Promise.all([c.e(1356),c.e(1503),c.e(1191),c.e(1719),c.e(2119),c.e(2445),c.e(8728)]).then(c.bind(c,43015)).then(({broadcastMessage:a})=>{a(h.dz,{worktreeId:d,cliToolId:e,instanceId:i,reason:"session_generation"})}).catch(a=>{j.warn("session-generation-invalidate-broadcast-failed",{worktreeId:d,instanceId:i,error:a instanceof Error?a.message:String(a)})}))}(a)}catch(b){m.warn("session-generation-archive-failed",{worktreeId:a.worktreeId,cliToolId:a.cliToolId,instanceId:a.instanceId??a.cliToolId,error:b instanceof Error?b.message:String(b)})}}function o(a){return(0,d.K9)((0,d.VM)(a.target.cliToolId).prepareLaunch(a))}},11472:(a,b,c)=>{c.d(b,{Bl:()=>e,GE:()=>j,Hg:()=>k,ow:()=>i,vg:()=>g,w9:()=>f});var d=c(51297);let e=["$","%","#"],f=40,g=[/^[\w.-]+@[\w.-]+[\s:].*[$%#]$/,/^\[[\w.-]+@[\w.-]+[^\]]*\][$#]$/];function h(a){return a.split("\n").filter(a=>""!==a.trim())}function i(a,b){let c=h(a.trim()).slice(-10).join("\n");for(let a of b.fatalPatterns)if(c.includes(a))return a;for(let a of b.fatalRegexPatterns)if(a.test(c))return a.source;return null}function j(a,b){let c=h(a.trim()),d=c[c.length-1]?.trim()??"";return!/\d+%$/.test(d)&&b.shellPromptPatterns.some(a=>a.test(d))?{line:d,via:"pattern"}:d.length>=b.maxShellPromptLength?null:b.shellPromptEndings.some(a=>!(!d.endsWith(a)||"%"===a&&/\d+%$/.test(d)))?{line:d,via:"ending"}:null}function k(a,b){let c=(0,d.aJ)(a).trim();if(""===c)return b.unreadableIsExited?{alive:!1,reason:"empty output"}:{alive:!0};let e=h(c),f=null===b.aliveTailLines?c:e.slice(-b.aliveTailLines).join("\n");if(b.alivePatterns.some(a=>a.test(f)))return{alive:!0};let g=i(c,b);if(null!==g)return{alive:!1,reason:`error pattern: ${g}`};let k=j(c,b);return null!==k?"pattern"===k.via?{alive:!1,reason:`shell prompt detected: ${k.line}`}:{alive:!1,reason:`shell prompt ending detected: ${k.line}`}:{alive:!0}}},20610:(a,b,c)=>{c.d(b,{CV:()=>i,D1:()=>p,Em:()=>q,Is:()=>g,KI:()=>j,Lw:()=>o,PY:()=>m,Rk:()=>l,Uc:()=>d,Zf:()=>h,kZ:()=>r,os:()=>k,pL:()=>e,x9:()=>f,yO:()=>n});let d=100,e=100,f=200,g=300,h=500,i=500,j=2e3,k=300,l=3e3,m=200,n=3e3,o=3e3,p=15e3,q=100,r=1e3},35583:(a,b,c)=>{c.d(b,{O5:()=>o,Bk:()=>q,Hb:()=>l,_U:()=>n,a3:()=>r,PS:()=>m,Gz:()=>s});var d=c(16698),e=c(24455),f=c(37717);c(15194);let g={claude:6e4};var h=c(36925);let i=(0,h.v)("__sessionStartingRecords",()=>new Map),j=(0,h.v)("__sessionStartingTokenSeq",()=>({last:0})),k=(0,h.v)("__sessionStartingTokenScope",()=>new d.AsyncLocalStorage);function l(){return j.last+=1,j.last}function m(a,b){return k.run(a,b)}function n(a,b,c,d=Date.now()){let f=k.getStore()??l(),g=(0,e.v7)(a,b,c),h=i.get(g);return void 0!==h&&h.token>f?null:(i.set(g,{cliToolId:b,token:f,since:d,promptSeenAt:null,released:!1}),f)}function o(a,b,c,d){try{let f=(0,e.v7)(a,b,c);if(void 0!==d&&i.get(f)?.token!==d)return;i.delete(f)}catch{}}function p(a,b,c){return void 0===b||b.released?null:c-b.since>(g[b.cliToolId]??3e4)+5e3?(i.delete(a),null):b.since}function q(a,b,c,d=Date.now()){let f=(0,e.v7)(a,b,c);return p(f,i.get(f),d)}function r(a,b,c,d,f=Date.now()){let g=(0,e.v7)(a,b,c),h=i.get(g),j=p(g,h,f);return null===j||void 0===h?null:d?(h.promptSeenAt??=f,f-h.promptSeenAt>=5e3)?(h.released=!0,null):j:(h.promptSeenAt=null,j)}function s(a){return{...a,status:"running",reason:f.g.STARTING,hasActivePrompt:!1,promptDetection:{...a.promptDetection,isPrompt:!1,promptData:void 0},evidence:"positive"}}},37717:(a,b,c)=>{c.d(b,{g:()=>d});let d={PROMPT_DETECTED:"prompt_detected",THINKING_INDICATOR:"thinking_indicator",OPENCODE_PROCESSING_INDICATOR:"opencode_processing_indicator",OPENCODE_SELECTION_LIST:"opencode_selection_list",OPENCODE_MODAL_OVERLAY:"opencode_modal_overlay",OPENCODE_PERMISSION_PROMPT:"opencode_permission_prompt",CLAUDE_SELECTION_LIST:"claude_selection_list",COMMAND_CODE_SELECTION_LIST:"command_code_selection_list",COMMAND_CODE_DISMISSABLE_PANEL:"command_code_dismissable_panel",COMMAND_CODE_PLAN_REVIEW:"command_code_plan_review",COPILOT_SELECTION_LIST:"copilot_selection_list",CODEX_SELECTION_LIST:"codex_selection_list",CODEX_PAGER:"codex_pager",CODEX_HOOKS_REVIEW:"codex_hooks_review",ANTIGRAVITY_SELECTION_LIST:"antigravity_selection_list",OPENCODE_RESPONSE_COMPLETE:"opencode_response_complete",INPUT_PROMPT:"input_prompt",NO_RECENT_OUTPUT:"no_recent_output",STARTING:"starting",EXITED:"exited",UNKNOWN_FRAME:"unknown_frame",DEFAULT:"default"}},40236:(a,b,c)=>{c.d(b,{FW:()=>F});var d=c(79646),e=c(79892),f=c(93997),g=c(56717),h=c(61789),i=c(20610),j=c(72626),k=c(87673),l=c(94154);let m=(0,j.h)("cli-tools/submit-verified-sender"),n=/\[Pasted text[\s#]/,o=0,p=/^\/[A-Za-z]/,q=/^\s*(?:ctx:\d+%\s*)?[>❯›]/;function r(a,b,c){if("opencode-box"===a){let a=(0,h.mu)(b);if(null===a)return{kind:"absent"};if(a.some(a=>h.vU.test(a)))return{kind:"empty"};let c=a.map(h.pV).find(a=>a.length>0);return void 0===c?{kind:"empty"}:{kind:"text",text:c,rows:a}}if("input-line-marker"!==a)return{kind:"absent"};let d=function(a){for(let b=a.length-1;b>=0;b--)if(q.test(a[b]))return a[b];return null}(c);if(null===d)return{kind:"absent"};let e=d.replace(q,"").trim();return 0===e.length?{kind:"empty"}:{kind:"text",text:e,rows:[d]}}function s(a){let b=a.length;for(;b>0&&""===a[b-1].trim();)b--;return a.slice(0,b)}function t(a){return a.split("\n").map(a=>a.trim()).find(a=>a.length>0)??""}function u(a,b){let c=t(b);return 0!==c.length&&c.startsWith(a)}let v=[{pattern:/\[Pasted text(?: #\d+)?(?: \+(\d+) lines?| (\d+) chars?)?\]/g,read:a=>void 0!==a[1]?{lines:Number(a[1])}:void 0!==a[2]?{chars:Number(a[2])}:{}},{pattern:/\[Pasted Content (\d+) chars?\]/g,read:a=>({chars:Number(a[1])})},{pattern:/\[([^\]\n]*?)… \+(\d+)L\]/g,read:a=>({head:a[1],lineTotal:Number(a[2])})}];function w(a){let b=[],c=a;for(let{pattern:d,read:e}of v)for(let f of a.matchAll(d))b.push(e(f)),c=c.replace(f[0],"");return{tokens:b,rest:c.trim()}}function x(a,b){return new Promise((c,e)=>{let f=d.execFile("tmux",a,{timeout:5e3},a=>{if(a)return void e(a);c()});void 0!==b&&f.stdin?.end(b)})}async function y(a,b){let c=`cm-send-${process.pid}-${++o}`;try{await x(["load-buffer","-b",c,"-"],b),await x(["paste-buffer","-p","-r","-d","-b",c,"-t",(0,e.lA)(a)])}catch(b){await x(["delete-buffer","-b",c]).catch(()=>void 0);let a=b instanceof Error?b.message:String(b);throw Error(`Failed to paste message into tmux session: ${a}`)}}function z(a,b){let c=s((0,h.aJ)(a).split("\n")),d=r(b.reader,c,c.slice(-12));return"absent"===d.kind?"no composer on screen":"empty"===d.kind?"an empty composer":JSON.stringify(d.text.length>80?`${d.text.slice(0,80)}…`:d.text)}async function A(a,b,c){try{c.clearBeforeSend?await (0,k.sr)(a,b):await (0,e.Ce)(a)}catch(c){m.error("paste-withdraw-failed",{sessionName:a,cliToolId:b,error:c instanceof Error?c.message:String(c)})}}async function B(a){let{sessionName:b,message:c,cliToolId:d,composer:i,attempts:j}=a,k="unseen",l="";for(let a=0;a<Math.max(1,j)&&(await new Promise(a=>setTimeout(a,100)),"landed"!==(k=function(a,b,c,d=(0,g.gc)(b)){let e=s((0,h.aJ)(a).split("\n")),f=r(d.reader,e,e.slice(-12));if("text"!==f.kind)return"unseen";let{tokens:i,rest:j}=w(f.text);return 0===i.length?u(f.text,c)?"landed":c.includes(f.text)?"mismatch":"unseen":i.length>1||""!==j?"mismatch":function(a,b){let c,d,e=(b.match(/\n/g)??[]).length;if(void 0!==a.head){let c=a.head.replace(/\s+/g," ").trim();if(!b.replace(/\s+/g," ").startsWith(c))return"mismatch"}if(void 0!==a.chars)c=a.chars,d=[[...b].length,b.length];else if(void 0!==a.lineTotal)c=a.lineTotal,d=[e+1];else{if(void 0===a.lines)return 0===e?"landed":"pasting";c=a.lines,d=[e,e+1]}return d.includes(c)?"landed":c<Math.min(...d)?"pasting":"mismatch"}(i[0],c)}(l=await (0,e.Xg)(b,{startLine:-i.verifyCaptureLines}),d,c,i))&&"mismatch"!==k);a++);if("landed"===k)return;if("unseen"===k&&!i.clearBeforeSend)return void m.warn("paste-landed-unverified",{sessionName:b,cliToolId:d,bytes:Buffer.byteLength(c,"utf8")});let n=Buffer.byteLength(c,"utf8"),o=c.split("\n").length,p=z(l,i);await A(b,d,i),(0,f.gm)(b),m.error("paste-not-landed",{sessionName:b,cliToolId:d,state:k,bytes:n,lines:o,shown:p});let q="mismatch"===k?`the composer does not hold the message as sent (it shows ${p})`:"pasting"===k?`the paste had not finished arriving after ${100*j}ms (the composer shows ${p})`:`the message never appeared in the composer (${p})`;throw Error(`Message body did not arrive intact for session ${b}: ${q}; the message is ${n} bytes / ${o} lines. Enter was not pressed, so nothing was submitted (Issue #2464).`)}function C(a){return a.replace(/\s+/g,"")}async function D(a){let{sessionName:b,message:c,cliToolId:d,composer:g,attempts:h}=a,i=C(function(a){let b=a.split("\n"),c=b.findIndex(a=>""!==a.trim());if(c<0)return"";let d=b.findIndex((a,b)=>b>c&&""===a.trim());return b.slice(0,d<0?b.length:d).join("\n")}(c));if(""===i)return;let j="";for(let a=0;a<Math.max(1,h);a++){await new Promise(a=>setTimeout(a,50)),j=await (0,e.Xg)(b,{startLine:-g.verifyCaptureLines});let a=(0,l.ji)(j,d);if("content"===a.state&&C(a.text)===i)return}let k=Buffer.byteLength(c,"utf8"),n=z(j,g);throw await A(b,d,g),(0,f.gm)(b),m.error("typed-body-not-landed",{sessionName:b,cliToolId:d,bytes:k,attempts:h,shown:n}),Error(`Message body did not appear in the composer for session ${b} within ${50*h}ms (it shows ${n}); the message is ${k} bytes. Enter was not pressed, so nothing was submitted (Issue #3366).`)}async function E(a,b,c=(0,g.gc)(b)){if(!c.clearBeforeSend)return;let d=await (0,k.sr)(a,b);if("content"===d.state)throw m.error("pre-send-composer-clear-failed",{sessionName:a,cliToolId:b,passes:d.passes,remainingLength:d.remainingText.length,remainingText:d.remainingText}),Error(`Composer for session ${a} still holds unsent text after ${d.passes} clear passes; refusing to type the message, which would be concatenated with it (Issue #1880).`);d.passes>0&&m.warn("pre-send-composer-cleared",{sessionName:a,cliToolId:b,passes:d.passes,state:d.state,discardedLength:d.discardedText.length,discardedText:d.discardedText})}async function F(a){let{sessionName:b,message:c,cliToolId:d,composer:j=(0,g.gc)(d),textInputWaitMs:k=i.pL,interEnterWaitMs:o=i.pL,verifyAttempts:q=4,verifyDelayMs:v=i.x9,pasteLandedAttempts:x=20,awaitTypedBody:z=!1,typedBodyAttempts:A=100}=a,C=a.submitEnterCount??j.submitEnterCount;if(await E(b,d,j),Buffer.byteLength(c,"utf8")>512){let a=Date.now();await y(b,c),await B({sessionName:b,message:c,cliToolId:d,composer:j,attempts:x});let e=k-(Date.now()-a);e>0&&await new Promise(a=>setTimeout(a,e))}else{let a=Date.now();await (0,e.V1)(b,c,!1,{literal:!0}),z&&l.wn.has(d)&&await D({sessionName:b,message:c,cliToolId:d,composer:j,attempts:A});let f=k-(Date.now()-a);f>0&&await new Promise(a=>setTimeout(a,f))}for(let a=0;a<Math.max(1,C);a++)await (0,e.KB)(b,["Enter"]),a<C-1&&await new Promise(a=>setTimeout(a,o));let F=Math.max(1,q);for(let a=0;a<F;a++){await new Promise(a=>setTimeout(a,v));let i=function(a,b,c,d=(0,g.gc)(b)){let e=s((0,h.aJ)(a).split("\n")),f=e.slice(-12),i=f.join("\n");if((0,h.ut)(b,i))return"submitted";let j=function(a,b,c,d,e){if("codex"===b&&"input-line-marker"===c){let c=(0,l.ji)(a,b);if("content"===c.state&&c.text.includes("\n"))return{kind:"text",text:t(c.text),rows:c.text.split("\n")}}return r(c,d,e)}(a,b,d.reader,e,f);return"text"!==j.kind?"submitted":j.rows.some(a=>n.test(a)||w(a).tokens.length>0)||u(j.text,c)?"pending":p.test(j.text)?"replaced":"submitted"}(await (0,e.Xg)(b,{startLine:-j.verifyCaptureLines}),d,c,j);if("submitted"===i)return void(0,f.gm)(b);if("replaced"===i){try{await (0,e.Ce)(b)}catch(a){m.error("submit-clear-input-failed",{sessionName:b,cliToolId:d,error:a instanceof Error?a.message:String(a)})}throw(0,f.gm)(b),m.error("submit-replaced-by-tui-completion",{sessionName:b,cliToolId:d,attempt:a}),Error(`Message was replaced by a TUI autocompletion for session ${b}; the input no longer matches the sent text. Cleared the input line without submitting to avoid executing a different command.`)}m.warn("submit-not-confirmed:resending-enter",{sessionName:b,cliToolId:d,attempt:a}),await (0,e.KB)(b,["Enter"])}throw(0,f.gm)(b),m.error("submit-verification-failed",{sessionName:b,cliToolId:d,attempts:F}),Error(`Message submit could not be confirmed for session ${b} after ${F} attempts (typed but unsent)`)}},46749:(a,b,c)=>{c.d(b,{Y:()=>d});function d(a){return`clear 2>/dev/null; printf '\\033[3J'; ${a}`}},50945:(a,b,c)=>{c.d(b,{Q:()=>g,S:()=>h});var d=c(79892),e=c(11472),f=c(91536);async function g(a,b){let c;try{c=await (0,d.Xg)(a,{startLine:-b.probeCaptureLines})}catch{c=void 0}return"string"!=typeof c?b.unreadableIsExited?{alive:!1,reason:"capture error"}:{alive:!0}:(0,e.Hg)(c,b)}async function h(a,b){return g(a,(0,f.H7)(b))}},56717:(a,b,c)=>{c.d(b,{gc:()=>g});var d=c(16983);let e={reader:"input-line-marker",verifyCaptureLines:12,clearBeforeSend:!0,submitEnterCount:1},f={claude:e,codex:e,gemini:{...e,clearBeforeSend:!1},copilot:{...e,clearBeforeSend:!1},antigravity:{...e,clearBeforeSend:!1},"command-code":{...e,clearBeforeSend:!1},"vibe-local":{...e,clearBeforeSend:!1,submitEnterCount:2},opencode:{reader:"opencode-box",verifyCaptureLines:d.xT,clearBeforeSend:!1,submitEnterCount:1},"opencode-v2":{reader:"opencode-box",verifyCaptureLines:d.xT,clearBeforeSend:!1,submitEnterCount:1}};function g(a){return f[a]??e}},57905:(a,b,c)=>{c.d(b,{c0:()=>X,zw:()=>T,Yq:()=>U,pU:()=>W,R7:()=>V,VU:()=>Y});var d=c(79892),e=c(61789),f=c(11472),g=c(91536),h=c(50945),i=c(40236),j=c(93997),k=c(77093),l=c(20610),m=c(79646),n=c(28354),o=c(72626);let p=(0,o.h)("session-key-sender"),q=(0,n.promisify)(m.exec);async function r(a,b=50){let c=await (0,d.Xg)(a,{startLine:-b});return(0,e.aJ)(c)}async function s(a){await q("tmux set-environment -g -u CLAUDECODE 2>/dev/null || true"),await (0,d.V1)(a,"unset CLAUDECODE",!0),await new Promise(a=>setTimeout(a,l.Em))}async function t(a,b){let c=Date.now();for(;Date.now()-c<b;){let b=await r(a);if(e.hx.test(b))return;await new Promise(a=>setTimeout(a,200))}throw Error(`Prompt detection timeout (${b}ms)`)}async function u(a,b,c,f){if(!await (0,d.N)(a))throw Error(`Claude session ${a} does not exist. Start the session first.`);let g=await r(a);e.hx.test(g)||await t(a,f),await new Promise(a=>setTimeout(a,c)),await (0,i.FW)({sessionName:a,message:b,cliToolId:"claude"}),(0,j.gm)(a),p.info("sent-message-to-session",{sessionName:a})}async function v(a){try{await (0,d.N)(a)&&(await (0,d.V1)(a,"",!1),await (0,d.ds)(a,"C-d"),(0,j.gm)(a),await new Promise(a=>setTimeout(a,l.Zf)));let b=await (0,d.fY)(a);return b&&p.info("stopped-session",{sessionName:a}),b}catch(a){return p.error("session:stop-failed",{error:(0,k.u1)(a)}),!1}}var w=c(79748),x=c(31347),y=c(40964),z=c(22354),A=c(43252),B=c(80252),C=c(1305),D=c(33294),E=c(2669),F=c(46749);let G=(0,o.h)("claude-session"),H=(0,n.promisify)(m.exec);async function I(a,b,c){if(null!==c.pollsSinceAnswer&&c.pollsSinceAnswer++,null!==c.pollsSinceMove&&c.pollsSinceMove++,null===b)return;c.seen||(c.seen=!0,c.shellTellsExit=await K(a));let f=(0,e.lQ)(b);if(null!==f){if(1===f.length){if(!(null===c.pollsSinceAnswer||c.pollsSinceAnswer>=10&&c.answers<3))return;try{await (0,d.V1)(a,"",!0),c.pollsSinceAnswer=0,c.answers++,G.info("trust-dialog-detected",{keys:"Enter",attempt:c.answers})}catch{}return}if(null===c.pollsSinceMove||!(c.pollsSinceMove<3)){if(c.moves>=20)throw new E.mR("Claude Code",a,'trust dialog: cursor did not reach "Yes, I trust this folder"');try{await (0,d.KB)(a,[f[0]]),c.pollsSinceMove=0,c.moves++,G.info("trust-dialog-cursor-move",{key:f[0],attempt:c.moves})}catch{}}}}async function J(a){let b=await L(a);return null!==b&&(0,e.U1)(b)}async function K(a){let b=await L(a);return null!==b&&!(0,e.U1)(b)}async function L(a){try{let b=await (0,d.Hg)(a);return"string"==typeof b?b:null}catch{return null}}let M=(0,g.H7)("claude"),N=null;async function O(){if(N)return N;let a=process.env.CLAUDE_PATH;if(a&&(/^[/a-zA-Z0-9._-]+$/.test(a)?!a.includes("..")||(G.info("claudepath-contains-path"),!1):(G.info("claudepath-contains-invalid-characters-i"),!1)))try{return await (0,w.access)(a,w.constants.X_OK),N=a}catch{G.info("claude-path-env-not-executable")}try{let{stdout:a}=await H("which claude",{timeout:5e3});return N=a.trim()}catch{for(let a of["/opt/homebrew/bin/claude","/usr/local/bin/claude","/usr/bin/claude"])try{return await H(`test -x "${a}"`,{timeout:1e3}),N=a}catch{}throw Error("Claude CLI not found. Set CLAUDE_PATH environment variable or install Claude CLI.")}}async function P(a,b=50){let c=await (0,d.Xg)(a,{startLine:-b});return(0,e.aJ)(c)}async function Q(a){let b=await (0,h.Q)(a,M);return b.alive?{healthy:!0}:{healthy:!1,reason:b.reason}}async function R(a){return!!(await Q(a)).healthy||(G.warn("claude-session-unhealthy"),await (0,d.fY)(a),!1)}function S(a,b){return(0,y.mf)("claude",a,b)}async function T(){try{return await H("which claude",{timeout:5e3}),!0}catch{return!1}}async function U(a,b){let c=S(a,b);return!!await (0,d.N)(c)&&(!!(await Q(c)).healthy||(G.warn("claude-session-unhealthy"),!1))}async function V(a){let{worktreeId:b,worktreePath:c,instanceId:g,model:h}=a;if(void 0!==h){let a=(0,B.LB)(h);if(!a.valid)throw Error(`Invalid Claude model name: ${a.reason}`)}if(!await T())throw new E.lU("Claude Code","Claude CLI is not installed or not in PATH");let i=S(b,g);if(await (0,d.N)(i)&&(await (0,x.St)(i,c),await R(i))){await (0,d.zT)(i),G.info("claude-session-exists");return}(0,C.Fq)({worktreeId:b,cliToolId:z.vm,instanceId:g});try{let a=await O(),k=(0,C.wK)({target:{worktreeId:b,cliToolId:z.vm,instanceId:g},executablePath:a,worktreePath:c}),l=void 0===h?k:`${k} --model ${(0,A.ZL)(h)}`;await (0,d.jw)({sessionName:i,workingDirectory:c}),await s(i),await (0,d.V1)(i,(0,F.Y)(l),!0);let m=Date.now(),n=!1,o={pollsSinceAnswer:null,pollsSinceMove:null,answers:0,moves:0,seen:!1,shellTellsExit:!1};for(;Date.now()-m<6e4;){var j;await new Promise(a=>setTimeout(a,300));let a=null;try{a=await P(i)}catch{}if(null===a)continue;let b=(0,e.lX)(a);if(await I(i,b?a:null,o),!b&&e.hx.test(a)){await new Promise(a=>setTimeout(a,500)),G.info("claude-initialized"),n=!0;break}if(!b&&o.shellTellsExit&&await J(i))throw new E.mR("Claude Code",i,"trust dialog: Claude Code exited to the shell");let c=(j=a,(0,f.ow)(j,M));if(null!==c)throw new E.mR("Claude Code",i,c)}if(!n)throw new E.Sr("Claude Code",i,6e4);G.info("started-claude-session")}catch(a){if(N=null,G.error("session:start-failed",{error:a instanceof Error?a.message:String(a)}),(0,E.su)(a))throw a;throw Error("Failed to start Claude session")}}async function W(a,b,c){let d=S(a,c);await u(d,b,500,1e4)}async function X(a,b=1e3,c){let e=S(a,c);if(!await (0,d.N)(e))throw Error(`Claude session ${e} does not exist`);try{return await (0,d.Xg)(e,{startLine:-b})}catch(a){throw Error(`Failed to capture Claude output: ${a instanceof Error?a.message:String(a)}`)}}async function Y(a,b){let c=S(a,b),d=await v(c);return(0,D.discardAgentEventState)(a,"claude",b),d}},77093:(a,b,c)=>{c.d(b,{u1:()=>d});function d(a){return a instanceof Error?a.message:String(a)}},87673:(a,b,c)=>{c.d(b,{sr:()=>i});var d=c(79892),e=c(93997),f=c(94154);let g=(0,c(72626).h)("composer-clear"),h=a=>new Promise(b=>setTimeout(b,a));async function i(a,b,c={}){let j=c.capture??(a=>(0,d.Xg)(a,200)),k=c.sendClear??d.ou,l=c.delay??h,m=c.maxPasses??12,n=0,o=(0,f.ji)(await j(a),b),p="content"===o.state?o.text:"";for(;"content"===o.state&&n<m;)await k(a),n++,await l(120),o=(0,f.ji)(await j(a),b);n>0&&(0,e.gm)(a);let q="empty"===o.state||"ghost"===o.state;return q||g.warn("composer-clear:not-cleared",{sessionName:a,cliToolId:b,passes:n,state:o.state}),{cleared:q,passes:n,state:o.state,remainingText:o.text,discardedText:p}}},91536:(a,b,c)=>{c.d(b,{H7:()=>i});var d=c(61789),e=c(11472);let f={probeCaptureLines:50,shellPromptEndings:e.Bl,maxShellPromptLength:e.w9,fatalPatterns:[],fatalRegexPatterns:[]},g={aliveTailLines:12,shellPromptPatterns:e.vg,unreadableIsExited:!1},h={claude:{...f,alivePatterns:[d.hx],aliveTailLines:null,shellPromptPatterns:e.vg,unreadableIsExited:!0,fatalPatterns:d.F0,fatalRegexPatterns:d.Fw},codex:{...f,...g,alivePatterns:[d.gm,d.sB,d.Mt]},copilot:{...f,...g,alivePatterns:[d.Du,d.Ub,d.tJ,d.rb]},opencode:{...f,...g,alivePatterns:[d.vU,d.uA,d.Cc,d.LO,d.a2]},gemini:{...f,...g,alivePatterns:[d.wN,d.s0]},antigravity:{...f,...g,alivePatterns:[d.lE,d.kT,d.VF]},"command-code":{...f,...g,alivePatterns:[d.WK,d.jk,d.k0]},"opencode-v2":{...f,...g,alivePatterns:[d.wK,d.c7,d.xL]},"vibe-local":{...f,...g,alivePatterns:[d.Dj,d.b2]}};function i(a){return h[a]??h.claude}}};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";exports.id=850,exports.ids=[850,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(56365);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)},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).`}}};
|