commandmate 0.35.0 → 0.36.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 +328 -319
- package/.next/app-path-routes-manifest.json +26 -26
- package/.next/build-manifest.json +5 -5
- package/.next/prerender-manifest.json +9 -9
- package/.next/required-server-files.json +1 -1
- package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/server/app/api/agents/update/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/agents/versions/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/app/update/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/app/update-check/route.js +1 -1
- package/.next/server/app/api/app/update-check/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/assistant/conversation/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/assistant/current-output/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/assistant/messages/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/assistant/session/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/assistant/start/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/assistant/terminal/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/assistant/tools/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/auth/login/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/auth/logout/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/auth/status/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/capabilities/route.js +1 -1
- package/.next/server/app/api/capabilities/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/daily-summary/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/daily-summary/status/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/external-apps/[id]/health/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/external-apps/[id]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/external-apps/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/fs/browse/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/fs/recent-paths/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/hooks/agent-event/route_client-reference-manifest.js +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_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_client-reference-manifest.js +1 -1
- package/.next/server/app/api/relays/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/remote/pair/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/repositories/[id]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/repositories/[id]/todos/[todoId]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/repositories/[id]/todos/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/repositories/clone/[jobId]/route_client-reference-manifest.js +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_client-reference-manifest.js +1 -1
- package/.next/server/app/api/repositories/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/repositories/scan/route_client-reference-manifest.js +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_client-reference-manifest.js +1 -1
- package/.next/server/app/api/settings/default-surface-mode/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/sidebar/group-order/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/skills/[id]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/skills/installations/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/skills/operations/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/skills/reindex/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/skills/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/slash-commands/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/tasks/[taskId]/cancel/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/tasks/[taskId]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/templates/[id]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/templates/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/todos/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/verification/runs/[runId]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/verification/runs/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/auto-yes/route_client-reference-manifest.js +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_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/cli-reference/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/cli-tool/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/cmate/schedules/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/current-output/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/env/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/execution-logs/[logId]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/execution-logs/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/files/[...path]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/branch/create/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/branch/delete/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/branches/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/checkout/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/commit/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/diff/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/fetch/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/log/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/pull/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/push/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/reset/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/revert/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/show/[commitHash]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/stage/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/staged/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/stash/[index]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/stash/apply/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/stash/pop/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/stash/push/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/stash/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/status/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/unstage/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/git/working-diff/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/instances/notes/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/instances/opencode/route_client-reference-manifest.js +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_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_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_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/schedules/[scheduleId]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/schedules/active/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/schedules/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/search/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/[id]/send/route_client-reference-manifest.js +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_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_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_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_client-reference-manifest.js +1 -1
- package/.next/server/app/chat/page.js +2 -2
- package/.next/server/app/chat/page.js.nft.json +1 -1
- package/.next/server/app/chat/page_client-reference-manifest.js +1 -1
- package/.next/server/app/login/page_client-reference-manifest.js +1 -1
- package/.next/server/app/manifest.webmanifest/route_client-reference-manifest.js +1 -1
- package/.next/server/app/more/page.js +2 -2
- package/.next/server/app/more/page_client-reference-manifest.js +1 -1
- package/.next/server/app/offline/page_client-reference-manifest.js +1 -1
- package/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/server/app/proxy/[...path]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/repositories/page_client-reference-manifest.js +1 -1
- package/.next/server/app/review/page_client-reference-manifest.js +1 -1
- package/.next/server/app/sessions/page.js +2 -2
- package/.next/server/app/sessions/page.js.nft.json +1 -1
- package/.next/server/app/sessions/page_client-reference-manifest.js +1 -1
- package/.next/server/app/skills/[skillId]/page.js +1 -1
- package/.next/server/app/skills/[skillId]/page.js.nft.json +1 -1
- package/.next/server/app/skills/[skillId]/page_client-reference-manifest.js +1 -1
- package/.next/server/app/skills/installed/page_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.js +2 -2
- package/.next/server/app/worktrees/[id]/files/[...path]/page_client-reference-manifest.js +1 -1
- package/.next/server/app/worktrees/[id]/page.js +9 -22
- 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 +26 -26
- package/.next/server/chunks/1707.js +14 -0
- package/.next/server/chunks/3123.js +1 -1
- package/.next/server/chunks/3543.js +1 -1
- package/.next/server/chunks/364.js +1 -0
- package/.next/server/chunks/3945.js +1 -1
- package/.next/server/chunks/4802.js +1 -1
- package/.next/server/chunks/6130.js +1 -1
- package/.next/server/chunks/7004.js +1 -0
- package/.next/server/chunks/8142.js +1 -0
- package/.next/server/chunks/8728.js +1 -1
- package/.next/server/chunks/9123.js +1 -1
- package/.next/server/chunks/9627.js +1 -1
- package/.next/server/chunks/9701.js +1 -0
- package/.next/server/middleware-build-manifest.js +1 -1
- 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/2039-117a361f795ddc4b.js +1 -0
- package/.next/static/chunks/2053-ce3fe896ad45e50f.js +1 -0
- package/.next/static/chunks/2407-6b8ca567e18ad583.js +1 -0
- package/.next/static/chunks/3160-79d24ca264a528b9.js +1 -0
- package/.next/static/chunks/4949-d804db873cfd9310.js +1 -0
- package/.next/static/chunks/{6022-7a7d1760fc9814c7.js → 6022-d2d7bd9373ff3ae9.js} +1 -1
- package/.next/static/chunks/6983-3ed2099251793bdf.js +1 -0
- package/.next/static/chunks/934-a37509667baa86ee.js +1 -0
- package/.next/static/chunks/9526-4fe2fc64be44e5c1.js +1 -0
- package/.next/static/chunks/app/chat/page-bfc1f5bb17bd771d.js +1 -0
- package/.next/static/chunks/app/more/page-400ffa825f8f150e.js +1 -0
- package/.next/static/chunks/app/sessions/page-366edfaa0b1faad2.js +1 -0
- package/.next/static/chunks/app/skills/[skillId]/{page-844872df04f52943.js → page-ce8f6fd9e4356580.js} +1 -1
- package/.next/static/chunks/app/worktrees/[id]/page-df482ec0c378c77b.js +1 -0
- package/.next/static/chunks/{webpack-1dc9eb5ebb4fa5ff.js → webpack-0281b30457d46ebc.js} +1 -1
- package/.next/static/css/c511ecdf1e7f18a0.css +1 -0
- package/.next/trace +14 -14
- package/dist/server/src/lib/auto-yes-state.js +36 -0
- package/package.json +1 -1
- package/.next/server/chunks/120.js +0 -1
- package/.next/server/chunks/7593.js +0 -1
- package/.next/static/chunks/1191-b7dfdfe86b1d31d1.js +0 -1
- package/.next/static/chunks/2053-9ac860ab4e92ac89.js +0 -1
- package/.next/static/chunks/2407-b9001cc6041876e1.js +0 -1
- package/.next/static/chunks/4809-145884b958e7d9a6.js +0 -1
- package/.next/static/chunks/5542-b6457f305d724a6b.js +0 -1
- package/.next/static/chunks/app/chat/page-609c9a0f5ce44799.js +0 -1
- package/.next/static/chunks/app/more/page-7c5380e4a7561935.js +0 -1
- package/.next/static/chunks/app/sessions/page-6486d9a643c1dc6f.js +0 -1
- package/.next/static/chunks/app/worktrees/[id]/page-3a58ae66e203f935.js +0 -1
- package/.next/static/css/b09bede85744e1cf.css +0 -1
- /package/.next/static/{0vChXhzA5YWj3f0D6A-Cn → zNNp00FuBenN_iZtIvIBP}/_buildManifest.js +0 -0
- /package/.next/static/{0vChXhzA5YWj3f0D6A-Cn → zNNp00FuBenN_iZtIvIBP}/_ssgManifest.js +0 -0
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";exports.id=1707,exports.ids=[1707],exports.modules={722:(a,b,c)=>{c.d(b,{UI:()=>j});var d=c(38301);function e(){return{pending:0,delivered:0,prompt:0,expired:0,cancelled:0}}let f=[],g=new Map;function h(){return{open:f,counts:e()}}async function i(a,b){try{let c=await fetch(`/api/relays?worktree=${encodeURIComponent(a)}`);if(!c.ok)return;let d=await c.json();if(g.get(a)!==b)return;for(let a of(b.snapshot={open:Array.isArray(d.open)?d.open:f,counts:d.counts??e()},b.listeners))a()}catch{}}function j(a){let[b]=(0,d.useState)(h),c=(0,d.useCallback)(b=>{let c;if(!a)return()=>{};let d=((c=g.get(a))||(c={snapshot:h(),listeners:new Set,timer:null,refs:0},g.set(a,c)),c.refs+=1,null===c.timer&&(i(a,c),c.timer=setInterval(()=>void i(a,c),2e4)),c);return d.listeners.add(b),()=>{d.listeners.delete(b),function(a){let b=g.get(a);b&&(b.refs-=1,b.refs>0||(b.timer&&clearInterval(b.timer),g.delete(a)))}(a)}},[a]),e=(0,d.useCallback)(()=>a?g.get(a)?.snapshot??b:b,[a,b]),{open:f,counts:j}=(0,d.useSyncExternalStore)(c,e,e),k=(0,d.useCallback)(()=>{let b=a?g.get(a):void 0;a&&b&&i(a,b)},[a]);return(0,d.useMemo)(()=>({open:f,counts:j,owedBy:b=>f.filter(c=>c.to.worktreeId===a&&c.to.instanceId===b),awaitedBy:b=>f.filter(c=>c.from.worktreeId===a&&c.from.instanceId===b),refresh:k}),[f,j,a,k])}},1135:(a,b,c)=>{c.d(b,{tY:()=>u,XU:()=>s});var d=c(21124),e=c(38301),f=c(20481),g=c(85351),h=c(11131),i=c(50391),j=c(22631),k=c(53237);let l={mobile:{storageKey:"commandmate:mobile:opencodeQuickKeysOpen",defaultOpen:!1},desktop:{storageKey:"commandmate:desktop:opencodeQuickKeysOpen",defaultOpen:!0}},m=a=>"boolean"==typeof a;function n(a){return[h.Mx,a]}let o=[{id:"agentNext",keys:["Tab"],notation:"tab"},{id:"agentPrev",keys:["BTab"],notation:"shift+tab"},{id:"commands",keys:["C-p"],notation:"ctrl+p"},{id:"variant",keys:["C-t"],notation:"ctrl+t"}],p=[{id:"agents",keys:n("a"),notation:"ctrl+x a"},{id:"sessions",keys:n("l"),notation:"ctrl+x l"},{id:"newSession",keys:n("n"),notation:"ctrl+x n"},{id:"models",keys:n("m"),notation:"ctrl+x m"},{id:"themes",keys:n("t"),notation:"ctrl+x t"}],q=[o,p,[{id:"timeline",keys:n("g"),notation:"ctrl+x g",sessionScoped:!0},{id:"undo",keys:n("u"),notation:"ctrl+x u",sessionScoped:!0},{id:"redo",keys:n("r"),notation:"ctrl+x r",sessionScoped:!0},{id:"compact",keys:n("c"),notation:"ctrl+x c",sessionScoped:!0}],[{id:"pageUp",keys:["PageUp"],notation:"pgup"},{id:"pageDown",keys:["PageDown"],notation:"pgdn"},{id:"first",keys:["Home"],notation:"home"},{id:"last",keys:["End"],notation:"end"}]],r=q.reduce((a,b)=>a+b.length,0),s=(0,e.memo)(function({worktreeId:a,cliToolId:b,instanceId:c,hasAgentSession:h,onKeysSent:n,compact:o=!1,collapsible:p=!1,layout:s="mobile"}){let t=(0,f.c)("worktree"),{activeKey:u,markPressed:v}=(0,j.t)(),w=(0,i.B)(a,b,c,n),{open:x,toggle:y}=function(a="mobile"){let{storageKey:b,defaultOpen:c}=l[a],{value:d,setValue:f,isAvailable:g}=(0,k.V)({key:b,defaultValue:c,validate:m});return{open:d,toggle:(0,e.useCallback)(()=>f(a=>!a),[f]),isPersistent:g}}(s),z=(0,e.useId)(),A=(0,e.useCallback)(a=>{v(a.id),w([...a.keys])},[v,w]);if("opencode"!==b)return null;let B=(0,d.jsxs)("div",{className:`@container flex flex-wrap items-center gap-1.5 ${p?"px-1.5 pb-1.5":"py-1.5 bg-muted rounded-lg"}`,id:p?z:void 0,role:"toolbar","aria-label":t("opencodeQuickKeys.toolbarLabel"),"data-testid":"opencode-quick-keys",children:[p?null:(0,d.jsx)("span",{className:"text-xs text-muted-foreground mx-2",children:t("opencodeQuickKeys.caption")}),q.map((a,b)=>(0,d.jsxs)("div",{className:"flex flex-wrap items-center gap-1.5",children:[b>0?(0,d.jsx)("span",{className:"w-px h-6 bg-border mx-0.5","aria-hidden":"true"}):null,a.map(a=>{let b=t(`opencodeQuickKeys.keys.${a.id}`),c=!0===a.sessionScoped&&!h;return(0,d.jsxs)("button",{type:"button",disabled:c,className:`min-h-[44px] px-3 py-2 text-sm font-medium rounded-md
|
|
2
|
+
border border-border
|
|
3
|
+
focus:outline-none focus:ring-2 focus:ring-ring
|
|
4
|
+
transition-colors duration-75
|
|
5
|
+
disabled:opacity-50 disabled:cursor-not-allowed
|
|
6
|
+
${u===a.id?"bg-accent-500 text-white border-accent-500 scale-95":"bg-surface dark:bg-surface-2 hover:bg-muted active:bg-muted disabled:hover:bg-surface"}`,"aria-label":`${b} (${a.notation})`,title:c?t("opencodeQuickKeys.needsSession",{notation:a.notation}):`${b} — ${a.notation}`,"data-testid":`opencode-quick-key-${a.id}`,onClick:()=>A(a),children:[b,o?null:(0,d.jsx)("span",{className:"ml-1.5 text-xs text-muted-foreground hidden @min-[640px]:inline",children:a.notation})]},a.id)})]},a[0].id))]});return p?(0,d.jsxs)("div",{className:"bg-muted rounded-lg","data-testid":"opencode-quick-keys-disclosure",children:[(0,d.jsxs)("button",{type:"button",className:"w-full min-h-[44px] flex items-center gap-2 px-3 py-2 text-sm font-medium rounded-lg touch-manipulation transition-colors hover:bg-surface-2 active:bg-surface-2 focus:outline-none focus:ring-2 focus:ring-ring","aria-expanded":x,"aria-controls":z,"aria-label":x?t("opencodeQuickKeys.hideKeys"):t("opencodeQuickKeys.showKeys"),"data-testid":"opencode-quick-keys-toggle",onClick:y,children:[(0,d.jsx)(g.A,{className:`w-4 h-4 shrink-0 transition-transform duration-150 ${x?"":"-rotate-90"}`,"aria-hidden":"true"}),(0,d.jsx)("span",{children:t("opencodeQuickKeys.toolbarLabel")}),(0,d.jsx)("span",{className:"ml-auto text-xs text-muted-foreground",children:r})]}),x?B:null]}):B}),t=["variant","models","commands"].map(a=>{let b=[...o,...p].find(b=>b.id===a);if(!b)throw Error(`OpencodeQuickKeys: unknown model key id ${a}`);return b}),u=(0,e.memo)(function({worktreeId:a,cliToolId:b,instanceId:c,onKeysSent:g}){let h=(0,f.c)("worktree"),{activeKey:k,markPressed:l}=(0,j.t)(),m=(0,i.B)(a,b,c,g),n=(0,e.useCallback)(a=>{l(a.id),m([...a.keys])},[l,m]);return"opencode"!==b?null:(0,d.jsxs)("div",{"data-testid":"opencode-model-keys",role:"toolbar","aria-label":h("selectionKeys.opencodeToolbarLabel"),className:"flex flex-wrap items-center gap-1.5 rounded-lg bg-muted px-2 py-1.5",children:[(0,d.jsx)("span",{className:"text-xs text-muted-foreground",children:h("selectionKeys.opencodeCaption")}),t.map(a=>{let b=h(`opencodeQuickKeys.keys.${a.id}`);return(0,d.jsxs)("button",{type:"button","data-testid":`opencode-model-key-${a.id}`,"aria-label":`${b} (${a.notation})`,title:`${b} — ${a.notation}`,onClick:()=>n(a),className:`min-h-[44px] rounded-md border border-border px-3 py-2 text-sm font-medium transition-colors duration-75 touch-manipulation focus:outline-none focus:ring-2 focus:ring-ring ${k===a.id?"border-accent-500 bg-accent-500 text-white scale-95":"bg-surface hover:bg-muted active:bg-muted dark:bg-surface-2"}`,children:[b,(0,d.jsx)("span",{className:"ml-1.5 text-xs text-muted-foreground",children:a.notation})]},a.id)})]})})},3171:(a,b,c)=>{c.d(b,{D:()=>s});var d=c(21124),e=c(38301),f=c(20481),g=c(70584),h=c(24417),i=c(27357),j=c(82258);let k=/\x1b(?:\[[0-9;?]*)?$/;var l=c(7879);function m(a){return""===(0,l.aJ)(a).trim()}var n=c(44489),o=c(77478);function p({query:a,onQueryChange:b,matchCount:c,currentIndex:f,onNext:g,onPrev:h,onClose:i,isAtMaxMatches:j=!1}){let k=(0,e.useRef)(null),l=(0,e.useCallback)(a=>{"Escape"===a.key&&i()},[i]),m=(0,e.useCallback)(a=>{b(a.target.value)},[b]),n=0===c?"0/0":j?`${f+1}/${o.F0}以上`:`${f+1}/${c}`;return(0,d.jsxs)("div",{className:"flex items-center gap-1 px-2 py-1 bg-gray-800 border border-gray-600 rounded shadow-lg",role:"search","aria-label":"ターミナル内テキスト検索",children:[(0,d.jsx)("input",{ref:k,type:"text",value:a,onChange:m,onKeyDown:l,placeholder:"検索...",className:"bg-transparent text-gray-200 text-sm outline-none w-32 sm:w-40 placeholder-gray-500","aria-label":"検索キーワード",autoComplete:"off",autoCorrect:"off",autoCapitalize:"off",spellCheck:!1}),(0,d.jsx)("span",{role:"status","aria-live":"polite","aria-atomic":"true",className:"text-gray-400 text-xs min-w-[3rem] text-right",children:n}),(0,d.jsx)("button",{onClick:h,disabled:0===c,"aria-label":"前の結果",className:"text-gray-300 hover:text-white disabled:text-gray-600 min-w-[36px] min-h-[36px] flex items-center justify-center text-base",children:"▲"}),(0,d.jsx)("button",{onClick:g,disabled:0===c,"aria-label":"次の結果",className:"text-gray-300 hover:text-white disabled:text-gray-600 min-w-[36px] min-h-[36px] flex items-center justify-center text-base",children:"▼"}),(0,d.jsx)("button",{onClick:i,"aria-label":"検索を閉じる",className:"text-gray-400 hover:text-white min-w-[36px] min-h-[36px] flex items-center justify-center text-base ml-1",children:"✕"})]})}var q=c(84666);function r(){return(0,d.jsxs)("div",{"data-testid":"thinking-indicator",className:"flex items-center gap-2 py-2 px-1 text-gray-400",children:[(0,d.jsxs)("span",{className:"flex gap-1",children:[(0,d.jsx)("span",{className:"animate-pulse delay-0",children:"."}),(0,d.jsx)("span",{className:"animate-pulse delay-150",children:"."}),(0,d.jsx)("span",{className:"animate-pulse delay-300",children:"."})]}),(0,d.jsx)("span",{className:"text-sm",children:"Thinking"})]})}let s=(0,e.memo)(function({output:a,isActive:b,attaching:c=!1,isThinking:s=!1,autoScroll:t=!0,onScrollChange:u,disableAutoFollow:v=!1,compactTuiLayoutPadding:w=!1,preservePaintedPanelRows:x=!1,wrapMode:y="viewport",density:z="regular",className:A=""}){let B=(0,f.c)("worktree"),{scrollRef:C,autoScroll:D,handleScroll:E,scrollToBottom:F,scrollToTop:G}=function(a={}){let{initialAutoScroll:b=!0,onAutoScrollChange:c}=a,d=(0,e.useRef)(null),[f,g]=(0,e.useState)(b),h=(0,e.useRef)(!1),i=(0,e.useRef)(null),j=(0,e.useCallback)(a=>{g(a),c?.(a)},[c]),k=(0,e.useCallback)(()=>{let a=d.current;if(!a)return!0;let{scrollTop:b,scrollHeight:c,clientHeight:e}=a;return c-e-b<=50},[]),l=(0,e.useCallback)(()=>{if(h.current)return;let a=k();a&&!f?j(!0):!a&&f&&j(!1)},[f,k,j]),m=(0,e.useCallback)(()=>{let a=d.current;a&&(h.current=!0,a.scrollTo({top:a.scrollHeight,behavior:"smooth"}),f||j(!0),i.current=setTimeout(()=>{h.current=!1,i.current=null},500))},[f,j]),n=(0,e.useCallback)(()=>{let a=d.current;a&&(h.current=!0,a.scrollTo({top:0,behavior:"smooth"}),f&&j(!1),i.current=setTimeout(()=>{h.current=!1,i.current=null},500))},[f,j]);return{scrollRef:d,autoScroll:f,setAutoScroll:j,scrollToBottom:m,scrollToTop:n,handleScroll:l}}({initialAutoScroll:t,onAutoScrollChange:u}),H=a??"",I=(0,e.useMemo)(()=>w?x?(0,n.Dk)(H):function(a){if(""===a)return"";let b=a.split("\n"),c=[],d=!1,e=0;for(;e<b.length;){if(!m(b[e])){c.push(b[e]),d=!0,e++;continue}let a=e;for(;a<b.length&&m(b[a]);)a++;let f=a-e,g=!d,h=a>=b.length;if(!g&&!h)if(f<=2)for(let d=e;d<a;d++)c.push(b[d]);else c.push((0,l.x6)(b.slice(e,a).join("")));e=a}return c.join("\n")}(H):H,[w,x,H]),J=(0,e.useMemo)(()=>{if("frame"===y)return{minWidth:`${(0,q.pN)(I)}ch`}},[y,I]),{isOpen:K,query:L,matchCount:M,currentIndex:N,isAtMaxMatches:O,openSearch:P,closeSearch:Q,setQuery:R,nextMatch:S,prevMatch:T}=(0,o.Yr)({output:I,containerRef:C}),U=(0,e.useCallback)(a=>{(a.ctrlKey||a.metaKey)&&"f"===a.key&&(a.preventDefault(),P())},[P]);(0,e.useEffect)(()=>{let a=()=>P();return window.addEventListener("terminal-search-open",a),()=>window.removeEventListener("terminal-search-open",a)},[P]);let[V,W]=(0,e.useState)(()=>I?[{key:0,html:(0,i.l5)(I)}]:[]),X=(0,e.useRef)(I),Y=(0,e.useRef)(0);(0,e.useEffect)(()=>{let a=function(a,b){if(a===b)return{mode:"noop",text:b,appended:"",retainedLength:a.length};if(0===a.length||b.length<=a.length||!b.startsWith(a))return{mode:"replace",text:b,appended:"",retainedLength:0};let c=a.match(k),d=c?a.length-c[0].length:a.length;return{mode:"append",text:b,appended:b.slice(d),retainedLength:d}}(X.current,I);if(X.current=I,"noop"===a.mode)return;let b="append"===a.mode&&a.appended.length>j.ZJ;if("append"===a.mode&&!b)return void W(b=>(Y.current+=1,b.length>=400)?[{key:Y.current,html:(0,i.l5)(I)}]:[...b,{key:Y.current,html:(0,i.l5)(a.appended)}]);Y.current+=1,W(I?[{key:Y.current,html:(0,i.l5)(I)}]:[])},[I]);let[Z,$]=(0,e.useState)(!1);(0,e.useEffect)(()=>{c?$(!1):b&&$(!0)},[c,b]);let _=!a,aa=_&&c,ab=_&&!c&&!b&&Z,ac=(0,e.useRef)(!1);(0,e.useEffect)(()=>{v&&(ac.current=!0)},[v]),(0,e.useEffect)(()=>{if(C.current){if(ac.current&&v&&I){C.current.scrollTo({top:0,behavior:"instant"}),ac.current=!1;return}!v&&D&&C.current.scrollTo({top:C.current.scrollHeight,behavior:"instant"})}},[V,I,D,v,C]);let ad=(0,e.useMemo)(()=>["terminal","font-mono","compact"===z?"text-xs":"text-sm","compact"===z?"p-2":"p-4","rounded-lg","overflow-y-auto","frame"===y?"overflow-x-auto":"overflow-x-hidden","bg-gray-900","text-gray-300","border","border-gray-700","h-full",b?"active":"",A].filter(Boolean).join(" "),[b,A,y,z]),[ae,af]=(0,e.useState)(!1),ag=(0,e.useRef)(null),ah=(0,e.useCallback)(()=>{af(!0),ag.current&&clearTimeout(ag.current),ag.current=setTimeout(()=>af(!1),1500)},[]);(0,e.useEffect)(()=>()=>{ag.current&&clearTimeout(ag.current)},[]);let ai=(0,e.useCallback)(()=>{E(),ah()},[E,ah]),aj=["absolute bottom-4 right-4 flex items-center justify-center h-9 w-9 rounded-full bg-surface/80 backdrop-blur border border-border text-muted-foreground shadow-lg transition-opacity hover:text-surface-foreground hover:opacity-100 focus-visible:opacity-100 focus:outline-none focus-visible:ring-2 focus-visible:ring-ring",ae?"opacity-100":"opacity-60"].join(" ");return(0,d.jsxs)("div",{className:"relative h-full flex flex-col",children:[K&&(0,d.jsx)("div",{className:"absolute top-2 right-2 z-10",children:(0,d.jsx)(p,{query:L,onQueryChange:R,matchCount:M,currentIndex:N,onNext:S,onPrev:T,onClose:Q,isAtMaxMatches:O})}),(0,d.jsxs)("div",{ref:C,role:"log","aria-live":"polite","aria-label":"Terminal output",className:ad,onScroll:ai,onKeyDown:U,tabIndex:0,children:[(0,d.jsx)("div",{className:"frame"===y?"whitespace-pre w-max":"whitespace-pre-wrap break-words",style:J,children:V.map(a=>(0,d.jsx)("span",{dangerouslySetInnerHTML:{__html:a.html}},a.key))}),aa&&(0,d.jsx)("div",{"data-testid":"terminal-loading-placeholder",className:"flex h-full items-center justify-center px-4 text-center text-sm text-gray-500 select-none",children:B("terminal.loading")}),ab&&(0,d.jsx)("div",{"data-testid":"terminal-ended-placeholder",className:"flex h-full items-center justify-center px-4 text-center text-sm text-gray-500 select-none",children:B("terminal.sessionEnded")}),b&&s&&(0,d.jsx)(r,{})]}),D?(0,d.jsx)("button",{type:"button",onClick:G,className:aj,"aria-label":"Scroll to top",children:(0,d.jsx)(g.A,{size:16,"aria-hidden":"true"})}):(0,d.jsx)("button",{type:"button",onClick:F,className:aj,"aria-label":"Scroll to bottom",children:(0,d.jsx)(h.A,{size:16,"aria-hidden":"true"})})]})})},3754:(a,b,c)=>{c.d(b,{cV:()=>j,g6:()=>i});var d=c(21124),e=c(38301),f=c(35550),g=c(24761),h=c(70107);let i="worktree-history-pane",j=(0,e.memo)(function({history:a,terminal:b}){let{visible:c,width:j,setWidth:k}=(0,g.TG)(),l=(0,e.useRef)(null),m=(0,e.useCallback)(a=>{let b=l.current;if(!b)return;let c=b.offsetWidth;0!==c&&k(j+a/c*100)},[j,k]);return(0,d.jsxs)("div",{ref:l,className:"flex h-full min-h-0 w-full",children:[null!=a&&(c?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("div",{id:i,"data-testid":"terminal-container-history-slot","aria-label":"History pane",style:{width:`${j}%`},className:"flex-shrink-0 overflow-hidden transition-[width] duration-200 ease-in-out",children:(0,d.jsx)(f.t,{componentName:"HistoryPane",children:a})}),(0,d.jsx)(h.f,{onResize:m,orientation:"horizontal",ariaValueNow:j})]}):null),(0,d.jsx)("div",{"data-testid":"terminal-container-terminal-slot","aria-label":"Terminal pane",className:"flex-grow overflow-hidden min-w-0",children:(0,d.jsx)(f.t,{componentName:"TerminalAndFilePanel",children:b})})]})})},7879:(a,b,c)=>{c.d(b,{aJ:()=>g,wJ:()=>h,x6:()=>i});let d="\\x1b\\][^\\x07\\x1b]*(?:\\x07|\\x1b\\\\)",e=RegExp(d,"g"),f=RegExp(`\\x1b\\[[0-9;]*[a-zA-Z]|${d}|\\[[0-9;]*m`,"g");function g(a){return a.replace(f,"")}function h(a){return a.replace(e,"")}function i(a){let b=a.match(f);return b?b.join(""):""}},8842:(a,b,c)=>{c.d(b,{B7:()=>f,CK:()=>n,JD:()=>h,ML:()=>m,UY:()=>k,hM:()=>g});var d=c(65468),e=c(40922);let f=8,g=120,h=40,i={variant:"none",startedAtMs:null};function j(a){return`${a.cliToolId??""}|${a.instanceId??""}`}function k(a){let b,c=function(a){let b=[],c=[],d=[],f=!1,g=()=>{b.push(...c,...d),c=[],d=[]};for(let h of a){if("user"===h.role&&!(0,e.nY)(h)){g(),b.push(h);continue}if(!(0,e.nY)(h)){d.push(h);continue}d.length>0&&(f=!0),c.push(h)}return g(),f?b:a}(a),f=function(a){let b=new Map;for(let c of a){if("user"!==c.role||(0,e.nY)(c)||c.optimisticState||c.archived)continue;let a=c.requestId;if("string"!=typeof a||0===a.length)continue;if(b.has(a)){b.set(a,null);continue}let d=c.timestamp instanceof Date?c.timestamp.getTime():NaN;b.set(a,Number.isFinite(d)?{atMs:d,scope:j(c)}:null)}return b}(c),g=[],h=function(a){let b=new Map,c=0,d=!1;for(let f of a){if(!(0,e.nY)(f)){d=!1;continue}d||(c+=1,d=!0),b.has(f.id)||b.set(f.id,c)}return b}(a),k=[],l=null,m=null,n=()=>{0!==k.length&&(g.push({kind:"approvals",key:`approvals:${k[0].id}`,entries:(0,e.GV)(k,{runIds:h})}),k=[])};for(let a of c){var o;if((0,e.nY)(a)){k.push(a);continue}n();let c=!(o=b)||o.role!==a.role,h=i;if("assistant"!==a.role)l=null,m=null,c&&(h={variant:"role",startedAtMs:null});else{let b=j(a);(c||m!==b)&&(l=null),m=b;let e=(0,d.Qu)(a.requestId),g=function(a,b,c){if(null===b)return null;let e=(0,d.QN)(b);if(null===e)return null;let f=c.get(e);if(!f||f.scope!==j(a))return null;let g=a.timestamp instanceof Date?a.timestamp.getTime():NaN;return!Number.isFinite(g)||f.atMs>g?null:f.atMs}(a,e,f);c?h={variant:"role",startedAtMs:g}:null!==e&&null!==l&&e!==l&&(h={variant:"time",startedAtMs:g}),null!==e&&(l=e)}g.push({kind:"message",key:a.id,message:a,showHeader:c,header:h}),b=a}return n(),g}let l=/(^|[\s`"'(\[<(「『【])(\/[^\s\n<>"']+\.[a-zA-Z0-9]+)/g;function m(a){if("string"!=typeof a||0===a.length)return[{type:"text",content:""}];let b=[],c=0;for(let d of a.matchAll(l)){let e=d[1]??"",f=d[2];if(!f)continue;let g=(d.index??0)+e.length;g>c&&b.push({type:"text",content:a.slice(c,g)}),b.push({type:"path",content:f}),c=g+f.length}return 0===b.length?[{type:"text",content:a}]:(c<a.length&&b.push({type:"text",content:a.slice(c)}),b)}function n(a){return!a||"assistant"!==a.role}},10063:(a,b,c)=>{c.d(b,{$B:()=>l,$s:()=>i,Ni:()=>h,P0:()=>j,eJ:()=>k,t6:()=>g,z9:()=>f});var d=c(30868),e=c.n(d);let f=[36e5,108e5,288e5],g=36e5,h={36e5:"autoYes.durations.1h",108e5:"autoYes.durations.3h",288e5:"autoYes.durations.8h"},i=1e3;function j(a){if(a.length>500)return{valid:!1,error:"Pattern must be 500 characters or less"};if(!e()(a))return{valid:!1,error:"Pattern may cause performance issues (catastrophic backtracking detected)"};try{return new RegExp(a),{valid:!0}}catch{return{valid:!1,error:"Invalid regular expression syntax"}}}function k(a,b,c=100){try{return a.test(b)}catch{return null}}function l(a){let b=Math.max(0,a-Date.now()),c=Math.floor(b/36e5),d=Math.floor(b%36e5/6e4),e=Math.floor(b%6e4/1e3);return c>0?`${c}:${d.toString().padStart(2,"0")}:${e.toString().padStart(2,"0")}`:`${d.toString().padStart(2,"0")}:${e.toString().padStart(2,"0")}`}},11131:(a,b,c)=>{c.d(b,{Mx:()=>g,mE:()=>d,qL:()=>f});let d="s",e=["Up","Down","Left","Right","Enter","Escape","Tab","BTab","PageUp","PageDown","Home","End","q","1","2","3","4","5","6","7","8","9","y","n"];[...e];let f=["claude","command-code"],g="C-x",h=["C-p","C-t"],i=["a","l","t","m","g","u","r","c"];[...e,...h,...i],[...e,...h,...i]},11801:(a,b,c)=>{c.d(b,{UK:()=>g,dl:()=>d,gP:()=>h,v8:()=>e,wP:()=>f});let d=[50,100,150,200,250,500,1e3],e=50,f="commandmate:historyDisplayLimit";function g(a){return d.includes(a)}let h="commandmate:historyUserOnly"},12178:(a,b,c)=>{c.d(b,{U:()=>k});var d=c(21124),e=c(38301),f=c(50391),g=c(22631);let h=[{key:"Left",label:"◀",ariaLabel:"Send Left"},{key:"Up",label:"▲",ariaLabel:"Send Up"},{key:"Down",label:"▼",ariaLabel:"Send Down"},{key:"Right",label:"▶",ariaLabel:"Send Right"},{key:"Enter",label:"↵",ariaLabel:"Send Enter"}],i={key:"Escape",label:"Esc",ariaLabel:"Send Escape"},j={key:"q",label:"q",ariaLabel:"Send q (quit)"};function k({worktreeId:a,cliToolId:b,instanceId:c,onKeysSent:k}){let{activeKey:l,markPressed:m}=(0,g.t)(),n=(0,f.B)(a,b,c,k),o="codex"===b?[...h,i,j]:[...h,i],p=(0,e.useCallback)(a=>{m(a),n([a])},[m,n]);return(0,d.jsxs)("div",{className:"flex flex-wrap items-center gap-1.5 py-1.5 bg-amber-50 dark:bg-amber-900/20 border border-amber-200 dark:border-amber-800/50 rounded-lg",role:"toolbar","aria-label":"Terminal navigation keys",children:[(0,d.jsx)("span",{className:"text-xs text-amber-700 dark:text-amber-400 mx-2",title:"Send navigation / escape keys when the terminal is stuck in a TUI overlay",children:"Navigate"}),o.map(({key:a,label:b,ariaLabel:c})=>(0,d.jsx)("button",{type:"button",className:`min-w-[44px] min-h-[44px] px-3 py-2 text-sm font-medium rounded-md
|
|
7
|
+
border border-amber-300 dark:border-amber-700
|
|
8
|
+
focus:outline-none focus:ring-2 focus:ring-amber-500
|
|
9
|
+
transition-colors duration-75
|
|
10
|
+
${l===a?"bg-amber-500 text-white border-amber-500 scale-95":"bg-white dark:bg-gray-700 hover:bg-amber-50 dark:hover:bg-gray-600 active:bg-amber-100 dark:active:bg-gray-500"}`,"aria-label":c,onClick:()=>p(a),children:b},a))]})}},12712:(a,b,c)=>{c.d(b,{T:()=>m});var d=c(21124),e=c(38301),f=c(20481),g=c(74892),h=c(98033),i=c(10063);function j({isOpen:a,onConfirm:b,onCancel:c,cliToolName:g}){let j=(0,f.c)("autoYes"),k=(0,f.c)("common"),[l,m]=(0,e.useState)(i.t6),[n,o]=(0,e.useState)(""),[p,q]=(0,e.useState)(null),[r,s]=(0,e.useState)(!1),t=(0,e.useRef)(null),u=a=>j(i.Ni[a].replace("autoYes.",""));return(0,d.jsx)(h.a,{isOpen:a,onClose:c,title:g?j("enableTitleWithTool",{toolName:g}):j("enableTitle"),size:"sm",showCloseButton:!0,children:(0,d.jsxs)("div",{className:"space-y-4",children:[(0,d.jsxs)("div",{className:"text-sm text-foreground",children:[(0,d.jsx)("p",{className:"font-medium mb-2",children:j("featureDescription")}),(0,d.jsxs)("ul",{className:"list-disc list-inside space-y-1",children:[(0,d.jsx)("li",{children:j("yesNoAutoResponse")}),(0,d.jsx)("li",{children:j("multipleChoiceAutoSelect")})]}),(0,d.jsx)("p",{className:"mt-1",children:j("autoDisableAfter",{duration:u(l)})}),g&&(0,d.jsx)("p",{className:"mt-2 text-muted-foreground",children:j("appliesOnlyToCurrent",{toolName:g})})]}),(0,d.jsxs)("div",{className:"text-sm text-foreground",children:[(0,d.jsx)("p",{className:"font-medium mb-2",children:j("duration")}),(0,d.jsx)("div",{className:"flex gap-2",children:i.z9.map(a=>(0,d.jsx)("button",{type:"button",onClick:()=>m(a),className:`flex-1 py-2 px-3 text-sm font-medium rounded-md border-2 transition-colors ${l===a?"border-accent-600 bg-accent-50 dark:bg-accent-900/30 text-accent-700 dark:text-accent-400":"border-border bg-surface dark:bg-surface-2 text-foreground hover:border-muted-foreground"}`,style:{minHeight:"44px"},children:u(a)},a))})]}),(0,d.jsxs)("div",{className:"text-sm text-foreground",children:[(0,d.jsxs)("div",{className:"flex items-center gap-1.5 mb-1",children:[(0,d.jsx)("label",{htmlFor:"stop-pattern-input",className:"font-medium",children:j("stopPatternLabel")}),(0,d.jsxs)("div",{className:"relative",ref:t,children:[(0,d.jsx)("button",{type:"button",onClick:()=>s(!r),className:"inline-flex items-center justify-center w-4 h-4 rounded-full bg-muted text-muted-foreground text-[10px] font-bold hover:bg-muted/80 focus:outline-none","aria-label":j("regexTipsLabel"),"data-testid":"regex-tips-button",children:"?"}),r&&(0,d.jsxs)("div",{className:"absolute left-0 top-6 z-50 w-72 rounded-md border border-border bg-surface p-3 shadow-lg text-xs text-foreground","data-testid":"regex-tips-tooltip",children:[(0,d.jsx)("p",{className:"font-medium mb-1.5",children:j("regexTipsTitle")}),(0,d.jsxs)("ul",{className:"space-y-1",children:[(0,d.jsxs)("li",{children:[(0,d.jsx)("code",{className:"bg-muted px-1 rounded",children:"\\bcat\\b"})," ",j("regexTipWordBoundary")]}),(0,d.jsxs)("li",{children:[(0,d.jsx)("code",{className:"bg-muted px-1 rounded",children:"error|fatal"})," ",j("regexTipOr")]}),(0,d.jsxs)("li",{children:[(0,d.jsx)("code",{className:"bg-muted px-1 rounded",children:"(?i)error"})," ",j("regexTipCaseNote")]})]})]})]})]}),(0,d.jsx)("p",{className:"text-xs text-muted-foreground mb-2",children:j("stopPatternDescription")}),(0,d.jsx)("input",{id:"stop-pattern-input",type:"text",value:n,onChange:a=>o(a.target.value),placeholder:j("stopPatternPlaceholder"),className:`w-full px-3 py-2 border rounded-md text-sm font-mono bg-surface dark:bg-surface-2 text-foreground ${p?"border-danger focus:ring-danger focus:border-danger":"border-input focus:ring-ring focus:border-accent-500"} focus:outline-none focus:ring-1`,"data-testid":"stop-pattern-input"}),p&&(0,d.jsx)("p",{className:"mt-1 text-xs text-danger","data-testid":"stop-pattern-error",children:p})]}),(0,d.jsxs)("div",{className:"text-sm text-foreground",children:[(0,d.jsx)("p",{className:"font-medium mb-2",children:j("aboutRisks")}),(0,d.jsx)("p",{children:j("riskWarning")})]}),(0,d.jsx)("div",{className:"bg-warning-subtle border-l-4 border-warning p-3",children:(0,d.jsxs)("p",{className:"text-sm text-warning-foreground",children:[(0,d.jsx)("span",{className:"font-medium",children:j("disclaimer")}),j("disclaimerText")]})}),(0,d.jsxs)("div",{className:"flex justify-end gap-3 pt-2",children:[(0,d.jsx)("button",{type:"button",onClick:c,className:"px-4 py-2 text-sm font-medium rounded-md bg-muted hover:bg-muted/80 text-foreground",children:k("cancel")}),(0,d.jsx)("button",{type:"button",onClick:()=>{b(l,n.trim()||void 0)},disabled:!!p,className:`px-4 py-2 text-sm font-medium rounded-md text-white ${p?"bg-muted-foreground cursor-not-allowed":"bg-warning hover:bg-warning/90"}`,"data-testid":"confirm-button",children:j("agreeAndEnable")})]})]})})}var k=c(58970),l=c(17252);let m=(0,e.memo)(function({enabled:a,expiresAt:b,onToggle:c,lastAutoResponse:h,cliToolName:m,inline:n=!1,showToolName:o=!0,onExpire:p}){let q=(0,f.c)("autoYes"),[r,s]=(0,e.useState)(""),[t,u]=(0,e.useState)(null),[v,w]=(0,e.useState)(!1),[x,y]=(0,e.useState)(!1),[z,A]=(0,e.useState)(!1);(0,e.useEffect)(()=>{if(!a||!b){s(""),A(!1);return}A(!1);let c=!1,d=()=>(s((0,i.$B)(b)),b-Date.now()<=0&&!c&&(c=!0,A(!0),p?.(),!0));if(d())return;let e=setInterval(()=>{d()&&clearInterval(e)},i.$s);return()=>clearInterval(e)},[a,b,p]),(0,e.useEffect)(()=>{if(!h)return;u(`Auto responded: "${h}"`);let a=setTimeout(()=>u(null),k.I2);return()=>clearTimeout(a)},[h]);let B=a&&!z,C=(0,e.useCallback)(()=>{B?(w(!0),c({enabled:!1}).finally(()=>w(!1))):y(!0)},[B,c]),D=(0,e.useCallback)((a,b)=>{y(!1),w(!0),c({enabled:!0,duration:a,stopPattern:b}).finally(()=>w(!1))},[c]),E=(0,e.useCallback)(()=>{y(!1)},[]);return(0,d.jsxs)("div",{className:n?"flex items-center gap-2":"flex items-center gap-3 px-4 py-2 bg-surface-2 border-b border-border",children:[(0,d.jsx)(g.d,{checked:B,onCheckedChange:C,disabled:v,"aria-label":q("toggleLabel")}),(0,d.jsx)("span",{className:"text-sm font-medium text-foreground",children:q("label")}),o&&m&&(0,d.jsxs)("span",{className:"text-xs text-accent-600 dark:text-accent-400 font-medium","aria-label":q("targetLabel"),children:["(",(0,l.f_)(m,""),")"]}),B&&r&&(0,d.jsx)("span",{className:"text-sm text-muted-foreground","aria-label":q("timeRemaining"),children:r}),t&&(0,d.jsx)("span",{className:"text-sm text-success animate-pulse",children:t}),(0,d.jsx)(j,{isOpen:x,onConfirm:D,onCancel:E,cliToolName:(0,l.f_)(m,"")})]})})},13074:(a,b,c)=>{c.d(b,{O:()=>h,k:()=>g});var d=c(38301);let e=Object.freeze({}),f=(0,d.createContext)(e),g=f.Provider;function h(){return(0,d.useContext)(f)}},20203:(a,b,c)=>{c.d(b,{D:()=>d});function d(a,b,c){let d=new TextEncoder;if(d.encode(a).length<=b)return a;let e=b-d.encode(c).length,f=0,g="";for(let b of a){let a=d.encode(b).length;if(f+a>e)break;f+=a,g+=b}return`${g}${c}`}},22631:(a,b,c)=>{c.d(b,{t:()=>f});var d=c(38301),e=c(58970);function f(){let[a,b]=(0,d.useState)(null),c=(0,d.useRef)(null);return{activeKey:a,markPressed:(0,d.useCallback)(a=>{b(a),null!==c.current&&clearTimeout(c.current),c.current=setTimeout(()=>{c.current=null,b(null)},e.tX)},[])}}},24761:(a,b,c)=>{c.d(b,{Ce:()=>i,TG:()=>h,jt:()=>f,sg:()=>g});var d=c(38301);let e={visible:"commandmate.worktree.historyVisible",width:"commandmate.worktree.historyWidth"},f={visible:"commandmate.sessions.tileHistoryVisible",width:"commandmate.sessions.tileHistoryWidth"},g=40;function h(a=e){let{visible:b,width:c}=a,[f,i]=(0,d.useState)(!0),[j,k]=(0,d.useState)(g),l=(0,d.useRef)(f);l.current=f;let m=(0,d.useRef)(j);return m.current=j,{visible:f,width:j,toggle:(0,d.useCallback)(()=>{let a=!l.current;i(a),m.current},[b]),setWidth:(0,d.useCallback)(a=>{let b=Number.isFinite(a)?Math.min(60,Math.max(10,a)):g;k(b),l.current},[b,c])}}function i(a){return`split-history-slot-${a}`}},27357:(a,b,c)=>{c.d(b,{l5:()=>l});var d=c(3350),e=c.n(d),f=c(19331),g=c.n(f),h=c(82258),i=c(7879);let j=new(g())({fg:"#d1d5db",bg:"#1f2937",newline:!0,escapeXML:!0}),k=/[\x40-\x7e]/;function l(a){let b=function(a){if(a.length<=h.ZJ)return a;let b=h.ED+"\n",c=h.ZJ-b.length;if(c<=0)return h.ED.slice(0,h.ZJ);let d=a.length-c,e=a.indexOf("\n",d);if(-1!==e&&e-d<=h.yi)return b+a.slice(e+1);let f=function(a,b){let c=a.lastIndexOf("\x1b",b-1);if(-1===c)return b;let d=a.slice(c+1,b);if(k.test(d.slice(1)))return b;for(let c=b;c<a.length;c++)if(k.test(a[c]))return c+1;return a.length}(a,d),g=a.charCodeAt(f);return g>=56320&&g<=57343&&(f+=1),b+a.slice(f)}(a.replace(/\0/g,"")),c=(0,i.wJ)(b),d=j.toHtml(c);return e().sanitize(d,{ALLOWED_TAGS:["span","br"],ALLOWED_ATTR:["style"],ALLOW_DATA_ATTR:!1})}},27412:(a,b,c)=>{c.d(b,{Y:()=>h});var d=c(21124),e=c(38301),f=c(20481),g=c(77478);function h({query:a,onQueryChange:b,matchCount:c,currentIndex:h,onNext:i,onPrev:j,onClose:k,isAtMaxMatches:l,onCompositionStart:m,onCompositionEnd:n}){let o=(0,e.useRef)(null),p=(0,f.c)("worktree"),q=(0,e.useCallback)(a=>{"Escape"===a.key&&k()},[k]),r=(0,e.useCallback)(a=>{b(a.target.value)},[b]),s=0===c?"0/0":l?p("history.search.countAtMax",{current:h+1,max:g.F0}):`${h+1}/${c}`;return(0,d.jsxs)("div",{className:"flex items-center gap-1 px-2 py-1 bg-surface border border-border rounded shadow-lg",role:"search","aria-label":p("history.search.regionLabel"),children:[(0,d.jsx)("input",{ref:o,type:"text",value:a,onChange:r,onKeyDown:q,onCompositionStart:m,onCompositionEnd:n,placeholder:p("history.search.placeholder"),className:"bg-transparent text-foreground text-sm outline-none w-32 sm:w-40 placeholder-muted-foreground","aria-label":p("history.search.keywordLabel"),autoComplete:"off",autoCorrect:"off",autoCapitalize:"off",spellCheck:!1}),(0,d.jsx)("span",{role:"status","aria-live":"polite","aria-atomic":"true",className:"text-muted-foreground text-xs min-w-[3rem] text-right",children:s}),(0,d.jsx)("button",{type:"button",onClick:j,disabled:0===c,"aria-label":p("history.search.prev"),className:"text-muted-foreground hover:text-foreground disabled:opacity-40 min-w-[36px] min-h-[36px] flex items-center justify-center text-base",children:"▲"}),(0,d.jsx)("button",{type:"button",onClick:i,disabled:0===c,"aria-label":p("history.search.next"),className:"text-muted-foreground hover:text-foreground disabled:opacity-40 min-w-[36px] min-h-[36px] flex items-center justify-center text-base",children:"▼"}),(0,d.jsx)("button",{type:"button",onClick:k,"aria-label":p("history.search.close"),className:"text-muted-foreground hover:text-foreground min-w-[36px] min-h-[36px] flex items-center justify-center text-base ml-1",children:"✕"})]})}},29460:(a,b,c)=>{c.d(b,{w:()=>f});var d=c(38301),e=c(77478);function f({messages:a}){let[b,c]=(0,d.useState)(!1),[f,g]=(0,d.useState)(""),[h,i]=(0,d.useState)([]),[j,k]=(0,d.useState)(0),[l,m]=(0,d.useState)(!1),n=(0,d.useRef)(null),o=(0,d.useRef)(""),p=(0,d.useRef)(!1);(0,d.useRef)(function(a){if(0===a.length)return"0";let b=a[a.length-1],c=b.timestamp instanceof Date?b.timestamp.getTime():String(b.timestamp);return`${a.length}|${b.id}|${c}`}(a));let q=(0,d.useRef)(a);q.current=a;let r=h.reduce((a,b)=>a+b.ranges.length,0),s=(0,d.useMemo)(()=>(function(a,b){if(0===a.length||b<0)return null;let c=0;for(let d of a){if(b<c+d.ranges.length)return{messageId:d.messageId,localIndex:b-c};c+=d.ranges.length}return null})(h,j),[h,j]),t=(0,d.useCallback)(()=>{n.current&&(clearTimeout(n.current),n.current=null)},[]),u=(0,d.useCallback)(a=>{let{positions:b,capped:c}=function(a,b){if(b.length<e.E2||0===a.length)return{positions:[],capped:!1};let c=b.toLowerCase(),d=b.length,f=[],g=0,h=!1;for(let b of a){if(h)break;let i=b.content;if(!i)continue;let j=i.toLowerCase(),k=[],l=0;for(;;){let f=j.indexOf(c,l);if(-1===f)break;if(k.push({start:f,end:f+d}),l=f+1,(g+=1)>=e.F0){if(-1!==j.indexOf(c,l))h=!0;else{let d=a.indexOf(b)+1;for(let b=d;b<a.length;b++){let d=a[b].content;if(d&&-1!==d.toLowerCase().indexOf(c)){h=!0;break}}}break}}k.length>0&&f.push({messageId:b.id,ranges:k})}return{positions:f,capped:h}}(q.current,a);i(b),k(0),m(c)},[]),v=(0,d.useCallback)(a=>{t(),o.current=a,p.current||(n.current=setTimeout(()=>{u(a)},e.e1))},[t,u]),w=(0,d.useCallback)(a=>{g(a),v(a)},[v]),x=(0,d.useCallback)(()=>{c(!0)},[]),y=(0,d.useCallback)(()=>{c(!1),g(""),o.current="",i([]),k(0),m(!1),t()},[t]),z=(0,d.useCallback)(()=>{k(a=>0===r?0:(a+1)%r)},[r]),A=(0,d.useCallback)(()=>{k(a=>0===r?0:(a-1+r)%r)},[r]);return{isOpen:b,query:f,matchCount:r,currentIndex:j,isAtMaxMatches:l,matchPositions:h,currentMatch:s,openSearch:x,closeSearch:y,setQuery:w,onCompositionStart:(0,d.useCallback)(()=>{p.current=!0,t()},[t]),onCompositionEnd:(0,d.useCallback)(()=>{p.current=!1;let a=o.current;a.length>=e.E2&&(t(),n.current=setTimeout(()=>{u(a)},e.e1))},[t,u]),nextMatch:z,prevMatch:A}}},31666:(a,b,c)=>{function d(a){let b=[],c=a.awaiting.filter(a=>"prompt"===a.state);c.length>0&&b.push({tone:"prompt",key:"badgePrompt",params:{count:c.length,alias:a.aliasOf(c[0].to)},titleKey:"promptTitle",count:c.length});let d=a.awaiting.filter(a=>"prompt"!==a.state);return 1===d.length?b.push({tone:"awaiting",key:"badgeAwaiting",params:{alias:a.aliasOf(d[0].to)},titleKey:"awaitingTitle",count:1}):d.length>1&&b.push({tone:"awaiting",key:"badgeAwaitingMany",params:{count:d.length},titleKey:"awaitingTitle",count:d.length}),1===a.owed.length?b.push({tone:"owed",key:"badgeOwed",params:{alias:a.aliasOf(a.owed[0].from)},titleKey:"owedTitle",count:1}):a.owed.length>1&&b.push({tone:"owed",key:"badgeOwedMany",params:{count:a.owed.length},titleKey:"owedTitle",count:a.owed.length}),b}function e(a){if(0===a.length)return null;let[b]=a,c="prompt"===b.tone?"stripPrompt":"owed"===b.tone?"stripOwed":b.count>1?"stripAwaitingMany":"stripAwaiting";return{...b,key:c}}c.d(b,{g:()=>d,y:()=>e})},33977:(a,b,c)=>{c.d(b,{Gg:()=>n,Gw:()=>e,HI:()=>k,aX:()=>l,eu:()=>f,fq:()=>m});let d={highlightName:"terminal-search",currentHighlightName:"terminal-search-current",fallbackOverlayId:"terminal-search-fallback-overlay",fallbackOverlayBgColor:"rgba(255, 165, 0, 0.6)"},e={highlightName:"history-search",currentHighlightName:"history-search-current",fallbackOverlayId:"history-search-fallback-overlay",fallbackOverlayBgColor:"rgba(59, 130, 246, 0.6)"};function f(a){return{highlightName:`history-search-${a}`,currentHighlightName:`history-search-current-${a}`,fallbackOverlayId:`history-search-fallback-overlay-${a}`,fallbackOverlayBgColor:e.fallbackOverlayBgColor}}function g(){return"undefined"!=typeof CSS&&null!==CSS&&"highlights"in CSS}function h(a,b,c){let d=document.createRange(),e=!1;for(let{node:f,start:g,end:h}of a)if(!e&&b<h&&b>=g&&(d.setStart(f,b-g),e=!0),e&&c<=h)return d.setEnd(f,c-g),d;return e?d:null}function i(a){g()&&(CSS.highlights.delete(a.highlightName),CSS.highlights.delete(a.currentHighlightName)),document.getElementById(a.fallbackOverlayId)?.remove()}function j(a,b,c,d){if(0===b.length)return void i(d);let e=function(a){let b,c=[],d=0,e=document.createTreeWalker(a,NodeFilter.SHOW_TEXT);for(;b=e.nextNode();){let a=b.nodeValue?.length??0;c.push({node:b,start:d,end:d+a}),d+=a}return c}(a),f=b[c],j=f?h(e,f.start,f.end):null;if(g()){let a=[];b.forEach((b,d)=>{if(d===c)return;let f=h(e,b.start,b.end);f&&a.push(f)}),CSS.highlights.set(d.highlightName,new Highlight(...a)),CSS.highlights.delete(d.currentHighlightName)}if(function(a,b,c){let d=document.getElementById(c.fallbackOverlayId);if(!b||"function"!=typeof b.getBoundingClientRect)return d?.remove();let e=b.getBoundingClientRect(),f=a.getBoundingClientRect();d?d.style.backgroundColor=c.fallbackOverlayBgColor:((d=document.createElement("div")).id=c.fallbackOverlayId,d.style.position="absolute",d.style.backgroundColor=c.fallbackOverlayBgColor,d.style.borderRadius="2px",d.style.pointerEvents="none",d.style.zIndex="5",a instanceof HTMLElement&&(a.style.position="relative"),a.appendChild(d)),d.style.top=`${e.top-f.top+a.scrollTop}px`,d.style.left=`${e.left-f.left+a.scrollLeft}px`,d.style.width=`${e.width}px`,d.style.height=`${e.height}px`}(a,j,d),j){let a=j.startContainer,b=a.nodeType===Node.TEXT_NODE?a.parentElement:a;b&&"function"==typeof b.scrollIntoView&&b.scrollIntoView({block:"center",behavior:"smooth"})}}function k(){i(d)}function l(a,b,c){j(a,b,c,d)}function m(a=e){i(a)}function n(a,b,c,d=e){j(a,b,c,d)}},34462:(a,b,c)=>{c.d(b,{E:()=>F});var d=c(21124),e=c(38301),f=c(20481),g=c(78352),h=c(85647),i=c(15737);function j(a,b,c=a=>a.description??""){if(!b.trim())return a;let d=b.toLowerCase();return a.map(a=>({...a,commands:a.commands.filter(a=>{let b=a.name.toLowerCase().includes(d),e=c(a).toLowerCase().includes(d);return b||e})})).filter(a=>a.commands.length>0)}function k(a,b){return"codex-skill"===a.source?"antigravity"===b?`/${a.name}`:`$${a.name}`:`/${a.name}`}function l(a,b){return a.descriptionKey?b(a.descriptionKey):a.description??""}function m({groups:a,onSelect:b,highlightedIndex:c=-1,className:e="",cliToolId:g}){let h=(0,f.c)("worktree"),i=0;return 0===a.length?(0,d.jsx)("div",{className:`text-sm text-muted-foreground p-4 text-center ${e}`,children:h("slashCommands.empty")}):(0,d.jsx)("div",{className:`overflow-y-auto ${e}`,children:a.map(a=>(0,d.jsxs)("div",{className:"mb-2",children:[(0,d.jsx)("div",{className:"px-3 py-1.5 text-xs font-semibold text-muted-foreground uppercase tracking-wider bg-muted",children:a.label}),(0,d.jsx)("div",{children:a.commands.map(a=>{let e=i;i++;let f=e===c;return(0,d.jsxs)("button",{type:"button","data-command-item":!0,"data-highlighted":f,onClick:()=>b(a),className:`w-full px-3 py-2 text-left flex items-start gap-2 hover:bg-accent-50 dark:hover:bg-accent-900/30 transition-colors ${f?"bg-accent-100 dark:bg-accent-900/40":""}`,children:[(0,d.jsx)("span",{className:"text-accent-600 dark:text-accent-400 font-mono text-sm flex-shrink-0",children:k(a,g)}),a.cliTools?.length===1&&"codex"===a.cliTools[0]&&(0,d.jsx)("span",{className:"mt-0.5 rounded border border-accent-200 bg-accent-50 px-1.5 py-0.5 text-[10px] font-semibold uppercase tracking-wide text-accent-700 dark:border-accent-800 dark:bg-accent-950/40 dark:text-accent-300",children:"Codex"}),"user-catalog"===a.source&&(0,d.jsx)("span",{"data-testid":"user-catalog-badge",className:"mt-0.5 rounded border border-border bg-muted px-1.5 py-0.5 text-[10px] font-semibold uppercase tracking-wide text-muted-foreground",children:h("slashCommands.sourceBadge.userCatalog")}),(0,d.jsx)("span",{className:"text-muted-foreground text-sm truncate",children:l(a,h)})]},a.name)})})]},a.category))})}function n(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 o=(0,e.memo)(function({isOpen:a,groups:b,onSelect:c,onClose:g,isMobile:h=!1,position:i,onFreeInput:k,isCatalogStale:o=!1,cliToolId:p}){let[q,r]=(0,e.useState)(""),[s,t]=(0,e.useState)(0),u=(0,e.useRef)(null),v=(0,e.useRef)(null),w=(0,e.useRef)({x:0,y:0}),[x,y]=(0,e.useState)({x:0,y:0}),z=(0,f.c)("worktree"),A=(0,f.c)("common"),B=(0,e.useMemo)(()=>j(b,q,a=>l(a,z)),[b,q,z]),C=(0,e.useMemo)(()=>B.flatMap(a=>a.commands),[B]);(0,e.useEffect)(()=>{a&&(r(""),t(0),setTimeout(()=>{u.current?.focus()},50))},[a]);let D=(0,e.useCallback)(a=>{c(a),g()},[c,g]),E=(0,e.useCallback)(b=>{if(a)switch(b.key){case"Escape":b.preventDefault(),g();break;case"ArrowDown":b.preventDefault(),t(a=>Math.min(a+1,C.length-1));break;case"ArrowUp":b.preventDefault(),t(a=>Math.max(a-1,0));break;case"Enter":b.preventDefault(),C[s]&&D(C[s])}},[a,C,s,g,D]);if((0,e.useEffect)(()=>{if(a)return document.addEventListener("keydown",E),()=>{document.removeEventListener("keydown",E)}},[a,E]),(0,e.useLayoutEffect)(()=>{let b=a=>{w.current=a,y(b=>b.x===a.x&&b.y===a.y?b:a)};if(!a||h)return void b({x:0,y:0});let c=v.current;if(!c)return;let d=c.getBoundingClientRect();b({x:n(d.left-w.current.x,d.width,window.innerWidth),y:n(d.top-w.current.y,d.height,window.innerHeight)})},[a,h,B,i?.top,i?.left]),!a)return null;let F=o?(0,d.jsx)("div",{"data-testid":"slash-command-stale-note",className:"px-3 py-2 border-t border-border text-xs text-muted-foreground",children:z("slashCommands.catalogStale.hint")}):null;if(h)return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("div",{className:"fixed inset-0 bg-black/50 z-40",onClick:g,"aria-hidden":"true"}),(0,d.jsxs)("div",{"data-testid":"slash-command-bottom-sheet",className:"fixed bottom-0 left-0 right-0 bg-surface rounded-t-xl z-50 max-h-[70vh] flex flex-col shadow-xl",children:[(0,d.jsxs)("div",{className:"flex items-center justify-between px-4 py-3 border-b border-border",children:[(0,d.jsx)("h2",{className:"text-lg font-semibold text-foreground",children:z("slashCommands.title")}),(0,d.jsx)("button",{type:"button",onClick:g,"aria-label":A("close"),className:"p-2 rounded-full hover:bg-muted",children:(0,d.jsx)("svg",{className:"w-5 h-5",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 py-2 border-b border-border",children:(0,d.jsx)("input",{ref:u,type:"text",value:q,onChange:a=>r(a.target.value),placeholder:z("slashCommands.searchPlaceholder"),className:"w-full px-3 py-2 border border-input bg-surface dark:bg-surface-2 text-foreground rounded-lg focus:outline-none focus:ring-2 focus:ring-ring"})}),k&&(0,d.jsxs)("button",{type:"button","data-testid":"free-input-button",onClick:()=>k(q),className:"w-full px-4 py-3 text-left border-b border-border flex items-center gap-2 hover:bg-accent-50 dark:hover:bg-accent-900/30 transition-colors",children:[(0,d.jsx)("span",{className:"text-accent-600 dark:text-accent-400",children:(0,d.jsx)("svg",{className:"w-5 h-5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,d.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M11 5H6a2 2 0 00-2 2v11a2 2 0 002 2h11a2 2 0 002-2v-5m-1.414-9.414a2 2 0 112.828 2.828L11.828 15H9v-2.828l8.586-8.586z"})})}),(0,d.jsx)("span",{className:"text-muted-foreground",children:z("slashCommands.enterCustomCommand")})]}),(0,d.jsx)(m,{groups:B,onSelect:D,highlightedIndex:s,className:"flex-1 overflow-y-auto pb-20",cliToolId:p}),F]})]});let G=i?{top:i.top,left:i.left}:{bottom:"100%",left:0,marginBottom:"4px"};return(0,d.jsxs)("div",{ref:v,role:"listbox","data-testid":"slash-command-dropdown",className:"absolute bg-surface border border-border rounded-lg shadow-lg z-50 w-80 max-h-96 flex flex-col",style:0!==x.x||0!==x.y?{...G,transform:`translate(${x.x}px, ${x.y}px)`}:G,children:[(0,d.jsx)("div",{className:"px-3 py-2 border-b border-border",children:(0,d.jsx)("input",{ref:u,type:"text",value:q,onChange:a=>r(a.target.value),placeholder:z("slashCommands.searchPlaceholder"),className:"w-full px-3 py-1.5 text-sm border border-input bg-surface dark:bg-surface-2 text-foreground rounded focus:outline-none focus:ring-1 focus:ring-ring"})}),k&&(0,d.jsxs)("button",{type:"button","data-testid":"free-input-button",onClick:()=>k(q),className:"w-full px-3 py-2 text-left border-b border-border flex items-center gap-2 hover:bg-accent-50 dark:hover:bg-accent-900/30 transition-colors text-sm",children:[(0,d.jsx)("span",{className:"text-accent-600 dark:text-accent-400",children:(0,d.jsx)("svg",{className:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,d.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M11 5H6a2 2 0 00-2 2v11a2 2 0 002 2h11a2 2 0 002-2v-5m-1.414-9.414a2 2 0 112.828 2.828L11.828 15H9v-2.828l8.586-8.586z"})})}),(0,d.jsx)("span",{className:"text-muted-foreground",children:z("slashCommands.enterCustomCommand")})]}),(0,d.jsx)(m,{groups:B,onSelect:D,highlightedIndex:s,className:"flex-1 overflow-y-auto",cliToolId:p}),F,(0,d.jsxs)("div",{className:"px-3 py-1.5 border-t border-border text-xs text-muted-foreground flex gap-3",children:[(0,d.jsxs)("span",{children:[(0,d.jsx)("kbd",{className:"px-1 py-0.5 bg-muted rounded",children:"Enter"})," ",z("slashCommands.selectHint")]}),(0,d.jsxs)("span",{children:[(0,d.jsx)("kbd",{className:"px-1 py-0.5 bg-muted rounded",children:"Esc"})," ",z("slashCommands.closeHint")]})]})]})});var p=c(17793);let q=(0,e.memo)(function({worktreeId:a,cliToolId:b,instanceId:c,disabled:g=!1,onInterrupt:h}){let i=(0,f.c)("worktree"),[j,k]=(0,e.useState)(!1),l=(0,e.useRef)(0),m=(0,e.useCallback)(async()=>{let d=Date.now();if(!(d-l.current<1e3)){l.current=d,k(!0);try{let d=c&&c!==b?{cliToolId:b,instanceId:c}:{cliToolId:b},e=await fetch(`/api/worktrees/${a}/interrupt`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(d)});if(e.ok)h?.();else{let a=await e.json().catch(()=>({}));console.error("[InterruptButton] Failed to send interrupt:",a.error||e.statusText)}}catch(a){console.error("[InterruptButton] Error sending interrupt:",a)}finally{k(!1)}}},[a,b,c,h]);return(0,d.jsx)("button",{type:"button",onClick:m,disabled:g||j,className:"flex-shrink-0 p-2 text-danger hover:bg-danger/10 rounded-full transition-colors disabled:text-muted-foreground/40 disabled:hover:bg-transparent","aria-label":i("interrupt.stopProcessing"),"data-testid":"interrupt-button",children:j?(0,d.jsx)(p.y,{size:"md"}):(0,d.jsx)(r,{})})});function r(){return(0,d.jsx)("svg",{className:"h-5 w-5",fill:"currentColor",viewBox:"0 0 24 24",children:(0,d.jsx)("rect",{x:"6",y:"6",width:"12",height:"12",rx:"2"})})}var s=c(31449),t=c(19654),u=c(19470),v=c(38442),w=c(71613),x=c(10708),y=c(31906);let z=(0,e.memo)(function({worktreeId:a,cliToolId:b,instanceId:c,disabled:g=!1,onActionComplete:h,showToast:j}){let k=(0,f.c)("worktree.opencodeSession"),l=(0,i.SC)(),[m,n]=(0,e.useState)(null),[o,p]=(0,e.useState)(null),[q,r]=(0,e.useState)(null),[z,A]=(0,e.useState)(!1),[B,C]=(0,e.useState)(null),D="opencode"===b,E=c??b,F=(0,e.useCallback)(a=>{if(j){C(null),j(a,"error");return}C(a)},[j]),G=(0,e.useCallback)((a,b,c)=>"NO_OPENCODE_PORT"===a.code?k("errorNoPort"):"NO_OPENCODE_SESSION"===a.code?k(c):a.error||b||k("errorUnknown"),[k]),H=(0,e.useCallback)(async()=>{if(D)try{let b=await fetch(`/api/worktrees/${a}/opencode/share?instance=${encodeURIComponent(E)}`);if(!b.ok)return void p(null);p(await b.json())}catch{p(null)}},[D,a,E]);(0,e.useEffect)(()=>{H()},[H]);let I=(0,e.useCallback)(async b=>{n(b),C(null);try{let c=await fetch(`/api/worktrees/${a}/opencode/session`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:b,instanceId:E})});if(!c.ok){let a=await c.json().catch(()=>({}));console.error("[OpencodeSessionControls] action failed:",b,a.error||c.statusText),F(G(a,c.statusText,"errorNoSessionFork"));return}h?.(b),"list"!==b&&(r(null),H())}catch(a){console.error("[OpencodeSessionControls] request error:",a),F(k("errorRequestFailed"))}finally{n(null)}},[a,E,h,H,F,G,k]),J=(0,e.useCallback)(async()=>{if(await l({title:k("shareConfirmTitle"),description:k("shareConfirmBody"),confirmLabel:k("shareConfirmLabel"),variant:"danger"})){n("share"),C(null);try{let b=await fetch(`/api/worktrees/${a}/opencode/share`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({instanceId:E})}),c=await b.json().catch(()=>({}));if(!b.ok||"string"!=typeof c.url){console.error("[OpencodeSessionControls] share failed:",c.error||b.statusText),F(G(c,b.statusText,"errorNoSessionShare")),H();return}r(c.url),A(!1),H()}catch(a){console.error("[OpencodeSessionControls] share request error:",a),F(k("errorRequestFailed"))}finally{n(null)}}},[l,k,a,E,H,F,G]),K=(0,e.useCallback)(async()=>{n("unshare"),C(null);try{let b=await fetch(`/api/worktrees/${a}/opencode/share?instance=${encodeURIComponent(E)}`,{method:"DELETE"});if(!b.ok){let a=await b.json().catch(()=>({}));console.error("[OpencodeSessionControls] unshare failed:",a.error||b.statusText),F(G(a,b.statusText,"errorNoSessionShare"));return}r(null),A(!1),H()}catch(a){console.error("[OpencodeSessionControls] unshare request error:",a),F(k("errorRequestFailed"))}finally{n(null)}},[a,E,H,F,G,k]),L=(0,e.useCallback)(async()=>{if(null!==q)try{await navigator.clipboard.writeText(q),A(!0),C(null)}catch(a){console.error("[OpencodeSessionControls] clipboard write failed:",a),F(k("errorCopyFailed"))}},[q,F,k]);if(!D)return null;let M=[{action:"new",icon:(0,d.jsx)(s.A,{className:"h-5 w-5","aria-hidden":"true"})},{action:"list",icon:(0,d.jsx)(t.A,{className:"h-5 w-5","aria-hidden":"true"})},{action:"fork",icon:(0,d.jsx)(u.A,{className:"h-5 w-5","aria-hidden":"true"})}],N="flex-shrink-0 p-2 text-muted-foreground hover:text-accent-600 hover:bg-accent-50 dark:hover:text-accent-400 dark:hover:bg-accent-900/30 rounded-full transition-colors disabled:text-muted-foreground/50 disabled:hover:bg-transparent";return(0,d.jsxs)("div",{className:"flex items-center gap-1","data-testid":"opencode-session-controls",children:[M.map(({action:a,icon:b})=>(0,d.jsx)(i.$n,{variant:"ghost",type:"button",onClick:()=>void I(a),disabled:g||null!==m,className:N,"aria-label":k(a),title:k(a),"data-testid":`opencode-session-${a}`,children:m===a?(0,d.jsx)(i.y$,{size:"md"}):b},a)),o?.canShare?(0,d.jsx)(i.$n,{variant:"ghost",type:"button",onClick:()=>void J(),disabled:g||null!==m,className:N,"aria-label":k("share"),title:k("share"),"data-testid":"opencode-session-share",children:"share"===m?(0,d.jsx)(i.y$,{size:"md"}):(0,d.jsx)(v.A,{className:"h-5 w-5","aria-hidden":"true"})}):null,null!==q?(0,d.jsxs)("span",{className:"flex min-w-0 items-center gap-1 rounded-full border border-warning-border bg-warning-subtle px-2 py-0.5 text-xs text-warning-foreground","data-testid":"opencode-share-result",children:[(0,d.jsx)("span",{className:"sr-only",children:k("sharePublicNotice")}),(0,d.jsx)("a",{href:q,target:"_blank",rel:"noopener noreferrer",className:"truncate text-accent-600 underline dark:text-accent-400",title:q,"data-testid":"opencode-share-url",children:q}),(0,d.jsx)(i.$n,{variant:"ghost",type:"button",onClick:()=>void L(),className:"flex-shrink-0 rounded-full p-1 text-muted-foreground hover:text-accent-600","aria-label":k("shareCopy"),title:k("shareCopy"),"data-testid":"opencode-share-copy",children:z?(0,d.jsx)(w.A,{className:"h-3.5 w-3.5","aria-hidden":"true"}):(0,d.jsx)(x.A,{className:"h-3.5 w-3.5","aria-hidden":"true"})}),(0,d.jsx)(i.$n,{variant:"ghost",type:"button",onClick:()=>void K(),disabled:null!==m,className:"flex-shrink-0 rounded-full p-1 text-muted-foreground hover:text-danger-foreground","aria-label":k("unshare"),title:k("unshare"),"data-testid":"opencode-session-unshare",children:"unshare"===m?(0,d.jsx)(i.y$,{size:"sm"}):(0,d.jsx)(y.A,{className:"h-3.5 w-3.5","aria-hidden":"true"})})]}):null,null!==B?(0,d.jsx)("span",{role:"alert",className:"flex min-w-0 items-center rounded-full border border-danger-border bg-danger-subtle px-2 py-0.5 text-xs text-danger-foreground",title:B,"data-testid":"opencode-session-error",children:(0,d.jsx)("span",{className:"truncate",children:B})}):null]})});c(90349);var A=c(90076),B=c(75071);let C="commandmate:draft-message:",D="Queued (session busy) — your message will run after the current task finishes.";function E(a,b){return`${C}${a}:${b}`}let F=(0,e.memo)(function({worktreeId:a,onMessageSent:b,cliToolId:c,instanceId:l,isSessionRunning:m=!1,pendingInsertText:n,onInsertConsumed:p,splitIndex:r=0,onFocus:s,isProcessing:t=!1,showToast:u,autoYesSlot:v,onOptimisticSend:w}){let x=(0,f.c)("worktree"),[y,F]=(0,e.useState)(""),[G,H]=(0,e.useState)(!1),[I,J]=(0,e.useState)(null),[K,L]=(0,e.useState)(!1),[M,N]=(0,e.useState)(!1),[O,P]=(0,e.useState)(!1),Q=(0,e.useRef)(null),R=(0,e.useRef)(null),S=(0,e.useRef)(!1),T=(0,e.useRef)(null),U=(0,e.useRef)(null),V=(0,A.a)(),{groups:W,isCatalogStale:X}=function(a,b){let[c,d]=(0,e.useState)([]),[f,h]=(0,e.useState)(!0),[i,k]=(0,e.useState)(null),[l,m]=(0,e.useState)(""),[n,o]=(0,e.useState)(b||"claude"),[p,q]=(0,e.useState)({}),r=(0,e.useCallback)(async()=>{try{h(!0),k(null);let c=a?`/api/worktrees/${a}/slash-commands`:"/api/slash-commands";b&&(c+=`?cliTool=${b}`);let e=await fetch(c,{cache:"no-store"});if(!e.ok)throw Error(`HTTP error ${e.status}`);let f=await e.json();d(f.groups),o(f.cliTool||b||"claude"),q(f.catalogStaleness??{})}catch(a){k((0,g.hS)(a)),d([]),q({})}finally{h(!1)}},[a,b]),s=(0,e.useMemo)(()=>c.flatMap(a=>a.commands),[c]),t=(0,e.useMemo)(()=>j(c,l),[c,l]),u=(0,e.useMemo)(()=>Object.values(p).some(a=>a.stale),[p]);return{groups:c,filteredGroups:t,allCommands:s,loading:f,error:i,filter:l,setFilter:m,refresh:(0,e.useCallback)(()=>{r()},[r]),cliTool:n,isCatalogStale:u}}(a,c),{attachedImage:Y,fileInputRef:Z,isUploading:$,error:_,acceptAttribute:aa,openFileDialog:ab,handleFileSelect:ac,removeAttachment:ad,resetAfterSend:ae}=function(a,b){let[c,d]=(0,e.useState)(null),[f,g]=(0,e.useState)(!1),[h,i]=(0,e.useState)(null),j=(0,e.useRef)(null),k=(0,e.useCallback)(()=>{j.current?.click()},[]),l=(0,e.useCallback)(async c=>{let e=c.target.files?.[0];if(!e)return;i(null);let f=function(a){let b=a.name.lastIndexOf(".");if(-1===b)return"Unsupported file format";let c=(0,B.HB)(a.name.substring(b));if(!B.Hv.includes(c))return`Unsupported file format: ${c}`;if(a.size>B.Fg){let a=B.Fg/1024/1024;return`File size exceeds ${a}MB limit`}return null}(e);if(f){i(f),j.current&&(j.current.value="");return}g(!0);try{let c=await b(a,e);d({file:e,path:c.path})}catch(a){i(a instanceof Error?a.message:"Upload failed")}finally{g(!1),j.current&&(j.current.value="")}},[a,b]),m=(0,e.useCallback)(()=>{d(null),i(null)},[]),n=(0,e.useCallback)(()=>{d(null)},[]);return{attachedImage:c,fileInputRef:j,isUploading:f,error:h,acceptAttribute:B.F5,openFileDialog:k,handleFileSelect:l,removeAttachment:m,resetAfterSend:n}}(a,(0,e.useCallback)((a,b)=>g.y.uploadImageFile(a,b),[]));(0,e.useEffect)(()=>{try{0===r&&function(a){try{let b=`${C}${a}`,c=window.localStorage.getItem(b);if(null===c)return;let d=E(a,0);null===window.localStorage.getItem(d)&&window.localStorage.setItem(d,c),window.localStorage.removeItem(b)}catch{}}(a);let b=window.localStorage.getItem(E(a,r));b?F(b):F("")}catch{}return()=>{U.current&&clearTimeout(U.current)}},[a,r]),(0,e.useEffect)(()=>{U.current&&clearTimeout(U.current),U.current=setTimeout(()=>{try{let b=E(a,r);y?window.localStorage.setItem(b,y):window.localStorage.removeItem(b)}catch{}},500)},[y,a,r]),(0,e.useEffect)(()=>{let a=Q.current;a&&(y?(a.style.height="auto",a.style.height=`${Math.min(a.scrollHeight,160)}px`):a.style.height="24px")},[y]),(0,e.useEffect)(()=>{n&&(F(a=>""===a.trim()?n:a+"\n\n"+n),p?.())},[n,p]);let af=(0,e.useCallback)(async()=>{if(K||!y.trim()&&!Y||G)return;let d=y.trim(),e=c||"claude",f={cliToolId:e};if(l&&l!==e&&(f.instanceId=l),Y&&(f.imagePath=Y.path),w){J(null),w(d,f),F(""),P(!1),ae();try{window.localStorage.removeItem(E(a,r))}catch{}t&&u?.(D,"warning"),b?.(e);return}try{H(!0),J(null);let c=await g.y.sendMessage(a,d,f);F(""),P(!1),ae();try{window.localStorage.removeItem(E(a,r))}catch{}t&&u?.(D,"warning"),b?.(e,c)}catch(a){J((0,g.hS)(a))}finally{H(!1)}},[K,y,Y,G,a,c,l,b,ae,r,t,u,w]),ag=(0,e.useCallback)(async a=>{a.preventDefault(),await af()},[af]),ah=(0,e.useCallback)(()=>{L(!0),S.current=!1,R.current&&clearTimeout(R.current)},[]),ai=(0,e.useCallback)(()=>{L(!1),S.current=!0,R.current&&clearTimeout(R.current),R.current=setTimeout(()=>{S.current=!1},300)},[]),aj=(0,e.useCallback)(a=>{F(`${k(a,c)} `),N(!1),Q.current?.focus()},[c]),ak=(0,e.useCallback)(()=>{N(!1),P(!1),Q.current?.focus()},[]),al=(0,e.useCallback)(a=>{N(!1),P(!0),F(a?`/${a}`:"/"),setTimeout(()=>{Q.current?.focus()},50)},[]),am=(0,e.useCallback)(a=>{let b=a.target.value;if(F(b),""===b){P(!1),N(!1);return}if(O)return;let d="/"===b||b.startsWith("/")&&!b.includes(" "),e="codex"===c&&("$"===b||b.startsWith("$")&&!b.includes(" "));d||e?N(!0):N(!1)},[O,c]),an=(0,e.useCallback)(a=>{let{keyCode:b}=a.nativeEvent;if(229!==b){if("Escape"===a.key&&M){a.preventDefault(),ak();return}if(S.current&&"Enter"===a.key){S.current=!1;return}if("Enter"===a.key&&!K&&(!M||O)){if(V)return;a.shiftKey||(a.preventDefault(),af())}}},[M,O,K,V,af,ak]);return(0,d.jsxs)("div",{ref:T,className:"space-y-2 relative","data-testid":"message-input-container",children:[(I||_)&&(0,d.jsx)("div",{className:"p-2 bg-danger-subtle border border-danger-border rounded text-sm text-danger-foreground",children:I||_}),Y&&(0,d.jsxs)("div",{className:"flex items-center gap-2 px-4 py-1.5 bg-accent-50 dark:bg-accent-900/20 border border-accent-200 dark:border-accent-800 rounded-lg text-sm","data-testid":"image-attachment-preview",children:[(0,d.jsx)("svg",{className:"h-4 w-4 flex-shrink-0 text-accent-600 dark:text-accent-400",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,d.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M4 16l4.586-4.586a2 2 0 012.828 0L16 16m-2-2l1.586-1.586a2 2 0 012.828 0L20 14m-6-6h.01M6 20h12a2 2 0 002-2V6a2 2 0 00-2-2H6a2 2 0 00-2 2v12a2 2 0 002 2z"})}),(0,d.jsx)("span",{className:"truncate text-accent-800 dark:text-accent-300",children:Y.file.name}),(0,d.jsx)("button",{type:"button",onClick:ad,className:"flex-shrink-0 p-0.5 text-accent-600 hover:text-danger-foreground dark:text-accent-400 rounded transition-colors","aria-label":x("composer.removeAttachment"),"data-testid":"remove-attachment-button",children:(0,d.jsx)("svg",{className:"h-4 w-4",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)("input",{ref:Z,type:"file",accept:aa,onChange:ac,className:"hidden","data-testid":"image-file-input"}),(0,d.jsxs)("form",{onSubmit:ag,className:"rounded-xl bg-surface border border-border shadow-sm px-3 py-2 focus-within:ring-2 focus-within:ring-accent-500/40 transition-shadow flex flex-col gap-1.5",children:[(0,d.jsxs)("div",{className:V?"flex flex-col gap-1":"flex items-center gap-2",children:[V&&(0,d.jsxs)("div",{className:"flex items-center gap-1",children:[(0,d.jsx)(i.$n,{variant:"ghost",type:"button",onClick:()=>{O&&P(!1),N(!0)},className:"flex-shrink-0 p-2 text-muted-foreground hover:text-accent-600 hover:bg-accent-50 dark:hover:text-accent-400 dark:hover:bg-accent-900/30 rounded-full transition-colors","aria-label":x("composer.showSlashCommands"),"data-testid":"mobile-command-button",children:(0,d.jsx)("svg",{className:"h-5 w-5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,d.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M7 20l4-16m2 16l4-16M6 9h14M4 15h14"})})}),(0,d.jsx)(i.$n,{variant:"ghost",type:"button",onClick:ab,disabled:$||G,className:"flex-shrink-0 p-2 text-muted-foreground hover:text-accent-600 hover:bg-accent-50 dark:hover:text-accent-400 dark:hover:bg-accent-900/30 rounded-full transition-colors disabled:text-muted-foreground/50 disabled:hover:bg-transparent","aria-label":x("composer.attachImage"),"data-testid":"attach-image-button",children:$?(0,d.jsx)(i.y$,{size:"md"}):(0,d.jsx)("svg",{className:"h-5 w-5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,d.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M15.172 7l-6.586 6.586a2 2 0 102.828 2.828l6.414-6.586a4 4 0 00-5.656-5.656l-6.415 6.585a6 6 0 108.486 8.486L20.5 13"})})}),(0,d.jsx)(z,{worktreeId:a,cliToolId:c||"claude",instanceId:l,disabled:!m,showToast:u}),(0,d.jsx)(q,{worktreeId:a,cliToolId:c||"claude",instanceId:l,disabled:!m})]}),!V&&(0,d.jsx)(i.$n,{variant:"ghost",type:"button",onClick:ab,disabled:$||G,className:"flex-shrink-0 p-2 text-muted-foreground hover:text-accent-600 hover:bg-accent-50 dark:hover:text-accent-400 dark:hover:bg-accent-900/30 rounded-full transition-colors disabled:text-muted-foreground/50 disabled:hover:bg-transparent","aria-label":x("composer.attachImage"),"data-testid":"attach-image-button",children:$?(0,d.jsx)(i.y$,{size:"md"}):(0,d.jsx)("svg",{className:"h-5 w-5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,d.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M15.172 7l-6.586 6.586a2 2 0 102.828 2.828l6.414-6.586a4 4 0 00-5.656-5.656l-6.415 6.585a6 6 0 108.486 8.486L20.5 13"})})}),(0,d.jsxs)("div",{className:"flex items-center gap-2 flex-1 min-w-0",children:[(0,d.jsx)("textarea",{ref:Q,"data-testid":"message-input-textarea",value:y,onChange:am,onKeyDown:an,onCompositionStart:ah,onCompositionEnd:ai,onFocus:s,placeholder:x("composer.placeholder"),disabled:G,rows:1,inputMode:"text",enterKeyHint:"send",className:"flex-1 outline-none bg-transparent resize-none overflow-y-auto scrollbar-thin",style:{minHeight:"36px",maxHeight:"160px",paddingTop:"8px",paddingBottom:"8px",lineHeight:"20px"}}),!V&&(0,d.jsx)(z,{worktreeId:a,cliToolId:c||"claude",instanceId:l,disabled:!m,showToast:u}),!V&&(0,d.jsx)(q,{worktreeId:a,cliToolId:c||"claude",instanceId:l,disabled:!m}),(0,d.jsx)(i.$n,{variant:"ghost",type:"submit","data-testid":"send-message-button","data-can-send":String((!!y.trim()||!!Y)&&!G),disabled:!y.trim()&&!Y||G,className:`flex-shrink-0 p-2 rounded-full transition-colors disabled:hover:bg-transparent ${(y.trim()||Y)&&!G?"bg-accent-600 text-white hover:bg-accent-700 shadow-sm":"text-muted-foreground/50"}`,"aria-label":x("composer.sendMessage"),children:G?(0,d.jsx)(i.y$,{size:"md"}):(0,d.jsx)("svg",{className:"h-5 w-5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,d.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M12 19l9 2-9-18-9 18 9-2zm0 0v-8"})})})]})]}),(v||!V)&&(0,d.jsxs)("div",{className:"flex items-center justify-between gap-2 min-w-0","data-testid":"composer-meta-row",children:[(0,d.jsx)("div",{className:"flex items-center gap-2 min-w-0 overflow-x-auto scrollbar-hide",children:v}),!V&&(0,d.jsxs)("div",{className:"flex flex-shrink-0 items-center gap-1.5 text-[11px] text-muted-foreground select-none",children:[(0,d.jsx)(h.u,{children:"/"}),(0,d.jsx)("span",{children:x("composer.commandsHint")}),(0,d.jsx)("span",{"aria-hidden":"true",className:"opacity-50",children:"\xb7"}),(0,d.jsx)(h.u,{children:"⇧"}),(0,d.jsx)(h.u,{children:"↵"}),(0,d.jsx)("span",{children:x("composer.newlineHint")})]})]})]}),(0,d.jsx)(o,{isOpen:M,groups:W,onSelect:aj,onClose:ak,isMobile:V,onFreeInput:al,isCatalogStale:X,cliToolId:c})]})})},35550:(a,b,c)=>{c.d(b,{t:()=>g});var d=c(21124),e=c(38301),f=c(20481);class g extends e.Component{constructor(a){super(a),this.handleRetry=()=>{this.setState({hasError:!1,error:null})},this.state={hasError:!1,error:null}}static getDerivedStateFromError(a){return{hasError:!0,error:a}}componentDidCatch(a,b){console.error(`[ErrorBoundary:${this.props.componentName||"unknown"}]`,a,b),this.props.onError?.(a,b)}render(){return this.state.hasError?this.props.fallback?this.props.fallback:(0,d.jsx)(h,{componentName:this.props.componentName,error:this.state.error,onRetry:this.handleRetry}):this.props.children}}function h({componentName:a,error:b,onRetry:c}){let e=(0,f.c)("error"),g=(0,f.c)("common");return(0,d.jsxs)("div",{className:"p-4 bg-danger-subtle border border-danger-border rounded-lg",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2 text-danger-foreground mb-2",children:[(0,d.jsx)("svg",{className:"w-5 h-5",fill:"currentColor",viewBox:"0 0 20 20",children:(0,d.jsx)("path",{fillRule:"evenodd",d:"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7 4a1 1 0 11-2 0 1 1 0 012 0zm-1-9a1 1 0 00-1 1v4a1 1 0 102 0V6a1 1 0 00-1-1z",clipRule:"evenodd"})}),(0,d.jsx)("span",{className:"font-medium",children:a?e("boundary.errorOccurredIn",{componentName:a}):e("boundary.errorOccurred")})]}),b&&(0,d.jsx)("p",{className:"text-sm text-danger-foreground/80 mb-3",children:b.message}),c&&(0,d.jsx)("button",{onClick:c,className:"px-4 py-2 bg-danger-foreground text-danger-subtle rounded hover:opacity-90 transition-opacity text-sm",children:g("retry")})]})}},38463:(a,b,c)=>{c.d(b,{bl:()=>aa,Ce:()=>o.Ce});var d=c(21124),e=c(38301),f=c.n(e),g=c(20481),h=c(21554),i=c(82788),j=c(63091),k=c(10578),l=c(88285),m=c(8294),n=c(15737),o=c(24761),p=c(29460),q=c(14263),r=c(18310),s=c(9212),t=c(47089),u=c(25770),v=c(10708),w=c(85351),x=c(55992),y=c(79206),z=c(29701),A=c(37950),B=c(65468),C=c(79695),D=c(54228),E=c(8842),F=c(88033),G=c(76133);function H(a){let b=a.split("\n");if(b.length<=2&&a.length<=100)return{text:a,isTruncated:!1};let c=b.slice(0,2).join("\n");return c.length>100&&(c=c.slice(0,100)),{text:c,isTruncated:!0}}let I=(0,e.memo)(function({content:a,onFilePathClick:b}){let c=(0,g.c)("worktree"),f=(0,e.useMemo)(()=>(0,E.ML)(a),[a]),h=(0,e.useCallback)(a=>()=>b(a),[b]);return(0,d.jsx)("span",{children:f.map((a,b)=>"path"===a.type?(0,d.jsx)("button",{type:"button",onClick:h(a.content),className:"text-accent-700 dark:text-accent-400 hover:text-accent-600 dark:hover:text-accent-300 hover:underline cursor-pointer font-mono text-sm","aria-label":c("conversation.openFile",{path:a.content}),children:a.content},b):(0,d.jsx)("span",{children:a.content},b))})}),J=(0,e.memo)(function({content:a,onFilePathClick:b}){let c=(0,e.useMemo)(()=>{let a=a=>f().Children.map(a,a=>"string"==typeof a?(0,d.jsx)(I,{content:a,onFilePathClick:b}):a);return{p:({children:b})=>(0,d.jsx)("p",{children:a(b)}),li:({children:b})=>(0,d.jsx)("li",{children:a(b)}),td:({children:b})=>(0,d.jsx)("td",{children:a(b)}),th:({children:b})=>(0,d.jsx)("th",{children:a(b)}),strong:({children:b})=>(0,d.jsx)("strong",{children:a(b)}),em:({children:b})=>(0,d.jsx)("em",{children:a(b)}),a:({href:a,children:c,node:e,...f})=>(0,d.jsx)(G.ZS,{...f,href:a,onFilePathClick:b,children:c})}},[b]),g=(0,e.useMemo)(()=>[z.A,A.A],[]);return(0,d.jsx)(y.oz,{remarkPlugins:F.eT,rehypePlugins:g,components:c,children:a})});function K(){let a=(0,g.c)("worktree");return(0,d.jsxs)("div",{"data-testid":"pending-indicator",className:"flex items-center gap-2 text-muted-foreground py-2",children:[(0,d.jsxs)("div",{className:"flex gap-1","aria-hidden":"true",children:[(0,d.jsx)("span",{className:"w-2 h-2 bg-muted-foreground rounded-full animate-pulse"}),(0,d.jsx)("span",{className:"w-2 h-2 bg-muted-foreground rounded-full animate-pulse",style:{animationDelay:"150ms"}}),(0,d.jsx)("span",{className:"w-2 h-2 bg-muted-foreground rounded-full animate-pulse",style:{animationDelay:"300ms"}})]}),(0,d.jsx)("span",{className:"text-sm",children:a("conversation.waitingForResponse")})]})}let L=(0,e.memo)(function({message:a,onFilePathClick:b,onCopy:c,onInsertToMessage:e,onRetryPending:f,onDiscardPending:h}){let i=(0,x.Ym)(),j=(0,g.c)("worktree"),k=(0,g.c)("common"),l=(0,C.M)(i),m=(0,D.bg)(a.timestamp,l),n=a.optimisticState,o=["group relative border-l-2 p-3 transition-opacity","error"===n?"border-danger-border bg-danger-subtle":"border-accent-500 bg-accent-500/10","sending"===n?"opacity-70":""].filter(Boolean).join(" ");return(0,d.jsxs)("div",{className:o,children:[(0,d.jsxs)("div",{className:"flex items-center gap-2 mb-1",children:[(0,d.jsx)("span",{className:"text-xs font-medium text-accent-700 dark:text-accent-400",children:j("conversation.you")}),(0,d.jsx)("span",{className:"text-xs text-muted-foreground",children:m}),"sending"===n&&(0,d.jsxs)("span",{"data-testid":"optimistic-sending",className:"flex items-center gap-1 text-xs text-muted-foreground",children:[(0,d.jsx)(q.A,{size:12,className:"animate-spin","aria-hidden":"true"}),(0,d.jsx)("span",{children:j("conversation.sending")})]}),"error"===n&&(0,d.jsxs)("span",{"data-testid":"optimistic-error",className:"flex items-center gap-1 text-xs text-danger-foreground",children:[(0,d.jsx)(r.A,{size:12,"aria-hidden":"true"}),(0,d.jsx)("span",{children:j("conversation.failedToSend")})]}),"error"===n?(0,d.jsxs)("div",{className:"ml-auto flex items-center gap-1",children:[f&&(0,d.jsxs)("button",{type:"button","data-testid":"pending-retry",onClick:()=>f(a.id),className:"flex items-center gap-1 rounded px-1.5 py-0.5 text-xs text-accent-700 dark:text-accent-400 hover:bg-muted transition-colors","aria-label":j("conversation.retrySending"),title:k("retry"),children:[(0,d.jsx)(s.A,{size:12,"aria-hidden":"true"}),k("retry")]}),h&&(0,d.jsxs)("button",{type:"button","data-testid":"pending-discard",onClick:()=>h(a.id),className:"flex items-center gap-1 rounded px-1.5 py-0.5 text-xs text-muted-foreground hover:text-danger-foreground hover:bg-muted transition-colors","aria-label":j("conversation.discardMessage"),title:j("conversation.discard"),children:[(0,d.jsx)(t.A,{size:12,"aria-hidden":"true"}),j("conversation.discard")]})]}):(0,d.jsxs)("div",{className:"ml-auto flex items-center gap-0.5 opacity-0 transition-opacity group-hover:opacity-100 focus-within:opacity-100 [@media(hover:none)]:opacity-100",children:[e&&(0,d.jsx)("button",{type:"button","data-testid":"insert-user-message",onClick:()=>e(a.content),className:"p-1 text-muted-foreground hover:text-accent-600 dark:hover:text-accent-400 hover:bg-muted rounded transition-colors","aria-label":j("conversation.insertToMessage"),title:j("conversation.insertToMessage"),children:(0,d.jsx)(u.A,{size:14,"aria-hidden":"true"})}),c&&(0,d.jsx)("button",{type:"button","data-testid":"copy-user-message",onClick:()=>c(a.content),className:"p-1 text-muted-foreground hover:text-foreground hover:bg-muted rounded transition-colors","aria-label":j("conversation.copyMessage"),title:j("conversation.copy"),children:(0,d.jsx)(v.A,{size:14,"aria-hidden":"true"})})]})]}),(0,d.jsx)("div",{"data-message-id":a.id,className:"text-sm text-foreground whitespace-pre-wrap break-words [word-break:break-word] max-w-full overflow-x-hidden",children:(0,d.jsx)(I,{content:a.content,onFilePathClick:b})})]})}),M=(0,e.memo)(function({message:a,index:b,total:c,isExpanded:f,onFilePathClick:h,onCopy:i,hasLongContent:j=!1,onToggleExpand:k}){let l=(0,x.Ym)(),m=(0,g.c)("worktree"),n=(0,C.M)(l),o=(0,D.bg)(a.timestamp,n),{text:p,isTruncated:q}=(0,e.useMemo)(()=>H(a.content),[a.content]),r=f||!q?a.content:p,s=(0,B.bx)(a.requestId),t=s&&q&&!f;return(0,d.jsxs)("div",{className:"assistant-message-item group relative",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2 mb-1",children:[(0,d.jsx)("span",{className:"text-xs font-medium text-muted-foreground",children:m("conversation.assistant")}),(0,d.jsx)("span",{className:"text-xs text-muted-foreground",children:o}),c>1&&(0,d.jsxs)("span",{className:"text-xs text-muted-foreground",children:["(",b+1,"/",c,")"]}),(0,d.jsxs)("div",{className:"ml-auto flex items-center gap-0.5 opacity-0 transition-opacity group-hover:opacity-100 focus-within:opacity-100 [@media(hover:none)]:opacity-100",children:[0===b&&j&&!!k&&(0,d.jsxs)("button",{type:"button",onClick:k,className:"flex items-center gap-1 rounded px-1.5 py-0.5 text-xs text-accent-700 dark:text-accent-400 hover:text-accent-600 dark:hover:text-accent-300 hover:bg-muted transition-colors","aria-expanded":f,"aria-label":m(f?"conversation.collapseMessage":"conversation.expandMessage"),children:[(0,d.jsx)(w.A,{size:12,className:`transition-transform ${f?"rotate-180":""}`,"aria-hidden":"true"}),m(f?"conversation.collapse":"conversation.expand")]}),i&&(0,d.jsx)("button",{type:"button","data-testid":"copy-assistant-message",onClick:()=>i(a.content),className:"p-1 text-muted-foreground hover:text-foreground hover:bg-muted rounded transition-colors","aria-label":m("conversation.copyMessage"),title:m("conversation.copy"),children:(0,d.jsx)(v.A,{size:14,"aria-hidden":"true"})})]})]}),s?(0,d.jsx)("div",{"data-message-id":a.id,"data-markdown":"true",className:["assistant-md text-xs text-foreground break-words [word-break:break-word] max-w-full overflow-x-hidden",t?"max-h-[3.25rem] overflow-y-hidden":""].filter(Boolean).join(" "),children:(0,d.jsx)(J,{content:a.content,onFilePathClick:h})}):(0,d.jsxs)("div",{"data-message-id":a.id,className:"text-xs text-foreground whitespace-pre-wrap break-words [word-break:break-word] max-w-full overflow-x-hidden",children:[(0,d.jsx)(I,{content:r,onFilePathClick:h}),!f&&q&&(0,d.jsx)("span",{className:"text-muted-foreground",children:"..."})]})]})}),N=(0,e.memo)(function({messages:a,isExpanded:b,onFilePathClick:c,onCopy:e,hasLongContent:g=!1,onToggleExpand:h}){return(0,d.jsx)("div",{className:"bg-surface-2/50 border-l-2 border-border p-2 border-t border-border space-y-2",children:a.map((i,j)=>(0,d.jsxs)(f().Fragment,{children:[j>0&&(0,d.jsx)("div",{"data-testid":"assistant-message-divider",className:"border-t border-dashed border-border"}),(0,d.jsx)(M,{message:i,index:j,total:a.length,isExpanded:b,onFilePathClick:c,onCopy:e,hasLongContent:g,onToggleExpand:h})]},i.id))})});function O(){let a=(0,g.c)("worktree");return(0,d.jsxs)("div",{"data-testid":"orphan-indicator",className:"bg-warning/10 text-warning-foreground text-xs px-3 py-1 flex items-center gap-2",children:[(0,d.jsx)("svg",{className:"w-3 h-3",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24","aria-hidden":"true",children:(0,d.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"})}),(0,d.jsx)("span",{children:a("conversation.systemMessage")})]})}let P=(0,e.memo)(function({pair:a,onFilePathClick:b,isExpanded:c=!1,onToggleExpand:f,onCopy:h,onInsertToMessage:i,showAssistant:j=!0,onRetryPending:k,onDiscardPending:l}){let m=(0,g.c)("worktree"),n=a.userMessage?.optimisticState!==void 0,o=(0,e.useMemo)(()=>a.assistantMessages.some(a=>{let{isTruncated:b}=H(a.content);return b}),[a.assistantMessages]),p=(0,e.useCallback)(()=>{f&&f()},[f]),q=(0,e.useMemo)(()=>{let b="pending"===a.status?"pending":"orphan"===a.status?"orphan border-l-4 border-warning":"";return`border border-border rounded-lg overflow-hidden mb-4 transition-colors ${b}`.trim()},[a.status]),r=a.userMessage?m("conversation.conversationLabel",{preview:`${a.userMessage.content.substring(0,50)}${a.userMessage.content.length>50?"...":""}`}):m("conversation.systemMessageLabel");return(0,d.jsxs)("div",{"data-testid":"conversation-pair-card",role:"article","aria-label":r,className:q,children:["orphan"===a.status&&(0,d.jsx)(O,{}),a.userMessage&&(0,d.jsx)(L,{message:a.userMessage,onFilePathClick:b,onCopy:h,onInsertToMessage:i,onRetryPending:k,onDiscardPending:l}),"pending"!==a.status||n?j&&a.assistantMessages.length>0?(0,d.jsx)(N,{messages:a.assistantMessages,isExpanded:c,onFilePathClick:b,onCopy:h,hasLongContent:o,onToggleExpand:p}):null:(0,d.jsx)("div",{className:"bg-muted/40 border-l-2 border-border p-3 border-t border-border",children:(0,d.jsx)(K,{})})]})});var Q=c(27412),R=c(3754),S=c(63156),T=c(55948),U=c(93777),V=c(13074),W=c(33977),X=c(11801),Y=c(88826);function Z(){let a=(0,g.c)("worktree");return(0,d.jsx)("div",{"data-testid":"loading-indicator",role:"status","aria-label":a("history.loading"),children:[0,1,2].map(a=>(0,d.jsxs)("div",{className:"mb-4 overflow-hidden rounded-lg border border-border",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2 p-3",children:[(0,d.jsx)(n.EA,{className:"h-4 w-4 rounded-full"}),(0,d.jsx)(n.EA,{className:"h-4 w-1/3"})]}),(0,d.jsxs)("div",{className:"space-y-2 px-3 pb-3",children:[(0,d.jsx)(n.EA,{className:"h-3 w-full"}),(0,d.jsx)(n.EA,{className:"h-3 w-5/6"}),(0,d.jsx)(n.EA,{className:"h-3 w-2/3"})]})]},a))})}function $(){let a=(0,g.c)("worktree");return(0,d.jsxs)("div",{className:"flex flex-col items-center justify-center py-8 text-muted-foreground",children:[(0,d.jsx)("svg",{className:"w-12 h-12 mb-2 opacity-50",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24","aria-hidden":"true",children:(0,d.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:1.5,d:"M8 12h.01M12 12h.01M16 12h.01M21 12c0 4.418-4.03 8-9 8a9.863 9.863 0 01-4.255-.949L3 20l1.395-3.72C3.512 15.042 3 13.574 3 12c0-4.418 4.03-8 9-8s9 3.582 9 8z"})}),(0,d.jsx)("p",{className:"text-sm",children:a("history.empty")})]})}let _=["h-full","flex","flex-col","overflow-hidden","bg-surface-2","rounded-lg","border","border-border"],aa=(0,e.memo)(function({messages:a,worktreeId:b,worktreePath:c,onFilePathClick:f,isLoading:q=!1,className:r="",showToast:s,onInsertToMessage:t,onRetryPending:u,onDiscardPending:v,showArchived:w=!1,onShowArchivedChange:x,historyDisplayLimit:y,onHistoryDisplayLimitChange:z,historyUserOnly:A=!1,onHistoryUserOnlyChange:B,onCollapse:C,splitIndex:D,cliToolId:E}){let F=(0,g.c)("worktree"),G=(0,e.useRef)(null),H=(0,V.O)(),I=c??H.worktreePath,J=(0,e.useMemo)(()=>void 0===D?W.Gw:(0,W.eu)(D),[D]),K=void 0===D?"history-pane-collapse-button":`history-pane-collapse-button-${D}`,L=void 0===D?R.g6:(0,o.Ce)(D),M=(0,e.useRef)(!0),N=(0,e.useRef)(-1),O=(0,e.useRef)(null),{pairs:aa,isExpanded:ab,toggleExpand:ac}=function(a){let b=(0,e.useMemo)(()=>(function(a){if(0===a.length)return[];let b=[...a].sort((a,b)=>a.timestamp.getTime()-b.timestamp.getTime()),c=[],d=null;for(let a of b)if("user"===a.role)d={id:a.id,userMessage:a,assistantMessages:[],status:"pending"},c.push(d);else if("assistant"===a.role)if(d&&null!==d.userMessage)d.assistantMessages.push(a),d.status="completed";else if(d&&null===d.userMessage)d.assistantMessages.push(a);else{let b={id:`orphan-${a.id}`,userMessage:null,assistantMessages:[a],status:"orphan"};c.push(b),d=b}return c})(a),[a]),[c,d]=(0,e.useState)(new Set),f=(0,e.useCallback)(a=>{d(b=>{let c=new Set(b);return c.has(a)?c.delete(a):c.add(a),c})},[]),g=(0,e.useCallback)(a=>c.has(a),[c]),h=(0,e.useCallback)(()=>{d(new Set(b.map(a=>a.id)))},[b]);return{pairs:b,expandedPairs:c,toggleExpand:f,isExpanded:g,expandAll:h,collapseAll:(0,e.useCallback)(()=>{d(new Set)},[])}}(a),ad=(0,e.useMemo)(()=>a.filter(a=>!a.archived&&"string"==typeof a.content&&a.content.length>0&&(!A||"user"===a.role)),[a,A]),{isOpen:ae,query:af,matchCount:ag,currentIndex:ah,isAtMaxMatches:ai,matchPositions:aj,currentMatch:ak,openSearch:al,closeSearch:am,setQuery:an,onCompositionStart:ao,onCompositionEnd:ap,nextMatch:aq,prevMatch:ar}=(0,p.w)({messages:ad}),as=ae&&aj.length>0,at=(0,e.useMemo)(()=>a.filter(a=>"relay"===a.messageType).length,[a]),[au,av]=(0,e.useState)(new Set);(0,e.useEffect)(()=>{am()},[b]);let aw=(0,e.useMemo)(()=>A?aa.filter(a=>a.userMessage):aa,[aa,A]),ax=(0,e.useMemo)(()=>{let a=new Map;for(let b of aw)for(let c of(b.userMessage&&a.set(b.userMessage.id,b.id),b.assistantMessages))a.set(c.id,b.id);return a},[aw]),ay=(0,e.useMemo)(()=>{let a=new Map;return aw.forEach((b,c)=>a.set(b.id,c)),a},[aw]),az=(0,h.Te)({count:aw.length,getScrollElement:()=>G.current,estimateSize:()=>Y.__,overscan:Y.b,getItemKey:a=>aw[a]?.id??a}),aA=az.getVirtualItems(),aB=aA.length>0?`${aA[0].index}-${aA[aA.length-1].index}`:"",aC=(0,e.useCallback)(()=>{let a=G.current;a&&(M.current=(0,Y.Mp)({scrollTop:a.scrollTop,scrollHeight:a.scrollHeight,clientHeight:a.clientHeight}))},[]);(0,e.useLayoutEffect)(()=>{let a=N.current,b=aw.length;N.current=b,-1!==a&&b>a&&b>0&&M.current&&!as&&az.scrollToIndex(b-1,{align:"end"})},[aw.length,as,az]),(0,e.useLayoutEffect)(()=>{if(!ae||0===aj.length)return void av(a=>0===a.size?a:new Set);av(function(a,b){let c=new Map;for(let a of b)for(let b of(a.userMessage&&c.set(a.userMessage.id,a.id),a.assistantMessages))c.set(b.id,a.id);let d=new Set;for(let b of a){let a=c.get(b.messageId);a&&d.add(a)}return d}(aj,aa))},[ae,aj,aa]),(0,e.useEffect)(()=>{if(!ae||!ak)return;let a=ax.get(ak.messageId);if(void 0===a)return;let b=ay.get(a);void 0!==b&&az.scrollToIndex(b,{align:"center"})},[ae,ak,ax,ay,az]),(0,e.useLayoutEffect)(()=>{let a=G.current;if(!a)return;if(!ae||0===aj.length)return void(0,W.fq)(J);let b=null;for(let d of aj){var c;let e=(c=d.messageId,a.querySelector(`[data-message-id="${CSS.escape(c)}"]`));if(!e)continue;let f=ak?.messageId===d.messageId,g=f?ak.localIndex:-1;(0,W.Gg)(e,d.ranges,g,J),f&&e instanceof HTMLElement&&(b=e)}return b&&"function"==typeof b.scrollIntoView&&b.scrollIntoView({block:"center",behavior:"smooth"}),()=>{(0,W.fq)(J)}},[ae,aj,ak,au,J,aB]),(0,e.useEffect)(()=>{let a=G.current;if(ae)null===O.current&&a&&(O.current=a.scrollTop);else{if(null!==O.current&&a){let b=O.current;requestAnimationFrame(()=>{a.scrollTop=b})}O.current=null}},[ae]);let aD=(0,e.useMemo)(()=>[..._,r].filter(Boolean).join(" "),[r]),aE=(0,e.useRef)(F);aE.current=F;let aF=(0,e.useCallback)(a=>{let c=(0,T.h)(a,I);null!==c&&(async()=>{if("missing"===await (0,U.o4)(b,c))return s?.(aE.current("conversation.filePathMissing"),"error");f(c)})()},[f,b,I,s]),aG=(0,e.useCallback)(a=>()=>ac(a),[ac]),aH=(0,e.useCallback)(async a=>{try{await (0,S.l)(a),s?.(aE.current("history.copied"),"success")}catch{console.error("[HistoryPane] Failed to copy to clipboard"),s?.(aE.current("history.copyFailed"),"error")}},[s]),aI=a=>{let b=a.userMessage?.archived===!0||a.assistantMessages?.some(a=>!0===a.archived),c=ab(a.id)||au.has(a.id);return(0,d.jsx)("div",{className:b?"opacity-60":"",children:(0,d.jsx)(P,{pair:a,onFilePathClick:aF,isExpanded:c,onToggleExpand:aG(a.id),onCopy:aH,onInsertToMessage:t,onRetryPending:u,onDiscardPending:v,showAssistant:!A})})},aJ=(0,e.useCallback)(a=>{let b=parseInt(a.target.value,10);(0,X.UK)(b)&&z?.(b)},[z]),aK=(0,e.useCallback)(()=>{ae?am():al()},[ae,al,am]);return(0,d.jsxs)("div",{role:"region","aria-label":F("history.regionLabel"),className:aD,children:[(0,d.jsxs)("div",{className:"flex-shrink-0 bg-surface-2 border-b border-border px-4 py-2 flex items-center justify-between flex-wrap gap-1",children:[(0,d.jsx)("h3",{className:"text-sm font-medium text-foreground",children:F("history.title")}),at>0&&(0,d.jsxs)("span",{"data-testid":"history-relay-count",title:F("relay.historyBadgeTitle"),className:"flex items-center gap-1 text-xs text-muted-foreground",children:[(0,d.jsx)(i.A,{size:12,className:"shrink-0","aria-hidden":"true"}),F("relay.historyCount",{count:at})]}),(0,d.jsxs)("div",{className:"flex items-center gap-2 flex-wrap",children:[z&&void 0!==y&&(0,d.jsxs)("label",{className:"flex items-center gap-1.5 text-xs text-muted-foreground cursor-pointer",children:[(0,d.jsx)("span",{children:F("history.show")}),(0,d.jsx)("select",{value:y,onChange:aJ,"aria-label":F("history.displayLimit"),className:"rounded border border-input bg-surface text-foreground text-xs px-1.5 py-0.5 focus:outline-none focus:ring-1 focus:ring-ring",children:X.dl.map(a=>(0,d.jsx)("option",{value:a,children:a},a))})]}),x&&(0,d.jsxs)("label",{className:"flex items-center gap-1.5 text-xs text-muted-foreground cursor-pointer",children:[(0,d.jsx)(n.Sc,{checked:w,onCheckedChange:a=>x(!0===a),className:"h-3.5 w-3.5"}),F("history.showArchived")]}),B&&(0,d.jsx)("button",{type:"button",onClick:()=>B(!A),"aria-label":F("history.showUserOnly"),"aria-pressed":A,className:`p-1 rounded transition-colors ${A?"bg-accent-500/15 text-accent-700 dark:text-accent-300":"text-muted-foreground hover:text-foreground"}`,title:F(A?"history.showAllMessages":"history.showUserOnly"),children:A?(0,d.jsx)(j.A,{size:14,"aria-hidden":"true"}):(0,d.jsx)(k.A,{size:14,"aria-hidden":"true"})}),(0,d.jsx)("button",{type:"button",onClick:aK,"aria-label":F(ae?"history.closeSearch":"history.openSearch"),"aria-pressed":ae,className:"p-1 text-muted-foreground hover:text-foreground rounded transition-colors",title:F(ae?"history.closeSearch":"history.openSearch"),children:(0,d.jsx)(l.A,{size:14,"aria-hidden":"true"})}),C&&(0,d.jsx)("button",{type:"button",onClick:C,"aria-label":F("terminal.hideHistory"),"aria-expanded":"true","aria-controls":L,className:"p-1 text-muted-foreground hover:text-foreground rounded transition-colors",title:F("terminal.hideHistory"),"data-testid":K,children:(0,d.jsx)(m.A,{size:14,"aria-hidden":"true"})})]})]}),ae&&(0,d.jsx)("div",{className:"flex-shrink-0 px-3 py-2 bg-surface-2 border-b border-border",children:(0,d.jsx)(Q.Y,{query:af,onQueryChange:an,matchCount:ag,currentIndex:ah,onNext:aq,onPrev:ar,onClose:am,isAtMaxMatches:ai,onCompositionStart:ao,onCompositionEnd:ap})}),(0,d.jsx)("div",{ref:G,"data-testid":"history-scroll-container",onScroll:aC,className:"flex-1 min-h-0 overflow-y-auto overflow-x-hidden p-4",children:q?(0,d.jsx)(Z,{}):0===aw.length?(0,d.jsx)($,{}):0===aA.length?(0,d.jsx)("div",{"data-testid":"history-fallback-list",children:aw.slice(0,Y.vC).map(a=>(0,d.jsx)("div",{children:aI(a)},a.id))}):(0,d.jsx)("div",{style:{height:az.getTotalSize(),width:"100%",position:"relative"},children:aA.map(a=>{let b=aw[a.index];return b?(0,d.jsx)("div",{"data-index":a.index,ref:az.measureElement,className:"absolute left-0 top-0 w-full",style:{transform:`translateY(${a.start}px)`},children:aI(b)},a.key):null})})})]})})},40922:(a,b,c)=>{c.d(b,{GV:()=>w,rS:()=>x,nY:()=>s});var d=c(81868);let e=String.raw`←\s*(?:[☐☒☑][^←→☐☒☑✔]*)+✔\s*Submit\s*→`,f=RegExp(`^${e}\\s*`);RegExp(`^\\s?${e}$`);let g=/\s*Ready to submit your answers\?\s*$/,h=/^Review your answers\s*/,i=/●\s*([^●→]+)/g,j=/^submit answers$/i,k=/^cancel$/i,l={human:5,auto:4,terminal:3,pending:2,unclassified:1,unknown:0};function m(a){return"object"==typeof a&&null!==a?a:null}function n(a,b){let c=a?.[b];return"string"==typeof c?c:""}function o(a){if(!Array.isArray(a))return[];let b=[];for(let c of a){if("string"==typeof c){b.push(c);continue}let a=n(m(c),"label");a&&b.push(a)}return b}function p(a){return a.replace(/\s+/g," ").trim()}function q(a){return a.length<=160?a:`${a.slice(0,159).trimEnd()}…`}function r(a){return p(a).replace(f,"").trim()}function s(a){return a?.messageType==="prompt"}function t(a){let b=a?.summary;return"string"==typeof b&&b.startsWith("PermissionRequest allow")}function u(a){return{...a,messageIds:[...a.messageIds],reviewQuestions:[...a.reviewQuestions]}}function v(a,b,c){if(a<=0||b<=0)return!1;let d=b-a;return d>=0&&d<=c}function w(a,b={}){let{windowMs:c=5e3,runIds:e}=b;return function(a,b=5e3){let c=[];for(let d of a){if("question"===d.kind){let a=c[c.length-1];if("confirmation"===d.phase){if(a&&"question"===a.kind&&"question"===a.phase&&a.scopeKey===d.scopeKey&&a.runId===d.runId&&""!==a.questionText&&d.reviewQuestions.includes(a.questionText)&&v(a.timestampMs,d.timestampMs,b)){a.messageIds.push(...d.messageIds),a.confirmationOutcome=d.outcome;continue}c.push(u(d));continue}if(a&&"question"===a.kind&&"question"===a.phase&&""!==d.mergeKey&&a.mergeKey===d.mergeKey&&a.runId===d.runId&&v(a.timestampMs,d.timestampMs,b)){a.messageIds.push(...d.messageIds),a.label||(a.label=d.label),l[d.outcome]>l[a.outcome]&&(a.outcome=d.outcome);continue}c.push(u(d));continue}let a=d.mergeKey?c.find(a=>"approval"===a.kind&&a.mergeKey===d.mergeKey&&Math.abs(d.timestampMs-a.timestampMs)<=b):void 0;if(!a){c.push(u(d));continue}a.messageIds.push(...d.messageIds),a.isPermissionAudit=a.isPermissionAudit||d.isPermissionAudit,a.label||(a.label=d.label),l[d.outcome]>l[a.outcome]&&(a.outcome=d.outcome)}return c}(a.map(a=>(function(a,b=0){let c,e,f=m(a.promptData),l=t(a),s=n(f,"question"),u=n(f,"approvalTarget"),v=n(f,"answeredBy"),w=n(f,"status"),x=n(f,"type"),y="string"==typeof a.summary?a.summary:"",z=function(a,b){let c=r(a),d=g.test(c),e=o(b),f=c.replace(g,"").replace(h,"").trim();return{hasTail:d,hasSubmitOptions:e.some(a=>j.test(a.trim()))&&e.some(a=>k.test(a.trim())),reviewQuestions:[...f.matchAll(i)].map(a=>(a[1]??"").trim()).filter(a=>a.length>0)}}(s,f?.options),{kind:A,phase:B}=t(a)?{kind:"approval"}:f?.isAskUserQuestion===!0?{kind:"question",phase:z.hasTail||z.hasSubmitOptions?"confirmation":"question"}:z.hasTail&&(z.hasSubmitOptions||z.reviewQuestions.length>0)?{kind:"question",phase:"confirmation"}:{kind:"approval"};c=l?"auto":"auto"===v||"human"===v||"terminal"===v?v:x===d.LT||"unclassified"===w?"unclassified":"pending"===w?"pending":"unknown";let C=function(a){let b="string"==typeof a.cliToolId&&a.cliToolId?a.cliToolId:"claude",c="string"==typeof a.instanceId&&a.instanceId?a.instanceId:b;return JSON.stringify(["string"==typeof a.worktreeId?a.worktreeId:"",b,c])}(a),D="question"===A&&"question"===B,E=D?r(s):"",F="question"===A&&"confirmation"===B&&1===z.reviewQuestions.length?z.reviewQuestions[0]:"";e="question"===A?q(D?E:F):q(p(s||y));let G="";if(D){let a=m(f?.askUserQuestion),b="number"==typeof a?.questionIndex?a.questionIndex:null;G=E?JSON.stringify(["question",C,E,b,o(f?.options)]):""}else"approval"===A&&(G=s?JSON.stringify([s,u]):"");return{id:a.id,messageIds:[a.id],label:e,outcome:c,isPermissionAudit:l,timestampMs:function(a){if(a instanceof Date){let b=a.getTime();return Number.isFinite(b)?b:0}if("string"==typeof a||"number"==typeof a){let b=new Date(a).getTime();return Number.isFinite(b)?b:0}return 0}(a.timestamp),mergeKey:G,kind:A,...B?{phase:B}:{},questionText:E,reviewQuestions:z.reviewQuestions,scopeKey:C,runId:b}})(a,e?.get(a.id)??0)),c)}function x(a){let b=0,c=0,d=0;for(let e of a)"question"!==e.kind?b+=1:"confirmation"===e.phase?d+=1:c+=1;return{approvals:b,questions:c,confirmations:d,total:a.length}}},44489:(a,b,c)=>{c.d(b,{CG:()=>g,Dk:()=>i,Uw:()=>h});var d=c(7879);let e=/\x1b\[([0-9;]*)m/g;function f(a){return""===(0,d.aJ)(a).trim()}function g(a){return f(a)&&""!==(0,d.aJ)(a)&&function(a){let b;for(e.lastIndex=0;null!==(b=e.exec(a));)if(function(a){let b=0;for(;b<a.length;){let c=a[b];if(38===c||48===c||58===c){if(48===c)return!0;let d=a[b+1];b+=5===d?3:2===d?5:2;continue}if(c>=40&&c<=47||c>=100&&c<=107)return!0;b+=1}return!1}(b[1].split(";").filter(a=>""!==a).map(a=>Number(a)).filter(a=>Number.isInteger(a))))return!0;return!1}(a)}function h(a,b={}){if(""===a)return"";let{isStructuralRow:c}=b,e=a.split("\n"),g=[],i=!1,j=0,k=a=>f(a)&&!c?.(a);for(;j<e.length;){if(!k(e[j])){g.push(e[j]),i=!0,j++;continue}let a=j;for(;a<e.length&&k(e[a]);)a++;let b=a-j,c=!i,f=a>=e.length;if(!c&&!f)if(b<=2)for(let b=j;b<a;b++)g.push(e[b]);else g.push((0,d.x6)(e.slice(j,a).join("")));j=a}return g.join("\n")}function i(a){return h(a,{isStructuralRow:g})}},50391:(a,b,c)=>{c.d(b,{B:()=>f});var d=c(38301),e=c(58970);function f(a,b,c,f){return(0,d.useCallback)(d=>{let g=c&&c!==b?{cliToolId:b,keys:d,instanceId:c}:{cliToolId:b,keys:d};fetch(`/api/worktrees/${encodeURIComponent(a)}/special-keys`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(g)}).then(()=>{f&&setTimeout(f,e.LK)}).catch(a=>{console.error("Failed to send special keys:",a)})},[a,b,c,f])}},54228:(a,b,c)=>{c.d(b,{Fx:()=>g,Uq:()=>i,bg:()=>h,fw:()=>f,g8:()=>j});var d=c(58569),e=c(71256);function f(a,b){let c=new Date(a);return isNaN(c.getTime())?"":(0,d.m)(c,{addSuffix:!0,...b?{locale:b}:{}})}function g(a){let b=new Date(a);if(isNaN(b.getTime()))return"";let c=Math.round((Date.now()-b.getTime())/1e3);if(c<45)return"now";let d=Math.round(c/60);if(d<60)return`${d}m ago`;let e=Math.round(d/60);if(e<24)return`${e}h ago`;let f=Math.round(e/24);return f<7?`${f}d ago`:f<30?`${Math.round(f/7)}w ago`:f<365?`${Math.round(f/30)}mo ago`:`${Math.round(f/365)}y ago`}function h(a,b){return!(a instanceof Date)||isNaN(a.getTime())?"":(0,e.GP)(a,"PPp",b?{locale:b}:void 0)}function i(a,b=new Date){if(!(a instanceof Date)||isNaN(a.getTime()))return"";let c=b instanceof Date&&!isNaN(b.getTime())?b:new Date,d=a.getFullYear()===c.getFullYear()&&a.getMonth()===c.getMonth()&&a.getDate()===c.getDate();return(0,e.GP)(a,d?"HH:mm":"M/d HH:mm")}function j(a,b,c=new Date){if(!l(a))return"";let d=l(c)?c:new Date,f=l(b)?b:null,g=m(a,d)&&(null===f||m(f,d)&&m(f,a))?"HH:mm":"M/d HH:mm",h=(0,e.GP)(a,g);if(null===f)return h;let i=(0,e.GP)(f,g);return i===h?h:`${i}${k}${h}`}let k=" → ";function l(a){return a instanceof Date&&!isNaN(a.getTime())}function m(a,b){return a.getFullYear()===b.getFullYear()&&a.getMonth()===b.getMonth()&&a.getDate()===b.getDate()}},55948:(a,b,c)=>{c.d(b,{h:()=>k,z:()=>i});var d=c(82620);let e=/^(https?|mailto|tel|file):/i,f=/^[a-zA-Z][a-zA-Z0-9+.-]*:/,g=/^file:\/\/(localhost)?/i,h=/:\d+(?::\d+)?$/;function i(a){let b=(0,d.d3)(a.trim());return b?b.startsWith("#")?"anchor":g.test(b)?"file":f.test(b)&&!e.test(b)?null:"external"===(0,d.dj)(b)?"external":"file":null}function j(a){let b=[];for(let c of a.split("/"))if(""!==c&&"."!==c){if(".."===c){b.pop();continue}b.push(c)}return b.join("/")}function k(a,b){var c;if("file"!==i(a))return null;let d=(function(a){try{return decodeURIComponent(a)}catch{return a}})((function(a){let b=a.indexOf("#");return -1===b?a:a.slice(0,b)})(a.trim().replace(g,"")).replace(h,"")).trim();if(!d)return null;if(!d.startsWith("/"))return j(d)||null;let e=b?(c=b.trim()).length>1&&c.endsWith("/")?c.replace(/\/+$/,""):c:"";return e&&e.startsWith("/")?d===e?null:d.startsWith(`${e}/`)?j(d.slice(e.length+1))||null:d:d}},56308:(a,b,c)=>{c.d(b,{Md:()=>g});var d=c(38301),e=c(74930);c(12055);var f=c(89983);function g({worktreeId:a,cliToolId:b,instanceId:c,limit:g,includeArchived:h=!1,enabled:i=!0,cadence:j=f.tC}){let[k,l]=(0,d.useState)([]),[m,n]=(0,d.useState)(!0),{connected:o,subscribe:p,unsubscribe:q,addListener:r}=(0,e.xM)(),s=c??b,t=(0,d.useRef)(0),u=(0,d.useRef)(b);u.current=b;let v=(0,d.useRef)(s);v.current=s,(0,d.useRef)(g).current=g,(0,d.useRef)(h).current=h;let w=(0,d.useRef)(new Map),x=(0,d.useCallback)(async()=>{let c=++t.current,d=new Map;w.current=d;try{let e=new URLSearchParams({cliTool:b,instance:s,unit:"pairs"});void 0!==g&&e.set("limit",String(g)),h&&e.set("includeArchived","true");let f=await fetch(`/api/worktrees/${a}/messages?${e.toString()}`);if(!f.ok)return;let i=await f.json();if(t.current!==c||u.current!==b||v.current!==s)return;let j=i.map(a=>({...a,timestamp:new Date(a.timestamp)}));for(let a of d.values())j=function(a,b,c){let d=a.findIndex(a=>a.id===b.id),e=[...a];d>=0?e[d]=b:e.push(b);var f=[...e].sort((a,b)=>a.timestamp.getTime()-b.timestamp.getTime());if(void 0===c||c<1)return f;let g=f.filter(a=>"user"===a.role).map(a=>a.timestamp.getTime()).sort((a,b)=>b-a);if(g.length<=c)return f;let h=g[c-1];return f.filter(a=>a.timestamp.getTime()>=h)}(j,a,g);w.current===d&&(w.current=new Map),l(j),n(!1)}catch(a){if(t.current!==c||u.current!==b||v.current!==s)return;console.error("[useSplitMessages] fetch error:",a),n(!1)}},[a,b,s,g,h]),y=`${a}::${b}::${s}`;return(0,d.useRef)(y),{messages:k,isLoading:m,refresh:(0,d.useCallback)(()=>x(),[x])}}f.tC.pollMs,f.tC.wsFallbackMs},59581:(a,b,c)=>{function d(a){return"running"===a||"generating"===a||"waiting"===a}function e(a){return a.isActive||d(a.status)}function f(a,b){let c=a.map((a,b)=>({it:a,index:b})).filter(({it:a})=>e(a)),d=new Set;return b>0&&c.length>0&&[...c].sort((a,b)=>Number(b.it.isActive)-Number(a.it.isActive)||a.index-b.index).slice(0,b).forEach(({index:a})=>d.add(a)),a.map((a,b)=>e(a)?{...a,slot:d.has(b)?"pill":"overflow"}:{...a,slot:"dot"})}c.d(b,{Lm:()=>e,Qo:()=>d,Uw:()=>f})},59762:(a,b,c)=>{c.d(b,{NK:()=>q});var d=c(38301),e=c(74930),f=c(7879);let g=/^[>❯]/,h=/^\u203A/;function i(a){return void 0===a||""===(0,f.aJ)(a).trim()}function j(a){let b=[],c={dim:!1,bold:!1},d=0;for(;d<a.length;){let e=a[d];if("\x1b"!==e){b.push({ch:e,dim:c.dim,bold:c.bold}),d++;continue}let f=a[d+1];if("["===f){let b=d+2;for(;b<a.length&&!/[A-Za-z]/.test(a[b]);)b++;if(b>=a.length)break;"m"===a[b]&&(c=function(a,b){let c=""===a?["0"]:a.split(";"),{dim:d,bold:e}=b;for(let a=0;a<c.length;a++){let b=""===c[a]?0:Number(c[a]);if(!Number.isNaN(b)){if(38===b||48===b||58===b){let b=""===c[a+1]||void 0===c[a+1]?-1:Number(c[a+1]);5===b?a+=2:2===b?a+=4:a+=1;continue}0===b||22===b?(d=!1,e=!1):1===b?e=!0:2===b&&(d=!0)}}return{dim:d,bold:e}}(a.slice(d+2,b),c)),d=b+1;continue}if("]"===f){let b=d+2;for(;b<a.length;){if("\x07"===a[b]){b++;break}if("\x1b"===a[b]&&"\\"===a[b+1]){b+=2;break}b++}d=b;continue}d+=2}return b}let k=new Set(["claude","codex"]);function l(a){let b=a.length;for(;b>0&&""===a[b-1].trim();)b--;return a.slice(0,b)}var m=c(89983);m.$C.activeMs,m.$C.idleMs,m.$C.wsFallbackMs;let n={session:null,context:null,diff:null};function o(a){let b=a.session,c=a.context,d=a.diff;return JSON.stringify([b?.title??null,b?.agent??null,b?.model??null,b?.cost??null,b?.tokens??null,c?.tokens??null,c?.limit??null,c?.percent??null,d?.turnMessageId??null,d?.revertedMessageId??null,d?.files.map(p)??null,d?.revertedFiles.map(p)??null])}function p(a){return`${a.file??""}:${a.status??""}:${a.additions}:${a.deletions}`}function q({worktreeId:a,cliToolId:b,instanceId:c,enabled:p=!0,cadence:q=m.$C}){let r=c??b,[s,t]=(0,d.useState)(()=>({output:"",realtimeSnippet:"",isRunning:!1,isThinking:!1,sessionStatus:"",isSelectionListActive:!1,isPagerActive:!1,isDismissablePanelActive:!1,isUnclassifiedActive:!1,composerText:"",attaching:!0,autoScroll:!0})),[u,v]=(0,d.useState)(()=>({visible:!1,data:null,messageId:null,answering:!1})),[w,x]=(0,d.useState)(n),y=(0,d.useRef)(0),z=(0,d.useRef)(b);z.current=b;let A=(0,d.useRef)(r);A.current=r;let B=(0,d.useRef)(u.visible);B.current=u.visible;let{connected:C,subscribe:D,unsubscribe:E,addListener:F}=(0,e.xM)();(0,d.useRef)(0);let G=(0,d.useRef)(0),H=(0,d.useRef)(null),I=(0,d.useRef)(null),[J,K]=(0,d.useState)(!1);(0,d.useCallback)(()=>{K(!0),null!==I.current&&clearTimeout(I.current),I.current=setTimeout(()=>{I.current=null,K(!1)},5e3)},[]);let L=(0,d.useCallback)(a=>{let b=a.fullOutput??a.realtimeSnippet??"";!0===a.isUnclassifiedActive&&!0!==a.isPromptWaiting&&!0!==a.isSelectionListActive&&!0!==a.isPagerActive&&!0!==a.isDismissablePanelActive?(G.current+=1,H.current??=Date.now()):(G.current=0,H.current=null);let c=G.current>=2&&null!==H.current&&Date.now()-H.current>=500,d=a.isRunning?function(a,b){if(!k.has(b))return{text:"",state:"unsupported_tool"};let c=a.split("\n"),d=function(a,b){if("claude"===b){let b=function(a){let b=a=>/^─{10,}$/.test((0,f.aJ)(a).trimEnd()),c=a.length-1;for(;c>=0&&""===a[c].trim();)c--;if(c<0)return null;let d=-1;for(let e=c;e>=Math.max(0,c-4);e--)if(b(a[e])){d=e;break}if(d<0)return null;let e=-1;for(let c=d-1;c>=Math.max(0,d-40);c--)if(b(a[c])){e=c;break}return e<0||!g.test((0,f.aJ)(a[e+1]??""))?null:{openingSeparator:e,closingSeparator:d}}(a);return null===b?null:{firstRow:b.openingSeparator+1,lastRow:b.closingSeparator-1,glyph:g}}let c=function(a){let b=a.length-1;for(;b>=0&&i(a[b]);)b--;if(b<0)return null;for(let c=0;c<4&&b>=0;c++){let c=b,d=b;for(;d>0&&!i(a[d-1]);)d--;if(function(a){if(void 0===a)return!1;let b=j(a);if(0===b.length||"›"!==b[0].ch||b[0].dim||b.length>1&&" "!==b[1].ch)return!1;let c=b.slice(2).find(a=>" "!==a.ch);return void 0===c||!c.bold}(a[d]))return{firstRow:d,lastRow:Math.min(c,d+40-1)};for(b=d-1;b>=0&&i(a[b]);)b--}return null}(a);return null===c?null:{firstRow:c.firstRow,lastRow:c.lastRow,glyph:h}}(c,b);if(null===d)return{text:"",state:"no_composer"};let e=[],m=[];for(let a=d.firstRow;a<=d.lastRow;a++){let b=function(a,b,c){if(b){let b=a.findIndex(a=>c.test(a.ch));if(b<0)return a;let d=b+1;return d<a.length&&/\s/.test(a[d].ch)&&d++,a.slice(d)}let d=0;for(;d<2&&d<a.length&&" "===a[d].ch;)d++;return a.slice(d)}(j(c[a]??""),a===d.firstRow,d.glyph);e.push(b.filter(a=>!a.dim).map(a=>a.ch).join("").trimEnd()),m.push(b.map(a=>a.ch).join("").trimEnd())}let n=l(e).join("\n");return""!==n.trim()?{text:n.slice(0,2e3),state:"content"}:{text:"",state:""===l(m).join("\n").trim()?"empty":"ghost"}}(b,z.current).text:"";t(e=>{let f=!1===a.isRunning,g=!!b||!!a.isRunning||f;return{...e,output:g?b:e.output,realtimeSnippet:a.realtimeSnippet??"",isRunning:a.isRunning??!1,isThinking:a.thinking??!1,sessionStatus:a.sessionStatus??e.sessionStatus,isSelectionListActive:a.isSelectionListActive??!1,isPagerActive:a.isPagerActive??!1,isDismissablePanelActive:a.isDismissablePanelActive??!1,isUnclassifiedActive:c,composerText:d,attaching:!1}}),a.isPromptWaiting&&a.promptData?v(b=>({...b,visible:!0,data:a.promptData??b.data,messageId:b.messageId??`prompt-${Date.now()}`})):!a.isPromptWaiting&&B.current&&v({visible:!1,data:null,messageId:null,answering:!1})},[]),M=(0,d.useCallback)(async()=>{let c=++y.current;try{let d=await fetch(`/api/worktrees/${a}/current-output?cliTool=${b}&instance=${encodeURIComponent(r)}`);if(!d.ok)return;let e=await d.json();if(y.current!==c||z.current!==b||A.current!==r||e.cliToolId&&e.cliToolId!==b)return;L(e);let f={session:e.structuredEvents?.session??null,context:e.structuredEvents?.sessionContext??null,diff:e.structuredEvents?.sessionDiff??null};x(a=>o(a)===o(f)?a:f)}catch(a){if(y.current!==c||z.current!==b||A.current!==r)return;console.error("[useTerminalPanePolling] fetch error:",a)}},[a,b,r,L]),N=`${a}::${b}::${r}`;(0,d.useRef)(N);let O=(0,d.useCallback)(a=>{t(b=>b.autoScroll===a?b:{...b,autoScroll:a})},[]),P=(0,d.useCallback)(a=>{v(b=>({...b,answering:a}))},[]);return{terminal:s,prompt:u,agentSession:w,setAutoScroll:O,setPromptAnswering:P,clearPrompt:(0,d.useCallback)(()=>{v({visible:!1,data:null,messageId:null,answering:!1})},[]),refresh:(0,d.useCallback)(()=>M(),[M])}}},61916:(a,b,c)=>{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}}},65468:(a,b,c)=>{c.d(b,{QN:()=>k,Qu:()=>j,bx:()=>h});let d="claude-turn:",e="antigravity-turn:",f="command-code-turn:",g=["oc-turn:",d,"codex-turn:",e,f];function h(a){return"string"==typeof a&&g.some(b=>a.startsWith(b))}let i=[[d,"claude-prompt:"],[e,"antigravity-prompt:"],[f,"command-code-prompt:"]];function j(a){if("string"!=typeof a)return null;for(let b of g)if(a.startsWith(b))return 0===a.slice(b.length).trim().length?null:a;return null}function k(a){for(let[b,c]of i){if(!a.startsWith(b))continue;let d=a.slice(b.length);return 0===d.trim().length?null:`${c}${d}`}return null}},67471:(a,b,c)=>{c.d(b,{v4:()=>f});var d=c(38301);function e(a){let b=new Set;for(let c of a)"user"===c.role&&b.add(c.id);return b}function f({worktreeId:a,serverMessages:b,sendFn:c,onSent:f,timeoutMs:g=3e4,connectivity:h,resendGraceMs:i=250}){let[j,k]=(0,d.useState)([]),l=h?.offline??!1;h?.reachable;let m=(0,d.useRef)(b);m.current=b;let n=(0,d.useRef)(j);n.current=j;let o=(0,d.useRef)(f);o.current=f;let p=(0,d.useRef)(c);p.current=c;let q=(0,d.useRef)(l);q.current=l;let r=(0,d.useRef)(0),s=(0,d.useRef)(new Map),t=(0,d.useRef)(new Set),u=(0,d.useRef)(new Set);(0,d.useRef)(new Set);let v=(0,d.useCallback)(a=>{let b=s.current.get(a);void 0!==b&&(clearTimeout(b),s.current.delete(a))},[]),w=(0,d.useCallback)(a=>{v(a),k(b=>b.map(b=>b.tempId!==a||"sending"!==b.status?b:q.current&&!b.autoResendAttempted?b.queued?b:{...b,queued:!0}:{...b,status:"error",queued:!1}))},[v]),x=(0,d.useCallback)(a=>{v(a);let b=setTimeout(()=>{s.current.delete(a),w(a)},g);s.current.set(a,b)},[v,w,g]),y=(0,d.useCallback)(async a=>{x(a.tempId),t.current.add(a.tempId);try{await p.current(a.content,a.options),k(b=>b.map(b=>b.tempId!==a.tempId||b.accepted?b:{...b,accepted:!0})),o.current?.()}catch{w(a.tempId)}finally{t.current.delete(a.tempId)}},[x,w]),z=(0,d.useCallback)((a,b)=>{let c={tempId:`pending-${r.current++}`,content:a,options:b,timestamp:new Date,status:"sending",baselineUserIds:e(m.current),queued:!1,accepted:!1,autoResendAttempted:!1};k(a=>[...a,c]),y(c)},[y]),A=(0,d.useCallback)(a=>{let b=n.current.find(b=>b.tempId===a);if(!b)return;let c={...b,status:"sending",timestamp:new Date,baselineUserIds:e(m.current),queued:!1,accepted:!1,autoResendAttempted:!1};k(b=>b.map(b=>b.tempId===a?c:b)),y(c)},[y]),B=(0,d.useCallback)(a=>{let b=n.current.find(b=>b.tempId===a);return v(a),t.current.delete(a),k(b=>b.filter(b=>b.tempId!==a)),b?.content},[v]);(0,d.useRef)(!1);let[C,D]=(0,d.useState)(0),[E,F]=(0,d.useState)(0);return(0,d.useRef)(i).current=i,j.reduce((a,b)=>b.queued&&"sending"===b.status?a+1:a,0),{messages:(0,d.useMemo)(()=>{if(0===j.length)return b;let{reconciledTempIds:c}=function(a,b,c){let d=new Set,e=new Set,f=a.filter(a=>"sending"===a.status);if(0===f.length)return{reconciledTempIds:d,consumedServerIds:e};let g=b.filter(a=>"user"===a.role&&!c.has(a.id)).sort((a,b)=>a.timestamp.getTime()-b.timestamp.getTime()),h=new Set;for(let a of[...f].sort((a,b)=>a.timestamp.getTime()-b.timestamp.getTime())){let b=g.find(b=>!h.has(b.id)&&!a.baselineUserIds.has(b.id)&&b.content===a.content);b&&(h.add(b.id),d.add(a.tempId),e.add(b.id))}return{reconciledTempIds:d,consumedServerIds:e}}(j,b,u.current),d=j.filter(a=>!c.has(a.tempId)).map(b=>({id:b.tempId,worktreeId:a,role:"user",content:b.content,timestamp:b.timestamp,messageType:"normal",archived:!1,cliToolId:b.options.cliToolId,instanceId:b.options.instanceId,optimisticState:b.status}));return 0===d.length?b:[...b,...d]},[b,j,a]),pending:j,sendOptimistic:z,retry:A,discard:B}}},70107:(a,b,c)=>{c.d(b,{f:()=>k});var d=c(21124),e=c(38301),f=c(20481);let g=["relative","flex-shrink-0","bg-border","transition-colors","duration-150","hover:bg-accent-500","dark:hover:bg-accent-500","focus:outline-none","focus:ring-2","focus:ring-ring","focus:ring-offset-2","focus:ring-offset-background"],h=["w-1","h-full","cursor-col-resize","before:content-['']","before:absolute","before:inset-y-0","before:-inset-x-1"],i=["h-1","w-full","cursor-row-resize","before:content-['']","before:absolute","before:inset-x-0","before:-inset-y-1"];function j(a,b){return"touches"in a&&a.touches.length>0?b?a.touches[0].clientX:a.touches[0].clientY:"clientX"in a?b?a.clientX:a.clientY:0}let k=(0,e.memo)(function({onResize:a,orientation:b="horizontal",ariaValueNow:c=50,onDoubleClick:k,minRatio:l=.1}){let m=(0,f.c)("worktree"),[n,o]=(0,e.useState)(!1),p=(0,e.useRef)(0),q=(0,e.useRef)(null),r="horizontal"===b,s=(0,e.useCallback)(a=>{a.preventDefault(),o(!0),p.current=j(a,r)},[r]),t=(0,e.useCallback)(a=>{1===a.touches.length&&(o(!0),p.current=j(a,r))},[r]),u=(0,e.useCallback)(b=>{if(!n)return;let c=j(b,r);a(c-p.current),p.current=c},[n,r,a]),v=(0,e.useCallback)(b=>{if(!n||1!==b.touches.length)return;let c=j(b,r);a(c-p.current),p.current=c},[n,r,a]),w=(0,e.useCallback)(()=>{o(!1)},[]),x=(0,e.useCallback)(()=>{k&&k()},[k]),y=(0,e.useCallback)(b=>{let c=0;r?"ArrowRight"===b.key?c=10:"ArrowLeft"===b.key&&(c=-10):"ArrowDown"===b.key?c=10:"ArrowUp"===b.key&&(c=-10),0!==c&&(b.preventDefault(),a(c))},[r,a]);(0,e.useEffect)(()=>(n&&(document.addEventListener("mousemove",u),document.addEventListener("mouseup",w),document.addEventListener("touchmove",v),document.addEventListener("touchend",w),document.body.style.userSelect="none",document.body.style.cursor=r?"col-resize":"row-resize"),()=>{document.removeEventListener("mousemove",u),document.removeEventListener("mouseup",w),document.removeEventListener("touchmove",v),document.removeEventListener("touchend",w),document.body.style.userSelect="",document.body.style.cursor=""}),[n,u,w,v,r]);let z=(0,e.useMemo)(()=>[...g,...r?h:i,...n?["bg-accent-500","dark:bg-accent-500","dragging",r?"w-2":"h-2"]:[]].join(" "),[r,n]);return(0,d.jsx)("div",{ref:q,role:"separator","aria-orientation":b,"aria-valuenow":c,"aria-valuemin":0,"aria-valuemax":100,"aria-label":m("paneResizer.label",{arrows:m(r?"paneResizer.arrowsHorizontal":"paneResizer.arrowsVertical")}),tabIndex:0,className:z,onMouseDown:s,onTouchStart:t,onKeyDown:y,onDoubleClick:x})})},75071:(a,b,c)=>{c.d(b,{F5:()=>h,Fg:()=>d,HB:()=>f,Hv:()=>g});let d=0x1400000,e=[{extension:".png",mimeType:"image/png",magicBytes:[137,80,78,71]},{extension:".jpg",mimeType:"image/jpeg",magicBytes:[255,216,255]},{extension:".jpeg",mimeType:"image/jpeg",magicBytes:[255,216,255]},{extension:".gif",mimeType:"image/gif",magicBytes:[71,73,70,56]},{extension:".webp",mimeType:"image/webp",magicBytes:[82,73,70,70]},{extension:".svg",mimeType:"image/svg+xml"}];function f(a){return a?a.startsWith(".")?a.toLowerCase():"."+a.toLowerCase():""}let g=[".png",".jpg",".jpeg",".gif",".webp",".svg"].filter(a=>".svg"!==a),h=g.map(a=>(function(a){let b=f(a),c=e.find(a=>a.extension===b);return c?.mimeType||"application/octet-stream"})(a)).filter(a=>"application/octet-stream"!==a).join(",")},76133:(a,b,c)=>{c.d(b,{CL:()=>I,Et:()=>O,UI:()=>M,a3:()=>J,vY:()=>R,ZS:()=>Z,Gn:()=>_,qI:()=>ad,PZ:()=>Q,ZK:()=>ac});var d=c(21124),e=c(38301),f=c.n(e),g=c(20481),h=c(85351),i=c(59405),j=c(60073),k=c(98688),l=c(54095),m=c(54937),n=c(57e3),o=c(14263),p=c(18310),q=c(9212),r=c(47089),s=c(10708),t=c(25770),u=c(79206),v=c(29701),w=c(37950),x=c(65468),y=c(54228),z=c(7879),A=c(8842),B=c(88033),C=c(55948);let D="Tool calls",E=RegExp(`^>[ \\t]*\\*\\*${D}(?:[ \\t]*\\((\\d+)\\))?\\*\\*[ \\t]*$`),F=/^- `[^`\n]+`(?: — .*)?$/;function G(a){return{prose:a,toolLog:"",toolCalls:0}}var H=c(40922);let I="mr-auto w-full max-w-full px-1 text-sm text-foreground",J="chat-bubble",K="chat-turn-header",L="chat-turn-time",M="flex w-full flex-col gap-1 pb-3",N="max-w-full overflow-x-hidden break-words [word-break:break-word]",O=`${N} chat-md`,P=f().createContext({showAll:!1}),Q=P.Provider,R={showAll:!0},S="mr-auto flex w-fit max-w-full items-center gap-1.5 rounded-full border border-border bg-surface-2 px-2.5 py-1 text-xs text-muted-foreground transition-colors hover:bg-muted hover:text-foreground focus:outline-none focus-visible:ring-2 focus-visible:ring-ring";function T(){let{showAll:a}=f().useContext(P),[b,c]=(0,e.useState)(null),d=null!==b&&b.against===a?b.isOpen:a,g=(0,e.useCallback)(()=>c({against:a,isOpen:!d}),[a,d]);return{isOpen:d,toggle:g}}let U=/^>[ \t]*\*\*Thinking(?:[ \t]*\((\d+)\))?\*\*[ \t]*$/,V=(0,e.memo)(function({blocks:a,children:b}){let c=(0,g.c)("worktree"),{isOpen:e,toggle:f}=T(),k=e?h.A:i.A;return(0,d.jsxs)("div",{"data-testid":"chat-thinking-group","data-thinking-blocks":a,className:"mt-2 flex w-full flex-col gap-1",children:[(0,d.jsxs)("button",{type:"button","data-testid":"chat-thinking-toggle",onClick:f,"aria-expanded":e,"aria-label":c(e?"chatTranscript.thinking.collapse":"chatTranscript.thinking.expand"),className:S,children:[(0,d.jsx)(j.A,{size:12,"aria-hidden":"true"}),(0,d.jsx)("span",{children:c("chatTranscript.thinking.summary",{count:a})}),(0,d.jsx)(k,{size:12,"aria-hidden":"true"})]}),e&&(0,d.jsx)("div",{"data-testid":"chat-thinking-body",className:"max-w-full border-l-2 border-border pl-2 text-muted-foreground",children:b})]})}),W=(0,e.memo)(function({toolCalls:a,children:b}){let c=(0,g.c)("worktree"),{isOpen:e,toggle:f}=T(),j=e?h.A:i.A;return(0,d.jsxs)("div",{"data-testid":"chat-tool-log-group","data-tool-calls":a,className:"mt-2 flex w-full flex-col gap-1",children:[(0,d.jsxs)("button",{type:"button","data-testid":"chat-tool-log-toggle",onClick:f,"aria-expanded":e,"aria-label":c(e?"chatTranscript.toolLog.collapse":"chatTranscript.toolLog.expand"),className:S,children:[(0,d.jsx)(k.A,{size:12,"aria-hidden":"true"}),(0,d.jsx)("span",{children:c("chatTranscript.toolLog.summary",{count:a})}),(0,d.jsx)(j,{size:12,"aria-hidden":"true"})]}),e&&(0,d.jsx)("div",{"data-testid":"chat-tool-log-body",className:"max-w-full border-l-2 border-border pl-2 text-muted-foreground",children:b})]})}),X={claude:!0,codex:!0,antigravity:!0,"command-code":!0,opencode:!0,copilot:!1,gemini:!1,"vibe-local":!1},Y=(0,e.memo)(function({children:a}){let b=(0,g.c)("worktree"),{isOpen:c,toggle:e}=T(),f=c?h.A:i.A;return(0,d.jsxs)("div",{"data-testid":"chat-pane-scrape-group",className:"flex w-full flex-col gap-1",children:[(0,d.jsxs)("button",{type:"button","data-testid":"chat-pane-scrape-toggle",onClick:e,"aria-expanded":c,className:S,children:[(0,d.jsx)(l.A,{size:12,"aria-hidden":"true"}),(0,d.jsx)("span",{children:b("agentSource.kindScraper")}),(0,d.jsx)(f,{size:12,"aria-hidden":"true"})]}),c&&(0,d.jsx)("div",{"data-testid":"chat-pane-scrape-body",className:"max-w-full border-l-2 border-border pl-2 text-muted-foreground",children:a})]})}),Z=(0,e.memo)(function({href:a,children:b,onFilePathClick:c,...f}){let h=(0,g.c)("worktree"),i=a?(0,C.z)(a):null,j=(0,e.useCallback)(b=>{a&&(b.preventDefault(),c(a))},[a,c]);return a&&null!==i&&"anchor"!==i?"external"===i?(0,d.jsx)("a",{...f,href:a,target:"_blank",rel:"noopener noreferrer",children:b}):(0,d.jsx)("a",{...f,href:a,"data-testid":"chat-file-link",onClick:j,className:"cursor-pointer font-mono text-sm text-accent-700 underline-offset-2 hover:underline dark:text-accent-400","aria-label":h("conversation.openFile",{path:(0,C.h)(a)??a}),children:b}):(0,d.jsx)("a",{...f,href:a,children:b})}),$=(0,e.memo)(function({content:a,onFilePathClick:b}){let c=(0,g.c)("worktree"),f=(0,e.useMemo)(()=>(0,A.ML)(a),[a]),h=(0,e.useCallback)(a=>()=>b(a),[b]);return(0,d.jsx)("span",{children:f.map((a,b)=>"path"===a.type?(0,d.jsx)("button",{type:"button",onClick:h(a.content),className:"cursor-pointer font-mono text-sm text-accent-700 underline-offset-2 hover:underline dark:text-accent-400","aria-label":c("conversation.openFile",{path:a.content}),children:a.content},b):(0,d.jsx)("span",{children:a.content},b))})}),_=(0,e.memo)(function({content:a,onFilePathClick:b}){let c=(0,e.useMemo)(()=>{let a=a=>f().Children.map(a,a=>"string"==typeof a?(0,d.jsx)($,{content:a,onFilePathClick:b}):a);return{p:({children:b})=>(0,d.jsx)("p",{children:a(b)}),li:({children:b})=>(0,d.jsx)("li",{children:a(b)}),td:({children:b})=>(0,d.jsx)("td",{children:a(b)}),th:({children:b})=>(0,d.jsx)("th",{children:a(b)}),strong:({children:b})=>(0,d.jsx)("strong",{children:a(b)}),em:({children:b})=>(0,d.jsx)("em",{children:a(b)}),a:({href:a,children:c,node:e,...f})=>(0,d.jsx)(Z,{...f,href:a,onFilePathClick:b,children:c})}},[b]),g=(0,e.useMemo)(()=>[v.A,w.A],[]),h=(0,e.useMemo)(()=>(function(a){if("string"!=typeof a||0===a.length)return G(a??"");if(!a.includes(D)&&!a.startsWith("- `"))return G(a);let b=a.split("\n"),c=b.length;for(;c>0&&0===b[c-1].trim().length;)c-=1;for(let a=c-1;a>=0;a-=1){let d=E.exec(b[a]);if(!d){if(!b[a].startsWith(">"))break;continue}if(a>0&&b[a-1].startsWith(">"))break;let e=b.slice(a+1,c).map(a=>a.replace(/^>[ \t]?/,"")).join("\n").replace(/^\n+/,"").replace(/\n+$/,""),f=d[1]?Number.parseInt(d[1],10):0;return{prose:b.slice(0,a).join("\n").replace(/\n+$/,""),toolLog:e,toolCalls:Number.isFinite(f)&&f>0?f:e.split("\n").filter(a=>a.trim().length>0).length}}let d=0;for(;d<b.length&&F.test(b[d]);)d+=1;return 0===d?G(a):{prose:b.slice(d).join("\n").replace(/^\n+/,""),toolLog:b.slice(0,d).join("\n"),toolCalls:d}})(a),[a]),i=(0,e.useMemo)(()=>(function(a){if(!a.includes("Thinking"))return{body:a,reasoning:null,blocks:0};let b=a.split("\n"),c=[],d=[],e=0,f=0;for(;f<b.length;){let a=U.exec(b[f]),g=0===f||!b[f-1].startsWith(">");if(!a||!g){c.push(b[f]),f+=1;continue}let h=f+1;for(;h<b.length&&b[h].startsWith(">");)h+=1;let i=a[1]?Number.parseInt(a[1],10):1;e+=Number.isFinite(i)&&i>0?i:1,d.push(b.slice(f+1,h).map(a=>a.replace(/^>[ \t]?/,"")).join("\n").replace(/^\n+/,"").replace(/\n+$/,"")),f=h}return 0===e?{body:a,reasoning:null,blocks:0}:{body:c.join("\n").replace(/\n{3,}/g,"\n\n").trim(),reasoning:d.join("\n\n").replace(/^\n+/,"").replace(/\n+$/,""),blocks:e}})(h.prose),[h.prose]);return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(u.oz,{remarkPlugins:B.eT,rehypePlugins:g,components:c,children:i.body}),null!==i.reasoning&&(0,d.jsx)(V,{blocks:i.blocks,children:(0,d.jsx)(u.oz,{remarkPlugins:B.eT,rehypePlugins:g,components:c,children:i.reasoning})}),h.toolCalls>0&&(0,d.jsx)(W,{toolCalls:h.toolCalls,children:(0,d.jsx)(u.oz,{remarkPlugins:B.eT,rehypePlugins:g,components:c,children:h.toolLog})})]})}),aa={human:"chatTranscript.toolApproval.answeredByHuman",auto:"chatTranscript.toolApproval.autoApproved",terminal:"chatTranscript.toolApproval.answeredInTerminal",pending:"chatTranscript.toolApproval.awaitingAnswer",unclassified:"chatTranscript.toolApproval.unclassified",unknown:"chatTranscript.toolApproval.resolved"},ab={...aa,auto:"chatTranscript.toolApproval.autoAnswered"},ac=(0,e.memo)(function({entries:a}){let b=(0,g.c)("worktree"),{isOpen:c,toggle:e}=T();if(0===a.length)return null;let f=c?h.A:i.A,j=(0,H.rS)(a),k=j.questions+j.confirmations>0,l=j.approvals>0,o=[];l&&o.push(b("chatTranscript.toolApproval.summary",{count:j.approvals})),j.questions>0&&o.push(b("chatTranscript.toolApproval.summaryQuestions",{count:j.questions})),j.confirmations>0&&o.push(b(l||j.questions>0?"chatTranscript.toolApproval.summaryConfirmations":"chatTranscript.toolApproval.summaryConfirmationsOnly",{count:j.confirmations}));let p=l?m.A:n.A;return(0,d.jsxs)("div",{"data-testid":"chat-tool-approval-group","data-approval-count":a.length,"data-approvals":j.approvals,"data-questions":j.questions,"data-confirmations":j.confirmations,className:`${M} items-start`,children:[(0,d.jsxs)("button",{type:"button","data-testid":"chat-tool-approval-toggle",onClick:e,"aria-expanded":c,"aria-label":b(`chatTranscript.toolApproval.${c?"collapse":"expand"}${k&&l?"Mixed":k?"Questions":""}`),className:S,children:[(0,d.jsx)(p,{size:12,"aria-hidden":"true"}),(0,d.jsx)("span",{children:o.join(b("chatTranscript.toolApproval.summarySeparator"))}),(0,d.jsx)(f,{size:12,"aria-hidden":"true"})]}),c&&(0,d.jsx)("ul",{"data-testid":"chat-tool-approval-list",className:"mr-auto flex w-full max-w-full flex-col gap-1 pl-1",children:a.map(a=>{let c="question"===a.kind,e=c?ab:aa,f=c?"confirmation"===a.phase?"chatTranscript.toolApproval.submitConfirmation":"chatTranscript.toolApproval.unlabeledQuestion":"chatTranscript.toolApproval.unlabeled";return(0,d.jsxs)("li",{"data-testid":"chat-tool-approval-entry","data-approval-outcome":a.outcome,"data-approval-kind":a.kind,"data-approval-phase":a.phase,"data-approval-confirmation":a.confirmationOutcome,"data-approval-audit":a.isPermissionAudit?"true":void 0,"data-approval-merged":a.messageIds.length,className:"flex max-w-full flex-wrap items-baseline gap-x-2 gap-y-0.5 text-xs text-muted-foreground",children:["confirmation"===a.phase&&a.label&&(0,d.jsx)("span",{"data-testid":"chat-tool-approval-phase",children:b("chatTranscript.toolApproval.submitConfirmation")}),(0,d.jsx)("span",{className:"min-w-0 break-words [word-break:break-word] font-mono text-foreground",children:a.label||b(f)}),(0,d.jsx)("span",{"data-testid":"chat-tool-approval-outcome",children:b(e[a.outcome])}),a.confirmationOutcome&&(0,d.jsx)("span",{"data-testid":"chat-tool-approval-confirmation",children:b("chatTranscript.toolApproval.confirmation",{outcome:b(ab[a.confirmationOutcome])})})]},a.id)})})]})}),ad=(0,e.memo)(function({message:a,showHeader:b,header:c,onFilePathClick:f,onCopy:h,onInsertToMessage:i,onRetryPending:j,onDiscardPending:k}){let l=(0,g.c)("worktree"),m=(0,g.c)("common"),n="user"===a.role,u=a.optimisticState,v=(0,x.bx)(a.requestId),w="assistant"===a.role&&"normal"===a.messageType&&("string"!=typeof a.requestId||!(a.requestId.length>0))&&!0===X[a.cliToolId??"claude"],A=(0,e.useMemo)(()=>"number"==typeof c?.startedAtMs?new Date(c.startedAtMs):null,[c?.startedAtMs]),B=(0,y.g8)(a.timestamp,A),C=b?"role":c?.variant==="time"?"time":"none",D=(0,e.useMemo)(()=>{var b;return"string"==typeof(b=a.content)?(0,z.aJ)(b):""},[a.content]),E=v?a.content:D,F=[n?"w-fit rounded-2xl border px-3 py-2 text-sm text-foreground ml-auto max-w-[85%] sm:max-w-[75%] rounded-br-md":I,n&&"error"===u?"border-danger-border bg-danger-subtle":"",n&&"error"!==u?"border-accent-500/30 bg-accent-500/10":"","sending"===u?"opacity-70":""].filter(Boolean).join(" "),G=v?O:`${N} whitespace-pre-wrap`;return(0,d.jsxs)("div",{"data-testid":"chat-message-row","data-role":a.role,"data-row-message-id":a.id,className:[M,a.archived?"opacity-60":""].filter(Boolean).join(" "),children:["role"===C&&(0,d.jsxs)("div",{"data-testid":K,"data-header-variant":"role",className:["flex flex-wrap items-center gap-x-2 px-1 text-xs text-muted-foreground",n?"justify-end":""].filter(Boolean).join(" "),children:[(0,d.jsx)("span",{className:n?"font-medium text-accent-700 dark:text-accent-400":"font-medium",children:l(n?"conversation.you":"conversation.assistant")}),B&&(0,d.jsx)("span",{"data-testid":L,children:B})]}),"time"===C&&B&&(0,d.jsxs)("div",{"data-testid":K,"data-header-variant":"time",role:"separator","aria-label":l("chatTranscript.turnBoundary"),className:"flex w-full items-center gap-2 px-1 pt-2 text-xs text-muted-foreground",children:[(0,d.jsx)("span",{className:"h-px min-w-[1rem] flex-1 bg-border","aria-hidden":"true"}),(0,d.jsx)("span",{"data-testid":L,className:"shrink-0 whitespace-nowrap",children:B}),(0,d.jsx)("span",{className:"h-px min-w-[1rem] flex-1 bg-border","aria-hidden":"true"})]}),(0,d.jsx)("div",{"data-testid":J,className:F,children:w?(0,d.jsx)(Y,{children:(0,d.jsx)("div",{"data-message-id":a.id,className:G,children:(0,d.jsx)($,{content:D,onFilePathClick:f})})}):(0,d.jsx)("div",{"data-message-id":a.id,"data-markdown":v?"true":void 0,className:G,children:v?(0,d.jsx)(_,{content:a.content,onFilePathClick:f}):(0,d.jsx)($,{content:D,onFilePathClick:f})})}),(0,d.jsxs)("div",{"data-testid":"chat-message-actions",className:["flex items-center gap-1 px-1",n?"justify-end":""].filter(Boolean).join(" "),children:["sending"===u&&(0,d.jsxs)("span",{"data-testid":"chat-optimistic-sending",className:"flex items-center gap-1 text-xs text-muted-foreground",children:[(0,d.jsx)(o.A,{size:12,className:"animate-spin","aria-hidden":"true"}),(0,d.jsx)("span",{children:l("conversation.sending")})]}),"error"===u&&(0,d.jsxs)("span",{"data-testid":"chat-optimistic-error",className:"flex items-center gap-1 text-xs text-danger-foreground",children:[(0,d.jsx)(p.A,{size:12,"aria-hidden":"true"}),(0,d.jsx)("span",{children:l("conversation.failedToSend")})]}),"error"===u?(0,d.jsxs)(d.Fragment,{children:[j&&(0,d.jsxs)("button",{type:"button","data-testid":"chat-pending-retry",onClick:()=>j(a.id),className:"flex items-center gap-1 rounded px-1.5 py-0.5 text-xs text-accent-700 transition-colors hover:bg-muted dark:text-accent-400","aria-label":l("conversation.retrySending"),title:m("retry"),children:[(0,d.jsx)(q.A,{size:12,"aria-hidden":"true"}),m("retry")]}),k&&(0,d.jsxs)("button",{type:"button","data-testid":"chat-pending-discard",onClick:()=>k(a.id),className:"flex items-center gap-1 rounded px-1.5 py-0.5 text-xs text-muted-foreground transition-colors hover:bg-muted hover:text-danger-foreground","aria-label":l("conversation.discardMessage"),title:l("conversation.discard"),children:[(0,d.jsx)(r.A,{size:12,"aria-hidden":"true"}),l("conversation.discard")]})]}):(0,d.jsxs)(d.Fragment,{children:[h&&(0,d.jsx)("button",{type:"button","data-testid":"chat-copy-message",onClick:()=>h(E),className:"rounded p-1 text-muted-foreground transition-colors hover:bg-muted hover:text-foreground","aria-label":l("conversation.copyMessage"),title:l("conversation.copy"),children:(0,d.jsx)(s.A,{size:14,"aria-hidden":"true"})}),n&&i&&(0,d.jsx)("button",{type:"button","data-testid":"chat-insert-user-message",onClick:()=>i(E),className:"rounded p-1 text-muted-foreground transition-colors hover:bg-muted hover:text-accent-600 dark:hover:text-accent-400","aria-label":l("conversation.insertToMessage"),title:l("conversation.insertToMessage"),children:(0,d.jsx)(t.A,{size:14,"aria-hidden":"true"})})]})]})]})})},77478:(a,b,c)=>{c.d(b,{E2:()=>h,F0:()=>f,Yr:()=>i,e1:()=>g});var d=c(38301),e=c(33977);let f=500,g=300,h=2;function i({output:a,containerRef:b}){let[c,i]=(0,d.useState)(!1),[j,k]=(0,d.useState)(""),[l,m]=(0,d.useState)([]),[n,o]=(0,d.useState)(0),[p,q]=(0,d.useState)(!1),r=(0,d.useRef)(null),s=(0,d.useRef)(""),t=l.length,u=(0,d.useCallback)(a=>{if(a.length<h||!b.current)return{positions:[],capped:!1};let c=(b.current.textContent??"").toLowerCase(),d=a.toLowerCase(),e=[],g=0;for(;e.length<f;){let b=c.indexOf(d,g);if(-1===b)break;e.push({start:b,end:b+a.length}),g=b+1}let i=e.length>=f&&-1!==c.indexOf(d,g);return{positions:e,capped:i}},[b]),v=(0,d.useCallback)(a=>{let{positions:c,capped:d}=u(a);m(c),o(0),q(d),b.current&&(c.length>0?(0,e.aX)(b.current,c,0):(0,e.HI)())},[u,b]),w=(0,d.useCallback)(a=>{k(a),r.current&&clearTimeout(r.current),s.current=a,r.current=setTimeout(()=>{v(a)},g)},[v]),x=(0,d.useCallback)(()=>{i(!0)},[]),y=(0,d.useCallback)(()=>{i(!1),k(""),s.current="",m([]),o(0),q(!1),r.current&&clearTimeout(r.current),(0,e.HI)()},[]),z=(0,d.useCallback)(()=>{0!==t&&o(a=>{let c=(a+1)%t;return b.current&&l.length>0&&(0,e.aX)(b.current,l,c),c})},[t,l,b]),A=(0,d.useCallback)(()=>{0!==t&&o(a=>{let c=(a-1+t)%t;return b.current&&l.length>0&&(0,e.aX)(b.current,l,c),c})},[t,l,b]);return{isOpen:c,query:j,matchCount:t,currentIndex:n,isAtMaxMatches:p,openSearch:x,closeSearch:y,setQuery:w,nextMatch:z,prevMatch:A}}},79695:(a,b,c)=>{c.d(b,{M:()=>g});var d=c(94637),e=c(16620);let f={en:e.c,ja:d.ja};function g(a){return f[a]??e.c}},81868:(a,b,c)=>{c.d(b,{LT:()=>d,XF:()=>e});let d="unclassified";function e(a){return null!=a&&a.type!==d}},82258:(a,b,c)=>{c.d(b,{ED:()=>e,ZJ:()=>d,yi:()=>f});let d=1048576,e="[... 古い出力を省略しました / older output truncated ...]",f=65536},84666:(a,b,c)=>{c.d(b,{EK:()=>j,Wq:()=>h,pN:()=>k});var d=c(7879);let e=new Set(["claude","codex","opencode"]),f=new Set(["opencode"]),g=new Set(["opencode"]),h={wrapMode:"frame",density:"compact"},i=/\x1b\[[0-9;]*m/g;function j(a){return{compactTuiLayoutPadding:e.has(a),preservePaintedPanelRows:f.has(a),mobileWrapMode:g.has(a)?"frame":"viewport"}}function k(a,b=400){let c=1;for(let e of a.split("\n")){let a=(0,d.wJ)(e).replace(i,"").trimEnd().length;if(a>c&&(c=a),c>=b)return b}return c}},88826:(a,b,c)=>{c.d(b,{Mp:()=>g,__:()=>e,b:()=>d,vC:()=>f});let d=6,e=160,f=30;function g({scrollTop:a,scrollHeight:b,clientHeight:c},d=80){let e=b-a-c;return!!Number.isFinite(e)&&e<=d}},89983:(a,b,c)=>{c.d(b,{$C:()=>d,WT:()=>g,f8:()=>i,lN:()=>j,sD:()=>e,tC:()=>f,z1:()=>k});let d={activeMs:2e3,idleMs:5e3,wsFallbackMs:15e3,activeRequiresGenerating:!1,idleTrustsConnection:!1},e={activeMs:4e3,idleMs:1e4,wsFallbackMs:15e3,activeRequiresGenerating:!0,idleTrustsConnection:!0},f={pollMs:5e3,wsFallbackMs:15e3},g={pollMs:15e3,wsFallbackMs:3e4},h=new Set(["running","waiting"]);function i(a){return h.has(a)}function j(a,b){if(b.interactionActive)return a.activeMs;let c=a.activeRequiresGenerating?b.generating:b.sessionAlive;return b.connected&&b.pushHealthy||b.connected&&!c&&a.idleTrustsConnection?a.wsFallbackMs:c?a.activeMs:a.idleMs}function k(a,b){return b.connected?a.wsFallbackMs:a.pollMs}},93232:(a,b,c)=>{c.d(b,{wY:()=>aN});var d=c(21124),e=c(38301),f=c(20481),g=c(82788),h=c(14263),i=c(24417),j=c(54095),k=c(722),l=c(31666),m=c(21554),n=c(85351),o=c(59405),p=c(11861),q=c(44688),r=c(70584),s=c(98688),t=c(88285),u=c(15737),v=c(29460),w=c(63156),x=c(55948),y=c(93777),z=c(13074),A=c(33977),B=c(88826),C=c(8842),D=c(40922);let E={highlightName:"chat-search",currentHighlightName:"chat-search-current",fallbackOverlayId:"chat-search-fallback-overlay",fallbackOverlayBgColor:"rgba(59, 130, 246, 0.6)"};function F(){return!1}var G=c(76133);let H="chat-live-turn",I=(0,e.memo)(function({turnKey:a,version:b,body:c,partial:e=!1,isThinking:g=!1,showHeader:i=!1,onFilePathClick:j}){let k=(0,f.c)("worktree"),l="string"==typeof c&&c.length>0;return(0,d.jsxs)("div",{"data-testid":H,"data-role":"assistant","data-turn-key":a,"data-version":void 0===b?void 0:String(b),"data-has-body":l?"true":"false",role:"group","aria-label":k("chatSurface.progressLabel"),className:G.UI,children:[i&&(0,d.jsx)("div",{className:"flex items-center gap-2 px-1 text-xs text-muted-foreground",children:(0,d.jsx)("span",{className:"font-medium",children:k("conversation.assistant")})}),(0,d.jsxs)("div",{"data-testid":G.a3,className:G.CL,children:[l&&(0,d.jsx)("div",{"data-testid":"chat-live-turn-body","data-markdown":"true",className:G.Et,children:(0,d.jsx)(G.Gn,{content:c,onFilePathClick:j})}),(0,d.jsxs)("div",{"data-testid":"chat-live-turn-indicator",role:"status","aria-live":"polite",className:["flex flex-wrap items-center gap-2 text-xs text-muted-foreground",l?"mt-1.5":""].filter(Boolean).join(" "),children:[(0,d.jsx)(h.A,{size:14,className:"animate-spin","aria-hidden":"true"}),(0,d.jsx)("span",{children:k(g?"chatSurface.thinking":"chatSurface.generating")}),e&&(0,d.jsx)("span",{"data-testid":"chat-live-turn-partial",className:"rounded border border-warning-border bg-warning-subtle px-1 py-0.5 text-warning-foreground",children:k("chatSurface.progressPartial")})]})]})]})});var J=c(27412);let K="chat-transcript-scroll-container",L="chat-transcript-jump-fab",M="absolute bottom-3 right-3 z-10 flex h-9 w-9 items-center justify-center rounded-full border border-border bg-surface-2/80 text-muted-foreground shadow-lg backdrop-blur transition-colors hover:bg-muted hover:text-foreground focus:outline-none focus-visible:ring-2 focus-visible:ring-ring touch-manipulation";function N(){let a=(0,f.c)("worktree");return(0,d.jsx)("div",{"data-testid":"chat-transcript-loading",role:"status","aria-label":a("chatTranscript.loading"),children:[0,1,2].map(a=>(0,d.jsxs)("div",{className:`mb-4 flex flex-col gap-1 ${a%2==0?"items-end":"items-start"}`,children:[(0,d.jsx)(u.EA,{className:"h-3 w-24"}),(0,d.jsx)(u.EA,{className:`h-14 rounded-2xl ${a%2==0?"w-2/3":"w-11/12"}`})]},a))})}function O({turnKey:a,version:b,body:c,partial:e=!1,showHeader:g=!1,onFilePathClick:h}){let i=(0,f.c)("worktree"),j="string"==typeof c&&c.length>0;return(0,d.jsxs)("div",{"data-testid":H,"data-role":"assistant","data-settling":"true","data-turn-key":a,"data-version":void 0===b?void 0:String(b),"data-has-body":j?"true":"false",role:"group","aria-label":i("chatSurface.settlingLabel"),className:G.UI,children:[g&&(0,d.jsx)("div",{className:"flex items-center gap-2 px-1 text-xs text-muted-foreground",children:(0,d.jsx)("span",{className:"font-medium",children:i("conversation.assistant")})}),(0,d.jsxs)("div",{"data-testid":G.a3,className:G.CL,children:[j&&(0,d.jsx)("div",{"data-testid":"chat-live-turn-body","data-markdown":"true",className:G.Et,children:(0,d.jsx)(G.Gn,{content:c,onFilePathClick:h})}),(0,d.jsxs)("div",{"data-testid":"chat-settling-turn-note",className:["flex flex-wrap items-center gap-2 text-xs text-muted-foreground",j?"mt-1.5":""].filter(Boolean).join(" "),children:[(0,d.jsx)("span",{children:i("chatSurface.settling")}),e&&(0,d.jsx)("span",{"data-testid":"chat-live-turn-partial",className:"rounded border border-warning-border bg-warning-subtle px-1 py-0.5 text-warning-foreground",children:i("chatSurface.progressPartial")})]})]})]})}function P({count:a,isOpen:b,regionId:c,onToggle:e}){let g=(0,f.c)("worktree"),h=b?n.A:o.A;return(0,d.jsx)("div",{className:"mb-2 flex w-full items-center",children:(0,d.jsxs)("button",{type:"button","data-testid":"chat-previous-session-toggle","data-count":String(a),onClick:e,"aria-expanded":b,"aria-controls":c,"aria-label":g(b?"chatTranscript.previousSession.collapse":"chatTranscript.previousSession.expand"),className:"flex min-h-[32px] items-center gap-1.5 rounded-full border border-border bg-surface-2 px-3 py-1 text-xs font-medium text-muted-foreground transition-colors hover:bg-muted hover:text-foreground focus:outline-none focus-visible:ring-2 focus-visible:ring-ring touch-manipulation",children:[(0,d.jsx)(p.A,{size:12,"aria-hidden":"true"}),(0,d.jsx)("span",{children:g("chatTranscript.previousSession.summary",{count:a})}),(0,d.jsx)(h,{size:12,"aria-hidden":"true"})]})})}function Q(){let a=(0,f.c)("worktree");return(0,d.jsxs)("div",{"data-testid":"chat-session-ended-banner",role:"status",className:"mt-2 flex flex-col gap-0.5 rounded-lg border border-border bg-surface-2 px-3 py-2 text-xs text-muted-foreground",children:[(0,d.jsx)("span",{children:a("terminal.sessionEnded")}),(0,d.jsx)("span",{children:a("chatTranscript.previousSession.hint")})]})}function R(){let a=(0,f.c)("worktree");return(0,d.jsxs)("div",{"data-testid":"chat-transcript-empty",className:"flex flex-col items-center justify-center gap-1 py-10 text-center text-muted-foreground",children:[(0,d.jsx)(q.A,{className:"mb-1 h-10 w-10 opacity-50","aria-hidden":"true"}),(0,d.jsx)("p",{className:"text-sm",children:a("chatTranscript.empty")}),(0,d.jsx)("p",{className:"text-xs",children:a("chatTranscript.emptyHint")})]})}let S=(0,e.memo)(function({messages:a,worktreeId:b,worktreePath:c,cliToolId:g,instanceId:j,isLoading:k=!1,className:l="",onFilePathClick:n,showToast:o,onInsertToMessage:p,onRetryPending:q,onDiscardPending:u,splitIndex:H,liveTurn:S=null,sessionEnded:T=!1,onScrollControlsChange:U}){let V=(0,f.c)("worktree"),W=(0,e.useRef)(null),X=(0,e.useMemo)(()=>void 0===H?E:{highlightName:`chat-search-${H}`,currentHighlightName:`chat-search-current-${H}`,fallbackOverlayId:`chat-search-fallback-overlay-${H}`,fallbackOverlayBgColor:E.fallbackOverlayBgColor},[H]),Y=(0,e.useMemo)(()=>{let b=a.filter(a=>!a.archived);return b.length===a.length?a:b},[a]),Z=T&&!k,$=`${b}|${g??""}|${j??""}`,_=(0,e.useRef)(null),aa=(0,e.useRef)($);aa.current!==$&&(aa.current=$,_.current=null),Z?null===_.current&&(_.current=new Set(Y.filter(a=>!a.optimisticState).map(a=>a.id))):_.current=null;let ab=_.current,{previousMessages:ac,currentMessages:ad}=(0,e.useMemo)(()=>{if(null===ab||0===ab.size)return{previousMessages:[],currentMessages:Y};let a=[],b=[];for(let c of Y)!c.optimisticState&&ab.has(c.id)?a.push(c):b.push(c);return{previousMessages:a,currentMessages:b}},[ab,Y]),ae=ac.length,af=Z&&ae>0,[ag,ah]=(0,e.useState)(!1),ai=(0,e.useCallback)(()=>{ah(a=>!a)},[]);(0,e.useEffect)(()=>{af||ah(!1)},[af]),(0,e.useEffect)(()=>{ah(!1)},[$]);let aj=(0,e.useMemo)(()=>void 0===H?"chat-previous-session-region":`chat-previous-session-region-${H}`,[H]),ak=(0,e.useRef)(!0),al=(0,e.useRef)(-1),am=(0,e.useRef)(k),an=(0,e.useRef)(0),[ao,ap]=(0,e.useState)(!0),aq=(0,e.useMemo)(()=>(ag?Y:ad).filter(a=>!a.archived&&!(0,D.nY)(a)&&"string"==typeof a.content&&a.content.length>0),[Y,ad,ag]),{isOpen:ar,query:as,matchCount:at,currentIndex:au,isAtMaxMatches:av,matchPositions:aw,currentMatch:ax,openSearch:ay,closeSearch:az,setQuery:aA,onCompositionStart:aB,onCompositionEnd:aC,nextMatch:aD,prevMatch:aE}=(0,v.w)({messages:aq}),aF=ar&&aw.length>0,[aG,aH]=(0,e.useState)(F),aI=(0,e.useCallback)(()=>{aH(!aG)},[aG]),aJ=(0,e.useMemo)(()=>({showAll:aG}),[aG]),aK=(0,e.useMemo)(()=>ar&&0!==aw.length?new Set(aw.map(a=>a.messageId)):null,[ar,aw]);(0,e.useEffect)(()=>{az()},[b]);let aL=(0,e.useMemo)(()=>af?[{kind:"previousSessionHeader",key:"previous-session-header",count:ae},...ag?(0,C.UY)(ac).map(a=>({...a,previousSession:!0})):[],...(0,C.UY)(ad)]:(0,C.UY)(Y),[af,ag,Y,ac,ad,ae]);an.current=aL.length;let aM=(0,m.Te)({count:aL.length,getScrollElement:()=>W.current,estimateSize:()=>C.hM,overscan:C.B7,getItemKey:a=>aL[a]?.key??a}),aN=aM.getVirtualItems(),aO=aN.length>0?`${aN[0].index}-${aN[aN.length-1].index}`:"",aP=(0,e.useMemo)(()=>{let a=new Map;return aL.forEach((b,c)=>{if("previousSessionHeader"!==b.kind)if("message"===b.kind)a.set(b.message.id,c);else for(let d of b.entries)for(let b of d.messageIds)a.set(b,c)}),a},[aL]),aQ=(0,e.useRef)(null),aR=(0,e.useCallback)(()=>{let a=aQ.current;aQ.current=null,a&&null!==a.frame&&cancelAnimationFrame(a.frame)},[]),aS=(0,e.useCallback)(()=>{aR();let a=an.current-1;if(a<0||(aM.scrollToIndex(a,{align:"end"}),"function"!=typeof requestAnimationFrame))return;let b={frame:null,frames:0,stableFrames:0,totalSize:aM.getTotalSize(),deadline:Date.now()+600},c=()=>{if(b.frame=null,aQ.current!==b)return;b.frames+=1;let a=an.current-1;if(a<0||!ak.current||b.frames>12||Date.now()>b.deadline){aQ.current=null;return}let d=aM.getTotalSize();if(d===b.totalSize){if(b.stableFrames+=1,b.stableFrames>=3){aQ.current=null;return}}else b.stableFrames=0,b.totalSize=d,aM.scrollToIndex(a,{align:"end"});b.frame=requestAnimationFrame(c)};aQ.current=b,b.frame=requestAnimationFrame(c)},[aM,aR]);(0,e.useEffect)(()=>aR,[aR]);let aT=(0,e.useCallback)(()=>{ak.current=!0,ap(!0),aS()},[aS]),aU=(0,e.useCallback)(()=>{aR(),ak.current=!1,ap(!1),an.current>0&&aM.scrollToIndex(0,{align:"start"})},[aM,aR]),aV=(0,e.useCallback)(()=>{let a=W.current;if(!a)return;let b=(0,B.Mp)({scrollTop:a.scrollTop,scrollHeight:a.scrollHeight,clientHeight:a.clientHeight});(b||null===aQ.current)&&(ak.current=b,ap(b))},[]);(0,e.useLayoutEffect)(()=>{let a=al.current,b=am.current,c=Y.length;al.current=c,am.current=k,k||aF||0===aL.length||!ak.current||(-1===a||b||!(c<=a))&&aS()},[Y.length,aL.length,k,aF,aS]),(0,e.useEffect)(()=>{if(U)return U({scrollToLatest:aT,scrollToTop:aU}),()=>U(null)},[U,aT,aU]);let aW=(0,e.useCallback)(a=>{if("Home"!==a.key&&"End"!==a.key)return;let b=a.target;b&&("INPUT"===b.tagName||"TEXTAREA"===b.tagName||b.isContentEditable)||0!==an.current&&(a.preventDefault(),"End"===a.key?aT():aU())},[aT,aU]);(0,e.useEffect)(()=>{if(!ar||!ax)return;let a=aP.get(ax.messageId);void 0!==a&&aM.scrollToIndex(a,{align:"center"})},[ar,ax,aP,aM]),(0,e.useLayoutEffect)(()=>{let a=W.current;if(!a)return;if(!ar||0===aw.length)return void(0,A.fq)(X);let b=null;for(let c of aw){let d=a.querySelector(`[data-message-id="${CSS.escape(c.messageId)}"]`);if(!d)continue;let e=ax?.messageId===c.messageId;(0,A.Gg)(d,c.ranges,e?ax.localIndex:-1,X),e&&d instanceof HTMLElement&&(b=d)}return b&&"function"==typeof b.scrollIntoView&&b.scrollIntoView({block:"center",behavior:"smooth"}),()=>{(0,A.fq)(X)}},[ar,aw,ax,X,aO]);let aX=(0,e.useRef)(V);aX.current=V;let aY=(0,z.O)(),aZ=c??aY.worktreePath,a$=(0,e.useCallback)(a=>{if(!n)return;let c=(0,x.h)(a,aZ);null!==c&&(async()=>{if("missing"===await (0,y.o4)(b,c))return o?.(aX.current("conversation.filePathMissing"),"error");n(c)})()},[n,b,aZ,o]),a_=(0,e.useCallback)(async a=>{try{await (0,w.l)(a),o?.(aX.current("history.copied"),"success")}catch{o?.(aX.current("history.copyFailed"),"error")}},[o]),a0=(0,e.useCallback)(a=>{let b=aL[a];if(!b)return null;if("previousSessionHeader"===b.kind)return(0,d.jsx)(P,{count:b.count,isOpen:ag,regionId:aj,onToggle:ai});let c=a=>b.previousSession?(0,d.jsx)("div",{"data-previous-session":"true",className:"opacity-60",children:a}):a;if("approvals"===b.kind)return c((0,d.jsx)(G.ZK,{entries:b.entries}));let e=(0,d.jsx)(G.qI,{message:b.message,showHeader:b.showHeader,header:b.header,onFilePathClick:a$,onCopy:a_,onInsertToMessage:p,onRetryPending:q,onDiscardPending:u});return c(aK?.has(b.message.id)?(0,d.jsx)(G.PZ,{value:G.vY,children:e}):e)},[aL,a$,a_,p,q,u,aK,ag,aj,ai]),a1=null!==S&&!0!==S.settling;return(0,d.jsxs)("div",{"data-testid":"chat-transcript","data-tool-activity":aG?"shown":"folded",role:"log","aria-label":V("chatTranscript.regionLabel"),className:["relative flex h-full min-h-0 w-full flex-col overflow-hidden bg-surface",l].filter(Boolean).join(" "),children:[(0,d.jsx)("div",{ref:W,"data-testid":K,onScroll:aV,onKeyDown:aW,tabIndex:0,className:"min-h-0 flex-1 overflow-y-auto overflow-x-hidden px-3 py-3",children:(0,d.jsxs)(G.PZ,{value:aJ,children:[k?(0,d.jsx)(N,{}):0===aL.length?S?null:(0,d.jsx)(R,{}):0===aN.length?(0,d.jsx)("div",{"data-testid":"chat-transcript-fallback-list",id:af?aj:void 0,children:aL.slice(0,C.JD).map((a,b)=>(0,d.jsx)("div",{children:a0(b)},a.key))}):(0,d.jsx)("div",{id:af?aj:void 0,style:{height:aM.getTotalSize(),width:"100%",position:"relative"},children:aN.map(a=>(0,d.jsx)("div",{"data-index":a.index,ref:aM.measureElement,className:"absolute left-0 top-0 w-full",style:{transform:`translateY(${a.start}px)`},children:a0(a.index)},a.key))}),S&&(S.settling?(0,d.jsx)(O,{turnKey:S.turnKey,version:S.version,body:S.body,partial:S.partial,showHeader:(0,C.CK)(Y[Y.length-1]),onFilePathClick:a$}):(0,d.jsx)(I,{turnKey:S.turnKey,version:S.version,body:S.body,partial:S.partial,isThinking:S.isThinking,showHeader:(0,C.CK)(Y[Y.length-1]),onFilePathClick:a$})),af&&(0,d.jsx)(Q,{})]})}),aL.length>0&&(ao?(0,d.jsx)("button",{type:"button","data-testid":L,"data-direction":"top",onClick:aU,"aria-label":V("chatTranscript.jumpToTop"),title:V("chatTranscript.jumpToTop"),className:M,children:(0,d.jsx)(r.A,{size:16,"aria-hidden":"true"})}):(0,d.jsx)("button",{type:"button","data-testid":L,"data-direction":"latest","data-generating":a1?"true":void 0,onClick:aT,"aria-label":V(a1?"chatSurface.jumpToLatestGenerating":"chatSurface.jumpToLatest"),title:V(a1?"chatSurface.jumpToLatestGenerating":"chatSurface.jumpToLatest"),className:M,children:a1?(0,d.jsx)(h.A,{size:16,className:"animate-spin","aria-hidden":"true"}):(0,d.jsx)(i.A,{size:16,"aria-hidden":"true"})})),(0,d.jsxs)("div",{className:"pointer-events-none absolute right-2 top-2 z-10 flex items-start justify-end gap-1",children:[!ar&&(0,d.jsx)("div",{className:"pointer-events-auto",children:(0,d.jsx)("button",{type:"button","data-testid":"chat-transcript-tool-activity-toggle",onClick:aI,"aria-pressed":aG,"aria-label":V(aG?"chatTranscript.toolActivity.hide":"chatTranscript.toolActivity.show"),title:V(aG?"chatTranscript.toolActivity.hide":"chatTranscript.toolActivity.show"),className:["rounded-full border border-border p-1.5 shadow-sm backdrop-blur transition-colors focus:outline-none focus-visible:ring-2 focus-visible:ring-ring touch-manipulation",aG?"bg-accent-500/15 text-accent-700 hover:bg-accent-500/25 dark:text-accent-400":"bg-surface-2/80 text-muted-foreground hover:bg-muted hover:text-foreground"].join(" "),children:(0,d.jsx)(s.A,{size:14,"aria-hidden":"true"})})}),(0,d.jsx)("div",{className:"pointer-events-auto",children:ar?(0,d.jsx)(J.Y,{query:as,onQueryChange:aA,matchCount:at,currentIndex:au,onNext:aD,onPrev:aE,onClose:az,isAtMaxMatches:av,onCompositionStart:aB,onCompositionEnd:aC}):(0,d.jsx)("button",{type:"button","data-testid":"chat-transcript-search-toggle",onClick:ay,"aria-label":V("chatTranscript.openSearch"),title:V("chatTranscript.openSearch"),className:"rounded-full border border-border bg-surface-2/80 p-1.5 text-muted-foreground shadow-sm backdrop-blur transition-colors hover:bg-muted hover:text-foreground focus:outline-none focus-visible:ring-2 focus-visible:ring-ring touch-manipulation",children:(0,d.jsx)(t.A,{size:14,"aria-hidden":"true"})})})]})]})});var T=c(27357),U=c(7879),V=c(98354);let W=/\x1b\[[0-9;]*[a-zA-Z]|\x1b\][^\x07\x1b]*(?:\x07|\x1b\\)|\[[0-9;]*m/g,X=/^(?:\x1b\[|\[)([0-9;]*)m$/,Y=new Set([38,48,58]);function Z(a){let b;W.lastIndex=0;let c=[],d="",e=null,f=0,g=0,h=0;for(;null!==(b=W.exec(a));){let i=a.slice(h,b.index);d+=i,f+=(0,V.LQ)(i),h=b.index+b[0].length;let j=X.exec(b[0]);if(null===j)continue;let k=function(a,b){let c=(""===b?"0":b).split(";"),d=a;for(let a=0;a<c.length;a++){let b=Number(""===c[a]?"0":c[a]);if(Number.isFinite(b)){if(Y.has(b)){let e="2"===c[a+1]?4:2*("5"===c[a+1]);e>0&&48===b&&(d=c.slice(a,a+1+e).join(";")),a+=e;continue}0===b||49===b?d=null:(b>=40&&b<=47||b>=100&&b<=107)&&(d=c[a])}}return d}(e,j[1]);k!==e&&(f>g&&c.push({bg:e,start:g,end:f}),e=k,g=f)}let i=a.slice(h);d+=i,(f+=(0,V.LQ)(i))>g&&c.push({bg:e,start:g,end:f});let j=new Set(c.map(a=>a.start));return c.length>0&&j.add(c[c.length-1].end),{text:d,segments:c,edges:j,width:f}}function $(a,b){for(let c of a.segments)if(c.start<=b&&b<c.end)return c.bg;return null}function _(a){let b=new Set;for(let c of a.segments)null!==c.bg&&b.add(c.bg);return b}function aa(a){let b=new Map;for(let c of a.segments)null!==c.bg&&b.set(c.bg,(b.get(c.bg)??0)+(c.end-c.start));let c=null,d=0;for(let[a,e]of b)e>d&&(c=a,d=e);return{bg:c,columns:d}}var ab=c(44489),ac=c(20203);let ad=/\S[^\S\n]{2,}esc[^\S\n]*$/,ae=/^[│┃╹]/;function af(a,b,c){if(!a.edges.has(b)||!a.edges.has(c))return!1;for(let d of a.segments)if(!(d.end<=b)&&!(d.start>=c)&&null===d.bg)return!1;return!($(a,b-1)===$(a,b)||c<a.width&&$(a,c)===$(a,c-1)||ae.test((0,V.Ml)(a.text,b-1,b)))&&!ae.test((0,V.Ml)(a.text,b,c))}let ag=/^[^0-9A-Za-z]*([1-9])[.)]\s+\S/,ah=/\bs\s+to\s+use\s+this\s+session\s+only\b/i,ai=/\bEnter\s+to\s+set\s+as\s+default\b/i,aj=/\btype\s+to\s+search\b|\bsearch\s+\w+\s*(?:…|\.\.\.)|(?:^|·)\s*\/\s+search\b/im,ak=/\benter\s+to\s+select\b\s*[·•]\s*esc\s+to\s+cancel\b/i,al=/^\s*(?:press|hit|type)?\s*(?:<)?esc(?:ape)?(?:>)?\s+to\s+(?:close|dismiss|exit)\b[\s.·•]*$/im,am=/^\u2500+$/,an="●◉⦿",ao=RegExp(`^\\s*([${an}◯○◌⚪])\\s+\\S`),ap=/\besc\s+to\s+interrupt\b|^[^\S\n]*✻[^\S\n]+\S/im;function aq(a){let b=function(a){if(!a)return null;let b=a.replace(/\r\n/g,"\n").split("\n").map(U.aJ),c=b.length-1;for(;c>=0&&""===b[c].trim();)c-=1;if(c<1)return null;let d=-1;for(let a=c-1;a>=0;a-=1){let c=b[a].trim();if(!(c.length<40)&&am.test(c)){d=a;break}}if(d<0)return null;let e=b.slice(d+1,c+1),f=e.join("\n");if(aj.test(f)||ak.test(f)||al.test(f)||ap.test(f))return null;let g=e.findIndex(a=>""!==a.trim());if(g<0||!function(a){let b=a.split("|");if(b.length<2)return!1;let c=0,d=0;for(let a of b){let b=ao.exec(a);if(null===b)return!1;an.includes(b[1])?c+=1:d+=1}return c>0&&d>0}(e[g]))return null;let h=[],i=-1;for(let a=g+1;a<e.length;a+=1){let b=ag.exec(e[a]);null!==b&&(i<0&&(i=a),h.push(Number(b[1])))}if(h.length<2||!e.slice(g+1,i).some(a=>""!==a.trim()))return null;let j=0,k=-1;for(let a=0;a<e.length;a+=1){let b=e[a].split("❯").length-1;0!==b&&(j+=b,ag.test(e[a])&&(k=a))}return 0===j||k<0?null:{ruleLineIndex:d,firstLineIndex:d+1,lastLineIndex:c,tabLineIndex:d+1+g,numbers:h,cursorCount:j,cursorLineIndex:d+1+k}}(a);return null!==b&&b.numbers.every((a,b)=>a===b+1)&&1===b.cursorCount?{ruleLineIndex:b.ruleLineIndex,firstLineIndex:b.firstLineIndex,lastLineIndex:b.lastLineIndex,tabLineIndex:b.tabLineIndex,cursorLineIndex:b.cursorLineIndex,optionCount:b.numbers.length}:null}let ar={optionCount:0,offersSessionScope:!1,commitsDefaultOnEnter:!1,hasFilterInput:!1},as=[function(a){let b=function(a){let b=a.split("\n").map(Z),c=new Set,d=null;for(let a of b){if(!a.text.includes("esc"))continue;let e=[...a.edges].sort((a,b)=>a-b);for(let f of e)if(!(f<1))for(let g of e){if(g-f<16)continue;let e=`${f}:${g}`;if(c.has(e)||!af(a,f,g))continue;let h=(0,V.Ml)(a.text,f,g);if(!ad.test(h))continue;c.add(e);let i=b.filter(a=>af(a,f,g));if(i.length<3)continue;let j=i.indexOf(a);j<0||j>=3||(null===d||i.length>d.rows)&&(d={id:"opencode_modal_overlay",headerText:(0,ac.D)(h.trim(),200,"…[truncated]"),left:f,right:g,rows:i.length,headerRow:j,frameRowStart:b.indexOf(i[0]),frameRowEnd:b.indexOf(i[i.length-1])})}}return d}(a);return null===b?null:a.split("\n").slice(b.frameRowStart,b.frameRowEnd+1).join("\n")},function(a){let b=a.replace(/\r\n/g,"\n").split("\n"),c=-1;for(let a=b.length-1;a>=0;a-=1)if(ak.test((0,U.aJ)(b[a]))){c=a;break}if(c<0){let c=aq(a);return null===c?null:b.slice(c.firstLineIndex,c.lastLineIndex+1).join("\n")}for(let a=c-1;a>=0;a-=1){let d=(0,U.aJ)(b[a]).trim();if(!(d.length<40)&&am.test(d))return b.slice(a+1,c+1).join("\n")}return null}];function at(a,b={}){if(!a)return"";let c=a.replace(/\r\n/g,"\n");if(b.selectionList)for(let a of as){let b=a(c);if(null===b)continue;let d=(0,ab.Uw)(b,{isStructuralRow:ab.CG});if(""!==d)return d}let d=(0,ab.Uw)(c,{isStructuralRow:ab.CG});if(""===d)return"";if(b.selectionList)return d;let e=d.split("\n"),f=function(a){if(void 0===a||!Number.isFinite(a))return 16;let b=Math.trunc(a);return b<12?12:b>20?20:b}(b.maxLines);return e.slice(-f).join("\n")}let au=/^[^\S\n]*[❯›●][^\S\n]/;function av({frame:a,maxLines:b=16,maxHeightClassName:c="max-h-64",actions:g,reason:h,className:i=""}){let j=(0,f.c)("worktree"),k="selectionList"===h,l=(0,e.useMemo)(()=>at(a,{maxLines:b,selectionList:k}),[a,b,k]),m=(0,e.useMemo)(()=>l?(0,T.l5)(l):"",[l]),n=(0,e.useRef)(null);return((0,e.useMemo)(()=>k&&l?function(a){let b=a.split("\n"),c=-1;for(let a=b.length-1;a>=0;a-=1)if(au.test((0,U.aJ)(b[a]))){c=a;break}return Math.max(c,function(a){let b=a.map(Z),c=b.map(aa),d=b.map(_);for(let a=b.length-1;a>=0;a-=1){let{bg:e,columns:f}=c[a];if(!(null===e||f<8||a>0&&d[a-1].has(e))&&!(a+1<b.length&&d[a+1].has(e)))return a}return -1}(b))}(l):-1,[k,l]),l)?(0,d.jsxs)("div",{"data-testid":"chat-dialog-card","data-reason":h,role:"group","aria-label":j("chatSurface.dialogCardLabel"),className:["flex min-w-0 flex-col gap-2",i].filter(Boolean).join(" "),children:[(0,d.jsx)("div",{ref:n,"data-testid":"chat-dialog-card-frame",className:`overflow-auto rounded-lg border border-border bg-terminal-surface p-2 font-mono text-[11px] leading-snug text-terminal-foreground ${c}`,children:(0,d.jsx)("div",{className:"whitespace-pre w-max",dangerouslySetInnerHTML:{__html:m}})}),g?(0,d.jsx)("div",{"data-testid":"chat-dialog-card-actions",className:"min-w-0",children:g}):null]}):null}var aw=c(99086),ax=c(12178),ay=c(11131),az=c(50391),aA=c(22631);let aB=[{key:"1",label:"1",ariaLabel:"Send 1"},{key:"2",label:"2",ariaLabel:"Send 2"},{key:"3",label:"3",ariaLabel:"Send 3"},{key:"4",label:"4",ariaLabel:"Send 4"},{key:"5",label:"5",ariaLabel:"Send 5"},{key:"6",label:"6",ariaLabel:"Send 6"},{key:"7",label:"7",ariaLabel:"Send 7"},{key:"8",label:"8",ariaLabel:"Send 8"},{key:"9",label:"9",ariaLabel:"Send 9"}],aC=[{key:"y",label:"y",ariaLabel:"Send y"},{key:"n",label:"n",ariaLabel:"Send n"},{key:"Enter",label:"↵",ariaLabel:"Send Enter"}],aD="Escape";function aE({worktreeId:a,cliToolId:b,instanceId:c,onKeysSent:g}){let h=(0,f.c)("worktree"),{activeKey:i,markPressed:j}=(0,aA.t)(),k=(0,az.B)(a,b,c,g),l=(0,e.useCallback)(a=>{j(a),k([a])},[j,k]);return(0,d.jsxs)("div",{"data-testid":"prompt-answer-keys",role:"toolbar","aria-label":h("promptAnswerKeys.toolbarLabel"),className:"flex flex-wrap items-center gap-1.5 rounded-lg bg-muted px-2 py-1.5",children:[(0,d.jsx)("span",{className:"text-xs text-muted-foreground",children:h("promptAnswerKeys.caption")}),[...aB,...aC].map(({key:a,label:b,ariaLabel:c})=>(0,d.jsx)("button",{type:"button","data-testid":`prompt-answer-key-${a}`,"aria-label":c,onClick:()=>l(a),className:`min-h-[44px] min-w-[44px] rounded-md border border-border px-3 py-2 text-sm font-medium transition-colors duration-75 touch-manipulation focus:outline-none focus:ring-2 focus:ring-ring ${i===a?"border-accent-500 bg-accent-500 text-white scale-95":"bg-surface hover:bg-muted active:bg-muted dark:bg-surface-2"}`,children:b},a))]})}function aF({worktreeId:a,cliToolId:b,instanceId:c,onKeysSent:g,optionCount:h}){let i=(0,f.c)("worktree"),{activeKey:j,markPressed:k}=(0,aA.t)(),l=(0,az.B)(a,b,c,g),m=(0,e.useMemo)(()=>{let a=Math.min(Math.trunc(h),9);return!Number.isFinite(a)||a<1?[]:aB.slice(0,a)},[h]),n=(0,e.useCallback)(a=>{k(a),l([a])},[k,l]);return 0===m.length?null:(0,d.jsxs)("div",{"data-testid":"selection-number-keys","data-option-count":String(m.length),role:"toolbar","aria-label":i("selectionKeys.numbersToolbarLabel"),className:"flex flex-wrap items-center gap-1.5 rounded-lg bg-muted px-2 py-1.5",children:[(0,d.jsx)("span",{className:"text-xs text-muted-foreground",children:i("selectionKeys.numbersCaption")}),m.map(({key:a,label:b,ariaLabel:c})=>(0,d.jsx)("button",{type:"button","data-testid":`selection-number-key-${a}`,"aria-label":c,onClick:()=>n(a),className:`min-h-[44px] min-w-[44px] rounded-md border border-border px-3 py-2 text-sm font-medium transition-colors duration-75 touch-manipulation focus:outline-none focus:ring-2 focus:ring-ring ${j===a?"border-accent-500 bg-accent-500 text-white scale-95":"bg-surface hover:bg-muted active:bg-muted dark:bg-surface-2"}`,children:b},a))]})}function aG({worktreeId:a,cliToolId:b,instanceId:c,onKeysSent:g,commitsDefaultOnEnter:h}){let i=(0,f.c)("worktree"),{activeKey:j,markPressed:k}=(0,aA.t)(),l=(0,az.B)(a,b,c,g),m=(0,e.useCallback)(a=>{k(a),l([a])},[k,l]);return(0,d.jsxs)("div",{"data-testid":"selection-commit-keys",role:"toolbar","aria-label":i("selectionKeys.commitToolbarLabel"),className:"flex flex-wrap items-center gap-1.5 rounded-lg bg-muted px-2 py-1.5",children:[(0,d.jsx)("button",{type:"button","data-testid":"selection-commit-session","aria-label":i("selectionKeys.sessionOnlyAria"),title:i("selectionKeys.sessionOnlyAria"),onClick:()=>m(ay.mE),className:`min-h-[44px] rounded-md border px-3 py-2 text-sm font-medium transition-colors duration-75 touch-manipulation focus:outline-none focus:ring-2 focus:ring-ring ${j===ay.mE?"border-accent-500 bg-accent-500 text-white scale-95":"border-accent-500 bg-surface text-accent-600 hover:bg-muted active:bg-muted dark:bg-surface-2 dark:text-accent-400"}`,children:i("selectionKeys.sessionOnly")}),(0,d.jsx)("button",{type:"button","data-testid":"selection-commit-default","aria-label":i("selectionKeys.setDefaultAria"),title:i("selectionKeys.setDefaultAria"),onClick:()=>m("Enter"),className:`min-h-[44px] rounded-md border border-border px-3 py-2 text-sm font-medium transition-colors duration-75 touch-manipulation focus:outline-none focus:ring-2 focus:ring-ring ${"Enter"===j?"border-accent-500 bg-accent-500 text-white scale-95":"bg-surface hover:bg-muted active:bg-muted dark:bg-surface-2"}`,children:i("selectionKeys.setDefault")}),h?(0,d.jsx)("p",{"data-testid":"selection-commit-warning",className:"w-full text-xs text-muted-foreground",children:i("selectionKeys.defaultWarning")}):null]})}function aH({worktreeId:a,cliToolId:b,instanceId:c,onKeysSent:g}){let h=(0,f.c)("worktree"),{activeKey:i,markPressed:j}=(0,aA.t)(),k=(0,az.B)(a,b,c,g),l=(0,e.useCallback)(()=>{j(aD),k([aD])},[j,k]);return(0,d.jsx)("div",{"data-testid":"dismiss-panel-keys",role:"toolbar","aria-label":h("dismissPanelKeys.toolbarLabel"),className:"flex flex-wrap items-center gap-1.5 rounded-lg bg-muted px-2 py-1.5",children:(0,d.jsx)("button",{type:"button","data-testid":"dismiss-panel-key-Escape","aria-label":h("dismissPanelKeys.closeAria"),title:h("dismissPanelKeys.closeAria"),onClick:l,className:`min-h-[44px] rounded-md border px-3 py-2 text-sm font-medium transition-colors duration-75 touch-manipulation focus:outline-none focus:ring-2 focus:ring-ring ${i===aD?"border-accent-500 bg-accent-500 text-white scale-95":"border-accent-500 bg-surface text-accent-600 hover:bg-muted active:bg-muted dark:bg-surface-2 dark:text-accent-400"}`,children:h("dismissPanelKeys.close")})})}[...aB.map(a=>a.key),...aC.map(a=>a.key)];var aI=c(1135),aJ=c(81868),aK=c(74930);c(12055);let aL=`[data-testid="${K}"]`,aM={pager:"chatSurface.reasonPager",selectionList:"chatSurface.reasonSelectionList",dismissablePanel:"chatSurface.reasonDismissablePanel",unclassified:"chatSurface.reasonUnclassified",promptUnreadable:"chatSurface.reasonPromptUnreadable"},aN=(0,e.memo)(function({messages:a,worktreeId:b,worktreePath:c,cliToolId:m,instanceId:n,live:o,onSurfaceModeChange:p,frame:q,onKeysSent:r,compact:s=!1,history:t,className:u=""}){let v=(0,f.c)("worktree"),w=(0,e.useRef)(null),x=(0,e.useMemo)(()=>(function(a){let b=new Map;for(let c of a)b.set(c.id,c);return b.size===a.length?a:Array.from(b.values())})(a),[a]),y=!1===o.attaching&&!1===o.isRunning,z=(0,e.useRef)(!0),A=(0,e.useRef)(-1),[C,D]=(0,e.useState)(!1),[E,F]=(0,e.useState)(!0),G=(0,e.useCallback)(()=>w.current?.querySelector(aL)??null,[]),[H,I]=(0,e.useState)(!1),J=(0,e.useCallback)(a=>{I(null!==a)},[]),K=(0,e.useCallback)(()=>{let a=G();a&&(a.scrollTop=a.scrollHeight),z.current=!0,F(!0),D(!1)},[G]);(0,e.useEffect)(()=>{let a=G();if(!a)return;let b=()=>{let b=(0,B.Mp)({scrollTop:a.scrollTop,scrollHeight:a.scrollHeight,clientHeight:a.clientHeight});z.current=b,F(b),b&&D(!1)};return a.addEventListener("scroll",b),()=>a.removeEventListener("scroll",b)},[G,t?.isLoading]),(0,e.useLayoutEffect)(()=>{let a=A.current,b=x.length;if(A.current=b,-1!==a&&!(b<=a)){if(z.current){let a=G();a&&(a.scrollTop=a.scrollHeight);return}D(!0)}},[x.length,G]);let L="running"===o.sessionStatus,M=function({worktreeId:a,cliToolId:b,instanceId:c,enabled:d=!0}){let{addListener:f,connected:g}=(0,aK.xM)(),[h,i]=(0,e.useState)(null);(0,e.useRef)(0);let j=(0,e.useMemo)(()=>null===h?null:{...h,settling:!0},[h]);return d?g?h:null:j}({worktreeId:b,cliToolId:m,instanceId:n,enabled:L}),N=x.length?x[x.length-1].id:null,O=M?.settling===!0,P=(0,e.useRef)(null),[Q,R]=(0,e.useState)(!1);(0,e.useEffect)(()=>{if(!O){P.current=null,R(!1);return}if(null===P.current){P.current={id:N};return}P.current.id!==N&&R(!0)},[O,N]);let[T,V]=(0,e.useState)(null);(0,e.useEffect)(()=>{y&&null!==M&&V(M.turnKey)},[y,M]);let W=null===M||M.turnKey===T||function(a,b){for(let c=a.length-1;c>=0;c-=1)if(a[c].requestId===b)return!0;return!1}(x,M.turnKey)||M.settling&&Q?null:M,X=(0,e.useMemo)(()=>y?null:null!==W?{turnKey:W.turnKey,version:W.version,body:W.body,partial:W.partial,isThinking:!W.settling&&!0===o.isThinking,settling:W.settling}:L?{isThinking:!0===o.isThinking}:null,[W,L,o.isThinking,y]),Y=null!==X,Z=Y&&!0!==X.settling,$=(0,e.useRef)(!1);(0,e.useLayoutEffect)(()=>{if(!$.current){$.current=!0;return}if(!z.current)return;let a=G();a&&(a.scrollTop=a.scrollHeight)},[W?.body,Y,G]);let _=o.isPagerActive?"pager":o.isSelectionListActive?"selectionList":o.isDismissablePanelActive??function(a){if(!a)return!1;let b=(0,U.aJ)(a.replace(/\r\n/g,"\n")).split("\n"),c=b.length-1;for(;c>=0&&""===b[c].trim();)c-=1;return!(c<0)&&b.slice(Math.max(0,c+1-15),c+1).some(a=>al.test(a))}(q)?"dismissablePanel":o.isUnclassifiedActive?"unclassified":o.isPromptWaiting&&!(0,aJ.XF)(o.promptData)?"promptUnreadable":null,aa=(0,e.useCallback)(()=>{p("terminal")},[p]),ab=(0,e.useRef)(null);(0,e.useEffect)(()=>()=>{null!==ab.current&&clearTimeout(ab.current)},[]);let ac=(0,e.useCallback)(()=>{r?.(),null!==ab.current&&clearTimeout(ab.current),ab.current=setTimeout(()=>{ab.current=null,r?.()},400)},[r]),ad=(0,e.useMemo)(()=>"selectionList"===_?function(a){if(!a)return ar;let b=function(a){let b=(0,U.aJ)(a.replace(/\r\n/g,"\n")).split("\n"),c=b.length-1;for(;c>=0&&""===b[c].trim();)c-=1;return c<0?[]:b.slice(Math.max(0,c+1-40),c+1)}(a);if(0===b.length)return ar;let c=b.join("\n");return{optionCount:function(a){let b=0,c=0;for(let d of a){let a=ag.exec(d);if(null===a)continue;let e=Number(a[1]);e===c+1?(c=e,b=e):1===e?(c=1,b=1):c=0}return Math.min(b,9)}(b),offersSessionScope:ah.test(c),commitsDefaultOnEnter:ai.test(c),hasFilterInput:aj.test(c)}}(q):null,[_,q]),ae=(0,e.useMemo)(()=>"selectionList"===_&&null!==aq(q),[_,q]),af=(0,e.useMemo)(()=>"selectionList"===_&&q?at(q,{selectionList:!0}).split("\n").length:0,[_,q]),ak=(0,e.useMemo)(()=>{if(null===_||!m)return null;let a={worktreeId:b,cliToolId:m,instanceId:n,onKeysSent:ac};switch(_){case"pager":return(0,d.jsx)(aw.y,{...a,showPagerKeys:!0});case"selectionList":{var c;let e=ad?.offersSessionScope===!0&&ay.qL.includes(m);return(0,d.jsxs)("div",{className:"space-y-2",children:[(0,d.jsx)(aw.y,{...a}),!ad||ae||!((c=ad).optionCount>0)||c.offersSessionScope||c.hasFilterInput?null:(0,d.jsx)(aF,{...a,optionCount:ad.optionCount}),e&&ad?(0,d.jsx)(aG,{...a,commitsDefaultOnEnter:ad.commitsDefaultOnEnter}):null,(0,d.jsx)(aI.tY,{worktreeId:b,cliToolId:m,instanceId:n,onKeysSent:ac})]})}case"dismissablePanel":return(0,d.jsx)(aH,{...a});case"unclassified":return(0,d.jsxs)("div",{className:"space-y-2",children:[(0,d.jsx)(ax.U,{...a}),(0,d.jsx)(aE,{...a})]});case"promptUnreadable":return(0,d.jsxs)("div",{className:"space-y-2",children:[(0,d.jsx)("p",{"data-testid":"chat-surface-unreadable-hint",className:"text-xs text-muted-foreground",children:v("chatSurface.unreadableHint")}),(0,d.jsx)(aE,{...a})]})}},[_,m,b,n,ac,ad,ae,v]),am=t??{},an=(0,k.UI)(b),ao=n??m??null,ap=(0,e.useMemo)(()=>ao?(0,l.y)((0,l.g)({owed:an.owedBy(ao),awaiting:an.awaitedBy(ao),aliasOf:a=>a.worktreeId===b?a.instanceId:`${a.instanceId} @ ${a.worktreeId}`})):null,[an,ao,b]);return(0,d.jsxs)("div",{ref:w,"data-testid":"chat-surface","data-instance-id":n??m,className:["flex h-full min-h-0 w-full flex-col overflow-hidden bg-surface text-surface-foreground",u].filter(Boolean).join(" "),children:[ap&&(0,d.jsxs)("div",{"data-testid":"chat-surface-relay","data-relay-tone":ap.tone,role:"status",className:`flex shrink-0 items-center gap-1.5 border-b border-border px-3 py-1 text-xs ${"prompt"===ap.tone?"bg-warning-subtle text-warning-foreground":"bg-surface-2 text-muted-foreground"}`,children:[(0,d.jsx)(g.A,{size:12,className:"shrink-0","aria-hidden":"true"}),(0,d.jsx)("span",{className:"min-w-0 flex-1 truncate",children:v(`relay.${ap.key}`,ap.params)})]}),(0,d.jsxs)("div",{className:"relative min-h-0 flex-1 overflow-hidden",children:[(0,d.jsx)(S,{...am,messages:x,worktreeId:b,worktreePath:c,cliToolId:m,liveTurn:X,instanceId:n,sessionEnded:y,onScrollControlsChange:J,className:"h-full"}),!H&&(C||Y&&!E)&&(0,d.jsxs)("button",{type:"button","data-testid":"chat-surface-new-messages","data-generating":Z?"true":void 0,onClick:K,"aria-label":Z?v("chatSurface.jumpToLatestGenerating"):void 0,className:"absolute bottom-3 left-1/2 z-10 flex min-h-[36px] -translate-x-1/2 items-center gap-1.5 rounded-full border border-border bg-surface-2 px-3 py-1.5 text-xs font-medium text-foreground shadow-lg transition-colors hover:bg-muted focus:outline-none focus-visible:ring-2 focus-visible:ring-ring touch-manipulation",children:[Z?(0,d.jsx)(h.A,{size:14,className:"animate-spin","aria-hidden":"true"}):(0,d.jsx)(i.A,{size:14,"aria-hidden":"true"}),v("chatSurface.jumpToLatest")]})]}),null!==_&&(0,d.jsxs)("div",{"data-testid":"chat-surface-live",role:"group","aria-label":v("chatSurface.liveRegionLabel"),className:"flex shrink-0 flex-col gap-2 border-t border-border bg-surface px-3 py-2",children:[(0,d.jsxs)("div",{"data-testid":"chat-surface-terminal-banner","data-reason":_,role:"status","aria-label":v("chatSurface.bannerLabel"),className:"flex flex-wrap items-center gap-2 rounded-lg border border-warning-border bg-warning-subtle px-2 py-1.5",children:[(0,d.jsx)("span",{className:"min-w-0 flex-1 text-xs text-foreground",children:v(aM[_])}),(0,d.jsxs)("button",{type:"button","data-testid":"chat-surface-open-terminal",onClick:aa,className:"flex min-h-[32px] shrink-0 items-center gap-1 rounded-md border border-warning-border bg-surface px-2 py-1 text-xs font-medium text-warning-foreground transition-colors hover:bg-muted focus:outline-none focus-visible:ring-2 focus-visible:ring-ring touch-manipulation",children:[(0,d.jsx)(j.A,{size:14,"aria-hidden":"true"}),v("chatSurface.openTerminal")]})]}),q?(0,d.jsx)(av,{frame:q,reason:_,maxLines:s?12:void 0,maxHeightClassName:af>24?"max-h-[35vh]":s?"max-h-32":"max-h-64",actions:ak}):null]})]})})},93777:(a,b,c)=>{c.d(b,{o4:()=>g});var d=c(12894);let e={method:"HEAD",cache:"no-store"},f=(a,b)=>fetch(a,b);async function g(a,b,c=f){try{var h;return(h=await c(`/api/worktrees/${encodeURIComponent(a)}/files/${(0,d.o)(b)}`,e)).ok?"present":404===h.status||400===h.status||403===h.status?"missing":"unknown"}catch{return"unknown"}}},98354:(a,b,c)=>{c.d(b,{LQ:()=>g,Ml:()=>f,sh:()=>e});let d=/^\p{M}$/u;function e(a,b){if(a.length<=b)return a.length;let c=0,e=0;for(let f of a){let a=+!d.test(f);if(1===a&&c>=b)break;c+=a,e+=f.length}return e}function f(a,b,c){return a.slice(e(a,b),e(a,c))}function g(a){let b=0;for(let c of a)d.test(c)||(b+=1);return b}},99086:(a,b,c)=>{c.d(b,{y:()=>k});var d=c(21124),e=c(38301),f=c(20481),g=c(50391),h=c(22631);let i=[{key:"Left",label:"◀",ariaLabel:"Left"},{key:"Up",label:"▲",ariaLabel:"Up"},{key:"Down",label:"▼",ariaLabel:"Down"},{key:"Right",label:"▶",ariaLabel:"Right"},{key:"Enter",label:"↵",ariaLabel:"Enter"},{key:"Escape",label:"Esc",ariaLabel:"Escape"}],j=[{key:"PageUp",label:"PgUp",ariaLabel:"Page Up"},{key:"PageDown",label:"PgDn",ariaLabel:"Page Down"},{key:"Home",label:"Home",ariaLabel:"Home"},{key:"End",label:"End",ariaLabel:"End"},{key:"q",label:"q",ariaLabelKey:"navigation.quitPager"}];function k({worktreeId:a,cliToolId:b,instanceId:c,onKeysSent:k,showPagerKeys:l=!1}){let m=(0,f.c)("worktree"),{activeKey:n,markPressed:o}=(0,h.t)(),p=(0,g.B)(a,b,c,k),q=(0,e.useCallback)(a=>{o(a[0]),p(a)},[o,p]),r=(0,e.useMemo)(()=>l?[...i,...j]:i,[l]),s=(0,e.useCallback)(a=>{let b={ArrowLeft:"Left",ArrowUp:"Up",ArrowDown:"Down",ArrowRight:"Right",Enter:"Enter",Escape:"Escape"}[a.key];b&&(a.preventDefault(),q([b]))},[q]);return(0,d.jsxs)("div",{className:"flex flex-wrap items-center gap-1.5 py-1.5 bg-muted rounded-lg",onKeyDown:s,role:"toolbar","aria-label":m("navigation.toolbarLabel"),children:[(0,d.jsx)("span",{className:"text-xs text-muted-foreground mx-2",children:m("navigation.caption")}),r.map(({key:a,label:b,ariaLabel:c,ariaLabelKey:e})=>(0,d.jsx)("button",{type:"button",className:`min-w-[44px] min-h-[44px] px-3 py-2 text-sm font-medium rounded-md
|
|
11
|
+
border border-border
|
|
12
|
+
focus:outline-none focus:ring-2 focus:ring-ring
|
|
13
|
+
transition-colors duration-75
|
|
14
|
+
${n===a?"bg-accent-500 text-white border-accent-500 scale-95":"bg-surface dark:bg-surface-2 hover:bg-muted active:bg-muted"}`,"aria-label":e?m(e):c,onClick:()=>q([a]),children:b},a))]})}}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";exports.id=3123,exports.ids=[3123],exports.modules={8849:(a,b,c)=>{c.d(b,{A:()=>d});let d=(0,c(23339).A)("plus",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]])},9212:(a,b,c)=>{c.d(b,{A:()=>d});let d=(0,c(23339).A)("rotate-ccw",[["path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"1357e3"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}]])},23123:(a,b,c)=>{c.d(b,{uN:()=>y,he:()=>p,$8:()=>t});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(15737),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")})})}let u=(0,c(23339).A)("circle-arrow-up",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m16 12-4-4-4 4",key:"177agl"}],["path",{d:"M12 16V8",key:"1sbj14"}]]);var 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,{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})}},24417:(a,b,c)=>{c.d(b,{A:()=>d});let d=(0,c(23339).A)("arrow-down",[["path",{d:"M12 5v14",key:"s699le"}],["path",{d:"m19 12-7 7-7-7",key:"1idqje"}]])},61916:(a,b,c)=>{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}}},70584:(a,b,c)=>{c.d(b,{A:()=>d});let d=(0,c(23339).A)("arrow-up",[["path",{d:"m5 12 7-7 7 7",key:"hav0vg"}],["path",{d:"M12 19V5",key:"x0mq9r"}]])},70911:(a,b,c)=>{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}}};
|
|
1
|
+
"use strict";exports.id=3123,exports.ids=[3123],exports.modules={8849:(a,b,c)=>{c.d(b,{A:()=>d});let d=(0,c(23339).A)("plus",[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"M12 5v14",key:"s699le"}]])},23123:(a,b,c)=>{c.d(b,{uN:()=>y,he:()=>p,$8:()=>t});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(15737),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")})})}let u=(0,c(23339).A)("circle-arrow-up",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m16 12-4-4-4 4",key:"177agl"}],["path",{d:"M12 16V8",key:"1sbj14"}]]);var 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,{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})}},70911:(a,b,c)=>{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}}};
|