commandmate 0.39.1 → 0.40.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 +250 -243
- package/.next/app-path-routes-manifest.json +31 -30
- package/.next/build-manifest.json +2 -2
- package/.next/prerender-manifest.json +15 -15
- package/.next/required-server-files.json +1 -1
- package/.next/routes-manifest.json +8 -0
- package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/server/app/api/agents/update/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/agents/versions/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/app/release-notes/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/app/update/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/app/update-check/route.js +1 -1
- package/.next/server/app/api/app/update-check/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/auth/login/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/auth/logout/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/auth/status/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/capabilities/route.js +1 -1
- package/.next/server/app/api/capabilities/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/daily-summary/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/daily-summary/status/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/external-apps/[id]/health/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/external-apps/[id]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/external-apps/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/fs/browse/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/fs/recent-paths/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/hooks/agent-event/route.js.nft.json +1 -1
- package/.next/server/app/api/hooks/agent-event/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/hooks/claude-done/route.js +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.nft.json +1 -1
- package/.next/server/app/api/relays/[relayId]/cancel/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/relays/route.js.nft.json +1 -1
- package/.next/server/app/api/relays/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/remote/pair/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/repositories/[id]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/repositories/clone/[jobId]/route.js +1 -1
- package/.next/server/app/api/repositories/clone/[jobId]/route.js.nft.json +1 -1
- package/.next/server/app/api/repositories/clone/[jobId]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/repositories/clone/route.js +1 -1
- package/.next/server/app/api/repositories/clone/route.js.nft.json +1 -1
- package/.next/server/app/api/repositories/clone/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/repositories/excluded/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/repositories/restore/route.js +1 -1
- package/.next/server/app/api/repositories/restore/route.js.nft.json +1 -1
- package/.next/server/app/api/repositories/restore/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/repositories/route.js +1 -1
- package/.next/server/app/api/repositories/route.js.nft.json +1 -1
- package/.next/server/app/api/repositories/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/repositories/scan/route.js +1 -1
- package/.next/server/app/api/repositories/scan/route.js.nft.json +1 -1
- package/.next/server/app/api/repositories/scan/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/repositories/sync/route.js +1 -1
- package/.next/server/app/api/repositories/sync/route.js.nft.json +1 -1
- package/.next/server/app/api/repositories/sync/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/repositories/validate-path/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/settings/default-agents/route.js +1 -1
- package/.next/server/app/api/settings/default-agents/route.js.nft.json +1 -1
- package/.next/server/app/api/settings/default-agents/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/settings/default-surface-mode/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/sidebar/group-order/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/skills/[id]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/skills/installations/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/skills/operations/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/skills/reindex/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/skills/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/slash-commands/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/tasks/[taskId]/cancel/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/tasks/[taskId]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/templates/[id]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/templates/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/verification/runs/[runId]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/verification/runs/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/auto-yes/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/auto-yes/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/auto-yes/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/capture/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/capture/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/capture/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/clear-composer/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/clear-composer/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/clear-composer/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/cli-reference/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/cli-tool/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/cmate/schedules/route.js +2 -2
- package/.next/server/app/api/worktrees/[id]/cmate/schedules/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/cmate/schedules/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/current-output/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/current-output/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/current-output/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/direct-input/route.js +1 -0
- package/.next/server/app/api/worktrees/[id]/direct-input/route.js.nft.json +1 -0
- package/.next/server/app/api/worktrees/[id]/direct-input/route_client-reference-manifest.js +1 -0
- package/.next/server/app/api/worktrees/[id]/env/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/execution-logs/[logId]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/execution-logs/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/files/[...path]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/branch/create/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/branch/delete/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/branches/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/checkout/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/commit/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/diff/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/fetch/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/log/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/pull/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/push/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/reset/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/revert/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/show/[commitHash]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/stage/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/staged/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/stash/[index]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/stash/apply/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/stash/pop/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/stash/push/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/stash/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/status/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/unstage/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/working-diff/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/instances/notes/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/instances/opencode/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/instances/opencode/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/interrupt/route.js +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.js +1 -1
- package/.next/server/app/api/worktrees/[id]/schedules/active/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/schedules/active/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/schedules/route_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 +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 +1 -1
- package/.next/server/app/api/worktrees/[id]/terminal/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/terminal/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/timers/history/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/timers/route.js +1 -1
- package/.next/server/app/api/worktrees/[id]/timers/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/[id]/timers/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/todos/[todoId]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/todos/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/tree/[...path]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/tree/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/upload/[...path]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/verify/config/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/verify/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/verify/runs/[runId]/cancel/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/verify/runs/[runId]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/verify/runs/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/viewed/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/apply-default-agents/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/route.js +1 -1
- package/.next/server/app/api/worktrees/route.js.nft.json +1 -1
- package/.next/server/app/api/worktrees/route_client-reference-manifest.js +1 -1
- package/.next/server/app/login/page_client-reference-manifest.js +1 -1
- package/.next/server/app/manifest.webmanifest/route_client-reference-manifest.js +1 -1
- package/.next/server/app/more/page_client-reference-manifest.js +1 -1
- package/.next/server/app/offline/page_client-reference-manifest.js +1 -1
- package/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/server/app/proxy/[...path]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/repositories/page_client-reference-manifest.js +1 -1
- package/.next/server/app/review/page.js +1 -1
- package/.next/server/app/review/page_client-reference-manifest.js +1 -1
- package/.next/server/app/sessions/page.js +1 -1
- package/.next/server/app/sessions/page.js.nft.json +1 -1
- package/.next/server/app/sessions/page_client-reference-manifest.js +1 -1
- package/.next/server/app/skills/[skillId]/page_client-reference-manifest.js +1 -1
- package/.next/server/app/skills/installed/page_client-reference-manifest.js +1 -1
- package/.next/server/app/skills/page_client-reference-manifest.js +1 -1
- package/.next/server/app/worktrees/[id]/files/[...path]/page_client-reference-manifest.js +1 -1
- package/.next/server/app/worktrees/[id]/page.js +10 -10
- 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 +31 -30
- package/.next/server/chunks/2119.js +1 -1
- package/.next/server/chunks/2445.js +1 -1
- package/.next/server/chunks/252.js +1 -0
- package/.next/server/chunks/2816.js +1 -1
- package/.next/server/chunks/3241.js +1 -1
- package/.next/server/chunks/3323.js +1 -1
- package/.next/server/chunks/4443.js +1 -1
- package/.next/server/chunks/5164.js +1 -1
- package/.next/server/chunks/6130.js +1 -1
- package/.next/server/chunks/650.js +1 -1
- package/.next/server/chunks/6661.js +1 -1
- package/.next/server/chunks/6793.js +1 -1
- package/.next/server/chunks/7685.js +1 -1
- package/.next/server/chunks/7905.js +1 -1
- package/.next/server/chunks/8581.js +29 -29
- package/.next/server/chunks/8673.js +14 -0
- package/.next/server/chunks/8728.js +4 -3
- package/.next/server/chunks/8800.js +1 -1
- package/.next/server/chunks/9080.js +1 -1
- package/.next/server/chunks/9731.js +2 -2
- package/.next/server/chunks/9882.js +3 -3
- package/.next/server/middleware-manifest.json +5 -5
- package/.next/server/pages/500.html +1 -1
- package/.next/server/server-reference-manifest.json +1 -1
- package/.next/static/chunks/{1642-fb2e176aaadbd137.js → 1642-767aed8e7c61ef7f.js} +1 -1
- package/.next/static/chunks/{2407-9ac8b6188ddbb119.js → 2407-e259744922e0834c.js} +1 -1
- package/.next/static/chunks/{2619-04bc32f026a0d946.js → 2619-a305ad4810f1393a.js} +1 -1
- package/.next/static/chunks/4768-979c8a03bed218e7.js +1 -0
- package/.next/static/chunks/7705-25076b57224da370.js +1 -0
- package/.next/static/chunks/{8165-d3b7c8a7aa776bc7.js → 8165-8944f74c53f3021f.js} +1 -1
- package/.next/static/chunks/8606-9a381b996f9b6834.js +1 -0
- package/.next/static/chunks/9619-22adf5367c4b7080.js +1 -0
- package/.next/static/chunks/app/api/agents/update/{route-70779af8b4c8259a.js → route-0468c3c4baa46028.js} +1 -1
- package/.next/static/chunks/app/api/agents/versions/{route-70779af8b4c8259a.js → route-0468c3c4baa46028.js} +1 -1
- package/.next/static/chunks/app/api/app/release-notes/{route-70779af8b4c8259a.js → route-0468c3c4baa46028.js} +1 -1
- package/.next/static/chunks/app/api/app/update/route-0468c3c4baa46028.js +1 -0
- package/.next/static/chunks/app/api/app/update-check/{route-70779af8b4c8259a.js → route-0468c3c4baa46028.js} +1 -1
- package/.next/static/chunks/app/api/auth/login/route-0468c3c4baa46028.js +1 -0
- package/.next/static/chunks/app/api/auth/logout/route-0468c3c4baa46028.js +1 -0
- package/.next/static/chunks/app/api/auth/status/route-0468c3c4baa46028.js +1 -0
- package/.next/static/chunks/app/api/capabilities/route-0468c3c4baa46028.js +1 -0
- package/.next/static/chunks/app/api/daily-summary/route-0468c3c4baa46028.js +1 -0
- package/.next/static/chunks/app/api/daily-summary/status/route-0468c3c4baa46028.js +1 -0
- package/.next/static/chunks/app/api/external-apps/[id]/health/route-0468c3c4baa46028.js +1 -0
- package/.next/static/chunks/app/api/external-apps/[id]/route-0468c3c4baa46028.js +1 -0
- package/.next/static/chunks/app/api/external-apps/route-0468c3c4baa46028.js +1 -0
- package/.next/static/chunks/app/api/fs/browse/route-0468c3c4baa46028.js +1 -0
- package/.next/static/chunks/app/api/fs/recent-paths/route-0468c3c4baa46028.js +1 -0
- package/.next/static/chunks/app/api/hooks/agent-event/route-0468c3c4baa46028.js +1 -0
- package/.next/static/chunks/app/api/hooks/claude-done/route-0468c3c4baa46028.js +1 -0
- package/.next/static/chunks/app/api/hooks/permission-request/route-0468c3c4baa46028.js +1 -0
- package/.next/static/chunks/app/api/metrics/vibe/route-0468c3c4baa46028.js +1 -0
- package/.next/static/chunks/app/api/ollama/models/route-0468c3c4baa46028.js +1 -0
- package/.next/static/chunks/app/api/push/escalation/route-0468c3c4baa46028.js +1 -0
- package/.next/static/chunks/app/api/push/subscriptions/route-0468c3c4baa46028.js +1 -0
- package/.next/static/chunks/app/api/push/vapid/route-0468c3c4baa46028.js +1 -0
- package/.next/static/chunks/app/api/relays/[relayId]/cancel/route-0468c3c4baa46028.js +1 -0
- package/.next/static/chunks/app/api/relays/route-0468c3c4baa46028.js +1 -0
- package/.next/static/chunks/app/api/remote/pair/route-0468c3c4baa46028.js +1 -0
- package/.next/static/chunks/app/api/repositories/[id]/route-0468c3c4baa46028.js +1 -0
- package/.next/static/chunks/app/api/repositories/clone/[jobId]/route-0468c3c4baa46028.js +1 -0
- package/.next/static/chunks/app/api/repositories/clone/route-0468c3c4baa46028.js +1 -0
- package/.next/static/chunks/app/api/repositories/excluded/route-0468c3c4baa46028.js +1 -0
- package/.next/static/chunks/app/api/repositories/restore/route-0468c3c4baa46028.js +1 -0
- package/.next/static/chunks/app/api/repositories/route-0468c3c4baa46028.js +1 -0
- package/.next/static/chunks/app/api/repositories/scan/route-0468c3c4baa46028.js +1 -0
- package/.next/static/chunks/app/api/repositories/sync/route-0468c3c4baa46028.js +1 -0
- package/.next/static/chunks/app/api/repositories/validate-path/route-0468c3c4baa46028.js +1 -0
- package/.next/static/chunks/app/api/settings/default-agents/route-0468c3c4baa46028.js +1 -0
- package/.next/static/chunks/app/api/settings/default-surface-mode/route-0468c3c4baa46028.js +1 -0
- package/.next/static/chunks/app/api/sidebar/group-order/route-0468c3c4baa46028.js +1 -0
- package/.next/static/chunks/app/api/skills/[id]/route-0468c3c4baa46028.js +1 -0
- package/.next/static/chunks/app/api/skills/installations/route-0468c3c4baa46028.js +1 -0
- package/.next/static/chunks/app/api/skills/operations/route-0468c3c4baa46028.js +1 -0
- package/.next/static/chunks/app/api/skills/reindex/route-0468c3c4baa46028.js +1 -0
- package/.next/static/chunks/app/api/skills/route-0468c3c4baa46028.js +1 -0
- package/.next/static/chunks/app/api/slash-commands/route-0468c3c4baa46028.js +1 -0
- package/.next/static/chunks/app/api/tasks/[taskId]/cancel/route-0468c3c4baa46028.js +1 -0
- package/.next/static/chunks/app/api/tasks/[taskId]/route-0468c3c4baa46028.js +1 -0
- package/.next/static/chunks/app/api/templates/[id]/route-0468c3c4baa46028.js +1 -0
- package/.next/static/chunks/app/api/templates/route-0468c3c4baa46028.js +1 -0
- package/.next/static/chunks/app/api/verification/runs/[runId]/route-0468c3c4baa46028.js +1 -0
- package/.next/static/chunks/app/api/verification/runs/route-0468c3c4baa46028.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/auto-yes/route-0468c3c4baa46028.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/capture/route-0468c3c4baa46028.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/clear-composer/route-0468c3c4baa46028.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/cli-reference/route-0468c3c4baa46028.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/cli-tool/route-0468c3c4baa46028.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/cmate/schedules/route-0468c3c4baa46028.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/current-output/route-0468c3c4baa46028.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/direct-input/route-0468c3c4baa46028.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/env/route-0468c3c4baa46028.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/execution-logs/[logId]/route-0468c3c4baa46028.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/execution-logs/route-0468c3c4baa46028.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/files/[...path]/route-0468c3c4baa46028.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/branch/create/route-0468c3c4baa46028.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/branch/delete/route-0468c3c4baa46028.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/branches/route-0468c3c4baa46028.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/checkout/route-0468c3c4baa46028.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/commit/route-0468c3c4baa46028.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/diff/route-0468c3c4baa46028.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/fetch/route-0468c3c4baa46028.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/log/route-0468c3c4baa46028.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/pull/route-0468c3c4baa46028.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/push/route-0468c3c4baa46028.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/reset/route-0468c3c4baa46028.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/revert/route-0468c3c4baa46028.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/show/[commitHash]/route-0468c3c4baa46028.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/stage/route-0468c3c4baa46028.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/staged/route-0468c3c4baa46028.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/stash/[index]/route-0468c3c4baa46028.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/stash/apply/route-0468c3c4baa46028.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/stash/pop/route-0468c3c4baa46028.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/stash/push/route-0468c3c4baa46028.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/stash/route-0468c3c4baa46028.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/status/route-0468c3c4baa46028.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/unstage/route-0468c3c4baa46028.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/git/working-diff/route-0468c3c4baa46028.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/instances/notes/route-0468c3c4baa46028.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/instances/opencode/route-0468c3c4baa46028.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/interrupt/route-0468c3c4baa46028.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/kill-session/route-0468c3c4baa46028.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/logs/[filename]/route-0468c3c4baa46028.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/logs/route-0468c3c4baa46028.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/marp-render/route-0468c3c4baa46028.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/memos/[memoId]/route-0468c3c4baa46028.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/memos/route-0468c3c4baa46028.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/messages/route-0468c3c4baa46028.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/opencode/diff/route-0468c3c4baa46028.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/opencode/session/route-0468c3c4baa46028.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/opencode/share/route-0468c3c4baa46028.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/prompt-response/route-0468c3c4baa46028.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/resolve-target/route-0468c3c4baa46028.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/respond/route-0468c3c4baa46028.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/route-0468c3c4baa46028.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/schedules/[scheduleId]/route-0468c3c4baa46028.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/schedules/active/route-0468c3c4baa46028.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/schedules/route-0468c3c4baa46028.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/search/route-0468c3c4baa46028.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/send/route-0468c3c4baa46028.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/git-workflow/route-0468c3c4baa46028.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/install/route-0468c3c4baa46028.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/plan/route-0468c3c4baa46028.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/uninstall/route-0468c3c4baa46028.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/uninstall-plan/route-0468c3c4baa46028.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/update/route-0468c3c4baa46028.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/update-plan/route-0468c3c4baa46028.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/skills/route-0468c3c4baa46028.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/slash-commands/route-0468c3c4baa46028.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/special-keys/route-0468c3c4baa46028.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/tasks/route-0468c3c4baa46028.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/terminal/route-0468c3c4baa46028.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/timers/history/route-0468c3c4baa46028.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/timers/route-0468c3c4baa46028.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/todos/[todoId]/route-0468c3c4baa46028.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/todos/route-0468c3c4baa46028.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/tree/[...path]/route-0468c3c4baa46028.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/tree/route-0468c3c4baa46028.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/upload/[...path]/route-0468c3c4baa46028.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/verify/config/route-0468c3c4baa46028.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/verify/route-0468c3c4baa46028.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/verify/runs/[runId]/cancel/route-0468c3c4baa46028.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/verify/runs/[runId]/route-0468c3c4baa46028.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/verify/runs/route-0468c3c4baa46028.js +1 -0
- package/.next/static/chunks/app/api/worktrees/[id]/viewed/route-0468c3c4baa46028.js +1 -0
- package/.next/static/chunks/app/api/worktrees/apply-default-agents/route-0468c3c4baa46028.js +1 -0
- package/.next/static/chunks/app/api/worktrees/route-0468c3c4baa46028.js +1 -0
- package/.next/static/chunks/app/layout-b90cce6a51c91f4c.js +1 -0
- package/.next/static/chunks/app/manifest.webmanifest/route-0468c3c4baa46028.js +1 -0
- package/.next/static/chunks/app/proxy/[...path]/route-0468c3c4baa46028.js +1 -0
- package/.next/static/chunks/app/review/page-30616daa1dc595c2.js +1 -0
- package/.next/static/chunks/app/sessions/page-1a8ba152bbcb9efb.js +1 -0
- package/.next/static/chunks/app/worktrees/[id]/layout-0468c3c4baa46028.js +1 -0
- package/.next/static/chunks/app/worktrees/[id]/page-e9ebdcd317b62e4a.js +1 -0
- package/.next/static/chunks/app/worktrees/[id]/terminal/{page-373ea37b16d930c7.js → page-c601f3b3ece6557e.js} +1 -1
- package/.next/static/css/974314e796232f53.css +1 -0
- package/.next/trace +13 -13
- package/.next/types/app/api/worktrees/[id]/direct-input/route.ts +347 -0
- package/.next/types/routes.d.ts +2 -1
- package/.next/types/validator.ts +9 -0
- package/dist/cli/commands/ls.d.ts.map +1 -1
- package/dist/cli/commands/ls.js +9 -0
- package/dist/cli/commands/peers.d.ts.map +1 -1
- package/dist/cli/commands/peers.js +4 -0
- package/dist/cli/commands/send.d.ts.map +1 -1
- package/dist/cli/commands/send.js +20 -6
- package/dist/cli/config/model-validation.d.ts +22 -0
- package/dist/cli/config/model-validation.d.ts.map +1 -1
- package/dist/cli/config/model-validation.js +35 -1
- package/dist/cli/types/api-responses.d.ts +11 -0
- package/dist/cli/types/api-responses.d.ts.map +1 -1
- package/dist/lib/detection/status-reason.d.ts +13 -0
- package/dist/lib/detection/status-reason.d.ts.map +1 -1
- package/dist/lib/detection/status-reason.js +13 -0
- package/dist/lib/detection/tools/verified-against.d.ts +74 -5
- package/dist/lib/detection/tools/verified-against.d.ts.map +1 -1
- package/dist/lib/detection/tools/verified-against.js +74 -5
- package/dist/server/locales/en/worktree.json +58 -0
- package/dist/server/locales/ja/worktree.json +58 -0
- package/dist/server/src/config/claude-constants.js +27 -0
- package/dist/server/src/lib/cli-tools/base.js +2 -1
- package/dist/server/src/lib/cli-tools/claude.js +5 -1
- package/dist/server/src/lib/cli-tools/command-code.js +5 -1
- package/dist/server/src/lib/cli-tools/direct-input.js +22 -0
- package/dist/server/src/lib/cmate-cli-tool-parser.js +31 -0
- package/dist/server/src/lib/detection/cli-patterns.js +44 -5
- package/dist/server/src/lib/detection/selection-shape.js +274 -19
- package/dist/server/src/lib/detection/status-detector.js +2 -0
- package/dist/server/src/lib/detection/status-reason.js +13 -0
- package/dist/server/src/lib/detection/tools/codex/cli-patterns.js +67 -27
- package/dist/server/src/lib/detection/tools/codex/detect.js +18 -3
- package/dist/server/src/lib/detection/tools/command-code/detect.js +46 -0
- package/dist/server/src/lib/detection/tools/command-code/dialog.js +116 -25
- package/dist/server/src/lib/detection/tools/verified-against.js +74 -5
- package/dist/server/src/lib/detection/tui-detection-frame.js +18 -3
- package/dist/server/src/lib/polling/auto-yes-resolver.js +8 -0
- package/dist/server/src/lib/prompt-answer-sender.js +255 -1
- package/dist/server/src/lib/realtime-snippet.js +53 -0
- package/dist/server/src/lib/session/claude-session.js +19 -2
- package/dist/server/src/lib/session/current-output-builder.js +4 -1
- package/dist/server/src/lib/session/status-mapping.js +58 -8
- package/dist/server/src/lib/tmux/key-sequence.js +27 -1
- package/dist/server/src/lib/tmux/tmux-control-client.js +26 -3
- package/dist/server/src/lib/tmux/tmux.js +64 -3
- package/dist/server/src/types/direct-input.js +113 -0
- package/dist/server/src/types/sidebar.js +67 -7
- package/dist/server/src/types/terminal-keys.js +33 -1
- package/dist/types/terminal-keys.d.ts +28 -1
- package/dist/types/terminal-keys.d.ts.map +1 -1
- package/dist/types/terminal-keys.js +33 -1
- package/package.json +1 -1
- package/release-notes/0.40.0.json +69 -0
- package/.next/server/chunks/6092.js +0 -14
- package/.next/static/chunks/4768-0ad5eb716bed5de9.js +0 -1
- package/.next/static/chunks/8606-e893c1dab6fb81bc.js +0 -1
- package/.next/static/chunks/9619-7bc0e9524f0773b5.js +0 -1
- package/.next/static/chunks/982-edf98d9d54c5ce9b.js +0 -1
- package/.next/static/chunks/app/api/app/update/route-70779af8b4c8259a.js +0 -1
- package/.next/static/chunks/app/api/auth/login/route-70779af8b4c8259a.js +0 -1
- package/.next/static/chunks/app/api/auth/logout/route-70779af8b4c8259a.js +0 -1
- package/.next/static/chunks/app/api/auth/status/route-70779af8b4c8259a.js +0 -1
- package/.next/static/chunks/app/api/capabilities/route-70779af8b4c8259a.js +0 -1
- package/.next/static/chunks/app/api/daily-summary/route-70779af8b4c8259a.js +0 -1
- package/.next/static/chunks/app/api/daily-summary/status/route-70779af8b4c8259a.js +0 -1
- package/.next/static/chunks/app/api/external-apps/[id]/health/route-70779af8b4c8259a.js +0 -1
- package/.next/static/chunks/app/api/external-apps/[id]/route-70779af8b4c8259a.js +0 -1
- package/.next/static/chunks/app/api/external-apps/route-70779af8b4c8259a.js +0 -1
- package/.next/static/chunks/app/api/fs/browse/route-70779af8b4c8259a.js +0 -1
- package/.next/static/chunks/app/api/fs/recent-paths/route-70779af8b4c8259a.js +0 -1
- package/.next/static/chunks/app/api/hooks/agent-event/route-70779af8b4c8259a.js +0 -1
- package/.next/static/chunks/app/api/hooks/claude-done/route-70779af8b4c8259a.js +0 -1
- package/.next/static/chunks/app/api/hooks/permission-request/route-70779af8b4c8259a.js +0 -1
- package/.next/static/chunks/app/api/metrics/vibe/route-70779af8b4c8259a.js +0 -1
- package/.next/static/chunks/app/api/ollama/models/route-70779af8b4c8259a.js +0 -1
- package/.next/static/chunks/app/api/push/escalation/route-70779af8b4c8259a.js +0 -1
- package/.next/static/chunks/app/api/push/subscriptions/route-70779af8b4c8259a.js +0 -1
- package/.next/static/chunks/app/api/push/vapid/route-70779af8b4c8259a.js +0 -1
- package/.next/static/chunks/app/api/relays/[relayId]/cancel/route-70779af8b4c8259a.js +0 -1
- package/.next/static/chunks/app/api/relays/route-70779af8b4c8259a.js +0 -1
- package/.next/static/chunks/app/api/remote/pair/route-70779af8b4c8259a.js +0 -1
- package/.next/static/chunks/app/api/repositories/[id]/route-70779af8b4c8259a.js +0 -1
- package/.next/static/chunks/app/api/repositories/clone/[jobId]/route-70779af8b4c8259a.js +0 -1
- package/.next/static/chunks/app/api/repositories/clone/route-70779af8b4c8259a.js +0 -1
- package/.next/static/chunks/app/api/repositories/excluded/route-70779af8b4c8259a.js +0 -1
- package/.next/static/chunks/app/api/repositories/restore/route-70779af8b4c8259a.js +0 -1
- package/.next/static/chunks/app/api/repositories/route-70779af8b4c8259a.js +0 -1
- package/.next/static/chunks/app/api/repositories/scan/route-70779af8b4c8259a.js +0 -1
- package/.next/static/chunks/app/api/repositories/sync/route-70779af8b4c8259a.js +0 -1
- package/.next/static/chunks/app/api/repositories/validate-path/route-70779af8b4c8259a.js +0 -1
- package/.next/static/chunks/app/api/settings/default-agents/route-70779af8b4c8259a.js +0 -1
- package/.next/static/chunks/app/api/settings/default-surface-mode/route-70779af8b4c8259a.js +0 -1
- package/.next/static/chunks/app/api/sidebar/group-order/route-70779af8b4c8259a.js +0 -1
- package/.next/static/chunks/app/api/skills/[id]/route-70779af8b4c8259a.js +0 -1
- package/.next/static/chunks/app/api/skills/installations/route-70779af8b4c8259a.js +0 -1
- package/.next/static/chunks/app/api/skills/operations/route-70779af8b4c8259a.js +0 -1
- package/.next/static/chunks/app/api/skills/reindex/route-70779af8b4c8259a.js +0 -1
- package/.next/static/chunks/app/api/skills/route-70779af8b4c8259a.js +0 -1
- package/.next/static/chunks/app/api/slash-commands/route-70779af8b4c8259a.js +0 -1
- package/.next/static/chunks/app/api/tasks/[taskId]/cancel/route-70779af8b4c8259a.js +0 -1
- package/.next/static/chunks/app/api/tasks/[taskId]/route-70779af8b4c8259a.js +0 -1
- package/.next/static/chunks/app/api/templates/[id]/route-70779af8b4c8259a.js +0 -1
- package/.next/static/chunks/app/api/templates/route-70779af8b4c8259a.js +0 -1
- package/.next/static/chunks/app/api/verification/runs/[runId]/route-70779af8b4c8259a.js +0 -1
- package/.next/static/chunks/app/api/verification/runs/route-70779af8b4c8259a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/auto-yes/route-70779af8b4c8259a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/capture/route-70779af8b4c8259a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/clear-composer/route-70779af8b4c8259a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/cli-reference/route-70779af8b4c8259a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/cli-tool/route-70779af8b4c8259a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/cmate/schedules/route-70779af8b4c8259a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/current-output/route-70779af8b4c8259a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/env/route-70779af8b4c8259a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/execution-logs/[logId]/route-70779af8b4c8259a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/execution-logs/route-70779af8b4c8259a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/files/[...path]/route-70779af8b4c8259a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/branch/create/route-70779af8b4c8259a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/branch/delete/route-70779af8b4c8259a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/branches/route-70779af8b4c8259a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/checkout/route-70779af8b4c8259a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/commit/route-70779af8b4c8259a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/diff/route-70779af8b4c8259a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/fetch/route-70779af8b4c8259a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/log/route-70779af8b4c8259a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/pull/route-70779af8b4c8259a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/push/route-70779af8b4c8259a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/reset/route-70779af8b4c8259a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/revert/route-70779af8b4c8259a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/show/[commitHash]/route-70779af8b4c8259a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/stage/route-70779af8b4c8259a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/staged/route-70779af8b4c8259a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/stash/[index]/route-70779af8b4c8259a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/stash/apply/route-70779af8b4c8259a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/stash/pop/route-70779af8b4c8259a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/stash/push/route-70779af8b4c8259a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/stash/route-70779af8b4c8259a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/status/route-70779af8b4c8259a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/unstage/route-70779af8b4c8259a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/git/working-diff/route-70779af8b4c8259a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/instances/notes/route-70779af8b4c8259a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/instances/opencode/route-70779af8b4c8259a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/interrupt/route-70779af8b4c8259a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/kill-session/route-70779af8b4c8259a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/logs/[filename]/route-70779af8b4c8259a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/logs/route-70779af8b4c8259a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/marp-render/route-70779af8b4c8259a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/memos/[memoId]/route-70779af8b4c8259a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/memos/route-70779af8b4c8259a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/messages/route-70779af8b4c8259a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/opencode/diff/route-70779af8b4c8259a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/opencode/session/route-70779af8b4c8259a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/opencode/share/route-70779af8b4c8259a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/prompt-response/route-70779af8b4c8259a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/resolve-target/route-70779af8b4c8259a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/respond/route-70779af8b4c8259a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/route-70779af8b4c8259a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/schedules/[scheduleId]/route-70779af8b4c8259a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/schedules/active/route-70779af8b4c8259a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/schedules/route-70779af8b4c8259a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/search/route-70779af8b4c8259a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/send/route-70779af8b4c8259a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/git-workflow/route-70779af8b4c8259a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/install/route-70779af8b4c8259a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/plan/route-70779af8b4c8259a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/uninstall/route-70779af8b4c8259a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/uninstall-plan/route-70779af8b4c8259a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/update/route-70779af8b4c8259a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/skills/[skillId]/update-plan/route-70779af8b4c8259a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/skills/route-70779af8b4c8259a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/slash-commands/route-70779af8b4c8259a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/special-keys/route-70779af8b4c8259a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/tasks/route-70779af8b4c8259a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/terminal/route-70779af8b4c8259a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/timers/history/route-70779af8b4c8259a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/timers/route-70779af8b4c8259a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/todos/[todoId]/route-70779af8b4c8259a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/todos/route-70779af8b4c8259a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/tree/[...path]/route-70779af8b4c8259a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/tree/route-70779af8b4c8259a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/upload/[...path]/route-70779af8b4c8259a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/verify/config/route-70779af8b4c8259a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/verify/route-70779af8b4c8259a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/verify/runs/[runId]/cancel/route-70779af8b4c8259a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/verify/runs/[runId]/route-70779af8b4c8259a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/verify/runs/route-70779af8b4c8259a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/[id]/viewed/route-70779af8b4c8259a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/apply-default-agents/route-70779af8b4c8259a.js +0 -1
- package/.next/static/chunks/app/api/worktrees/route-70779af8b4c8259a.js +0 -1
- package/.next/static/chunks/app/layout-542d075e9d7cc541.js +0 -1
- package/.next/static/chunks/app/manifest.webmanifest/route-70779af8b4c8259a.js +0 -1
- package/.next/static/chunks/app/proxy/[...path]/route-70779af8b4c8259a.js +0 -1
- package/.next/static/chunks/app/review/page-8ed49e2edcc7667b.js +0 -1
- package/.next/static/chunks/app/sessions/page-56f6a2466dd0479d.js +0 -1
- package/.next/static/chunks/app/worktrees/[id]/layout-70779af8b4c8259a.js +0 -1
- package/.next/static/chunks/app/worktrees/[id]/page-760408096ad697b4.js +0 -1
- package/.next/static/css/b4aaf81d10efdd00.css +0 -1
- /package/.next/static/{7Ge9-hsqlip_Z6bhEnVkd → o3mZdwNhCks6IlcAOPinc}/_buildManifest.js +0 -0
- /package/.next/static/{7Ge9-hsqlip_Z6bhEnVkd → o3mZdwNhCks6IlcAOPinc}/_ssgManifest.js +0 -0
|
@@ -1,29 +1,4 @@
|
|
|
1
|
-
exports.id=8581,exports.ids=[8581],exports.modules={762:(a,b,c)=>{Promise.resolve().then(c.bind(c,96908))},1102:(a,b,c)=>{"use strict";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)]})}},1483:(a,b,c)=>{var d={"./en/keyboardShortcuts.json":[53722,1341],"./ja/keyboardShortcuts.json":[88356,8356]};function e(a){if(!c.o(d,a))return Promise.resolve().then(()=>{var b=Error("Cannot find module '"+a+"'");throw b.code="MODULE_NOT_FOUND",b});var b=d[a],e=b[0];return c.e(b[1]).then(()=>c.t(e,19))}e.keys=()=>Object.keys(d),e.id=1483,a.exports=e},4267:(a,b,c)=>{"use strict";c.d(b,{Lt:()=>h,Wj:()=>f,eu:()=>e,fJ:()=>g});var d=c(17252);let e=2,f=6,g=["claude","codex","antigravity"];function h(a){return a.length<e||a.length>f?{valid:!1,error:`Must be ${e}-${f} elements`}:a.every(a=>"string"==typeof a&&d.XH.includes(a))?new Set(a).size!==a.length?{valid:!1,error:"Duplicate tool IDs not allowed"}:{valid:!0,value:a}:{valid:!1,error:"Invalid CLI tool ID"}}},4558:(a,b,c)=>{"use strict";c.d(b,{A:()=>g});var d=c(43692),e=c(86802),f=c(25754);let g=(0,d.A)(async({requestLocale:a})=>{let b=await a;if(!(0,f.d9)(b)){let a=await (0,e.UL)(),c=await (0,e.b3)();b=(0,f.rv)(a.get(f.gB)?.value,c.get("accept-language"))}let[d,g,h,i,j,k,l,m,n,o,p,q,r,s,t]=await Promise.all([c(61118)(`./${b}/common.json`),c(90338)(`./${b}/worktree.json`),c(62081)(`./${b}/autoYes.json`),c(66125)(`./${b}/error.json`),c(72637)(`./${b}/prompt.json`),c(51877)(`./${b}/auth.json`),c(38898)(`./${b}/schedule.json`),c(80407)(`./${b}/commandPalette.json`),c(70288)(`./${b}/home.json`),c(60887)(`./${b}/review.json`),c(75567)(`./${b}/pwa.json`),c(99127)(`./${b}/notifications.json`),c(1483)(`./${b}/keyboardShortcuts.json`),c(80812)(`./${b}/externalApps.json`),c(18913)(`./${b}/skills.json`)]);return{locale:b,timeZone:"UTC",messages:{common:d.default,worktree:g.default,autoYes:h.default,error:i.default,prompt:j.default,auth:k.default,schedule:l.default,commandPalette:m.default,home:n.default,review:o.default,pwa:p.default,notifications:q.default,keyboardShortcuts:r.default,externalApps:s.default,skills:t.default}}})},5682:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>d});let d=(0,c(97954).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/runner/work/CommandMate/CommandMate/src/app/error.tsx\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/CommandMate/CommandMate/src/app/error.tsx","default")},5772:(a,b,c)=>{"use strict";c.d(b,{Ps:()=>k,W5:()=>j});var d=c(21124),e=c(38301),f=c(90076),g=c(12480);let h={size:g.r5,setSize:()=>{},isMobile:!1,factor:g.d8[g.r5].factor,isAvailable:!1},i=(0,e.createContext)(h);function j({children:a}){let{size:b,setSize:c,isAvailable:h}=(0,g.of)(),j=(0,f.a)(),k=(0,e.useMemo)(()=>({size:b,setSize:c,isMobile:j,factor:g.d8[b].factor,isAvailable:h}),[b,c,j,h]);return(0,d.jsx)(i.Provider,{value:k,children:a})}function k(){return(0,e.useContext)(i)}},6074:(a,b,c)=>{"use strict";c.d(b,{O:()=>e});var d=c(38301);function e(a,b){let[c,e]=(0,d.useState)(a?"open":"closed");return a&&"open"!==c?e("open"):a||"open"!==c||e("exiting"),{shouldRender:a||"closed"!==c,isExiting:!a&&"exiting"===c}}},8509:(a,b,c)=>{"use strict";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))})]})}},9451:(a,b,c)=>{"use strict";c.d(b,{AppShellGate:()=>ba});var d=c(21124),e=c(42378),f=c(38301),g=c.n(f),h=c(81092),i=c(90076);let j={showSidebar:!0,showGlobalNav:!0,showLocalNav:!1,autoCollapseSidebar:!1},k=[{prefix:"/worktrees/",config:{showGlobalNav:!1,showLocalNav:!0}},{prefix:"/sessions",config:{autoCollapseSidebar:!0}}];var l=c(5772),m=c(3991),n=c.n(m),o=c(52761);let p=(0,f.forwardRef)(function({href:a,onClick:b,target:c,...f},g){let h=(0,e.usePathname)(),i=(0,o.Hq)();return(0,d.jsx)(n(),{ref:g,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&&i.push(a))},...f})});var q=c(20481),r=c(65828),s=c(75903),t=c(59268),u=c(94684),v=c(10366),w=c(99615),x=c(22023),y=c(47817),z=c(23312),A=c.n(z),B=c(89877),C=c(22317);let D=(0,f.memo)(function({status:a,label:b,waitingKind:c}){return(0,d.jsx)(C.m,{"data-testid":"status-indicator",status:a,label:b,waitingKind:c,size:"lg"})});function E({id:a,branch:b,isVisible:c,anchorRef:e,nextActionLabel:g}){let[h,i]=(0,f.useState)({top:-9999,left:-9999}),j=(0,f.useRef)(null);if("undefined"==typeof document||!c)return null;let k=Math.min(384,Math.max(0,window.innerWidth-16));return A().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 F=0,G=(0,f.memo)(function({branch:a,isSelected:b,onClick:c,showRepositoryName:e=!0}){let g=(0,q.c)("common"),h=(0,q.c)("worktree"),i=`tooltip-${a.id}`,j=(0,f.useRef)(null),[k,l]=(0,f.useState)(!1),m=(0,f.useRef)(null),n=(0,f.useCallback)(()=>{null!==m.current&&(clearTimeout(m.current),m.current=null)},[]);(0,f.useEffect)(()=>()=>n(),[n]);let o=(0,B.A7)(a.cliStatus),p="waiting"===o,r=!0===a.awaitingInstruction,s=a.nextActionKey?h(a.nextActionKey):null,t=(0,f.useMemo)(()=>new Set(a.exitedInstanceIds??[]),[a.exitedInstanceIds]),u=(p||r)&&null!==s,v=k&&!b;return(0,f.useEffect)(()=>{b&&l(!1)},[b]),(0,f.useEffect)(()=>{if(!k)return;let a=()=>l(!1);return document.addEventListener("click",a),()=>document.removeEventListener("click",a)},[k]),(0,d.jsxs)("button",{ref:j,"data-testid":"branch-list-item",onClick:()=>{n(),F=Date.now()+400,l(!1),c()},onMouseEnter:()=>{n(),Date.now()>=F&&(m.current=setTimeout(()=>{l(!0)},150))},onMouseLeave:()=>{n(),l(!1)},onFocus:a=>{n(),a.target.matches(":focus-visible")&&(m.current=setTimeout(()=>{l(!0)},150))},onBlur:()=>{n(),l(!1)},"aria-current":b?"true":void 0,"aria-describedby":v?i:void 0,"aria-label":e?void 0:`${a.name} - ${a.repositoryName}`,className:`
|
|
2
|
-
group relative w-full px-4 py-3 flex flex-col gap-1
|
|
3
|
-
hover:bg-sidebar-hover transition-colors
|
|
4
|
-
focus:outline-none focus:ring-2 focus:ring-inset focus:ring-ring
|
|
5
|
-
${b?"bg-sidebar-hover border-l-2 border-accent-500":"border-l-2 border-transparent"}
|
|
6
|
-
`,children:[(0,d.jsxs)("div",{className:"flex items-center gap-3 w-full",children:[a.cliStatus&&Object.keys(a.cliStatus).length>0&&(0,d.jsx)("div",{className:"flex items-center justify-center flex-shrink-0 w-4","aria-label":g("branchItem.cliToolStatus"),children:(0,d.jsx)(D,{status:o,label:(0,B.dw)(a.cliStatus,a.cliStatusLabels,t.size>0?a=>t.has(a)?g("branchItem.agentExited"):null:void 0),waitingKind:a.waitingKind})}),(0,d.jsxs)("div",{className:"flex-1 min-w-0 text-left",children:[(0,d.jsx)("p",{className:"text-sm font-medium text-sidebar-foreground truncate",children:a.name}),e&&(0,d.jsx)("p",{className:"text-xs text-sidebar-muted truncate",children:a.repositoryName}),u&&(0,d.jsx)("p",{"data-testid":"branch-next-action",className:`text-xs font-medium truncate ${p?"text-warning-foreground":"text-success-foreground"}`,children:s})]}),r&&(0,d.jsx)("span",{"data-testid":"awaiting-instruction-badge",className:"flex-shrink-0 rounded-full bg-success-subtle px-1.5 py-0.5 text-[10px] font-medium leading-4 text-success-foreground",title:h("awaitingInstruction.label"),children:h("awaitingInstruction.badge")}),a.hasUnread&&(0,d.jsx)("span",{"data-testid":"unread-indicator",className:"w-2 h-2 rounded-full bg-accent-500 flex-shrink-0","aria-label":g("branchItem.hasUnread")})]}),a.description&&(0,d.jsx)("div",{"data-testid":"branch-description",className:"pl-6 pr-2 mt-1 text-left",children:(0,d.jsx)("p",{className:"text-xs text-sidebar-muted line-clamp-2",children:a.description})}),(0,d.jsx)(E,{id:i,branch:a,isVisible:v,anchorRef:j,nextActionLabel:s})]})});var H=c(85351),I=c(1102);function J(a,b,c){if(b<=0||c<=0)return 0;let d=a+b+8-c;return d>0?-Math.min(d,Math.max(0,a-8)):a<8?8-a:0}let K=(0,f.memo)(function({sortKey:a,sortDirection:b,onSortKeyChange:c,onSortDirectionChange:e,options:g,defaultDirections:h,compact:i,showLabel:j=!1,directionLabels:k,tooltip:l,iconClassName:m="w-3 h-3"}){let n=(0,q.c)("common"),[o,p]=(0,f.useState)(!1),r=(0,f.useRef)(null),s=(0,f.useRef)(null),t=(0,f.useRef)({x:0,y:0}),[u,v]=(0,f.useState)({x:0,y:0});(0,f.useEffect)(()=>{function a(a){r.current&&!r.current.contains(a.target)&&p(!1)}if(o)return document.addEventListener("mousedown",a),()=>document.removeEventListener("mousedown",a)},[o]),(0,f.useEffect)(()=>{function a(a){"Escape"===a.key&&p(!1)}if(o)return document.addEventListener("keydown",a),()=>document.removeEventListener("keydown",a)},[o]),(0,f.useLayoutEffect)(()=>{let a=a=>{t.current=a,v(b=>b.x===a.x&&b.y===a.y?b:a)};if(!o)return void a({x:0,y:0});let b=s.current;if(!b)return;let c=b.getBoundingClientRect();a({x:J(c.left-t.current.x,c.width,window.innerWidth),y:J(c.top-t.current.y,c.height,window.innerHeight)})},[o]);let w=(0,f.useCallback)(()=>{p(a=>!a)},[]),x=(0,f.useCallback)(d=>{d===a?e("asc"===b?"desc":"asc"):(c(d),e(h?.[d]??"asc")),p(!1)},[a,b,c,e,h]),y=(0,f.useCallback)(()=>{e("asc"===b?"desc":"asc")},[b,e]),z=g.find(b=>b.key===a)?.label||n("sort.label"),A=k?.[a]?.[b],B=n("asc"===b?"sort.ascShort":"sort.descShort"),C=(0,d.jsx)("button",{type:"button",onClick:w,"aria-expanded":o,"aria-haspopup":"listbox","aria-label":n("sort.sortBy",{label:z}),className:j?"flex min-w-0 max-w-full items-center gap-1 rounded border border-sidebar-border px-2 py-1 text-xs text-sidebar-foreground hover:bg-sidebar-hover focus:outline-none focus:ring-2 focus:ring-ring transition-colors":"flex items-center gap-1 px-2 py-1 rounded text-xs text-sidebar-muted hover:text-sidebar-foreground hover:bg-sidebar-hover focus:outline-none focus:ring-2 focus:ring-ring transition-colors",children:j?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("span",{className:"min-w-0 truncate",children:z}),(0,d.jsx)(H.A,{className:"h-3 w-3 flex-shrink-0","aria-hidden":"true"})]}):(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(L,{className:m}),(0,d.jsx)("span",{className:i?"hidden":"hidden sm:inline",children:z})]})});return(0,d.jsxs)("div",{ref:r,className:j?"relative min-w-0":"relative","data-testid":"sort-selector-base",children:[(0,d.jsxs)("div",{className:j?"flex min-w-0 flex-wrap items-center gap-1":"flex items-center gap-1",children:[l?(0,d.jsx)(I.m_,{content:l,placement:"bottom",children:C}):C,(0,d.jsx)("button",{type:"button",onClick:y,"aria-label":A??n("asc"===b?"sort.ascending":"sort.descending"),className:A?"min-w-0 max-w-full truncate rounded px-2 py-1 text-xs text-sidebar-muted hover:text-sidebar-foreground hover:bg-sidebar-hover focus:outline-none focus:ring-2 focus:ring-ring transition-colors":"p-1 rounded text-sidebar-muted hover:text-sidebar-foreground hover:bg-sidebar-hover focus:outline-none focus:ring-2 focus:ring-ring transition-colors",children:A??("asc"===b?(0,d.jsx)(M,{className:m}):(0,d.jsx)(N,{className:m}))})]}),o&&(0,d.jsx)("div",{ref:s,role:"listbox","aria-label":n("sort.options"),className:" absolute right-0 top-full mt-1 z-50 min-w-[140px] py-1 rounded-md shadow-lg bg-sidebar border border-sidebar-border ",style:0!==u.x||0!==u.y?{transform:`translate(${u.x}px, ${u.y}px)`}:void 0,children:g.map(c=>(0,d.jsxs)("button",{type:"button",role:"option","aria-selected":a===c.key,onClick:()=>x(c.key),className:`
|
|
7
|
-
w-full px-3 py-2 text-left text-sm whitespace-nowrap
|
|
8
|
-
flex items-center justify-between gap-3
|
|
9
|
-
hover:bg-sidebar-hover transition-colors
|
|
10
|
-
${a===c.key?"text-accent-700 dark:text-accent-400":"text-sidebar-muted"}
|
|
11
|
-
`,children:[(0,d.jsx)("span",{children:c.label}),a===c.key&&(0,d.jsx)("span",{className:"text-xs",children:k?.[c.key]?.[b]??B})]},c.key))})]})});function L({className:a}){return(0,d.jsx)("svg",{className:a,fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2,children:(0,d.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M3 4h13M3 8h9m-9 4h6m4 0l4-4m0 0l4 4m-4-4v12"})})}function M({className:a}){return(0,d.jsx)("svg",{className:a,fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2,children:(0,d.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M5 15l7-7 7 7"})})}function N({className:a}){return(0,d.jsx)("svg",{className:a,fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2,children:(0,d.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M19 9l-7 7-7-7"})})}let O=[{key:"updatedAt",labelKey:"sort.updatedAt"},{key:"repositoryName",labelKey:"sort.repositoryName"},{key:"branchName",labelKey:"sort.branchName"},{key:"status",labelKey:"sort.status"}],P={updatedAt:"desc"},Q=(0,f.memo)(function(){let{sortKey:a,sortDirection:b,setSortKey:c,setSortDirection:e}=(0,h.VF)(),g=(0,q.c)("common"),i=(0,f.useMemo)(()=>O.map(({key:a,labelKey:b})=>({key:a,label:g(b)})),[g]),j=(0,f.useMemo)(()=>({updatedAt:{asc:g("sort.direction.oldestFirst"),desc:g("sort.direction.newestFirst")},repositoryName:{asc:g("sort.direction.aToZ"),desc:g("sort.direction.zToA")},branchName:{asc:g("sort.direction.aToZ"),desc:g("sort.direction.zToA")},status:{asc:g("sort.direction.attentionFirst"),desc:g("sort.direction.attentionLast")}}),[g]);return(0,d.jsx)(K,{sortKey:a,sortDirection:b,onSortKeyChange:c,onSortDirectionChange:e,options:i,defaultDirections:P,showLabel:!0,directionLabels:j,iconClassName:"w-4 h-4"})});var R=c(85866),S=c(81497),T=c(85744),U=c(68232);function V(){let{currentLocale:a,switchLocale:b}=(0,T.g)(),c=(0,q.c)("common");return(0,d.jsx)("select",{value:a,onChange:a=>b(a.target.value),"data-testid":"locale-switcher","aria-label":c("language"),className:" w-full px-3 py-2 rounded-md bg-sidebar text-sidebar-foreground border border-sidebar-border focus:outline-none focus:ring-2 focus:ring-ring focus:border-transparent text-sm ",children:U.dI.map(a=>(0,d.jsx)("option",{value:a,children:U.vK[a]},a))})}var W=c(45523),X=c(70175),Y=c(60988);function Z(){let{theme:a,setTheme:b}=(0,W.D)(),[c,e]=(0,f.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)(X.A,{className:"w-5 h-5","data-testid":"theme-icon-sun"}):(0,d.jsx)(Y.A,{className:"w-5 h-5","data-testid":"theme-icon-moon"})})}var $=c(84342);function _(){let a=(0,q.c)("auth"),b=(0,$.H)(),[c,e]=(0,f.useState)(!1);if(!b)return null;async function g(){e(!0);try{await fetch("/api/auth/logout",{method:"POST"}),window.location.href="/login"}catch{window.location.href="/login"}}return(0,d.jsx)("button",{type:"button",onClick:g,disabled:c,"data-testid":"logout-button",className:" w-full px-3 py-2 text-sm text-left rounded-md text-muted-foreground hover:text-foreground hover:bg-muted focus:outline-none focus:ring-2 focus:ring-ring disabled:opacity-50 transition-colors ",children:c?"...":a("logout.button")})}var aa=c(63474),ab=c(77560),ac=c(19463),ad=c(62197),ae=c(78352),af=c(32482);function ag(a){let{items:b,sortKey:c,sortDirection:d,viewMode:e,filterText:g}=a,h=(0,f.useMemo)(()=>{if(!g)return b;let a=g.toLowerCase();return b.filter(b=>b.name.toLowerCase().includes(a)||b.repositoryName.toLowerCase().includes(a))},[b,g]);return{sortedItems:(0,f.useMemo)(()=>(0,af.Xn)(h,c,d),[h,c,d]),groupedItems:(0,f.useMemo)(()=>"grouped"===e?(0,af._s)(h,c,d):[],[h,c,d,e])}}let ah=0,ai=(0,f.memo)(function(){let a=(0,o.Hq)(),{worktrees:b,repositories:c,selectedWorktreeId:g,selectWorktree:i,refreshWorktrees:j,isLoading:k,error:l}=(0,y.$f)(),{closeMobileDrawer:m,sortKey:n,sortDirection:p,viewMode:u,setViewMode:x,repositoryOrder:z,setRepositoryOrder:A}=(0,h.VF)(),C=(0,q.c)("common"),D=(0,e.usePathname)()??"",{count:E}=(0,ac.Lv)(),[F,H]=(0,f.useState)(""),I=(0,f.useRef)(null),[J,K]=(0,f.useState)(()=>({})),L=(0,f.useRef)(!1);(0,f.useEffect)(()=>{L.current||(L.current=!0,fetch("/api/sidebar/group-order").then(a=>a.json()).then(a=>{a.success&&Array.isArray(a.order)&&A(a.order)}).catch(()=>{}))},[A]);let M=(0,f.useMemo)(()=>(0,af.UZ)(c),[c]),N=(0,f.useMemo)(()=>(0,af.s6)(b,M),[b,M]),O=(0,f.useMemo)(()=>N.map(B.XK),[N]),P=(0,f.useDeferredValue)(O),S=(0,f.useRef)(null),T=(0,f.useRef)(null),[U,W]=(0,f.useState)(0);(0,f.useEffect)(()=>()=>{null!==T.current&&clearTimeout(T.current)},[]);let X=(0,f.useCallback)(()=>{null!==T.current&&(clearTimeout(T.current),T.current=null),S.current=null},[]),Y=(0,f.useMemo)(()=>{let a=S.current;return!a||0===a.items.length||Date.now()>=a.expiresAt?P:a.items},[P,U]),$=(0,f.useRef)(Y);(0,f.useLayoutEffect)(()=>{$.current=Y;let a=S.current;a&&0===a.items.length&&P.length>0&&X()});let aa=(0,f.useCallback)(()=>{if(0===$.current.length)return;null!==T.current&&(clearTimeout(T.current),T.current=null);let a=S.current;if(a&&Date.now()<a.expiresAt){S.current={...a,expiresAt:1/0};return}S.current={items:$.current,expiresAt:1/0}},[]),ad=(0,f.useCallback)(()=>{S.current&&(S.current={...S.current,expiresAt:Date.now()+1e3},null!==T.current&&clearTimeout(T.current),T.current=setTimeout(()=>{X(),W(a=>a+1)},1e3))},[X]),{sortedItems:ae,groupedItems:ai}=ag({items:Y,sortKey:n,sortDirection:p,viewMode:u,filterText:F}),al=(0,f.useMemo)(()=>"grouped"===u&&ai?F.trim()?ai:(0,af.BN)(ai,z):null,[u,ai,z,F]),ap="grouped"===u?al:null,aq=(0,f.useMemo)(()=>"sessions"===u?(0,af.EY)((0,af.UB)(ae),n,p):[],[u,ae,n,p]);(0,f.useEffect)(()=>{},[J]);let ar=(0,f.useCallback)(a=>{K(b=>({...b,[a]:!b[a]}))},[]),au=(0,f.useCallback)(()=>{var a;ah=Number.isFinite(a=I.current?.scrollTop??0)&&a>0?a:0},[]),av=ae.length>0||(ap?.length??0)>0||aq.length>0;(0,f.useEffect)(()=>{let a=I.current;if(!a)return;let b=window.requestAnimationFrame(()=>{a.scrollTop=ah});return()=>{window.cancelAnimationFrame(b)}},[av,u]);let aw=(0,f.useCallback)(b=>{au(),i(b),a.push(`/worktrees/${b}`),m()},[au,i,a,m]),ax=(0,f.useCallback)(b=>{au(),i(b.worktreeId),a.push((0,af.Ii)(b)),m()},[au,i,a,m]),ay=(0,v.FR)((0,v.MS)(v.AN,{activationConstraint:{distance:8}})),az=(0,f.useCallback)(a=>{let{active:b,over:c}=a;if(!c||b.id===c.id||!ap)return;let d=ap.map(a=>a.repositoryName),e=d.indexOf(String(b.id)),f=d.indexOf(String(c.id));if(-1===e||-1===f)return;let g=(0,w.be)(d,e,f);A(g),fetch("/api/sidebar/group-order",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({order:g})}).catch(()=>{A(d)})},[ap,A]),aA="grouped"===u?(ap?.length??0)===0:"sessions"===u?0===aq.length:0===ae.length,aB=k&&0===b.length,aC=!aB&&!!l&&0===b.length,aD=(0,f.useCallback)(()=>{j()},[j]);return(0,d.jsxs)("nav",{"data-testid":"sidebar","aria-label":C("sidebar.branchNavigation"),className:"h-full flex flex-col bg-sidebar text-sidebar-foreground",role:"navigation",children:[(0,d.jsxs)("div",{"data-testid":"sidebar-header",className:"flex-shrink-0 space-y-2 border-b border-sidebar-border px-2 py-2",children:[(0,d.jsxs)("ul",{"data-testid":"sidebar-nav",className:"space-y-0.5",children:[(0,d.jsxs)("li",{className:"flex min-w-0 items-center gap-1",children:[(0,d.jsx)(am,{href:"/repositories",icon:r.A,label:C("nav.repositories"),testId:"sidebar-nav-repositories",isActive:D.startsWith("/repositories"),onNavigate:m}),(0,d.jsx)(as,{refreshWorktrees:j})]}),(0,d.jsx)("li",{className:"flex min-w-0",children:(0,d.jsx)(am,{href:"/sessions",icon:s.A,label:C("nav.sessions"),testId:"sidebar-nav-sessions",isActive:D.startsWith("/sessions"),onNavigate:m})}),(0,d.jsx)("li",{className:"flex min-w-0",children:(0,d.jsx)(am,{href:E>0?ab.ks:"/review",icon:t.A,label:C("nav.review"),testId:"sidebar-nav-review",isActive:D.startsWith("/review"),onNavigate:m,trailing:E>0?(0,d.jsx)("span",{"data-testid":"sidebar-nav-review-count",role:"status","aria-label":C("attention.badgeLabel",{count:E}),className:"flex-shrink-0 rounded-full bg-warning-subtle px-1.5 text-xs font-semibold leading-5 tabular-nums text-warning-foreground",children:E>99?"99+":E}):null})})]}),(0,d.jsxs)("div",{"data-testid":"sidebar-list-controls",className:"grid grid-cols-[auto_minmax(0,1fr)] items-center gap-x-2 gap-y-1.5 px-2",children:[(0,d.jsx)(an,{viewMode:u,onChange:x}),(0,d.jsx)("span",{className:"whitespace-nowrap text-xs text-sidebar-muted",children:C("sort.label")}),(0,d.jsx)(Q,{})]})]}),(0,d.jsx)("div",{className:"flex-shrink-0 px-4 py-3 border-b border-sidebar-border",children:(0,d.jsx)(R.pd,{type:"text",placeholder:C("sidebar.searchBranches"),value:F,onChange:a=>H(a.target.value),className:"bg-background shadow-none"})}),(0,d.jsx)("div",{ref:I,"data-testid":"branch-list",onScroll:au,onMouseEnter:aa,onMouseLeave:ad,className:"flex-1 overflow-y-auto overflow-x-hidden",children:aB?(0,d.jsx)(aj,{label:C("sidebar.loadingBranches")}):aC?(0,d.jsxs)("div",{"data-testid":"branch-list-error",role:"alert",className:"px-4 py-8 text-center text-sidebar-muted",children:[(0,d.jsx)("p",{className:"text-sm",children:C("sidebar.branchesLoadFailed")}),(0,d.jsx)(R.$n,{type:"button",variant:"secondary",size:"sm",className:"mt-3","data-testid":"branch-list-retry",onClick:aD,children:C("sidebar.retryLoadBranches")})]}):aA?(0,d.jsx)("div",{className:"px-4 py-8 text-center text-sidebar-muted",children:C(F?"sidebar.noBranchesFound":"sidebar.noBranchesAvailable")}):"sessions"===u?aq.map(a=>(0,d.jsx)(ao,{row:a,isSelected:a.worktreeId===g,onClick:ax},a.key)):"grouped"===u&&ap?(0,d.jsx)(v.Mp,{sensors:ay,collisionDetection:v.fp,onDragEnd:az,children:(0,d.jsx)(w.gB,{items:ap.map(a=>a.repositoryName),strategy:w._G,children:ap.map(a=>{let b=!J[a.repositoryName]||!!F.trim();return(0,d.jsx)(ak,{group:a,isExpanded:b,selectedWorktreeId:g,onToggle:()=>ar(a.repositoryName),onBranchClick:aw,isDragDisabled:!!F.trim()},a.repositoryName)})})}):ae.map(a=>(0,d.jsx)(G,{branch:a,isSelected:a.id===g,onClick:()=>aw(a.id)},a.id))}),(0,d.jsxs)("div",{className:"flex-shrink-0 px-4 py-3 border-t border-sidebar-border space-y-2",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)(at,{onNavigate:m}),(0,d.jsx)("div",{className:"flex-1 min-w-0",children:(0,d.jsx)(V,{})}),(0,d.jsx)(Z,{})]}),(0,d.jsx)(_,{})]})]})}),aj=(0,f.memo)(function({label:a}){return(0,d.jsxs)("div",{"data-testid":"branch-list-skeleton",role:"status","aria-live":"polite",className:"px-4 py-3 space-y-3",children:[(0,d.jsx)("span",{className:"sr-only",children:a}),[0,1,2,3,4].map(a=>(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)(R.EA,{className:"h-2 w-2 rounded-full"}),(0,d.jsx)(R.EA,{className:"h-3 flex-1"})]},a))]})});function ak({group:a,isExpanded:b,selectedWorktreeId:c,onToggle:e,onBranchClick:f,isDragDisabled:g}){let{attributes:h,listeners:i,setNodeRef:j,setActivatorNodeRef:k,transform:l,transition:m,isDragging:n}=(0,w.gl)({id:a.repositoryName,disabled:g}),o={transform:x.Ks.Transform.toString(l),transition:m,opacity:n?.5:1};return(0,d.jsxs)("div",{ref:j,style:o,className:"w-full min-w-0",children:[(0,d.jsx)(al,{repositoryName:a.repositoryName,branchCount:a.branches.length,isExpanded:b,onClick:e,dragHandleRef:k,dragHandleListeners:g?void 0:i,dragHandleAttributes:g?void 0:h}),b&&a.branches.map(a=>(0,d.jsx)(G,{branch:a,isSelected:a.id===c,onClick:()=>f(a.id),showRepositoryName:!1},a.id))]})}function al({repositoryName:a,branchCount:b,isExpanded:c,onClick:e,dragHandleRef:f,dragHandleListeners:g,dragHandleAttributes:h}){let i=(0,q.c)("common");return(0,d.jsxs)("div",{className:"flex items-center w-full",children:[g&&(0,d.jsx)("div",{ref:f,...g,...h,"aria-label":i("sidebar.dragToReorderGroup"),className:" flex-shrink-0 flex items-center justify-center w-6 h-full pl-2 cursor-grab active:cursor-grabbing text-sidebar-muted hover:text-sidebar-foreground transition-colors ",children:(0,d.jsx)(aq,{})}),(0,d.jsxs)("button",{"data-testid":"group-header",type:"button",onClick:e,"aria-expanded":c,className:" flex-1 min-w-0 flex items-center gap-2 px-2 py-2 text-xs font-semibold text-sidebar-muted uppercase tracking-wider focus:outline-none focus:ring-2 focus:ring-inset focus:ring-ring transition-colors ",children:[(0,d.jsx)(ap,{isExpanded:c}),(0,d.jsx)(R.nF,{color:(0,af.LV)(a)}),(0,d.jsx)(S.nR,{content:a,className:"flex-1 min-w-0 text-left truncate",children:a}),(0,d.jsx)("span",{className:"text-sidebar-muted font-normal tabular-nums pr-2",children:b})]})]})}function am({href:a,icon:b,label:c,testId:e,isActive:f,onNavigate:g,trailing:h}){return(0,d.jsxs)(p,{href:a,"data-testid":e,"aria-current":f?"page":void 0,onClick:g,className:`flex min-w-0 flex-1 items-center gap-2 rounded-md px-2 py-1.5 text-sm transition-colors hover:bg-sidebar-hover hover:text-sidebar-foreground focus:outline-none focus-visible:ring-2 focus-visible:ring-ring ${f?"bg-sidebar-hover font-medium text-sidebar-foreground":"text-sidebar-muted"}`,children:[(0,d.jsx)(b,{className:"h-4 w-4 flex-shrink-0","aria-hidden":"true"}),(0,d.jsx)("span",{className:"min-w-0 flex-1 truncate",children:c}),h]})}function an({viewMode:a,onChange:b}){let c=(0,q.c)("common"),e=(0,f.useId)();return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("label",{htmlFor:e,className:"whitespace-nowrap text-xs text-sidebar-muted",children:c("sidebar.viewLabel")}),(0,d.jsxs)("select",{id:e,"data-testid":"view-mode-select",value:a,onChange:a=>{let c=a.target.value;(0,af.$m)(c)&&b(c)},className:"w-full min-w-0 truncate rounded border border-sidebar-border bg-sidebar px-1.5 py-1 text-xs text-sidebar-foreground hover:bg-sidebar-hover focus:outline-none focus:ring-2 focus:ring-ring",children:[(0,d.jsx)("option",{value:"grouped",children:c("sidebar.viewMode.grouped")}),(0,d.jsx)("option",{value:"flat",children:c("sidebar.viewMode.flat")}),(0,d.jsx)("option",{value:"sessions",children:c("sidebar.viewMode.sessions")})]})]})}let ao=(0,f.memo)(function({row:a,isSelected:b,onClick:c}){let e=(0,q.c)("common"),f=e(`status.${a.status}`);return(0,d.jsxs)("button",{type:"button","data-testid":"session-list-item","data-session-key":a.key,onClick:()=>c(a),"aria-current":b?"true":void 0,className:`w-full min-w-0 px-4 py-2 flex items-center gap-3 text-left hover:bg-sidebar-hover transition-colors focus:outline-none focus:ring-2 focus:ring-inset focus:ring-ring ${b?"bg-sidebar-hover border-l-2 border-accent-500":"border-l-2 border-transparent"}`,children:[(0,d.jsx)(R.md,{status:a.status,size:"lg",label:a.exited?`${f} (${e("branchItem.agentExited")})`:f}),(0,d.jsxs)("span",{className:"min-w-0 flex-1",children:[(0,d.jsx)("span",{className:"block truncate text-sm font-semibold text-sidebar-foreground",children:a.label}),(0,d.jsxs)("span",{className:"block truncate text-xs text-sidebar-muted",children:[a.branchName," \xb7 ",a.repositoryName]})]})]})});function ap({isExpanded:a}){return(0,d.jsx)("svg",{className:`w-3 h-3 flex-shrink-0 transition-transform ${a?"rotate-90":""}`,fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2,children:(0,d.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9 5l7 7-7 7"})})}function aq(){return(0,d.jsxs)("svg",{className:"w-3 h-3",fill:"currentColor",viewBox:"0 0 24 24","aria-hidden":"true",children:[(0,d.jsx)("circle",{cx:"9",cy:"5",r:"1.5"}),(0,d.jsx)("circle",{cx:"15",cy:"5",r:"1.5"}),(0,d.jsx)("circle",{cx:"9",cy:"12",r:"1.5"}),(0,d.jsx)("circle",{cx:"15",cy:"12",r:"1.5"}),(0,d.jsx)("circle",{cx:"9",cy:"19",r:"1.5"}),(0,d.jsx)("circle",{cx:"15",cy:"19",r:"1.5"})]})}function ar({className:a=""}){return(0,d.jsx)("svg",{className:`w-4 h-4 ${a}`,fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2,children:(0,d.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M4 4v5h5M20 20v-5h-5M20.49 9A9 9 0 005.64 5.64L4 4m16 16l-1.64-1.64A9 9 0 014.51 15"})})}let as=(0,f.memo)(function({refreshWorktrees:a}){let[b,c]=(0,f.useState)(!1),e=(0,f.useRef)(!1),{showToast:g}=(0,aa.dj)(),h=(0,q.c)("common"),i=(0,f.useCallback)(async()=>{if(!e.current){e.current=!0,c(!0);try{let b=await ae.Rx.sync();await a(),g(h("syncSuccess",{count:b.worktreeCount}),"success",3e3)}catch(a){a instanceof ae.hD&&401===a.status?g(h("syncAuthError"),"error",5e3):g(h("syncError"),"error",5e3)}finally{e.current=!1,c(!1)}}},[a,g,h]);return(0,d.jsx)(d.Fragment,{children:(0,d.jsx)(I.m_,{content:h("tooltips.sync"),placement:"bottom",children:(0,d.jsx)("button",{type:"button",onClick:i,disabled:b,"aria-label":h("syncButtonLabel"),className:"p-1 rounded-md text-sidebar-muted hover:text-sidebar-foreground hover:bg-sidebar-hover focus:outline-none focus:ring-2 focus:ring-ring disabled:opacity-50 disabled:cursor-not-allowed transition-colors",children:(0,d.jsx)(ar,{className:b?"animate-spin":""})})})})});function at({onNavigate:a}){let b=(0,q.c)("common"),c=(0,i.a)(),{open:e}=(0,ad.V0)(),g=b("settings.title"),h=(0,f.useCallback)(b=>{a(),!c&&(0!==b.button||b.metaKey||b.ctrlKey||b.shiftKey||b.altKey||(b.preventDefault(),e()))},[c,a,e]);return(0,d.jsx)(I.m_,{content:g,placement:"top",className:"flex-shrink-0",children:(0,d.jsx)(p,{href:"/more","data-testid":"sidebar-settings","aria-label":g,"aria-haspopup":c?void 0:"dialog",onClick:h,className:"p-1.5 rounded-md text-sidebar-muted hover:text-sidebar-foreground hover:bg-sidebar-hover focus:outline-none focus:ring-2 focus:ring-ring transition-colors",children:(0,d.jsx)(u.A,{size:20,"aria-hidden":"true"})})})}var au=c(15917),av=c(88285),aw=c(97950),ax=c(8509);function ay(){let a=(0,h.pT)(),b=(0,q.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,af.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:af.EN.map(a=>(0,d.jsx)("option",{value:a,children:b(`repoTabBar.mode.${a}`)},a))})]})}var az=c(38557);function aA(){let{shouldSurface:a,isReconnecting:b}=(0,az.Fx)(),c=(0,q.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 aB=c(60957),aC=c(85647),aD=c(64632);let aE=[{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"),opensSettings:!0}];function aF({title:a="CommandMate"}){let b=(0,e.usePathname)(),c=(0,q.c)("commandPalette"),f=(0,q.c)("common"),{setOpen:h}=(0,aD.C)(),[i,j]=g().useState(null),{open:k}=(0,ad.V0)(),l=g().useCallback(a=>{0!==a.button||a.metaKey||a.ctrlKey||a.shiftKey||a.altKey||(a.preventDefault(),k())},[k]);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)(p,{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)(au.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:[aE.map(a=>{let c=a.isActive(b);return(0,d.jsx)(p,{href:a.href,"aria-current":c?"page":void 0,"aria-haspopup":a.opensSettings?"dialog":void 0,onClick:a.opensSettings?l: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:f(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)(av.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)(aC.u,{children:i}),(0,d.jsx)(aC.u,{children:"K"})]})]}),(0,d.jsx)(aA,{}),(0,d.jsx)(ax.g,{}),(0,d.jsx)(ay,{}),(0,d.jsx)(aB.H,{}),(0,d.jsx)(Z,{}),(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)(aw.A,{size:20,strokeWidth:2,"aria-hidden":"true"}),(0,d.jsx)("span",{children:"GitHub"})]})]})]})})})}var aG=c(38882),aH=c(72280),aI=c(52120),aJ=c(11010);let aK=/^\/worktrees\/([^/]+)/;function aL(a,b,c){let d=c-8-b;return d<=8?8:Math.min(Math.max(a.left+b>c-8?a.right-b:a.left,8),d)}function aM(a){a?.scrollIntoView?.({block:"nearest",inline:"nearest"})}let aN=(0,f.memo)(function(){let a=(0,q.c)("common"),b=(0,e.usePathname)(),c=(0,o.Hq)(),{sortKey:g,sortDirection:i,repositoryOrder:j}=(0,h.VF)(),{worktrees:k,repositories:m,selectedWorktreeId:n,selectWorktree:p}=(0,y.$f)(),{factor:r}=(0,l.Ps)(),s=(0,f.useMemo)(()=>(0,af.UZ)(m??[]),[m]),t=(0,f.useMemo)(()=>(0,af.s6)(k??[],s),[k,s]),{groupedItems:u}=ag({items:(0,f.useMemo)(()=>t.map(B.XK),[t]),sortKey:g,sortDirection:i,viewMode:"grouped"}),v=(0,f.useMemo)(()=>(0,af.BN)(u,j),[u,j]),w=function(a,b){let c=aK.exec(a);if(!c)return b;try{return decodeURIComponent(c[1])}catch{return c[1]}}(b,n),x=(0,f.useMemo)(()=>v.find(a=>a.branches.some(a=>a.id===w))?.repositoryName??null,[v,w]),[z,A]=(0,f.useState)(null),[C,D]=(0,f.useState)(null),[E,F]=(0,f.useState)(!1),G=(0,f.useRef)(null),H=(0,f.useRef)(null),I=(0,f.useRef)(new Map),J=(0,f.useCallback)((a,b)=>{b?I.current.set(a,b):I.current.delete(a)},[]),K=(0,f.useCallback)(()=>{A(null),D(null),F(!1)},[]),L=(0,f.useCallback)(a=>{let b=I.current.get(a);if(!b)return;let c=b.getBoundingClientRect();D({left:c.left,right:c.right,bottom:c.bottom}),A(a),F(!1)},[]),M=(0,f.useCallback)(a=>{if(z===a)return void K();L(a)},[z,K,L]),[N,O]=(0,f.useState)(!1),P=(0,f.useCallback)(()=>{let a=G.current;a&&O(a.scrollWidth>a.clientWidth+1)},[]);(0,f.useLayoutEffect)(()=>{P()},[P,v.length,r]),(0,f.useEffect)(()=>{},[P]);let Q=null!==z||E;(0,f.useEffect)(()=>{if(!Q)return;let a=a=>{let b=a.target;!(!b||G.current?.contains(b)||H.current?.contains(b))&&(b.closest?.("[data-repository-tab-panel]")||K())},b=a=>{if("Escape"!==a.key)return;let b=z?I.current.get(z):H.current;K(),b?.focus()};return document.addEventListener("mousedown",a),document.addEventListener("keydown",b),()=>{document.removeEventListener("mousedown",a),document.removeEventListener("keydown",b)}},[Q,z,K]),(0,f.useEffect)(()=>{K()},[b,K]),(0,f.useLayoutEffect)(()=>{x&&aM(I.current.get(x))},[x,b,N]);let R=(0,f.useCallback)(a=>{K(),p(a),c.push(`/worktrees/${a}`)},[K,p,c]),S=(0,f.useCallback)(a=>{let b=I.current.get(a);aM(b),L(a),b?.focus()},[L]),T=(0,f.useCallback)(a=>{var b;let c=a.currentTarget,d=(b=c.clientWidth,a.ctrlKey||a.shiftKey||Math.abs(a.deltaY)<=Math.abs(a.deltaX)?0:1===a.deltaMode?40*a.deltaY:2===a.deltaMode?a.deltaY*b:a.deltaY);0!==d&&(c.scrollLeft+=d)},[]);if(0===v.length)return null;let U=Math.round(32*r),V=v.find(a=>a.repositoryName===z)??null;return(0,d.jsxs)("div",{"data-testid":"repository-tab-bar",className:"relative flex-shrink-0 flex items-stretch border-b border-border bg-surface",style:{height:`${U}px`},children:[(0,d.jsx)("nav",{ref:G,"data-testid":"repository-tab-strip","aria-label":a("nav.repositories"),onWheel:T,className:"flex min-w-0 flex-1 flex-nowrap items-stretch overflow-x-auto overflow-y-hidden scrollbar-hide",children:v.map(a=>(0,d.jsx)(aO,{group:a,isActive:a.repositoryName===x,isOpen:a.repositoryName===z,registerTab:J,onToggle:M},a.repositoryName))}),N&&(0,d.jsx)("button",{ref:H,type:"button","data-testid":"repository-tab-overflow","aria-haspopup":"menu","aria-expanded":E,"aria-label":a("repoTabBar.overflow"),title:a("repoTabBar.overflow"),onClick:()=>{A(null),D(null),F(a=>!a)},className:"flex-shrink-0 flex items-center border-l border-border px-2 text-muted-foreground transition-colors hover:bg-surface-2 hover:text-foreground focus:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-ring",children:(0,d.jsx)(aG.A,{size:16,strokeWidth:2,"aria-hidden":"true"})}),V&&C&&(0,d.jsx)(aP,{group:V,anchor:C,factor:r,activeWorktreeId:w,onBranchClick:R}),E&&(0,d.jsx)(aQ,{groups:v,anchorRef:H,activeRepositoryName:x,onSelect:S})]})}),aO=(0,f.memo)(function({group:a,isActive:b,isOpen:c,registerTab:e,onToggle:f}){let g=(0,q.c)("common"),h=(0,af.zD)(a.branches),i=(0,af.j)(a.branches),j=g(aI.PL[h].labelKey);return(0,d.jsxs)("button",{ref:b=>e(a.repositoryName,b),type:"button","data-testid":"repository-tab","data-repository":a.repositoryName,"aria-haspopup":"menu","aria-expanded":c,"aria-current":b?"true":void 0,title:`${a.repositoryName} — ${j}`,onClick:()=>f(a.repositoryName),onKeyDown:b=>{"ArrowDown"===b.key&&(b.preventDefault(),c||f(a.repositoryName))},className:`
|
|
12
|
-
group/tab flex-shrink-0 flex max-w-[14rem] items-center gap-1.5 px-2.5
|
|
13
|
-
border-b-2 text-xs font-medium transition-colors
|
|
14
|
-
focus:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-ring
|
|
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)(aH.n,{className:"h-3.5 w-3.5",color:(0,af.LV)(a.repositoryName)}),(0,d.jsx)("span",{className:"min-w-0 truncate",children:a.repositoryName}),(0,d.jsx)(C.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 aP({group:a,anchor:b,factor:c,activeWorktreeId:e,onBranchClick:g}){let h=(0,q.c)("common"),i=(0,f.useRef)(null);if("undefined"==typeof document)return null;let j=Math.round(300*c);return A().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:aL(b,j,j),width:j,zIndex:aJ.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)(G,{branch:a,isSelected:a.id===e,onClick:()=>g(a.id),showRepositoryName:!1},a.id))})}),document.body)}function aQ({groups:a,anchorRef:b,activeRepositoryName:c,onSelect:e}){let f=(0,q.c)("common"),g=b.current?.getBoundingClientRect();return"undefined"!=typeof document&&g?A().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:aL({left:g.left,right:g.right,bottom:g.bottom},300,300),width:300,maxHeight:"520px",zIndex:aJ.M.POPOVER},children:(0,d.jsx)("div",{className:"overflow-y-auto py-1",style:{maxHeight:"inherit"},children:a.map(a=>{let b=(0,af.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)(aH.n,{className:"h-3.5 w-3.5",color:(0,af.LV)(a.repositoryName)}),(0,d.jsx)("span",{className:"min-w-0 flex-1 truncate",children:a.repositoryName}),(0,d.jsx)(C.m,{status:b,size:"sm",label:f(aI.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 aR=c(6130);function aS({count:a}){let b=(0,q.c)("common");return 0===a?null:(0,d.jsx)("span",{"data-testid":"attention-badge-bubble",role:"status","aria-label":b("attention.badgeLabel",{count:a}),className:"absolute -top-1.5 -right-2.5 min-w-[1.05rem] rounded-full bg-warning-foreground px-1 text-[0.625rem] font-bold leading-[1.05rem] text-warning-subtle tabular-nums text-center",children:a>99?"99+":a})}let aT=[{labelKey:"nav.sessions",href:"/sessions",isActive:a=>a.startsWith("/sessions"),icon:(0,d.jsx)(s.A,{size:20,"aria-hidden":"true"})},{labelKey:"nav.review",href:"/review",isActive:a=>a.startsWith("/review"),icon:(0,d.jsx)(t.A,{size:20,"aria-hidden":"true"}),showsAttentionBadge:!0},{labelKey:"nav.more",href:"/more",isActive:a=>a.startsWith("/more"),icon:(0,d.jsx)(aG.A,{size:20,"aria-hidden":"true"})}];function aU(){let a=(0,e.usePathname)(),{setOpen:b}=(0,aD.C)(),c=(0,q.c)("commandPalette"),f=(0,q.c)("common"),{count:g}=(0,ac.Lv)(),i=(0,h.pT)();return i?.isMobileDrawerOpen?null:(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:[i&&(0,d.jsxs)("button",{type:"button","data-testid":"mobile-nav-open-sidebar",onClick:i.openMobileDrawer,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)(aR.A,{size:20,"aria-hidden":"true"}),(0,d.jsx)("span",{className:"mt-1 whitespace-nowrap",children:f("sidebar.branches")})]}),aT.map(b=>{let c=b.isActive(a),e=!0===b.showsAttentionBadge&&g>0;return(0,d.jsxs)(p,{href:e?ab.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)(aS,{count:g})]}),(0,d.jsx)("span",{className:"mt-1 whitespace-nowrap",children:f(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)(av.A,{size:20,"aria-hidden":"true"}),(0,d.jsx)("span",{className:"mt-1 whitespace-nowrap",children:c("mobileLabel")})]})]})})}function aV(){let{shouldSurface:a,isReconnecting:b}=(0,az.Fx)(),c=(0,q.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 aW=c(76047),aX=c(98033),aY=c(89184);let aZ=["global","terminal","composer","editor"],a$=[{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 a_(){let{open:a,setOpen:b}=(0,aY.K)(),{open:c}=(0,aD.C)(),e=(0,q.c)("keyboardShortcuts"),[g,h]=(0,f.useState)(!1);(0,f.useRef)(a),(0,f.useRef)(c);let i=function(a=a$){return aZ.map(b=>({scope:b,shortcuts:a.filter(a=>a.scope===b)})).filter(a=>a.shortcuts.length>0)}();return(0,d.jsx)(aX.a,{isOpen:a,onClose:()=>b(!1),title:e("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:e(`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:e(`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)(aC.u,{children:"MOD"===a?g?"⌘":"Ctrl":a},b))})]},a.id))})]},a))})})}var a0=c(18608),a1=c(55992),a2=c(94260);let a3=[{key:"added",labelKey:"whatsNew.added"},{key:"improved",labelKey:"whatsNew.improved"},{key:"fixed",labelKey:"whatsNew.fixed"}];function a4(){let a=(0,q.c)("common"),b=(0,a1.Ym)(),[c,e]=(0,f.useState)(null),[g,h]=(0,f.useState)(!1),i=(0,f.useCallback)(()=>{c&&function(a){try{window.localStorage.setItem("commandmate.lastSeenAppVersion",a)}catch{}}(c.to),h(!1)},[c]);if(!c)return null;let j="ja"===b?"ja":"en";return(0,d.jsx)(aX.a,{isOpen:g,onClose:i,title:a("whatsNew.title",{from:c.from,to:c.to}),size:"md",children:(0,d.jsxs)("div",{className:"space-y-4","data-testid":"whats-new-dialog",children:[0===c.notes.length?(0,d.jsx)("p",{className:"text-sm text-foreground","data-testid":"whats-new-empty",children:a("whatsNew.empty")}):c.notes.map(b=>(0,d.jsxs)("section",{className:"space-y-3","data-testid":`whats-new-version-${b.version}`,children:[(0,d.jsxs)("h4",{className:"text-sm font-semibold text-foreground",children:["v",b.version,(0,d.jsx)("span",{className:"ml-2 text-xs font-normal text-muted-foreground",children:b.date})]}),b.highlight&&(0,d.jsxs)("div",{"data-testid":"whats-new-highlight",children:[(0,d.jsx)("h5",{className:"text-xs font-medium text-muted-foreground",children:a("whatsNew.highlight")}),(0,d.jsx)("p",{className:"mt-1 text-sm text-foreground",children:b.highlight[j]})]}),a3.map(({key:c,labelKey:e})=>b[c].length>0?(0,d.jsxs)("div",{"data-testid":`whats-new-${c}`,children:[(0,d.jsx)("h5",{className:"text-xs font-medium text-muted-foreground",children:a(e)}),(0,d.jsx)("ul",{className:"mt-1 list-disc space-y-1 pl-5 text-sm text-foreground",children:b[c].map((a,b)=>(0,d.jsx)("li",{children:a[j]},b))})]},c):null)]},b.version)),(0,d.jsxs)("div",{className:"flex items-center justify-between gap-3 border-t border-border pt-3",children:[(0,d.jsx)("a",{href:`https://github.com/Kewton/CommandMate/releases/tag/v${c.to}`,target:"_blank",rel:"noopener noreferrer",className:"text-sm text-accent-600 dark:text-accent-400 hover:underline","data-testid":"whats-new-release-link",children:a("whatsNew.releaseLink")}),(0,d.jsx)(a2.$,{type:"button",variant:"primary",size:"sm",onClick:i,"data-testid":"whats-new-close",children:a("whatsNew.close")})]})]})})}let a5="transform transition-transform duration-300 ease-out",a6=(0,f.memo)(function({children:a}){let{isOpen:b,isMobileDrawerOpen:c,closeMobileDrawer:g,width:m,setWidth:n,repoTabBarMode:o}=(0,h.VF)(),p=(0,i.a)(),{showSidebar:q,showGlobalNav:r}=function(){var a=(0,e.usePathname)();for(let b of k)if(a.startsWith(b.prefix))return{...j,...b.config};return{...j}}(),{factor:s}=(0,l.Ps)(),t=Math.round(160*s),u=Math.round(480*s),v=Math.round(Math.min(u,Math.max(t,m*s))),w=(0,af.fs)(o??af.PB,b),x=Math.round(32*s)+64*!!r,y=w?{top:`${x}px`,height:`calc(100vh - ${x}px)`}:{},z=(0,f.useRef)(null),A=(0,f.useRef)(null),B=(0,f.useCallback)(a=>{n(Math.round(a/s))},[n,s]);return p?(0,d.jsxs)("div",{"data-testid":"app-shell",className:"h-screen flex flex-col",children:[(0,d.jsx)(aV,{}),c&&(0,d.jsx)("div",{"data-testid":"drawer-overlay",className:"fixed inset-0 bg-black/50 z-40",onClick:g,"aria-hidden":"true"}),q&&(0,d.jsx)("aside",{"data-testid":"sidebar-container",className:`
|
|
17
|
-
fixed left-0 top-0 h-full w-72 z-50
|
|
18
|
-
${a5}
|
|
19
|
-
${c?"translate-x-0":"-translate-x-full"}
|
|
20
|
-
`,role:"complementary",children:(0,d.jsx)(ai,{})}),(0,d.jsx)("main",{className:`flex-1 min-h-0 overflow-hidden ${r?"pb-nav-safe":""}`,role:"main","data-view-transition":"content",children:a}),r&&(0,d.jsx)(aU,{}),(0,d.jsx)(aW.xq,{}),(0,d.jsx)(a_,{}),(0,d.jsx)(a0.n,{}),(0,d.jsx)(a4,{})]}):(0,d.jsxs)("div",{"data-testid":"app-shell",className:"h-screen flex flex-col",children:[w&&(0,d.jsx)(aN,{}),r&&(0,d.jsx)(aF,{}),(0,d.jsxs)("div",{className:"flex flex-1 min-h-0",children:[q&&(0,d.jsxs)("aside",{ref:z,"data-testid":"sidebar-container",className:`
|
|
21
|
-
fixed left-0
|
|
22
|
-
${r?"top-16 h-[calc(100vh-4rem)]":"top-0 h-full"}
|
|
23
|
-
border-r border-border
|
|
24
|
-
${a5}
|
|
25
|
-
${b?"translate-x-0":"-translate-x-full"}
|
|
26
|
-
`,style:{width:`${v}px`,zIndex:aJ.M.SIDEBAR,...y},role:"complementary","aria-hidden":!b,children:[(0,d.jsx)(ai,{}),(0,d.jsx)(a7,{currentWidth:v,minWidth:t,maxWidth:u,sidebarRef:z,mainRef:A,onWidthChange:B})]}),(0,d.jsx)("main",{ref:A,className:"flex-1 min-w-0 h-full overflow-hidden transition-[padding] duration-300 ease-out",style:{paddingLeft:q&&b?`${v}px`:0},role:"main","data-view-transition":"content",children:a})]}),(0,d.jsx)(aW.xq,{}),(0,d.jsx)(a_,{}),(0,d.jsx)(a0.n,{}),(0,d.jsx)(a4,{})]})});function a7({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"})}let a8=["/login","/offline","/proxy"],a9=/^\/worktrees\/[^/]+\/(terminal|files)(\/|$)/;function ba({children:a}){var b;return(b=(0,e.usePathname)()??"",a8.some(a=>b===a||b.startsWith(`${a}/`))||a9.test(b)||0)?(0,d.jsx)(d.Fragment,{children:a}):(0,d.jsx)(a6,{children:a})}},10290:(a,b,c)=>{"use strict";c.d(b,{Hr:()=>q,Ht:()=>p,SQ:()=>n,_2:()=>o,lp:()=>r,mB:()=>s,rI:()=>l,ty:()=>m});var d=c(21124),e=c(38301),f=c.n(e),g=c(12927),h=c(71613),i=c(90133),j=c(11010),k=c(35595);let l=g.bL,m=g.l9;g.YJ;let n=f().forwardRef(({className:a,sideOffset:b=4,...c},e)=>(0,d.jsx)(g.ZL,{children:(0,d.jsx)(g.UC,{ref:e,sideOffset:b,style:{zIndex:j.M.POPOVER},className:(0,k.cn)("min-w-[8rem] overflow-hidden rounded-md border border-border bg-surface p-1 text-surface-foreground shadow-lg","data-[state=open]:animate-in data-[state=closed]:animate-out","data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0","data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95","data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2","data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",a),...c})}));n.displayName="DropdownMenuContent";let o=f().forwardRef(({className:a,inset:b,...c},e)=>(0,d.jsx)(g.q7,{ref:e,className:(0,k.cn)("relative flex cursor-pointer select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-none","focus:bg-muted focus:text-surface-foreground","data-[disabled]:pointer-events-none data-[disabled]:opacity-50",b&&"pl-8",a),...c}));o.displayName="DropdownMenuItem",f().forwardRef(({className:a,children:b,checked:c,...e},f)=>(0,d.jsxs)(g.H_,{ref:f,checked:c,className:(0,k.cn)("relative flex cursor-pointer select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none","focus:bg-muted focus:text-surface-foreground","data-[disabled]:pointer-events-none data-[disabled]:opacity-50",a),...e,children:[(0,d.jsx)("span",{className:"absolute left-2 flex h-3.5 w-3.5 items-center justify-center",children:(0,d.jsx)(g.VF,{children:(0,d.jsx)(h.A,{size:16,"aria-hidden":"true"})})}),b]})).displayName="DropdownMenuCheckboxItem";let p=f().forwardRef(({className:a,children:b,...c},e)=>(0,d.jsxs)(g.hN,{ref:e,className:(0,k.cn)("relative flex cursor-pointer select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none","focus:bg-muted focus:text-surface-foreground","data-[disabled]:pointer-events-none data-[disabled]:opacity-50",a),...c,children:[(0,d.jsx)("span",{className:"absolute left-2 flex h-3.5 w-3.5 items-center justify-center",children:(0,d.jsx)(g.VF,{children:(0,d.jsx)(i.A,{size:8,className:"fill-current","aria-hidden":"true"})})}),b]}));p.displayName="DropdownMenuRadioItem";let q=g.z6,r=f().forwardRef(({className:a,inset:b,...c},e)=>(0,d.jsx)(g.JU,{ref:e,className:(0,k.cn)("px-2 py-1.5 text-xs font-semibold text-muted-foreground",b&&"pl-8",a),...c}));r.displayName="DropdownMenuLabel";let s=f().forwardRef(({className:a,...b},c)=>(0,d.jsx)(g.wv,{ref:c,className:(0,k.cn)("-mx-1 my-1 h-px bg-border",a),...b}));s.displayName="DropdownMenuSeparator"},11010:(a,b,c)=>{"use strict";c.d(b,{M:()=>d});let d={DROPDOWN:10,SIDEBAR:30,MODAL:50,MAXIMIZED_EDITOR:55,TOAST:60,POPOVER:65,CONTEXT_MENU:70}},12055:(a,b,c)=>{"use strict";c.d(b,{Oo:()=>e,ST:()=>d,T4:()=>h,dz:()=>g,rz:()=>f,zS:()=>i});let d="client_version",e="version_mismatch",f="chat_turn_progress",g="messages_invalidated",h="model_changed";function i(a){let b;try{b=JSON.parse(a)}catch{return null}if(!b||"object"!=typeof b)return null;let c=b;if("broadcast"===c.type){let a=c.data;return a&&"object"==typeof a?"string"!=typeof a.type?null:(void 0===a.worktreeId&&"string"==typeof c.worktreeId&&(a.worktreeId=c.worktreeId),a):null}return"string"==typeof c.type?c:null}},12480:(a,b,c)=>{"use strict";c.d(b,{Uf:()=>f,d8:()=>g,fM:()=>h,of:()=>j,r5:()=>e,rq:()=>i});var d=c(53237);let e="medium",f=["large","medium","small","xsmall"],g={large:{value:"large",rootFontSizePx:18,factor:1.125,terminalFontSize:16},medium:{value:"medium",rootFontSizePx:16,factor:1,terminalFontSize:14},small:{value:"small",rootFontSizePx:14,factor:.875,terminalFontSize:12},xsmall:{value:"xsmall",rootFontSizePx:12.5,factor:.78,terminalFontSize:11}};function h(a){return"string"==typeof a&&Object.prototype.hasOwnProperty.call(g,a)}function i(a){return g[a].terminalFontSize}function j(){let{value:a,setValue:b,isAvailable:c}=(0,d.V)({key:"mcbd-pc-display-size",defaultValue:e,validate:h});return{size:a,setSize:b,isAvailable:c}}},16730:(a,b,c)=>{"use strict";c.d(b,{BV:()=>n,Ct:()=>g,Hi:()=>d,K3:()=>e,PS:()=>l,SR:()=>f,T2:()=>j,Z3:()=>m,nk:()=>k});let d=0,e=8e3,f=2,g=2e4,h=[408,425,429,500,502,503,504],i=["GET","HEAD","OPTIONS"],j=3e4;function k(a){let b=(a??"GET").toUpperCase();return i.includes(b)}function l(a){return h.includes(a)}function m(a){return k(a)?1e4:3e4}function n(a,b=Math.random()){let c=Number.isFinite(a)&&a>0?Math.floor(a):0,d=Math.min(500*2**c,4e3);return Math.max(0,Math.round(d+.25*d*(2*b-1)))}},17252:(a,b,c)=>{"use strict";c.d(b,{Ab:()=>e,NL:()=>q,O6:()=>n,XH:()=>d,f_:()=>l,hR:()=>j,lu:()=>o,n6:()=>h,oo:()=>k,pQ:()=>f,sw:()=>m,vz:()=>p});let d=["claude","codex","gemini","vibe-local","opencode","copilot","antigravity","command-code"],e=10,f=50,g=/^[a-zA-Z0-9_-]+$/;function h(a){return"string"==typeof a&&a.length>0&&a.length<=64&&g.test(a)}let i={claude:"Claude",codex:"Codex",gemini:"Gemini","vibe-local":"Vibe Local",opencode:"OpenCode",copilot:"Copilot",antigravity:"Antigravity","command-code":"Command Code"};function j(a){return d.includes(a)}function k(a){return i[a]??a}function l(a,b="Assistant"){return a&&j(a)?k(a):b}function m(a){let b=a.alias;return"string"==typeof b&&b.trim().length>0?b:k(a.cliTool)}function n(a,b,c){let d=a.find(a=>a.id===b);return d?m(d):k(c)}function o(a){return a.map((a,b)=>({id:a,cliTool:a,alias:k(a),order:b}))}let p=128,q=2097152},17793:(a,b,c)=>{"use strict";c.d(b,{y:()=>h});var d=c(21124);c(38301);var e=c(35595);let f={xs:"h-3 w-3",sm:"h-4 w-4",md:"h-5 w-5",lg:"h-6 w-6",xl:"h-8 w-8"},g={current:"",accent:"text-accent-600 dark:text-accent-400",muted:"text-muted-foreground"};function h({size:a="md",variant:b="current",className:c,...h}){return(0,d.jsxs)("svg",{className:(0,e.cn)("animate-spin",f[a],g[b],c),xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","aria-hidden":"true",...h,children:[(0,d.jsx)("circle",{className:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"4"}),(0,d.jsx)("path",{className:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"})]})}},18608:(a,b,c)=>{"use strict";c.d(b,{W:()=>q,n:()=>r});var d=c(21124),e=c(38301),f=c(20481),g=c(16945),h=c(25345),i=c(47089),j=c(11010),k=c(74930),l=c(12055);let m=new Set;function n(a){return m.add(a),()=>{m.delete(a)}}function o(){return!1}function p(){return!1}function q(){return(0,e.useSyncExternalStore)(n,o,p)}function r(){let a=(0,f.c)("common"),[b,c]=(0,e.useState)(null),[m,n]=(0,e.useState)(null),o=(0,e.useCallback)(a=>{if(a.type!==l.Oo)return;let{serverVersion:b,clientVersion:d}=a;"string"==typeof b&&"string"==typeof d&&b&&d&&b!==m&&c({serverVersion:b,clientVersion:d})},[m]);(0,k.T3)(o);let p=(0,e.useCallback)(()=>{window.location.reload()},[]),q=(0,e.useCallback)(()=>{c(a=>(a&&n(a.serverVersion),null))},[]);return b?(0,d.jsxs)("div",{"data-testid":"version-mismatch-banner",role:"alert","aria-live":"assertive",className:"fixed top-3 left-1/2 -translate-x-1/2 flex items-start gap-3 max-w-[92vw] rounded-lg border border-warning-border bg-warning-subtle px-4 py-3 text-warning-foreground shadow-lg",style:{zIndex:j.M.TOAST},children:[(0,d.jsx)(g.A,{className:"h-5 w-5 shrink-0 mt-0.5","aria-hidden":"true"}),(0,d.jsxs)("div",{className:"flex flex-col gap-0.5 text-sm",children:[(0,d.jsx)("span",{className:"font-semibold",children:a("versionMismatch.title")}),(0,d.jsx)("span",{children:a("versionMismatch.description",{serverVersion:b.serverVersion,clientVersion:b.clientVersion})})]}),(0,d.jsxs)("button",{type:"button","data-testid":"version-mismatch-reload",onClick:p,className:"shrink-0 inline-flex items-center gap-1.5 rounded-md border border-warning-border px-3 py-1.5 text-sm font-medium hover:opacity-80 focus:outline-none focus:ring-2 focus:ring-offset-2",children:[(0,d.jsx)(h.A,{className:"h-4 w-4","aria-hidden":"true"}),a("versionMismatch.reload")]}),(0,d.jsx)("button",{type:"button","data-testid":"version-mismatch-dismiss",onClick:q,"aria-label":a("versionMismatch.dismiss"),className:"shrink-0 hover:opacity-70 focus:outline-none focus:ring-2 focus:ring-offset-2",children:(0,d.jsx)(i.A,{className:"h-4 w-4","aria-hidden":"true"})})]}):null}},18913:(a,b,c)=>{var d={"./en/skills.json":[55064,5064],"./ja/skills.json":[20022,22]};function e(a){if(!c.o(d,a))return Promise.resolve().then(()=>{var b=Error("Cannot find module '"+a+"'");throw b.code="MODULE_NOT_FOUND",b});var b=d[a],e=b[0];return c.e(b[1]).then(()=>c.t(e,19))}e.keys=()=>Object.keys(d),e.id=18913,a.exports=e},19463:(a,b,c)=>{"use strict";c.d(b,{Lv:()=>f});var d=c(38301),e=c(63157);function f(){let a=(0,e.rC)(),b=a?.worktrees;return(0,d.useMemo)(()=>{let a=b?b.filter(a=>!0===a.isWaitingForResponse):[];return{count:a.length,worktrees:a}},[b])}},22317:(a,b,c)=>{"use strict";c.d(b,{m:()=>l});var d=c(21124);c(38301);var e=c(20481),f=c(35595);let g={idle:{colorClass:"bg-muted-foreground",labelKey:"status.idle"},ready:{colorClass:"bg-success",labelKey:"status.ready"},running:{colorClass:"bg-success text-success ring-2 ring-success/40",animationClass:"animate-status-glow",labelKey:"status.running"},generating:{colorClass:"bg-success text-success ring-2 ring-success/40",animationClass:"animate-status-glow",labelKey:"status.generating"},waiting:{colorClass:"bg-warning text-warning ring-4 ring-warning/50",animationClass:"animate-status-attention",labelKey:"status.waiting"},error:{colorClass:"bg-danger",labelKey:"status.error"}},h={colorClass:"bg-warning text-warning ring-2 ring-warning/40",animationClass:"animate-status-glow",labelKey:"status.waiting"},i=new Set(["menu","unclassified"]),j={colorClass:"bg-muted-foreground",labelKey:"status.unknown"},k={sm:"w-2 h-2",md:"w-2.5 h-2.5",lg:"w-3 h-3"};function l({status:a,size:b="md",label:c,waitingKind:l,className:m,...n}){let o=(0,e.c)("common"),p=function(a,b){let c=g[a]??j;return"waiting"!==a?c:b&&i.has(b)?h:c}(a,l),q=c??o(p.labelKey);return(0,d.jsx)("span",{className:(0,f.cn)("inline-block flex-shrink-0 rounded-full",k[b],p.colorClass,p.animationClass,m),title:q,"aria-label":q,...n})}},23910:(a,b,c)=>{"use strict";c.d(b,{Y:()=>l,y2:()=>k});var d=c(21124),e=c(38301),f=c(20481),g=c(78352),h=c(79782);let i=()=>{},j=(0,e.createContext)({updateInfo:null,checking:!1,hasUpdate:!1,canSelfUpdate:!1,state:"idle",logPath:null,errorKey:null,openConfirm:i,cancel:i,confirm:async()=>{}});function k({children:a}){let b=(0,f.c)("worktree"),[c,i]=(0,e.useState)(null),[k,l]=(0,e.useState)(!0),[m,n]=(0,e.useState)("idle"),[o,p]=(0,e.useState)(null),[q,r]=(0,e.useState)(null),s=(0,e.useRef)("idle");(0,e.useRef)(!1);let t=c?.hasUpdate===!0,u=c?.installType==="global"||c?.installType==="npx",v=(0,e.useCallback)(()=>{t&&u&&n(a=>"idle"===a?"confirming":a)},[t,u]),w=(0,e.useCallback)(()=>{n(a=>"confirming"===a?"idle":a)},[]),x=(0,e.useCallback)(async()=>{if("confirming"===s.current){s.current="starting",n("starting");try{let a=await g.GQ.startUpdate();p(a.logPath),n(a.willRestart?"updating":"no-restart")}catch(a){a instanceof g.hD&&400===a.status?r("update.errorNotGlobal"):a instanceof g.hD&&409===a.status?r("update.errorInProgress"):r("update.errorGeneric"),n("error")}}},[]),y=(0,e.useMemo)(()=>({updateInfo:c,checking:k,hasUpdate:t,canSelfUpdate:u,state:m,logPath:o,errorKey:q,openConfirm:v,cancel:w,confirm:x}),[c,k,t,u,m,o,q,v,w,x]);return(0,d.jsxs)(j.Provider,{value:y,children:[a,(0,d.jsx)(h.TM,{isOpen:"confirming"===m,title:b("update.confirmTitle"),description:b("update.confirmDescription",{version:c?.latestVersion??""}),confirmLabel:b("update.confirmButton"),onConfirm:()=>{x()},onCancel:w})]})}function l(){return(0,e.useContext)(j)}},25754:(a,b,c)=>{"use strict";c.d(b,{Xn:()=>e,d9:()=>g,dI:()=>d,gB:()=>f,rv:()=>h});let d=["en","ja"],e="en",f="locale";function g(a){return"string"==typeof a&&d.includes(a)}function h(a,b){return g(a)?a:d.find(a=>(b??"").includes(a))??e}},29966:(a,b,c)=>{"use strict";c.d(b,{AppShellGate:()=>e});var d=c(97954);(0,d.registerClientReference)(function(){throw Error("Attempted to call SHELL_EXCLUDED_PREFIXES() from the server but SHELL_EXCLUDED_PREFIXES is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/CommandMate/CommandMate/src/components/layout/AppShellGate.tsx","SHELL_EXCLUDED_PREFIXES"),(0,d.registerClientReference)(function(){throw Error("Attempted to call SHELL_EXCLUDED_WORKTREE_SUBPATHS() from the server but SHELL_EXCLUDED_WORKTREE_SUBPATHS is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/CommandMate/CommandMate/src/components/layout/AppShellGate.tsx","SHELL_EXCLUDED_WORKTREE_SUBPATHS"),(0,d.registerClientReference)(function(){throw Error("Attempted to call shouldRenderShell() from the server but shouldRenderShell is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/CommandMate/CommandMate/src/components/layout/AppShellGate.tsx","shouldRenderShell");let e=(0,d.registerClientReference)(function(){throw Error("Attempted to call AppShellGate() from the server but AppShellGate is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/CommandMate/CommandMate/src/components/layout/AppShellGate.tsx","AppShellGate")},30430:(a,b,c)=>{"use strict";c.d(b,{j:()=>i,p:()=>j});var d=c(21124),e=c(38301),f=c.n(e),g=c(26691),h=c(35595);let i=(0,g.F)("flex w-full rounded-md border border-input bg-surface dark:bg-surface-2 text-surface-foreground shadow-sm placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:border-ring disabled:cursor-not-allowed disabled:opacity-50",{variants:{inputSize:{sm:"h-8 px-2.5 py-1 text-sm",md:"px-3 py-2 text-sm",lg:"px-4 py-2.5 text-base"}},defaultVariants:{inputSize:"md"}}),j=f().forwardRef(({className:a,inputSize:b,type:c="text",...e},f)=>(0,d.jsx)("input",{ref:f,type:c,className:(0,h.cn)(i({inputSize:b}),a),...e}));j.displayName="Input"},31210:(a,b,c)=>{"use strict";c.d(b,{Wu:()=>k,ZB:()=>j,Zp:()=>h,aR:()=>i});var d=c(21124);c(38301);var e=c(26691),f=c(35595);let g=(0,e.F)("bg-surface text-surface-foreground rounded-lg border border-border shadow-sm",{variants:{variant:{default:"",elevated:"bg-gradient-to-b from-surface to-surface-2 shadow-md",interactive:"cursor-pointer transition-all duration-200 hover:border-accent-500 hover:shadow-md motion-safe:hover:-translate-y-0.5 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:border-accent-500 focus-visible:shadow-md motion-safe:focus-visible:-translate-y-0.5"},hover:{true:"transition-shadow duration-200 hover:shadow-md",false:""},interactive:{true:"cursor-pointer transition-all duration-200 hover:shadow-lg active:shadow-md motion-safe:hover:-translate-y-0.5 motion-safe:active:translate-y-0",false:""},padding:{none:"",sm:"p-3",md:"p-4",lg:"p-6"}},defaultVariants:{variant:"default",hover:!1,interactive:!1,padding:"md"}});function h({variant:a="default",hover:b=!1,interactive:c=!1,padding:e="md",className:h="",children:i,...j}){return(0,d.jsx)("div",{className:(0,f.cn)(g({variant:a,hover:b,interactive:c,padding:e}),h),...j,children:i})}function i({className:a="",children:b,...c}){return(0,d.jsx)("div",{className:(0,f.cn)("mb-3",a),...c,children:b})}function j({className:a="",children:b,...c}){return(0,d.jsx)("h3",{className:(0,f.cn)("text-lg font-semibold text-surface-foreground",a),...c,children:b})}function k({className:a="",children:b,...c}){return(0,d.jsx)("div",{className:(0,f.cn)(a),...c,children:b})}},32482:(a,b,c)=>{"use strict";c.d(b,{$m:()=>h,BN:()=>F,EN:()=>i,EY:()=>B,Ii:()=>z,Kp:()=>y,LV:()=>p,PB:()=>k,Si:()=>f,UB:()=>x,UZ:()=>n,Xn:()=>v,ZC:()=>E,ZD:()=>D,_s:()=>w,fs:()=>G,j:()=>u,m3:()=>j,nO:()=>q,s6:()=>o,zD:()=>t});var d=c(89877);let e=["updatedAt","repositoryName","branchName","status","lastSent"],f=a=>e.includes(a),g=["grouped","flat","sessions"],h=a=>g.includes(a),i=["always","collapsed","hidden"],j=a=>i.includes(a),k="collapsed",l={waiting:0,ready:1,running:2,generating:3,idle:4},m=["waiting","running","generating","ready","idle"];function n(a){let b=new Set;for(let c of a)!1===c.visible&&b.add(c.path);return b}function o(a,b){return 0===b.size?a.slice():a.filter(a=>{let c=a.repositoryPath;return!c||!b.has(c)})}function p(a){let b=function(a){let b=5381;for(let c=0;c<a.length;c++)b=(b<<5)+b+a.charCodeAt(c)|0;return Math.abs(b)}(a)%360;return`hsl(${b}, 65%, 60%)`}function q(a,b){if(!a&&!b)return 0;if(!a)return 1;if(!b)return -1;let c=a instanceof Date?a.getTime():new Date(a).getTime();return(b instanceof Date?b.getTime():new Date(b).getTime())-c}function r(a){return a.cliStatus&&Object.keys(a.cliStatus).length>0?(0,d.A7)(a.cliStatus):a.status}function s(a){return"waiting"===r(a)}function t(a){let b=new Set(a.map(r));for(let a of m)if(b.has(a))return a;return"idle"}function u(a){let b=0;for(let c of a)s(c)&&b++;return b}function v(a,b,c){let d=[...a],e="status"!==b;return d.sort((a,d)=>{if(e){let b=Number(s(d))-Number(s(a));if(0!==b)return b}let f=0;switch(b){case"updatedAt":{let b=a=>a?a instanceof Date?a.getTime():new Date(a).getTime():0,c=b(a.lastActivity);f=b(d.lastActivity)-c;break}case"repositoryName":{let b=a.repositoryName.toLowerCase(),c=d.repositoryName.toLowerCase();f=b.localeCompare(c);break}case"branchName":{let b=a.name.toLowerCase(),c=d.name.toLowerCase();f=b.localeCompare(c);break}case"status":f=l[a.status]-l[d.status];break;case"lastSent":{let b=q(a.lastActivity,d.lastActivity);if(!a.lastActivity&&!d.lastActivity){f=0;break}if(!a.lastActivity)return 1;if(!d.lastActivity)return -1;f=b;break}default:f=0}return("updatedAt"===b||"lastSent"===b?"desc"===c:"asc"===c)?f:-f}),d}function w(a,b,c){let d=new Map;for(let b of a){let a=b.repositoryName;d.has(a)||d.set(a,[]),d.get(a).push(b)}return[...d.keys()].sort((a,b)=>a.toLowerCase().localeCompare(b.toLowerCase())).map(a=>({repositoryName:a,branches:v(d.get(a),b,c)}))}function x(a){let b=[];for(let c of a){let a=new Set(c.exitedInstanceIds??[]);for(let[d,e]of Object.entries(c.cliStatus??{}))b.push({key:`${c.id}:${d}`,worktreeId:c.id,instanceId:d,label:c.cliStatusLabels?.[d]??d,status:e??"idle",branchName:c.name,repositoryName:c.repositoryName,lastActivity:c.lastActivity,exited:a.has(d)})}return b}let y="instance";function z(a){return`/worktrees/${a.worktreeId}?${y}=${encodeURIComponent(a.instanceId)}`}function A(a){return a.lastActivity?a.lastActivity instanceof Date?a.lastActivity.getTime():new Date(a.lastActivity).getTime():0}function B(a,b,c){let d="asc"===c?1:-1;return a.slice().sort((a,c)=>{let e=l[a.status]-l[c.status];if("status"===b)return 0!==e?e*d:A(c)-A(a);if(0!==e)return e;switch(b){case"updatedAt":case"lastSent":return(A(a)-A(c))*d;case"repositoryName":return a.repositoryName.toLowerCase().localeCompare(c.repositoryName.toLowerCase())*d;case"branchName":return a.branchName.toLowerCase().localeCompare(c.branchName.toLowerCase())*d;default:return 0}})}let C=null;function D(){return C??[]}function E(a){C=a}function F(a,b){if(0===b.length)return a.slice();let c=new Map(b.map((a,b)=>[a,b]));return a.slice().sort((a,b)=>{let d=c.has(a.repositoryName)?c.get(a.repositoryName):1/0,e=c.has(b.repositoryName)?c.get(b.repositoryName):1/0;return d===e?a.repositoryName.localeCompare(b.repositoryName):d-e})}function G(a,b){return"hidden"!==a&&("always"===a||!b)}},33497:(a,b,c)=>{Promise.resolve().then(c.bind(c,29966)),Promise.resolve().then(c.bind(c,58315))},34592:(a,b,c)=>{"use strict";c.d(b,{Xi:()=>l,av:()=>m,j7:()=>k,tU:()=>j});var d=c(21124),e=c(38301),f=c.n(e),g=c(89989),h=c(35595);let i=f().createContext("underline"),j=f().forwardRef(({variant:a="underline",...b},c)=>(0,d.jsx)(i.Provider,{value:a,children:(0,d.jsx)(g.bL,{ref:c,...b})}));j.displayName="Tabs";let k=f().forwardRef(({className:a,...b},c)=>{let e=f().useContext(i);return(0,d.jsx)(g.B8,{ref:c,className:(0,h.cn)("inline-flex items-center","pill"===e?"gap-1 rounded-lg bg-muted p-1":"gap-4 border-b border-border",a),...b})});k.displayName="TabsList";let l=f().forwardRef(({className:a,...b},c)=>{let e=f().useContext(i);return(0,d.jsx)(g.l9,{ref:c,className:(0,h.cn)("inline-flex items-center justify-center whitespace-nowrap text-sm font-medium transition-colors","focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring","disabled:pointer-events-none disabled:opacity-50","pill"===e?"rounded-md px-3 py-1.5 text-muted-foreground data-[state=active]:bg-surface data-[state=active]:text-surface-foreground data-[state=active]:shadow-sm":"-mb-px border-b-2 border-transparent px-1 py-2 text-muted-foreground hover:text-foreground data-[state=active]:border-accent-500 data-[state=active]:text-accent-600",a),...b})});l.displayName="TabsTrigger";let m=f().forwardRef(({className:a,...b},c)=>(0,d.jsx)(g.UC,{ref:c,className:(0,h.cn)("mt-2 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring",a),...b}));m.displayName="TabsContent"},35595:(a,b,c)=>{"use strict";c.d(b,{cn:()=>f});var d=c(43249),e=c(58829);function f(...a){return(0,e.QP)((0,d.$)(a))}},35914:(a,b,c)=>{"use strict";c.d(b,{$7:()=>f,oz:()=>d,tV:()=>e,v9:()=>g});function d(a){if(null==a||"object"!=typeof a)return!1;let{name:b,message:c}=a;return"ChunkLoadError"===b||"string"==typeof c&&(c.includes("Loading chunk")||c.includes("Failed to fetch dynamically imported module"))}function e(a){return"skipped"}function f(a,b){let c=!1,d=null,e=null,f=()=>{d?.(),e?.(),d=null,e=null},g=()=>{c||(c=!0,f(),a())};return d=b.subscribeOnline(()=>{c||b.probe().then(a=>{a&&g()})}),e=b.subscribeReachability(a=>{a&&g()}),()=>{c=!0,f()}}function g(a){return{subscribeOnline:a=>()=>{},subscribeReachability:a.subscribeReachability,probe:a.probe}}},38557:(a,b,c)=>{"use strict";c.d(b,{Fx:()=>o,Rh:()=>n,_X:()=>g,fl:()=>k,nG:()=>m,sV:()=>h});var d=c(38301),e=c(74930);let f="/api/capabilities";function g(a){return!1!==a.browserOnline&&("connected"===a.realtimeStatus||!0===a.serverReachable)}function h(a){return!1===a.browserOnline||!1===a.serverReachable}let i=new Map;async function j(a,b){let c="function"==typeof AbortController?new AbortController:void 0,d=c?setTimeout(()=>c.abort(),b):void 0;try{return await fetch(a,{method:"GET",cache:"no-store",credentials:"same-origin",signal:c?.signal}),!0}catch{return!1}finally{void 0!==d&&clearTimeout(d)}}function k(a=f,b=5e3){if("function"!=typeof fetch)return Promise.resolve(!1);let c=i.get(a);if(c)return c;let d=j(a,b).finally(()=>{i.delete(a)});return i.set(a,d),d}let l=new Set;function m(a){l.forEach(b=>{try{b(a)}catch{}})}function n(a){return l.add(a),()=>{l.delete(a)}}function o(a={}){let{probeUrl:b=f,probeDelayMs:c=1e3,probeIntervalMs:g=15e3,probeTimeoutMs:h=5e3,surfaceDelayMs:i=1500,probe:j=!0}=a,{status:l}=(0,e.xM)(),[m,n]=(0,d.useState)(!0),[p,q]=(0,d.useState)(null),[r,s]=(0,d.useState)(null),t=(0,d.useCallback)(a=>{q(b=>b===a?b:a),a&&s(Date.now())},[]),u=(0,d.useMemo)(()=>({browserOnline:m,realtimeStatus:l,serverReachable:p}),[m,l,p]),v=u.browserOnline?"connected"===u.realtimeStatus?"online":!1===u.serverReachable?"offline":!0===u.serverReachable||"connecting"===u.realtimeStatus?"reconnecting":"offline":"offline",w="online"!==v,x=(0,d.useRef)({url:b,timeoutMs:h});x.current={url:b,timeoutMs:h};let[y,z]=(0,d.useState)(!1),A=(0,d.useCallback)(()=>{if("function"!=typeof fetch)return;let{url:a,timeoutMs:b}=x.current;k(a,b).then(t)},[t]);return(0,d.useMemo)(()=>({status:v,isOnline:"online"===v,isReconnecting:"reconnecting"===v,isOffline:"offline"===v,shouldSurface:w&&y,signals:u,lastReachableAt:r,recheck:A}),[v,w,y,u,r,A])}},38898:(a,b,c)=>{var d={"./en/schedule.json":[95571,5571],"./ja/schedule.json":[26285,6285]};function e(a){if(!c.o(d,a))return Promise.resolve().then(()=>{var b=Error("Cannot find module '"+a+"'");throw b.code="MODULE_NOT_FOUND",b});var b=d[a],e=b[0];return c.e(b[1]).then(()=>c.t(e,19))}e.keys=()=>Object.keys(d),e.id=38898,a.exports=e},39800:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>h});var d=c(21124),e=c(38301),f=c(35914);c(38557);let g={en:{chunkTitle:"Updating to the latest version",chunkDescription:"A newer version of CommandMate is available. Reloading to get the latest update…",offlineTitle:"You're offline",offlineDescription:"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.",offlineWaiting:"Waiting for the connection to come back…",genericTitle:"Something went wrong",genericDescription:"An unexpected error occurred. Please reload the page.",reload:"Reload",retry:"Retry"},ja:{chunkTitle:"最新バージョンに更新しています",chunkDescription:"CommandMate の新しいバージョンが利用可能です。最新の状態にするため再読み込みします…",offlineTitle:"接続が切れています",offlineDescription:"ネットワークに接続できないため、ページの一部を読み込めませんでした。接続が戻り次第、自動でやり直します。",offlineWaiting:"接続の回復を待っています…",genericTitle:"問題が発生しました",genericDescription:"予期しないエラーが発生しました。ページを再読み込みしてください。",reload:"再読み込み",retry:"再試行"}};function h({error:a,reset:b}){let c=(0,f.oz)(a),[h,i]=(0,e.useState)("en"),[j,k]=(0,e.useState)(!1),l=(0,e.useCallback)(()=>{j?b():window.location.reload()},[j,b]),m=g[h],n=j?m.offlineTitle:c?m.chunkTitle:m.genericTitle,o=j?m.offlineDescription:c?m.chunkDescription:m.genericDescription;return(0,d.jsx)("html",{lang:h,style:{colorScheme:"light dark"},children:(0,d.jsxs)("body",{"data-error-kind":j?"chunk-offline":c?"chunk-reload":"unexpected",style:{margin:0,minHeight:"100vh",display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",gap:"1.5rem",padding:"1.5rem",textAlign:"center",background:"Canvas",color:"CanvasText",fontFamily:'system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif'},children:[(0,d.jsxs)("div",{style:{maxWidth:"24rem"},children:[(0,d.jsx)("h1",{style:{fontSize:"1.5rem",fontWeight:600,margin:"0 0 0.5rem"},children:n}),(0,d.jsx)("p",{style:{fontSize:"0.875rem",opacity:.75,margin:0},children:o}),j&&(0,d.jsx)("p",{role:"status","aria-live":"polite",style:{fontSize:"0.75rem",opacity:.6,margin:"0.5rem 0 0"},children:m.offlineWaiting})]}),(0,d.jsx)("button",{type:"button",onClick:l,style:{appearance:"none",cursor:"pointer",borderRadius:"0.5rem",border:"1px solid currentColor",background:"transparent",color:"inherit",padding:"0.5rem 1rem",fontSize:"0.875rem",fontWeight:500},children:j?m.retry:m.reload})]})})}},43084:(a,b,c)=>{"use strict";c.d(b,{k:()=>g});var d=c(75338),e=c(94596);let f=["[animation-delay:0ms]","[animation-delay:150ms]","[animation-delay:300ms]"];function g(){let a=(0,e.A)("common");return(0,d.jsx)("div",{className:"flex w-full h-full min-h-[12rem] items-center justify-center p-8",role:"status","aria-label":a("loadingPage"),"data-testid":"route-loading",children:(0,d.jsx)("div",{className:"flex items-center gap-2","aria-hidden":"true",children:f.map(a=>(0,d.jsx)("span",{className:`h-2.5 w-2.5 rounded-full bg-muted-foreground animate-pulse ${a}`},a))})})}},44164:(a,b,c)=>{Promise.resolve().then(c.bind(c,64182))},46649:(a,b,c)=>{Promise.resolve().then(c.bind(c,9451)),Promise.resolve().then(c.bind(c,80776))},47817:(a,b,c)=>{"use strict";c.d(b,{$f:()=>k,H8:()=>j});var d=c(21124),e=c(38301),f=c(78352);let g=(0,e.createContext)(null),h={selectedWorktreeId:null,worktrees:[],repositories:[],selectedWorktreeDetail:null,isLoading:!0,isLoadingDetail:!1,error:null};function i(a,b){switch(b.type){case"SET_WORKTREES":return{...a,worktrees:b.worktrees,isLoading:!1};case"SET_REPOSITORIES":return{...a,repositories:b.repositories};case"SELECT_WORKTREE":{let c=a.worktrees.find(a=>a.id===b.id)??null;return{...a,selectedWorktreeId:b.id,selectedWorktreeDetail:c??a.selectedWorktreeDetail,isLoadingDetail:null===c}}case"SET_WORKTREE_DETAIL":return{...a,selectedWorktreeDetail:b.detail};case"SET_LOADING":return{...a,isLoading:b.isLoading};case"SET_LOADING_DETAIL":return{...a,isLoadingDetail:b.isLoadingDetail};case"SET_ERROR":return{...a,error:b.error,isLoading:!1};default:return a}}function j({children:a,externalWorktrees:b,externalRepositories:c,externalIsLoading:j,externalError:k,externalRefresh:l}){let m=void 0!==b,[n,o]=(0,e.useReducer)(i,h),p=(0,e.useCallback)(async()=>{if(!m){o({type:"SET_LOADING",isLoading:!0}),o({type:"SET_ERROR",error:null});try{let a=await f.y.getAll();o({type:"SET_WORKTREES",worktrees:a.worktrees}),o({type:"SET_REPOSITORIES",repositories:a.repositories??[]})}catch(a){o({type:"SET_ERROR",error:a instanceof Error?a.message:"Failed to fetch worktrees"})}}},[m]),q=(0,e.useCallback)(async a=>{o({type:"SELECT_WORKTREE",id:a}),o({type:"SET_ERROR",error:null});try{f.y.markAsViewed(a).catch(a=>{console.warn("[WorktreeSelectionContext] Failed to mark as viewed:",a)});let b=await f.y.getById(a);o({type:"SET_WORKTREE_DETAIL",detail:b})}catch(a){o({type:"SET_ERROR",error:a instanceof Error?a.message:"Failed to fetch worktree detail"})}finally{o({type:"SET_LOADING_DETAIL",isLoadingDetail:!1})}},[]),r=(0,e.useCallback)(async()=>{if(m&&l)return void await l();await p()},[m,l,p]),s=m&&void 0!==j?j:n.isLoading,t=m&&k?k.message:null,u={selectedWorktreeId:n.selectedWorktreeId,worktrees:n.worktrees,repositories:n.repositories,selectedWorktreeDetail:n.selectedWorktreeDetail,isLoading:s,isLoadingDetail:n.isLoadingDetail,error:t??n.error,selectWorktree:q,refreshWorktrees:r};return(0,d.jsx)(g.Provider,{value:u,children:a})}function k(){let a=(0,e.useContext)(g);if(!a)throw Error("useWorktreeSelection must be used within a WorktreeSelectionProvider");return a}},48620:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>f});var d=c(75338),e=c(43084);function f(){return(0,d.jsx)(e.k,{})}},51472:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>q,generateMetadata:()=>o,viewport:()=>p});var d=c(75338),e=c(68071),f=c(22513),g=c(42531),h=c(10620),i=c(4986),j=c.n(i),k=c(68034),l=c.n(k),m=c(58315),n=c(29966);async function o(){return{title:{default:"CommandMate",template:"%s | CommandMate"},description:(await (0,e.A)("common"))("meta.description"),appleWebApp:{capable:!0,title:"CommandMate",statusBarStyle:"default"}}}c(61135);let p={themeColor:[{media:"(prefers-color-scheme: light)",color:"#fafafb"},{media:"(prefers-color-scheme: dark)",color:"#0a0c12"}],viewportFit:"cover"};async function q({children:a}){let b=await (0,f.A)(),c=await (0,g.A)(),e=await (0,h.A)();return(0,d.jsx)("html",{lang:b,className:`${j().variable} ${l().variable}`,suppressHydrationWarning:!0,children:(0,d.jsx)("body",{className:"min-h-screen bg-background",children:(0,d.jsx)(m.AppProviders,{locale:b,messages:c,timeZone:e,authEnabled:!!process.env.CM_AUTH_TOKEN_HASH,children:(0,d.jsx)(n.AppShellGate,{children:a})})})})}},51877:(a,b,c)=>{var d={"./en/auth.json":[43440,3440],"./ja/auth.json":[11162,1162]};function e(a){if(!c.o(d,a))return Promise.resolve().then(()=>{var b=Error("Cannot find module '"+a+"'");throw b.code="MODULE_NOT_FOUND",b});var b=d[a],e=b[0];return c.e(b[1]).then(()=>c.t(e,19))}e.keys=()=>Object.keys(d),e.id=51877,a.exports=e},52120:(a,b,c)=>{"use strict";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"}},52130:(a,b,c)=>{Promise.resolve().then(c.bind(c,53523))},52761:(a,b,c)=>{"use strict";c.d(b,{Bo:()=>k,Hq:()=>i});var d=c(21124),e=c(38301),f=c(42378);let g={startTransition:a=>a()},h=(0,e.createContext)(null);function i(){let a=(0,f.useRouter)(),{startTransition:b}=(0,e.useContext)(h)??g;return(0,e.useMemo)(()=>({push:c=>b(()=>a.push(c)),replace:c=>b(()=>a.replace(c))}),[a,b])}function j({onCommit:a}){return(0,f.usePathname)(),(0,e.useRef)(!1),null}function k({children:a}){let b=(0,e.useRef)(null),c=(0,e.useCallback)(()=>{b.current?.()},[]),f=(0,e.useCallback)(a=>{var c;c=()=>new Promise(c=>{let d=!1,e=()=>{d||(d=!0,c())};b.current=e,a(),window.setTimeout(e,500)}),"undefined"==typeof document||"function"!=typeof document.startViewTransition?c():document.startViewTransition(c)},[]),g=(0,e.useMemo)(()=>({startTransition:f}),[f]);return(0,d.jsxs)(h.Provider,{value:g,children:[(0,d.jsx)(j,{onCommit:c}),a]})}},53237:(a,b,c)=>{"use strict";c.d(b,{V:()=>e});var d=c(38301);function e(a){let{key:b,defaultValue:c,validate:e,serialize:f=JSON.stringify,deserialize:g=JSON.parse}=a,h=(0,d.useRef)(c),i=(0,d.useRef)(e),j=(0,d.useRef)(f),k=(0,d.useRef)(g);h.current=c,i.current=e,j.current=f,k.current=g;let[l,m]=(0,d.useState)(!1),[n,o]=(0,d.useState)(c);(0,d.useCallback)(()=>h.current,[b]);let p=(0,d.useCallback)(a=>{},[b]);return{value:n,setValue:(0,d.useCallback)(a=>{o(b=>{let c="function"==typeof a?a(b):a;return p(c),c})},[p]),removeValue:(0,d.useCallback)(()=>{o(h.current)},[b]),isAvailable:l}}},53906:(a,b,c)=>{Promise.resolve().then(c.bind(c,5682))},54834:(a,b,c)=>{Promise.resolve().then(c.t.bind(c,31603,23)),Promise.resolve().then(c.t.bind(c,68495,23)),Promise.resolve().then(c.t.bind(c,75170,23)),Promise.resolve().then(c.t.bind(c,77526,23)),Promise.resolve().then(c.t.bind(c,78922,23)),Promise.resolve().then(c.t.bind(c,29234,23)),Promise.resolve().then(c.t.bind(c,12263,23)),Promise.resolve().then(c.bind(c,82146))},56379:(a,b,c)=>{"use strict";c.d(b,{V:()=>i});var d=c(21124),e=c(20481),f=c(23910),g=c(94260),h=c(17793);function i(){let a=(0,e.c)("worktree"),{updateInfo:b,hasUpdate:c,canSelfUpdate:i,state:j,logPath:k,errorKey:l,openConfirm:m}=(0,f.Y)();if(!b||!c&&"idle"===j)return null;let{latestVersion:n,releaseUrl:o,updateCommand:p,installType:q}=b,r="npx"===q,s=r?"npx commandmate@latest":"commandmate update";return(0,d.jsxs)("div",{className:"bg-accent-50 border border-accent-200 rounded-lg p-3 mt-2",role:"status","aria-label":a("update.available"),"data-testid":"update-notification-banner",children:[(0,d.jsx)("p",{className:"text-sm font-medium text-accent-800 mb-1",children:a("update.available")}),n&&(0,d.jsx)("p",{className:"text-sm text-accent-700 mb-2",children:a("update.latestVersion",{version:n})}),i&&"idle"===j&&(0,d.jsx)(g.$,{variant:"primary",size:"sm",className:"mb-2",onClick:m,"data-testid":"update-now-button",children:a("update.updateNow")}),r&&"idle"===j&&(0,d.jsx)("p",{className:"text-xs text-accent-600 mb-2","data-testid":"update-npx-notice",children:a("update.npxRestartNotice")}),("starting"===j||"updating"===j)&&(0,d.jsxs)("div",{className:"mb-2","data-testid":"update-progress",children:[(0,d.jsxs)("p",{className:"flex items-center text-sm text-accent-800",children:[(0,d.jsx)(h.y,{size:"sm",className:"mr-2"}),a("starting"===j?"update.starting":"update.updating")]}),"updating"===j&&(0,d.jsx)("p",{className:"text-xs text-accent-600 mt-1",children:a("update.updatingHint")})]}),"no-restart"===j&&(0,d.jsxs)("div",{className:"mb-2","data-testid":"update-no-restart",children:[(0,d.jsx)("p",{className:"text-sm font-medium text-accent-800",children:a("update.noRestartTitle")}),(0,d.jsx)("p",{className:"text-xs text-accent-600 mt-1",children:a("update.noRestartDescription")})]}),"timeout"===j&&(0,d.jsxs)("div",{className:"mb-2","data-testid":"update-timeout",children:[(0,d.jsx)("p",{className:"text-sm font-medium text-accent-800",children:a("update.timeoutTitle")}),(0,d.jsx)("p",{className:"text-xs text-accent-600 mt-1",children:a("update.timeoutDescription")}),(0,d.jsx)("code",{className:"block bg-accent-100 rounded px-2 py-1 mt-1 text-xs text-accent-900 font-mono",children:s})]}),"error"===j&&(0,d.jsxs)("div",{className:"mb-2","data-testid":"update-error",children:[(0,d.jsx)("p",{className:"text-sm font-medium text-accent-800",children:a("update.errorTitle")}),(0,d.jsx)("p",{className:"text-xs text-accent-600 mt-1",children:l?a(l):null}),(0,d.jsx)("code",{className:"block bg-accent-100 rounded px-2 py-1 mt-1 text-xs text-accent-900 font-mono",children:s})]}),k&&("no-restart"===j||"timeout"===j)&&(0,d.jsx)("p",{className:"text-xs text-accent-500 mb-2","data-testid":"update-log-hint",children:a("update.logHint",{path:k})}),p&&"global"===q&&"idle"===j&&(0,d.jsxs)("div",{className:"mb-2",children:[(0,d.jsx)("p",{className:"text-xs text-accent-600 mb-1",children:a("update.updateCommand")}),(0,d.jsx)("code",{className:"block bg-accent-100 rounded px-2 py-1 text-xs text-accent-900 font-mono",children:p})]}),o&&(0,d.jsxs)("a",{href:o,target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center text-sm text-accent-600 hover:text-accent-800 underline",children:[a("update.viewRelease"),(0,d.jsx)("span",{className:"ml-1","aria-hidden":"true",children:"→"})]}),(0,d.jsx)("p",{className:"text-xs text-accent-500 mt-2",children:a("update.dataPreserved")})]})}},57482:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>e});var d=c(97523);let e=async a=>[{type:"image/png",sizes:"192x192",url:(0,d.fillMetadataSegment)(".",await a.params,"icon2.png")+"?6e2321fdb8624653"}]},58315:(a,b,c)=>{"use strict";c.d(b,{AppProviders:()=>d});let d=(0,c(97954).registerClientReference)(function(){throw Error("Attempted to call AppProviders() from the server but AppProviders is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/CommandMate/CommandMate/src/components/providers/AppProviders.tsx","AppProviders")},58970:(a,b,c)=>{"use strict";c.d(b,{$B:()=>j,I2:()=>f,LK:()=>h,Ys:()=>i,pX:()=>d,s7:()=>e,tX:()=>g});let d=2e3,e=1500,f=2e3,g=150,h=100,i=200,j=100},60345:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>e});var d=c(97523);let e=async a=>[{type:"image/png",sizes:"96x96",url:(0,d.fillMetadataSegment)(".",await a.params,"icon1.png")+"?901e04bb11e9b7fd"}]},60887:(a,b,c)=>{var d={"./en/review.json":[83346,3346],"./ja/review.json":[49328,9328]};function e(a){if(!c.o(d,a))return Promise.resolve().then(()=>{var b=Error("Cannot find module '"+a+"'");throw b.code="MODULE_NOT_FOUND",b});var b=d[a],e=b[0];return c.e(b[1]).then(()=>c.t(e,19))}e.keys=()=>Object.keys(d),e.id=60887,a.exports=e},60957:(a,b,c)=>{"use strict";c.d(b,{H:()=>m});var d=c(21124),e=c(38301),f=c(20481),g=c(2535),h=c(94260),i=c(98033),j=c(56379),k=c(23910),l=c(90076);function m(){let a=(0,f.c)("worktree"),b=(0,l.a)(),{updateInfo:c,hasUpdate:m,canSelfUpdate:n,state:o,openConfirm:p}=(0,k.Y)(),[q,r]=(0,e.useState)(!1),s=c?.latestVersion??null;if(b||!s||"idle"===o&&!m)return null;let t="starting"===o||"updating"===o,u="no-restart"===o||"timeout"===o||"error"===o,v=a("update.buttonLabel",{version:s});return n||t||u?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)(h.$,{type:"button",variant:"primary",size:"sm",loading:t,onClick:u?()=>r(!0):p,className:"flex-shrink-0 gap-1.5 whitespace-nowrap","aria-label":t?a("update.buttonUpdating"):a("update.buttonAriaLabel",{version:s}),"aria-haspopup":"dialog","aria-busy":t,"data-testid":"app-update-button","data-state":o,children:[!t&&(0,d.jsx)(g.A,{size:16,"aria-hidden":"true"}),(0,d.jsx)("span",{children:t?a("update.buttonUpdating"):v})]}),u&&(0,d.jsx)(i.a,{isOpen:q,onClose:()=>r(!1),title:a("update.statusDialogTitle"),size:"sm",children:(0,d.jsx)(j.V,{})})]}):(0,d.jsxs)("a",{href:c?.releaseUrl??"https://github.com/Kewton/CommandMate/releases/latest",target:"_blank",rel:"noopener noreferrer",className:"inline-flex flex-shrink-0 items-center justify-center gap-1.5 whitespace-nowrap rounded-md px-3 py-1.5 text-sm font-medium bg-accent-600 dark:bg-accent-500 text-white hover:bg-accent-700 dark:hover:bg-accent-600 transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring","aria-label":a("update.buttonReleaseAriaLabel",{version:s}),"data-testid":"app-update-button",children:[(0,d.jsx)(g.A,{size:16,"aria-hidden":"true"}),(0,d.jsx)("span",{children:v})]})}},61118:(a,b,c)=>{var d={"./en/common.json":[73543,3543],"./ja/common.json":[53945,3945]};function e(a){if(!c.o(d,a))return Promise.resolve().then(()=>{var b=Error("Cannot find module '"+a+"'");throw b.code="MODULE_NOT_FOUND",b});var b=d[a],e=b[0];return c.e(b[1]).then(()=>c.t(e,19))}e.keys=()=>Object.keys(d),e.id=61118,a.exports=e},61135:()=>{},61916:(a,b,c)=>{"use strict";c.d(b,{jg:()=>f,kQ:()=>g,mR:()=>j,mS:()=>i,wf:()=>d});let d="terminal",e=new Set(["terminal","chat"]);function f(a){return"string"==typeof a&&e.has(a)}let g={data:null,messageId:null,visible:!1,answering:!1},h={mode:"split",mobileActivePane:"terminal",leftPaneTab:"history",splitRatio:.5,leftPaneCollapsed:!1,activityBar:{active:"files"},historyPane:{visible:!0,width:25,collapsed:!1}},i={type:null,message:null,retryable:!1,retryCount:0};function j(){return{phase:"idle",prompt:{...g},layout:{...h},error:{...i},messages:[],wsConnected:!1}}},62081:(a,b,c)=>{var d={"./en/autoYes.json":[44248,4248],"./ja/autoYes.json":[92534,2534]};function e(a){if(!c.o(d,a))return Promise.resolve().then(()=>{var b=Error("Cannot find module '"+a+"'");throw b.code="MODULE_NOT_FOUND",b});var b=d[a],e=b[0];return c.e(b[1]).then(()=>c.t(e,19))}e.keys=()=>Object.keys(d),e.id=62081,a.exports=e},62197:(a,b,c)=>{"use strict";c.d(b,{NS:()=>h,V0:()=>i});var d=c(21124),e=c(38301);let f=()=>{},g=(0,e.createContext)({isOpen:!1,open:f,close:f});function h({children:a}){let[b,c]=(0,e.useState)(!1),f=(0,e.useCallback)(()=>c(!0),[]),h=(0,e.useCallback)(()=>c(!1),[]),i=(0,e.useMemo)(()=>({isOpen:b,open:f,close:h}),[b,f,h]);return(0,d.jsx)(g.Provider,{value:i,children:a})}function i(){return(0,e.useContext)(g)}},63157:(a,b,c)=>{"use strict";c.d(b,{g7:()=>k,rC:()=>m,Fn:()=>l});var d=c(21124),e=c(38301),f=c(78352),g=c(74930);let h=[2e3,5e3,1e4];var i=c(47817);let j=(0,e.createContext)(null);function k({children:a}){let{worktrees:b,repositories:c,isLoading:k,error:l,refresh:m}=function(){let[a,b]=(0,e.useState)([]),[c,d]=(0,e.useState)([]),[i,j]=(0,e.useState)(!0),[k,l]=(0,e.useState)(null),m=(0,e.useRef)(null),n=(0,e.useRef)([]),o=(0,e.useRef)(null),p=(0,e.useRef)(0),q=(0,e.useRef)(null),r=(0,e.useRef)(!1),s=(0,e.useRef)(async()=>{}),t=(0,e.useCallback)(()=>{null!==q.current&&(clearTimeout(q.current),q.current=null)},[]),{connected:u,subscribe:v,unsubscribe:w,addListener:x}=(0,g.xM)(),y=(0,e.useRef)(u);y.current=u;let z=(0,e.useCallback)(async()=>{try{l(null),r.current&&0===n.current.length&&j(!0);let a=await fetch("/api/worktrees"),c=(0,f.O0)(a);if(c)throw c;if(!a.ok)throw Error(`Failed to fetch worktrees: ${a.status}`);let g=(0,f.xd)(a);if(g)throw g;let h=await a.json(),i=h.worktrees??[],k=h.repositories??[];(0,e.startTransition)(()=>{b(i),d(k),j(!1)}),n.current=i,r.current=!1,p.current=0,t()}catch(c){let a=c instanceof Error?c:Error(String(c));console.error("[useWorktreesCache] Failed to fetch worktrees:",a),r.current=!0,l(a),j(!1);let b=p.current;0===n.current.length&&b<h.length&&(p.current=b+1,t(),q.current=setTimeout(()=>{q.current=null,s.current()},h[b]))}},[t]);s.current=z;let A=(0,e.useCallback)(()=>n.current.some(a=>!0===a.isSessionRunning),[]),B=(0,e.useCallback)(()=>{let a=A();return y.current?a?2e4:6e4:a?5e3:3e4},[A]),C=(0,e.useCallback)(()=>{null!==m.current&&(clearInterval(m.current),m.current=null),o.current=null},[]);return(0,e.useCallback)(()=>{C();let a=B();o.current=a,m.current=setInterval(()=>{z()},a)},[B,z,C]),a.map(a=>a.id).sort().join(" "),{worktrees:a,repositories:c,isLoading:i,error:k,refresh:z}}(),n=(0,e.useMemo)(()=>({worktrees:b,repositories:c,isLoading:k,error:l,refresh:m}),[b,c,k,l,m]);return(0,d.jsx)(j.Provider,{value:n,children:(0,d.jsx)(i.H8,{externalWorktrees:b,externalRepositories:c,externalIsLoading:k,externalError:l,externalRefresh:m,children:a})})}function l(){let a=(0,e.useContext)(j);if(null===a)throw Error("useWorktreesCacheContext must be used within a WorktreesCacheProvider");return a}function m(){return(0,e.useContext)(j)}},63474:(a,b,c)=>{"use strict";c.d(b,{dj:()=>w,tE:()=>v});var d=c(21124),e=c(38301),f=c(23312),g=c(20481),h=c(75219),i=c(91292),j=c(16945),k=c(71117),l=c(47089),m=c(11010),n=c(58970),o=c(6074);let p=3e3;function q({type:a,iconColor:b}){let c=`h-5 w-5 ${b}`;switch(a){case"success":return(0,d.jsx)(h.A,{className:c,"data-testid":"toast-icon-success"});case"error":return(0,d.jsx)(i.A,{className:c,"data-testid":"toast-icon-error"});case"warning":return(0,d.jsx)(j.A,{className:c,"data-testid":"toast-icon-warning"});default:return(0,d.jsx)(k.A,{className:c,"data-testid":"toast-icon-info"})}}function r({id:a,message:b,type:c,onClose:f,duration:h=p,onClick:i}){let j=(0,g.c)("common"),k=(0,e.useRef)(null),m=function(a){switch(a){case"success":return{bgColor:"bg-success-subtle",borderColor:"border-success-border",textColor:"text-success-foreground",iconColor:"text-success-foreground"};case"error":return{bgColor:"bg-danger-subtle",borderColor:"border-danger-border",textColor:"text-danger-foreground",iconColor:"text-danger-foreground"};case"warning":return{bgColor:"bg-warning-subtle",borderColor:"border-warning-border",textColor:"text-warning-foreground",iconColor:"text-warning-foreground"};default:return{bgColor:"bg-info-subtle",borderColor:"border-info-border",textColor:"text-info-foreground",iconColor:"text-info-foreground"}}}(c),[r,s]=(0,e.useState)(!0),{shouldRender:t,isExiting:u}=(0,o.O)(r,n.Ys);(0,e.useRef)(f).current=f;let v=(0,e.useCallback)(()=>{k.current&&clearTimeout(k.current),s(!1)},[]);return(0,d.jsxs)("div",{"data-testid":`toast-${a}`,role:"alert",className:`
|
|
1
|
+
exports.id=8581,exports.ids=[8581],exports.modules={762:(a,b,c)=>{Promise.resolve().then(c.bind(c,96908))},1102:(a,b,c)=>{"use strict";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)]})}},1483:(a,b,c)=>{var d={"./en/keyboardShortcuts.json":[53722,1341],"./ja/keyboardShortcuts.json":[88356,8356]};function e(a){if(!c.o(d,a))return Promise.resolve().then(()=>{var b=Error("Cannot find module '"+a+"'");throw b.code="MODULE_NOT_FOUND",b});var b=d[a],e=b[0];return c.e(b[1]).then(()=>c.t(e,19))}e.keys=()=>Object.keys(d),e.id=1483,a.exports=e},1637:(a,b,c)=>{"use strict";c.d(b,{Ej:()=>k,Jd:()=>h,Mq:()=>j,rH:()=>i});var d=c(21124),e=c(38301),f=c(20481),g=c(22317);let h="bg-transparent border-2 border-muted-foreground",i="status.unknown";function j(a,b){return!0===b&&"ready"===a}let k=(0,e.memo)(function({status:a,label:b,waitingKind:c,unclassified:e}){let k=(0,f.c)("common"),l=j(a,e);return(0,d.jsx)(g.m,{"data-testid":"status-indicator",status:a,label:l?b??k(i):b,waitingKind:c,size:"lg",className:l?h:void 0,"data-unclassified":l?"true":void 0})})},4267:(a,b,c)=>{"use strict";c.d(b,{Lt:()=>h,Wj:()=>f,eu:()=>e,fJ:()=>g});var d=c(17252);let e=2,f=6,g=["claude","codex","antigravity"];function h(a){return a.length<e||a.length>f?{valid:!1,error:`Must be ${e}-${f} elements`}:a.every(a=>"string"==typeof a&&d.XH.includes(a))?new Set(a).size!==a.length?{valid:!1,error:"Duplicate tool IDs not allowed"}:{valid:!0,value:a}:{valid:!1,error:"Invalid CLI tool ID"}}},4558:(a,b,c)=>{"use strict";c.d(b,{A:()=>g});var d=c(43692),e=c(86802),f=c(25754);let g=(0,d.A)(async({requestLocale:a})=>{let b=await a;if(!(0,f.d9)(b)){let a=await (0,e.UL)(),c=await (0,e.b3)();b=(0,f.rv)(a.get(f.gB)?.value,c.get("accept-language"))}let[d,g,h,i,j,k,l,m,n,o,p,q,r,s,t]=await Promise.all([c(61118)(`./${b}/common.json`),c(90338)(`./${b}/worktree.json`),c(62081)(`./${b}/autoYes.json`),c(66125)(`./${b}/error.json`),c(72637)(`./${b}/prompt.json`),c(51877)(`./${b}/auth.json`),c(38898)(`./${b}/schedule.json`),c(80407)(`./${b}/commandPalette.json`),c(70288)(`./${b}/home.json`),c(60887)(`./${b}/review.json`),c(75567)(`./${b}/pwa.json`),c(99127)(`./${b}/notifications.json`),c(1483)(`./${b}/keyboardShortcuts.json`),c(80812)(`./${b}/externalApps.json`),c(18913)(`./${b}/skills.json`)]);return{locale:b,timeZone:"UTC",messages:{common:d.default,worktree:g.default,autoYes:h.default,error:i.default,prompt:j.default,auth:k.default,schedule:l.default,commandPalette:m.default,home:n.default,review:o.default,pwa:p.default,notifications:q.default,keyboardShortcuts:r.default,externalApps:s.default,skills:t.default}}})},5682:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>d});let d=(0,c(97954).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/runner/work/CommandMate/CommandMate/src/app/error.tsx\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/CommandMate/CommandMate/src/app/error.tsx","default")},5772:(a,b,c)=>{"use strict";c.d(b,{Ps:()=>k,W5:()=>j});var d=c(21124),e=c(38301),f=c(90076),g=c(12480);let h={size:g.r5,setSize:()=>{},isMobile:!1,factor:g.d8[g.r5].factor,isAvailable:!1},i=(0,e.createContext)(h);function j({children:a}){let{size:b,setSize:c,isAvailable:h}=(0,g.of)(),j=(0,f.a)(),k=(0,e.useMemo)(()=>({size:b,setSize:c,isMobile:j,factor:g.d8[b].factor,isAvailable:h}),[b,c,j,h]);return(0,d.jsx)(i.Provider,{value:k,children:a})}function k(){return(0,e.useContext)(i)}},6074:(a,b,c)=>{"use strict";c.d(b,{O:()=>e});var d=c(38301);function e(a,b){let[c,e]=(0,d.useState)(a?"open":"closed");return a&&"open"!==c?e("open"):a||"open"!==c||e("exiting"),{shouldRender:a||"closed"!==c,isExiting:!a&&"exiting"===c}}},8509:(a,b,c)=>{"use strict";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))})]})}},10290:(a,b,c)=>{"use strict";c.d(b,{Hr:()=>q,Ht:()=>p,SQ:()=>n,_2:()=>o,lp:()=>r,mB:()=>s,rI:()=>l,ty:()=>m});var d=c(21124),e=c(38301),f=c.n(e),g=c(12927),h=c(71613),i=c(90133),j=c(11010),k=c(35595);let l=g.bL,m=g.l9;g.YJ;let n=f().forwardRef(({className:a,sideOffset:b=4,...c},e)=>(0,d.jsx)(g.ZL,{children:(0,d.jsx)(g.UC,{ref:e,sideOffset:b,style:{zIndex:j.M.POPOVER},className:(0,k.cn)("min-w-[8rem] overflow-hidden rounded-md border border-border bg-surface p-1 text-surface-foreground shadow-lg","data-[state=open]:animate-in data-[state=closed]:animate-out","data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0","data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95","data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2","data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",a),...c})}));n.displayName="DropdownMenuContent";let o=f().forwardRef(({className:a,inset:b,...c},e)=>(0,d.jsx)(g.q7,{ref:e,className:(0,k.cn)("relative flex cursor-pointer select-none items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-none","focus:bg-muted focus:text-surface-foreground","data-[disabled]:pointer-events-none data-[disabled]:opacity-50",b&&"pl-8",a),...c}));o.displayName="DropdownMenuItem",f().forwardRef(({className:a,children:b,checked:c,...e},f)=>(0,d.jsxs)(g.H_,{ref:f,checked:c,className:(0,k.cn)("relative flex cursor-pointer select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none","focus:bg-muted focus:text-surface-foreground","data-[disabled]:pointer-events-none data-[disabled]:opacity-50",a),...e,children:[(0,d.jsx)("span",{className:"absolute left-2 flex h-3.5 w-3.5 items-center justify-center",children:(0,d.jsx)(g.VF,{children:(0,d.jsx)(h.A,{size:16,"aria-hidden":"true"})})}),b]})).displayName="DropdownMenuCheckboxItem";let p=f().forwardRef(({className:a,children:b,...c},e)=>(0,d.jsxs)(g.hN,{ref:e,className:(0,k.cn)("relative flex cursor-pointer select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none","focus:bg-muted focus:text-surface-foreground","data-[disabled]:pointer-events-none data-[disabled]:opacity-50",a),...c,children:[(0,d.jsx)("span",{className:"absolute left-2 flex h-3.5 w-3.5 items-center justify-center",children:(0,d.jsx)(g.VF,{children:(0,d.jsx)(i.A,{size:8,className:"fill-current","aria-hidden":"true"})})}),b]}));p.displayName="DropdownMenuRadioItem";let q=g.z6,r=f().forwardRef(({className:a,inset:b,...c},e)=>(0,d.jsx)(g.JU,{ref:e,className:(0,k.cn)("px-2 py-1.5 text-xs font-semibold text-muted-foreground",b&&"pl-8",a),...c}));r.displayName="DropdownMenuLabel";let s=f().forwardRef(({className:a,...b},c)=>(0,d.jsx)(g.wv,{ref:c,className:(0,k.cn)("-mx-1 my-1 h-px bg-border",a),...b}));s.displayName="DropdownMenuSeparator"},11010:(a,b,c)=>{"use strict";c.d(b,{M:()=>d});let d={DROPDOWN:10,SIDEBAR:30,MODAL:50,MAXIMIZED_EDITOR:55,TOAST:60,POPOVER:65,CONTEXT_MENU:70}},12055:(a,b,c)=>{"use strict";c.d(b,{Oo:()=>e,ST:()=>d,T4:()=>h,dz:()=>g,rz:()=>f,zS:()=>i});let d="client_version",e="version_mismatch",f="chat_turn_progress",g="messages_invalidated",h="model_changed";function i(a){let b;try{b=JSON.parse(a)}catch{return null}if(!b||"object"!=typeof b)return null;let c=b;if("broadcast"===c.type){let a=c.data;return a&&"object"==typeof a?"string"!=typeof a.type?null:(void 0===a.worktreeId&&"string"==typeof c.worktreeId&&(a.worktreeId=c.worktreeId),a):null}return"string"==typeof c.type?c:null}},12480:(a,b,c)=>{"use strict";c.d(b,{Uf:()=>f,d8:()=>g,fM:()=>h,of:()=>j,r5:()=>e,rq:()=>i});var d=c(53237);let e="medium",f=["large","medium","small","xsmall"],g={large:{value:"large",rootFontSizePx:18,factor:1.125,terminalFontSize:16},medium:{value:"medium",rootFontSizePx:16,factor:1,terminalFontSize:14},small:{value:"small",rootFontSizePx:14,factor:.875,terminalFontSize:12},xsmall:{value:"xsmall",rootFontSizePx:12.5,factor:.78,terminalFontSize:11}};function h(a){return"string"==typeof a&&Object.prototype.hasOwnProperty.call(g,a)}function i(a){return g[a].terminalFontSize}function j(){let{value:a,setValue:b,isAvailable:c}=(0,d.V)({key:"mcbd-pc-display-size",defaultValue:e,validate:h});return{size:a,setSize:b,isAvailable:c}}},16730:(a,b,c)=>{"use strict";c.d(b,{BV:()=>n,Ct:()=>g,Hi:()=>d,K3:()=>e,PS:()=>l,SR:()=>f,T2:()=>j,Z3:()=>m,nk:()=>k});let d=0,e=8e3,f=2,g=2e4,h=[408,425,429,500,502,503,504],i=["GET","HEAD","OPTIONS"],j=3e4;function k(a){let b=(a??"GET").toUpperCase();return i.includes(b)}function l(a){return h.includes(a)}function m(a){return k(a)?1e4:3e4}function n(a,b=Math.random()){let c=Number.isFinite(a)&&a>0?Math.floor(a):0,d=Math.min(500*2**c,4e3);return Math.max(0,Math.round(d+.25*d*(2*b-1)))}},17252:(a,b,c)=>{"use strict";c.d(b,{Ab:()=>e,NL:()=>q,O6:()=>n,XH:()=>d,f_:()=>l,hR:()=>j,lu:()=>o,n6:()=>h,oo:()=>k,pQ:()=>f,sw:()=>m,vz:()=>p});let d=["claude","codex","gemini","vibe-local","opencode","copilot","antigravity","command-code"],e=10,f=50,g=/^[a-zA-Z0-9_-]+$/;function h(a){return"string"==typeof a&&a.length>0&&a.length<=64&&g.test(a)}let i={claude:"Claude",codex:"Codex",gemini:"Gemini","vibe-local":"Vibe Local",opencode:"OpenCode",copilot:"Copilot",antigravity:"Antigravity","command-code":"Command Code"};function j(a){return d.includes(a)}function k(a){return i[a]??a}function l(a,b="Assistant"){return a&&j(a)?k(a):b}function m(a){let b=a.alias;return"string"==typeof b&&b.trim().length>0?b:k(a.cliTool)}function n(a,b,c){let d=a.find(a=>a.id===b);return d?m(d):k(c)}function o(a){return a.map((a,b)=>({id:a,cliTool:a,alias:k(a),order:b}))}let p=128,q=2097152},17793:(a,b,c)=>{"use strict";c.d(b,{y:()=>h});var d=c(21124);c(38301);var e=c(35595);let f={xs:"h-3 w-3",sm:"h-4 w-4",md:"h-5 w-5",lg:"h-6 w-6",xl:"h-8 w-8"},g={current:"",accent:"text-accent-600 dark:text-accent-400",muted:"text-muted-foreground"};function h({size:a="md",variant:b="current",className:c,...h}){return(0,d.jsxs)("svg",{className:(0,e.cn)("animate-spin",f[a],g[b],c),xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","aria-hidden":"true",...h,children:[(0,d.jsx)("circle",{className:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"4"}),(0,d.jsx)("path",{className:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"})]})}},18608:(a,b,c)=>{"use strict";c.d(b,{W:()=>q,n:()=>r});var d=c(21124),e=c(38301),f=c(20481),g=c(16945),h=c(25345),i=c(47089),j=c(11010),k=c(74930),l=c(12055);let m=new Set;function n(a){return m.add(a),()=>{m.delete(a)}}function o(){return!1}function p(){return!1}function q(){return(0,e.useSyncExternalStore)(n,o,p)}function r(){let a=(0,f.c)("common"),[b,c]=(0,e.useState)(null),[m,n]=(0,e.useState)(null),o=(0,e.useCallback)(a=>{if(a.type!==l.Oo)return;let{serverVersion:b,clientVersion:d}=a;"string"==typeof b&&"string"==typeof d&&b&&d&&b!==m&&c({serverVersion:b,clientVersion:d})},[m]);(0,k.T3)(o);let p=(0,e.useCallback)(()=>{window.location.reload()},[]),q=(0,e.useCallback)(()=>{c(a=>(a&&n(a.serverVersion),null))},[]);return b?(0,d.jsxs)("div",{"data-testid":"version-mismatch-banner",role:"alert","aria-live":"assertive",className:"fixed top-3 left-1/2 -translate-x-1/2 flex items-start gap-3 max-w-[92vw] rounded-lg border border-warning-border bg-warning-subtle px-4 py-3 text-warning-foreground shadow-lg",style:{zIndex:j.M.TOAST},children:[(0,d.jsx)(g.A,{className:"h-5 w-5 shrink-0 mt-0.5","aria-hidden":"true"}),(0,d.jsxs)("div",{className:"flex flex-col gap-0.5 text-sm",children:[(0,d.jsx)("span",{className:"font-semibold",children:a("versionMismatch.title")}),(0,d.jsx)("span",{children:a("versionMismatch.description",{serverVersion:b.serverVersion,clientVersion:b.clientVersion})})]}),(0,d.jsxs)("button",{type:"button","data-testid":"version-mismatch-reload",onClick:p,className:"shrink-0 inline-flex items-center gap-1.5 rounded-md border border-warning-border px-3 py-1.5 text-sm font-medium hover:opacity-80 focus:outline-none focus:ring-2 focus:ring-offset-2",children:[(0,d.jsx)(h.A,{className:"h-4 w-4","aria-hidden":"true"}),a("versionMismatch.reload")]}),(0,d.jsx)("button",{type:"button","data-testid":"version-mismatch-dismiss",onClick:q,"aria-label":a("versionMismatch.dismiss"),className:"shrink-0 hover:opacity-70 focus:outline-none focus:ring-2 focus:ring-offset-2",children:(0,d.jsx)(i.A,{className:"h-4 w-4","aria-hidden":"true"})})]}):null}},18913:(a,b,c)=>{var d={"./en/skills.json":[55064,5064],"./ja/skills.json":[20022,22]};function e(a){if(!c.o(d,a))return Promise.resolve().then(()=>{var b=Error("Cannot find module '"+a+"'");throw b.code="MODULE_NOT_FOUND",b});var b=d[a],e=b[0];return c.e(b[1]).then(()=>c.t(e,19))}e.keys=()=>Object.keys(d),e.id=18913,a.exports=e},19463:(a,b,c)=>{"use strict";c.d(b,{Lv:()=>f});var d=c(38301),e=c(63157);function f(){let a=(0,e.rC)(),b=a?.worktrees;return(0,d.useMemo)(()=>{let a=b?b.filter(a=>!0===a.isWaitingForResponse):[];return{count:a.length,worktrees:a}},[b])}},22317:(a,b,c)=>{"use strict";c.d(b,{m:()=>l});var d=c(21124);c(38301);var e=c(20481),f=c(35595);let g={idle:{colorClass:"bg-muted-foreground",labelKey:"status.idle"},ready:{colorClass:"bg-success",labelKey:"status.ready"},running:{colorClass:"bg-success text-success ring-2 ring-success/40",animationClass:"animate-status-glow",labelKey:"status.running"},generating:{colorClass:"bg-success text-success ring-2 ring-success/40",animationClass:"animate-status-glow",labelKey:"status.generating"},waiting:{colorClass:"bg-warning text-warning ring-4 ring-warning/50",animationClass:"animate-status-attention",labelKey:"status.waiting"},error:{colorClass:"bg-danger",labelKey:"status.error"}},h={colorClass:"bg-warning text-warning ring-2 ring-warning/40",animationClass:"animate-status-glow",labelKey:"status.waiting"},i=new Set(["menu","unclassified"]),j={colorClass:"bg-muted-foreground",labelKey:"status.unknown"},k={sm:"w-2 h-2",md:"w-2.5 h-2.5",lg:"w-3 h-3"};function l({status:a,size:b="md",label:c,waitingKind:l,className:m,...n}){let o=(0,e.c)("common"),p=function(a,b){let c=g[a]??j;return"waiting"!==a?c:b&&i.has(b)?h:c}(a,l),q=c??o(p.labelKey);return(0,d.jsx)("span",{className:(0,f.cn)("inline-block flex-shrink-0 rounded-full",k[b],p.colorClass,p.animationClass,m),title:q,"aria-label":q,...n})}},23910:(a,b,c)=>{"use strict";c.d(b,{Y:()=>l,y2:()=>k});var d=c(21124),e=c(38301),f=c(20481),g=c(78352),h=c(79782);let i=()=>{},j=(0,e.createContext)({updateInfo:null,checking:!1,hasUpdate:!1,canSelfUpdate:!1,state:"idle",logPath:null,errorKey:null,openConfirm:i,cancel:i,confirm:async()=>{}});function k({children:a}){let b=(0,f.c)("worktree"),[c,i]=(0,e.useState)(null),[k,l]=(0,e.useState)(!0),[m,n]=(0,e.useState)("idle"),[o,p]=(0,e.useState)(null),[q,r]=(0,e.useState)(null),s=(0,e.useRef)("idle");(0,e.useRef)(!1);let t=c?.hasUpdate===!0,u=c?.installType==="global"||c?.installType==="npx",v=(0,e.useCallback)(()=>{t&&u&&n(a=>"idle"===a?"confirming":a)},[t,u]),w=(0,e.useCallback)(()=>{n(a=>"confirming"===a?"idle":a)},[]),x=(0,e.useCallback)(async()=>{if("confirming"===s.current){s.current="starting",n("starting");try{let a=await g.GQ.startUpdate();p(a.logPath),n(a.willRestart?"updating":"no-restart")}catch(a){a instanceof g.hD&&400===a.status?r("update.errorNotGlobal"):a instanceof g.hD&&409===a.status?r("update.errorInProgress"):r("update.errorGeneric"),n("error")}}},[]),y=(0,e.useMemo)(()=>({updateInfo:c,checking:k,hasUpdate:t,canSelfUpdate:u,state:m,logPath:o,errorKey:q,openConfirm:v,cancel:w,confirm:x}),[c,k,t,u,m,o,q,v,w,x]);return(0,d.jsxs)(j.Provider,{value:y,children:[a,(0,d.jsx)(h.TM,{isOpen:"confirming"===m,title:b("update.confirmTitle"),description:b("update.confirmDescription",{version:c?.latestVersion??""}),confirmLabel:b("update.confirmButton"),onConfirm:()=>{x()},onCancel:w})]})}function l(){return(0,e.useContext)(j)}},25754:(a,b,c)=>{"use strict";c.d(b,{Xn:()=>e,d9:()=>g,dI:()=>d,gB:()=>f,rv:()=>h});let d=["en","ja"],e="en",f="locale";function g(a){return"string"==typeof a&&d.includes(a)}function h(a,b){return g(a)?a:d.find(a=>(b??"").includes(a))??e}},29966:(a,b,c)=>{"use strict";c.d(b,{AppShellGate:()=>e});var d=c(97954);(0,d.registerClientReference)(function(){throw Error("Attempted to call SHELL_EXCLUDED_PREFIXES() from the server but SHELL_EXCLUDED_PREFIXES is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/CommandMate/CommandMate/src/components/layout/AppShellGate.tsx","SHELL_EXCLUDED_PREFIXES"),(0,d.registerClientReference)(function(){throw Error("Attempted to call SHELL_EXCLUDED_WORKTREE_SUBPATHS() from the server but SHELL_EXCLUDED_WORKTREE_SUBPATHS is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/CommandMate/CommandMate/src/components/layout/AppShellGate.tsx","SHELL_EXCLUDED_WORKTREE_SUBPATHS"),(0,d.registerClientReference)(function(){throw Error("Attempted to call shouldRenderShell() from the server but shouldRenderShell is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/CommandMate/CommandMate/src/components/layout/AppShellGate.tsx","shouldRenderShell");let e=(0,d.registerClientReference)(function(){throw Error("Attempted to call AppShellGate() from the server but AppShellGate is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/CommandMate/CommandMate/src/components/layout/AppShellGate.tsx","AppShellGate")},30430:(a,b,c)=>{"use strict";c.d(b,{j:()=>i,p:()=>j});var d=c(21124),e=c(38301),f=c.n(e),g=c(26691),h=c(35595);let i=(0,g.F)("flex w-full rounded-md border border-input bg-surface dark:bg-surface-2 text-surface-foreground shadow-sm placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:border-ring disabled:cursor-not-allowed disabled:opacity-50",{variants:{inputSize:{sm:"h-8 px-2.5 py-1 text-sm",md:"px-3 py-2 text-sm",lg:"px-4 py-2.5 text-base"}},defaultVariants:{inputSize:"md"}}),j=f().forwardRef(({className:a,inputSize:b,type:c="text",...e},f)=>(0,d.jsx)("input",{ref:f,type:c,className:(0,h.cn)(i({inputSize:b}),a),...e}));j.displayName="Input"},31210:(a,b,c)=>{"use strict";c.d(b,{Wu:()=>k,ZB:()=>j,Zp:()=>h,aR:()=>i});var d=c(21124);c(38301);var e=c(26691),f=c(35595);let g=(0,e.F)("bg-surface text-surface-foreground rounded-lg border border-border shadow-sm",{variants:{variant:{default:"",elevated:"bg-gradient-to-b from-surface to-surface-2 shadow-md",interactive:"cursor-pointer transition-all duration-200 hover:border-accent-500 hover:shadow-md motion-safe:hover:-translate-y-0.5 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:border-accent-500 focus-visible:shadow-md motion-safe:focus-visible:-translate-y-0.5"},hover:{true:"transition-shadow duration-200 hover:shadow-md",false:""},interactive:{true:"cursor-pointer transition-all duration-200 hover:shadow-lg active:shadow-md motion-safe:hover:-translate-y-0.5 motion-safe:active:translate-y-0",false:""},padding:{none:"",sm:"p-3",md:"p-4",lg:"p-6"}},defaultVariants:{variant:"default",hover:!1,interactive:!1,padding:"md"}});function h({variant:a="default",hover:b=!1,interactive:c=!1,padding:e="md",className:h="",children:i,...j}){return(0,d.jsx)("div",{className:(0,f.cn)(g({variant:a,hover:b,interactive:c,padding:e}),h),...j,children:i})}function i({className:a="",children:b,...c}){return(0,d.jsx)("div",{className:(0,f.cn)("mb-3",a),...c,children:b})}function j({className:a="",children:b,...c}){return(0,d.jsx)("h3",{className:(0,f.cn)("text-lg font-semibold text-surface-foreground",a),...c,children:b})}function k({className:a="",children:b,...c}){return(0,d.jsx)("div",{className:(0,f.cn)(a),...c,children:b})}},32482:(a,b,c)=>{"use strict";c.d(b,{$m:()=>h,BN:()=>G,EN:()=>i,EY:()=>C,El:()=>u,Ii:()=>A,Kp:()=>z,LV:()=>p,PB:()=>k,Si:()=>f,UB:()=>y,UZ:()=>n,Xn:()=>w,ZC:()=>F,ZD:()=>E,_s:()=>x,fs:()=>H,j:()=>v,m3:()=>j,nO:()=>q,s6:()=>o,zD:()=>t});var d=c(89877);let e=["updatedAt","repositoryName","branchName","status","lastSent"],f=a=>e.includes(a),g=["grouped","flat","sessions"],h=a=>g.includes(a),i=["always","collapsed","hidden"],j=a=>i.includes(a),k="collapsed",l={waiting:0,ready:1,running:2,generating:3,idle:4},m=["waiting","running","generating","ready","idle"];function n(a){let b=new Set;for(let c of a)!1===c.visible&&b.add(c.path);return b}function o(a,b){return 0===b.size?a.slice():a.filter(a=>{let c=a.repositoryPath;return!c||!b.has(c)})}function p(a){let b=function(a){let b=5381;for(let c=0;c<a.length;c++)b=(b<<5)+b+a.charCodeAt(c)|0;return Math.abs(b)}(a)%360;return`hsl(${b}, 65%, 60%)`}function q(a,b){if(!a&&!b)return 0;if(!a)return 1;if(!b)return -1;let c=a instanceof Date?a.getTime():new Date(a).getTime();return(b instanceof Date?b.getTime():new Date(b).getTime())-c}function r(a){return a.cliStatus&&Object.keys(a.cliStatus).length>0?(0,d.A7)(a.cliStatus):a.status}function s(a){return"waiting"===r(a)}function t(a){let b=new Set(a.map(r));for(let a of m)if(b.has(a))return a;return"idle"}function u(a){return"ready"===t(a)&&a.some(a=>"ready"===r(a)&&(0,d.Pn)(a.cliStatus,a.unclassifiedInstanceIds))}function v(a){let b=0;for(let c of a)s(c)&&b++;return b}function w(a,b,c){let d=[...a],e="status"!==b;return d.sort((a,d)=>{if(e){let b=Number(s(d))-Number(s(a));if(0!==b)return b}let f=0;switch(b){case"updatedAt":{let b=a=>a?a instanceof Date?a.getTime():new Date(a).getTime():0,c=b(a.lastActivity);f=b(d.lastActivity)-c;break}case"repositoryName":{let b=a.repositoryName.toLowerCase(),c=d.repositoryName.toLowerCase();f=b.localeCompare(c);break}case"branchName":{let b=a.name.toLowerCase(),c=d.name.toLowerCase();f=b.localeCompare(c);break}case"status":f=l[a.status]-l[d.status];break;case"lastSent":{let b=q(a.lastActivity,d.lastActivity);if(!a.lastActivity&&!d.lastActivity){f=0;break}if(!a.lastActivity)return 1;if(!d.lastActivity)return -1;f=b;break}default:f=0}return("updatedAt"===b||"lastSent"===b?"desc"===c:"asc"===c)?f:-f}),d}function x(a,b,c){let d=new Map;for(let b of a){let a=b.repositoryName;d.has(a)||d.set(a,[]),d.get(a).push(b)}return[...d.keys()].sort((a,b)=>a.toLowerCase().localeCompare(b.toLowerCase())).map(a=>({repositoryName:a,branches:w(d.get(a),b,c)}))}function y(a){let b=[];for(let c of a){let a=new Set(c.exitedInstanceIds??[]),d=new Set(c.unclassifiedInstanceIds??[]);for(let[e,f]of Object.entries(c.cliStatus??{}))b.push({key:`${c.id}:${e}`,worktreeId:c.id,instanceId:e,label:c.cliStatusLabels?.[e]??e,status:f??"idle",branchName:c.name,repositoryName:c.repositoryName,lastActivity:c.lastActivity,exited:a.has(e),..."ready"===f&&d.has(e)?{unclassified:!0}:{}})}return b}let z="instance";function A(a){return`/worktrees/${a.worktreeId}?${z}=${encodeURIComponent(a.instanceId)}`}function B(a){return a.lastActivity?a.lastActivity instanceof Date?a.lastActivity.getTime():new Date(a.lastActivity).getTime():0}function C(a,b,c){let d="asc"===c?1:-1;return a.slice().sort((a,c)=>{let e=l[a.status]-l[c.status];if("status"===b)return 0!==e?e*d:B(c)-B(a);if(0!==e)return e;switch(b){case"updatedAt":case"lastSent":return(B(a)-B(c))*d;case"repositoryName":return a.repositoryName.toLowerCase().localeCompare(c.repositoryName.toLowerCase())*d;case"branchName":return a.branchName.toLowerCase().localeCompare(c.branchName.toLowerCase())*d;default:return 0}})}let D=null;function E(){return D??[]}function F(a){D=a}function G(a,b){if(0===b.length)return a.slice();let c=new Map(b.map((a,b)=>[a,b]));return a.slice().sort((a,b)=>{let d=c.has(a.repositoryName)?c.get(a.repositoryName):1/0,e=c.has(b.repositoryName)?c.get(b.repositoryName):1/0;return d===e?a.repositoryName.localeCompare(b.repositoryName):d-e})}function H(a,b){return"hidden"!==a&&("always"===a||!b)}},33497:(a,b,c)=>{Promise.resolve().then(c.bind(c,29966)),Promise.resolve().then(c.bind(c,58315))},34592:(a,b,c)=>{"use strict";c.d(b,{Xi:()=>l,av:()=>m,j7:()=>k,tU:()=>j});var d=c(21124),e=c(38301),f=c.n(e),g=c(89989),h=c(35595);let i=f().createContext("underline"),j=f().forwardRef(({variant:a="underline",...b},c)=>(0,d.jsx)(i.Provider,{value:a,children:(0,d.jsx)(g.bL,{ref:c,...b})}));j.displayName="Tabs";let k=f().forwardRef(({className:a,...b},c)=>{let e=f().useContext(i);return(0,d.jsx)(g.B8,{ref:c,className:(0,h.cn)("inline-flex items-center","pill"===e?"gap-1 rounded-lg bg-muted p-1":"gap-4 border-b border-border",a),...b})});k.displayName="TabsList";let l=f().forwardRef(({className:a,...b},c)=>{let e=f().useContext(i);return(0,d.jsx)(g.l9,{ref:c,className:(0,h.cn)("inline-flex items-center justify-center whitespace-nowrap text-sm font-medium transition-colors","focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring","disabled:pointer-events-none disabled:opacity-50","pill"===e?"rounded-md px-3 py-1.5 text-muted-foreground data-[state=active]:bg-surface data-[state=active]:text-surface-foreground data-[state=active]:shadow-sm":"-mb-px border-b-2 border-transparent px-1 py-2 text-muted-foreground hover:text-foreground data-[state=active]:border-accent-500 data-[state=active]:text-accent-600",a),...b})});l.displayName="TabsTrigger";let m=f().forwardRef(({className:a,...b},c)=>(0,d.jsx)(g.UC,{ref:c,className:(0,h.cn)("mt-2 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring",a),...b}));m.displayName="TabsContent"},35595:(a,b,c)=>{"use strict";c.d(b,{cn:()=>f});var d=c(43249),e=c(58829);function f(...a){return(0,e.QP)((0,d.$)(a))}},35914:(a,b,c)=>{"use strict";c.d(b,{$7:()=>f,oz:()=>d,tV:()=>e,v9:()=>g});function d(a){if(null==a||"object"!=typeof a)return!1;let{name:b,message:c}=a;return"ChunkLoadError"===b||"string"==typeof c&&(c.includes("Loading chunk")||c.includes("Failed to fetch dynamically imported module"))}function e(a){return"skipped"}function f(a,b){let c=!1,d=null,e=null,f=()=>{d?.(),e?.(),d=null,e=null},g=()=>{c||(c=!0,f(),a())};return d=b.subscribeOnline(()=>{c||b.probe().then(a=>{a&&g()})}),e=b.subscribeReachability(a=>{a&&g()}),()=>{c=!0,f()}}function g(a){return{subscribeOnline:a=>()=>{},subscribeReachability:a.subscribeReachability,probe:a.probe}}},38557:(a,b,c)=>{"use strict";c.d(b,{Fx:()=>o,Rh:()=>n,_X:()=>g,fl:()=>k,nG:()=>m,sV:()=>h});var d=c(38301),e=c(74930);let f="/api/capabilities";function g(a){return!1!==a.browserOnline&&("connected"===a.realtimeStatus||!0===a.serverReachable)}function h(a){return!1===a.browserOnline||!1===a.serverReachable}let i=new Map;async function j(a,b){let c="function"==typeof AbortController?new AbortController:void 0,d=c?setTimeout(()=>c.abort(),b):void 0;try{return await fetch(a,{method:"GET",cache:"no-store",credentials:"same-origin",signal:c?.signal}),!0}catch{return!1}finally{void 0!==d&&clearTimeout(d)}}function k(a=f,b=5e3){if("function"!=typeof fetch)return Promise.resolve(!1);let c=i.get(a);if(c)return c;let d=j(a,b).finally(()=>{i.delete(a)});return i.set(a,d),d}let l=new Set;function m(a){l.forEach(b=>{try{b(a)}catch{}})}function n(a){return l.add(a),()=>{l.delete(a)}}function o(a={}){let{probeUrl:b=f,probeDelayMs:c=1e3,probeIntervalMs:g=15e3,probeTimeoutMs:h=5e3,surfaceDelayMs:i=1500,probe:j=!0}=a,{status:l}=(0,e.xM)(),[m,n]=(0,d.useState)(!0),[p,q]=(0,d.useState)(null),[r,s]=(0,d.useState)(null),t=(0,d.useCallback)(a=>{q(b=>b===a?b:a),a&&s(Date.now())},[]),u=(0,d.useMemo)(()=>({browserOnline:m,realtimeStatus:l,serverReachable:p}),[m,l,p]),v=u.browserOnline?"connected"===u.realtimeStatus?"online":!1===u.serverReachable?"offline":!0===u.serverReachable||"connecting"===u.realtimeStatus?"reconnecting":"offline":"offline",w="online"!==v,x=(0,d.useRef)({url:b,timeoutMs:h});x.current={url:b,timeoutMs:h};let[y,z]=(0,d.useState)(!1),A=(0,d.useCallback)(()=>{if("function"!=typeof fetch)return;let{url:a,timeoutMs:b}=x.current;k(a,b).then(t)},[t]);return(0,d.useMemo)(()=>({status:v,isOnline:"online"===v,isReconnecting:"reconnecting"===v,isOffline:"offline"===v,shouldSurface:w&&y,signals:u,lastReachableAt:r,recheck:A}),[v,w,y,u,r,A])}},38898:(a,b,c)=>{var d={"./en/schedule.json":[95571,5571],"./ja/schedule.json":[26285,6285]};function e(a){if(!c.o(d,a))return Promise.resolve().then(()=>{var b=Error("Cannot find module '"+a+"'");throw b.code="MODULE_NOT_FOUND",b});var b=d[a],e=b[0];return c.e(b[1]).then(()=>c.t(e,19))}e.keys=()=>Object.keys(d),e.id=38898,a.exports=e},39800:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>h});var d=c(21124),e=c(38301),f=c(35914);c(38557);let g={en:{chunkTitle:"Updating to the latest version",chunkDescription:"A newer version of CommandMate is available. Reloading to get the latest update…",offlineTitle:"You're offline",offlineDescription:"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.",offlineWaiting:"Waiting for the connection to come back…",genericTitle:"Something went wrong",genericDescription:"An unexpected error occurred. Please reload the page.",reload:"Reload",retry:"Retry"},ja:{chunkTitle:"最新バージョンに更新しています",chunkDescription:"CommandMate の新しいバージョンが利用可能です。最新の状態にするため再読み込みします…",offlineTitle:"接続が切れています",offlineDescription:"ネットワークに接続できないため、ページの一部を読み込めませんでした。接続が戻り次第、自動でやり直します。",offlineWaiting:"接続の回復を待っています…",genericTitle:"問題が発生しました",genericDescription:"予期しないエラーが発生しました。ページを再読み込みしてください。",reload:"再読み込み",retry:"再試行"}};function h({error:a,reset:b}){let c=(0,f.oz)(a),[h,i]=(0,e.useState)("en"),[j,k]=(0,e.useState)(!1),l=(0,e.useCallback)(()=>{j?b():window.location.reload()},[j,b]),m=g[h],n=j?m.offlineTitle:c?m.chunkTitle:m.genericTitle,o=j?m.offlineDescription:c?m.chunkDescription:m.genericDescription;return(0,d.jsx)("html",{lang:h,style:{colorScheme:"light dark"},children:(0,d.jsxs)("body",{"data-error-kind":j?"chunk-offline":c?"chunk-reload":"unexpected",style:{margin:0,minHeight:"100vh",display:"flex",flexDirection:"column",alignItems:"center",justifyContent:"center",gap:"1.5rem",padding:"1.5rem",textAlign:"center",background:"Canvas",color:"CanvasText",fontFamily:'system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif'},children:[(0,d.jsxs)("div",{style:{maxWidth:"24rem"},children:[(0,d.jsx)("h1",{style:{fontSize:"1.5rem",fontWeight:600,margin:"0 0 0.5rem"},children:n}),(0,d.jsx)("p",{style:{fontSize:"0.875rem",opacity:.75,margin:0},children:o}),j&&(0,d.jsx)("p",{role:"status","aria-live":"polite",style:{fontSize:"0.75rem",opacity:.6,margin:"0.5rem 0 0"},children:m.offlineWaiting})]}),(0,d.jsx)("button",{type:"button",onClick:l,style:{appearance:"none",cursor:"pointer",borderRadius:"0.5rem",border:"1px solid currentColor",background:"transparent",color:"inherit",padding:"0.5rem 1rem",fontSize:"0.875rem",fontWeight:500},children:j?m.retry:m.reload})]})})}},43084:(a,b,c)=>{"use strict";c.d(b,{k:()=>g});var d=c(75338),e=c(94596);let f=["[animation-delay:0ms]","[animation-delay:150ms]","[animation-delay:300ms]"];function g(){let a=(0,e.A)("common");return(0,d.jsx)("div",{className:"flex w-full h-full min-h-[12rem] items-center justify-center p-8",role:"status","aria-label":a("loadingPage"),"data-testid":"route-loading",children:(0,d.jsx)("div",{className:"flex items-center gap-2","aria-hidden":"true",children:f.map(a=>(0,d.jsx)("span",{className:`h-2.5 w-2.5 rounded-full bg-muted-foreground animate-pulse ${a}`},a))})})}},44164:(a,b,c)=>{Promise.resolve().then(c.bind(c,64182))},46649:(a,b,c)=>{Promise.resolve().then(c.bind(c,90039)),Promise.resolve().then(c.bind(c,80776))},47817:(a,b,c)=>{"use strict";c.d(b,{$f:()=>k,H8:()=>j});var d=c(21124),e=c(38301),f=c(78352);let g=(0,e.createContext)(null),h={selectedWorktreeId:null,worktrees:[],repositories:[],selectedWorktreeDetail:null,isLoading:!0,isLoadingDetail:!1,error:null};function i(a,b){switch(b.type){case"SET_WORKTREES":return{...a,worktrees:b.worktrees,isLoading:!1};case"SET_REPOSITORIES":return{...a,repositories:b.repositories};case"SELECT_WORKTREE":{let c=a.worktrees.find(a=>a.id===b.id)??null;return{...a,selectedWorktreeId:b.id,selectedWorktreeDetail:c??a.selectedWorktreeDetail,isLoadingDetail:null===c}}case"SET_WORKTREE_DETAIL":return{...a,selectedWorktreeDetail:b.detail};case"SET_LOADING":return{...a,isLoading:b.isLoading};case"SET_LOADING_DETAIL":return{...a,isLoadingDetail:b.isLoadingDetail};case"SET_ERROR":return{...a,error:b.error,isLoading:!1};default:return a}}function j({children:a,externalWorktrees:b,externalRepositories:c,externalIsLoading:j,externalError:k,externalRefresh:l}){let m=void 0!==b,[n,o]=(0,e.useReducer)(i,h),p=(0,e.useCallback)(async()=>{if(!m){o({type:"SET_LOADING",isLoading:!0}),o({type:"SET_ERROR",error:null});try{let a=await f.y.getAll();o({type:"SET_WORKTREES",worktrees:a.worktrees}),o({type:"SET_REPOSITORIES",repositories:a.repositories??[]})}catch(a){o({type:"SET_ERROR",error:a instanceof Error?a.message:"Failed to fetch worktrees"})}}},[m]),q=(0,e.useCallback)(async a=>{o({type:"SELECT_WORKTREE",id:a}),o({type:"SET_ERROR",error:null});try{f.y.markAsViewed(a).catch(a=>{console.warn("[WorktreeSelectionContext] Failed to mark as viewed:",a)});let b=await f.y.getById(a);o({type:"SET_WORKTREE_DETAIL",detail:b})}catch(a){o({type:"SET_ERROR",error:a instanceof Error?a.message:"Failed to fetch worktree detail"})}finally{o({type:"SET_LOADING_DETAIL",isLoadingDetail:!1})}},[]),r=(0,e.useCallback)(async()=>{if(m&&l)return void await l();await p()},[m,l,p]),s=m&&void 0!==j?j:n.isLoading,t=m&&k?k.message:null,u={selectedWorktreeId:n.selectedWorktreeId,worktrees:n.worktrees,repositories:n.repositories,selectedWorktreeDetail:n.selectedWorktreeDetail,isLoading:s,isLoadingDetail:n.isLoadingDetail,error:t??n.error,selectWorktree:q,refreshWorktrees:r};return(0,d.jsx)(g.Provider,{value:u,children:a})}function k(){let a=(0,e.useContext)(g);if(!a)throw Error("useWorktreeSelection must be used within a WorktreeSelectionProvider");return a}},48620:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>f});var d=c(75338),e=c(43084);function f(){return(0,d.jsx)(e.k,{})}},51472:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>q,generateMetadata:()=>o,viewport:()=>p});var d=c(75338),e=c(68071),f=c(22513),g=c(42531),h=c(10620),i=c(4986),j=c.n(i),k=c(68034),l=c.n(k),m=c(58315),n=c(29966);async function o(){return{title:{default:"CommandMate",template:"%s | CommandMate"},description:(await (0,e.A)("common"))("meta.description"),appleWebApp:{capable:!0,title:"CommandMate",statusBarStyle:"default"}}}c(61135);let p={themeColor:[{media:"(prefers-color-scheme: light)",color:"#fafafb"},{media:"(prefers-color-scheme: dark)",color:"#0a0c12"}],viewportFit:"cover"};async function q({children:a}){let b=await (0,f.A)(),c=await (0,g.A)(),e=await (0,h.A)();return(0,d.jsx)("html",{lang:b,className:`${j().variable} ${l().variable}`,suppressHydrationWarning:!0,children:(0,d.jsx)("body",{className:"min-h-screen bg-background",children:(0,d.jsx)(m.AppProviders,{locale:b,messages:c,timeZone:e,authEnabled:!!process.env.CM_AUTH_TOKEN_HASH,children:(0,d.jsx)(n.AppShellGate,{children:a})})})})}},51877:(a,b,c)=>{var d={"./en/auth.json":[43440,3440],"./ja/auth.json":[11162,1162]};function e(a){if(!c.o(d,a))return Promise.resolve().then(()=>{var b=Error("Cannot find module '"+a+"'");throw b.code="MODULE_NOT_FOUND",b});var b=d[a],e=b[0];return c.e(b[1]).then(()=>c.t(e,19))}e.keys=()=>Object.keys(d),e.id=51877,a.exports=e},52120:(a,b,c)=>{"use strict";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"}},52130:(a,b,c)=>{Promise.resolve().then(c.bind(c,53523))},52761:(a,b,c)=>{"use strict";c.d(b,{Bo:()=>k,Hq:()=>i});var d=c(21124),e=c(38301),f=c(42378);let g={startTransition:a=>a()},h=(0,e.createContext)(null);function i(){let a=(0,f.useRouter)(),{startTransition:b}=(0,e.useContext)(h)??g;return(0,e.useMemo)(()=>({push:c=>b(()=>a.push(c)),replace:c=>b(()=>a.replace(c))}),[a,b])}function j({onCommit:a}){return(0,f.usePathname)(),(0,e.useRef)(!1),null}function k({children:a}){let b=(0,e.useRef)(null),c=(0,e.useCallback)(()=>{b.current?.()},[]),f=(0,e.useCallback)(a=>{var c;c=()=>new Promise(c=>{let d=!1,e=()=>{d||(d=!0,c())};b.current=e,a(),window.setTimeout(e,500)}),"undefined"==typeof document||"function"!=typeof document.startViewTransition?c():document.startViewTransition(c)},[]),g=(0,e.useMemo)(()=>({startTransition:f}),[f]);return(0,d.jsxs)(h.Provider,{value:g,children:[(0,d.jsx)(j,{onCommit:c}),a]})}},53237:(a,b,c)=>{"use strict";c.d(b,{V:()=>e});var d=c(38301);function e(a){let{key:b,defaultValue:c,validate:e,serialize:f=JSON.stringify,deserialize:g=JSON.parse}=a,h=(0,d.useRef)(c),i=(0,d.useRef)(e),j=(0,d.useRef)(f),k=(0,d.useRef)(g);h.current=c,i.current=e,j.current=f,k.current=g;let[l,m]=(0,d.useState)(!1),[n,o]=(0,d.useState)(c);(0,d.useCallback)(()=>h.current,[b]);let p=(0,d.useCallback)(a=>{},[b]);return{value:n,setValue:(0,d.useCallback)(a=>{o(b=>{let c="function"==typeof a?a(b):a;return p(c),c})},[p]),removeValue:(0,d.useCallback)(()=>{o(h.current)},[b]),isAvailable:l}}},53906:(a,b,c)=>{Promise.resolve().then(c.bind(c,5682))},54834:(a,b,c)=>{Promise.resolve().then(c.t.bind(c,31603,23)),Promise.resolve().then(c.t.bind(c,68495,23)),Promise.resolve().then(c.t.bind(c,75170,23)),Promise.resolve().then(c.t.bind(c,77526,23)),Promise.resolve().then(c.t.bind(c,78922,23)),Promise.resolve().then(c.t.bind(c,29234,23)),Promise.resolve().then(c.t.bind(c,12263,23)),Promise.resolve().then(c.bind(c,82146))},56379:(a,b,c)=>{"use strict";c.d(b,{V:()=>i});var d=c(21124),e=c(20481),f=c(23910),g=c(94260),h=c(17793);function i(){let a=(0,e.c)("worktree"),{updateInfo:b,hasUpdate:c,canSelfUpdate:i,state:j,logPath:k,errorKey:l,openConfirm:m}=(0,f.Y)();if(!b||!c&&"idle"===j)return null;let{latestVersion:n,releaseUrl:o,updateCommand:p,installType:q}=b,r="npx"===q,s=r?"npx commandmate@latest":"commandmate update";return(0,d.jsxs)("div",{className:"bg-accent-50 border border-accent-200 rounded-lg p-3 mt-2",role:"status","aria-label":a("update.available"),"data-testid":"update-notification-banner",children:[(0,d.jsx)("p",{className:"text-sm font-medium text-accent-800 mb-1",children:a("update.available")}),n&&(0,d.jsx)("p",{className:"text-sm text-accent-700 mb-2",children:a("update.latestVersion",{version:n})}),i&&"idle"===j&&(0,d.jsx)(g.$,{variant:"primary",size:"sm",className:"mb-2",onClick:m,"data-testid":"update-now-button",children:a("update.updateNow")}),r&&"idle"===j&&(0,d.jsx)("p",{className:"text-xs text-accent-600 mb-2","data-testid":"update-npx-notice",children:a("update.npxRestartNotice")}),("starting"===j||"updating"===j)&&(0,d.jsxs)("div",{className:"mb-2","data-testid":"update-progress",children:[(0,d.jsxs)("p",{className:"flex items-center text-sm text-accent-800",children:[(0,d.jsx)(h.y,{size:"sm",className:"mr-2"}),a("starting"===j?"update.starting":"update.updating")]}),"updating"===j&&(0,d.jsx)("p",{className:"text-xs text-accent-600 mt-1",children:a("update.updatingHint")})]}),"no-restart"===j&&(0,d.jsxs)("div",{className:"mb-2","data-testid":"update-no-restart",children:[(0,d.jsx)("p",{className:"text-sm font-medium text-accent-800",children:a("update.noRestartTitle")}),(0,d.jsx)("p",{className:"text-xs text-accent-600 mt-1",children:a("update.noRestartDescription")})]}),"timeout"===j&&(0,d.jsxs)("div",{className:"mb-2","data-testid":"update-timeout",children:[(0,d.jsx)("p",{className:"text-sm font-medium text-accent-800",children:a("update.timeoutTitle")}),(0,d.jsx)("p",{className:"text-xs text-accent-600 mt-1",children:a("update.timeoutDescription")}),(0,d.jsx)("code",{className:"block bg-accent-100 rounded px-2 py-1 mt-1 text-xs text-accent-900 font-mono",children:s})]}),"error"===j&&(0,d.jsxs)("div",{className:"mb-2","data-testid":"update-error",children:[(0,d.jsx)("p",{className:"text-sm font-medium text-accent-800",children:a("update.errorTitle")}),(0,d.jsx)("p",{className:"text-xs text-accent-600 mt-1",children:l?a(l):null}),(0,d.jsx)("code",{className:"block bg-accent-100 rounded px-2 py-1 mt-1 text-xs text-accent-900 font-mono",children:s})]}),k&&("no-restart"===j||"timeout"===j)&&(0,d.jsx)("p",{className:"text-xs text-accent-500 mb-2","data-testid":"update-log-hint",children:a("update.logHint",{path:k})}),p&&"global"===q&&"idle"===j&&(0,d.jsxs)("div",{className:"mb-2",children:[(0,d.jsx)("p",{className:"text-xs text-accent-600 mb-1",children:a("update.updateCommand")}),(0,d.jsx)("code",{className:"block bg-accent-100 rounded px-2 py-1 text-xs text-accent-900 font-mono",children:p})]}),o&&(0,d.jsxs)("a",{href:o,target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center text-sm text-accent-600 hover:text-accent-800 underline",children:[a("update.viewRelease"),(0,d.jsx)("span",{className:"ml-1","aria-hidden":"true",children:"→"})]}),(0,d.jsx)("p",{className:"text-xs text-accent-500 mt-2",children:a("update.dataPreserved")})]})}},57482:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>e});var d=c(97523);let e=async a=>[{type:"image/png",sizes:"192x192",url:(0,d.fillMetadataSegment)(".",await a.params,"icon2.png")+"?6e2321fdb8624653"}]},58315:(a,b,c)=>{"use strict";c.d(b,{AppProviders:()=>d});let d=(0,c(97954).registerClientReference)(function(){throw Error("Attempted to call AppProviders() from the server but AppProviders is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/CommandMate/CommandMate/src/components/providers/AppProviders.tsx","AppProviders")},58970:(a,b,c)=>{"use strict";c.d(b,{$B:()=>j,I2:()=>f,LK:()=>h,Ys:()=>i,pX:()=>d,s7:()=>e,tX:()=>g});let d=2e3,e=1500,f=2e3,g=150,h=100,i=200,j=100},60345:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>e});var d=c(97523);let e=async a=>[{type:"image/png",sizes:"96x96",url:(0,d.fillMetadataSegment)(".",await a.params,"icon1.png")+"?901e04bb11e9b7fd"}]},60887:(a,b,c)=>{var d={"./en/review.json":[83346,3346],"./ja/review.json":[49328,9328]};function e(a){if(!c.o(d,a))return Promise.resolve().then(()=>{var b=Error("Cannot find module '"+a+"'");throw b.code="MODULE_NOT_FOUND",b});var b=d[a],e=b[0];return c.e(b[1]).then(()=>c.t(e,19))}e.keys=()=>Object.keys(d),e.id=60887,a.exports=e},60957:(a,b,c)=>{"use strict";c.d(b,{H:()=>m});var d=c(21124),e=c(38301),f=c(20481),g=c(2535),h=c(94260),i=c(98033),j=c(56379),k=c(23910),l=c(90076);function m(){let a=(0,f.c)("worktree"),b=(0,l.a)(),{updateInfo:c,hasUpdate:m,canSelfUpdate:n,state:o,openConfirm:p}=(0,k.Y)(),[q,r]=(0,e.useState)(!1),s=c?.latestVersion??null;if(b||!s||"idle"===o&&!m)return null;let t="starting"===o||"updating"===o,u="no-restart"===o||"timeout"===o||"error"===o,v=a("update.buttonLabel",{version:s});return n||t||u?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)(h.$,{type:"button",variant:"primary",size:"sm",loading:t,onClick:u?()=>r(!0):p,className:"flex-shrink-0 gap-1.5 whitespace-nowrap","aria-label":t?a("update.buttonUpdating"):a("update.buttonAriaLabel",{version:s}),"aria-haspopup":"dialog","aria-busy":t,"data-testid":"app-update-button","data-state":o,children:[!t&&(0,d.jsx)(g.A,{size:16,"aria-hidden":"true"}),(0,d.jsx)("span",{children:t?a("update.buttonUpdating"):v})]}),u&&(0,d.jsx)(i.a,{isOpen:q,onClose:()=>r(!1),title:a("update.statusDialogTitle"),size:"sm",children:(0,d.jsx)(j.V,{})})]}):(0,d.jsxs)("a",{href:c?.releaseUrl??"https://github.com/Kewton/CommandMate/releases/latest",target:"_blank",rel:"noopener noreferrer",className:"inline-flex flex-shrink-0 items-center justify-center gap-1.5 whitespace-nowrap rounded-md px-3 py-1.5 text-sm font-medium bg-accent-600 dark:bg-accent-500 text-white hover:bg-accent-700 dark:hover:bg-accent-600 transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring","aria-label":a("update.buttonReleaseAriaLabel",{version:s}),"data-testid":"app-update-button",children:[(0,d.jsx)(g.A,{size:16,"aria-hidden":"true"}),(0,d.jsx)("span",{children:v})]})}},61118:(a,b,c)=>{var d={"./en/common.json":[73543,3543],"./ja/common.json":[53945,3945]};function e(a){if(!c.o(d,a))return Promise.resolve().then(()=>{var b=Error("Cannot find module '"+a+"'");throw b.code="MODULE_NOT_FOUND",b});var b=d[a],e=b[0];return c.e(b[1]).then(()=>c.t(e,19))}e.keys=()=>Object.keys(d),e.id=61118,a.exports=e},61135:()=>{},61916:(a,b,c)=>{"use strict";c.d(b,{jg:()=>f,kQ:()=>g,mR:()=>j,mS:()=>i,wf:()=>d});let d="terminal",e=new Set(["terminal","chat"]);function f(a){return"string"==typeof a&&e.has(a)}let g={data:null,messageId:null,visible:!1,answering:!1},h={mode:"split",mobileActivePane:"terminal",leftPaneTab:"history",splitRatio:.5,leftPaneCollapsed:!1,activityBar:{active:"files"},historyPane:{visible:!0,width:25,collapsed:!1}},i={type:null,message:null,retryable:!1,retryCount:0};function j(){return{phase:"idle",prompt:{...g},layout:{...h},error:{...i},messages:[],wsConnected:!1}}},62081:(a,b,c)=>{var d={"./en/autoYes.json":[44248,4248],"./ja/autoYes.json":[92534,2534]};function e(a){if(!c.o(d,a))return Promise.resolve().then(()=>{var b=Error("Cannot find module '"+a+"'");throw b.code="MODULE_NOT_FOUND",b});var b=d[a],e=b[0];return c.e(b[1]).then(()=>c.t(e,19))}e.keys=()=>Object.keys(d),e.id=62081,a.exports=e},62197:(a,b,c)=>{"use strict";c.d(b,{NS:()=>h,V0:()=>i});var d=c(21124),e=c(38301);let f=()=>{},g=(0,e.createContext)({isOpen:!1,open:f,close:f});function h({children:a}){let[b,c]=(0,e.useState)(!1),f=(0,e.useCallback)(()=>c(!0),[]),h=(0,e.useCallback)(()=>c(!1),[]),i=(0,e.useMemo)(()=>({isOpen:b,open:f,close:h}),[b,f,h]);return(0,d.jsx)(g.Provider,{value:i,children:a})}function i(){return(0,e.useContext)(g)}},63157:(a,b,c)=>{"use strict";c.d(b,{g7:()=>k,rC:()=>m,Fn:()=>l});var d=c(21124),e=c(38301),f=c(78352),g=c(74930);let h=[2e3,5e3,1e4];var i=c(47817);let j=(0,e.createContext)(null);function k({children:a}){let{worktrees:b,repositories:c,isLoading:k,error:l,refresh:m}=function(){let[a,b]=(0,e.useState)([]),[c,d]=(0,e.useState)([]),[i,j]=(0,e.useState)(!0),[k,l]=(0,e.useState)(null),m=(0,e.useRef)(null),n=(0,e.useRef)([]),o=(0,e.useRef)(null),p=(0,e.useRef)(0),q=(0,e.useRef)(null),r=(0,e.useRef)(!1),s=(0,e.useRef)(async()=>{}),t=(0,e.useCallback)(()=>{null!==q.current&&(clearTimeout(q.current),q.current=null)},[]),{connected:u,subscribe:v,unsubscribe:w,addListener:x}=(0,g.xM)(),y=(0,e.useRef)(u);y.current=u;let z=(0,e.useCallback)(async()=>{try{l(null),r.current&&0===n.current.length&&j(!0);let a=await fetch("/api/worktrees"),c=(0,f.O0)(a);if(c)throw c;if(!a.ok)throw Error(`Failed to fetch worktrees: ${a.status}`);let g=(0,f.xd)(a);if(g)throw g;let h=await a.json(),i=h.worktrees??[],k=h.repositories??[];(0,e.startTransition)(()=>{b(i),d(k),j(!1)}),n.current=i,r.current=!1,p.current=0,t()}catch(c){let a=c instanceof Error?c:Error(String(c));console.error("[useWorktreesCache] Failed to fetch worktrees:",a),r.current=!0,l(a),j(!1);let b=p.current;0===n.current.length&&b<h.length&&(p.current=b+1,t(),q.current=setTimeout(()=>{q.current=null,s.current()},h[b]))}},[t]);s.current=z;let A=(0,e.useCallback)(()=>n.current.some(a=>!0===a.isSessionRunning),[]),B=(0,e.useCallback)(()=>{let a=A();return y.current?a?2e4:6e4:a?5e3:3e4},[A]),C=(0,e.useCallback)(()=>{null!==m.current&&(clearInterval(m.current),m.current=null),o.current=null},[]);return(0,e.useCallback)(()=>{C();let a=B();o.current=a,m.current=setInterval(()=>{z()},a)},[B,z,C]),a.map(a=>a.id).sort().join(" "),{worktrees:a,repositories:c,isLoading:i,error:k,refresh:z}}(),n=(0,e.useMemo)(()=>({worktrees:b,repositories:c,isLoading:k,error:l,refresh:m}),[b,c,k,l,m]);return(0,d.jsx)(j.Provider,{value:n,children:(0,d.jsx)(i.H8,{externalWorktrees:b,externalRepositories:c,externalIsLoading:k,externalError:l,externalRefresh:m,children:a})})}function l(){let a=(0,e.useContext)(j);if(null===a)throw Error("useWorktreesCacheContext must be used within a WorktreesCacheProvider");return a}function m(){return(0,e.useContext)(j)}},63474:(a,b,c)=>{"use strict";c.d(b,{dj:()=>w,tE:()=>v});var d=c(21124),e=c(38301),f=c(23312),g=c(20481),h=c(75219),i=c(91292),j=c(16945),k=c(71117),l=c(47089),m=c(11010),n=c(58970),o=c(6074);let p=3e3;function q({type:a,iconColor:b}){let c=`h-5 w-5 ${b}`;switch(a){case"success":return(0,d.jsx)(h.A,{className:c,"data-testid":"toast-icon-success"});case"error":return(0,d.jsx)(i.A,{className:c,"data-testid":"toast-icon-error"});case"warning":return(0,d.jsx)(j.A,{className:c,"data-testid":"toast-icon-warning"});default:return(0,d.jsx)(k.A,{className:c,"data-testid":"toast-icon-info"})}}function r({id:a,message:b,type:c,onClose:f,duration:h=p,onClick:i}){let j=(0,g.c)("common"),k=(0,e.useRef)(null),m=function(a){switch(a){case"success":return{bgColor:"bg-success-subtle",borderColor:"border-success-border",textColor:"text-success-foreground",iconColor:"text-success-foreground"};case"error":return{bgColor:"bg-danger-subtle",borderColor:"border-danger-border",textColor:"text-danger-foreground",iconColor:"text-danger-foreground"};case"warning":return{bgColor:"bg-warning-subtle",borderColor:"border-warning-border",textColor:"text-warning-foreground",iconColor:"text-warning-foreground"};default:return{bgColor:"bg-info-subtle",borderColor:"border-info-border",textColor:"text-info-foreground",iconColor:"text-info-foreground"}}}(c),[r,s]=(0,e.useState)(!0),{shouldRender:t,isExiting:u}=(0,o.O)(r,n.Ys);(0,e.useRef)(f).current=f;let v=(0,e.useCallback)(()=>{k.current&&clearTimeout(k.current),s(!1)},[]);return(0,d.jsxs)("div",{"data-testid":`toast-${a}`,role:"alert",className:`
|
|
27
2
|
${m.bgColor}
|
|
28
3
|
${m.borderColor}
|
|
29
4
|
${m.textColor}
|
|
@@ -35,9 +10,9 @@ exports.id=8581,exports.ids=[8581],exports.modules={762:(a,b,c)=>{Promise.resolv
|
|
|
35
10
|
hover:opacity-70
|
|
36
11
|
focus:outline-none focus:ring-2 focus:ring-offset-2
|
|
37
12
|
transition-opacity
|
|
38
|
-
`,children:(0,d.jsx)(l.A,{className:"h-4 w-4"})})]})}function s({toasts:a,onClose:b}){let[c,g]=(0,e.useState)(!1),h=(0,d.jsx)("div",{"data-testid":"toast-container","aria-live":"polite",className:"fixed bottom-4 right-4 flex flex-col gap-2",style:{zIndex:m.M.TOAST},children:a.map(a=>(0,d.jsx)(r,{id:a.id,message:a.message,type:a.type,onClose:b,duration:a.duration,onClick:a.onClick},a.id))});return c?(0,f.createPortal)(h,document.body):null}function t(){let[a,b]=(0,e.useState)([]),c=(0,e.useRef)(0),d=(0,e.useCallback)((a,d="info",e=p,f)=>{let g=`toast-${++c.current}-${Date.now()}`,h={id:g,message:a,type:d,duration:e,...f?.onClick?{onClick:f.onClick}:{}};return b(a=>[...a,h]),g},[]),f=(0,e.useCallback)(a=>{b(b=>b.filter(b=>b.id!==a))},[]),g=(0,e.useCallback)(()=>{b([])},[]);return(0,e.useMemo)(()=>({toasts:a,showToast:d,removeToast:f,clearToasts:g}),[a,d,f,g])}let u=(0,e.createContext)(null);function v({children:a}){let b=t();return(0,d.jsxs)(u.Provider,{value:b,children:[a,(0,d.jsx)(s,{toasts:b.toasts,onClose:b.removeToast})]})}function w(){let a=(0,e.useContext)(u),b=t();return a??b}},64182:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>d});let d=(0,c(97954).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/runner/work/CommandMate/CommandMate/src/app/global-error.tsx\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/CommandMate/CommandMate/src/app/global-error.tsx","default")},64632:(a,b,c)=>{"use strict";c.d(b,{C:()=>h,E:()=>g});var d=c(21124),e=c(38301);let f=(0,e.createContext)({open:!1,setOpen:()=>{},toggle:()=>{}});function g({children:a}){let[b,c]=(0,e.useState)(!1),g=(0,e.useCallback)(()=>c(a=>!a),[]),h=(0,e.useMemo)(()=>({open:b,setOpen:c,toggle:g}),[b,g]);return(0,d.jsx)(f.Provider,{value:h,children:a})}function h(){return(0,e.useContext)(f)}},66125:(a,b,c)=>{var d={"./en/error.json":[22980,2980],"./ja/error.json":[10450,450]};function e(a){if(!c.o(d,a))return Promise.resolve().then(()=>{var b=Error("Cannot find module '"+a+"'");throw b.code="MODULE_NOT_FOUND",b});var b=d[a],e=b[0];return c.e(b[1]).then(()=>c.t(e,19))}e.keys=()=>Object.keys(d),e.id=66125,a.exports=e},67693:(a,b,c)=>{"use strict";c.d(b,{H:()=>g});var d=c(38301),e=c(74930),f=c(96823);function g(){let{addListener:a}=(0,e.xM)(),{enabled:b}=(0,f.Ql)();return(0,d.useRef)({enabled:b}).current={enabled:b},(0,d.useRef)(new Set),null}c(74132)},68132:(a,b,c)=>{Promise.resolve().then(c.bind(c,39800))},68232:(a,b,c)=>{"use strict";c.d(b,{Xn:()=>e,d9:()=>h,dI:()=>d,gB:()=>f,vK:()=>g});let d=["en","ja"],e="en",f="locale",g={en:"English",ja:"日本語"};function h(a){return"string"==typeof a&&d.includes(a)}},70288:(a,b,c)=>{var d={"./en/home.json":[41825,1825],"./ja/home.json":[26159,6159]};function e(a){if(!c.o(d,a))return Promise.resolve().then(()=>{var b=Error("Cannot find module '"+a+"'");throw b.code="MODULE_NOT_FOUND",b});var b=d[a],e=b[0];return c.e(b[1]).then(()=>c.t(e,19))}e.keys=()=>Object.keys(d),e.id=70288,a.exports=e},70911:(a,b,c)=>{"use strict";c.d(b,{$2:()=>g,B1:()=>n,If:()=>i,NP:()=>h,TR:()=>j,wp:()=>f});var d=c(61916);let e="commandmate.worktree.surfaceMode-",f="/api/settings/default-surface-mode";function g(a,b){return`${e}${a}-split-${b}`}function h(a){return`${e}${a}-mobile`}function i(a,b){}function j(a,b){let c=void 0===b?null:b;return c?(i(a,c),c):m()}let k=d.wf,l=new Set;function m(){return k}function n(a){if(!(0,d.jg)(a))return!1;let b=m()!==a;if(k=a,i("commandmate.settings.defaultSurfaceMode",a),b)for(let a of l)a();return b}},72280:(a,b,c)=>{"use strict";c.d(b,{n:()=>e});var d=c(21124);function e({className:a="w-3.5 h-3.5",color:b}){return(0,d.jsx)("svg",{className:`${a} flex-shrink-0`,viewBox:"0 0 24 24",fill:b??"none",stroke:b?"none":"currentColor",strokeWidth:2*!b,"aria-hidden":"true",children:(0,d.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M3 7v10a2 2 0 002 2h14a2 2 0 002-2V9a2 2 0 00-2-2h-6l-2-2H5a2 2 0 00-2 2z"})})}},72637:(a,b,c)=>{var d={"./en/prompt.json":[72816,2816],"./ja/prompt.json":[80066,7685]};function e(a){if(!c.o(d,a))return Promise.resolve().then(()=>{var b=Error("Cannot find module '"+a+"'");throw b.code="MODULE_NOT_FOUND",b});var b=d[a],e=b[0];return c.e(b[1]).then(()=>c.t(e,19))}e.keys=()=>Object.keys(d),e.id=72637,a.exports=e},73060:(a,b,c)=>{"use strict";c.d(b,{uN:()=>y,gZ:()=>ab,O3:()=>Y});var d=c(21124),e=c(38301),f=c(20481),g=c(71613),h=c(70584),i=c(24417),j=c(47089),k=c(8849),l=c(85866),m=c(17252),n=c(89907);function o(a){return!!a&&"object"==typeof a&&Array.isArray(a.defaultSelectedAgents)&&a.defaultSelectedAgents.length>0&&Array.isArray(a.available)&&a.available.length>0&&"number"==typeof a.minAgents&&"number"==typeof a.maxAgents}function p(){let a=(0,f.c)("common"),[b,c]=(0,e.useState)(null),[p,q]=(0,e.useState)([]),[r,s]=(0,e.useState)(!0),[t,u]=(0,e.useState)("idle"),[v,w]=(0,e.useState)(null);(0,e.useCallback)(async()=>{try{let a=await fetch(`${n.zk}?include=installed`);if(!a.ok)throw Error(String(a.status));let b=await a.json();if(!o(b))throw Error("unexpected body");c(b),q(b.defaultSelectedAgents),(0,n.IK)(b.defaultSelectedAgents)}catch{w(a("settings.defaultAgents.loadError"))}finally{s(!1)}},[a]);let x=(0,e.useCallback)(a=>{q(a),u("idle"),w(null)},[]),y=(0,e.useCallback)((a,b)=>{let c=a+b;if(c<0||c>=p.length)return;let d=[...p];[d[a],d[c]]=[d[c],d[a]],x(d)},[p,x]),z=(0,e.useCallback)(async b=>{u("saving"),w(null);try{let d=await fetch(n.zk,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({agents:b})}),e=await d.json().catch(()=>null);if(!d.ok||!o(e)){u("error"),w(e?.error??a("settings.defaultAgents.saveError"));return}c(a=>({...e,installed:a?.installed})),q(e.defaultSelectedAgents),(0,n.IK)(e.defaultSelectedAgents),u("saved")}catch{u("error"),w(a("settings.defaultAgents.saveError"))}},[a]);if(r)return(0,d.jsx)(l.Zp,{children:(0,d.jsxs)("div",{className:"flex items-center gap-2 text-sm text-muted-foreground",children:[(0,d.jsx)(l.y$,{size:"sm"}),a("loadingPage")]})});if(!b)return(0,d.jsx)(l.Zp,{children:(0,d.jsx)("div",{className:"text-sm text-danger-foreground","data-testid":"default-agents-load-error",children:v??a("settings.defaultAgents.loadError")})});let A=b.installed??[],B=b.available.filter(a=>!p.includes(a)),C=p.length<b.minAgents,D=p.length>b.maxAgents,E=!C&&!D&&"saving"!==t,F=b=>A.includes(b)?(0,d.jsxs)("span",{className:"inline-flex items-center gap-1 rounded bg-success-subtle px-1.5 py-0.5 text-xs text-success-foreground","data-testid":`default-agents-installed-${b}`,children:[(0,d.jsx)(g.A,{className:"h-3 w-3","aria-hidden":"true"}),a("settings.defaultAgents.installed")]}):(0,d.jsx)("span",{className:"text-xs text-muted-foreground",children:a("settings.defaultAgents.notInstalled")});return(0,d.jsx)(l.Zp,{children:(0,d.jsxs)("div",{className:"space-y-4","data-testid":"default-agents-settings",children:[(0,d.jsxs)("div",{children:[(0,d.jsx)("div",{className:"text-sm font-medium text-foreground",children:a("settings.defaultAgents.title")}),(0,d.jsx)("p",{className:"mt-1 text-xs text-muted-foreground",children:a("settings.defaultAgents.description")}),(0,d.jsx)("p",{className:"mt-1 text-xs text-muted-foreground",children:a("settings.defaultAgents.appliesToNew")})]}),(0,d.jsx)("ul",{className:"space-y-2","data-testid":"default-agents-selected",children:p.map((c,e)=>(0,d.jsxs)("li",{className:"flex items-center gap-2 rounded-md border border-border bg-surface px-3 py-2","data-testid":`default-agents-row-${c}`,children:[(0,d.jsx)("span",{className:"w-6 text-xs text-muted-foreground",children:e+1}),(0,d.jsx)("span",{className:"text-sm text-foreground",children:(0,m.oo)(c)}),0===e&&(0,d.jsx)("span",{className:"rounded bg-info-subtle px-1.5 py-0.5 text-xs text-info-foreground","data-testid":"default-agents-primary-badge",children:a("settings.defaultAgents.primary")}),(0,d.jsx)("span",{className:"ml-auto",children:F(c)}),(0,d.jsx)("button",{type:"button",className:"rounded p-1 text-muted-foreground hover:bg-muted disabled:opacity-40",onClick:()=>y(e,-1),disabled:0===e,"aria-label":a("settings.defaultAgents.moveUp"),"data-testid":`default-agents-up-${c}`,children:(0,d.jsx)(h.A,{className:"h-4 w-4","aria-hidden":"true"})}),(0,d.jsx)("button",{type:"button",className:"rounded p-1 text-muted-foreground hover:bg-muted disabled:opacity-40",onClick:()=>y(e,1),disabled:e===p.length-1,"aria-label":a("settings.defaultAgents.moveDown"),"data-testid":`default-agents-down-${c}`,children:(0,d.jsx)(i.A,{className:"h-4 w-4","aria-hidden":"true"})}),(0,d.jsx)("button",{type:"button",className:"rounded p-1 text-muted-foreground hover:bg-muted disabled:opacity-40",onClick:()=>x(p.filter(a=>a!==c)),disabled:p.length<=b.minAgents,"aria-label":a("settings.defaultAgents.remove"),"data-testid":`default-agents-remove-${c}`,children:(0,d.jsx)(j.A,{className:"h-4 w-4","aria-hidden":"true"})})]},c))}),B.length>0&&(0,d.jsxs)("div",{children:[(0,d.jsx)("div",{className:"mb-2 text-xs text-muted-foreground",children:a("settings.defaultAgents.addLabel")}),(0,d.jsx)("ul",{className:"space-y-2","data-testid":"default-agents-available",children:B.map(c=>(0,d.jsxs)("li",{className:"flex items-center gap-2 rounded-md border border-border px-3 py-2",children:[(0,d.jsx)("span",{className:"text-sm text-foreground",children:(0,m.oo)(c)}),(0,d.jsx)("span",{className:"ml-auto",children:F(c)}),(0,d.jsx)("button",{type:"button",className:"rounded p-1 text-muted-foreground hover:bg-muted disabled:opacity-40",onClick:()=>x([...p,c]),disabled:p.length>=b.maxAgents,"aria-label":a("settings.defaultAgents.add"),"data-testid":`default-agents-add-${c}`,children:(0,d.jsx)(k.A,{className:"h-4 w-4","aria-hidden":"true"})})]},c))})]}),(C||D)&&(0,d.jsx)("div",{className:"text-xs text-danger-foreground","data-testid":"default-agents-range-error",children:a("settings.defaultAgents.range",{min:b.minAgents,max:b.maxAgents})}),v&&(0,d.jsx)("div",{className:"text-xs text-danger-foreground","data-testid":"default-agents-error",children:v}),(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)(l.$n,{size:"sm",onClick:()=>void z(p),disabled:!E,"data-testid":"default-agents-save",children:"saving"===t?a("settings.defaultAgents.saving"):a("settings.defaultAgents.save")}),(0,d.jsx)(l.$n,{size:"sm",variant:"ghost",onClick:()=>void z(null),disabled:!b.configured||"saving"===t,"data-testid":"default-agents-reset",children:a("settings.defaultAgents.reset")}),(0,d.jsx)("span",{className:"text-xs text-muted-foreground","data-testid":"default-agents-state",children:"saved"===t?a("settings.defaultAgents.saved"):b.configured?a("settings.defaultAgents.configured"):a("settings.defaultAgents.usingBuiltIn")})]}),b.configured&&(0,d.jsx)("div",{className:"text-xs text-muted-foreground","data-testid":"default-agents-builtin",children:a("settings.defaultAgents.builtIn",{agents:b.constantDefault.map(m.oo).join(", ")})})]})})}var q=c(70911),r=c(61916);function s(a){return!!a&&"object"==typeof a&&(0,r.jg)(a.defaultSurfaceMode)&&(0,r.jg)(a.constantDefault)&&Array.isArray(a.available)&&a.available.length>0&&a.available.every(r.jg)}function t(){let a=(0,f.c)("common"),[b,c]=(0,e.useState)(null),[g,h]=(0,e.useState)(!0),[i,j]=(0,e.useState)("idle"),[k,m]=(0,e.useState)(null),n=(0,e.useCallback)(async()=>{try{let a=await fetch(q.wp);if(!a.ok)throw Error(String(a.status));let b=await a.json();if(!s(b))throw Error("unexpected body");c(b),(0,q.B1)(b.defaultSurfaceMode)}catch{m({kind:"load"})}finally{h(!1)}},[]),o=(0,e.useCallback)(async a=>{j("saving"),m(null),c(b=>b?{...b,defaultSurfaceMode:a}:b);try{let b=await fetch(q.wp,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({mode:a})}),d=await b.json().catch(()=>null);if(!b.ok||!s(d)){j("error"),m({kind:"save",detail:d?.error}),n();return}c(d),(0,q.B1)(d.defaultSurfaceMode),j("saved")}catch{j("error"),m({kind:"save"}),n()}},[n]),p=k?k.detail??a("load"===k.kind?"settings.defaultSurfaceMode.loadError":"settings.defaultSurfaceMode.saveError"):null;return g?(0,d.jsx)(l.Zp,{children:(0,d.jsxs)("div",{className:"flex items-center gap-2 text-sm text-muted-foreground",children:[(0,d.jsx)(l.y$,{size:"sm"}),a("loadingPage")]})}):b?(0,d.jsx)(l.Zp,{children:(0,d.jsxs)("div",{className:"space-y-4","data-testid":"default-surface-mode-settings",children:[(0,d.jsxs)("div",{children:[(0,d.jsx)("div",{className:"text-sm font-medium text-foreground",children:a("settings.defaultSurfaceMode.title")}),(0,d.jsx)("p",{className:"mt-1 text-xs text-muted-foreground",children:a("settings.defaultSurfaceMode.description")}),(0,d.jsx)("p",{className:"mt-1 text-xs text-muted-foreground",children:a("settings.defaultSurfaceMode.appliesToNew")})]}),(0,d.jsx)("div",{role:"radiogroup","aria-label":a("settings.defaultSurfaceMode.title"),className:"space-y-2","data-selected":b.defaultSurfaceMode,children:b.available.map(c=>(0,d.jsxs)("label",{className:"flex cursor-pointer items-start gap-2 rounded-md border border-border bg-surface px-3 py-2","data-testid":`default-surface-mode-option-${c}`,children:[(0,d.jsx)("input",{type:"radio",name:"default-surface-mode",value:c,className:"mt-0.5",checked:b.defaultSurfaceMode===c,disabled:"saving"===i,onChange:()=>void o(c),"data-testid":`default-surface-mode-radio-${c}`}),(0,d.jsxs)("span",{children:[(0,d.jsx)("span",{className:"block text-sm text-foreground",children:a(`settings.defaultSurfaceMode.mode.${c}`)}),(0,d.jsx)("span",{className:"block text-xs text-muted-foreground",children:a(`settings.defaultSurfaceMode.hint.${c}`)})]})]},c))}),p&&(0,d.jsx)("div",{className:"text-xs text-danger-foreground","data-testid":"default-surface-mode-error",children:p}),(0,d.jsx)("div",{className:"text-xs text-muted-foreground","data-testid":"default-surface-mode-state",children:"saving"===i?a("settings.defaultSurfaceMode.saving"):"saved"===i?a("settings.defaultSurfaceMode.saved"):b.configured?a("settings.defaultSurfaceMode.configured"):a("settings.defaultSurfaceMode.usingBuiltIn")})]})}):(0,d.jsx)(l.Zp,{children:(0,d.jsx)("div",{className:"text-sm text-danger-foreground","data-testid":"default-surface-mode-load-error",children:p??a("settings.defaultSurfaceMode.loadError")})})}var u=c(2535),v=c(16945),w=c(9212);function x(a){let b=a.trim();if(!b)return null;try{let a=JSON.parse(b);if(!a||"object"!=typeof a)return null;let c=a.type;if("plan"!==c&&"output"!==c&&"done"!==c)return null;return a}catch{return null}}function y({worktreeId:a,instances:b,variant:c="card"}){let g=(0,f.c)("common"),{versions:h,isLoading:i,loadError:j,run:k,isUpdating:n,update:o}=function(a=!0){let[b,c]=(0,e.useState)(null),[d,f]=(0,e.useState)(!1),[g,h]=(0,e.useState)(a),[i,j]=(0,e.useState)(null),[k,l]=(0,e.useState)(!1),m=(0,e.useRef)(!0),n=(0,e.useCallback)(async(b=!1)=>{if(a){h(!0);try{let a=await fetch(`/api/agents/versions${b?"?refresh=1":""}`);if(!a.ok)throw Error(String(a.status));let d=await a.json();if(!(d&&"object"==typeof d&&Array.isArray(d.tools)&&Array.isArray(d.updatable)))throw Error("unexpected body");if(!m.current)return;c(d.tools),f(!1)}catch{if(!m.current)return;f(!0)}finally{m.current&&h(!1)}}},[a]),o=(0,e.useCallback)(async a=>{if(k)return;l(!0),j({tool:a,command:null,output:"",ok:null,previousVersion:null,installed:null,error:null});let b=a=>{m.current&&j(b=>b?{...b,ok:!1,error:a}:b)};try{let c=await fetch("/api/agents/update",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({tool:a})});if(!c.ok||!c.body){let a=await c.json().catch(()=>null);b(a?.error??`Request failed (${c.status})`);return}let d=c.body.getReader(),e=new TextDecoder,f="",g=a=>{m.current&&j(b=>b?"plan"===a.type?{...b,command:a.command}:"output"===a.type?{...b,output:b.output+a.text}:{...b,ok:a.ok,previousVersion:a.previousVersion,installed:a.installed,error:a.error??null}:b)};for(;;){let{done:a,value:b}=await d.read();if(a)break;let c=(f+=e.decode(b,{stream:!0})).split("\n");for(let a of(f=c.pop()??"",c)){let b=x(a);b&&g(b)}}let h=x(f);h&&g(h)}catch(a){b(a instanceof Error?a.message:String(a))}finally{m.current&&l(!1),await n(!0)}},[k,n]);return{versions:b,isLoading:g,loadError:d,run:i,isUpdating:k,reload:n,update:o}}(!0),[p,q]=(0,e.useState)(0),r=function(a,b,c){let[d,f]=(0,e.useState)({});return d}(0,0,0),[s,t]=(0,e.useState)({}),[y,z]=(0,e.useState)(null),A=(0,e.useRef)(null),B=k?.ok===!0,C=(0,e.useCallback)(a=>(b??[]).filter(b=>b.cliTool===a&&r[b.id]),[b,r]),D=(0,e.useCallback)(async b=>{if(a){z(null);try{let c=new URLSearchParams({cliTool:b.cliTool,instance:b.id}),d=await fetch(`/api/worktrees/${a}/kill-session?${c.toString()}`,{method:"POST"});if(!d.ok&&404!==d.status)throw Error(String(d.status));t(a=>({...a,[b.id]:!0})),q(a=>a+1)}catch{z(g("agentUpdates.restartError"))}}},[a,g]),E=i&&!h?(0,d.jsxs)("div",{className:"flex items-center gap-2 text-sm text-muted-foreground",children:[(0,d.jsx)(l.y$,{size:"sm"}),g("loadingPage")]}):j&&!h?(0,d.jsx)("div",{className:"text-sm text-danger-foreground","data-testid":"agent-updates-load-error",children:g("agentUpdates.loadError")}):(0,d.jsxs)("div",{className:"space-y-3","data-testid":"agent-updates",children:[(0,d.jsxs)("div",{children:[(0,d.jsx)("div",{className:"text-sm font-medium text-foreground",children:g("agentUpdates.title")}),(0,d.jsx)("p",{className:"mt-1 text-xs text-muted-foreground",children:g("agentUpdates.description")})]}),(0,d.jsx)("ul",{className:"space-y-2","data-testid":"agent-updates-rows",children:(h??[]).map(b=>{var c;let e=C(b.tool),f=b.updatable&&null!==b.installed;return(0,d.jsxs)("li",{className:"rounded-md border border-border bg-surface px-3 py-2","data-testid":`agent-updates-row-${b.tool}`,children:[(0,d.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,d.jsx)("span",{className:"text-sm text-foreground",children:(c=b.tool,(0,m.oo)(c)||c)}),(0,d.jsx)("span",{className:"text-xs text-muted-foreground","data-testid":`agent-updates-installed-${b.tool}`,children:b.installed?g("agentUpdates.installed",{version:b.installed}):g("agentUpdates.notInstalled")}),b.updateAvailable&&(0,d.jsx)("span",{className:"rounded bg-info-subtle px-1.5 py-0.5 text-xs text-info-foreground","data-testid":`agent-updates-available-${b.tool}`,children:g("agentUpdates.available",{version:b.latestVersion??""})}),b.dismissedInCodex&&(0,d.jsx)("span",{className:"text-xs text-muted-foreground","data-testid":`agent-updates-dismissed-${b.tool}`,children:g("agentUpdates.dismissed")}),f&&(0,d.jsxs)(l.$n,{size:"sm",className:"ml-auto",disabled:n,onClick:()=>void o(b.tool),"data-testid":`agent-updates-update-${b.tool}`,children:[(0,d.jsx)(u.A,{className:"h-4 w-4","aria-hidden":"true"}),n&&k?.tool===b.tool?g("agentUpdates.updating"):g("agentUpdates.update")]})]}),f&&e.length>0&&(0,d.jsxs)("div",{className:"mt-2 flex items-start gap-1 text-xs text-warning-foreground","data-testid":`agent-updates-restart-warning-${b.tool}`,children:[(0,d.jsx)(v.A,{className:"mt-0.5 h-3 w-3 shrink-0","aria-hidden":"true"}),(0,d.jsx)("span",{children:g("agentUpdates.restartWarning",{sessions:e.map(a=>a.alias).join(", ")})})]}),f&&0===e.length&&void 0===a&&(0,d.jsx)("p",{className:"mt-2 text-xs text-muted-foreground","data-testid":`agent-updates-restart-notice-${b.tool}`,children:g("agentUpdates.restartNotice")}),B&&k?.tool===b.tool&&e.map(a=>(0,d.jsxs)("div",{className:"mt-2 flex items-center gap-2",children:[(0,d.jsxs)(l.$n,{size:"sm",variant:"ghost",disabled:s[a.id],onClick:()=>void D(a),"data-testid":`agent-updates-restart-${a.id}`,children:[(0,d.jsx)(w.A,{className:"h-4 w-4","aria-hidden":"true"}),g("agentUpdates.restart",{alias:a.alias})]}),s[a.id]&&(0,d.jsx)("span",{className:"text-xs text-muted-foreground",children:g("agentUpdates.restarted")})]},a.id))]},b.tool)})}),k&&(0,d.jsxs)("div",{className:"space-y-2","data-testid":"agent-updates-run",children:[k.command&&(0,d.jsx)("div",{className:"text-xs text-muted-foreground","data-testid":"agent-updates-command",children:g("agentUpdates.running",{command:k.command})}),k.output&&(0,d.jsx)("pre",{ref:A,"data-testid":"agent-updates-output",className:"max-h-48 overflow-auto whitespace-pre-wrap rounded-md bg-terminal-surface p-2 text-xs text-terminal-foreground",children:k.output}),!0===k.ok&&(0,d.jsx)("div",{className:"text-xs text-success-foreground","data-testid":"agent-updates-success",children:g("agentUpdates.succeeded",{from:k.previousVersion??"?",to:k.installed??"?"})}),!1===k.ok&&(0,d.jsx)("div",{className:"text-xs text-danger-foreground","data-testid":"agent-updates-failure",children:g("agentUpdates.failed",{error:k.error??""})})]}),y&&(0,d.jsx)("div",{className:"text-xs text-danger-foreground","data-testid":"agent-updates-restart-error",children:y})]});return"plain"===c?E:(0,d.jsx)(l.Zp,{children:E})}var z=c(3991),A=c.n(z);function B({appId:a,pollInterval:b=3e4,showResponseTime:c=!1,compact:g=!1}){let h=(0,f.c)("externalApps"),[i,j]=(0,e.useState)(null),[k,l]=(0,e.useState)(!0);if((0,e.useCallback)(async()=>{try{let b=await fetch(`/api/external-apps/${a}/health`);if(b.ok){let a=await b.json();j(a)}else j({id:a,healthy:!1,lastChecked:Date.now(),error:"Failed to check health"})}catch{j({id:a,healthy:!1,lastChecked:Date.now(),error:"Network error"})}finally{l(!1)}},[a]),k)return(0,d.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,d.jsx)("span",{className:"inline-block h-2.5 w-2.5 rounded-full bg-muted-foreground animate-pulse"}),!g&&(0,d.jsx)("span",{className:"text-xs text-muted-foreground",children:h("status.checking")})]});let m=i?.healthy??!1,n=m?"bg-success":"bg-muted-foreground",o=h(m?"status.running":"status.stopped");return g?(0,d.jsx)("span",{className:`inline-block h-2.5 w-2.5 rounded-full ${n}`,title:o}):(0,d.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,d.jsx)("span",{className:`inline-block h-2.5 w-2.5 rounded-full ${n}`}),(0,d.jsx)("span",{className:`text-xs ${m?"text-success-foreground":"text-muted-foreground"}`,children:o}),c&&i?.responseTime!==void 0&&(0,d.jsxs)("span",{className:"text-xs text-muted-foreground",children:["(",i.responseTime,"ms)"]})]})}function C({app:a,onEdit:b,onDelete:c}){var g;let h=(0,f.c)("externalApps"),i=(0,f.c)("common"),[j,k]=(0,e.useState)(!1),[m,n]=(0,e.useState)(!1),o=async()=>{n(!0);try{await c(a.id)}finally{n(!1),k(!1)}},p=`/proxy/${a.pathPrefix}/`;return(0,d.jsxs)(l.Zp,{padding:"md",className:"relative",children:[(0,d.jsxs)("div",{className:"flex items-start justify-between mb-3",children:[(0,d.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,d.jsx)("h4",{className:"text-base font-semibold text-foreground truncate",children:a.displayName}),(0,d.jsx)("p",{className:"text-xs text-muted-foreground mt-0.5 font-mono truncate",children:a.name})]}),(0,d.jsx)(l.Ex,{variant:{sveltekit:"warning",streamlit:"error",nextjs:"info",other:"gray"}[a.appType]||"gray",children:{sveltekit:"SvelteKit",streamlit:"Streamlit",nextjs:"Next.js",other:"Other"}[g=a.appType]||g})]}),(0,d.jsxs)("div",{className:"space-y-2 mb-4",children:[(0,d.jsxs)("div",{className:"flex items-center justify-between",children:[(0,d.jsx)("span",{className:"text-sm text-muted-foreground",children:h("card.status")}),(0,d.jsx)(B,{appId:a.id,pollInterval:3e4})]}),(0,d.jsxs)("div",{className:"flex items-center justify-between",children:[(0,d.jsx)("span",{className:"text-sm text-muted-foreground",children:h("card.port")}),(0,d.jsxs)("span",{className:"text-sm font-mono text-foreground",children:[":",a.targetPort]})]}),(0,d.jsxs)("div",{className:"flex items-center justify-between",children:[(0,d.jsx)("span",{className:"text-sm text-muted-foreground",children:h("card.path")}),(0,d.jsxs)("span",{className:"text-sm font-mono text-foreground truncate max-w-[150px]",children:["/proxy/",a.pathPrefix,"/"]})]}),a.websocketEnabled&&(0,d.jsxs)("div",{className:"flex items-center justify-between",children:[(0,d.jsx)("span",{className:"text-sm text-muted-foreground",children:h("card.websocket")}),(0,d.jsx)(l.Ex,{variant:"info",children:h("card.enabled")})]}),!a.enabled&&(0,d.jsx)("div",{className:"mt-2 py-1 px-2 bg-warning-subtle border border-warning-border rounded text-xs text-warning-foreground",children:h("card.disabledNotice")})]}),j?(0,d.jsxs)("div",{className:"space-y-2",children:[(0,d.jsx)("p",{className:"text-sm text-muted-foreground",children:h("card.deleteConfirm",{name:a.displayName})}),(0,d.jsxs)("div",{className:"flex gap-2",children:[(0,d.jsx)(l.$n,{variant:"danger",size:"sm",onClick:o,disabled:m,loading:m,children:h("card.delete")}),(0,d.jsx)(l.$n,{variant:"ghost",size:"sm",onClick:()=>k(!1),disabled:m,children:i("cancel")})]})]}):(0,d.jsxs)("div",{className:"flex gap-2 flex-wrap",children:[(0,d.jsx)(l.$n,{variant:"primary",size:"sm",onClick:()=>window.open(p,"_blank"),disabled:!a.enabled,children:h("card.open")}),(0,d.jsx)(l.$n,{variant:"secondary",size:"sm",onClick:()=>b(a),children:h("card.settings")}),(0,d.jsx)(l.$n,{variant:"ghost",size:"sm",onClick:()=>k(!0),className:"text-danger-foreground hover:bg-danger-subtle",children:h("card.delete")})]})]})}var D=c(35595);let E={MIN:1024,MAX:65535},F=/^[a-zA-Z0-9-]+$/,G={sveltekit:"SvelteKit",streamlit:"Streamlit",nextjs:"Next.js",other:"Other"},H=["sveltekit","streamlit","nextjs","other"].map(a=>({value:a,label:G[a]}));function I({isOpen:a,onClose:b,editApp:c,onSave:g}){let h=(0,f.c)("externalApps"),i=(0,f.c)("common"),j=!!c,[k,m]=(0,e.useState)(""),[n,o]=(0,e.useState)(""),[p,q]=(0,e.useState)(""),[r,s]=(0,e.useState)(""),[t,u]=(0,e.useState)(""),[v,w]=(0,e.useState)(!1),[x,y]=(0,e.useState)(""),[z,A]=(0,e.useState)(!0),[B,C]=(0,e.useState)({}),[G,I]=(0,e.useState)(!1),[J,K]=(0,e.useState)(null),L=async a=>{a.preventDefault(),K(null);let d=function(a,b){let c={};if(a.displayName?.trim()||(c.displayName="Display name is required"),!b&&(a.name?.trim()?F.test(a.name)||(c.name="Only alphanumeric characters and hyphens are allowed"):c.name="Identifier name is required",a.pathPrefix?.trim()?F.test(a.pathPrefix)||(c.pathPrefix="Only alphanumeric characters and hyphens are allowed"):c.pathPrefix="Path prefix is required"),a.targetPort){var d;"number"!=typeof a.targetPort||Number.isInteger(d=a.targetPort)&&d>=E.MIN&&d<=E.MAX||(c.targetPort=`Port must be between ${E.MIN} and ${E.MAX}`)}else c.targetPort="Port number is required";return b||a.appType||(c.appType="App type is required"),c}({displayName:k,name:n,pathPrefix:p,targetPort:r,appType:t},j);if(Object.keys(d).length>0)return void C(d);C({}),I(!0);try{if(j&&c){let a=await fetch(`/api/external-apps/${c.id}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({displayName:k,description:x||void 0,targetPort:r||void 0,websocketEnabled:v,enabled:z})});if(!a.ok){let b=await a.json();throw Error(b.error||h("form.updateFailed"))}}else{let a=await fetch("/api/external-apps",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({displayName:k,name:n,pathPrefix:p,targetPort:r,appType:t,websocketEnabled:v,description:x||void 0})});if(!a.ok){let b=await a.json();throw Error(b.error||h("form.createFailed"))}}g(),b()}catch(a){K(a instanceof Error?a.message:h("form.genericError"))}finally{I(!1)}};return(0,d.jsx)(l.Jh,{isOpen:a,onClose:b,title:j?h("form.editTitle"):h("form.addTitle"),size:"md",children:(0,d.jsxs)("form",{onSubmit:L,className:"space-y-4",children:[(0,d.jsx)("div",{className:"rounded-md bg-warning-subtle p-3 mb-4 border border-warning-border",children:(0,d.jsx)("p",{className:"text-sm text-warning-foreground",children:h("form.securityWarning")})}),(0,d.jsxs)("div",{children:[(0,d.jsxs)("label",{htmlFor:"displayName",className:"block text-sm font-medium text-foreground mb-1",children:[h("form.displayName")," ",(0,d.jsx)("span",{className:"text-danger",children:"*"})]}),(0,d.jsx)(l.pd,{id:"displayName",type:"text",value:k,onChange:a=>m(a.target.value),className:B.displayName?"border-danger":"",placeholder:h("form.displayNamePlaceholder"),disabled:G}),B.displayName&&(0,d.jsx)("p",{className:"mt-1 text-xs text-danger",children:B.displayName})]}),!j&&(0,d.jsxs)("div",{children:[(0,d.jsxs)("label",{htmlFor:"name",className:"block text-sm font-medium text-foreground mb-1",children:[h("form.identifierName")," ",(0,d.jsx)("span",{className:"text-danger",children:"*"})]}),(0,d.jsx)(l.pd,{id:"name",type:"text",value:n,onChange:a=>o(a.target.value),className:`font-mono ${B.name?"border-danger":""}`,placeholder:h("form.identifierNamePlaceholder"),disabled:G}),(0,d.jsx)("p",{className:"mt-1 text-xs text-muted-foreground",children:h("form.identifierNameHelp")}),B.name&&(0,d.jsx)("p",{className:"mt-1 text-xs text-danger",children:B.name})]}),!j&&(0,d.jsxs)("div",{children:[(0,d.jsxs)("label",{htmlFor:"pathPrefix",className:"block text-sm font-medium text-foreground mb-1",children:[h("form.pathPrefix")," ",(0,d.jsx)("span",{className:"text-danger",children:"*"})]}),(0,d.jsxs)("div",{className:"flex items-center",children:[(0,d.jsx)("span",{className:"text-sm text-muted-foreground mr-1",children:"/proxy/"}),(0,d.jsx)(l.pd,{id:"pathPrefix",type:"text",value:p,onChange:a=>q(a.target.value),className:`w-auto flex-1 font-mono ${B.pathPrefix?"border-danger":""}`,placeholder:h("form.pathPrefixPlaceholder"),disabled:G}),(0,d.jsx)("span",{className:"text-sm text-muted-foreground ml-1",children:"/"})]}),(0,d.jsx)("p",{className:"mt-1 text-xs text-muted-foreground",children:h("form.pathPrefixHelp")}),B.pathPrefix&&(0,d.jsx)("p",{className:"mt-1 text-xs text-danger",children:B.pathPrefix})]}),(0,d.jsxs)("div",{children:[(0,d.jsxs)("label",{htmlFor:"targetPort",className:"block text-sm font-medium text-foreground mb-1",children:[h("form.portNumber")," ",(0,d.jsx)("span",{className:"text-danger",children:"*"})]}),(0,d.jsx)(l.pd,{id:"targetPort",type:"number",value:r,onChange:a=>s(a.target.value?parseInt(a.target.value,10):""),className:`font-mono ${B.targetPort?"border-danger":""}`,placeholder:h("form.portNumberPlaceholder"),min:E.MIN,max:E.MAX,disabled:G}),(0,d.jsx)("p",{className:"mt-1 text-xs text-muted-foreground",children:h("form.portNumberHelp",{min:E.MIN,max:E.MAX})}),B.targetPort&&(0,d.jsx)("p",{className:"mt-1 text-xs text-danger",children:B.targetPort})]}),!j&&(0,d.jsxs)("div",{children:[(0,d.jsxs)("label",{htmlFor:"appType",className:"block text-sm font-medium text-foreground mb-1",children:[h("form.appType")," ",(0,d.jsx)("span",{className:"text-danger",children:"*"})]}),(0,d.jsxs)("select",{id:"appType",value:t,onChange:a=>u(a.target.value),className:(0,D.cn)((0,l.j1)(),B.appType&&"border-danger"),disabled:G,children:[(0,d.jsx)("option",{value:"",children:h("form.appTypePlaceholder")}),H.map(a=>(0,d.jsx)("option",{value:a.value,children:a.label},a.value))]}),B.appType&&(0,d.jsx)("p",{className:"mt-1 text-xs text-danger",children:B.appType})]}),(0,d.jsxs)("div",{children:[(0,d.jsx)("label",{htmlFor:"description",className:"block text-sm font-medium text-foreground mb-1",children:h("form.description")}),(0,d.jsx)(l.k_,{id:"description",value:x,onChange:a=>y(a.target.value),placeholder:h("form.descriptionPlaceholder"),rows:2,disabled:G})]}),(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)(l.dO,{id:"websocketEnabled",checked:v,onCheckedChange:w,disabled:G}),(0,d.jsx)("label",{htmlFor:"websocketEnabled",className:"text-sm text-foreground",children:h("form.websocketLabel")})]}),j&&(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)(l.dO,{id:"enabled",checked:z,onCheckedChange:A,disabled:G}),(0,d.jsx)("label",{htmlFor:"enabled",className:"text-sm text-foreground",children:h("form.enabledLabel")})]}),J&&(0,d.jsx)("div",{className:"p-3 bg-danger-subtle border border-danger-border rounded text-sm text-danger-foreground",children:J}),(0,d.jsxs)("div",{className:"flex justify-end gap-2 pt-4 border-t border-border",children:[(0,d.jsx)(l.$n,{type:"button",variant:"ghost",onClick:b,disabled:G,children:i("cancel")}),(0,d.jsx)(l.$n,{type:"submit",variant:"primary",loading:G,children:j?h("form.save"):h("form.add")})]})]})})}function J(){let a=(0,f.c)("externalApps"),b=(0,f.c)("common"),[c,g]=(0,e.useState)([]),[h,i]=(0,e.useState)(!0),[j,k]=(0,e.useState)(null),[m,n]=(0,e.useState)(!1),[o,p]=(0,e.useState)(null),q=(0,e.useCallback)(async()=>{try{k(null);let a=await fetch("/api/external-apps");if(!a.ok)throw Error("Failed to fetch external apps");let b=await a.json();g(b.apps||[])}catch(a){k(a instanceof Error?a.message:"An error occurred")}finally{i(!1)}},[]),r=(0,e.useCallback)(a=>{p(a),n(!0)},[]),s=(0,e.useCallback)(()=>{p(null),n(!0)},[]),t=(0,e.useCallback)(async a=>{try{let b=await fetch(`/api/external-apps/${a}`,{method:"DELETE"});if(!b.ok){let a=await b.json();throw Error(a.error||"Failed to delete app")}q()}catch(a){console.error("Failed to delete app:",a)}},[q]),u=(0,e.useCallback)(()=>{q()},[q]),v=(0,e.useCallback)(()=>{n(!1),p(null)},[]);return(0,d.jsxs)("div",{className:"space-y-4",children:[(0,d.jsx)("div",{className:"flex items-center justify-end",children:(0,d.jsx)(l.$n,{variant:"primary",size:"sm",onClick:s,children:a("manager.addApp")})}),h?(0,d.jsx)(l.Zp,{padding:"lg",children:(0,d.jsxs)("div",{className:"flex items-center justify-center py-8",children:[(0,d.jsx)(l.y$,{size:"xl",variant:"accent"}),(0,d.jsx)("span",{className:"ml-3 text-muted-foreground",children:a("manager.loading")})]})}):j?(0,d.jsx)(l.Zp,{padding:"lg",children:(0,d.jsxs)("div",{className:"text-center py-8",children:[(0,d.jsx)("p",{className:"text-danger-foreground mb-4",children:a("manager.loadError")}),(0,d.jsx)(l.$n,{variant:"secondary",size:"sm",onClick:q,children:b("retry")})]})}):0===c.length?(0,d.jsx)(l.Zp,{padding:"lg",children:(0,d.jsxs)("div",{className:"text-center py-8",children:[(0,d.jsx)("p",{className:"text-muted-foreground mb-4",children:a("manager.empty")}),(0,d.jsx)("p",{className:"text-sm text-muted-foreground mb-4",children:a("manager.emptyHelp")}),(0,d.jsx)(l.$n,{variant:"primary",size:"sm",onClick:s,children:a("manager.addFirst")})]})}):(0,d.jsx)("div",{className:"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-4",children:c.map(a=>(0,d.jsx)(C,{app:a,onEdit:r,onDelete:t},a.id))}),(0,d.jsx)(I,{isOpen:m,onClose:v,editApp:o,onSave:u})]})}var K=c(47268),L=c(63474),M=c(96823);let N={enabled:!0,thresholdMinutes:10},O=[5,10,30,60];function P(){let a=(0,f.c)("notifications"),{showToast:b}=(0,L.dj)(),[c,g]=(0,e.useState)(!0),[h,i]=(0,e.useState)(!1),[j,k]=(0,e.useState)(!0),[m,n]=(0,e.useState)(!1),[o,p]=(0,e.useState)(null),[q,r]=(0,e.useState)(null),[s,t]=(0,e.useState)(!1),[u,v]=(0,e.useState)(null),[w,x]=(0,e.useState)({prompt:!0,completion:!1}),[y,z]=(0,e.useState)(!1),[A,B]=(0,e.useState)(null),[C,D]=(0,e.useState)(null),E=null!==u&&!1!==C,F=(0,e.useCallback)(async()=>{if(q){i(!0);try{let c=await Notification.requestPermission();if("granted"!==c){t("denied"===c),b(a("toast.error"),"error");return}if(!await navigator.serviceWorker.getRegistration())return void b(a("toast.error"),"error");let d=await navigator.serviceWorker.ready,e=await d.pushManager.subscribe({userVisibleOnly:!0,applicationServerKey:function(a){let b="=".repeat((4-a.length%4)%4),c=atob((a+b).replace(/-/g,"+").replace(/_/g,"/")),d=new Uint8Array(new ArrayBuffer(c.length));for(let a=0;a<c.length;a++)d[a]=c.charCodeAt(a);return d}(q)}),f=await fetch("/api/push/subscriptions",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({subscription:e.toJSON(),deviceLabel:navigator.userAgent.slice(0,120)})});if(!f.ok)throw Error("subscribe request failed");let g=await f.json();v(e.endpoint),D(!0),B(null),g.subscription?.preferences&&x(g.subscription.preferences),z(g.subscription?.defaultsNoticePending===!0),t(!1),b(a("toast.enabled"),"success")}catch{b(a("toast.error"),"error")}finally{i(!1)}}},[q,b,a]),G=(0,e.useCallback)(async()=>{i(!0);try{let c=await navigator.serviceWorker.getRegistration(),d=c?await c.pushManager.getSubscription():null,e=d?.endpoint??u;d&&await d.unsubscribe(),e&&await fetch("/api/push/subscriptions",{method:"DELETE",headers:{"Content-Type":"application/json"},body:JSON.stringify({endpoint:e})}),v(null),D(null),B(null),b(a("toast.disabled"),"info")}catch{b(a("toast.error"),"error")}finally{i(!1)}},[u,b,a]),H=(0,e.useCallback)(async(c,d)=>{if(!u)return;let e={...w,[c]:d};x(e);try{if(!(await fetch("/api/push/subscriptions",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({endpoint:u,preferences:e})})).ok)throw Error("update failed");b(a("toast.updated"),"success")}catch{x(w),b(a("toast.error"),"error")}},[u,w,b,a]),I=(0,e.useCallback)(async c=>{if(!u)return;let d=c?{...w,completion:!1}:w;z(!1),c&&x(d),i(!0);try{if(!(await fetch("/api/push/subscriptions",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({endpoint:u,...c?{preferences:d}:{},acknowledgeDefaultsNotice:!0})})).ok)throw Error("acknowledge failed");b(a(c?"defaultsNotice.adopted":"defaultsNotice.kept"),"success")}catch{x(w),z(!0),b(a("toast.error"),"error")}finally{i(!1)}},[u,w,b,a]);return(0,d.jsxs)("div",{className:"space-y-4",children:[(0,d.jsx)(l.Zp,{children:(0,d.jsx)(R,{})}),(0,d.jsx)(l.Zp,{children:c?(0,d.jsx)("div",{className:"flex items-center gap-2 text-sm text-muted-foreground",children:(0,d.jsx)(l.y$,{size:"sm"})}):j?m?(0,d.jsx)("p",{className:"text-sm text-muted-foreground","data-testid":"notifications-ios-guidance",children:a("ios.guidance")}):!1===o?(0,d.jsx)("p",{className:"text-sm text-muted-foreground",children:a("notConfigured")}):(0,d.jsxs)("div",{className:"space-y-4",children:[(0,d.jsx)("p",{className:"text-sm text-muted-foreground",children:a("description")}),s&&(0,d.jsx)("p",{className:"text-sm text-danger-foreground","data-testid":"notifications-permission-denied",children:a("permission.denied")}),(()=>{if(null===A)return null;let b="removed"===A.state,c=A.statusCode,e=b?null===c?a("delivery.removedUnknownStatus"):a("delivery.removed",{status:String(c)}):null===c?a("delivery.failingUnknownStatus",{count:A.failureCount}):a("delivery.failing",{count:A.failureCount,status:String(c)});return(0,d.jsxs)("div",{className:b?"space-y-2 rounded-lg border border-danger-border bg-danger-subtle p-3":"space-y-2 rounded-lg border border-warning-border bg-warning-subtle p-3","data-testid":"notifications-delivery-health","data-delivery-state":A.state,children:[(0,d.jsx)("p",{className:b?"text-sm font-semibold text-danger-foreground":"text-sm font-semibold text-warning-foreground",children:a(b?"delivery.headingRemoved":"delivery.headingFailing")}),(0,d.jsx)("p",{className:"text-xs text-foreground",children:e}),403===c&&(0,d.jsx)("p",{className:"text-xs text-muted-foreground","data-testid":"notifications-delivery-apns-hint",children:a("delivery.apnsHint")}),(0,d.jsx)("p",{className:"text-xs text-muted-foreground",children:a("delivery.since",{timestamp:new Date(A.firstFailureAt).toLocaleString()})})]})})(),E?(0,d.jsxs)("div",{className:"space-y-4",children:[(0,d.jsx)("p",{className:"text-sm font-medium text-foreground",children:a("enabledOnThisDevice")}),y&&(0,d.jsxs)("div",{className:"space-y-3 rounded-lg border border-info-border bg-info-subtle p-3","data-testid":"notifications-defaults-notice",children:[(0,d.jsx)("p",{className:"text-sm font-semibold text-info-foreground",children:a("defaultsNotice.heading")}),(0,d.jsx)("p",{className:"text-xs text-foreground",children:a("defaultsNotice.completionChanged")}),(0,d.jsx)("p",{className:"text-xs text-foreground",children:a("defaultsNotice.failuresAdded")}),(0,d.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,d.jsx)(l.$n,{variant:"primary",onClick:()=>I(!0),disabled:h,"data-testid":"notifications-defaults-notice-adopt",children:a("defaultsNotice.adopt")}),(0,d.jsx)(l.$n,{variant:"secondary",onClick:()=>I(!1),disabled:h,"data-testid":"notifications-defaults-notice-keep",children:a("defaultsNotice.keep")})]})]}),(0,d.jsxs)("div",{className:"space-y-3",children:[(0,d.jsx)("div",{className:"text-xs font-medium uppercase tracking-wide text-muted-foreground",children:a("types.heading")}),(0,d.jsxs)("label",{className:"flex items-center justify-between gap-4",children:[(0,d.jsxs)("span",{children:[(0,d.jsx)("span",{className:"block text-sm font-medium text-foreground",children:a("types.promptWaiting")}),(0,d.jsx)("span",{className:"block text-xs text-muted-foreground",children:a("types.promptWaitingDesc")})]}),(0,d.jsx)(l.dO,{checked:w.prompt,onCheckedChange:a=>H("prompt",a),disabled:h,"aria-label":a("types.promptWaiting"),"data-testid":"notifications-toggle-prompt"})]}),(0,d.jsxs)("label",{className:"flex items-center justify-between gap-4",children:[(0,d.jsxs)("span",{children:[(0,d.jsx)("span",{className:"block text-sm font-medium text-foreground",children:a("types.completion")}),(0,d.jsx)("span",{className:"block text-xs text-muted-foreground",children:a("types.completionDesc")})]}),(0,d.jsx)(l.dO,{checked:w.completion,onCheckedChange:a=>H("completion",a),disabled:h,"aria-label":a("types.completion"),"data-testid":"notifications-toggle-completion"})]})]}),(0,d.jsx)(l.$n,{variant:"secondary",onClick:G,disabled:h,"data-testid":"notifications-unsubscribe",children:a("unsubscribe")})]}):(0,d.jsxs)(l.$n,{variant:"primary",onClick:F,disabled:h||s||!q,"data-testid":"notifications-enable",children:[(0,d.jsx)(K.A,{className:"h-4 w-4"}),h?a("enabling"):a("enable")]})]}):(0,d.jsx)("p",{className:"text-sm text-muted-foreground",children:a("unsupported")})}),(0,d.jsx)(l.Zp,{children:(0,d.jsx)(Q,{})})]})}function Q(){let a=(0,f.c)("notifications"),{showToast:b}=(0,L.dj)(),[c,g]=(0,e.useState)(!0),[h,i]=(0,e.useState)(!1),[j,k]=(0,e.useState)(N),[m,n]=(0,e.useState)([...O]),o=(0,e.useCallback)(async c=>{k(c),i(!0);try{if(!(await fetch("/api/push/escalation",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({settings:c})})).ok)throw Error("update failed");b(a("toast.updated"),"success")}catch{k(j),b(a("toast.error"),"error")}finally{i(!1)}},[j,b,a]);return(0,d.jsxs)("div",{className:"space-y-3",children:[(0,d.jsx)("div",{className:"text-xs font-medium uppercase tracking-wide text-muted-foreground",children:a("escalation.heading")}),(0,d.jsxs)("label",{className:"flex items-center justify-between gap-4",children:[(0,d.jsxs)("span",{children:[(0,d.jsx)("span",{className:"block text-sm font-medium text-foreground",children:a("escalation.toggle")}),(0,d.jsx)("span",{className:"block text-xs text-muted-foreground",children:a("escalation.toggleDesc")})]}),(0,d.jsx)(l.dO,{checked:j.enabled,onCheckedChange:a=>o({...j,enabled:a}),disabled:c||h,"aria-label":a("escalation.toggle"),"data-testid":"notifications-toggle-escalation"})]}),(0,d.jsxs)("label",{className:"flex items-center justify-between gap-4",children:[(0,d.jsx)("span",{className:"text-sm text-foreground",children:a("escalation.threshold")}),(0,d.jsx)("select",{className:"rounded-md border border-border bg-background px-2 py-1 text-sm text-foreground",value:String(j.thresholdMinutes),disabled:c||h||!j.enabled,"aria-label":a("escalation.threshold"),"data-testid":"notifications-escalation-threshold",onChange:a=>o({...j,thresholdMinutes:Number(a.target.value)}),children:m.map(b=>(0,d.jsx)("option",{value:String(b),children:a("escalation.minutes",{count:b})},b))})]})]})}function R(){let a=(0,f.c)("notifications"),{enabled:b,setEnabled:c}=(0,M.qG)(),{enabled:e,setEnabled:g}=(0,M.Ql)();return(0,d.jsxs)("div",{className:"space-y-3",children:[(0,d.jsx)("div",{className:"text-xs font-medium uppercase tracking-wide text-muted-foreground",children:a("inApp.heading")}),(0,d.jsxs)("label",{className:"flex items-center justify-between gap-4",children:[(0,d.jsxs)("span",{children:[(0,d.jsx)("span",{className:"block text-sm font-medium text-foreground",children:a("inApp.waitingToggle")}),(0,d.jsx)("span",{className:"block text-xs text-muted-foreground",children:a("inApp.waitingToggleDesc")})]}),(0,d.jsx)(l.dO,{checked:b,onCheckedChange:c,"aria-label":a("inApp.waitingToggle"),"data-testid":"notifications-toggle-inapp-waiting"})]}),(0,d.jsxs)("label",{className:"flex items-center justify-between gap-4",children:[(0,d.jsxs)("span",{children:[(0,d.jsx)("span",{className:"block text-sm font-medium text-foreground",children:a("inApp.soundToggle")}),(0,d.jsx)("span",{className:"block text-xs text-muted-foreground",children:a("inApp.soundToggleDesc")})]}),(0,d.jsx)(l.dO,{checked:e,onCheckedChange:g,"aria-label":a("inApp.soundToggle"),"data-testid":"notifications-toggle-inapp-sound"})]})]})}function S({heading:a,children:b}){return(0,d.jsxs)("div",{className:"mb-8",children:[(0,d.jsx)("h2",{className:"text-lg font-semibold mb-4 text-foreground",children:a}),b]})}function T({onNavigate:a}){let b=(0,f.c)("common"),c=(0,f.c)("skills");return(0,d.jsx)(S,{heading:b("settings.sections.quickLinks"),children:(0,d.jsxs)("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-3",children:[(0,d.jsx)(A(),{href:"/repositories",className:"block","data-testid":"more-link-repositories",onClick:a,children:(0,d.jsxs)(l.Zp,{hover:!0,className:"transition-colors hover:border-accent-300 dark:hover:border-accent-700",children:[(0,d.jsx)("div",{className:"text-sm font-medium text-foreground",children:"Repositories"}),(0,d.jsx)("div",{className:"text-xs text-muted-foreground",children:"Manage repositories and worktrees"})]})}),(0,d.jsx)(A(),{href:"/skills",className:"block","data-testid":"more-link-skills",onClick:a,children:(0,d.jsxs)(l.Zp,{hover:!0,className:"transition-colors hover:border-accent-300 dark:hover:border-accent-700",children:[(0,d.jsx)("div",{className:"text-sm font-medium text-foreground",children:b("nav.skills")}),(0,d.jsx)("div",{className:"text-xs text-muted-foreground",children:c("page.description")})]})}),(0,d.jsx)(A(),{href:"/skills/installed",className:"block","data-testid":"more-link-skills-installed",onClick:a,children:(0,d.jsxs)(l.Zp,{hover:!0,className:"transition-colors hover:border-accent-300 dark:hover:border-accent-700",children:[(0,d.jsx)("div",{className:"text-sm font-medium text-foreground",children:c("dashboard.title")}),(0,d.jsx)("div",{className:"text-xs text-muted-foreground",children:c("dashboard.description")})]})})]})})}function U(){let a=(0,f.c)("common");return(0,d.jsx)(S,{heading:a("settings.sections.general"),children:(0,d.jsxs)("div",{className:"space-y-4",children:[(0,d.jsx)(p,{}),(0,d.jsx)(t,{}),(0,d.jsx)(y,{})]})})}function V(){let a=(0,f.c)("common");return(0,d.jsx)(S,{heading:a("settings.sections.notifications"),children:(0,d.jsx)(P,{})})}function W(){let a=(0,f.c)("common");return(0,d.jsx)(S,{heading:a("settings.sections.externalApps"),children:(0,d.jsx)(J,{})})}function X(){let a=(0,f.c)("common");return(0,d.jsx)(S,{heading:a("settings.sections.about"),children:(0,d.jsx)(l.Zp,{children:(0,d.jsx)("div",{className:"text-sm text-muted-foreground",children:"CommandMate - A local control plane for agent CLIs."})})})}function Y(){return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(T,{}),(0,d.jsx)(U,{}),(0,d.jsx)(V,{}),(0,d.jsx)(W,{}),(0,d.jsx)(X,{})]})}c(74132),c(67693),c(90102);var Z=c(98033),$=c(34592),_=c(62197);let aa=[{id:"general",labelKey:"settings.sections.general"},{id:"notifications",labelKey:"settings.sections.notifications"},{id:"externalApps",labelKey:"settings.sections.externalApps"},{id:"about",labelKey:"settings.sections.about"}];function ab(){let a=(0,f.c)("common"),{isOpen:b,close:c}=(0,_.V0)();return(0,d.jsx)(Z.a,{isOpen:b,onClose:c,title:a("settings.title"),size:"lg",children:(0,d.jsxs)($.tU,{defaultValue:"general",orientation:"vertical",variant:"pill",className:"flex gap-6 min-h-[60vh]","data-testid":"settings-dialog",children:[(0,d.jsx)($.j7,{"aria-label":a("settings.categoriesLabel"),className:"sticky top-0 w-40 shrink-0 flex-col items-stretch self-start",children:aa.map(b=>(0,d.jsx)($.Xi,{value:b.id,"data-testid":`settings-dialog-tab-${b.id}`,className:"justify-start",children:a(b.labelKey)},b.id))}),(0,d.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,d.jsx)($.av,{value:"general",className:"mt-0",children:(0,d.jsx)(U,{})}),(0,d.jsx)($.av,{value:"notifications",className:"mt-0",children:(0,d.jsx)(V,{})}),(0,d.jsx)($.av,{value:"externalApps",className:"mt-0",children:(0,d.jsx)(W,{})}),(0,d.jsxs)($.av,{value:"about",className:"mt-0",children:[(0,d.jsx)(T,{onNavigate:c}),(0,d.jsx)(X,{})]})]})]})})}},73790:(a,b,c)=>{"use strict";c.d(b,{T:()=>h});var d=c(21124),e=c(38301),f=c.n(e),g=c(35595);let h=f().forwardRef(({className:a,...b},c)=>(0,d.jsx)("textarea",{ref:c,className:(0,g.cn)("flex min-h-[80px] w-full rounded-md border border-input bg-surface dark:bg-surface-2 px-3 py-2 text-sm text-surface-foreground shadow-sm","placeholder:text-muted-foreground","focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:border-ring","disabled:cursor-not-allowed disabled:opacity-50",a),...b}));h.displayName="Textarea"},74132:(a,b,c)=>{"use strict";c.d(b,{dS:()=>k,rM:()=>l});var d=c(38301),e=c(42378),f=c(20481),g=c(63474),h=c(63157),i=c(74930),j=c(96823);function k(a,b,c){return`${a}|${b??"-"}|${c??"no-since"}`}function l(){let a=(0,f.c)("notifications"),{showToast:b}=(0,g.dj)(),{addListener:c}=(0,i.xM)(),{enabled:k}=(0,j.qG)(),l=(0,e.usePathname)(),m=(0,e.useRouter)(),n=(0,h.rC)();return(0,d.useRef)({enabled:k,pathname:l,worktrees:n?.worktrees,showToast:b,t:a,router:m}).current={enabled:k,pathname:l,worktrees:n?.worktrees,showToast:b,t:a,router:m},(0,d.useRef)(new Set),null}},74892:(a,b,c)=>{"use strict";c.d(b,{d:()=>i});var d=c(21124),e=c(38301),f=c.n(e),g=c(75441),h=c(35595);let i=f().forwardRef(({className:a,...b},c)=>(0,d.jsx)(g.bL,{ref:c,className:(0,h.cn)("peer inline-flex h-5 w-9 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent shadow-sm transition-colors","focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2","disabled:cursor-not-allowed disabled:opacity-50","data-[state=checked]:bg-accent-600 data-[state=unchecked]:bg-muted",a),...b,children:(0,d.jsx)(g.zi,{className:(0,h.cn)("pointer-events-none block h-4 w-4 rounded-full bg-surface shadow-lg ring-0 transition-transform","data-[state=checked]:translate-x-4 data-[state=unchecked]:translate-x-0")})}));i.displayName="Switch"},74930:(a,b,c)=>{"use strict";c.d(b,{tS:()=>i,xM:()=>j,T3:()=>k});var d=c(21124),e=c(38301);c(12055);let f=()=>{},g={status:"disconnected",connected:!1,subscribe:f,unsubscribe:f,addListener:()=>f},h=(0,e.createContext)(null);function i({children:a,enabled:b=!0}){let c=(0,e.useRef)(new Set),f=(0,e.useRef)(new Map),{status:g,subscribe:i,unsubscribe:j}=function(a={}){let{onEvent:b,onStatusChange:c,autoReconnect:d=!0,reconnectBaseDelay:f=1e3,reconnectMaxDelay:g=3e4,livenessTimeout:h=75e3,livenessCheckInterval:i=5e3,enabled:j=!0}=a,[k,l]=(0,e.useState)("disconnected"),m=(0,e.useRef)(null),n=(0,e.useRef)(null),o=(0,e.useRef)(0),p=(0,e.useRef)(new Set),q=(0,e.useRef)(!1);(0,e.useRef)(0);let r=(0,e.useRef)(()=>{});(0,e.useRef)(b).current=b;let s=(0,e.useRef)(c);s.current=c;let t=(0,e.useCallback)(a=>{l(a),s.current?.(a)},[]),u=(0,e.useCallback)(()=>{null!==n.current&&(clearTimeout(n.current),n.current=null)},[]),v=(0,e.useCallback)(()=>{if(q.current||!d||"undefined"!=typeof document&&"hidden"===document.visibilityState)return;u();let a=function(a,b,c,d=Math.random){return Math.max(0,Math.round(Math.min(b*2**Math.max(0,a),c)*(1+(2*d()-1)*.2)))}(o.current,f,g);o.current+=1,n.current=setTimeout(()=>{n.current=null,r.current()},a)},[d,f,g,u]);r.current=(0,e.useCallback)(()=>{},[j,t,u,v]),(0,e.useCallback)(()=>{let a=m.current;if(a){a.onopen=null,a.onmessage=null,a.onerror=null,a.onclose=null,m.current=null;try{a.close(4001,"half-open")}catch{}t("disconnected"),v()}},[t,v]),(0,e.useCallback)(()=>{if(u(),q.current=!0,m.current){try{m.current.close(1e3,"Client disconnect")}catch{}m.current=null}},[u]);let w=(0,e.useCallback)(a=>{let b=m.current,c="undefined"!=typeof globalThis&&"function"==typeof globalThis.WebSocket?globalThis.WebSocket:null;if(b&&c&&b.readyState===c.OPEN)try{b.send(JSON.stringify(a))}catch{}},[]);return{status:k,subscribe:(0,e.useCallback)(a=>{p.current.has(a)||(p.current.add(a),w({type:"subscribe",worktreeId:a}))},[w]),unsubscribe:(0,e.useCallback)(a=>{p.current.has(a)&&(p.current.delete(a),w({type:"unsubscribe",worktreeId:a}))},[w]),send:w}}({enabled:b,onEvent:(0,e.useCallback)(a=>{c.current.forEach(b=>{try{b(a)}catch{}})},[])}),k=(0,e.useCallback)(a=>{let b=f.current,c=b.get(a)??0;b.set(a,c+1),0===c&&i(a)},[i]),l=(0,e.useCallback)(a=>{let b=f.current,c=b.get(a)??0;c<=1?(b.delete(a),j(a)):b.set(a,c-1)},[j]),m=(0,e.useCallback)(a=>(c.current.add(a),()=>{c.current.delete(a)}),[]),n=(0,e.useMemo)(()=>({status:g,connected:"connected"===g,subscribe:k,unsubscribe:l,addListener:m}),[g,k,l,m]);return(0,d.jsx)(h.Provider,{value:n,children:a})}function j(){return(0,e.useContext)(h)??g}function k(a){let{addListener:b}=j();(0,e.useRef)(a).current=a}},75567:(a,b,c)=>{var d={"./en/pwa.json":[51262,1262],"./ja/pwa.json":[46072,6072]};function e(a){if(!c.o(d,a))return Promise.resolve().then(()=>{var b=Error("Cannot find module '"+a+"'");throw b.code="MODULE_NOT_FOUND",b});var b=d[a],e=b[0];return c.e(b[1]).then(()=>c.t(e,19))}e.keys=()=>Object.keys(d),e.id=75567,a.exports=e},76047:(a,b,c)=>{"use strict";c.d(b,{P0:()=>X,oQ:()=>W,tJ:()=>S,xk:()=>V,xq:()=>Z,yW:()=>Y});var d=c(21124),e=c(38301),f=c(23312),g=c(42378),h=c(52761),i=c(55992),j=c(20481),k=c(45523),l=c(67565),m=c(75903),n=c(50987),o=c(59268),p=c(75234),q=c(38882),r=c(70175),s=c(60988),t=c(34487),u=c(25345),v=c(96558),w=c(97950),x=c(75692),y=c(57898),z=c(88285),A=c(71563),B=c(35595),C=c(11010),D=c(64632),E=c(89184),F=c(5772),G=c(63157),H=c(12480),I=c(85744),J=c(78352),K=c(22317),L=c(85647),M=c(63474),N=c(85678),O=c(17252);let P=[{key:"sessions",href:"/sessions"},{key:"repositories",href:"/repositories"},{key:"review",href:"/review"},{key:"skills",href:"/skills"},{key:"more",href:"/more"}],Q={sessions:m.A,repositories:n.A,review:o.A,skills:p.A,more:q.A};function R(a){return a.isWaitingForResponse?"waiting":a.isProcessing?"running":a.isSessionRunning?"ready":"idle"}function S(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 T=(0,B.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"),U="shrink-0 text-muted-foreground";function V(){if("undefined"==typeof document)return null;let a=document.querySelector("[data-instance-id]");return a?.getAttribute("data-instance-id")?.trim()||null}function W(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}
|
|
13
|
+
`,children:(0,d.jsx)(l.A,{className:"h-4 w-4"})})]})}function s({toasts:a,onClose:b}){let[c,g]=(0,e.useState)(!1),h=(0,d.jsx)("div",{"data-testid":"toast-container","aria-live":"polite",className:"fixed bottom-4 right-4 flex flex-col gap-2",style:{zIndex:m.M.TOAST},children:a.map(a=>(0,d.jsx)(r,{id:a.id,message:a.message,type:a.type,onClose:b,duration:a.duration,onClick:a.onClick},a.id))});return c?(0,f.createPortal)(h,document.body):null}function t(){let[a,b]=(0,e.useState)([]),c=(0,e.useRef)(0),d=(0,e.useCallback)((a,d="info",e=p,f)=>{let g=`toast-${++c.current}-${Date.now()}`,h={id:g,message:a,type:d,duration:e,...f?.onClick?{onClick:f.onClick}:{}};return b(a=>[...a,h]),g},[]),f=(0,e.useCallback)(a=>{b(b=>b.filter(b=>b.id!==a))},[]),g=(0,e.useCallback)(()=>{b([])},[]);return(0,e.useMemo)(()=>({toasts:a,showToast:d,removeToast:f,clearToasts:g}),[a,d,f,g])}let u=(0,e.createContext)(null);function v({children:a}){let b=t();return(0,d.jsxs)(u.Provider,{value:b,children:[a,(0,d.jsx)(s,{toasts:b.toasts,onClose:b.removeToast})]})}function w(){let a=(0,e.useContext)(u),b=t();return a??b}},64182:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>d});let d=(0,c(97954).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/runner/work/CommandMate/CommandMate/src/app/global-error.tsx\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/runner/work/CommandMate/CommandMate/src/app/global-error.tsx","default")},64632:(a,b,c)=>{"use strict";c.d(b,{C:()=>h,E:()=>g});var d=c(21124),e=c(38301);let f=(0,e.createContext)({open:!1,setOpen:()=>{},toggle:()=>{}});function g({children:a}){let[b,c]=(0,e.useState)(!1),g=(0,e.useCallback)(()=>c(a=>!a),[]),h=(0,e.useMemo)(()=>({open:b,setOpen:c,toggle:g}),[b,g]);return(0,d.jsx)(f.Provider,{value:h,children:a})}function h(){return(0,e.useContext)(f)}},66125:(a,b,c)=>{var d={"./en/error.json":[22980,2980],"./ja/error.json":[10450,450]};function e(a){if(!c.o(d,a))return Promise.resolve().then(()=>{var b=Error("Cannot find module '"+a+"'");throw b.code="MODULE_NOT_FOUND",b});var b=d[a],e=b[0];return c.e(b[1]).then(()=>c.t(e,19))}e.keys=()=>Object.keys(d),e.id=66125,a.exports=e},67693:(a,b,c)=>{"use strict";c.d(b,{H:()=>g});var d=c(38301),e=c(74930),f=c(96823);function g(){let{addListener:a}=(0,e.xM)(),{enabled:b}=(0,f.Ql)();return(0,d.useRef)({enabled:b}).current={enabled:b},(0,d.useRef)(new Set),null}c(74132)},68132:(a,b,c)=>{Promise.resolve().then(c.bind(c,39800))},68232:(a,b,c)=>{"use strict";c.d(b,{Xn:()=>e,d9:()=>h,dI:()=>d,gB:()=>f,vK:()=>g});let d=["en","ja"],e="en",f="locale",g={en:"English",ja:"日本語"};function h(a){return"string"==typeof a&&d.includes(a)}},70288:(a,b,c)=>{var d={"./en/home.json":[41825,1825],"./ja/home.json":[26159,6159]};function e(a){if(!c.o(d,a))return Promise.resolve().then(()=>{var b=Error("Cannot find module '"+a+"'");throw b.code="MODULE_NOT_FOUND",b});var b=d[a],e=b[0];return c.e(b[1]).then(()=>c.t(e,19))}e.keys=()=>Object.keys(d),e.id=70288,a.exports=e},70911:(a,b,c)=>{"use strict";c.d(b,{$2:()=>g,B1:()=>n,If:()=>i,NP:()=>h,TR:()=>j,wp:()=>f});var d=c(61916);let e="commandmate.worktree.surfaceMode-",f="/api/settings/default-surface-mode";function g(a,b){return`${e}${a}-split-${b}`}function h(a){return`${e}${a}-mobile`}function i(a,b){}function j(a,b){let c=void 0===b?null:b;return c?(i(a,c),c):m()}let k=d.wf,l=new Set;function m(){return k}function n(a){if(!(0,d.jg)(a))return!1;let b=m()!==a;if(k=a,i("commandmate.settings.defaultSurfaceMode",a),b)for(let a of l)a();return b}},72280:(a,b,c)=>{"use strict";c.d(b,{n:()=>e});var d=c(21124);function e({className:a="w-3.5 h-3.5",color:b}){return(0,d.jsx)("svg",{className:`${a} flex-shrink-0`,viewBox:"0 0 24 24",fill:b??"none",stroke:b?"none":"currentColor",strokeWidth:2*!b,"aria-hidden":"true",children:(0,d.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M3 7v10a2 2 0 002 2h14a2 2 0 002-2V9a2 2 0 00-2-2h-6l-2-2H5a2 2 0 00-2 2z"})})}},72637:(a,b,c)=>{var d={"./en/prompt.json":[72816,2816],"./ja/prompt.json":[80066,7685]};function e(a){if(!c.o(d,a))return Promise.resolve().then(()=>{var b=Error("Cannot find module '"+a+"'");throw b.code="MODULE_NOT_FOUND",b});var b=d[a],e=b[0];return c.e(b[1]).then(()=>c.t(e,19))}e.keys=()=>Object.keys(d),e.id=72637,a.exports=e},73060:(a,b,c)=>{"use strict";c.d(b,{uN:()=>y,gZ:()=>ab,O3:()=>Y});var d=c(21124),e=c(38301),f=c(20481),g=c(71613),h=c(70584),i=c(24417),j=c(47089),k=c(8849),l=c(85866),m=c(17252),n=c(89907);function o(a){return!!a&&"object"==typeof a&&Array.isArray(a.defaultSelectedAgents)&&a.defaultSelectedAgents.length>0&&Array.isArray(a.available)&&a.available.length>0&&"number"==typeof a.minAgents&&"number"==typeof a.maxAgents}function p(){let a=(0,f.c)("common"),[b,c]=(0,e.useState)(null),[p,q]=(0,e.useState)([]),[r,s]=(0,e.useState)(!0),[t,u]=(0,e.useState)("idle"),[v,w]=(0,e.useState)(null);(0,e.useCallback)(async()=>{try{let a=await fetch(`${n.zk}?include=installed`);if(!a.ok)throw Error(String(a.status));let b=await a.json();if(!o(b))throw Error("unexpected body");c(b),q(b.defaultSelectedAgents),(0,n.IK)(b.defaultSelectedAgents)}catch{w(a("settings.defaultAgents.loadError"))}finally{s(!1)}},[a]);let x=(0,e.useCallback)(a=>{q(a),u("idle"),w(null)},[]),y=(0,e.useCallback)((a,b)=>{let c=a+b;if(c<0||c>=p.length)return;let d=[...p];[d[a],d[c]]=[d[c],d[a]],x(d)},[p,x]),z=(0,e.useCallback)(async b=>{u("saving"),w(null);try{let d=await fetch(n.zk,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({agents:b})}),e=await d.json().catch(()=>null);if(!d.ok||!o(e)){u("error"),w(e?.error??a("settings.defaultAgents.saveError"));return}c(a=>({...e,installed:a?.installed})),q(e.defaultSelectedAgents),(0,n.IK)(e.defaultSelectedAgents),u("saved")}catch{u("error"),w(a("settings.defaultAgents.saveError"))}},[a]);if(r)return(0,d.jsx)(l.Zp,{children:(0,d.jsxs)("div",{className:"flex items-center gap-2 text-sm text-muted-foreground",children:[(0,d.jsx)(l.y$,{size:"sm"}),a("loadingPage")]})});if(!b)return(0,d.jsx)(l.Zp,{children:(0,d.jsx)("div",{className:"text-sm text-danger-foreground","data-testid":"default-agents-load-error",children:v??a("settings.defaultAgents.loadError")})});let A=b.installed??[],B=b.available.filter(a=>!p.includes(a)),C=p.length<b.minAgents,D=p.length>b.maxAgents,E=!C&&!D&&"saving"!==t,F=b=>A.includes(b)?(0,d.jsxs)("span",{className:"inline-flex items-center gap-1 rounded bg-success-subtle px-1.5 py-0.5 text-xs text-success-foreground","data-testid":`default-agents-installed-${b}`,children:[(0,d.jsx)(g.A,{className:"h-3 w-3","aria-hidden":"true"}),a("settings.defaultAgents.installed")]}):(0,d.jsx)("span",{className:"text-xs text-muted-foreground",children:a("settings.defaultAgents.notInstalled")});return(0,d.jsx)(l.Zp,{children:(0,d.jsxs)("div",{className:"space-y-4","data-testid":"default-agents-settings",children:[(0,d.jsxs)("div",{children:[(0,d.jsx)("div",{className:"text-sm font-medium text-foreground",children:a("settings.defaultAgents.title")}),(0,d.jsx)("p",{className:"mt-1 text-xs text-muted-foreground",children:a("settings.defaultAgents.description")}),(0,d.jsx)("p",{className:"mt-1 text-xs text-muted-foreground",children:a("settings.defaultAgents.appliesToNew")})]}),(0,d.jsx)("ul",{className:"space-y-2","data-testid":"default-agents-selected",children:p.map((c,e)=>(0,d.jsxs)("li",{className:"flex items-center gap-2 rounded-md border border-border bg-surface px-3 py-2","data-testid":`default-agents-row-${c}`,children:[(0,d.jsx)("span",{className:"w-6 text-xs text-muted-foreground",children:e+1}),(0,d.jsx)("span",{className:"text-sm text-foreground",children:(0,m.oo)(c)}),0===e&&(0,d.jsx)("span",{className:"rounded bg-info-subtle px-1.5 py-0.5 text-xs text-info-foreground","data-testid":"default-agents-primary-badge",children:a("settings.defaultAgents.primary")}),(0,d.jsx)("span",{className:"ml-auto",children:F(c)}),(0,d.jsx)("button",{type:"button",className:"rounded p-1 text-muted-foreground hover:bg-muted disabled:opacity-40",onClick:()=>y(e,-1),disabled:0===e,"aria-label":a("settings.defaultAgents.moveUp"),"data-testid":`default-agents-up-${c}`,children:(0,d.jsx)(h.A,{className:"h-4 w-4","aria-hidden":"true"})}),(0,d.jsx)("button",{type:"button",className:"rounded p-1 text-muted-foreground hover:bg-muted disabled:opacity-40",onClick:()=>y(e,1),disabled:e===p.length-1,"aria-label":a("settings.defaultAgents.moveDown"),"data-testid":`default-agents-down-${c}`,children:(0,d.jsx)(i.A,{className:"h-4 w-4","aria-hidden":"true"})}),(0,d.jsx)("button",{type:"button",className:"rounded p-1 text-muted-foreground hover:bg-muted disabled:opacity-40",onClick:()=>x(p.filter(a=>a!==c)),disabled:p.length<=b.minAgents,"aria-label":a("settings.defaultAgents.remove"),"data-testid":`default-agents-remove-${c}`,children:(0,d.jsx)(j.A,{className:"h-4 w-4","aria-hidden":"true"})})]},c))}),B.length>0&&(0,d.jsxs)("div",{children:[(0,d.jsx)("div",{className:"mb-2 text-xs text-muted-foreground",children:a("settings.defaultAgents.addLabel")}),(0,d.jsx)("ul",{className:"space-y-2","data-testid":"default-agents-available",children:B.map(c=>(0,d.jsxs)("li",{className:"flex items-center gap-2 rounded-md border border-border px-3 py-2",children:[(0,d.jsx)("span",{className:"text-sm text-foreground",children:(0,m.oo)(c)}),(0,d.jsx)("span",{className:"ml-auto",children:F(c)}),(0,d.jsx)("button",{type:"button",className:"rounded p-1 text-muted-foreground hover:bg-muted disabled:opacity-40",onClick:()=>x([...p,c]),disabled:p.length>=b.maxAgents,"aria-label":a("settings.defaultAgents.add"),"data-testid":`default-agents-add-${c}`,children:(0,d.jsx)(k.A,{className:"h-4 w-4","aria-hidden":"true"})})]},c))})]}),(C||D)&&(0,d.jsx)("div",{className:"text-xs text-danger-foreground","data-testid":"default-agents-range-error",children:a("settings.defaultAgents.range",{min:b.minAgents,max:b.maxAgents})}),v&&(0,d.jsx)("div",{className:"text-xs text-danger-foreground","data-testid":"default-agents-error",children:v}),(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)(l.$n,{size:"sm",onClick:()=>void z(p),disabled:!E,"data-testid":"default-agents-save",children:"saving"===t?a("settings.defaultAgents.saving"):a("settings.defaultAgents.save")}),(0,d.jsx)(l.$n,{size:"sm",variant:"ghost",onClick:()=>void z(null),disabled:!b.configured||"saving"===t,"data-testid":"default-agents-reset",children:a("settings.defaultAgents.reset")}),(0,d.jsx)("span",{className:"text-xs text-muted-foreground","data-testid":"default-agents-state",children:"saved"===t?a("settings.defaultAgents.saved"):b.configured?a("settings.defaultAgents.configured"):a("settings.defaultAgents.usingBuiltIn")})]}),b.configured&&(0,d.jsx)("div",{className:"text-xs text-muted-foreground","data-testid":"default-agents-builtin",children:a("settings.defaultAgents.builtIn",{agents:b.constantDefault.map(m.oo).join(", ")})})]})})}var q=c(70911),r=c(61916);function s(a){return!!a&&"object"==typeof a&&(0,r.jg)(a.defaultSurfaceMode)&&(0,r.jg)(a.constantDefault)&&Array.isArray(a.available)&&a.available.length>0&&a.available.every(r.jg)}function t(){let a=(0,f.c)("common"),[b,c]=(0,e.useState)(null),[g,h]=(0,e.useState)(!0),[i,j]=(0,e.useState)("idle"),[k,m]=(0,e.useState)(null),n=(0,e.useCallback)(async()=>{try{let a=await fetch(q.wp);if(!a.ok)throw Error(String(a.status));let b=await a.json();if(!s(b))throw Error("unexpected body");c(b),(0,q.B1)(b.defaultSurfaceMode)}catch{m({kind:"load"})}finally{h(!1)}},[]),o=(0,e.useCallback)(async a=>{j("saving"),m(null),c(b=>b?{...b,defaultSurfaceMode:a}:b);try{let b=await fetch(q.wp,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({mode:a})}),d=await b.json().catch(()=>null);if(!b.ok||!s(d)){j("error"),m({kind:"save",detail:d?.error}),n();return}c(d),(0,q.B1)(d.defaultSurfaceMode),j("saved")}catch{j("error"),m({kind:"save"}),n()}},[n]),p=k?k.detail??a("load"===k.kind?"settings.defaultSurfaceMode.loadError":"settings.defaultSurfaceMode.saveError"):null;return g?(0,d.jsx)(l.Zp,{children:(0,d.jsxs)("div",{className:"flex items-center gap-2 text-sm text-muted-foreground",children:[(0,d.jsx)(l.y$,{size:"sm"}),a("loadingPage")]})}):b?(0,d.jsx)(l.Zp,{children:(0,d.jsxs)("div",{className:"space-y-4","data-testid":"default-surface-mode-settings",children:[(0,d.jsxs)("div",{children:[(0,d.jsx)("div",{className:"text-sm font-medium text-foreground",children:a("settings.defaultSurfaceMode.title")}),(0,d.jsx)("p",{className:"mt-1 text-xs text-muted-foreground",children:a("settings.defaultSurfaceMode.description")}),(0,d.jsx)("p",{className:"mt-1 text-xs text-muted-foreground",children:a("settings.defaultSurfaceMode.appliesToNew")})]}),(0,d.jsx)("div",{role:"radiogroup","aria-label":a("settings.defaultSurfaceMode.title"),className:"space-y-2","data-selected":b.defaultSurfaceMode,children:b.available.map(c=>(0,d.jsxs)("label",{className:"flex cursor-pointer items-start gap-2 rounded-md border border-border bg-surface px-3 py-2","data-testid":`default-surface-mode-option-${c}`,children:[(0,d.jsx)("input",{type:"radio",name:"default-surface-mode",value:c,className:"mt-0.5",checked:b.defaultSurfaceMode===c,disabled:"saving"===i,onChange:()=>void o(c),"data-testid":`default-surface-mode-radio-${c}`}),(0,d.jsxs)("span",{children:[(0,d.jsx)("span",{className:"block text-sm text-foreground",children:a(`settings.defaultSurfaceMode.mode.${c}`)}),(0,d.jsx)("span",{className:"block text-xs text-muted-foreground",children:a(`settings.defaultSurfaceMode.hint.${c}`)})]})]},c))}),p&&(0,d.jsx)("div",{className:"text-xs text-danger-foreground","data-testid":"default-surface-mode-error",children:p}),(0,d.jsx)("div",{className:"text-xs text-muted-foreground","data-testid":"default-surface-mode-state",children:"saving"===i?a("settings.defaultSurfaceMode.saving"):"saved"===i?a("settings.defaultSurfaceMode.saved"):b.configured?a("settings.defaultSurfaceMode.configured"):a("settings.defaultSurfaceMode.usingBuiltIn")})]})}):(0,d.jsx)(l.Zp,{children:(0,d.jsx)("div",{className:"text-sm text-danger-foreground","data-testid":"default-surface-mode-load-error",children:p??a("settings.defaultSurfaceMode.loadError")})})}var u=c(2535),v=c(16945),w=c(9212);function x(a){let b=a.trim();if(!b)return null;try{let a=JSON.parse(b);if(!a||"object"!=typeof a)return null;let c=a.type;if("plan"!==c&&"output"!==c&&"done"!==c)return null;return a}catch{return null}}function y({worktreeId:a,instances:b,variant:c="card"}){let g=(0,f.c)("common"),{versions:h,isLoading:i,loadError:j,run:k,isUpdating:n,update:o}=function(a=!0){let[b,c]=(0,e.useState)(null),[d,f]=(0,e.useState)(!1),[g,h]=(0,e.useState)(a),[i,j]=(0,e.useState)(null),[k,l]=(0,e.useState)(!1),m=(0,e.useRef)(!0),n=(0,e.useCallback)(async(b=!1)=>{if(a){h(!0);try{let a=await fetch(`/api/agents/versions${b?"?refresh=1":""}`);if(!a.ok)throw Error(String(a.status));let d=await a.json();if(!(d&&"object"==typeof d&&Array.isArray(d.tools)&&Array.isArray(d.updatable)))throw Error("unexpected body");if(!m.current)return;c(d.tools),f(!1)}catch{if(!m.current)return;f(!0)}finally{m.current&&h(!1)}}},[a]),o=(0,e.useCallback)(async a=>{if(k)return;l(!0),j({tool:a,command:null,output:"",ok:null,previousVersion:null,installed:null,error:null});let b=a=>{m.current&&j(b=>b?{...b,ok:!1,error:a}:b)};try{let c=await fetch("/api/agents/update",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({tool:a})});if(!c.ok||!c.body){let a=await c.json().catch(()=>null);b(a?.error??`Request failed (${c.status})`);return}let d=c.body.getReader(),e=new TextDecoder,f="",g=a=>{m.current&&j(b=>b?"plan"===a.type?{...b,command:a.command}:"output"===a.type?{...b,output:b.output+a.text}:{...b,ok:a.ok,previousVersion:a.previousVersion,installed:a.installed,error:a.error??null}:b)};for(;;){let{done:a,value:b}=await d.read();if(a)break;let c=(f+=e.decode(b,{stream:!0})).split("\n");for(let a of(f=c.pop()??"",c)){let b=x(a);b&&g(b)}}let h=x(f);h&&g(h)}catch(a){b(a instanceof Error?a.message:String(a))}finally{m.current&&l(!1),await n(!0)}},[k,n]);return{versions:b,isLoading:g,loadError:d,run:i,isUpdating:k,reload:n,update:o}}(!0),[p,q]=(0,e.useState)(0),r=function(a,b,c){let[d,f]=(0,e.useState)({});return d}(0,0,0),[s,t]=(0,e.useState)({}),[y,z]=(0,e.useState)(null),A=(0,e.useRef)(null),B=k?.ok===!0,C=(0,e.useCallback)(a=>(b??[]).filter(b=>b.cliTool===a&&r[b.id]),[b,r]),D=(0,e.useCallback)(async b=>{if(a){z(null);try{let c=new URLSearchParams({cliTool:b.cliTool,instance:b.id}),d=await fetch(`/api/worktrees/${a}/kill-session?${c.toString()}`,{method:"POST"});if(!d.ok&&404!==d.status)throw Error(String(d.status));t(a=>({...a,[b.id]:!0})),q(a=>a+1)}catch{z(g("agentUpdates.restartError"))}}},[a,g]),E=i&&!h?(0,d.jsxs)("div",{className:"flex items-center gap-2 text-sm text-muted-foreground",children:[(0,d.jsx)(l.y$,{size:"sm"}),g("loadingPage")]}):j&&!h?(0,d.jsx)("div",{className:"text-sm text-danger-foreground","data-testid":"agent-updates-load-error",children:g("agentUpdates.loadError")}):(0,d.jsxs)("div",{className:"space-y-3","data-testid":"agent-updates",children:[(0,d.jsxs)("div",{children:[(0,d.jsx)("div",{className:"text-sm font-medium text-foreground",children:g("agentUpdates.title")}),(0,d.jsx)("p",{className:"mt-1 text-xs text-muted-foreground",children:g("agentUpdates.description")})]}),(0,d.jsx)("ul",{className:"space-y-2","data-testid":"agent-updates-rows",children:(h??[]).map(b=>{var c;let e=C(b.tool),f=b.updatable&&null!==b.installed;return(0,d.jsxs)("li",{className:"rounded-md border border-border bg-surface px-3 py-2","data-testid":`agent-updates-row-${b.tool}`,children:[(0,d.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,d.jsx)("span",{className:"text-sm text-foreground",children:(c=b.tool,(0,m.oo)(c)||c)}),(0,d.jsx)("span",{className:"text-xs text-muted-foreground","data-testid":`agent-updates-installed-${b.tool}`,children:b.installed?g("agentUpdates.installed",{version:b.installed}):g("agentUpdates.notInstalled")}),b.updateAvailable&&(0,d.jsx)("span",{className:"rounded bg-info-subtle px-1.5 py-0.5 text-xs text-info-foreground","data-testid":`agent-updates-available-${b.tool}`,children:g("agentUpdates.available",{version:b.latestVersion??""})}),b.dismissedInCodex&&(0,d.jsx)("span",{className:"text-xs text-muted-foreground","data-testid":`agent-updates-dismissed-${b.tool}`,children:g("agentUpdates.dismissed")}),f&&(0,d.jsxs)(l.$n,{size:"sm",className:"ml-auto",disabled:n,onClick:()=>void o(b.tool),"data-testid":`agent-updates-update-${b.tool}`,children:[(0,d.jsx)(u.A,{className:"h-4 w-4","aria-hidden":"true"}),n&&k?.tool===b.tool?g("agentUpdates.updating"):g("agentUpdates.update")]})]}),f&&e.length>0&&(0,d.jsxs)("div",{className:"mt-2 flex items-start gap-1 text-xs text-warning-foreground","data-testid":`agent-updates-restart-warning-${b.tool}`,children:[(0,d.jsx)(v.A,{className:"mt-0.5 h-3 w-3 shrink-0","aria-hidden":"true"}),(0,d.jsx)("span",{children:g("agentUpdates.restartWarning",{sessions:e.map(a=>a.alias).join(", ")})})]}),f&&0===e.length&&void 0===a&&(0,d.jsx)("p",{className:"mt-2 text-xs text-muted-foreground","data-testid":`agent-updates-restart-notice-${b.tool}`,children:g("agentUpdates.restartNotice")}),B&&k?.tool===b.tool&&e.map(a=>(0,d.jsxs)("div",{className:"mt-2 flex items-center gap-2",children:[(0,d.jsxs)(l.$n,{size:"sm",variant:"ghost",disabled:s[a.id],onClick:()=>void D(a),"data-testid":`agent-updates-restart-${a.id}`,children:[(0,d.jsx)(w.A,{className:"h-4 w-4","aria-hidden":"true"}),g("agentUpdates.restart",{alias:a.alias})]}),s[a.id]&&(0,d.jsx)("span",{className:"text-xs text-muted-foreground",children:g("agentUpdates.restarted")})]},a.id))]},b.tool)})}),k&&(0,d.jsxs)("div",{className:"space-y-2","data-testid":"agent-updates-run",children:[k.command&&(0,d.jsx)("div",{className:"text-xs text-muted-foreground","data-testid":"agent-updates-command",children:g("agentUpdates.running",{command:k.command})}),k.output&&(0,d.jsx)("pre",{ref:A,"data-testid":"agent-updates-output",className:"max-h-48 overflow-auto whitespace-pre-wrap rounded-md bg-terminal-surface p-2 text-xs text-terminal-foreground",children:k.output}),!0===k.ok&&(0,d.jsx)("div",{className:"text-xs text-success-foreground","data-testid":"agent-updates-success",children:g("agentUpdates.succeeded",{from:k.previousVersion??"?",to:k.installed??"?"})}),!1===k.ok&&(0,d.jsx)("div",{className:"text-xs text-danger-foreground","data-testid":"agent-updates-failure",children:g("agentUpdates.failed",{error:k.error??""})})]}),y&&(0,d.jsx)("div",{className:"text-xs text-danger-foreground","data-testid":"agent-updates-restart-error",children:y})]});return"plain"===c?E:(0,d.jsx)(l.Zp,{children:E})}var z=c(3991),A=c.n(z);function B({appId:a,pollInterval:b=3e4,showResponseTime:c=!1,compact:g=!1}){let h=(0,f.c)("externalApps"),[i,j]=(0,e.useState)(null),[k,l]=(0,e.useState)(!0);if((0,e.useCallback)(async()=>{try{let b=await fetch(`/api/external-apps/${a}/health`);if(b.ok){let a=await b.json();j(a)}else j({id:a,healthy:!1,lastChecked:Date.now(),error:"Failed to check health"})}catch{j({id:a,healthy:!1,lastChecked:Date.now(),error:"Network error"})}finally{l(!1)}},[a]),k)return(0,d.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,d.jsx)("span",{className:"inline-block h-2.5 w-2.5 rounded-full bg-muted-foreground animate-pulse"}),!g&&(0,d.jsx)("span",{className:"text-xs text-muted-foreground",children:h("status.checking")})]});let m=i?.healthy??!1,n=m?"bg-success":"bg-muted-foreground",o=h(m?"status.running":"status.stopped");return g?(0,d.jsx)("span",{className:`inline-block h-2.5 w-2.5 rounded-full ${n}`,title:o}):(0,d.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,d.jsx)("span",{className:`inline-block h-2.5 w-2.5 rounded-full ${n}`}),(0,d.jsx)("span",{className:`text-xs ${m?"text-success-foreground":"text-muted-foreground"}`,children:o}),c&&i?.responseTime!==void 0&&(0,d.jsxs)("span",{className:"text-xs text-muted-foreground",children:["(",i.responseTime,"ms)"]})]})}function C({app:a,onEdit:b,onDelete:c}){var g;let h=(0,f.c)("externalApps"),i=(0,f.c)("common"),[j,k]=(0,e.useState)(!1),[m,n]=(0,e.useState)(!1),o=async()=>{n(!0);try{await c(a.id)}finally{n(!1),k(!1)}},p=`/proxy/${a.pathPrefix}/`;return(0,d.jsxs)(l.Zp,{padding:"md",className:"relative",children:[(0,d.jsxs)("div",{className:"flex items-start justify-between mb-3",children:[(0,d.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,d.jsx)("h4",{className:"text-base font-semibold text-foreground truncate",children:a.displayName}),(0,d.jsx)("p",{className:"text-xs text-muted-foreground mt-0.5 font-mono truncate",children:a.name})]}),(0,d.jsx)(l.Ex,{variant:{sveltekit:"warning",streamlit:"error",nextjs:"info",other:"gray"}[a.appType]||"gray",children:{sveltekit:"SvelteKit",streamlit:"Streamlit",nextjs:"Next.js",other:"Other"}[g=a.appType]||g})]}),(0,d.jsxs)("div",{className:"space-y-2 mb-4",children:[(0,d.jsxs)("div",{className:"flex items-center justify-between",children:[(0,d.jsx)("span",{className:"text-sm text-muted-foreground",children:h("card.status")}),(0,d.jsx)(B,{appId:a.id,pollInterval:3e4})]}),(0,d.jsxs)("div",{className:"flex items-center justify-between",children:[(0,d.jsx)("span",{className:"text-sm text-muted-foreground",children:h("card.port")}),(0,d.jsxs)("span",{className:"text-sm font-mono text-foreground",children:[":",a.targetPort]})]}),(0,d.jsxs)("div",{className:"flex items-center justify-between",children:[(0,d.jsx)("span",{className:"text-sm text-muted-foreground",children:h("card.path")}),(0,d.jsxs)("span",{className:"text-sm font-mono text-foreground truncate max-w-[150px]",children:["/proxy/",a.pathPrefix,"/"]})]}),a.websocketEnabled&&(0,d.jsxs)("div",{className:"flex items-center justify-between",children:[(0,d.jsx)("span",{className:"text-sm text-muted-foreground",children:h("card.websocket")}),(0,d.jsx)(l.Ex,{variant:"info",children:h("card.enabled")})]}),!a.enabled&&(0,d.jsx)("div",{className:"mt-2 py-1 px-2 bg-warning-subtle border border-warning-border rounded text-xs text-warning-foreground",children:h("card.disabledNotice")})]}),j?(0,d.jsxs)("div",{className:"space-y-2",children:[(0,d.jsx)("p",{className:"text-sm text-muted-foreground",children:h("card.deleteConfirm",{name:a.displayName})}),(0,d.jsxs)("div",{className:"flex gap-2",children:[(0,d.jsx)(l.$n,{variant:"danger",size:"sm",onClick:o,disabled:m,loading:m,children:h("card.delete")}),(0,d.jsx)(l.$n,{variant:"ghost",size:"sm",onClick:()=>k(!1),disabled:m,children:i("cancel")})]})]}):(0,d.jsxs)("div",{className:"flex gap-2 flex-wrap",children:[(0,d.jsx)(l.$n,{variant:"primary",size:"sm",onClick:()=>window.open(p,"_blank"),disabled:!a.enabled,children:h("card.open")}),(0,d.jsx)(l.$n,{variant:"secondary",size:"sm",onClick:()=>b(a),children:h("card.settings")}),(0,d.jsx)(l.$n,{variant:"ghost",size:"sm",onClick:()=>k(!0),className:"text-danger-foreground hover:bg-danger-subtle",children:h("card.delete")})]})]})}var D=c(35595);let E={MIN:1024,MAX:65535},F=/^[a-zA-Z0-9-]+$/,G={sveltekit:"SvelteKit",streamlit:"Streamlit",nextjs:"Next.js",other:"Other"},H=["sveltekit","streamlit","nextjs","other"].map(a=>({value:a,label:G[a]}));function I({isOpen:a,onClose:b,editApp:c,onSave:g}){let h=(0,f.c)("externalApps"),i=(0,f.c)("common"),j=!!c,[k,m]=(0,e.useState)(""),[n,o]=(0,e.useState)(""),[p,q]=(0,e.useState)(""),[r,s]=(0,e.useState)(""),[t,u]=(0,e.useState)(""),[v,w]=(0,e.useState)(!1),[x,y]=(0,e.useState)(""),[z,A]=(0,e.useState)(!0),[B,C]=(0,e.useState)({}),[G,I]=(0,e.useState)(!1),[J,K]=(0,e.useState)(null),L=async a=>{a.preventDefault(),K(null);let d=function(a,b){let c={};if(a.displayName?.trim()||(c.displayName="Display name is required"),!b&&(a.name?.trim()?F.test(a.name)||(c.name="Only alphanumeric characters and hyphens are allowed"):c.name="Identifier name is required",a.pathPrefix?.trim()?F.test(a.pathPrefix)||(c.pathPrefix="Only alphanumeric characters and hyphens are allowed"):c.pathPrefix="Path prefix is required"),a.targetPort){var d;"number"!=typeof a.targetPort||Number.isInteger(d=a.targetPort)&&d>=E.MIN&&d<=E.MAX||(c.targetPort=`Port must be between ${E.MIN} and ${E.MAX}`)}else c.targetPort="Port number is required";return b||a.appType||(c.appType="App type is required"),c}({displayName:k,name:n,pathPrefix:p,targetPort:r,appType:t},j);if(Object.keys(d).length>0)return void C(d);C({}),I(!0);try{if(j&&c){let a=await fetch(`/api/external-apps/${c.id}`,{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({displayName:k,description:x||void 0,targetPort:r||void 0,websocketEnabled:v,enabled:z})});if(!a.ok){let b=await a.json();throw Error(b.error||h("form.updateFailed"))}}else{let a=await fetch("/api/external-apps",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({displayName:k,name:n,pathPrefix:p,targetPort:r,appType:t,websocketEnabled:v,description:x||void 0})});if(!a.ok){let b=await a.json();throw Error(b.error||h("form.createFailed"))}}g(),b()}catch(a){K(a instanceof Error?a.message:h("form.genericError"))}finally{I(!1)}};return(0,d.jsx)(l.Jh,{isOpen:a,onClose:b,title:j?h("form.editTitle"):h("form.addTitle"),size:"md",children:(0,d.jsxs)("form",{onSubmit:L,className:"space-y-4",children:[(0,d.jsx)("div",{className:"rounded-md bg-warning-subtle p-3 mb-4 border border-warning-border",children:(0,d.jsx)("p",{className:"text-sm text-warning-foreground",children:h("form.securityWarning")})}),(0,d.jsxs)("div",{children:[(0,d.jsxs)("label",{htmlFor:"displayName",className:"block text-sm font-medium text-foreground mb-1",children:[h("form.displayName")," ",(0,d.jsx)("span",{className:"text-danger",children:"*"})]}),(0,d.jsx)(l.pd,{id:"displayName",type:"text",value:k,onChange:a=>m(a.target.value),className:B.displayName?"border-danger":"",placeholder:h("form.displayNamePlaceholder"),disabled:G}),B.displayName&&(0,d.jsx)("p",{className:"mt-1 text-xs text-danger",children:B.displayName})]}),!j&&(0,d.jsxs)("div",{children:[(0,d.jsxs)("label",{htmlFor:"name",className:"block text-sm font-medium text-foreground mb-1",children:[h("form.identifierName")," ",(0,d.jsx)("span",{className:"text-danger",children:"*"})]}),(0,d.jsx)(l.pd,{id:"name",type:"text",value:n,onChange:a=>o(a.target.value),className:`font-mono ${B.name?"border-danger":""}`,placeholder:h("form.identifierNamePlaceholder"),disabled:G}),(0,d.jsx)("p",{className:"mt-1 text-xs text-muted-foreground",children:h("form.identifierNameHelp")}),B.name&&(0,d.jsx)("p",{className:"mt-1 text-xs text-danger",children:B.name})]}),!j&&(0,d.jsxs)("div",{children:[(0,d.jsxs)("label",{htmlFor:"pathPrefix",className:"block text-sm font-medium text-foreground mb-1",children:[h("form.pathPrefix")," ",(0,d.jsx)("span",{className:"text-danger",children:"*"})]}),(0,d.jsxs)("div",{className:"flex items-center",children:[(0,d.jsx)("span",{className:"text-sm text-muted-foreground mr-1",children:"/proxy/"}),(0,d.jsx)(l.pd,{id:"pathPrefix",type:"text",value:p,onChange:a=>q(a.target.value),className:`w-auto flex-1 font-mono ${B.pathPrefix?"border-danger":""}`,placeholder:h("form.pathPrefixPlaceholder"),disabled:G}),(0,d.jsx)("span",{className:"text-sm text-muted-foreground ml-1",children:"/"})]}),(0,d.jsx)("p",{className:"mt-1 text-xs text-muted-foreground",children:h("form.pathPrefixHelp")}),B.pathPrefix&&(0,d.jsx)("p",{className:"mt-1 text-xs text-danger",children:B.pathPrefix})]}),(0,d.jsxs)("div",{children:[(0,d.jsxs)("label",{htmlFor:"targetPort",className:"block text-sm font-medium text-foreground mb-1",children:[h("form.portNumber")," ",(0,d.jsx)("span",{className:"text-danger",children:"*"})]}),(0,d.jsx)(l.pd,{id:"targetPort",type:"number",value:r,onChange:a=>s(a.target.value?parseInt(a.target.value,10):""),className:`font-mono ${B.targetPort?"border-danger":""}`,placeholder:h("form.portNumberPlaceholder"),min:E.MIN,max:E.MAX,disabled:G}),(0,d.jsx)("p",{className:"mt-1 text-xs text-muted-foreground",children:h("form.portNumberHelp",{min:E.MIN,max:E.MAX})}),B.targetPort&&(0,d.jsx)("p",{className:"mt-1 text-xs text-danger",children:B.targetPort})]}),!j&&(0,d.jsxs)("div",{children:[(0,d.jsxs)("label",{htmlFor:"appType",className:"block text-sm font-medium text-foreground mb-1",children:[h("form.appType")," ",(0,d.jsx)("span",{className:"text-danger",children:"*"})]}),(0,d.jsxs)("select",{id:"appType",value:t,onChange:a=>u(a.target.value),className:(0,D.cn)((0,l.j1)(),B.appType&&"border-danger"),disabled:G,children:[(0,d.jsx)("option",{value:"",children:h("form.appTypePlaceholder")}),H.map(a=>(0,d.jsx)("option",{value:a.value,children:a.label},a.value))]}),B.appType&&(0,d.jsx)("p",{className:"mt-1 text-xs text-danger",children:B.appType})]}),(0,d.jsxs)("div",{children:[(0,d.jsx)("label",{htmlFor:"description",className:"block text-sm font-medium text-foreground mb-1",children:h("form.description")}),(0,d.jsx)(l.k_,{id:"description",value:x,onChange:a=>y(a.target.value),placeholder:h("form.descriptionPlaceholder"),rows:2,disabled:G})]}),(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)(l.dO,{id:"websocketEnabled",checked:v,onCheckedChange:w,disabled:G}),(0,d.jsx)("label",{htmlFor:"websocketEnabled",className:"text-sm text-foreground",children:h("form.websocketLabel")})]}),j&&(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)(l.dO,{id:"enabled",checked:z,onCheckedChange:A,disabled:G}),(0,d.jsx)("label",{htmlFor:"enabled",className:"text-sm text-foreground",children:h("form.enabledLabel")})]}),J&&(0,d.jsx)("div",{className:"p-3 bg-danger-subtle border border-danger-border rounded text-sm text-danger-foreground",children:J}),(0,d.jsxs)("div",{className:"flex justify-end gap-2 pt-4 border-t border-border",children:[(0,d.jsx)(l.$n,{type:"button",variant:"ghost",onClick:b,disabled:G,children:i("cancel")}),(0,d.jsx)(l.$n,{type:"submit",variant:"primary",loading:G,children:j?h("form.save"):h("form.add")})]})]})})}function J(){let a=(0,f.c)("externalApps"),b=(0,f.c)("common"),[c,g]=(0,e.useState)([]),[h,i]=(0,e.useState)(!0),[j,k]=(0,e.useState)(null),[m,n]=(0,e.useState)(!1),[o,p]=(0,e.useState)(null),q=(0,e.useCallback)(async()=>{try{k(null);let a=await fetch("/api/external-apps");if(!a.ok)throw Error("Failed to fetch external apps");let b=await a.json();g(b.apps||[])}catch(a){k(a instanceof Error?a.message:"An error occurred")}finally{i(!1)}},[]),r=(0,e.useCallback)(a=>{p(a),n(!0)},[]),s=(0,e.useCallback)(()=>{p(null),n(!0)},[]),t=(0,e.useCallback)(async a=>{try{let b=await fetch(`/api/external-apps/${a}`,{method:"DELETE"});if(!b.ok){let a=await b.json();throw Error(a.error||"Failed to delete app")}q()}catch(a){console.error("Failed to delete app:",a)}},[q]),u=(0,e.useCallback)(()=>{q()},[q]),v=(0,e.useCallback)(()=>{n(!1),p(null)},[]);return(0,d.jsxs)("div",{className:"space-y-4",children:[(0,d.jsx)("div",{className:"flex items-center justify-end",children:(0,d.jsx)(l.$n,{variant:"primary",size:"sm",onClick:s,children:a("manager.addApp")})}),h?(0,d.jsx)(l.Zp,{padding:"lg",children:(0,d.jsxs)("div",{className:"flex items-center justify-center py-8",children:[(0,d.jsx)(l.y$,{size:"xl",variant:"accent"}),(0,d.jsx)("span",{className:"ml-3 text-muted-foreground",children:a("manager.loading")})]})}):j?(0,d.jsx)(l.Zp,{padding:"lg",children:(0,d.jsxs)("div",{className:"text-center py-8",children:[(0,d.jsx)("p",{className:"text-danger-foreground mb-4",children:a("manager.loadError")}),(0,d.jsx)(l.$n,{variant:"secondary",size:"sm",onClick:q,children:b("retry")})]})}):0===c.length?(0,d.jsx)(l.Zp,{padding:"lg",children:(0,d.jsxs)("div",{className:"text-center py-8",children:[(0,d.jsx)("p",{className:"text-muted-foreground mb-4",children:a("manager.empty")}),(0,d.jsx)("p",{className:"text-sm text-muted-foreground mb-4",children:a("manager.emptyHelp")}),(0,d.jsx)(l.$n,{variant:"primary",size:"sm",onClick:s,children:a("manager.addFirst")})]})}):(0,d.jsx)("div",{className:"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-4",children:c.map(a=>(0,d.jsx)(C,{app:a,onEdit:r,onDelete:t},a.id))}),(0,d.jsx)(I,{isOpen:m,onClose:v,editApp:o,onSave:u})]})}var K=c(47268),L=c(63474),M=c(96823);let N={enabled:!0,thresholdMinutes:10},O=[5,10,30,60];function P(){let a=(0,f.c)("notifications"),{showToast:b}=(0,L.dj)(),[c,g]=(0,e.useState)(!0),[h,i]=(0,e.useState)(!1),[j,k]=(0,e.useState)(!0),[m,n]=(0,e.useState)(!1),[o,p]=(0,e.useState)(null),[q,r]=(0,e.useState)(null),[s,t]=(0,e.useState)(!1),[u,v]=(0,e.useState)(null),[w,x]=(0,e.useState)({prompt:!0,completion:!1}),[y,z]=(0,e.useState)(!1),[A,B]=(0,e.useState)(null),[C,D]=(0,e.useState)(null),E=null!==u&&!1!==C,F=(0,e.useCallback)(async()=>{if(q){i(!0);try{let c=await Notification.requestPermission();if("granted"!==c){t("denied"===c),b(a("toast.error"),"error");return}if(!await navigator.serviceWorker.getRegistration())return void b(a("toast.error"),"error");let d=await navigator.serviceWorker.ready,e=await d.pushManager.subscribe({userVisibleOnly:!0,applicationServerKey:function(a){let b="=".repeat((4-a.length%4)%4),c=atob((a+b).replace(/-/g,"+").replace(/_/g,"/")),d=new Uint8Array(new ArrayBuffer(c.length));for(let a=0;a<c.length;a++)d[a]=c.charCodeAt(a);return d}(q)}),f=await fetch("/api/push/subscriptions",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({subscription:e.toJSON(),deviceLabel:navigator.userAgent.slice(0,120)})});if(!f.ok)throw Error("subscribe request failed");let g=await f.json();v(e.endpoint),D(!0),B(null),g.subscription?.preferences&&x(g.subscription.preferences),z(g.subscription?.defaultsNoticePending===!0),t(!1),b(a("toast.enabled"),"success")}catch{b(a("toast.error"),"error")}finally{i(!1)}}},[q,b,a]),G=(0,e.useCallback)(async()=>{i(!0);try{let c=await navigator.serviceWorker.getRegistration(),d=c?await c.pushManager.getSubscription():null,e=d?.endpoint??u;d&&await d.unsubscribe(),e&&await fetch("/api/push/subscriptions",{method:"DELETE",headers:{"Content-Type":"application/json"},body:JSON.stringify({endpoint:e})}),v(null),D(null),B(null),b(a("toast.disabled"),"info")}catch{b(a("toast.error"),"error")}finally{i(!1)}},[u,b,a]),H=(0,e.useCallback)(async(c,d)=>{if(!u)return;let e={...w,[c]:d};x(e);try{if(!(await fetch("/api/push/subscriptions",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({endpoint:u,preferences:e})})).ok)throw Error("update failed");b(a("toast.updated"),"success")}catch{x(w),b(a("toast.error"),"error")}},[u,w,b,a]),I=(0,e.useCallback)(async c=>{if(!u)return;let d=c?{...w,completion:!1}:w;z(!1),c&&x(d),i(!0);try{if(!(await fetch("/api/push/subscriptions",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({endpoint:u,...c?{preferences:d}:{},acknowledgeDefaultsNotice:!0})})).ok)throw Error("acknowledge failed");b(a(c?"defaultsNotice.adopted":"defaultsNotice.kept"),"success")}catch{x(w),z(!0),b(a("toast.error"),"error")}finally{i(!1)}},[u,w,b,a]);return(0,d.jsxs)("div",{className:"space-y-4",children:[(0,d.jsx)(l.Zp,{children:(0,d.jsx)(R,{})}),(0,d.jsx)(l.Zp,{children:c?(0,d.jsx)("div",{className:"flex items-center gap-2 text-sm text-muted-foreground",children:(0,d.jsx)(l.y$,{size:"sm"})}):j?m?(0,d.jsx)("p",{className:"text-sm text-muted-foreground","data-testid":"notifications-ios-guidance",children:a("ios.guidance")}):!1===o?(0,d.jsx)("p",{className:"text-sm text-muted-foreground",children:a("notConfigured")}):(0,d.jsxs)("div",{className:"space-y-4",children:[(0,d.jsx)("p",{className:"text-sm text-muted-foreground",children:a("description")}),s&&(0,d.jsx)("p",{className:"text-sm text-danger-foreground","data-testid":"notifications-permission-denied",children:a("permission.denied")}),(()=>{if(null===A)return null;let b="removed"===A.state,c=A.statusCode,e=b?null===c?a("delivery.removedUnknownStatus"):a("delivery.removed",{status:String(c)}):null===c?a("delivery.failingUnknownStatus",{count:A.failureCount}):a("delivery.failing",{count:A.failureCount,status:String(c)});return(0,d.jsxs)("div",{className:b?"space-y-2 rounded-lg border border-danger-border bg-danger-subtle p-3":"space-y-2 rounded-lg border border-warning-border bg-warning-subtle p-3","data-testid":"notifications-delivery-health","data-delivery-state":A.state,children:[(0,d.jsx)("p",{className:b?"text-sm font-semibold text-danger-foreground":"text-sm font-semibold text-warning-foreground",children:a(b?"delivery.headingRemoved":"delivery.headingFailing")}),(0,d.jsx)("p",{className:"text-xs text-foreground",children:e}),403===c&&(0,d.jsx)("p",{className:"text-xs text-muted-foreground","data-testid":"notifications-delivery-apns-hint",children:a("delivery.apnsHint")}),(0,d.jsx)("p",{className:"text-xs text-muted-foreground",children:a("delivery.since",{timestamp:new Date(A.firstFailureAt).toLocaleString()})})]})})(),E?(0,d.jsxs)("div",{className:"space-y-4",children:[(0,d.jsx)("p",{className:"text-sm font-medium text-foreground",children:a("enabledOnThisDevice")}),y&&(0,d.jsxs)("div",{className:"space-y-3 rounded-lg border border-info-border bg-info-subtle p-3","data-testid":"notifications-defaults-notice",children:[(0,d.jsx)("p",{className:"text-sm font-semibold text-info-foreground",children:a("defaultsNotice.heading")}),(0,d.jsx)("p",{className:"text-xs text-foreground",children:a("defaultsNotice.completionChanged")}),(0,d.jsx)("p",{className:"text-xs text-foreground",children:a("defaultsNotice.failuresAdded")}),(0,d.jsxs)("div",{className:"flex flex-wrap gap-2",children:[(0,d.jsx)(l.$n,{variant:"primary",onClick:()=>I(!0),disabled:h,"data-testid":"notifications-defaults-notice-adopt",children:a("defaultsNotice.adopt")}),(0,d.jsx)(l.$n,{variant:"secondary",onClick:()=>I(!1),disabled:h,"data-testid":"notifications-defaults-notice-keep",children:a("defaultsNotice.keep")})]})]}),(0,d.jsxs)("div",{className:"space-y-3",children:[(0,d.jsx)("div",{className:"text-xs font-medium uppercase tracking-wide text-muted-foreground",children:a("types.heading")}),(0,d.jsxs)("label",{className:"flex items-center justify-between gap-4",children:[(0,d.jsxs)("span",{children:[(0,d.jsx)("span",{className:"block text-sm font-medium text-foreground",children:a("types.promptWaiting")}),(0,d.jsx)("span",{className:"block text-xs text-muted-foreground",children:a("types.promptWaitingDesc")})]}),(0,d.jsx)(l.dO,{checked:w.prompt,onCheckedChange:a=>H("prompt",a),disabled:h,"aria-label":a("types.promptWaiting"),"data-testid":"notifications-toggle-prompt"})]}),(0,d.jsxs)("label",{className:"flex items-center justify-between gap-4",children:[(0,d.jsxs)("span",{children:[(0,d.jsx)("span",{className:"block text-sm font-medium text-foreground",children:a("types.completion")}),(0,d.jsx)("span",{className:"block text-xs text-muted-foreground",children:a("types.completionDesc")})]}),(0,d.jsx)(l.dO,{checked:w.completion,onCheckedChange:a=>H("completion",a),disabled:h,"aria-label":a("types.completion"),"data-testid":"notifications-toggle-completion"})]})]}),(0,d.jsx)(l.$n,{variant:"secondary",onClick:G,disabled:h,"data-testid":"notifications-unsubscribe",children:a("unsubscribe")})]}):(0,d.jsxs)(l.$n,{variant:"primary",onClick:F,disabled:h||s||!q,"data-testid":"notifications-enable",children:[(0,d.jsx)(K.A,{className:"h-4 w-4"}),h?a("enabling"):a("enable")]})]}):(0,d.jsx)("p",{className:"text-sm text-muted-foreground",children:a("unsupported")})}),(0,d.jsx)(l.Zp,{children:(0,d.jsx)(Q,{})})]})}function Q(){let a=(0,f.c)("notifications"),{showToast:b}=(0,L.dj)(),[c,g]=(0,e.useState)(!0),[h,i]=(0,e.useState)(!1),[j,k]=(0,e.useState)(N),[m,n]=(0,e.useState)([...O]),o=(0,e.useCallback)(async c=>{k(c),i(!0);try{if(!(await fetch("/api/push/escalation",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({settings:c})})).ok)throw Error("update failed");b(a("toast.updated"),"success")}catch{k(j),b(a("toast.error"),"error")}finally{i(!1)}},[j,b,a]);return(0,d.jsxs)("div",{className:"space-y-3",children:[(0,d.jsx)("div",{className:"text-xs font-medium uppercase tracking-wide text-muted-foreground",children:a("escalation.heading")}),(0,d.jsxs)("label",{className:"flex items-center justify-between gap-4",children:[(0,d.jsxs)("span",{children:[(0,d.jsx)("span",{className:"block text-sm font-medium text-foreground",children:a("escalation.toggle")}),(0,d.jsx)("span",{className:"block text-xs text-muted-foreground",children:a("escalation.toggleDesc")})]}),(0,d.jsx)(l.dO,{checked:j.enabled,onCheckedChange:a=>o({...j,enabled:a}),disabled:c||h,"aria-label":a("escalation.toggle"),"data-testid":"notifications-toggle-escalation"})]}),(0,d.jsxs)("label",{className:"flex items-center justify-between gap-4",children:[(0,d.jsx)("span",{className:"text-sm text-foreground",children:a("escalation.threshold")}),(0,d.jsx)("select",{className:"rounded-md border border-border bg-background px-2 py-1 text-sm text-foreground",value:String(j.thresholdMinutes),disabled:c||h||!j.enabled,"aria-label":a("escalation.threshold"),"data-testid":"notifications-escalation-threshold",onChange:a=>o({...j,thresholdMinutes:Number(a.target.value)}),children:m.map(b=>(0,d.jsx)("option",{value:String(b),children:a("escalation.minutes",{count:b})},b))})]})]})}function R(){let a=(0,f.c)("notifications"),{enabled:b,setEnabled:c}=(0,M.qG)(),{enabled:e,setEnabled:g}=(0,M.Ql)();return(0,d.jsxs)("div",{className:"space-y-3",children:[(0,d.jsx)("div",{className:"text-xs font-medium uppercase tracking-wide text-muted-foreground",children:a("inApp.heading")}),(0,d.jsxs)("label",{className:"flex items-center justify-between gap-4",children:[(0,d.jsxs)("span",{children:[(0,d.jsx)("span",{className:"block text-sm font-medium text-foreground",children:a("inApp.waitingToggle")}),(0,d.jsx)("span",{className:"block text-xs text-muted-foreground",children:a("inApp.waitingToggleDesc")})]}),(0,d.jsx)(l.dO,{checked:b,onCheckedChange:c,"aria-label":a("inApp.waitingToggle"),"data-testid":"notifications-toggle-inapp-waiting"})]}),(0,d.jsxs)("label",{className:"flex items-center justify-between gap-4",children:[(0,d.jsxs)("span",{children:[(0,d.jsx)("span",{className:"block text-sm font-medium text-foreground",children:a("inApp.soundToggle")}),(0,d.jsx)("span",{className:"block text-xs text-muted-foreground",children:a("inApp.soundToggleDesc")})]}),(0,d.jsx)(l.dO,{checked:e,onCheckedChange:g,"aria-label":a("inApp.soundToggle"),"data-testid":"notifications-toggle-inapp-sound"})]})]})}function S({heading:a,children:b}){return(0,d.jsxs)("div",{className:"mb-8",children:[(0,d.jsx)("h2",{className:"text-lg font-semibold mb-4 text-foreground",children:a}),b]})}function T({onNavigate:a}){let b=(0,f.c)("common"),c=(0,f.c)("skills");return(0,d.jsx)(S,{heading:b("settings.sections.quickLinks"),children:(0,d.jsxs)("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-3",children:[(0,d.jsx)(A(),{href:"/repositories",className:"block","data-testid":"more-link-repositories",onClick:a,children:(0,d.jsxs)(l.Zp,{hover:!0,className:"transition-colors hover:border-accent-300 dark:hover:border-accent-700",children:[(0,d.jsx)("div",{className:"text-sm font-medium text-foreground",children:"Repositories"}),(0,d.jsx)("div",{className:"text-xs text-muted-foreground",children:"Manage repositories and worktrees"})]})}),(0,d.jsx)(A(),{href:"/skills",className:"block","data-testid":"more-link-skills",onClick:a,children:(0,d.jsxs)(l.Zp,{hover:!0,className:"transition-colors hover:border-accent-300 dark:hover:border-accent-700",children:[(0,d.jsx)("div",{className:"text-sm font-medium text-foreground",children:b("nav.skills")}),(0,d.jsx)("div",{className:"text-xs text-muted-foreground",children:c("page.description")})]})}),(0,d.jsx)(A(),{href:"/skills/installed",className:"block","data-testid":"more-link-skills-installed",onClick:a,children:(0,d.jsxs)(l.Zp,{hover:!0,className:"transition-colors hover:border-accent-300 dark:hover:border-accent-700",children:[(0,d.jsx)("div",{className:"text-sm font-medium text-foreground",children:c("dashboard.title")}),(0,d.jsx)("div",{className:"text-xs text-muted-foreground",children:c("dashboard.description")})]})})]})})}function U(){let a=(0,f.c)("common");return(0,d.jsx)(S,{heading:a("settings.sections.general"),children:(0,d.jsxs)("div",{className:"space-y-4",children:[(0,d.jsx)(p,{}),(0,d.jsx)(t,{}),(0,d.jsx)(y,{})]})})}function V(){let a=(0,f.c)("common");return(0,d.jsx)(S,{heading:a("settings.sections.notifications"),children:(0,d.jsx)(P,{})})}function W(){let a=(0,f.c)("common");return(0,d.jsx)(S,{heading:a("settings.sections.externalApps"),children:(0,d.jsx)(J,{})})}function X(){let a=(0,f.c)("common");return(0,d.jsx)(S,{heading:a("settings.sections.about"),children:(0,d.jsx)(l.Zp,{children:(0,d.jsx)("div",{className:"text-sm text-muted-foreground",children:"CommandMate - A local control plane for agent CLIs."})})})}function Y(){return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(T,{}),(0,d.jsx)(U,{}),(0,d.jsx)(V,{}),(0,d.jsx)(W,{}),(0,d.jsx)(X,{})]})}c(74132),c(67693),c(90102);var Z=c(98033),$=c(34592),_=c(62197);let aa=[{id:"general",labelKey:"settings.sections.general"},{id:"notifications",labelKey:"settings.sections.notifications"},{id:"externalApps",labelKey:"settings.sections.externalApps"},{id:"about",labelKey:"settings.sections.about"}];function ab(){let a=(0,f.c)("common"),{isOpen:b,close:c}=(0,_.V0)();return(0,d.jsx)(Z.a,{isOpen:b,onClose:c,title:a("settings.title"),size:"lg",children:(0,d.jsxs)($.tU,{defaultValue:"general",orientation:"vertical",variant:"pill",className:"flex gap-6 min-h-[60vh]","data-testid":"settings-dialog",children:[(0,d.jsx)($.j7,{"aria-label":a("settings.categoriesLabel"),className:"sticky top-0 w-40 shrink-0 flex-col items-stretch self-start",children:aa.map(b=>(0,d.jsx)($.Xi,{value:b.id,"data-testid":`settings-dialog-tab-${b.id}`,className:"justify-start",children:a(b.labelKey)},b.id))}),(0,d.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,d.jsx)($.av,{value:"general",className:"mt-0",children:(0,d.jsx)(U,{})}),(0,d.jsx)($.av,{value:"notifications",className:"mt-0",children:(0,d.jsx)(V,{})}),(0,d.jsx)($.av,{value:"externalApps",className:"mt-0",children:(0,d.jsx)(W,{})}),(0,d.jsxs)($.av,{value:"about",className:"mt-0",children:[(0,d.jsx)(T,{onNavigate:c}),(0,d.jsx)(X,{})]})]})]})})}},73790:(a,b,c)=>{"use strict";c.d(b,{T:()=>h});var d=c(21124),e=c(38301),f=c.n(e),g=c(35595);let h=f().forwardRef(({className:a,...b},c)=>(0,d.jsx)("textarea",{ref:c,className:(0,g.cn)("flex min-h-[80px] w-full rounded-md border border-input bg-surface dark:bg-surface-2 px-3 py-2 text-sm text-surface-foreground shadow-sm","placeholder:text-muted-foreground","focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:border-ring","disabled:cursor-not-allowed disabled:opacity-50",a),...b}));h.displayName="Textarea"},74132:(a,b,c)=>{"use strict";c.d(b,{dS:()=>k,rM:()=>l});var d=c(38301),e=c(42378),f=c(20481),g=c(63474),h=c(63157),i=c(74930),j=c(96823);function k(a,b,c){return`${a}|${b??"-"}|${c??"no-since"}`}function l(){let a=(0,f.c)("notifications"),{showToast:b}=(0,g.dj)(),{addListener:c}=(0,i.xM)(),{enabled:k}=(0,j.qG)(),l=(0,e.usePathname)(),m=(0,e.useRouter)(),n=(0,h.rC)();return(0,d.useRef)({enabled:k,pathname:l,worktrees:n?.worktrees,showToast:b,t:a,router:m}).current={enabled:k,pathname:l,worktrees:n?.worktrees,showToast:b,t:a,router:m},(0,d.useRef)(new Set),null}},74892:(a,b,c)=>{"use strict";c.d(b,{d:()=>i});var d=c(21124),e=c(38301),f=c.n(e),g=c(75441),h=c(35595);let i=f().forwardRef(({className:a,...b},c)=>(0,d.jsx)(g.bL,{ref:c,className:(0,h.cn)("peer inline-flex h-5 w-9 shrink-0 cursor-pointer items-center rounded-full border-2 border-transparent shadow-sm transition-colors","focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2","disabled:cursor-not-allowed disabled:opacity-50","data-[state=checked]:bg-accent-600 data-[state=unchecked]:bg-muted",a),...b,children:(0,d.jsx)(g.zi,{className:(0,h.cn)("pointer-events-none block h-4 w-4 rounded-full bg-surface shadow-lg ring-0 transition-transform","data-[state=checked]:translate-x-4 data-[state=unchecked]:translate-x-0")})}));i.displayName="Switch"},74930:(a,b,c)=>{"use strict";c.d(b,{tS:()=>i,xM:()=>j,T3:()=>k});var d=c(21124),e=c(38301);c(12055);let f=()=>{},g={status:"disconnected",connected:!1,subscribe:f,unsubscribe:f,addListener:()=>f},h=(0,e.createContext)(null);function i({children:a,enabled:b=!0}){let c=(0,e.useRef)(new Set),f=(0,e.useRef)(new Map),{status:g,subscribe:i,unsubscribe:j}=function(a={}){let{onEvent:b,onStatusChange:c,autoReconnect:d=!0,reconnectBaseDelay:f=1e3,reconnectMaxDelay:g=3e4,livenessTimeout:h=75e3,livenessCheckInterval:i=5e3,enabled:j=!0}=a,[k,l]=(0,e.useState)("disconnected"),m=(0,e.useRef)(null),n=(0,e.useRef)(null),o=(0,e.useRef)(0),p=(0,e.useRef)(new Set),q=(0,e.useRef)(!1);(0,e.useRef)(0);let r=(0,e.useRef)(()=>{});(0,e.useRef)(b).current=b;let s=(0,e.useRef)(c);s.current=c;let t=(0,e.useCallback)(a=>{l(a),s.current?.(a)},[]),u=(0,e.useCallback)(()=>{null!==n.current&&(clearTimeout(n.current),n.current=null)},[]),v=(0,e.useCallback)(()=>{if(q.current||!d||"undefined"!=typeof document&&"hidden"===document.visibilityState)return;u();let a=function(a,b,c,d=Math.random){return Math.max(0,Math.round(Math.min(b*2**Math.max(0,a),c)*(1+(2*d()-1)*.2)))}(o.current,f,g);o.current+=1,n.current=setTimeout(()=>{n.current=null,r.current()},a)},[d,f,g,u]);r.current=(0,e.useCallback)(()=>{},[j,t,u,v]),(0,e.useCallback)(()=>{let a=m.current;if(a){a.onopen=null,a.onmessage=null,a.onerror=null,a.onclose=null,m.current=null;try{a.close(4001,"half-open")}catch{}t("disconnected"),v()}},[t,v]),(0,e.useCallback)(()=>{if(u(),q.current=!0,m.current){try{m.current.close(1e3,"Client disconnect")}catch{}m.current=null}},[u]);let w=(0,e.useCallback)(a=>{let b=m.current,c="undefined"!=typeof globalThis&&"function"==typeof globalThis.WebSocket?globalThis.WebSocket:null;if(b&&c&&b.readyState===c.OPEN)try{b.send(JSON.stringify(a))}catch{}},[]);return{status:k,subscribe:(0,e.useCallback)(a=>{p.current.has(a)||(p.current.add(a),w({type:"subscribe",worktreeId:a}))},[w]),unsubscribe:(0,e.useCallback)(a=>{p.current.has(a)&&(p.current.delete(a),w({type:"unsubscribe",worktreeId:a}))},[w]),send:w}}({enabled:b,onEvent:(0,e.useCallback)(a=>{c.current.forEach(b=>{try{b(a)}catch{}})},[])}),k=(0,e.useCallback)(a=>{let b=f.current,c=b.get(a)??0;b.set(a,c+1),0===c&&i(a)},[i]),l=(0,e.useCallback)(a=>{let b=f.current,c=b.get(a)??0;c<=1?(b.delete(a),j(a)):b.set(a,c-1)},[j]),m=(0,e.useCallback)(a=>(c.current.add(a),()=>{c.current.delete(a)}),[]),n=(0,e.useMemo)(()=>({status:g,connected:"connected"===g,subscribe:k,unsubscribe:l,addListener:m}),[g,k,l,m]);return(0,d.jsx)(h.Provider,{value:n,children:a})}function j(){return(0,e.useContext)(h)??g}function k(a){let{addListener:b}=j();(0,e.useRef)(a).current=a}},75567:(a,b,c)=>{var d={"./en/pwa.json":[51262,1262],"./ja/pwa.json":[46072,6072]};function e(a){if(!c.o(d,a))return Promise.resolve().then(()=>{var b=Error("Cannot find module '"+a+"'");throw b.code="MODULE_NOT_FOUND",b});var b=d[a],e=b[0];return c.e(b[1]).then(()=>c.t(e,19))}e.keys=()=>Object.keys(d),e.id=75567,a.exports=e},76047:(a,b,c)=>{"use strict";c.d(b,{P0:()=>Z,oQ:()=>Y,tJ:()=>U,xk:()=>X,xq:()=>_,yW:()=>$});var d=c(21124),e=c(38301),f=c(23312),g=c(42378),h=c(52761),i=c(20481),j=c(55992),k=c(45523),l=c(67565),m=c(75903),n=c(50987),o=c(59268),p=c(75234),q=c(38882),r=c(70175),s=c(60988),t=c(34487),u=c(25345),v=c(96558),w=c(97950),x=c(75692),y=c(57898),z=c(88285),A=c(71563),B=c(35595),C=c(11010),D=c(64632),E=c(89184),F=c(5772),G=c(63157),H=c(12480),I=c(85744),J=c(78352),K=c(22317),L=c(1637),M=c(89877),N=c(85647),O=c(63474),P=c(85678),Q=c(17252);let R=[{key:"sessions",href:"/sessions"},{key:"repositories",href:"/repositories"},{key:"review",href:"/review"},{key:"skills",href:"/skills"},{key:"more",href:"/more"}],S={sessions:m.A,repositories:n.A,review:o.A,skills:p.A,more:q.A};function T({worktree:a,className:b}){let c=(0,i.c)("common"),e=a.isWaitingForResponse?"waiting":a.isProcessing?"running":a.isSessionRunning?"ready":"idle",f=(0,L.Mq)(e,Object.values(a.sessionStatusByCli??{}).some(a=>(0,M.px)(a)));return(0,d.jsx)(K.m,{status:e,size:"sm",label:f?c(L.rH):void 0,className:(0,B.cn)(b,f&&L.Jd),"data-unclassified":f?"true":void 0})}function U(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 V=(0,B.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"),W="shrink-0 text-muted-foreground";function X(){if("undefined"==typeof document)return null;let a=document.querySelector("[data-instance-id]");return a?.getAttribute("data-instance-id")?.trim()||null}function Y(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}
|
|
39
14
|
|
|
40
|
-
${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 X(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,N.Bz)({binary:f.binary,worktreeId:f.worktreeId,instanceId:g.instanceId,instanceLabel:b.alias,toolLabel:(0,O.oo)(g.cliToolId),portPrefix:f.portPrefix,locale:c})}catch{return null}}let Y={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 Z(){let{open:a,setOpen:b}=(0,D.C)(),{setOpen:c}=(0,E.K)(),m=(0,h.Hq)(),n=(0,g.usePathname)(),o=(0,i.Ym)(),p=(0,j.c)("commandPalette"),q=(0,j.c)("common"),{theme:N,setTheme:S}=(0,k.D)(),{setSize:Z,isMobile:$}=(0,F.Ps)(),{currentLocale:_,switchLocale:aa}=(0,I.g)(),ab=(0,G.rC)(),{showToast:ac}=(0,M.dj)(),[ad,ae]=(0,e.useState)(!1),[af,ag]=(0,e.useState)(""),[ah,ai]=(0,e.useState)([]),aj=(0,e.useRef)(null);(0,e.useRef)(null),(0,e.useRef)(a);let ak=(0,e.useCallback)((a,c)=>{c&&ai(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]),al=(0,e.useCallback)(async a=>{let b=Y["ja"===o?"ja":"en"];if(function(a){let b=/^\/worktrees\/([^/?#]+)/.exec(a??"");return b?decodeURIComponent(b[1]):null}(n)===a.worktree.id&&V()===a.instance.id)return void ac(b.self,"info");let c=await X(a.worktree.id,a.instance,o);if(null===c)return void ac(b.failed,"error");let d=W(c);ac(d?b.inserted:b.noComposer,d?"success":"error")},[o,n,ac]),am=(0,e.useCallback)(async()=>{try{await J.Rx.sync(),await ab?.refresh?.(),ac(p("actions.syncSuccess"),"success")}catch{ac(p("actions.syncError"),"error")}},[ab,ac,p]),an="dark"===N,ao=""===af.trim(),ap=ab?.error??null,aq=ab?.isLoading??!1,ar=ap?[]:ab?.worktrees??[],as=ar.length>0,at=!ap&&aq&&0===ar.length,au=!function(a){let b=a.trim().toLowerCase();return""!==b&&(b.startsWith("/")||b.includes("delegate"))}(af)?[]: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,O.oo)(c.cliToolId),order:0}]:[])b.push({worktree:c,instance:a});return b}(ar),av=Y["ja"===o?"ja":"en"],aw=[...ar].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}),ax=ao?aw.slice(0,8):aw,ay=[{id:"theme",label:an?p("actions.toLight"):p("actions.toDark"),icon:an?r.A:s.A,run:()=>S(an?"light":"dark")},...$?[]:H.Uf.map(a=>({id:`displaysize:${a}`,label:`${p("actions.displaySizePrefix")}: ${q(`displaySize.${a}`)}`,icon:t.A,run:()=>Z(a)})),{id:"sync",label:p("actions.syncRepositories"),icon:u.A,run:()=>{am()}},{id:"locale",label:p("actions.switchLanguage"),icon:v.A,run:()=>aa("ja"===_?"en":"ja")},{id:"github",label:p("actions.openGitHub"),icon:w.A,run:()=>window.open("https://github.com/kewton/MyCodeBranchDesk","_blank","noopener,noreferrer")},{id:"keyboardShortcuts",label:p("actions.keyboardShortcuts"),icon:x.A,run:()=>c(!0)}],az=ao?ah.map(a=>{if("nav"===a.kind){let b=P.find(b=>b.key===a.id);if(!b)return null;let c=Q[b.key],e=q(`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:U,"aria-hidden":"true"}),(0,d.jsx)("span",{className:"truncate",children:e})]}),onSelect:()=>ak(()=>m.push(b.href),{kind:"nav",id:b.key})}}if("worktree"===a.kind){let b=ar.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)(y.A,{size:16,className:U,"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)(K.m,{status:R(b),size:"sm",className:c?"ml-2":"ml-auto"})]}),onSelect:()=>ak(()=>m.push(`/worktrees/${b.id}`),{kind:"worktree",id:b.id})}}let b=ay.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:U,"aria-hidden":"true"}),(0,d.jsx)("span",{className:"truncate",children:b.label})]}),onSelect:()=>ak(b.run,{kind:"action",id:b.id})}}).filter(a=>null!==a):[];return ad?(0,f.createPortal)((0,d.jsx)(d.Fragment,{children:a&&(0,d.jsxs)("div",{className:"fixed inset-0 overflow-y-auto",style:{zIndex:C.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,B.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)(l.uB,{label:p("title"),className:(0,B.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)(z.A,{size:16,strokeWidth:2,"aria-hidden":"true",className:"shrink-0 text-muted-foreground"}),(0,d.jsx)(l.uB.Input,{ref:aj,value:af,onValueChange:ag,placeholder:p("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)(l.uB.List,{className:"max-h-[min(60vh,360px)] overflow-y-auto p-2",children:[(0,d.jsx)(l.uB.Empty,{"data-testid":"command-palette-empty",className:"py-6 text-center text-sm text-muted-foreground",children:p("empty")}),at&&(0,d.jsx)(l.uB.Loading,{"data-testid":"command-palette-loading",className:"py-6 text-center text-sm text-muted-foreground",children:p("loading")}),az.length>0&&(0,d.jsx)(l.uB.Group,{heading:p("groups.recent"),children:az.map(a=>(0,d.jsx)(l.uB.Item,{value:a.value,onSelect:a.onSelect,className:T,children:a.node},a.id))}),(0,d.jsx)(l.uB.Group,{heading:p("groups.navigation"),children:P.map(a=>{let b=q(`nav.${a.key}`),c=Q[a.key];return(0,d.jsxs)(l.uB.Item,{value:`nav ${b} ${a.href}`,onSelect:()=>ak(()=>m.push(a.href),{kind:"nav",id:a.key}),className:T,children:[c&&(0,d.jsx)(c,{size:16,className:U,"aria-hidden":"true"}),(0,d.jsx)("span",{className:"truncate",children:b})]},a.key)})}),as&&(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()]})(ax).map(a=>(0,d.jsx)(l.uB.Group,{heading:a.repository||p("groups.worktrees"),children:a.worktrees.map(b=>{let c=b.branch||b.name;return(0,d.jsxs)(l.uB.Item,{value:`worktree ${a.repository} ${c} ${b.name} ${b.id}`,onSelect:()=>ak(()=>m.push(`/worktrees/${b.id}`),{kind:"worktree",id:b.id}),className:T,children:[(0,d.jsx)(y.A,{size:16,className:U,"aria-hidden":"true"}),(0,d.jsx)("span",{className:"truncate",children:c}),(0,d.jsx)(K.m,{status:R(b),size:"sm",className:"ml-auto"})]},b.id)})},a.key)),au.length>0&&(0,d.jsx)(l.uB.Group,{heading:av.heading,children:au.map(a=>{let b=a.worktree.branch||a.worktree.name;return(0,d.jsxs)(l.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:()=>ak(()=>{al(a)}),className:T,children:[(0,d.jsx)(A.A,{size:16,className:U,"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)(l.uB.Group,{heading:p("groups.actions"),children:ay.map(a=>{let b=a.icon;return(0,d.jsxs)(l.uB.Item,{value:`action ${a.id} ${a.label}`,onSelect:()=>ak(a.run,{kind:"action",id:a.id}),className:T,children:[(0,d.jsx)(b,{size:16,className:U,"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)(L.u,{children:"↑"}),(0,d.jsx)(L.u,{children:"↓"}),p("footer.navigate")]}),(0,d.jsxs)("span",{className:"flex items-center gap-1",children:[(0,d.jsx)(L.u,{children:"↵"}),p("footer.select")]}),(0,d.jsxs)("span",{className:"flex items-center gap-1",children:[(0,d.jsx)(L.u,{children:"esc"}),p("footer.close")]})]})]})})})]})}),document.body):null}},77560:(a,b,c)=>{"use strict";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},78162:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>e});var d=c(97523);let e=async a=>[{type:"image/png",sizes:"32x32",url:(0,d.fillMetadataSegment)(".",await a.params,"icon.png")+"?eeae29d23f3aae17"}]},78352:(a,b,c)=>{"use strict";c.d(b,{$T:()=>s,E:()=>n,GQ:()=>u,O0:()=>h,Rx:()=>q,gC:()=>r,hD:()=>f,hS:()=>t,xd:()=>i,y:()=>p});var d=c(16730),e=c(38557);class f extends Error{constructor(a,b,c,d){super(a),this.status=b,this.data=c,this.name="ApiError",this.kind=d??(b>0?"http":"network")}}async function g(a,b,c){if(!(a.headers.get("content-type")||"").includes("application/json"))return b;try{return await a.json()}catch{return b}}function h(a){return a.redirected&&(a.url??"").includes("/login")?new f("Authentication required",401):null}function i(a){return a.headers?(a.headers.get("content-type")||"").includes("application/json")?null:new f("Unexpected response format",a.status):null}let j=null;function k(a){let b=Date.now();null!==j&&j.reachable===a&&b-j.at<d.T2||(j={reachable:a,at:b},(0,e.nG)(a))}async function l(a,b,c){let d=b.signal??void 0;if(d?.aborted)throw new f("Request aborted",0,void 0,"aborted");if(c<=0||"function"!=typeof AbortController)return fetch(a,b);let e=new AbortController,g=!1,h=setTimeout(()=>{g=!0,e.abort()},c),i=()=>e.abort();d?.addEventListener("abort",i);try{return await fetch(a,{...b,signal:e.signal})}catch(a){if(d?.aborted)throw new f("Request aborted",0,a,"aborted");if(g)throw new f(`Request timed out after ${c}ms`,0,a,"timeout");throw a}finally{clearTimeout(h),d?.removeEventListener("abort",i)}}function m(a){return new Promise(b=>setTimeout(b,a))}async function n(a,b){let{timeoutMs:c,retries:e,...g}=b??{},h=(g.method??"GET").toUpperCase(),i=(0,d.nk)(h)?Math.max(0,e??d.SR):0,j=void 0===c?(0,d.Z3)(h):c??d.Hi,n=Date.now(),o=a=>a<i&&Date.now()-n<d.Ct;for(let b=0;;b++){if("undefined"!=typeof navigator&&!1===navigator.onLine)throw new f("No network connection",0,void 0,"offline");try{let c=await l(a,g,j);if(k(!0),(0,d.PS)(c.status)&&o(b)){await m((0,d.BV)(b));continue}return c}catch(c){let a=function(a){if(a instanceof f)return a;let b=a instanceof Error?a.name:"";return"AbortError"===b||"TimeoutError"===b?new f("Request aborted",0,a,"aborted"):new f(a instanceof Error?a.message:"Unknown error",0,a,"network")}(c);if("aborted"===a.kind||(k(!1),!o(b)))throw a;await m((0,d.BV)(b))}}}async function o(a,b){try{let c=new Headers(b?.headers);c.set("Content-Type","application/json");let d=await n(a,{...b,headers:c}),e=h(d);if(e)throw e;if(!d.ok){let a=await g(d,{},"error-body");throw new f(a.error||`HTTP error ${d.status}`,d.status,a)}let j=i(d);if(j)throw j;return d.json()}catch(a){if(a instanceof f)throw a;throw new f(a instanceof Error?a.message:"Unknown error",0,a)}}let p={getAll:async()=>o("/api/worktrees"),getById:async a=>o(`/api/worktrees/${a}`),updateDescription:async(a,b)=>o(`/api/worktrees/${a}`,{method:"PATCH",body:JSON.stringify({description:b})}),updateLink:async(a,b)=>o(`/api/worktrees/${a}`,{method:"PATCH",body:JSON.stringify({link:b})}),toggleFavorite:async(a,b)=>o(`/api/worktrees/${a}`,{method:"PATCH",body:JSON.stringify({favorite:b})}),updateStatus:async(a,b)=>o(`/api/worktrees/${a}`,{method:"PATCH",body:JSON.stringify({status:b})}),updateCliTool:async(a,b)=>o(`/api/worktrees/${a}`,{method:"PATCH",body:JSON.stringify({cliToolId:b})}),markAsViewed:async a=>o(`/api/worktrees/${a}/viewed`,{method:"PATCH"}),async getMessages(a,b,c,d){let e=new URLSearchParams;return b&&e.append("cliTool",b),c&&e.append("includeArchived","true"),"number"==typeof d&&Number.isFinite(d)&&e.append("limit",String(d)),o(`/api/worktrees/${a}/messages${e.toString()?`?${e.toString()}`:""}`)},async sendMessage(a,b,c){var d;let e={content:b};return c?.cliToolId&&(e.cliToolId=c.cliToolId),c?.instanceId&&(e.instanceId=c.instanceId),c?.imagePath&&(e.imagePath=c.imagePath),null===(d=await o(`/api/worktrees/${a}/send`,{method:"POST",body:JSON.stringify(e)}))||"object"!=typeof d||d.timestamp instanceof Date?d:{...d,timestamp:new Date(d.timestamp)}},async uploadImageFile(a,b){let c=Date.now(),d=`${c}-${b.name}`,e=".commandmate/attachments",f=new FormData;f.append("file",new File([b],d,{type:b.type}));let h=await fetch(`/api/worktrees/${a}/upload/${e}`,{method:"POST",body:f});if(!h.ok){let a=await g(h,{},"error-body");throw Error(a?.error?.message||`Upload failed (HTTP ${h.status})`)}return{path:(await g(h,{},"response-body")).path||`${e}/${d}`}},getLogs:async a=>o(`/api/worktrees/${a}/logs`),async getLogFile(a,b,c){let d=c?.sanitize?"?sanitize=true":"";return o(`/api/worktrees/${a}/logs/${b}${d}`)},async killSession(a,b,c){let d=new URLSearchParams;b&&d.set("cliTool",b),c&&d.set("instance",c);let e=d.toString();return o(`/api/worktrees/${a}/kill-session${e?`?${e}`:""}`,{method:"POST"})}},q={scan:async a=>o("/api/repositories/scan",{method:"POST",body:JSON.stringify({repositoryPath:a})}),sync:async()=>o("/api/repositories/sync",{method:"POST"}),delete:async a=>o("/api/repositories",{method:"DELETE",body:JSON.stringify({repositoryPath:a})}),clone:async(a,b)=>o("/api/repositories/clone",{method:"POST",body:JSON.stringify({cloneUrl:a,fork:b?.fork??!1})}),getCloneStatus:async a=>o(`/api/repositories/clone/${a}`),getExcluded:async()=>o("/api/repositories/excluded"),restore:async a=>o("/api/repositories/restore",{method:"PUT",body:JSON.stringify({repositoryPath:a})}),list:async()=>o("/api/repositories"),updateDisplayName:async(a,b)=>o(`/api/repositories/${encodeURIComponent(a)}`,{method:"PUT",body:JSON.stringify({displayName:b})}),updateVisibility:async(a,b)=>o(`/api/repositories/${encodeURIComponent(a)}`,{method:"PUT",body:JSON.stringify({visible:b})}),updateEnabled:async(a,b)=>o(`/api/repositories/${encodeURIComponent(a)}`,{method:"PUT",body:JSON.stringify({enabled:b})}),validatePath:async a=>o("/api/repositories/validate-path",{method:"POST",body:JSON.stringify({repositoryPath:a})})},r={async browse(a){let b=a?`?path=${encodeURIComponent(a)}`:"";return o(`/api/fs/browse${b}`)},addRecentPath:async a=>o("/api/fs/recent-paths",{method:"POST",body:JSON.stringify({path:a})})},s={getAll:async a=>(await o(`/api/worktrees/${a}/memos`)).memos,create:async(a,b)=>(await o(`/api/worktrees/${a}/memos`,{method:"POST",body:JSON.stringify(b||{})})).memo,update:async(a,b,c)=>(await o(`/api/worktrees/${a}/memos/${b}`,{method:"PUT",body:JSON.stringify(c)})).memo,delete:async(a,b)=>o(`/api/worktrees/${a}/memos/${b}`,{method:"DELETE"}),async reorder(a,b){await o(`/api/worktrees/${a}/memos`,{method:"PATCH",body:JSON.stringify({memoIds:b})})}};function t(a){return a instanceof f||a instanceof Error?a.message:"An unknown error occurred"}let u={checkForUpdate:async()=>o("/api/app/update-check",{method:"GET"}),startUpdate:async()=>o("/api/app/update",{method:"POST"}),async ping(){try{return(await fetch("/api/auth/status",{cache:"no-store"})).ok}catch{return!1}},async getReleaseNotes(a,b){let c=new URLSearchParams({from:a,to:b});return o(`/api/app/release-notes?${c.toString()}`,{method:"GET"})}}},79689:(a,b,c)=>{"use strict";c.d(b,{E:()=>f});var d=c(21124);c(38301);var e=c(35595);function f({className:a,...b}){return(0,d.jsx)("div",{className:(0,e.cn)("animate-pulse rounded-md bg-muted",a),"aria-hidden":"true",...b})}},79782:(a,b,c)=>{"use strict";c.d(b,{SC:()=>m,TM:()=>i,aF:()=>k});var d=c(21124),e=c(38301),f=c(20481),g=c(98033),h=c(94260);function i({isOpen:a,title:b,description:c,confirmLabel:e,cancelLabel:i,variant:j="default",onConfirm:k,onCancel:l}){let m=(0,f.c)("common"),n="danger"===j;return(0,d.jsx)(g.a,{isOpen:a,onClose:l,title:b??m("confirmDialog.title"),size:"sm",showCloseButton:!1,children:(0,d.jsxs)("div",{className:"space-y-4","data-testid":"confirm-dialog",children:[(0,d.jsx)("p",{className:"text-sm text-foreground whitespace-pre-line",children:c}),(0,d.jsxs)("div",{className:"flex justify-end gap-3",children:[(0,d.jsx)(h.$,{type:"button",variant:"secondary",size:"sm",autoFocus:n,onClick:l,"data-testid":"confirm-dialog-cancel",children:i??m("cancel")}),(0,d.jsx)(h.$,{type:"button",variant:n?"danger":"primary",size:"sm",autoFocus:!n,onClick:k,"data-testid":"confirm-dialog-confirm",children:e??m("confirmDialog.confirm")})]})]})})}let j=(0,e.createContext)(null);function k({children:a}){let[b,c]=(0,e.useState)(null),f=(0,e.useRef)(null),g=(0,e.useRef)(null),h=b?.options??g.current,k=(0,e.useCallback)(a=>new Promise(b=>{f.current=document.activeElement instanceof HTMLElement?document.activeElement:null,c(c=>(c?.resolve(!1),{options:a,resolve:b}))}),[]),l=(0,e.useCallback)(a=>{c(b=>(b?.resolve(a),null)),f.current?.focus(),f.current=null},[]);return(0,d.jsxs)(j.Provider,{value:k,children:[a,(0,d.jsx)(i,{isOpen:null!==b,title:h?.title,description:h?.description??"",confirmLabel:h?.confirmLabel,cancelLabel:h?.cancelLabel,variant:h?.variant,onConfirm:()=>l(!0),onCancel:()=>l(!1)})]})}let l=async()=>!1;function m(){return(0,e.useContext)(j)??l}},80407:(a,b,c)=>{var d={"./en/commandPalette.json":[28098,8098],"./ja/commandPalette.json":[12560,2560]};function e(a){if(!c.o(d,a))return Promise.resolve().then(()=>{var b=Error("Cannot find module '"+a+"'");throw b.code="MODULE_NOT_FOUND",b});var b=d[a],e=b[0];return c.e(b[1]).then(()=>c.t(e,19))}e.keys=()=>Object.keys(d),e.id=80407,a.exports=e},80755:(a,b,c)=>{"use strict";c.d(b,{E:()=>i});var d=c(21124);c(38301);var e=c(26691),f=c(35595);let g=(0,e.F)("inline-flex items-center px-2.5 py-0.5 rounded-full text-xs font-medium",{variants:{variant:{success:"bg-success-subtle text-success-foreground",warning:"bg-warning-subtle text-warning-foreground",error:"bg-danger-subtle text-danger-foreground",info:"bg-accent-100 dark:bg-accent-900 text-accent-800 dark:text-accent-300",gray:"bg-muted text-muted-foreground"}},defaultVariants:{variant:"gray"}}),h={success:"bg-success",warning:"bg-warning",error:"bg-danger",info:"bg-info",gray:"bg-muted-foreground"};function i({variant:a="gray",dot:b=!1,className:c="",children:e,...i}){return(0,d.jsxs)("span",{className:(0,f.cn)(g({variant:a}),c),...i,children:[b&&(0,d.jsx)("span",{className:(0,f.cn)("mr-1.5 inline-block h-2 w-2 rounded-full",h[a]),"aria-hidden":"true"}),e]})}},80776:(a,b,c)=>{"use strict";c.d(b,{AppProviders:()=>C});var d=c(21124),e=c(37397),f=c(45523),g=c(81092),h=c(84342),i=c(5772),j=c(64632),k=c(89184),l=c(63157),m=c(52761),n=c(74930),o=c(79782),p=c(23910),q=c(62197),r=c(73060),s=c(63474),t=c(74132),u=c(67693),v=c(90102),w=c(38301),x=c(20481),y=c(25345),z=c(11010),A=c(18608);function B(){let a=(0,x.c)("pwa"),[b,c]=(0,w.useState)(null);(0,w.useRef)(!1);let e=(0,A.W)();return!b||e?null:(0,d.jsx)("div",{"data-testid":"pwa-update-toast",role:"status","aria-live":"polite",className:"pointer-events-none fixed bottom-0 right-0 flex max-w-full justify-end px-4 pb-safe",style:{zIndex:z.M.TOAST},children:(0,d.jsxs)("div",{"data-testid":"pwa-update-toast-card",className:"pointer-events-auto mb-4 flex items-center gap-3 rounded-lg border border-border bg-surface px-4 py-3 shadow-lg",children:[(0,d.jsx)("span",{className:"text-sm font-medium text-foreground",children:a("update.available")}),(0,d.jsxs)("button",{type:"button",onClick:()=>{b.postMessage({type:"SKIP_WAITING"})},className:"inline-flex items-center gap-1.5 rounded-md bg-accent-600 px-3 py-1.5 text-sm font-medium text-white transition-colors hover:bg-accent-700 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 ring-offset-background dark:bg-accent-500 dark:hover:bg-accent-600",children:[(0,d.jsx)(y.A,{className:"h-4 w-4"}),a("update.reload")]})]})})}function C({children:a,locale:b,messages:c,timeZone:w,authEnabled:x=!1}){return(0,d.jsx)(e.default,{locale:b,messages:c,timeZone:w,children:(0,d.jsx)(s.tE,{children:(0,d.jsx)(f.N,{attribute:"class",defaultTheme:"system",enableSystem:!0,children:(0,d.jsx)(h.O,{authEnabled:x,children:(0,d.jsx)(i.W5,{children:(0,d.jsx)(g.GB,{children:(0,d.jsx)(n.tS,{children:(0,d.jsxs)(l.g7,{children:[(0,d.jsx)(t.rM,{}),(0,d.jsx)(v.o,{}),(0,d.jsx)(u.H,{}),(0,d.jsx)(j.E,{children:(0,d.jsx)(k.S,{children:(0,d.jsx)(o.aF,{children:(0,d.jsx)(p.y2,{children:(0,d.jsxs)(q.NS,{children:[(0,d.jsx)(m.Bo,{children:a}),(0,d.jsx)(B,{}),(0,d.jsx)(r.gZ,{})]})})})})})]})})})})})})})})}},80812:(a,b,c)=>{var d={"./en/externalApps.json":[37941,7941],"./ja/externalApps.json":[99211,9211]};function e(a){if(!c.o(d,a))return Promise.resolve().then(()=>{var b=Error("Cannot find module '"+a+"'");throw b.code="MODULE_NOT_FOUND",b});var b=d[a],e=b[0];return c.e(b[1]).then(()=>c.t(e,19))}e.keys=()=>Object.keys(d),e.id=80812,a.exports=e},81092:(a,b,c)=>{"use strict";c.d(b,{GB:()=>k,VF:()=>l,pT:()=>m});var d=c(21124),e=c(38301),f=c(32482);let g="updatedAt",h=(0,e.createContext)(null);function i(a,b,c,d){(0,e.useRef)(!0)}function j(a,b){switch(b.type){case"TOGGLE":return{...a,isOpen:!a.isOpen};case"SET_WIDTH":return{...a,width:b.width};case"OPEN_MOBILE_DRAWER":return{...a,isMobileDrawerOpen:!0};case"CLOSE_MOBILE_DRAWER":return{...a,isMobileDrawerOpen:!1};case"SET_SORT_KEY":return{...a,sortKey:b.sortKey};case"SET_SORT_DIRECTION":return{...a,sortDirection:b.sortDirection};case"LOAD_SORT_SETTINGS":return{...a,sortKey:b.sortKey,sortDirection:b.sortDirection};case"SET_VIEW_MODE":return{...a,viewMode:b.viewMode};case"SET_OPEN":return a.isOpen===b.isOpen?a:{...a,isOpen:b.isOpen};case"SET_REPOSITORY_ORDER":return{...a,repositoryOrder:b.repositoryOrder};case"SET_REPO_TAB_BAR_MODE":return{...a,repoTabBarMode:b.repoTabBarMode};default:return a}}function k({children:a,initialOpen:b=!0,initialWidth:c=224}){let[k,l]=(0,e.useReducer)(j,{isOpen:b,width:c,isMobileDrawerOpen:!1,sortKey:g,sortDirection:"desc",viewMode:"grouped",repositoryOrder:(0,f.ZD)(),repoTabBarMode:f.PB});i("mcbd-sidebar-sort",`${k.sortKey}:${k.sortDirection}`,()=>JSON.stringify({sortKey:k.sortKey,sortDirection:k.sortDirection}),a=>{try{let b=JSON.parse(a),c=b.sortDirection,d=(0,f.Si)(b.sortKey)?b.sortKey:g;d&&("asc"===c||"desc"===c)&&l({type:"LOAD_SORT_SETTINGS",sortKey:d,sortDirection:c})}catch{}}),i("mcbd-sidebar-view-mode",k.viewMode,()=>k.viewMode,a=>{(0,f.$m)(a)&&l({type:"SET_VIEW_MODE",viewMode:a})}),i("mcbd-sidebar-width",k.width,()=>String(k.width),a=>{let b=Number(a);!isNaN(b)&&b>0&&l({type:"SET_WIDTH",width:288===b?224:b})}),i("mcbd-sidebar-open",k.isOpen,()=>String(k.isOpen),a=>{("true"===a||"false"===a)&&l({type:"SET_OPEN",isOpen:"true"===a})}),i("mcbd-repo-tab-bar-mode",k.repoTabBarMode,()=>k.repoTabBarMode,a=>{(0,f.m3)(a)&&l({type:"SET_REPO_TAB_BAR_MODE",repoTabBarMode:a})});let m=(0,e.useCallback)(()=>{l({type:"TOGGLE"})},[]),n=(0,e.useCallback)(a=>{l({type:"SET_WIDTH",width:a})},[]),o=(0,e.useCallback)(()=>{l({type:"OPEN_MOBILE_DRAWER"})},[]),p=(0,e.useCallback)(()=>{l({type:"CLOSE_MOBILE_DRAWER"})},[]),q=(0,e.useCallback)(a=>{l({type:"SET_SORT_KEY",sortKey:a})},[]),r=(0,e.useCallback)(a=>{l({type:"SET_SORT_DIRECTION",sortDirection:a})},[]),s=(0,e.useCallback)(a=>{l({type:"SET_VIEW_MODE",viewMode:a})},[]),t=(0,e.useCallback)(a=>{l({type:"SET_REPOSITORY_ORDER",repositoryOrder:a}),(0,f.ZC)(a)},[]),u=(0,e.useCallback)(a=>{l({type:"SET_REPO_TAB_BAR_MODE",repoTabBarMode:a})},[]),v=(0,e.useMemo)(()=>({isOpen:k.isOpen,width:k.width,isMobileDrawerOpen:k.isMobileDrawerOpen,sortKey:k.sortKey,sortDirection:k.sortDirection,toggle:m,setWidth:n,openMobileDrawer:o,closeMobileDrawer:p,setSortKey:q,setSortDirection:r,viewMode:k.viewMode,setViewMode:s,repositoryOrder:k.repositoryOrder,setRepositoryOrder:t,repoTabBarMode:k.repoTabBarMode,setRepoTabBarMode:u}),[k.isOpen,k.width,k.isMobileDrawerOpen,k.sortKey,k.sortDirection,k.viewMode,k.repositoryOrder,k.repoTabBarMode,m,n,o,p,q,r,s,t,u]);return(0,d.jsx)(h.Provider,{value:v,children:a})}function l(){let a=(0,e.useContext)(h);if(!a)throw Error("useSidebarContext must be used within a SidebarProvider");return a}function m(){return(0,e.useContext)(h)}},81497:(a,b,c)=>{"use strict";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)]})}},84342:(a,b,c)=>{"use strict";c.d(b,{H:()=>h,O:()=>g});var d=c(21124),e=c(38301);let f=(0,e.createContext)(!1);function g({children:a,authEnabled:b}){return(0,d.jsx)(f.Provider,{value:b,children:a})}function h(){return(0,e.useContext)(f)}},85647:(a,b,c)=>{"use strict";c.d(b,{u:()=>f});var d=c(21124);c(38301);var e=c(35595);function f({className:a,children:b,...c}){return(0,d.jsx)("kbd",{className:(0,e.cn)("inline-flex h-5 min-w-[1.25rem] items-center justify-center rounded-sm border border-border bg-surface px-1","font-mono text-[10px] font-medium leading-none text-muted-foreground",a),...c,children:b})}},85678:(a,b,c)=>{"use strict";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}」への委任
|
|
15
|
+
${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 Z(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,P.Bz)({binary:f.binary,worktreeId:f.worktreeId,instanceId:g.instanceId,instanceLabel:b.alias,toolLabel:(0,Q.oo)(g.cliToolId),portPrefix:f.portPrefix,locale:c})}catch{return null}}let $={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,D.C)(),{setOpen:c}=(0,E.K)(),m=(0,h.Hq)(),n=(0,g.usePathname)(),o=(0,j.Ym)(),p=(0,i.c)("commandPalette"),q=(0,i.c)("common"),{theme:K,setTheme:L}=(0,k.D)(),{setSize:M,isMobile:P}=(0,F.Ps)(),{currentLocale:U,switchLocale:_}=(0,I.g)(),aa=(0,G.rC)(),{showToast:ab}=(0,O.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=$["ja"===o?"ja":"en"];if(function(a){let b=/^\/worktrees\/([^/?#]+)/.exec(a??"");return b?decodeURIComponent(b[1]):null}(n)===a.worktree.id&&X()===a.instance.id)return void ab(b.self,"info");let c=await Z(a.worktree.id,a.instance,o);if(null===c)return void ab(b.failed,"error");let d=Y(c);ab(d?b.inserted:b.noComposer,d?"success":"error")},[o,n,ab]),al=(0,e.useCallback)(async()=>{try{await J.Rx.sync(),await aa?.refresh?.(),ab(p("actions.syncSuccess"),"success")}catch{ab(p("actions.syncError"),"error")}},[aa,ab,p]),am="dark"===K,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,Q.oo)(c.cliToolId),order:0}]:[])b.push({worktree:c,instance:a});return b}(aq),au=$["ja"===o?"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?p("actions.toLight"):p("actions.toDark"),icon:am?r.A:s.A,run:()=>L(am?"light":"dark")},...P?[]:H.Uf.map(a=>({id:`displaysize:${a}`,label:`${p("actions.displaySizePrefix")}: ${q(`displaySize.${a}`)}`,icon:t.A,run:()=>M(a)})),{id:"sync",label:p("actions.syncRepositories"),icon:u.A,run:()=>{al()}},{id:"locale",label:p("actions.switchLanguage"),icon:v.A,run:()=>_("ja"===U?"en":"ja")},{id:"github",label:p("actions.openGitHub"),icon:w.A,run:()=>window.open("https://github.com/kewton/MyCodeBranchDesk","_blank","noopener,noreferrer")},{id:"keyboardShortcuts",label:p("actions.keyboardShortcuts"),icon:x.A,run:()=>c(!0)}],ay=an?ag.map(a=>{if("nav"===a.kind){let b=R.find(b=>b.key===a.id);if(!b)return null;let c=S[b.key],e=q(`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:W,"aria-hidden":"true"}),(0,d.jsx)("span",{className:"truncate",children:e})]}),onSelect:()=>aj(()=>m.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)(y.A,{size:16,className:W,"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)(T,{worktree:b,className:c?"ml-2":"ml-auto"})]}),onSelect:()=>aj(()=>m.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:W,"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:C.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,B.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)(l.uB,{label:p("title"),className:(0,B.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)(z.A,{size:16,strokeWidth:2,"aria-hidden":"true",className:"shrink-0 text-muted-foreground"}),(0,d.jsx)(l.uB.Input,{ref:ai,value:ae,onValueChange:af,placeholder:p("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)(l.uB.List,{className:"max-h-[min(60vh,360px)] overflow-y-auto p-2",children:[(0,d.jsx)(l.uB.Empty,{"data-testid":"command-palette-empty",className:"py-6 text-center text-sm text-muted-foreground",children:p("empty")}),as&&(0,d.jsx)(l.uB.Loading,{"data-testid":"command-palette-loading",className:"py-6 text-center text-sm text-muted-foreground",children:p("loading")}),ay.length>0&&(0,d.jsx)(l.uB.Group,{heading:p("groups.recent"),children:ay.map(a=>(0,d.jsx)(l.uB.Item,{value:a.value,onSelect:a.onSelect,className:V,children:a.node},a.id))}),(0,d.jsx)(l.uB.Group,{heading:p("groups.navigation"),children:R.map(a=>{let b=q(`nav.${a.key}`),c=S[a.key];return(0,d.jsxs)(l.uB.Item,{value:`nav ${b} ${a.href}`,onSelect:()=>aj(()=>m.push(a.href),{kind:"nav",id:a.key}),className:V,children:[c&&(0,d.jsx)(c,{size:16,className:W,"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)(l.uB.Group,{heading:a.repository||p("groups.worktrees"),children:a.worktrees.map(b=>{let c=b.branch||b.name;return(0,d.jsxs)(l.uB.Item,{value:`worktree ${a.repository} ${c} ${b.name} ${b.id}`,onSelect:()=>aj(()=>m.push(`/worktrees/${b.id}`),{kind:"worktree",id:b.id}),className:V,children:[(0,d.jsx)(y.A,{size:16,className:W,"aria-hidden":"true"}),(0,d.jsx)("span",{className:"truncate",children:c}),(0,d.jsx)(T,{worktree:b,className:"ml-auto"})]},b.id)})},a.key)),at.length>0&&(0,d.jsx)(l.uB.Group,{heading:au.heading,children:at.map(a=>{let b=a.worktree.branch||a.worktree.name;return(0,d.jsxs)(l.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:V,children:[(0,d.jsx)(A.A,{size:16,className:W,"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)(l.uB.Group,{heading:p("groups.actions"),children:ax.map(a=>{let b=a.icon;return(0,d.jsxs)(l.uB.Item,{value:`action ${a.id} ${a.label}`,onSelect:()=>aj(a.run,{kind:"action",id:a.id}),className:V,children:[(0,d.jsx)(b,{size:16,className:W,"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)(N.u,{children:"↑"}),(0,d.jsx)(N.u,{children:"↓"}),p("footer.navigate")]}),(0,d.jsxs)("span",{className:"flex items-center gap-1",children:[(0,d.jsx)(N.u,{children:"↵"}),p("footer.select")]}),(0,d.jsxs)("span",{className:"flex items-center gap-1",children:[(0,d.jsx)(N.u,{children:"esc"}),p("footer.close")]})]})]})})})]})}),document.body):null}},77560:(a,b,c)=>{"use strict";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},78162:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>e});var d=c(97523);let e=async a=>[{type:"image/png",sizes:"32x32",url:(0,d.fillMetadataSegment)(".",await a.params,"icon.png")+"?eeae29d23f3aae17"}]},78352:(a,b,c)=>{"use strict";c.d(b,{$T:()=>s,E:()=>n,GQ:()=>u,O0:()=>h,Rx:()=>q,gC:()=>r,hD:()=>f,hS:()=>t,xd:()=>i,y:()=>p});var d=c(16730),e=c(38557);class f extends Error{constructor(a,b,c,d){super(a),this.status=b,this.data=c,this.name="ApiError",this.kind=d??(b>0?"http":"network")}}async function g(a,b,c){if(!(a.headers.get("content-type")||"").includes("application/json"))return b;try{return await a.json()}catch{return b}}function h(a){return a.redirected&&(a.url??"").includes("/login")?new f("Authentication required",401):null}function i(a){return a.headers?(a.headers.get("content-type")||"").includes("application/json")?null:new f("Unexpected response format",a.status):null}let j=null;function k(a){let b=Date.now();null!==j&&j.reachable===a&&b-j.at<d.T2||(j={reachable:a,at:b},(0,e.nG)(a))}async function l(a,b,c){let d=b.signal??void 0;if(d?.aborted)throw new f("Request aborted",0,void 0,"aborted");if(c<=0||"function"!=typeof AbortController)return fetch(a,b);let e=new AbortController,g=!1,h=setTimeout(()=>{g=!0,e.abort()},c),i=()=>e.abort();d?.addEventListener("abort",i);try{return await fetch(a,{...b,signal:e.signal})}catch(a){if(d?.aborted)throw new f("Request aborted",0,a,"aborted");if(g)throw new f(`Request timed out after ${c}ms`,0,a,"timeout");throw a}finally{clearTimeout(h),d?.removeEventListener("abort",i)}}function m(a){return new Promise(b=>setTimeout(b,a))}async function n(a,b){let{timeoutMs:c,retries:e,...g}=b??{},h=(g.method??"GET").toUpperCase(),i=(0,d.nk)(h)?Math.max(0,e??d.SR):0,j=void 0===c?(0,d.Z3)(h):c??d.Hi,n=Date.now(),o=a=>a<i&&Date.now()-n<d.Ct;for(let b=0;;b++){if("undefined"!=typeof navigator&&!1===navigator.onLine)throw new f("No network connection",0,void 0,"offline");try{let c=await l(a,g,j);if(k(!0),(0,d.PS)(c.status)&&o(b)){await m((0,d.BV)(b));continue}return c}catch(c){let a=function(a){if(a instanceof f)return a;let b=a instanceof Error?a.name:"";return"AbortError"===b||"TimeoutError"===b?new f("Request aborted",0,a,"aborted"):new f(a instanceof Error?a.message:"Unknown error",0,a,"network")}(c);if("aborted"===a.kind||(k(!1),!o(b)))throw a;await m((0,d.BV)(b))}}}async function o(a,b){try{let c=new Headers(b?.headers);c.set("Content-Type","application/json");let d=await n(a,{...b,headers:c}),e=h(d);if(e)throw e;if(!d.ok){let a=await g(d,{},"error-body");throw new f(a.error||`HTTP error ${d.status}`,d.status,a)}let j=i(d);if(j)throw j;return d.json()}catch(a){if(a instanceof f)throw a;throw new f(a instanceof Error?a.message:"Unknown error",0,a)}}let p={getAll:async()=>o("/api/worktrees"),getById:async a=>o(`/api/worktrees/${a}`),updateDescription:async(a,b)=>o(`/api/worktrees/${a}`,{method:"PATCH",body:JSON.stringify({description:b})}),updateLink:async(a,b)=>o(`/api/worktrees/${a}`,{method:"PATCH",body:JSON.stringify({link:b})}),toggleFavorite:async(a,b)=>o(`/api/worktrees/${a}`,{method:"PATCH",body:JSON.stringify({favorite:b})}),updateStatus:async(a,b)=>o(`/api/worktrees/${a}`,{method:"PATCH",body:JSON.stringify({status:b})}),updateCliTool:async(a,b)=>o(`/api/worktrees/${a}`,{method:"PATCH",body:JSON.stringify({cliToolId:b})}),markAsViewed:async a=>o(`/api/worktrees/${a}/viewed`,{method:"PATCH"}),async getMessages(a,b,c,d){let e=new URLSearchParams;return b&&e.append("cliTool",b),c&&e.append("includeArchived","true"),"number"==typeof d&&Number.isFinite(d)&&e.append("limit",String(d)),o(`/api/worktrees/${a}/messages${e.toString()?`?${e.toString()}`:""}`)},async sendMessage(a,b,c){var d;let e={content:b};return c?.cliToolId&&(e.cliToolId=c.cliToolId),c?.instanceId&&(e.instanceId=c.instanceId),c?.imagePath&&(e.imagePath=c.imagePath),null===(d=await o(`/api/worktrees/${a}/send`,{method:"POST",body:JSON.stringify(e)}))||"object"!=typeof d||d.timestamp instanceof Date?d:{...d,timestamp:new Date(d.timestamp)}},async uploadImageFile(a,b){let c=Date.now(),d=`${c}-${b.name}`,e=".commandmate/attachments",f=new FormData;f.append("file",new File([b],d,{type:b.type}));let h=await fetch(`/api/worktrees/${a}/upload/${e}`,{method:"POST",body:f});if(!h.ok){let a=await g(h,{},"error-body");throw Error(a?.error?.message||`Upload failed (HTTP ${h.status})`)}return{path:(await g(h,{},"response-body")).path||`${e}/${d}`}},getLogs:async a=>o(`/api/worktrees/${a}/logs`),async getLogFile(a,b,c){let d=c?.sanitize?"?sanitize=true":"";return o(`/api/worktrees/${a}/logs/${b}${d}`)},async killSession(a,b,c){let d=new URLSearchParams;b&&d.set("cliTool",b),c&&d.set("instance",c);let e=d.toString();return o(`/api/worktrees/${a}/kill-session${e?`?${e}`:""}`,{method:"POST"})}},q={scan:async a=>o("/api/repositories/scan",{method:"POST",body:JSON.stringify({repositoryPath:a})}),sync:async()=>o("/api/repositories/sync",{method:"POST"}),delete:async a=>o("/api/repositories",{method:"DELETE",body:JSON.stringify({repositoryPath:a})}),clone:async(a,b)=>o("/api/repositories/clone",{method:"POST",body:JSON.stringify({cloneUrl:a,fork:b?.fork??!1})}),getCloneStatus:async a=>o(`/api/repositories/clone/${a}`),getExcluded:async()=>o("/api/repositories/excluded"),restore:async a=>o("/api/repositories/restore",{method:"PUT",body:JSON.stringify({repositoryPath:a})}),list:async()=>o("/api/repositories"),updateDisplayName:async(a,b)=>o(`/api/repositories/${encodeURIComponent(a)}`,{method:"PUT",body:JSON.stringify({displayName:b})}),updateVisibility:async(a,b)=>o(`/api/repositories/${encodeURIComponent(a)}`,{method:"PUT",body:JSON.stringify({visible:b})}),updateEnabled:async(a,b)=>o(`/api/repositories/${encodeURIComponent(a)}`,{method:"PUT",body:JSON.stringify({enabled:b})}),validatePath:async a=>o("/api/repositories/validate-path",{method:"POST",body:JSON.stringify({repositoryPath:a})})},r={async browse(a){let b=a?`?path=${encodeURIComponent(a)}`:"";return o(`/api/fs/browse${b}`)},addRecentPath:async a=>o("/api/fs/recent-paths",{method:"POST",body:JSON.stringify({path:a})})},s={getAll:async a=>(await o(`/api/worktrees/${a}/memos`)).memos,create:async(a,b)=>(await o(`/api/worktrees/${a}/memos`,{method:"POST",body:JSON.stringify(b||{})})).memo,update:async(a,b,c)=>(await o(`/api/worktrees/${a}/memos/${b}`,{method:"PUT",body:JSON.stringify(c)})).memo,delete:async(a,b)=>o(`/api/worktrees/${a}/memos/${b}`,{method:"DELETE"}),async reorder(a,b){await o(`/api/worktrees/${a}/memos`,{method:"PATCH",body:JSON.stringify({memoIds:b})})}};function t(a){return a instanceof f||a instanceof Error?a.message:"An unknown error occurred"}let u={checkForUpdate:async()=>o("/api/app/update-check",{method:"GET"}),startUpdate:async()=>o("/api/app/update",{method:"POST"}),async ping(){try{return(await fetch("/api/auth/status",{cache:"no-store"})).ok}catch{return!1}},async getReleaseNotes(a,b){let c=new URLSearchParams({from:a,to:b});return o(`/api/app/release-notes?${c.toString()}`,{method:"GET"})}}},79689:(a,b,c)=>{"use strict";c.d(b,{E:()=>f});var d=c(21124);c(38301);var e=c(35595);function f({className:a,...b}){return(0,d.jsx)("div",{className:(0,e.cn)("animate-pulse rounded-md bg-muted",a),"aria-hidden":"true",...b})}},79782:(a,b,c)=>{"use strict";c.d(b,{SC:()=>m,TM:()=>i,aF:()=>k});var d=c(21124),e=c(38301),f=c(20481),g=c(98033),h=c(94260);function i({isOpen:a,title:b,description:c,confirmLabel:e,cancelLabel:i,variant:j="default",onConfirm:k,onCancel:l}){let m=(0,f.c)("common"),n="danger"===j;return(0,d.jsx)(g.a,{isOpen:a,onClose:l,title:b??m("confirmDialog.title"),size:"sm",showCloseButton:!1,children:(0,d.jsxs)("div",{className:"space-y-4","data-testid":"confirm-dialog",children:[(0,d.jsx)("p",{className:"text-sm text-foreground whitespace-pre-line",children:c}),(0,d.jsxs)("div",{className:"flex justify-end gap-3",children:[(0,d.jsx)(h.$,{type:"button",variant:"secondary",size:"sm",autoFocus:n,onClick:l,"data-testid":"confirm-dialog-cancel",children:i??m("cancel")}),(0,d.jsx)(h.$,{type:"button",variant:n?"danger":"primary",size:"sm",autoFocus:!n,onClick:k,"data-testid":"confirm-dialog-confirm",children:e??m("confirmDialog.confirm")})]})]})})}let j=(0,e.createContext)(null);function k({children:a}){let[b,c]=(0,e.useState)(null),f=(0,e.useRef)(null),g=(0,e.useRef)(null),h=b?.options??g.current,k=(0,e.useCallback)(a=>new Promise(b=>{f.current=document.activeElement instanceof HTMLElement?document.activeElement:null,c(c=>(c?.resolve(!1),{options:a,resolve:b}))}),[]),l=(0,e.useCallback)(a=>{c(b=>(b?.resolve(a),null)),f.current?.focus(),f.current=null},[]);return(0,d.jsxs)(j.Provider,{value:k,children:[a,(0,d.jsx)(i,{isOpen:null!==b,title:h?.title,description:h?.description??"",confirmLabel:h?.confirmLabel,cancelLabel:h?.cancelLabel,variant:h?.variant,onConfirm:()=>l(!0),onCancel:()=>l(!1)})]})}let l=async()=>!1;function m(){return(0,e.useContext)(j)??l}},80407:(a,b,c)=>{var d={"./en/commandPalette.json":[28098,8098],"./ja/commandPalette.json":[12560,2560]};function e(a){if(!c.o(d,a))return Promise.resolve().then(()=>{var b=Error("Cannot find module '"+a+"'");throw b.code="MODULE_NOT_FOUND",b});var b=d[a],e=b[0];return c.e(b[1]).then(()=>c.t(e,19))}e.keys=()=>Object.keys(d),e.id=80407,a.exports=e},80755:(a,b,c)=>{"use strict";c.d(b,{E:()=>i});var d=c(21124);c(38301);var e=c(26691),f=c(35595);let g=(0,e.F)("inline-flex items-center px-2.5 py-0.5 rounded-full text-xs font-medium",{variants:{variant:{success:"bg-success-subtle text-success-foreground",warning:"bg-warning-subtle text-warning-foreground",error:"bg-danger-subtle text-danger-foreground",info:"bg-accent-100 dark:bg-accent-900 text-accent-800 dark:text-accent-300",gray:"bg-muted text-muted-foreground"}},defaultVariants:{variant:"gray"}}),h={success:"bg-success",warning:"bg-warning",error:"bg-danger",info:"bg-info",gray:"bg-muted-foreground"};function i({variant:a="gray",dot:b=!1,className:c="",children:e,...i}){return(0,d.jsxs)("span",{className:(0,f.cn)(g({variant:a}),c),...i,children:[b&&(0,d.jsx)("span",{className:(0,f.cn)("mr-1.5 inline-block h-2 w-2 rounded-full",h[a]),"aria-hidden":"true"}),e]})}},80776:(a,b,c)=>{"use strict";c.d(b,{AppProviders:()=>C});var d=c(21124),e=c(37397),f=c(45523),g=c(81092),h=c(84342),i=c(5772),j=c(64632),k=c(89184),l=c(63157),m=c(52761),n=c(74930),o=c(79782),p=c(23910),q=c(62197),r=c(73060),s=c(63474),t=c(74132),u=c(67693),v=c(90102),w=c(38301),x=c(20481),y=c(25345),z=c(11010),A=c(18608);function B(){let a=(0,x.c)("pwa"),[b,c]=(0,w.useState)(null);(0,w.useRef)(!1);let e=(0,A.W)();return!b||e?null:(0,d.jsx)("div",{"data-testid":"pwa-update-toast",role:"status","aria-live":"polite",className:"pointer-events-none fixed bottom-0 right-0 flex max-w-full justify-end px-4 pb-safe",style:{zIndex:z.M.TOAST},children:(0,d.jsxs)("div",{"data-testid":"pwa-update-toast-card",className:"pointer-events-auto mb-4 flex items-center gap-3 rounded-lg border border-border bg-surface px-4 py-3 shadow-lg",children:[(0,d.jsx)("span",{className:"text-sm font-medium text-foreground",children:a("update.available")}),(0,d.jsxs)("button",{type:"button",onClick:()=>{b.postMessage({type:"SKIP_WAITING"})},className:"inline-flex items-center gap-1.5 rounded-md bg-accent-600 px-3 py-1.5 text-sm font-medium text-white transition-colors hover:bg-accent-700 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 ring-offset-background dark:bg-accent-500 dark:hover:bg-accent-600",children:[(0,d.jsx)(y.A,{className:"h-4 w-4"}),a("update.reload")]})]})})}function C({children:a,locale:b,messages:c,timeZone:w,authEnabled:x=!1}){return(0,d.jsx)(e.default,{locale:b,messages:c,timeZone:w,children:(0,d.jsx)(s.tE,{children:(0,d.jsx)(f.N,{attribute:"class",defaultTheme:"system",enableSystem:!0,children:(0,d.jsx)(h.O,{authEnabled:x,children:(0,d.jsx)(i.W5,{children:(0,d.jsx)(g.GB,{children:(0,d.jsx)(n.tS,{children:(0,d.jsxs)(l.g7,{children:[(0,d.jsx)(t.rM,{}),(0,d.jsx)(v.o,{}),(0,d.jsx)(u.H,{}),(0,d.jsx)(j.E,{children:(0,d.jsx)(k.S,{children:(0,d.jsx)(o.aF,{children:(0,d.jsx)(p.y2,{children:(0,d.jsxs)(q.NS,{children:[(0,d.jsx)(m.Bo,{children:a}),(0,d.jsx)(B,{}),(0,d.jsx)(r.gZ,{})]})})})})})]})})})})})})})})}},80812:(a,b,c)=>{var d={"./en/externalApps.json":[37941,7941],"./ja/externalApps.json":[99211,9211]};function e(a){if(!c.o(d,a))return Promise.resolve().then(()=>{var b=Error("Cannot find module '"+a+"'");throw b.code="MODULE_NOT_FOUND",b});var b=d[a],e=b[0];return c.e(b[1]).then(()=>c.t(e,19))}e.keys=()=>Object.keys(d),e.id=80812,a.exports=e},81092:(a,b,c)=>{"use strict";c.d(b,{GB:()=>k,VF:()=>l,pT:()=>m});var d=c(21124),e=c(38301),f=c(32482);let g="updatedAt",h=(0,e.createContext)(null);function i(a,b,c,d){(0,e.useRef)(!0)}function j(a,b){switch(b.type){case"TOGGLE":return{...a,isOpen:!a.isOpen};case"SET_WIDTH":return{...a,width:b.width};case"OPEN_MOBILE_DRAWER":return{...a,isMobileDrawerOpen:!0};case"CLOSE_MOBILE_DRAWER":return{...a,isMobileDrawerOpen:!1};case"SET_SORT_KEY":return{...a,sortKey:b.sortKey};case"SET_SORT_DIRECTION":return{...a,sortDirection:b.sortDirection};case"LOAD_SORT_SETTINGS":return{...a,sortKey:b.sortKey,sortDirection:b.sortDirection};case"SET_VIEW_MODE":return{...a,viewMode:b.viewMode};case"SET_OPEN":return a.isOpen===b.isOpen?a:{...a,isOpen:b.isOpen};case"SET_REPOSITORY_ORDER":return{...a,repositoryOrder:b.repositoryOrder};case"SET_REPO_TAB_BAR_MODE":return{...a,repoTabBarMode:b.repoTabBarMode};default:return a}}function k({children:a,initialOpen:b=!0,initialWidth:c=224}){let[k,l]=(0,e.useReducer)(j,{isOpen:b,width:c,isMobileDrawerOpen:!1,sortKey:g,sortDirection:"desc",viewMode:"grouped",repositoryOrder:(0,f.ZD)(),repoTabBarMode:f.PB});i("mcbd-sidebar-sort",`${k.sortKey}:${k.sortDirection}`,()=>JSON.stringify({sortKey:k.sortKey,sortDirection:k.sortDirection}),a=>{try{let b=JSON.parse(a),c=b.sortDirection,d=(0,f.Si)(b.sortKey)?b.sortKey:g;d&&("asc"===c||"desc"===c)&&l({type:"LOAD_SORT_SETTINGS",sortKey:d,sortDirection:c})}catch{}}),i("mcbd-sidebar-view-mode",k.viewMode,()=>k.viewMode,a=>{(0,f.$m)(a)&&l({type:"SET_VIEW_MODE",viewMode:a})}),i("mcbd-sidebar-width",k.width,()=>String(k.width),a=>{let b=Number(a);!isNaN(b)&&b>0&&l({type:"SET_WIDTH",width:288===b?224:b})}),i("mcbd-sidebar-open",k.isOpen,()=>String(k.isOpen),a=>{("true"===a||"false"===a)&&l({type:"SET_OPEN",isOpen:"true"===a})}),i("mcbd-repo-tab-bar-mode",k.repoTabBarMode,()=>k.repoTabBarMode,a=>{(0,f.m3)(a)&&l({type:"SET_REPO_TAB_BAR_MODE",repoTabBarMode:a})});let m=(0,e.useCallback)(()=>{l({type:"TOGGLE"})},[]),n=(0,e.useCallback)(a=>{l({type:"SET_WIDTH",width:a})},[]),o=(0,e.useCallback)(()=>{l({type:"OPEN_MOBILE_DRAWER"})},[]),p=(0,e.useCallback)(()=>{l({type:"CLOSE_MOBILE_DRAWER"})},[]),q=(0,e.useCallback)(a=>{l({type:"SET_SORT_KEY",sortKey:a})},[]),r=(0,e.useCallback)(a=>{l({type:"SET_SORT_DIRECTION",sortDirection:a})},[]),s=(0,e.useCallback)(a=>{l({type:"SET_VIEW_MODE",viewMode:a})},[]),t=(0,e.useCallback)(a=>{l({type:"SET_REPOSITORY_ORDER",repositoryOrder:a}),(0,f.ZC)(a)},[]),u=(0,e.useCallback)(a=>{l({type:"SET_REPO_TAB_BAR_MODE",repoTabBarMode:a})},[]),v=(0,e.useMemo)(()=>({isOpen:k.isOpen,width:k.width,isMobileDrawerOpen:k.isMobileDrawerOpen,sortKey:k.sortKey,sortDirection:k.sortDirection,toggle:m,setWidth:n,openMobileDrawer:o,closeMobileDrawer:p,setSortKey:q,setSortDirection:r,viewMode:k.viewMode,setViewMode:s,repositoryOrder:k.repositoryOrder,setRepositoryOrder:t,repoTabBarMode:k.repoTabBarMode,setRepoTabBarMode:u}),[k.isOpen,k.width,k.isMobileDrawerOpen,k.sortKey,k.sortDirection,k.viewMode,k.repositoryOrder,k.repoTabBarMode,m,n,o,p,q,r,s,t,u]);return(0,d.jsx)(h.Provider,{value:v,children:a})}function l(){let a=(0,e.useContext)(h);if(!a)throw Error("useSidebarContext must be used within a SidebarProvider");return a}function m(){return(0,e.useContext)(h)}},81497:(a,b,c)=>{"use strict";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)]})}},84342:(a,b,c)=>{"use strict";c.d(b,{H:()=>h,O:()=>g});var d=c(21124),e=c(38301);let f=(0,e.createContext)(!1);function g({children:a,authEnabled:b}){return(0,d.jsx)(f.Provider,{value:b,children:a})}function h(){return(0,e.useContext)(f)}},85647:(a,b,c)=>{"use strict";c.d(b,{u:()=>f});var d=c(21124);c(38301);var e=c(35595);function f({className:a,children:b,...c}){return(0,d.jsx)("kbd",{className:(0,e.cn)("inline-flex h-5 min-w-[1.25rem] items-center justify-center rounded-sm border border-border bg-surface px-1","font-mono text-[10px] font-medium leading-none text-muted-foreground",a),...c,children:b})}},85678:(a,b,c)=>{"use strict";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}」への委任
|
|
41
16
|
- 宛先: worktree \`${c}\` / instance \`${d}\`(${f})
|
|
42
17
|
- 依頼: ${a}
|
|
43
18
|
- exit 0: 標準出力が返答本文
|
|
@@ -57,4 +32,29 @@ ${a}`,g=Object.getOwnPropertyDescriptor(HTMLTextAreaElement.prototype,"value")?.
|
|
|
57
32
|
- exits 0 with a relay id on stdout; the reply lands in my composer prefixed \`[from ...]\` when the turn ends
|
|
58
33
|
- Outstanding: ${h} relays / withdraw: ${h} relays cancel <relay-id>
|
|
59
34
|
- Progress: ${k}
|
|
60
|
-
- Do not: answer their prompt with respond / turn auto-yes on`}},85744:(a,b,c)=>{"use strict";c.d(b,{g:()=>f});var d=c(55992),e=c(68232);function f(){return{currentLocale:(0,d.Ym)(),switchLocale:a=>{if(e.dI.includes(a)){let b="https:"===window.location.protocol;document.cookie=`${e.gB}=${a};path=/;max-age=31536000;SameSite=Lax${b?";Secure":""}`,localStorage.setItem("locale",a),window.location.reload()}}}}},85866:(a,b,c)=>{"use strict";c.d(b,{Ex:()=>f.E,$n:()=>d.$,Zp:()=>e.Zp,Wu:()=>e.Wu,aR:()=>e.aR,ZB:()=>e.ZB,Sc:()=>p.S,TM:()=>j.TM,nF:()=>g.n,pd:()=>k.p,Jh:()=>i.a,z6:()=>w,CU:()=>x,l6:()=>E,gC:()=>H,eb:()=>I,bq:()=>G,yv:()=>F,EA:()=>m.E,y$:()=>n.y,md:()=>h.m,dO:()=>o.d,tU:()=>y.tU,av:()=>y.av,j7:()=>y.j7,Xi:()=>y.Xi,k_:()=>l.T,j1:()=>k.j,SC:()=>j.SC});var d=c(94260),e=c(31210),f=c(80755),g=c(72280),h=c(22317),i=c(98033),j=c(79782),k=c(30430),l=c(73790),m=c(79689),n=c(17793),o=c(74892),p=c(95779),q=c(21124),r=c(38301),s=c.n(r),t=c(64450),u=c(90133),v=c(35595);let w=s().forwardRef(({className:a,...b},c)=>(0,q.jsx)(t.bL,{ref:c,className:(0,v.cn)("grid gap-2",a),...b}));w.displayName="RadioGroup";let x=s().forwardRef(({className:a,...b},c)=>(0,q.jsx)(t.q7,{ref:c,className:(0,v.cn)("aspect-square h-4 w-4 shrink-0 cursor-pointer rounded-full border border-input bg-surface text-accent-600 shadow-sm","focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2","disabled:cursor-not-allowed disabled:opacity-50","data-[state=checked]:border-accent-600",a),...b,children:(0,q.jsx)(t.C1,{className:"flex items-center justify-center",children:(0,q.jsx)(u.A,{className:"h-2 w-2 fill-accent-600 text-accent-600","aria-hidden":"true"})})}));x.displayName="RadioGroupItem";var y=c(34592),z=c(39567),A=c(85351),B=c(82042),C=c(71613),D=c(11010);let E=z.bL;z.YJ;let F=z.WT,G=s().forwardRef(({className:a,children:b,...c},d)=>(0,q.jsxs)(z.l9,{ref:d,className:(0,v.cn)("flex h-9 w-full items-center justify-between gap-2 rounded-md border border-input bg-surface dark:bg-surface-2 px-3 py-2 text-sm text-surface-foreground shadow-sm","placeholder:text-muted-foreground","focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:border-ring","disabled:cursor-not-allowed disabled:opacity-50","[&>span]:line-clamp-1",a),...c,children:[b,(0,q.jsx)(z.In,{asChild:!0,children:(0,q.jsx)(A.A,{size:16,className:"opacity-60","aria-hidden":"true"})})]}));G.displayName="SelectTrigger";let H=s().forwardRef(({className:a,children:b,position:c="popper",...d},e)=>(0,q.jsx)(z.ZL,{children:(0,q.jsxs)(z.UC,{ref:e,position:c,style:{zIndex:D.M.POPOVER},className:(0,v.cn)("relative max-h-[--radix-select-content-available-height] min-w-[8rem] overflow-hidden rounded-md border border-border bg-surface text-surface-foreground shadow-lg","data-[state=open]:animate-in data-[state=closed]:animate-out","data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0","data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95","data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2","data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2","popper"===c&&"data-[side=bottom]:translate-y-1 data-[side=top]:-translate-y-1",a),...d,children:[(0,q.jsx)(z.PP,{className:"flex h-6 items-center justify-center",children:(0,q.jsx)(B.A,{size:16,"aria-hidden":"true"})}),(0,q.jsx)(z.LM,{className:(0,v.cn)("p-1","popper"===c&&"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]"),children:b}),(0,q.jsx)(z.wn,{className:"flex h-6 items-center justify-center",children:(0,q.jsx)(A.A,{size:16,"aria-hidden":"true"})})]})}));H.displayName="SelectContent",s().forwardRef(({className:a,...b},c)=>(0,q.jsx)(z.JU,{ref:c,className:(0,v.cn)("px-2 py-1.5 text-xs font-semibold text-muted-foreground",a),...b})).displayName="SelectLabel";let I=s().forwardRef(({className:a,children:b,...c},d)=>(0,q.jsxs)(z.q7,{ref:d,className:(0,v.cn)("relative flex w-full cursor-pointer select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none","focus:bg-muted focus:text-surface-foreground","data-[disabled]:pointer-events-none data-[disabled]:opacity-50",a),...c,children:[(0,q.jsx)("span",{className:"absolute left-2 flex h-3.5 w-3.5 items-center justify-center",children:(0,q.jsx)(z.VF,{children:(0,q.jsx)(C.A,{size:16,"aria-hidden":"true"})})}),(0,q.jsx)(z.p4,{children:b})]}));I.displayName="SelectItem",s().forwardRef(({className:a,...b},c)=>(0,q.jsx)(z.wv,{ref:c,className:(0,v.cn)("-mx-1 my-1 h-px bg-border",a),...b})).displayName="SelectSeparator";var J=c(16992);J.Kq,J.bL,J.l9,s().forwardRef(({className:a,sideOffset:b=4,children:c,...d},e)=>(0,q.jsx)(J.ZL,{children:(0,q.jsxs)(J.UC,{ref:e,sideOffset:b,style:{zIndex:D.M.POPOVER},className:(0,v.cn)("overflow-hidden rounded-md bg-foreground px-2.5 py-1.5 text-xs text-background shadow-md","animate-in fade-in-0 zoom-in-95","data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95","data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2","data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",a),...d,children:[c,(0,q.jsx)(J.i3,{className:"fill-foreground"})]})})).displayName="TooltipContent",c(10290),c(85647)},86634:(a,b,c)=>{Promise.resolve().then(c.bind(c,37397))},89184:(a,b,c)=>{"use strict";c.d(b,{K:()=>h,S:()=>g});var d=c(21124),e=c(38301);let f=(0,e.createContext)({open:!1,setOpen:()=>{},toggle:()=>{}});function g({children:a}){let[b,c]=(0,e.useState)(!1),g=(0,e.useCallback)(()=>c(a=>!a),[]),h=(0,e.useMemo)(()=>({open:b,setOpen:c,toggle:g}),[b,g]);return(0,d.jsx)(f.Provider,{value:h,children:a})}function h(){return(0,e.useContext)(f)}},89877:(a,b,c)=>{"use strict";c.d(b,{A7:()=>j,kA:()=>f,dw:()=>k,XK:()=>m});var d=c(17252),e=c(89907);function f(a){return a?a.isWaitingForResponse?"waiting":a.isProcessing?"running":a.isRunning?"ready":"idle":"idle"}let g={start:"nextAction.start",sendMessage:"nextAction.sendMessage",approveReject:"nextAction.approveReject",replyToPrompt:"nextAction.replyToPrompt",checkStalled:"nextAction.checkStalled",running:"nextAction.running"};Object.values(g);let h="exited",i={idle:null,ready:"ready",running:"running",generating:"running",waiting:"waiting"};function j(a){if(!a)return"idle";let b=Object.values(a).filter(a=>void 0!==a);return 0===b.length?"idle":b.includes("waiting")?"waiting":b.includes("running")?"running":b.includes("generating")?"generating":b.includes("ready")?"ready":"idle"}function k(a,b,c){return a?Object.entries(a).map(([a,e])=>{let f=b?.[a]??(0,d.f_)(a,a),g=c?.(a);return`${f}: ${e??"idle"}${g?` (${g})`:""}`}).join(", "):""}let l=["prompt","menu","unclassified"];function m(a){var b,c;let k=f(void 0!==a.isSessionRunning?{isRunning:a.isSessionRunning??!1,isWaitingForResponse:a.isWaitingForResponse??!1,isProcessing:a.isProcessing??!1}:void 0),m=!!a.lastAssistantMessageAt&&(!a.lastViewedAt||new Date(a.lastAssistantMessageAt)>new Date(a.lastViewedAt)),{cliStatus:n,cliStatusLabels:o,exitedInstanceIds:p}=function(a){let b={},c={},g=[],i=a.sessionStatusByInstance;if(!i){for(let i of a.selectedAgents??(0,e.sA)())b[i]=f(a.sessionStatusByCli?.[i]),c[i]=(0,d.oo)(i),a.sessionStatusByCli?.[i]?.sessionStatusReason===h&&g.push(i);return{cliStatus:b,cliStatusLabels:c,exitedInstanceIds:g}}let j=a.agentInstances&&a.agentInstances.length>0?a.agentInstances:(0,d.lu)(a.selectedAgents??(0,e.sA)()),k=new Set;for(let a of j)k.add(a.id),b[a.id]=f(i[a.id]),c[a.id]=(0,d.sw)(a),i[a.id]?.sessionStatusReason===h&&g.push(a.id);for(let[a,e]of Object.entries(i)){if(k.has(a))continue;let g=f(e);"idle"!==g&&(b[a]=g,c[a]=function(a){let b=d.XH.find(b=>a.startsWith(`${b}-`));if(b){let c=a.slice(b.length+1);return`${(0,d.oo)(b)} ${c}`}return(0,d.f_)(a,a)}(a))}return{cliStatus:b,cliStatusLabels:c,exitedInstanceIds:g}}(a),q=j(n),{waitingKind:r,awaitingInstruction:s}=function(a){let b=Object.values(a.sessionStatusByInstance??a.sessionStatusByCli??{}).filter(a=>void 0!==a),c=!1,d=new Set;for(let a of b)a.awaitingInstruction&&(c=!0),a.waitingKind&&d.add(a.waitingKind);return{waitingKind:l.find(a=>d.has(a))??null,awaitingInstruction:c}}(a);return{id:a.id,name:a.name,repositoryName:a.repositoryDisplayName??a.repositoryName,status:k,hasUnread:m,lastActivity:a.updatedAt,description:a.description,cliStatus:n,cliStatusLabels:o,exitedInstanceIds:p,worktreePath:a.path,waitingKind:r,awaitingInstruction:s,nextActionKey:(b=i[q],c="waiting"===q?"approval":null,b&&"idle"!==b?"ready"===b?g.sendMessage:"waiting"===b&&"approval"===c?g.approveReject:"waiting"===b?g.replyToPrompt:(0,g.running):g.start)}}},89907:(a,b,c)=>{"use strict";c.d(b,{IK:()=>i,qD:()=>l,sA:()=>h,zk:()=>e});var d=c(4267);let e="/api/settings/default-agents",f=d.fJ,g=new Set;function h(){return f}function i(a){if(!Array.isArray(a))return!1;let b=(0,d.Lt)(a);if(!b.valid)return!1;let c=b.value;if(c.length===f.length&&c.every((a,b)=>a===f[b]))return!1;for(let a of(f=c,g))a();return!0}let j=null,k=!1;async function l(){return k?f:j||("function"!=typeof fetch?f:j=(async()=>{try{let a=await fetch(e);if(a.ok){let b=await a.json();i(b?.defaultSelectedAgents),k=!0}}catch{}finally{j=null}return f})())}},90076:(a,b,c)=>{"use strict";c.d(b,{D:()=>f,a:()=>g});var d=c(38301);let e=d.useEffect,f=768;function g(a={}){let{breakpoint:b=f}=a,[c,h]=(0,d.useState)(!1);return e(()=>{let a=window.matchMedia(`(max-width: ${b-1}px)`);h(a.matches);let c=a=>{h(a.matches)};return a.addEventListener("change",c),()=>{a.removeEventListener("change",c)}},[b]),c}},90102:(a,b,c)=>{"use strict";c.d(b,{o:()=>f});var d=c(38301),e=c(19463);function f(){return!function(){let{count:a}=(0,e.Lv)();(0,d.useRef)([]),(0,d.useRef)(null)}(),null}},90338:(a,b,c)=>{var d={"./en/worktree.json":[72119,2119],"./ja/worktree.json":[52445,2445]};function e(a){if(!c.o(d,a))return Promise.resolve().then(()=>{var b=Error("Cannot find module '"+a+"'");throw b.code="MODULE_NOT_FOUND",b});var b=d[a],e=b[0];return c.e(b[1]).then(()=>c.t(e,19))}e.keys=()=>Object.keys(d),e.id=90338,a.exports=e},91786:(a,b,c)=>{Promise.resolve().then(c.t.bind(c,23597,23)),Promise.resolve().then(c.t.bind(c,36893,23)),Promise.resolve().then(c.t.bind(c,89748,23)),Promise.resolve().then(c.t.bind(c,6060,23)),Promise.resolve().then(c.t.bind(c,7184,23)),Promise.resolve().then(c.t.bind(c,69576,23)),Promise.resolve().then(c.t.bind(c,73041,23)),Promise.resolve().then(c.t.bind(c,51384,23))},94260:(a,b,c)=>{"use strict";c.d(b,{$:()=>i});var d=c(21124);c(38301);var e=c(26691),f=c(35595),g=c(17793);let h=(0,e.F)("inline-flex items-center justify-center px-4 py-2 rounded-md font-medium transition-all duration-200 touch-manipulation focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 ring-offset-background",{variants:{variant:{primary:"bg-accent-600 dark:bg-accent-500 text-white hover:bg-accent-700 dark:hover:bg-accent-600",secondary:"bg-muted text-foreground hover:bg-muted/80",danger:"bg-danger text-white hover:bg-danger/90",ghost:"bg-transparent text-foreground hover:bg-muted"},size:{sm:"px-3 py-1.5 text-sm",md:"",lg:"px-6 py-3 text-lg"},fullWidth:{true:"w-full",false:""}},defaultVariants:{variant:"primary",size:"md",fullWidth:!1}});function i({variant:a="primary",size:b="md",fullWidth:c=!1,loading:e=!1,disabled:i,className:j="",children:k,...l}){let m=i||e,n=(0,f.cn)(h({variant:a,size:b,fullWidth:c}),!m&&"motion-safe:hover:-translate-y-0.5 motion-safe:active:translate-y-0",m&&"opacity-50 cursor-not-allowed",j);return(0,d.jsxs)("button",{className:n,disabled:m,...l,children:[e&&(0,d.jsx)(g.y,{size:"sm",className:"-ml-1 mr-2"}),k]})}},94650:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>e});var d=c(97523);let e=async a=>[{type:"image/png",sizes:"180x180",url:(0,d.fillMetadataSegment)(".",await a.params,"apple-icon.png")+"?31a89e65aa4ac65b"}]},95427:(a,b,c)=>{"use strict";c.d(b,{r:()=>e});var d=c(38301);function e(a={}){let{active:b=!0,initialFocus:c=!0,restoreFocus:f=!0}=a;return(0,d.useRef)(null)}},95779:(a,b,c)=>{"use strict";c.d(b,{S:()=>k});var d=c(21124),e=c(38301),f=c.n(e),g=c(89339),h=c(51881),i=c(71613),j=c(35595);let k=f().forwardRef(({className:a,...b},c)=>(0,d.jsx)(g.bL,{ref:c,className:(0,j.cn)("peer inline-flex h-4 w-4 shrink-0 cursor-pointer items-center justify-center rounded-sm border border-input bg-surface text-surface-foreground shadow-sm transition-colors","focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2","disabled:cursor-not-allowed disabled:opacity-50","data-[state=checked]:border-accent-600 data-[state=checked]:bg-accent-600 data-[state=checked]:text-white","data-[state=indeterminate]:border-accent-600 data-[state=indeterminate]:bg-accent-600 data-[state=indeterminate]:text-white",a),...b,children:(0,d.jsx)(g.C1,{className:"flex items-center justify-center text-current",children:"indeterminate"===b.checked?(0,d.jsx)(h.A,{className:"h-3 w-3",strokeWidth:3,"aria-hidden":"true"}):(0,d.jsx)(i.A,{className:"h-3 w-3",strokeWidth:3,"aria-hidden":"true"})})}));k.displayName="Checkbox"},96823:(a,b,c)=>{"use strict";c.d(b,{Ql:()=>f,qG:()=>e});var d=c(38301);function e(){let[a,b]=(0,d.useState)(!0);return{enabled:a,setEnabled:(0,d.useCallback)(a=>{b(a)},[])}}function f(){let[a,b]=(0,d.useState)(!1);return{enabled:a,setEnabled:(0,d.useCallback)(a=>{b(a)},[])}}},96908:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>h});var d=c(21124),e=c(38301),f=c(20481),g=c(35914);function h({error:a,reset:b}){let c=(0,f.c)("error"),h=(0,f.c)("common"),i=(0,g.oz)(a),[j,k]=(0,e.useState)(!1),l=c(j?"chunkOffline.title":i?"chunkReload.title":"unexpected.title"),m=c(j?"chunkOffline.description":i?"chunkReload.description":"unexpected.description");return(0,d.jsxs)("main",{"data-testid":"app-error","data-error-kind":j?"chunk-offline":i?"chunk-reload":"unexpected",className:"flex min-h-full flex-col items-center justify-center gap-6 bg-background px-6 pt-safe pb-safe text-center",children:[(0,d.jsxs)("div",{className:"space-y-2",children:[(0,d.jsx)("h1",{className:"text-2xl font-semibold text-foreground",children:l}),(0,d.jsx)("p",{className:"mx-auto max-w-sm text-sm text-muted-foreground",children:m}),j&&(0,d.jsx)("p",{className:"mx-auto max-w-sm text-xs text-muted-foreground",role:"status","aria-live":"polite",children:c("chunkOffline.waiting")})]}),(0,d.jsx)("button",{type:"button",onClick:i&&!j?()=>window.location.reload():b,className:"rounded-lg bg-accent-600 px-4 py-2 text-sm font-medium text-white transition-colors hover:bg-accent-700",children:h(i&&!j?"reload":"retry")})]})}c(38557)},98033:(a,b,c)=>{"use strict";c.d(b,{a:()=>o});var d=c(21124),e=c(38301),f=c(23312),g=c(20481),h=c(26691),i=c(11010),j=c(58970),k=c(6074),l=c(95427),m=c(35595);let n=(0,h.F)("",{variants:{size:{sm:"max-w-[calc(100vw-2rem)] sm:max-w-md",md:"max-w-[calc(100vw-2rem)] sm:max-w-2xl",lg:"max-w-[calc(100vw-2rem)] sm:max-w-4xl",xl:"max-w-[calc(100vw-2rem)] sm:max-w-6xl",full:"max-w-[calc(100vw-2rem)] sm:max-w-[95vw]"}},defaultVariants:{size:"lg"}});function o({isOpen:a,onClose:b,title:c,children:h,size:o="lg",showCloseButton:p=!0,disableClose:q=!1}){let r=(0,g.c)("common"),s=(0,e.useId)(),t=(0,l.r)({active:a}),{shouldRender:u,isExiting:v}=(0,k.O)(a,j.Ys),w=v?"closed":"open",x=(0,e.useRef)(!1),y=(0,e.useRef)(!1);return u?(0,f.createPortal)((0,d.jsxs)("div",{className:"fixed inset-0 overflow-y-auto",style:{zIndex:i.M.MODAL},children:[(0,d.jsx)("div",{"data-state":w,"aria-hidden":"true",className:"fixed inset-0 bg-black/50 transition-opacity data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:duration-200 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:duration-200 data-[state=closed]:fill-mode-forwards"}),(0,d.jsx)("div",{"data-testid":"modal-backdrop-surface",className:"relative flex min-h-full items-center justify-center p-2 sm:p-4",onMouseDown:a=>{x.current=a.target===a.currentTarget},onMouseUp:a=>{y.current=a.target===a.currentTarget},onClick:a=>{let c=x.current,d=y.current;x.current=!1,y.current=!1,c&&d&&!q&&!v&&a.target===a.currentTarget&&b()},children:(0,d.jsxs)("div",{ref:t,"data-state":w,"data-testid":"modal-panel",role:"dialog","aria-modal":"true","aria-labelledby":c?s:void 0,tabIndex:-1,className:(0,m.cn)("relative w-full",n({size:o}),"max-h-[calc(100vh-1rem)] sm:max-h-[calc(100vh-2rem)] flex flex-col bg-surface rounded-lg shadow-xl transform transition-all","data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95 data-[state=open]:duration-200","data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=closed]:duration-200 data-[state=closed]:fill-mode-forwards"),children:[(c||p)&&(0,d.jsxs)("div",{className:"flex items-center justify-between px-4 sm:px-6 py-3 sm:py-4 border-b border-border flex-shrink-0",children:[(0,d.jsx)("h3",{id:s,className:"text-base sm:text-lg font-semibold text-foreground truncate pr-2",children:c}),p&&(0,d.jsx)("button",{onClick:b,"aria-label":r("close"),className:"text-muted-foreground hover:text-foreground transition-colors flex-shrink-0 touch-manipulation",children:(0,d.jsx)("svg",{className:"w-5 h-5 sm:w-6 sm:h-6",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,d.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M6 18L18 6M6 6l12 12"})})})]}),(0,d.jsx)("div",{className:"px-4 sm:px-6 py-3 sm:py-4 overflow-y-auto flex-1 min-h-0",children:h})]})})]}),document.body):null}},99127:(a,b,c)=>{var d={"./en/notifications.json":[49358,9358],"./ja/notifications.json":[61296,1296]};function e(a){if(!c.o(d,a))return Promise.resolve().then(()=>{var b=Error("Cannot find module '"+a+"'");throw b.code="MODULE_NOT_FOUND",b});var b=d[a],e=b[0];return c.e(b[1]).then(()=>c.t(e,19))}e.keys=()=>Object.keys(d),e.id=99127,a.exports=e}};
|
|
35
|
+
- Do not: answer their prompt with respond / turn auto-yes on`}},85744:(a,b,c)=>{"use strict";c.d(b,{g:()=>f});var d=c(55992),e=c(68232);function f(){return{currentLocale:(0,d.Ym)(),switchLocale:a=>{if(e.dI.includes(a)){let b="https:"===window.location.protocol;document.cookie=`${e.gB}=${a};path=/;max-age=31536000;SameSite=Lax${b?";Secure":""}`,localStorage.setItem("locale",a),window.location.reload()}}}}},85866:(a,b,c)=>{"use strict";c.d(b,{Ex:()=>f.E,$n:()=>d.$,Zp:()=>e.Zp,Wu:()=>e.Wu,aR:()=>e.aR,ZB:()=>e.ZB,Sc:()=>p.S,TM:()=>j.TM,nF:()=>g.n,pd:()=>k.p,Jh:()=>i.a,z6:()=>w,CU:()=>x,l6:()=>E,gC:()=>H,eb:()=>I,bq:()=>G,yv:()=>F,EA:()=>m.E,y$:()=>n.y,md:()=>h.m,dO:()=>o.d,tU:()=>y.tU,av:()=>y.av,j7:()=>y.j7,Xi:()=>y.Xi,k_:()=>l.T,j1:()=>k.j,SC:()=>j.SC});var d=c(94260),e=c(31210),f=c(80755),g=c(72280),h=c(22317),i=c(98033),j=c(79782),k=c(30430),l=c(73790),m=c(79689),n=c(17793),o=c(74892),p=c(95779),q=c(21124),r=c(38301),s=c.n(r),t=c(64450),u=c(90133),v=c(35595);let w=s().forwardRef(({className:a,...b},c)=>(0,q.jsx)(t.bL,{ref:c,className:(0,v.cn)("grid gap-2",a),...b}));w.displayName="RadioGroup";let x=s().forwardRef(({className:a,...b},c)=>(0,q.jsx)(t.q7,{ref:c,className:(0,v.cn)("aspect-square h-4 w-4 shrink-0 cursor-pointer rounded-full border border-input bg-surface text-accent-600 shadow-sm","focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2","disabled:cursor-not-allowed disabled:opacity-50","data-[state=checked]:border-accent-600",a),...b,children:(0,q.jsx)(t.C1,{className:"flex items-center justify-center",children:(0,q.jsx)(u.A,{className:"h-2 w-2 fill-accent-600 text-accent-600","aria-hidden":"true"})})}));x.displayName="RadioGroupItem";var y=c(34592),z=c(39567),A=c(85351),B=c(82042),C=c(71613),D=c(11010);let E=z.bL;z.YJ;let F=z.WT,G=s().forwardRef(({className:a,children:b,...c},d)=>(0,q.jsxs)(z.l9,{ref:d,className:(0,v.cn)("flex h-9 w-full items-center justify-between gap-2 rounded-md border border-input bg-surface dark:bg-surface-2 px-3 py-2 text-sm text-surface-foreground shadow-sm","placeholder:text-muted-foreground","focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:border-ring","disabled:cursor-not-allowed disabled:opacity-50","[&>span]:line-clamp-1",a),...c,children:[b,(0,q.jsx)(z.In,{asChild:!0,children:(0,q.jsx)(A.A,{size:16,className:"opacity-60","aria-hidden":"true"})})]}));G.displayName="SelectTrigger";let H=s().forwardRef(({className:a,children:b,position:c="popper",...d},e)=>(0,q.jsx)(z.ZL,{children:(0,q.jsxs)(z.UC,{ref:e,position:c,style:{zIndex:D.M.POPOVER},className:(0,v.cn)("relative max-h-[--radix-select-content-available-height] min-w-[8rem] overflow-hidden rounded-md border border-border bg-surface text-surface-foreground shadow-lg","data-[state=open]:animate-in data-[state=closed]:animate-out","data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0","data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95","data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2","data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2","popper"===c&&"data-[side=bottom]:translate-y-1 data-[side=top]:-translate-y-1",a),...d,children:[(0,q.jsx)(z.PP,{className:"flex h-6 items-center justify-center",children:(0,q.jsx)(B.A,{size:16,"aria-hidden":"true"})}),(0,q.jsx)(z.LM,{className:(0,v.cn)("p-1","popper"===c&&"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]"),children:b}),(0,q.jsx)(z.wn,{className:"flex h-6 items-center justify-center",children:(0,q.jsx)(A.A,{size:16,"aria-hidden":"true"})})]})}));H.displayName="SelectContent",s().forwardRef(({className:a,...b},c)=>(0,q.jsx)(z.JU,{ref:c,className:(0,v.cn)("px-2 py-1.5 text-xs font-semibold text-muted-foreground",a),...b})).displayName="SelectLabel";let I=s().forwardRef(({className:a,children:b,...c},d)=>(0,q.jsxs)(z.q7,{ref:d,className:(0,v.cn)("relative flex w-full cursor-pointer select-none items-center rounded-sm py-1.5 pl-8 pr-2 text-sm outline-none","focus:bg-muted focus:text-surface-foreground","data-[disabled]:pointer-events-none data-[disabled]:opacity-50",a),...c,children:[(0,q.jsx)("span",{className:"absolute left-2 flex h-3.5 w-3.5 items-center justify-center",children:(0,q.jsx)(z.VF,{children:(0,q.jsx)(C.A,{size:16,"aria-hidden":"true"})})}),(0,q.jsx)(z.p4,{children:b})]}));I.displayName="SelectItem",s().forwardRef(({className:a,...b},c)=>(0,q.jsx)(z.wv,{ref:c,className:(0,v.cn)("-mx-1 my-1 h-px bg-border",a),...b})).displayName="SelectSeparator";var J=c(16992);J.Kq,J.bL,J.l9,s().forwardRef(({className:a,sideOffset:b=4,children:c,...d},e)=>(0,q.jsx)(J.ZL,{children:(0,q.jsxs)(J.UC,{ref:e,sideOffset:b,style:{zIndex:D.M.POPOVER},className:(0,v.cn)("overflow-hidden rounded-md bg-foreground px-2.5 py-1.5 text-xs text-background shadow-md","animate-in fade-in-0 zoom-in-95","data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95","data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2","data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",a),...d,children:[c,(0,q.jsx)(J.i3,{className:"fill-foreground"})]})})).displayName="TooltipContent",c(10290),c(85647)},86634:(a,b,c)=>{Promise.resolve().then(c.bind(c,37397))},89184:(a,b,c)=>{"use strict";c.d(b,{K:()=>h,S:()=>g});var d=c(21124),e=c(38301);let f=(0,e.createContext)({open:!1,setOpen:()=>{},toggle:()=>{}});function g({children:a}){let[b,c]=(0,e.useState)(!1),g=(0,e.useCallback)(()=>c(a=>!a),[]),h=(0,e.useMemo)(()=>({open:b,setOpen:c,toggle:g}),[b,g]);return(0,d.jsx)(f.Provider,{value:h,children:a})}function h(){return(0,e.useContext)(f)}},89877:(a,b,c)=>{"use strict";c.d(b,{pu:()=>j,A7:()=>l,kA:()=>f,dw:()=>m,Pn:()=>n,px:()=>g,XK:()=>p});var d=c(17252),e=c(89907);function f(a){return a?a.isWaitingForResponse?"waiting":a.isProcessing?"running":a.isRunning?"ready":"idle":"idle"}function g(a){return a?.isUnclassified===!0&&"ready"===f(a)}let h={start:"nextAction.start",sendMessage:"nextAction.sendMessage",approveReject:"nextAction.approveReject",replyToPrompt:"nextAction.replyToPrompt",checkStalled:"nextAction.checkStalled",running:"nextAction.running"};Object.values(h);let i="exited",j="unknown",k={idle:null,ready:"ready",running:"running",generating:"running",waiting:"waiting"};function l(a){if(!a)return"idle";let b=Object.values(a).filter(a=>void 0!==a);return 0===b.length?"idle":b.includes("waiting")?"waiting":b.includes("running")?"running":b.includes("generating")?"generating":b.includes("ready")?"ready":"idle"}function m(a,b,c,e){return a?Object.entries(a).map(([a,f])=>{let g=b?.[a]??(0,d.f_)(a,a),h=c?.(a),i="ready"===f&&e?.has(a)?j:f??"idle";return`${g}: ${i}${h?` (${h})`:""}`}).join(", "):""}function n(a,b){return!!a&&!!b&&0!==b.length&&"ready"===l(a)&&b.some(b=>"ready"===a[b])}let o=["prompt","menu","unclassified"];function p(a){var b,c;let j=f(void 0!==a.isSessionRunning?{isRunning:a.isSessionRunning??!1,isWaitingForResponse:a.isWaitingForResponse??!1,isProcessing:a.isProcessing??!1}:void 0),m=!!a.lastAssistantMessageAt&&(!a.lastViewedAt||new Date(a.lastAssistantMessageAt)>new Date(a.lastViewedAt)),{cliStatus:p,cliStatusLabels:q,exitedInstanceIds:r,unclassifiedInstanceIds:s}=function(a){let b={},c={},h=[],j=[],k=a.sessionStatusByInstance;if(!k){for(let k of a.selectedAgents??(0,e.sA)())b[k]=f(a.sessionStatusByCli?.[k]),c[k]=(0,d.oo)(k),a.sessionStatusByCli?.[k]?.sessionStatusReason===i&&h.push(k),g(a.sessionStatusByCli?.[k])&&j.push(k);return{cliStatus:b,cliStatusLabels:c,exitedInstanceIds:h,unclassifiedInstanceIds:j}}let l=a.agentInstances&&a.agentInstances.length>0?a.agentInstances:(0,d.lu)(a.selectedAgents??(0,e.sA)()),m=new Set;for(let a of l)m.add(a.id),b[a.id]=f(k[a.id]),c[a.id]=(0,d.sw)(a),k[a.id]?.sessionStatusReason===i&&h.push(a.id),g(k[a.id])&&j.push(a.id);for(let[a,e]of Object.entries(k)){if(m.has(a))continue;let h=f(e);"idle"!==h&&(b[a]=h,c[a]=function(a){let b=d.XH.find(b=>a.startsWith(`${b}-`));if(b){let c=a.slice(b.length+1);return`${(0,d.oo)(b)} ${c}`}return(0,d.f_)(a,a)}(a),g(e)&&j.push(a))}return{cliStatus:b,cliStatusLabels:c,exitedInstanceIds:h,unclassifiedInstanceIds:j}}(a),t=l(p),{waitingKind:u,awaitingInstruction:v}=function(a){let b=Object.values(a.sessionStatusByInstance??a.sessionStatusByCli??{}).filter(a=>void 0!==a),c=!1,d=new Set;for(let a of b)a.awaitingInstruction&&(c=!0),a.waitingKind&&d.add(a.waitingKind);return{waitingKind:o.find(a=>d.has(a))??null,awaitingInstruction:c}}(a),w=n(p,s);return{id:a.id,name:a.name,repositoryName:a.repositoryDisplayName??a.repositoryName,status:j,hasUnread:m,lastActivity:a.updatedAt,description:a.description,cliStatus:p,cliStatusLabels:q,exitedInstanceIds:r,unclassifiedInstanceIds:s,worktreePath:a.path,waitingKind:u,awaitingInstruction:v,nextActionKey:w?void 0:(b=k[t],c="waiting"===t?"approval":null,b&&"idle"!==b?"ready"===b?h.sendMessage:"waiting"===b&&"approval"===c?h.approveReject:"waiting"===b?h.replyToPrompt:(0,h.running):h.start)}}},89907:(a,b,c)=>{"use strict";c.d(b,{IK:()=>i,qD:()=>l,sA:()=>h,zk:()=>e});var d=c(4267);let e="/api/settings/default-agents",f=d.fJ,g=new Set;function h(){return f}function i(a){if(!Array.isArray(a))return!1;let b=(0,d.Lt)(a);if(!b.valid)return!1;let c=b.value;if(c.length===f.length&&c.every((a,b)=>a===f[b]))return!1;for(let a of(f=c,g))a();return!0}let j=null,k=!1;async function l(){return k?f:j||("function"!=typeof fetch?f:j=(async()=>{try{let a=await fetch(e);if(a.ok){let b=await a.json();i(b?.defaultSelectedAgents),k=!0}}catch{}finally{j=null}return f})())}},90039:(a,b,c)=>{"use strict";c.d(b,{AppShellGate:()=>ba});var d=c(21124),e=c(42378),f=c(38301),g=c.n(f),h=c(81092),i=c(90076);let j={showSidebar:!0,showGlobalNav:!0,showLocalNav:!1,autoCollapseSidebar:!1},k=[{prefix:"/worktrees/",config:{showGlobalNav:!1,showLocalNav:!0}},{prefix:"/sessions",config:{autoCollapseSidebar:!0}}];var l=c(5772),m=c(3991),n=c.n(m),o=c(52761);let p=(0,f.forwardRef)(function({href:a,onClick:b,target:c,...f},g){let h=(0,e.usePathname)(),i=(0,o.Hq)();return(0,d.jsx)(n(),{ref:g,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&&i.push(a))},...f})});var q=c(20481),r=c(65828),s=c(75903),t=c(59268),u=c(94684),v=c(10366),w=c(99615),x=c(22023),y=c(47817),z=c(23312),A=c.n(z),B=c(89877),C=c(1637);function D({id:a,branch:b,isVisible:c,anchorRef:e,nextActionLabel:g,unclassified:h}){let[i,j]=(0,f.useState)({top:-9999,left:-9999}),k=(0,f.useRef)(null);if("undefined"==typeof document||!c)return null;let l=Math.min(384,Math.max(0,window.innerWidth-16));return A().createPortal((0,d.jsxs)("div",{ref:k,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:i.top,left:i.left,maxWidth:l},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: ",h?B.pu: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 E=0,F=(0,f.memo)(function({branch:a,isSelected:b,onClick:c,showRepositoryName:e=!0}){let g=(0,q.c)("common"),h=(0,q.c)("worktree"),i=`tooltip-${a.id}`,j=(0,f.useRef)(null),[k,l]=(0,f.useState)(!1),m=(0,f.useRef)(null),n=(0,f.useCallback)(()=>{null!==m.current&&(clearTimeout(m.current),m.current=null)},[]);(0,f.useEffect)(()=>()=>n(),[n]);let o=(0,B.A7)(a.cliStatus),p="waiting"===o,r=!0===a.awaitingInstruction,s=a.nextActionKey?h(a.nextActionKey):null,t=(0,f.useMemo)(()=>new Set(a.exitedInstanceIds??[]),[a.exitedInstanceIds]),u=(0,f.useMemo)(()=>new Set(a.unclassifiedInstanceIds??[]),[a.unclassifiedInstanceIds]),v=(0,B.Pn)(a.cliStatus,a.unclassifiedInstanceIds),w=(p||r)&&null!==s,x=k&&!b;return(0,f.useEffect)(()=>{b&&l(!1)},[b]),(0,f.useEffect)(()=>{if(!k)return;let a=()=>l(!1);return document.addEventListener("click",a),()=>document.removeEventListener("click",a)},[k]),(0,d.jsxs)("button",{ref:j,"data-testid":"branch-list-item",onClick:()=>{n(),E=Date.now()+400,l(!1),c()},onMouseEnter:()=>{n(),Date.now()>=E&&(m.current=setTimeout(()=>{l(!0)},150))},onMouseLeave:()=>{n(),l(!1)},onFocus:a=>{n(),a.target.matches(":focus-visible")&&(m.current=setTimeout(()=>{l(!0)},150))},onBlur:()=>{n(),l(!1)},"aria-current":b?"true":void 0,"aria-describedby":x?i:void 0,"aria-label":e?void 0:`${a.name} - ${a.repositoryName}`,className:`
|
|
36
|
+
group relative w-full px-4 py-3 flex flex-col gap-1
|
|
37
|
+
hover:bg-sidebar-hover transition-colors
|
|
38
|
+
focus:outline-none focus:ring-2 focus:ring-inset focus:ring-ring
|
|
39
|
+
${b?"bg-sidebar-hover border-l-2 border-accent-500":"border-l-2 border-transparent"}
|
|
40
|
+
`,children:[(0,d.jsxs)("div",{className:"flex items-center gap-3 w-full",children:[a.cliStatus&&Object.keys(a.cliStatus).length>0&&(0,d.jsx)("div",{className:"flex items-center justify-center flex-shrink-0 w-4","aria-label":g("branchItem.cliToolStatus"),children:(0,d.jsx)(C.Ej,{status:o,label:(0,B.dw)(a.cliStatus,a.cliStatusLabels,t.size>0?a=>t.has(a)?g("branchItem.agentExited"):null:void 0,u),waitingKind:a.waitingKind,unclassified:v})}),(0,d.jsxs)("div",{className:"flex-1 min-w-0 text-left",children:[(0,d.jsx)("p",{className:"text-sm font-medium text-sidebar-foreground truncate",children:a.name}),e&&(0,d.jsx)("p",{className:"text-xs text-sidebar-muted truncate",children:a.repositoryName}),w&&(0,d.jsx)("p",{"data-testid":"branch-next-action",className:`text-xs font-medium truncate ${p?"text-warning-foreground":"text-success-foreground"}`,children:s})]}),r&&(0,d.jsx)("span",{"data-testid":"awaiting-instruction-badge",className:"flex-shrink-0 rounded-full bg-success-subtle px-1.5 py-0.5 text-[10px] font-medium leading-4 text-success-foreground",title:h("awaitingInstruction.label"),children:h("awaitingInstruction.badge")}),a.hasUnread&&(0,d.jsx)("span",{"data-testid":"unread-indicator",className:"w-2 h-2 rounded-full bg-accent-500 flex-shrink-0","aria-label":g("branchItem.hasUnread")})]}),a.description&&(0,d.jsx)("div",{"data-testid":"branch-description",className:"pl-6 pr-2 mt-1 text-left",children:(0,d.jsx)("p",{className:"text-xs text-sidebar-muted line-clamp-2",children:a.description})}),(0,d.jsx)(D,{id:i,branch:a,isVisible:x,anchorRef:j,nextActionLabel:s,unclassified:v})]})});var G=c(85351),H=c(1102);function I(a,b,c){if(b<=0||c<=0)return 0;let d=a+b+8-c;return d>0?-Math.min(d,Math.max(0,a-8)):a<8?8-a:0}let J=(0,f.memo)(function({sortKey:a,sortDirection:b,onSortKeyChange:c,onSortDirectionChange:e,options:g,defaultDirections:h,compact:i,showLabel:j=!1,directionLabels:k,tooltip:l,iconClassName:m="w-3 h-3"}){let n=(0,q.c)("common"),[o,p]=(0,f.useState)(!1),r=(0,f.useRef)(null),s=(0,f.useRef)(null),t=(0,f.useRef)({x:0,y:0}),[u,v]=(0,f.useState)({x:0,y:0});(0,f.useEffect)(()=>{function a(a){r.current&&!r.current.contains(a.target)&&p(!1)}if(o)return document.addEventListener("mousedown",a),()=>document.removeEventListener("mousedown",a)},[o]),(0,f.useEffect)(()=>{function a(a){"Escape"===a.key&&p(!1)}if(o)return document.addEventListener("keydown",a),()=>document.removeEventListener("keydown",a)},[o]),(0,f.useLayoutEffect)(()=>{let a=a=>{t.current=a,v(b=>b.x===a.x&&b.y===a.y?b:a)};if(!o)return void a({x:0,y:0});let b=s.current;if(!b)return;let c=b.getBoundingClientRect();a({x:I(c.left-t.current.x,c.width,window.innerWidth),y:I(c.top-t.current.y,c.height,window.innerHeight)})},[o]);let w=(0,f.useCallback)(()=>{p(a=>!a)},[]),x=(0,f.useCallback)(d=>{d===a?e("asc"===b?"desc":"asc"):(c(d),e(h?.[d]??"asc")),p(!1)},[a,b,c,e,h]),y=(0,f.useCallback)(()=>{e("asc"===b?"desc":"asc")},[b,e]),z=g.find(b=>b.key===a)?.label||n("sort.label"),A=k?.[a]?.[b],B=n("asc"===b?"sort.ascShort":"sort.descShort"),C=(0,d.jsx)("button",{type:"button",onClick:w,"aria-expanded":o,"aria-haspopup":"listbox","aria-label":n("sort.sortBy",{label:z}),className:j?"flex min-w-0 max-w-full items-center gap-1 rounded border border-sidebar-border px-2 py-1 text-xs text-sidebar-foreground hover:bg-sidebar-hover focus:outline-none focus:ring-2 focus:ring-ring transition-colors":"flex items-center gap-1 px-2 py-1 rounded text-xs text-sidebar-muted hover:text-sidebar-foreground hover:bg-sidebar-hover focus:outline-none focus:ring-2 focus:ring-ring transition-colors",children:j?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("span",{className:"min-w-0 truncate",children:z}),(0,d.jsx)(G.A,{className:"h-3 w-3 flex-shrink-0","aria-hidden":"true"})]}):(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(K,{className:m}),(0,d.jsx)("span",{className:i?"hidden":"hidden sm:inline",children:z})]})});return(0,d.jsxs)("div",{ref:r,className:j?"relative min-w-0":"relative","data-testid":"sort-selector-base",children:[(0,d.jsxs)("div",{className:j?"flex min-w-0 flex-wrap items-center gap-1":"flex items-center gap-1",children:[l?(0,d.jsx)(H.m_,{content:l,placement:"bottom",children:C}):C,(0,d.jsx)("button",{type:"button",onClick:y,"aria-label":A??n("asc"===b?"sort.ascending":"sort.descending"),className:A?"min-w-0 max-w-full truncate rounded px-2 py-1 text-xs text-sidebar-muted hover:text-sidebar-foreground hover:bg-sidebar-hover focus:outline-none focus:ring-2 focus:ring-ring transition-colors":"p-1 rounded text-sidebar-muted hover:text-sidebar-foreground hover:bg-sidebar-hover focus:outline-none focus:ring-2 focus:ring-ring transition-colors",children:A??("asc"===b?(0,d.jsx)(L,{className:m}):(0,d.jsx)(M,{className:m}))})]}),o&&(0,d.jsx)("div",{ref:s,role:"listbox","aria-label":n("sort.options"),className:" absolute right-0 top-full mt-1 z-50 min-w-[140px] py-1 rounded-md shadow-lg bg-sidebar border border-sidebar-border ",style:0!==u.x||0!==u.y?{transform:`translate(${u.x}px, ${u.y}px)`}:void 0,children:g.map(c=>(0,d.jsxs)("button",{type:"button",role:"option","aria-selected":a===c.key,onClick:()=>x(c.key),className:`
|
|
41
|
+
w-full px-3 py-2 text-left text-sm whitespace-nowrap
|
|
42
|
+
flex items-center justify-between gap-3
|
|
43
|
+
hover:bg-sidebar-hover transition-colors
|
|
44
|
+
${a===c.key?"text-accent-700 dark:text-accent-400":"text-sidebar-muted"}
|
|
45
|
+
`,children:[(0,d.jsx)("span",{children:c.label}),a===c.key&&(0,d.jsx)("span",{className:"text-xs",children:k?.[c.key]?.[b]??B})]},c.key))})]})});function K({className:a}){return(0,d.jsx)("svg",{className:a,fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2,children:(0,d.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M3 4h13M3 8h9m-9 4h6m4 0l4-4m0 0l4 4m-4-4v12"})})}function L({className:a}){return(0,d.jsx)("svg",{className:a,fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2,children:(0,d.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M5 15l7-7 7 7"})})}function M({className:a}){return(0,d.jsx)("svg",{className:a,fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2,children:(0,d.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M19 9l-7 7-7-7"})})}let N=[{key:"updatedAt",labelKey:"sort.updatedAt"},{key:"repositoryName",labelKey:"sort.repositoryName"},{key:"branchName",labelKey:"sort.branchName"},{key:"status",labelKey:"sort.status"}],O={updatedAt:"desc"},P=(0,f.memo)(function(){let{sortKey:a,sortDirection:b,setSortKey:c,setSortDirection:e}=(0,h.VF)(),g=(0,q.c)("common"),i=(0,f.useMemo)(()=>N.map(({key:a,labelKey:b})=>({key:a,label:g(b)})),[g]),j=(0,f.useMemo)(()=>({updatedAt:{asc:g("sort.direction.oldestFirst"),desc:g("sort.direction.newestFirst")},repositoryName:{asc:g("sort.direction.aToZ"),desc:g("sort.direction.zToA")},branchName:{asc:g("sort.direction.aToZ"),desc:g("sort.direction.zToA")},status:{asc:g("sort.direction.attentionFirst"),desc:g("sort.direction.attentionLast")}}),[g]);return(0,d.jsx)(J,{sortKey:a,sortDirection:b,onSortKeyChange:c,onSortDirectionChange:e,options:i,defaultDirections:O,showLabel:!0,directionLabels:j,iconClassName:"w-4 h-4"})});var Q=c(85866),R=c(81497),S=c(85744),T=c(68232);function U(){let{currentLocale:a,switchLocale:b}=(0,S.g)(),c=(0,q.c)("common");return(0,d.jsx)("select",{value:a,onChange:a=>b(a.target.value),"data-testid":"locale-switcher","aria-label":c("language"),className:" w-full px-3 py-2 rounded-md bg-sidebar text-sidebar-foreground border border-sidebar-border focus:outline-none focus:ring-2 focus:ring-ring focus:border-transparent text-sm ",children:T.dI.map(a=>(0,d.jsx)("option",{value:a,children:T.vK[a]},a))})}var V=c(45523),W=c(70175),X=c(60988);function Y(){let{theme:a,setTheme:b}=(0,V.D)(),[c,e]=(0,f.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)(W.A,{className:"w-5 h-5","data-testid":"theme-icon-sun"}):(0,d.jsx)(X.A,{className:"w-5 h-5","data-testid":"theme-icon-moon"})})}var Z=c(84342);function $(){let a=(0,q.c)("auth"),b=(0,Z.H)(),[c,e]=(0,f.useState)(!1);if(!b)return null;async function g(){e(!0);try{await fetch("/api/auth/logout",{method:"POST"}),window.location.href="/login"}catch{window.location.href="/login"}}return(0,d.jsx)("button",{type:"button",onClick:g,disabled:c,"data-testid":"logout-button",className:" w-full px-3 py-2 text-sm text-left rounded-md text-muted-foreground hover:text-foreground hover:bg-muted focus:outline-none focus:ring-2 focus:ring-ring disabled:opacity-50 transition-colors ",children:c?"...":a("logout.button")})}var _=c(63474),aa=c(77560),ab=c(19463),ac=c(62197),ad=c(78352),ae=c(32482);function af(a){let{items:b,sortKey:c,sortDirection:d,viewMode:e,filterText:g}=a,h=(0,f.useMemo)(()=>{if(!g)return b;let a=g.toLowerCase();return b.filter(b=>b.name.toLowerCase().includes(a)||b.repositoryName.toLowerCase().includes(a))},[b,g]);return{sortedItems:(0,f.useMemo)(()=>(0,ae.Xn)(h,c,d),[h,c,d]),groupedItems:(0,f.useMemo)(()=>"grouped"===e?(0,ae._s)(h,c,d):[],[h,c,d,e])}}let ag=0,ah=(0,f.memo)(function(){let a=(0,o.Hq)(),{worktrees:b,repositories:c,selectedWorktreeId:g,selectWorktree:i,refreshWorktrees:j,isLoading:k,error:l}=(0,y.$f)(),{closeMobileDrawer:m,sortKey:n,sortDirection:p,viewMode:u,setViewMode:x,repositoryOrder:z,setRepositoryOrder:A}=(0,h.VF)(),C=(0,q.c)("common"),D=(0,e.usePathname)()??"",{count:E}=(0,ab.Lv)(),[G,H]=(0,f.useState)(""),I=(0,f.useRef)(null),[J,K]=(0,f.useState)(()=>({})),L=(0,f.useRef)(!1);(0,f.useEffect)(()=>{L.current||(L.current=!0,fetch("/api/sidebar/group-order").then(a=>a.json()).then(a=>{a.success&&Array.isArray(a.order)&&A(a.order)}).catch(()=>{}))},[A]);let M=(0,f.useMemo)(()=>(0,ae.UZ)(c),[c]),N=(0,f.useMemo)(()=>(0,ae.s6)(b,M),[b,M]),O=(0,f.useMemo)(()=>N.map(B.XK),[N]),R=(0,f.useDeferredValue)(O),S=(0,f.useRef)(null),T=(0,f.useRef)(null),[V,W]=(0,f.useState)(0);(0,f.useEffect)(()=>()=>{null!==T.current&&clearTimeout(T.current)},[]);let X=(0,f.useCallback)(()=>{null!==T.current&&(clearTimeout(T.current),T.current=null),S.current=null},[]),Z=(0,f.useMemo)(()=>{let a=S.current;return!a||0===a.items.length||Date.now()>=a.expiresAt?R:a.items},[R,V]),_=(0,f.useRef)(Z);(0,f.useLayoutEffect)(()=>{_.current=Z;let a=S.current;a&&0===a.items.length&&R.length>0&&X()});let ac=(0,f.useCallback)(()=>{if(0===_.current.length)return;null!==T.current&&(clearTimeout(T.current),T.current=null);let a=S.current;if(a&&Date.now()<a.expiresAt){S.current={...a,expiresAt:1/0};return}S.current={items:_.current,expiresAt:1/0}},[]),ad=(0,f.useCallback)(()=>{S.current&&(S.current={...S.current,expiresAt:Date.now()+1e3},null!==T.current&&clearTimeout(T.current),T.current=setTimeout(()=>{X(),W(a=>a+1)},1e3))},[X]),{sortedItems:ah,groupedItems:ak}=af({items:Z,sortKey:n,sortDirection:p,viewMode:u,filterText:G}),ao=(0,f.useMemo)(()=>"grouped"===u&&ak?G.trim()?ak:(0,ae.BN)(ak,z):null,[u,ak,z,G]),ap="grouped"===u?ao:null,aq=(0,f.useMemo)(()=>"sessions"===u?(0,ae.EY)((0,ae.UB)(ah),n,p):[],[u,ah,n,p]);(0,f.useEffect)(()=>{},[J]);let at=(0,f.useCallback)(a=>{K(b=>({...b,[a]:!b[a]}))},[]),au=(0,f.useCallback)(()=>{var a;ag=Number.isFinite(a=I.current?.scrollTop??0)&&a>0?a:0},[]),av=ah.length>0||(ap?.length??0)>0||aq.length>0;(0,f.useEffect)(()=>{let a=I.current;if(!a)return;let b=window.requestAnimationFrame(()=>{a.scrollTop=ag});return()=>{window.cancelAnimationFrame(b)}},[av,u]);let aw=(0,f.useCallback)(b=>{au(),i(b),a.push(`/worktrees/${b}`),m()},[au,i,a,m]),ax=(0,f.useCallback)(b=>{au(),i(b.worktreeId),a.push((0,ae.Ii)(b)),m()},[au,i,a,m]),ay=(0,v.FR)((0,v.MS)(v.AN,{activationConstraint:{distance:8}})),az=(0,f.useCallback)(a=>{let{active:b,over:c}=a;if(!c||b.id===c.id||!ap)return;let d=ap.map(a=>a.repositoryName),e=d.indexOf(String(b.id)),f=d.indexOf(String(c.id));if(-1===e||-1===f)return;let g=(0,w.be)(d,e,f);A(g),fetch("/api/sidebar/group-order",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({order:g})}).catch(()=>{A(d)})},[ap,A]),aA="grouped"===u?(ap?.length??0)===0:"sessions"===u?0===aq.length:0===ah.length,aB=k&&0===b.length,aC=!aB&&!!l&&0===b.length,aD=(0,f.useCallback)(()=>{j()},[j]);return(0,d.jsxs)("nav",{"data-testid":"sidebar","aria-label":C("sidebar.branchNavigation"),className:"h-full flex flex-col bg-sidebar text-sidebar-foreground",role:"navigation",children:[(0,d.jsxs)("div",{"data-testid":"sidebar-header",className:"flex-shrink-0 space-y-2 border-b border-sidebar-border px-2 py-2",children:[(0,d.jsxs)("ul",{"data-testid":"sidebar-nav",className:"space-y-0.5",children:[(0,d.jsxs)("li",{className:"flex min-w-0 items-center gap-1",children:[(0,d.jsx)(al,{href:"/repositories",icon:r.A,label:C("nav.repositories"),testId:"sidebar-nav-repositories",isActive:D.startsWith("/repositories"),onNavigate:m}),(0,d.jsx)(ar,{refreshWorktrees:j})]}),(0,d.jsx)("li",{className:"flex min-w-0",children:(0,d.jsx)(al,{href:"/sessions",icon:s.A,label:C("nav.sessions"),testId:"sidebar-nav-sessions",isActive:D.startsWith("/sessions"),onNavigate:m})}),(0,d.jsx)("li",{className:"flex min-w-0",children:(0,d.jsx)(al,{href:E>0?aa.ks:"/review",icon:t.A,label:C("nav.review"),testId:"sidebar-nav-review",isActive:D.startsWith("/review"),onNavigate:m,trailing:E>0?(0,d.jsx)("span",{"data-testid":"sidebar-nav-review-count",role:"status","aria-label":C("attention.badgeLabel",{count:E}),className:"flex-shrink-0 rounded-full bg-warning-subtle px-1.5 text-xs font-semibold leading-5 tabular-nums text-warning-foreground",children:E>99?"99+":E}):null})})]}),(0,d.jsxs)("div",{"data-testid":"sidebar-list-controls",className:"grid grid-cols-[auto_minmax(0,1fr)] items-center gap-x-2 gap-y-1.5 px-2",children:[(0,d.jsx)(am,{viewMode:u,onChange:x}),(0,d.jsx)("span",{className:"whitespace-nowrap text-xs text-sidebar-muted",children:C("sort.label")}),(0,d.jsx)(P,{})]})]}),(0,d.jsx)("div",{className:"flex-shrink-0 px-4 py-3 border-b border-sidebar-border",children:(0,d.jsx)(Q.pd,{type:"text",placeholder:C("sidebar.searchBranches"),value:G,onChange:a=>H(a.target.value),className:"bg-background shadow-none"})}),(0,d.jsx)("div",{ref:I,"data-testid":"branch-list",onScroll:au,onMouseEnter:ac,onMouseLeave:ad,className:"flex-1 overflow-y-auto overflow-x-hidden",children:aB?(0,d.jsx)(ai,{label:C("sidebar.loadingBranches")}):aC?(0,d.jsxs)("div",{"data-testid":"branch-list-error",role:"alert",className:"px-4 py-8 text-center text-sidebar-muted",children:[(0,d.jsx)("p",{className:"text-sm",children:C("sidebar.branchesLoadFailed")}),(0,d.jsx)(Q.$n,{type:"button",variant:"secondary",size:"sm",className:"mt-3","data-testid":"branch-list-retry",onClick:aD,children:C("sidebar.retryLoadBranches")})]}):aA?(0,d.jsx)("div",{className:"px-4 py-8 text-center text-sidebar-muted",children:C(G?"sidebar.noBranchesFound":"sidebar.noBranchesAvailable")}):"sessions"===u?aq.map(a=>(0,d.jsx)(an,{row:a,isSelected:a.worktreeId===g,onClick:ax},a.key)):"grouped"===u&&ap?(0,d.jsx)(v.Mp,{sensors:ay,collisionDetection:v.fp,onDragEnd:az,children:(0,d.jsx)(w.gB,{items:ap.map(a=>a.repositoryName),strategy:w._G,children:ap.map(a=>{let b=!J[a.repositoryName]||!!G.trim();return(0,d.jsx)(aj,{group:a,isExpanded:b,selectedWorktreeId:g,onToggle:()=>at(a.repositoryName),onBranchClick:aw,isDragDisabled:!!G.trim()},a.repositoryName)})})}):ah.map(a=>(0,d.jsx)(F,{branch:a,isSelected:a.id===g,onClick:()=>aw(a.id)},a.id))}),(0,d.jsxs)("div",{className:"flex-shrink-0 px-4 py-3 border-t border-sidebar-border space-y-2",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)(as,{onNavigate:m}),(0,d.jsx)("div",{className:"flex-1 min-w-0",children:(0,d.jsx)(U,{})}),(0,d.jsx)(Y,{})]}),(0,d.jsx)($,{})]})]})}),ai=(0,f.memo)(function({label:a}){return(0,d.jsxs)("div",{"data-testid":"branch-list-skeleton",role:"status","aria-live":"polite",className:"px-4 py-3 space-y-3",children:[(0,d.jsx)("span",{className:"sr-only",children:a}),[0,1,2,3,4].map(a=>(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)(Q.EA,{className:"h-2 w-2 rounded-full"}),(0,d.jsx)(Q.EA,{className:"h-3 flex-1"})]},a))]})});function aj({group:a,isExpanded:b,selectedWorktreeId:c,onToggle:e,onBranchClick:f,isDragDisabled:g}){let{attributes:h,listeners:i,setNodeRef:j,setActivatorNodeRef:k,transform:l,transition:m,isDragging:n}=(0,w.gl)({id:a.repositoryName,disabled:g}),o={transform:x.Ks.Transform.toString(l),transition:m,opacity:n?.5:1};return(0,d.jsxs)("div",{ref:j,style:o,className:"w-full min-w-0",children:[(0,d.jsx)(ak,{repositoryName:a.repositoryName,branchCount:a.branches.length,isExpanded:b,onClick:e,dragHandleRef:k,dragHandleListeners:g?void 0:i,dragHandleAttributes:g?void 0:h}),b&&a.branches.map(a=>(0,d.jsx)(F,{branch:a,isSelected:a.id===c,onClick:()=>f(a.id),showRepositoryName:!1},a.id))]})}function ak({repositoryName:a,branchCount:b,isExpanded:c,onClick:e,dragHandleRef:f,dragHandleListeners:g,dragHandleAttributes:h}){let i=(0,q.c)("common");return(0,d.jsxs)("div",{className:"flex items-center w-full",children:[g&&(0,d.jsx)("div",{ref:f,...g,...h,"aria-label":i("sidebar.dragToReorderGroup"),className:" flex-shrink-0 flex items-center justify-center w-6 h-full pl-2 cursor-grab active:cursor-grabbing text-sidebar-muted hover:text-sidebar-foreground transition-colors ",children:(0,d.jsx)(ap,{})}),(0,d.jsxs)("button",{"data-testid":"group-header",type:"button",onClick:e,"aria-expanded":c,className:" flex-1 min-w-0 flex items-center gap-2 px-2 py-2 text-xs font-semibold text-sidebar-muted uppercase tracking-wider focus:outline-none focus:ring-2 focus:ring-inset focus:ring-ring transition-colors ",children:[(0,d.jsx)(ao,{isExpanded:c}),(0,d.jsx)(Q.nF,{color:(0,ae.LV)(a)}),(0,d.jsx)(R.nR,{content:a,className:"flex-1 min-w-0 text-left truncate",children:a}),(0,d.jsx)("span",{className:"text-sidebar-muted font-normal tabular-nums pr-2",children:b})]})]})}function al({href:a,icon:b,label:c,testId:e,isActive:f,onNavigate:g,trailing:h}){return(0,d.jsxs)(p,{href:a,"data-testid":e,"aria-current":f?"page":void 0,onClick:g,className:`flex min-w-0 flex-1 items-center gap-2 rounded-md px-2 py-1.5 text-sm transition-colors hover:bg-sidebar-hover hover:text-sidebar-foreground focus:outline-none focus-visible:ring-2 focus-visible:ring-ring ${f?"bg-sidebar-hover font-medium text-sidebar-foreground":"text-sidebar-muted"}`,children:[(0,d.jsx)(b,{className:"h-4 w-4 flex-shrink-0","aria-hidden":"true"}),(0,d.jsx)("span",{className:"min-w-0 flex-1 truncate",children:c}),h]})}function am({viewMode:a,onChange:b}){let c=(0,q.c)("common"),e=(0,f.useId)();return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("label",{htmlFor:e,className:"whitespace-nowrap text-xs text-sidebar-muted",children:c("sidebar.viewLabel")}),(0,d.jsxs)("select",{id:e,"data-testid":"view-mode-select",value:a,onChange:a=>{let c=a.target.value;(0,ae.$m)(c)&&b(c)},className:"w-full min-w-0 truncate rounded border border-sidebar-border bg-sidebar px-1.5 py-1 text-xs text-sidebar-foreground hover:bg-sidebar-hover focus:outline-none focus:ring-2 focus:ring-ring",children:[(0,d.jsx)("option",{value:"grouped",children:c("sidebar.viewMode.grouped")}),(0,d.jsx)("option",{value:"flat",children:c("sidebar.viewMode.flat")}),(0,d.jsx)("option",{value:"sessions",children:c("sidebar.viewMode.sessions")})]})]})}let an=(0,f.memo)(function({row:a,isSelected:b,onClick:c}){let e=(0,q.c)("common"),f=(0,C.Mq)(a.status,a.unclassified),g=e(f?C.rH:`status.${a.status}`);return(0,d.jsxs)("button",{type:"button","data-testid":"session-list-item","data-session-key":a.key,onClick:()=>c(a),"aria-current":b?"true":void 0,className:`w-full min-w-0 px-4 py-2 flex items-center gap-3 text-left hover:bg-sidebar-hover transition-colors focus:outline-none focus:ring-2 focus:ring-inset focus:ring-ring ${b?"bg-sidebar-hover border-l-2 border-accent-500":"border-l-2 border-transparent"}`,children:[(0,d.jsx)(Q.md,{status:a.status,size:"lg",label:a.exited?`${g} (${e("branchItem.agentExited")})`:g,className:f?C.Jd:void 0}),(0,d.jsxs)("span",{className:"min-w-0 flex-1",children:[(0,d.jsx)("span",{className:"block truncate text-sm font-semibold text-sidebar-foreground",children:a.label}),(0,d.jsxs)("span",{className:"block truncate text-xs text-sidebar-muted",children:[a.branchName," \xb7 ",a.repositoryName]})]})]})});function ao({isExpanded:a}){return(0,d.jsx)("svg",{className:`w-3 h-3 flex-shrink-0 transition-transform ${a?"rotate-90":""}`,fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2,children:(0,d.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M9 5l7 7-7 7"})})}function ap(){return(0,d.jsxs)("svg",{className:"w-3 h-3",fill:"currentColor",viewBox:"0 0 24 24","aria-hidden":"true",children:[(0,d.jsx)("circle",{cx:"9",cy:"5",r:"1.5"}),(0,d.jsx)("circle",{cx:"15",cy:"5",r:"1.5"}),(0,d.jsx)("circle",{cx:"9",cy:"12",r:"1.5"}),(0,d.jsx)("circle",{cx:"15",cy:"12",r:"1.5"}),(0,d.jsx)("circle",{cx:"9",cy:"19",r:"1.5"}),(0,d.jsx)("circle",{cx:"15",cy:"19",r:"1.5"})]})}function aq({className:a=""}){return(0,d.jsx)("svg",{className:`w-4 h-4 ${a}`,fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2,children:(0,d.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M4 4v5h5M20 20v-5h-5M20.49 9A9 9 0 005.64 5.64L4 4m16 16l-1.64-1.64A9 9 0 014.51 15"})})}let ar=(0,f.memo)(function({refreshWorktrees:a}){let[b,c]=(0,f.useState)(!1),e=(0,f.useRef)(!1),{showToast:g}=(0,_.dj)(),h=(0,q.c)("common"),i=(0,f.useCallback)(async()=>{if(!e.current){e.current=!0,c(!0);try{let b=await ad.Rx.sync();await a(),g(h("syncSuccess",{count:b.worktreeCount}),"success",3e3)}catch(a){a instanceof ad.hD&&401===a.status?g(h("syncAuthError"),"error",5e3):g(h("syncError"),"error",5e3)}finally{e.current=!1,c(!1)}}},[a,g,h]);return(0,d.jsx)(d.Fragment,{children:(0,d.jsx)(H.m_,{content:h("tooltips.sync"),placement:"bottom",children:(0,d.jsx)("button",{type:"button",onClick:i,disabled:b,"aria-label":h("syncButtonLabel"),className:"p-1 rounded-md text-sidebar-muted hover:text-sidebar-foreground hover:bg-sidebar-hover focus:outline-none focus:ring-2 focus:ring-ring disabled:opacity-50 disabled:cursor-not-allowed transition-colors",children:(0,d.jsx)(aq,{className:b?"animate-spin":""})})})})});function as({onNavigate:a}){let b=(0,q.c)("common"),c=(0,i.a)(),{open:e}=(0,ac.V0)(),g=b("settings.title"),h=(0,f.useCallback)(b=>{a(),!c&&(0!==b.button||b.metaKey||b.ctrlKey||b.shiftKey||b.altKey||(b.preventDefault(),e()))},[c,a,e]);return(0,d.jsx)(H.m_,{content:g,placement:"top",className:"flex-shrink-0",children:(0,d.jsx)(p,{href:"/more","data-testid":"sidebar-settings","aria-label":g,"aria-haspopup":c?void 0:"dialog",onClick:h,className:"p-1.5 rounded-md text-sidebar-muted hover:text-sidebar-foreground hover:bg-sidebar-hover focus:outline-none focus:ring-2 focus:ring-ring transition-colors",children:(0,d.jsx)(u.A,{size:20,"aria-hidden":"true"})})})}var at=c(15917),au=c(88285),av=c(97950),aw=c(8509);function ax(){let a=(0,h.pT)(),b=(0,q.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,ae.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:ae.EN.map(a=>(0,d.jsx)("option",{value:a,children:b(`repoTabBar.mode.${a}`)},a))})]})}var ay=c(38557);function az(){let{shouldSurface:a,isReconnecting:b}=(0,ay.Fx)(),c=(0,q.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 aA=c(60957),aB=c(85647),aC=c(64632);let aD=[{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"),opensSettings:!0}];function aE({title:a="CommandMate"}){let b=(0,e.usePathname)(),c=(0,q.c)("commandPalette"),f=(0,q.c)("common"),{setOpen:h}=(0,aC.C)(),[i,j]=g().useState(null),{open:k}=(0,ac.V0)(),l=g().useCallback(a=>{0!==a.button||a.metaKey||a.ctrlKey||a.shiftKey||a.altKey||(a.preventDefault(),k())},[k]);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)(p,{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)(at.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:[aD.map(a=>{let c=a.isActive(b);return(0,d.jsx)(p,{href:a.href,"aria-current":c?"page":void 0,"aria-haspopup":a.opensSettings?"dialog":void 0,onClick:a.opensSettings?l: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:f(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)(au.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)(aB.u,{children:i}),(0,d.jsx)(aB.u,{children:"K"})]})]}),(0,d.jsx)(az,{}),(0,d.jsx)(aw.g,{}),(0,d.jsx)(ax,{}),(0,d.jsx)(aA.H,{}),(0,d.jsx)(Y,{}),(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)(av.A,{size:20,strokeWidth:2,"aria-hidden":"true"}),(0,d.jsx)("span",{children:"GitHub"})]})]})]})})})}var aF=c(38882),aG=c(72280),aH=c(22317),aI=c(52120),aJ=c(11010);let aK=/^\/worktrees\/([^/]+)/;function aL(a,b,c){let d=c-8-b;return d<=8?8:Math.min(Math.max(a.left+b>c-8?a.right-b:a.left,8),d)}function aM(a){a?.scrollIntoView?.({block:"nearest",inline:"nearest"})}let aN=(0,f.memo)(function(){let a=(0,q.c)("common"),b=(0,e.usePathname)(),c=(0,o.Hq)(),{sortKey:g,sortDirection:i,repositoryOrder:j}=(0,h.VF)(),{worktrees:k,repositories:m,selectedWorktreeId:n,selectWorktree:p}=(0,y.$f)(),{factor:r}=(0,l.Ps)(),s=(0,f.useMemo)(()=>(0,ae.UZ)(m??[]),[m]),t=(0,f.useMemo)(()=>(0,ae.s6)(k??[],s),[k,s]),{groupedItems:u}=af({items:(0,f.useMemo)(()=>t.map(B.XK),[t]),sortKey:g,sortDirection:i,viewMode:"grouped"}),v=(0,f.useMemo)(()=>(0,ae.BN)(u,j),[u,j]),w=function(a,b){let c=aK.exec(a);if(!c)return b;try{return decodeURIComponent(c[1])}catch{return c[1]}}(b,n),x=(0,f.useMemo)(()=>v.find(a=>a.branches.some(a=>a.id===w))?.repositoryName??null,[v,w]),[z,A]=(0,f.useState)(null),[C,D]=(0,f.useState)(null),[E,F]=(0,f.useState)(!1),G=(0,f.useRef)(null),H=(0,f.useRef)(null),I=(0,f.useRef)(new Map),J=(0,f.useCallback)((a,b)=>{b?I.current.set(a,b):I.current.delete(a)},[]),K=(0,f.useCallback)(()=>{A(null),D(null),F(!1)},[]),L=(0,f.useCallback)(a=>{let b=I.current.get(a);if(!b)return;let c=b.getBoundingClientRect();D({left:c.left,right:c.right,bottom:c.bottom}),A(a),F(!1)},[]),M=(0,f.useCallback)(a=>{if(z===a)return void K();L(a)},[z,K,L]),[N,O]=(0,f.useState)(!1),P=(0,f.useCallback)(()=>{let a=G.current;a&&O(a.scrollWidth>a.clientWidth+1)},[]);(0,f.useLayoutEffect)(()=>{P()},[P,v.length,r]),(0,f.useEffect)(()=>{},[P]);let Q=null!==z||E;(0,f.useEffect)(()=>{if(!Q)return;let a=a=>{let b=a.target;!(!b||G.current?.contains(b)||H.current?.contains(b))&&(b.closest?.("[data-repository-tab-panel]")||K())},b=a=>{if("Escape"!==a.key)return;let b=z?I.current.get(z):H.current;K(),b?.focus()};return document.addEventListener("mousedown",a),document.addEventListener("keydown",b),()=>{document.removeEventListener("mousedown",a),document.removeEventListener("keydown",b)}},[Q,z,K]),(0,f.useEffect)(()=>{K()},[b,K]),(0,f.useLayoutEffect)(()=>{x&&aM(I.current.get(x))},[x,b,N]);let R=(0,f.useCallback)(a=>{K(),p(a),c.push(`/worktrees/${a}`)},[K,p,c]),S=(0,f.useCallback)(a=>{let b=I.current.get(a);aM(b),L(a),b?.focus()},[L]),T=(0,f.useCallback)(a=>{var b;let c=a.currentTarget,d=(b=c.clientWidth,a.ctrlKey||a.shiftKey||Math.abs(a.deltaY)<=Math.abs(a.deltaX)?0:1===a.deltaMode?40*a.deltaY:2===a.deltaMode?a.deltaY*b:a.deltaY);0!==d&&(c.scrollLeft+=d)},[]);if(0===v.length)return null;let U=Math.round(32*r),V=v.find(a=>a.repositoryName===z)??null;return(0,d.jsxs)("div",{"data-testid":"repository-tab-bar",className:"relative flex-shrink-0 flex items-stretch border-b border-border bg-surface",style:{height:`${U}px`},children:[(0,d.jsx)("nav",{ref:G,"data-testid":"repository-tab-strip","aria-label":a("nav.repositories"),onWheel:T,className:"flex min-w-0 flex-1 flex-nowrap items-stretch overflow-x-auto overflow-y-hidden scrollbar-hide",children:v.map(a=>(0,d.jsx)(aO,{group:a,isActive:a.repositoryName===x,isOpen:a.repositoryName===z,registerTab:J,onToggle:M},a.repositoryName))}),N&&(0,d.jsx)("button",{ref:H,type:"button","data-testid":"repository-tab-overflow","aria-haspopup":"menu","aria-expanded":E,"aria-label":a("repoTabBar.overflow"),title:a("repoTabBar.overflow"),onClick:()=>{A(null),D(null),F(a=>!a)},className:"flex-shrink-0 flex items-center border-l border-border px-2 text-muted-foreground transition-colors hover:bg-surface-2 hover:text-foreground focus:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-ring",children:(0,d.jsx)(aF.A,{size:16,strokeWidth:2,"aria-hidden":"true"})}),V&&C&&(0,d.jsx)(aP,{group:V,anchor:C,factor:r,activeWorktreeId:w,onBranchClick:R}),E&&(0,d.jsx)(aQ,{groups:v,anchorRef:H,activeRepositoryName:x,onSelect:S})]})}),aO=(0,f.memo)(function({group:a,isActive:b,isOpen:c,registerTab:e,onToggle:f}){let g=(0,q.c)("common"),h=(0,ae.zD)(a.branches),i=(0,C.Mq)(h,(0,ae.El)(a.branches)),j=(0,ae.j)(a.branches),k=g(i?C.rH:aI.PL[h].labelKey);return(0,d.jsxs)("button",{ref:b=>e(a.repositoryName,b),type:"button","data-testid":"repository-tab","data-repository":a.repositoryName,"aria-haspopup":"menu","aria-expanded":c,"aria-current":b?"true":void 0,title:`${a.repositoryName} — ${k}`,onClick:()=>f(a.repositoryName),onKeyDown:b=>{"ArrowDown"===b.key&&(b.preventDefault(),c||f(a.repositoryName))},className:`
|
|
46
|
+
group/tab flex-shrink-0 flex max-w-[14rem] items-center gap-1.5 px-2.5
|
|
47
|
+
border-b-2 text-xs font-medium transition-colors
|
|
48
|
+
focus:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-ring
|
|
49
|
+
${b?"border-accent-500 bg-surface-2 text-foreground":"border-transparent text-muted-foreground hover:bg-surface-2 hover:text-foreground"}
|
|
50
|
+
`,children:[(0,d.jsx)(aG.n,{className:"h-3.5 w-3.5",color:(0,ae.LV)(a.repositoryName)}),(0,d.jsx)("span",{className:"min-w-0 truncate",children:a.repositoryName}),(0,d.jsx)(aH.m,{status:h,size:"sm",label:k,className:i?C.Jd:void 0,"data-testid":"repository-tab-status"}),j>0&&(0,d.jsx)("span",{"data-testid":"repository-tab-attention-count","aria-label":g("attention.badgeLabel",{count:j}),className:"flex-shrink-0 rounded-full bg-warning-subtle px-1.5 text-[10px] font-semibold leading-4 tabular-nums text-warning-foreground",children:j})]})});function aP({group:a,anchor:b,factor:c,activeWorktreeId:e,onBranchClick:g}){let h=(0,q.c)("common"),i=(0,f.useRef)(null);if("undefined"==typeof document)return null;let j=Math.round(300*c);return A().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:aL(b,j,j),width:j,zIndex:aJ.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)(F,{branch:a,isSelected:a.id===e,onClick:()=>g(a.id),showRepositoryName:!1},a.id))})}),document.body)}function aQ({groups:a,anchorRef:b,activeRepositoryName:c,onSelect:e}){let f=(0,q.c)("common"),g=b.current?.getBoundingClientRect();return"undefined"!=typeof document&&g?A().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:aL({left:g.left,right:g.right,bottom:g.bottom},300,300),width:300,maxHeight:"520px",zIndex:aJ.M.POPOVER},children:(0,d.jsx)("div",{className:"overflow-y-auto py-1",style:{maxHeight:"inherit"},children:a.map(a=>{let b=(0,ae.zD)(a.branches),g=(0,C.Mq)(b,(0,ae.El)(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)(aG.n,{className:"h-3.5 w-3.5",color:(0,ae.LV)(a.repositoryName)}),(0,d.jsx)("span",{className:"min-w-0 flex-1 truncate",children:a.repositoryName}),(0,d.jsx)(aH.m,{status:b,size:"sm",label:f(g?C.rH:aI.PL[b].labelKey),className:g?C.Jd:void 0}),(0,d.jsx)("span",{className:"tabular-nums text-xs text-sidebar-muted",children:a.branches.length})]},a.repositoryName)})})}),document.body):null}var aR=c(6130);function aS({count:a}){let b=(0,q.c)("common");return 0===a?null:(0,d.jsx)("span",{"data-testid":"attention-badge-bubble",role:"status","aria-label":b("attention.badgeLabel",{count:a}),className:"absolute -top-1.5 -right-2.5 min-w-[1.05rem] rounded-full bg-warning-foreground px-1 text-[0.625rem] font-bold leading-[1.05rem] text-warning-subtle tabular-nums text-center",children:a>99?"99+":a})}let aT=[{labelKey:"nav.sessions",href:"/sessions",isActive:a=>a.startsWith("/sessions"),icon:(0,d.jsx)(s.A,{size:20,"aria-hidden":"true"})},{labelKey:"nav.review",href:"/review",isActive:a=>a.startsWith("/review"),icon:(0,d.jsx)(t.A,{size:20,"aria-hidden":"true"}),showsAttentionBadge:!0},{labelKey:"nav.more",href:"/more",isActive:a=>a.startsWith("/more"),icon:(0,d.jsx)(aF.A,{size:20,"aria-hidden":"true"})}];function aU(){let a=(0,e.usePathname)(),{setOpen:b}=(0,aC.C)(),c=(0,q.c)("commandPalette"),f=(0,q.c)("common"),{count:g}=(0,ab.Lv)(),i=(0,h.pT)();return i?.isMobileDrawerOpen?null:(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:[i&&(0,d.jsxs)("button",{type:"button","data-testid":"mobile-nav-open-sidebar",onClick:i.openMobileDrawer,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)(aR.A,{size:20,"aria-hidden":"true"}),(0,d.jsx)("span",{className:"mt-1 whitespace-nowrap",children:f("sidebar.branches")})]}),aT.map(b=>{let c=b.isActive(a),e=!0===b.showsAttentionBadge&&g>0;return(0,d.jsxs)(p,{href:e?aa.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)(aS,{count:g})]}),(0,d.jsx)("span",{className:"mt-1 whitespace-nowrap",children:f(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)(au.A,{size:20,"aria-hidden":"true"}),(0,d.jsx)("span",{className:"mt-1 whitespace-nowrap",children:c("mobileLabel")})]})]})})}function aV(){let{shouldSurface:a,isReconnecting:b}=(0,ay.Fx)(),c=(0,q.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 aW=c(76047),aX=c(98033),aY=c(89184);let aZ=["global","terminal","composer","editor"],a$=[{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 a_(){let{open:a,setOpen:b}=(0,aY.K)(),{open:c}=(0,aC.C)(),e=(0,q.c)("keyboardShortcuts"),[g,h]=(0,f.useState)(!1);(0,f.useRef)(a),(0,f.useRef)(c);let i=function(a=a$){return aZ.map(b=>({scope:b,shortcuts:a.filter(a=>a.scope===b)})).filter(a=>a.shortcuts.length>0)}();return(0,d.jsx)(aX.a,{isOpen:a,onClose:()=>b(!1),title:e("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:e(`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:e(`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)(aB.u,{children:"MOD"===a?g?"⌘":"Ctrl":a},b))})]},a.id))})]},a))})})}var a0=c(18608),a1=c(55992),a2=c(94260);let a3=[{key:"added",labelKey:"whatsNew.added"},{key:"improved",labelKey:"whatsNew.improved"},{key:"fixed",labelKey:"whatsNew.fixed"}];function a4(){let a=(0,q.c)("common"),b=(0,a1.Ym)(),[c,e]=(0,f.useState)(null),[g,h]=(0,f.useState)(!1),i=(0,f.useCallback)(()=>{c&&function(a){try{window.localStorage.setItem("commandmate.lastSeenAppVersion",a)}catch{}}(c.to),h(!1)},[c]);if(!c)return null;let j="ja"===b?"ja":"en";return(0,d.jsx)(aX.a,{isOpen:g,onClose:i,title:a("whatsNew.title",{from:c.from,to:c.to}),size:"md",children:(0,d.jsxs)("div",{className:"space-y-4","data-testid":"whats-new-dialog",children:[0===c.notes.length?(0,d.jsx)("p",{className:"text-sm text-foreground","data-testid":"whats-new-empty",children:a("whatsNew.empty")}):c.notes.map(b=>(0,d.jsxs)("section",{className:"space-y-3","data-testid":`whats-new-version-${b.version}`,children:[(0,d.jsxs)("h4",{className:"text-sm font-semibold text-foreground",children:["v",b.version,(0,d.jsx)("span",{className:"ml-2 text-xs font-normal text-muted-foreground",children:b.date})]}),b.highlight&&(0,d.jsxs)("div",{"data-testid":"whats-new-highlight",children:[(0,d.jsx)("h5",{className:"text-xs font-medium text-muted-foreground",children:a("whatsNew.highlight")}),(0,d.jsx)("p",{className:"mt-1 text-sm text-foreground",children:b.highlight[j]})]}),a3.map(({key:c,labelKey:e})=>b[c].length>0?(0,d.jsxs)("div",{"data-testid":`whats-new-${c}`,children:[(0,d.jsx)("h5",{className:"text-xs font-medium text-muted-foreground",children:a(e)}),(0,d.jsx)("ul",{className:"mt-1 list-disc space-y-1 pl-5 text-sm text-foreground",children:b[c].map((a,b)=>(0,d.jsx)("li",{children:a[j]},b))})]},c):null)]},b.version)),(0,d.jsxs)("div",{className:"flex items-center justify-between gap-3 border-t border-border pt-3",children:[(0,d.jsx)("a",{href:`https://github.com/Kewton/CommandMate/releases/tag/v${c.to}`,target:"_blank",rel:"noopener noreferrer",className:"text-sm text-accent-600 dark:text-accent-400 hover:underline","data-testid":"whats-new-release-link",children:a("whatsNew.releaseLink")}),(0,d.jsx)(a2.$,{type:"button",variant:"primary",size:"sm",onClick:i,"data-testid":"whats-new-close",children:a("whatsNew.close")})]})]})})}let a5="transform transition-transform duration-300 ease-out",a6=(0,f.memo)(function({children:a}){let{isOpen:b,isMobileDrawerOpen:c,closeMobileDrawer:g,width:m,setWidth:n,repoTabBarMode:o}=(0,h.VF)(),p=(0,i.a)(),{showSidebar:q,showGlobalNav:r}=function(){var a=(0,e.usePathname)();for(let b of k)if(a.startsWith(b.prefix))return{...j,...b.config};return{...j}}(),{factor:s}=(0,l.Ps)(),t=Math.round(160*s),u=Math.round(480*s),v=Math.round(Math.min(u,Math.max(t,m*s))),w=(0,ae.fs)(o??ae.PB,b),x=Math.round(32*s)+64*!!r,y=w?{top:`${x}px`,height:`calc(100vh - ${x}px)`}:{},z=(0,f.useRef)(null),A=(0,f.useRef)(null),B=(0,f.useCallback)(a=>{n(Math.round(a/s))},[n,s]);return p?(0,d.jsxs)("div",{"data-testid":"app-shell",className:"h-screen flex flex-col",children:[(0,d.jsx)(aV,{}),c&&(0,d.jsx)("div",{"data-testid":"drawer-overlay",className:"fixed inset-0 bg-black/50 z-40",onClick:g,"aria-hidden":"true"}),q&&(0,d.jsx)("aside",{"data-testid":"sidebar-container",className:`
|
|
51
|
+
fixed left-0 top-0 h-full w-72 z-50
|
|
52
|
+
${a5}
|
|
53
|
+
${c?"translate-x-0":"-translate-x-full"}
|
|
54
|
+
`,role:"complementary",children:(0,d.jsx)(ah,{})}),(0,d.jsx)("main",{className:`flex-1 min-h-0 overflow-hidden ${r?"pb-nav-safe":""}`,role:"main","data-view-transition":"content",children:a}),r&&(0,d.jsx)(aU,{}),(0,d.jsx)(aW.xq,{}),(0,d.jsx)(a_,{}),(0,d.jsx)(a0.n,{}),(0,d.jsx)(a4,{})]}):(0,d.jsxs)("div",{"data-testid":"app-shell",className:"h-screen flex flex-col",children:[w&&(0,d.jsx)(aN,{}),r&&(0,d.jsx)(aE,{}),(0,d.jsxs)("div",{className:"flex flex-1 min-h-0",children:[q&&(0,d.jsxs)("aside",{ref:z,"data-testid":"sidebar-container",className:`
|
|
55
|
+
fixed left-0
|
|
56
|
+
${r?"top-16 h-[calc(100vh-4rem)]":"top-0 h-full"}
|
|
57
|
+
border-r border-border
|
|
58
|
+
${a5}
|
|
59
|
+
${b?"translate-x-0":"-translate-x-full"}
|
|
60
|
+
`,style:{width:`${v}px`,zIndex:aJ.M.SIDEBAR,...y},role:"complementary","aria-hidden":!b,children:[(0,d.jsx)(ah,{}),(0,d.jsx)(a7,{currentWidth:v,minWidth:t,maxWidth:u,sidebarRef:z,mainRef:A,onWidthChange:B})]}),(0,d.jsx)("main",{ref:A,className:"flex-1 min-w-0 h-full overflow-hidden transition-[padding] duration-300 ease-out",style:{paddingLeft:q&&b?`${v}px`:0},role:"main","data-view-transition":"content",children:a})]}),(0,d.jsx)(aW.xq,{}),(0,d.jsx)(a_,{}),(0,d.jsx)(a0.n,{}),(0,d.jsx)(a4,{})]})});function a7({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"})}let a8=["/login","/offline","/proxy"],a9=/^\/worktrees\/[^/]+\/(terminal|files)(\/|$)/;function ba({children:a}){var b;return(b=(0,e.usePathname)()??"",a8.some(a=>b===a||b.startsWith(`${a}/`))||a9.test(b)||0)?(0,d.jsx)(d.Fragment,{children:a}):(0,d.jsx)(a6,{children:a})}},90076:(a,b,c)=>{"use strict";c.d(b,{D:()=>f,a:()=>g});var d=c(38301);let e=d.useEffect,f=768;function g(a={}){let{breakpoint:b=f}=a,[c,h]=(0,d.useState)(!1);return e(()=>{let a=window.matchMedia(`(max-width: ${b-1}px)`);h(a.matches);let c=a=>{h(a.matches)};return a.addEventListener("change",c),()=>{a.removeEventListener("change",c)}},[b]),c}},90102:(a,b,c)=>{"use strict";c.d(b,{o:()=>f});var d=c(38301),e=c(19463);function f(){return!function(){let{count:a}=(0,e.Lv)();(0,d.useRef)([]),(0,d.useRef)(null)}(),null}},90338:(a,b,c)=>{var d={"./en/worktree.json":[72119,2119],"./ja/worktree.json":[52445,2445]};function e(a){if(!c.o(d,a))return Promise.resolve().then(()=>{var b=Error("Cannot find module '"+a+"'");throw b.code="MODULE_NOT_FOUND",b});var b=d[a],e=b[0];return c.e(b[1]).then(()=>c.t(e,19))}e.keys=()=>Object.keys(d),e.id=90338,a.exports=e},91786:(a,b,c)=>{Promise.resolve().then(c.t.bind(c,23597,23)),Promise.resolve().then(c.t.bind(c,36893,23)),Promise.resolve().then(c.t.bind(c,89748,23)),Promise.resolve().then(c.t.bind(c,6060,23)),Promise.resolve().then(c.t.bind(c,7184,23)),Promise.resolve().then(c.t.bind(c,69576,23)),Promise.resolve().then(c.t.bind(c,73041,23)),Promise.resolve().then(c.t.bind(c,51384,23))},94260:(a,b,c)=>{"use strict";c.d(b,{$:()=>i});var d=c(21124);c(38301);var e=c(26691),f=c(35595),g=c(17793);let h=(0,e.F)("inline-flex items-center justify-center px-4 py-2 rounded-md font-medium transition-all duration-200 touch-manipulation focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 ring-offset-background",{variants:{variant:{primary:"bg-accent-600 dark:bg-accent-500 text-white hover:bg-accent-700 dark:hover:bg-accent-600",secondary:"bg-muted text-foreground hover:bg-muted/80",danger:"bg-danger text-white hover:bg-danger/90",ghost:"bg-transparent text-foreground hover:bg-muted"},size:{sm:"px-3 py-1.5 text-sm",md:"",lg:"px-6 py-3 text-lg"},fullWidth:{true:"w-full",false:""}},defaultVariants:{variant:"primary",size:"md",fullWidth:!1}});function i({variant:a="primary",size:b="md",fullWidth:c=!1,loading:e=!1,disabled:i,className:j="",children:k,...l}){let m=i||e,n=(0,f.cn)(h({variant:a,size:b,fullWidth:c}),!m&&"motion-safe:hover:-translate-y-0.5 motion-safe:active:translate-y-0",m&&"opacity-50 cursor-not-allowed",j);return(0,d.jsxs)("button",{className:n,disabled:m,...l,children:[e&&(0,d.jsx)(g.y,{size:"sm",className:"-ml-1 mr-2"}),k]})}},94650:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>e});var d=c(97523);let e=async a=>[{type:"image/png",sizes:"180x180",url:(0,d.fillMetadataSegment)(".",await a.params,"apple-icon.png")+"?31a89e65aa4ac65b"}]},95427:(a,b,c)=>{"use strict";c.d(b,{r:()=>e});var d=c(38301);function e(a={}){let{active:b=!0,initialFocus:c=!0,restoreFocus:f=!0}=a;return(0,d.useRef)(null)}},95779:(a,b,c)=>{"use strict";c.d(b,{S:()=>k});var d=c(21124),e=c(38301),f=c.n(e),g=c(89339),h=c(51881),i=c(71613),j=c(35595);let k=f().forwardRef(({className:a,...b},c)=>(0,d.jsx)(g.bL,{ref:c,className:(0,j.cn)("peer inline-flex h-4 w-4 shrink-0 cursor-pointer items-center justify-center rounded-sm border border-input bg-surface text-surface-foreground shadow-sm transition-colors","focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2","disabled:cursor-not-allowed disabled:opacity-50","data-[state=checked]:border-accent-600 data-[state=checked]:bg-accent-600 data-[state=checked]:text-white","data-[state=indeterminate]:border-accent-600 data-[state=indeterminate]:bg-accent-600 data-[state=indeterminate]:text-white",a),...b,children:(0,d.jsx)(g.C1,{className:"flex items-center justify-center text-current",children:"indeterminate"===b.checked?(0,d.jsx)(h.A,{className:"h-3 w-3",strokeWidth:3,"aria-hidden":"true"}):(0,d.jsx)(i.A,{className:"h-3 w-3",strokeWidth:3,"aria-hidden":"true"})})}));k.displayName="Checkbox"},96823:(a,b,c)=>{"use strict";c.d(b,{Ql:()=>f,qG:()=>e});var d=c(38301);function e(){let[a,b]=(0,d.useState)(!0);return{enabled:a,setEnabled:(0,d.useCallback)(a=>{b(a)},[])}}function f(){let[a,b]=(0,d.useState)(!1);return{enabled:a,setEnabled:(0,d.useCallback)(a=>{b(a)},[])}}},96908:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>h});var d=c(21124),e=c(38301),f=c(20481),g=c(35914);function h({error:a,reset:b}){let c=(0,f.c)("error"),h=(0,f.c)("common"),i=(0,g.oz)(a),[j,k]=(0,e.useState)(!1),l=c(j?"chunkOffline.title":i?"chunkReload.title":"unexpected.title"),m=c(j?"chunkOffline.description":i?"chunkReload.description":"unexpected.description");return(0,d.jsxs)("main",{"data-testid":"app-error","data-error-kind":j?"chunk-offline":i?"chunk-reload":"unexpected",className:"flex min-h-full flex-col items-center justify-center gap-6 bg-background px-6 pt-safe pb-safe text-center",children:[(0,d.jsxs)("div",{className:"space-y-2",children:[(0,d.jsx)("h1",{className:"text-2xl font-semibold text-foreground",children:l}),(0,d.jsx)("p",{className:"mx-auto max-w-sm text-sm text-muted-foreground",children:m}),j&&(0,d.jsx)("p",{className:"mx-auto max-w-sm text-xs text-muted-foreground",role:"status","aria-live":"polite",children:c("chunkOffline.waiting")})]}),(0,d.jsx)("button",{type:"button",onClick:i&&!j?()=>window.location.reload():b,className:"rounded-lg bg-accent-600 px-4 py-2 text-sm font-medium text-white transition-colors hover:bg-accent-700",children:h(i&&!j?"reload":"retry")})]})}c(38557)},98033:(a,b,c)=>{"use strict";c.d(b,{a:()=>o});var d=c(21124),e=c(38301),f=c(23312),g=c(20481),h=c(26691),i=c(11010),j=c(58970),k=c(6074),l=c(95427),m=c(35595);let n=(0,h.F)("",{variants:{size:{sm:"max-w-[calc(100vw-2rem)] sm:max-w-md",md:"max-w-[calc(100vw-2rem)] sm:max-w-2xl",lg:"max-w-[calc(100vw-2rem)] sm:max-w-4xl",xl:"max-w-[calc(100vw-2rem)] sm:max-w-6xl",full:"max-w-[calc(100vw-2rem)] sm:max-w-[95vw]"}},defaultVariants:{size:"lg"}});function o({isOpen:a,onClose:b,title:c,children:h,size:o="lg",showCloseButton:p=!0,disableClose:q=!1}){let r=(0,g.c)("common"),s=(0,e.useId)(),t=(0,l.r)({active:a}),{shouldRender:u,isExiting:v}=(0,k.O)(a,j.Ys),w=v?"closed":"open",x=(0,e.useRef)(!1),y=(0,e.useRef)(!1);return u?(0,f.createPortal)((0,d.jsxs)("div",{className:"fixed inset-0 overflow-y-auto",style:{zIndex:i.M.MODAL},children:[(0,d.jsx)("div",{"data-state":w,"aria-hidden":"true",className:"fixed inset-0 bg-black/50 transition-opacity data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:duration-200 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:duration-200 data-[state=closed]:fill-mode-forwards"}),(0,d.jsx)("div",{"data-testid":"modal-backdrop-surface",className:"relative flex min-h-full items-center justify-center p-2 sm:p-4",onMouseDown:a=>{x.current=a.target===a.currentTarget},onMouseUp:a=>{y.current=a.target===a.currentTarget},onClick:a=>{let c=x.current,d=y.current;x.current=!1,y.current=!1,c&&d&&!q&&!v&&a.target===a.currentTarget&&b()},children:(0,d.jsxs)("div",{ref:t,"data-state":w,"data-testid":"modal-panel",role:"dialog","aria-modal":"true","aria-labelledby":c?s:void 0,tabIndex:-1,className:(0,m.cn)("relative w-full",n({size:o}),"max-h-[calc(100vh-1rem)] sm:max-h-[calc(100vh-2rem)] flex flex-col bg-surface rounded-lg shadow-xl transform transition-all","data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95 data-[state=open]:duration-200","data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=closed]:duration-200 data-[state=closed]:fill-mode-forwards"),children:[(c||p)&&(0,d.jsxs)("div",{className:"flex items-center justify-between px-4 sm:px-6 py-3 sm:py-4 border-b border-border flex-shrink-0",children:[(0,d.jsx)("h3",{id:s,className:"text-base sm:text-lg font-semibold text-foreground truncate pr-2",children:c}),p&&(0,d.jsx)("button",{onClick:b,"aria-label":r("close"),className:"text-muted-foreground hover:text-foreground transition-colors flex-shrink-0 touch-manipulation",children:(0,d.jsx)("svg",{className:"w-5 h-5 sm:w-6 sm:h-6",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,d.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M6 18L18 6M6 6l12 12"})})})]}),(0,d.jsx)("div",{className:"px-4 sm:px-6 py-3 sm:py-4 overflow-y-auto flex-1 min-h-0",children:h})]})})]}),document.body):null}},99127:(a,b,c)=>{var d={"./en/notifications.json":[49358,9358],"./ja/notifications.json":[61296,1296]};function e(a){if(!c.o(d,a))return Promise.resolve().then(()=>{var b=Error("Cannot find module '"+a+"'");throw b.code="MODULE_NOT_FOUND",b});var b=d[a],e=b[0];return c.e(b[1]).then(()=>c.t(e,19))}e.keys=()=>Object.keys(d),e.id=99127,a.exports=e}};
|