commandmate 0.10.4 → 0.11.1
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 +265 -265
- package/.next/app-path-routes-manifest.json +25 -25
- package/.next/build-manifest.json +5 -5
- package/.next/prerender-manifest.json +9 -9
- package/.next/react-loadable-manifest.json +4 -4
- package/.next/required-server-files.json +1 -1
- package/.next/server/app/_not-found/page.js +1 -1
- package/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/.next/server/app/api/app/update/route.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/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/hooks/claude-done/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/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/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/sidebar/group-order/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/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/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]/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]/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]/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]/prompt-response/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]/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]/start-polling/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]/viewed/route_client-reference-manifest.js +1 -1
- package/.next/server/app/api/worktrees/route_client-reference-manifest.js +1 -1
- package/.next/server/app/chat/page.js +1 -1
- 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.js +1 -1
- package/.next/server/app/login/page.js.nft.json +1 -1
- package/.next/server/app/login/page_client-reference-manifest.js +1 -1
- package/.next/server/app/manifest.webmanifest/route_client-reference-manifest.js +1 -1
- package/.next/server/app/more/page.js +2 -2
- package/.next/server/app/more/page.js.nft.json +1 -1
- package/.next/server/app/more/page_client-reference-manifest.js +1 -1
- package/.next/server/app/offline/page.js +1 -1
- package/.next/server/app/offline/page.js.nft.json +1 -1
- package/.next/server/app/offline/page_client-reference-manifest.js +1 -1
- package/.next/server/app/page.js +1 -1
- package/.next/server/app/page.js.nft.json +1 -1
- package/.next/server/app/page_client-reference-manifest.js +1 -1
- package/.next/server/app/proxy/[...path]/route_client-reference-manifest.js +1 -1
- package/.next/server/app/repositories/page.js +1 -1
- package/.next/server/app/repositories/page.js.nft.json +1 -1
- package/.next/server/app/repositories/page_client-reference-manifest.js +1 -1
- package/.next/server/app/review/page.js +1 -1
- package/.next/server/app/review/page.js.nft.json +1 -1
- package/.next/server/app/review/page_client-reference-manifest.js +1 -1
- package/.next/server/app/sessions/page.js +1 -1
- package/.next/server/app/sessions/page.js.nft.json +1 -1
- package/.next/server/app/sessions/page_client-reference-manifest.js +1 -1
- package/.next/server/app/worktrees/[id]/files/[...path]/page.js +1 -1
- package/.next/server/app/worktrees/[id]/files/[...path]/page.js.nft.json +1 -1
- package/.next/server/app/worktrees/[id]/files/[...path]/page_client-reference-manifest.js +1 -1
- package/.next/server/app/worktrees/[id]/page.js +7 -7
- 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.js +1 -1
- package/.next/server/app/worktrees/[id]/terminal/page.js.nft.json +1 -1
- package/.next/server/app/worktrees/[id]/terminal/page_client-reference-manifest.js +1 -1
- package/.next/server/app-paths-manifest.json +25 -25
- package/.next/server/chunks/2119.js +1 -1
- package/.next/server/chunks/2445.js +1 -1
- package/.next/server/chunks/3644.js +13 -0
- package/.next/server/chunks/5959.js +1 -1
- package/.next/server/chunks/646.js +2 -14
- package/.next/server/chunks/9067.js +1 -1
- package/.next/server/chunks/9355.js +13 -1
- package/.next/server/chunks/{9992.js → 9968.js} +1 -1
- package/.next/server/middleware-build-manifest.js +1 -1
- package/.next/server/middleware-manifest.json +5 -5
- package/.next/server/middleware-react-loadable-manifest.js +1 -1
- package/.next/server/pages/500.html +1 -1
- package/.next/server/server-reference-manifest.json +1 -1
- package/.next/static/chunks/4560-64b1461fd996127a.js +1 -0
- package/.next/static/chunks/{7347-a013a163a75030ec.js → 6488-d6e53d8da584e644.js} +1 -1
- package/.next/static/chunks/{8566-b8bbcfd837cc338b.js → 8566-9da32e46c9d3fd54.js} +1 -1
- package/.next/static/chunks/8676.c1ef7e2aac5f05a0.js +1 -0
- package/.next/static/chunks/{8965-872d8de254196cec.js → 8965-5ff40db68775eb01.js} +1 -1
- package/.next/static/chunks/app/chat/{page-5d20240f98c07cee.js → page-6f714339e12c3a16.js} +1 -1
- package/.next/static/chunks/app/layout-86574192bd3c0e6b.js +1 -0
- package/.next/static/chunks/app/more/{page-af1d2af13ea901d2.js → page-a496425bba427b48.js} +1 -1
- package/.next/static/chunks/app/{page-3bbe737ec910d1fb.js → page-15bfd76bcf65842d.js} +1 -1
- package/.next/static/chunks/app/repositories/{page-ace9134ac165a6de.js → page-d214522ab8792ce7.js} +1 -1
- package/.next/static/chunks/app/review/{page-331b80f4f58582bc.js → page-1dadf0b5d7129598.js} +1 -1
- package/.next/static/chunks/app/sessions/{page-d694149a7e8649b6.js → page-96f007d986c5f327.js} +1 -1
- package/.next/static/chunks/app/worktrees/[id]/files/[...path]/{page-9ff4d065483cdfe9.js → page-6a45f3744da50d95.js} +1 -1
- package/.next/static/chunks/app/worktrees/[id]/page-3b07e3be354aae57.js +1 -0
- package/.next/static/chunks/{webpack-4fbc38b2e3abb013.js → webpack-25d4697671930f37.js} +1 -1
- package/.next/trace +10 -10
- package/dist/cli/commands/update.d.ts.map +1 -1
- package/dist/cli/commands/update.js +178 -1
- package/dist/cli/program.d.ts.map +1 -1
- package/dist/cli/program.js +6 -0
- package/dist/cli/types/index.d.ts +7 -0
- package/dist/cli/types/index.d.ts.map +1 -1
- package/dist/cli/utils/npx-runner.d.ts +88 -0
- package/dist/cli/utils/npx-runner.d.ts.map +1 -0
- package/dist/cli/utils/npx-runner.js +165 -0
- package/dist/lib/app-update/update-lock.d.ts +39 -0
- package/dist/lib/app-update/update-lock.d.ts.map +1 -0
- package/dist/lib/app-update/update-lock.js +116 -0
- package/package.json +1 -1
- package/.next/server/chunks/1104.js +0 -13
- package/.next/static/chunks/4560-2bf9cb6504cc4425.js +0 -1
- package/.next/static/chunks/8676.cc638529497c5a1e.js +0 -1
- package/.next/static/chunks/app/layout-fe5857360dfba2b9.js +0 -1
- package/.next/static/chunks/app/worktrees/[id]/page-932a52f8d11971f7.js +0 -1
- /package/.next/static/{uBCIYS1Hth7V4unroKqGu → WzRCDS2PLtMvg0Sjwlf0S}/_buildManifest.js +0 -0
- /package/.next/static/{uBCIYS1Hth7V4unroKqGu → WzRCDS2PLtMvg0Sjwlf0S}/_ssgManifest.js +0 -0
package/.next/static/chunks/app/review/{page-331b80f4f58582bc.js → page-1dadf0b5d7129598.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[8975],{46892:(e,t,a)=>{"use strict";a.d(t,{PL:()=>s,sb:()=>n});let r={idle:"bg-muted-foreground",ready:"bg-success",spinner:"border-info",waiting:"bg-warning"},s={idle:{className:r.idle,labelKey:"status.idle",type:"dot"},ready:{className:r.ready,labelKey:"status.ready",type:"dot"},running:{className:r.spinner,labelKey:"status.running",type:"spinner"},waiting:{className:r.waiting,labelKey:"status.waiting",type:"dot"},generating:{className:r.spinner,labelKey:"status.generating",type:"spinner"}},n={idle:"detailStatus.idle",ready:"detailStatus.ready",running:"detailStatus.running",waiting:"detailStatus.waiting"}},60322:(e,t,a)=>{"use strict";a.d(t,{l:()=>s});let r=/\x1b\[[0-9;]*[a-zA-Z]|\x1b\][^\x07]*\x07|\[[0-9;]*m/g;async function s(e){var t;if(!e||0===e.trim().length)return;let a=e.replace(r,"");if(null==(t=navigator.clipboard)?void 0:t.writeText)try{await navigator.clipboard.writeText(a);return}catch(e){}let s=document.createElement("textarea");s.value=a,s.style.position="fixed",s.style.left="-9999px",s.style.top="-9999px",s.style.opacity="0",document.body.appendChild(s),s.focus(),s.select();try{document.execCommand("copy")}finally{document.body.removeChild(s)}}},60426:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>z});var r=a(95155),s=a(12115),n=a(18955),l=a(4560),i=a(744),d=a(52619),o=a.n(d),c=a(87531);let m=["claude","codex","copilot","antigravity"];var u=a(63001),p=a(55142),x=a(54014),g=a(46892);let h={in_review:"status.inReview",approval:"status.approval",stalled:"status.stalled"},f=["in_review","approval","stalled"],v={in_review:e=>"in_review"===e.status,approval:e=>!0===e.isWaitingForResponse,stalled:e=>!0===e.isStalled};function b(e){let{status:t,label:a}=e,s=(0,n.c)("common"),l=g.PL[t],i="".concat(a,": ").concat(s(l.labelKey)),d="w-2.5 h-2.5 rounded-full flex-shrink-0";return"spinner"===l.type?(0,r.jsx)("span",{className:"".concat(d," border-2 border-t-transparent animate-spin ").concat(l.className),title:i}):(0,r.jsx)("span",{className:"".concat(d," ").concat(l.className),title:i})}function y(){let e=(0,n.c)("review"),[t,a]=(0,s.useState)([]),[l,d]=(0,s.useState)(!0),[m,g]=(0,s.useState)("in_review"),y=(0,s.useRef)(null),j=(0,s.useCallback)(async()=>{try{let t=await fetch("/api/worktrees?include=review");if(t.ok){var e;let r=await t.json();a(null!=(e=r.worktrees)?e:[])}}catch(e){}finally{d(!1)}},[]);(0,s.useEffect)(()=>(j(),y.current=setInterval(j,7e3),()=>{y.current&&clearInterval(y.current)}),[j]);let w=(0,s.useMemo)(()=>t.filter(v[m]),[t,m]),N=(0,s.useMemo)(()=>({in_review:t.filter(v.in_review).length,approval:t.filter(v.approval).length,stalled:t.filter(v.stalled).length}),[t]),S=(0,s.useMemo)(()=>{switch(m){case"in_review":return e("empty.inReview");case"approval":return e("empty.approval");case"stalled":return e("empty.stalled")}},[m,e]);return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("div",{className:"mb-6 inline-flex items-center gap-1 rounded-lg bg-muted p-1",role:"group","aria-label":e("filters.ariaLabel"),"data-testid":"review-filters",children:f.map(t=>{let a=m===t;return(0,r.jsxs)("button",{type:"button","aria-pressed":a,onClick:()=>g(t),"data-testid":"review-filter-".concat(t),className:(0,c.cn)("inline-flex items-center gap-1.5 rounded-md px-3 py-1.5 text-sm font-medium transition-colors","focus:outline-none focus-visible:ring-2 focus-visible:ring-ring",a?"bg-accent-500/15 text-accent-700 dark:text-accent-300":"text-muted-foreground hover:text-foreground"),children:[e(h[t]),(0,r.jsx)("span",{className:(0,c.cn)("text-xs font-semibold tabular-nums",a?"text-accent-700 dark:text-accent-300":"text-muted-foreground"),children:N[t]})]},t)})}),l&&(0,r.jsx)("div",{className:"space-y-2","data-testid":"review-loading",role:"status","aria-label":e("filters.loading"),children:[0,1,2].map(e=>(0,r.jsx)(i.Zp,{padding:"md",children:(0,r.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,r.jsxs)("div",{className:"min-w-0 flex-1 space-y-1.5",children:[(0,r.jsx)(i.EA,{className:"h-4 w-40 max-w-full"}),(0,r.jsx)(i.EA,{className:"h-3 w-24 max-w-full"})]}),(0,r.jsx)(i.EA,{className:"ml-4 h-5 w-16 flex-shrink-0"})]})},e))}),!l&&(0,r.jsx)("div",{className:"space-y-2","data-testid":"review-list",children:0===w.length?(0,r.jsx)("div",{className:"text-muted-foreground py-8 text-center","data-testid":"review-empty",children:S}):w.map(t=>{var a;let s=null!=(a=t.selectedAgents)?a:u.fJ;return(0,r.jsx)(o(),{href:"/worktrees/".concat(t.id),className:"block","data-testid":"review-item-".concat(t.id),children:(0,r.jsxs)(i.Zp,{padding:"md",className:"transition-colors ".concat(function(e){switch(e){case"in_review":return"border-info-border hover:border-info-border";case"approval":return"border-warning-border hover:border-warning-border";case"stalled":return"border-danger-border hover:border-danger-border"}}(m)),children:[(0,r.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,r.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,r.jsx)("div",{className:"text-sm font-medium text-foreground truncate",children:t.name}),(0,r.jsx)("div",{className:"text-xs text-muted-foreground truncate",children:t.repositoryName})]}),(0,r.jsxs)("div",{className:"flex items-center gap-2 ml-4 flex-shrink-0",children:[(0,r.jsx)("span",{className:"px-2 py-0.5 text-xs font-medium rounded ".concat(function(e){switch(e){case"in_review":return"bg-info-subtle text-info-foreground";case"approval":return"bg-warning-subtle text-warning-foreground";case"stalled":return"bg-danger-subtle text-danger-foreground"}}(m)),children:e(h[m])}),s.map(e=>{var a;let s=(0,p.kA)(null==(a=t.sessionStatusByCli)?void 0:a[e]);return(0,r.jsxs)("div",{className:"flex items-center gap-1",children:[(0,r.jsx)(b,{status:s,label:(0,x.oo)(e)}),(0,r.jsx)("span",{className:"text-xs text-muted-foreground",children:(0,x.oo)(e)})]},e)})]})]}),t.description&&(0,r.jsx)("div",{className:"mt-2",children:(0,r.jsx)("p",{className:"text-xs text-muted-foreground line-clamp-2 whitespace-pre-wrap",children:t.description})})]})},t.id)})})]})}function j(e){let t=e.getFullYear(),a=String(e.getMonth()+1).padStart(2,"0"),r=String(e.getDate()).padStart(2,"0");return"".concat(t,"-").concat(a,"-").concat(r)}function w(e){let{value:t,onChange:a}=e,s=(0,n.c)("review"),l=j(new Date),d=t===l;return(0,r.jsxs)("div",{className:"flex items-center gap-2","data-testid":"report-date-picker",children:[(0,r.jsx)(i.$n,{variant:"secondary",size:"sm",onClick:()=>{let e=new Date(t+"T00:00:00");e.setDate(e.getDate()-1),a(j(e))},"data-testid":"date-prev","aria-label":s("datePicker.previousDay"),children:"<"}),(0,r.jsx)(i.pd,{type:"date",inputSize:"sm",value:t,max:l,onChange:e=>a(e.target.value),className:"w-auto","data-testid":"date-input"}),(0,r.jsx)(i.$n,{variant:"secondary",size:"sm",onClick:()=>{if(d)return;let e=new Date(t+"T00:00:00");e.setDate(e.getDate()+1);let r=j(e);r>l||a(r)},disabled:d,"data-testid":"date-next","aria-label":s("datePicker.nextDay"),children:">"})]})}var N=a(36402),S=a(60322),k=a(9900);let C=[{value:"none",labelKey:"report.modes.none"},{value:"template",labelKey:"report.modes.template"},{value:"custom",labelKey:"report.modes.custom"}];function T(){let e=(0,n.c)("review"),t=(0,N.SC)(),[a,l]=(0,s.useState)(function(){let e=new Date,t=e.getFullYear(),a=String(e.getMonth()+1).padStart(2,"0"),r=String(e.getDate()).padStart(2,"0");return"".concat(t,"-").concat(a,"-").concat(r)}()),[d,o]=(0,s.useState)("claude"),[c,u]=(0,s.useState)(""),[p,x]=(0,s.useState)(null),[g,h]=(0,s.useState)(0),[f,v]=(0,s.useState)(""),[b,y]=(0,s.useState)(!1),[j,T]=(0,s.useState)(!1),[E,_]=(0,s.useState)(!1),[z,A]=(0,s.useState)(!1),[D,P]=(0,s.useState)(!1),[K,L]=(0,s.useState)(null),{mode:O,setMode:$,userInstruction:R,setUserInstruction:M,isUserInstructionReadOnly:I,templates:Z,selectedTemplateId:F,selectTemplate:J,isLoadingTemplates:U}=function(){let[e,t]=(0,s.useState)("none"),[a,r]=(0,s.useState)(""),[n,l]=(0,s.useState)([]),[i,d]=(0,s.useState)(null),[o,c]=(0,s.useState)(!1),m=(0,s.useCallback)(async()=>{c(!0);try{let e=await fetch("/api/templates");if(e.ok){let t=await e.json();l(t.templates||[])}}catch(e){}finally{c(!1)}},[]);(0,s.useEffect)(()=>{m()},[m]);let u=(0,s.useCallback)(e=>{t(e),r(""),d(null)},[]),p=(0,s.useCallback)(t=>{"custom"===e&&r(t)},[e]),x=(0,s.useCallback)(t=>{let a=n.find(e=>e.id===t);a&&"template"===e&&(d(t),r(a.content))},[n,e]);return{mode:e,setMode:u,userInstruction:a,setUserInstruction:p,isUserInstructionReadOnly:"template"===e,templates:n,selectedTemplateId:i,selectTemplate:x,isLoadingTemplates:o,refreshTemplates:m}}(),B=function(e){let[t,a]=(0,s.useState)({generating:!1}),r=(0,s.useRef)(null),n=(0,s.useCallback)(async()=>{try{let e=await fetch("/api/daily-summary/status");if(e.ok){let t=await e.json();a(t)}}catch(e){}},[]);return(0,s.useEffect)(()=>e?(n(),r.current=setInterval(n,5e3),()=>{r.current&&(clearInterval(r.current),r.current=null)}):void a({generating:!1}),[e,n]),t}(!E),V=B.generating&&!E,q=(0,s.useCallback)(async t=>{T(!0),L(null);try{let a=await fetch("/api/daily-summary?date=".concat(t));if(!a.ok){let t=await a.json();L(t.error||e("report.errors.fetch"));return}let r=await a.json();x(r.report),h(r.messageCount),r.report?v(r.report.content):v(""),y(!1)}catch(t){L(e("report.errors.fetch"))}finally{T(!1)}},[e]);(0,s.useEffect)(()=>{q(a)},[a,q]);let[W,X]=(0,s.useState)(!1);(0,s.useEffect)(()=>{B.generating?X(!0):W&&(X(!1),q(a))},[B.generating,W,q,a]);let Y=async()=>{if(!p||await t({description:e("report.regenerateConfirm")})){_(!0),L(null);try{let t={date:a,tool:d};"copilot"===d&&c.trim()&&(t.model=c.trim()),"none"!==O&&R.trim()&&(t.userInstruction=R.trim());let r=await fetch("/api/daily-summary",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)});if(429===r.status)return void L(e("report.errors.rateLimited"));if(!r.ok){let t=await r.json();L(t.error||e("report.errors.generate"));return}let s=await r.json();x(s.report),v(s.report.content),y(!1)}catch(t){L(e("report.errors.generate"))}finally{_(!1)}}},G=async()=>{if(!f.trim())return void L(e("report.errors.emptyContent"));A(!0),L(null);try{let t=await fetch("/api/daily-summary",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({date:a,content:f})});if(!t.ok){let a=await t.json();L(a.error||e("report.errors.save"));return}let r=await t.json();x(r.report),y(!1)}catch(t){L(e("report.errors.save"))}finally{A(!1)}};return(0,r.jsxs)("div",{"data-testid":"report-tab",children:[(0,r.jsxs)("div",{className:"flex flex-wrap items-center gap-4 mb-6",children:[(0,r.jsx)(w,{value:a,onChange:e=>{l(e)}}),(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[(0,r.jsx)("label",{className:"text-sm text-muted-foreground",children:e("report.toolLabel")}),(0,r.jsx)("select",{value:d,onChange:e=>o(e.target.value),className:"px-3 py-1 text-sm rounded border border-input bg-surface dark:bg-surface-2 text-surface-foreground","data-testid":"tool-selector",children:m.map(e=>(0,r.jsx)("option",{value:e,children:e},e))}),"copilot"===d&&(0,r.jsx)(i.pd,{type:"text",inputSize:"sm",placeholder:e("report.modelPlaceholder"),value:c,onChange:e=>u(e.target.value),className:"w-auto","data-testid":"model-input"})]})]}),(0,r.jsxs)("div",{className:"mb-4","data-testid":"generation-mode-selector",children:[(0,r.jsx)("label",{className:"text-sm font-medium text-foreground mb-2 block",children:e("report.generationMode")}),(0,r.jsx)(i.z6,{value:O,onValueChange:e=>$(e),name:"generation-mode",className:"flex flex-row gap-4",children:C.map(t=>(0,r.jsxs)("label",{className:"flex items-center gap-2 text-sm cursor-pointer",children:[(0,r.jsx)(i.CU,{value:t.value,"data-testid":"mode-radio-".concat(t.value)}),(0,r.jsx)("span",{className:"text-foreground",children:e(t.labelKey)})]},t.value))})]}),"template"===O&&(0,r.jsxs)("div",{className:"mb-4","data-testid":"template-selector",children:[(0,r.jsx)("label",{className:"text-sm font-medium text-foreground mb-2 block",children:e("report.selectTemplate")}),U?(0,r.jsx)(i.EA,{className:"h-9 w-full","data-testid":"report-template-loading",role:"status","aria-label":e("report.loadingTemplates"),"aria-hidden":void 0}):0===Z.length?(0,r.jsx)("div",{className:"text-sm text-muted-foreground",children:e("report.noTemplates")}):(0,r.jsxs)("select",{value:F||"",onChange:e=>J(e.target.value),className:"px-3 py-1 text-sm rounded border border-input bg-surface dark:bg-surface-2 text-surface-foreground","data-testid":"template-select",children:[(0,r.jsx)("option",{value:"",children:e("report.templatePlaceholderOption")}),Z.map(e=>(0,r.jsx)("option",{value:e.id,children:e.name},e.id))]})]}),"none"!==O&&(0,r.jsx)("div",{className:"mb-4",children:(0,r.jsx)(i.k_,{value:R,onChange:e=>M(e.target.value),rows:3,maxLength:1e3,readOnly:I,placeholder:"template"===O?e("report.instructionPlaceholderTemplate"):e("report.instructionPlaceholderCustom"),className:"resize-y ".concat(I?"bg-muted cursor-not-allowed":""),"data-testid":"user-instruction-input"})}),(0,r.jsx)("div",{className:"mb-6",children:(0,r.jsx)(i.$n,{variant:"primary",onClick:Y,disabled:E||V||0===g,"data-testid":"generate-button",children:E||V?e("report.generating"):e("report.generate")})}),(0,r.jsx)("div",{className:"mb-4 text-sm text-muted-foreground","data-testid":"message-count",children:j?(0,r.jsx)(i.EA,{className:"h-4 w-48"}):0===g?e("report.noMessages"):e("report.messagesFound",{count:g})}),K&&(0,r.jsx)("div",{className:"mb-4 p-3 bg-danger-subtle text-danger-foreground rounded-lg text-sm","data-testid":"report-error",children:K}),(E||V)&&(0,r.jsxs)("div",{className:"flex items-center gap-2 mb-4 text-sm text-muted-foreground","data-testid":"generating-spinner",children:[(0,r.jsx)(i.y$,{size:"sm",variant:"muted"}),V&&B.tool?B.startedAt?e("report.generatingRemoteWithTime",{tool:B.tool,seconds:Math.round((Date.now()-new Date(B.startedAt).getTime())/1e3)}):e("report.generatingRemote",{tool:B.tool}):e("report.generatingSummary")]}),!j&&p&&(0,r.jsxs)(i.Zp,{"data-testid":"report-content",children:[(0,r.jsxs)("div",{className:"flex items-center justify-between mb-3",children:[(0,r.jsxs)("div",{className:"text-xs text-muted-foreground",children:[e("report.generatedBy",{tool:p.generatedByTool}),p.model&&" (".concat(p.model,")")]}),(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[(0,r.jsx)(i.$n,{variant:"secondary",size:"sm",onClick:async()=>{await (0,S.l)(p.content),P(!0),setTimeout(()=>P(!1),k.pX)},"data-testid":"copy-report-button",children:D?e("report.copied"):e("report.copy")}),(0,r.jsx)(i.$n,{variant:"secondary",size:"sm",onClick:()=>{b?G():y(!0)},disabled:z,"data-testid":"edit-save-button",children:z?e("report.saving"):b?e("report.save"):e("report.edit")})]})]}),b?(0,r.jsx)(i.k_,{value:f,onChange:e=>v(e.target.value),className:"h-64 p-3 font-mono","data-testid":"report-editor"}):(0,r.jsx)("div",{className:"prose dark:prose-invert max-w-none text-sm whitespace-pre-wrap","data-testid":"report-preview",children:p.content})]})]})}function E(){let e=(0,n.c)("review"),t=(0,N.SC)(),[a,l]=(0,s.useState)([]),[d,o]=(0,s.useState)(!1),[c,m]=(0,s.useState)(null),[u,p]=(0,s.useState)(""),[x,g]=(0,s.useState)(""),[h,f]=(0,s.useState)(!1),[v,b]=(0,s.useState)(null),[y,j]=(0,s.useState)(""),[w,S]=(0,s.useState)(""),[k,C]=(0,s.useState)(!1),T=(0,s.useCallback)(async()=>{o(!0),m(null);try{let t=await fetch("/api/templates");if(!t.ok){let a=await t.json();m(a.error||e("template.errors.fetch"));return}let a=await t.json();l(a.templates||[])}catch(t){m(e("template.errors.fetch"))}finally{o(!1)}},[e]);(0,s.useEffect)(()=>{T()},[T]);let E=async()=>{if(!u.trim()||!x.trim())return void m(e("template.errors.nameAndContentRequired"));f(!0),m(null);try{let t=await fetch("/api/templates",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:u.trim(),content:x.trim()})});if(!t.ok){let a=await t.json();m(a.error||e("template.errors.create"));return}p(""),g(""),await T()}catch(t){m(e("template.errors.create"))}finally{f(!1)}},_=async()=>{if(!v||!y.trim()||!w.trim())return void m(e("template.errors.nameAndContentRequired"));C(!0),m(null);try{let t=await fetch("/api/templates/".concat(v),{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:y.trim(),content:w.trim()})});if(!t.ok){let a=await t.json();m(a.error||e("template.errors.update"));return}b(null),await T()}catch(t){m(e("template.errors.update"))}finally{C(!1)}},z=async a=>{if(await t({description:e("template.deleteConfirm"),variant:"danger"})){m(null);try{let t=await fetch("/api/templates/".concat(a),{method:"DELETE"});if(!t.ok){let a=await t.json();m(a.error||e("template.errors.delete"));return}await T()}catch(t){m(e("template.errors.delete"))}}},A=()=>{b(null),j(""),S("")};return(0,r.jsxs)("div",{"data-testid":"template-tab",children:[c&&(0,r.jsx)("div",{className:"mb-4 p-3 bg-danger-subtle text-danger-foreground rounded-lg text-sm","data-testid":"template-error",children:c}),(0,r.jsxs)("div",{className:"mb-6",children:[(0,r.jsx)("h2",{className:"text-lg font-semibold text-foreground mb-3",children:e("template.heading",{count:a.length,max:5})}),d?(0,r.jsx)("div",{className:"space-y-3","data-testid":"template-loading",role:"status","aria-label":e("template.loading"),children:[0,1].map(e=>(0,r.jsx)(i.Zp,{padding:"md",children:(0,r.jsxs)("div",{className:"space-y-2",children:[(0,r.jsx)(i.EA,{className:"h-4 w-32"}),(0,r.jsx)(i.EA,{className:"h-3 w-full"}),(0,r.jsx)(i.EA,{className:"h-3 w-2/3"})]})},e))}):0===a.length?(0,r.jsx)("div",{className:"text-sm text-muted-foreground","data-testid":"template-empty",children:e("template.empty")}):(0,r.jsx)("div",{className:"space-y-3","data-testid":"template-list",children:a.map(t=>(0,r.jsx)(i.Zp,{padding:"sm","data-testid":"template-item-".concat(t.id),children:v===t.id?(0,r.jsxs)("div",{className:"space-y-2",children:[(0,r.jsx)(i.pd,{type:"text",inputSize:"sm",value:y,onChange:e=>j(e.target.value),maxLength:100,"data-testid":"edit-name-input"}),(0,r.jsx)(i.k_,{value:w,onChange:e=>S(e.target.value),maxLength:1e3,rows:3,className:"resize-y","data-testid":"edit-content-input"}),(0,r.jsxs)("div",{className:"flex gap-2",children:[(0,r.jsx)(i.$n,{variant:"primary",size:"sm",onClick:_,disabled:k,"data-testid":"edit-save-button",children:k?e("template.saving"):e("template.save")}),(0,r.jsx)(i.$n,{variant:"secondary",size:"sm",onClick:A,"data-testid":"edit-cancel-button",children:e("template.cancel")})]})]}):(0,r.jsxs)("div",{children:[(0,r.jsxs)("div",{className:"flex items-center justify-between mb-1",children:[(0,r.jsx)("span",{className:"font-medium text-sm text-foreground","data-testid":"template-name",children:t.name}),(0,r.jsxs)("div",{className:"flex gap-2",children:[(0,r.jsx)(i.$n,{variant:"secondary",size:"sm",onClick:()=>{b(t.id),j(t.name),S(t.content)},"data-testid":"edit-button-".concat(t.id),children:e("template.edit")}),(0,r.jsx)(i.$n,{variant:"danger",size:"sm",onClick:()=>z(t.id),"data-testid":"delete-button-".concat(t.id),children:e("template.delete")})]})]}),(0,r.jsx)("p",{className:"text-xs text-muted-foreground whitespace-pre-wrap","data-testid":"template-content",children:t.content})]})},t.id))})]}),a.length<5&&(0,r.jsxs)("div",{className:"p-4 bg-surface border border-border rounded-lg shadow-sm","data-testid":"create-form",children:[(0,r.jsx)("h3",{className:"text-sm font-semibold text-foreground mb-3",children:e("template.newHeading")}),(0,r.jsxs)("div",{className:"space-y-3",children:[(0,r.jsx)(i.pd,{type:"text",value:u,onChange:e=>p(e.target.value),maxLength:100,placeholder:e("template.namePlaceholder"),"data-testid":"new-name-input"}),(0,r.jsx)(i.k_,{value:x,onChange:e=>g(e.target.value),maxLength:1e3,rows:3,placeholder:e("template.contentPlaceholder"),className:"resize-y","data-testid":"new-content-input"}),(0,r.jsx)(i.$n,{variant:"primary",onClick:E,disabled:h||!u.trim()||!x.trim(),"data-testid":"create-button",children:h?e("template.creating"):e("template.create")})]})]})]})}let _=[{value:"review",labelKey:"tabs.review"},{value:"report",labelKey:"tabs.report"},{value:"template",labelKey:"tabs.template"}];function z(){let e=(0,n.c)("review"),[t,a]=(0,s.useState)("review");return(0,r.jsx)(l.GV,{children:(0,r.jsxs)("div",{className:"container-custom py-8 overflow-auto h-full",children:[(0,r.jsxs)("div",{className:"mb-6",children:[(0,r.jsx)("h1",{className:"text-2xl font-bold text-foreground mb-2",children:e("page.title")}),(0,r.jsx)("p",{className:"text-sm text-muted-foreground",children:e("page.description")})]}),(0,r.jsxs)(i.tU,{value:t,onValueChange:e=>a(e),children:[(0,r.jsx)(i.j7,{className:"mb-6 w-full justify-start","data-testid":"page-tabs",children:_.map(t=>(0,r.jsx)(i.Xi,{value:t.value,"data-testid":"page-tab-".concat(t.value),children:e(t.labelKey)},t.value))}),(0,r.jsx)(i.av,{value:"review",children:(0,r.jsx)(y,{})}),(0,r.jsx)(i.av,{value:"report",children:(0,r.jsx)(T,{})}),(0,r.jsx)(i.av,{value:"template",children:(0,r.jsx)(E,{})})]})]})})}},80488:(e,t,a)=>{Promise.resolve().then(a.bind(a,60426))}},e=>{e.O(0,[6809,4909,2770,3165,4974,6402,744,7347,4560,8441,1255,7358],()=>e(e.s=80488)),_N_E=e.O()}]);
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[8975],{46892:(e,t,a)=>{"use strict";a.d(t,{PL:()=>s,sb:()=>n});let r={idle:"bg-muted-foreground",ready:"bg-success",spinner:"border-info",waiting:"bg-warning"},s={idle:{className:r.idle,labelKey:"status.idle",type:"dot"},ready:{className:r.ready,labelKey:"status.ready",type:"dot"},running:{className:r.spinner,labelKey:"status.running",type:"spinner"},waiting:{className:r.waiting,labelKey:"status.waiting",type:"dot"},generating:{className:r.spinner,labelKey:"status.generating",type:"spinner"}},n={idle:"detailStatus.idle",ready:"detailStatus.ready",running:"detailStatus.running",waiting:"detailStatus.waiting"}},60322:(e,t,a)=>{"use strict";a.d(t,{l:()=>s});let r=/\x1b\[[0-9;]*[a-zA-Z]|\x1b\][^\x07]*\x07|\[[0-9;]*m/g;async function s(e){var t;if(!e||0===e.trim().length)return;let a=e.replace(r,"");if(null==(t=navigator.clipboard)?void 0:t.writeText)try{await navigator.clipboard.writeText(a);return}catch(e){}let s=document.createElement("textarea");s.value=a,s.style.position="fixed",s.style.left="-9999px",s.style.top="-9999px",s.style.opacity="0",document.body.appendChild(s),s.focus(),s.select();try{document.execCommand("copy")}finally{document.body.removeChild(s)}}},60426:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>z});var r=a(95155),s=a(12115),n=a(18955),l=a(4560),i=a(744),d=a(52619),o=a.n(d),c=a(87531);let m=["claude","codex","copilot","antigravity"];var u=a(63001),p=a(55142),x=a(54014),g=a(46892);let h={in_review:"status.inReview",approval:"status.approval",stalled:"status.stalled"},f=["in_review","approval","stalled"],v={in_review:e=>"in_review"===e.status,approval:e=>!0===e.isWaitingForResponse,stalled:e=>!0===e.isStalled};function b(e){let{status:t,label:a}=e,s=(0,n.c)("common"),l=g.PL[t],i="".concat(a,": ").concat(s(l.labelKey)),d="w-2.5 h-2.5 rounded-full flex-shrink-0";return"spinner"===l.type?(0,r.jsx)("span",{className:"".concat(d," border-2 border-t-transparent animate-spin ").concat(l.className),title:i}):(0,r.jsx)("span",{className:"".concat(d," ").concat(l.className),title:i})}function y(){let e=(0,n.c)("review"),[t,a]=(0,s.useState)([]),[l,d]=(0,s.useState)(!0),[m,g]=(0,s.useState)("in_review"),y=(0,s.useRef)(null),j=(0,s.useCallback)(async()=>{try{let t=await fetch("/api/worktrees?include=review");if(t.ok){var e;let r=await t.json();a(null!=(e=r.worktrees)?e:[])}}catch(e){}finally{d(!1)}},[]);(0,s.useEffect)(()=>(j(),y.current=setInterval(j,7e3),()=>{y.current&&clearInterval(y.current)}),[j]);let w=(0,s.useMemo)(()=>t.filter(v[m]),[t,m]),N=(0,s.useMemo)(()=>({in_review:t.filter(v.in_review).length,approval:t.filter(v.approval).length,stalled:t.filter(v.stalled).length}),[t]),S=(0,s.useMemo)(()=>{switch(m){case"in_review":return e("empty.inReview");case"approval":return e("empty.approval");case"stalled":return e("empty.stalled")}},[m,e]);return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("div",{className:"mb-6 inline-flex items-center gap-1 rounded-lg bg-muted p-1",role:"group","aria-label":e("filters.ariaLabel"),"data-testid":"review-filters",children:f.map(t=>{let a=m===t;return(0,r.jsxs)("button",{type:"button","aria-pressed":a,onClick:()=>g(t),"data-testid":"review-filter-".concat(t),className:(0,c.cn)("inline-flex items-center gap-1.5 rounded-md px-3 py-1.5 text-sm font-medium transition-colors","focus:outline-none focus-visible:ring-2 focus-visible:ring-ring",a?"bg-accent-500/15 text-accent-700 dark:text-accent-300":"text-muted-foreground hover:text-foreground"),children:[e(h[t]),(0,r.jsx)("span",{className:(0,c.cn)("text-xs font-semibold tabular-nums",a?"text-accent-700 dark:text-accent-300":"text-muted-foreground"),children:N[t]})]},t)})}),l&&(0,r.jsx)("div",{className:"space-y-2","data-testid":"review-loading",role:"status","aria-label":e("filters.loading"),children:[0,1,2].map(e=>(0,r.jsx)(i.Zp,{padding:"md",children:(0,r.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,r.jsxs)("div",{className:"min-w-0 flex-1 space-y-1.5",children:[(0,r.jsx)(i.EA,{className:"h-4 w-40 max-w-full"}),(0,r.jsx)(i.EA,{className:"h-3 w-24 max-w-full"})]}),(0,r.jsx)(i.EA,{className:"ml-4 h-5 w-16 flex-shrink-0"})]})},e))}),!l&&(0,r.jsx)("div",{className:"space-y-2","data-testid":"review-list",children:0===w.length?(0,r.jsx)("div",{className:"text-muted-foreground py-8 text-center","data-testid":"review-empty",children:S}):w.map(t=>{var a;let s=null!=(a=t.selectedAgents)?a:u.fJ;return(0,r.jsx)(o(),{href:"/worktrees/".concat(t.id),className:"block","data-testid":"review-item-".concat(t.id),children:(0,r.jsxs)(i.Zp,{padding:"md",className:"transition-colors ".concat(function(e){switch(e){case"in_review":return"border-info-border hover:border-info-border";case"approval":return"border-warning-border hover:border-warning-border";case"stalled":return"border-danger-border hover:border-danger-border"}}(m)),children:[(0,r.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,r.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,r.jsx)("div",{className:"text-sm font-medium text-foreground truncate",children:t.name}),(0,r.jsx)("div",{className:"text-xs text-muted-foreground truncate",children:t.repositoryName})]}),(0,r.jsxs)("div",{className:"flex items-center gap-2 ml-4 flex-shrink-0",children:[(0,r.jsx)("span",{className:"px-2 py-0.5 text-xs font-medium rounded ".concat(function(e){switch(e){case"in_review":return"bg-info-subtle text-info-foreground";case"approval":return"bg-warning-subtle text-warning-foreground";case"stalled":return"bg-danger-subtle text-danger-foreground"}}(m)),children:e(h[m])}),s.map(e=>{var a;let s=(0,p.kA)(null==(a=t.sessionStatusByCli)?void 0:a[e]);return(0,r.jsxs)("div",{className:"flex items-center gap-1",children:[(0,r.jsx)(b,{status:s,label:(0,x.oo)(e)}),(0,r.jsx)("span",{className:"text-xs text-muted-foreground",children:(0,x.oo)(e)})]},e)})]})]}),t.description&&(0,r.jsx)("div",{className:"mt-2",children:(0,r.jsx)("p",{className:"text-xs text-muted-foreground line-clamp-2 whitespace-pre-wrap",children:t.description})})]})},t.id)})})]})}function j(e){let t=e.getFullYear(),a=String(e.getMonth()+1).padStart(2,"0"),r=String(e.getDate()).padStart(2,"0");return"".concat(t,"-").concat(a,"-").concat(r)}function w(e){let{value:t,onChange:a}=e,s=(0,n.c)("review"),l=j(new Date),d=t===l;return(0,r.jsxs)("div",{className:"flex items-center gap-2","data-testid":"report-date-picker",children:[(0,r.jsx)(i.$n,{variant:"secondary",size:"sm",onClick:()=>{let e=new Date(t+"T00:00:00");e.setDate(e.getDate()-1),a(j(e))},"data-testid":"date-prev","aria-label":s("datePicker.previousDay"),children:"<"}),(0,r.jsx)(i.pd,{type:"date",inputSize:"sm",value:t,max:l,onChange:e=>a(e.target.value),className:"w-auto","data-testid":"date-input"}),(0,r.jsx)(i.$n,{variant:"secondary",size:"sm",onClick:()=>{if(d)return;let e=new Date(t+"T00:00:00");e.setDate(e.getDate()+1);let r=j(e);r>l||a(r)},disabled:d,"data-testid":"date-next","aria-label":s("datePicker.nextDay"),children:">"})]})}var N=a(36402),S=a(60322),k=a(9900);let C=[{value:"none",labelKey:"report.modes.none"},{value:"template",labelKey:"report.modes.template"},{value:"custom",labelKey:"report.modes.custom"}];function T(){let e=(0,n.c)("review"),t=(0,N.SC)(),[a,l]=(0,s.useState)(function(){let e=new Date,t=e.getFullYear(),a=String(e.getMonth()+1).padStart(2,"0"),r=String(e.getDate()).padStart(2,"0");return"".concat(t,"-").concat(a,"-").concat(r)}()),[d,o]=(0,s.useState)("claude"),[c,u]=(0,s.useState)(""),[p,x]=(0,s.useState)(null),[g,h]=(0,s.useState)(0),[f,v]=(0,s.useState)(""),[b,y]=(0,s.useState)(!1),[j,T]=(0,s.useState)(!1),[E,_]=(0,s.useState)(!1),[z,A]=(0,s.useState)(!1),[D,P]=(0,s.useState)(!1),[K,L]=(0,s.useState)(null),{mode:O,setMode:$,userInstruction:R,setUserInstruction:M,isUserInstructionReadOnly:I,templates:Z,selectedTemplateId:F,selectTemplate:J,isLoadingTemplates:U}=function(){let[e,t]=(0,s.useState)("none"),[a,r]=(0,s.useState)(""),[n,l]=(0,s.useState)([]),[i,d]=(0,s.useState)(null),[o,c]=(0,s.useState)(!1),m=(0,s.useCallback)(async()=>{c(!0);try{let e=await fetch("/api/templates");if(e.ok){let t=await e.json();l(t.templates||[])}}catch(e){}finally{c(!1)}},[]);(0,s.useEffect)(()=>{m()},[m]);let u=(0,s.useCallback)(e=>{t(e),r(""),d(null)},[]),p=(0,s.useCallback)(t=>{"custom"===e&&r(t)},[e]),x=(0,s.useCallback)(t=>{let a=n.find(e=>e.id===t);a&&"template"===e&&(d(t),r(a.content))},[n,e]);return{mode:e,setMode:u,userInstruction:a,setUserInstruction:p,isUserInstructionReadOnly:"template"===e,templates:n,selectedTemplateId:i,selectTemplate:x,isLoadingTemplates:o,refreshTemplates:m}}(),B=function(e){let[t,a]=(0,s.useState)({generating:!1}),r=(0,s.useRef)(null),n=(0,s.useCallback)(async()=>{try{let e=await fetch("/api/daily-summary/status");if(e.ok){let t=await e.json();a(t)}}catch(e){}},[]);return(0,s.useEffect)(()=>e?(n(),r.current=setInterval(n,5e3),()=>{r.current&&(clearInterval(r.current),r.current=null)}):void a({generating:!1}),[e,n]),t}(!E),V=B.generating&&!E,q=(0,s.useCallback)(async t=>{T(!0),L(null);try{let a=await fetch("/api/daily-summary?date=".concat(t));if(!a.ok){let t=await a.json();L(t.error||e("report.errors.fetch"));return}let r=await a.json();x(r.report),h(r.messageCount),r.report?v(r.report.content):v(""),y(!1)}catch(t){L(e("report.errors.fetch"))}finally{T(!1)}},[e]);(0,s.useEffect)(()=>{q(a)},[a,q]);let[W,X]=(0,s.useState)(!1);(0,s.useEffect)(()=>{B.generating?X(!0):W&&(X(!1),q(a))},[B.generating,W,q,a]);let Y=async()=>{if(!p||await t({description:e("report.regenerateConfirm")})){_(!0),L(null);try{let t={date:a,tool:d};"copilot"===d&&c.trim()&&(t.model=c.trim()),"none"!==O&&R.trim()&&(t.userInstruction=R.trim());let r=await fetch("/api/daily-summary",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)});if(429===r.status)return void L(e("report.errors.rateLimited"));if(!r.ok){let t=await r.json();L(t.error||e("report.errors.generate"));return}let s=await r.json();x(s.report),v(s.report.content),y(!1)}catch(t){L(e("report.errors.generate"))}finally{_(!1)}}},G=async()=>{if(!f.trim())return void L(e("report.errors.emptyContent"));A(!0),L(null);try{let t=await fetch("/api/daily-summary",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({date:a,content:f})});if(!t.ok){let a=await t.json();L(a.error||e("report.errors.save"));return}let r=await t.json();x(r.report),y(!1)}catch(t){L(e("report.errors.save"))}finally{A(!1)}};return(0,r.jsxs)("div",{"data-testid":"report-tab",children:[(0,r.jsxs)("div",{className:"flex flex-wrap items-center gap-4 mb-6",children:[(0,r.jsx)(w,{value:a,onChange:e=>{l(e)}}),(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[(0,r.jsx)("label",{className:"text-sm text-muted-foreground",children:e("report.toolLabel")}),(0,r.jsx)("select",{value:d,onChange:e=>o(e.target.value),className:"px-3 py-1 text-sm rounded border border-input bg-surface dark:bg-surface-2 text-surface-foreground","data-testid":"tool-selector",children:m.map(e=>(0,r.jsx)("option",{value:e,children:e},e))}),"copilot"===d&&(0,r.jsx)(i.pd,{type:"text",inputSize:"sm",placeholder:e("report.modelPlaceholder"),value:c,onChange:e=>u(e.target.value),className:"w-auto","data-testid":"model-input"})]})]}),(0,r.jsxs)("div",{className:"mb-4","data-testid":"generation-mode-selector",children:[(0,r.jsx)("label",{className:"text-sm font-medium text-foreground mb-2 block",children:e("report.generationMode")}),(0,r.jsx)(i.z6,{value:O,onValueChange:e=>$(e),name:"generation-mode",className:"flex flex-row gap-4",children:C.map(t=>(0,r.jsxs)("label",{className:"flex items-center gap-2 text-sm cursor-pointer",children:[(0,r.jsx)(i.CU,{value:t.value,"data-testid":"mode-radio-".concat(t.value)}),(0,r.jsx)("span",{className:"text-foreground",children:e(t.labelKey)})]},t.value))})]}),"template"===O&&(0,r.jsxs)("div",{className:"mb-4","data-testid":"template-selector",children:[(0,r.jsx)("label",{className:"text-sm font-medium text-foreground mb-2 block",children:e("report.selectTemplate")}),U?(0,r.jsx)(i.EA,{className:"h-9 w-full","data-testid":"report-template-loading",role:"status","aria-label":e("report.loadingTemplates"),"aria-hidden":void 0}):0===Z.length?(0,r.jsx)("div",{className:"text-sm text-muted-foreground",children:e("report.noTemplates")}):(0,r.jsxs)("select",{value:F||"",onChange:e=>J(e.target.value),className:"px-3 py-1 text-sm rounded border border-input bg-surface dark:bg-surface-2 text-surface-foreground","data-testid":"template-select",children:[(0,r.jsx)("option",{value:"",children:e("report.templatePlaceholderOption")}),Z.map(e=>(0,r.jsx)("option",{value:e.id,children:e.name},e.id))]})]}),"none"!==O&&(0,r.jsx)("div",{className:"mb-4",children:(0,r.jsx)(i.k_,{value:R,onChange:e=>M(e.target.value),rows:3,maxLength:1e3,readOnly:I,placeholder:"template"===O?e("report.instructionPlaceholderTemplate"):e("report.instructionPlaceholderCustom"),className:"resize-y ".concat(I?"bg-muted cursor-not-allowed":""),"data-testid":"user-instruction-input"})}),(0,r.jsx)("div",{className:"mb-6",children:(0,r.jsx)(i.$n,{variant:"primary",onClick:Y,disabled:E||V||0===g,"data-testid":"generate-button",children:E||V?e("report.generating"):e("report.generate")})}),(0,r.jsx)("div",{className:"mb-4 text-sm text-muted-foreground","data-testid":"message-count",children:j?(0,r.jsx)(i.EA,{className:"h-4 w-48"}):0===g?e("report.noMessages"):e("report.messagesFound",{count:g})}),K&&(0,r.jsx)("div",{className:"mb-4 p-3 bg-danger-subtle text-danger-foreground rounded-lg text-sm","data-testid":"report-error",children:K}),(E||V)&&(0,r.jsxs)("div",{className:"flex items-center gap-2 mb-4 text-sm text-muted-foreground","data-testid":"generating-spinner",children:[(0,r.jsx)(i.y$,{size:"sm",variant:"muted"}),V&&B.tool?B.startedAt?e("report.generatingRemoteWithTime",{tool:B.tool,seconds:Math.round((Date.now()-new Date(B.startedAt).getTime())/1e3)}):e("report.generatingRemote",{tool:B.tool}):e("report.generatingSummary")]}),!j&&p&&(0,r.jsxs)(i.Zp,{"data-testid":"report-content",children:[(0,r.jsxs)("div",{className:"flex items-center justify-between mb-3",children:[(0,r.jsxs)("div",{className:"text-xs text-muted-foreground",children:[e("report.generatedBy",{tool:p.generatedByTool}),p.model&&" (".concat(p.model,")")]}),(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[(0,r.jsx)(i.$n,{variant:"secondary",size:"sm",onClick:async()=>{await (0,S.l)(p.content),P(!0),setTimeout(()=>P(!1),k.pX)},"data-testid":"copy-report-button",children:D?e("report.copied"):e("report.copy")}),(0,r.jsx)(i.$n,{variant:"secondary",size:"sm",onClick:()=>{b?G():y(!0)},disabled:z,"data-testid":"edit-save-button",children:z?e("report.saving"):b?e("report.save"):e("report.edit")})]})]}),b?(0,r.jsx)(i.k_,{value:f,onChange:e=>v(e.target.value),className:"h-64 p-3 font-mono","data-testid":"report-editor"}):(0,r.jsx)("div",{className:"prose dark:prose-invert max-w-none text-sm whitespace-pre-wrap","data-testid":"report-preview",children:p.content})]})]})}function E(){let e=(0,n.c)("review"),t=(0,N.SC)(),[a,l]=(0,s.useState)([]),[d,o]=(0,s.useState)(!1),[c,m]=(0,s.useState)(null),[u,p]=(0,s.useState)(""),[x,g]=(0,s.useState)(""),[h,f]=(0,s.useState)(!1),[v,b]=(0,s.useState)(null),[y,j]=(0,s.useState)(""),[w,S]=(0,s.useState)(""),[k,C]=(0,s.useState)(!1),T=(0,s.useCallback)(async()=>{o(!0),m(null);try{let t=await fetch("/api/templates");if(!t.ok){let a=await t.json();m(a.error||e("template.errors.fetch"));return}let a=await t.json();l(a.templates||[])}catch(t){m(e("template.errors.fetch"))}finally{o(!1)}},[e]);(0,s.useEffect)(()=>{T()},[T]);let E=async()=>{if(!u.trim()||!x.trim())return void m(e("template.errors.nameAndContentRequired"));f(!0),m(null);try{let t=await fetch("/api/templates",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:u.trim(),content:x.trim()})});if(!t.ok){let a=await t.json();m(a.error||e("template.errors.create"));return}p(""),g(""),await T()}catch(t){m(e("template.errors.create"))}finally{f(!1)}},_=async()=>{if(!v||!y.trim()||!w.trim())return void m(e("template.errors.nameAndContentRequired"));C(!0),m(null);try{let t=await fetch("/api/templates/".concat(v),{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:y.trim(),content:w.trim()})});if(!t.ok){let a=await t.json();m(a.error||e("template.errors.update"));return}b(null),await T()}catch(t){m(e("template.errors.update"))}finally{C(!1)}},z=async a=>{if(await t({description:e("template.deleteConfirm"),variant:"danger"})){m(null);try{let t=await fetch("/api/templates/".concat(a),{method:"DELETE"});if(!t.ok){let a=await t.json();m(a.error||e("template.errors.delete"));return}await T()}catch(t){m(e("template.errors.delete"))}}},A=()=>{b(null),j(""),S("")};return(0,r.jsxs)("div",{"data-testid":"template-tab",children:[c&&(0,r.jsx)("div",{className:"mb-4 p-3 bg-danger-subtle text-danger-foreground rounded-lg text-sm","data-testid":"template-error",children:c}),(0,r.jsxs)("div",{className:"mb-6",children:[(0,r.jsx)("h2",{className:"text-lg font-semibold text-foreground mb-3",children:e("template.heading",{count:a.length,max:5})}),d?(0,r.jsx)("div",{className:"space-y-3","data-testid":"template-loading",role:"status","aria-label":e("template.loading"),children:[0,1].map(e=>(0,r.jsx)(i.Zp,{padding:"md",children:(0,r.jsxs)("div",{className:"space-y-2",children:[(0,r.jsx)(i.EA,{className:"h-4 w-32"}),(0,r.jsx)(i.EA,{className:"h-3 w-full"}),(0,r.jsx)(i.EA,{className:"h-3 w-2/3"})]})},e))}):0===a.length?(0,r.jsx)("div",{className:"text-sm text-muted-foreground","data-testid":"template-empty",children:e("template.empty")}):(0,r.jsx)("div",{className:"space-y-3","data-testid":"template-list",children:a.map(t=>(0,r.jsx)(i.Zp,{padding:"sm","data-testid":"template-item-".concat(t.id),children:v===t.id?(0,r.jsxs)("div",{className:"space-y-2",children:[(0,r.jsx)(i.pd,{type:"text",inputSize:"sm",value:y,onChange:e=>j(e.target.value),maxLength:100,"data-testid":"edit-name-input"}),(0,r.jsx)(i.k_,{value:w,onChange:e=>S(e.target.value),maxLength:1e3,rows:3,className:"resize-y","data-testid":"edit-content-input"}),(0,r.jsxs)("div",{className:"flex gap-2",children:[(0,r.jsx)(i.$n,{variant:"primary",size:"sm",onClick:_,disabled:k,"data-testid":"edit-save-button",children:k?e("template.saving"):e("template.save")}),(0,r.jsx)(i.$n,{variant:"secondary",size:"sm",onClick:A,"data-testid":"edit-cancel-button",children:e("template.cancel")})]})]}):(0,r.jsxs)("div",{children:[(0,r.jsxs)("div",{className:"flex items-center justify-between mb-1",children:[(0,r.jsx)("span",{className:"font-medium text-sm text-foreground","data-testid":"template-name",children:t.name}),(0,r.jsxs)("div",{className:"flex gap-2",children:[(0,r.jsx)(i.$n,{variant:"secondary",size:"sm",onClick:()=>{b(t.id),j(t.name),S(t.content)},"data-testid":"edit-button-".concat(t.id),children:e("template.edit")}),(0,r.jsx)(i.$n,{variant:"danger",size:"sm",onClick:()=>z(t.id),"data-testid":"delete-button-".concat(t.id),children:e("template.delete")})]})]}),(0,r.jsx)("p",{className:"text-xs text-muted-foreground whitespace-pre-wrap","data-testid":"template-content",children:t.content})]})},t.id))})]}),a.length<5&&(0,r.jsxs)("div",{className:"p-4 bg-surface border border-border rounded-lg shadow-sm","data-testid":"create-form",children:[(0,r.jsx)("h3",{className:"text-sm font-semibold text-foreground mb-3",children:e("template.newHeading")}),(0,r.jsxs)("div",{className:"space-y-3",children:[(0,r.jsx)(i.pd,{type:"text",value:u,onChange:e=>p(e.target.value),maxLength:100,placeholder:e("template.namePlaceholder"),"data-testid":"new-name-input"}),(0,r.jsx)(i.k_,{value:x,onChange:e=>g(e.target.value),maxLength:1e3,rows:3,placeholder:e("template.contentPlaceholder"),className:"resize-y","data-testid":"new-content-input"}),(0,r.jsx)(i.$n,{variant:"primary",onClick:E,disabled:h||!u.trim()||!x.trim(),"data-testid":"create-button",children:h?e("template.creating"):e("template.create")})]})]})]})}let _=[{value:"review",labelKey:"tabs.review"},{value:"report",labelKey:"tabs.report"},{value:"template",labelKey:"tabs.template"}];function z(){let e=(0,n.c)("review"),[t,a]=(0,s.useState)("review");return(0,r.jsx)(l.GV,{children:(0,r.jsxs)("div",{className:"container-custom py-8 overflow-auto h-full",children:[(0,r.jsxs)("div",{className:"mb-6",children:[(0,r.jsx)("h1",{className:"text-2xl font-bold text-foreground mb-2",children:e("page.title")}),(0,r.jsx)("p",{className:"text-sm text-muted-foreground",children:e("page.description")})]}),(0,r.jsxs)(i.tU,{value:t,onValueChange:e=>a(e),children:[(0,r.jsx)(i.j7,{className:"mb-6 w-full justify-start","data-testid":"page-tabs",children:_.map(t=>(0,r.jsx)(i.Xi,{value:t.value,"data-testid":"page-tab-".concat(t.value),children:e(t.labelKey)},t.value))}),(0,r.jsx)(i.av,{value:"review",children:(0,r.jsx)(y,{})}),(0,r.jsx)(i.av,{value:"report",children:(0,r.jsx)(T,{})}),(0,r.jsx)(i.av,{value:"template",children:(0,r.jsx)(E,{})})]})]})})}},80488:(e,t,a)=>{Promise.resolve().then(a.bind(a,60426))}},e=>{e.O(0,[6809,4909,2770,3165,4974,6402,744,6488,4560,8441,1255,7358],()=>e(e.s=80488)),_N_E=e.O()}]);
|
package/.next/static/chunks/app/sessions/{page-d694149a7e8649b6.js → page-96f007d986c5f327.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[8898],{6473:(e,s,t)=>{"use strict";t.d(s,{Lc:()=>a,qz:()=>r});let r="animate-in fade-in-0 slide-in-from-bottom-2 fill-mode-backwards duration-300";function a(e){let s=arguments.length>1&&void 0!==arguments[1]?arguments[1]:40,t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:10;if(Number.isFinite(e)&&!(e<=0)&&!(e>=t))return"".concat(e*s,"ms")}},8803:(e,s,t)=>{"use strict";t.d(s,{A:()=>r});let r=(0,t(71847).A)("arrow-down",[["path",{d:"M12 5v14",key:"s699le"}],["path",{d:"m19 12-7 7-7-7",key:"1idqje"}]])},9219:(e,s,t)=>{"use strict";t.d(s,{k:()=>l});var r=t(95155),a=t(12115),n=t(744),i=t(87531);function l(e){let{onRefresh:s,enabled:t=!0,className:l,children:o}=e,{containerRef:c,pullDistance:d,isRefreshing:u,isPulling:m}=function(e){let{onRefresh:s,enabled:t=!0,threshold:r=64,maxPull:n=96,resistance:i=.5}=e,l=(0,a.useRef)(null),[o,c]=(0,a.useState)(0),[d,u]=(0,a.useState)(!1),[m,x]=(0,a.useState)(!1),h=(0,a.useRef)(null),f=(0,a.useRef)(0),g=(0,a.useRef)(!1);g.current=d;let p=(0,a.useCallback)(()=>{h.current=null,f.current=0,c(0),x(!1)},[]),v=(0,a.useCallback)(e=>{if(!t||g.current)return;let s=l.current;s&&!(s.scrollTop>0)&&(h.current=e.touches[0].clientY,f.current=0)},[t]),b=(0,a.useCallback)(e=>{if(null===h.current)return;let s=l.current;if(!s)return;if(s.scrollTop>0)return void p();let t=e.touches[0].clientY-h.current;if(t<=0){0!==f.current&&(f.current=0,c(0),x(!1));return}e.cancelable&&e.preventDefault();let r=Math.min(t*i,n);f.current=r,c(r),x(!0)},[i,n,p]),y=(0,a.useCallback)(async()=>{u(!0),x(!1),c(r);try{await Promise.resolve(s())}finally{u(!1),c(0)}},[s,r]),N=(0,a.useCallback)(()=>{if(null===h.current)return;let e=f.current>=r&&!g.current;h.current=null,f.current=0,e?y():(c(0),x(!1))},[r,y]);return(0,a.useEffect)(()=>{let e=l.current;if(e)return e.addEventListener("touchstart",v,{passive:!0}),e.addEventListener("touchmove",b,{passive:!1}),e.addEventListener("touchend",N,{passive:!0}),e.addEventListener("touchcancel",N,{passive:!0}),()=>{e.removeEventListener("touchstart",v),e.removeEventListener("touchmove",b),e.removeEventListener("touchend",N),e.removeEventListener("touchcancel",N)}},[v,b,N]),{containerRef:l,pullDistance:o,isRefreshing:d,isPulling:m}}({onRefresh:s,enabled:t,threshold:64}),x=u||d>0,h=u?1:Math.min(d/64,1);return(0,r.jsxs)("div",{ref:c,className:(0,i.cn)("relative overflow-auto",l),style:{overscrollBehaviorY:"contain"},"data-testid":"pull-to-refresh",children:[(0,r.jsx)("div",{className:"pointer-events-none absolute inset-x-0 top-0 z-10 flex justify-center",style:{transform:"translateY(".concat(x?Math.max(d-24,8):-32,"px)"),opacity:h,transition:m?"none":"transform 0.2s ease-out, opacity 0.2s ease-out"},"data-testid":"pull-to-refresh-indicator",role:"status","aria-hidden":!u,children:(0,r.jsx)(n.y$,{size:"sm",variant:"accent"})}),(0,r.jsx)("div",{style:{transform:x?"translateY(".concat(d,"px)"):void 0,transition:m?"none":"transform 0.2s ease-out"},children:o})]})}},20562:(e,s,t)=>{"use strict";t.d(s,{A:()=>r});let r=(0,t(71847).A)("arrow-up",[["path",{d:"m5 12 7-7 7 7",key:"hav0vg"}],["path",{d:"M12 19V5",key:"x0mq9r"}]])},50857:(e,s,t)=>{"use strict";function r(e){return"running"===e||"generating"===e||"waiting"===e}function a(e){return e.isActive||r(e.status)}function n(e,s){let t=e.map((e,s)=>({it:e,index:s})).filter(e=>{let{it:s}=e;return a(s)}),r=new Set;return s>0&&t.length>0&&[...t].sort((e,s)=>Number(s.it.isActive)-Number(e.it.isActive)||e.index-s.index).slice(0,s).forEach(e=>{let{index:s}=e;return r.add(s)}),e.map((e,s)=>a(e)?{...e,slot:r.has(s)?"pill":"overflow"}:{...e,slot:"dot"})}t.d(s,{Qo:()=>r,Uw:()=>n})},74500:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>L});var r=t(95155),a=t(12115),n=t(52619),i=t.n(n),l=t(18955),o=t(20562),c=t(8803),d=t(4560),u=t(9219),m=t(38218),x=t(66966),h=t(55142),f=t(50857),g=t(54014),p=t(63001),v=t(744),b=t(7636),y=t(83012),N=t(6473);let j=[{key:"repositoryName",labelKey:"sort.repositoryName"},{key:"status",labelKey:"sort.status"},{key:"lastSent",labelKey:"sort.lastSent"}],w={lastSent:"desc",updatedAt:"desc"},k={ready:0,in_progress:1,in_review:2,done:3};function A(e){let{status:s,label:t}=e,a=(0,l.c)("common"),n="".concat(t,": ").concat(a("status.".concat(s)));return(0,r.jsx)(v.md,{status:s,size:"md",label:n})}let C={ready:"worktreeStatus.ready",in_progress:"worktreeStatus.inProgress",in_review:"worktreeStatus.inReview",done:"worktreeStatus.done"},M={done:"bg-success-subtle text-success-foreground",in_review:"bg-info-subtle text-info-foreground",in_progress:"bg-accent-100 dark:bg-accent-900/30 text-accent-700 dark:text-accent-400"};function L(){let e=(0,l.c)("common"),s=(0,l.c)("worktree"),t=(0,m.a)(),{worktrees:n,isLoading:L,error:E,refresh:S}=(0,x.Fn)(),_=n.length>0,[F,D]=(0,a.useState)(""),[U,z]=(0,a.useState)("lastSent"),[P,B]=(0,a.useState)("desc"),R=(0,a.useMemo)(()=>{let e=n;if(F){let s=F.toLowerCase();e=e.filter(e=>{var t,r;return e.name.toLowerCase().includes(s)||e.repositoryName.toLowerCase().includes(s)||null!=(r=null==(t=e.repositoryDisplayName)?void 0:t.toLowerCase().includes(s))&&r})}let s=[...e];return s.sort((e,s)=>{var t,r,a,n,i,l,o,c;let d=0;switch(U){case"lastSent":{let t=(0,b.nO)(e.lastUserMessageAt,s.lastUserMessageAt);if(!e.lastUserMessageAt&&!s.lastUserMessageAt)return 0;if(!e.lastUserMessageAt)return 1;if(!s.lastUserMessageAt)return -1;d=t;break}case"repositoryName":{let a=(null!=(t=e.repositoryDisplayName)?t:e.repositoryName).toLowerCase(),n=(null!=(r=s.repositoryDisplayName)?r:s.repositoryName).toLowerCase();0===(d=a.localeCompare(n))&&(d=e.name.toLowerCase().localeCompare(s.name.toLowerCase()));break}case"status":if(0==(d=(null!=(n=k[null!=(a=e.status)?a:""])?n:4)-(null!=(l=k[null!=(i=s.status)?i:""])?l:4))){let t=(null!=(o=e.repositoryDisplayName)?o:e.repositoryName).toLowerCase(),r=(null!=(c=s.repositoryDisplayName)?c:s.repositoryName).toLowerCase();d=t.localeCompare(r)}break;default:d=0}return("lastSent"===U?"desc"===P:"asc"===P)?d:-d}),s},[n,F,U,P]),T=(0,a.useCallback)(e=>{D(e.target.value)},[]),q=(0,a.useCallback)(e=>{var s;z(e),B(null!=(s=w[e])?s:"asc")},[]),K=(0,a.useCallback)(()=>{B(e=>"asc"===e?"desc":"asc")},[]);return(0,r.jsx)(d.GV,{children:(0,r.jsxs)(u.k,{onRefresh:S,enabled:t,className:"container-custom py-8 h-full",children:[(0,r.jsxs)("div",{className:"mb-6",children:[(0,r.jsx)("h1",{className:"text-2xl font-bold text-foreground mb-2",children:e("sessions.title")}),(0,r.jsx)("p",{className:"text-sm text-muted-foreground",children:e("sessions.description")})]}),(0,r.jsxs)("div",{className:"mb-6 flex items-center gap-3",children:[(0,r.jsx)(v.pd,{type:"text",placeholder:e("sessions.filterPlaceholder"),value:F,onChange:T,className:"max-w-md flex-1","data-testid":"sessions-filter","aria-label":e("sessions.filterAriaLabel"),inputMode:"search",enterKeyHint:"search"}),(0,r.jsxs)(v.l6,{value:U,onValueChange:q,children:[(0,r.jsx)(v.bq,{className:"w-40","data-testid":"sessions-sort-select","aria-label":e("sessions.sortByAriaLabel"),children:(0,r.jsx)(v.yv,{})}),(0,r.jsx)(v.gC,{children:j.map(s=>(0,r.jsx)(v.eb,{value:s.key,children:e(s.labelKey)},s.key))})]}),(0,r.jsx)("button",{type:"button",onClick:K,"data-testid":"sessions-sort-direction","aria-label":"asc"===P?e("sessions.sortAscending"):e("sessions.sortDescending"),className:"rounded-md border border-input bg-surface p-2 text-muted-foreground transition-colors hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring",children:"asc"===P?(0,r.jsx)(o.A,{size:16,"aria-hidden":"true"}):(0,r.jsx)(c.A,{size:16,"aria-hidden":"true"})})]}),_?(0,r.jsxs)(r.Fragment,{children:[E&&(0,r.jsx)("div",{className:"mb-4 rounded-md border border-danger-border bg-danger-subtle px-3 py-2 text-sm text-danger-foreground",role:"status","data-testid":"sessions-error-banner",children:e("sessions.refreshError",{message:E.message})}),(0,r.jsx)("div",{className:"space-y-2","data-testid":"sessions-list",children:0===R.length?(0,r.jsx)("div",{className:"text-muted-foreground py-8 text-center","data-testid":"sessions-empty",children:e("sessions.noMatching")}):R.map((t,a)=>{var n,l,o,c;let d=null!=(n=t.selectedAgents)?n:p.fJ,u=t.lastUserMessage?t.lastUserMessage.replace(/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x9F]/g,"").replace(/[\u200B-\u200F\u2028-\u202F\uFEFF\u061C]/g,"").replace(/[\r\n\t]/g," ").replace(/\s+/g," ").trim():null,m=t.lastUserMessageAt?(0,y.Fx)(String(t.lastUserMessageAt)):null,x=d.map(e=>{var s;return{agent:e,status:(0,h.kA)(null==(s=t.sessionStatusByCli)?void 0:s[e])}}),b=x.filter(e=>(0,f.Qo)(e.status)),j=x.length-b.length,w=d.some(e=>{var s;let r=(0,h.kA)(null==(s=t.sessionStatusByCli)?void 0:s[e]);return"running"===r||"generating"===r});return(0,r.jsxs)(i(),{href:"/worktrees/".concat(t.id),style:{animationDelay:(0,N.Lc)(a)},className:"block bg-surface rounded-lg p-4 border transition-colors ".concat(w?"border-accent-500/40 shadow-[0_0_16px_-4px_rgb(var(--accent-500)/0.45)] hover:border-accent-400":"border-border shadow-sm hover:border-accent-300 dark:hover:border-accent-700"," ").concat(N.qz),"data-testid":"session-item-".concat(t.id),children:[(0,r.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,r.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,r.jsx)("div",{className:"text-sm font-medium text-foreground truncate",children:null!=(l=t.repositoryDisplayName)?l:t.repositoryName}),(0,r.jsx)("div",{className:"text-xs text-muted-foreground truncate",children:t.name})]}),(0,r.jsxs)("div",{className:"flex items-center gap-2 ml-4 flex-shrink-0","data-testid":"session-agents-".concat(t.id),children:[b.map(e=>{let{agent:s,status:t}=e;return(0,r.jsxs)("div",{className:"flex items-center gap-1","data-testid":"session-agent-".concat(s),children:[(0,r.jsx)(A,{status:t,label:(0,g.oo)(s)}),(0,r.jsx)("span",{className:"text-xs text-muted-foreground",children:(0,g.oo)(s)})]},s)}),j>0&&(0,r.jsxs)("div",{className:"flex items-center gap-1","data-testid":"session-idle-cluster-".concat(t.id),"aria-label":e("sessions.idleAgents",{count:j}),children:[(0,r.jsx)(v.md,{status:"idle",size:"sm","aria-hidden":!0,title:void 0}),(0,r.jsxs)("span",{className:"text-xs text-muted-foreground tabular-nums",children:["+",j]})]})]})]}),t.description&&(0,r.jsx)("div",{className:"mt-2",children:(0,r.jsx)("p",{className:"text-xs text-muted-foreground line-clamp-2 whitespace-pre-wrap",children:t.description})}),t.status&&(0,r.jsx)("div",{className:"mt-2",children:(0,r.jsx)("span",{className:"px-2 py-0.5 text-xs font-medium rounded ".concat(null!=(c=M[null!=(o=t.status)?o:""])?c:"bg-muted text-muted-foreground"),children:function(e,s){if(!e)return"";let t=C[e];return t?s(t):e}(t.status,s)})}),u&&(0,r.jsxs)("div",{className:"mt-2 flex items-center gap-2","data-testid":"session-message-".concat(t.id),children:[(0,r.jsx)("span",{className:"text-xs text-muted-foreground truncate min-w-0 flex-1","data-testid":"session-message-text-".concat(t.id),title:u,children:u}),m&&(0,r.jsx)("span",{className:"text-xs text-muted-foreground flex-shrink-0 whitespace-nowrap tabular-nums","data-testid":"session-time-".concat(t.id),children:m})]})]},t.id)})})]}):(0,r.jsxs)(r.Fragment,{children:[L&&(0,r.jsx)("div",{className:"space-y-2","data-testid":"sessions-loading",role:"status","aria-label":e("sessions.loadingAriaLabel"),children:[0,1,2].map(e=>(0,r.jsxs)("div",{className:"block bg-surface rounded-lg p-4 border border-border shadow-sm",children:[(0,r.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,r.jsxs)("div",{className:"min-w-0 flex-1 space-y-1.5",children:[(0,r.jsx)(v.EA,{className:"h-4 w-40 max-w-full"}),(0,r.jsx)(v.EA,{className:"h-3 w-56 max-w-full"})]}),(0,r.jsx)(v.EA,{className:"ml-4 h-3 w-16 flex-shrink-0"})]}),(0,r.jsxs)("div",{className:"mt-3 flex items-center gap-2",children:[(0,r.jsx)(v.EA,{className:"h-3 min-w-0 flex-1"}),(0,r.jsx)(v.EA,{className:"h-3 w-10 flex-shrink-0"})]})]},e))}),!L&&E&&(0,r.jsx)("div",{className:"text-danger-foreground","data-testid":"sessions-error",children:e("sessions.loadError",{message:E.message})}),!L&&!E&&(0,r.jsx)("div",{className:"text-muted-foreground py-8 text-center","data-testid":"sessions-empty",children:F?e("sessions.noMatching"):e("sessions.empty")})]})]})})}},83012:(e,s,t)=>{"use strict";t.d(s,{Fx:()=>i,bg:()=>l,fw:()=>n});var r=t(53298),a=t(73683);function n(e,s){let t=new Date(e);return isNaN(t.getTime())?"":(0,r.m)(t,{addSuffix:!0,...s?{locale:s}:{}})}function i(e){let s=new Date(e);if(isNaN(s.getTime()))return"";let t=Math.round((Date.now()-s.getTime())/1e3);if(t<45)return"now";let r=Math.round(t/60);if(r<60)return"".concat(r,"m ago");let a=Math.round(r/60);if(a<24)return"".concat(a,"h ago");let n=Math.round(a/24);return n<7?"".concat(n,"d ago"):n<30?"".concat(Math.round(n/7),"w ago"):n<365?"".concat(Math.round(n/30),"mo ago"):"".concat(Math.round(n/365),"y ago")}function l(e,s){return!(e instanceof Date)||isNaN(e.getTime())?"":(0,a.GP)(e,"PPp",s?{locale:s}:void 0)}},87047:(e,s,t)=>{Promise.resolve().then(t.bind(t,74500))}},e=>{e.O(0,[6809,4909,2770,3165,4974,9948,6402,744,7347,4560,8441,1255,7358],()=>e(e.s=87047)),_N_E=e.O()}]);
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[8898],{6473:(e,s,t)=>{"use strict";t.d(s,{Lc:()=>a,qz:()=>r});let r="animate-in fade-in-0 slide-in-from-bottom-2 fill-mode-backwards duration-300";function a(e){let s=arguments.length>1&&void 0!==arguments[1]?arguments[1]:40,t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:10;if(Number.isFinite(e)&&!(e<=0)&&!(e>=t))return"".concat(e*s,"ms")}},8803:(e,s,t)=>{"use strict";t.d(s,{A:()=>r});let r=(0,t(71847).A)("arrow-down",[["path",{d:"M12 5v14",key:"s699le"}],["path",{d:"m19 12-7 7-7-7",key:"1idqje"}]])},9219:(e,s,t)=>{"use strict";t.d(s,{k:()=>l});var r=t(95155),a=t(12115),n=t(744),i=t(87531);function l(e){let{onRefresh:s,enabled:t=!0,className:l,children:o}=e,{containerRef:c,pullDistance:d,isRefreshing:u,isPulling:m}=function(e){let{onRefresh:s,enabled:t=!0,threshold:r=64,maxPull:n=96,resistance:i=.5}=e,l=(0,a.useRef)(null),[o,c]=(0,a.useState)(0),[d,u]=(0,a.useState)(!1),[m,x]=(0,a.useState)(!1),h=(0,a.useRef)(null),f=(0,a.useRef)(0),g=(0,a.useRef)(!1);g.current=d;let p=(0,a.useCallback)(()=>{h.current=null,f.current=0,c(0),x(!1)},[]),v=(0,a.useCallback)(e=>{if(!t||g.current)return;let s=l.current;s&&!(s.scrollTop>0)&&(h.current=e.touches[0].clientY,f.current=0)},[t]),b=(0,a.useCallback)(e=>{if(null===h.current)return;let s=l.current;if(!s)return;if(s.scrollTop>0)return void p();let t=e.touches[0].clientY-h.current;if(t<=0){0!==f.current&&(f.current=0,c(0),x(!1));return}e.cancelable&&e.preventDefault();let r=Math.min(t*i,n);f.current=r,c(r),x(!0)},[i,n,p]),y=(0,a.useCallback)(async()=>{u(!0),x(!1),c(r);try{await Promise.resolve(s())}finally{u(!1),c(0)}},[s,r]),N=(0,a.useCallback)(()=>{if(null===h.current)return;let e=f.current>=r&&!g.current;h.current=null,f.current=0,e?y():(c(0),x(!1))},[r,y]);return(0,a.useEffect)(()=>{let e=l.current;if(e)return e.addEventListener("touchstart",v,{passive:!0}),e.addEventListener("touchmove",b,{passive:!1}),e.addEventListener("touchend",N,{passive:!0}),e.addEventListener("touchcancel",N,{passive:!0}),()=>{e.removeEventListener("touchstart",v),e.removeEventListener("touchmove",b),e.removeEventListener("touchend",N),e.removeEventListener("touchcancel",N)}},[v,b,N]),{containerRef:l,pullDistance:o,isRefreshing:d,isPulling:m}}({onRefresh:s,enabled:t,threshold:64}),x=u||d>0,h=u?1:Math.min(d/64,1);return(0,r.jsxs)("div",{ref:c,className:(0,i.cn)("relative overflow-auto",l),style:{overscrollBehaviorY:"contain"},"data-testid":"pull-to-refresh",children:[(0,r.jsx)("div",{className:"pointer-events-none absolute inset-x-0 top-0 z-10 flex justify-center",style:{transform:"translateY(".concat(x?Math.max(d-24,8):-32,"px)"),opacity:h,transition:m?"none":"transform 0.2s ease-out, opacity 0.2s ease-out"},"data-testid":"pull-to-refresh-indicator",role:"status","aria-hidden":!u,children:(0,r.jsx)(n.y$,{size:"sm",variant:"accent"})}),(0,r.jsx)("div",{style:{transform:x?"translateY(".concat(d,"px)"):void 0,transition:m?"none":"transform 0.2s ease-out"},children:o})]})}},20562:(e,s,t)=>{"use strict";t.d(s,{A:()=>r});let r=(0,t(71847).A)("arrow-up",[["path",{d:"m5 12 7-7 7 7",key:"hav0vg"}],["path",{d:"M12 19V5",key:"x0mq9r"}]])},50857:(e,s,t)=>{"use strict";function r(e){return"running"===e||"generating"===e||"waiting"===e}function a(e){return e.isActive||r(e.status)}function n(e,s){let t=e.map((e,s)=>({it:e,index:s})).filter(e=>{let{it:s}=e;return a(s)}),r=new Set;return s>0&&t.length>0&&[...t].sort((e,s)=>Number(s.it.isActive)-Number(e.it.isActive)||e.index-s.index).slice(0,s).forEach(e=>{let{index:s}=e;return r.add(s)}),e.map((e,s)=>a(e)?{...e,slot:r.has(s)?"pill":"overflow"}:{...e,slot:"dot"})}t.d(s,{Qo:()=>r,Uw:()=>n})},74500:(e,s,t)=>{"use strict";t.r(s),t.d(s,{default:()=>L});var r=t(95155),a=t(12115),n=t(52619),i=t.n(n),l=t(18955),o=t(20562),c=t(8803),d=t(4560),u=t(9219),m=t(38218),x=t(66966),h=t(55142),f=t(50857),g=t(54014),p=t(63001),v=t(744),b=t(7636),y=t(83012),N=t(6473);let j=[{key:"repositoryName",labelKey:"sort.repositoryName"},{key:"status",labelKey:"sort.status"},{key:"lastSent",labelKey:"sort.lastSent"}],w={lastSent:"desc",updatedAt:"desc"},k={ready:0,in_progress:1,in_review:2,done:3};function A(e){let{status:s,label:t}=e,a=(0,l.c)("common"),n="".concat(t,": ").concat(a("status.".concat(s)));return(0,r.jsx)(v.md,{status:s,size:"md",label:n})}let C={ready:"worktreeStatus.ready",in_progress:"worktreeStatus.inProgress",in_review:"worktreeStatus.inReview",done:"worktreeStatus.done"},M={done:"bg-success-subtle text-success-foreground",in_review:"bg-info-subtle text-info-foreground",in_progress:"bg-accent-100 dark:bg-accent-900/30 text-accent-700 dark:text-accent-400"};function L(){let e=(0,l.c)("common"),s=(0,l.c)("worktree"),t=(0,m.a)(),{worktrees:n,isLoading:L,error:E,refresh:S}=(0,x.Fn)(),_=n.length>0,[F,D]=(0,a.useState)(""),[U,z]=(0,a.useState)("lastSent"),[P,B]=(0,a.useState)("desc"),R=(0,a.useMemo)(()=>{let e=n;if(F){let s=F.toLowerCase();e=e.filter(e=>{var t,r;return e.name.toLowerCase().includes(s)||e.repositoryName.toLowerCase().includes(s)||null!=(r=null==(t=e.repositoryDisplayName)?void 0:t.toLowerCase().includes(s))&&r})}let s=[...e];return s.sort((e,s)=>{var t,r,a,n,i,l,o,c;let d=0;switch(U){case"lastSent":{let t=(0,b.nO)(e.lastUserMessageAt,s.lastUserMessageAt);if(!e.lastUserMessageAt&&!s.lastUserMessageAt)return 0;if(!e.lastUserMessageAt)return 1;if(!s.lastUserMessageAt)return -1;d=t;break}case"repositoryName":{let a=(null!=(t=e.repositoryDisplayName)?t:e.repositoryName).toLowerCase(),n=(null!=(r=s.repositoryDisplayName)?r:s.repositoryName).toLowerCase();0===(d=a.localeCompare(n))&&(d=e.name.toLowerCase().localeCompare(s.name.toLowerCase()));break}case"status":if(0==(d=(null!=(n=k[null!=(a=e.status)?a:""])?n:4)-(null!=(l=k[null!=(i=s.status)?i:""])?l:4))){let t=(null!=(o=e.repositoryDisplayName)?o:e.repositoryName).toLowerCase(),r=(null!=(c=s.repositoryDisplayName)?c:s.repositoryName).toLowerCase();d=t.localeCompare(r)}break;default:d=0}return("lastSent"===U?"desc"===P:"asc"===P)?d:-d}),s},[n,F,U,P]),T=(0,a.useCallback)(e=>{D(e.target.value)},[]),q=(0,a.useCallback)(e=>{var s;z(e),B(null!=(s=w[e])?s:"asc")},[]),K=(0,a.useCallback)(()=>{B(e=>"asc"===e?"desc":"asc")},[]);return(0,r.jsx)(d.GV,{children:(0,r.jsxs)(u.k,{onRefresh:S,enabled:t,className:"container-custom py-8 h-full",children:[(0,r.jsxs)("div",{className:"mb-6",children:[(0,r.jsx)("h1",{className:"text-2xl font-bold text-foreground mb-2",children:e("sessions.title")}),(0,r.jsx)("p",{className:"text-sm text-muted-foreground",children:e("sessions.description")})]}),(0,r.jsxs)("div",{className:"mb-6 flex items-center gap-3",children:[(0,r.jsx)(v.pd,{type:"text",placeholder:e("sessions.filterPlaceholder"),value:F,onChange:T,className:"max-w-md flex-1","data-testid":"sessions-filter","aria-label":e("sessions.filterAriaLabel"),inputMode:"search",enterKeyHint:"search"}),(0,r.jsxs)(v.l6,{value:U,onValueChange:q,children:[(0,r.jsx)(v.bq,{className:"w-40","data-testid":"sessions-sort-select","aria-label":e("sessions.sortByAriaLabel"),children:(0,r.jsx)(v.yv,{})}),(0,r.jsx)(v.gC,{children:j.map(s=>(0,r.jsx)(v.eb,{value:s.key,children:e(s.labelKey)},s.key))})]}),(0,r.jsx)("button",{type:"button",onClick:K,"data-testid":"sessions-sort-direction","aria-label":"asc"===P?e("sessions.sortAscending"):e("sessions.sortDescending"),className:"rounded-md border border-input bg-surface p-2 text-muted-foreground transition-colors hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring",children:"asc"===P?(0,r.jsx)(o.A,{size:16,"aria-hidden":"true"}):(0,r.jsx)(c.A,{size:16,"aria-hidden":"true"})})]}),_?(0,r.jsxs)(r.Fragment,{children:[E&&(0,r.jsx)("div",{className:"mb-4 rounded-md border border-danger-border bg-danger-subtle px-3 py-2 text-sm text-danger-foreground",role:"status","data-testid":"sessions-error-banner",children:e("sessions.refreshError",{message:E.message})}),(0,r.jsx)("div",{className:"space-y-2","data-testid":"sessions-list",children:0===R.length?(0,r.jsx)("div",{className:"text-muted-foreground py-8 text-center","data-testid":"sessions-empty",children:e("sessions.noMatching")}):R.map((t,a)=>{var n,l,o,c;let d=null!=(n=t.selectedAgents)?n:p.fJ,u=t.lastUserMessage?t.lastUserMessage.replace(/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x9F]/g,"").replace(/[\u200B-\u200F\u2028-\u202F\uFEFF\u061C]/g,"").replace(/[\r\n\t]/g," ").replace(/\s+/g," ").trim():null,m=t.lastUserMessageAt?(0,y.Fx)(String(t.lastUserMessageAt)):null,x=d.map(e=>{var s;return{agent:e,status:(0,h.kA)(null==(s=t.sessionStatusByCli)?void 0:s[e])}}),b=x.filter(e=>(0,f.Qo)(e.status)),j=x.length-b.length,w=d.some(e=>{var s;let r=(0,h.kA)(null==(s=t.sessionStatusByCli)?void 0:s[e]);return"running"===r||"generating"===r});return(0,r.jsxs)(i(),{href:"/worktrees/".concat(t.id),style:{animationDelay:(0,N.Lc)(a)},className:"block bg-surface rounded-lg p-4 border transition-colors ".concat(w?"border-accent-500/40 shadow-[0_0_16px_-4px_rgb(var(--accent-500)/0.45)] hover:border-accent-400":"border-border shadow-sm hover:border-accent-300 dark:hover:border-accent-700"," ").concat(N.qz),"data-testid":"session-item-".concat(t.id),children:[(0,r.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,r.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,r.jsx)("div",{className:"text-sm font-medium text-foreground truncate",children:null!=(l=t.repositoryDisplayName)?l:t.repositoryName}),(0,r.jsx)("div",{className:"text-xs text-muted-foreground truncate",children:t.name})]}),(0,r.jsxs)("div",{className:"flex items-center gap-2 ml-4 flex-shrink-0","data-testid":"session-agents-".concat(t.id),children:[b.map(e=>{let{agent:s,status:t}=e;return(0,r.jsxs)("div",{className:"flex items-center gap-1","data-testid":"session-agent-".concat(s),children:[(0,r.jsx)(A,{status:t,label:(0,g.oo)(s)}),(0,r.jsx)("span",{className:"text-xs text-muted-foreground",children:(0,g.oo)(s)})]},s)}),j>0&&(0,r.jsxs)("div",{className:"flex items-center gap-1","data-testid":"session-idle-cluster-".concat(t.id),"aria-label":e("sessions.idleAgents",{count:j}),children:[(0,r.jsx)(v.md,{status:"idle",size:"sm","aria-hidden":!0,title:void 0}),(0,r.jsxs)("span",{className:"text-xs text-muted-foreground tabular-nums",children:["+",j]})]})]})]}),t.description&&(0,r.jsx)("div",{className:"mt-2",children:(0,r.jsx)("p",{className:"text-xs text-muted-foreground line-clamp-2 whitespace-pre-wrap",children:t.description})}),t.status&&(0,r.jsx)("div",{className:"mt-2",children:(0,r.jsx)("span",{className:"px-2 py-0.5 text-xs font-medium rounded ".concat(null!=(c=M[null!=(o=t.status)?o:""])?c:"bg-muted text-muted-foreground"),children:function(e,s){if(!e)return"";let t=C[e];return t?s(t):e}(t.status,s)})}),u&&(0,r.jsxs)("div",{className:"mt-2 flex items-center gap-2","data-testid":"session-message-".concat(t.id),children:[(0,r.jsx)("span",{className:"text-xs text-muted-foreground truncate min-w-0 flex-1","data-testid":"session-message-text-".concat(t.id),title:u,children:u}),m&&(0,r.jsx)("span",{className:"text-xs text-muted-foreground flex-shrink-0 whitespace-nowrap tabular-nums","data-testid":"session-time-".concat(t.id),children:m})]})]},t.id)})})]}):(0,r.jsxs)(r.Fragment,{children:[L&&(0,r.jsx)("div",{className:"space-y-2","data-testid":"sessions-loading",role:"status","aria-label":e("sessions.loadingAriaLabel"),children:[0,1,2].map(e=>(0,r.jsxs)("div",{className:"block bg-surface rounded-lg p-4 border border-border shadow-sm",children:[(0,r.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,r.jsxs)("div",{className:"min-w-0 flex-1 space-y-1.5",children:[(0,r.jsx)(v.EA,{className:"h-4 w-40 max-w-full"}),(0,r.jsx)(v.EA,{className:"h-3 w-56 max-w-full"})]}),(0,r.jsx)(v.EA,{className:"ml-4 h-3 w-16 flex-shrink-0"})]}),(0,r.jsxs)("div",{className:"mt-3 flex items-center gap-2",children:[(0,r.jsx)(v.EA,{className:"h-3 min-w-0 flex-1"}),(0,r.jsx)(v.EA,{className:"h-3 w-10 flex-shrink-0"})]})]},e))}),!L&&E&&(0,r.jsx)("div",{className:"text-danger-foreground","data-testid":"sessions-error",children:e("sessions.loadError",{message:E.message})}),!L&&!E&&(0,r.jsx)("div",{className:"text-muted-foreground py-8 text-center","data-testid":"sessions-empty",children:F?e("sessions.noMatching"):e("sessions.empty")})]})]})})}},83012:(e,s,t)=>{"use strict";t.d(s,{Fx:()=>i,bg:()=>l,fw:()=>n});var r=t(53298),a=t(73683);function n(e,s){let t=new Date(e);return isNaN(t.getTime())?"":(0,r.m)(t,{addSuffix:!0,...s?{locale:s}:{}})}function i(e){let s=new Date(e);if(isNaN(s.getTime()))return"";let t=Math.round((Date.now()-s.getTime())/1e3);if(t<45)return"now";let r=Math.round(t/60);if(r<60)return"".concat(r,"m ago");let a=Math.round(r/60);if(a<24)return"".concat(a,"h ago");let n=Math.round(a/24);return n<7?"".concat(n,"d ago"):n<30?"".concat(Math.round(n/7),"w ago"):n<365?"".concat(Math.round(n/30),"mo ago"):"".concat(Math.round(n/365),"y ago")}function l(e,s){return!(e instanceof Date)||isNaN(e.getTime())?"":(0,a.GP)(e,"PPp",s?{locale:s}:void 0)}},87047:(e,s,t)=>{Promise.resolve().then(t.bind(t,74500))}},e=>{e.O(0,[6809,4909,2770,3165,4974,9948,6402,744,6488,4560,8441,1255,7358],()=>e(e.s=87047)),_N_E=e.O()}]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[1385],{17846:(u,e,D)=>{"use strict";D.d(e,{a:()=>s});var F=D(95155),t=D(12115),r=D(18955);function s(u){let{src:e,alt:D,onError:s}=u,n=(0,r.c)("worktree"),[o,a]=(0,t.useState)(!1);return o?(0,F.jsxs)("div",{className:"flex flex-col items-center justify-center py-12 text-muted-foreground",children:[(0,F.jsx)("svg",{className:"w-16 h-16 mb-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,F.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:1.5,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,F.jsx)("p",{className:"text-sm",children:n("imageViewer.loadError")}),(0,F.jsx)("p",{className:"text-xs text-muted-foreground mt-1",children:D})]}):(0,F.jsx)("div",{className:"flex items-center justify-center p-4",children:(0,F.jsx)("img",{src:e,alt:D,onError:()=>{a(!0),null==s||s()},style:{maxWidth:"100%",maxHeight:"500px",objectFit:"contain"},className:"rounded-lg shadow-sm"})})}},20063:(u,e,D)=>{"use strict";var F=D(47260);D.o(F,"useParams")&&D.d(e,{useParams:function(){return F.useParams}}),D.o(F,"usePathname")&&D.d(e,{usePathname:function(){return F.usePathname}}),D.o(F,"useRouter")&&D.d(e,{useRouter:function(){return F.useRouter}})},21286:(u,e,D)=>{"use strict";D.d(e,{A:()=>r});let F=/[\0-\x1F!-,\.\/:-@\[-\^`\{-\xA9\xAB-\xB4\xB6-\xB9\xBB-\xBF\xD7\xF7\u02C2-\u02C5\u02D2-\u02DF\u02E5-\u02EB\u02ED\u02EF-\u02FF\u0375\u0378\u0379\u037E\u0380-\u0385\u0387\u038B\u038D\u03A2\u03F6\u0482\u0530\u0557\u0558\u055A-\u055F\u0589-\u0590\u05BE\u05C0\u05C3\u05C6\u05C8-\u05CF\u05EB-\u05EE\u05F3-\u060F\u061B-\u061F\u066A-\u066D\u06D4\u06DD\u06DE\u06E9\u06FD\u06FE\u0700-\u070F\u074B\u074C\u07B2-\u07BF\u07F6-\u07F9\u07FB\u07FC\u07FE\u07FF\u082E-\u083F\u085C-\u085F\u086B-\u089F\u08B5\u08C8-\u08D2\u08E2\u0964\u0965\u0970\u0984\u098D\u098E\u0991\u0992\u09A9\u09B1\u09B3-\u09B5\u09BA\u09BB\u09C5\u09C6\u09C9\u09CA\u09CF-\u09D6\u09D8-\u09DB\u09DE\u09E4\u09E5\u09F2-\u09FB\u09FD\u09FF\u0A00\u0A04\u0A0B-\u0A0E\u0A11\u0A12\u0A29\u0A31\u0A34\u0A37\u0A3A\u0A3B\u0A3D\u0A43-\u0A46\u0A49\u0A4A\u0A4E-\u0A50\u0A52-\u0A58\u0A5D\u0A5F-\u0A65\u0A76-\u0A80\u0A84\u0A8E\u0A92\u0AA9\u0AB1\u0AB4\u0ABA\u0ABB\u0AC6\u0ACA\u0ACE\u0ACF\u0AD1-\u0ADF\u0AE4\u0AE5\u0AF0-\u0AF8\u0B00\u0B04\u0B0D\u0B0E\u0B11\u0B12\u0B29\u0B31\u0B34\u0B3A\u0B3B\u0B45\u0B46\u0B49\u0B4A\u0B4E-\u0B54\u0B58-\u0B5B\u0B5E\u0B64\u0B65\u0B70\u0B72-\u0B81\u0B84\u0B8B-\u0B8D\u0B91\u0B96-\u0B98\u0B9B\u0B9D\u0BA0-\u0BA2\u0BA5-\u0BA7\u0BAB-\u0BAD\u0BBA-\u0BBD\u0BC3-\u0BC5\u0BC9\u0BCE\u0BCF\u0BD1-\u0BD6\u0BD8-\u0BE5\u0BF0-\u0BFF\u0C0D\u0C11\u0C29\u0C3A-\u0C3C\u0C45\u0C49\u0C4E-\u0C54\u0C57\u0C5B-\u0C5F\u0C64\u0C65\u0C70-\u0C7F\u0C84\u0C8D\u0C91\u0CA9\u0CB4\u0CBA\u0CBB\u0CC5\u0CC9\u0CCE-\u0CD4\u0CD7-\u0CDD\u0CDF\u0CE4\u0CE5\u0CF0\u0CF3-\u0CFF\u0D0D\u0D11\u0D45\u0D49\u0D4F-\u0D53\u0D58-\u0D5E\u0D64\u0D65\u0D70-\u0D79\u0D80\u0D84\u0D97-\u0D99\u0DB2\u0DBC\u0DBE\u0DBF\u0DC7-\u0DC9\u0DCB-\u0DCE\u0DD5\u0DD7\u0DE0-\u0DE5\u0DF0\u0DF1\u0DF4-\u0E00\u0E3B-\u0E3F\u0E4F\u0E5A-\u0E80\u0E83\u0E85\u0E8B\u0EA4\u0EA6\u0EBE\u0EBF\u0EC5\u0EC7\u0ECE\u0ECF\u0EDA\u0EDB\u0EE0-\u0EFF\u0F01-\u0F17\u0F1A-\u0F1F\u0F2A-\u0F34\u0F36\u0F38\u0F3A-\u0F3D\u0F48\u0F6D-\u0F70\u0F85\u0F98\u0FBD-\u0FC5\u0FC7-\u0FFF\u104A-\u104F\u109E\u109F\u10C6\u10C8-\u10CC\u10CE\u10CF\u10FB\u1249\u124E\u124F\u1257\u1259\u125E\u125F\u1289\u128E\u128F\u12B1\u12B6\u12B7\u12BF\u12C1\u12C6\u12C7\u12D7\u1311\u1316\u1317\u135B\u135C\u1360-\u137F\u1390-\u139F\u13F6\u13F7\u13FE-\u1400\u166D\u166E\u1680\u169B-\u169F\u16EB-\u16ED\u16F9-\u16FF\u170D\u1715-\u171F\u1735-\u173F\u1754-\u175F\u176D\u1771\u1774-\u177F\u17D4-\u17D6\u17D8-\u17DB\u17DE\u17DF\u17EA-\u180A\u180E\u180F\u181A-\u181F\u1879-\u187F\u18AB-\u18AF\u18F6-\u18FF\u191F\u192C-\u192F\u193C-\u1945\u196E\u196F\u1975-\u197F\u19AC-\u19AF\u19CA-\u19CF\u19DA-\u19FF\u1A1C-\u1A1F\u1A5F\u1A7D\u1A7E\u1A8A-\u1A8F\u1A9A-\u1AA6\u1AA8-\u1AAF\u1AC1-\u1AFF\u1B4C-\u1B4F\u1B5A-\u1B6A\u1B74-\u1B7F\u1BF4-\u1BFF\u1C38-\u1C3F\u1C4A-\u1C4C\u1C7E\u1C7F\u1C89-\u1C8F\u1CBB\u1CBC\u1CC0-\u1CCF\u1CD3\u1CFB-\u1CFF\u1DFA\u1F16\u1F17\u1F1E\u1F1F\u1F46\u1F47\u1F4E\u1F4F\u1F58\u1F5A\u1F5C\u1F5E\u1F7E\u1F7F\u1FB5\u1FBD\u1FBF-\u1FC1\u1FC5\u1FCD-\u1FCF\u1FD4\u1FD5\u1FDC-\u1FDF\u1FED-\u1FF1\u1FF5\u1FFD-\u203E\u2041-\u2053\u2055-\u2070\u2072-\u207E\u2080-\u208F\u209D-\u20CF\u20F1-\u2101\u2103-\u2106\u2108\u2109\u2114\u2116-\u2118\u211E-\u2123\u2125\u2127\u2129\u212E\u213A\u213B\u2140-\u2144\u214A-\u214D\u214F-\u215F\u2189-\u24B5\u24EA-\u2BFF\u2C2F\u2C5F\u2CE5-\u2CEA\u2CF4-\u2CFF\u2D26\u2D28-\u2D2C\u2D2E\u2D2F\u2D68-\u2D6E\u2D70-\u2D7E\u2D97-\u2D9F\u2DA7\u2DAF\u2DB7\u2DBF\u2DC7\u2DCF\u2DD7\u2DDF\u2E00-\u2E2E\u2E30-\u3004\u3008-\u3020\u3030\u3036\u3037\u303D-\u3040\u3097\u3098\u309B\u309C\u30A0\u30FB\u3100-\u3104\u3130\u318F-\u319F\u31C0-\u31EF\u3200-\u33FF\u4DC0-\u4DFF\u9FFD-\u9FFF\uA48D-\uA4CF\uA4FE\uA4FF\uA60D-\uA60F\uA62C-\uA63F\uA673\uA67E\uA6F2-\uA716\uA720\uA721\uA789\uA78A\uA7C0\uA7C1\uA7CB-\uA7F4\uA828-\uA82B\uA82D-\uA83F\uA874-\uA87F\uA8C6-\uA8CF\uA8DA-\uA8DF\uA8F8-\uA8FA\uA8FC\uA92E\uA92F\uA954-\uA95F\uA97D-\uA97F\uA9C1-\uA9CE\uA9DA-\uA9DF\uA9FF\uAA37-\uAA3F\uAA4E\uAA4F\uAA5A-\uAA5F\uAA77-\uAA79\uAAC3-\uAADA\uAADE\uAADF\uAAF0\uAAF1\uAAF7-\uAB00\uAB07\uAB08\uAB0F\uAB10\uAB17-\uAB1F\uAB27\uAB2F\uAB5B\uAB6A-\uAB6F\uABEB\uABEE\uABEF\uABFA-\uABFF\uD7A4-\uD7AF\uD7C7-\uD7CA\uD7FC-\uD7FF\uE000-\uF8FF\uFA6E\uFA6F\uFADA-\uFAFF\uFB07-\uFB12\uFB18-\uFB1C\uFB29\uFB37\uFB3D\uFB3F\uFB42\uFB45\uFBB2-\uFBD2\uFD3E-\uFD4F\uFD90\uFD91\uFDC8-\uFDEF\uFDFC-\uFDFF\uFE10-\uFE1F\uFE30-\uFE32\uFE35-\uFE4C\uFE50-\uFE6F\uFE75\uFEFD-\uFF0F\uFF1A-\uFF20\uFF3B-\uFF3E\uFF40\uFF5B-\uFF65\uFFBF-\uFFC1\uFFC8\uFFC9\uFFD0\uFFD1\uFFD8\uFFD9\uFFDD-\uFFFF]|\uD800[\uDC0C\uDC27\uDC3B\uDC3E\uDC4E\uDC4F\uDC5E-\uDC7F\uDCFB-\uDD3F\uDD75-\uDDFC\uDDFE-\uDE7F\uDE9D-\uDE9F\uDED1-\uDEDF\uDEE1-\uDEFF\uDF20-\uDF2C\uDF4B-\uDF4F\uDF7B-\uDF7F\uDF9E\uDF9F\uDFC4-\uDFC7\uDFD0\uDFD6-\uDFFF]|\uD801[\uDC9E\uDC9F\uDCAA-\uDCAF\uDCD4-\uDCD7\uDCFC-\uDCFF\uDD28-\uDD2F\uDD64-\uDDFF\uDF37-\uDF3F\uDF56-\uDF5F\uDF68-\uDFFF]|\uD802[\uDC06\uDC07\uDC09\uDC36\uDC39-\uDC3B\uDC3D\uDC3E\uDC56-\uDC5F\uDC77-\uDC7F\uDC9F-\uDCDF\uDCF3\uDCF6-\uDCFF\uDD16-\uDD1F\uDD3A-\uDD7F\uDDB8-\uDDBD\uDDC0-\uDDFF\uDE04\uDE07-\uDE0B\uDE14\uDE18\uDE36\uDE37\uDE3B-\uDE3E\uDE40-\uDE5F\uDE7D-\uDE7F\uDE9D-\uDEBF\uDEC8\uDEE7-\uDEFF\uDF36-\uDF3F\uDF56-\uDF5F\uDF73-\uDF7F\uDF92-\uDFFF]|\uD803[\uDC49-\uDC7F\uDCB3-\uDCBF\uDCF3-\uDCFF\uDD28-\uDD2F\uDD3A-\uDE7F\uDEAA\uDEAD-\uDEAF\uDEB2-\uDEFF\uDF1D-\uDF26\uDF28-\uDF2F\uDF51-\uDFAF\uDFC5-\uDFDF\uDFF7-\uDFFF]|\uD804[\uDC47-\uDC65\uDC70-\uDC7E\uDCBB-\uDCCF\uDCE9-\uDCEF\uDCFA-\uDCFF\uDD35\uDD40-\uDD43\uDD48-\uDD4F\uDD74\uDD75\uDD77-\uDD7F\uDDC5-\uDDC8\uDDCD\uDDDB\uDDDD-\uDDFF\uDE12\uDE38-\uDE3D\uDE3F-\uDE7F\uDE87\uDE89\uDE8E\uDE9E\uDEA9-\uDEAF\uDEEB-\uDEEF\uDEFA-\uDEFF\uDF04\uDF0D\uDF0E\uDF11\uDF12\uDF29\uDF31\uDF34\uDF3A\uDF45\uDF46\uDF49\uDF4A\uDF4E\uDF4F\uDF51-\uDF56\uDF58-\uDF5C\uDF64\uDF65\uDF6D-\uDF6F\uDF75-\uDFFF]|\uD805[\uDC4B-\uDC4F\uDC5A-\uDC5D\uDC62-\uDC7F\uDCC6\uDCC8-\uDCCF\uDCDA-\uDD7F\uDDB6\uDDB7\uDDC1-\uDDD7\uDDDE-\uDDFF\uDE41-\uDE43\uDE45-\uDE4F\uDE5A-\uDE7F\uDEB9-\uDEBF\uDECA-\uDEFF\uDF1B\uDF1C\uDF2C-\uDF2F\uDF3A-\uDFFF]|\uD806[\uDC3B-\uDC9F\uDCEA-\uDCFE\uDD07\uDD08\uDD0A\uDD0B\uDD14\uDD17\uDD36\uDD39\uDD3A\uDD44-\uDD4F\uDD5A-\uDD9F\uDDA8\uDDA9\uDDD8\uDDD9\uDDE2\uDDE5-\uDDFF\uDE3F-\uDE46\uDE48-\uDE4F\uDE9A-\uDE9C\uDE9E-\uDEBF\uDEF9-\uDFFF]|\uD807[\uDC09\uDC37\uDC41-\uDC4F\uDC5A-\uDC71\uDC90\uDC91\uDCA8\uDCB7-\uDCFF\uDD07\uDD0A\uDD37-\uDD39\uDD3B\uDD3E\uDD48-\uDD4F\uDD5A-\uDD5F\uDD66\uDD69\uDD8F\uDD92\uDD99-\uDD9F\uDDAA-\uDEDF\uDEF7-\uDFAF\uDFB1-\uDFFF]|\uD808[\uDF9A-\uDFFF]|\uD809[\uDC6F-\uDC7F\uDD44-\uDFFF]|[\uD80A\uD80B\uD80E-\uD810\uD812-\uD819\uD824-\uD82B\uD82D\uD82E\uD830-\uD833\uD837\uD839\uD83D\uD83F\uD87B-\uD87D\uD87F\uD885-\uDB3F\uDB41-\uDBFF][\uDC00-\uDFFF]|\uD80D[\uDC2F-\uDFFF]|\uD811[\uDE47-\uDFFF]|\uD81A[\uDE39-\uDE3F\uDE5F\uDE6A-\uDECF\uDEEE\uDEEF\uDEF5-\uDEFF\uDF37-\uDF3F\uDF44-\uDF4F\uDF5A-\uDF62\uDF78-\uDF7C\uDF90-\uDFFF]|\uD81B[\uDC00-\uDE3F\uDE80-\uDEFF\uDF4B-\uDF4E\uDF88-\uDF8E\uDFA0-\uDFDF\uDFE2\uDFE5-\uDFEF\uDFF2-\uDFFF]|\uD821[\uDFF8-\uDFFF]|\uD823[\uDCD6-\uDCFF\uDD09-\uDFFF]|\uD82C[\uDD1F-\uDD4F\uDD53-\uDD63\uDD68-\uDD6F\uDEFC-\uDFFF]|\uD82F[\uDC6B-\uDC6F\uDC7D-\uDC7F\uDC89-\uDC8F\uDC9A-\uDC9C\uDC9F-\uDFFF]|\uD834[\uDC00-\uDD64\uDD6A-\uDD6C\uDD73-\uDD7A\uDD83\uDD84\uDD8C-\uDDA9\uDDAE-\uDE41\uDE45-\uDFFF]|\uD835[\uDC55\uDC9D\uDCA0\uDCA1\uDCA3\uDCA4\uDCA7\uDCA8\uDCAD\uDCBA\uDCBC\uDCC4\uDD06\uDD0B\uDD0C\uDD15\uDD1D\uDD3A\uDD3F\uDD45\uDD47-\uDD49\uDD51\uDEA6\uDEA7\uDEC1\uDEDB\uDEFB\uDF15\uDF35\uDF4F\uDF6F\uDF89\uDFA9\uDFC3\uDFCC\uDFCD]|\uD836[\uDC00-\uDDFF\uDE37-\uDE3A\uDE6D-\uDE74\uDE76-\uDE83\uDE85-\uDE9A\uDEA0\uDEB0-\uDFFF]|\uD838[\uDC07\uDC19\uDC1A\uDC22\uDC25\uDC2B-\uDCFF\uDD2D-\uDD2F\uDD3E\uDD3F\uDD4A-\uDD4D\uDD4F-\uDEBF\uDEFA-\uDFFF]|\uD83A[\uDCC5-\uDCCF\uDCD7-\uDCFF\uDD4C-\uDD4F\uDD5A-\uDFFF]|\uD83B[\uDC00-\uDDFF\uDE04\uDE20\uDE23\uDE25\uDE26\uDE28\uDE33\uDE38\uDE3A\uDE3C-\uDE41\uDE43-\uDE46\uDE48\uDE4A\uDE4C\uDE50\uDE53\uDE55\uDE56\uDE58\uDE5A\uDE5C\uDE5E\uDE60\uDE63\uDE65\uDE66\uDE6B\uDE73\uDE78\uDE7D\uDE7F\uDE8A\uDE9C-\uDEA0\uDEA4\uDEAA\uDEBC-\uDFFF]|\uD83C[\uDC00-\uDD2F\uDD4A-\uDD4F\uDD6A-\uDD6F\uDD8A-\uDFFF]|\uD83E[\uDC00-\uDFEF\uDFFA-\uDFFF]|\uD869[\uDEDE-\uDEFF]|\uD86D[\uDF35-\uDF3F]|\uD86E[\uDC1E\uDC1F]|\uD873[\uDEA2-\uDEAF]|\uD87A[\uDFE1-\uDFFF]|\uD87E[\uDE1E-\uDFFF]|\uD884[\uDF4B-\uDFFF]|\uDB40[\uDC00-\uDCFF\uDDF0-\uDFFF]/g,t=Object.hasOwnProperty;class r{constructor(){this.occurrences,this.reset()}slug(u,e){var D,r;let s=(D=u,r=!0===e,"string"!=typeof D?"":(r||(D=D.toLowerCase()),D.replace(F,"").replace(/ /g,"-"))),n=s;for(;t.call(this.occurrences,s);)this.occurrences[n]++,s=n+"-"+this.occurrences[n];return this.occurrences[s]=0,s}reset(){this.occurrences=Object.create(null)}}},32366:(u,e,D)=>{Promise.resolve().then(D.bind(D,82743))},50666:(u,e,D)=>{"use strict";D.d(e,{Ck:()=>s});var F=D(95155),t=D(12115),r=D(53482);function s(u){let{children:e,as:D="div",className:s=""}=u,n=function u(e){return null==e||"boolean"==typeof e?"":"string"==typeof e?e:"number"==typeof e?String(e):Array.isArray(e)?e.map(u).join(""):t.isValidElement(e)?u(e.props.children):""}(e);if(!n||0===n.trim().length)return(0,F.jsx)(D,{className:s||void 0,children:e});let o="relative group ".concat("span"===D?"block ":"").concat(s).trim();return(0,F.jsxs)(D,{className:o,"data-testid":"code-block-with-copy",children:[e,(0,F.jsx)(r.i,{text:n,className:"absolute right-2 top-2 z-10 opacity-100 md:opacity-0 md:group-hover:opacity-100 md:group-focus-within:opacity-100 focus:opacity-100"})]})}},53482:(u,e,D)=>{"use strict";D.d(e,{i:()=>a});var F=D(95155),t=D(12115),r=D(60322),s=D(9900);function n(){return(0,F.jsx)("svg",{className:"h-3.5 w-3.5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,F.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z"})})}function o(){return(0,F.jsx)("svg",{className:"h-3.5 w-3.5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,F.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M5 13l4 4L19 7"})})}function a(u){let{text:e,className:D="",label:a="Copy"}=u,[l,i]=(0,t.useState)(!1),c=(0,t.useRef)(null);(0,t.useEffect)(()=>()=>{c.current&&clearTimeout(c.current)},[]);let C=(0,t.useCallback)(async()=>{try{await (0,r.l)(e),i(!0),c.current&&clearTimeout(c.current),c.current=setTimeout(()=>i(!1),s.s7)}catch(u){}},[e]);return(0,F.jsxs)("button",{type:"button",onClick:C,className:"inline-flex items-center gap-1 rounded border border-border bg-surface px-2 py-0.5 text-[11px] font-medium text-foreground transition-colors hover:bg-muted ".concat(D),"aria-label":l?"Copied":a,title:l?"Copied!":a,children:[l?(0,F.jsx)(o,{}):(0,F.jsx)(n,{}),(0,F.jsx)("span",{children:l?"Copied":a})]})}},55924:(u,e,D)=>{"use strict";D.d(e,{K:()=>r});var F=D(95155),t=D(12115);function r(u){let{entries:e,title:D,headerOffset:r=64,root:s=null,className:n=""}=u,[o,a]=(0,t.useState)(null);return((0,t.useRef)(null).current=o,(0,t.useEffect)(()=>{if("undefined"==typeof IntersectionObserver||0===e.length)return;let u=new IntersectionObserver(u=>{let e=function(u){let e=u.filter(u=>u.isIntersecting).sort((u,e)=>u.boundingClientRect.top-e.boundingClientRect.top);return e.length>0?e[0].target.id:null}(u);e&&a(e)},{root:s,rootMargin:"-".concat(r,"px 0px -70% 0px"),threshold:0}),D=[];for(let F of e){let e=document.getElementById(F.id);e&&(u.observe(e),D.push(e))}return()=>{u.disconnect(),D.length=0}},[e,r,s]),0===e.length)?null:(0,F.jsxs)("nav",{"aria-label":D,className:n,children:[(0,F.jsx)("p",{className:"px-3 pb-2 text-xs font-semibold uppercase tracking-wide text-muted-foreground",children:D}),(0,F.jsx)("ul",{className:"space-y-0.5 text-sm",children:e.map((u,e)=>{let D=u.id===o;return(0,F.jsx)("li",{children:(0,F.jsx)("a",{href:"#".concat(u.id),onClick:e=>((u,e)=>{u.preventDefault();let D="undefined"!=typeof document?document.getElementById(e):null;D&&D.scrollIntoView({behavior:"smooth",block:"start"}),a(e)})(e,u.id),"aria-current":D?"location":void 0,"data-depth":u.depth,style:{paddingLeft:"".concat((u.depth-1)*12+12,"px")},className:["block truncate rounded py-1 pr-2 transition-colors",D?"bg-accent-50 font-medium text-accent-700":"text-muted-foreground hover:bg-muted hover:text-foreground"].join(" "),title:u.text,children:u.text})},"".concat(u.id,"-").concat(e))})})]})}},60322:(u,e,D)=>{"use strict";D.d(e,{l:()=>t});let F=/\x1b\[[0-9;]*[a-zA-Z]|\x1b\][^\x07]*\x07|\[[0-9;]*m/g;async function t(u){var e;if(!u||0===u.trim().length)return;let D=u.replace(F,"");if(null==(e=navigator.clipboard)?void 0:e.writeText)try{await navigator.clipboard.writeText(D);return}catch(u){}let t=document.createElement("textarea");t.value=D,t.style.position="fixed",t.style.left="-9999px",t.style.top="-9999px",t.style.opacity="0",document.body.appendChild(t),t.focus(),t.select();try{document.execCommand("copy")}finally{document.body.removeChild(t)}}},69264:(u,e,D)=>{"use strict";D.d(e,{u:()=>n});var F=D(95155),t=D(12115),r=D(18955),s=D(3005);function n(u){let{src:e,onError:D}=u,n=(0,r.c)("worktree"),[o,a]=(0,t.useState)(!0),[l,i]=(0,t.useState)(!1);return l?(0,F.jsxs)("div",{className:"flex flex-col items-center justify-center py-12 text-muted-foreground",children:[(0,F.jsx)("svg",{className:"w-16 h-16 mb-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,F.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:1.5,d:"M15 10l4.553-2.276A1 1 0 0121 8.618v6.764a1 1 0 01-1.447.894L15 14M5 18h8a2 2 0 002-2V8a2 2 0 00-2-2H5a2 2 0 00-2 2v8a2 2 0 002 2z"})}),(0,F.jsx)("p",{className:"text-sm",children:n("videoViewer.loadError")})]}):(0,F.jsxs)("div",{className:"flex flex-col items-center justify-center p-4",children:[o&&(0,F.jsxs)("div",{className:"flex items-center justify-center py-8",children:[(0,F.jsx)(s.y,{size:"xl",variant:"accent"}),(0,F.jsx)("p",{className:"ml-3 text-muted-foreground",children:n("videoViewer.loading")})]}),(0,F.jsx)("video",{controls:!0,src:e,onLoadedData:()=>{a(!1)},onError:()=>{a(!1),i(!0),null==D||D()},style:{maxWidth:"100%",maxHeight:"500px",display:o?"none":"block"},className:"rounded-lg shadow-sm",children:n("videoViewer.unsupported")})]})}},79962:(u,e,D)=>{"use strict";D.d(e,{K:()=>n,Y:()=>t});var F=D(21286);let t="commandmate:md-toc-visible",r=/^ {0,3}(#{1,6})(?:[ \t]+(.*?))?[ \t]*$/,s=/^( {0,3})(`{3,}|~{3,})(.*)$/;function n(u){if(!u)return[];let e=new F.A,D=[],t=null,n=0;for(let F of u.split("\n")){var o;let u=s.exec(F);if(t){if(u){let e=u[2];e[0]===t&&e.length>=n&&""===u[3].trim()&&(t=null,n=0)}continue}if(u){let e=u[2],D=e[0];if("`"===D&&u[3].includes("`"));else{t=D,n=e.length;continue}}let a=r.exec(F);if(!a)continue;let l=a[1].length,i=function(u){let e=u;return(e=(e=(e=(e=(e=(e=(e=(e=(e=(e=e.replace(/!\[[^\]]*\]\([^)]*\)/g,"")).replace(/!\[[^\]]*\]\[[^\]]*\]/g,"")).replace(/\[([^\]]*)\]\([^)]*\)/g,"$1")).replace(/\[([^\]]*)\]\[[^\]]*\]/g,"$1")).replace(/\[([^\]]*)\]/g,"$1")).replace(/(`+)([\s\S]*?)\1/g,"$2")).replace(/(\*\*|__)(.*?)\1/g,"$2")).replace(/(\*|_)(.*?)\1/g,"$2")).replace(/~~(.*?)~~/g,"$1")).replace(/\\([\\`*_{}[\]()#+\-.!~])/g,"$1")).trim()}((null!=(o=a[2])?o:"").replace(/([ \t]|^)#+[ \t]*$/,"")),c=e.slug(i);D.push({depth:l,text:i,id:c})}return D}},80003:(u,e,D)=>{"use strict";D.d(e,{A:()=>F});let F=(0,D(71847).A)("list",[["path",{d:"M3 5h.01",key:"18ugdj"}],["path",{d:"M3 12h.01",key:"nlz23k"}],["path",{d:"M3 19h.01",key:"noohij"}],["path",{d:"M8 5h13",key:"1pao27"}],["path",{d:"M8 12h13",key:"1za7za"}],["path",{d:"M8 19h13",key:"m83p4d"}]])},82743:(u,e,D)=>{"use strict";D.r(e),D.d(e,{default:()=>h});var F=D(95155),t=D(12115),r=D(20063),s=D(18955),n=D(80003);let o=(0,D(71847).A)("book-open",[["path",{d:"M12 7v14",key:"1akyts"}],["path",{d:"M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z",key:"ruj8y"}]]);var a=D(744),l=D(28857),i=D(22133),c=D(5225),C=D(92254),d=D(17846),E=D(69264),A=D(55924),B=D(50666),x=D(79962);function h(){let u=(0,r.useRouter)(),e=(0,r.useParams)(),D=(0,s.c)("common"),h=(0,s.c)("worktree"),p=e.id,m=e.path.join("/"),[g,f]=(0,t.useState)(null),[y,j]=(0,t.useState)(!0),[b,v]=(0,t.useState)(null),[k,N]=(0,t.useState)(!0),[w,L]=(0,t.useState)(!1),M=(null==g?void 0:g.extension)==="md"||(null==g?void 0:g.extension)==="markdown",S=(0,t.useMemo)(()=>M&&g?(0,x.K)(g.content):[],[M,g]),z=S.length>=2,P=M&&z&&k;return(0,t.useEffect)(()=>{let u=localStorage.getItem(x.Y);"true"===u?N(!0):"false"===u&&N(!1),L(!0)},[]),(0,t.useEffect)(()=>{w&&localStorage.setItem(x.Y,String(k))},[k,w]),(0,t.useEffect)(()=>{(async()=>{j(!0),v(null);try{let u=await fetch("/api/worktrees/".concat(p,"/files/").concat(m));if(!u.ok){let e=await u.json();throw Error(e.error||"Failed to load file")}let e=await u.json();f(e)}catch(u){v(u instanceof Error?u.message:"Failed to load file")}finally{j(!1)}})()},[p,m]),(0,F.jsxs)("div",{className:"min-h-screen bg-gray-50",children:[(0,F.jsx)("div",{className:"sticky top-0 z-10 bg-white border-b border-gray-200 shadow-sm",children:(0,F.jsxs)("div",{className:"max-w-7xl mx-auto px-4 py-3 flex items-center gap-3",children:[(0,F.jsxs)("button",{onClick:()=>u.back(),className:"flex items-center gap-2 text-gray-600 hover:text-gray-900 transition-colors","aria-label":D("back"),children:[(0,F.jsx)("svg",{className:"w-6 h-6",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,F.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M10 19l-7-7m0 0l7-7m-7 7h18"})}),(0,F.jsx)("span",{className:"hidden sm:inline",children:D("back")})]}),(0,F.jsx)("div",{className:"flex-1 min-w-0",children:(0,F.jsx)("h1",{className:"text-lg font-semibold text-gray-900 truncate",children:m})}),M&&z&&(0,F.jsxs)("button",{onClick:()=>N(u=>!u),"aria-pressed":k,"aria-label":h(k?"toc.hide":"toc.show"),title:h(k?"toc.hide":"toc.show"),className:"hidden lg:flex items-center gap-1.5 flex-shrink-0 rounded-md border border-gray-200 px-2.5 py-1.5 text-sm text-gray-600 hover:bg-gray-50 hover:text-gray-900 transition-colors",children:[k?(0,F.jsx)(n.A,{className:"w-4 h-4"}):(0,F.jsx)(o,{className:"w-4 h-4"}),(0,F.jsx)("span",{className:"hidden xl:inline",children:h("toc.title")})]})]})}),(0,F.jsxs)("div",{className:"max-w-7xl mx-auto px-4 py-6",children:[y&&(0,F.jsx)(a.Zp,{padding:"lg",children:(0,F.jsxs)("div",{className:"flex items-center justify-center py-12",children:[(0,F.jsx)(a.y$,{size:"xl",variant:"accent"}),(0,F.jsx)("p",{className:"ml-3 text-gray-600",children:"Loading file..."})]})}),b&&(0,F.jsx)(a.Zp,{padding:"lg",children:(0,F.jsx)("div",{className:"bg-danger-subtle border border-danger-border rounded-lg p-4",children:(0,F.jsxs)("div",{className:"flex items-center gap-2",children:[(0,F.jsx)("svg",{className:"w-5 h-5 text-danger-foreground flex-shrink-0",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,F.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M12 8v4m0 4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"})}),(0,F.jsx)("p",{className:"text-sm text-danger-foreground",children:b})]})})}),g&&!y&&!b&&(0,F.jsxs)(a.Zp,{padding:"none",children:[(0,F.jsx)("div",{className:"bg-gray-100 px-4 py-3 border-b border-gray-200",children:(0,F.jsxs)("p",{className:"text-xs text-gray-600 font-mono break-all",children:[g.worktreePath,"/",g.path]})}),(0,F.jsx)("div",{className:"p-6 sm:p-8 bg-white",children:g.isVideo?(0,F.jsx)(E.u,{src:g.content,mimeType:g.mimeType}):g.isImage?(0,F.jsx)(d.a,{src:g.content,alt:g.path,mimeType:g.mimeType}):M?(0,F.jsxs)("div",{className:"lg:flex lg:gap-6 lg:items-start",children:[(0,F.jsx)("div",{className:"min-w-0 lg:flex-1 prose prose-slate max-w-none prose-headings:font-semibold prose-headings:scroll-mt-[57px] prose-h1:text-3xl prose-h1:border-b prose-h1:pb-2 prose-h2:text-2xl prose-h2:border-b prose-h2:pb-2 prose-h3:text-xl prose-a:text-accent-600 prose-a:no-underline hover:prose-a:underline prose-code:text-sm prose-code:bg-gray-100 prose-code:px-1 prose-code:py-0.5 prose-code:rounded prose-code:before:content-none prose-code:after:content-none prose-img:rounded-lg prose-img:shadow-md",children:(0,F.jsx)(l.oz,{remarkPlugins:[i.A],rehypePlugins:[C.A,c.A],components:{code:u=>{let{className:e,children:D,...t}=u;return e&&e.includes("language-")?(0,F.jsx)("code",{className:e,...t,children:D}):(0,F.jsx)("code",{className:"bg-gray-100 text-gray-800 px-1.5 py-0.5 rounded text-sm font-mono",...t,children:D})},pre:u=>{let{children:e}=u;return(0,F.jsx)(B.Ck,{children:(0,F.jsx)("pre",{className:"overflow-x-auto",children:e})})},table:u=>{let{children:e}=u;return(0,F.jsx)("div",{className:"overflow-x-auto",children:(0,F.jsx)("table",{className:"border-collapse border border-gray-300",children:e})})},th:u=>{let{children:e}=u;return(0,F.jsx)("th",{className:"border border-gray-300 bg-gray-100 px-4 py-2 text-left font-semibold",children:e})},td:u=>{let{children:e}=u;return(0,F.jsx)("td",{className:"border border-gray-300 px-4 py-2",children:e})},blockquote:u=>{let{children:e}=u;return(0,F.jsx)("blockquote",{className:"border-l-4 border-gray-300 pl-4 italic text-gray-700",children:e})}},children:g.content})}),P&&(0,F.jsx)("aside",{className:"hidden lg:block lg:w-64 lg:flex-shrink-0",children:(0,F.jsx)("div",{className:"lg:sticky",style:{top:"".concat(65,"px")},children:(0,F.jsx)(A.K,{entries:S,title:h("toc.title"),headerOffset:57})})})]}):(0,F.jsx)("pre",{className:"bg-gray-50 border border-gray-200 rounded-md p-4 overflow-x-auto text-sm",children:(0,F.jsx)("code",{className:"language-".concat(g.extension),children:g.content})})})]})]})]})}},92254:(u,e,D)=>{"use strict";D.d(e,{A:()=>n});var F=D(21286),t=D(95139);let r={},s=new F.A;function n(u){let e=(u||r).prefix||"";return function(u){s.reset(),(0,t.YR)(u,"element",function(u){(function(u){let e="element"===u.type?u.tagName.toLowerCase():"",D=2===e.length&&104===e.charCodeAt(0)?e.charCodeAt(1):0;return D>48&&D<55?D-48:void 0})(u)&&!u.properties.id&&(u.properties.id=e+s.slug("children"in u?function u(e){let D=-1,F=[];for(;++D<e.children.length;){var t;F[D]="text"===(t=e.children[D]).type?t.value:"children"in t?u(t):""}return F.join("")}(u):"value"in u?u.value:""))})}}}},u=>{u.O(0,[6809,4909,2770,8566,2069,6402,744,8441,1255,7358],()=>u(u.s=32366)),_N_E=u.O()}]);
|
|
1
|
+
(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[1385],{17846:(u,e,D)=>{"use strict";D.d(e,{a:()=>s});var F=D(95155),t=D(12115),r=D(18955);function s(u){let{src:e,alt:D,onError:s}=u,n=(0,r.c)("worktree"),[o,a]=(0,t.useState)(!1);return o?(0,F.jsxs)("div",{className:"flex flex-col items-center justify-center py-12 text-muted-foreground",children:[(0,F.jsx)("svg",{className:"w-16 h-16 mb-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,F.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:1.5,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,F.jsx)("p",{className:"text-sm",children:n("imageViewer.loadError")}),(0,F.jsx)("p",{className:"text-xs text-muted-foreground mt-1",children:D})]}):(0,F.jsx)("div",{className:"flex items-center justify-center p-4",children:(0,F.jsx)("img",{src:e,alt:D,onError:()=>{a(!0),null==s||s()},style:{maxWidth:"100%",maxHeight:"500px",objectFit:"contain"},className:"rounded-lg shadow-sm"})})}},20063:(u,e,D)=>{"use strict";var F=D(47260);D.o(F,"useParams")&&D.d(e,{useParams:function(){return F.useParams}}),D.o(F,"usePathname")&&D.d(e,{usePathname:function(){return F.usePathname}}),D.o(F,"useRouter")&&D.d(e,{useRouter:function(){return F.useRouter}})},21286:(u,e,D)=>{"use strict";D.d(e,{A:()=>r});let F=/[\0-\x1F!-,\.\/:-@\[-\^`\{-\xA9\xAB-\xB4\xB6-\xB9\xBB-\xBF\xD7\xF7\u02C2-\u02C5\u02D2-\u02DF\u02E5-\u02EB\u02ED\u02EF-\u02FF\u0375\u0378\u0379\u037E\u0380-\u0385\u0387\u038B\u038D\u03A2\u03F6\u0482\u0530\u0557\u0558\u055A-\u055F\u0589-\u0590\u05BE\u05C0\u05C3\u05C6\u05C8-\u05CF\u05EB-\u05EE\u05F3-\u060F\u061B-\u061F\u066A-\u066D\u06D4\u06DD\u06DE\u06E9\u06FD\u06FE\u0700-\u070F\u074B\u074C\u07B2-\u07BF\u07F6-\u07F9\u07FB\u07FC\u07FE\u07FF\u082E-\u083F\u085C-\u085F\u086B-\u089F\u08B5\u08C8-\u08D2\u08E2\u0964\u0965\u0970\u0984\u098D\u098E\u0991\u0992\u09A9\u09B1\u09B3-\u09B5\u09BA\u09BB\u09C5\u09C6\u09C9\u09CA\u09CF-\u09D6\u09D8-\u09DB\u09DE\u09E4\u09E5\u09F2-\u09FB\u09FD\u09FF\u0A00\u0A04\u0A0B-\u0A0E\u0A11\u0A12\u0A29\u0A31\u0A34\u0A37\u0A3A\u0A3B\u0A3D\u0A43-\u0A46\u0A49\u0A4A\u0A4E-\u0A50\u0A52-\u0A58\u0A5D\u0A5F-\u0A65\u0A76-\u0A80\u0A84\u0A8E\u0A92\u0AA9\u0AB1\u0AB4\u0ABA\u0ABB\u0AC6\u0ACA\u0ACE\u0ACF\u0AD1-\u0ADF\u0AE4\u0AE5\u0AF0-\u0AF8\u0B00\u0B04\u0B0D\u0B0E\u0B11\u0B12\u0B29\u0B31\u0B34\u0B3A\u0B3B\u0B45\u0B46\u0B49\u0B4A\u0B4E-\u0B54\u0B58-\u0B5B\u0B5E\u0B64\u0B65\u0B70\u0B72-\u0B81\u0B84\u0B8B-\u0B8D\u0B91\u0B96-\u0B98\u0B9B\u0B9D\u0BA0-\u0BA2\u0BA5-\u0BA7\u0BAB-\u0BAD\u0BBA-\u0BBD\u0BC3-\u0BC5\u0BC9\u0BCE\u0BCF\u0BD1-\u0BD6\u0BD8-\u0BE5\u0BF0-\u0BFF\u0C0D\u0C11\u0C29\u0C3A-\u0C3C\u0C45\u0C49\u0C4E-\u0C54\u0C57\u0C5B-\u0C5F\u0C64\u0C65\u0C70-\u0C7F\u0C84\u0C8D\u0C91\u0CA9\u0CB4\u0CBA\u0CBB\u0CC5\u0CC9\u0CCE-\u0CD4\u0CD7-\u0CDD\u0CDF\u0CE4\u0CE5\u0CF0\u0CF3-\u0CFF\u0D0D\u0D11\u0D45\u0D49\u0D4F-\u0D53\u0D58-\u0D5E\u0D64\u0D65\u0D70-\u0D79\u0D80\u0D84\u0D97-\u0D99\u0DB2\u0DBC\u0DBE\u0DBF\u0DC7-\u0DC9\u0DCB-\u0DCE\u0DD5\u0DD7\u0DE0-\u0DE5\u0DF0\u0DF1\u0DF4-\u0E00\u0E3B-\u0E3F\u0E4F\u0E5A-\u0E80\u0E83\u0E85\u0E8B\u0EA4\u0EA6\u0EBE\u0EBF\u0EC5\u0EC7\u0ECE\u0ECF\u0EDA\u0EDB\u0EE0-\u0EFF\u0F01-\u0F17\u0F1A-\u0F1F\u0F2A-\u0F34\u0F36\u0F38\u0F3A-\u0F3D\u0F48\u0F6D-\u0F70\u0F85\u0F98\u0FBD-\u0FC5\u0FC7-\u0FFF\u104A-\u104F\u109E\u109F\u10C6\u10C8-\u10CC\u10CE\u10CF\u10FB\u1249\u124E\u124F\u1257\u1259\u125E\u125F\u1289\u128E\u128F\u12B1\u12B6\u12B7\u12BF\u12C1\u12C6\u12C7\u12D7\u1311\u1316\u1317\u135B\u135C\u1360-\u137F\u1390-\u139F\u13F6\u13F7\u13FE-\u1400\u166D\u166E\u1680\u169B-\u169F\u16EB-\u16ED\u16F9-\u16FF\u170D\u1715-\u171F\u1735-\u173F\u1754-\u175F\u176D\u1771\u1774-\u177F\u17D4-\u17D6\u17D8-\u17DB\u17DE\u17DF\u17EA-\u180A\u180E\u180F\u181A-\u181F\u1879-\u187F\u18AB-\u18AF\u18F6-\u18FF\u191F\u192C-\u192F\u193C-\u1945\u196E\u196F\u1975-\u197F\u19AC-\u19AF\u19CA-\u19CF\u19DA-\u19FF\u1A1C-\u1A1F\u1A5F\u1A7D\u1A7E\u1A8A-\u1A8F\u1A9A-\u1AA6\u1AA8-\u1AAF\u1AC1-\u1AFF\u1B4C-\u1B4F\u1B5A-\u1B6A\u1B74-\u1B7F\u1BF4-\u1BFF\u1C38-\u1C3F\u1C4A-\u1C4C\u1C7E\u1C7F\u1C89-\u1C8F\u1CBB\u1CBC\u1CC0-\u1CCF\u1CD3\u1CFB-\u1CFF\u1DFA\u1F16\u1F17\u1F1E\u1F1F\u1F46\u1F47\u1F4E\u1F4F\u1F58\u1F5A\u1F5C\u1F5E\u1F7E\u1F7F\u1FB5\u1FBD\u1FBF-\u1FC1\u1FC5\u1FCD-\u1FCF\u1FD4\u1FD5\u1FDC-\u1FDF\u1FED-\u1FF1\u1FF5\u1FFD-\u203E\u2041-\u2053\u2055-\u2070\u2072-\u207E\u2080-\u208F\u209D-\u20CF\u20F1-\u2101\u2103-\u2106\u2108\u2109\u2114\u2116-\u2118\u211E-\u2123\u2125\u2127\u2129\u212E\u213A\u213B\u2140-\u2144\u214A-\u214D\u214F-\u215F\u2189-\u24B5\u24EA-\u2BFF\u2C2F\u2C5F\u2CE5-\u2CEA\u2CF4-\u2CFF\u2D26\u2D28-\u2D2C\u2D2E\u2D2F\u2D68-\u2D6E\u2D70-\u2D7E\u2D97-\u2D9F\u2DA7\u2DAF\u2DB7\u2DBF\u2DC7\u2DCF\u2DD7\u2DDF\u2E00-\u2E2E\u2E30-\u3004\u3008-\u3020\u3030\u3036\u3037\u303D-\u3040\u3097\u3098\u309B\u309C\u30A0\u30FB\u3100-\u3104\u3130\u318F-\u319F\u31C0-\u31EF\u3200-\u33FF\u4DC0-\u4DFF\u9FFD-\u9FFF\uA48D-\uA4CF\uA4FE\uA4FF\uA60D-\uA60F\uA62C-\uA63F\uA673\uA67E\uA6F2-\uA716\uA720\uA721\uA789\uA78A\uA7C0\uA7C1\uA7CB-\uA7F4\uA828-\uA82B\uA82D-\uA83F\uA874-\uA87F\uA8C6-\uA8CF\uA8DA-\uA8DF\uA8F8-\uA8FA\uA8FC\uA92E\uA92F\uA954-\uA95F\uA97D-\uA97F\uA9C1-\uA9CE\uA9DA-\uA9DF\uA9FF\uAA37-\uAA3F\uAA4E\uAA4F\uAA5A-\uAA5F\uAA77-\uAA79\uAAC3-\uAADA\uAADE\uAADF\uAAF0\uAAF1\uAAF7-\uAB00\uAB07\uAB08\uAB0F\uAB10\uAB17-\uAB1F\uAB27\uAB2F\uAB5B\uAB6A-\uAB6F\uABEB\uABEE\uABEF\uABFA-\uABFF\uD7A4-\uD7AF\uD7C7-\uD7CA\uD7FC-\uD7FF\uE000-\uF8FF\uFA6E\uFA6F\uFADA-\uFAFF\uFB07-\uFB12\uFB18-\uFB1C\uFB29\uFB37\uFB3D\uFB3F\uFB42\uFB45\uFBB2-\uFBD2\uFD3E-\uFD4F\uFD90\uFD91\uFDC8-\uFDEF\uFDFC-\uFDFF\uFE10-\uFE1F\uFE30-\uFE32\uFE35-\uFE4C\uFE50-\uFE6F\uFE75\uFEFD-\uFF0F\uFF1A-\uFF20\uFF3B-\uFF3E\uFF40\uFF5B-\uFF65\uFFBF-\uFFC1\uFFC8\uFFC9\uFFD0\uFFD1\uFFD8\uFFD9\uFFDD-\uFFFF]|\uD800[\uDC0C\uDC27\uDC3B\uDC3E\uDC4E\uDC4F\uDC5E-\uDC7F\uDCFB-\uDD3F\uDD75-\uDDFC\uDDFE-\uDE7F\uDE9D-\uDE9F\uDED1-\uDEDF\uDEE1-\uDEFF\uDF20-\uDF2C\uDF4B-\uDF4F\uDF7B-\uDF7F\uDF9E\uDF9F\uDFC4-\uDFC7\uDFD0\uDFD6-\uDFFF]|\uD801[\uDC9E\uDC9F\uDCAA-\uDCAF\uDCD4-\uDCD7\uDCFC-\uDCFF\uDD28-\uDD2F\uDD64-\uDDFF\uDF37-\uDF3F\uDF56-\uDF5F\uDF68-\uDFFF]|\uD802[\uDC06\uDC07\uDC09\uDC36\uDC39-\uDC3B\uDC3D\uDC3E\uDC56-\uDC5F\uDC77-\uDC7F\uDC9F-\uDCDF\uDCF3\uDCF6-\uDCFF\uDD16-\uDD1F\uDD3A-\uDD7F\uDDB8-\uDDBD\uDDC0-\uDDFF\uDE04\uDE07-\uDE0B\uDE14\uDE18\uDE36\uDE37\uDE3B-\uDE3E\uDE40-\uDE5F\uDE7D-\uDE7F\uDE9D-\uDEBF\uDEC8\uDEE7-\uDEFF\uDF36-\uDF3F\uDF56-\uDF5F\uDF73-\uDF7F\uDF92-\uDFFF]|\uD803[\uDC49-\uDC7F\uDCB3-\uDCBF\uDCF3-\uDCFF\uDD28-\uDD2F\uDD3A-\uDE7F\uDEAA\uDEAD-\uDEAF\uDEB2-\uDEFF\uDF1D-\uDF26\uDF28-\uDF2F\uDF51-\uDFAF\uDFC5-\uDFDF\uDFF7-\uDFFF]|\uD804[\uDC47-\uDC65\uDC70-\uDC7E\uDCBB-\uDCCF\uDCE9-\uDCEF\uDCFA-\uDCFF\uDD35\uDD40-\uDD43\uDD48-\uDD4F\uDD74\uDD75\uDD77-\uDD7F\uDDC5-\uDDC8\uDDCD\uDDDB\uDDDD-\uDDFF\uDE12\uDE38-\uDE3D\uDE3F-\uDE7F\uDE87\uDE89\uDE8E\uDE9E\uDEA9-\uDEAF\uDEEB-\uDEEF\uDEFA-\uDEFF\uDF04\uDF0D\uDF0E\uDF11\uDF12\uDF29\uDF31\uDF34\uDF3A\uDF45\uDF46\uDF49\uDF4A\uDF4E\uDF4F\uDF51-\uDF56\uDF58-\uDF5C\uDF64\uDF65\uDF6D-\uDF6F\uDF75-\uDFFF]|\uD805[\uDC4B-\uDC4F\uDC5A-\uDC5D\uDC62-\uDC7F\uDCC6\uDCC8-\uDCCF\uDCDA-\uDD7F\uDDB6\uDDB7\uDDC1-\uDDD7\uDDDE-\uDDFF\uDE41-\uDE43\uDE45-\uDE4F\uDE5A-\uDE7F\uDEB9-\uDEBF\uDECA-\uDEFF\uDF1B\uDF1C\uDF2C-\uDF2F\uDF3A-\uDFFF]|\uD806[\uDC3B-\uDC9F\uDCEA-\uDCFE\uDD07\uDD08\uDD0A\uDD0B\uDD14\uDD17\uDD36\uDD39\uDD3A\uDD44-\uDD4F\uDD5A-\uDD9F\uDDA8\uDDA9\uDDD8\uDDD9\uDDE2\uDDE5-\uDDFF\uDE3F-\uDE46\uDE48-\uDE4F\uDE9A-\uDE9C\uDE9E-\uDEBF\uDEF9-\uDFFF]|\uD807[\uDC09\uDC37\uDC41-\uDC4F\uDC5A-\uDC71\uDC90\uDC91\uDCA8\uDCB7-\uDCFF\uDD07\uDD0A\uDD37-\uDD39\uDD3B\uDD3E\uDD48-\uDD4F\uDD5A-\uDD5F\uDD66\uDD69\uDD8F\uDD92\uDD99-\uDD9F\uDDAA-\uDEDF\uDEF7-\uDFAF\uDFB1-\uDFFF]|\uD808[\uDF9A-\uDFFF]|\uD809[\uDC6F-\uDC7F\uDD44-\uDFFF]|[\uD80A\uD80B\uD80E-\uD810\uD812-\uD819\uD824-\uD82B\uD82D\uD82E\uD830-\uD833\uD837\uD839\uD83D\uD83F\uD87B-\uD87D\uD87F\uD885-\uDB3F\uDB41-\uDBFF][\uDC00-\uDFFF]|\uD80D[\uDC2F-\uDFFF]|\uD811[\uDE47-\uDFFF]|\uD81A[\uDE39-\uDE3F\uDE5F\uDE6A-\uDECF\uDEEE\uDEEF\uDEF5-\uDEFF\uDF37-\uDF3F\uDF44-\uDF4F\uDF5A-\uDF62\uDF78-\uDF7C\uDF90-\uDFFF]|\uD81B[\uDC00-\uDE3F\uDE80-\uDEFF\uDF4B-\uDF4E\uDF88-\uDF8E\uDFA0-\uDFDF\uDFE2\uDFE5-\uDFEF\uDFF2-\uDFFF]|\uD821[\uDFF8-\uDFFF]|\uD823[\uDCD6-\uDCFF\uDD09-\uDFFF]|\uD82C[\uDD1F-\uDD4F\uDD53-\uDD63\uDD68-\uDD6F\uDEFC-\uDFFF]|\uD82F[\uDC6B-\uDC6F\uDC7D-\uDC7F\uDC89-\uDC8F\uDC9A-\uDC9C\uDC9F-\uDFFF]|\uD834[\uDC00-\uDD64\uDD6A-\uDD6C\uDD73-\uDD7A\uDD83\uDD84\uDD8C-\uDDA9\uDDAE-\uDE41\uDE45-\uDFFF]|\uD835[\uDC55\uDC9D\uDCA0\uDCA1\uDCA3\uDCA4\uDCA7\uDCA8\uDCAD\uDCBA\uDCBC\uDCC4\uDD06\uDD0B\uDD0C\uDD15\uDD1D\uDD3A\uDD3F\uDD45\uDD47-\uDD49\uDD51\uDEA6\uDEA7\uDEC1\uDEDB\uDEFB\uDF15\uDF35\uDF4F\uDF6F\uDF89\uDFA9\uDFC3\uDFCC\uDFCD]|\uD836[\uDC00-\uDDFF\uDE37-\uDE3A\uDE6D-\uDE74\uDE76-\uDE83\uDE85-\uDE9A\uDEA0\uDEB0-\uDFFF]|\uD838[\uDC07\uDC19\uDC1A\uDC22\uDC25\uDC2B-\uDCFF\uDD2D-\uDD2F\uDD3E\uDD3F\uDD4A-\uDD4D\uDD4F-\uDEBF\uDEFA-\uDFFF]|\uD83A[\uDCC5-\uDCCF\uDCD7-\uDCFF\uDD4C-\uDD4F\uDD5A-\uDFFF]|\uD83B[\uDC00-\uDDFF\uDE04\uDE20\uDE23\uDE25\uDE26\uDE28\uDE33\uDE38\uDE3A\uDE3C-\uDE41\uDE43-\uDE46\uDE48\uDE4A\uDE4C\uDE50\uDE53\uDE55\uDE56\uDE58\uDE5A\uDE5C\uDE5E\uDE60\uDE63\uDE65\uDE66\uDE6B\uDE73\uDE78\uDE7D\uDE7F\uDE8A\uDE9C-\uDEA0\uDEA4\uDEAA\uDEBC-\uDFFF]|\uD83C[\uDC00-\uDD2F\uDD4A-\uDD4F\uDD6A-\uDD6F\uDD8A-\uDFFF]|\uD83E[\uDC00-\uDFEF\uDFFA-\uDFFF]|\uD869[\uDEDE-\uDEFF]|\uD86D[\uDF35-\uDF3F]|\uD86E[\uDC1E\uDC1F]|\uD873[\uDEA2-\uDEAF]|\uD87A[\uDFE1-\uDFFF]|\uD87E[\uDE1E-\uDFFF]|\uD884[\uDF4B-\uDFFF]|\uDB40[\uDC00-\uDCFF\uDDF0-\uDFFF]/g,t=Object.hasOwnProperty;class r{constructor(){this.occurrences,this.reset()}slug(u,e){var D,r;let s=(D=u,r=!0===e,"string"!=typeof D?"":(r||(D=D.toLowerCase()),D.replace(F,"").replace(/ /g,"-"))),n=s;for(;t.call(this.occurrences,s);)this.occurrences[n]++,s=n+"-"+this.occurrences[n];return this.occurrences[s]=0,s}reset(){this.occurrences=Object.create(null)}}},32366:(u,e,D)=>{Promise.resolve().then(D.bind(D,82743))},50666:(u,e,D)=>{"use strict";D.d(e,{Ck:()=>s});var F=D(95155),t=D(12115),r=D(53482);function s(u){let{children:e,as:D="div",className:s=""}=u,n=function u(e){return null==e||"boolean"==typeof e?"":"string"==typeof e?e:"number"==typeof e?String(e):Array.isArray(e)?e.map(u).join(""):t.isValidElement(e)?u(e.props.children):""}(e);if(!n||0===n.trim().length)return(0,F.jsx)(D,{className:s||void 0,children:e});let o="relative group ".concat("span"===D?"block ":"").concat(s).trim();return(0,F.jsxs)(D,{className:o,"data-testid":"code-block-with-copy",children:[e,(0,F.jsx)(r.i,{text:n,className:"absolute right-2 top-2 z-10 opacity-100 md:opacity-0 md:group-hover:opacity-100 md:group-focus-within:opacity-100 focus:opacity-100"})]})}},53482:(u,e,D)=>{"use strict";D.d(e,{i:()=>a});var F=D(95155),t=D(12115),r=D(60322),s=D(9900);function n(){return(0,F.jsx)("svg",{className:"h-3.5 w-3.5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,F.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z"})})}function o(){return(0,F.jsx)("svg",{className:"h-3.5 w-3.5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,F.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M5 13l4 4L19 7"})})}function a(u){let{text:e,className:D="",label:a="Copy"}=u,[l,i]=(0,t.useState)(!1),c=(0,t.useRef)(null);(0,t.useEffect)(()=>()=>{c.current&&clearTimeout(c.current)},[]);let C=(0,t.useCallback)(async()=>{try{await (0,r.l)(e),i(!0),c.current&&clearTimeout(c.current),c.current=setTimeout(()=>i(!1),s.s7)}catch(u){}},[e]);return(0,F.jsxs)("button",{type:"button",onClick:C,className:"inline-flex items-center gap-1 rounded border border-border bg-surface px-2 py-0.5 text-[11px] font-medium text-foreground transition-colors hover:bg-muted ".concat(D),"aria-label":l?"Copied":a,title:l?"Copied!":a,children:[l?(0,F.jsx)(o,{}):(0,F.jsx)(n,{}),(0,F.jsx)("span",{children:l?"Copied":a})]})}},55924:(u,e,D)=>{"use strict";D.d(e,{K:()=>r});var F=D(95155),t=D(12115);function r(u){let{entries:e,title:D,headerOffset:r=64,root:s=null,className:n=""}=u,[o,a]=(0,t.useState)(null);return((0,t.useRef)(null).current=o,(0,t.useEffect)(()=>{if("undefined"==typeof IntersectionObserver||0===e.length)return;let u=new IntersectionObserver(u=>{let e=function(u){let e=u.filter(u=>u.isIntersecting).sort((u,e)=>u.boundingClientRect.top-e.boundingClientRect.top);return e.length>0?e[0].target.id:null}(u);e&&a(e)},{root:s,rootMargin:"-".concat(r,"px 0px -70% 0px"),threshold:0}),D=[];for(let F of e){let e=document.getElementById(F.id);e&&(u.observe(e),D.push(e))}return()=>{u.disconnect(),D.length=0}},[e,r,s]),0===e.length)?null:(0,F.jsxs)("nav",{"aria-label":D,className:n,children:[(0,F.jsx)("p",{className:"px-3 pb-2 text-xs font-semibold uppercase tracking-wide text-muted-foreground",children:D}),(0,F.jsx)("ul",{className:"space-y-0.5 text-sm",children:e.map((u,e)=>{let D=u.id===o;return(0,F.jsx)("li",{children:(0,F.jsx)("a",{href:"#".concat(u.id),onClick:e=>((u,e)=>{u.preventDefault();let D="undefined"!=typeof document?document.getElementById(e):null;D&&D.scrollIntoView({behavior:"smooth",block:"start"}),a(e)})(e,u.id),"aria-current":D?"location":void 0,"data-depth":u.depth,style:{paddingLeft:"".concat((u.depth-1)*12+12,"px")},className:["block truncate rounded py-1 pr-2 transition-colors",D?"bg-accent-50 font-medium text-accent-700":"text-muted-foreground hover:bg-muted hover:text-foreground"].join(" "),title:u.text,children:u.text})},"".concat(u.id,"-").concat(e))})})]})}},60322:(u,e,D)=>{"use strict";D.d(e,{l:()=>t});let F=/\x1b\[[0-9;]*[a-zA-Z]|\x1b\][^\x07]*\x07|\[[0-9;]*m/g;async function t(u){var e;if(!u||0===u.trim().length)return;let D=u.replace(F,"");if(null==(e=navigator.clipboard)?void 0:e.writeText)try{await navigator.clipboard.writeText(D);return}catch(u){}let t=document.createElement("textarea");t.value=D,t.style.position="fixed",t.style.left="-9999px",t.style.top="-9999px",t.style.opacity="0",document.body.appendChild(t),t.focus(),t.select();try{document.execCommand("copy")}finally{document.body.removeChild(t)}}},69264:(u,e,D)=>{"use strict";D.d(e,{u:()=>n});var F=D(95155),t=D(12115),r=D(18955),s=D(3005);function n(u){let{src:e,onError:D}=u,n=(0,r.c)("worktree"),[o,a]=(0,t.useState)(!0),[l,i]=(0,t.useState)(!1);return l?(0,F.jsxs)("div",{className:"flex flex-col items-center justify-center py-12 text-muted-foreground",children:[(0,F.jsx)("svg",{className:"w-16 h-16 mb-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,F.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:1.5,d:"M15 10l4.553-2.276A1 1 0 0121 8.618v6.764a1 1 0 01-1.447.894L15 14M5 18h8a2 2 0 002-2V8a2 2 0 00-2-2H5a2 2 0 00-2 2v8a2 2 0 002 2z"})}),(0,F.jsx)("p",{className:"text-sm",children:n("videoViewer.loadError")})]}):(0,F.jsxs)("div",{className:"flex flex-col items-center justify-center p-4",children:[o&&(0,F.jsxs)("div",{className:"flex items-center justify-center py-8",children:[(0,F.jsx)(s.y,{size:"xl",variant:"accent"}),(0,F.jsx)("p",{className:"ml-3 text-muted-foreground",children:n("videoViewer.loading")})]}),(0,F.jsx)("video",{controls:!0,src:e,onLoadedData:()=>{a(!1)},onError:()=>{a(!1),i(!0),null==D||D()},style:{maxWidth:"100%",maxHeight:"500px",display:o?"none":"block"},className:"rounded-lg shadow-sm",children:n("videoViewer.unsupported")})]})}},79962:(u,e,D)=>{"use strict";D.d(e,{K:()=>n,Y:()=>t});var F=D(21286);let t="commandmate:md-toc-visible",r=/^ {0,3}(#{1,6})(?:[ \t]+(.*?))?[ \t]*$/,s=/^( {0,3})(`{3,}|~{3,})(.*)$/;function n(u){if(!u)return[];let e=new F.A,D=[],t=null,n=0;for(let F of u.split("\n")){var o;let u=s.exec(F);if(t){if(u){let e=u[2];e[0]===t&&e.length>=n&&""===u[3].trim()&&(t=null,n=0)}continue}if(u){let e=u[2],D=e[0];if("`"===D&&u[3].includes("`"));else{t=D,n=e.length;continue}}let a=r.exec(F);if(!a)continue;let l=a[1].length,i=function(u){let e=u;return(e=(e=(e=(e=(e=(e=(e=(e=(e=(e=e.replace(/!\[[^\]]*\]\([^)]*\)/g,"")).replace(/!\[[^\]]*\]\[[^\]]*\]/g,"")).replace(/\[([^\]]*)\]\([^)]*\)/g,"$1")).replace(/\[([^\]]*)\]\[[^\]]*\]/g,"$1")).replace(/\[([^\]]*)\]/g,"$1")).replace(/(`+)([\s\S]*?)\1/g,"$2")).replace(/(\*\*|__)(.*?)\1/g,"$2")).replace(/(\*|_)(.*?)\1/g,"$2")).replace(/~~(.*?)~~/g,"$1")).replace(/\\([\\`*_{}[\]()#+\-.!~])/g,"$1")).trim()}((null!=(o=a[2])?o:"").replace(/([ \t]|^)#+[ \t]*$/,"")),c=e.slug(i);D.push({depth:l,text:i,id:c})}return D}},80003:(u,e,D)=>{"use strict";D.d(e,{A:()=>F});let F=(0,D(71847).A)("list",[["path",{d:"M3 5h.01",key:"18ugdj"}],["path",{d:"M3 12h.01",key:"nlz23k"}],["path",{d:"M3 19h.01",key:"noohij"}],["path",{d:"M8 5h13",key:"1pao27"}],["path",{d:"M8 12h13",key:"1za7za"}],["path",{d:"M8 19h13",key:"m83p4d"}]])},82743:(u,e,D)=>{"use strict";D.r(e),D.d(e,{default:()=>h});var F=D(95155),t=D(12115),r=D(20063),s=D(18955),n=D(80003);let o=(0,D(71847).A)("book-open",[["path",{d:"M12 7v14",key:"1akyts"}],["path",{d:"M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z",key:"ruj8y"}]]);var a=D(744),l=D(51238),i=D(22133),c=D(5225),C=D(92254),d=D(17846),E=D(69264),A=D(55924),B=D(50666),x=D(79962);function h(){let u=(0,r.useRouter)(),e=(0,r.useParams)(),D=(0,s.c)("common"),h=(0,s.c)("worktree"),p=e.id,m=e.path.join("/"),[g,f]=(0,t.useState)(null),[y,j]=(0,t.useState)(!0),[b,v]=(0,t.useState)(null),[k,N]=(0,t.useState)(!0),[w,L]=(0,t.useState)(!1),M=(null==g?void 0:g.extension)==="md"||(null==g?void 0:g.extension)==="markdown",S=(0,t.useMemo)(()=>M&&g?(0,x.K)(g.content):[],[M,g]),z=S.length>=2,P=M&&z&&k;return(0,t.useEffect)(()=>{let u=localStorage.getItem(x.Y);"true"===u?N(!0):"false"===u&&N(!1),L(!0)},[]),(0,t.useEffect)(()=>{w&&localStorage.setItem(x.Y,String(k))},[k,w]),(0,t.useEffect)(()=>{(async()=>{j(!0),v(null);try{let u=await fetch("/api/worktrees/".concat(p,"/files/").concat(m));if(!u.ok){let e=await u.json();throw Error(e.error||"Failed to load file")}let e=await u.json();f(e)}catch(u){v(u instanceof Error?u.message:"Failed to load file")}finally{j(!1)}})()},[p,m]),(0,F.jsxs)("div",{className:"min-h-screen bg-gray-50",children:[(0,F.jsx)("div",{className:"sticky top-0 z-10 bg-white border-b border-gray-200 shadow-sm",children:(0,F.jsxs)("div",{className:"max-w-7xl mx-auto px-4 py-3 flex items-center gap-3",children:[(0,F.jsxs)("button",{onClick:()=>u.back(),className:"flex items-center gap-2 text-gray-600 hover:text-gray-900 transition-colors","aria-label":D("back"),children:[(0,F.jsx)("svg",{className:"w-6 h-6",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,F.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M10 19l-7-7m0 0l7-7m-7 7h18"})}),(0,F.jsx)("span",{className:"hidden sm:inline",children:D("back")})]}),(0,F.jsx)("div",{className:"flex-1 min-w-0",children:(0,F.jsx)("h1",{className:"text-lg font-semibold text-gray-900 truncate",children:m})}),M&&z&&(0,F.jsxs)("button",{onClick:()=>N(u=>!u),"aria-pressed":k,"aria-label":h(k?"toc.hide":"toc.show"),title:h(k?"toc.hide":"toc.show"),className:"hidden lg:flex items-center gap-1.5 flex-shrink-0 rounded-md border border-gray-200 px-2.5 py-1.5 text-sm text-gray-600 hover:bg-gray-50 hover:text-gray-900 transition-colors",children:[k?(0,F.jsx)(n.A,{className:"w-4 h-4"}):(0,F.jsx)(o,{className:"w-4 h-4"}),(0,F.jsx)("span",{className:"hidden xl:inline",children:h("toc.title")})]})]})}),(0,F.jsxs)("div",{className:"max-w-7xl mx-auto px-4 py-6",children:[y&&(0,F.jsx)(a.Zp,{padding:"lg",children:(0,F.jsxs)("div",{className:"flex items-center justify-center py-12",children:[(0,F.jsx)(a.y$,{size:"xl",variant:"accent"}),(0,F.jsx)("p",{className:"ml-3 text-gray-600",children:"Loading file..."})]})}),b&&(0,F.jsx)(a.Zp,{padding:"lg",children:(0,F.jsx)("div",{className:"bg-danger-subtle border border-danger-border rounded-lg p-4",children:(0,F.jsxs)("div",{className:"flex items-center gap-2",children:[(0,F.jsx)("svg",{className:"w-5 h-5 text-danger-foreground flex-shrink-0",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:(0,F.jsx)("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M12 8v4m0 4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"})}),(0,F.jsx)("p",{className:"text-sm text-danger-foreground",children:b})]})})}),g&&!y&&!b&&(0,F.jsxs)(a.Zp,{padding:"none",children:[(0,F.jsx)("div",{className:"bg-gray-100 px-4 py-3 border-b border-gray-200",children:(0,F.jsxs)("p",{className:"text-xs text-gray-600 font-mono break-all",children:[g.worktreePath,"/",g.path]})}),(0,F.jsx)("div",{className:"p-6 sm:p-8 bg-white",children:g.isVideo?(0,F.jsx)(E.u,{src:g.content,mimeType:g.mimeType}):g.isImage?(0,F.jsx)(d.a,{src:g.content,alt:g.path,mimeType:g.mimeType}):M?(0,F.jsxs)("div",{className:"lg:flex lg:gap-6 lg:items-start",children:[(0,F.jsx)("div",{className:"min-w-0 lg:flex-1 prose prose-slate max-w-none prose-headings:font-semibold prose-headings:scroll-mt-[57px] prose-h1:text-3xl prose-h1:border-b prose-h1:pb-2 prose-h2:text-2xl prose-h2:border-b prose-h2:pb-2 prose-h3:text-xl prose-a:text-accent-600 prose-a:no-underline hover:prose-a:underline prose-code:text-sm prose-code:bg-gray-100 prose-code:px-1 prose-code:py-0.5 prose-code:rounded prose-code:before:content-none prose-code:after:content-none prose-img:rounded-lg prose-img:shadow-md",children:(0,F.jsx)(l.oz,{remarkPlugins:[i.A],rehypePlugins:[C.A,c.A],components:{code:u=>{let{className:e,children:D,...t}=u;return e&&e.includes("language-")?(0,F.jsx)("code",{className:e,...t,children:D}):(0,F.jsx)("code",{className:"bg-gray-100 text-gray-800 px-1.5 py-0.5 rounded text-sm font-mono",...t,children:D})},pre:u=>{let{children:e}=u;return(0,F.jsx)(B.Ck,{children:(0,F.jsx)("pre",{className:"overflow-x-auto",children:e})})},table:u=>{let{children:e}=u;return(0,F.jsx)("div",{className:"overflow-x-auto",children:(0,F.jsx)("table",{className:"border-collapse border border-gray-300",children:e})})},th:u=>{let{children:e}=u;return(0,F.jsx)("th",{className:"border border-gray-300 bg-gray-100 px-4 py-2 text-left font-semibold",children:e})},td:u=>{let{children:e}=u;return(0,F.jsx)("td",{className:"border border-gray-300 px-4 py-2",children:e})},blockquote:u=>{let{children:e}=u;return(0,F.jsx)("blockquote",{className:"border-l-4 border-gray-300 pl-4 italic text-gray-700",children:e})}},children:g.content})}),P&&(0,F.jsx)("aside",{className:"hidden lg:block lg:w-64 lg:flex-shrink-0",children:(0,F.jsx)("div",{className:"lg:sticky",style:{top:"".concat(65,"px")},children:(0,F.jsx)(A.K,{entries:S,title:h("toc.title"),headerOffset:57})})})]}):(0,F.jsx)("pre",{className:"bg-gray-50 border border-gray-200 rounded-md p-4 overflow-x-auto text-sm",children:(0,F.jsx)("code",{className:"language-".concat(g.extension),children:g.content})})})]})]})]})}},92254:(u,e,D)=>{"use strict";D.d(e,{A:()=>n});var F=D(21286),t=D(95139);let r={},s=new F.A;function n(u){let e=(u||r).prefix||"";return function(u){s.reset(),(0,t.YR)(u,"element",function(u){(function(u){let e="element"===u.type?u.tagName.toLowerCase():"",D=2===e.length&&104===e.charCodeAt(0)?e.charCodeAt(1):0;return D>48&&D<55?D-48:void 0})(u)&&!u.properties.id&&(u.properties.id=e+s.slug("children"in u?function u(e){let D=-1,F=[];for(;++D<e.children.length;){var t;F[D]="text"===(t=e.children[D]).type?t.value:"children"in t?u(t):""}return F.join("")}(u):"value"in u?u.value:""))})}}}},u=>{u.O(0,[6809,4909,2770,8566,2069,6402,744,8441,1255,7358],()=>u(u.s=32366)),_N_E=u.O()}]);
|