commandmate 0.44.3 → 0.45.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.next/BUILD_ID +1 -1
- package/.next/app-build-manifest.json +266 -266
- package/.next/app-path-routes-manifest.json +18 -18
- package/.next/build-manifest.json +5 -5
- package/.next/next-server.js.nft.json +1 -1
- package/.next/prerender-manifest.json +3 -3
- package/.next/react-loadable-manifest.json +26 -26
- package/.next/required-server-files.json +1 -1
- package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/server/app/api/agents/update/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/agents/versions/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/app/release-notes/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/app/update/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/app/update-check/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/auth/login/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/auth/logout/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/auth/status/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/capabilities/route.js +1 -1
- package/.next/server/app/api/capabilities/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/daily-summary/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/daily-summary/status/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/external-apps/[id]/health/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/external-apps/[id]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/external-apps/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/fs/browse/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/fs/recent-paths/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/hooks/agent-event/route.js +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_client-reference-manifest.js +1 -1
- package/.next/server/app/api/push/subscriptions/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/push/vapid/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/relays/[relayId]/cancel/route.js +1 -1
- package/.next/server/app/api/relays/[relayId]/cancel/route.js.nft.json +1 -1
- package/.next/server/app/api/relays/[relayId]/cancel/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/relays/route.js +1 -1
- package/.next/server/app/api/relays/route.js.nft.json +1 -1
- package/.next/server/app/api/relays/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/remote/pair/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/repositories/[id]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/repositories/clone/[jobId]/route.js +1 -1
- package/.next/server/app/api/repositories/clone/[jobId]/route.js.nft.json +1 -1
- package/.next/server/app/api/repositories/clone/[jobId]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/repositories/clone/route.js +1 -1
- package/.next/server/app/api/repositories/clone/route.js.nft.json +1 -1
- package/.next/server/app/api/repositories/clone/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/repositories/excluded/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/repositories/restore/route.js +1 -1
- package/.next/server/app/api/repositories/restore/route.js.nft.json +1 -1
- package/.next/server/app/api/repositories/restore/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/repositories/route.js +1 -1
- package/.next/server/app/api/repositories/route.js.nft.json +1 -1
- package/.next/server/app/api/repositories/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/repositories/scan/route.js +1 -1
- package/.next/server/app/api/repositories/scan/route.js.nft.json +1 -1
- package/.next/server/app/api/repositories/scan/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/repositories/sync/route.js +1 -1
- package/.next/server/app/api/repositories/sync/route.js.nft.json +1 -1
- package/.next/server/app/api/repositories/sync/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/repositories/validate-path/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/settings/default-agents/route.js +1 -1
- package/.next/server/app/api/settings/default-agents/route.js.nft.json +1 -1
- package/.next/server/app/api/settings/default-agents/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/settings/default-surface-mode/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/sidebar/group-order/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/skills/[id]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/skills/installations/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/skills/operations/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/skills/reindex/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/skills/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/slash-commands/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/tasks/[taskId]/cancel/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/tasks/[taskId]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/templates/[id]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/templates/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/verification/runs/[runId]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/verification/runs/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/auto-yes/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/auto-yes/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/auto-yes/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/capture/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/capture/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/capture/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/clear-composer/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/clear-composer/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/clear-composer/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/cli-reference/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/cli-tool/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/cmate/schedules/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/current-output/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/current-output/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/current-output/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/direct-input/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/direct-input/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/direct-input/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/env/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/execution-logs/[logId]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/execution-logs/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/files/[...path]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/branch/create/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/branch/delete/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/branches/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/checkout/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/checkout/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/commit/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/diff/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/fetch/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/log/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/pull/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/push/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/reset/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/reset/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/revert/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/show/[commitHash]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/stage/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/staged/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/stash/[index]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/stash/apply/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/stash/pop/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/stash/push/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/stash/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/status/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/unstage/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/working-diff/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/instances/notes/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/instances/opencode/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/instances/opencode/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/interrupt/route.js +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 +3 -3
- package/.next/server/app/api/worktrees/[id]/marp-render/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/memos/[memoId]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/memos/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/messages/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/opencode/diff/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/opencode/session/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/opencode/share/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/prompt-response/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/prompt-response/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/prompt-response/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/resolve-target/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/respond/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/respond/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/respond/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/schedules/[scheduleId]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/schedules/active/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/schedules/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/search/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/send/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/send/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/send/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/skills/[skillId]/git-workflow/route.js +2 -2
- package/.next/server/app/api/worktrees/[id]/skills/[skillId]/git-workflow/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/skills/[skillId]/git-workflow/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/skills/[skillId]/install/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/skills/[skillId]/plan/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall-plan/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/skills/[skillId]/update/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/skills/[skillId]/update-plan/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/skills/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/slash-commands/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/special-keys/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/special-keys/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/special-keys/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/tasks/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/terminal/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/terminal/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/terminal/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/timers/history/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/timers/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/timers/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/timers/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/todos/[todoId]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/todos/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/tree/[...path]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/tree/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/upload/[...path]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/verify/config/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/verify/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/verify/runs/[runId]/cancel/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/verify/runs/[runId]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/verify/runs/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/viewed/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/apply-default-agents/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/route.js +1 -1
- package/.next/server/app/api/worktrees/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/route_client-reference-manifest.js +1 -1
- package/.next/server/app/login/page_client-reference-manifest.js +1 -1
- package/.next/server/app/manifest.webmanifest/route_client-reference-manifest.js +1 -1
- package/.next/server/app/more/page_client-reference-manifest.js +1 -1
- package/.next/server/app/offline/page_client-reference-manifest.js +1 -1
- package/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/server/app/proxy/[...path]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/repositories/page_client-reference-manifest.js +1 -1
- package/.next/server/app/review/page_client-reference-manifest.js +1 -1
- package/.next/server/app/sessions/page_client-reference-manifest.js +1 -1
- package/.next/server/app/skills/[skillId]/page_client-reference-manifest.js +1 -1
- package/.next/server/app/skills/installed/page_client-reference-manifest.js +1 -1
- package/.next/server/app/skills/page_client-reference-manifest.js +1 -1
- package/.next/server/app/worktrees/[id]/files/[...path]/page_client-reference-manifest.js +1 -1
- package/.next/server/app/worktrees/[id]/page.js +4 -4
- 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 +18 -18
- package/.next/server/chunks/1503.js +2 -2
- package/.next/server/chunks/1559.js +2 -2
- package/.next/server/chunks/1944.js +1 -1
- package/.next/server/chunks/2119.js +1 -1
- package/.next/server/chunks/22.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 -1
- package/.next/server/chunks/2710.js +2 -2
- package/.next/server/chunks/2908.js +1 -1
- package/.next/server/chunks/3241.js +1 -1
- package/.next/server/chunks/4802.js +1 -1
- package/.next/server/chunks/5048.js +1 -1
- package/.next/server/chunks/5064.js +1 -1
- package/.next/server/chunks/5292.js +7 -0
- package/.next/server/chunks/5625.js +2 -2
- package/.next/server/chunks/5737.js +1 -1
- package/.next/server/chunks/6065.js +1 -1
- package/.next/server/chunks/6130.js +1 -1
- package/.next/server/chunks/6401.js +1 -1
- package/.next/server/chunks/850.js +1 -1
- package/.next/server/chunks/8728.js +2 -2
- package/.next/server/chunks/8918.js +4 -6
- package/.next/server/chunks/9051.js +1 -1
- package/.next/server/chunks/9130.js +1 -1
- package/.next/server/chunks/9390.js +1 -1
- package/.next/server/chunks/9584.js +1 -1
- package/.next/server/chunks/9731.js +1 -1
- package/.next/server/middleware-build-manifest.js +1 -1
- package/.next/server/middleware-manifest.json +5 -5
- package/.next/server/middleware-react-loadable-manifest.js +1 -1
- package/.next/server/pages/500.html +1 -1
- package/.next/server/server-reference-manifest.json +1 -1
- package/.next/static/chunks/1464.09cd37fee202ec4b.js +1 -0
- package/.next/static/chunks/2053-390e77fce43b555c.js +1 -0
- package/.next/static/chunks/{2407-06d35bb1aa02de80.js → 2407-dd4a0f04f1349221.js} +1 -1
- package/.next/static/chunks/{2751-9ef0f4b450bd4ef0.js → 2751-5f0b2702accd164d.js} +1 -1
- package/.next/static/chunks/{282.6b6f2e31a96674dd.js → 282.a1013532fd9a61b4.js} +1 -1
- package/.next/static/chunks/3237.94c29281d9ec122e.js +1 -0
- package/.next/static/chunks/3480.2e21f62e5e9d3ba5.js +1 -0
- package/.next/static/chunks/4290.c06dbe243819fea0.js +66 -0
- package/.next/static/chunks/{5222.305dc0ebba9c0784.js → 5222.39e2034d3fce233c.js} +1 -1
- package/.next/static/chunks/{7095.8c869e553133a40e.js → 7095.87323a4fdf426341.js} +1 -1
- package/.next/static/chunks/{7485.442b21101fca7257.js → 7485.8a2a9d7c5396aa26.js} +3 -3
- package/.next/static/chunks/app/{layout-0d1750b833f5cc3e.js → layout-07d040cb3d3ea657.js} +1 -1
- package/.next/static/chunks/app/worktrees/[id]/page-35f0e31a725d1c89.js +1 -0
- package/.next/static/chunks/{webpack-021f0741f22dd16a.js → webpack-165d8df9acd1c5d4.js} +1 -1
- package/.next/trace +13 -13
- package/dist/cli/commands/skill-format.d.ts +8 -0
- package/dist/cli/commands/skill-format.d.ts.map +1 -1
- package/dist/cli/commands/skill-format.js +13 -3
- package/dist/cli/commands/wait.d.ts.map +1 -1
- package/dist/cli/commands/wait.js +71 -3
- package/dist/cli/types/api-responses.d.ts +7 -10
- package/dist/cli/types/api-responses.d.ts.map +1 -1
- package/dist/cli/utils/verify-runner.d.ts +21 -0
- package/dist/cli/utils/verify-runner.d.ts.map +1 -1
- package/dist/cli/utils/verify-runner.js +38 -1
- package/dist/server/locales/en/worktree.json +5 -1
- package/dist/server/locales/ja/worktree.json +5 -1
- package/dist/server/src/lib/detection/model-info-extractor.js +57 -3
- package/dist/server/src/lib/detection/status-detector.js +1 -1
- package/dist/server/src/lib/git/git-exec.js +23 -5
- package/dist/server/src/lib/hooks/sources/claude/self-resume.js +213 -0
- package/dist/server/src/lib/hooks/sources/claude/source.js +24 -7
- package/dist/server/src/lib/session/agent-event-dedup.js +2 -2
- package/dist/server/src/lib/session/agent-event-state.js +2 -1
- package/dist/server/src/lib/session/agent-event-turn.js +51 -0
- package/dist/server/src/lib/session/current-output-builder.js +0 -5
- package/dist/server/src/lib/skills/install-plan.js +1 -0
- package/dist/server/src/lib/skills/preview-diff.js +24 -3
- package/dist/server/src/lib/skills/uninstall-plan.js +1 -0
- package/dist/server/src/lib/verification/env-clean-gate.js +6 -5
- package/docs/en/user-guide/commands-guide.md +0 -1
- package/package.json +3 -2
- package/release-notes/0.45.0.json +41 -0
- package/scripts/hooks/cmate-agent-event.sh +20 -0
- package/.next/server/chunks/4672.js +0 -5
- package/.next/static/chunks/2053-85a974ddfe7498fe.js +0 -1
- package/.next/static/chunks/4290.6cf86f68d73b6e77.js +0 -82
- package/.next/static/chunks/4459.a94b52985a76509a.js +0 -1
- package/.next/static/chunks/5951.616956b6aa5df63f.js +0 -1
- package/.next/static/chunks/9856.15463dd58437e2ac.js +0 -1
- package/.next/static/chunks/app/worktrees/[id]/page-e36898c3a80e7302.js +0 -1
- /package/.next/static/{tWwHQzmvc-rv9KKUtDWfQ → TPWbZB3zBp3Zv_eFEOlmt}/_buildManifest.js +0 -0
- /package/.next/static/{tWwHQzmvc-rv9KKUtDWfQ → TPWbZB3zBp3Zv_eFEOlmt}/_ssgManifest.js +0 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
"use strict";exports.id=9731,exports.ids=[9731],exports.modules={8360:(a,b,c)=>{c.r(b),c.d(b,{CLIToolManager:()=>aX});var d=c(89731),e=c(8953),f=c(57905);class g extends d.Mj{navigationKeys(){return{keys:e.pU,leaderKey:null}}async isInstalled(){return await (0,f.zw)()}async isRunning(a,b){return await (0,f.Yq)(a,b)}async launchSession(a,b,c,d){await (0,f.R7)({worktreeId:a,worktreePath:b,instanceId:c,model:d})}async sendMessage(a,b,c){await (0,f.pU)(a,b,c)}supportsImage(){return!0}async sendMessageWithImage(a,b,c,d){let e=`
|
|
2
|
-
`,f=b?`${b}${e}`:e;await this.sendMessage(a,f,d)}async killSession(a,b){await (0,f.VU)(a,b)}constructor(...a){super(...a),this.id="claude",this.name="Claude Code",this.command="claude"}}var h=c(79892),i=c(40236),j=c(93997),k=c(61789),l=c(11472);let m=["skip","skip-until-next-version","update","ask"],n=Object.freeze({update:"1",skip:"2","skip-until-next-version":"3",ask:null});function o(a){if("string"!=typeof a)return null;let b=a.trim().toLowerCase();return"string"==typeof b&&m.includes(b)?b:null}c(68847);var p=c(61260);c(48800);var q=c(72626),r=c(22354),s=c(99432),t=c(1305),u=c(20610),v=c(46749),w=c(77093);let x=(0,q.h)("cli-tools/codex"),y="codex";function z(){return{screen:null,attempts:0}}class A extends d.Mj{async launchSession(a,b,c){await this.requireInstalled();let{sessionName:d,exists:e,live:f}=await this.resolveLaunchPane(a,b,c,{logger:x,liveAction:"codex-session-exists",relaunchAction:"codex-session-relaunch"});if(!f){(0,t.Fq)({worktreeId:a,cliToolId:r.c1,instanceId:c});try{let f=(0,t.wK)({target:{worktreeId:a,cliToolId:r.c1,instanceId:c},executablePath:this.command,worktreePath:b});e||await this.createLaunchPane(d,b);let g=async()=>{(0,t.Fq)({worktreeId:a,cliToolId:r.c1,instanceId:c}),await (0,h.V1)(d,(0,v.Y)(f),!0),await new Promise(a=>setTimeout(a,3e3))};await (0,h.V1)(d,(0,v.Y)(f),!0),await new Promise(a=>setTimeout(a,3e3)),await this.waitForReady(d,{relaunch:g,trustHooks:(0,s.dO)(b)}),x.info("started-codex-session")}catch(b){let a=(0,w.u1)(b);throw Error(`Failed to start Codex session: ${a}`)}}}async waitForReady(a,b){let c=b?.trustHooks??!1,d=!1,e=!1,f=z(),g=function(a){let b=o(void 0);if(null!==b)return b;let c=o(((void 0)??process.env).CM_CODEX_UPDATE_DIALOG);return null!==c?c:"skip-until-next-version"}(),i=n[g],j=!1,m=!1,q=!1,r=30;try{for(let o=0;o<r;o++){try{let s=await (0,h.Xg)(a,50),t=(0,k.aJ)(s),v=(0,k.E6)(t);if(("hooks-review"===v||"hooks-list"===v||"hooks-detail"===v)&&await this.answerCodexHooksScreen(a,v,f,c)){await new Promise(a=>setTimeout(a,u.CV));continue}if((0,k.zZ)(t))return void x.info("codex-prompt-detected");if(j&&!m&&b?.relaunch&&null!==(0,l.GE)(t,this.livenessSpec())){m=!0,r=Math.max(r,o+1+30),e=!1,f.screen=null,f.attempts=0,q&&(q=!1,(0,p.lM)(y),x.info("codex-update-lock-released",{sessionName:a})),x.info("codex-relaunched-after-update",{sessionName:a,policy:g}),await b.relaunch();continue}let w=(0,k.Qh)(t);if("update"===w){if(j=!0,null===i){await new Promise(a=>setTimeout(a,1e3));continue}if(!d){let b=i;b!==n.update||(0,p.mf)(y)?b===n.update&&(q=!0):(b=n["skip-until-next-version"],x.warn("codex-update-dialog-yielded-to-running-update",{sessionName:a,policy:g,requestedKey:i,key:b})),await (0,h.V1)(a,b,!1),d=!0,b===n.update&&(r=Math.max(r,o+1+120)),x.info("codex-update-dialog-answered",{sessionName:a,policy:g,key:b}),await new Promise(a=>setTimeout(a,u.CV));continue}}if("press-enter"===w){await (0,h.ds)(a,"Enter"),x.info("dismissed-codex-notification"),await new Promise(a=>setTimeout(a,u.CV));continue}if("trust"===w&&!e){await (0,h.V1)(a,"1",!1),e=!0,x.info("auto-trusted-folder-for-codex"),await new Promise(a=>setTimeout(a,u.CV));continue}}catch{}await new Promise(a=>setTimeout(a,1e3))}x.info("codex-prompt-detection")}finally{q&&(q=!1,(0,p.lM)(y),x.warn("codex-update-lock-released-unfinished",{sessionName:a}))}}async answerCodexHooksScreen(a,b,c,d){if(c.screen!==b&&(c.screen=b,c.attempts=0),c.attempts>=3)return x.warn("codex-hooks-screen-unresponsive",{sessionName:a,screen:b,trust:d}),!1;let e=++c.attempts;if("hooks-review"===b){let b=1===e?d?"2":"3":"1";return await (0,h.V1)(a,b,!1),x.info("codex-hooks-review-answered",{sessionName:a,key:b,attempt:e,trust:d}),!0}return d?(await (0,h.V1)(a,"t",!1,{literal:!0}),x.info("codex-hooks-screen-trusted",{sessionName:a,screen:b,attempt:e})):(await (0,h.ds)(a,"Escape"),x.info("codex-hooks-screen-escaped",{sessionName:a,screen:b,attempt:e})),!0}async waitForPrompt(a){let b=Date.now(),c=z(),d=null;for(;Date.now()-b<15e3;){try{let b=await (0,h.Xg)(a,50),e=(0,k.aJ)(b),f=(0,k.E6)(e);if("hooks-review"===f||"hooks-list"===f||"hooks-detail"===f){if(null===d){let b=await (0,h.nS)(a);d=null!==b&&(0,s.dO)(b)}await this.answerCodexHooksScreen(a,f,c,d)}else if((0,k.zZ)(e))return}catch{}await new Promise(a=>setTimeout(a,500))}throw x.info("codex-prompt-not-detected"),Error("Codex prompt not ready: timed out waiting for the input prompt before sending")}async sendMessage(a,b,c){let d=this.getSessionName(a,c);await this.requireSession("Codex",a,c,{relaunch:!0});try{await this.waitForPrompt(d),await (0,i.FW)({sessionName:d,message:b,cliToolId:"codex",composer:this.describeComposer(),awaitTypedBody:!0}),(0,j.gm)(d),x.info("sent-message-to-codex-session")}catch(b){let a=(0,w.u1)(b);throw Error(`Failed to send message to Codex: ${a}`)}}async killSession(a,b){await this.requestExitAndKill(a,b,{logger:x,stoppedAction:"stopped-codex-session",requestExit:async a=>{await (0,h.ds)(a,"C-d"),await new Promise(a=>setTimeout(a,u.Zf))}})}constructor(...a){super(...a),this.id="codex",this.name="Codex CLI",this.command="codex"}}var B=c(23365);let C=(0,q.h)("cli-tools/gemini");class D extends d.Mj{async launchSession(a,b,c){await this.requireInstalled();let{sessionName:d,exists:e,live:f}=await this.resolveLaunchPane(a,b,c,{logger:C,liveAction:"gemini-session-exists",relaunchAction:"gemini-session-relaunch"});if(!f){(0,t.Fq)({worktreeId:a,cliToolId:r.o,instanceId:c});try{e||await this.createLaunchPane(d,b);let f=(0,t.wK)({target:{worktreeId:a,cliToolId:r.o,instanceId:c},executablePath:this.command,worktreePath:b});await (0,h.V1)(d,(0,v.Y)(f),!0),await new Promise(a=>setTimeout(a,6e3)),await this.waitForReady(d),C.info("started-gemini-session")}catch(b){let a=(0,w.u1)(b);throw Error(`Failed to start Gemini session: ${a}`)}}}async waitForReady(a){let b=!1;for(let c=0;c<30;c++){try{let c=await (0,h.Xg)(a,B.H),d=(0,k.aJ)(c);if(k.wN.test(d))return void C.info("gemini-prompt-detected");!b&&d.includes("Do you trust this folder?")&&(await (0,h.ds)(a,"Enter"),b=!0,C.info("auto-trusted-folder-for-gemini"))}catch{}await new Promise(a=>setTimeout(a,1e3))}C.info("gemini-prompt-detection")}async waitForPrompt(a){let b=Date.now();for(;Date.now()-b<15e3;){try{let b=await (0,h.Xg)(a,B.H),c=(0,k.aJ)(b);if(k.wN.test(c))return}catch{}await new Promise(a=>setTimeout(a,500))}C.info("gemini-prompt-not-detected")}async sendMessage(a,b,c){let d=this.getSessionName(a,c);await this.requireSession("Gemini",a,c,{relaunch:!0});try{await this.waitForPrompt(d),await (0,i.FW)({sessionName:d,message:b,cliToolId:"gemini",composer:this.describeComposer()}),(0,j.gm)(d),C.info("sent-message-to-gemini-session")}catch(b){let a=(0,w.u1)(b);throw Error(`Failed to send message to Gemini: ${a}`)}}async killSession(a,b){await this.requestExitAndKill(a,b,{logger:C,stoppedAction:"stopped-gemini-session",requestExit:async a=>{await (0,h.ds)(a,"C-c"),await new Promise(a=>setTimeout(a,u.Is)),await (0,h.V1)(a,"/quit",!0),await new Promise(a=>setTimeout(a,u.Zf))}})}constructor(...a){super(...a),this.id="gemini",this.name="Gemini CLI",this.command="gemini"}}var E=c(15194),F=c(88807),G=c(56791);let H=(0,q.h)("cli-tools/vibe-local");class I extends d.Mj{async launchSession(a,b,c){await this.requireInstalled();let{sessionName:d,exists:e,live:f}=await this.resolveLaunchPane(a,b,c,{logger:H,liveAction:"vibe-local-session-exists",relaunchAction:"vibe-local-session-relaunch"});if(!f){(0,t.Fq)({worktreeId:a,cliToolId:this.id,instanceId:c});try{e||await this.createLaunchPane(d,b);let c="vibe-local -y";try{let b=(0,F.getDbInstance)(),d=(0,G.getWorktreeById)(b,a);d?.vibeLocalModel&&E.QP.test(d.vibeLocalModel)&&(c+=` -m ${d.vibeLocalModel}`);let e=d?.vibeLocalContextWindow;(0,E.FV)(e)&&(c+=` --context-window ${Number(e)}`)}catch{}await (0,h.V1)(d,(0,v.Y)(c),!0),await new Promise(a=>setTimeout(a,5e3)),H.info("started-vibe-local-session")}catch(b){let a=(0,w.u1)(b);throw Error(`Failed to start Vibe Local session: ${a}`)}}}async sendMessage(a,b,c){let d=this.getSessionName(a,c);await this.requireSession("Vibe Local",a,c,{relaunch:!0});try{await (0,i.FW)({sessionName:d,message:b,cliToolId:"vibe-local",composer:this.describeComposer(),interEnterWaitMs:u.PY}),(0,j.gm)(d),H.info("sent-message-to-vibe-local-session")}catch(b){let a=(0,w.u1)(b);throw Error(`Failed to send message to Vibe Local: ${a}`)}}async killSession(a,b){await this.requestExitAndKill(a,b,{logger:H,stoppedAction:"stopped-vibe-local-session",requestExit:async a=>{await (0,h.ds)(a,"C-c"),await new Promise(a=>setTimeout(a,u.Is)),await (0,h.ds)(a,"C-c"),await new Promise(a=>setTimeout(a,u.Zf))}})}constructor(...a){super(...a),this.id="vibe-local",this.name="Vibe Local",this.command="vibe-local"}}var J=c(49319),K=c(81776),L=c(56263),M=c(21758),N=c(54633),O=c(78099);let P=(0,q.h)("cli-tools/copilot"),Q=new Set(["model","agent","theme","permissions","skills","mcp","settings","statusline","subagents","resume","session"]),R=/^[>❯](?:\s|$)/,S=/^\s*\S\s+Loading:/;function T(a,b){let c=b.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),d=[RegExp(`^\\s*●\\s+Model changed from .+ to ${c}(?=\\s|$)`),RegExp(`^\\s*●\\s+Switched model to:\\s*${c}\\s*$`)],e=RegExp(`^\\s*✗\\s+Model "${c}" is \\S`),f={switched:0,rejected:[]};for(let b of(0,k.aJ)(a).split("\n"))d.some(a=>a.test(b))?f.switched++:e.test(b)&&f.rejected.push(b.trim().replace(/^✗\s+/,""));return f}function U(a){let b=(0,k.aJ)(a).split("\n");for(let a=b.length-1;a>=0;a--){let c=b[a].trim().replace(/\s{2,}/g," ");if(""!==c)return JSON.stringify(c.length>80?`${c.slice(0,80)}…`:c)}return"an empty pane"}class V extends d.Mj{async isInstalled(){return await (0,K.B0)()!==null}launchExecutable(a){return"path"===a.source?this.command:M.nL}async launchSession(a,b,c){let d=await (0,K.B0)();if(!d)throw(0,O.Tl)(this);let{sessionName:e,exists:f,live:g}=await this.resolveLaunchPane(a,b,c,{logger:P,liveAction:"copilot-session-exists",relaunchAction:"copilot-session-relaunch"});if(!g){(0,t.Fq)({worktreeId:a,cliToolId:N.V,instanceId:c});try{let g=(0,t.wK)({target:{worktreeId:a,cliToolId:N.V,instanceId:c},executablePath:this.launchExecutable(d),worktreePath:b});f||await this.createLaunchPane(e,b),await (0,h.V1)(e,(0,v.Y)(g),!0),await this.waitForReady(e),P.info("started-copilot-session",{executableSource:d.source,version:d.version})}catch(b){let a=(0,w.u1)(b);throw Error(`Failed to start Copilot session: ${a}`)}}}async answerFolderTrustDialog(a,b){return!!(0,k.Rx)(b)&&(await (0,h.V1)(a,k.oD,!1),(0,j.gm)(a),P.info("copilot-folder-trust-answered"),!0)}isComposerDrawn(a){let b=a.split("\n");for(let a=1;a<b.length-1;a++)if(R.test(b[a])&&k.A.test(b[a-1].trimEnd())&&k.A.test(b[a+1].trimEnd()))return!0;return!1}async waitForReady(a){let b=!1;for(let c=0;c<30;c++){try{let c=await (0,h.Xg)(a,50),d=(0,k.aJ)(c);if(this.isComposerDrawn(d))return void P.info("copilot-prompt-detected");!b&&await this.answerFolderTrustDialog(a,d)&&(b=!0)}catch{}await new Promise(a=>setTimeout(a,1e3))}P.info("copilot-prompt-detection-timeout")}async waitForPrompt(a,b=15e3,c="composer"){let d=Date.now(),e=!1,f="";for(;Date.now()-d<b;){try{let b=await (0,h.Xg)(a,50);if(f=(0,k.aJ)(b),this.isReadyFor(c,f))return{ready:!0,output:f};!e&&await this.answerFolderTrustDialog(a,f)&&(e=!0)}catch{}await new Promise(a=>setTimeout(a,500))}return P.info("copilot-prompt-not-detected",{until:c,bottomRow:U(f)}),{ready:!1,output:f}}isReadyFor(a,b){if(!k.Du.test(b))return!1;let c=b.split("\n");return!function(a){for(let b=a.length-1;b>=0;b--)if(""!==a[b].trim())return S.test(a[b]);return!1}(c)&&("composer"===a||"idle"===(0,k.Wn)(c))}extractSlashCommand(a){let b=a.trim();if(!b.startsWith("/"))return null;let c=b.match(/^\/(\S+)/);return c?c[1]:null}async waitForSelectionList(a){let b=Date.now();for(;Date.now()-b<5e3;){await new Promise(a=>setTimeout(a,300));try{let b=await (0,h.Xg)(a,50),c=(0,k.aJ)(b);if((0,k.gT)(c.split("\n")))return P.info("copilot-selection-list-detected"),!0}catch{}}return P.info("copilot-selection-list-not-detected-timeout"),!1}async sendMessage(a,b,c){let d=this.getSessionName(a,c);await this.requireSession("Copilot",a,c,{relaunch:!0});try{await this.waitForPrompt(d);let a=this.extractSlashCommand(b);if(a&&Q.has(a)){await (0,h.V1)(d,b,!0),await this.waitForSelectionList(d),(0,j.gm)(d),P.info("sent-selection-list-command-to-copilot",{command:a});return}await (0,i.FW)({sessionName:d,message:b,cliToolId:"copilot",composer:this.describeComposer(),textInputWaitMs:L.L1,verifyDelayMs:L.wp}),(0,j.gm)(d),P.info("sent-message-to-copilot-session")}catch(b){let a=(0,w.u1)(b);throw Error(`Failed to send message to Copilot: ${a}`)}}async sendModelCommand(a,b,c){let d=this.getSessionName(a,c);await this.requireSession("Copilot",a,c,{relaunch:!1});try{let a=await this.waitForPrompt(d,L.pL,"idle");if(!a.ready)throw Error(`copilot did not become idle within ${L.pL}ms, so /model was not sent (bottom row: ${U(a.output)})`);let c=T(a.output,b);await (0,h.V1)(d,`/model ${b}`,!0);let e=await this.waitForModelSwitchOutcome(d,b,c);if((0,j.gm)(d),"rejected"===e.kind)throw P.warn("copilot-model-rejected",{model:b,reason:e.reason}),Error(`copilot refused it: ${e.reason}`);if("pending"===e.kind)throw P.warn("copilot-model-switch-unconfirmed",{model:b,bottomRow:e.bottomRow}),Error(`copilot printed no answer to /model within ${L.pL}ms (bottom row: ${e.bottomRow}); the switch may still take effect, and nothing further was typed`);P.info("copilot-model-switched",{model:b})}catch(c){let a=(0,w.u1)(c);throw Error(`Failed to switch Copilot model to ${b}: ${a}`)}}async waitForModelSwitchOutcome(a,b,c){let d=Date.now(),e="";for(;Date.now()-d<L.pL;){await new Promise(a=>setTimeout(a,250));try{e=await (0,h.Xg)(a,50)}catch{continue}let d=function(a,b,c){let d=T(b,c);return d.rejected.length>a.rejected.length?{kind:"rejected",reason:d.rejected[d.rejected.length-1]}:d.switched>a.switched?{kind:"switched"}:{kind:"pending"}}(c,e,b);if("pending"!==d.kind)return d}return{kind:"pending",bottomRow:U(e)}}async killSession(a,b){await this.requestExitAndKill(a,b,{logger:P,stoppedAction:"stopped-copilot-session",requestExit:async a=>{await (0,h.ds)(a,"C-c"),await new Promise(a=>setTimeout(a,u.Is)),await (0,h.V1)(a,"/exit",!1),await new Promise(a=>setTimeout(a,L.L1)),await (0,h.KB)(a,["Enter"]),await new Promise(a=>setTimeout(a,u.Rk))}})}constructor(...a){super(...a),this.id="copilot",this.name="Copilot",this.command="copilot"}}var W=c(61878);let X=(0,q.h)("cli-tools/antigravity"),Y=/\?\s+for\s+shortcuts/,Z=/Do you trust the contents of this project\?/;function $(a){let b=(0,W.zJ)(a,"antigravity");if(k.kT.test(b.lastLines)||Z.test(b.lastLines))return!1;let c=function(a){let b=a.map(a=>a.trim()),c=a=>a>=0&&k.kn.test(b[a]),d=a=>{let c=a;for(;c>=0&&""===b[c];)c--;return c},e=b.length-1,f="";return(e>=0&&!c(e)&&(f=b[e],e=d(e-1)),!c(e)||(e=d(e-1))<0||!k.lE.test(b[e]))?null:c(d(e-1))?f:null}(b.contentLines);return null!==c&&(!!Y.test(c)||!(0,k.ut)("antigravity",b.lastLines))}class _ extends d.Mj{async launchSession(a,b,c,d){await this.requireInstalled();let{sessionName:e,exists:f,live:g}=await this.resolveLaunchPane(a,b,c,{logger:X,liveAction:"antigravity-session-exists",relaunchAction:"antigravity-session-relaunch"});if(!g){(0,t.Fq)({worktreeId:a,cliToolId:r.F0,instanceId:c});try{let g=(0,t.wK)({target:{worktreeId:a,cliToolId:r.F0,instanceId:c},executablePath:this.command,worktreePath:b}),i=d?`${g} --model '${d.replace(/'/g,"'\\''")}'`:g;f||await this.createLaunchPane(e,b),await (0,h.V1)(e,(0,v.Y)(i),!0),await new Promise(a=>setTimeout(a,3e3)),await this.waitForReady(e),X.info("started-antigravity-session")}catch(b){let a=(0,w.u1)(b);throw Error(`Failed to start Antigravity session: ${a}`)}}}async waitForReady(a){let b=!1;for(let c=0;c<30;c++){try{let c=await (0,h.Xg)(a,50),d=(0,k.aJ)(c);if($(d))return void X.info("antigravity-prompt-detected");if(!b&&Z.test(d)){await (0,h.ds)(a,"Enter"),b=!0,X.info("auto-trusted-folder-for-antigravity"),await new Promise(a=>setTimeout(a,500));continue}}catch{}await new Promise(a=>setTimeout(a,1e3))}X.info("antigravity-prompt-detection-timeout")}async waitForPrompt(a){let b=Date.now();for(;Date.now()-b<15e3;){try{let b=await (0,h.Xg)(a,50),c=(0,k.aJ)(b);if($(c))return}catch{}await new Promise(a=>setTimeout(a,500))}throw X.info("antigravity-prompt-not-ready"),Error("Antigravity prompt not ready: timed out waiting for the input prompt before sending")}async sendMessage(a,b,c){let d=this.getSessionName(a,c);await this.requireSession("Antigravity",a,c,{relaunch:!0});try{await this.waitForPrompt(d),await (0,i.FW)({sessionName:d,message:b,cliToolId:"antigravity",composer:this.describeComposer()}),(0,j.gm)(d),X.info("sent-message-to-antigravity-session")}catch(b){let a=(0,w.u1)(b);throw Error(`Failed to send message to Antigravity: ${a}`)}}async killSession(a,b){await this.requestExitAndKill(a,b,{logger:X,stoppedAction:"stopped-antigravity-session",requestExit:async a=>{await (0,h.ds)(a,"C-d"),await new Promise(a=>setTimeout(a,u.Zf))},afterKill:a=>{(0,j.gm)(a)}})}constructor(...a){super(...a),this.id="antigravity",this.name="Antigravity CLI",this.command="agy"}}var aa=c(28862),ab=c(35566),ac=c(2669);let ad=(0,q.h)("cli-tools/command-code"),ae=["--trust","--skip-onboarding","--no-auto-update"];function af(a){let b=a.split("\n");return!(0>(0,k.I$)(b))&&!k.k0.test((0,k.aJ)(a))}class ag extends d.Mj{navigationKeys(){return{keys:e.G2,leaderKey:null}}async launchSession(a,b,c){await this.requireInstalled();let{sessionName:d,exists:e,live:f}=await this.resolveLaunchPane(a,b,c,{logger:ad,liveAction:"command-code-session-exists",relaunchAction:"command-code-session-relaunch"});if(!f){(0,t.Fq)({worktreeId:a,cliToolId:aa.k,instanceId:c}),this.composerPendingSince.set(d,Date.now());try{var g;e||await this.createLaunchPane(d,b),await (0,h.V1)(d,(0,v.Y)((g={target:{worktreeId:a,cliToolId:aa.k,instanceId:c},executablePath:this.command,worktreePath:b},[(0,t.wK)(g),...ae].join(" "))),!0),await new Promise(a=>setTimeout(a,u.yO)),await this.waitForReady(d),ad.info("started-command-code-session")}catch(a){throw this.composerPendingSince.delete(d),Error(`Failed to start Command Code session: ${(0,w.u1)(a)}`)}}}async waitForReady(a){for(let b=0;b<30;b++){try{let b=await (0,h.Xg)(a,50);if(af(b)){this.composerPendingSince.delete(a),ad.info("command-code-prompt-detected");return}}catch{}await new Promise(a=>setTimeout(a,1e3))}ad.info("command-code-prompt-detection-timeout")}async waitForPrompt(a){let b=Date.now(),c=0;for(;Date.now()-b<15e3;){let b=!1;try{let c=await (0,h.Xg)(a,50);if(!(b=null!==(0,ab.V)(c))&&af(c))return void this.composerPendingSince.delete(a)}catch{}if((c=b?c+1:0)>=2)throw ad.info("command-code-plan-review-blocks-send",{sessionName:a}),Error('Command Code is showing a plan review (REVIEW), which takes review comments, not messages. Comment with `commandmate respond <worktree-id> "<text>"`, then `--plan-review submit` (ctrl+r), `--plan-review approve` (ctrl+a) or `--plan-review cancel` (esc).');await new Promise(a=>setTimeout(a,500))}let d=this.composerPendingSince.get(a);if(void 0!==d){let b=Date.now()-d;if(b<=12e4)throw ad.info("command-code-session-still-starting",{sessionName:a,sinceLaunchMs:b}),new ac.Sr(this.name,a,b);this.composerPendingSince.delete(a)}throw ad.info("command-code-prompt-not-ready"),Error("Command Code prompt not ready: timed out waiting for the composer before sending")}async sendMessage(a,b,c){let d=this.getSessionName(a,c);await this.requireSession("Command Code",a,c,{relaunch:!0});try{await this.waitForPrompt(d),await (0,i.FW)({sessionName:d,message:b,cliToolId:"command-code",composer:this.describeComposer()}),(0,j.gm)(d),ad.info("sent-message-to-command-code-session")}catch(a){if((0,ac.wQ)(a))throw a;throw Error(`Failed to send message to Command Code: ${(0,w.u1)(a)}`)}}async killSession(a,b){await this.requestExitAndKill(a,b,{logger:ad,stoppedAction:"stopped-command-code-session",requestExit:async a=>{await (0,h.V1)(a,"/exit",!1),await new Promise(a=>setTimeout(a,u.pL)),await (0,h.KB)(a,["Enter"]),await new Promise(a=>setTimeout(a,u.Zf))},afterKill:a=>{this.composerPendingSince.delete(a),(0,j.gm)(a)}})}constructor(...a){super(...a),this.id="command-code",this.name="Command Code CLI",this.command="commandcode",this.composerPendingSince=new Map}}var ah=c(79646),ai=c(28354),aj=c(16983),ak=c(46684),al=c(34114),am=c(62887),an=c(72272),ao=c(49154),ap=c(33294),aq=c(27870),ar=c(57510),as=c(90488),at=c(51719),au=c(83738),av=c(26945),aw=c(38892),ax=c(16100),ay=c(71193);let az=(0,q.h)("lib/hooks/sources/opencode-v2/ingest");async function aA(a,b){let[{getDbInstance:d},{getWorktreeById:e},{applyAgentStopEvent:f}]=await Promise.all([Promise.resolve().then(c.bind(c,88807)),Promise.resolve().then(c.bind(c,56791)),Promise.all([c.e(1356),c.e(6065),c.e(1191),c.e(3480),c.e(5456),c.e(2710),c.e(1501),c.e(2283),c.e(6781)]).then(c.bind(c,16781))]),g=d(),h=e(g,a.worktreeId)??null;if(!h)return void az.info("opencode-v2-stop-unresolved-target",{worktreeId:a.worktreeId});await f(g,h,ay.B,b)}async function aB(a,b,c){let d=(0,av.bH)(a),e=(0,aw.X3)(a);if(null===d||null===e)return null;let f=await (0,al.$F)(d,e,b),g=f?.find(a=>(0,ar.Qd)(a)&&a.id===c);return(0,ar.Qd)(g)?g:null}async function aC(a,b,c){let d=(0,au.hl)(b.raw,b.receivedAt);if(!d)return az.info("opencode-v2-permission-unparsed",{worktreeId:a.worktreeId,instanceId:c}),!1;let e=await (0,an.t)(ax.Wp,a,d,ax.Wp.parsePermissionRequest(b.raw));return az.info("opencode-v2-permission-decided",{worktreeId:a.worktreeId,instanceId:c,decisionId:d.id,behavior:e.behavior,reason:e.reason,delivered:e.delivered,settled:e.settled}),e.settled}async function aD(a,b,c){let d=(0,au.rk)(b.raw);if(d)return d;let e=(0,at.DH)(b.raw),f=(0,at.lx)(b.raw);if(null===e||null===f)return null;let g=await c(a,f,e);return g?(0,au.rk)(g):null}async function aE(a,b,c=aA,d=aB){let e=a.instanceId??ay.B;try{let f=(0,ap.classifyAgentEventDelivery)({worktreeId:a.worktreeId,cliToolId:ay.B,instanceId:e,event:b.event,detail:b.detail,sessionId:b.conversationId,at:b.receivedAt,identity:ax.Wp.eventIdentityOf(b.raw),identityKind:ax.Wp.capabilities.eventIdentity});if(f.duplicate)return void az.info("opencode-v2-event-duplicate-dropped",{worktreeId:a.worktreeId,instanceId:e,event:b.event,detail:b.detail,by:f.by});let g={event:b.event,at:b.receivedAt,detail:b.detail?.slice(0,am.h9)??null,sessionId:b.conversationId,message:null,model:b.model},h={sessionStartMayArriveLate:!1};if("notification"===b.event&&b.detail===at.xz){g.decisionId=(0,at.DH)(b.raw);let c=(0,au.vF)(b.raw);g.toolName=c?.toolName??(0,at.Dg)(b.raw),g.decisionPatterns=c?.patterns??null,g.message=(0,au.s8)(b.raw)?.slice(0,aq.lY)??null,g.promptSettled=await aC(a,b,e),(0,ap.recordAgentEvent)(a.worktreeId,ay.B,e,g,h)}else if("notification"===b.event&&b.detail===at.er)g.decisionId=(0,at.DH)(b.raw),g.promptSettled=!0,(0,ap.recordAgentEvent)(a.worktreeId,ay.B,e,g,h);else if("notification"===b.event&&b.detail===at.Ai){let c=await aD(a,b,d);g.message=c?.questions[0]?.question.slice(0,aq.lY)??null,(0,ap.recordAgentEvent)(a.worktreeId,ay.B,e,g,h),c&&(0,ap.recordAskUserQuestion)(a.worktreeId,ay.B,e,c,b.receivedAt),(0,ap.reportQuestionPending)(a.worktreeId,ay.B,e,{toolName:ao.GF,decisionId:(0,at.DH)(b.raw),detail:at.Ai},b.receivedAt),az.info("opencode-v2-question-recorded",{worktreeId:a.worktreeId,instanceId:e,decisionId:(0,at.DH)(b.raw),parsed:null!==c,questionCount:c?.questions.length??0}),await (0,as.Vo)(a,e,g.message,b.receivedAt)}else"stop"===b.event?(b.detail===at.dA&&(g.message=(0,at.ZL)(b.raw)?.slice(0,aq.lY)??null,az.error("opencode-v2-turn-failed",{worktreeId:a.worktreeId,instanceId:e,sessionId:b.conversationId,message:g.message})),(0,ap.recordAgentEvent)(a.worktreeId,ay.B,e,g,h),await c(a,e)):(0,ap.recordAgentEvent)(a.worktreeId,ay.B,e,g,h);az.info("opencode-v2-event-received",{worktreeId:a.worktreeId,instanceId:e,type:(0,at.Cr)(b.raw),event:b.event,detail:b.detail})}catch(c){az.error("opencode-v2-event-ingest-failed",{worktreeId:a.worktreeId,instanceId:e,event:b.event,error:c instanceof Error?c.message:String(c)})}}var aF=c(32301);let aG=(0,q.h)("lib/hooks/sources/opencode-v2/runtime"),aH=[0,500,1e3,2e3];function aI(a,b){return{worktreeId:a,cliToolId:ay.B,instanceId:b}}function aJ(a){return a instanceof Error?a.message:String(a)}async function aK(a,b){try{let c=await (0,av.ui)(a,b);if(null===c)return null;return(0,aw.OC)(a),c}catch(b){return aG.warn("opencode-v2-server-reserve-failed",{worktreeId:a.worktreeId,instanceId:a.instanceId??a.cliToolId,error:aJ(b)}),null}}async function aL(a,b){let c=(0,aw.X3)(a);return null!==c&&"healthy"===(await (0,al.tJ)(b,c)).kind}async function aM(a){try{let b=(0,av.bH)(a);if(null===b)return!1;if((0,aF.yw)(a))return!0;let c=!1;for(let d of aH)if(d>0&&await new Promise(a=>setTimeout(a,d)),await aL(a,b)){c=!0;break}if(!c)return aG.info("opencode-v2-server-not-reachable",{worktreeId:a.worktreeId,instanceId:a.instanceId??a.cliToolId,port:b}),!1;return await ax.Wp.subscribe(a,b=>{aE(a,b)}),aG.info("opencode-v2-event-stream-attached",{worktreeId:a.worktreeId,instanceId:a.instanceId??a.cliToolId,port:b}),!0}catch(b){return aG.warn("opencode-v2-event-stream-attach-failed",{worktreeId:a.worktreeId,instanceId:a.instanceId??a.cliToolId,error:aJ(b)}),!1}}async function aN(a,b){try{if((0,aF.yw)(a))return!0;let c=await (0,av.Lv)(a,b,b=>aL(a,b));if(null===c)return!1;return await aM(a)}catch(b){return aG.warn("opencode-v2-event-stream-resume-failed",{worktreeId:a.worktreeId,instanceId:a.instanceId??a.cliToolId,error:aJ(b)}),!1}}async function aO(a){try{await (0,aF.VV)(a)}catch(b){aG.warn("opencode-v2-subscription-close-failed",{worktreeId:a.worktreeId,error:aJ(b)})}try{(0,av.OZ)(a)}catch(b){aG.warn("opencode-v2-port-forget-failed",{worktreeId:a.worktreeId,error:aJ(b)})}try{(0,aw.Nc)(a)}catch(b){aG.warn("opencode-v2-password-remove-failed",{worktreeId:a.worktreeId,error:aJ(b)})}}var aP=c(93949),aQ=c(95759);let aR=(0,q.h)("cli-tools/opencode-v2"),aS=(0,ai.promisify)(ah.execFile),aT=aj.xT,aU=/^\/\S+$/,aV=[...e.qD,e.Mx,...e.TM,"a","l","m"];class aW extends d.Mj{navigationKeys(){return{keys:aV,leaderKey:e.Mx}}async isInstalled(){return null!==(await (0,aQ.Qq)()).executable}async isRunning(a,b){let c=this.getSessionName(a,b),d=await (0,h.N)(c);return d&&this.resumeInBackground(a,c,b),d}resumeInBackground(a,b,c){let d=aI(a,c);if((0,aF.yw)(d))return;let e=Date.now(),f=this.resumeAttemptedAt.get(b);void 0!==f&&e-f<3e4||(this.resumeAttemptedAt.set(b,e),(async()=>{try{let a=await (0,h.nS)(b);if(null===a)return;await aN(d,a)}catch(a){aR.debug("opencode-v2-lazy-resume-failed",{error:(0,w.u1)(a)})}})())}async launchSession(a,b,c){let d=(await (0,aQ.Qq)()).executable;if(!d)throw(0,O.Tl)(this);let e=this.getSessionName(a,c),f=aI(a,c),g={windowWidth:(0,ak.r)({warnSidebar:!1}),windowHeight:aj.xT},i=await (0,h.N)(e);if(i){if(await this.reconcileExistingSession(e,b,g),await this.isToolLive(e,{confirm:!0})){await aN(f,b),aR.info("opencode-v2-session-exists");return}aR.warn("opencode-v2-session-relaunch",{sessionName:e}),await aO(f)}(0,t.Fq)(f);try{i||await this.createLaunchPane(e,b);try{await aS("tmux",["resize-window","-t",(0,h.lA)(e),"-x",String(g.windowWidth),"-y",String(g.windowHeight)])}catch{}let j=await aK(f,b);null===j&&aR.warn("opencode-v2-launch-without-server",{worktreeId:a,instanceId:c}),await (0,h.V1)(e,(0,v.Y)((0,t.wK)({target:f,executablePath:d.path,worktreePath:b})),!0),await this.waitForReady(e),await aM(f),aR.info("started-opencode-v2-session")}catch(a){throw Error(`Failed to start OpenCode V2 session: ${(0,w.u1)(a)}`)}}async waitForReady(a){for(let b=0;b<60;b++){try{let c=(0,k.aJ)(await (0,h.Xg)(a,aT));if((0,k.Ok)(c))return aR.info("opencode-v2-composer-detected",{attempt:b}),!0}catch{}await new Promise(a=>setTimeout(a,500))}return aR.info("opencode-v2-ready-detection-timeout"),!1}async waitForComposer(a){let b=Date.now()+u.D1;for(;;){let c=null;try{let b=(0,k.aJ)(await (0,h.Xg)(a,aT));if(c=(0,k.dF)(b),null===c&&(0,k.Ok)(b))return}catch{}if(null!==c)throw Error(`OpenCode V2 composer not available: the "${c}" dialog is open. Close it (esc) or finish the choice, then send again`);if(Date.now()>=b)break;await new Promise(a=>setTimeout(a,500))}throw Error("OpenCode V2 composer not ready: timed out waiting for it before sending")}async sendMessage(a,b,c){let d=this.getSessionName(a,c);await this.requireSession("OpenCode V2",a,c,{relaunch:!0});try{await this.waitForComposer(d),await (0,i.FW)({sessionName:d,message:aU.test(b)?`${b} `:b,cliToolId:ay.B,composer:this.describeComposer()}),(0,j.gm)(d),aR.info("sent-message-to-opencode-v2-session")}catch(a){throw Error(`Failed to send message to OpenCode V2: ${(0,w.u1)(a)}`)}}async killSession(a,b){let c=this.getSessionName(a,b),d=aI(a,b),e=(0,av.bH)(d);try{if(await (0,h.N)(c)){await (0,h.V1)(c,aP.M0,!1),await new Promise(a=>setTimeout(a,u.pL)),await (0,h.KB)(c,["Enter"]),await new Promise(a=>setTimeout(a,u.Lw));let a=await (0,aP.rY)({sessionAlive:()=>(0,h.N)(c),portAnswering:null===e?null:async()=>"unreachable"!==(await (0,al.tJ)(e,"")).kind});a.ok||(aR.info("opencode-v2-graceful-exit-postcondition-unmet",{sessionName:c,reason:a.reason,...null!==e?{port:e}:{}}),await (0,h.fY)(c))}else await (0,h.fY)(c);(0,j.gm)(c),this.resumeAttemptedAt.delete(c),aR.info("stopped-opencode-v2-session")}catch(a){throw aR.error("session:stop-failed",{error:(0,w.u1)(a)}),a}finally{await aO(d)}}constructor(...a){super(...a),this.id=ay.B,this.name="OpenCode V2",this.command=ay.V,this.resumeAttemptedAt=new Map}}class aX{constructor(){this.tools=new Map,this.tools.set("claude",new g),this.tools.set("codex",new A),this.tools.set("gemini",new D),this.tools.set("vibe-local",new I),this.tools.set("opencode",new J.Ui),this.tools.set("copilot",new V),this.tools.set("antigravity",new _),this.tools.set("command-code",new ag),this.tools.set("opencode-v2",new aW)}static getInstance(){return aX.instance||(aX.instance=new aX),aX.instance}getTool(a){let b=this.tools.get(a);if(!b)throw Error(`CLI tool '${a}' not found`);return b}getAllTools(){return Array.from(this.tools.values())}async getToolInfo(a){let b=this.getTool(a),c=await b.isInstalled();return{id:b.id,name:b.name,command:b.command,installed:c}}async getAllToolsInfo(){return Promise.all(this.getAllTools().map(async a=>{let b=await a.isInstalled();return{id:a.id,name:a.name,command:a.command,installed:b}}))}async getInstalledTools(){return(await this.getAllToolsInfo()).filter(a=>a.installed)}async stopPollers(a,b,d){let{stopPolling:e}=await Promise.all([c.e(1356),c.e(1503),c.e(1634),c.e(1191),c.e(1719),c.e(2119),c.e(2445),c.e(3480),c.e(8728),c.e(8918),c.e(5595),c.e(611),c.e(5625),c.e(5220)]).then(c.bind(c,95220));e(a,b,d)}}},17287:(a,b,c)=>{c.d(b,{CD:()=>g,nL:()=>f});var d=c(24455);let e=(0,c(36925).v)("__permissionDecisions",()=>new Map);function f(a,b,c,f){e.set((0,d.v7)(a,b,c),f)}function g(a,b,c){return e.get((0,d.v7)(a,b,c))??null}},23365:(a,b,c)=>{c.d(b,{H:()=>g,y:()=>h});var d=c(16983),e=c(34405),f=c(15194);let g=200;function h(a){var b;return{statusLines:"opencode"===(b=a)?d.xT:"gemini"===b?g:e.G,usesAlternateScreen:(0,f.VA)(a)}}},29169:(a,b,c)=>{c.d(b,{yt:()=>n,tH:()=>o,f_:()=>B,sl:()=>m,a9:()=>k,Dk:()=>A,uG:()=>y});var d=c(51297);let e=/\btype\s+to\s+search\b|\bsearch\s+\w+\s*(?:…|\.\.\.)|(?:^|·)\s*\/\s+search\b/im,f=/^\s*(?:❯ +)?Approve\s+ctrl\+a\b[^\n]*\n\s*(?:❯ +)?Cancel\s+esc\s*$/im,g=/\benter\s+to\s+select\b\s*[·•]\s*esc\s+to\s+cancel\b/i,h=/^\s*(?:press|hit|type)?\s*(?:<)?esc(?:ape)?(?:>)?\s+to\s+(?:close|dismiss|exit)\b[\s.·•]*$/im,i=/^\s*Approve\s+\([• ]\)\s+with\s+\d+\s+comments?\s+as\s+notes\s+\([• ]\)\s+original\s+plan\b/im,j=/(?:^|\n)[ \t]*←\/→\s+choose\s*·\s*enter\s+confirm\s*·\s*esc\s+back\s*$/i;function k(a){return i.test(a)&&j.test(a)}function l(a,b){return a.split("\n").filter(a=>""!==a.trim()).slice(-b).join("\n")}function m(a){return g.test(l(a,1))}function n(a){return h.test(l(a,1))}function o(a){return f.test(l(a,5))}let p=/^\u2500+$/,q="●◉⦿",r=RegExp(`^\\s*([${q}◯○◌⚪✔])\\s+\\S`);function s(a){let b=a.split("|");if(b.length<2)return!1;let c=0,d=0;for(let a of b){let b=r.exec(a);if(null===b)return!1;q.includes(b[1])?c+=1:d+=1}return c>0&&d>0}let t=/\besc\s+to\s+interrupt\b|^[^\S\n]*✻[^\S\n]+\S/im,u=/^[^\S\n]*(?:\u276F[^\S\n]*)?1[.)][^\S\n]+Submit[^\S\n]*$/im,v=/^[^\S\n]*(?:\u276F[^\S\n]*)?2[.)][^\S\n]+Cancel[^\S\n]*$/im,w=/^[^\S\n]*\u2190[^\S\n]+to[^\S\n]+go[^\S\n]+back[^\S\n]+and[^\S\n]+edit[^\S\n]*$/im,x=/have\s+not\s+answered\s+all\s+questions/i;function y(a){if(!a)return null;let b=a.replace(/\r\n/g,"\n").split("\n").map(d.aJ),c=b.length-1;for(;c>=0&&""===b[c].trim();)c-=1;if(c<1)return null;let e=-1;for(let a=c-1;a>=0;a-=1){let c=b[a].trim();if(!(c.length<40)&&p.test(c)){e=a;break}}if(e<0)return null;let f=b.slice(e+1,c+1),g=f.findIndex(a=>""!==a.trim());if(g<0||!s(f[g]))return null;let h=f.join("\n");if(!u.test(h)||!v.test(h)||!w.test(h))return null;let i=f.find(a=>u.test(a));return{hasUnansweredWarning:x.test(h),cursorOnSubmit:void 0!==i&&i.includes("❯")}}let z=/^[^0-9A-Za-z]*([1-9])[.)]\s+\S/;function A(a){let b=C(a);return null!==b&&b.numbers.every((a,b)=>a===b+1)&&1===b.cursorCount?{ruleLineIndex:b.ruleLineIndex,firstLineIndex:b.firstLineIndex,lastLineIndex:b.lastLineIndex,tabLineIndex:b.tabLineIndex,cursorLineIndex:b.cursorLineIndex,cursorOnOptionRow:b.cursorOnOptionRow,optionCount:b.numbers.length}:null}function B(a){return null!==C(a)}function C(a){if(!a)return null;let b=a.replace(/\r\n/g,"\n").split("\n").map(d.aJ),c=b.length-1;for(;c>=0&&""===b[c].trim();)c-=1;if(c<1)return null;let f=-1;for(let a=c-1;a>=0;a-=1){let c=b[a].trim();if(!(c.length<40)&&p.test(c)){f=a;break}}if(f<0)return null;let i=b.slice(f+1,c+1),j=i.join("\n");if(e.test(j)||g.test(j)||h.test(j)||t.test(j))return null;let k=i.findIndex(a=>""!==a.trim());if(k<0||!s(i[k]))return null;let l=[],m=-1;for(let a=k+1;a<i.length;a+=1){let b=z.exec(i[a]);null!==b&&(m<0&&(m=a),l.push(Number(b[1])))}if(l.length<2||!i.slice(k+1,m).some(a=>""!==a.trim()))return null;let n=0,o=-1,q=!1;for(let a=0;a<i.length;a+=1){let b=i[a].split("❯").length-1;0!==b&&(n+=b,o=a,q=z.test(i[a]))}return 0===n?null:{ruleLineIndex:f,firstLineIndex:f+1,lastLineIndex:c,tabLineIndex:f+1+k,numbers:l,cursorCount:n,cursorLineIndex:f+1+o,cursorOnOptionRow:q}}},34405:(a,b,c)=>{c.d(b,{G:()=>e,_:()=>d});let d=1e4,e=1e3},35566:(a,b,c)=>{c.d(b,{V:()=>l});var d=c(51297),e=c(29169);let f=/^\s*type \+ enter to comment\b/i,g=/^\s*enter to pin\s*·\s*esc discard\s*$/i,h=/^\s*↑\/↓ choose\s*·\s*enter to run\s*$/i,i=/^\s*❯ +(?:Submit review\b|Approve\s+ctrl\+a\b|Cancel\s+esc\b)/im,j=/^\s*REVIEW\s+(\d+)\s+pending comments?\b/im,k=/\(•\)\s+with\s+\d+\s+comments?\s+as\s+notes/i;function l(a){if(!a)return null;let b=(0,d.aJ)(a.replace(/\r\n/g,"\n")).split("\n").filter(a=>""!==a.trim()).slice(-15);if(0===b.length)return null;let c=b.join("\n"),l=j.exec(c),m=l?Number(l[1]):0;if((0,e.a9)(c))return{phase:"approve-choice",pendingComments:m,approveChoice:k.test(c)?"with-comments":"discard-comments"};if(!(0,e.tH)(c))return null;let n=b[b.length-1],o="unknown";return i.test(c)||h.test(n)?o="action-focus":g.test(n)?o="comment-box":f.test(n)&&(o="body"),{phase:o,pendingComments:m,approveChoice:null}}},39333:(a,b,c)=>{c.d(b,{$Y:()=>h,Bg:()=>j,Fg:()=>e,HB:()=>g,df:()=>i,f9:()=>d});let d=[".png",".jpg",".jpeg",".gif",".webp",".svg"],e=0x1400000,f=[{extension:".png",mimeType:"image/png",magicBytes:[137,80,78,71]},{extension:".jpg",mimeType:"image/jpeg",magicBytes:[255,216,255]},{extension:".jpeg",mimeType:"image/jpeg",magicBytes:[255,216,255]},{extension:".gif",mimeType:"image/gif",magicBytes:[71,73,70,56]},{extension:".webp",mimeType:"image/webp",magicBytes:[82,73,70,70]},{extension:".svg",mimeType:"image/svg+xml"}];function g(a){return a?a.startsWith(".")?a.toLowerCase():"."+a.toLowerCase():""}function h(a){let b=g(a),c=f.find(a=>a.extension===b);return c?.mimeType||"application/octet-stream"}function i(a){if(!a)return!1;let b=g(a);return d.includes(b)}function j(a,b){if(b.length>e)return{valid:!1,error:`File size exceeds ${e/1024/1024}MB limit`,reason:"too-large"};if(".svg"===g(a)){var c;return(c=b.toString("utf-8")).includes("<svg")||c.startsWith("<?xml")?/<script[\s>]/i.test(c)?{valid:!1,error:"SVG contains script tags"}:/\s+on\w+\s*=/i.test(c)?{valid:!1,error:"SVG contains event handler attributes"}:/(?:xlink:)?href\s*=\s*["']?\s*(?:javascript|data|vbscript):/i.test(c)?{valid:!1,error:"SVG contains dangerous URI scheme"}:/<foreignObject[\s>]/i.test(c)?{valid:!1,error:"SVG contains foreignObject element"}:{valid:!0}:{valid:!1,error:"Invalid SVG format"}}return!function(a,b){let c=g(a),d=f.find(a=>a.extension===c);if(!d?.magicBytes)return".svg"===c;let e=d.magicBytesOffset||0;return!(b.length<e+d.magicBytes.length)&&d.magicBytes.every((a,c)=>b[e+c]===a)}(a,b)?{valid:!1,error:"Invalid image magic bytes"}:{valid:!0}}d.filter(a=>".svg"!==a).map(a=>h(a)).filter(a=>"application/octet-stream"!==a).join(",")},46684:(a,b,c)=>{c.d(b,{r:()=>f});var d=c(16983);let e=(0,c(72626).h)("cli-tools/opencode-pane-width");function f(a){let b=process.env[d.ao],c=(0,d._u)(),f=b?.trim(),g=void 0!==f&&(!/^\d+$/.test(f)||Number.parseInt(f,10)!==c);return void 0!==b&&g?e.warn("opencode-pane-width-rejected",{requested:b,applied:c}):a.warnSidebar&&c>=d.Lg&&e.warn("opencode-pane-width-sidebar-visible",{width:c,sidebarMinWidth:d.Lg}),c}},47967:(a,b,c)=>{c.d(b,{Z:()=>h,u:()=>i});var d=c(70605);let e=/ctrl\+[tp]\b/,f=/^\s*╹▀+/,g=/^\s*[┃│]/,h={locate({contentLines:a}){let b=(0,d.Sx)(a),c=-1;for(let d=b;d>=Math.max(0,b-4);d--)if(e.test(a[d])){c=d;break}if(c<0)return null;let h=-1;for(let b=c-1;b>=Math.max(0,c-3);b--)if(f.test(a[b])){h=b;break}if(h<0)return null;let i=h;for(;i-1>=0&&g.test(a[i-1]);)i--;return{start:i,end:b,atBottom:!0}}};function i(a){return{locate({contentLines:b}){let c=(0,d.Sx)(b);for(let d=c;d>=Math.max(0,c-60);d--)if(g.test(b[d])&&a.test(b[d]))return{start:d};return null}}}},49319:(a,b,c)=>{c.d(b,{Ui:()=>az,TZ:()=>ay});var d=c(89731),e=c(8953),f=c(79892),g=c(61789),h=c(40236),i=c(93997),j=c(29021),k=c(21820),l=c(33873),m=c(8004),n=c(72626);let o=(0,n.h)("cli-tools/opencode-config"),p=/^[a-zA-Z0-9._:/-]{1,100}$/,q=/^[a-zA-Z0-9._:/@-]{1,200}$/,r="CM_OPENCODE_LOCAL_PROVIDER_CONFIG",s="OPENCODE_CONFIG",t=["opencode.json","opencode.jsonc",l.join(".opencode","opencode.json"),l.join(".opencode","opencode.jsonc")],u=["opencode.json","opencode.jsonc"];async function v(){let a={};try{let b=new AbortController,c=setTimeout(()=>b.abort(),3e3),d=await fetch("http://localhost:11434/api/tags",{signal:b.signal}).finally(()=>{clearTimeout(c)});if(!d.ok)return o.warn("ollama-api-returned"),{};let e=await d.text();if(e.length>1048576)return o.warn("ollama-api-response"),{};let f=JSON.parse(e);if(!f||!Array.isArray(f.models))return o.warn("invalid-ollama-api"),{};for(let b of f.models.slice(0,100))"string"==typeof b?.name&&p.test(b.name)&&(a[b.name]={name:function(a){let b=String(a.name),c=a.details;if(!c)return b;let d=[b];return"string"==typeof c.parameter_size&&/^[\d.]+[BKMGT]?B?$/i.test(c.parameter_size)&&d.push(c.parameter_size),"string"==typeof c.quantization_level&&/^[A-Z0-9_]{1,20}$/i.test(c.quantization_level)&&d.push(c.quantization_level),d.length>1?`${b} (${d.slice(1).join(", ")})`:b}(b)})}catch(a){a instanceof Error&&"AbortError"===a.name?o.warn("ollama-api-timeout"):o.warn("failed-to-fetch")}return a}async function w(){let a={};try{let b=new AbortController,c=setTimeout(()=>b.abort(),3e3),d=await fetch("http://localhost:1234/v1/models",{signal:b.signal}).finally(()=>{clearTimeout(c)});if(!d.ok)return o.warn("lm-studio-api"),{};let e=await d.text();if(e.length>1048576)return o.warn("lm-studio-api"),{};let f=JSON.parse(e);if(!f||!Array.isArray(f.data))return o.warn("invalid-lm-studio"),{};for(let b of f.data.slice(0,100))"string"==typeof b?.id&&q.test(b.id)&&(a[b.id]={name:b.id})}catch(a){a instanceof Error&&"AbortError"===a.name?o.warn("lm-studio-api"):o.warn("failed-to-fetch")}return a}function x(a=process.env){let b=l.join(k.homedir(),".config");return l.join((0,m.T)(a.XDG_CONFIG_HOME,b,"XDG_CONFIG_HOME"),"opencode")}async function y(){let[a,b]=await Promise.all([v(),w()]),c={};return Object.keys(a).length>0&&(c.ollama={npm:"@ai-sdk/openai-compatible",name:"Ollama (local)",options:{baseURL:"http://localhost:11434/v1"},models:a}),Object.keys(b).length>0&&(c.lmstudio={npm:"@ai-sdk/openai-compatible",name:"LM Studio (local)",options:{baseURL:"http://localhost:1234/v1"},models:b}),c}async function z(a){let b=function(a=process.env){let b=(a[r]??"").trim().toLowerCase();return"worktree"===b||"project"===b?"worktree":"global"===b||"user"===b?"global":(""!==b&&"off"!==b&&"0"!==b&&"false"!==b&&"none"!==b&&o.warn("opencode-config-mode-unrecognised",{variable:r,value:b}),"off")}();if("off"===b)return{written:!1,configPath:null,reason:"disabled"};let c="worktree"===b?function(a){let b=l.resolve(a);try{if(!j.lstatSync(b).isDirectory())throw Error(`Path is not a directory: ${b}`)}catch(a){if("ENOENT"===a.code)throw Error(`Path does not exist: ${b}`);throw a}return j.realpathSync(b)}(a):null,d=function(a,b=process.env){if(""!==(b[s]??"").trim())return`env:${s}`;if(null!==a)for(let b of t){let c=l.join(a,b);if(j.existsSync(c))return c}let c=x(b);for(let a of u){let b=l.join(c,a);if(j.existsSync(b))return b}return null}(c);if(null!==d)return o.info("opencode-config-generation-skipped",{mode:b,owned:d}),{written:!1,configPath:null,reason:"existing-config"};let e=c??x(),f=l.join(e,"opencode.json"),g=await y();if(0===Object.keys(g).length)return{written:!1,configPath:null,reason:"no-providers"};try{"global"===b&&j.mkdirSync(e,{recursive:!0}),j.writeFileSync(f,JSON.stringify({$schema:"https://opencode.ai/config.json",provider:g},null,2),{encoding:"utf-8",flag:"wx"})}catch(a){if("EEXIST"===a.code)return{written:!1,configPath:null,reason:"existing-config"};return o.warn("failed-to-write-opencodejson:error-insta"),{written:!1,configPath:null,reason:"write-failed"}}return o.info("opencode-config-generated",{mode:b,configPath:f}),{written:!0,configPath:f,reason:"written"}}var A=c(16983),B=c(46684),C=c(79646),D=c(28354),E=c(39333),F=c(1305),G=c(49791),H=c(62887),I=c(72272),J=c(49154),K=c(33294),L=c(27870),M=c(57510),N=c(56365),O=c(75356),P=c(98211),Q=c(90488),R=c(85322);let S=(0,n.h)("lib/hooks/sources/opencode/ingest");async function T(a,b,c){let d=(0,N.VM)(R.k),e=(0,P.Lu)(b.raw,b.receivedAt);if(!e)return S.info("opencode-permission-unparsed",{worktreeId:a.worktreeId,instanceId:c}),!1;let f=await (0,I.t)(d,a,e,d.parsePermissionRequest(b.raw));return S.info("opencode-permission-decided",{worktreeId:a.worktreeId,instanceId:c,decisionId:e.id,behavior:f.behavior,reason:f.reason,delivered:f.delivered,settled:f.settled}),f.settled}async function U(a,b){let[{getDbInstance:d},{getWorktreeById:e},{applyAgentStopEvent:f}]=await Promise.all([Promise.resolve().then(c.bind(c,88807)),Promise.resolve().then(c.bind(c,56791)),Promise.all([c.e(1356),c.e(6065),c.e(1191),c.e(3480),c.e(5456),c.e(2710),c.e(1501),c.e(2283),c.e(6781)]).then(c.bind(c,16781))]),g=d(),h=e(g,a.worktreeId)??null;if(!h)return void S.info("opencode-stop-unresolved-target",{worktreeId:a.worktreeId});let i=await f(g,h,R.k,b);S.info("opencode-stop-applied",{worktreeId:a.worktreeId,instanceId:b,taskId:i.taskId,taskEventApplied:i.taskEventApplied,verificationRunId:i.verificationRunId})}async function V(a,b){let c=a.instanceId??R.k;try{let d=(0,N.VM)(R.k),e=(0,K.classifyAgentEventDelivery)({worktreeId:a.worktreeId,cliToolId:R.k,instanceId:c,event:b.event,detail:b.detail,sessionId:b.conversationId,at:b.receivedAt,identity:d.eventIdentityOf(b.raw),identityKind:d.capabilities.eventIdentity});if(e.duplicate)return void S.info("opencode-event-duplicate-dropped",{worktreeId:a.worktreeId,instanceId:c,event:b.event,detail:b.detail,by:e.by});let f={event:b.event,at:b.receivedAt,detail:b.detail?.slice(0,H.h9)??null,sessionId:b.conversationId,message:(function(a){let b=(0,M.Qd)(a.raw.properties)?a.raw.properties:{};if(a.detail===O.aF)return(0,M.NZ)(b,["metadata","command"])??(0,M.O2)(b,"permission");if(a.detail===O.Tm){let a=b.questions;return Array.isArray(a)&&(0,M.Qd)(a[0])?(0,M.O2)(a[0],"question"):null}return a.detail===O.vE?(0,M.NZ)(b,["error","data","message"])??(0,M.NZ)(b,["error","name"]):null})(b)?.slice(0,L.lY)??null,model:b.model},g={sessionStartMayArriveLate:d.capabilities.sessionStartMayArriveLate};if("notification"===b.event&&b.detail===O.aF){f.decisionId=(0,M.O2)((0,M.Qd)(b.raw.properties)?b.raw.properties:{},"id");let d=(0,P.LF)(b.raw,b.receivedAt);f.toolName=d?.toolName??null,f.decisionPatterns=d?.patterns??null,f.promptSettled=await T(a,b,c),(0,K.recordAgentEvent)(a.worktreeId,R.k,c,f,g);return}if("notification"===b.event&&b.detail===O.C8){f.decisionId=(0,O.Mn)(b.raw),f.promptSettled=!!(0,N.VM)(R.k).capabilities.permissionReplyReleasesPrompt||(S.info("opencode-permission-reply-not-releasing",{worktreeId:a.worktreeId,instanceId:c,reason:"capability-permissionReplyReleasesPrompt-false"}),!1),(0,K.recordAgentEvent)(a.worktreeId,R.k,c,f,g),S.info("opencode-permission-reply-observed",{worktreeId:a.worktreeId,instanceId:c,decisionId:f.decisionId,released:f.promptSettled});return}if((0,K.recordAgentEvent)(a.worktreeId,R.k,c,f,g),"notification"===b.event&&b.detail===O.Tm){let d=(0,N.VM)(R.k).parseQuestion(b.raw);d&&((0,K.recordAskUserQuestion)(a.worktreeId,R.k,c,d,b.receivedAt),(0,K.reportQuestionPending)(a.worktreeId,R.k,c,{toolName:J.GF,decisionId:d.promptId,detail:O.Tm},b.receivedAt),S.info("opencode-question-recorded",{worktreeId:a.worktreeId,instanceId:c,decisionId:d.promptId,questionCount:d.questions.length,optionCounts:d.questions.map(a=>a.choices.length)})),await (0,Q.Vo)(a,c,f.message??null,b.receivedAt);return}if("stop"===b.event)return void await U(a,c);"notification"===b.event&&b.detail===O.vE&&await (0,Q.dJ)(a,c,(0,M.NZ)((0,M.Qd)(b.raw.properties)?b.raw.properties:{},["error","name"]),f.message??null,b.conversationId,b.receivedAt),S.info("opencode-event-received",{worktreeId:a.worktreeId,instanceId:c,event:b.event,detail:b.detail})}catch(d){S.error("opencode-event-ingest-failed",{worktreeId:a.worktreeId,instanceId:c,event:b.event,error:d instanceof Error?d.message:String(d)})}}var W=c(84574),X=c(85965),Y=c(33198);let Z=(0,n.h)("lib/hooks/sources/opencode/runtime");function $(a,b){return{worktreeId:a,cliToolId:"opencode",instanceId:b}}async function _(a,b){try{return await (0,W.CU)(a,b)}catch(b){return Z.warn("opencode-port-reserve-failed",{worktreeId:a.worktreeId,error:b instanceof Error?b.message:String(b)}),null}}let aa=[0,500,1e3,2e3,4e3];async function ab(a,b){for(let[c,d]of aa.entries()){d>0&&await new Promise(a=>setTimeout(a,d));let e=await (0,G.sc)(b);if("healthy"===e.kind)return c>0&&Z.info("opencode-server-reachable-after-retry",{worktreeId:a.worktreeId,instanceId:a.instanceId??a.cliToolId,port:b,attempt:c}),e.health;if("rejected"===e.kind){Z.warn("opencode-server-refused-commandmate",{worktreeId:a.worktreeId,instanceId:a.instanceId??a.cliToolId,port:b,status:e.status,consequence:"structured events are off for this session; the scraper decides"});break}}return null}async function ac(a){try{let b=(0,W.hC)(a);if(null===b)return!1;if((0,Y.wb)(a))return!0;let c=await ab(a,b);if(!c)return Z.info("opencode-server-not-reachable",{worktreeId:a.worktreeId,instanceId:a.instanceId??a.cliToolId,port:b,attempts:aa.length}),!1;await X.cC.subscribe(a,b=>{V(a,b)});let d=await ad(a);return Z.info("opencode-event-stream-attached",{worktreeId:a.worktreeId,instanceId:a.instanceId??a.cliToolId,port:b,version:c.version,activity:d}),!0}catch(b){return Z.warn("opencode-event-stream-attach-failed",{worktreeId:a.worktreeId,error:b instanceof Error?b.message:String(b)}),!1}}async function ad(a){let b=null;try{b=await X.cC.probeActivity(a)}catch(b){Z.debug("opencode-activity-probe-failed",{worktreeId:a.worktreeId,instanceId:a.instanceId??a.cliToolId,error:b instanceof Error?b.message:String(b)})}return(0,Y.yn)(a,b,Date.now()),b}async function ae(a,b){try{if((0,Y.wb)(a))return!0;let c=await (0,W.jp)(a,b);if(null===c)return!1;return await ac(a)}catch(b){return Z.warn("opencode-event-stream-resume-failed",{worktreeId:a.worktreeId,error:b instanceof Error?b.message:String(b)}),!1}}async function af(a){let b=a.instanceId??a.cliToolId;try{let c=(0,W.hC)(a);if(null===c)return!1;let d=(0,Y.lf)(a);if("live"!==d.state)return Z.info("opencode-abort-skipped-not-live",{worktreeId:a.worktreeId,instanceId:b,port:c,liveness:d.state}),!1;let e=(0,Y.ym)(a);if(null===e)return Z.info("opencode-abort-skipped-no-session",{worktreeId:a.worktreeId,instanceId:b,port:c}),!1;let f=(0,Y.H1)(a,e,2e3);if(!await (0,G.UR)(c,e))return f.cancel(),Z.warn("opencode-abort-rejected",{worktreeId:a.worktreeId,instanceId:b,port:c,sessionId:e}),!1;if(!await f.seen)return Z.warn("opencode-abort-unconfirmed",{worktreeId:a.worktreeId,instanceId:b,port:c,sessionId:e,timeoutMs:2e3}),!1;return Z.info("opencode-abort-confirmed",{worktreeId:a.worktreeId,instanceId:b,port:c,sessionId:e}),!0}catch(c){return Z.warn("opencode-abort-failed",{worktreeId:a.worktreeId,instanceId:b,error:c instanceof Error?c.message:String(c)}),!1}}async function ag(a){try{await (0,Y.FN)(a),(0,W.kE)(a)}catch(b){Z.warn("opencode-event-stream-release-failed",{worktreeId:a.worktreeId,error:b instanceof Error?b.message:String(b)})}}var ah=c(18529),ai=c(70849),aj=c(27939),ak=c(93949),al=c(20610),am=c(78099),an=c(95759),ao=c(79748);let ap=/^timestamp=(\S+)/,aq=/no such column: ?[A-Za-z0-9_.]*/;async function ar(a,b){let c;try{c=await (0,ao.open)(a,"r");let{size:d}=await c.stat(),e=Math.min(d,b),f=d-e,g=Buffer.alloc(e);await c.read(g,0,e,f);let h=g.toString("utf8");return f>0&&(h=h.slice(h.indexOf("\n")+1)),h}catch{return null}finally{await c?.close().catch(()=>{})}}async function as(a,b=function(){let a=process.env.XDG_DATA_HOME||(0,l.join)((0,k.homedir)(),".local","share");return(0,l.join)(a,"opencode","log","opencode.log")}()){let c=await ar(b,262144);if(null===c)return null;let d=a-1e3;for(let a of c.split("\n")){let b=ap.exec(a);if(!b)continue;let c=Date.parse(b[1]);if(Number.isNaN(c)||c<d)continue;let e=aq.exec(a);if(e)return e[0]}return null}var at=c(46749),au=c(77093);let av=(0,n.h)("cli-tools/opencode"),aw=(0,D.promisify)(C.execFile),ax=[0,50,100,200];function ay(a,b){return a?`${a}
|
|
2
|
+
`,f=b?`${b}${e}`:e;await this.sendMessage(a,f,d)}async killSession(a,b){await (0,f.VU)(a,b)}constructor(...a){super(...a),this.id="claude",this.name="Claude Code",this.command="claude"}}var h=c(79892),i=c(40236),j=c(93997),k=c(61789),l=c(11472);let m=["skip","skip-until-next-version","update","ask"],n=Object.freeze({update:"1",skip:"2","skip-until-next-version":"3",ask:null});function o(a){if("string"!=typeof a)return null;let b=a.trim().toLowerCase();return"string"==typeof b&&m.includes(b)?b:null}c(68847);var p=c(61260);c(48800);var q=c(72626),r=c(22354),s=c(99432),t=c(1305),u=c(20610),v=c(46749),w=c(77093);let x=(0,q.h)("cli-tools/codex"),y="codex";function z(){return{screen:null,attempts:0}}class A extends d.Mj{async launchSession(a,b,c){await this.requireInstalled();let{sessionName:d,exists:e,live:f}=await this.resolveLaunchPane(a,b,c,{logger:x,liveAction:"codex-session-exists",relaunchAction:"codex-session-relaunch"});if(!f){(0,t.Fq)({worktreeId:a,cliToolId:r.c1,instanceId:c});try{let f=(0,t.wK)({target:{worktreeId:a,cliToolId:r.c1,instanceId:c},executablePath:this.command,worktreePath:b});e||await this.createLaunchPane(d,b);let g=async()=>{(0,t.Fq)({worktreeId:a,cliToolId:r.c1,instanceId:c}),await (0,h.V1)(d,(0,v.Y)(f),!0),await new Promise(a=>setTimeout(a,3e3))};await (0,h.V1)(d,(0,v.Y)(f),!0),await new Promise(a=>setTimeout(a,3e3)),await this.waitForReady(d,{relaunch:g,trustHooks:(0,s.dO)(b)}),x.info("started-codex-session")}catch(b){let a=(0,w.u1)(b);throw Error(`Failed to start Codex session: ${a}`)}}}async waitForReady(a,b){let c=b?.trustHooks??!1,d=!1,e=!1,f=z(),g=function(a){let b=o(void 0);if(null!==b)return b;let c=o(((void 0)??process.env).CM_CODEX_UPDATE_DIALOG);return null!==c?c:"skip-until-next-version"}(),i=n[g],j=!1,m=!1,q=!1,r=30;try{for(let o=0;o<r;o++){try{let s=await (0,h.Xg)(a,50),t=(0,k.aJ)(s),v=(0,k.E6)(t);if(("hooks-review"===v||"hooks-list"===v||"hooks-detail"===v)&&await this.answerCodexHooksScreen(a,v,f,c)){await new Promise(a=>setTimeout(a,u.CV));continue}if((0,k.zZ)(t))return void x.info("codex-prompt-detected");if(j&&!m&&b?.relaunch&&null!==(0,l.GE)(t,this.livenessSpec())){m=!0,r=Math.max(r,o+1+30),e=!1,f.screen=null,f.attempts=0,q&&(q=!1,(0,p.lM)(y),x.info("codex-update-lock-released",{sessionName:a})),x.info("codex-relaunched-after-update",{sessionName:a,policy:g}),await b.relaunch();continue}let w=(0,k.Qh)(t);if("update"===w){if(j=!0,null===i){await new Promise(a=>setTimeout(a,1e3));continue}if(!d){let b=i;b!==n.update||(0,p.mf)(y)?b===n.update&&(q=!0):(b=n["skip-until-next-version"],x.warn("codex-update-dialog-yielded-to-running-update",{sessionName:a,policy:g,requestedKey:i,key:b})),await (0,h.V1)(a,b,!1),d=!0,b===n.update&&(r=Math.max(r,o+1+120)),x.info("codex-update-dialog-answered",{sessionName:a,policy:g,key:b}),await new Promise(a=>setTimeout(a,u.CV));continue}}if("press-enter"===w){await (0,h.ds)(a,"Enter"),x.info("dismissed-codex-notification"),await new Promise(a=>setTimeout(a,u.CV));continue}if("trust"===w&&!e){await (0,h.V1)(a,"1",!1),e=!0,x.info("auto-trusted-folder-for-codex"),await new Promise(a=>setTimeout(a,u.CV));continue}}catch{}await new Promise(a=>setTimeout(a,1e3))}x.info("codex-prompt-detection")}finally{q&&(q=!1,(0,p.lM)(y),x.warn("codex-update-lock-released-unfinished",{sessionName:a}))}}async answerCodexHooksScreen(a,b,c,d){if(c.screen!==b&&(c.screen=b,c.attempts=0),c.attempts>=3)return x.warn("codex-hooks-screen-unresponsive",{sessionName:a,screen:b,trust:d}),!1;let e=++c.attempts;if("hooks-review"===b){let b=1===e?d?"2":"3":"1";return await (0,h.V1)(a,b,!1),x.info("codex-hooks-review-answered",{sessionName:a,key:b,attempt:e,trust:d}),!0}return d?(await (0,h.V1)(a,"t",!1,{literal:!0}),x.info("codex-hooks-screen-trusted",{sessionName:a,screen:b,attempt:e})):(await (0,h.ds)(a,"Escape"),x.info("codex-hooks-screen-escaped",{sessionName:a,screen:b,attempt:e})),!0}async waitForPrompt(a){let b=Date.now(),c=z(),d=null;for(;Date.now()-b<15e3;){try{let b=await (0,h.Xg)(a,50),e=(0,k.aJ)(b),f=(0,k.E6)(e);if("hooks-review"===f||"hooks-list"===f||"hooks-detail"===f){if(null===d){let b=await (0,h.nS)(a);d=null!==b&&(0,s.dO)(b)}await this.answerCodexHooksScreen(a,f,c,d)}else if((0,k.zZ)(e))return}catch{}await new Promise(a=>setTimeout(a,500))}throw x.info("codex-prompt-not-detected"),Error("Codex prompt not ready: timed out waiting for the input prompt before sending")}async sendMessage(a,b,c){let d=this.getSessionName(a,c);await this.requireSession("Codex",a,c,{relaunch:!0});try{await this.waitForPrompt(d),await (0,i.FW)({sessionName:d,message:b,cliToolId:"codex",composer:this.describeComposer(),awaitTypedBody:!0}),(0,j.gm)(d),x.info("sent-message-to-codex-session")}catch(b){let a=(0,w.u1)(b);throw Error(`Failed to send message to Codex: ${a}`)}}async killSession(a,b){await this.requestExitAndKill(a,b,{logger:x,stoppedAction:"stopped-codex-session",requestExit:async a=>{await (0,h.ds)(a,"C-d"),await new Promise(a=>setTimeout(a,u.Zf))}})}constructor(...a){super(...a),this.id="codex",this.name="Codex CLI",this.command="codex"}}var B=c(23365);let C=(0,q.h)("cli-tools/gemini");class D extends d.Mj{async launchSession(a,b,c){await this.requireInstalled();let{sessionName:d,exists:e,live:f}=await this.resolveLaunchPane(a,b,c,{logger:C,liveAction:"gemini-session-exists",relaunchAction:"gemini-session-relaunch"});if(!f){(0,t.Fq)({worktreeId:a,cliToolId:r.o,instanceId:c});try{e||await this.createLaunchPane(d,b);let f=(0,t.wK)({target:{worktreeId:a,cliToolId:r.o,instanceId:c},executablePath:this.command,worktreePath:b});await (0,h.V1)(d,(0,v.Y)(f),!0),await new Promise(a=>setTimeout(a,6e3)),await this.waitForReady(d),C.info("started-gemini-session")}catch(b){let a=(0,w.u1)(b);throw Error(`Failed to start Gemini session: ${a}`)}}}async waitForReady(a){let b=!1;for(let c=0;c<30;c++){try{let c=await (0,h.Xg)(a,B.H),d=(0,k.aJ)(c);if(k.wN.test(d))return void C.info("gemini-prompt-detected");!b&&d.includes("Do you trust this folder?")&&(await (0,h.ds)(a,"Enter"),b=!0,C.info("auto-trusted-folder-for-gemini"))}catch{}await new Promise(a=>setTimeout(a,1e3))}C.info("gemini-prompt-detection")}async waitForPrompt(a){let b=Date.now();for(;Date.now()-b<15e3;){try{let b=await (0,h.Xg)(a,B.H),c=(0,k.aJ)(b);if(k.wN.test(c))return}catch{}await new Promise(a=>setTimeout(a,500))}C.info("gemini-prompt-not-detected")}async sendMessage(a,b,c){let d=this.getSessionName(a,c);await this.requireSession("Gemini",a,c,{relaunch:!0});try{await this.waitForPrompt(d),await (0,i.FW)({sessionName:d,message:b,cliToolId:"gemini",composer:this.describeComposer()}),(0,j.gm)(d),C.info("sent-message-to-gemini-session")}catch(b){let a=(0,w.u1)(b);throw Error(`Failed to send message to Gemini: ${a}`)}}async killSession(a,b){await this.requestExitAndKill(a,b,{logger:C,stoppedAction:"stopped-gemini-session",requestExit:async a=>{await (0,h.ds)(a,"C-c"),await new Promise(a=>setTimeout(a,u.Is)),await (0,h.V1)(a,"/quit",!0),await new Promise(a=>setTimeout(a,u.Zf))}})}constructor(...a){super(...a),this.id="gemini",this.name="Gemini CLI",this.command="gemini"}}var E=c(15194),F=c(88807),G=c(56791);let H=(0,q.h)("cli-tools/vibe-local");class I extends d.Mj{async launchSession(a,b,c){await this.requireInstalled();let{sessionName:d,exists:e,live:f}=await this.resolveLaunchPane(a,b,c,{logger:H,liveAction:"vibe-local-session-exists",relaunchAction:"vibe-local-session-relaunch"});if(!f){(0,t.Fq)({worktreeId:a,cliToolId:this.id,instanceId:c});try{e||await this.createLaunchPane(d,b);let c="vibe-local -y";try{let b=(0,F.getDbInstance)(),d=(0,G.getWorktreeById)(b,a);d?.vibeLocalModel&&E.QP.test(d.vibeLocalModel)&&(c+=` -m ${d.vibeLocalModel}`);let e=d?.vibeLocalContextWindow;(0,E.FV)(e)&&(c+=` --context-window ${Number(e)}`)}catch{}await (0,h.V1)(d,(0,v.Y)(c),!0),await new Promise(a=>setTimeout(a,5e3)),H.info("started-vibe-local-session")}catch(b){let a=(0,w.u1)(b);throw Error(`Failed to start Vibe Local session: ${a}`)}}}async sendMessage(a,b,c){let d=this.getSessionName(a,c);await this.requireSession("Vibe Local",a,c,{relaunch:!0});try{await (0,i.FW)({sessionName:d,message:b,cliToolId:"vibe-local",composer:this.describeComposer(),interEnterWaitMs:u.PY}),(0,j.gm)(d),H.info("sent-message-to-vibe-local-session")}catch(b){let a=(0,w.u1)(b);throw Error(`Failed to send message to Vibe Local: ${a}`)}}async killSession(a,b){await this.requestExitAndKill(a,b,{logger:H,stoppedAction:"stopped-vibe-local-session",requestExit:async a=>{await (0,h.ds)(a,"C-c"),await new Promise(a=>setTimeout(a,u.Is)),await (0,h.ds)(a,"C-c"),await new Promise(a=>setTimeout(a,u.Zf))}})}constructor(...a){super(...a),this.id="vibe-local",this.name="Vibe Local",this.command="vibe-local"}}var J=c(49319),K=c(81776),L=c(56263),M=c(21758),N=c(54633),O=c(78099);let P=(0,q.h)("cli-tools/copilot"),Q=new Set(["model","agent","theme","permissions","skills","mcp","settings","statusline","subagents","resume","session"]),R=/^[>❯](?:\s|$)/,S=/^\s*\S\s+Loading:/;function T(a,b){let c=b.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),d=[RegExp(`^\\s*●\\s+Model changed from .+ to ${c}(?=\\s|$)`),RegExp(`^\\s*●\\s+Switched model to:\\s*${c}\\s*$`)],e=RegExp(`^\\s*✗\\s+Model "${c}" is \\S`),f={switched:0,rejected:[]};for(let b of(0,k.aJ)(a).split("\n"))d.some(a=>a.test(b))?f.switched++:e.test(b)&&f.rejected.push(b.trim().replace(/^✗\s+/,""));return f}function U(a){let b=(0,k.aJ)(a).split("\n");for(let a=b.length-1;a>=0;a--){let c=b[a].trim().replace(/\s{2,}/g," ");if(""!==c)return JSON.stringify(c.length>80?`${c.slice(0,80)}…`:c)}return"an empty pane"}class V extends d.Mj{async isInstalled(){return await (0,K.B0)()!==null}launchExecutable(a){return"path"===a.source?this.command:M.nL}async launchSession(a,b,c){let d=await (0,K.B0)();if(!d)throw(0,O.Tl)(this);let{sessionName:e,exists:f,live:g}=await this.resolveLaunchPane(a,b,c,{logger:P,liveAction:"copilot-session-exists",relaunchAction:"copilot-session-relaunch"});if(!g){(0,t.Fq)({worktreeId:a,cliToolId:N.V,instanceId:c});try{let g=(0,t.wK)({target:{worktreeId:a,cliToolId:N.V,instanceId:c},executablePath:this.launchExecutable(d),worktreePath:b});f||await this.createLaunchPane(e,b),await (0,h.V1)(e,(0,v.Y)(g),!0),await this.waitForReady(e),P.info("started-copilot-session",{executableSource:d.source,version:d.version})}catch(b){let a=(0,w.u1)(b);throw Error(`Failed to start Copilot session: ${a}`)}}}async answerFolderTrustDialog(a,b){return!!(0,k.Rx)(b)&&(await (0,h.V1)(a,k.oD,!1),(0,j.gm)(a),P.info("copilot-folder-trust-answered"),!0)}isComposerDrawn(a){let b=a.split("\n");for(let a=1;a<b.length-1;a++)if(R.test(b[a])&&k.A.test(b[a-1].trimEnd())&&k.A.test(b[a+1].trimEnd()))return!0;return!1}async waitForReady(a){let b=!1;for(let c=0;c<30;c++){try{let c=await (0,h.Xg)(a,50),d=(0,k.aJ)(c);if(this.isComposerDrawn(d))return void P.info("copilot-prompt-detected");!b&&await this.answerFolderTrustDialog(a,d)&&(b=!0)}catch{}await new Promise(a=>setTimeout(a,1e3))}P.info("copilot-prompt-detection-timeout")}async waitForPrompt(a,b=15e3,c="composer"){let d=Date.now(),e=!1,f="";for(;Date.now()-d<b;){try{let b=await (0,h.Xg)(a,50);if(f=(0,k.aJ)(b),this.isReadyFor(c,f))return{ready:!0,output:f};!e&&await this.answerFolderTrustDialog(a,f)&&(e=!0)}catch{}await new Promise(a=>setTimeout(a,500))}return P.info("copilot-prompt-not-detected",{until:c,bottomRow:U(f)}),{ready:!1,output:f}}isReadyFor(a,b){if(!k.Du.test(b))return!1;let c=b.split("\n");return!function(a){for(let b=a.length-1;b>=0;b--)if(""!==a[b].trim())return S.test(a[b]);return!1}(c)&&("composer"===a||"idle"===(0,k.Wn)(c))}extractSlashCommand(a){let b=a.trim();if(!b.startsWith("/"))return null;let c=b.match(/^\/(\S+)/);return c?c[1]:null}async waitForSelectionList(a){let b=Date.now();for(;Date.now()-b<5e3;){await new Promise(a=>setTimeout(a,300));try{let b=await (0,h.Xg)(a,50),c=(0,k.aJ)(b);if((0,k.gT)(c.split("\n")))return P.info("copilot-selection-list-detected"),!0}catch{}}return P.info("copilot-selection-list-not-detected-timeout"),!1}async sendMessage(a,b,c){let d=this.getSessionName(a,c);await this.requireSession("Copilot",a,c,{relaunch:!0});try{await this.waitForPrompt(d);let a=this.extractSlashCommand(b);if(a&&Q.has(a)){await (0,h.V1)(d,b,!0),await this.waitForSelectionList(d),(0,j.gm)(d),P.info("sent-selection-list-command-to-copilot",{command:a});return}await (0,i.FW)({sessionName:d,message:b,cliToolId:"copilot",composer:this.describeComposer(),textInputWaitMs:L.L1,verifyDelayMs:L.wp}),(0,j.gm)(d),P.info("sent-message-to-copilot-session")}catch(b){let a=(0,w.u1)(b);throw Error(`Failed to send message to Copilot: ${a}`)}}async sendModelCommand(a,b,c){let d=this.getSessionName(a,c);await this.requireSession("Copilot",a,c,{relaunch:!1});try{let a=await this.waitForPrompt(d,L.pL,"idle");if(!a.ready)throw Error(`copilot did not become idle within ${L.pL}ms, so /model was not sent (bottom row: ${U(a.output)})`);let c=T(a.output,b);await (0,h.V1)(d,`/model ${b}`,!0);let e=await this.waitForModelSwitchOutcome(d,b,c);if((0,j.gm)(d),"rejected"===e.kind)throw P.warn("copilot-model-rejected",{model:b,reason:e.reason}),Error(`copilot refused it: ${e.reason}`);if("pending"===e.kind)throw P.warn("copilot-model-switch-unconfirmed",{model:b,bottomRow:e.bottomRow}),Error(`copilot printed no answer to /model within ${L.pL}ms (bottom row: ${e.bottomRow}); the switch may still take effect, and nothing further was typed`);P.info("copilot-model-switched",{model:b})}catch(c){let a=(0,w.u1)(c);throw Error(`Failed to switch Copilot model to ${b}: ${a}`)}}async waitForModelSwitchOutcome(a,b,c){let d=Date.now(),e="";for(;Date.now()-d<L.pL;){await new Promise(a=>setTimeout(a,250));try{e=await (0,h.Xg)(a,50)}catch{continue}let d=function(a,b,c){let d=T(b,c);return d.rejected.length>a.rejected.length?{kind:"rejected",reason:d.rejected[d.rejected.length-1]}:d.switched>a.switched?{kind:"switched"}:{kind:"pending"}}(c,e,b);if("pending"!==d.kind)return d}return{kind:"pending",bottomRow:U(e)}}async killSession(a,b){await this.requestExitAndKill(a,b,{logger:P,stoppedAction:"stopped-copilot-session",requestExit:async a=>{await (0,h.ds)(a,"C-c"),await new Promise(a=>setTimeout(a,u.Is)),await (0,h.V1)(a,"/exit",!1),await new Promise(a=>setTimeout(a,L.L1)),await (0,h.KB)(a,["Enter"]),await new Promise(a=>setTimeout(a,u.Rk))}})}constructor(...a){super(...a),this.id="copilot",this.name="Copilot",this.command="copilot"}}var W=c(61878);let X=(0,q.h)("cli-tools/antigravity"),Y=/\?\s+for\s+shortcuts/,Z=/Do you trust the contents of this project\?/;function $(a){let b=(0,W.zJ)(a,"antigravity");if(k.kT.test(b.lastLines)||Z.test(b.lastLines))return!1;let c=function(a){let b=a.map(a=>a.trim()),c=a=>a>=0&&k.kn.test(b[a]),d=a=>{let c=a;for(;c>=0&&""===b[c];)c--;return c},e=b.length-1,f="";return(e>=0&&!c(e)&&(f=b[e],e=d(e-1)),!c(e)||(e=d(e-1))<0||!k.lE.test(b[e]))?null:c(d(e-1))?f:null}(b.contentLines);return null!==c&&(!!Y.test(c)||!(0,k.ut)("antigravity",b.lastLines))}class _ extends d.Mj{async launchSession(a,b,c,d){await this.requireInstalled();let{sessionName:e,exists:f,live:g}=await this.resolveLaunchPane(a,b,c,{logger:X,liveAction:"antigravity-session-exists",relaunchAction:"antigravity-session-relaunch"});if(!g){(0,t.Fq)({worktreeId:a,cliToolId:r.F0,instanceId:c});try{let g=(0,t.wK)({target:{worktreeId:a,cliToolId:r.F0,instanceId:c},executablePath:this.command,worktreePath:b}),i=d?`${g} --model '${d.replace(/'/g,"'\\''")}'`:g;f||await this.createLaunchPane(e,b),await (0,h.V1)(e,(0,v.Y)(i),!0),await new Promise(a=>setTimeout(a,3e3)),await this.waitForReady(e),X.info("started-antigravity-session")}catch(b){let a=(0,w.u1)(b);throw Error(`Failed to start Antigravity session: ${a}`)}}}async waitForReady(a){let b=!1;for(let c=0;c<30;c++){try{let c=await (0,h.Xg)(a,50),d=(0,k.aJ)(c);if($(d))return void X.info("antigravity-prompt-detected");if(!b&&Z.test(d)){await (0,h.ds)(a,"Enter"),b=!0,X.info("auto-trusted-folder-for-antigravity"),await new Promise(a=>setTimeout(a,500));continue}}catch{}await new Promise(a=>setTimeout(a,1e3))}X.info("antigravity-prompt-detection-timeout")}async waitForPrompt(a){let b=Date.now();for(;Date.now()-b<15e3;){try{let b=await (0,h.Xg)(a,50),c=(0,k.aJ)(b);if($(c))return}catch{}await new Promise(a=>setTimeout(a,500))}throw X.info("antigravity-prompt-not-ready"),Error("Antigravity prompt not ready: timed out waiting for the input prompt before sending")}async sendMessage(a,b,c){let d=this.getSessionName(a,c);await this.requireSession("Antigravity",a,c,{relaunch:!0});try{await this.waitForPrompt(d),await (0,i.FW)({sessionName:d,message:b,cliToolId:"antigravity",composer:this.describeComposer()}),(0,j.gm)(d),X.info("sent-message-to-antigravity-session")}catch(b){let a=(0,w.u1)(b);throw Error(`Failed to send message to Antigravity: ${a}`)}}async killSession(a,b){await this.requestExitAndKill(a,b,{logger:X,stoppedAction:"stopped-antigravity-session",requestExit:async a=>{await (0,h.ds)(a,"C-d"),await new Promise(a=>setTimeout(a,u.Zf))},afterKill:a=>{(0,j.gm)(a)}})}constructor(...a){super(...a),this.id="antigravity",this.name="Antigravity CLI",this.command="agy"}}var aa=c(28862),ab=c(35566),ac=c(2669);let ad=(0,q.h)("cli-tools/command-code"),ae=["--trust","--skip-onboarding","--no-auto-update"];function af(a){let b=a.split("\n");return!(0>(0,k.I$)(b))&&!k.k0.test((0,k.aJ)(a))}class ag extends d.Mj{navigationKeys(){return{keys:e.G2,leaderKey:null}}async launchSession(a,b,c){await this.requireInstalled();let{sessionName:d,exists:e,live:f}=await this.resolveLaunchPane(a,b,c,{logger:ad,liveAction:"command-code-session-exists",relaunchAction:"command-code-session-relaunch"});if(!f){(0,t.Fq)({worktreeId:a,cliToolId:aa.k,instanceId:c}),this.composerPendingSince.set(d,Date.now());try{var g;e||await this.createLaunchPane(d,b),await (0,h.V1)(d,(0,v.Y)((g={target:{worktreeId:a,cliToolId:aa.k,instanceId:c},executablePath:this.command,worktreePath:b},[(0,t.wK)(g),...ae].join(" "))),!0),await new Promise(a=>setTimeout(a,u.yO)),await this.waitForReady(d),ad.info("started-command-code-session")}catch(a){throw this.composerPendingSince.delete(d),Error(`Failed to start Command Code session: ${(0,w.u1)(a)}`)}}}async waitForReady(a){for(let b=0;b<30;b++){try{let b=await (0,h.Xg)(a,50);if(af(b)){this.composerPendingSince.delete(a),ad.info("command-code-prompt-detected");return}}catch{}await new Promise(a=>setTimeout(a,1e3))}ad.info("command-code-prompt-detection-timeout")}async waitForPrompt(a){let b=Date.now(),c=0;for(;Date.now()-b<15e3;){let b=!1;try{let c=await (0,h.Xg)(a,50);if(!(b=null!==(0,ab.V)(c))&&af(c))return void this.composerPendingSince.delete(a)}catch{}if((c=b?c+1:0)>=2)throw ad.info("command-code-plan-review-blocks-send",{sessionName:a}),Error('Command Code is showing a plan review (REVIEW), which takes review comments, not messages. Comment with `commandmate respond <worktree-id> "<text>"`, then `--plan-review submit` (ctrl+r), `--plan-review approve` (ctrl+a) or `--plan-review cancel` (esc).');await new Promise(a=>setTimeout(a,500))}let d=this.composerPendingSince.get(a);if(void 0!==d){let b=Date.now()-d;if(b<=12e4)throw ad.info("command-code-session-still-starting",{sessionName:a,sinceLaunchMs:b}),new ac.Sr(this.name,a,b);this.composerPendingSince.delete(a)}throw ad.info("command-code-prompt-not-ready"),Error("Command Code prompt not ready: timed out waiting for the composer before sending")}async sendMessage(a,b,c){let d=this.getSessionName(a,c);await this.requireSession("Command Code",a,c,{relaunch:!0});try{await this.waitForPrompt(d),await (0,i.FW)({sessionName:d,message:b,cliToolId:"command-code",composer:this.describeComposer()}),(0,j.gm)(d),ad.info("sent-message-to-command-code-session")}catch(a){if((0,ac.wQ)(a))throw a;throw Error(`Failed to send message to Command Code: ${(0,w.u1)(a)}`)}}async killSession(a,b){await this.requestExitAndKill(a,b,{logger:ad,stoppedAction:"stopped-command-code-session",requestExit:async a=>{await (0,h.V1)(a,"/exit",!1),await new Promise(a=>setTimeout(a,u.pL)),await (0,h.KB)(a,["Enter"]),await new Promise(a=>setTimeout(a,u.Zf))},afterKill:a=>{this.composerPendingSince.delete(a),(0,j.gm)(a)}})}constructor(...a){super(...a),this.id="command-code",this.name="Command Code CLI",this.command="commandcode",this.composerPendingSince=new Map}}var ah=c(79646),ai=c(28354),aj=c(16983),ak=c(46684),al=c(34114),am=c(62887),an=c(72272),ao=c(49154),ap=c(33294),aq=c(27870),ar=c(57510),as=c(90488),at=c(51719),au=c(83738),av=c(26945),aw=c(38892),ax=c(16100),ay=c(71193);let az=(0,q.h)("lib/hooks/sources/opencode-v2/ingest");async function aA(a,b){let[{getDbInstance:d},{getWorktreeById:e},{applyAgentStopEvent:f}]=await Promise.all([Promise.resolve().then(c.bind(c,88807)),Promise.resolve().then(c.bind(c,56791)),Promise.all([c.e(1356),c.e(6065),c.e(1191),c.e(3480),c.e(5456),c.e(2710),c.e(1501),c.e(2283),c.e(6781)]).then(c.bind(c,16781))]),g=d(),h=e(g,a.worktreeId)??null;if(!h)return void az.info("opencode-v2-stop-unresolved-target",{worktreeId:a.worktreeId});await f(g,h,ay.B,b)}async function aB(a,b,c){let d=(0,av.bH)(a),e=(0,aw.X3)(a);if(null===d||null===e)return null;let f=await (0,al.$F)(d,e,b),g=f?.find(a=>(0,ar.Qd)(a)&&a.id===c);return(0,ar.Qd)(g)?g:null}async function aC(a,b,c){let d=(0,au.hl)(b.raw,b.receivedAt);if(!d)return az.info("opencode-v2-permission-unparsed",{worktreeId:a.worktreeId,instanceId:c}),!1;let e=await (0,an.t)(ax.Wp,a,d,ax.Wp.parsePermissionRequest(b.raw));return az.info("opencode-v2-permission-decided",{worktreeId:a.worktreeId,instanceId:c,decisionId:d.id,behavior:e.behavior,reason:e.reason,delivered:e.delivered,settled:e.settled}),e.settled}async function aD(a,b,c){let d=(0,au.rk)(b.raw);if(d)return d;let e=(0,at.DH)(b.raw),f=(0,at.lx)(b.raw);if(null===e||null===f)return null;let g=await c(a,f,e);return g?(0,au.rk)(g):null}async function aE(a,b,c=aA,d=aB){let e=a.instanceId??ay.B;try{let f=(0,ap.classifyAgentEventDelivery)({worktreeId:a.worktreeId,cliToolId:ay.B,instanceId:e,event:b.event,detail:b.detail,sessionId:b.conversationId,at:b.receivedAt,identity:ax.Wp.eventIdentityOf(b.raw),identityKind:ax.Wp.capabilities.eventIdentity});if(f.duplicate)return void az.info("opencode-v2-event-duplicate-dropped",{worktreeId:a.worktreeId,instanceId:e,event:b.event,detail:b.detail,by:f.by});let g={event:b.event,at:b.receivedAt,detail:b.detail?.slice(0,am.h9)??null,sessionId:b.conversationId,message:null,model:b.model},h={sessionStartMayArriveLate:!1};if("notification"===b.event&&b.detail===at.xz){g.decisionId=(0,at.DH)(b.raw);let c=(0,au.vF)(b.raw);g.toolName=c?.toolName??(0,at.Dg)(b.raw),g.decisionPatterns=c?.patterns??null,g.message=(0,au.s8)(b.raw)?.slice(0,aq.lY)??null,g.promptSettled=await aC(a,b,e),(0,ap.recordAgentEvent)(a.worktreeId,ay.B,e,g,h)}else if("notification"===b.event&&b.detail===at.er)g.decisionId=(0,at.DH)(b.raw),g.promptSettled=!0,(0,ap.recordAgentEvent)(a.worktreeId,ay.B,e,g,h);else if("notification"===b.event&&b.detail===at.Ai){let c=await aD(a,b,d);g.message=c?.questions[0]?.question.slice(0,aq.lY)??null,(0,ap.recordAgentEvent)(a.worktreeId,ay.B,e,g,h),c&&(0,ap.recordAskUserQuestion)(a.worktreeId,ay.B,e,c,b.receivedAt),(0,ap.reportQuestionPending)(a.worktreeId,ay.B,e,{toolName:ao.GF,decisionId:(0,at.DH)(b.raw),detail:at.Ai},b.receivedAt),az.info("opencode-v2-question-recorded",{worktreeId:a.worktreeId,instanceId:e,decisionId:(0,at.DH)(b.raw),parsed:null!==c,questionCount:c?.questions.length??0}),await (0,as.Vo)(a,e,g.message,b.receivedAt)}else"stop"===b.event?(b.detail===at.dA&&(g.message=(0,at.ZL)(b.raw)?.slice(0,aq.lY)??null,az.error("opencode-v2-turn-failed",{worktreeId:a.worktreeId,instanceId:e,sessionId:b.conversationId,message:g.message})),(0,ap.recordAgentEvent)(a.worktreeId,ay.B,e,g,h),await c(a,e)):(0,ap.recordAgentEvent)(a.worktreeId,ay.B,e,g,h);az.info("opencode-v2-event-received",{worktreeId:a.worktreeId,instanceId:e,type:(0,at.Cr)(b.raw),event:b.event,detail:b.detail})}catch(c){az.error("opencode-v2-event-ingest-failed",{worktreeId:a.worktreeId,instanceId:e,event:b.event,error:c instanceof Error?c.message:String(c)})}}var aF=c(32301);let aG=(0,q.h)("lib/hooks/sources/opencode-v2/runtime"),aH=[0,500,1e3,2e3];function aI(a,b){return{worktreeId:a,cliToolId:ay.B,instanceId:b}}function aJ(a){return a instanceof Error?a.message:String(a)}async function aK(a,b){try{let c=await (0,av.ui)(a,b);if(null===c)return null;return(0,aw.OC)(a),c}catch(b){return aG.warn("opencode-v2-server-reserve-failed",{worktreeId:a.worktreeId,instanceId:a.instanceId??a.cliToolId,error:aJ(b)}),null}}async function aL(a,b){let c=(0,aw.X3)(a);return null!==c&&"healthy"===(await (0,al.tJ)(b,c)).kind}async function aM(a){try{let b=(0,av.bH)(a);if(null===b)return!1;if((0,aF.yw)(a))return!0;let c=!1;for(let d of aH)if(d>0&&await new Promise(a=>setTimeout(a,d)),await aL(a,b)){c=!0;break}if(!c)return aG.info("opencode-v2-server-not-reachable",{worktreeId:a.worktreeId,instanceId:a.instanceId??a.cliToolId,port:b}),!1;return await ax.Wp.subscribe(a,b=>{aE(a,b)}),aG.info("opencode-v2-event-stream-attached",{worktreeId:a.worktreeId,instanceId:a.instanceId??a.cliToolId,port:b}),!0}catch(b){return aG.warn("opencode-v2-event-stream-attach-failed",{worktreeId:a.worktreeId,instanceId:a.instanceId??a.cliToolId,error:aJ(b)}),!1}}async function aN(a,b){try{if((0,aF.yw)(a))return!0;let c=await (0,av.Lv)(a,b,b=>aL(a,b));if(null===c)return!1;return await aM(a)}catch(b){return aG.warn("opencode-v2-event-stream-resume-failed",{worktreeId:a.worktreeId,instanceId:a.instanceId??a.cliToolId,error:aJ(b)}),!1}}async function aO(a){try{await (0,aF.VV)(a)}catch(b){aG.warn("opencode-v2-subscription-close-failed",{worktreeId:a.worktreeId,error:aJ(b)})}try{(0,av.OZ)(a)}catch(b){aG.warn("opencode-v2-port-forget-failed",{worktreeId:a.worktreeId,error:aJ(b)})}try{(0,aw.Nc)(a)}catch(b){aG.warn("opencode-v2-password-remove-failed",{worktreeId:a.worktreeId,error:aJ(b)})}}var aP=c(93949),aQ=c(95759);let aR=(0,q.h)("cli-tools/opencode-v2"),aS=(0,ai.promisify)(ah.execFile),aT=aj.xT,aU=/^\/\S+$/,aV=[...e.qD,e.Mx,...e.TM,"a","l","m"];class aW extends d.Mj{navigationKeys(){return{keys:aV,leaderKey:e.Mx}}async isInstalled(){return null!==(await (0,aQ.Qq)()).executable}async isRunning(a,b){let c=this.getSessionName(a,b),d=await (0,h.N)(c);return d&&this.resumeInBackground(a,c,b),d}resumeInBackground(a,b,c){let d=aI(a,c);if((0,aF.yw)(d))return;let e=Date.now(),f=this.resumeAttemptedAt.get(b);void 0!==f&&e-f<3e4||(this.resumeAttemptedAt.set(b,e),(async()=>{try{let a=await (0,h.nS)(b);if(null===a)return;await aN(d,a)}catch(a){aR.debug("opencode-v2-lazy-resume-failed",{error:(0,w.u1)(a)})}})())}async launchSession(a,b,c){let d=(await (0,aQ.Qq)()).executable;if(!d)throw(0,O.Tl)(this);let e=this.getSessionName(a,c),f=aI(a,c),g={windowWidth:(0,ak.r)({warnSidebar:!1}),windowHeight:aj.xT},i=await (0,h.N)(e);if(i){if(await this.reconcileExistingSession(e,b,g),await this.isToolLive(e,{confirm:!0})){await aN(f,b),aR.info("opencode-v2-session-exists");return}aR.warn("opencode-v2-session-relaunch",{sessionName:e}),await aO(f)}(0,t.Fq)(f);try{i||await this.createLaunchPane(e,b);try{await aS("tmux",["resize-window","-t",(0,h.lA)(e),"-x",String(g.windowWidth),"-y",String(g.windowHeight)])}catch{}let j=await aK(f,b);null===j&&aR.warn("opencode-v2-launch-without-server",{worktreeId:a,instanceId:c}),await (0,h.V1)(e,(0,v.Y)((0,t.wK)({target:f,executablePath:d.path,worktreePath:b})),!0),await this.waitForReady(e),await aM(f),aR.info("started-opencode-v2-session")}catch(a){throw Error(`Failed to start OpenCode V2 session: ${(0,w.u1)(a)}`)}}async waitForReady(a){for(let b=0;b<60;b++){try{let c=(0,k.aJ)(await (0,h.Xg)(a,aT));if((0,k.Ok)(c))return aR.info("opencode-v2-composer-detected",{attempt:b}),!0}catch{}await new Promise(a=>setTimeout(a,500))}return aR.info("opencode-v2-ready-detection-timeout"),!1}async waitForComposer(a){let b=Date.now()+u.D1;for(;;){let c=null;try{let b=(0,k.aJ)(await (0,h.Xg)(a,aT));if(c=(0,k.dF)(b),null===c&&(0,k.Ok)(b))return}catch{}if(null!==c)throw Error(`OpenCode V2 composer not available: the "${c}" dialog is open. Close it (esc) or finish the choice, then send again`);if(Date.now()>=b)break;await new Promise(a=>setTimeout(a,500))}throw Error("OpenCode V2 composer not ready: timed out waiting for it before sending")}async sendMessage(a,b,c){let d=this.getSessionName(a,c);await this.requireSession("OpenCode V2",a,c,{relaunch:!0});try{await this.waitForComposer(d),await (0,i.FW)({sessionName:d,message:aU.test(b)?`${b} `:b,cliToolId:ay.B,composer:this.describeComposer()}),(0,j.gm)(d),aR.info("sent-message-to-opencode-v2-session")}catch(a){throw Error(`Failed to send message to OpenCode V2: ${(0,w.u1)(a)}`)}}async killSession(a,b){let c=this.getSessionName(a,b),d=aI(a,b),e=(0,av.bH)(d);try{if(await (0,h.N)(c)){await (0,h.V1)(c,aP.M0,!1),await new Promise(a=>setTimeout(a,u.pL)),await (0,h.KB)(c,["Enter"]),await new Promise(a=>setTimeout(a,u.Lw));let a=await (0,aP.rY)({sessionAlive:()=>(0,h.N)(c),portAnswering:null===e?null:async()=>"unreachable"!==(await (0,al.tJ)(e,"")).kind});a.ok||(aR.info("opencode-v2-graceful-exit-postcondition-unmet",{sessionName:c,reason:a.reason,...null!==e?{port:e}:{}}),await (0,h.fY)(c))}else await (0,h.fY)(c);(0,j.gm)(c),this.resumeAttemptedAt.delete(c),aR.info("stopped-opencode-v2-session")}catch(a){throw aR.error("session:stop-failed",{error:(0,w.u1)(a)}),a}finally{await aO(d)}}constructor(...a){super(...a),this.id=ay.B,this.name="OpenCode V2",this.command=ay.V,this.resumeAttemptedAt=new Map}}class aX{constructor(){this.tools=new Map,this.tools.set("claude",new g),this.tools.set("codex",new A),this.tools.set("gemini",new D),this.tools.set("vibe-local",new I),this.tools.set("opencode",new J.Ui),this.tools.set("copilot",new V),this.tools.set("antigravity",new _),this.tools.set("command-code",new ag),this.tools.set("opencode-v2",new aW)}static getInstance(){return aX.instance||(aX.instance=new aX),aX.instance}getTool(a){let b=this.tools.get(a);if(!b)throw Error(`CLI tool '${a}' not found`);return b}getAllTools(){return Array.from(this.tools.values())}async getToolInfo(a){let b=this.getTool(a),c=await b.isInstalled();return{id:b.id,name:b.name,command:b.command,installed:c}}async getAllToolsInfo(){return Promise.all(this.getAllTools().map(async a=>{let b=await a.isInstalled();return{id:a.id,name:a.name,command:a.command,installed:b}}))}async getInstalledTools(){return(await this.getAllToolsInfo()).filter(a=>a.installed)}async stopPollers(a,b,d){let{stopPolling:e}=await Promise.all([c.e(1356),c.e(1503),c.e(1634),c.e(1191),c.e(1719),c.e(2119),c.e(2445),c.e(3480),c.e(8728),c.e(8918),c.e(5595),c.e(611),c.e(5625),c.e(5220)]).then(c.bind(c,95220));e(a,b,d)}}},17287:(a,b,c)=>{c.d(b,{CD:()=>g,nL:()=>f});var d=c(24455);let e=(0,c(36925).v)("__permissionDecisions",()=>new Map);function f(a,b,c,f){e.set((0,d.v7)(a,b,c),f)}function g(a,b,c){return e.get((0,d.v7)(a,b,c))??null}},23365:(a,b,c)=>{c.d(b,{H:()=>g,y:()=>h});var d=c(16983),e=c(34405),f=c(15194);let g=200;function h(a){var b;return{statusLines:"opencode"===(b=a)?d.xT:"gemini"===b?g:e.G,usesAlternateScreen:(0,f.VA)(a)}}},29169:(a,b,c)=>{c.d(b,{yt:()=>n,tH:()=>o,f_:()=>B,sl:()=>m,a9:()=>k,Dk:()=>A,uG:()=>y});var d=c(51297);let e=/\btype\s+to\s+search\b|\bsearch\s+\w+\s*(?:…|\.\.\.)|(?:^|·)\s*\/\s+search\b/im,f=/^\s*(?:❯ +)?Approve\s+ctrl\+a\b[^\n]*\n\s*(?:❯ +)?Cancel\s+esc\s*$/im,g=/\benter\s+to\s+select\b\s*[·•]\s*esc\s+to\s+cancel\b/i,h=/^\s*(?:press|hit|type)?\s*(?:<)?esc(?:ape)?(?:>)?\s+to\s+(?:close|dismiss|exit)\b[\s.·•]*$/im,i=/^\s*Approve\s+\([• ]\)\s+with\s+\d+\s+comments?\s+as\s+notes\s+\([• ]\)\s+original\s+plan\b/im,j=/(?:^|\n)[ \t]*←\/→\s+choose\s*·\s*enter\s+confirm\s*·\s*esc\s+back\s*$/i;function k(a){return i.test(a)&&j.test(a)}function l(a,b){return a.split("\n").filter(a=>""!==a.trim()).slice(-b).join("\n")}function m(a){return g.test(l(a,1))}function n(a){return h.test(l(a,1))}function o(a){return f.test(l(a,5))}let p=/^\u2500+$/,q="●◉⦿",r=RegExp(`^\\s*([${q}◯○◌⚪✔])\\s+\\S`);function s(a){let b=a.split("|");if(b.length<2)return!1;let c=0,d=0;for(let a of b){let b=r.exec(a);if(null===b)return!1;q.includes(b[1])?c+=1:d+=1}return c>0&&d>0}let t=/\besc\s+to\s+interrupt\b|^[^\S\n]*✻[^\S\n]+\S/im,u=/^[^\S\n]*(?:\u276F[^\S\n]*)?1[.)][^\S\n]+Submit[^\S\n]*$/im,v=/^[^\S\n]*(?:\u276F[^\S\n]*)?2[.)][^\S\n]+Cancel[^\S\n]*$/im,w=/^[^\S\n]*\u2190[^\S\n]+to[^\S\n]+go[^\S\n]+back[^\S\n]+and[^\S\n]+edit[^\S\n]*$/im,x=/have\s+not\s+answered\s+all\s+questions/i;function y(a){if(!a)return null;let b=a.replace(/\r\n/g,"\n").split("\n").map(d.aJ),c=b.length-1;for(;c>=0&&""===b[c].trim();)c-=1;if(c<1)return null;let e=-1;for(let a=c-1;a>=0;a-=1){let c=b[a].trim();if(!(c.length<40)&&p.test(c)){e=a;break}}if(e<0)return null;let f=b.slice(e+1,c+1),g=f.findIndex(a=>""!==a.trim());if(g<0||!s(f[g]))return null;let h=f.join("\n");if(!u.test(h)||!v.test(h)||!w.test(h))return null;let i=f.find(a=>u.test(a));return{hasUnansweredWarning:x.test(h),cursorOnSubmit:void 0!==i&&i.includes("❯")}}let z=/^[^0-9A-Za-z]*([1-9])[.)]\s+\S/;function A(a){let b=C(a);return null!==b&&b.numbers.every((a,b)=>a===b+1)&&1===b.cursorCount?{ruleLineIndex:b.ruleLineIndex,firstLineIndex:b.firstLineIndex,lastLineIndex:b.lastLineIndex,tabLineIndex:b.tabLineIndex,cursorLineIndex:b.cursorLineIndex,cursorOnOptionRow:b.cursorOnOptionRow,optionCount:b.numbers.length}:null}function B(a){return null!==C(a)}function C(a){if(!a)return null;let b=a.replace(/\r\n/g,"\n").split("\n").map(d.aJ),c=b.length-1;for(;c>=0&&""===b[c].trim();)c-=1;if(c<1)return null;let f=-1;for(let a=c-1;a>=0;a-=1){let c=b[a].trim();if(!(c.length<40)&&p.test(c)){f=a;break}}if(f<0)return null;let i=b.slice(f+1,c+1),j=i.join("\n");if(e.test(j)||g.test(j)||h.test(j)||t.test(j))return null;let k=i.findIndex(a=>""!==a.trim());if(k<0||!s(i[k]))return null;let l=[],m=-1;for(let a=k+1;a<i.length;a+=1){let b=z.exec(i[a]);null!==b&&(m<0&&(m=a),l.push(Number(b[1])))}if(l.length<2||!i.slice(k+1,m).some(a=>""!==a.trim()))return null;let n=0,o=-1,q=!1;for(let a=0;a<i.length;a+=1){let b=i[a].split("❯").length-1;0!==b&&(n+=b,o=a,q=z.test(i[a]))}return 0===n?null:{ruleLineIndex:f,firstLineIndex:f+1,lastLineIndex:c,tabLineIndex:f+1+k,numbers:l,cursorCount:n,cursorLineIndex:f+1+o,cursorOnOptionRow:q}}},34405:(a,b,c)=>{c.d(b,{G:()=>e,_:()=>d});let d=1e4,e=1e3},35566:(a,b,c)=>{c.d(b,{V:()=>l});var d=c(51297),e=c(29169);let f=/^\s*type \+ enter to comment\b/i,g=/^\s*enter to pin\s*·\s*esc discard\s*$/i,h=/^\s*↑\/↓ choose\s*·\s*enter to run\s*$/i,i=/^\s*❯ +(?:Submit review\b|Approve\s+ctrl\+a\b|Cancel\s+esc\b)/im,j=/^\s*REVIEW\s+(\d+)\s+pending comments?\b/im,k=/\(•\)\s+with\s+\d+\s+comments?\s+as\s+notes/i;function l(a){if(!a)return null;let b=(0,d.aJ)(a.replace(/\r\n/g,"\n")).split("\n").filter(a=>""!==a.trim()).slice(-15);if(0===b.length)return null;let c=b.join("\n"),l=j.exec(c),m=l?Number(l[1]):0;if((0,e.a9)(c))return{phase:"approve-choice",pendingComments:m,approveChoice:k.test(c)?"with-comments":"discard-comments"};if(!(0,e.tH)(c))return null;let n=b[b.length-1],o="unknown";return i.test(c)||h.test(n)?o="action-focus":g.test(n)?o="comment-box":f.test(n)&&(o="body"),{phase:o,pendingComments:m,approveChoice:null}}},39333:(a,b,c)=>{c.d(b,{$Y:()=>h,Bg:()=>j,Fg:()=>e,HB:()=>g,df:()=>i,f9:()=>d});let d=[".png",".jpg",".jpeg",".gif",".webp",".svg"],e=0x1400000,f=[{extension:".png",mimeType:"image/png",magicBytes:[137,80,78,71]},{extension:".jpg",mimeType:"image/jpeg",magicBytes:[255,216,255]},{extension:".jpeg",mimeType:"image/jpeg",magicBytes:[255,216,255]},{extension:".gif",mimeType:"image/gif",magicBytes:[71,73,70,56]},{extension:".webp",mimeType:"image/webp",magicBytes:[82,73,70,70]},{extension:".svg",mimeType:"image/svg+xml"}];function g(a){return a?a.startsWith(".")?a.toLowerCase():"."+a.toLowerCase():""}function h(a){let b=g(a),c=f.find(a=>a.extension===b);return c?.mimeType||"application/octet-stream"}function i(a){if(!a)return!1;let b=g(a);return d.includes(b)}function j(a,b){if(b.length>e)return{valid:!1,error:`File size exceeds ${e/1024/1024}MB limit`,reason:"too-large"};if(".svg"===g(a)){var c;return(c=b.toString("utf-8")).includes("<svg")||c.startsWith("<?xml")?/<script[\s>]/i.test(c)?{valid:!1,error:"SVG contains script tags"}:/\s+on\w+\s*=/i.test(c)?{valid:!1,error:"SVG contains event handler attributes"}:/(?:xlink:)?href\s*=\s*["']?\s*(?:javascript|data|vbscript):/i.test(c)?{valid:!1,error:"SVG contains dangerous URI scheme"}:/<foreignObject[\s>]/i.test(c)?{valid:!1,error:"SVG contains foreignObject element"}:{valid:!0}:{valid:!1,error:"Invalid SVG format"}}return!function(a,b){let c=g(a),d=f.find(a=>a.extension===c);if(!d?.magicBytes)return".svg"===c;let e=d.magicBytesOffset||0;return!(b.length<e+d.magicBytes.length)&&d.magicBytes.every((a,c)=>b[e+c]===a)}(a,b)?{valid:!1,error:"Invalid image magic bytes"}:{valid:!0}}d.filter(a=>".svg"!==a).map(a=>h(a)).filter(a=>"application/octet-stream"!==a).join(",")},46684:(a,b,c)=>{c.d(b,{r:()=>f});var d=c(16983);let e=(0,c(72626).h)("cli-tools/opencode-pane-width");function f(a){let b=process.env[d.ao],c=(0,d._u)(),f=b?.trim(),g=void 0!==f&&(!/^\d+$/.test(f)||Number.parseInt(f,10)!==c);return void 0!==b&&g?e.warn("opencode-pane-width-rejected",{requested:b,applied:c}):a.warnSidebar&&c>=d.Lg&&e.warn("opencode-pane-width-sidebar-visible",{width:c,sidebarMinWidth:d.Lg}),c}},47967:(a,b,c)=>{c.d(b,{Z:()=>h,u:()=>i});var d=c(70605);let e=/ctrl\+[tp]\b/,f=/^\s*╹▀+/,g=/^\s*[┃│]/,h={locate({contentLines:a}){let b=(0,d.Sx)(a),c=-1;for(let d=b;d>=Math.max(0,b-4);d--)if(e.test(a[d])){c=d;break}if(c<0)return null;let h=-1;for(let b=c-1;b>=Math.max(0,c-3);b--)if(f.test(a[b])){h=b;break}if(h<0)return null;let i=h;for(;i-1>=0&&g.test(a[i-1]);)i--;return{start:i,end:b,atBottom:!0}}};function i(a){return{locate({contentLines:b}){let c=(0,d.Sx)(b);for(let d=c;d>=Math.max(0,c-60);d--)if(g.test(b[d])&&a.test(b[d]))return{start:d};return null}}}},49319:(a,b,c)=>{c.d(b,{Ui:()=>az,TZ:()=>ay});var d=c(89731),e=c(8953),f=c(79892),g=c(61789),h=c(40236),i=c(93997),j=c(29021),k=c(21820),l=c(33873),m=c(8004),n=c(72626);let o=(0,n.h)("cli-tools/opencode-config"),p=/^[a-zA-Z0-9._:/-]{1,100}$/,q=/^[a-zA-Z0-9._:/@-]{1,200}$/,r="CM_OPENCODE_LOCAL_PROVIDER_CONFIG",s="OPENCODE_CONFIG",t=["opencode.json","opencode.jsonc",l.join(".opencode","opencode.json"),l.join(".opencode","opencode.jsonc")],u=["opencode.json","opencode.jsonc"];async function v(){let a={};try{let b=new AbortController,c=setTimeout(()=>b.abort(),3e3),d=await fetch("http://localhost:11434/api/tags",{signal:b.signal}).finally(()=>{clearTimeout(c)});if(!d.ok)return o.warn("ollama-api-returned"),{};let e=await d.text();if(e.length>1048576)return o.warn("ollama-api-response"),{};let f=JSON.parse(e);if(!f||!Array.isArray(f.models))return o.warn("invalid-ollama-api"),{};for(let b of f.models.slice(0,100))"string"==typeof b?.name&&p.test(b.name)&&(a[b.name]={name:function(a){let b=String(a.name),c=a.details;if(!c)return b;let d=[b];return"string"==typeof c.parameter_size&&/^[\d.]+[BKMGT]?B?$/i.test(c.parameter_size)&&d.push(c.parameter_size),"string"==typeof c.quantization_level&&/^[A-Z0-9_]{1,20}$/i.test(c.quantization_level)&&d.push(c.quantization_level),d.length>1?`${b} (${d.slice(1).join(", ")})`:b}(b)})}catch(a){a instanceof Error&&"AbortError"===a.name?o.warn("ollama-api-timeout"):o.warn("failed-to-fetch")}return a}async function w(){let a={};try{let b=new AbortController,c=setTimeout(()=>b.abort(),3e3),d=await fetch("http://localhost:1234/v1/models",{signal:b.signal}).finally(()=>{clearTimeout(c)});if(!d.ok)return o.warn("lm-studio-api"),{};let e=await d.text();if(e.length>1048576)return o.warn("lm-studio-api"),{};let f=JSON.parse(e);if(!f||!Array.isArray(f.data))return o.warn("invalid-lm-studio"),{};for(let b of f.data.slice(0,100))"string"==typeof b?.id&&q.test(b.id)&&(a[b.id]={name:b.id})}catch(a){a instanceof Error&&"AbortError"===a.name?o.warn("lm-studio-api"):o.warn("failed-to-fetch")}return a}function x(a=process.env){let b=l.join(k.homedir(),".config");return l.join((0,m.T)(a.XDG_CONFIG_HOME,b,"XDG_CONFIG_HOME"),"opencode")}async function y(){let[a,b]=await Promise.all([v(),w()]),c={};return Object.keys(a).length>0&&(c.ollama={npm:"@ai-sdk/openai-compatible",name:"Ollama (local)",options:{baseURL:"http://localhost:11434/v1"},models:a}),Object.keys(b).length>0&&(c.lmstudio={npm:"@ai-sdk/openai-compatible",name:"LM Studio (local)",options:{baseURL:"http://localhost:1234/v1"},models:b}),c}async function z(a){let b=function(a=process.env){let b=(a[r]??"").trim().toLowerCase();return"worktree"===b||"project"===b?"worktree":"global"===b||"user"===b?"global":(""!==b&&"off"!==b&&"0"!==b&&"false"!==b&&"none"!==b&&o.warn("opencode-config-mode-unrecognised",{variable:r,value:b}),"off")}();if("off"===b)return{written:!1,configPath:null,reason:"disabled"};let c="worktree"===b?function(a){let b=l.resolve(a);try{if(!j.lstatSync(b).isDirectory())throw Error(`Path is not a directory: ${b}`)}catch(a){if("ENOENT"===a.code)throw Error(`Path does not exist: ${b}`);throw a}return j.realpathSync(b)}(a):null,d=function(a,b=process.env){if(""!==(b[s]??"").trim())return`env:${s}`;if(null!==a)for(let b of t){let c=l.join(a,b);if(j.existsSync(c))return c}let c=x(b);for(let a of u){let b=l.join(c,a);if(j.existsSync(b))return b}return null}(c);if(null!==d)return o.info("opencode-config-generation-skipped",{mode:b,owned:d}),{written:!1,configPath:null,reason:"existing-config"};let e=c??x(),f=l.join(e,"opencode.json"),g=await y();if(0===Object.keys(g).length)return{written:!1,configPath:null,reason:"no-providers"};try{"global"===b&&j.mkdirSync(e,{recursive:!0}),j.writeFileSync(f,JSON.stringify({$schema:"https://opencode.ai/config.json",provider:g},null,2),{encoding:"utf-8",flag:"wx"})}catch(a){if("EEXIST"===a.code)return{written:!1,configPath:null,reason:"existing-config"};return o.warn("failed-to-write-opencodejson:error-insta"),{written:!1,configPath:null,reason:"write-failed"}}return o.info("opencode-config-generated",{mode:b,configPath:f}),{written:!0,configPath:f,reason:"written"}}var A=c(16983),B=c(46684),C=c(79646),D=c(28354),E=c(39333),F=c(1305),G=c(49791),H=c(62887),I=c(72272),J=c(49154),K=c(33294),L=c(27870),M=c(57510),N=c(59409),O=c(75356),P=c(98211),Q=c(90488),R=c(85322);let S=(0,n.h)("lib/hooks/sources/opencode/ingest");async function T(a,b,c){let d=(0,N.VM)(R.k),e=(0,P.Lu)(b.raw,b.receivedAt);if(!e)return S.info("opencode-permission-unparsed",{worktreeId:a.worktreeId,instanceId:c}),!1;let f=await (0,I.t)(d,a,e,d.parsePermissionRequest(b.raw));return S.info("opencode-permission-decided",{worktreeId:a.worktreeId,instanceId:c,decisionId:e.id,behavior:f.behavior,reason:f.reason,delivered:f.delivered,settled:f.settled}),f.settled}async function U(a,b){let[{getDbInstance:d},{getWorktreeById:e},{applyAgentStopEvent:f}]=await Promise.all([Promise.resolve().then(c.bind(c,88807)),Promise.resolve().then(c.bind(c,56791)),Promise.all([c.e(1356),c.e(6065),c.e(1191),c.e(3480),c.e(5456),c.e(2710),c.e(1501),c.e(2283),c.e(6781)]).then(c.bind(c,16781))]),g=d(),h=e(g,a.worktreeId)??null;if(!h)return void S.info("opencode-stop-unresolved-target",{worktreeId:a.worktreeId});let i=await f(g,h,R.k,b);S.info("opencode-stop-applied",{worktreeId:a.worktreeId,instanceId:b,taskId:i.taskId,taskEventApplied:i.taskEventApplied,verificationRunId:i.verificationRunId})}async function V(a,b){let c=a.instanceId??R.k;try{let d=(0,N.VM)(R.k),e=(0,K.classifyAgentEventDelivery)({worktreeId:a.worktreeId,cliToolId:R.k,instanceId:c,event:b.event,detail:b.detail,sessionId:b.conversationId,at:b.receivedAt,identity:d.eventIdentityOf(b.raw),identityKind:d.capabilities.eventIdentity});if(e.duplicate)return void S.info("opencode-event-duplicate-dropped",{worktreeId:a.worktreeId,instanceId:c,event:b.event,detail:b.detail,by:e.by});let f={event:b.event,at:b.receivedAt,detail:b.detail?.slice(0,H.h9)??null,sessionId:b.conversationId,message:(function(a){let b=(0,M.Qd)(a.raw.properties)?a.raw.properties:{};if(a.detail===O.aF)return(0,M.NZ)(b,["metadata","command"])??(0,M.O2)(b,"permission");if(a.detail===O.Tm){let a=b.questions;return Array.isArray(a)&&(0,M.Qd)(a[0])?(0,M.O2)(a[0],"question"):null}return a.detail===O.vE?(0,M.NZ)(b,["error","data","message"])??(0,M.NZ)(b,["error","name"]):null})(b)?.slice(0,L.lY)??null,model:b.model},g={sessionStartMayArriveLate:d.capabilities.sessionStartMayArriveLate};if("notification"===b.event&&b.detail===O.aF){f.decisionId=(0,M.O2)((0,M.Qd)(b.raw.properties)?b.raw.properties:{},"id");let d=(0,P.LF)(b.raw,b.receivedAt);f.toolName=d?.toolName??null,f.decisionPatterns=d?.patterns??null,f.promptSettled=await T(a,b,c),(0,K.recordAgentEvent)(a.worktreeId,R.k,c,f,g);return}if("notification"===b.event&&b.detail===O.C8){f.decisionId=(0,O.Mn)(b.raw),f.promptSettled=!!(0,N.VM)(R.k).capabilities.permissionReplyReleasesPrompt||(S.info("opencode-permission-reply-not-releasing",{worktreeId:a.worktreeId,instanceId:c,reason:"capability-permissionReplyReleasesPrompt-false"}),!1),(0,K.recordAgentEvent)(a.worktreeId,R.k,c,f,g),S.info("opencode-permission-reply-observed",{worktreeId:a.worktreeId,instanceId:c,decisionId:f.decisionId,released:f.promptSettled});return}if((0,K.recordAgentEvent)(a.worktreeId,R.k,c,f,g),"notification"===b.event&&b.detail===O.Tm){let d=(0,N.VM)(R.k).parseQuestion(b.raw);d&&((0,K.recordAskUserQuestion)(a.worktreeId,R.k,c,d,b.receivedAt),(0,K.reportQuestionPending)(a.worktreeId,R.k,c,{toolName:J.GF,decisionId:d.promptId,detail:O.Tm},b.receivedAt),S.info("opencode-question-recorded",{worktreeId:a.worktreeId,instanceId:c,decisionId:d.promptId,questionCount:d.questions.length,optionCounts:d.questions.map(a=>a.choices.length)})),await (0,Q.Vo)(a,c,f.message??null,b.receivedAt);return}if("stop"===b.event)return void await U(a,c);"notification"===b.event&&b.detail===O.vE&&await (0,Q.dJ)(a,c,(0,M.NZ)((0,M.Qd)(b.raw.properties)?b.raw.properties:{},["error","name"]),f.message??null,b.conversationId,b.receivedAt),S.info("opencode-event-received",{worktreeId:a.worktreeId,instanceId:c,event:b.event,detail:b.detail})}catch(d){S.error("opencode-event-ingest-failed",{worktreeId:a.worktreeId,instanceId:c,event:b.event,error:d instanceof Error?d.message:String(d)})}}var W=c(84574),X=c(85965),Y=c(33198);let Z=(0,n.h)("lib/hooks/sources/opencode/runtime");function $(a,b){return{worktreeId:a,cliToolId:"opencode",instanceId:b}}async function _(a,b){try{return await (0,W.CU)(a,b)}catch(b){return Z.warn("opencode-port-reserve-failed",{worktreeId:a.worktreeId,error:b instanceof Error?b.message:String(b)}),null}}let aa=[0,500,1e3,2e3,4e3];async function ab(a,b){for(let[c,d]of aa.entries()){d>0&&await new Promise(a=>setTimeout(a,d));let e=await (0,G.sc)(b);if("healthy"===e.kind)return c>0&&Z.info("opencode-server-reachable-after-retry",{worktreeId:a.worktreeId,instanceId:a.instanceId??a.cliToolId,port:b,attempt:c}),e.health;if("rejected"===e.kind){Z.warn("opencode-server-refused-commandmate",{worktreeId:a.worktreeId,instanceId:a.instanceId??a.cliToolId,port:b,status:e.status,consequence:"structured events are off for this session; the scraper decides"});break}}return null}async function ac(a){try{let b=(0,W.hC)(a);if(null===b)return!1;if((0,Y.wb)(a))return!0;let c=await ab(a,b);if(!c)return Z.info("opencode-server-not-reachable",{worktreeId:a.worktreeId,instanceId:a.instanceId??a.cliToolId,port:b,attempts:aa.length}),!1;await X.cC.subscribe(a,b=>{V(a,b)});let d=await ad(a);return Z.info("opencode-event-stream-attached",{worktreeId:a.worktreeId,instanceId:a.instanceId??a.cliToolId,port:b,version:c.version,activity:d}),!0}catch(b){return Z.warn("opencode-event-stream-attach-failed",{worktreeId:a.worktreeId,error:b instanceof Error?b.message:String(b)}),!1}}async function ad(a){let b=null;try{b=await X.cC.probeActivity(a)}catch(b){Z.debug("opencode-activity-probe-failed",{worktreeId:a.worktreeId,instanceId:a.instanceId??a.cliToolId,error:b instanceof Error?b.message:String(b)})}return(0,Y.yn)(a,b,Date.now()),b}async function ae(a,b){try{if((0,Y.wb)(a))return!0;let c=await (0,W.jp)(a,b);if(null===c)return!1;return await ac(a)}catch(b){return Z.warn("opencode-event-stream-resume-failed",{worktreeId:a.worktreeId,error:b instanceof Error?b.message:String(b)}),!1}}async function af(a){let b=a.instanceId??a.cliToolId;try{let c=(0,W.hC)(a);if(null===c)return!1;let d=(0,Y.lf)(a);if("live"!==d.state)return Z.info("opencode-abort-skipped-not-live",{worktreeId:a.worktreeId,instanceId:b,port:c,liveness:d.state}),!1;let e=(0,Y.ym)(a);if(null===e)return Z.info("opencode-abort-skipped-no-session",{worktreeId:a.worktreeId,instanceId:b,port:c}),!1;let f=(0,Y.H1)(a,e,2e3);if(!await (0,G.UR)(c,e))return f.cancel(),Z.warn("opencode-abort-rejected",{worktreeId:a.worktreeId,instanceId:b,port:c,sessionId:e}),!1;if(!await f.seen)return Z.warn("opencode-abort-unconfirmed",{worktreeId:a.worktreeId,instanceId:b,port:c,sessionId:e,timeoutMs:2e3}),!1;return Z.info("opencode-abort-confirmed",{worktreeId:a.worktreeId,instanceId:b,port:c,sessionId:e}),!0}catch(c){return Z.warn("opencode-abort-failed",{worktreeId:a.worktreeId,instanceId:b,error:c instanceof Error?c.message:String(c)}),!1}}async function ag(a){try{await (0,Y.FN)(a),(0,W.kE)(a)}catch(b){Z.warn("opencode-event-stream-release-failed",{worktreeId:a.worktreeId,error:b instanceof Error?b.message:String(b)})}}var ah=c(18529),ai=c(70849),aj=c(27939),ak=c(93949),al=c(20610),am=c(78099),an=c(95759),ao=c(79748);let ap=/^timestamp=(\S+)/,aq=/no such column: ?[A-Za-z0-9_.]*/;async function ar(a,b){let c;try{c=await (0,ao.open)(a,"r");let{size:d}=await c.stat(),e=Math.min(d,b),f=d-e,g=Buffer.alloc(e);await c.read(g,0,e,f);let h=g.toString("utf8");return f>0&&(h=h.slice(h.indexOf("\n")+1)),h}catch{return null}finally{await c?.close().catch(()=>{})}}async function as(a,b=function(){let a=process.env.XDG_DATA_HOME||(0,l.join)((0,k.homedir)(),".local","share");return(0,l.join)(a,"opencode","log","opencode.log")}()){let c=await ar(b,262144);if(null===c)return null;let d=a-1e3;for(let a of c.split("\n")){let b=ap.exec(a);if(!b)continue;let c=Date.parse(b[1]);if(Number.isNaN(c)||c<d)continue;let e=aq.exec(a);if(e)return e[0]}return null}var at=c(46749),au=c(77093);let av=(0,n.h)("cli-tools/opencode"),aw=(0,D.promisify)(C.execFile),ax=[0,50,100,200];function ay(a,b){return a?`${a}
|
|
3
3
|
|
|
4
4
|
[添付画像: ${b}]`:`[添付画像: ${b}]`}class az extends d.Mj{navigationKeys(){return{keys:e.sM,leaderKey:e.Mx}}async isInstalled(){return null!==(await (0,an.$s)()).executable}async launchSession(a,b,c){let d=await (0,an.$s)(),e=d.executable;if(!e)throw(0,am.Tl)(this,(0,an.mV)(d));let g=this.getSessionName(a,c),h=$(a,c),i=(0,B.r)({warnSidebar:!0}),j=await (0,f.N)(g);if(j){if(await this.reconcileExistingSession(g,b,{windowWidth:i,windowHeight:A.xT}),await this.isToolLive(g,{confirm:!0})){await ae(h,b),av.info("opencode-session-exists");return}av.warn("opencode-session-relaunch",{sessionName:g}),await ag(h)}(0,F.Fq)(h);try{await z(b),j||await this.createLaunchPane(g,b);try{await aw("tmux",["resize-window","-t",(0,f.lA)(g),"-x",String(i),"-y",String(A.xT)])}catch{}await _(h,b);let d=(0,F.wK)({target:h,executablePath:e.path,worktreePath:b}),k=(0,aj.pr)(h,b),l=null===k?d:(0,aj.XO)(d,k);null!==k&&av.info("opencode-session-resumed",{worktreeId:a,instanceId:c??this.id,sessionId:k});let m=Date.now();if(await (0,f.V1)(g,(0,at.Y)(l),!0),await this.waitForReady(g),!await ac(h)&&null!==(0,W.hC)(h)){let b=await as(m);if(null!==b)throw av.warn("opencode-shared-data-conflict",{worktreeId:a,finding:b}),Error(`OpenCode 1.x could not open its data (opencode log: "${b}"). OpenCode 1.x and OpenCode V2 share ~/.local/share/opencode/opencode.db, and V2 has changed tables 1.x still uses. Use only OpenCode V2, or give OpenCode 1.x a data directory of its own (docs/user-guide/cli-setup-guide.md, "OpenCode (1.x) and OpenCode V2").`)}av.info("started-opencode-session")}catch(b){let a=(0,au.u1)(b);throw Error(`Failed to start OpenCode session: ${a}`)}}async waitForReady(a){for(let b=0;b<60;b++){try{let c=(0,g.aJ)(await (0,f.Xg)(a,50));if(g.vU.test(c))return av.info("opencode-composer-detected",{attempt:b}),!0;if(g.LO.test(c))return av.info("opencode-overlay-detected",{attempt:b}),!0}catch{}await new Promise(a=>setTimeout(a,500))}return av.info("opencode-ready-detection-timeout"),!1}async trySendViaServer(a,b,c){let d=a.instanceId??a.cliToolId;try{let e=(0,W.hC)(a);if(null===e)return!1;let f=(0,Y.lf)(a);if("live"!==f.state)return av.info("opencode-send-skipped-not-live",{worktreeId:a.worktreeId,instanceId:d,port:e,liveness:f.state}),!1;let g=(0,Y.ym)(a);if(null===g)return av.info("opencode-send-skipped-no-session",{worktreeId:a.worktreeId,instanceId:d,port:e}),!1;let h=[{type:"text",text:b}];void 0!==c&&h.push({type:"file",mime:(0,E.$Y)((0,l.extname)(c)),filename:(0,l.basename)(c),url:(0,G.fy)(c)});let i=(0,G.CH)(),j=(0,ah.QH)((0,ah.Q1)(a));if(!await (0,G.wZ)(e,g,i,h,j))return!1;if(!await this.verifyPostedMessage(e,g,i,b))return av.warn("opencode-send-unverified",{worktreeId:a.worktreeId,instanceId:d,port:e,sessionId:g,messageId:i,hasImage:void 0!==c}),!1;return av.info("opencode-send-delivered-via-api",{worktreeId:a.worktreeId,instanceId:d,port:e,sessionId:g,messageId:i,hasImage:void 0!==c}),!0}catch(b){return av.warn("opencode-send-api-failed",{worktreeId:a.worktreeId,instanceId:d,error:(0,au.u1)(b)}),!1}}async verifyPostedMessage(a,b,c,d){for(let e of ax){e>0&&await new Promise(a=>setTimeout(a,e));let f=await (0,G.ep)(a,b,c);if("found"===f.kind)return f.texts.includes(d);if("missing"===f.kind)break}return!1}async sendMessage(a,b,c){let d=this.getSessionName(a,c);if(await this.requireSession("OpenCode",a,c,{relaunch:!0}),await this.trySendViaServer($(a,c),b))return void(0,i.gm)(d);try{await (0,h.FW)({sessionName:d,message:b,cliToolId:"opencode",composer:this.describeComposer()}),(0,i.gm)(d),av.info("sent-message-to-opencode-session")}catch(b){let a=(0,au.u1)(b);throw Error(`Failed to send message to OpenCode: ${a}`)}}supportsImage(){return!0}async sendMessageWithImage(a,b,c,d){let e=this.getSessionName(a,d);await this.requireSession("OpenCode",a,d,{relaunch:!1});let f=$(a,d);if(await this.trySendViaServer(f,b,c))return void(0,i.gm)(e);av.info("opencode-image-degraded-to-path",{worktreeId:a,instanceId:d??this.id}),await this.sendMessage(a,ay(b,c),d)}async killSession(a,b){let c=this.getSessionName(a,b),d=$(a,b),e=(0,W.hC)(d),g=await (0,ai.LQ)(d).catch(()=>null);g&&!g.captured&&av.info("opencode-session-capture-skipped",{sessionName:c,reason:g.skipped}),await ag(d);try{if(await (0,f.N)(c)){await (0,f.V1)(c,"/exit",!1),await new Promise(a=>setTimeout(a,al.pL)),await (0,f.KB)(c,["Enter"]),await new Promise(a=>setTimeout(a,al.KI));let a=await (0,ak.rY)({sessionAlive:()=>(0,f.N)(c),portAnswering:null===e?null:async()=>await (0,G.Ok)(e)!==null});a.ok||(av.warn("opencode-graceful-exit-postcondition-failed",{sessionName:c,reason:a.reason,...null!==e?{port:e}:{}}),await (0,f.fY)(c))}else await (0,f.fY)(c);(0,i.gm)(c),av.info("stopped-opencode-session")}catch(a){throw av.error("session:stop-failed",{error:(0,au.u1)(a)}),a}}async interrupt(a,b){let c=this.getSessionName(a,b);if(await af($(a,b))){(0,i.gm)(c),av.info("opencode-interrupt-aborted-via-api");return}await (0,f.ds)(c,"Escape"),await new Promise(a=>setTimeout(a,al.os)),await (0,f.ds)(c,"Escape"),(0,i.gm)(c),av.info("opencode-interrupt-sent")}constructor(...a){super(...a),this.id="opencode",this.name="OpenCode",this.command="opencode"}}},52112:(a,b,c)=>{c.d(b,{H:()=>f});var d=c(61789),e=c(70605);let f={composer:(0,e.lU)({isComposerRow:a=>d.lE.test((0,d._A)(a)),atBottom:({contentLines:a},b)=>!a.slice(b+1).some(a=>{let b=(0,d._A)(a);return d.Ly.test(b)||d.kT.test(b)})}),dialogTop:(0,e.uM)(a=>(0,d.dx)(a)?.start??-1),composerHidesDialogs:!0}},53554:(a,b,c)=>{function d(a){let b="[^\\S\\n]";return RegExp(`(?:^${b}*|\xb7${b}*|${b}{2})${a}(?:${b}\\([^()\\n]{1,32}\\))?(?:${b}*\xb7|${b}{2}|${b}*$)`,"i")}c.d(b,{h:()=>g});let e={key:"BTab",cycle:["default","plan","autopilot"],indicators:[{mode:"autopilot",pattern:d("autopilot")},{mode:"plan",pattern:d("plan(?:[^\\S\\n]mode)?")}],tailRows:2,noteId:null},f={claude:{key:"BTab",cycle:["auto","manual","accept-edits","plan"],indicators:[{mode:"accept-edits",pattern:/⏵⏵\s*accept edits on\b/},{mode:"auto",pattern:/⏵⏵\s*auto mode on\b/},{mode:"plan",pattern:/⏸\s*plan mode on\b/},{mode:"manual",pattern:/⏸\s*manual mode on\b/}],tailRows:3,noteId:null},"command-code":{key:"BTab",cycle:["default","accept-edits","plan"],indicators:[{mode:"accept-edits",pattern:/»\s*accept edits on\b/},{mode:"bypass",pattern:/»\s*permission bypass on\b/},{mode:"dont-ask",pattern:/»\s*don't-ask on\b/},{mode:"plan",pattern:/^[^\S\n]*plan mode\b/},{mode:"default",pattern:/\?\s+for\s+shortcuts\b/}],tailRows:4,noteId:null},codex:{key:"BTab",cycle:["default","plan"],indicators:[{mode:"plan",pattern:/\bPlan mode\s*\(shift\+tab to cycle\)/i}],tailRows:3,noteId:"codexModelCoupled"},copilot:e,antigravity:{key:"BTab",cycle:["default","accept-edits","plan"],indicators:[{mode:"accept-edits",pattern:d("accept-edits")},{mode:"plan",pattern:d("plan(?:[^\\S\\n]mode)?")}],tailRows:2,noteId:null},"opencode-v2":{key:"BTab",cycle:["build","plan"],indicators:[{mode:"build",pattern:/^[^\S\n]*┃[^\S\n]+Build[^\S\n]·[^\S\n]/},{mode:"plan",pattern:/^[^\S\n]*┃[^\S\n]+Plan[^\S\n]·[^\S\n]/}],tailRows:4,noteId:"opencodeAgentSwitch"}};function g(a){return f[a]??null}Object.keys(f)},58546:(a,b,c)=>{c.d(b,{R:()=>e});var d=c(47967);let e={composer:d.Z,dialogTop:(0,d.u)(/△ Permission required|┃\s*Questions\s*$/),composerHidesDialogs:!1}},58846:(a,b,c)=>{c.d(b,{j:()=>g});var d=c(94154),e=c(68652),f=c(70605);let g={composer:(0,f.W2)(a=>(0,d.p4)(a)?.openingSeparator??-1),dialogTop:(0,f.o6)({footer:e._,rule:/^─{10,}$/,maxRows:120}),composerHidesDialogs:!0}},61878:(a,b,c)=>{c.d(b,{h9:()=>p,Yc:()=>r,zJ:()=>q,j4:()=>s});var d=c(61789),e=c(68652),f=c(46423),g=c(52112),h=c(58846),i=c(85237),j=c(69130),k=c(83342),l=c(89021),m=c(58546);let n={claude:h.j,codex:i.YH,antigravity:g.H,"command-code":j.E,copilot:k.b,opencode:l.m,"opencode-v2":m.R};var o=c(70605);let p=15;function q(a,b){let c=(0,e.N)((0,d.aJ)(a)),g=c.split("\n"),h=g.length-1;for(;h>=0&&""===g[h].trim();)h--;let i=g.slice(0,h+1);return{raw:a,clean:c,lines:g,contentLines:i,liveRegion:(0,o.BA)(void 0===b?void 0:n[b],b??null,{raw:a,contentLines:i}),lastLines:i.slice(-p).join("\n"),thinkingLines:i.slice(-f.$).join("\n")}}function r(a,b){return a.liveRegion.tool===b?a.liveRegion:(0,o.BA)(n[b],b,{raw:a.raw,contentLines:a.contentLines})}function s(a,b){let c=r(a,b);return c===a.liveRegion?a:{...a,liveRegion:c}}},68652:(a,b,c)=>{c.d(b,{N:()=>h,_:()=>g});let d=/^(?:\s|\x1b\[[0-9;]*m)*Esc\s+to\s+cancel\s*[·•]\s*Tab\s+to\s+amend/i,e=/^(?:\s|\x1b\[[0-9;]*m)*Enter\s+to\s+select\b.*\bnavigate\b/i,f=/^\s*[>❯›]\s*(?:\d{1,2}[.)])?|esc\s+to\s+interrupt|[✻✽✶✢✳⦿◉●⠋⠙⠹⠸⠼⠴⠦⠧⠇⠏]\s+.+…/i;function g(a){return d.test(a)||e.test(a)}function h(a){if(""===a)return"";let b=a.split("\n"),c=-1;for(let a=b.length-1;a>=0;a--)if(g(b[a])){c=a;break}let d=b;return c>=0&&(d=b.slice(c+1).some(a=>f.test(a))?b.slice(c+1):b.slice(0,c+1)),(function(a){let b=[],c=!1;for(let d of a){let a=""===d.trim();a&&c||(b.push(d),c=a)}for(;b.length>0&&""===b[b.length-1].trim();)b.pop();return b})(d).join("\n")}},69130:(a,b,c)=>{c.d(b,{E:()=>g});var d=c(61789),e=c(70605);let f=/^❯\s*\d{1,2}[.)]\s/,g={composer:(0,e.W2)(a=>{let b=(0,d.I$)(a);return b<0||f.test((0,d.aJ)(a[b+1]??""))?-1:b}),dialogTop:(0,e.o6)({footer:a=>/↑\/↓ navigate · enter select/.test(a),rule:/^─{10,}$/,maxRows:120}),composerHidesDialogs:!0}},70605:(a,b,c)=>{function d(a,b){return{tool:a,anchor:"none",startRow:0,composerAtBottom:!1,composerHidesDialogs:!1,lines:b}}function e(a,b,c){let{contentLines:e}=c;if(void 0===a)return d(b,e);let f=a.composer.locate(c);if(null!==f)return{tool:b,anchor:"composer",startRow:f.start,composerEndRow:f.end??f.start,composerAtBottom:f.atBottom??!0,composerHidesDialogs:a.composerHidesDialogs,lines:e.slice(f.start)};let g=a.dialogTop?.locate(c)??null;return null!==g?{tool:b,anchor:"dialog",startRow:g.start,composerAtBottom:!1,composerHidesDialogs:a.composerHidesDialogs,lines:e.slice(g.start)}:d(b,e)}function f(a,b){return b.isPrompt&&b.promptData?.type==="multiple_choice"&&a.composerAtBottom&&a.composerHidesDialogs}function g(a,b){return null!==b&&!!a.composerAtBottom&&("numbered"===b.answerMode||a.composerHidesDialogs)}function h(a){return{locate({contentLines:b}){let c=a(b);return c<0?null:{start:c,end:m(b),atBottom:!0}}}}function i(a){return{locate(b){let{contentLines:c}=b;for(let d=c.length-1;d>=0;d--)if(a.isComposerRow(c[d]))return{start:d,end:d,atBottom:a.atBottom(b,d)};return null}}}function j(a){return{locate({contentLines:b}){let c=a(b);return c<0?null:{start:c}}}}c.d(b,{$$:()=>g,BA:()=>e,Sx:()=>m,W2:()=>h,lU:()=>i,o6:()=>l,uM:()=>j,z8:()=>f});let k=/^\s*(?:[❯›>●]\s*)?1[.)]\s+\S/;function l(a){return j(b=>{let c=-1;for(let d=b.length-1;d>=0;d--)if(a.footer(b[d])){c=d;break}if(c<0)return -1;let d=Math.max(0,c-a.maxRows),e=-1;for(let a=c-1;a>=d;a--)if(k.test(b[a])){e=a;break}if(e<0)return -1;for(let c=e-1;c>=d;c--)if(a.rule.test(b[c].trimEnd()))return c;return -1})}function m(a){let b=a.length-1;for(;b>=0&&""===a[b].trim();)b--;return b}},70849:(a,b,c)=>{c.d(b,{LQ:()=>k,SW:()=>l});var d=c(72626),e=c(84574),f=c(33294),g=c(77634),h=c(27939);let i=(0,d.h)("lib/session/opencode-session-recall");async function j(a,b){let c=new Set,d=await (0,g.GP)(a,b);for(let b=0;b<3;b+=1){if(null===d)return null;if(null===d.parentId||c.has(d.parentId))break;c.add(d.parentId),i.debug("opencode-session-parent-hop",{from:d.id,to:d.parentId}),d=await (0,g.GP)(a,d.parentId)}return d}async function k(a){let b=a.instanceId??a.cliToolId,c=(0,e.hC)(a);if(null===c)return{captured:!1,skipped:"no-port"};let d=(0,f.getLastAgentEvent)(a.worktreeId,"opencode",a.instanceId)?.sessionId;if(!(0,h.jp)(d))return{captured:!1,skipped:"no-session-observed"};let g=await j(c,d);if(null===g)return{captured:!1,skipped:"session-unreadable"};if(null===g.directory)return{captured:!1,skipped:"no-directory"};let k=(0,e.U9)(a);return null!==k&&k!==g.directory?(i.warn("opencode-session-capture-directory-mismatch",{worktreeId:a.worktreeId,instanceId:b,expected:k,reported:g.directory}),{captured:!1,skipped:"directory-mismatch"}):(0,h.F_)(a,{sessionId:g.id,title:g.title,worktreePath:g.directory})?(i.info("opencode-session-captured",{worktreeId:a.worktreeId,instanceId:b,sessionId:g.id,viaParentOf:g.id===d?null:d}),{captured:!0,memory:{sessionId:g.id,title:g.title,worktreePath:g.directory,updatedAt:Date.now()}}):{captured:!1,skipped:"not-persisted"}}async function l(a){let b=(0,e.hC)(a),c=(0,f.getLastAgentEvent)(a.worktreeId,"opencode",a.instanceId)?.sessionId;if(null!==b&&(0,h.jp)(c)){let a=await j(b,c);if(null!==a)return a.id}return(0,h.KA)(a)?.sessionId??null}},72272:(a,b,c)=>{c.d(b,{t:()=>i});var d=c(72626),e=c(50474),f=c(25071),g=c(17287);let h=(0,d.h)("lib/hooks/permission-adjudication");async function i(a,b,d,j,k="event"){let l=b.instanceId??b.cliToolId,m={worktreeId:b.worktreeId,cliToolId:b.cliToolId,instanceId:l},{resolvePermissionRequest:n}=await Promise.all([c.e(3241),c.e(3718)]).then(c.bind(c,43241)),o=n(m,j),p="allow"===o.behavior?{kind:"allowOnce"}:{kind:"abstain"};if("abstain"===p.kind){let c=(0,e.y_)(a);c.safe||h.warn("permission-request-abstain-blocks-agent",{worktreeId:b.worktreeId,cliToolId:b.cliToolId,instanceId:l,toolName:j?.toolName??null,decisionId:d.id,reason:o.reason,consequence:c.summary,blocksForMs:c.blocksForMs})}let{delivery:q}=await (0,f.GW)(a,b,d,p),r=q?.delivered===!0,s=r&&a.capabilities.permissionReplyReleasesPrompt;return(0,g.nL)(b.worktreeId,b.cliToolId,b.instanceId,{decisionId:d.id,toolName:j?.toolName??null,behavior:"allow"===o.behavior?"allow":null,reason:o.reason,delivered:r,releasedPrompt:s,trigger:k,at:d.askedAt}),h.info("permission-decision-adjudicated",{worktreeId:b.worktreeId,cliToolId:b.cliToolId,instanceId:l,decisionId:d.id,toolName:j?.toolName??null,behavior:o.behavior,reason:o.reason,suppressedBy:o.suppressedBy,delivered:r,settled:s,trigger:k}),{decisionId:d.id,behavior:"allow"===o.behavior?"allow":null,reason:o.reason,delivered:r,settled:s}}},77634:(a,b,c)=>{c.d(b,{GP:()=>l,Hv:()=>h,eJ:()=>n,mf:()=>o,y4:()=>m,yg:()=>p});var d=c(72626),e=c(49791),f=c(27939);let g=(0,d.h)("lib/session/opencode-session-api"),h="session_new";function i(a,b){let c=a[b];return"string"==typeof c&&c.length>0?c:null}async function j(a,b){try{let c=await fetch(a,{...b,redirect:e.uS,signal:AbortSignal.timeout(e.T0)});if(!c.ok)return null;if(!function(a){let b=a.headers?.get?.("content-type");return"string"==typeof b&&b.split(";",1)[0]?.trim().toLowerCase()===e._t}(c))return g.debug("opencode-session-request-content-type",{url:a,contentType:c.headers?.get?.("content-type")??null}),null;return await c.json()}catch(b){return g.debug("opencode-session-request-failed",{url:a,error:b instanceof Error?b.message:String(b)}),null}}function k(a){if(!("object"==typeof a&&null!==a&&!Array.isArray(a)))return null;let b=i(a,"id");if(!(0,f.jp)(b))return null;let c=i(a,"title");return{id:b,title:null===c?null:c.slice(0,f.Y2),directory:i(a,"directory"),parentId:i(a,"parentID")}}async function l(a,b){return(0,f.jp)(b)?k(await j(`${(0,e.M2)(a)}/session/${encodeURIComponent(b)}`)):null}async function m(a,b){return(0,f.jp)(b)?k(await j(`${(0,e.M2)(a)}/session/${encodeURIComponent(b)}/fork`,{method:"POST",headers:{"content-type":e._t},body:"{}"})):null}async function n(a){return!0===await j(`${(0,e.M2)(a)}/tui/open-sessions`,{method:"POST",headers:{"content-type":e._t},body:"{}"})}async function o(a,b){return!0===await j(`${(0,e.M2)(a)}/tui/execute-command`,{method:"POST",headers:{"content-type":e._t},body:JSON.stringify({command:b})})}async function p(a,b){return!!(0,f.jp)(b)&&!0===await j(`${(0,e.M2)(a)}/tui/select-session`,{method:"POST",headers:{"content-type":e._t},body:JSON.stringify({sessionID:b})})}},78099:(a,b,c)=>{c.d(b,{Tl:()=>g});var d=c(56263),e=c(2669);let f={claude:"Install with: npm install -g @anthropic-ai/claude-code",codex:"Install with: npm install -g @openai/codex",gemini:"Install with: npm install -g @google/gemini-cli",opencode:"Install with: npm install -g opencode-ai",copilot:d.zt,"command-code":"Install with: npm install -g command-code","opencode-v2":"Install with: npm install -g @opencode/cli",antigravity:"Install the Antigravity CLI: https://antigravity.google/docs/cli/reference","vibe-local":"vibe-local is a local script rather than a published package: put your own `vibe-local` executable on PATH."};function g(a,b){var c,d;return new e.lU(a.name,(c=a,d=b,`${c.name} (${c.command}) is not installed or not in PATH. `+(d?`${d} `:"")+`${f[c.id]}`))}},83342:(a,b,c)=>{c.d(b,{b:()=>f});var d=c(61789),e=c(70605);let f={composer:(0,e.W2)(a=>(0,d.wv)(a)),dialogTop:(0,e.uM)(function(a){let b=(0,e.Sx)(a),c=-1;for(let d=b;d>=Math.max(0,b-2);d--)if(a[d].trimStart().startsWith("╰")){c=d;break}if(c<0)return -1;for(let b=c-1;b>=Math.max(0,c-120);b--)if(a[b].trimStart().startsWith("╭"))return b;return -1}),composerHidesDialogs:!1}},85237:(a,b,c)=>{c.d(b,{Bh:()=>j,Ut:()=>i,YH:()=>k});var d=c(61789),e=c(65912),f=c(94154),g=c(51297),h=c(70605);function i(a){for(let b=a.length-1;b>=Math.max(0,a.length-10);b--){let c=a[b];if(d.aW.test(c)||d.UO.test(c))return b}return -1}function j(a){let b=i(a),c=b>=0?b-1:a.length-1;for(;c>=0&&""===a[c].trim();)c--;return c+1}let k={composer:{locate({raw:a,contentLines:b}){let c=j(b),i=(0,e.Gs)(a,b,c),k=(0,d.RK)(b);if(k>=0)return{start:k,end:function(a,b,c,d){let e=a.split("\n"),h=(0,f.mO)(e);if(null===h||(0,g.aJ)(e[h.firstRow]).trim()!==b[c]?.trim())return c;let i=Math.min(c+(h.lastRow-h.firstRow),d-1);return Math.max(c,i)}(a,b,k,c),atBottom:i};if(!i)return null;let l=(0,h.Sx)(b.slice(0,c));return l<0?null:{start:l,end:l,atBottom:!0}}},composerHidesDialogs:!0}},89021:(a,b,c)=>{c.d(b,{m:()=>e});var d=c(47967);let e={composer:d.Z,dialogTop:(0,d.u)(/△ Permission required/),composerHidesDialogs:!1}},89731:(a,b,c)=>{c.d(b,{Mj:()=>E,Km:()=>F});var d=c(79646),e=c(28354),f=c(40964),g=c(79892),h=c(96463),i=c(56717),j=c(23365),k=c(53554),l=c(93949),m=c(91536),n=c(50945),o=c(78099);let p=new Set;var q=c(51297),r=c(87447),s=c(45567),t=c(72626),u=c(77093),v=c(8953),w=c(20610),x=c(16983),y=c(35583);let z=(0,e.promisify)(d.exec),A=(0,t.h)("cli-tools/base"),B=RegExp(`${s.ZM}=(?:'([^']*)'|"([^"]*)"|(\\S+))`,"g"),C=new Set,D=new Set;class E{async isInstalled(){try{return await z(`which ${this.command}`,{timeout:5e3}),!0}catch{return!1}}getSessionName(a,b){return(0,f.mf)(this.id,a,b)}async isRunning(a,b){let c=this.getSessionName(a,b);return await (0,g.N)(c)}async startSession(a,b,d,e){let f=(0,y.Hb)();try{await (0,y.PS)(f,()=>this.launchSession(a,b,d,e))}catch(b){var g;throw this.takeAdoptionMark(a,d),g={worktreeId:a,cliToolId:this.id,instanceId:d,toolName:this.name},Promise.all([c.e(1356),c.e(1191),c.e(3480)]).then(c.bind(c,81099)).then(({notifySessionStartFailurePush:a})=>a({...g,error:b})).catch(()=>{}),b}finally{(0,y.O5)(a,this.id,d,f)}let h=this.takeAdoptionMark(a,d);null!==h&&await this.warnIfHookUrlIsStale(a,h,d)}async reconcileExistingSession(a,b,c){await (0,h.St)(a,b),C.add(a),await (0,g.zT)(a,c)}takeAdoptionMark(a,b){try{let c=this.getSessionName(a,b);return C.delete(c)?c:null}catch{return null}}async warnIfHookUrlIsStale(a,b,d){if(!D.has(b))try{let f=await (0,g.Xg)(b,{startLine:-x.eu});D.add(b);let h=function(a){let b=null;for(let c of(0,q.aJ)(a).matchAll(B)){let a=c[1]??c[2]??c[3]??null;a&&(b=a)}return b}(f);if(null===h)return;let i=function(a){try{let b=new URL(a);if(""!==b.port)return Number(b.port);return"https:"===b.protocol?443:80}catch{return null}}(h),j=(0,r.D0)();if(null===i||i===j)return;A.warn("session:hook-url-stale",{cliToolId:this.id,sessionName:b,sessionPort:i,serverPort:j});var e={worktreeId:a,cliToolId:this.id,instanceId:d,toolName:this.name,sessionPort:i,serverPort:j};let k=[e.worktreeId,e.instanceId??e.cliToolId,e.sessionPort,e.serverPort].join(":");p.has(k)||(p.add(k),Promise.all([c.e(1356),c.e(1191),c.e(3480)]).then(c.bind(c,81099)).then(({notifyStaleHookUrlPush:a})=>a(e)).catch(()=>{}))}catch(b){A.debug("session:hook-url-probe-failed",{cliToolId:this.id,worktreeId:a,error:b instanceof Error?b.message:String(b)})}}async warnIfRunningSessionHookUrlIsStale(a,b){let c;try{c=this.getSessionName(a,b)}catch{return}await this.warnIfHookUrlIsStale(a,c,b)}async interrupt(a,b){let c=this.getSessionName(a,b);await (0,g.ds)(c,"Escape")}describeComposer(){return(0,i.gc)(this.id)}gracefulExitSequence(){return(0,l.JV)(this.id)}captureSpec(){return(0,j.y)(this.id)}livenessSpec(){return(0,m.H7)(this.id)}async isToolLive(a,b){let c=this.livenessSpec(),d=await (0,n.Q)(a,c);if(d.alive)return!0;if(!b?.confirm)return!1;await new Promise(a=>setTimeout(a,w.kZ));let e=await (0,n.Q)(a,c);return e.alive?(A.info("session:liveness-confirm-recovered",{cliToolId:this.id,firstReason:d.reason}),!0):(A.warn("session:tool-exited",{cliToolId:this.id,reason:e.reason}),!1)}async relaunchIfToolExited(a,b){let c=this.getSessionName(a,b);if(await this.isToolLive(c))return;let d=await (0,g.nS)(c);if(null===d)return void A.warn("session:relaunch-skipped-no-path",{cliToolId:this.id,worktreeId:a});A.info("session:relaunch-before-send",{cliToolId:this.id,sessionName:c}),await this.startSession(a,d,b)}async requireSession(a,b,c,d){let e=this.getSessionName(b,c);if(!await (0,g.N)(e))throw Error(`${a} session ${e} does not exist. Start the session first.`);d.relaunch&&await this.relaunchIfToolExited(b,c)}async requireInstalled(){if(!await this.isInstalled())throw(0,o.Tl)(this)}async resolveLaunchPane(a,b,c,d){let e=this.getSessionName(a,c),f=await (0,g.N)(e);if(f){if(await this.reconcileExistingSession(e,b),await this.isToolLive(e,{confirm:!0}))return d.logger.info(d.liveAction),{sessionName:e,exists:f,live:!0};d.logger.warn(d.relaunchAction,{sessionName:e})}return{sessionName:e,exists:f,live:!1}}async createLaunchPane(a,b){await (0,g.jw)({sessionName:a,workingDirectory:b}),await new Promise(a=>setTimeout(a,w.Uc))}async requestExitAndKill(a,b,c){let d=this.getSessionName(a,b);try{await (0,g.N)(d)&&await c.requestExit(d);let a=await (0,g.fY)(d);c.afterKill?.(d),a&&c.logger.info(c.stoppedAction)}catch(a){throw c.logger.error("session:stop-failed",{error:(0,u.u1)(a)}),a}}navigationKeys(){return{keys:v.qD,leaderKey:null}}agentModeSpec(){return(0,k.h)(this.id)}}function F(a,b,c){a instanceof E&&a.warnIfRunningSessionHookUrlIsStale(b,c).catch(()=>{})}},93949:(a,b,c)=>{c.d(b,{JV:()=>j,M0:()=>g,rY:()=>l});var d=c(56263),e=c(20610),f=c(86069);let g="/exit",h={keys:[(0,f.IS)("C-d")],exitWaitMs:e.Zf,ownsLoopbackServer:!1},i={claude:h,codex:h,antigravity:h,gemini:{keys:[(0,f.IS)("C-c",e.Is),(0,f.iF)(`/quit\r`,void 0)],exitWaitMs:e.Zf,ownsLoopbackServer:!1},"vibe-local":{keys:[(0,f.IS)("C-c",e.Is),(0,f.IS)("C-c")],exitWaitMs:e.Zf,ownsLoopbackServer:!1},copilot:{keys:[(0,f.IS)("C-c",e.Is),(0,f.iF)("/exit",d.L1),(0,f.IS)("Enter")],exitWaitMs:e.Rk,ownsLoopbackServer:!1},"command-code":{keys:[(0,f.iF)("/exit",e.pL),(0,f.IS)("Enter")],exitWaitMs:e.Zf,ownsLoopbackServer:!1},opencode:{keys:[(0,f.iF)("/exit",e.pL),(0,f.IS)("Enter")],exitWaitMs:e.KI,ownsLoopbackServer:!0},"opencode-v2":{keys:[(0,f.iF)(g,e.pL),(0,f.IS)("Enter")],exitWaitMs:e.Lw,ownsLoopbackServer:!0}};function j(a){return i[a]??h}let k=a=>new Promise(b=>setTimeout(b,a));async function l(a){let b=Math.max(1,a.attempts??1),c=a.intervalMs??0,d=a.sleep??k,e=!0;for(let f=0;f<b&&(e=await a.sessionAlive());f+=1)f<b-1&&c>0&&await d(c);if(e)return{ok:!1,reason:"graceful_exit_timeout"};let f=a.portAnswering;if(!f)return{ok:!0};let g=!0;for(let a=0;a<b&&(g=await f());a+=1)a<b-1&&c>0&&await d(c);return g?{ok:!1,reason:"port_orphaned"}:{ok:!0}}}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
globalThis.__BUILD_MANIFEST={polyfillFiles:["static/chunks/polyfills-42372ed130431b0a.js"],devFiles:[],ampDevFiles:[],lowPriorityFiles:[],rootMainFiles:["static/chunks/webpack-
|
|
1
|
+
globalThis.__BUILD_MANIFEST={polyfillFiles:["static/chunks/polyfills-42372ed130431b0a.js"],devFiles:[],ampDevFiles:[],lowPriorityFiles:[],rootMainFiles:["static/chunks/webpack-165d8df9acd1c5d4.js","static/chunks/4bd1b696-100b9d70ed4e49c1.js","static/chunks/1255-7e5873f06b25e129.js","static/chunks/main-app-5d631b93b1219836.js"],rootMainFilesTree:{},pages:{"/_app":["static/chunks/webpack-165d8df9acd1c5d4.js","static/chunks/framework-eaf13c96191cb608.js","static/chunks/main-ac91ed6e71380841.js","static/chunks/pages/_app-4b3fb5e477a0267f.js"],"/_error":["static/chunks/webpack-165d8df9acd1c5d4.js","static/chunks/framework-eaf13c96191cb608.js","static/chunks/main-ac91ed6e71380841.js","static/chunks/pages/_error-c970d8b55ace1b48.js"]},ampFirstPages:[]},globalThis.__BUILD_MANIFEST.lowPriorityFiles=["/static/"+process.env.__NEXT_BUILD_ID+"/_buildManifest.js",,"/static/"+process.env.__NEXT_BUILD_ID+"/_ssgManifest.js"];
|
|
@@ -17,11 +17,11 @@
|
|
|
17
17
|
"wasm": [],
|
|
18
18
|
"assets": [],
|
|
19
19
|
"env": {
|
|
20
|
-
"__NEXT_BUILD_ID": "
|
|
21
|
-
"NEXT_SERVER_ACTIONS_ENCRYPTION_KEY": "
|
|
22
|
-
"__NEXT_PREVIEW_MODE_ID": "
|
|
23
|
-
"__NEXT_PREVIEW_MODE_SIGNING_KEY": "
|
|
24
|
-
"__NEXT_PREVIEW_MODE_ENCRYPTION_KEY": "
|
|
20
|
+
"__NEXT_BUILD_ID": "TPWbZB3zBp3Zv_eFEOlmt",
|
|
21
|
+
"NEXT_SERVER_ACTIONS_ENCRYPTION_KEY": "mdUg/hlMnJfhkQYPNf7kiGLuw+7oeODMw2PIVQzsqQ4=",
|
|
22
|
+
"__NEXT_PREVIEW_MODE_ID": "0c1beba3e5308578708ef5bb9e39a5ed",
|
|
23
|
+
"__NEXT_PREVIEW_MODE_SIGNING_KEY": "b38735c04e6353a99ca526bb96920000473c3757d1f442ff58bf16d8e6da67ec",
|
|
24
|
+
"__NEXT_PREVIEW_MODE_ENCRYPTION_KEY": "90a0a829ce11039f0b33ddc43858103d8d2bde3b70bcf94b44d4a924fd93c273"
|
|
25
25
|
}
|
|
26
26
|
}
|
|
27
27
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
self.__REACT_LOADABLE_MANIFEST='{"../node_modules/@mermaid-js/parser/dist/mermaid-parser.core.mjs -> ./chunks/mermaid-parser.core/architecture-PBZL5I3N.mjs":{"id":43389,"files":["static/chunks/3389.ba28c369d5fd285d.js"]},"../node_modules/@mermaid-js/parser/dist/mermaid-parser.core.mjs -> ./chunks/mermaid-parser.core/gitGraph-HDMCJU4V.mjs":{"id":51394,"files":["static/chunks/1394.ee511cecae812ccb.js"]},"../node_modules/@mermaid-js/parser/dist/mermaid-parser.core.mjs -> ./chunks/mermaid-parser.core/info-3K5VOQVL.mjs":{"id":65202,"files":["static/chunks/5202.7d64195cbab813a6.js"]},"../node_modules/@mermaid-js/parser/dist/mermaid-parser.core.mjs -> ./chunks/mermaid-parser.core/packet-RMMSAZCW.mjs":{"id":59775,"files":["static/chunks/9775.a8d4731819f32478.js"]},"../node_modules/@mermaid-js/parser/dist/mermaid-parser.core.mjs -> ./chunks/mermaid-parser.core/pie-UPGHQEXC.mjs":{"id":27968,"files":["static/chunks/7968.b3d37fbbecf5664e.js"]},"../node_modules/@mermaid-js/parser/dist/mermaid-parser.core.mjs -> ./chunks/mermaid-parser.core/radar-KQ55EAFF.mjs":{"id":90577,"files":["static/chunks/577.0af2b2fa2b043810.js"]},"../node_modules/@mermaid-js/parser/dist/mermaid-parser.core.mjs -> ./chunks/mermaid-parser.core/treemap-KZPCXAKY.mjs":{"id":12466,"files":["static/chunks/2466.813e7474cc702f5c.js"]},"../node_modules/mermaid/dist/chunks/mermaid.core/chunk-7R4GIKGN.mjs -> katex":{"id":84739,"files":["static/chunks/d3ac728e.5f6e6d9311df141b.js"]},"../node_modules/mermaid/dist/chunks/mermaid.core/chunk-GLR3WWYH.mjs -> ./cose-bilkent-S5V4N54A.mjs":{"id":51345,"files":["static/chunks/90542734.c2386877103b1d80.js","static/chunks/1345.7503fa6b29b871de.js"]},"../node_modules/mermaid/dist/chunks/mermaid.core/chunk-GLR3WWYH.mjs -> ./dagre-KLK3FWXG.mjs":{"id":80282,"files":["static/chunks/
|
|
1
|
+
self.__REACT_LOADABLE_MANIFEST='{"../node_modules/@mermaid-js/parser/dist/mermaid-parser.core.mjs -> ./chunks/mermaid-parser.core/architecture-PBZL5I3N.mjs":{"id":43389,"files":["static/chunks/3389.ba28c369d5fd285d.js"]},"../node_modules/@mermaid-js/parser/dist/mermaid-parser.core.mjs -> ./chunks/mermaid-parser.core/gitGraph-HDMCJU4V.mjs":{"id":51394,"files":["static/chunks/1394.ee511cecae812ccb.js"]},"../node_modules/@mermaid-js/parser/dist/mermaid-parser.core.mjs -> ./chunks/mermaid-parser.core/info-3K5VOQVL.mjs":{"id":65202,"files":["static/chunks/5202.7d64195cbab813a6.js"]},"../node_modules/@mermaid-js/parser/dist/mermaid-parser.core.mjs -> ./chunks/mermaid-parser.core/packet-RMMSAZCW.mjs":{"id":59775,"files":["static/chunks/9775.a8d4731819f32478.js"]},"../node_modules/@mermaid-js/parser/dist/mermaid-parser.core.mjs -> ./chunks/mermaid-parser.core/pie-UPGHQEXC.mjs":{"id":27968,"files":["static/chunks/7968.b3d37fbbecf5664e.js"]},"../node_modules/@mermaid-js/parser/dist/mermaid-parser.core.mjs -> ./chunks/mermaid-parser.core/radar-KQ55EAFF.mjs":{"id":90577,"files":["static/chunks/577.0af2b2fa2b043810.js"]},"../node_modules/@mermaid-js/parser/dist/mermaid-parser.core.mjs -> ./chunks/mermaid-parser.core/treemap-KZPCXAKY.mjs":{"id":12466,"files":["static/chunks/2466.813e7474cc702f5c.js"]},"../node_modules/mermaid/dist/chunks/mermaid.core/chunk-7R4GIKGN.mjs -> katex":{"id":84739,"files":["static/chunks/d3ac728e.5f6e6d9311df141b.js"]},"../node_modules/mermaid/dist/chunks/mermaid.core/chunk-GLR3WWYH.mjs -> ./cose-bilkent-S5V4N54A.mjs":{"id":51345,"files":["static/chunks/90542734.c2386877103b1d80.js","static/chunks/1345.7503fa6b29b871de.js"]},"../node_modules/mermaid/dist/chunks/mermaid.core/chunk-GLR3WWYH.mjs -> ./dagre-KLK3FWXG.mjs":{"id":80282,"files":["static/chunks/3480.2e21f62e5e9d3ba5.js","static/chunks/3237.94c29281d9ec122e.js","static/chunks/1464.09cd37fee202ec4b.js","static/chunks/282.a1013532fd9a61b4.js"]},"../node_modules/mermaid/dist/mermaid.core.mjs -> ./chunks/mermaid.core/architectureDiagram-2XIMDMQ5.mjs":{"id":80070,"files":["static/chunks/90542734.c2386877103b1d80.js","static/chunks/3480.2e21f62e5e9d3ba5.js","static/chunks/4290.c06dbe243819fea0.js","static/chunks/70.1b01cf72ef152ebb.js"]},"../node_modules/mermaid/dist/mermaid.core.mjs -> ./chunks/mermaid.core/blockDiagram-WCTKOSBZ.mjs":{"id":75222,"files":["static/chunks/3480.2e21f62e5e9d3ba5.js","static/chunks/3237.94c29281d9ec122e.js","static/chunks/5222.39e2034d3fce233c.js"]},"../node_modules/mermaid/dist/mermaid.core.mjs -> ./chunks/mermaid.core/c4Diagram-IC4MRINW.mjs":{"id":64378,"files":["static/chunks/4378.30a4e65db2d8c71b.js"]},"../node_modules/mermaid/dist/mermaid.core.mjs -> ./chunks/mermaid.core/classDiagram-VBA2DB6C.mjs":{"id":54384,"files":["static/chunks/6690.a55d53ee0693a21a.js","static/chunks/4384.0454992d5b8c885f.js"]},"../node_modules/mermaid/dist/mermaid.core.mjs -> ./chunks/mermaid.core/classDiagram-v2-RAHNMMFH.mjs":{"id":57528,"files":["static/chunks/6690.a55d53ee0693a21a.js","static/chunks/7528.a4b80119f4aa37c7.js"]},"../node_modules/mermaid/dist/mermaid.core.mjs -> ./chunks/mermaid.core/diagram-E7M64L7V.mjs":{"id":15146,"files":["static/chunks/3480.2e21f62e5e9d3ba5.js","static/chunks/4290.c06dbe243819fea0.js","static/chunks/5146.e5666bf9cd8ace31.js"]},"../node_modules/mermaid/dist/mermaid.core.mjs -> ./chunks/mermaid.core/diagram-IFDJBPK2.mjs":{"id":7318,"files":["static/chunks/3480.2e21f62e5e9d3ba5.js","static/chunks/4290.c06dbe243819fea0.js","static/chunks/7318.ca42d44599533a47.js"]},"../node_modules/mermaid/dist/mermaid.core.mjs -> ./chunks/mermaid.core/diagram-P4PSJMXO.mjs":{"id":28871,"files":["static/chunks/3480.2e21f62e5e9d3ba5.js","static/chunks/4290.c06dbe243819fea0.js","static/chunks/8871.5b1a67427b25ab0c.js"]},"../node_modules/mermaid/dist/mermaid.core.mjs -> ./chunks/mermaid.core/erDiagram-INFDFZHY.mjs":{"id":18923,"files":["static/chunks/8923.a9bfb5c9dae0a653.js"]},"../node_modules/mermaid/dist/mermaid.core.mjs -> ./chunks/mermaid.core/flowDiagram-PKNHOUZH.mjs":{"id":34943,"files":["static/chunks/4943.1300b9bbd8ca6846.js"]},"../node_modules/mermaid/dist/mermaid.core.mjs -> ./chunks/mermaid.core/ganttDiagram-A5KZAMGK.mjs":{"id":64489,"files":["static/chunks/4489.b5d699c8c24e75f9.js"]},"../node_modules/mermaid/dist/mermaid.core.mjs -> ./chunks/mermaid.core/gitGraphDiagram-K3NZZRJ6.mjs":{"id":77318,"files":["static/chunks/3480.2e21f62e5e9d3ba5.js","static/chunks/4290.c06dbe243819fea0.js","static/chunks/4937.4bc1a01e597e4966.js"]},"../node_modules/mermaid/dist/mermaid.core.mjs -> ./chunks/mermaid.core/infoDiagram-LFFYTUFH.mjs":{"id":75142,"files":["static/chunks/3480.2e21f62e5e9d3ba5.js","static/chunks/4290.c06dbe243819fea0.js","static/chunks/5142.1305911c3f99a90d.js"]},"../node_modules/mermaid/dist/mermaid.core.mjs -> ./chunks/mermaid.core/ishikawaDiagram-PHBUUO56.mjs":{"id":67295,"files":["static/chunks/7295.6e760de741e69d78.js"]},"../node_modules/mermaid/dist/mermaid.core.mjs -> ./chunks/mermaid.core/journeyDiagram-4ABVD52K.mjs":{"id":32311,"files":["static/chunks/2311.db2c5912f71d40fb.js"]},"../node_modules/mermaid/dist/mermaid.core.mjs -> ./chunks/mermaid.core/kanban-definition-K7BYSVSG.mjs":{"id":65694,"files":["static/chunks/5694.dda65070757534df.js"]},"../node_modules/mermaid/dist/mermaid.core.mjs -> ./chunks/mermaid.core/mindmap-definition-YRQLILUH.mjs":{"id":22601,"files":["static/chunks/2601.17b50928bf38c193.js"]},"../node_modules/mermaid/dist/mermaid.core.mjs -> ./chunks/mermaid.core/pieDiagram-SKSYHLDU.mjs":{"id":62935,"files":["static/chunks/3480.2e21f62e5e9d3ba5.js","static/chunks/4290.c06dbe243819fea0.js","static/chunks/2935.c6f0bf2fa2767553.js"]},"../node_modules/mermaid/dist/mermaid.core.mjs -> ./chunks/mermaid.core/quadrantDiagram-337W2JSQ.mjs":{"id":37732,"files":["static/chunks/7732.ba6419e9f3d62177.js"]},"../node_modules/mermaid/dist/mermaid.core.mjs -> ./chunks/mermaid.core/requirementDiagram-Z7DCOOCP.mjs":{"id":3862,"files":["static/chunks/3862.4bbe8bd40d770a1d.js"]},"../node_modules/mermaid/dist/mermaid.core.mjs -> ./chunks/mermaid.core/sankeyDiagram-WA2Y5GQK.mjs":{"id":22789,"files":["static/chunks/2789.d4f15555df3ca5b6.js"]},"../node_modules/mermaid/dist/mermaid.core.mjs -> ./chunks/mermaid.core/sequenceDiagram-2WXFIKYE.mjs":{"id":60886,"files":["static/chunks/2ff9d716.fcad4dc87234c8d8.js","static/chunks/8706.108a69de11de19c7.js"]},"../node_modules/mermaid/dist/mermaid.core.mjs -> ./chunks/mermaid.core/stateDiagram-RAJIS63D.mjs":{"id":97095,"files":["static/chunks/3480.2e21f62e5e9d3ba5.js","static/chunks/3237.94c29281d9ec122e.js","static/chunks/1464.09cd37fee202ec4b.js","static/chunks/9076.d3e3a7f356a416ba.js","static/chunks/7095.87323a4fdf426341.js"]},"../node_modules/mermaid/dist/mermaid.core.mjs -> ./chunks/mermaid.core/stateDiagram-v2-FVOUBMTO.mjs":{"id":6596,"files":["static/chunks/9076.d3e3a7f356a416ba.js","static/chunks/6596.78e45c31f50e3e5c.js"]},"../node_modules/mermaid/dist/mermaid.core.mjs -> ./chunks/mermaid.core/timeline-definition-YZTLITO2.mjs":{"id":79775,"files":["static/chunks/2156.f667232f18272330.js"]},"../node_modules/mermaid/dist/mermaid.core.mjs -> ./chunks/mermaid.core/vennDiagram-LZ73GAT5.mjs":{"id":38339,"files":["static/chunks/8339.855133c9f5c0be46.js"]},"../node_modules/mermaid/dist/mermaid.core.mjs -> ./chunks/mermaid.core/xychartDiagram-JWTSCODW.mjs":{"id":52918,"files":["static/chunks/2918.cfd6cee82abd3c55.js"]},"app/worktrees/[id]/terminal/page.tsx -> @/components/Terminal":{"id":27229,"files":["static/css/6ef2fa08dd043252.css","static/chunks/30d07d85.85dcdd0af8338499.js","static/chunks/7229.7f0f5a7032b612b4.js"]},"components/worktree/FilePanelContent.tsx -> @/components/worktree/HtmlPreview":{"id":530,"files":["static/chunks/530.578854fdd5d91542.js"]},"components/worktree/FilePanelContent.tsx -> @/components/worktree/MarkdownEditor":{"id":33922,"files":["static/chunks/3922.f45dcfc1e7da552a.js"]},"components/worktree/FilePanelContent.tsx -> @/components/worktree/PdfPreview":{"id":27307,"files":[]},"components/worktree/FileViewer.tsx -> @/components/worktree/MarkdownEditor":{"id":33922,"files":["static/chunks/3922.f45dcfc1e7da552a.js"]},"components/worktree/MermaidCodeBlock.tsx -> ./MermaidDiagram":{"id":90953,"files":["static/chunks/af7f6608.a62718fb6038c35a.js","static/chunks/7485.8a2a9d7c5396aa26.js","static/chunks/953.19e4c8178c9eac4c.js"]}}';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><html><head><meta charSet="utf-8" data-next-head=""/><meta name="viewport" content="width=device-width" data-next-head=""/><title data-next-head="">500: Internal Server Error</title><noscript data-n-css=""></noscript><script defer="" noModule="" src="/_next/static/chunks/polyfills-42372ed130431b0a.js"></script><script src="/_next/static/chunks/webpack-
|
|
1
|
+
<!DOCTYPE html><html><head><meta charSet="utf-8" data-next-head=""/><meta name="viewport" content="width=device-width" data-next-head=""/><title data-next-head="">500: Internal Server Error</title><noscript data-n-css=""></noscript><script defer="" noModule="" src="/_next/static/chunks/polyfills-42372ed130431b0a.js"></script><script src="/_next/static/chunks/webpack-165d8df9acd1c5d4.js" defer=""></script><script src="/_next/static/chunks/framework-eaf13c96191cb608.js" defer=""></script><script src="/_next/static/chunks/main-ac91ed6e71380841.js" defer=""></script><script src="/_next/static/chunks/pages/_app-4b3fb5e477a0267f.js" defer=""></script><script src="/_next/static/chunks/pages/_error-c970d8b55ace1b48.js" defer=""></script><script src="/_next/static/TPWbZB3zBp3Zv_eFEOlmt/_buildManifest.js" defer=""></script><script src="/_next/static/TPWbZB3zBp3Zv_eFEOlmt/_ssgManifest.js" defer=""></script></head><body><div id="__next"><div style="font-family:system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div style="line-height:48px"><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding-right:23px;font-size:24px;font-weight:500;vertical-align:top">500</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:28px">Internal Server Error<!-- -->.</h2></div></div></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{"statusCode":500}},"page":"/_error","query":{},"buildId":"TPWbZB3zBp3Zv_eFEOlmt","nextExport":true,"isFallback":false,"gip":true,"scriptLoader":[]}</script></body></html>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"node":{},"edge":{},"encryptionKey":"
|
|
1
|
+
{"node":{},"edge":{},"encryptionKey":"mdUg/hlMnJfhkQYPNf7kiGLuw+7oeODMw2PIVQzsqQ4="}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[1464],{41464:(e,n,r)=>{r.d(n,{Zp:()=>nE});var t,o=r(28555),i=r(26321),a=0;let u=function(e){var n=++a;return(0,i.A)(e)+n};var d=r(13439),c=r(43291),f=r(70131),s=Math.ceil,v=Math.max;let h=function(e,n,r,t){for(var o=-1,i=v(s((n-e)/(r||1)),0),a=Array(i);i--;)a[t?i:++o]=e,e+=r;return a};var l=r(49881),g=/\s/;let p=function(e){for(var n=e.length;n--&&g.test(e.charAt(n)););return n};var A=/^\s+/,w=r(33476),b=r(59027),y=0/0,m=/^[-+]0x[0-9a-f]+$/i,x=/^0b[01]+$/i,k=/^0o[0-7]+$/i,E=parseInt;let O=function(e){if("number"==typeof e)return e;if((0,b.A)(e))return y;if((0,w.A)(e)){var n,r="function"==typeof e.valueOf?e.valueOf():e;e=(0,w.A)(r)?r+"":r}if("string"!=typeof e)return 0===e?e:+e;e=(n=e)?n.slice(0,p(n)+1).replace(A,""):n;var t=x.test(e);return t||k.test(e)?E(e.slice(2),t?2:8):m.test(e)?y:+e};var _=1/0;let j=function(e){return e?(e=O(e))===_||e===-_?(e<0?-1:1)*17976931348623157e292:e==e?e:0:0===e?e:0},N=function(e,n,r){return r&&"number"!=typeof r&&(0,l.A)(e,n,r)&&(n=r=void 0),e=j(e),void 0===n?(n=e,e=0):n=j(n),r=void 0===r?e<n?1:-1:j(r),h(e,n,r,void 0)};var P=r(49856);class R{constructor(){var e={};e._next=e._prev=e,this._sentinel=e}dequeue(){var e=this._sentinel,n=e._prev;if(n!==e)return M(n),n}enqueue(e){var n=this._sentinel;e._prev&&e._next&&M(e),e._next=n._next,n._next._prev=e,n._next=e,e._prev=n}toString(){for(var e=[],n=this._sentinel,r=n._prev;r!==n;)e.push(JSON.stringify(r,L)),r=r._prev;return"["+e.join(", ")+"]"}}function M(e){e._prev._next=e._next,e._next._prev=e._prev,delete e._next,delete e._prev}function L(e,n){if("_next"!==e&&"_prev"!==e)return n}var C=d.A(1);function T(e,n,r,t,i){var a=i?[]:void 0;return o.A(e.inEdges(t.v),function(t){var o=e.edge(t),u=e.node(t.v);i&&a.push({v:t.v,w:t.w}),u.out-=o,G(n,r,u)}),o.A(e.outEdges(t.v),function(t){var o=e.edge(t),i=t.w,a=e.node(i);a.in-=o,G(n,r,a)}),e.removeNode(t.v),a}function G(e,n,r){r.out?r.in?e[r.out-r.in+n].enqueue(r):e[e.length-1].enqueue(r):e[0].enqueue(r)}var B=r(82214),S=r(70551),q=r(57386),z=r(19267),I=r(90904),D=r(62964);let F=function(e,n,r,t){if(!(0,w.A)(e))return e;n=(0,z.A)(n,e);for(var o=-1,i=n.length,a=i-1,u=e;null!=u&&++o<i;){var d=(0,D.A)(n[o]),c=r;if("__proto__"===d||"constructor"===d||"prototype"===d)break;if(o!=a){var f=u[d];void 0===(c=t?t(f,d,u):void 0)&&(c=(0,w.A)(f)?f:(0,I.A)(n[o+1])?[]:{})}(0,q.A)(u,d,c),u=u[d]}return e},V=function(e,n,r){for(var t=-1,o=n.length,i={};++t<o;){var a=n[t],u=(0,S.A)(e,a);r(u,a)&&F(i,(0,z.A)(a,e),u)}return i};var $=r(3416),J=r(25844),Z=r(52734),H=function(e){return(0,Z.A)((0,J.A)(e,void 0,c.A),e+"")}(function(e,n){return null==e?{}:V(e,n,function(n,r){return(0,$.A)(e,r)})}),K=r(3679),Q=r(37537),U=r(98046),W=Object.prototype,X=W.hasOwnProperty,Y=(0,K.A)(function(e,n){e=Object(e);var r=-1,t=n.length,o=t>2?n[2]:void 0;for(o&&(0,l.A)(n[0],n[1],o)&&(t=1);++r<t;)for(var i=n[r],a=(0,U.A)(i),u=-1,d=a.length;++u<d;){var c=a[u],f=e[c];(void 0===f||(0,Q.A)(f,W[c])&&!X.call(e,c))&&(e[c]=i[c])}return e}),ee=r(99814);let en=function(e,n){return e>n};var er=r(92729);let et=function(e){return e&&e.length?(0,ee.A)(e,er.A,en):void 0},eo=function(e){var n=null==e?0:e.length;return n?e[n-1]:void 0};var ei=r(15041),ea=r(27424),eu=r(72719);let ed=function(e,n){var r={};return n=(0,eu.A)(n,3),(0,ea.A)(e,function(e,t,o){(0,ei.A)(r,t,n(e,t,o))}),r};var ec=r(82945),ef=r(64477),es=Object.prototype.hasOwnProperty;let ev=function(e,n){return null!=e&&es.call(e,n)};var eh=r(13023);let el=function(e,n){return null!=e&&(0,eh.A)(e,n,ev)};var eg=r(62308);let ep=function(){return eg.A.Date.now()};function eA(e,n,r,t){var o;do o=u(t);while(e.hasNode(o));return r.dummy=n,e.setNode(o,r),o}function ew(e){var n=new P.T({multigraph:e.isMultigraph()}).setGraph(e.graph());return o.A(e.nodes(),function(r){e.children(r).length||n.setNode(r,e.node(r))}),o.A(e.edges(),function(r){n.setEdge(r,e.edge(r))}),n}function eb(e,n){var r,t,o=e.x,i=e.y,a=n.x-o,u=n.y-i,d=e.width/2,c=e.height/2;if(!a&&!u)throw Error("Not possible to find intersection inside of the rectangle");return Math.abs(u)*d>Math.abs(a)*c?(u<0&&(c=-c),r=c*a/u,t=c):(a<0&&(d=-d),r=d,t=d*u/a),{x:o+r,y:i+t}}function ey(e){var n=f.A(N(ex(e)+1),function(){return[]});return o.A(e.nodes(),function(r){var t=e.node(r),o=t.rank;ec.A(o)||(n[o][t.order]=r)}),n}function em(e,n,r,t){var o={width:0,height:0};return arguments.length>=4&&(o.rank=r,o.order=t),eA(e,"border",o,n)}function ex(e){return et(f.A(e.nodes(),function(n){var r=e.node(n).rank;if(!ec.A(r))return r}))}function ek(e,n){var r=ep();try{return n()}finally{console.log(e+" time: "+(ep()-r)+"ms")}}function eE(e,n){return n()}function eO(e,n,r,t,o,i){var a=o[n][i-1],u=eA(e,"border",{width:0,height:0,rank:i,borderType:n},r);o[n][i]=u,e.setParent(u,t),a&&e.setEdge(a,u,{weight:1})}function e_(e){o.A(e.nodes(),function(n){ej(e.node(n))}),o.A(e.edges(),function(n){ej(e.edge(n))})}function ej(e){var n=e.width;e.width=e.height,e.height=n}function eN(e){e.y=-e.y}function eP(e){var n=e.x;e.x=e.y,e.y=n}var eR=r(73033);let eM=function(e,n){return e&&e.length?(0,ee.A)(e,(0,eu.A)(n,2),eR.A):void 0};function eL(e){var n={};o.A(e.sources(),function r(t){var o=e.node(t);if(Object.prototype.hasOwnProperty.call(n,t))return o.rank;n[t]=!0;var i=ef.A(f.A(e.outEdges(t),function(n){return r(n.w)-e.edge(n).minlen}));return(i===1/0||null==i)&&(i=0),o.rank=i})}function eC(e,n){return e.node(n.w).rank-e.node(n.v).rank-e.edge(n).minlen}function eT(e){var n,r,t,i,a=new P.T({directed:!1}),u=e.nodes()[0],d=e.nodeCount();for(a.setNode(u,{});n=a,r=e,o.A(n.nodes(),function e(t){o.A(r.nodeEdges(t),function(o){var i=o.v,a=t===i?o.w:i;n.hasNode(a)||eC(r,o)||(n.setNode(a,{}),n.setEdge(t,a,{}),e(a))})}),n.nodeCount()<d;)t=function(e,n){return eM(n.edges(),function(r){if(e.hasNode(r.v)!==e.hasNode(r.w))return eC(n,r)})}(a,e),i=a.hasNode(t.v)?eC(e,t):-eC(e,t),function(e,n,r){o.A(e.nodes(),function(e){n.node(e).rank+=r})}(a,e,i);return a}var eG=r(21383),eB=r(29431),eS=r(7818);let eq=function(e){var n=j(e),r=n%1;return n==n?r?n-r:n:0};var ez=Math.max,eI=(t=function(e,n,r){var t=null==e?0:e.length;if(!t)return -1;var o=null==r?0:eq(r);return o<0&&(o=ez(t+o,0)),(0,eS.A)(e,(0,eu.A)(n,3),o)},function(e,n,r){var o=Object(e);if(!(0,eG.A)(e)){var i=(0,eu.A)(n,3);e=(0,eB.A)(e),n=function(e){return i(o[e],e,o)}}var a=t(e,n,r);return a>-1?o[i?e[a]:a]:void 0}),eD=r(73594);d.A(1),d.A(1);var eF=r(51496),eV=r(43967),e$=r(35582),eJ=r(64536),eZ=r(11331),eH=(0,r(37604).A)("length"),eK=RegExp("[\\u200d\ud800-\udfff\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff\\ufe0e\\ufe0f]"),eQ="\ud800-\udfff",eU="[\\u0300-\\u036f\\ufe20-\\ufe2f\\u20d0-\\u20ff]",eW="\ud83c[\udffb-\udfff]",eX="[^"+eQ+"]",eY="(?:\ud83c[\udde6-\uddff]){2}",e0="[\ud800-\udbff][\udc00-\udfff]",e1="(?:"+eU+"|"+eW+")?",e2="[\\ufe0e\\ufe0f]?",e3="(?:\\u200d(?:"+[eX,eY,e0].join("|")+")"+e2+e1+")*",e4=RegExp(eW+"(?="+eW+")|"+("(?:"+[eX+eU+"?",eU,eY,e0,"["+eQ+"]"].join("|"))+")"+(e2+e1+e3),"g");function e7(){}function e5(e,n,r){eJ.A(n)||(n=[n]);var t=(e.isDirected()?e.successors:e.neighbors).bind(e),i=[],a={};return o.A(n,function(n){if(!e.hasNode(n))throw Error("Graph does not have node: "+n);!function e(n,r,t,i,a,u){!Object.prototype.hasOwnProperty.call(i,r)&&(i[r]=!0,t||u.push(r),o.A(a(r),function(r){e(n,r,t,i,a,u)}),t&&u.push(r))}(e,n,"post"===r,a,t,i)}),i}function e9(e){n=e,r=new P.T().setGraph(n.graph()),o.A(n.nodes(),function(e){r.setNode(e,n.node(e))}),o.A(n.edges(),function(e){var t=r.edge(e.v,e.w)||{weight:0,minlen:1},o=n.edge(e);r.setEdge(e.v,e.w,{weight:t.weight+o.weight,minlen:Math.max(t.minlen,o.minlen)})}),eL(e=r);var n,r,t,i,a=eT(e);for(ne(a),e6(a,e);t=nn(a);)i=nr(a,e,t),nt(a,e,t,i)}function e6(e,n){var r=e5(e,e.nodes(),"post");r=r.slice(0,r.length-1),o.A(r,function(r){var t,o,i,a;t=e,o=n,i=r,a=t.node(i).parent,t.edge(i,a).cutvalue=e8(t,o,i)})}function e8(e,n,r){var t=e.node(r).parent,i=!0,a=n.edge(r,t),u=0;return a||(i=!1,a=n.edge(t,r)),u=a.weight,o.A(n.nodeEdges(r),function(o){var a=o.v===r,d=a?o.w:o.v;if(d!==t){var c,f,s,v=a===i,h=n.edge(o).weight;if(u+=v?h:-h,c=e,f=r,s=d,c.hasEdge(f,s)){var l=e.edge(r,d).cutvalue;u+=v?-l:l}}}),u}function ne(e,n){arguments.length<2&&(n=e.nodes()[0]),function e(n,r,t,i,a){var u=t,d=n.node(i);return r[i]=!0,o.A(n.neighbors(i),function(o){Object.prototype.hasOwnProperty.call(r,o)||(t=e(n,r,t,o,i))}),d.low=u,d.lim=t++,a?d.parent=a:delete d.parent,t}(e,{},1,n)}function nn(e){return eI(e.edges(),function(n){return e.edge(n).cutvalue<0})}function nr(e,n,r){var t=r.v,o=r.w;n.hasEdge(t,o)||(t=r.w,o=r.v);var i=e.node(t),a=e.node(o),u=i,d=!1;return i.lim>a.lim&&(u=a,d=!0),eM(eD.A(n.edges(),function(n){return d===no(e,e.node(n.v),u)&&d!==no(e,e.node(n.w),u)}),function(e){return eC(n,e)})}function nt(e,n,r,t){var i,a,u,d,c=r.v,f=r.w;e.removeEdge(c,f),e.setEdge(t.v,t.w,{}),ne(e),e6(e,n),i=e,a=n,u=eI(i.nodes(),function(e){return!a.node(e).parent}),d=(d=e5(i,u,"pre")).slice(1),o.A(d,function(e){var n=i.node(e).parent,r=a.edge(e,n),t=!1;r||(r=a.edge(n,e),t=!0),a.node(e).rank=a.node(n).rank+(t?r.minlen:-r.minlen)})}function no(e,n,r){return r.low<=n.lim&&n.lim<=r.lim}e7.prototype=Error(),r(37945),e9.initLowLimValues=ne,e9.initCutValues=e6,e9.calcCutValue=e8,e9.leaveEdge=nn,e9.enterEdge=nr,e9.exchangeEdges=nt;var ni=r(73308),na=r(57864),nu=r(23048);let nd=function(e,n,r){for(var t=-1,o=e.length,i=n.length,a={};++t<o;){var u=t<i?n[t]:void 0;r(a,e[t],u)}return a};var nc=r(3175),nf=r(42557),ns=r(57102);let nv=function(e,n){var r=e.length;for(e.sort(n);r--;)e[r]=e[r].value;return e};var nh=r(35668);let nl=function(e,n){if(e!==n){var r=void 0!==e,t=null===e,o=e==e,i=(0,b.A)(e),a=void 0!==n,u=null===n,d=n==n,c=(0,b.A)(n);if(!u&&!c&&!i&&e>n||i&&a&&d&&!u&&!c||t&&a&&d||!r&&d||!o)return 1;if(!t&&!i&&!c&&e<n||c&&r&&o&&!t&&!i||u&&r&&o||!a&&o||!d)return -1}return 0},ng=function(e,n,r){for(var t=-1,o=e.criteria,i=n.criteria,a=o.length,u=r.length;++t<a;){var d=nl(o[t],i[t]);if(d){if(t>=u)return d;return d*("desc"==r[t]?-1:1)}}return e.index-n.index},np=function(e,n,r){n=n.length?(0,nf.A)(n,function(e){return(0,eJ.A)(e)?function(n){return(0,S.A)(n,1===e.length?e[0]:e)}:e}):[er.A];var t=-1;return n=(0,nf.A)(n,(0,nh.A)(eu.A)),nv((0,ns.A)(e,function(e,r,o){return{criteria:(0,nf.A)(n,function(n){return n(e)}),index:++t,value:e}}),function(e,n){return ng(e,n,r)})};var nA=(0,K.A)(function(e,n){if(null==e)return[];var r=n.length;return r>1&&(0,l.A)(e,n[0],n[1])?n=[]:r>2&&(0,l.A)(n[0],n[1],n[2])&&(n=[n[0]]),np(e,(0,nc.A)(n,1),[])});function nw(e,n,r){for(var t;n.length&&(t=eo(n)).i<=r;)n.pop(),e.push(t.vs),r++;return r}function nb(e,n,r){return f.A(n,function(n){var t,i;return t=function(e){for(var n;e.hasNode(n=u("_root")););return n}(e),i=new P.T({compound:!0}).setGraph({root:t}).setDefaultNodeLabel(function(n){return e.node(n)}),o.A(e.nodes(),function(a){var u=e.node(a),d=e.parent(a);(u.rank===n||u.minRank<=n&&n<=u.maxRank)&&(i.setNode(a),i.setParent(a,d||t),o.A(e[r](a),function(n){var r=n.v===a?n.w:n.v,t=i.edge(r,a),o=ec.A(t)?0:t.weight;i.setEdge(r,a,{weight:e.edge(n).weight+o})}),Object.prototype.hasOwnProperty.call(u,"minRank")&&i.setNode(a,{borderLeft:u.borderLeft[n],borderRight:u.borderRight[n]}))}),i})}function ny(e,n){o.A(n,function(n){o.A(n,function(n,r){e.node(n).order=r})})}var nm=r(603),nx=r(50785);function nk(e,n,r){if(n>r){var t=n;n=r,r=t}Object.prototype.hasOwnProperty.call(e,n)||Object.defineProperty(e,n,{enumerable:!0,configurable:!0,value:{},writable:!0}),Object.defineProperty(e[n],r,{enumerable:!0,configurable:!0,value:!0,writable:!0})}function nE(e,n){var r=n&&n.debugTiming?ek:eE;r("layout",()=>{var n=r(" buildLayoutGraph",()=>{var n,r,t;return n=e,r=new P.T({multigraph:!0,compound:!0}),t=nT(n.graph()),r.setGraph(B.A({},n_,nC(t,nO),H(t,nj))),o.A(n.nodes(),function(e){var t=nT(n.node(e));r.setNode(e,Y(nC(t,nN),nP)),r.setParent(e,n.parent(e))}),o.A(n.edges(),function(e){var t=nT(n.edge(e));r.setEdge(e,B.A({},nM,nC(t,nR),H(t,nL)))}),r});r(" runLayout",()=>{var e,t;return e=n,void((t=r)(" makeSpaceForEdgeLabels",()=>{var n,r;return r=(n=e).graph(),void(r.ranksep/=2,o.A(n.edges(),function(e){var t=n.edge(e);t.minlen*=2,"c"!==t.labelpos.toLowerCase()&&("TB"===r.rankdir||"BT"===r.rankdir?t.width+=t.labeloffset:t.height+=t.labeloffset)}))}),t(" removeSelfEdges",()=>{var n;return n=e,void o.A(n.edges(),function(e){if(e.v===e.w){var r=n.node(e.v);r.selfEdges||(r.selfEdges=[]),r.selfEdges.push({e:e,label:n.edge(e)}),n.removeEdge(e)}})}),t(" acyclic",()=>{var n,r,t,i,a,d;return n="greedy"===e.graph().acyclicer?function(e,n){if(1>=e.nodeCount())return[];var r,t,i,a,u,d,s,v=(r=e,t=n||C,i=new P.T,a=0,u=0,o.A(r.nodes(),function(e){i.setNode(e,{v:e,in:0,out:0})}),o.A(r.edges(),function(e){var n=i.edge(e.v,e.w)||0,r=t(e);i.setEdge(e.v,e.w,n+r),u=Math.max(u,i.node(e.v).out+=r),a=Math.max(a,i.node(e.w).in+=r)}),d=N(u+a+3).map(function(){return new R}),s=a+1,o.A(i.nodes(),function(e){G(d,s,i.node(e))}),{graph:i,buckets:d,zeroIdx:s}),h=function(e,n,r){for(var t,o=[],i=n[n.length-1],a=n[0];e.nodeCount();){for(;t=a.dequeue();)T(e,n,r,t);for(;t=i.dequeue();)T(e,n,r,t);if(e.nodeCount()){for(var u=n.length-2;u>0;--u)if(t=n[u].dequeue()){o=o.concat(T(e,n,r,t,!0));break}}}return o}(v.graph,v.buckets,v.zeroIdx);return c.A(f.A(h,function(n){return e.outEdges(n.v,n.w)}))}(e,(r=e,function(e){return r.edge(e).weight})):(t=e,i=[],a={},d={},o.A(t.nodes(),function e(n){Object.prototype.hasOwnProperty.call(d,n)||(d[n]=!0,a[n]=!0,o.A(t.outEdges(n),function(n){Object.prototype.hasOwnProperty.call(a,n.w)?i.push(n):e(n.w)}),delete a[n])}),i),void o.A(n,function(n){var r=e.edge(n);e.removeEdge(n),r.forwardName=n.name,r.reversed=!0,e.setEdge(n.w,n.v,r,u("rev"))})}),t(" nestingGraph.run",()=>{var n,r,t,i,a,u,d,c;return n=eA(e,"root",{},"_root"),u=e,d={},o.A(u.children(),function(e){!function e(n,r){var t=u.children(n);t&&t.length&&o.A(t,function(n){e(n,r+1)}),d[n]=r}(e,1)}),r=d,i=2*(t=et(ni.A(r))-1)+1,e.graph().nestingRoot=n,o.A(e.edges(),function(n){e.edge(n).minlen*=i}),a=(c=e,na.A(c.edges(),function(e,n){return e+c.edge(n).weight},0)+1),void(o.A(e.children(),function(u){!function e(n,r,t,i,a,u,d){var c=n.children(d);if(!c.length){d!==r&&n.setEdge(r,d,{weight:0,minlen:t});return}var f=em(n,"_bt"),s=em(n,"_bb"),v=n.node(d);n.setParent(f,d),v.borderTop=f,n.setParent(s,d),v.borderBottom=s,o.A(c,function(o){e(n,r,t,i,a,u,o);var c=n.node(o),v=c.borderTop?c.borderTop:o,h=c.borderBottom?c.borderBottom:o,l=c.borderTop?i:2*i,g=v!==h?1:a-u[d]+1;n.setEdge(f,v,{weight:l,minlen:g,nestingEdge:!0}),n.setEdge(h,s,{weight:l,minlen:g,nestingEdge:!0})}),n.parent(d)||n.setEdge(r,f,{weight:0,minlen:a+u[d]})}(e,n,i,a,t,r,u)}),e.graph().nodeRankFactor=i)}),t(" rank",()=>(function(e){switch(e.graph().ranker){case"network-simplex":default:e9(e);break;case"tight-tree":var n;eL(n=e),eT(n);break;case"longest-path":eL(e)}})(ew(e))),t(" injectEdgeLabelProxies",()=>{var n;return n=e,void o.A(n.edges(),function(e){var r=n.edge(e);if(r.width&&r.height){var t=n.node(e.v),o={rank:(n.node(e.w).rank-t.rank)/2+t.rank,e:e};eA(n,"edge-proxy",o,"_ep")}})}),t(" removeEmptyRanks",()=>{var n,r,t,i;return n=ef.A(f.A(e.nodes(),function(n){return e.node(n).rank})),r=[],o.A(e.nodes(),function(t){var o=e.node(t).rank-n;r[o]||(r[o]=[]),r[o].push(t)}),t=0,i=e.graph().nodeRankFactor,void o.A(r,function(n,r){ec.A(n)&&r%i!=0?--t:t&&o.A(n,function(n){e.node(n).rank+=t})})}),t(" nestingGraph.cleanup",()=>{var n;return n=e.graph(),void(e.removeNode(n.nestingRoot),delete n.nestingRoot,o.A(e.edges(),function(n){e.edge(n).nestingEdge&&e.removeEdge(n)}))}),t(" normalizeRanks",()=>{var n;return n=ef.A(f.A(e.nodes(),function(n){return e.node(n).rank})),void o.A(e.nodes(),function(r){var t=e.node(r);el(t,"rank")&&(t.rank-=n)})}),t(" assignRankMinMax",()=>{var n,r;return n=e,r=0,void(o.A(n.nodes(),function(e){var t=n.node(e);t.borderTop&&(t.minRank=n.node(t.borderTop).rank,t.maxRank=n.node(t.borderBottom).rank,r=et(r,t.maxRank))}),n.graph().maxRank=r)}),t(" removeEdgeLabelProxies",()=>{var n;return n=e,void o.A(n.nodes(),function(e){var r=n.node(e);"edge-proxy"===r.dummy&&(n.edge(r.e).labelRank=r.rank,n.removeNode(e))})}),t(" normalize.run",()=>{e.graph().dummyChains=[],o.A(e.edges(),function(n){!function(e,n){var r,t,o=n.v,i=e.node(o).rank,a=n.w,u=e.node(a).rank,d=n.name,c=e.edge(n),f=c.labelRank;if(u!==i+1){e.removeEdge(n);var s=void 0;for(t=0,++i;i<u;++t,++i)c.points=[],r=eA(e,"edge",s={width:0,height:0,edgeLabel:c,edgeObj:n,rank:i},"_d"),i===f&&(s.width=c.width,s.height=c.height,s.dummy="edge-label",s.labelpos=c.labelpos),e.setEdge(o,r,{weight:c.weight},d),0===t&&e.graph().dummyChains.push(r),o=r;e.setEdge(o,a,{weight:c.weight},d)}}(e,n)})}),t(" parentDummyChains",()=>{var n,r,t,i;return r=e,t={},i=0,o.A(r.children(),function e(n){var a=i;o.A(r.children(n),e),t[n]={low:a,lim:i++}}),n=t,void o.A(e.graph().dummyChains,function(r){for(var t=e.node(r),o=t.edgeObj,i=function(e,n,r,t){var o,i,a=[],u=[],d=Math.min(n[r].low,n[t].low),c=Math.max(n[r].lim,n[t].lim);o=r;do a.push(o=e.parent(o));while(o&&(n[o].low>d||c>n[o].lim));for(i=o,o=t;(o=e.parent(o))!==i;)u.push(o);return{path:a.concat(u.reverse()),lca:i}}(e,n,o.v,o.w),a=i.path,u=i.lca,d=0,c=a[0],f=!0;r!==o.w;){if(t=e.node(r),f){for(;(c=a[d])!==u&&e.node(c).maxRank<t.rank;)d++;c===u&&(f=!1)}if(!f){for(;d<a.length-1&&e.node(c=a[d+1]).minRank<=t.rank;)d++;c=a[d]}e.setParent(r,c),r=e.successors(r)[0]}})}),t(" addBorderSegments",()=>{o.A(e.children(),function n(r){var t=e.children(r),i=e.node(r);if(t.length&&o.A(t,n),Object.prototype.hasOwnProperty.call(i,"minRank")){i.borderLeft=[],i.borderRight=[];for(var a=i.minRank,u=i.maxRank+1;a<u;++a)eO(e,"borderLeft","_bl",r,i,a),eO(e,"borderRight","_br",r,i,a)}})}),t(" order",()=>(function(e){var n=ex(e),r=nb(e,N(1,n+1),"inEdges"),t=nb(e,N(n-1,-1,-1),"outEdges"),i=(a={},u=eD.A(e.nodes(),function(n){return!e.children(n).length}),d=et(f.A(u,function(n){return e.node(n).rank})),s=f.A(N(d+1),function(){return[]}),v=nA(u,function(n){return e.node(n).rank}),o.A(v,function n(r){el(a,r)||(a[r]=!0,s[e.node(r).rank].push(r),o.A(e.successors(r),n))}),s);ny(e,i);for(var a,u,d,s,v,h,l=1/0,g=0,p=0;p<4;++g,++p){(function(e,n){var r=new P.T;o.A(e,function(e){var t,i,a,u=e.graph().root,d=function e(n,r,t,i){var a,u,d,s,v,h,l,g,p,A,w,b,y=n.children(r),m=n.node(r),x=m?m.borderLeft:void 0,k=m?m.borderRight:void 0,E={};x&&(y=eD.A(y,function(e){return e!==x&&e!==k}));var O=(a=y,f.A(a,function(e){var r=n.inEdges(e);if(!r.length)return{v:e};var t=na.A(r,function(e,r){var t=n.edge(r),o=n.node(r.v);return{sum:e.sum+t.weight*o.order,weight:e.weight+t.weight}},{sum:0,weight:0});return{v:e,barycenter:t.sum/t.weight,weight:t.weight}}));o.A(O,function(r){if(n.children(r.v).length){var o,a,u=e(n,r.v,t,i);E[r.v]=u,Object.prototype.hasOwnProperty.call(u,"barycenter")&&(o=r,a=u,ec.A(o.barycenter)?(o.barycenter=a.barycenter,o.weight=a.weight):(o.barycenter=(o.barycenter*o.weight+a.barycenter*a.weight)/(o.weight+a.weight),o.weight+=a.weight))}});var _=(u={},o.A(O,function(e,n){var r=u[e.v]={indegree:0,in:[],out:[],vs:[e.v],i:n};ec.A(e.barycenter)||(r.barycenter=e.barycenter,r.weight=e.weight)}),o.A(t.edges(),function(e){var n=u[e.v],r=u[e.w];ec.A(n)||ec.A(r)||(r.indegree++,n.out.push(u[e.w]))}),function(e){for(var n=[];e.length;){var r=e.pop();n.push(r),o.A(r.in.reverse(),function(e){return function(n){!n.merged&&(ec.A(n.barycenter)||ec.A(e.barycenter)||n.barycenter>=e.barycenter)&&function(e,n){var r=0,t=0;e.weight&&(r+=e.barycenter*e.weight,t+=e.weight),n.weight&&(r+=n.barycenter*n.weight,t+=n.weight),e.vs=n.vs.concat(e.vs),e.barycenter=r/t,e.weight=t,e.i=Math.min(n.i,e.i),n.merged=!0}(e,n)}}(r)),o.A(r.out,function(n){return function(r){r.in.push(n),0==--r.indegree&&e.push(r)}}(r))}return f.A(eD.A(n,function(e){return!e.merged}),function(e){return H(e,["vs","i","barycenter","weight"])})}(eD.A(u,function(e){return!e.indegree})));!function(e,n){o.A(e,function(e){e.vs=c.A(e.vs.map(function(e){return n[e]?n[e].vs:e}))})}(_,E);var j=(h=(d=function(e){return Object.prototype.hasOwnProperty.call(e,"barycenter")},s={lhs:[],rhs:[]},o.A(_,function(e){d(e)?s.lhs.push(e):s.rhs.push(e)}),v=s).lhs,l=nA(v.rhs,function(e){return-e.i}),g=[],p=0,A=0,w=0,h.sort(function(e){return function(n,r){return n.barycenter<r.barycenter?-1:n.barycenter>r.barycenter?1:e?r.i-n.i:n.i-r.i}}(!!i)),w=nw(g,l,w),o.A(h,function(e){w+=e.vs.length,g.push(e.vs),p+=e.barycenter*e.weight,A+=e.weight,w=nw(g,l,w)}),b={vs:c.A(g)},A&&(b.barycenter=p/A,b.weight=A),b);if(x&&(j.vs=c.A([x,j.vs,k]),n.predecessors(x).length)){var N=n.node(n.predecessors(x)[0]),P=n.node(n.predecessors(k)[0]);Object.prototype.hasOwnProperty.call(j,"barycenter")||(j.barycenter=0,j.weight=0),j.barycenter=(j.barycenter*j.weight+N.order+P.order)/(j.weight+2),j.weight+=2}return j}(e,u,r,n);o.A(d.vs,function(n,r){e.node(n).order=r}),t=d.vs,a={},o.A(t,function(n){for(var t,o,u=e.parent(n);u;){if((t=e.parent(u))?(o=a[t],a[t]=u):(o=i,i=u),o&&o!==u)return void r.setEdge(o,u);u=t}})})})(g%2?r:t,g%4>=2),i=ey(e);var A,w=function(e,n){for(var r=0,t=1;t<n.length;++t)r+=function(e,n,r){for(var t=nd(r||[],f.A(r,function(e,n){return n})||[],q.A),i=c.A(f.A(n,function(n){return nA(f.A(e.outEdges(n),function(n){return{pos:t[n.w],weight:e.edge(n).weight}}),"pos")})),a=1;a<r.length;)a<<=1;var u=2*a-1;a-=1;var d=f.A(Array(u),function(){return 0}),s=0;return o.A(i.forEach(function(e){var n=e.pos+a;d[n]+=e.weight;for(var r=0;n>0;)n%2&&(r+=d[n+1]),n=n-1>>1,d[n]+=e.weight;s+=e.weight*r})),s}(e,n[t-1],n[t]);return r}(e,i);w<l&&(p=0,A=i,h=(0,nu.A)(A,5),l=w)}ny(e,h)})(e)),t(" insertSelfEdges",()=>{var n,r;return r=ey(n=e),void o.A(r,function(e){var r=0;o.A(e,function(e,t){var i=n.node(e);i.order=t+r,o.A(i.selfEdges,function(e){eA(n,"selfedge",{width:e.label.width,height:e.label.height,rank:i.rank,order:t+ ++r,e:e.e,label:e.label},"_se")}),delete i.selfEdges})})}),t(" adjustCoordinateSystem",()=>{var n;("lr"===(n=e.graph().rankdir.toLowerCase())||"rl"===n)&&e_(e)}),t(" position",()=>{var n,r,t,i,a,u,d,c,s,v,h,l,g,p,A,w,b;A=ey(p=n=ew(n=e)),w=p.graph().ranksep,b=0,o.A(A,function(e){var n=et(f.A(e,function(e){return p.node(e).height}));o.A(e,function(e){p.node(e).y=b+n/2}),b+=n+w}),i=ey(r=n),u=B.A((a={},na.A(i,function(e,n){var t=0,i=0,u=e.length,d=eo(n);return o.A(n,function(e,c){var f=function(e,n){if(e.node(n).dummy)return eI(e.predecessors(n),function(n){return e.node(n).dummy})}(r,e),s=f?r.node(f).order:u;(f||e===d)&&(o.A(n.slice(i,c+1),function(e){o.A(r.predecessors(e),function(n){var o=r.node(n),i=o.order;(i<t||s<i)&&!(o.dummy&&r.node(e).dummy)&&nk(a,n,e)})}),i=c+1,t=s)}),n}),a),function(e,n){var r={};function t(n,t,i,a,u){var d;o.A(N(t,i),function(t){d=n[t],e.node(d).dummy&&o.A(e.predecessors(d),function(n){var t=e.node(n);t.dummy&&(t.order<a||t.order>u)&&nk(r,n,d)})})}return na.A(n,function(n,r){var i,a=-1,u=0;return o.A(r,function(o,d){if("border"===e.node(o).dummy){var c=e.predecessors(o);c.length&&(i=e.node(c[0]).order,t(r,u,d,a,i),u=d,a=i)}t(r,u,r.length,i,n.length)}),r}),r}(r,i)),d={},o.A(["u","d"],function(e){t="u"===e?i:ni.A(i).reverse(),o.A(["l","r"],function(n){"r"===n&&(t=f.A(t,function(e){return ni.A(e).reverse()}));var i,a,c,s,v=("u"===e?r.predecessors:r.successors).bind(r),h=(i=t,a={},c={},s={},o.A(i,function(e){o.A(e,function(e,n){a[e]=e,c[e]=e,s[e]=n})}),o.A(i,function(e){var n=-1;o.A(e,function(e){var r=v(e);if(r.length)for(var t=((r=nA(r,function(e){return s[e]})).length-1)/2,o=Math.floor(t),i=Math.ceil(t);o<=i;++o){var d=r[o];c[e]===e&&n<s[d]&&!function(e,n,r){if(n>r){var t=n;n=r,r=t}return!!e[n]&&Object.prototype.hasOwnProperty.call(e[n],r)}(u,e,d)&&(c[d]=e,c[e]=a[e]=a[d],n=s[d])}})}),{root:a,align:c}),l=function(e,n,r,t,i){var a,u,d,c,f,s,v,h,l,g,p={},A=(a=e,u=n,d=r,c=i,h=new P.T,g=(f=(l=a.graph()).nodesep,s=l.edgesep,v=c,function(e,n,r){var t,o,i=e.node(n),a=e.node(r);if(t=0+i.width/2,Object.prototype.hasOwnProperty.call(i,"labelpos"))switch(i.labelpos.toLowerCase()){case"l":o=-i.width/2;break;case"r":o=i.width/2}if(o&&(t+=v?o:-o),o=0,t+=(i.dummy?s:f)/2,t+=(a.dummy?s:f)/2,t+=a.width/2,Object.prototype.hasOwnProperty.call(a,"labelpos"))switch(a.labelpos.toLowerCase()){case"l":o=a.width/2;break;case"r":o=-a.width/2}return o&&(t+=v?o:-o),o=0,t}),o.A(u,function(e){var n;o.A(e,function(e){var r=d[e];if(h.setNode(r),n){var t=d[n],o=h.edge(t,r);h.setEdge(t,r,Math.max(g(a,e,n),o||0))}n=e})}),h),w=i?"borderLeft":"borderRight";function b(e,n){for(var r=A.nodes(),t=r.pop(),o={};t;)o[t]?e(t):(o[t]=!0,r.push(t),r=r.concat(n(t))),t=r.pop()}return b(function(e){p[e]=A.inEdges(e).reduce(function(e,n){return Math.max(e,p[n.v]+A.edge(n))},0)},A.predecessors.bind(A)),b(function(n){var r=A.outEdges(n).reduce(function(e,n){return Math.min(e,p[n.w]-A.edge(n))},1/0),t=e.node(n);r!==1/0&&t.borderType!==w&&(p[n]=Math.max(p[n],r))},A.successors.bind(A)),o.A(t,function(e){p[e]=p[r[e]]}),p}(r,t,h.root,h.align,"r"===n);"r"===n&&(l=ed(l,function(e){return-e})),d[e+n]=l})}),c=eM(ni.A(d),function(e){var n,t=-1/0,o=1/0;return n=function(e,n){var i,a,u=(i=r,a=n,i.node(a).width/2);t=Math.max(e+u,t),o=Math.min(e-u,o)},null==e||(0,nx.A)(e,(0,nm.A)(n),U.A),t-o}),s=ni.A(c),v=ef.A(s),h=et(s),o.A(["u","d"],function(e){o.A(["l","r"],function(n){var r,t=e+n,o=d[t];if(o!==c){var i=ni.A(o);(r="l"===n?v-ef.A(i):h-et(i))&&(d[t]=ed(o,function(e){return e+r}))}})}),l=r.graph().align,g=ed(d.ul,function(e,n){if(l)return d[l.toLowerCase()][n];var r=nA(f.A(d,n));return(r[1]+r[2])/2}),g&&(0,ea.A)(g,(0,nm.A)(function(e,r){n.node(r).x=e}))}),t(" positionSelfEdges",()=>{var n;return n=e,void o.A(n.nodes(),function(e){var r=n.node(e);if("selfedge"===r.dummy){var t=n.node(r.e.v),o=t.x+t.width/2,i=t.y,a=r.x-o,u=t.height/2;n.setEdge(r.e,r.label),n.removeNode(e),r.label.points=[{x:o+2*a/3,y:i-u},{x:o+5*a/6,y:i-u},{x:o+a,y:i},{x:o+5*a/6,y:i+u},{x:o+2*a/3,y:i+u}],r.label.x=r.x,r.label.y=r.y}})}),t(" removeBorderNodes",()=>{var n;return n=e,void(o.A(n.nodes(),function(e){if(n.children(e).length){var r=n.node(e),t=n.node(r.borderTop),o=n.node(r.borderBottom),i=n.node(eo(r.borderLeft)),a=n.node(eo(r.borderRight));r.width=Math.abs(a.x-i.x),r.height=Math.abs(o.y-t.y),r.x=i.x+r.width/2,r.y=t.y+r.height/2}}),o.A(n.nodes(),function(e){"border"===n.node(e).dummy&&n.removeNode(e)}))}),t(" normalize.undo",()=>{o.A(e.graph().dummyChains,function(n){var r,t=e.node(n),o=t.edgeLabel;for(e.setEdge(t.edgeObj,o);t.dummy;)r=e.successors(n)[0],e.removeNode(n),o.points.push({x:t.x,y:t.y}),"edge-label"===t.dummy&&(o.x=t.x,o.y=t.y,o.width=t.width,o.height=t.height),n=r,t=e.node(n)})}),t(" fixupEdgeLabelCoords",()=>{var n;return n=e,void o.A(n.edges(),function(e){var r=n.edge(e);if(Object.prototype.hasOwnProperty.call(r,"x"))switch(("l"===r.labelpos||"r"===r.labelpos)&&(r.width-=r.labeloffset),r.labelpos){case"l":r.x-=r.width/2+r.labeloffset;break;case"r":r.x+=r.width/2+r.labeloffset}})}),t(" undoCoordinateSystem",()=>{var n,r,t;("bt"===(n=e.graph().rankdir.toLowerCase())||"rl"===n)&&(r=e,o.A(r.nodes(),function(e){eN(r.node(e))}),o.A(r.edges(),function(e){var n=r.edge(e);o.A(n.points,eN),Object.prototype.hasOwnProperty.call(n,"y")&&eN(n)})),("lr"===n||"rl"===n)&&(t=e,o.A(t.nodes(),function(e){eP(t.node(e))}),o.A(t.edges(),function(e){var n=t.edge(e);o.A(n.points,eP),Object.prototype.hasOwnProperty.call(n,"x")&&eP(n)}),e_(e))}),t(" translateGraph",()=>(function(e){var n=1/0,r=0,t=1/0,i=0,a=e.graph(),u=a.marginx||0,d=a.marginy||0;function c(e){var o=e.x,a=e.y,u=e.width,d=e.height;n=Math.min(n,o-u/2),r=Math.max(r,o+u/2),t=Math.min(t,a-d/2),i=Math.max(i,a+d/2)}o.A(e.nodes(),function(n){c(e.node(n))}),o.A(e.edges(),function(n){var r=e.edge(n);Object.prototype.hasOwnProperty.call(r,"x")&&c(r)}),n-=u,t-=d,o.A(e.nodes(),function(r){var o=e.node(r);o.x-=n,o.y-=t}),o.A(e.edges(),function(r){var i=e.edge(r);o.A(i.points,function(e){e.x-=n,e.y-=t}),Object.prototype.hasOwnProperty.call(i,"x")&&(i.x-=n),Object.prototype.hasOwnProperty.call(i,"y")&&(i.y-=t)}),a.width=r-n+u,a.height=i-t+d})(e)),t(" assignNodeIntersects",()=>{var n;return n=e,void o.A(n.edges(),function(e){var r,t,o=n.edge(e),i=n.node(e.v),a=n.node(e.w);o.points?(r=o.points[0],t=o.points[o.points.length-1]):(o.points=[],r=a,t=i),o.points.unshift(eb(i,r)),o.points.push(eb(a,t))})}),t(" reversePoints",()=>{var n;return n=e,void o.A(n.edges(),function(e){var r=n.edge(e);r.reversed&&r.points.reverse()})}),t(" acyclic.undo",()=>{o.A(e.edges(),function(n){var r=e.edge(n);if(r.reversed){e.removeEdge(n);var t=r.forwardName;delete r.reversed,delete r.forwardName,e.setEdge(n.w,n.v,r,t)}})}))}),r(" updateInputGraph",()=>{var r,t;return r=e,t=n,void(o.A(r.nodes(),function(e){var n=r.node(e),o=t.node(e);n&&(n.x=o.x,n.y=o.y,t.children(e).length&&(n.width=o.width,n.height=o.height))}),o.A(r.edges(),function(e){var n=r.edge(e),o=t.edge(e);n.points=o.points,Object.prototype.hasOwnProperty.call(o,"x")&&(n.x=o.x,n.y=o.y)}),r.graph().width=t.graph().width,r.graph().height=t.graph().height)})})}var nO=["nodesep","edgesep","ranksep","marginx","marginy"],n_={ranksep:50,edgesep:20,nodesep:50,rankdir:"tb"},nj=["acyclicer","ranker","rankdir","align"],nN=["width","height"],nP={width:0,height:0},nR=["minlen","weight","width","height","labeloffset"],nM={minlen:1,weight:1,width:0,height:0,labeloffset:10,labelpos:"r"},nL=["labelpos"];function nC(e,n){return ed(H(e,n),Number)}function nT(e){var n={};return o.A(e,function(e,r){n[r.toLowerCase()]=e}),n}},43291:(e,n,r)=>{r.d(n,{A:()=>o});var t=r(3175);let o=function(e){return(null==e?0:e.length)?(0,t.A)(e,1):[]}},57102:(e,n,r)=>{r.d(n,{A:()=>i});var t=r(60936),o=r(21383);let i=function(e,n){var r=-1,i=(0,o.A)(e)?Array(e.length):[];return(0,t.A)(e,function(e,t,o){i[++r]=n(e,t,o)}),i}},64477:(e,n,r)=>{r.d(n,{A:()=>a});var t=r(99814),o=r(73033),i=r(92729);let a=function(e){return e&&e.length?(0,t.A)(e,i.A,o.A):void 0}},70131:(e,n,r)=>{r.d(n,{A:()=>u});var t=r(42557),o=r(72719),i=r(57102),a=r(64536);let u=function(e,n){return((0,a.A)(e)?t.A:i.A)(e,(0,o.A)(n,3))}},73033:(e,n,r)=>{r.d(n,{A:()=>t});let t=function(e,n){return e<n}},99814:(e,n,r)=>{r.d(n,{A:()=>o});var t=r(59027);let o=function(e,n,r){for(var o=-1,i=e.length;++o<i;){var a=e[o],u=n(a);if(null!=u&&(void 0===d?u==u&&!(0,t.A)(u):r(u,d)))var d=u,c=a}return c}}}]);
|