commandmate 0.2.1 → 0.2.3

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.
Files changed (164) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/app-build-manifest.json +47 -51
  3. package/.next/app-path-routes-manifest.json +1 -1
  4. package/.next/build-manifest.json +7 -7
  5. package/.next/cache/.tsbuildinfo +1 -1
  6. package/.next/cache/config.json +3 -3
  7. package/.next/cache/webpack/client-production/0.pack +0 -0
  8. package/.next/cache/webpack/client-production/1.pack +0 -0
  9. package/.next/cache/webpack/client-production/2.pack +0 -0
  10. package/.next/cache/webpack/client-production/index.pack +0 -0
  11. package/.next/cache/webpack/client-production/index.pack.old +0 -0
  12. package/.next/cache/webpack/edge-server-production/index.pack +0 -0
  13. package/.next/cache/webpack/server-production/0.pack +0 -0
  14. package/.next/cache/webpack/server-production/index.pack +0 -0
  15. package/.next/next-server.js.nft.json +1 -1
  16. package/.next/prerender-manifest.json +1 -1
  17. package/.next/required-server-files.json +1 -1
  18. package/.next/routes-manifest.json +1 -1
  19. package/.next/server/app/_not-found/page.js +1 -1
  20. package/.next/server/app/_not-found/page.js.nft.json +1 -1
  21. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  22. package/.next/server/app/api/external-apps/[id]/health/route.js.nft.json +1 -1
  23. package/.next/server/app/api/external-apps/[id]/route.js.nft.json +1 -1
  24. package/.next/server/app/api/external-apps/route.js.nft.json +1 -1
  25. package/.next/server/app/api/hooks/claude-done/route.js.nft.json +1 -1
  26. package/.next/server/app/api/repositories/clone/[jobId]/route.js.nft.json +1 -1
  27. package/.next/server/app/api/repositories/clone/route.js.nft.json +1 -1
  28. package/.next/server/app/api/repositories/excluded/route.js.nft.json +1 -1
  29. package/.next/server/app/api/repositories/restore/route.js.nft.json +1 -1
  30. package/.next/server/app/api/repositories/route.js +1 -1
  31. package/.next/server/app/api/repositories/route.js.nft.json +1 -1
  32. package/.next/server/app/api/repositories/scan/route.js.nft.json +1 -1
  33. package/.next/server/app/api/repositories/sync/route.js.nft.json +1 -1
  34. package/.next/server/app/api/worktrees/[id]/auto-yes/route.js +1 -1
  35. package/.next/server/app/api/worktrees/[id]/auto-yes/route.js.nft.json +1 -1
  36. package/.next/server/app/api/worktrees/[id]/cli-tool/route.js.nft.json +1 -1
  37. package/.next/server/app/api/worktrees/[id]/current-output/route.js +1 -1
  38. package/.next/server/app/api/worktrees/[id]/current-output/route.js.nft.json +1 -1
  39. package/.next/server/app/api/worktrees/[id]/files/[...path]/route.js.nft.json +1 -1
  40. package/.next/server/app/api/worktrees/[id]/interrupt/route.js.nft.json +1 -1
  41. package/.next/server/app/api/worktrees/[id]/kill-session/route.js.nft.json +1 -1
  42. package/.next/server/app/api/worktrees/[id]/logs/[filename]/route.js +1 -1
  43. package/.next/server/app/api/worktrees/[id]/logs/[filename]/route.js.nft.json +1 -1
  44. package/.next/server/app/api/worktrees/[id]/logs/route.js +4 -4
  45. package/.next/server/app/api/worktrees/[id]/logs/route.js.nft.json +1 -1
  46. package/.next/server/app/api/worktrees/[id]/memos/[memoId]/route.js.nft.json +1 -1
  47. package/.next/server/app/api/worktrees/[id]/memos/route.js.nft.json +1 -1
  48. package/.next/server/app/api/worktrees/[id]/messages/route.js.nft.json +1 -1
  49. package/.next/server/app/api/worktrees/[id]/prompt-response/route.js.nft.json +1 -1
  50. package/.next/server/app/api/worktrees/[id]/respond/route.js.nft.json +1 -1
  51. package/.next/server/app/api/worktrees/[id]/route.js +1 -1
  52. package/.next/server/app/api/worktrees/[id]/route.js.nft.json +1 -1
  53. package/.next/server/app/api/worktrees/[id]/search/route.js.nft.json +1 -1
  54. package/.next/server/app/api/worktrees/[id]/send/route.js.nft.json +1 -1
  55. package/.next/server/app/api/worktrees/[id]/slash-commands/route.js.nft.json +1 -1
  56. package/.next/server/app/api/worktrees/[id]/start-polling/route.js.nft.json +1 -1
  57. package/.next/server/app/api/worktrees/[id]/tree/[...path]/route.js.nft.json +1 -1
  58. package/.next/server/app/api/worktrees/[id]/tree/route.js.nft.json +1 -1
  59. package/.next/server/app/api/worktrees/[id]/upload/[...path]/route.js.nft.json +1 -1
  60. package/.next/server/app/api/worktrees/[id]/viewed/route.js.nft.json +1 -1
  61. package/.next/server/app/api/worktrees/route.js +1 -1
  62. package/.next/server/app/api/worktrees/route.js.nft.json +1 -1
  63. package/.next/server/app/page.js +2 -4
  64. package/.next/server/app/page.js.nft.json +1 -1
  65. package/.next/server/app/page_client-reference-manifest.js +1 -1
  66. package/.next/server/app/proxy/[...path]/route.js.nft.json +1 -1
  67. package/.next/server/app/worktrees/[id]/files/[...path]/page.js +1 -1
  68. package/.next/server/app/worktrees/[id]/files/[...path]/page.js.nft.json +1 -1
  69. package/.next/server/app/worktrees/[id]/files/[...path]/page_client-reference-manifest.js +1 -1
  70. package/.next/server/app/worktrees/[id]/page.js +3 -15
  71. package/.next/server/app/worktrees/[id]/page.js.nft.json +1 -1
  72. package/.next/server/app/worktrees/[id]/page_client-reference-manifest.js +1 -1
  73. package/.next/server/app/worktrees/[id]/terminal/page.js +3 -3
  74. package/.next/server/app/worktrees/[id]/terminal/page.js.nft.json +1 -1
  75. package/.next/server/app/worktrees/[id]/terminal/page_client-reference-manifest.js +1 -1
  76. package/.next/server/app-paths-manifest.json +7 -8
  77. package/.next/server/chunks/1287.js +4 -0
  78. package/.next/server/chunks/2683.js +1 -0
  79. package/.next/server/chunks/3348.js +1 -0
  80. package/.next/server/chunks/369.js +1 -0
  81. package/.next/server/chunks/3860.js +1 -0
  82. package/.next/server/chunks/4559.js +1 -0
  83. package/.next/server/chunks/4704.js +35 -0
  84. package/.next/server/chunks/5781.js +1 -0
  85. package/.next/server/chunks/5823.js +1 -0
  86. package/.next/server/chunks/5853.js +1 -0
  87. package/.next/server/chunks/6837.js +1 -0
  88. package/.next/server/chunks/7266.js +1 -0
  89. package/.next/server/chunks/7458.js +1 -0
  90. package/.next/server/chunks/7536.js +1 -1
  91. package/.next/server/chunks/8705.js +1 -0
  92. package/.next/server/chunks/8744.js +1 -0
  93. package/.next/server/chunks/9367.js +2 -2
  94. package/.next/server/chunks/9582.js +1 -0
  95. package/.next/server/functions-config-manifest.json +1 -1
  96. package/.next/server/middleware-build-manifest.js +1 -1
  97. package/.next/server/pages/500.html +1 -1
  98. package/.next/server/pages-manifest.json +1 -1
  99. package/.next/server/server-reference-manifest.json +1 -1
  100. package/.next/static/chunks/1038-3509435b68c0967e.js +1 -0
  101. package/.next/static/chunks/216-f18f4a9d8b04a91e.js +1 -0
  102. package/.next/static/chunks/2330-0299b9879f4977d2.js +1 -0
  103. package/.next/static/chunks/4733-db0112b08802aaa7.js +1 -0
  104. package/.next/static/chunks/6140-389f1951062dcf4f.js +1 -0
  105. package/.next/static/chunks/{816-c254f4e2406e696a.js → 816-bb41b20a51ae924a.js} +1 -1
  106. package/.next/static/chunks/8216-00e20326f32abd12.js +1 -0
  107. package/.next/static/chunks/9234-b0304101384ca079.js +3 -0
  108. package/.next/static/chunks/app/layout-07755491d5d57242.js +1 -0
  109. package/.next/static/chunks/app/page-792c0577dc44e5e5.js +1 -0
  110. package/.next/static/chunks/app/worktrees/[id]/files/[...path]/page-ce9ac3658f2b7d91.js +1 -0
  111. package/.next/static/chunks/app/worktrees/[id]/page-9d77c6f755d08086.js +1 -0
  112. package/.next/static/chunks/app/worktrees/[id]/terminal/page-5d85a7e508ce36d3.js +1 -0
  113. package/.next/static/chunks/{webpack-4f85dcef6279c6ee.js → webpack-e6531fcf859d9451.js} +1 -1
  114. package/.next/static/css/4eca30cb81bc52b4.css +3 -0
  115. package/.next/trace +5 -5
  116. package/README.md +84 -82
  117. package/dist/server/src/config/auto-yes-config.js +53 -0
  118. package/dist/server/src/config/log-config.js +41 -0
  119. package/dist/server/src/lib/auto-yes-manager.js +6 -4
  120. package/dist/server/src/lib/claude-session.js +6 -0
  121. package/dist/server/src/lib/cli-patterns.js +41 -1
  122. package/dist/server/src/lib/cli-tools/codex.js +16 -3
  123. package/dist/server/src/lib/cli-tools/manager.js +0 -6
  124. package/dist/server/src/lib/log-manager.js +2 -6
  125. package/dist/server/src/lib/pasted-text-helper.js +58 -0
  126. package/dist/server/src/lib/prompt-detector.js +80 -23
  127. package/dist/server/src/lib/response-poller.js +30 -43
  128. package/package.json +2 -1
  129. package/.next/server/app/_not-found.html +0 -1
  130. package/.next/server/app/_not-found.meta +0 -6
  131. package/.next/server/app/_not-found.rsc +0 -10
  132. package/.next/server/app/index.html +0 -9
  133. package/.next/server/app/index.meta +0 -5
  134. package/.next/server/app/index.rsc +0 -8
  135. package/.next/server/app/worktrees/[id]/simple-terminal/page.js +0 -4
  136. package/.next/server/app/worktrees/[id]/simple-terminal/page.js.nft.json +0 -1
  137. package/.next/server/app/worktrees/[id]/simple-terminal/page_client-reference-manifest.js +0 -1
  138. package/.next/server/chunks/3053.js +0 -1
  139. package/.next/server/chunks/434.js +0 -1
  140. package/.next/server/chunks/4471.js +0 -2
  141. package/.next/server/chunks/6550.js +0 -1
  142. package/.next/server/chunks/8174.js +0 -23
  143. package/.next/server/chunks/8887.js +0 -1
  144. package/.next/server/pages/404.html +0 -1
  145. package/.next/static/chunks/2957-327e43ef4c12808f.js +0 -1
  146. package/.next/static/chunks/4343-ebe884a2a80eb033.js +0 -1
  147. package/.next/static/chunks/4851-45df4d388db5623f.js +0 -1
  148. package/.next/static/chunks/6568-38a33aa67d82e12b.js +0 -1
  149. package/.next/static/chunks/6725-f7607851b7d57eb1.js +0 -1
  150. package/.next/static/chunks/7648-325564a6e12a3257.js +0 -1
  151. package/.next/static/chunks/app/layout-4804cfba519283cf.js +0 -1
  152. package/.next/static/chunks/app/page-3926224c4cdf315b.js +0 -1
  153. package/.next/static/chunks/app/worktrees/[id]/files/[...path]/page-9e5adf57cbbbdf05.js +0 -1
  154. package/.next/static/chunks/app/worktrees/[id]/page-8bd88bdc29607413.js +0 -1
  155. package/.next/static/chunks/app/worktrees/[id]/simple-terminal/page-16feb3e86e42f4d1.js +0 -1
  156. package/.next/static/chunks/app/worktrees/[id]/terminal/page-be802baffc84dbd2.js +0 -1
  157. package/.next/static/css/28be35e4727ae7ef.css +0 -3
  158. package/.next/types/app/worktrees/[id]/simple-terminal/page.ts +0 -79
  159. package/dist/server/src/lib/claude-poller.js +0 -341
  160. /package/.next/static/chunks/{2117-d845c2cd62e344a6.js → 2117-e31fa477cb500950.js} +0 -0
  161. /package/.next/static/chunks/app/_not-found/{page-a9d04e58c81115ec.js → page-ac4e4463b39d0cf7.js} +0 -0
  162. /package/.next/static/chunks/{fd9d1056-bbe86e4ae099d5cd.js → fd9d1056-cfdf4f91f13d3485.js} +0 -0
  163. /package/.next/static/{oUD-A998xeBoez6zsrTH3 → rppRTm2sRWa4sZE7ili8A}/_buildManifest.js +0 -0
  164. /package/.next/static/{oUD-A998xeBoez6zsrTH3 → rppRTm2sRWa4sZE7ili8A}/_ssgManifest.js +0 -0
@@ -1,23 +0,0 @@
1
- "use strict";exports.id=8174,exports.ids=[8174],exports.modules={75076:(e,t,a)=>{a.d(t,{Vw:()=>j});var s=a(10326),r=a(17577);a(90434);var l=a(87403),n=a(2982),i=a(35047),o=a(3885),c=a(61421);function d({status:e,label:t}){let a=c.F4[e],r=`${t}: ${a.label}`;return"spinner"===a.type?s.jsx("span",{className:`w-2 h-2 rounded-full flex-shrink-0 border-2 border-t-transparent animate-spin ${a.className}`,title:r,"aria-label":r}):s.jsx("span",{className:`w-2 h-2 rounded-full flex-shrink-0 ${a.className}`,title:r,"aria-label":r})}let u=(0,r.memo)(function({branch:e,isSelected:t,onClick:a}){return(0,s.jsxs)("button",{"data-testid":"branch-list-item",onClick:a,"aria-current":t?"true":void 0,className:`
2
- w-full px-4 py-3 flex flex-col gap-1
3
- hover:bg-gray-800 transition-colors
4
- focus:outline-none focus:ring-2 focus:ring-inset focus:ring-blue-500
5
- ${t?"bg-gray-700 border-l-2 border-blue-500":"border-l-2 border-transparent"}
6
- `,children:[(0,s.jsxs)("div",{className:"flex items-center gap-3 w-full",children:[e.cliStatus&&(0,s.jsxs)("div",{className:"flex items-center gap-1 flex-shrink-0","aria-label":"CLI tool status",children:[s.jsx(d,{status:e.cliStatus.claude,label:"Claude"}),s.jsx(d,{status:e.cliStatus.codex,label:"Codex"})]}),(0,s.jsxs)("div",{className:"flex-1 min-w-0 text-left",children:[s.jsx("p",{className:"text-sm font-medium text-white truncate",children:e.name}),s.jsx("p",{className:"text-xs text-gray-400 truncate",children:e.repositoryName})]}),e.hasUnread&&s.jsx("span",{"data-testid":"unread-indicator",className:"w-2 h-2 rounded-full bg-blue-500 flex-shrink-0","aria-label":"Has unread messages"})]}),e.description&&s.jsx("div",{"data-testid":"branch-description",className:"pl-6 pr-2 mt-1 text-left",children:s.jsx("p",{className:"text-xs text-gray-400 line-clamp-2",children:e.description})})]})}),m=[{key:"updatedAt",label:"Updated"},{key:"repositoryName",label:"Repository"},{key:"branchName",label:"Branch"},{key:"status",label:"Status"}],x=(0,r.memo)(function(){let{sortKey:e,sortDirection:t,setSortKey:a,setSortDirection:n}=(0,l.Sz)(),[i,o]=(0,r.useState)(!1),c=(0,r.useRef)(null);(0,r.useEffect)(()=>{function e(e){c.current&&!c.current.contains(e.target)&&o(!1)}if(i)return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)},[i]),(0,r.useEffect)(()=>{function e(e){"Escape"===e.key&&o(!1)}if(i)return document.addEventListener("keydown",e),()=>document.removeEventListener("keydown",e)},[i]);let d=(0,r.useCallback)(()=>{o(e=>!e)},[]),u=(0,r.useCallback)(s=>{s===e?n("asc"===t?"desc":"asc"):(a(s),n("updatedAt"===s?"desc":"asc")),o(!1)},[e,t,a,n]),x=(0,r.useCallback)(()=>{n("asc"===t?"desc":"asc")},[t,n]),g=m.find(t=>t.key===e)?.label||"Sort";return(0,s.jsxs)("div",{ref:c,className:"relative","data-testid":"sort-selector",children:[(0,s.jsxs)("div",{className:"flex items-center gap-1",children:[(0,s.jsxs)("button",{type:"button",onClick:d,"aria-expanded":i,"aria-haspopup":"listbox","aria-label":`Sort by ${g}`,className:" flex items-center gap-1 px-2 py-1 rounded text-xs text-gray-300 hover:text-white hover:bg-gray-700 focus:outline-none focus:ring-2 focus:ring-blue-500 transition-colors ",children:[s.jsx(p,{className:"w-3 h-3"}),s.jsx("span",{className:"hidden sm:inline",children:g})]}),s.jsx("button",{type:"button",onClick:x,"aria-label":"asc"===t?"Sort ascending":"Sort descending",className:" p-1 rounded text-gray-300 hover:text-white hover:bg-gray-700 focus:outline-none focus:ring-2 focus:ring-blue-500 transition-colors ",children:"asc"===t?s.jsx(h,{className:"w-3 h-3"}):s.jsx(b,{className:"w-3 h-3"})})]}),i&&s.jsx("div",{role:"listbox","aria-label":"Sort options",className:" absolute right-0 top-full mt-1 z-50 min-w-[140px] py-1 rounded-md shadow-lg bg-gray-800 border border-gray-600 ",children:m.map(a=>(0,s.jsxs)("button",{type:"button",role:"option","aria-selected":e===a.key,onClick:()=>u(a.key),className:`
7
- w-full px-3 py-2 text-left text-sm
8
- flex items-center justify-between
9
- hover:bg-gray-700 transition-colors
10
- ${e===a.key?"text-blue-400":"text-gray-300"}
11
- `,children:[s.jsx("span",{children:a.label}),e===a.key&&s.jsx("span",{className:"text-xs",children:"asc"===t?"ASC":"DESC"})]},a.key))})]})});function p({className:e}){return s.jsx("svg",{className:e,fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2,children:s.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M3 4h13M3 8h9m-9 4h6m4 0l4-4m0 0l4 4m-4-4v12"})})}function h({className:e}){return s.jsx("svg",{className:e,fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2,children:s.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M5 15l7-7 7 7"})})}function b({className:e}){return s.jsx("svg",{className:e,fill:"none",viewBox:"0 0 24 24",stroke:"currentColor",strokeWidth:2,children:s.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M19 9l-7 7-7-7"})})}var g=a(18421);let f={waiting:0,ready:1,running:2,generating:3,idle:4},y=(0,r.memo)(function(){let e=(0,i.useRouter)(),{worktrees:t,selectedWorktreeId:a,selectWorktree:n}=(0,o.Mu)(),{closeMobileDrawer:c,sortKey:d,sortDirection:m}=(0,l.Sz)(),[p,h]=(0,r.useState)(""),b=(0,r.useMemo)(()=>{let e=t.map(g.I_),a=e;if(p.trim()){let t=p.toLowerCase();a=e.filter(e=>e.name.toLowerCase().includes(t)||e.repositoryName.toLowerCase().includes(t))}return function(e,t,a){let s=[...e];return s.sort((e,s)=>{let r=0;switch(t){case"updatedAt":{let t=e=>e?e instanceof Date?e.getTime():new Date(e).getTime():0,a=t(e.lastActivity);r=t(s.lastActivity)-a;break}case"repositoryName":{let t=e.repositoryName.toLowerCase(),a=s.repositoryName.toLowerCase();r=t.localeCompare(a);break}case"branchName":{let t=e.name.toLowerCase(),a=s.name.toLowerCase();r=t.localeCompare(a);break}case"status":r=f[e.status]-f[s.status]}return("updatedAt"===t?"desc"===a:"asc"===a)?r:-r}),s}(a,d,m)},[t,p,d,m]),y=t=>{n(t),e.push(`/worktrees/${t}`),c()};return(0,s.jsxs)("nav",{"data-testid":"sidebar","aria-label":"Branch navigation",className:"h-full flex flex-col bg-gray-900 text-white",role:"navigation",children:[s.jsx("div",{"data-testid":"sidebar-header",className:"flex-shrink-0 px-4 py-4 border-b border-gray-700",children:(0,s.jsxs)("div",{className:"flex items-center justify-between",children:[s.jsx("h2",{className:"text-lg font-semibold text-white",children:"Branches"}),s.jsx(x,{})]})}),s.jsx("div",{className:"flex-shrink-0 px-4 py-3 border-b border-gray-700",children:s.jsx("input",{type:"text",placeholder:"Search branches...",value:p,onChange:e=>h(e.target.value),className:" w-full px-3 py-2 rounded-md bg-gray-800 text-white placeholder-gray-400 border border-gray-600 focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent "})}),s.jsx("div",{"data-testid":"branch-list",className:"flex-1 overflow-y-auto",children:0===b.length?s.jsx("div",{className:"px-4 py-8 text-center text-gray-400",children:p?"No branches found":"No branches available"}):b.map(e=>s.jsx(u,{branch:e,isSelected:e.id===a,onClick:()=>y(e.id)},e.id))})]})});var w=a(22202);let v="transform transition-transform duration-300 ease-out",j=(0,r.memo)(function({children:e}){let{isOpen:t,isMobileDrawerOpen:a,closeMobileDrawer:r}=(0,l.Sz)();return(0,n.d)()?(0,s.jsxs)("div",{"data-testid":"app-shell",className:"h-screen flex flex-col",children:[a&&s.jsx("div",{"data-testid":"drawer-overlay",className:"fixed inset-0 bg-black/50 z-40",onClick:r,"aria-hidden":"true"}),s.jsx("aside",{"data-testid":"sidebar-container",className:`
12
- fixed left-0 top-0 h-full w-72 z-50
13
- ${v}
14
- ${a?"translate-x-0":"-translate-x-full"}
15
- `,role:"complementary",children:s.jsx(y,{})}),s.jsx("main",{className:"flex-1 min-h-0 overflow-hidden",role:"main",children:e})]}):(0,s.jsxs)("div",{"data-testid":"app-shell",className:"h-screen flex",children:[s.jsx("aside",{"data-testid":"sidebar-container",className:`
16
- fixed left-0 top-0 h-full w-72
17
- ${v}
18
- ${t?"translate-x-0":"-translate-x-full"}
19
- `,style:{zIndex:w.k.SIDEBAR},role:"complementary","aria-hidden":!t,children:s.jsx(y,{})}),s.jsx("main",{className:`
20
- flex-1 min-w-0 h-full overflow-hidden
21
- transition-[padding] duration-300 ease-out
22
- ${t?"md:pl-72":"md:pl-0"}
23
- `,role:"main",children:e})]})})},28676:(e,t,a)=>{a.d(t,{u:()=>l});var s=a(10326),r=a(17577);function l({isOpen:e,onClose:t,title:a,children:l,size:n="lg",showCloseButton:i=!0,disableClose:o=!1}){let c=(0,r.useRef)(null);return e?(0,s.jsxs)("div",{className:"fixed inset-0 z-50 overflow-y-auto",children:[s.jsx("div",{className:"fixed inset-0 bg-black bg-opacity-50 transition-opacity",onClick:o?void 0:t}),s.jsx("div",{className:"flex min-h-full items-center justify-center p-2 sm:p-4",children:(0,s.jsxs)("div",{ref:c,className:`relative w-full ${{sm:"max-w-[calc(100vw-2rem)] sm:max-w-md",md:"max-w-[calc(100vw-2rem)] sm:max-w-2xl",lg:"max-w-[calc(100vw-2rem)] sm:max-w-4xl",xl:"max-w-[calc(100vw-2rem)] sm:max-w-6xl",full:"max-w-[calc(100vw-2rem)] sm:max-w-[95vw]"}[n]} bg-white rounded-lg shadow-xl transform transition-all`,children:[(a||i)&&(0,s.jsxs)("div",{className:"flex items-center justify-between px-4 sm:px-6 py-3 sm:py-4 border-b border-gray-200",children:[s.jsx("h3",{className:"text-base sm:text-lg font-semibold text-gray-900 truncate pr-2",children:a}),i&&s.jsx("button",{onClick:t,className:"text-gray-400 hover:text-gray-600 transition-colors flex-shrink-0",children:s.jsx("svg",{className:"w-5 h-5 sm:w-6 sm:h-6",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:s.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M6 18L18 6M6 6l12 12"})})})]}),s.jsx("div",{className:"px-4 sm:px-6 py-3 sm:py-4",children:l})]})})]}):null}},77758:(e,t,a)=>{a.d(t,{Ct:()=>c,zx:()=>r,Zb:()=>l,aY:()=>o,Ol:()=>n,ll:()=>i,u_:()=>d.u});var s=a(10326);function r({variant:e="primary",size:t="md",fullWidth:a=!1,loading:r=!1,disabled:l,className:n="",children:i,...o}){let c=["btn",{primary:"btn-primary",secondary:"btn-secondary",danger:"btn-danger",ghost:"bg-transparent text-gray-700 hover:bg-gray-100 focus:ring-gray-500"}[e],{sm:"btn-sm",md:"",lg:"btn-lg"}[t],a?"w-full":"",l||r?"opacity-50 cursor-not-allowed":"",n].filter(Boolean).join(" ");return(0,s.jsxs)("button",{className:c,disabled:l||r,...o,children:[r&&(0,s.jsxs)("svg",{className:"animate-spin -ml-1 mr-2 h-4 w-4",xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",children:[s.jsx("circle",{className:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"4"}),s.jsx("path",{className:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"})]}),i]})}function l({hover:e=!1,padding:t="md",className:a="",children:r,...l}){let n=["card",e?"card-hover":"",{none:"",sm:"p-3",md:"p-4",lg:"p-6"}[t],a].filter(Boolean).join(" ");return s.jsx("div",{className:n,...l,children:r})}function n({className:e="",children:t,...a}){return s.jsx("div",{className:`mb-3 ${e}`,...a,children:t})}function i({className:e="",children:t,...a}){return s.jsx("h3",{className:`text-lg font-semibold text-gray-900 ${e}`,...a,children:t})}function o({className:e="",children:t,...a}){return s.jsx("div",{className:e,...a,children:t})}function c({variant:e="gray",dot:t=!1,className:a="",children:r,...l}){let n=["badge",{success:"badge-success",warning:"badge-warning",error:"badge-error",info:"badge-info",gray:"badge-gray"}[e],a].filter(Boolean).join(" ");return(0,s.jsxs)("span",{className:n,...l,children:[t&&s.jsx("span",{className:`mr-1.5 inline-block h-2 w-2 rounded-full ${{success:"bg-green-600",warning:"bg-yellow-600",error:"bg-red-600",info:"bg-blue-600",gray:"bg-gray-600"}[e]}`,"aria-hidden":"true"}),r]})}a(17577);var d=a(28676)},15470:(e,t,a)=>{a.d(t,{R:()=>m});var s=a(10326),r=a(17577),l=a(73002);function n(e,t){if(!t.trim())return e;let a=t.toLowerCase();return e.map(e=>({...e,commands:e.commands.filter(e=>{let t=e.name.toLowerCase().includes(a),s=e.description.toLowerCase().includes(a);return t||s})})).filter(e=>e.commands.length>0)}function i({groups:e,onSelect:t,highlightedIndex:a=-1,className:r=""}){let l=0;return 0===e.length?s.jsx("div",{className:`text-sm text-gray-500 p-4 text-center ${r}`,children:"No commands available"}):s.jsx("div",{className:`overflow-y-auto ${r}`,children:e.map(e=>(0,s.jsxs)("div",{className:"mb-2",children:[s.jsx("div",{className:"px-3 py-1.5 text-xs font-semibold text-gray-500 uppercase tracking-wider bg-gray-50",children:e.label}),s.jsx("div",{children:e.commands.map(e=>{let r=l;l++;let n=r===a;return(0,s.jsxs)("button",{type:"button","data-command-item":!0,"data-highlighted":n,onClick:()=>t(e),className:`w-full px-3 py-2 text-left flex items-start gap-2 hover:bg-blue-50 transition-colors ${n?"bg-blue-100":""}`,children:[(0,s.jsxs)("span",{className:"text-blue-600 font-mono text-sm flex-shrink-0",children:["/",e.name]}),s.jsx("span",{className:"text-gray-600 text-sm truncate",children:e.description})]},e.name)})})]},e.category))})}function o({isOpen:e,groups:t,onSelect:a,onClose:l,isMobile:o=!1,position:c,onFreeInput:d}){let[u,m]=(0,r.useState)(""),[x,p]=(0,r.useState)(0),h=(0,r.useRef)(null),b=(0,r.useMemo)(()=>n(t,u),[t,u]),g=(0,r.useMemo)(()=>b.flatMap(e=>e.commands),[b]),f=(0,r.useCallback)(e=>{a(e),l()},[a,l]);return((0,r.useCallback)(t=>{if(e)switch(t.key){case"Escape":t.preventDefault(),l();break;case"ArrowDown":t.preventDefault(),p(e=>Math.min(e+1,g.length-1));break;case"ArrowUp":t.preventDefault(),p(e=>Math.max(e-1,0));break;case"Enter":t.preventDefault(),g[x]&&f(g[x])}},[e,g,x,l,f]),e)?o?(0,s.jsxs)(s.Fragment,{children:[s.jsx("div",{className:"fixed inset-0 bg-black/50 z-40",onClick:l,"aria-hidden":"true"}),(0,s.jsxs)("div",{"data-testid":"slash-command-bottom-sheet",className:"fixed bottom-0 left-0 right-0 bg-white rounded-t-xl z-50 max-h-[70vh] flex flex-col shadow-xl",children:[(0,s.jsxs)("div",{className:"flex items-center justify-between px-4 py-3 border-b border-gray-200",children:[s.jsx("h2",{className:"text-lg font-semibold",children:"Commands"}),s.jsx("button",{type:"button",onClick:l,"aria-label":"Close",className:"p-2 rounded-full hover:bg-gray-100",children:s.jsx("svg",{className:"w-5 h-5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:s.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M6 18L18 6M6 6l12 12"})})})]}),s.jsx("div",{className:"px-4 py-2 border-b border-gray-100",children:s.jsx("input",{ref:h,type:"text",value:u,onChange:e=>m(e.target.value),placeholder:"Search commands...",className:"w-full px-3 py-2 border border-gray-300 rounded-lg focus:outline-none focus:ring-2 focus:ring-blue-500"})}),d&&(0,s.jsxs)("button",{type:"button","data-testid":"free-input-button",onClick:d,className:"w-full px-4 py-3 text-left border-b border-gray-100 flex items-center gap-2 hover:bg-blue-50 transition-colors",children:[s.jsx("span",{className:"text-blue-600",children:s.jsx("svg",{className:"w-5 h-5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:s.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M11 5H6a2 2 0 00-2 2v11a2 2 0 002 2h11a2 2 0 002-2v-5m-1.414-9.414a2 2 0 112.828 2.828L11.828 15H9v-2.828l8.586-8.586z"})})}),s.jsx("span",{className:"text-gray-600",children:"Enter custom command..."})]}),s.jsx(i,{groups:b,onSelect:f,highlightedIndex:x,className:"flex-1 overflow-y-auto pb-20"})]})]}):(0,s.jsxs)("div",{role:"listbox",className:"absolute bg-white border border-gray-200 rounded-lg shadow-lg z-50 w-80 max-h-96 flex flex-col",style:c?{top:c.top,left:c.left}:{bottom:"100%",left:0,marginBottom:"4px"},children:[s.jsx("div",{className:"px-3 py-2 border-b border-gray-100",children:s.jsx("input",{ref:h,type:"text",value:u,onChange:e=>m(e.target.value),placeholder:"Search commands...",className:"w-full px-3 py-1.5 text-sm border border-gray-300 rounded focus:outline-none focus:ring-1 focus:ring-blue-500"})}),d&&(0,s.jsxs)("button",{type:"button","data-testid":"free-input-button",onClick:d,className:"w-full px-3 py-2 text-left border-b border-gray-100 flex items-center gap-2 hover:bg-blue-50 transition-colors text-sm",children:[s.jsx("span",{className:"text-blue-600",children:s.jsx("svg",{className:"w-4 h-4",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:s.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M11 5H6a2 2 0 00-2 2v11a2 2 0 002 2h11a2 2 0 002-2v-5m-1.414-9.414a2 2 0 112.828 2.828L11.828 15H9v-2.828l8.586-8.586z"})})}),s.jsx("span",{className:"text-gray-600",children:"Enter custom command..."})]}),s.jsx(i,{groups:b,onSelect:f,highlightedIndex:x,className:"flex-1 overflow-y-auto"}),(0,s.jsxs)("div",{className:"px-3 py-1.5 border-t border-gray-100 text-xs text-gray-400 flex gap-3",children:[(0,s.jsxs)("span",{children:[s.jsx("kbd",{className:"px-1 py-0.5 bg-gray-100 rounded",children:"Enter"})," select"]}),(0,s.jsxs)("span",{children:[s.jsx("kbd",{className:"px-1 py-0.5 bg-gray-100 rounded",children:"Esc"})," close"]})]})]}):null}function c({worktreeId:e,cliToolId:t,disabled:a=!1,onInterrupt:l}){let[n,i]=(0,r.useState)(!1),o=(0,r.useRef)(0),c=(0,r.useCallback)(async()=>{let a=Date.now();if(!(a-o.current<1e3)){o.current=a,i(!0);try{let a=await fetch(`/api/worktrees/${e}/interrupt`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cliToolId:t})});if(a.ok)l?.();else{let e=await a.json().catch(()=>({}));console.error("[InterruptButton] Failed to send interrupt:",e.error||a.statusText)}}catch(e){console.error("[InterruptButton] Error sending interrupt:",e)}finally{i(!1)}}},[e,t,l]);return s.jsx("button",{type:"button",onClick:c,disabled:a||n,className:"flex-shrink-0 p-2 text-orange-600 hover:bg-orange-50 rounded-full transition-colors disabled:text-gray-300 disabled:hover:bg-transparent","aria-label":"Stop processing","data-testid":"interrupt-button",children:n?(0,s.jsxs)("svg",{className:"animate-spin h-5 w-5",xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",children:[s.jsx("circle",{className:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"4"}),s.jsx("path",{className:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"})]}):s.jsx(d,{})})}function d(){return s.jsx("svg",{className:"h-5 w-5",fill:"currentColor",viewBox:"0 0 24 24",children:s.jsx("rect",{x:"6",y:"6",width:"12",height:"12",rx:"2"})})}var u=a(2982);function m({worktreeId:e,onMessageSent:t,cliToolId:a,isSessionRunning:i=!1}){let[d,m]=(0,r.useState)(""),[x,p]=(0,r.useState)(!1),[h,b]=(0,r.useState)(null),[g,f]=(0,r.useState)(!1),[y,w]=(0,r.useState)(!1),v=(0,r.useRef)(null),j=(0,r.useRef)(null),N=(0,r.useRef)(!1),k=(0,r.useRef)(null),C=(0,u.d)(),{groups:S}=function(e,t){let[a,s]=(0,r.useState)([]),[i,o]=(0,r.useState)(!0),[c,d]=(0,r.useState)(null),[u,m]=(0,r.useState)(""),[x,p]=(0,r.useState)(t||"claude"),h=(0,r.useCallback)(async()=>{try{o(!0),d(null);let a=e?`/api/worktrees/${e}/slash-commands`:"/api/slash-commands";t&&(a+=`?cliTool=${t}`);let r=await fetch(a);if(!r.ok)throw Error(`HTTP error ${r.status}`);let l=await r.json();s(l.groups),p(l.cliTool||t||"claude")}catch(e){d((0,l.zG)(e)),s([])}finally{o(!1)}},[e,t]),b=(0,r.useMemo)(()=>a.flatMap(e=>e.commands),[a]),g=(0,r.useMemo)(()=>n(a,u),[a,u]);return{groups:a,filteredGroups:g,allCommands:b,loading:i,error:c,filter:u,setFilter:m,refresh:(0,r.useCallback)(()=>{h()},[h]),cliTool:x}}(e,a),L=async()=>{if(!g&&d.trim()&&!x)try{p(!0),b(null);let s=a||"claude";await l.Iv.sendMessage(e,d.trim(),s),m(""),t?.(s)}catch(e){b((0,l.zG)(e))}finally{p(!1)}},M=async e=>{e.preventDefault(),await L()},E=()=>{w(!1),v.current?.focus()};return(0,s.jsxs)("div",{ref:k,className:"space-y-2 relative",children:[h&&s.jsx("div",{className:"p-2 bg-red-50 border border-red-200 rounded text-sm text-red-800",children:h}),(0,s.jsxs)("form",{onSubmit:M,className:"flex items-end gap-2 bg-white border border-gray-300 rounded-lg px-4 py-2 focus-within:border-blue-500 focus-within:ring-1 focus-within:ring-blue-500",children:[C&&s.jsx("button",{type:"button",onClick:()=>w(!0),className:"flex-shrink-0 p-2 text-gray-500 hover:text-blue-600 hover:bg-blue-50 rounded-full transition-colors","aria-label":"Show slash commands","data-testid":"mobile-command-button",children:s.jsx("svg",{className:"h-5 w-5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:s.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M7 20l4-16m2 16l4-16M6 9h14M4 15h14"})})}),s.jsx("textarea",{ref:v,value:d,onChange:e=>{let t=e.target.value;m(t),"/"===t||t.startsWith("/")&&!t.includes(" ")?w(!0):w(!1)},onKeyDown:e=>{let{keyCode:t}=e.nativeEvent;if(229!==t){if("Escape"===e.key&&y){e.preventDefault(),E();return}if(N.current&&"Enter"===e.key){N.current=!1;return}if("Enter"===e.key&&!g&&!y){if(C)return;e.shiftKey||(e.preventDefault(),L())}}},onCompositionStart:()=>{f(!0),N.current=!1,j.current&&clearTimeout(j.current)},onCompositionEnd:()=>{f(!1),N.current=!0,j.current&&clearTimeout(j.current),j.current=setTimeout(()=>{N.current=!1},300)},placeholder:C?"Type your message...":"Type your message... (/ for commands, Shift+Enter for line break)",disabled:x,rows:1,className:"flex-1 outline-none bg-transparent resize-none py-1 overflow-y-auto scrollbar-thin",style:{minHeight:"24px",maxHeight:"160px"}}),s.jsx(c,{worktreeId:e,cliToolId:a||"claude",disabled:!i}),s.jsx("button",{type:"submit",disabled:!d.trim()||x,className:"flex-shrink-0 p-2 text-blue-600 hover:bg-blue-50 rounded-full transition-colors disabled:text-gray-300 disabled:hover:bg-transparent","aria-label":"Send message",children:x?(0,s.jsxs)("svg",{className:"animate-spin h-5 w-5",xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",children:[s.jsx("circle",{className:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"4"}),s.jsx("path",{className:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"})]}):s.jsx("svg",{className:"h-5 w-5",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24",children:s.jsx("path",{strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:2,d:"M12 19l9 2-9-18-9 18 9-2zm0 0v-8"})})})]}),s.jsx(o,{isOpen:y,groups:S,onSelect:e=>{m(`/${e.name} `),w(!1),v.current?.focus()},onClose:E,isMobile:C,onFreeInput:()=>{w(!1),m("/"),setTimeout(()=>{v.current?.focus()},50)}})]})}},61421:(e,t,a)=>{a.d(t,{F4:()=>r,Ie:()=>n,xh:()=>l});let s={idle:"bg-gray-500",ready:"bg-green-500",spinner:"border-blue-500",waiting:"bg-yellow-500",error:"bg-red-500"},r={idle:{className:s.idle,label:"Idle",type:"dot"},ready:{className:s.ready,label:"Ready",type:"dot"},running:{className:s.spinner,label:"Running",type:"spinner"},waiting:{className:s.waiting,label:"Waiting for response",type:"dot"},generating:{className:s.spinner,label:"Generating",type:"spinner"}},l={idle:{className:s.idle,label:"Idle",type:"dot"},ready:{className:s.ready,label:"Ready",type:"dot"},running:{className:s.spinner,label:"Running",type:"spinner"},waiting:{className:s.waiting,label:"Waiting for response",type:"dot"},error:{className:s.error,label:"Error",type:"dot"}},n={idle:{className:s.idle,label:"Idle - No active session",type:"dot"},ready:{className:s.ready,label:"Ready - Waiting for input",type:"dot"},running:{className:s.spinner,label:"Running - Processing",type:"spinner"},waiting:{className:s.waiting,label:"Waiting - User input required",type:"dot"},error:{className:s.error,label:"Error",type:"dot"}}},22202:(e,t,a)=>{a.d(t,{k:()=>s});let s={DROPDOWN:10,SIDEBAR:30,MODAL:50,MAXIMIZED_EDITOR:55,TOAST:60,CONTEXT_MENU:70}},2982:(e,t,a)=>{a.d(t,{d:()=>r});var s=a(17577);function r(e={}){let{breakpoint:t=768}=e,[a,r]=(0,s.useState)(!1);return a}},18421:(e,t,a)=>{function s(e){return e?e.isWaitingForResponse?"waiting":e.isProcessing?"running":e.isRunning?"ready":"idle":"idle"}function r(e){let t=!!e.lastAssistantMessageAt&&(!e.lastViewedAt||new Date(e.lastAssistantMessageAt)>new Date(e.lastViewedAt));return{id:e.id,name:e.name,repositoryName:e.repositoryName,status:"idle",hasUnread:t,lastActivity:e.updatedAt,description:e.description,cliStatus:{claude:s(e.sessionStatusByCli?.claude),codex:s(e.sessionStatusByCli?.codex)}}}a.d(t,{He:()=>s,I_:()=>r})},63601:(e,t,a)=>{a.r(t),a.d(t,{default:()=>r});var s=a(66621);let r=e=>[{type:"image/png",sizes:"180x180",url:(0,s.fillMetadataSegment)(".",e.params,"apple-icon.png")+"?31a89e65aa4ac65b"}]},71150:(e,t,a)=>{a.r(t),a.d(t,{default:()=>r});var s=a(66621);let r=e=>[{type:"image/png",sizes:"32x32",url:(0,s.fillMetadataSegment)(".",e.params,"icon.png")+"?32d9127ba30ee286"}]}};