commandmate 0.34.0 → 0.35.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 +178 -165
- package/.next/app-path-routes-manifest.json +29 -29
- package/.next/build-manifest.json +2 -2
- package/.next/prerender-manifest.json +9 -9
- package/.next/required-server-files.json +1 -1
- package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/server/app/api/agents/update/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/agents/versions/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/app/update/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/app/update-check/route.js +1 -1
- package/.next/server/app/api/app/update-check/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/assistant/conversation/route.js.nft.json +1 -1
- package/.next/server/app/api/assistant/conversation/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/assistant/current-output/route.js.nft.json +1 -1
- package/.next/server/app/api/assistant/current-output/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/assistant/messages/route.js +1 -1
- package/.next/server/app/api/assistant/messages/route.js.nft.json +1 -1
- package/.next/server/app/api/assistant/messages/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/assistant/session/route.js +1 -1
- package/.next/server/app/api/assistant/session/route.js.nft.json +1 -1
- package/.next/server/app/api/assistant/session/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/assistant/start/route.js +1 -1
- package/.next/server/app/api/assistant/start/route.js.nft.json +1 -1
- package/.next/server/app/api/assistant/start/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/assistant/terminal/route.js +1 -1
- package/.next/server/app/api/assistant/terminal/route.js.nft.json +1 -1
- package/.next/server/app/api/assistant/terminal/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/assistant/tools/route.js.nft.json +1 -1
- package/.next/server/app/api/assistant/tools/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/auth/login/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/auth/logout/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/auth/status/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/capabilities/route.js +1 -1
- package/.next/server/app/api/capabilities/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/daily-summary/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/daily-summary/status/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/external-apps/[id]/health/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/external-apps/[id]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/external-apps/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/fs/browse/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/fs/recent-paths/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/hooks/agent-event/route.js.nft.json +1 -1
- package/.next/server/app/api/hooks/agent-event/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/hooks/claude-done/route.js +1 -1
- package/.next/server/app/api/hooks/claude-done/route.js.nft.json +1 -1
- package/.next/server/app/api/hooks/claude-done/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/hooks/permission-request/route.js.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/[id]/todos/[todoId]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/repositories/[id]/todos/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/repositories/clone/[jobId]/route.js +1 -1
- package/.next/server/app/api/repositories/clone/[jobId]/route.js.nft.json +1 -1
- package/.next/server/app/api/repositories/clone/[jobId]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/repositories/clone/route.js +1 -1
- package/.next/server/app/api/repositories/clone/route.js.nft.json +1 -1
- package/.next/server/app/api/repositories/clone/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/repositories/excluded/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/repositories/restore/route.js +1 -1
- package/.next/server/app/api/repositories/restore/route.js.nft.json +1 -1
- package/.next/server/app/api/repositories/restore/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/repositories/route.js +1 -1
- package/.next/server/app/api/repositories/route.js.nft.json +1 -1
- package/.next/server/app/api/repositories/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/repositories/scan/route.js +1 -1
- package/.next/server/app/api/repositories/scan/route.js.nft.json +1 -1
- package/.next/server/app/api/repositories/scan/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/repositories/sync/route.js +1 -1
- package/.next/server/app/api/repositories/sync/route.js.nft.json +1 -1
- package/.next/server/app/api/repositories/sync/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/repositories/validate-path/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/settings/default-agents/route.js.nft.json +1 -1
- package/.next/server/app/api/settings/default-agents/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/settings/default-surface-mode/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/sidebar/group-order/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/skills/[id]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/skills/installations/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/skills/operations/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/skills/reindex/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/skills/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/slash-commands/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/tasks/[taskId]/cancel/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/tasks/[taskId]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/templates/[id]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/templates/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/todos/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/verification/runs/[runId]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/verification/runs/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/auto-yes/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/auto-yes/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/auto-yes/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/capture/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/capture/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/clear-composer/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/clear-composer/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/clear-composer/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/cli-reference/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/cli-tool/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/cmate/schedules/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/current-output/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/current-output/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/current-output/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/env/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/execution-logs/[logId]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/execution-logs/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/files/[...path]/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/files/[...path]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/branch/create/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/branch/delete/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/branches/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/checkout/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/commit/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/diff/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/fetch/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/log/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/pull/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/push/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/reset/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/revert/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/show/[commitHash]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/stage/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/staged/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/stash/[index]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/stash/apply/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/stash/pop/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/stash/push/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/stash/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/status/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/unstage/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/working-diff/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/instances/notes/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/instances/opencode/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/instances/opencode/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/interrupt/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/interrupt/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/kill-session/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/kill-session/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/kill-session/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/logs/[filename]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/logs/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/marp-render/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/memos/[memoId]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/memos/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/messages/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/opencode/diff/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/opencode/session/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/opencode/share/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/prompt-response/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/prompt-response/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/prompt-response/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/resolve-target/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/respond/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/respond/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/respond/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/schedules/[scheduleId]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/schedules/active/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/schedules/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/search/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/send/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/send/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/send/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/skills/[skillId]/git-workflow/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/skills/[skillId]/git-workflow/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/skills/[skillId]/install/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/skills/[skillId]/plan/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/skills/[skillId]/uninstall-plan/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/skills/[skillId]/update/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/skills/[skillId]/update-plan/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/skills/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/slash-commands/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/special-keys/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/special-keys/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/special-keys/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/tasks/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/terminal/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/terminal/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/timers/history/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/timers/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/timers/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/timers/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/todos/[todoId]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/todos/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/tree/[...path]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/tree/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/upload/[...path]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/verify/config/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/verify/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/verify/runs/[runId]/cancel/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/verify/runs/[runId]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/verify/runs/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/viewed/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/apply-default-agents/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/route.js +1 -1
- package/.next/server/app/api/worktrees/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/route_client-reference-manifest.js +1 -1
- package/.next/server/app/chat/page.js +2 -2
- package/.next/server/app/chat/page.js.nft.json +1 -1
- package/.next/server/app/chat/page_client-reference-manifest.js +1 -1
- package/.next/server/app/login/page_client-reference-manifest.js +1 -1
- package/.next/server/app/manifest.webmanifest/route_client-reference-manifest.js +1 -1
- package/.next/server/app/more/page.js +2 -2
- package/.next/server/app/more/page.js.nft.json +1 -1
- package/.next/server/app/more/page_client-reference-manifest.js +1 -1
- package/.next/server/app/offline/page_client-reference-manifest.js +1 -1
- package/.next/server/app/page.js +1 -1
- package/.next/server/app/page.js.nft.json +1 -1
- package/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/server/app/proxy/[...path]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/repositories/page.js +2 -2
- package/.next/server/app/repositories/page.js.nft.json +1 -1
- package/.next/server/app/repositories/page_client-reference-manifest.js +1 -1
- package/.next/server/app/review/page.js +1 -1
- package/.next/server/app/review/page.js.nft.json +1 -1
- package/.next/server/app/review/page_client-reference-manifest.js +1 -1
- package/.next/server/app/sessions/page.js +1 -1
- package/.next/server/app/sessions/page.js.nft.json +1 -1
- package/.next/server/app/sessions/page_client-reference-manifest.js +1 -1
- package/.next/server/app/skills/[skillId]/page.js +2 -2
- package/.next/server/app/skills/[skillId]/page.js.nft.json +1 -1
- package/.next/server/app/skills/[skillId]/page_client-reference-manifest.js +1 -1
- package/.next/server/app/skills/installed/page.js +2 -2
- package/.next/server/app/skills/installed/page.js.nft.json +1 -1
- package/.next/server/app/skills/installed/page_client-reference-manifest.js +1 -1
- package/.next/server/app/skills/page.js +1 -1
- package/.next/server/app/skills/page.js.nft.json +1 -1
- package/.next/server/app/skills/page_client-reference-manifest.js +1 -1
- package/.next/server/app/worktrees/[id]/files/[...path]/page_client-reference-manifest.js +1 -1
- package/.next/server/app/worktrees/[id]/page.js +11 -11
- package/.next/server/app/worktrees/[id]/page.js.nft.json +1 -1
- package/.next/server/app/worktrees/[id]/page_client-reference-manifest.js +1 -1
- package/.next/server/app/worktrees/[id]/terminal/page_client-reference-manifest.js +1 -1
- package/.next/server/app-paths-manifest.json +29 -29
- package/.next/server/chunks/1210.js +1 -1
- package/.next/server/chunks/{6286.js → 1467.js} +6 -6
- package/.next/server/chunks/1886.js +1 -1
- package/.next/server/chunks/2980.js +1 -1
- package/.next/server/chunks/3077.js +1 -1
- package/.next/server/chunks/3241.js +1 -1
- package/.next/server/chunks/3323.js +1 -1
- package/.next/server/chunks/434.js +1 -0
- package/.next/server/chunks/4443.js +1 -1
- package/.next/server/chunks/450.js +1 -1
- package/.next/server/chunks/6130.js +1 -1
- package/.next/server/chunks/650.js +1 -1
- package/.next/server/chunks/6677.js +3 -3
- package/.next/server/chunks/7075.js +1 -1
- package/.next/server/chunks/7506.js +1 -1
- package/.next/server/chunks/7905.js +1 -1
- package/.next/server/chunks/8728.js +8 -0
- package/.next/server/chunks/8807.js +10 -10
- package/.next/server/chunks/8918.js +5 -5
- package/.next/server/chunks/9123.js +2 -2
- package/.next/server/middleware-manifest.json +5 -5
- package/.next/server/pages/500.html +1 -1
- package/.next/server/server-reference-manifest.json +1 -1
- package/.next/server/src/middleware.js +1 -1
- package/.next/server/src/middleware.js.map +1 -1
- package/.next/static/chunks/2407-b9001cc6041876e1.js +1 -0
- package/.next/static/chunks/{4322-dfd5a7119b5ba4fc.js → 4322-59a7dbd77a7763cc.js} +1 -1
- package/.next/static/chunks/4388-410b1d8ed0d8d98b.js +1 -0
- package/.next/static/chunks/4718-56ebb6e55073ed5e.js +1 -0
- package/.next/static/chunks/{2652-18b8fea64413467e.js → 4809-145884b958e7d9a6.js} +1 -1
- package/.next/static/chunks/app/chat/{page-e60d07c4c79602f0.js → page-609c9a0f5ce44799.js} +1 -1
- package/.next/static/chunks/app/error-c1dc1038d0a84a33.js +1 -0
- package/.next/static/chunks/app/global-error-49f765ecb7fd6527.js +1 -0
- package/.next/static/chunks/app/{layout-4c2f21e3f653ee4c.js → layout-114dc6e93e332392.js} +1 -1
- package/.next/static/chunks/app/more/{page-fc94f86aa881489e.js → page-7c5380e4a7561935.js} +1 -1
- package/.next/static/chunks/app/{page-26a42881c8648cd3.js → page-a4f03c188610c6c8.js} +1 -1
- package/.next/static/chunks/app/repositories/{page-2576158c8420fda0.js → page-a15efb4ce1d1721e.js} +1 -1
- package/.next/static/chunks/app/review/{page-35b99baaf3c93b38.js → page-90ac618489676cbc.js} +1 -1
- package/.next/static/chunks/app/sessions/{page-a3ab6f122ec60d5a.js → page-6486d9a643c1dc6f.js} +1 -1
- package/.next/static/chunks/app/skills/[skillId]/{page-06799157652e8fa9.js → page-844872df04f52943.js} +1 -1
- package/.next/static/chunks/app/skills/installed/{page-2f3987e3a131c8d0.js → page-566dfde26d7e63ba.js} +1 -1
- package/.next/static/chunks/app/skills/{page-e70bfcf5ed4e4865.js → page-7859540e8092aace.js} +1 -1
- package/.next/static/chunks/app/worktrees/[id]/page-3a58ae66e203f935.js +1 -0
- package/.next/trace +14 -13
- package/README.md +141 -24
- package/dist/cli/commands/remote.d.ts +93 -3
- package/dist/cli/commands/remote.d.ts.map +1 -1
- package/dist/cli/commands/remote.js +232 -9
- package/dist/cli/types/index.d.ts +9 -0
- package/dist/cli/types/index.d.ts.map +1 -1
- package/dist/cli/utils/api-client.d.ts.map +1 -1
- package/dist/cli/utils/api-client.js +11 -1
- package/dist/cli/utils/remote-state.d.ts +32 -0
- package/dist/cli/utils/remote-state.d.ts.map +1 -1
- package/dist/cli/utils/remote-state.js +12 -0
- package/dist/lib/detection/tools/verified-against.d.ts +20 -0
- package/dist/lib/detection/tools/verified-against.d.ts.map +1 -1
- package/dist/lib/detection/tools/verified-against.js +20 -0
- package/dist/server/server.js +204 -16
- package/dist/server/src/config/websocket-config.js +67 -0
- package/dist/server/src/lib/auto-yes-poller.js +40 -7
- package/dist/server/src/lib/db/agent-instances-db.js +11 -0
- package/dist/server/src/lib/detection/selection-shape.js +361 -3
- package/dist/server/src/lib/detection/tools/command-code/detect.js +96 -0
- package/dist/server/src/lib/detection/tools/command-code/dialog.js +314 -0
- package/dist/server/src/lib/detection/tools/verified-against.js +20 -0
- package/dist/server/src/lib/hooks/sources/opencode/ports.js +6 -0
- package/dist/server/src/lib/polling/response-checker.js +48 -2
- package/dist/server/src/lib/relay/relay-session-ref.js +15 -8
- package/dist/server/src/lib/ws-server.js +185 -6
- package/package.json +1 -1
- package/public/sw.js +12 -0
- package/.next/server/chunks/1049.js +0 -1
- package/.next/server/chunks/595.js +0 -8
- package/.next/static/chunks/4718-2d9f0397a8f931c4.js +0 -1
- package/.next/static/chunks/8361-0142beb59be2abf3.js +0 -1
- package/.next/static/chunks/app/error-27ab04bce6545dae.js +0 -1
- package/.next/static/chunks/app/global-error-7b761b8e181ffc1f.js +0 -1
- package/.next/static/chunks/app/worktrees/[id]/page-a39ec2a0732d11a6.js +0 -1
- /package/.next/static/{gniPBCKoXtbIOQey8kNcx → 0vChXhzA5YWj3f0D6A-Cn}/_buildManifest.js +0 -0
- /package/.next/static/{gniPBCKoXtbIOQey8kNcx → 0vChXhzA5YWj3f0D6A-Cn}/_ssgManifest.js +0 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";exports.id=6286,exports.ids=[6286],exports.modules={1102:(a,b,c)=>{c.d(b,{m_:()=>i});var d=c(21124),e=c(38301),f=c(23312);function g(a,b,c){return Math.min(Math.max(a,4),Math.max(4,c-b-4))}let h={top:-9999,left:-9999};function i({content:a,placement:b="right",delay:c=100,children:i,className:j}){let[k,l]=(0,e.useState)(!1),[m,n]=(0,e.useState)(!1),[o,p]=(0,e.useState)(null),q=(0,e.useRef)(null),r=(0,e.useRef)(null),s=(0,e.useRef)(null),t=(0,e.useCallback)(()=>{null!==s.current&&(clearTimeout(s.current),s.current=null)},[]),u=(0,e.useCallback)(()=>{t(),s.current=setTimeout(()=>{l(!0),s.current=null},c)},[c,t]),v=(0,e.useCallback)(()=>{t(),l(!1)},[t]),w=(0,e.useCallback)(()=>{n(!0)},[]),x=(0,e.useCallback)(()=>{n(!1)},[]);return(0,e.useCallback)(()=>{t(),l(!1),n(!1)},[t]),(0,e.useCallback)(()=>{let a=q.current,c=r.current;if(!a||!c)return;let d=a.getBoundingClientRect(),e=c.getBoundingClientRect();p(function(a,b,c,d){let e,f,h=b.left+b.width/2-c.width/2,i=b.top+b.height/2-c.height/2;switch(a){case"top":e=b.top-c.height-8,f=h;break;case"bottom":e=b.top+b.height+8,f=h;break;case"left":e=i,f=b.left-c.width-8;break;default:e=i,f=b.left+b.width+8}return{top:g(e,c.height,d.height),left:g(f,c.width,d.width)}}(b,{top:d.top,left:d.left,width:d.width,height:d.height},{width:e.width,height:e.height},{width:window.innerWidth,height:window.innerHeight}))},[b]),(0,d.jsxs)("span",{ref:q,"data-testid":"tooltip-wrapper",className:j?`relative inline-flex ${j}`:"relative inline-flex",tabIndex:-1,onMouseEnter:u,onMouseLeave:v,onFocus:w,onBlur:x,children:[i,(k||m)&&"undefined"!=typeof document&&(0,f.createPortal)((0,d.jsx)("span",{ref:r,role:"tooltip","aria-hidden":"true","data-placement":b,className:"fixed z-40 whitespace-nowrap px-2 py-1 text-xs font-medium rounded bg-foreground text-background shadow-lg pointer-events-none",style:o??h,children:a}),document.body)]})}},8509:(a,b,c)=>{c.d(b,{g:()=>h});var d=c(21124);c(38301);var e=c(20481),f=c(5772),g=c(12480);function h(){let{size:a,setSize:b,isMobile:c}=(0,f.Ps)(),h=(0,e.c)("common");if(c)return null;let i=h("displaySize.ariaLabel");return(0,d.jsxs)("div",{className:"flex items-center",children:[(0,d.jsx)("label",{htmlFor:"pc-display-size",className:"sr-only",children:i}),(0,d.jsx)("select",{id:"pc-display-size","data-testid":"pc-display-size-select","aria-label":i,value:a,onChange:a=>{let c=a.target.value;(0,g.fM)(c)&&b(c)},className:"text-sm bg-transparent text-foreground border border-input rounded-md px-2 py-1 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring",children:g.Uf.map(a=>(0,d.jsx)("option",{value:a,children:h(`displaySize.${a}`)},a))})]})}},16286:(a,b,c)=>{c.d(b,{GV:()=>a$});var d=c(21124),e=c(38301),f=c.n(e),g=c(42378),h=c(3991),i=c.n(h),j=c(52761);let k=(0,e.forwardRef)(function({href:a,onClick:b,target:c,...e},f){let h=(0,g.usePathname)(),k=(0,j.Hq)();return(0,d.jsx)(i(),{ref:f,href:a,target:c,onClick:d=>{var e;b?.(d),d.defaultPrevented||0!==(e=d).button||e.metaKey||e.ctrlKey||e.shiftKey||e.altKey||void 0!==c&&"_self"!==c||/^([a-z][a-z0-9+.-]*:)?\/\//i.test(a)||/^(mailto:|tel:)/i.test(a)||(d.preventDefault(),a!==h&&k.push(a))},...e})});var l=c(20481),m=c(15917),n=c(88285),o=c(97950),p=c(8509),q=c(81092),r=c(32482);function s(){let a=(0,q.pT)(),b=(0,l.c)("common");if(!a)return null;let{repoTabBarMode:c,setRepoTabBarMode:e}=a;return(0,d.jsxs)("div",{className:"hidden md:flex items-center",children:[(0,d.jsx)("label",{htmlFor:"repo-tab-bar-mode",className:"sr-only",children:b("repoTabBar.settingLabel")}),(0,d.jsx)("select",{id:"repo-tab-bar-mode","data-testid":"repo-tab-bar-mode-select","aria-label":b("repoTabBar.settingLabel"),title:b("repoTabBar.settingLabel"),value:c,onChange:a=>{let b=a.target.value;(0,r.m3)(b)&&e(b)},className:"rounded-md border border-border bg-surface px-2 py-1 text-sm text-muted-foreground transition-colors hover:text-foreground focus:outline-none focus:ring-2 focus:ring-ring",children:r.EN.map(a=>(0,d.jsx)("option",{value:a,children:b(`repoTabBar.mode.${a}`)},a))})]})}var t=c(45523),u=c(70175),v=c(60988);function w(){let{theme:a,setTheme:b}=(0,t.D)(),[c,f]=(0,e.useState)(!1);if(!c)return(0,d.jsx)("div",{"data-testid":"theme-toggle-placeholder",className:"w-8 h-8","aria-hidden":"true"});let g="dark"===a;return(0,d.jsx)("button",{"data-testid":"theme-toggle",onClick:()=>b(g?"light":"dark"),className:"p-1.5 rounded-md text-muted-foreground hover:text-foreground hover:bg-muted transition-colors focus:outline-none focus:ring-2 focus:ring-ring","aria-label":g?"Switch to light mode":"Switch to dark mode",title:g?"Switch to light mode":"Switch to dark mode",children:g?(0,d.jsx)(u.A,{className:"w-5 h-5","data-testid":"theme-icon-sun"}):(0,d.jsx)(v.A,{className:"w-5 h-5","data-testid":"theme-icon-moon"})})}var x=c(67619);function y(){let{status:a}=(0,x.xM)(),b=(0,l.c)("common");if("connected"===a)return null;let c="connecting"===a,e=b(c?"connection.reconnecting":"connection.offline");return(0,d.jsxs)("span",{"data-testid":"connection-status-indicator",role:"status","aria-live":"polite",title:b(c?"connection.reconnectingTooltip":"connection.offlineTooltip"),className:"hidden sm:inline-flex items-center gap-1.5 rounded-full border border-border bg-surface px-2 py-0.5 text-xs text-muted-foreground",children:[(0,d.jsx)("span",{"aria-hidden":"true",className:["w-1.5 h-1.5 rounded-full",c?"bg-warning motion-safe:animate-pulse":"bg-muted-foreground"].join(" ")}),e]})}var z=c(85647),A=c(64632);let B=[{labelKey:"nav.home",href:"/",isActive:a=>"/"===a},{labelKey:"nav.chat",href:"/chat",isActive:a=>a.startsWith("/chat")},{labelKey:"nav.sessions",href:"/sessions",isActive:a=>a.startsWith("/sessions")},{labelKey:"nav.repositoriesShort",href:"/repositories",isActive:a=>a.startsWith("/repositories")},{labelKey:"nav.reviewReport",href:"/review",isActive:a=>a.startsWith("/review")},{labelKey:"nav.more",href:"/more",isActive:a=>a.startsWith("/more")}];function C({title:a="CommandMate"}){let b=(0,g.usePathname)(),c=(0,l.c)("commandPalette"),e=(0,l.c)("common"),{setOpen:h}=(0,A.C)(),[i,j]=f().useState(null);return(0,d.jsx)("header",{className:"sticky top-0 z-50 border-b border-border bg-background supports-[backdrop-filter]:bg-background/80 backdrop-blur-md",children:(0,d.jsx)("div",{className:"container-custom",children:(0,d.jsxs)("div",{className:"flex items-center justify-between h-16",children:[(0,d.jsx)("div",{className:"flex items-center space-x-4",children:(0,d.jsxs)(k,{href:"/",className:"flex items-center space-x-2 hover:opacity-80 transition-opacity",children:[(0,d.jsx)("div",{className:"w-8 h-8 bg-accent-600 rounded-lg flex items-center justify-center",children:(0,d.jsx)(m.A,{size:20,strokeWidth:2,className:"text-white","aria-hidden":"true"})}),(0,d.jsx)("h1",{className:"text-xl font-bold text-foreground",children:a})]})}),(0,d.jsxs)("nav",{className:"flex items-center space-x-6",role:"navigation",children:[B.map(a=>{let c=a.isActive(b);return(0,d.jsx)(k,{href:a.href,"aria-current":c?"page":void 0,className:`relative py-1 text-sm font-medium transition-colors after:absolute after:inset-x-0 after:bottom-0 after:h-0.5 after:rounded-full after:bg-accent-600 dark:after:bg-accent-400 after:origin-center motion-safe:after:transition-transform after:duration-200 after:ease-[var(--motion-ease-out)] ${c?"text-accent-600 dark:text-accent-400 after:scale-x-100":"text-muted-foreground hover:text-foreground after:scale-x-0"}`,children:e(a.labelKey)},a.href)}),(0,d.jsxs)("button",{type:"button","data-testid":"header-command-palette-trigger",onClick:()=>h(!0),"aria-label":c("mobileTrigger"),className:"hidden md:inline-flex items-center gap-2 rounded-md border border-border bg-surface px-2.5 py-1.5 text-sm text-muted-foreground hover:bg-surface-2 transition-colors",children:[(0,d.jsx)(n.A,{size:16,strokeWidth:2,"aria-hidden":"true",className:"shrink-0"}),(0,d.jsx)("span",{children:c("searchAction")}),i&&(0,d.jsxs)("span",{className:"flex items-center gap-0.5",children:[(0,d.jsx)(z.u,{children:i}),(0,d.jsx)(z.u,{children:"K"})]})]}),(0,d.jsx)(y,{}),(0,d.jsx)(p.g,{}),(0,d.jsx)(s,{}),(0,d.jsx)(w,{}),(0,d.jsxs)("a",{href:"https://github.com/kewton/MyCodeBranchDesk",target:"_blank",rel:"noopener noreferrer",className:"text-sm font-medium text-muted-foreground hover:text-foreground transition-colors flex items-center space-x-1",children:[(0,d.jsx)(o.A,{size:20,strokeWidth:2,"aria-hidden":"true"}),(0,d.jsx)("span",{children:"GitHub"})]})]})]})})})}var D=c(90076);let E={showSidebar:!0,showGlobalNav:!0,showLocalNav:!1,autoCollapseSidebar:!1},F=[{prefix:"/worktrees/",config:{showGlobalNav:!1,showLocalNav:!0}},{prefix:"/sessions",config:{autoCollapseSidebar:!0}}];var G=c(5772),H=c(65828),I=c(10366),J=c(99615),K=c(22023),L=c(47817),M=c(23312),N=c.n(M),O=c(89877),P=c(22317);let Q=(0,e.memo)(function({status:a,label:b,waitingKind:c}){return(0,d.jsx)(P.m,{"data-testid":"status-indicator",status:a,label:b,waitingKind:c,size:"lg"})});function R({id:a,branch:b,isVisible:c,anchorRef:f,nextActionLabel:g}){let[h,i]=(0,e.useState)({top:-9999,left:-9999}),j=(0,e.useRef)(null);if("undefined"==typeof document||!c)return null;let k=Math.min(384,Math.max(0,window.innerWidth-16));return N().createPortal((0,d.jsxs)("div",{ref:j,id:a,role:"tooltip",className:" fixed z-[9999] px-3 py-2 rounded-md shadow-lg bg-sidebar text-xs text-sidebar-foreground border border-sidebar-border pointer-events-none max-w-sm transition-opacity duration-150 ",style:{top:h.top,left:h.left,maxWidth:k},children:[(0,d.jsx)("p",{className:"font-medium text-sidebar-foreground whitespace-nowrap",children:b.name}),(0,d.jsx)("p",{className:"text-sidebar-muted whitespace-nowrap",children:b.repositoryName}),(0,d.jsxs)("p",{className:"text-sidebar-muted whitespace-nowrap",children:["Status: ",b.status]}),b.worktreePath&&(0,d.jsx)("p",{className:"text-sidebar-muted truncate",children:b.worktreePath}),g&&(0,d.jsxs)("p",{className:"text-sidebar-muted whitespace-nowrap",children:["Next: ",g]}),b.description&&(0,d.jsx)("p",{className:"text-sidebar-muted mt-1 border-t border-sidebar-border pt-1 whitespace-pre-wrap break-words",children:b.description})]}),document.body)}let S=0,T=(0,e.memo)(function({branch:a,isSelected:b,onClick:c,showRepositoryName:f=!0}){let g=(0,l.c)("common"),h=(0,l.c)("worktree"),i=`tooltip-${a.id}`,j=(0,e.useRef)(null),[k,m]=(0,e.useState)(!1),n=(0,e.useRef)(null),o=(0,e.useCallback)(()=>{null!==n.current&&(clearTimeout(n.current),n.current=null)},[]);(0,e.useEffect)(()=>()=>o(),[o]);let p=(0,O.A7)(a.cliStatus),q="waiting"===p,r=!0===a.awaitingInstruction,s=a.nextActionKey?h(a.nextActionKey):null,t=(0,e.useMemo)(()=>new Set(a.exitedInstanceIds??[]),[a.exitedInstanceIds]),u=(q||r)&&null!==s,v=k&&!b;return(0,e.useEffect)(()=>{b&&m(!1)},[b]),(0,e.useEffect)(()=>{if(!k)return;let a=()=>m(!1);return document.addEventListener("click",a),()=>document.removeEventListener("click",a)},[k]),(0,d.jsxs)("button",{ref:j,"data-testid":"branch-list-item",onClick:()=>{o(),S=Date.now()+400,m(!1),c()},onMouseEnter:()=>{o(),Date.now()>=S&&(n.current=setTimeout(()=>{m(!0)},150))},onMouseLeave:()=>{o(),m(!1)},onFocus:a=>{o(),a.target.matches(":focus-visible")&&(n.current=setTimeout(()=>{m(!0)},150))},onBlur:()=>{o(),m(!1)},"aria-current":b?"true":void 0,"aria-describedby":v?i:void 0,"aria-label":f?void 0:`${a.name} - ${a.repositoryName}`,className:`
|
|
1
|
+
"use strict";exports.id=1467,exports.ids=[1467],exports.modules={1102:(a,b,c)=>{c.d(b,{m_:()=>i});var d=c(21124),e=c(38301),f=c(23312);function g(a,b,c){return Math.min(Math.max(a,4),Math.max(4,c-b-4))}let h={top:-9999,left:-9999};function i({content:a,placement:b="right",delay:c=100,children:i,className:j}){let[k,l]=(0,e.useState)(!1),[m,n]=(0,e.useState)(!1),[o,p]=(0,e.useState)(null),q=(0,e.useRef)(null),r=(0,e.useRef)(null),s=(0,e.useRef)(null),t=(0,e.useCallback)(()=>{null!==s.current&&(clearTimeout(s.current),s.current=null)},[]),u=(0,e.useCallback)(()=>{t(),s.current=setTimeout(()=>{l(!0),s.current=null},c)},[c,t]),v=(0,e.useCallback)(()=>{t(),l(!1)},[t]),w=(0,e.useCallback)(()=>{n(!0)},[]),x=(0,e.useCallback)(()=>{n(!1)},[]);return(0,e.useCallback)(()=>{t(),l(!1),n(!1)},[t]),(0,e.useCallback)(()=>{let a=q.current,c=r.current;if(!a||!c)return;let d=a.getBoundingClientRect(),e=c.getBoundingClientRect();p(function(a,b,c,d){let e,f,h=b.left+b.width/2-c.width/2,i=b.top+b.height/2-c.height/2;switch(a){case"top":e=b.top-c.height-8,f=h;break;case"bottom":e=b.top+b.height+8,f=h;break;case"left":e=i,f=b.left-c.width-8;break;default:e=i,f=b.left+b.width+8}return{top:g(e,c.height,d.height),left:g(f,c.width,d.width)}}(b,{top:d.top,left:d.left,width:d.width,height:d.height},{width:e.width,height:e.height},{width:window.innerWidth,height:window.innerHeight}))},[b]),(0,d.jsxs)("span",{ref:q,"data-testid":"tooltip-wrapper",className:j?`relative inline-flex ${j}`:"relative inline-flex",tabIndex:-1,onMouseEnter:u,onMouseLeave:v,onFocus:w,onBlur:x,children:[i,(k||m)&&"undefined"!=typeof document&&(0,f.createPortal)((0,d.jsx)("span",{ref:r,role:"tooltip","aria-hidden":"true","data-placement":b,className:"fixed z-40 whitespace-nowrap px-2 py-1 text-xs font-medium rounded bg-foreground text-background shadow-lg pointer-events-none",style:o??h,children:a}),document.body)]})}},8509:(a,b,c)=>{c.d(b,{g:()=>h});var d=c(21124);c(38301);var e=c(20481),f=c(5772),g=c(12480);function h(){let{size:a,setSize:b,isMobile:c}=(0,f.Ps)(),h=(0,e.c)("common");if(c)return null;let i=h("displaySize.ariaLabel");return(0,d.jsxs)("div",{className:"flex items-center",children:[(0,d.jsx)("label",{htmlFor:"pc-display-size",className:"sr-only",children:i}),(0,d.jsx)("select",{id:"pc-display-size","data-testid":"pc-display-size-select","aria-label":i,value:a,onChange:a=>{let c=a.target.value;(0,g.fM)(c)&&b(c)},className:"text-sm bg-transparent text-foreground border border-input rounded-md px-2 py-1 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring",children:g.Uf.map(a=>(0,d.jsx)("option",{value:a,children:h(`displaySize.${a}`)},a))})]})}},52120:(a,b,c)=>{c.d(b,{PL:()=>e,sb:()=>f});let d={idle:"bg-muted-foreground",ready:"bg-success",spinner:"border-info",waiting:"bg-warning"},e={idle:{className:d.idle,labelKey:"status.idle",type:"dot"},ready:{className:d.ready,labelKey:"status.ready",type:"dot"},running:{className:d.spinner,labelKey:"status.running",type:"spinner"},waiting:{className:d.waiting,labelKey:"status.waiting",type:"dot"},generating:{className:d.spinner,labelKey:"status.generating",type:"spinner"}},f={idle:"detailStatus.idle",ready:"detailStatus.ready",running:"detailStatus.running",waiting:"detailStatus.waiting"}},61467:(a,b,c)=>{c.d(b,{GV:()=>a_});var d=c(21124),e=c(38301),f=c.n(e),g=c(42378),h=c(3991),i=c.n(h),j=c(52761);let k=(0,e.forwardRef)(function({href:a,onClick:b,target:c,...e},f){let h=(0,g.usePathname)(),k=(0,j.Hq)();return(0,d.jsx)(i(),{ref:f,href:a,target:c,onClick:d=>{var e;b?.(d),d.defaultPrevented||0!==(e=d).button||e.metaKey||e.ctrlKey||e.shiftKey||e.altKey||void 0!==c&&"_self"!==c||/^([a-z][a-z0-9+.-]*:)?\/\//i.test(a)||/^(mailto:|tel:)/i.test(a)||(d.preventDefault(),a!==h&&k.push(a))},...e})});var l=c(20481),m=c(15917),n=c(88285),o=c(97950),p=c(8509),q=c(81092),r=c(32482);function s(){let a=(0,q.pT)(),b=(0,l.c)("common");if(!a)return null;let{repoTabBarMode:c,setRepoTabBarMode:e}=a;return(0,d.jsxs)("div",{className:"hidden md:flex items-center",children:[(0,d.jsx)("label",{htmlFor:"repo-tab-bar-mode",className:"sr-only",children:b("repoTabBar.settingLabel")}),(0,d.jsx)("select",{id:"repo-tab-bar-mode","data-testid":"repo-tab-bar-mode-select","aria-label":b("repoTabBar.settingLabel"),title:b("repoTabBar.settingLabel"),value:c,onChange:a=>{let b=a.target.value;(0,r.m3)(b)&&e(b)},className:"rounded-md border border-border bg-surface px-2 py-1 text-sm text-muted-foreground transition-colors hover:text-foreground focus:outline-none focus:ring-2 focus:ring-ring",children:r.EN.map(a=>(0,d.jsx)("option",{value:a,children:b(`repoTabBar.mode.${a}`)},a))})]})}var t=c(45523),u=c(70175),v=c(60988);function w(){let{theme:a,setTheme:b}=(0,t.D)(),[c,f]=(0,e.useState)(!1);if(!c)return(0,d.jsx)("div",{"data-testid":"theme-toggle-placeholder",className:"w-8 h-8","aria-hidden":"true"});let g="dark"===a;return(0,d.jsx)("button",{"data-testid":"theme-toggle",onClick:()=>b(g?"light":"dark"),className:"p-1.5 rounded-md text-muted-foreground hover:text-foreground hover:bg-muted transition-colors focus:outline-none focus:ring-2 focus:ring-ring","aria-label":g?"Switch to light mode":"Switch to dark mode",title:g?"Switch to light mode":"Switch to dark mode",children:g?(0,d.jsx)(u.A,{className:"w-5 h-5","data-testid":"theme-icon-sun"}):(0,d.jsx)(v.A,{className:"w-5 h-5","data-testid":"theme-icon-moon"})})}var x=c(38557);function y(){let{shouldSurface:a,isReconnecting:b}=(0,x.Fx)(),c=(0,l.c)("common");if(!a)return null;let e=c(b?"connection.reconnecting":"connection.offline");return(0,d.jsxs)("span",{"data-testid":"connection-status-indicator","data-connection-state":b?"reconnecting":"offline",role:"status","aria-live":"polite",title:c(b?"connection.reconnectingTooltip":"connection.offlineTooltip"),className:"hidden sm:inline-flex items-center gap-1.5 rounded-full border border-border bg-surface px-2 py-0.5 text-xs text-muted-foreground",children:[(0,d.jsx)("span",{"aria-hidden":"true",className:["w-1.5 h-1.5 rounded-full",b?"bg-warning motion-safe:animate-pulse":"bg-muted-foreground"].join(" ")}),e]})}var z=c(85647),A=c(64632);let B=[{labelKey:"nav.home",href:"/",isActive:a=>"/"===a},{labelKey:"nav.chat",href:"/chat",isActive:a=>a.startsWith("/chat")},{labelKey:"nav.sessions",href:"/sessions",isActive:a=>a.startsWith("/sessions")},{labelKey:"nav.repositoriesShort",href:"/repositories",isActive:a=>a.startsWith("/repositories")},{labelKey:"nav.reviewReport",href:"/review",isActive:a=>a.startsWith("/review")},{labelKey:"nav.more",href:"/more",isActive:a=>a.startsWith("/more")}];function C({title:a="CommandMate"}){let b=(0,g.usePathname)(),c=(0,l.c)("commandPalette"),e=(0,l.c)("common"),{setOpen:h}=(0,A.C)(),[i,j]=f().useState(null);return(0,d.jsx)("header",{className:"sticky top-0 z-50 border-b border-border bg-background supports-[backdrop-filter]:bg-background/80 backdrop-blur-md",children:(0,d.jsx)("div",{className:"container-custom",children:(0,d.jsxs)("div",{className:"flex items-center justify-between h-16",children:[(0,d.jsx)("div",{className:"flex items-center space-x-4",children:(0,d.jsxs)(k,{href:"/",className:"flex items-center space-x-2 hover:opacity-80 transition-opacity",children:[(0,d.jsx)("div",{className:"w-8 h-8 bg-accent-600 rounded-lg flex items-center justify-center",children:(0,d.jsx)(m.A,{size:20,strokeWidth:2,className:"text-white","aria-hidden":"true"})}),(0,d.jsx)("h1",{className:"text-xl font-bold text-foreground",children:a})]})}),(0,d.jsxs)("nav",{className:"flex items-center space-x-6",role:"navigation",children:[B.map(a=>{let c=a.isActive(b);return(0,d.jsx)(k,{href:a.href,"aria-current":c?"page":void 0,className:`relative py-1 text-sm font-medium transition-colors after:absolute after:inset-x-0 after:bottom-0 after:h-0.5 after:rounded-full after:bg-accent-600 dark:after:bg-accent-400 after:origin-center motion-safe:after:transition-transform after:duration-200 after:ease-[var(--motion-ease-out)] ${c?"text-accent-600 dark:text-accent-400 after:scale-x-100":"text-muted-foreground hover:text-foreground after:scale-x-0"}`,children:e(a.labelKey)},a.href)}),(0,d.jsxs)("button",{type:"button","data-testid":"header-command-palette-trigger",onClick:()=>h(!0),"aria-label":c("mobileTrigger"),className:"hidden md:inline-flex items-center gap-2 rounded-md border border-border bg-surface px-2.5 py-1.5 text-sm text-muted-foreground hover:bg-surface-2 transition-colors",children:[(0,d.jsx)(n.A,{size:16,strokeWidth:2,"aria-hidden":"true",className:"shrink-0"}),(0,d.jsx)("span",{children:c("searchAction")}),i&&(0,d.jsxs)("span",{className:"flex items-center gap-0.5",children:[(0,d.jsx)(z.u,{children:i}),(0,d.jsx)(z.u,{children:"K"})]})]}),(0,d.jsx)(y,{}),(0,d.jsx)(p.g,{}),(0,d.jsx)(s,{}),(0,d.jsx)(w,{}),(0,d.jsxs)("a",{href:"https://github.com/kewton/MyCodeBranchDesk",target:"_blank",rel:"noopener noreferrer",className:"text-sm font-medium text-muted-foreground hover:text-foreground transition-colors flex items-center space-x-1",children:[(0,d.jsx)(o.A,{size:20,strokeWidth:2,"aria-hidden":"true"}),(0,d.jsx)("span",{children:"GitHub"})]})]})]})})})}var D=c(90076);let E={showSidebar:!0,showGlobalNav:!0,showLocalNav:!1,autoCollapseSidebar:!1},F=[{prefix:"/worktrees/",config:{showGlobalNav:!1,showLocalNav:!0}},{prefix:"/sessions",config:{autoCollapseSidebar:!0}}];var G=c(5772),H=c(65828),I=c(10366),J=c(99615),K=c(22023),L=c(47817),M=c(23312),N=c.n(M),O=c(89877),P=c(22317);let Q=(0,e.memo)(function({status:a,label:b,waitingKind:c}){return(0,d.jsx)(P.m,{"data-testid":"status-indicator",status:a,label:b,waitingKind:c,size:"lg"})});function R({id:a,branch:b,isVisible:c,anchorRef:f,nextActionLabel:g}){let[h,i]=(0,e.useState)({top:-9999,left:-9999}),j=(0,e.useRef)(null);if("undefined"==typeof document||!c)return null;let k=Math.min(384,Math.max(0,window.innerWidth-16));return N().createPortal((0,d.jsxs)("div",{ref:j,id:a,role:"tooltip",className:" fixed z-[9999] px-3 py-2 rounded-md shadow-lg bg-sidebar text-xs text-sidebar-foreground border border-sidebar-border pointer-events-none max-w-sm transition-opacity duration-150 ",style:{top:h.top,left:h.left,maxWidth:k},children:[(0,d.jsx)("p",{className:"font-medium text-sidebar-foreground whitespace-nowrap",children:b.name}),(0,d.jsx)("p",{className:"text-sidebar-muted whitespace-nowrap",children:b.repositoryName}),(0,d.jsxs)("p",{className:"text-sidebar-muted whitespace-nowrap",children:["Status: ",b.status]}),b.worktreePath&&(0,d.jsx)("p",{className:"text-sidebar-muted truncate",children:b.worktreePath}),g&&(0,d.jsxs)("p",{className:"text-sidebar-muted whitespace-nowrap",children:["Next: ",g]}),b.description&&(0,d.jsx)("p",{className:"text-sidebar-muted mt-1 border-t border-sidebar-border pt-1 whitespace-pre-wrap break-words",children:b.description})]}),document.body)}let S=0,T=(0,e.memo)(function({branch:a,isSelected:b,onClick:c,showRepositoryName:f=!0}){let g=(0,l.c)("common"),h=(0,l.c)("worktree"),i=`tooltip-${a.id}`,j=(0,e.useRef)(null),[k,m]=(0,e.useState)(!1),n=(0,e.useRef)(null),o=(0,e.useCallback)(()=>{null!==n.current&&(clearTimeout(n.current),n.current=null)},[]);(0,e.useEffect)(()=>()=>o(),[o]);let p=(0,O.A7)(a.cliStatus),q="waiting"===p,r=!0===a.awaitingInstruction,s=a.nextActionKey?h(a.nextActionKey):null,t=(0,e.useMemo)(()=>new Set(a.exitedInstanceIds??[]),[a.exitedInstanceIds]),u=(q||r)&&null!==s,v=k&&!b;return(0,e.useEffect)(()=>{b&&m(!1)},[b]),(0,e.useEffect)(()=>{if(!k)return;let a=()=>m(!1);return document.addEventListener("click",a),()=>document.removeEventListener("click",a)},[k]),(0,d.jsxs)("button",{ref:j,"data-testid":"branch-list-item",onClick:()=>{o(),S=Date.now()+400,m(!1),c()},onMouseEnter:()=>{o(),Date.now()>=S&&(n.current=setTimeout(()=>{m(!0)},150))},onMouseLeave:()=>{o(),m(!1)},onFocus:a=>{o(),a.target.matches(":focus-visible")&&(n.current=setTimeout(()=>{m(!0)},150))},onBlur:()=>{o(),m(!1)},"aria-current":b?"true":void 0,"aria-describedby":v?i:void 0,"aria-label":f?void 0:`${a.name} - ${a.repositoryName}`,className:`
|
|
2
2
|
group relative w-full px-4 py-3 flex flex-col gap-1
|
|
3
3
|
hover:bg-sidebar-hover transition-colors
|
|
4
4
|
focus:outline-none focus:ring-2 focus:ring-inset focus:ring-ring
|
|
@@ -13,17 +13,17 @@
|
|
|
13
13
|
border-b-2 text-xs font-medium transition-colors
|
|
14
14
|
focus:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-ring
|
|
15
15
|
${b?"border-accent-500 bg-surface-2 text-foreground":"border-transparent text-muted-foreground hover:bg-surface-2 hover:text-foreground"}
|
|
16
|
-
`,children:[(0,d.jsx)(aC.n,{className:"h-3.5 w-3.5",color:(0,r.LV)(a.repositoryName)}),(0,d.jsx)("span",{className:"min-w-0 truncate",children:a.repositoryName}),(0,d.jsx)(P.m,{status:h,size:"sm",label:j,"data-testid":"repository-tab-status"}),i>0&&(0,d.jsx)("span",{"data-testid":"repository-tab-attention-count","aria-label":g("attention.badgeLabel",{count:i}),className:"flex-shrink-0 rounded-full bg-warning-subtle px-1.5 text-[10px] font-semibold leading-4 tabular-nums text-warning-foreground",children:i})]})});function aK({group:a,anchor:b,factor:c,activeWorktreeId:f,onBranchClick:g}){let h=(0,l.c)("common"),i=(0,e.useRef)(null);if("undefined"==typeof document)return null;let j=Math.round(300*c);return N().createPortal((0,d.jsx)("div",{ref:i,"data-repository-tab-panel":"","data-testid":"repository-tab-popover","data-repository":a.repositoryName,role:"menu","aria-label":h("sidebar.branchNavigation"),className:"fixed rounded-md border border-sidebar-border bg-sidebar text-sidebar-foreground shadow-lg",style:{top:b.bottom+4,left:aG(b,j,j),width:j,zIndex:aE.M.POPOVER},children:(0,d.jsx)("div",{"data-testid":"repository-tab-popover-list",className:"overflow-y-auto overflow-x-hidden py-1",style:{maxHeight:`${Math.round(520*c)}px`},children:0===a.branches.length?(0,d.jsx)("p",{className:"px-4 py-6 text-center text-sm text-sidebar-muted",children:h("sidebar.noBranchesAvailable")}):a.branches.map(a=>(0,d.jsx)(T,{branch:a,isSelected:a.id===f,onClick:()=>g(a.id),showRepositoryName:!1},a.id))})}),document.body)}function aL({groups:a,anchorRef:b,activeRepositoryName:c,onSelect:e}){let f=(0,l.c)("common"),g=b.current?.getBoundingClientRect();return"undefined"!=typeof document&&g?N().createPortal((0,d.jsx)("div",{"data-repository-tab-panel":"","data-testid":"repository-tab-overflow-menu",role:"menu","aria-label":f("nav.repositories"),className:"fixed rounded-md border border-sidebar-border bg-sidebar text-sidebar-foreground shadow-lg",style:{top:g.bottom+4,left:aG({left:g.left,right:g.right,bottom:g.bottom},300,300),width:300,maxHeight:"520px",zIndex:aE.M.POPOVER},children:(0,d.jsx)("div",{className:"overflow-y-auto py-1",style:{maxHeight:"inherit"},children:a.map(a=>{let b=(0,r.zD)(a.branches);return(0,d.jsxs)("button",{type:"button",role:"menuitem","data-testid":"repository-tab-overflow-item","data-repository":a.repositoryName,"aria-current":a.repositoryName===c?"true":void 0,onClick:()=>e(a.repositoryName),className:"flex w-full items-center gap-2 px-3 py-2 text-left text-sm transition-colors hover:bg-sidebar-hover focus:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-ring",children:[(0,d.jsx)(aC.n,{className:"h-3.5 w-3.5",color:(0,r.LV)(a.repositoryName)}),(0,d.jsx)("span",{className:"min-w-0 flex-1 truncate",children:a.repositoryName}),(0,d.jsx)(P.m,{status:b,size:"sm",label:f(aD.PL[b].labelKey)}),(0,d.jsx)("span",{className:"tabular-nums text-xs text-sidebar-muted",children:a.branches.length})]},a.repositoryName)})})}),document.body):null}var aM=c(78733),aN=c(44688),aO=c(75903),aP=c(59268);let aQ=[{labelKey:"nav.home",href:"/",isActive:a=>"/"===a,icon:(0,d.jsx)(aM.A,{size:20,"aria-hidden":"true"})},{labelKey:"nav.chat",href:"/chat",isActive:a=>a.startsWith("/chat"),icon:(0,d.jsx)(aN.A,{size:20,"aria-hidden":"true"})},{labelKey:"nav.sessions",href:"/sessions",isActive:a=>a.startsWith("/sessions"),icon:(0,d.jsx)(aO.A,{size:20,"aria-hidden":"true"})},{labelKey:"nav.review",href:"/review",isActive:a=>a.startsWith("/review"),icon:(0,d.jsx)(aP.A,{size:20,"aria-hidden":"true"}),showsAttentionBadge:!0},{labelKey:"nav.more",href:"/more",isActive:a=>a.startsWith("/more"),icon:(0,d.jsx)(aB.A,{size:20,"aria-hidden":"true"})}];function aR(){let a=(0,g.usePathname)(),{setOpen:b}=(0,A.C)(),c=(0,l.c)("commandPalette"),e=(0,l.c)("common"),{count:f}=(0,ak.Lv)();return(0,d.jsx)("nav",{"data-testid":"global-mobile-nav",className:"fixed bottom-0 left-0 right-0 z-50 border-t border-border bg-background supports-[backdrop-filter]:bg-background/80 backdrop-blur-md pb-safe",children:(0,d.jsxs)("div",{className:"flex items-center justify-around h-14",children:[aQ.map(b=>{let c=b.isActive(a),g=!0===b.showsAttentionBadge&&f>0;return(0,d.jsxs)(k,{href:g?aj.ks:b.href,className:`flex flex-col items-center justify-center flex-1 h-full text-xs transition-colors ${c?"text-accent-600 dark:text-accent-400":"text-muted-foreground hover:text-foreground"}`,children:[(0,d.jsxs)("span",{className:"relative inline-flex",children:[b.icon,!0===b.showsAttentionBadge&&(0,d.jsx)(am,{count:f})]}),(0,d.jsx)("span",{className:"mt-1 whitespace-nowrap",children:e(b.labelKey)})]},b.href)}),(0,d.jsxs)("button",{type:"button","data-testid":"mobile-command-palette-trigger",onClick:()=>b(!0),"aria-label":c("mobileTrigger"),className:"flex flex-col items-center justify-center flex-1 h-full text-xs text-muted-foreground hover:text-foreground transition-colors",children:[(0,d.jsx)(n.A,{size:20,"aria-hidden":"true"}),(0,d.jsx)("span",{className:"mt-1 whitespace-nowrap",children:c("mobileLabel")})]})]})})}
|
|
16
|
+
`,children:[(0,d.jsx)(aC.n,{className:"h-3.5 w-3.5",color:(0,r.LV)(a.repositoryName)}),(0,d.jsx)("span",{className:"min-w-0 truncate",children:a.repositoryName}),(0,d.jsx)(P.m,{status:h,size:"sm",label:j,"data-testid":"repository-tab-status"}),i>0&&(0,d.jsx)("span",{"data-testid":"repository-tab-attention-count","aria-label":g("attention.badgeLabel",{count:i}),className:"flex-shrink-0 rounded-full bg-warning-subtle px-1.5 text-[10px] font-semibold leading-4 tabular-nums text-warning-foreground",children:i})]})});function aK({group:a,anchor:b,factor:c,activeWorktreeId:f,onBranchClick:g}){let h=(0,l.c)("common"),i=(0,e.useRef)(null);if("undefined"==typeof document)return null;let j=Math.round(300*c);return N().createPortal((0,d.jsx)("div",{ref:i,"data-repository-tab-panel":"","data-testid":"repository-tab-popover","data-repository":a.repositoryName,role:"menu","aria-label":h("sidebar.branchNavigation"),className:"fixed rounded-md border border-sidebar-border bg-sidebar text-sidebar-foreground shadow-lg",style:{top:b.bottom+4,left:aG(b,j,j),width:j,zIndex:aE.M.POPOVER},children:(0,d.jsx)("div",{"data-testid":"repository-tab-popover-list",className:"overflow-y-auto overflow-x-hidden py-1",style:{maxHeight:`${Math.round(520*c)}px`},children:0===a.branches.length?(0,d.jsx)("p",{className:"px-4 py-6 text-center text-sm text-sidebar-muted",children:h("sidebar.noBranchesAvailable")}):a.branches.map(a=>(0,d.jsx)(T,{branch:a,isSelected:a.id===f,onClick:()=>g(a.id),showRepositoryName:!1},a.id))})}),document.body)}function aL({groups:a,anchorRef:b,activeRepositoryName:c,onSelect:e}){let f=(0,l.c)("common"),g=b.current?.getBoundingClientRect();return"undefined"!=typeof document&&g?N().createPortal((0,d.jsx)("div",{"data-repository-tab-panel":"","data-testid":"repository-tab-overflow-menu",role:"menu","aria-label":f("nav.repositories"),className:"fixed rounded-md border border-sidebar-border bg-sidebar text-sidebar-foreground shadow-lg",style:{top:g.bottom+4,left:aG({left:g.left,right:g.right,bottom:g.bottom},300,300),width:300,maxHeight:"520px",zIndex:aE.M.POPOVER},children:(0,d.jsx)("div",{className:"overflow-y-auto py-1",style:{maxHeight:"inherit"},children:a.map(a=>{let b=(0,r.zD)(a.branches);return(0,d.jsxs)("button",{type:"button",role:"menuitem","data-testid":"repository-tab-overflow-item","data-repository":a.repositoryName,"aria-current":a.repositoryName===c?"true":void 0,onClick:()=>e(a.repositoryName),className:"flex w-full items-center gap-2 px-3 py-2 text-left text-sm transition-colors hover:bg-sidebar-hover focus:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-ring",children:[(0,d.jsx)(aC.n,{className:"h-3.5 w-3.5",color:(0,r.LV)(a.repositoryName)}),(0,d.jsx)("span",{className:"min-w-0 flex-1 truncate",children:a.repositoryName}),(0,d.jsx)(P.m,{status:b,size:"sm",label:f(aD.PL[b].labelKey)}),(0,d.jsx)("span",{className:"tabular-nums text-xs text-sidebar-muted",children:a.branches.length})]},a.repositoryName)})})}),document.body):null}var aM=c(78733),aN=c(44688),aO=c(75903),aP=c(59268);let aQ=[{labelKey:"nav.home",href:"/",isActive:a=>"/"===a,icon:(0,d.jsx)(aM.A,{size:20,"aria-hidden":"true"})},{labelKey:"nav.chat",href:"/chat",isActive:a=>a.startsWith("/chat"),icon:(0,d.jsx)(aN.A,{size:20,"aria-hidden":"true"})},{labelKey:"nav.sessions",href:"/sessions",isActive:a=>a.startsWith("/sessions"),icon:(0,d.jsx)(aO.A,{size:20,"aria-hidden":"true"})},{labelKey:"nav.review",href:"/review",isActive:a=>a.startsWith("/review"),icon:(0,d.jsx)(aP.A,{size:20,"aria-hidden":"true"}),showsAttentionBadge:!0},{labelKey:"nav.more",href:"/more",isActive:a=>a.startsWith("/more"),icon:(0,d.jsx)(aB.A,{size:20,"aria-hidden":"true"})}];function aR(){let a=(0,g.usePathname)(),{setOpen:b}=(0,A.C)(),c=(0,l.c)("commandPalette"),e=(0,l.c)("common"),{count:f}=(0,ak.Lv)();return(0,d.jsx)("nav",{"data-testid":"global-mobile-nav",className:"fixed bottom-0 left-0 right-0 z-50 border-t border-border bg-background supports-[backdrop-filter]:bg-background/80 backdrop-blur-md pb-safe",children:(0,d.jsxs)("div",{className:"flex items-center justify-around h-14",children:[aQ.map(b=>{let c=b.isActive(a),g=!0===b.showsAttentionBadge&&f>0;return(0,d.jsxs)(k,{href:g?aj.ks:b.href,className:`flex flex-col items-center justify-center flex-1 h-full text-xs transition-colors ${c?"text-accent-600 dark:text-accent-400":"text-muted-foreground hover:text-foreground"}`,children:[(0,d.jsxs)("span",{className:"relative inline-flex",children:[b.icon,!0===b.showsAttentionBadge&&(0,d.jsx)(am,{count:f})]}),(0,d.jsx)("span",{className:"mt-1 whitespace-nowrap",children:e(b.labelKey)})]},b.href)}),(0,d.jsxs)("button",{type:"button","data-testid":"mobile-command-palette-trigger",onClick:()=>b(!0),"aria-label":c("mobileTrigger"),className:"flex flex-col items-center justify-center flex-1 h-full text-xs text-muted-foreground hover:text-foreground transition-colors",children:[(0,d.jsx)(n.A,{size:20,"aria-hidden":"true"}),(0,d.jsx)("span",{className:"mt-1 whitespace-nowrap",children:c("mobileLabel")})]})]})})}function aS(){let{shouldSurface:a,isReconnecting:b}=(0,x.Fx)(),c=(0,l.c)("common");if(!a)return null;let e=c(b?"connection.reconnecting":"connection.offline"),f=c(b?"connection.reconnectingTooltip":"connection.offlineTooltip");return(0,d.jsx)("div",{"data-testid":"mobile-connection-banner","data-connection-state":b?"reconnecting":"offline",role:"status","aria-live":"polite",title:f,className:`shrink-0 pt-safe border-b ${b?"bg-warning-subtle border-warning-border text-warning-foreground":"bg-danger-subtle border-danger-border text-danger-foreground"}`,children:(0,d.jsxs)("div",{className:"flex items-center justify-center gap-1.5 px-3 py-1 text-xs",children:[(0,d.jsx)("span",{"aria-hidden":"true",className:`w-1.5 h-1.5 rounded-full ${b?"bg-warning motion-safe:animate-pulse":"bg-danger"}`}),e]})})}var aT=c(76047),aU=c(98033),aV=c(89184);let aW=["global","terminal","composer","editor"],aX=[{id:"commandPalette",keys:["MOD","K"],scope:"global"},{id:"keyboardHelp",keys:["?"],scope:"global"},{id:"closeOverlay",keys:["Esc"],scope:"global"},{id:"navigateList",keys:["↑","↓"],scope:"global"},{id:"terminalSearch",keys:["MOD","F"],scope:"terminal"},{id:"toggleSurfaceMode",keys:["MOD","Shift","M"],scope:"terminal"},{id:"sendMessage",keys:["↵"],scope:"composer"},{id:"composerNewline",keys:["Shift","↵"],scope:"composer"},{id:"editorIndent",keys:["Tab"],scope:"editor"},{id:"editorOutdent",keys:["Shift","Tab"],scope:"editor"},{id:"editorTabFocus",keys:["Ctrl","M"],scope:"editor"},{id:"editorSave",keys:["MOD","S"],scope:"editor"},{id:"editorFullscreen",keys:["MOD","Shift","F"],scope:"editor"}];function aY(){let{open:a,setOpen:b}=(0,aV.K)(),{open:c}=(0,A.C)(),f=(0,l.c)("keyboardShortcuts"),[g,h]=(0,e.useState)(!1);(0,e.useRef)(a),(0,e.useRef)(c);let i=function(a=aX){return aW.map(b=>({scope:b,shortcuts:a.filter(a=>a.scope===b)})).filter(a=>a.shortcuts.length>0)}();return(0,d.jsx)(aU.a,{isOpen:a,onClose:()=>b(!1),title:f("title"),size:"md",children:(0,d.jsx)("div",{"data-testid":"keyboard-shortcuts-overlay",className:"space-y-6",children:i.map(({scope:a,shortcuts:b})=>(0,d.jsxs)("section",{"data-testid":`keyboard-shortcuts-scope-${a}`,children:[(0,d.jsx)("h4",{className:"mb-2 text-xs font-semibold uppercase tracking-wide text-muted-foreground",children:f(`scopes.${a}`)}),(0,d.jsx)("ul",{className:"divide-y divide-border",children:b.map(a=>(0,d.jsxs)("li",{"data-testid":`keyboard-shortcut-${a.id}`,className:"flex items-center justify-between gap-4 py-2",children:[(0,d.jsx)("span",{className:"text-sm text-foreground",children:f(`shortcuts.${a.id}`)}),(0,d.jsx)("span",{className:"flex flex-shrink-0 items-center gap-1",children:a.keys.map((a,b)=>(0,d.jsx)(z.u,{children:"MOD"===a?g?"⌘":"Ctrl":a},b))})]},a.id))})]},a))})})}var aZ=c(18608);let a$="transform transition-transform duration-300 ease-out",a_=(0,e.memo)(function({children:a}){let{isOpen:b,isMobileDrawerOpen:c,closeMobileDrawer:f,width:h,setWidth:i,repoTabBarMode:j}=(0,q.VF)(),k=(0,D.a)(),{showSidebar:l,showGlobalNav:m}=function(){var a=(0,g.usePathname)();for(let b of F)if(a.startsWith(b.prefix))return{...E,...b.config};return{...E}}(),{factor:n}=(0,G.Ps)(),o=Math.round(160*n),p=Math.round(480*n),s=Math.round(Math.min(p,Math.max(o,h*n))),t=(0,r.fs)(j??r.PB,b),u=Math.round(32*n)+64*!!m,v=t?{top:`${u}px`,height:`calc(100vh - ${u}px)`}:{},w=(0,e.useRef)(null),x=(0,e.useRef)(null),y=(0,e.useCallback)(a=>{i(Math.round(a/n))},[i,n]);return k?(0,d.jsxs)("div",{"data-testid":"app-shell",className:"h-screen flex flex-col",children:[(0,d.jsx)(aS,{}),c&&(0,d.jsx)("div",{"data-testid":"drawer-overlay",className:"fixed inset-0 bg-black/50 z-40",onClick:f,"aria-hidden":"true"}),l&&(0,d.jsx)("aside",{"data-testid":"sidebar-container",className:`
|
|
17
17
|
fixed left-0 top-0 h-full w-72 z-50
|
|
18
|
-
${
|
|
18
|
+
${a$}
|
|
19
19
|
${c?"translate-x-0":"-translate-x-full"}
|
|
20
|
-
`,role:"complementary",children:(0,d.jsx)(ar,{})}),(0,d.jsx)("main",{className:`flex-1 min-h-0 overflow-hidden ${m?"pb-14":""}`,role:"main","data-view-transition":"content",children:a}),m&&(0,d.jsx)(aR,{}),(0,d.jsx)(
|
|
20
|
+
`,role:"complementary",children:(0,d.jsx)(ar,{})}),(0,d.jsx)("main",{className:`flex-1 min-h-0 overflow-hidden ${m?"pb-14":""}`,role:"main","data-view-transition":"content",children:a}),m&&(0,d.jsx)(aR,{}),(0,d.jsx)(aT.xq,{}),(0,d.jsx)(aY,{}),(0,d.jsx)(aZ.n,{})]}):(0,d.jsxs)("div",{"data-testid":"app-shell",className:"h-screen flex flex-col",children:[t&&(0,d.jsx)(aI,{}),m&&(0,d.jsx)(C,{}),(0,d.jsxs)("div",{className:"flex flex-1 min-h-0",children:[l&&(0,d.jsxs)("aside",{ref:w,"data-testid":"sidebar-container",className:`
|
|
21
21
|
fixed left-0
|
|
22
22
|
${m?"top-16 h-[calc(100vh-4rem)]":"top-0 h-full"}
|
|
23
23
|
border-r border-border
|
|
24
|
-
${
|
|
24
|
+
${a$}
|
|
25
25
|
${b?"translate-x-0":"-translate-x-full"}
|
|
26
|
-
`,style:{width:`${s}px`,zIndex:aE.M.SIDEBAR,...v},role:"complementary","aria-hidden":!b,children:[(0,d.jsx)(ar,{}),(0,d.jsx)(
|
|
26
|
+
`,style:{width:`${s}px`,zIndex:aE.M.SIDEBAR,...v},role:"complementary","aria-hidden":!b,children:[(0,d.jsx)(ar,{}),(0,d.jsx)(a0,{currentWidth:s,minWidth:o,maxWidth:p,sidebarRef:w,mainRef:x,onWidthChange:y})]}),(0,d.jsx)("main",{ref:x,className:"flex-1 min-w-0 h-full overflow-hidden transition-[padding] duration-300 ease-out",style:{paddingLeft:l&&b?`${s}px`:0},role:"main","data-view-transition":"content",children:a})]}),(0,d.jsx)(aT.xq,{}),(0,d.jsx)(aY,{}),(0,d.jsx)(aZ.n,{})]})});function a0({currentWidth:a,minWidth:b,maxWidth:c,sidebarRef:e,mainRef:f,onWidthChange:g}){return(0,d.jsx)("div",{"data-testid":"sidebar-resize-handle","aria-hidden":"true",onMouseDown:d=>{d.preventDefault();let h=d.clientX,i=a;f.current&&(f.current.style.transition="none");let j=d=>{i=Math.max(b,Math.min(c,a+(d.clientX-h))),e.current&&(e.current.style.width=`${i}px`),f.current&&(f.current.style.paddingLeft=`${i}px`)},k=()=>{document.body.style.cursor="",document.body.style.userSelect="",f.current&&(f.current.style.transition=""),document.removeEventListener("mousemove",j),document.removeEventListener("mouseup",k),g(i)};document.body.style.cursor="col-resize",document.body.style.userSelect="none",document.addEventListener("mousemove",j),document.addEventListener("mouseup",k)},className:"absolute top-0 right-0 w-1 h-full cursor-col-resize hover:bg-accent-500/40 transition-colors"})}},68232:(a,b,c)=>{c.d(b,{dI:()=>d,gB:()=>e,vK:()=>f});let d=["en","ja"],e="locale",f={en:"English",ja:"日本語"}},76047:(a,b,c)=>{c.d(b,{P0:()=>Y,oQ:()=>X,tJ:()=>T,xk:()=>W,xq:()=>$,yW:()=>Z});var d=c(21124),e=c(38301),f=c(23312),g=c(42378),h=c(55992),i=c(20481),j=c(45523),k=c(67565),l=c(78733),m=c(44688),n=c(75903),o=c(50987),p=c(59268),q=c(75234),r=c(38882),s=c(70175),t=c(60988),u=c(34487),v=c(25345),w=c(96558),x=c(97950),y=c(75692),z=c(57898),A=c(88285),B=c(71563),C=c(35595),D=c(11010),E=c(64632),F=c(89184),G=c(5772),H=c(63157),I=c(12480),J=c(85744),K=c(78352),L=c(22317),M=c(85647),N=c(63474),O=c(85678),P=c(17252);let Q=[{key:"home",href:"/"},{key:"chat",href:"/chat"},{key:"sessions",href:"/sessions"},{key:"repositories",href:"/repositories"},{key:"review",href:"/review"},{key:"skills",href:"/skills"},{key:"more",href:"/more"}],R={home:l.A,chat:m.A,sessions:n.A,repositories:o.A,review:p.A,skills:q.A,more:r.A};function S(a){return a.isWaitingForResponse?"waiting":a.isProcessing?"running":a.isSessionRunning?"ready":"idle"}function T(a){if(!(a instanceof HTMLElement))return!1;let b=a.tagName;return!!("INPUT"===b||"TEXTAREA"===b||"SELECT"===b||a.isContentEditable||a.closest('[role="log"]'))}let U=(0,C.cn)("flex cursor-pointer items-center gap-2 rounded-md px-2 py-2 text-sm","text-foreground","data-[selected=true]:bg-accent-500/15 data-[selected=true]:text-accent-700","dark:data-[selected=true]:text-accent-300"),V="shrink-0 text-muted-foreground";function W(){if("undefined"==typeof document)return null;let a=document.querySelector("[data-instance-id]");return a?.getAttribute("data-instance-id")?.trim()||null}function X(a){if("undefined"==typeof document)return!1;let b=Array.from(document.querySelectorAll('[data-testid="message-input-textarea"]'));if(0===b.length)return!1;let c=document.activeElement,d=b.find(a=>a===c)??b[0],e=d.value,f=""===e.trim()?a:`${e}
|
|
27
27
|
|
|
28
28
|
${a}`,g=Object.getOwnPropertyDescriptor(HTMLTextAreaElement.prototype,"value")?.set;return g?g.call(d,f):d.value=f,d.dispatchEvent(new Event("input",{bubbles:!0})),d.focus(),d.setSelectionRange(f.length,f.length),!0}async function Y(a,b,c){try{let[d,e]=await Promise.all([fetch(`/api/worktrees/${a}/cli-reference`),fetch(`/api/worktrees/${a}/resolve-target?instance=${encodeURIComponent(b.id)}`)]);if(!d.ok||!e.ok)return null;let[f,g]=await Promise.all([d.json(),e.json()]);return(0,O.Bz)({binary:f.binary,worktreeId:f.worktreeId,instanceId:g.instanceId,instanceLabel:b.alias,toolLabel:(0,P.oo)(g.cliToolId),portPrefix:f.portPrefix,locale:c})}catch{return null}}let Z={ja:{heading:"委任 (/delegate)",menuItem:"委任方法をコンポーザーに挿入",inserted:"委任方法をコンポーザーに挿入しました",self:"自分自身には委任できません",noComposer:"コンポーザーが見つかりません。worktree 画面を開いてから実行してください",failed:"委任方法を作成できませんでした"},en:{heading:"Delegate (/delegate)",menuItem:"Insert delegation brief into the composer",inserted:"Delegation brief inserted into the composer",self:"That is this session — nothing to delegate to",noComposer:"No composer on screen. Open a worktree screen and try again",failed:"Could not build the delegation brief"}};function $(){let{open:a,setOpen:b}=(0,E.C)(),{setOpen:c}=(0,F.K)(),l=(0,g.useRouter)(),m=(0,g.usePathname)(),n=(0,h.Ym)(),o=(0,i.c)("commandPalette"),p=(0,i.c)("common"),{theme:q,setTheme:r}=(0,j.D)(),{setSize:O,isMobile:T}=(0,G.Ps)(),{currentLocale:$,switchLocale:_}=(0,J.g)(),aa=(0,H.rC)(),{showToast:ab}=(0,N.dj)(),[ac,ad]=(0,e.useState)(!1),[ae,af]=(0,e.useState)(""),[ag,ah]=(0,e.useState)([]),ai=(0,e.useRef)(null);(0,e.useRef)(null),(0,e.useRef)(a);let aj=(0,e.useCallback)((a,c)=>{c&&ah(a=>(function(a,b){let c=a.filter(a=>a.kind!==b.kind||a.id!==b.id),d=[b,...c].slice(0,8);try{localStorage.setItem("cm.palette.recents",JSON.stringify(d))}catch{}return d})(a,c)),b(!1),a()},[b]),ak=(0,e.useCallback)(async a=>{let b=Z["ja"===n?"ja":"en"];if(function(a){let b=/^\/worktrees\/([^/?#]+)/.exec(a??"");return b?decodeURIComponent(b[1]):null}(m)===a.worktree.id&&W()===a.instance.id)return void ab(b.self,"info");let c=await Y(a.worktree.id,a.instance,n);if(null===c)return void ab(b.failed,"error");let d=X(c);ab(d?b.inserted:b.noComposer,d?"success":"error")},[n,m,ab]),al=(0,e.useCallback)(async()=>{try{await K.Rx.sync(),await aa?.refresh?.(),ab(o("actions.syncSuccess"),"success")}catch{ab(o("actions.syncError"),"error")}},[aa,ab,o]),am="dark"===q,an=""===ae.trim(),ao=aa?.error??null,ap=aa?.isLoading??!1,aq=ao?[]:aa?.worktrees??[],ar=aq.length>0,as=!ao&&ap&&0===aq.length,at=!function(a){let b=a.trim().toLowerCase();return""!==b&&(b.startsWith("/")||b.includes("delegate"))}(ae)?[]:function(a){let b=[];for(let c of a)for(let a of c.agentInstances?.length?c.agentInstances:c.cliToolId?[{id:c.cliToolId,cliTool:c.cliToolId,alias:(0,P.oo)(c.cliToolId),order:0}]:[])b.push({worktree:c,instance:a});return b}(aq),au=Z["ja"===n?"ja":"en"],av=[...aq].sort((a,b)=>{let c=+!!a.isSessionRunning,d=+!!b.isSessionRunning;if(c!==d)return d-c;let e=a.updatedAt?new Date(a.updatedAt).getTime():0;return(b.updatedAt?new Date(b.updatedAt).getTime():0)-e}),aw=an?av.slice(0,8):av,ax=[{id:"theme",label:am?o("actions.toLight"):o("actions.toDark"),icon:am?s.A:t.A,run:()=>r(am?"light":"dark")},...T?[]:I.Uf.map(a=>({id:`displaysize:${a}`,label:`${o("actions.displaySizePrefix")}: ${p(`displaySize.${a}`)}`,icon:u.A,run:()=>O(a)})),{id:"sync",label:o("actions.syncRepositories"),icon:v.A,run:()=>{al()}},{id:"locale",label:o("actions.switchLanguage"),icon:w.A,run:()=>_("ja"===$?"en":"ja")},{id:"github",label:o("actions.openGitHub"),icon:x.A,run:()=>window.open("https://github.com/kewton/MyCodeBranchDesk","_blank","noopener,noreferrer")},{id:"keyboardShortcuts",label:o("actions.keyboardShortcuts"),icon:y.A,run:()=>c(!0)}],ay=an?ag.map(a=>{if("nav"===a.kind){let b=Q.find(b=>b.key===a.id);if(!b)return null;let c=R[b.key],e=p(`nav.${b.key}`);return{id:`nav-${b.key}`,value:`recent nav ${b.key}`,node:(0,d.jsxs)(d.Fragment,{children:[c&&(0,d.jsx)(c,{size:16,className:V,"aria-hidden":"true"}),(0,d.jsx)("span",{className:"truncate",children:e})]}),onSelect:()=>aj(()=>l.push(b.href),{kind:"nav",id:b.key})}}if("worktree"===a.kind){let b=aq.find(b=>b.id===a.id);if(!b)return null;let c=b.repositoryDisplayName||b.repositoryName||"",e=b.branch||b.name;return{id:`worktree-${b.id}`,value:`recent worktree ${b.id}`,node:(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(z.A,{size:16,className:V,"aria-hidden":"true"}),(0,d.jsx)("span",{className:"truncate",children:e}),c&&(0,d.jsx)("span",{className:"ml-auto truncate pl-2 text-xs text-muted-foreground",children:c}),(0,d.jsx)(L.m,{status:S(b),size:"sm",className:c?"ml-2":"ml-auto"})]}),onSelect:()=>aj(()=>l.push(`/worktrees/${b.id}`),{kind:"worktree",id:b.id})}}let b=ax.find(b=>b.id===a.id);if(!b)return null;let c=b.icon;return{id:`action-${b.id}`,value:`recent action ${b.id}`,node:(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(c,{size:16,className:V,"aria-hidden":"true"}),(0,d.jsx)("span",{className:"truncate",children:b.label})]}),onSelect:()=>aj(b.run,{kind:"action",id:b.id})}}).filter(a=>null!==a):[];return ac?(0,f.createPortal)((0,d.jsx)(d.Fragment,{children:a&&(0,d.jsxs)("div",{className:"fixed inset-0 overflow-y-auto",style:{zIndex:D.M.MODAL},"data-testid":"command-palette",children:[(0,d.jsx)("div",{"data-state":"open","aria-hidden":"true",className:"fixed inset-0 bg-black/40 backdrop-blur-sm transition-opacity data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:duration-200",onClick:()=>b(!1)}),(0,d.jsx)("div",{className:"relative flex min-h-full items-start justify-center p-4 pt-[15vh]",children:(0,d.jsx)("div",{"data-state":"open","data-testid":"command-palette-panel",className:(0,C.cn)("relative w-full max-w-lg overflow-hidden rounded-xl bg-surface/95 shadow-2xl ring-1 ring-border backdrop-blur-xl","data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95 data-[state=open]:duration-200"),children:(0,d.jsxs)(k.uB,{label:o("title"),className:(0,C.cn)("flex flex-col","[&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:pb-1 [&_[cmdk-group-heading]]:pt-2","[&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground"),children:[(0,d.jsxs)("div",{className:"flex items-center gap-2 border-b border-border px-3",children:[(0,d.jsx)(A.A,{size:16,strokeWidth:2,"aria-hidden":"true",className:"shrink-0 text-muted-foreground"}),(0,d.jsx)(k.uB.Input,{ref:ai,value:ae,onValueChange:af,placeholder:o("placeholder"),"data-testid":"command-palette-input",className:"flex-1 bg-transparent py-3 text-sm text-foreground outline-none placeholder:text-muted-foreground"})]}),(0,d.jsxs)(k.uB.List,{className:"max-h-[min(60vh,360px)] overflow-y-auto p-2",children:[(0,d.jsx)(k.uB.Empty,{"data-testid":"command-palette-empty",className:"py-6 text-center text-sm text-muted-foreground",children:o("empty")}),as&&(0,d.jsx)(k.uB.Loading,{"data-testid":"command-palette-loading",className:"py-6 text-center text-sm text-muted-foreground",children:o("loading")}),ay.length>0&&(0,d.jsx)(k.uB.Group,{heading:o("groups.recent"),children:ay.map(a=>(0,d.jsx)(k.uB.Item,{value:a.value,onSelect:a.onSelect,className:U,children:a.node},a.id))}),(0,d.jsx)(k.uB.Group,{heading:o("groups.navigation"),children:Q.map(a=>{let b=p(`nav.${a.key}`),c=R[a.key];return(0,d.jsxs)(k.uB.Item,{value:`nav ${b} ${a.href}`,onSelect:()=>aj(()=>l.push(a.href),{kind:"nav",id:a.key}),className:U,children:[c&&(0,d.jsx)(c,{size:16,className:V,"aria-hidden":"true"}),(0,d.jsx)("span",{className:"truncate",children:b})]},a.key)})}),ar&&(function(a){let b=new Map;for(let c of a){let a=c.repositoryDisplayName||c.repositoryName||"",d=a||"\0unnamed",e=b.get(d);e?e.worktrees.push(c):b.set(d,{key:d,repository:a,worktrees:[c]})}return[...b.values()]})(aw).map(a=>(0,d.jsx)(k.uB.Group,{heading:a.repository||o("groups.worktrees"),children:a.worktrees.map(b=>{let c=b.branch||b.name;return(0,d.jsxs)(k.uB.Item,{value:`worktree ${a.repository} ${c} ${b.name} ${b.id}`,onSelect:()=>aj(()=>l.push(`/worktrees/${b.id}`),{kind:"worktree",id:b.id}),className:U,children:[(0,d.jsx)(z.A,{size:16,className:V,"aria-hidden":"true"}),(0,d.jsx)("span",{className:"truncate",children:c}),(0,d.jsx)(L.m,{status:S(b),size:"sm",className:"ml-auto"})]},b.id)})},a.key)),at.length>0&&(0,d.jsx)(k.uB.Group,{heading:au.heading,children:at.map(a=>{let b=a.worktree.branch||a.worktree.name;return(0,d.jsxs)(k.uB.Item,{"data-testid":`palette-delegate-${a.worktree.id}-${a.instance.id}`,value:`/delegate ${a.worktree.id} ${a.instance.id} ${a.instance.alias} ${b}`,onSelect:()=>aj(()=>{ak(a)}),className:U,children:[(0,d.jsx)(B.A,{size:16,className:V,"aria-hidden":"true"}),(0,d.jsx)("span",{className:"truncate",children:a.instance.alias}),(0,d.jsxs)("span",{className:"ml-auto truncate pl-2 text-xs text-muted-foreground",children:[b," / ",a.instance.id]})]},`${a.worktree.id}:${a.instance.id}`)})}),(0,d.jsx)(k.uB.Group,{heading:o("groups.actions"),children:ax.map(a=>{let b=a.icon;return(0,d.jsxs)(k.uB.Item,{value:`action ${a.id} ${a.label}`,onSelect:()=>aj(a.run,{kind:"action",id:a.id}),className:U,children:[(0,d.jsx)(b,{size:16,className:V,"aria-hidden":"true"}),(0,d.jsx)("span",{className:"truncate",children:a.label})]},a.id)})})]}),(0,d.jsxs)("div",{className:"flex items-center gap-3 border-t border-border bg-surface-2 px-3 py-2 text-[11px] text-muted-foreground",children:[(0,d.jsxs)("span",{className:"flex items-center gap-1",children:[(0,d.jsx)(M.u,{children:"↑"}),(0,d.jsx)(M.u,{children:"↓"}),o("footer.navigate")]}),(0,d.jsxs)("span",{className:"flex items-center gap-1",children:[(0,d.jsx)(M.u,{children:"↵"}),o("footer.select")]}),(0,d.jsxs)("span",{className:"flex items-center gap-1",children:[(0,d.jsx)(M.u,{children:"esc"}),o("footer.close")]})]})]})})})]})}),document.body):null}},77560:(a,b,c)=>{c.d(b,{$h:()=>l,DR:()=>e,IH:()=>j,Iu:()=>d,Nb:()=>m,SD:()=>f,_d:()=>i,bm:()=>n,ks:()=>h,t7:()=>k,z7:()=>g});let d=7e3,e=["in_review","approval","stalled"],f="in_review",g="filter",h=`/review?${g}=approval`;function i(a){return a&&e.includes(a)?a:null}let j=["claude","codex","copilot","antigravity","opencode"],k=1e3,l=5,m=100,n=1e3},81497:(a,b,c)=>{c.d(b,{nR:()=>g});var d=c(21124),e=c(38301),f=c(23312);function g({content:a,delay:b=200,className:c,children:g,metadata:h}){let i=(0,e.useRef)(null),j=(0,e.useRef)(null),k=(0,e.useRef)(null),l=(0,e.useRef)(null),[m,n]=(0,e.useState)(!1),[o,p]=(0,e.useState)({top:-9999,left:-9999}),q=(0,e.useCallback)(()=>{null!==k.current&&(clearTimeout(k.current),k.current=null)},[]),r=(0,e.useCallback)(()=>{let a=i.current;a&&(a.scrollWidth>a.clientWidth||h)&&(q(),k.current=setTimeout(()=>{let b=a.getBoundingClientRect(),c=b.left;l.current={top:b.top,bottom:b.bottom},p({top:b.bottom+4,left:Math.min(b.left,c)}),n(!0),k.current=null},b))},[q,b,h]),s=(0,e.useCallback)(()=>{q(),n(!1)},[q]);return(0,d.jsxs)("span",{ref:i,className:c,onMouseEnter:r,onMouseLeave:s,children:[g??a,m&&"undefined"!=typeof document&&(0,f.createPortal)((0,d.jsxs)("span",{ref:j,role:"tooltip","aria-hidden":"true",className:"fixed z-[9999] max-w-md px-2 py-1 text-xs font-medium rounded bg-foreground text-background shadow-lg pointer-events-none",style:{top:o.top,left:o.left},children:[(0,d.jsx)("span",{className:"block break-all",children:a}),h&&(0,d.jsx)("span",{className:"mt-0.5 block whitespace-pre-line font-normal text-background/70",children:h})]}),document.body)]})}},85678:(a,b,c)=>{c.d(b,{Bz:()=>f,kj:()=>e,wx:()=>d});let d=["send","wait","capture","respond"];function e(a){let{binary:b,worktreeId:c,instanceId:d,messagePlaceholder:e}=a,f=null!=a.portPrefix&&3e3!==a.portPrefix?`CM_PORT=${a.portPrefix} `:"",g=`--instance ${d}`,h=`${f}${b}`;return{send:`${h} send ${c} "${e}" ${g}`,wait:`${h} wait ${c} ${g} --on-prompt human`,capture:`${h} capture ${c} ${g}`,respond:`${h} respond ${c} "1" ${g}`}}function f(a){let{binary:b,worktreeId:c,instanceId:d,instanceLabel:e,toolLabel:f}=a,g=null!=a.portPrefix&&3e3!==a.portPrefix?`CM_PORT=${a.portPrefix} `:"",h=`${g}${b}`,i=`--instance ${d}`,j="ja"===a.locale?"ja":"en",k=`${h} capture ${c} ${i} --pane --tail 60`,l=`${h} ask ${c} ${i} "<request>" --async`;if("ja"===j){let a=`${h} ask ${c} ${i} "<依頼文>" --timeout 1800`;return`## 別セッション「${e}」への委任
|
|
29
29
|
- 宛先: worktree \`${c}\` / instance \`${d}\`(${f})
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
"use strict";exports.id=1886,exports.ids=[1886],exports.modules={17287:(a,b,c)=>{c.d(b,{CD:()=>g,nL:()=>f});var d=c(24455);let e=globalThis.__permissionDecisions??(globalThis.__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)}}},34405:(a,b,c)=>{c.d(b,{G:()=>e,_:()=>d});let d=1e4,e=1e3},39333:(a,b,c)=>{c.d(b,{$Y:()=>g,Bg:()=>i,HB:()=>f,df:()=>h,f9:()=>d});let d=[".png",".jpg",".jpeg",".gif",".webp",".svg"],e=[{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 f(a){return a?a.startsWith(".")?a.toLowerCase():"."+a.toLowerCase():""}function g(a){let b=f(a),c=e.find(a=>a.extension===b);return c?.mimeType||"application/octet-stream"}function h(a){if(!a)return!1;let b=f(a);return d.includes(b)}function i(a,b){if(b.length>0x1400000)return{valid:!1,error:"File size exceeds 20MB limit"};if(".svg"===f(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=f(a),d=e.find(a=>a.extension===c);if(!d?.magicBytes)return".svg"===c;let g=d.magicBytesOffset||0;return!(b.length<g+d.magicBytes.length)&&d.magicBytes.every((a,c)=>b[g+c]===a)}(a,b)?{valid:!1,error:"Invalid image magic bytes"}:{valid:!0}}d.filter(a=>".svg"!==a).map(a=>g(a)).filter(a=>"application/octet-stream"!==a).join(",")},41466:(a,b,c)=>{c.d(b,{Ui:()=>as,TZ:()=>ar});var d=c(81886),e=c(8953),f=c(79892),g=c(85164),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(79646),C=c(28354),D=c(39333),E=c(1305),F=c(49791),G=c(62887),H=c(72272),I=c(49154),J=c(48083),K=c(36051),L=c(57510),M=c(129),N=c(75356),O=c(98211),P=c(90488),Q=c(85322);let R=(0,n.h)("lib/hooks/sources/opencode/ingest");async function S(a,b,c){let d=(0,M.VM)(Q.k),e=(0,O.Lu)(b.raw,b.receivedAt);if(!e)return R.info("opencode-permission-unparsed",{worktreeId:a.worktreeId,instanceId:c}),!1;let f=await (0,H.t)(d,a,e,d.parsePermissionRequest(b.raw));return R.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 T(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(6337),c.e(3323),c.e(1501),c.e(3707),c.e(6781)]).then(c.bind(c,16781))]),g=d(),h=e(g,a.worktreeId)??null;if(!h)return void R.info("opencode-stop-unresolved-target",{worktreeId:a.worktreeId});let i=await f(g,h,Q.k,b);R.info("opencode-stop-applied",{worktreeId:a.worktreeId,instanceId:b,taskId:i.taskId,taskEventApplied:i.taskEventApplied,verificationRunId:i.verificationRunId})}async function U(a,b){let c=a.instanceId??Q.k;try{let d=(0,M.VM)(Q.k),e=(0,J.classifyAgentEventDelivery)({worktreeId:a.worktreeId,cliToolId:Q.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 R.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,G.h9)??null,sessionId:b.conversationId,message:(function(a){let b=(0,L.Qd)(a.raw.properties)?a.raw.properties:{};if(a.detail===N.aF)return(0,L.NZ)(b,["metadata","command"])??(0,L.O2)(b,"permission");if(a.detail===N.Tm){let a=b.questions;return Array.isArray(a)&&(0,L.Qd)(a[0])?(0,L.O2)(a[0],"question"):null}return a.detail===N.vE?(0,L.NZ)(b,["error","data","message"])??(0,L.NZ)(b,["error","name"]):null})(b)?.slice(0,K.lY)??null,model:b.model},g={sessionStartMayArriveLate:d.capabilities.sessionStartMayArriveLate};if("notification"===b.event&&b.detail===N.aF){f.decisionId=(0,L.O2)((0,L.Qd)(b.raw.properties)?b.raw.properties:{},"id");let d=(0,O.LF)(b.raw,b.receivedAt);f.toolName=d?.toolName??null,f.decisionPatterns=d?.patterns??null,f.promptSettled=await S(a,b,c),(0,J.recordAgentEvent)(a.worktreeId,Q.k,c,f,g);return}if("notification"===b.event&&b.detail===N.C8){f.decisionId=(0,N.Mn)(b.raw),f.promptSettled=!!(0,M.VM)(Q.k).capabilities.permissionReplyReleasesPrompt||(R.info("opencode-permission-reply-not-releasing",{worktreeId:a.worktreeId,instanceId:c,reason:"capability-permissionReplyReleasesPrompt-false"}),!1),(0,J.recordAgentEvent)(a.worktreeId,Q.k,c,f,g),R.info("opencode-permission-reply-observed",{worktreeId:a.worktreeId,instanceId:c,decisionId:f.decisionId,released:f.promptSettled});return}if((0,J.recordAgentEvent)(a.worktreeId,Q.k,c,f,g),"notification"===b.event&&b.detail===N.Tm){let d=(0,M.VM)(Q.k).parseQuestion(b.raw);d&&((0,J.recordAskUserQuestion)(a.worktreeId,Q.k,c,d,b.receivedAt),(0,J.reportQuestionPending)(a.worktreeId,Q.k,c,{toolName:I.GF,decisionId:d.promptId,detail:N.Tm},b.receivedAt),R.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,P.Vo)(a,c,f.message??null,b.receivedAt);return}if("stop"===b.event)return void await T(a,c);"notification"===b.event&&b.detail===N.vE&&await (0,P.dJ)(a,c,(0,L.NZ)((0,L.Qd)(b.raw.properties)?b.raw.properties:{},["error","name"]),f.message??null,b.conversationId,b.receivedAt),R.info("opencode-event-received",{worktreeId:a.worktreeId,instanceId:c,event:b.event,detail:b.detail})}catch(d){R.error("opencode-event-ingest-failed",{worktreeId:a.worktreeId,instanceId:c,event:b.event,error:d instanceof Error?d.message:String(d)})}}var V=c(84574),W=c(85965),X=c(53163);let Y=(0,n.h)("lib/hooks/sources/opencode/runtime");function Z(a,b){return{worktreeId:a,cliToolId:"opencode",instanceId:b}}async function $(a,b){try{return await (0,V.CU)(a,b)}catch(b){return Y.warn("opencode-port-reserve-failed",{worktreeId:a.worktreeId,error:b instanceof Error?b.message:String(b)}),null}}let _=[0,500,1e3,2e3,4e3];async function aa(a,b){for(let[c,d]of _.entries()){d>0&&await new Promise(a=>setTimeout(a,d));let e=await (0,F.sc)(b);if("healthy"===e.kind)return c>0&&Y.info("opencode-server-reachable-after-retry",{worktreeId:a.worktreeId,instanceId:a.instanceId??a.cliToolId,port:b,attempt:c}),e.health;if("rejected"===e.kind){Y.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 ab(a){try{let b=(0,V.hC)(a);if(null===b)return!1;if((0,X.wb)(a))return!0;let c=await aa(a,b);if(!c)return Y.info("opencode-server-not-reachable",{worktreeId:a.worktreeId,instanceId:a.instanceId??a.cliToolId,port:b,attempts:_.length}),!1;await W.cC.subscribe(a,b=>{U(a,b)});let d=await ac(a);return Y.info("opencode-event-stream-attached",{worktreeId:a.worktreeId,instanceId:a.instanceId??a.cliToolId,port:b,version:c.version,activity:d}),!0}catch(b){return Y.warn("opencode-event-stream-attach-failed",{worktreeId:a.worktreeId,error:b instanceof Error?b.message:String(b)}),!1}}async function ac(a){let b=null;try{b=await W.cC.probeActivity(a)}catch(b){Y.debug("opencode-activity-probe-failed",{worktreeId:a.worktreeId,instanceId:a.instanceId??a.cliToolId,error:b instanceof Error?b.message:String(b)})}return(0,X.yn)(a,b,Date.now()),b}async function ad(a,b){try{if((0,X.wb)(a))return!0;let c=await (0,V.jp)(a,b);if(null===c)return!1;return await ab(a)}catch(b){return Y.warn("opencode-event-stream-resume-failed",{worktreeId:a.worktreeId,error:b instanceof Error?b.message:String(b)}),!1}}async function ae(a){let b=a.instanceId??a.cliToolId;try{let c=(0,V.hC)(a);if(null===c)return!1;let d=(0,X.lf)(a);if("live"!==d.state)return Y.info("opencode-abort-skipped-not-live",{worktreeId:a.worktreeId,instanceId:b,port:c,liveness:d.state}),!1;let e=(0,X.ym)(a);if(null===e)return Y.info("opencode-abort-skipped-no-session",{worktreeId:a.worktreeId,instanceId:b,port:c}),!1;let f=(0,X.H1)(a,e,2e3);if(!await (0,F.UR)(c,e))return f.cancel(),Y.warn("opencode-abort-rejected",{worktreeId:a.worktreeId,instanceId:b,port:c,sessionId:e}),!1;if(!await f.seen)return Y.warn("opencode-abort-unconfirmed",{worktreeId:a.worktreeId,instanceId:b,port:c,sessionId:e,timeoutMs:2e3}),!1;return Y.info("opencode-abort-confirmed",{worktreeId:a.worktreeId,instanceId:b,port:c,sessionId:e}),!0}catch(c){return Y.warn("opencode-abort-failed",{worktreeId:a.worktreeId,instanceId:b,error:c instanceof Error?c.message:String(c)}),!1}}async function af(a){try{await (0,X.FN)(a),(0,V.kE)(a)}catch(b){Y.warn("opencode-event-stream-release-failed",{worktreeId:a.worktreeId,error:b instanceof Error?b.message:String(b)})}}var ag=c(18529),ah=c(70849),ai=c(27939),aj=c(93949),ak=c(20610),al=c(78099);let am=(0,n.h)("cli-tools/opencode"),an=(0,C.promisify)(B.execFile);function ao(a){return a instanceof Error?a.message:String(a)}function ap(){let a=process.env[A.ao],b=(0,A._u)();return void 0!==a&&String(b)!==a.trim()?am.warn("opencode-pane-width-rejected",{requested:a,applied:b}):b>=A.Lg&&am.warn("opencode-pane-width-sidebar-visible",{width:b,sidebarMinWidth:A.Lg}),b}let aq=[0,50,100,200];function ar(a,b){return a?`${a}
|
|
2
2
|
|
|
3
3
|
[添付画像: ${b}]`:`[添付画像: ${b}]`}class as extends d.Mj{navigationKeys(){return{keys:e.sM,leaderKey:e.Mx}}async isRunning(a,b){let c=this.getSessionName(a,b);return await (0,f.N)(c)}async launchSession(a,b,c){if(!await this.isInstalled())throw(0,al.Tl)(this);let d=this.getSessionName(a,c),e=Z(a,c),g=await (0,f.N)(d);if(g){if(await this.reconcileExistingSession(d,{windowWidth:ap(),windowHeight:A.xT}),await this.isToolLive(d,{confirm:!0})){await ad(e,b),am.info("opencode-session-sessionname");return}am.warn("opencode-session-relaunch",{sessionName:d}),await af(e)}(0,E.Fq)(e);try{await z(b),g||(await (0,f.jw)({sessionName:d,workingDirectory:b}),await new Promise(a=>setTimeout(a,ak.Uc)));try{await an("tmux",["resize-window","-t",(0,f.lA)(d),"-x",String(ap()),"-y",String(A.xT)])}catch{}await $(e,b);let h=(0,E.wK)({target:e,executablePath:this.command,worktreePath:b}),i=(0,ai.pr)(e,b),j=null===i?h:(0,ai.XO)(h,i);null!==i&&am.info("opencode-session-resumed",{worktreeId:a,instanceId:c??this.id,sessionId:i}),await (0,f.V1)(d,j,!0),await this.waitForReady(d),await ab(e),am.info("started-opencode-session:sessionname")}catch(b){let a=ao(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 am.info("opencode-composer-detected",{attempt:b}),!0;if(g.LO.test(c))return am.info("opencode-overlay-detected",{attempt:b}),!0}catch{}await new Promise(a=>setTimeout(a,500))}return am.info("opencode-ready-detection-timeout"),!1}async trySendViaServer(a,b,c){let d=a.instanceId??a.cliToolId;try{let e=(0,V.hC)(a);if(null===e)return!1;let f=(0,X.lf)(a);if("live"!==f.state)return am.info("opencode-send-skipped-not-live",{worktreeId:a.worktreeId,instanceId:d,port:e,liveness:f.state}),!1;let g=(0,X.ym)(a);if(null===g)return am.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,D.$Y)((0,l.extname)(c)),filename:(0,l.basename)(c),url:(0,F.fy)(c)});let i=(0,F.CH)(),j=(0,ag.QH)((0,ag.Q1)(a));if(!await (0,F.wZ)(e,g,i,h,j))return!1;if(!await this.verifyPostedMessage(e,g,i,b))return am.warn("opencode-send-unverified",{worktreeId:a.worktreeId,instanceId:d,port:e,sessionId:g,messageId:i,hasImage:void 0!==c}),!1;return am.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 am.warn("opencode-send-api-failed",{worktreeId:a.worktreeId,instanceId:d,error:ao(b)}),!1}}async verifyPostedMessage(a,b,c,d){for(let e of aq){e>0&&await new Promise(a=>setTimeout(a,e));let f=await (0,F.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 (0,f.N)(d))throw Error(`OpenCode session ${d} does not exist. Start the session first.`);if(await this.relaunchIfToolExited(a,c),await this.trySendViaServer(Z(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),am.info("sent-message-to-opencode-session:session")}catch(b){let a=ao(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);if(!await (0,f.N)(e))throw Error(`OpenCode session ${e} does not exist. Start the session first.`);let g=Z(a,d);if(await this.trySendViaServer(g,b,c))return void(0,i.gm)(e);am.info("opencode-image-degraded-to-path",{worktreeId:a,instanceId:d??this.id}),await this.sendMessage(a,ar(b,c),d)}async killSession(a,b){let c=this.getSessionName(a,b),d=Z(a,b),e=(0,V.hC)(d),g=await (0,ah.LQ)(d).catch(()=>null);g&&!g.captured&&am.info("opencode-session-capture-skipped",{sessionName:c,reason:g.skipped}),await af(d);try{if(await (0,f.N)(c)){await (0,f.V1)(c,"/exit",!1),await new Promise(a=>setTimeout(a,ak.pL)),await (0,f.KB)(c,["Enter"]),await new Promise(a=>setTimeout(a,ak.KI));let a=await (0,aj.rY)({sessionAlive:()=>(0,f.N)(c),portAnswering:null===e?null:async()=>await (0,F.Ok)(e)!==null});a.ok||(am.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),am.info("stopped-opencode-session:sessionname")}catch(a){throw am.error("session:stop-failed",{error:ao(a)}),a}}async interrupt(a,b){let c=this.getSessionName(a,b);if(await ae(Z(a,b))){(0,i.gm)(c),am.info("opencode-interrupt-aborted-via-api");return}await (0,f.ds)(c,"Escape"),await new Promise(a=>setTimeout(a,ak.os)),await (0,f.ds)(c,"Escape"),(0,i.gm)(c),am.info("opencode-interrupt-sent")}constructor(...a){super(...a),this.id="opencode",this.name="OpenCode",this.command="opencode"}}},43234:(a,b,c)=>{c.r(b),c.d(b,{CLIToolManager:()=>af});var d=c(81886),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){await (0,f.R7)({worktreeId:a,worktreePath:b,instanceId:c})}async sendMessage(a,b,c){await (0,f.pU)(a,b,c)}supportsImage(){return!0}async sendMessageWithImage(a,b,c,d){let e=`
|
|
4
|
-
`,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(85164),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(78099);let w=(0,q.h)("cli-tools/codex");function x(a){return a instanceof Error?a.message:String(a)}let y="codex";function z(){return{screen:null,attempts:0}}class A extends d.Mj{async isRunning(a,b){let c=this.getSessionName(a,b);return await (0,h.N)(c)}async launchSession(a,b,c){if(!await this.isInstalled())throw(0,v.Tl)(this);let d=this.getSessionName(a,c),e=await (0,h.N)(d);if(e){if(await this.reconcileExistingSession(d),await this.isToolLive(d,{confirm:!0}))return void w.info("codex-session-sessionname");w.warn("codex-session-relaunch",{sessionName:d})}(0,t.Fq)({worktreeId:a,cliToolId:r.c1,instanceId:c});try{e||(await (0,h.jw)({sessionName:d,workingDirectory:b}),await new Promise(a=>setTimeout(a,u.Uc)));let f=(0,t.wK)({target:{worktreeId:a,cliToolId:r.c1,instanceId:c},executablePath:this.command,worktreePath:b}),g=async()=>{(0,t.Fq)({worktreeId:a,cliToolId:r.c1,instanceId:c}),await (0,h.V1)(d,f,!0),await new Promise(a=>setTimeout(a,3e3))};await (0,h.V1)(d,f,!0),await new Promise(a=>setTimeout(a,3e3)),await this.waitForReady(d,{relaunch:g,trustHooks:(0,s.dO)(b)}),w.info("started-codex-session:sessionname")}catch(b){let a=x(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 w.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),w.info("codex-update-lock-released",{sessionName:a})),w.info("codex-relaunched-after-update",{sessionName:a,policy:g}),await b.relaunch();continue}let x=(0,k.Qh)(t);if("update"===x){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"],w.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)),w.info("codex-update-dialog-answered",{sessionName:a,policy:g,key:b}),await new Promise(a=>setTimeout(a,u.CV));continue}}if("press-enter"===x){await (0,h.ds)(a,"Enter"),w.info("dismissed-codex-notification"),await new Promise(a=>setTimeout(a,u.CV));continue}if("trust"===x&&!e){await (0,h.V1)(a,"1",!1),e=!0,w.info("auto-trusted-folder-for"),await new Promise(a=>setTimeout(a,u.CV));continue}}catch{}await new Promise(a=>setTimeout(a,1e3))}w.info("codex-prompt-detection")}finally{q&&(q=!1,(0,p.lM)(y),w.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 w.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),w.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}),w.info("codex-hooks-screen-trusted",{sessionName:a,screen:b,attempt:e})):(await (0,h.ds)(a,"Escape"),w.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 w.info("codex-prompt-not"),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);if(!await (0,h.N)(d))throw Error(`Codex session ${d} does not exist. Start the session first.`);await this.relaunchIfToolExited(a,c);try{await this.waitForPrompt(d),await (0,i.FW)({sessionName:d,message:b,cliToolId:"codex",composer:this.describeComposer()}),(0,j.gm)(d),w.info("sent-message-to-codex-session:sessionnam")}catch(b){let a=x(b);throw Error(`Failed to send message to Codex: ${a}`)}}async killSession(a,b){let c=this.getSessionName(a,b);try{await (0,h.N)(c)&&(await (0,h.ds)(c,"C-d"),await new Promise(a=>setTimeout(a,u.Zf))),await (0,h.fY)(c)&&w.info("stopped-codex-session:sessionname")}catch(a){throw w.error("session:stop-failed",{error:x(a)}),a}}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");function D(a){return a instanceof Error?a.message:String(a)}class E extends d.Mj{async isRunning(a,b){let c=this.getSessionName(a,b);return await (0,h.N)(c)}async launchSession(a,b,c){if(!await this.isInstalled())throw(0,v.Tl)(this);let d=this.getSessionName(a,c),e=await (0,h.N)(d);if(e){if(await this.reconcileExistingSession(d),await this.isToolLive(d,{confirm:!0}))return void C.info("gemini-session-sessionname");C.warn("gemini-session-relaunch",{sessionName:d})}(0,t.Fq)({worktreeId:a,cliToolId:r.o,instanceId:c});try{e||(await (0,h.jw)({sessionName:d,workingDirectory:b}),await new Promise(a=>setTimeout(a,u.Uc)));let f=(0,t.wK)({target:{worktreeId:a,cliToolId:r.o,instanceId:c},executablePath:this.command,worktreePath:b});await (0,h.V1)(d,f,!0),await new Promise(a=>setTimeout(a,6e3)),await this.waitForReady(d),C.info("started-gemini-session:sessionname")}catch(b){let a=D(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"))}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")}async sendMessage(a,b,c){let d=this.getSessionName(a,c);if(!await (0,h.N)(d))throw Error(`Gemini session ${d} does not exist. Start the session first.`);await this.relaunchIfToolExited(a,c);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:sessionna")}catch(b){let a=D(b);throw Error(`Failed to send message to Gemini: ${a}`)}}async killSession(a,b){let c=this.getSessionName(a,b);try{await (0,h.N)(c)&&(await (0,h.ds)(c,"C-c"),await new Promise(a=>setTimeout(a,u.Is)),await (0,h.V1)(c,"/quit",!0),await new Promise(a=>setTimeout(a,u.Zf))),await (0,h.fY)(c)&&C.info("stopped-gemini-session:sessionname")}catch(a){throw C.error("session:stop-failed",{error:D(a)}),a}}constructor(...a){super(...a),this.id="gemini",this.name="Gemini CLI",this.command="gemini"}}var F=c(15194),G=c(88807),H=c(56791);let I=(0,q.h)("cli-tools/vibe-local");function J(a){return a instanceof Error?a.message:String(a)}class K extends d.Mj{async isRunning(a,b){let c=this.getSessionName(a,b);return await (0,h.N)(c)}async launchSession(a,b,c){if(!await this.isInstalled())throw(0,v.Tl)(this);let d=this.getSessionName(a,c),e=await (0,h.N)(d);if(e){if(await this.reconcileExistingSession(d),await this.isToolLive(d,{confirm:!0}))return void I.info("vibe-local-session");I.warn("vibe-local-session-relaunch",{sessionName:d})}(0,t.Fq)({worktreeId:a,cliToolId:this.id,instanceId:c});try{e||(await (0,h.jw)({sessionName:d,workingDirectory:b}),await new Promise(a=>setTimeout(a,u.Uc)));let c="vibe-local -y";try{let b=(0,G.getDbInstance)(),d=(0,H.getWorktreeById)(b,a);d?.vibeLocalModel&&F.QP.test(d.vibeLocalModel)&&(c+=` -m ${d.vibeLocalModel}`);let e=d?.vibeLocalContextWindow;(0,F.FV)(e)&&(c+=` --context-window ${Number(e)}`)}catch{}await (0,h.V1)(d,c,!0),await new Promise(a=>setTimeout(a,5e3)),I.info("started-vibe-local-session:sessionname")}catch(b){let a=J(b);throw Error(`Failed to start Vibe Local session: ${a}`)}}async sendMessage(a,b,c){let d=this.getSessionName(a,c);if(!await (0,h.N)(d))throw Error(`Vibe Local session ${d} does not exist. Start the session first.`);await this.relaunchIfToolExited(a,c);try{await (0,i.FW)({sessionName:d,message:b,cliToolId:"vibe-local",composer:this.describeComposer(),interEnterWaitMs:u.PY}),(0,j.gm)(d),I.info("sent-message-to-vibe-local-session:sessi")}catch(b){let a=J(b);throw Error(`Failed to send message to Vibe Local: ${a}`)}}async killSession(a,b){let c=this.getSessionName(a,b);try{await (0,h.N)(c)&&(await (0,h.ds)(c,"C-c"),await new Promise(a=>setTimeout(a,u.Is)),await (0,h.ds)(c,"C-c"),await new Promise(a=>setTimeout(a,u.Zf))),await (0,h.fY)(c)&&I.info("stopped-vibe-local-session:sessionname")}catch(a){throw I.error("session:stop-failed",{error:J(a)}),a}}constructor(...a){super(...a),this.id="vibe-local",this.name="Vibe Local",this.command="vibe-local"}}var L=c(41466),M=c(81776),N=c(56263),O=c(21758),P=c(54633),Q=c(77093);let R=(0,q.h)("cli-tools/copilot"),S=new Set(["model","agent","theme","permissions","skills","mcp","settings","statusline","subagents","resume","session"]),T=/^[>❯](?:\s|$)/;class U extends d.Mj{async isInstalled(){return await (0,M.B0)()!==null}launchExecutable(a){return"path"===a.source?this.command:O.nL}async isRunning(a,b){let c=this.getSessionName(a,b);return await (0,h.N)(c)}async launchSession(a,b,c){let d=await (0,M.B0)();if(!d)throw(0,v.Tl)(this);let e=this.getSessionName(a,c),f=await (0,h.N)(e);if(f){if(await this.reconcileExistingSession(e),await this.isToolLive(e,{confirm:!0}))return void R.info("copilot-session-exists");R.warn("copilot-session-relaunch",{sessionName:e})}(0,t.Fq)({worktreeId:a,cliToolId:P.V,instanceId:c});try{f||(await (0,h.jw)({sessionName:e,workingDirectory:b}),await new Promise(a=>setTimeout(a,u.Uc)));let g=(0,t.wK)({target:{worktreeId:a,cliToolId:P.V,instanceId:c},executablePath:this.launchExecutable(d),worktreePath:b});await (0,h.V1)(e,g,!0),await this.waitForReady(e),R.info("started-copilot-session",{executableSource:d.source,version:d.version})}catch(b){let a=(0,Q.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),R.info("copilot-folder-trust-answered"),!0)}isComposerDrawn(a){let b=a.split("\n");for(let a=1;a<b.length-1;a++)if(T.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 R.info("copilot-prompt-detected");!b&&await this.answerFolderTrustDialog(a,d)&&(b=!0)}catch{}await new Promise(a=>setTimeout(a,1e3))}R.info("copilot-prompt-detection-timeout")}async waitForPrompt(a,b=15e3){let c=Date.now(),d=!1;for(;Date.now()-c<b;){try{let b=await (0,h.Xg)(a,50),c=(0,k.aJ)(b);if(k.Du.test(c))return;!d&&await this.answerFolderTrustDialog(a,c)&&(d=!0)}catch{}await new Promise(a=>setTimeout(a,500))}R.info("copilot-prompt-not-detected")}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 R.info("copilot-selection-list-detected"),!0}catch{}}return R.info("copilot-selection-list-not-detected-timeout"),!1}async sendMessage(a,b,c){let d=this.getSessionName(a,c);if(!await (0,h.N)(d))throw Error(`Copilot session ${d} does not exist. Start the session first.`);await this.relaunchIfToolExited(a,c);try{await this.waitForPrompt(d);let a=this.extractSlashCommand(b);if(a&&S.has(a)){await (0,h.V1)(d,b,!0),await this.waitForSelectionList(d),(0,j.gm)(d),R.info("sent-selection-list-command-to-copilot",{command:a});return}await (0,i.FW)({sessionName:d,message:b,cliToolId:"copilot",composer:this.describeComposer(),textInputWaitMs:N.L1,verifyDelayMs:N.wp}),(0,j.gm)(d),R.info("sent-message-to-copilot-session")}catch(b){let a=(0,Q.u1)(b);throw Error(`Failed to send message to Copilot: ${a}`)}}async sendModelCommand(a,b,c){let d=this.getSessionName(a,c);if(!await (0,h.N)(d))throw Error(`Copilot session ${d} does not exist. Start the session first.`);try{await (0,h.V1)(d,`/model ${b}`,!0),await this.waitForPrompt(d,N.pL),(0,j.gm)(d),R.info("copilot-model-switched",{model:b})}catch(c){let a=(0,Q.u1)(c);throw Error(`Failed to switch Copilot model to ${b}: ${a}`)}}async killSession(a,b){let c=this.getSessionName(a,b);try{await (0,h.N)(c)&&(await (0,h.ds)(c,"C-c"),await new Promise(a=>setTimeout(a,u.Is)),await (0,h.V1)(c,"/exit",!1),await new Promise(a=>setTimeout(a,N.L1)),await (0,h.KB)(c,["Enter"]),await new Promise(a=>setTimeout(a,u.Rk))),await (0,h.fY)(c)&&R.info("stopped-copilot-session")}catch(a){throw R.error("session:stop-failed",{error:(0,Q.u1)(a)}),a}}constructor(...a){super(...a),this.id="copilot",this.name="Copilot",this.command="copilot"}}var V=c(74258);let W=(0,q.h)("cli-tools/antigravity");function X(a){return a instanceof Error?a.message:String(a)}let Y=/\?\s+for\s+shortcuts/,Z=/Do you trust the contents of this project\?/;function $(a){let b=(0,V.z)(a);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 isRunning(a,b){let c=this.getSessionName(a,b);return await (0,h.N)(c)}async launchSession(a,b,c,d){if(!await this.isInstalled())throw(0,v.Tl)(this);let e=this.getSessionName(a,c),f=await (0,h.N)(e);if(f){if(await this.reconcileExistingSession(e),await this.isToolLive(e,{confirm:!0}))return void W.info("antigravity-session-exists");W.warn("antigravity-session-relaunch",{sessionName:e})}(0,t.Fq)({worktreeId:a,cliToolId:r.F0,instanceId:c});try{f||(await (0,h.jw)({sessionName:e,workingDirectory:b}),await new Promise(a=>setTimeout(a,u.Uc)));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;await (0,h.V1)(e,i,!0),await new Promise(a=>setTimeout(a,3e3)),await this.waitForReady(e),W.info("started-antigravity-session")}catch(b){let a=X(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 W.info("antigravity-prompt-detected");if(!b&&Z.test(d)){await (0,h.ds)(a,"Enter"),b=!0,W.info("auto-trusted-folder-for-antigravity"),await new Promise(a=>setTimeout(a,500));continue}}catch{}await new Promise(a=>setTimeout(a,1e3))}W.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 W.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);if(!await (0,h.N)(d))throw Error(`Antigravity session ${d} does not exist. Start the session first.`);await this.relaunchIfToolExited(a,c);try{await this.waitForPrompt(d),await (0,i.FW)({sessionName:d,message:b,cliToolId:"antigravity",composer:this.describeComposer()}),(0,j.gm)(d),W.info("sent-message-to-antigravity-session")}catch(b){let a=X(b);throw Error(`Failed to send message to Antigravity: ${a}`)}}async killSession(a,b){let c=this.getSessionName(a,b);try{await (0,h.N)(c)&&(await (0,h.ds)(c,"C-d"),await new Promise(a=>setTimeout(a,u.Zf)));let a=await (0,h.fY)(c);(0,j.gm)(c),a&&W.info("stopped-antigravity-session")}catch(a){throw W.error("session:stop-failed",{error:X(a)}),a}}constructor(...a){super(...a),this.id="antigravity",this.name="Antigravity CLI",this.command="agy"}}var aa=c(28862);let ab=(0,q.h)("cli-tools/command-code"),ac=["--trust","--skip-onboarding","--no-auto-update"];function ad(a){let b=a.split("\n");return!(0>(0,k.I$)(b))&&!k.k0.test((0,k.aJ)(a))}class ae extends d.Mj{navigationKeys(){return{keys:e.pU,leaderKey:null}}async isRunning(a,b){let c=this.getSessionName(a,b);return await (0,h.N)(c)}async launchSession(a,b,c){if(!await this.isInstalled())throw(0,v.Tl)(this);let d=this.getSessionName(a,c),e=await (0,h.N)(d);if(e){if(await this.reconcileExistingSession(d),await this.isToolLive(d,{confirm:!0}))return void ab.info("command-code-session-exists");ab.warn("command-code-session-relaunch",{sessionName:d})}(0,t.Fq)({worktreeId:a,cliToolId:aa.k,instanceId:c});try{var f;e||(await (0,h.jw)({sessionName:d,workingDirectory:b}),await new Promise(a=>setTimeout(a,u.Uc))),await (0,h.V1)(d,(f={target:{worktreeId:a,cliToolId:aa.k,instanceId:c},executablePath:this.command,worktreePath:b},[(0,t.wK)(f),...ac].join(" ")),!0),await new Promise(a=>setTimeout(a,u.yO)),await this.waitForReady(d),ab.info("started-command-code-session")}catch(a){throw Error(`Failed to start Command Code session: ${(0,Q.u1)(a)}`)}}async waitForReady(a){for(let b=0;b<30;b++){try{let b=await (0,h.Xg)(a,50);if(ad(b))return void ab.info("command-code-prompt-detected")}catch{}await new Promise(a=>setTimeout(a,1e3))}ab.info("command-code-prompt-detection-timeout")}async waitForPrompt(a){let b=Date.now();for(;Date.now()-b<15e3;){try{let b=await (0,h.Xg)(a,50);if(ad(b))return}catch{}await new Promise(a=>setTimeout(a,500))}throw ab.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);if(!await (0,h.N)(d))throw Error(`Command Code session ${d} does not exist. Start the session first.`);await this.relaunchIfToolExited(a,c);try{await this.waitForPrompt(d),await (0,i.FW)({sessionName:d,message:b,cliToolId:"command-code",composer:this.describeComposer()}),(0,j.gm)(d),ab.info("sent-message-to-command-code-session")}catch(a){throw Error(`Failed to send message to Command Code: ${(0,Q.u1)(a)}`)}}async killSession(a,b){let c=this.getSessionName(a,b);try{await (0,h.N)(c)&&(await (0,h.V1)(c,"/exit",!1),await new Promise(a=>setTimeout(a,u.pL)),await (0,h.KB)(c,["Enter"]),await new Promise(a=>setTimeout(a,u.Zf)));let a=await (0,h.fY)(c);(0,j.gm)(c),a&&ab.info("stopped-command-code-session")}catch(a){throw ab.error("session:stop-failed",{error:(0,Q.u1)(a)}),a}}constructor(...a){super(...a),this.id="command-code",this.name="Command Code CLI",this.command="commandcode"}}class af{constructor(){this.tools=new Map,this.tools.set("claude",new g),this.tools.set("codex",new A),this.tools.set("gemini",new E),this.tools.set("vibe-local",new K),this.tools.set("opencode",new L.Ui),this.tools.set("copilot",new U),this.tools.set("antigravity",new _),this.tools.set("command-code",new ae)}static getInstance(){return af.instance||(af.instance=new af),af.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(6337),c.e(595),c.e(3323),c.e(8918),c.e(650),c.e(6677),c.e(5220)]).then(c.bind(c,95220));e(a,b,d)}}},56263:(a,b,c)=>{c.d(b,{L1:()=>e,MJ:()=>j,Rf:()=>f,ky:()=>g,lM:()=>i,pL:()=>h,wp:()=>d,zt:()=>k});let d=200,e=100,f=1e5,g="[... truncated ...]",h=3e4,i=/^[a-zA-Z0-9][a-zA-Z0-9\-._/:]*$/,j=128,k="Install with: brew install copilot-cli (macOS) or npm i -g @github/copilot"},68652:(a,b,c)=>{c.d(b,{N:()=>g});let d=/Esc\s+to\s+cancel\s*[·•]\s*Tab\s+to\s+amend/i,e=/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){if(""===a)return"";let b=a.split("\n"),c=-1;for(let a=b.length-1;a>=0;a--){var g;if(g=b[a],d.test(g)||e.test(g)){c=a;break}}let h=b;return c>=0&&(h=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})(h).join("\n")}},70849:(a,b,c)=>{c.d(b,{LQ:()=>k,SW:()=>l});var d=c(72626),e=c(84574),f=c(48083),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 c.e(3241).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}}},74258:(a,b,c)=>{c.d(b,{h:()=>g,z:()=>h});var d=c(85164),e=c(68652),f=c(46423);let g=15;function h(a){let b=(0,e.N)((0,d.aJ)(a)),c=b.split("\n"),h=c.length-1;for(;h>=0&&""===c[h].trim();)h--;let i=c.slice(0,h+1);return{raw:a,clean:b,lines:c,contentLines:i,lastLines:i.slice(-g).join("\n"),thinkingLines:i.slice(-f.$).join("\n")}}},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",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){var b;return new e.lU(a.name,(b=a,`${b.name} (${b.command}) is not installed or not in PATH. ${f[b.id]}`))}},81886:(a,b,c)=>{c.d(b,{Km:()=>A,Mj:()=>z});var d=c(79646),e=c(28354),f=c(40964),g=c(79892),h=c(56717),i=c(23365),j=c(93949),k=c(91536),l=c(50945),m=c(96287),n=c(51297),o=c(87447),p=c(45567),q=c(72626),r=c(8953),s=c(20610),t=c(16983);let u=(0,e.promisify)(d.exec),v=(0,q.h)("cli-tools/base"),w=RegExp(`${p.ZM}=(?:'([^']*)'|"([^"]*)"|(\\S+))`,"g"),x=new Set,y=new Set;class z{async isInstalled(){try{return await u(`which ${this.command}`,{timeout:5e3}),!0}catch{return!1}}getSessionName(a,b){return(0,f.m)(this.id,a,b)}async startSession(a,b,c,d){try{await this.launchSession(a,b,c,d)}catch(b){throw this.takeAdoptionMark(a,c),(0,m.Zl)({worktreeId:a,cliToolId:this.id,instanceId:c,toolName:this.name},b),b}let e=this.takeAdoptionMark(a,c);null!==e&&await this.warnIfHookUrlIsStale(a,e,c)}async reconcileExistingSession(a,b){x.add(a),await (0,g.zT)(a,b)}takeAdoptionMark(a,b){try{let c=this.getSessionName(a,b);return x.delete(c)?c:null}catch{return null}}async warnIfHookUrlIsStale(a,b,c){if(!y.has(b))try{let d=await (0,g.Xg)(b,{startLine:-t.eu});y.add(b);let e=function(a){let b=null;for(let c of(0,n.aJ)(a).matchAll(w)){let a=c[1]??c[2]??c[3]??null;a&&(b=a)}return b}(d);if(null===e)return;let f=function(a){try{let b=new URL(a);if(""!==b.port)return Number(b.port);return"https:"===b.protocol?443:80}catch{return null}}(e),h=(0,o.D0)();if(null===f||f===h)return;v.warn("session:hook-url-stale",{cliToolId:this.id,sessionName:b,sessionPort:f,serverPort:h}),(0,m.ED)({worktreeId:a,cliToolId:this.id,instanceId:c,toolName:this.name,sessionPort:f,serverPort:h})}catch(b){v.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,h.gc)(this.id)}gracefulExitSequence(){return(0,j.JV)(this.id)}captureSpec(){return(0,i.y)(this.id)}livenessSpec(){return(0,k.H7)(this.id)}async isToolLive(a,b){let c=this.livenessSpec(),d=await (0,l.Q)(a,c);if(d.alive)return!0;if(!b?.confirm)return!1;await new Promise(a=>setTimeout(a,s.kZ));let e=await (0,l.Q)(a,c);return e.alive?(v.info("session:liveness-confirm-recovered",{cliToolId:this.id,firstReason:d.reason}),!0):(v.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 v.warn("session:relaunch-skipped-no-path",{cliToolId:this.id,worktreeId:a});v.info("session:relaunch-before-send",{cliToolId:this.id,sessionName:c}),await this.startSession(a,d,b)}navigationKeys(){return{keys:r.qD,leaderKey:null}}}function A(a,b,c){a instanceof z&&a.warnIfRunningSessionHookUrlIsStale(b,c).catch(()=>{})}},93949:(a,b,c)=>{c.d(b,{JV:()=>i,rY:()=>k});var d=c(56263),e=c(20610),f=c(86069);let g={keys:[(0,f.IS)("C-d")],exitWaitMs:e.Zf,ownsLoopbackServer:!1},h={claude:g,codex:g,antigravity:g,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}};function i(a){return h[a]??g}let j=a=>new Promise(b=>setTimeout(b,a));async function k(a){let b=Math.max(1,a.attempts??1),c=a.intervalMs??0,d=a.sleep??j,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}}},96287:(a,b,c)=>{c.d(b,{$k:()=>h,ED:()=>g,VI:()=>i,Zl:()=>e});var d=c(78099);function e(a,b){Promise.all([c.e(1356),c.e(1191),c.e(6337)]).then(c.bind(c,81099)).then(({notifySessionStartFailurePush:c})=>c({...a,error:b})).catch(()=>{})}let f=new Set;function g(a){let b=[a.worktreeId,a.instanceId??a.cliToolId,a.sessionPort,a.serverPort].join(":");f.has(b)||(f.add(b),Promise.all([c.e(1356),c.e(1191),c.e(6337)]).then(c.bind(c,81099)).then(({notifyStaleHookUrlPush:b})=>b(a)).catch(()=>{}))}async function h(a,b){if(await a.isInstalled())return;let c=(0,d.Tl)(a);throw e({worktreeId:b.worktreeId,cliToolId:a.id,instanceId:b.instanceId,toolName:a.name,subject:b.subject},c),c}function i(a,b){Promise.resolve().then(c.bind(c,43234)).then(({CLIToolManager:c})=>{let f=c.getInstance().getTool(a);e({worktreeId:b.worktreeId,cliToolId:a,instanceId:b.instanceId,toolName:f.name,subject:b.subject},(0,d.Tl)(f))}).catch(()=>{})}}};
|
|
4
|
+
`,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(85164),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(78099);let w=(0,q.h)("cli-tools/codex");function x(a){return a instanceof Error?a.message:String(a)}let y="codex";function z(){return{screen:null,attempts:0}}class A extends d.Mj{async isRunning(a,b){let c=this.getSessionName(a,b);return await (0,h.N)(c)}async launchSession(a,b,c){if(!await this.isInstalled())throw(0,v.Tl)(this);let d=this.getSessionName(a,c),e=await (0,h.N)(d);if(e){if(await this.reconcileExistingSession(d),await this.isToolLive(d,{confirm:!0}))return void w.info("codex-session-sessionname");w.warn("codex-session-relaunch",{sessionName:d})}(0,t.Fq)({worktreeId:a,cliToolId:r.c1,instanceId:c});try{e||(await (0,h.jw)({sessionName:d,workingDirectory:b}),await new Promise(a=>setTimeout(a,u.Uc)));let f=(0,t.wK)({target:{worktreeId:a,cliToolId:r.c1,instanceId:c},executablePath:this.command,worktreePath:b}),g=async()=>{(0,t.Fq)({worktreeId:a,cliToolId:r.c1,instanceId:c}),await (0,h.V1)(d,f,!0),await new Promise(a=>setTimeout(a,3e3))};await (0,h.V1)(d,f,!0),await new Promise(a=>setTimeout(a,3e3)),await this.waitForReady(d,{relaunch:g,trustHooks:(0,s.dO)(b)}),w.info("started-codex-session:sessionname")}catch(b){let a=x(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 w.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),w.info("codex-update-lock-released",{sessionName:a})),w.info("codex-relaunched-after-update",{sessionName:a,policy:g}),await b.relaunch();continue}let x=(0,k.Qh)(t);if("update"===x){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"],w.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)),w.info("codex-update-dialog-answered",{sessionName:a,policy:g,key:b}),await new Promise(a=>setTimeout(a,u.CV));continue}}if("press-enter"===x){await (0,h.ds)(a,"Enter"),w.info("dismissed-codex-notification"),await new Promise(a=>setTimeout(a,u.CV));continue}if("trust"===x&&!e){await (0,h.V1)(a,"1",!1),e=!0,w.info("auto-trusted-folder-for"),await new Promise(a=>setTimeout(a,u.CV));continue}}catch{}await new Promise(a=>setTimeout(a,1e3))}w.info("codex-prompt-detection")}finally{q&&(q=!1,(0,p.lM)(y),w.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 w.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),w.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}),w.info("codex-hooks-screen-trusted",{sessionName:a,screen:b,attempt:e})):(await (0,h.ds)(a,"Escape"),w.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 w.info("codex-prompt-not"),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);if(!await (0,h.N)(d))throw Error(`Codex session ${d} does not exist. Start the session first.`);await this.relaunchIfToolExited(a,c);try{await this.waitForPrompt(d),await (0,i.FW)({sessionName:d,message:b,cliToolId:"codex",composer:this.describeComposer()}),(0,j.gm)(d),w.info("sent-message-to-codex-session:sessionnam")}catch(b){let a=x(b);throw Error(`Failed to send message to Codex: ${a}`)}}async killSession(a,b){let c=this.getSessionName(a,b);try{await (0,h.N)(c)&&(await (0,h.ds)(c,"C-d"),await new Promise(a=>setTimeout(a,u.Zf))),await (0,h.fY)(c)&&w.info("stopped-codex-session:sessionname")}catch(a){throw w.error("session:stop-failed",{error:x(a)}),a}}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");function D(a){return a instanceof Error?a.message:String(a)}class E extends d.Mj{async isRunning(a,b){let c=this.getSessionName(a,b);return await (0,h.N)(c)}async launchSession(a,b,c){if(!await this.isInstalled())throw(0,v.Tl)(this);let d=this.getSessionName(a,c),e=await (0,h.N)(d);if(e){if(await this.reconcileExistingSession(d),await this.isToolLive(d,{confirm:!0}))return void C.info("gemini-session-sessionname");C.warn("gemini-session-relaunch",{sessionName:d})}(0,t.Fq)({worktreeId:a,cliToolId:r.o,instanceId:c});try{e||(await (0,h.jw)({sessionName:d,workingDirectory:b}),await new Promise(a=>setTimeout(a,u.Uc)));let f=(0,t.wK)({target:{worktreeId:a,cliToolId:r.o,instanceId:c},executablePath:this.command,worktreePath:b});await (0,h.V1)(d,f,!0),await new Promise(a=>setTimeout(a,6e3)),await this.waitForReady(d),C.info("started-gemini-session:sessionname")}catch(b){let a=D(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"))}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")}async sendMessage(a,b,c){let d=this.getSessionName(a,c);if(!await (0,h.N)(d))throw Error(`Gemini session ${d} does not exist. Start the session first.`);await this.relaunchIfToolExited(a,c);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:sessionna")}catch(b){let a=D(b);throw Error(`Failed to send message to Gemini: ${a}`)}}async killSession(a,b){let c=this.getSessionName(a,b);try{await (0,h.N)(c)&&(await (0,h.ds)(c,"C-c"),await new Promise(a=>setTimeout(a,u.Is)),await (0,h.V1)(c,"/quit",!0),await new Promise(a=>setTimeout(a,u.Zf))),await (0,h.fY)(c)&&C.info("stopped-gemini-session:sessionname")}catch(a){throw C.error("session:stop-failed",{error:D(a)}),a}}constructor(...a){super(...a),this.id="gemini",this.name="Gemini CLI",this.command="gemini"}}var F=c(15194),G=c(88807),H=c(56791);let I=(0,q.h)("cli-tools/vibe-local");function J(a){return a instanceof Error?a.message:String(a)}class K extends d.Mj{async isRunning(a,b){let c=this.getSessionName(a,b);return await (0,h.N)(c)}async launchSession(a,b,c){if(!await this.isInstalled())throw(0,v.Tl)(this);let d=this.getSessionName(a,c),e=await (0,h.N)(d);if(e){if(await this.reconcileExistingSession(d),await this.isToolLive(d,{confirm:!0}))return void I.info("vibe-local-session");I.warn("vibe-local-session-relaunch",{sessionName:d})}(0,t.Fq)({worktreeId:a,cliToolId:this.id,instanceId:c});try{e||(await (0,h.jw)({sessionName:d,workingDirectory:b}),await new Promise(a=>setTimeout(a,u.Uc)));let c="vibe-local -y";try{let b=(0,G.getDbInstance)(),d=(0,H.getWorktreeById)(b,a);d?.vibeLocalModel&&F.QP.test(d.vibeLocalModel)&&(c+=` -m ${d.vibeLocalModel}`);let e=d?.vibeLocalContextWindow;(0,F.FV)(e)&&(c+=` --context-window ${Number(e)}`)}catch{}await (0,h.V1)(d,c,!0),await new Promise(a=>setTimeout(a,5e3)),I.info("started-vibe-local-session:sessionname")}catch(b){let a=J(b);throw Error(`Failed to start Vibe Local session: ${a}`)}}async sendMessage(a,b,c){let d=this.getSessionName(a,c);if(!await (0,h.N)(d))throw Error(`Vibe Local session ${d} does not exist. Start the session first.`);await this.relaunchIfToolExited(a,c);try{await (0,i.FW)({sessionName:d,message:b,cliToolId:"vibe-local",composer:this.describeComposer(),interEnterWaitMs:u.PY}),(0,j.gm)(d),I.info("sent-message-to-vibe-local-session:sessi")}catch(b){let a=J(b);throw Error(`Failed to send message to Vibe Local: ${a}`)}}async killSession(a,b){let c=this.getSessionName(a,b);try{await (0,h.N)(c)&&(await (0,h.ds)(c,"C-c"),await new Promise(a=>setTimeout(a,u.Is)),await (0,h.ds)(c,"C-c"),await new Promise(a=>setTimeout(a,u.Zf))),await (0,h.fY)(c)&&I.info("stopped-vibe-local-session:sessionname")}catch(a){throw I.error("session:stop-failed",{error:J(a)}),a}}constructor(...a){super(...a),this.id="vibe-local",this.name="Vibe Local",this.command="vibe-local"}}var L=c(41466),M=c(81776),N=c(56263),O=c(21758),P=c(54633),Q=c(77093);let R=(0,q.h)("cli-tools/copilot"),S=new Set(["model","agent","theme","permissions","skills","mcp","settings","statusline","subagents","resume","session"]),T=/^[>❯](?:\s|$)/;class U extends d.Mj{async isInstalled(){return await (0,M.B0)()!==null}launchExecutable(a){return"path"===a.source?this.command:O.nL}async isRunning(a,b){let c=this.getSessionName(a,b);return await (0,h.N)(c)}async launchSession(a,b,c){let d=await (0,M.B0)();if(!d)throw(0,v.Tl)(this);let e=this.getSessionName(a,c),f=await (0,h.N)(e);if(f){if(await this.reconcileExistingSession(e),await this.isToolLive(e,{confirm:!0}))return void R.info("copilot-session-exists");R.warn("copilot-session-relaunch",{sessionName:e})}(0,t.Fq)({worktreeId:a,cliToolId:P.V,instanceId:c});try{f||(await (0,h.jw)({sessionName:e,workingDirectory:b}),await new Promise(a=>setTimeout(a,u.Uc)));let g=(0,t.wK)({target:{worktreeId:a,cliToolId:P.V,instanceId:c},executablePath:this.launchExecutable(d),worktreePath:b});await (0,h.V1)(e,g,!0),await this.waitForReady(e),R.info("started-copilot-session",{executableSource:d.source,version:d.version})}catch(b){let a=(0,Q.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),R.info("copilot-folder-trust-answered"),!0)}isComposerDrawn(a){let b=a.split("\n");for(let a=1;a<b.length-1;a++)if(T.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 R.info("copilot-prompt-detected");!b&&await this.answerFolderTrustDialog(a,d)&&(b=!0)}catch{}await new Promise(a=>setTimeout(a,1e3))}R.info("copilot-prompt-detection-timeout")}async waitForPrompt(a,b=15e3){let c=Date.now(),d=!1;for(;Date.now()-c<b;){try{let b=await (0,h.Xg)(a,50),c=(0,k.aJ)(b);if(k.Du.test(c))return;!d&&await this.answerFolderTrustDialog(a,c)&&(d=!0)}catch{}await new Promise(a=>setTimeout(a,500))}R.info("copilot-prompt-not-detected")}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 R.info("copilot-selection-list-detected"),!0}catch{}}return R.info("copilot-selection-list-not-detected-timeout"),!1}async sendMessage(a,b,c){let d=this.getSessionName(a,c);if(!await (0,h.N)(d))throw Error(`Copilot session ${d} does not exist. Start the session first.`);await this.relaunchIfToolExited(a,c);try{await this.waitForPrompt(d);let a=this.extractSlashCommand(b);if(a&&S.has(a)){await (0,h.V1)(d,b,!0),await this.waitForSelectionList(d),(0,j.gm)(d),R.info("sent-selection-list-command-to-copilot",{command:a});return}await (0,i.FW)({sessionName:d,message:b,cliToolId:"copilot",composer:this.describeComposer(),textInputWaitMs:N.L1,verifyDelayMs:N.wp}),(0,j.gm)(d),R.info("sent-message-to-copilot-session")}catch(b){let a=(0,Q.u1)(b);throw Error(`Failed to send message to Copilot: ${a}`)}}async sendModelCommand(a,b,c){let d=this.getSessionName(a,c);if(!await (0,h.N)(d))throw Error(`Copilot session ${d} does not exist. Start the session first.`);try{await (0,h.V1)(d,`/model ${b}`,!0),await this.waitForPrompt(d,N.pL),(0,j.gm)(d),R.info("copilot-model-switched",{model:b})}catch(c){let a=(0,Q.u1)(c);throw Error(`Failed to switch Copilot model to ${b}: ${a}`)}}async killSession(a,b){let c=this.getSessionName(a,b);try{await (0,h.N)(c)&&(await (0,h.ds)(c,"C-c"),await new Promise(a=>setTimeout(a,u.Is)),await (0,h.V1)(c,"/exit",!1),await new Promise(a=>setTimeout(a,N.L1)),await (0,h.KB)(c,["Enter"]),await new Promise(a=>setTimeout(a,u.Rk))),await (0,h.fY)(c)&&R.info("stopped-copilot-session")}catch(a){throw R.error("session:stop-failed",{error:(0,Q.u1)(a)}),a}}constructor(...a){super(...a),this.id="copilot",this.name="Copilot",this.command="copilot"}}var V=c(74258);let W=(0,q.h)("cli-tools/antigravity");function X(a){return a instanceof Error?a.message:String(a)}let Y=/\?\s+for\s+shortcuts/,Z=/Do you trust the contents of this project\?/;function $(a){let b=(0,V.z)(a);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 isRunning(a,b){let c=this.getSessionName(a,b);return await (0,h.N)(c)}async launchSession(a,b,c,d){if(!await this.isInstalled())throw(0,v.Tl)(this);let e=this.getSessionName(a,c),f=await (0,h.N)(e);if(f){if(await this.reconcileExistingSession(e),await this.isToolLive(e,{confirm:!0}))return void W.info("antigravity-session-exists");W.warn("antigravity-session-relaunch",{sessionName:e})}(0,t.Fq)({worktreeId:a,cliToolId:r.F0,instanceId:c});try{f||(await (0,h.jw)({sessionName:e,workingDirectory:b}),await new Promise(a=>setTimeout(a,u.Uc)));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;await (0,h.V1)(e,i,!0),await new Promise(a=>setTimeout(a,3e3)),await this.waitForReady(e),W.info("started-antigravity-session")}catch(b){let a=X(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 W.info("antigravity-prompt-detected");if(!b&&Z.test(d)){await (0,h.ds)(a,"Enter"),b=!0,W.info("auto-trusted-folder-for-antigravity"),await new Promise(a=>setTimeout(a,500));continue}}catch{}await new Promise(a=>setTimeout(a,1e3))}W.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 W.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);if(!await (0,h.N)(d))throw Error(`Antigravity session ${d} does not exist. Start the session first.`);await this.relaunchIfToolExited(a,c);try{await this.waitForPrompt(d),await (0,i.FW)({sessionName:d,message:b,cliToolId:"antigravity",composer:this.describeComposer()}),(0,j.gm)(d),W.info("sent-message-to-antigravity-session")}catch(b){let a=X(b);throw Error(`Failed to send message to Antigravity: ${a}`)}}async killSession(a,b){let c=this.getSessionName(a,b);try{await (0,h.N)(c)&&(await (0,h.ds)(c,"C-d"),await new Promise(a=>setTimeout(a,u.Zf)));let a=await (0,h.fY)(c);(0,j.gm)(c),a&&W.info("stopped-antigravity-session")}catch(a){throw W.error("session:stop-failed",{error:X(a)}),a}}constructor(...a){super(...a),this.id="antigravity",this.name="Antigravity CLI",this.command="agy"}}var aa=c(28862);let ab=(0,q.h)("cli-tools/command-code"),ac=["--trust","--skip-onboarding","--no-auto-update"];function ad(a){let b=a.split("\n");return!(0>(0,k.I$)(b))&&!k.k0.test((0,k.aJ)(a))}class ae extends d.Mj{navigationKeys(){return{keys:e.pU,leaderKey:null}}async isRunning(a,b){let c=this.getSessionName(a,b);return await (0,h.N)(c)}async launchSession(a,b,c){if(!await this.isInstalled())throw(0,v.Tl)(this);let d=this.getSessionName(a,c),e=await (0,h.N)(d);if(e){if(await this.reconcileExistingSession(d),await this.isToolLive(d,{confirm:!0}))return void ab.info("command-code-session-exists");ab.warn("command-code-session-relaunch",{sessionName:d})}(0,t.Fq)({worktreeId:a,cliToolId:aa.k,instanceId:c});try{var f;e||(await (0,h.jw)({sessionName:d,workingDirectory:b}),await new Promise(a=>setTimeout(a,u.Uc))),await (0,h.V1)(d,(f={target:{worktreeId:a,cliToolId:aa.k,instanceId:c},executablePath:this.command,worktreePath:b},[(0,t.wK)(f),...ac].join(" ")),!0),await new Promise(a=>setTimeout(a,u.yO)),await this.waitForReady(d),ab.info("started-command-code-session")}catch(a){throw Error(`Failed to start Command Code session: ${(0,Q.u1)(a)}`)}}async waitForReady(a){for(let b=0;b<30;b++){try{let b=await (0,h.Xg)(a,50);if(ad(b))return void ab.info("command-code-prompt-detected")}catch{}await new Promise(a=>setTimeout(a,1e3))}ab.info("command-code-prompt-detection-timeout")}async waitForPrompt(a){let b=Date.now();for(;Date.now()-b<15e3;){try{let b=await (0,h.Xg)(a,50);if(ad(b))return}catch{}await new Promise(a=>setTimeout(a,500))}throw ab.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);if(!await (0,h.N)(d))throw Error(`Command Code session ${d} does not exist. Start the session first.`);await this.relaunchIfToolExited(a,c);try{await this.waitForPrompt(d),await (0,i.FW)({sessionName:d,message:b,cliToolId:"command-code",composer:this.describeComposer()}),(0,j.gm)(d),ab.info("sent-message-to-command-code-session")}catch(a){throw Error(`Failed to send message to Command Code: ${(0,Q.u1)(a)}`)}}async killSession(a,b){let c=this.getSessionName(a,b);try{await (0,h.N)(c)&&(await (0,h.V1)(c,"/exit",!1),await new Promise(a=>setTimeout(a,u.pL)),await (0,h.KB)(c,["Enter"]),await new Promise(a=>setTimeout(a,u.Zf)));let a=await (0,h.fY)(c);(0,j.gm)(c),a&&ab.info("stopped-command-code-session")}catch(a){throw ab.error("session:stop-failed",{error:(0,Q.u1)(a)}),a}}constructor(...a){super(...a),this.id="command-code",this.name="Command Code CLI",this.command="commandcode"}}class af{constructor(){this.tools=new Map,this.tools.set("claude",new g),this.tools.set("codex",new A),this.tools.set("gemini",new E),this.tools.set("vibe-local",new K),this.tools.set("opencode",new L.Ui),this.tools.set("copilot",new U),this.tools.set("antigravity",new _),this.tools.set("command-code",new ae)}static getInstance(){return af.instance||(af.instance=new af),af.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(6337),c.e(8728),c.e(3323),c.e(8918),c.e(650),c.e(6677),c.e(5220)]).then(c.bind(c,95220));e(a,b,d)}}},56263:(a,b,c)=>{c.d(b,{L1:()=>e,MJ:()=>j,Rf:()=>f,ky:()=>g,lM:()=>i,pL:()=>h,wp:()=>d,zt:()=>k});let d=200,e=100,f=1e5,g="[... truncated ...]",h=3e4,i=/^[a-zA-Z0-9][a-zA-Z0-9\-._/:]*$/,j=128,k="Install with: brew install copilot-cli (macOS) or npm i -g @github/copilot"},68652:(a,b,c)=>{c.d(b,{N:()=>g});let d=/Esc\s+to\s+cancel\s*[·•]\s*Tab\s+to\s+amend/i,e=/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){if(""===a)return"";let b=a.split("\n"),c=-1;for(let a=b.length-1;a>=0;a--){var g;if(g=b[a],d.test(g)||e.test(g)){c=a;break}}let h=b;return c>=0&&(h=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})(h).join("\n")}},70849:(a,b,c)=>{c.d(b,{LQ:()=>k,SW:()=>l});var d=c(72626),e=c(84574),f=c(48083),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 c.e(3241).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}}},74258:(a,b,c)=>{c.d(b,{h:()=>g,z:()=>h});var d=c(85164),e=c(68652),f=c(46423);let g=15;function h(a){let b=(0,e.N)((0,d.aJ)(a)),c=b.split("\n"),h=c.length-1;for(;h>=0&&""===c[h].trim();)h--;let i=c.slice(0,h+1);return{raw:a,clean:b,lines:c,contentLines:i,lastLines:i.slice(-g).join("\n"),thinkingLines:i.slice(-f.$).join("\n")}}},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",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){var b;return new e.lU(a.name,(b=a,`${b.name} (${b.command}) is not installed or not in PATH. ${f[b.id]}`))}},81886:(a,b,c)=>{c.d(b,{Km:()=>A,Mj:()=>z});var d=c(79646),e=c(28354),f=c(40964),g=c(79892),h=c(56717),i=c(23365),j=c(93949),k=c(91536),l=c(50945),m=c(96287),n=c(51297),o=c(87447),p=c(45567),q=c(72626),r=c(8953),s=c(20610),t=c(16983);let u=(0,e.promisify)(d.exec),v=(0,q.h)("cli-tools/base"),w=RegExp(`${p.ZM}=(?:'([^']*)'|"([^"]*)"|(\\S+))`,"g"),x=new Set,y=new Set;class z{async isInstalled(){try{return await u(`which ${this.command}`,{timeout:5e3}),!0}catch{return!1}}getSessionName(a,b){return(0,f.m)(this.id,a,b)}async startSession(a,b,c,d){try{await this.launchSession(a,b,c,d)}catch(b){throw this.takeAdoptionMark(a,c),(0,m.Zl)({worktreeId:a,cliToolId:this.id,instanceId:c,toolName:this.name},b),b}let e=this.takeAdoptionMark(a,c);null!==e&&await this.warnIfHookUrlIsStale(a,e,c)}async reconcileExistingSession(a,b){x.add(a),await (0,g.zT)(a,b)}takeAdoptionMark(a,b){try{let c=this.getSessionName(a,b);return x.delete(c)?c:null}catch{return null}}async warnIfHookUrlIsStale(a,b,c){if(!y.has(b))try{let d=await (0,g.Xg)(b,{startLine:-t.eu});y.add(b);let e=function(a){let b=null;for(let c of(0,n.aJ)(a).matchAll(w)){let a=c[1]??c[2]??c[3]??null;a&&(b=a)}return b}(d);if(null===e)return;let f=function(a){try{let b=new URL(a);if(""!==b.port)return Number(b.port);return"https:"===b.protocol?443:80}catch{return null}}(e),h=(0,o.D0)();if(null===f||f===h)return;v.warn("session:hook-url-stale",{cliToolId:this.id,sessionName:b,sessionPort:f,serverPort:h}),(0,m.ED)({worktreeId:a,cliToolId:this.id,instanceId:c,toolName:this.name,sessionPort:f,serverPort:h})}catch(b){v.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,h.gc)(this.id)}gracefulExitSequence(){return(0,j.JV)(this.id)}captureSpec(){return(0,i.y)(this.id)}livenessSpec(){return(0,k.H7)(this.id)}async isToolLive(a,b){let c=this.livenessSpec(),d=await (0,l.Q)(a,c);if(d.alive)return!0;if(!b?.confirm)return!1;await new Promise(a=>setTimeout(a,s.kZ));let e=await (0,l.Q)(a,c);return e.alive?(v.info("session:liveness-confirm-recovered",{cliToolId:this.id,firstReason:d.reason}),!0):(v.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 v.warn("session:relaunch-skipped-no-path",{cliToolId:this.id,worktreeId:a});v.info("session:relaunch-before-send",{cliToolId:this.id,sessionName:c}),await this.startSession(a,d,b)}navigationKeys(){return{keys:r.qD,leaderKey:null}}}function A(a,b,c){a instanceof z&&a.warnIfRunningSessionHookUrlIsStale(b,c).catch(()=>{})}},93949:(a,b,c)=>{c.d(b,{JV:()=>i,rY:()=>k});var d=c(56263),e=c(20610),f=c(86069);let g={keys:[(0,f.IS)("C-d")],exitWaitMs:e.Zf,ownsLoopbackServer:!1},h={claude:g,codex:g,antigravity:g,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}};function i(a){return h[a]??g}let j=a=>new Promise(b=>setTimeout(b,a));async function k(a){let b=Math.max(1,a.attempts??1),c=a.intervalMs??0,d=a.sleep??j,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}}},96287:(a,b,c)=>{c.d(b,{$k:()=>h,ED:()=>g,VI:()=>i,Zl:()=>e});var d=c(78099);function e(a,b){Promise.all([c.e(1356),c.e(1191),c.e(6337)]).then(c.bind(c,81099)).then(({notifySessionStartFailurePush:c})=>c({...a,error:b})).catch(()=>{})}let f=new Set;function g(a){let b=[a.worktreeId,a.instanceId??a.cliToolId,a.sessionPort,a.serverPort].join(":");f.has(b)||(f.add(b),Promise.all([c.e(1356),c.e(1191),c.e(6337)]).then(c.bind(c,81099)).then(({notifyStaleHookUrlPush:b})=>b(a)).catch(()=>{}))}async function h(a,b){if(await a.isInstalled())return;let c=(0,d.Tl)(a);throw e({worktreeId:b.worktreeId,cliToolId:a.id,instanceId:b.instanceId,toolName:a.name,subject:b.subject},c),c}function i(a,b){Promise.resolve().then(c.bind(c,43234)).then(({CLIToolManager:c})=>{let f=c.getInstance().getTool(a);e({worktreeId:b.worktreeId,cliToolId:a,instanceId:b.instanceId,toolName:f.name,subject:b.subject},(0,d.Tl)(f))}).catch(()=>{})}}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";exports.id=2980,exports.ids=[2980],exports.modules={22980:a=>{a.exports=JSON.parse('{"boundary":{"errorOccurredIn":"An error occurred in {componentName}","errorOccurred":"An error occurred"},"chunkReload":{"title":"Updating to the latest version","description":"A newer version of CommandMate is available. Reloading to get the latest update…"},"unexpected":{"title":"Something went wrong","description":"An unexpected error occurred. Try again, or reload the page."},"fileOps":{"failedToCreateFile":"Failed to create file","failedToCreateDirectory":"Failed to create directory","failedToRename":"Failed to rename","failedToDelete":"Failed to delete","failedToMove":"Failed to move"},"terminal":{"displayError":"Terminal display error","outputError":"An error occurred while displaying terminal output"},"history":{"loadError":"Message history loading error","displayError":"An error occurred while displaying history"},"prompt":{"responseError":"Prompt response error","choiceDisplayError":"An error occurred while displaying choices"},"connection":{"error":"Connection error","serverError":"A problem occurred connecting to the server"},"fileTooLarge":{"editableLimit":"Editable file size limit ({limit}MB) exceeded","viewerLimit":"Viewer-only file size limit exceeded"}}')}};
|
|
1
|
+
"use strict";exports.id=2980,exports.ids=[2980],exports.modules={22980:a=>{a.exports=JSON.parse('{"boundary":{"errorOccurredIn":"An error occurred in {componentName}","errorOccurred":"An error occurred"},"chunkReload":{"title":"Updating to the latest version","description":"A newer version of CommandMate is available. Reloading to get the latest update…"},"chunkOffline":{"title":"You\'re offline","description":"Part of the page could not be loaded because the device is off the network. It will be retried automatically as soon as the connection is back.","waiting":"Waiting for the connection to come back…"},"unexpected":{"title":"Something went wrong","description":"An unexpected error occurred. Try again, or reload the page."},"fileOps":{"failedToCreateFile":"Failed to create file","failedToCreateDirectory":"Failed to create directory","failedToRename":"Failed to rename","failedToDelete":"Failed to delete","failedToMove":"Failed to move"},"terminal":{"displayError":"Terminal display error","outputError":"An error occurred while displaying terminal output"},"history":{"loadError":"Message history loading error","displayError":"An error occurred while displaying history"},"prompt":{"responseError":"Prompt response error","choiceDisplayError":"An error occurred while displaying choices"},"connection":{"error":"Connection error","serverError":"A problem occurred connecting to the server"},"fileTooLarge":{"editableLimit":"Editable file size limit ({limit}MB) exceeded","viewerLimit":"Viewer-only file size limit exceeded"}}')}};
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use strict";exports.id=3077,exports.ids=[3077],exports.modules={640:(a,b,c)=>{function d(a){return`[from ${a.alias} / ${a.worktreeId}]`}function e(a,b){let c=b.trim();return""===c?`${d(a)} (no reply body)`:`${d(a)} ${c}`}function f(a,b){let c=a.replace(/\s+/g," ").trim();return c.length<=b?c:`${c.slice(0,b-1)}…`}c.d(b,{Hr:()=>h,KA:()=>j,Nl:()=>l,z0:()=>e});let g={en:{waiting:"is waiting for a confirmation:",options:"Options:",more:"(+{n} more)"},ja:{waiting:"確認待ちです:",options:"選択肢:",more:"(他 {n} 件)"}};function h(a,b,c){let e=g[a],h=`${d(b)} ${e.waiting} ${f(c.question,200)}`;if(0===c.options.length)return h;let i=c.options.slice(0,9),j=c.options.length-i.length,k=i.map(a=>`${a.key}) ${f(a.label,60)}`).join(" "),l=j>0?` ${e.more.replace("{n}",String(j))}`:"";return`${h}
|
|
2
|
-
${e.options} ${k}${l}`}let i={en:"The reply you were waiting for did not arrive within {hours}h; the relay has expired.",ja:"待っていた返信が {hours} 時間以内に届かなかったため、委任は期限切れになりました。"};function j(a,b,c){let e=Math.max(1,Math.round(c/36e5));return`${d(b)} ${i[a].replace("{hours}",String(e))}`}let k={en:{requested:"Delegated to {alias}; waiting for the reply.",replied:"Reply from {alias}.",waiting:"{alias} is waiting for a confirmation.",expired:"The delegation to {alias} expired without a reply."},ja:{requested:"{alias} へ委任、返信待ち",replied:"{alias} から返信",waiting:"{alias} が確認待ち",expired:"{alias} への委任が返信のないまま期限切れ"}};function l(a,b,c){return k[a][b].replace("{alias}",c)}},49798:(a,b,c)=>{c.d(b,{S:()=>h,r:()=>i});var d=c(28274),e=c(73753);let
|
|
2
|
+
${e.options} ${k}${l}`}let i={en:"The reply you were waiting for did not arrive within {hours}h; the relay has expired.",ja:"待っていた返信が {hours} 時間以内に届かなかったため、委任は期限切れになりました。"};function j(a,b,c){let e=Math.max(1,Math.round(c/36e5));return`${d(b)} ${i[a].replace("{hours}",String(e))}`}let k={en:{requested:"Delegated to {alias}; waiting for the reply.",replied:"Reply from {alias}.",waiting:"{alias} is waiting for a confirmation.",expired:"The delegation to {alias} expired without a reply."},ja:{requested:"{alias} へ委任、返信待ち",replied:"{alias} から返信",waiting:"{alias} が確認待ち",expired:"{alias} への委任が返信のないまま期限切れ"}};function l(a,b,c){return k[a][b].replace("{alias}",c)}},49798:(a,b,c)=>{c.d(b,{S:()=>h,r:()=>i});var d=c(28274),e=c(73753),f=c(83530);let g=(0,c(72626).h)("relay-session-ref");function h(a,b){let c="claude",e=b.instanceId;try{c=(0,f.iK)(a,b.worktreeId,{instanceId:b.instanceId}).cliToolId;let g=(0,d.BN)(a,b.worktreeId,b.instanceId);g?.alias&&(e=g.alias)}catch(a){g.warn("relay-session-resolve-failed",{worktreeId:b.worktreeId,instanceId:b.instanceId,error:a instanceof Error?a.message:String(a)})}return{worktreeId:b.worktreeId,instanceId:b.instanceId,cliToolId:c,alias:e}}function i(a,b){try{return null!==(0,e.getWorktreeById)(a,b)}catch{return!1}}},67164:(a,b,c)=>{c.d(b,{_:()=>i});var d=c(52660),e=c(55233),f=c(43015),g=c(640);let h=(0,c(72626).h)("relay-system-line");function i(a,b,c,j,k,l=Date.now()){let m=`${d.RELAY_SYSTEM_REQUEST_ID_PREFIX}${b}:${c}`;try{if((0,d.findMessageByRequestId)(a,j.worktreeId,m))return!1;let i=(0,e.dV)(a),n=(0,d.createRelaySystemMessage)(a,{worktreeId:j.worktreeId,cliToolId:j.cliToolId,instanceId:j.instanceId,content:(0,g.Nl)(i,c,k.alias),relayId:b,kind:c,at:l});try{(0,f.broadcastMessage)("message",{worktreeId:j.worktreeId,message:{...n,cliToolId:j.cliToolId,instanceId:j.instanceId}})}catch(a){h.warn("relay-system-line-broadcast-failed",{relayId:b,kind:c,error:a instanceof Error?a.message:String(a)})}return!0}catch(a){return h.warn("relay-system-line-failed",{relayId:b,kind:c,error:a instanceof Error?a.message:String(a)}),!1}}},90787:(a,b,c)=>{c.d(b,{m_:()=>x,uJ:()=>r,Oz:()=>o,_7:()=>y,CR:()=>i,Ip:()=>j,GC:()=>u,M4:()=>m,s7:()=>w,pT:()=>n,ix:()=>l,uG:()=>q,Bf:()=>s,Cz:()=>v,UC:()=>t,be:()=>p});var d=c(55511);let e=["pending","prompt"],f=(0,c(72626).h)("relay-db"),g=`
|
|
3
3
|
id, from_worktree_id, from_instance_id, to_worktree_id, to_instance_id,
|
|
4
4
|
state, hops, sent_request_id, pending_kind, pending_body, prompt_signature,
|
|
5
5
|
created_at, updated_at, expires_at, delivered_at
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";exports.id=3241,exports.ids=[3241],exports.modules={15388:(a,b,c)=>{c.d(b,{RJ:()=>f,SQ:()=>g});var d=c(24455);let e=globalThis.__toolInputNormalizations??(globalThis.__toolInputNormalizations=new Map);function f(a,b,c,g,h,i=Date.now()){e.set((0,d.v7)(a,b,c),{...g,toolName:h,at:i})}function g(a,b,c){return e.get((0,d.v7)(a,b,c))??null}},43241:(a,b,c)=>{c.d(b,{resolvePermissionRequest:()=>u,wn:()=>r});var d=c(24455),e=c(88807),f=c(52660),g=c(91318),h=c(75498),i=c(52277),j=c(48083),k=c(72626),l=c(2466),m=c(13287),n=c(129),o=c(15388);let p=(0,k.h)("lib/hooks/permission-decision-service"),q="multiple_choice",r=500,s=a=>({behavior:null,reason:a}),t=new Set(["bypassPermissions"]);function u(a,b,k={}){let r=function(a,b,c={}){if(!b)return s("unknown-payload");if(b.toolName===m.k$)return s("ask-user-question");let{worktreeId:e,cliToolId:f,instanceId:i}=a,j=(0,d.aq)(e,f,i);if(!j?.enabled)return s("auto-yes-disabled");let k=(c.readPolicy??function(a){return(0,g.n)(a.worktreeId,a.cliToolId,a.instanceId)})({worktreeId:e,cliToolId:f,instanceId:i}),l=(0,h.Lj)(q,(0,m.I4)(b.toolName,b.toolInput,b.toolInputNormalization),k);return l?{behavior:null,reason:"policy-suppressed",suppressedBy:l.reason,pattern:l.pattern,mode:k?.mode??null}:{behavior:"allow",reason:"auto-yes",mode:k?.mode??null}}(a,b,k);if(b?.toolInputNormalization&&(0,o.RJ)(a.worktreeId,a.cliToolId,a.instanceId,b.toolInputNormalization,b.toolName),b?.toolName===m.k$){let c=(0,l.ek)({tool_name:b.toolName,tool_input:b.toolInput,prompt_id:b.promptId});c&&(0,j.recordAskUserQuestion)(a.worktreeId,a.cliToolId,a.instanceId,c)}return"allow"!==r.behavior&&function(a,b){if(!(b?.permissionMode&&t.has(b.permissionMode))){if(!(0,n.VM)(a.cliToolId).capabilities.permissionHookPredictsDialog)return p.debug("permission-request:dialog-forecast-skipped",{worktreeId:a.worktreeId,cliToolId:a.cliToolId,instanceId:a.instanceId,toolName:b?.toolName??null,reason:"capability-permissionHookPredictsDialog-false"});(0,j.reportPermissionRequestPending)(a.worktreeId,a.cliToolId,a.instanceId,b?.toolName??null)}}(a,b),"policy-suppressed"===r.reason&&r.suppressedBy&&((0,i.ZS)(a.worktreeId,a.cliToolId,a.instanceId,{reason:r.suppressedBy,mode:r.mode??null,promptType:q,pattern:r.pattern}),p.warn("permission-request:suppressed-by-policy",{worktreeId:a.worktreeId,cliToolId:a.cliToolId,instanceId:a.instanceId,toolName:b?.toolName,promptId:b?.promptId,reason:r.suppressedBy,mode:r.mode??null,pattern:r.pattern})),"allow"===r.behavior&&b&&(k.recordAllow??function(a,b){var d,g;let i=(0,m.I4)(b.toolName,b.toolInput,b.toolInputNormalization).join("\n").slice(0,h.Tb),j=new Date,k=null;try{k=(0,f.createMessage)((0,e.getDbInstance)(),{worktreeId:a.worktreeId,role:"assistant",content:`${b.toolName}: ${i}`.slice(0,h.Tb),summary:`PermissionRequest allow \xb7 tool=${b.toolName} \xb7 prompt_id=${b.promptId??"unknown"}`,messageType:"prompt",promptData:{type:"multiple_choice",question:`Approve ${b.toolName}?`,options:[],status:"answered",answer:"allow",answeredAt:j.toISOString(),answeredBy:"auto",approvalTarget:i},timestamp:j,cliToolId:a.cliToolId,instanceId:a.instanceId})}catch(c){p.warn("permission-request:audit-record-failed",{worktreeId:a.worktreeId,instanceId:a.instanceId,toolName:b.toolName,error:c instanceof Error?c.message:String(c)})}k&&(d=a,g=k,Promise.all([c.e(1356),c.e(1503),c.e(1191),c.e(9080),c.e(1719),c.e(2119),c.e(2445),c.e(
|
|
1
|
+
"use strict";exports.id=3241,exports.ids=[3241],exports.modules={15388:(a,b,c)=>{c.d(b,{RJ:()=>f,SQ:()=>g});var d=c(24455);let e=globalThis.__toolInputNormalizations??(globalThis.__toolInputNormalizations=new Map);function f(a,b,c,g,h,i=Date.now()){e.set((0,d.v7)(a,b,c),{...g,toolName:h,at:i})}function g(a,b,c){return e.get((0,d.v7)(a,b,c))??null}},43241:(a,b,c)=>{c.d(b,{resolvePermissionRequest:()=>u,wn:()=>r});var d=c(24455),e=c(88807),f=c(52660),g=c(91318),h=c(75498),i=c(52277),j=c(48083),k=c(72626),l=c(2466),m=c(13287),n=c(129),o=c(15388);let p=(0,k.h)("lib/hooks/permission-decision-service"),q="multiple_choice",r=500,s=a=>({behavior:null,reason:a}),t=new Set(["bypassPermissions"]);function u(a,b,k={}){let r=function(a,b,c={}){if(!b)return s("unknown-payload");if(b.toolName===m.k$)return s("ask-user-question");let{worktreeId:e,cliToolId:f,instanceId:i}=a,j=(0,d.aq)(e,f,i);if(!j?.enabled)return s("auto-yes-disabled");let k=(c.readPolicy??function(a){return(0,g.n)(a.worktreeId,a.cliToolId,a.instanceId)})({worktreeId:e,cliToolId:f,instanceId:i}),l=(0,h.Lj)(q,(0,m.I4)(b.toolName,b.toolInput,b.toolInputNormalization),k);return l?{behavior:null,reason:"policy-suppressed",suppressedBy:l.reason,pattern:l.pattern,mode:k?.mode??null}:{behavior:"allow",reason:"auto-yes",mode:k?.mode??null}}(a,b,k);if(b?.toolInputNormalization&&(0,o.RJ)(a.worktreeId,a.cliToolId,a.instanceId,b.toolInputNormalization,b.toolName),b?.toolName===m.k$){let c=(0,l.ek)({tool_name:b.toolName,tool_input:b.toolInput,prompt_id:b.promptId});c&&(0,j.recordAskUserQuestion)(a.worktreeId,a.cliToolId,a.instanceId,c)}return"allow"!==r.behavior&&function(a,b){if(!(b?.permissionMode&&t.has(b.permissionMode))){if(!(0,n.VM)(a.cliToolId).capabilities.permissionHookPredictsDialog)return p.debug("permission-request:dialog-forecast-skipped",{worktreeId:a.worktreeId,cliToolId:a.cliToolId,instanceId:a.instanceId,toolName:b?.toolName??null,reason:"capability-permissionHookPredictsDialog-false"});(0,j.reportPermissionRequestPending)(a.worktreeId,a.cliToolId,a.instanceId,b?.toolName??null)}}(a,b),"policy-suppressed"===r.reason&&r.suppressedBy&&((0,i.ZS)(a.worktreeId,a.cliToolId,a.instanceId,{reason:r.suppressedBy,mode:r.mode??null,promptType:q,pattern:r.pattern}),p.warn("permission-request:suppressed-by-policy",{worktreeId:a.worktreeId,cliToolId:a.cliToolId,instanceId:a.instanceId,toolName:b?.toolName,promptId:b?.promptId,reason:r.suppressedBy,mode:r.mode??null,pattern:r.pattern})),"allow"===r.behavior&&b&&(k.recordAllow??function(a,b){var d,g;let i=(0,m.I4)(b.toolName,b.toolInput,b.toolInputNormalization).join("\n").slice(0,h.Tb),j=new Date,k=null;try{k=(0,f.createMessage)((0,e.getDbInstance)(),{worktreeId:a.worktreeId,role:"assistant",content:`${b.toolName}: ${i}`.slice(0,h.Tb),summary:`PermissionRequest allow \xb7 tool=${b.toolName} \xb7 prompt_id=${b.promptId??"unknown"}`,messageType:"prompt",promptData:{type:"multiple_choice",question:`Approve ${b.toolName}?`,options:[],status:"answered",answer:"allow",answeredAt:j.toISOString(),answeredBy:"auto",approvalTarget:i},timestamp:j,cliToolId:a.cliToolId,instanceId:a.instanceId})}catch(c){p.warn("permission-request:audit-record-failed",{worktreeId:a.worktreeId,instanceId:a.instanceId,toolName:b.toolName,error:c instanceof Error?c.message:String(c)})}k&&(d=a,g=k,Promise.all([c.e(1356),c.e(1503),c.e(1191),c.e(9080),c.e(1719),c.e(2119),c.e(2445),c.e(8728)]).then(c.bind(c,43015)).then(({broadcastMessage:a})=>{a("message",{worktreeId:d.worktreeId,message:g})}).catch(a=>{p.warn("permission-request:audit-broadcast-failed",{worktreeId:d.worktreeId,instanceId:d.instanceId,error:a instanceof Error?a.message:String(a)})}))})(a,b),r}},52277:(a,b,c)=>{c.d(b,{ZS:()=>f,gb:()=>g});var d=c(24455);let e=globalThis.__autoYesPolicySuppressions??(globalThis.__autoYesPolicySuppressions=new Map);function f(a,b,c,g,h=Date.now()){e.set((0,d.v7)(a,b,c),{...g,at:h})}function g(a,b,c){return e.get((0,d.v7)(a,b,c))??null}},75498:(a,b,c)=>{c.d(b,{Lj:()=>f,Tb:()=>e,sD:()=>g});var d=c(68901);let e=2e4;function f(a,b,c){if(!c)return null;if("off"===c.mode)return{reason:"mode-off"};let f=function(a,b){if(0===b.length)return{outcome:"no-match"};let c=a.map(a=>a.length>e?a.slice(0,e):a);for(let a of b){if(a.length>200||!(0,d.P0)(a).valid)return{outcome:"unusable",pattern:a};let b=new RegExp(a);for(let e of c){let c=(0,d.eJ)(b,e);if(null===c)return{outcome:"unusable",pattern:a};if(c)return{outcome:"match",pattern:a}}}return{outcome:"no-match"}}(b,c.denyPatterns);return"match"===f.outcome?{reason:"deny-pattern",pattern:f.pattern}:"unusable"===f.outcome?{reason:"deny-pattern-unusable",pattern:f.pattern}:"safe"===c.mode?"yes_no"===a?null:{reason:"type-not-allowed"}:"allow-listed"===c.mode?c.allowPromptTypes.includes(a)?null:{reason:"type-not-allowed"}:null}function g(a,b){let c=function(a){if("yes_no"===a.type)return"y";if("multiple_choice"===a.type){let b=a.options.find(a=>a.isDefault)??a.options[0];return!b||b.requiresTextInput?null:b.number.toString()}return null}(a);if(null===c)return{answer:null,suppressedBy:null};let d=f(a.type,function(a){let b=[a.question];if(a.approvalTarget&&b.push(a.approvalTarget),"multiple_choice"===a.type)for(let c of a.options)b.push(c.label);else b.push(...a.options);return b}(a),b);return d?{answer:null,suppressedBy:d.reason,pattern:d.pattern}:{answer:c,suppressedBy:null}}},91318:(a,b,c)=>{c.d(b,{ie:()=>j,n:()=>i});var d=c(56791),e=c(88807),f=c(24455);let g=(0,c(72626).h)("auto-yes-policy"),h=new Map;function i(a,b,c){let i=c??b,j=(0,f.v7)(a,b,i),k=Date.now(),l=h.get(j);if(l&&l.expiresAt>k)return l.policy;let m=function(a,b,c){try{let f=(0,d.getActiveTaskForInstance)((0,e.getDbInstance)(),a,b,c);if(!f)return null;return f.contract.autoYes}catch(d){return g.warn("policy-lookup-failed",{worktreeId:a,cliToolId:b,instanceId:c,error:d instanceof Error?d.message:String(d)}),null}}(a,b,i);return h.size>=200&&function(a){for(let[b,c]of h.entries())c.expiresAt<=a&&h.delete(b)}(k),h.set(j,{policy:m,expiresAt:k+5e3}),m}function j(a){h.delete(a)}}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";exports.id=3323,exports.ids=[3323],exports.modules={31517:(a,b,c)=>{c.d(b,{DL:()=>j,sD:()=>f});var d=c(2734);let e=(0,c(72626).h)("lib/hooks/stop-history-capture"),f=[150,500,2e3,5e3],g=new Set([d.c]);function h(a){return new Promise(b=>{setTimeout(b,a)})}async function i(a,b,c,d,f,g){let i=Date.now();try{for(let[j,k]of g.entries()){await h(k);let l={};if(await a.captureStructuredHistoryTurn(b.id,c,d,f,l))return e.info("stop-history-capture-deferred-captured",{worktreeId:b.id,cliToolId:c,instanceId:d,attempt:j+1,attempts:g.length,elapsedMs:Date.now()-i}),!0;e.debug("stop-history-capture-deferred-open",{worktreeId:b.id,cliToolId:c,instanceId:d,attempt:j+1,attempts:g.length,outcome:l.outcome??"unavailable",elapsedMs:Date.now()-i})}return e.info("stop-history-capture-deferred-exhausted",{worktreeId:b.id,cliToolId:c,instanceId:d,attempts:g.length,elapsedMs:Date.now()-i}),!1}catch(a){return e.warn("stop-history-capture-deferred-failed",{worktreeId:b.id,cliToolId:c,instanceId:d,error:a instanceof Error?a.message:String(a)}),!1}}async function j(a,b,d,k={}){try{let j=await Promise.all([c.e(1503),c.e(9080),c.e(8800),c.e(1719),c.e(7905),c.e(2119),c.e(2445),c.e(1886),c.e(
|
|
1
|
+
"use strict";exports.id=3323,exports.ids=[3323],exports.modules={31517:(a,b,c)=>{c.d(b,{DL:()=>j,sD:()=>f});var d=c(2734);let e=(0,c(72626).h)("lib/hooks/stop-history-capture"),f=[150,500,2e3,5e3],g=new Set([d.c]);function h(a){return new Promise(b=>{setTimeout(b,a)})}async function i(a,b,c,d,f,g){let i=Date.now();try{for(let[j,k]of g.entries()){await h(k);let l={};if(await a.captureStructuredHistoryTurn(b.id,c,d,f,l))return e.info("stop-history-capture-deferred-captured",{worktreeId:b.id,cliToolId:c,instanceId:d,attempt:j+1,attempts:g.length,elapsedMs:Date.now()-i}),!0;e.debug("stop-history-capture-deferred-open",{worktreeId:b.id,cliToolId:c,instanceId:d,attempt:j+1,attempts:g.length,outcome:l.outcome??"unavailable",elapsedMs:Date.now()-i})}return e.info("stop-history-capture-deferred-exhausted",{worktreeId:b.id,cliToolId:c,instanceId:d,attempts:g.length,elapsedMs:Date.now()-i}),!1}catch(a){return e.warn("stop-history-capture-deferred-failed",{worktreeId:b.id,cliToolId:c,instanceId:d,error:a instanceof Error?a.message:String(a)}),!1}}async function j(a,b,d,k={}){try{let j=await Promise.all([c.e(1503),c.e(9080),c.e(8800),c.e(1719),c.e(7905),c.e(2119),c.e(2445),c.e(1886),c.e(8728),c.e(8918)]).then(c.bind(c,28918));if(!j.isPullTranscriptHistory(b))return{status:"unavailable"};let l={worktreePath:a.path,transcriptPathHint:null},m={};if(await j.captureStructuredHistoryTurn(a.id,b,d,l,m))return{status:"captured"};let n=()=>"not_yet_closed"===m.outcome?Promise.resolve(!0):j.hasStructuredHistoryTranscript(a.id,b,d,l);if(g.has(b)){let c=k.deferredDelaysMs??f;if(0===c.length||!await n())return{status:"unavailable"};let g=i(j,a,b,d,l,c);return e.info("stop-history-capture-deferred",{worktreeId:a.id,cliToolId:b,instanceId:d,delaysMs:c}),{status:"deferred",deferred:g}}let o=k.retryDelayMs??500;if(o<=0||!await n())return{status:"unavailable"};let p=Math.max(1,k.maxAttempts??3);for(let c=2;c<=p;c+=1){await h(o);let f={},g=await j.captureStructuredHistoryTurn(a.id,b,d,l,f);if(e.debug("stop-history-capture-retried",{worktreeId:a.id,cliToolId:b,instanceId:d,attempt:c,maxAttempts:p,captured:g,outcome:f.outcome??"unavailable"}),g)return{status:"captured"}}return{status:"unavailable"}}catch(c){return e.warn("stop-history-capture-failed",{worktreeId:a.id,cliToolId:b,instanceId:d,error:c instanceof Error?c.message:String(c)}),{status:"unavailable"}}}},52767:(a,b,c)=>{c.d(b,{r:()=>i,g:()=>h});var d=c(48524),e=c(87009),f=c(72626);let g=(0,f.h)("lib/tasks/task-transition-service");function h(a,b,c,f){let h=a.transaction(()=>{let g=(0,d.gg)(a,b);if(!g)return null;let h=g.status,i=function(a,b){switch(a){case"pending":switch(b){case"message_sent":return"running";case"send_failed":case"cancel":return"cancelled";default:return null}case"running":switch(b){case"prompt_detected":return"waiting_input";case"agent_idle":return"running";case"verify_started":return"verifying";case"send_failed":return"failed";case"cancel":return"cancelled";default:return null}case"waiting_input":switch(b){case"prompt_answered_auto":case"prompt_answered_human":case"agent_idle":return"running";case"verify_started":return"verifying";case"cancel":return"cancelled";default:return null}case"verifying":switch(b){case"verify_passed":return"succeeded";case"verify_failed":return"failed";case"verify_not_started":return"not_started";case"cancel":return"cancelled";default:return null}case"failed":case"not_started":switch(b){case"message_sent":return"running";case"verify_started":return"verifying";case"cancel":return"cancelled";default:return null}default:return null}}(h,c),j=Date.now(),k=(0,e.P)(a,{taskId:b,event:c,fromStatus:h,toStatus:i,payload:f,createdAt:j});return null===i?{task:g,fromStatus:h,toStatus:null,eventId:k}:{task:(0,d.xZ)(a,b,i,f?.runId===void 0?{}:{lastVerificationRunId:f.runId}),fromStatus:h,toStatus:i,eventId:k}})();return null===h?g.warn("task-event-unknown-task",{taskId:b,event:c}):null===h.toStatus&&g.warn("task-event-rejected",{taskId:b,event:c,fromStatus:h.fromStatus}),h}function i(a,b,c,e,f,i){try{let g=(0,d.MH)(a,b,c,e);if(!g)return null;return h(a,g.id,f,i)}catch(a){return g.warn("task-event-failed",{worktreeId:b,cliToolId:c,instanceId:e,event:f,error:a instanceof Error?a.message:String(a)}),null}}}};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";exports.id=434,exports.ids=[434,964,8583],exports.modules={3421:(a,b,c)=>{Object.defineProperty(b,"I",{enumerable:!0,get:function(){return g}});let d=c(71237),e=c(55088),f=c(17679);async function g(a,b,c,g){if((0,d.isNodeNextResponse)(b)){var h;b.statusCode=c.status,b.statusMessage=c.statusText;let d=["set-cookie","www-authenticate","proxy-authenticate","vary"];null==(h=c.headers)||h.forEach((a,c)=>{if("x-middleware-set-cookie"!==c.toLowerCase())if("set-cookie"===c.toLowerCase())for(let d of(0,f.splitCookiesString)(a))b.appendHeader(c,d);else{let e=void 0!==b.getHeader(c);(d.includes(c.toLowerCase())||!e)&&b.appendHeader(c,a)}});let{originalResponse:i}=b;c.body&&"HEAD"!==a.method?await (0,e.pipeToNodeResponse)(c.body,i,g):i.end()}}},7329:(a,b,c)=>{c.d(b,{Hv:()=>m,W3:()=>k,uK:()=>l});var d=c(90787),e=c(52660),f=c(18201),g=c(23854),h=c(49798),i=c(67164);let j=(0,c(72626).h)("relay-service");function k(a,b){for(let c of[b.from.worktreeId,b.to.worktreeId])if(!(0,h.r)(a,c))return{ok:!1,refusal:{code:"RELAY_WORKTREE_NOT_FOUND",message:`Worktree '${c}' not found`,worktreeId:c}};let c=(0,g.$G)({from:b.from,to:b.to,parentHops:function(a,b){try{let g=(0,h.S)(a,b),i=(0,e.getMessages)(a,b.worktreeId,{limit:5,limitUnit:"pairs",cliToolId:g.cliToolId,instanceId:b.instanceId,matchResolvedInstance:!0}).filter(a=>"user"===a.role),j=i.findIndex(a=>"relay"===a.messageType);if(-1===j)return null;let k=i[j];for(let a=0;a<j;a+=1){var c;if(c=i[a],c.timestamp.getTime()<k.timestamp.getTime()||(0,f.pk)(c.content)!==(0,f.pk)(k.content))return null}let l=(0,e.parseRelayRequestId)(k.requestId);if(!l)return null;return(0,d.Ip)(a,l)?.hops??null}catch(a){return j.warn("relay-parent-lookup-failed",{worktreeId:b.worktreeId,instanceId:b.instanceId,error:a instanceof Error?a.message:String(a)}),null}}(a,b.from),allowRelayChain:!0===b.allowRelayChain,openBetween:(0,d.Oz)(a,b.from,b.to)});if((0,g.Qe)(c))return{ok:!1,refusal:c};let k=b.now??Date.now(),l=(0,d.CR)(a,{from:b.from,to:b.to,hops:c.hops,expiresAt:k+(0,g.AL)(b.ttlMs),now:k});return j.info("relay-opened",{relayId:l.id,from:`${l.from.worktreeId}/${l.from.instanceId}`,to:`${l.to.worktreeId}/${l.to.instanceId}`,hops:l.hops}),(0,i._)(a,l.id,"requested",(0,h.S)(a,l.from),(0,h.S)(a,l.to),k),{ok:!0,relay:l}}function l(a,b,c=Date.now()){let e=(0,d.Ip)(a,b);return e?(0,d.m_)(a,b,c)?(j.info("relay-cancelled",{relayId:b}),{ok:!0,relay:(0,d.Ip)(a,b)??e}):{ok:!1,reason:"already_closed",relay:e}:{ok:!1,reason:"not_found",relay:null}}function m(a,b){return(0,d.M4)(a,b)}},18201:(a,b,c)=>{c.d(b,{Ce:()=>g,pk:()=>e});let d=(0,c(72626).h)("lib/history/user-turn-recorder");function e(a){return a.replace(/\r\n?/g,"\n").split("\n").map(a=>a.replace(/[ \t ]+$/u,"")).join("\n").trim()}function f(a){return{worktreeId:a.worktreeId,cliToolId:a.cliToolId,instanceId:a.instanceId??a.cliToolId}}async function g(a,b,h,i,j={}){let k=a.instanceId??a.cliToolId,l=e(h);if(0===b.length||0===l.length)return{outcome:"skipped",messageId:null,timestampMs:null};try{let[{getDbInstance:g},m,{broadcastMessage:n}]=await Promise.all([Promise.resolve().then(c.bind(c,88807)),Promise.resolve().then(c.bind(c,52660)),Promise.resolve().then(c.bind(c,43015))]),o=g(),p=m.findMessageByRequestId(o,a.worktreeId,b);if(p)return{outcome:"already-recorded",messageId:p.id,timestampMs:p.timestamp.getTime()};let q=i>0?i:Date.now(),r=function(a,b,c,g,h,i,j,k){var l,m,n;let o=Math.min(j-12e4,k.adoptionFromMs??1/0),p=(l=a.findUnkeyedUserMessages(b,{worktreeId:c.worktreeId,cliToolId:c.cliToolId,instanceId:g,fromMs:o,toMs:j+12e4,includeRelayDelivered:!0}),m=i,n=j,l.filter(a=>e(a.content)===m).sort((a,b)=>Math.abs(a.timestamp.getTime()-n)-Math.abs(b.timestamp.getTime()-n)));for(let e of p)if(!e.requestId&&a.setMessageRequestId(b,e.id,h))return d.info("user-turn-adopted",{...f(c),requestId:h,messageId:e.id,driftMs:e.timestamp.getTime()-j}),{outcome:"adopted",messageId:e.id,timestampMs:e.timestamp.getTime()};let q=p.find(a=>a.requestId);return q?(d.info("user-turn-already-relayed",{...f(c),requestId:h,messageId:q.id,relayRequestId:q.requestId??null,driftMs:q.timestamp.getTime()-j}),{outcome:"already-recorded",messageId:q.id,timestampMs:q.timestamp.getTime()}):null}(m,o,a,k,b,l,q,j);if(r)return r;let s=m.createMessage(o,{worktreeId:a.worktreeId,role:"user",content:h,messageType:"normal",timestamp:new Date(q),cliToolId:a.cliToolId,instanceId:k,requestId:b});return n("message",{worktreeId:a.worktreeId,message:s}),d.info("user-turn-recorded",{...f(a),requestId:b,contentLength:h.length}),{outcome:"inserted",messageId:s.id,timestampMs:q}}catch(c){return d.error("user-turn-record-failed",{...f(a),requestId:b,error:c instanceof Error?c.message:String(c)}),{outcome:"failed",messageId:null,timestampMs:null}}}},40964:(a,b,c)=>{c.d(b,{m:()=>g});var d=c(15194);let e=/^[a-zA-Z0-9_-]+$/;function f(a){if(!e.test(a))throw Error(`Invalid session name format: ${a}`)}function g(a,b,c){let e=`mcbd-${a}-${b}`;if(!c||c===a)return f(e),e;let g=(0,d.pL)(c,a),h=g?`${e}-${g}`:e;return f(h),h}},83530:(a,b,c)=>{c.d(b,{FH:()=>l,fV:()=>k,iK:()=>i,y4:()=>h});var d=c(73753),e=c(28274),f=c(15194);let g="claude",h="instance_tool_conflict";function i(a,b,c={}){let{instanceId:d,requestedCliTool:g}=c;if(!d)return g?{cliToolId:g,instanceId:g,resolvedBy:"explicit"}:j(a,b,void 0);let h=(0,e.BN)(a,b,d);if(h&&(0,f.hR)(h.cliTool)){let a={cliToolId:h.cliTool,instanceId:d,resolvedBy:"roster"};return g&&g!==h.cliTool&&(a.conflict={instanceId:d,rosterCliTool:h.cliTool,requestedCliTool:g}),a}return g?(0,f.hR)(d)&&g!==d?{cliToolId:d,instanceId:d,resolvedBy:"primary",conflict:{instanceId:d,rosterCliTool:d,requestedCliTool:g,primaryAnchor:!0}}:{cliToolId:g,instanceId:d,resolvedBy:"explicit"}:(0,f.hR)(d)?{cliToolId:d,instanceId:d,resolvedBy:"primary"}:j(a,b,d)}function j(a,b,c){let e=(0,d.getWorktreeById)(a,b),h=e?.cliToolId;return h&&(0,f.hR)(h)?{cliToolId:h,instanceId:c??h,resolvedBy:"worktree-default"}:{cliToolId:g,instanceId:c??g,resolvedBy:"fallback"}}function k(a,b,c={}){let d=i(a,b,c);return d.conflict?{ok:!1,error:h,conflict:d.conflict}:{ok:!0,target:d}}function l(a){return a.primaryAnchor?`Agent instance '${a.instanceId}' is the primary instance of ${a.rosterCliTool}, but ${a.requestedCliTool} was requested. Omit the agent, pass ${a.rosterCliTool}, or target a ${a.requestedCliTool} instance instead.`:`Agent instance '${a.instanceId}' is registered as ${a.rosterCliTool}, but ${a.requestedCliTool} was requested. Omit the agent, pass ${a.rosterCliTool}, or update the instance's roster entry.`}},95736:(a,b,c)=>{a.exports=c(44870)}};
|