@alexjbarnes/cockpit 0.3.1 → 0.4.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.
Files changed (767) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/app-path-routes-manifest.json +10 -2
  3. package/.next/build-manifest.json +4 -4
  4. package/.next/next-server.js.nft.json +1 -1
  5. package/.next/prerender-manifest.json +21 -45
  6. package/.next/react-loadable-manifest.json +279 -267
  7. package/.next/routes-manifest.json +68 -12
  8. package/.next/server/app/(app)/agents/[name]/page.js +3 -3
  9. package/.next/server/app/(app)/agents/[name]/page.js.nft.json +1 -1
  10. package/.next/server/app/(app)/agents/[name]/page_client-reference-manifest.js +1 -1
  11. package/.next/server/app/(app)/agents/page.js +2 -2
  12. package/.next/server/app/(app)/agents/page.js.nft.json +1 -1
  13. package/.next/server/app/(app)/agents/page_client-reference-manifest.js +1 -1
  14. package/.next/server/app/(app)/claude-md/edit/page.js +2 -2
  15. package/.next/server/app/(app)/claude-md/edit/page.js.nft.json +1 -1
  16. package/.next/server/app/(app)/claude-md/edit/page_client-reference-manifest.js +1 -1
  17. package/.next/server/app/(app)/claude-md/page.js +2 -2
  18. package/.next/server/app/(app)/claude-md/page.js.nft.json +1 -1
  19. package/.next/server/app/(app)/claude-md/page_client-reference-manifest.js +1 -1
  20. package/.next/server/app/(app)/commands/[name]/page.js +3 -3
  21. package/.next/server/app/(app)/commands/[name]/page.js.nft.json +1 -1
  22. package/.next/server/app/(app)/commands/[name]/page_client-reference-manifest.js +1 -1
  23. package/.next/server/app/(app)/commands/page.js +2 -2
  24. package/.next/server/app/(app)/commands/page.js.nft.json +1 -1
  25. package/.next/server/app/(app)/commands/page_client-reference-manifest.js +1 -1
  26. package/.next/server/app/(app)/hooks/[event]/page.js +3 -3
  27. package/.next/server/app/(app)/hooks/[event]/page.js.nft.json +1 -1
  28. package/.next/server/app/(app)/hooks/[event]/page_client-reference-manifest.js +1 -1
  29. package/.next/server/app/(app)/hooks/page.js +2 -2
  30. package/.next/server/app/(app)/hooks/page.js.nft.json +1 -1
  31. package/.next/server/app/(app)/hooks/page_client-reference-manifest.js +1 -1
  32. package/.next/server/app/(app)/inbox/[id]/page.js +2 -2
  33. package/.next/server/app/(app)/inbox/[id]/page.js.nft.json +1 -1
  34. package/.next/server/app/(app)/inbox/[id]/page_client-reference-manifest.js +1 -1
  35. package/.next/server/app/(app)/inbox/page.js +2 -2
  36. package/.next/server/app/(app)/inbox/page.js.nft.json +1 -1
  37. package/.next/server/app/(app)/inbox/page_client-reference-manifest.js +1 -1
  38. package/.next/server/app/(app)/jobs/[id]/edit/page.js +2 -2
  39. package/.next/server/app/(app)/jobs/[id]/edit/page.js.nft.json +1 -1
  40. package/.next/server/app/(app)/jobs/[id]/edit/page_client-reference-manifest.js +1 -1
  41. package/.next/server/app/(app)/jobs/[id]/page.js +2 -2
  42. package/.next/server/app/(app)/jobs/[id]/page.js.nft.json +1 -1
  43. package/.next/server/app/(app)/jobs/[id]/page_client-reference-manifest.js +1 -1
  44. package/.next/server/app/(app)/jobs/[id]/runs/[runId]/page.js +2 -2
  45. package/.next/server/app/(app)/jobs/[id]/runs/[runId]/page.js.nft.json +1 -1
  46. package/.next/server/app/(app)/jobs/[id]/runs/[runId]/page_client-reference-manifest.js +1 -1
  47. package/.next/server/app/(app)/jobs/page.js +2 -2
  48. package/.next/server/app/(app)/jobs/page.js.nft.json +1 -1
  49. package/.next/server/app/(app)/jobs/page_client-reference-manifest.js +1 -1
  50. package/.next/server/app/(app)/mcp-servers/[name]/page.js +2 -2
  51. package/.next/server/app/(app)/mcp-servers/[name]/page.js.nft.json +1 -1
  52. package/.next/server/app/(app)/mcp-servers/[name]/page_client-reference-manifest.js +1 -1
  53. package/.next/server/app/(app)/mcp-servers/page.js +2 -2
  54. package/.next/server/app/(app)/mcp-servers/page.js.nft.json +1 -1
  55. package/.next/server/app/(app)/mcp-servers/page_client-reference-manifest.js +1 -1
  56. package/.next/server/app/(app)/page.js +2 -2
  57. package/.next/server/app/(app)/page.js.nft.json +1 -1
  58. package/.next/server/app/(app)/page_client-reference-manifest.js +1 -1
  59. package/.next/server/app/(app)/plugins/page.js +2 -0
  60. package/.next/server/app/(app)/{files → plugins}/page.js.nft.json +1 -1
  61. package/.next/server/app/(app)/plugins/page_client-reference-manifest.js +1 -0
  62. package/.next/server/app/(app)/reviews/[owner]/[repo]/[number]/page.js +4 -4
  63. package/.next/server/app/(app)/reviews/[owner]/[repo]/[number]/page.js.nft.json +1 -1
  64. package/.next/server/app/(app)/reviews/[owner]/[repo]/[number]/page_client-reference-manifest.js +1 -1
  65. package/.next/server/app/(app)/reviews/[owner]/[repo]/page.js +2 -2
  66. package/.next/server/app/(app)/reviews/[owner]/[repo]/page.js.nft.json +1 -1
  67. package/.next/server/app/(app)/reviews/[owner]/[repo]/page_client-reference-manifest.js +1 -1
  68. package/.next/server/app/(app)/reviews/page.js +2 -2
  69. package/.next/server/app/(app)/reviews/page.js.nft.json +1 -1
  70. package/.next/server/app/(app)/reviews/page_client-reference-manifest.js +1 -1
  71. package/.next/server/app/(app)/sessions/[id]/page.js +2 -2
  72. package/.next/server/app/(app)/sessions/[id]/page.js.nft.json +1 -1
  73. package/.next/server/app/(app)/sessions/[id]/page_client-reference-manifest.js +1 -1
  74. package/.next/server/app/(app)/settings/appearance/page.js +2 -2
  75. package/.next/server/app/(app)/settings/appearance/page.js.nft.json +1 -1
  76. package/.next/server/app/(app)/settings/appearance/page_client-reference-manifest.js +1 -1
  77. package/.next/server/app/(app)/settings/notifications/page.js +2 -2
  78. package/.next/server/app/(app)/settings/notifications/page.js.nft.json +1 -1
  79. package/.next/server/app/(app)/settings/notifications/page_client-reference-manifest.js +1 -1
  80. package/.next/server/app/(app)/settings/page.js +2 -2
  81. package/.next/server/app/(app)/settings/page.js.nft.json +1 -1
  82. package/.next/server/app/(app)/settings/page_client-reference-manifest.js +1 -1
  83. package/.next/server/app/(app)/settings/providers/[id]/page.js +2 -2
  84. package/.next/server/app/(app)/settings/providers/[id]/page.js.nft.json +1 -1
  85. package/.next/server/app/(app)/settings/providers/[id]/page_client-reference-manifest.js +1 -1
  86. package/.next/server/app/(app)/settings/providers/new/page.js +2 -2
  87. package/.next/server/app/(app)/settings/providers/new/page.js.nft.json +1 -1
  88. package/.next/server/app/(app)/settings/providers/new/page_client-reference-manifest.js +1 -1
  89. package/.next/server/app/(app)/settings/providers/page.js +2 -2
  90. package/.next/server/app/(app)/settings/providers/page.js.nft.json +1 -1
  91. package/.next/server/app/(app)/settings/providers/page_client-reference-manifest.js +1 -1
  92. package/.next/server/app/(app)/settings/session/page.js +2 -2
  93. package/.next/server/app/(app)/settings/session/page.js.nft.json +1 -1
  94. package/.next/server/app/(app)/settings/session/page_client-reference-manifest.js +1 -1
  95. package/.next/server/app/(app)/skills/[name]/page.js +3 -3
  96. package/.next/server/app/(app)/skills/[name]/page.js.nft.json +1 -1
  97. package/.next/server/app/(app)/skills/[name]/page_client-reference-manifest.js +1 -1
  98. package/.next/server/app/(app)/skills/page.js +2 -2
  99. package/.next/server/app/(app)/skills/page.js.nft.json +1 -1
  100. package/.next/server/app/(app)/skills/page_client-reference-manifest.js +1 -1
  101. package/.next/server/app/_global-error/page.js +3 -3
  102. package/.next/server/app/_global-error/page.js.nft.json +1 -1
  103. package/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  104. package/.next/server/app/_global-error.html +1 -1
  105. package/.next/server/app/_global-error.rsc +1 -1
  106. package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  107. package/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  108. package/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  109. package/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  110. package/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  111. package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  112. package/.next/server/app/_not-found/page.js +2 -2
  113. package/.next/server/app/_not-found/page.js.nft.json +1 -1
  114. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  115. package/.next/server/app/_not-found.html +1 -1
  116. package/.next/server/app/_not-found.rsc +2 -2
  117. package/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
  118. package/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  119. package/.next/server/app/_not-found.segments/_index.segment.rsc +2 -2
  120. package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  121. package/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  122. package/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  123. package/.next/server/app/agents.html +1 -1
  124. package/.next/server/app/agents.rsc +4 -4
  125. package/.next/server/app/agents.segments/!KGFwcCk/agents/__PAGE__.segment.rsc +2 -2
  126. package/.next/server/app/agents.segments/!KGFwcCk/agents.segment.rsc +1 -1
  127. package/.next/server/app/agents.segments/!KGFwcCk.segment.rsc +2 -2
  128. package/.next/server/app/agents.segments/_full.segment.rsc +4 -4
  129. package/.next/server/app/agents.segments/_head.segment.rsc +1 -1
  130. package/.next/server/app/agents.segments/_index.segment.rsc +2 -2
  131. package/.next/server/app/agents.segments/_tree.segment.rsc +2 -2
  132. package/.next/server/app/api/agents/[name]/route.js +1 -1
  133. package/.next/server/app/api/agents/route.js +1 -1
  134. package/.next/server/app/api/assistant-session/route.js +1 -0
  135. package/.next/server/app/api/assistant-session/route.js.nft.json +1 -0
  136. package/.next/server/app/api/assistant-session/route_client-reference-manifest.js +1 -0
  137. package/.next/server/app/api/auth/check/route.js +1 -1
  138. package/.next/server/app/api/auth/login/route.js +1 -1
  139. package/.next/server/app/api/auth/setup/route.js +1 -1
  140. package/.next/server/app/api/auth/ws-token/route.js +1 -1
  141. package/.next/server/app/api/btw/route.js +2 -2
  142. package/.next/server/app/api/claude-md/route.js +1 -1
  143. package/.next/server/app/api/commands/[name]/route.js +1 -1
  144. package/.next/server/app/api/commands/route.js +1 -1
  145. package/.next/server/app/api/config/cwd/route.js +1 -0
  146. package/.next/server/app/api/config/cwd/route.js.nft.json +1 -0
  147. package/.next/server/app/api/config/cwd/route_client-reference-manifest.js +1 -0
  148. package/.next/server/app/api/defaults/route.js +1 -1
  149. package/.next/server/app/api/filesystem/browse/route.js +1 -1
  150. package/.next/server/app/api/filesystem/files/route.js +1 -1
  151. package/.next/server/app/api/filesystem/mkdir/route.js +1 -1
  152. package/.next/server/app/api/filesystem/read/route.js +1 -1
  153. package/.next/server/app/api/git/clone/route.js +1 -1
  154. package/.next/server/app/api/git/commit/route.js +1 -1
  155. package/.next/server/app/api/git/diff/route.js +1 -1
  156. package/.next/server/app/api/git/discard/route.js +1 -1
  157. package/.next/server/app/api/git/generate-message/route.js +2 -2
  158. package/.next/server/app/api/git/push/route.js +1 -1
  159. package/.next/server/app/api/git/status/route.js +1 -1
  160. package/.next/server/app/api/github/file-content/route.js +1 -1
  161. package/.next/server/app/api/github/orgs/route.js +1 -1
  162. package/.next/server/app/api/github/prs/checks/route.js +1 -1
  163. package/.next/server/app/api/github/prs/diff/route.js +1 -1
  164. package/.next/server/app/api/github/prs/review/route.js +1 -1
  165. package/.next/server/app/api/github/prs/route.js +1 -1
  166. package/.next/server/app/api/github/prs/view/route.js +1 -1
  167. package/.next/server/app/api/github/repos/route.js +1 -1
  168. package/.next/server/app/api/github/review-session/route.js +1 -1
  169. package/.next/server/app/api/github/review-session/route.js.nft.json +1 -1
  170. package/.next/server/app/api/health/route.js +1 -1
  171. package/.next/server/app/api/hooks/route.js +1 -1
  172. package/.next/server/app/api/inbox/[id]/route.js +1 -5
  173. package/.next/server/app/api/inbox/[id]/route.js.nft.json +1 -1
  174. package/.next/server/app/api/inbox/route.js +1 -5
  175. package/.next/server/app/api/inbox/route.js.nft.json +1 -1
  176. package/.next/server/app/api/jobs/[id]/route.js +1 -1
  177. package/.next/server/app/api/jobs/[id]/route.js.nft.json +1 -1
  178. package/.next/server/app/api/jobs/[id]/runs/[runId]/route.js +1 -1
  179. package/.next/server/app/api/jobs/[id]/runs/[runId]/transcript/route.js +1 -1
  180. package/.next/server/app/api/jobs/[id]/runs/[runId]/transcript/route.js.nft.json +1 -1
  181. package/.next/server/app/api/jobs/[id]/runs/route.js +1 -1
  182. package/.next/server/app/api/jobs/[id]/stop/route.js +1 -0
  183. package/.next/server/app/api/jobs/[id]/stop/route.js.nft.json +1 -0
  184. package/.next/server/app/api/jobs/[id]/stop/route_client-reference-manifest.js +1 -0
  185. package/.next/server/app/api/jobs/[id]/trigger/route.js +1 -1
  186. package/.next/server/app/api/jobs/[id]/trigger/route.js.nft.json +1 -1
  187. package/.next/server/app/api/jobs/mcp-discover/route.js +1 -1
  188. package/.next/server/app/api/jobs/mcp-discover/route.js.nft.json +1 -1
  189. package/.next/server/app/api/jobs/route.js +1 -1
  190. package/.next/server/app/api/jobs/route.js.nft.json +1 -1
  191. package/.next/server/app/api/jobs/status/route.js +1 -1
  192. package/.next/server/app/api/mcp-servers/[name]/route.js +1 -1
  193. package/.next/server/app/api/mcp-servers/[name]/test/route.js +1 -1
  194. package/.next/server/app/api/mcp-servers/[name]/tools/route.js +1 -0
  195. package/.next/server/app/api/mcp-servers/[name]/tools/route.js.nft.json +1 -0
  196. package/.next/server/app/api/mcp-servers/[name]/tools/route_client-reference-manifest.js +1 -0
  197. package/.next/server/app/api/mcp-servers/route.js +1 -1
  198. package/.next/server/app/api/notifications/route.js +1 -1
  199. package/.next/server/app/api/notifications/test/route.js +3 -3
  200. package/.next/server/app/api/plugins/[id]/route.js +1 -0
  201. package/.next/server/app/api/plugins/[id]/route.js.nft.json +1 -0
  202. package/.next/server/app/api/plugins/[id]/route_client-reference-manifest.js +1 -0
  203. package/.next/server/app/api/plugins/install/route.js +1 -0
  204. package/.next/server/app/api/plugins/install/route.js.nft.json +1 -0
  205. package/.next/server/app/api/plugins/install/route_client-reference-manifest.js +1 -0
  206. package/.next/server/app/api/plugins/marketplaces/[name]/route.js +1 -0
  207. package/.next/server/app/api/plugins/marketplaces/[name]/route.js.nft.json +1 -0
  208. package/.next/server/app/api/plugins/marketplaces/[name]/route_client-reference-manifest.js +1 -0
  209. package/.next/server/app/api/plugins/marketplaces/route.js +1 -0
  210. package/.next/server/app/api/plugins/marketplaces/route.js.nft.json +1 -0
  211. package/.next/server/app/api/plugins/marketplaces/route_client-reference-manifest.js +1 -0
  212. package/.next/server/app/api/plugins/route.js +1 -0
  213. package/.next/server/app/api/plugins/route.js.nft.json +1 -0
  214. package/.next/server/app/api/plugins/route_client-reference-manifest.js +1 -0
  215. package/.next/server/app/api/providers/[id]/route.js +1 -1
  216. package/.next/server/app/api/providers/route.js +1 -1
  217. package/.next/server/app/api/reviews/pinned/route.js +1 -1
  218. package/.next/server/app/api/sessions/[id]/context/route.js +1 -1
  219. package/.next/server/app/api/sessions/[id]/context/route.js.nft.json +1 -1
  220. package/.next/server/app/api/sessions/[id]/mcp/route.js +1 -1
  221. package/.next/server/app/api/sessions/[id]/mcp/route.js.nft.json +1 -1
  222. package/.next/server/app/api/sessions/[id]/route.js +1 -1
  223. package/.next/server/app/api/sessions/[id]/route.js.nft.json +1 -1
  224. package/.next/server/app/api/sessions/[id]/search/route.js +1 -1
  225. package/.next/server/app/api/sessions/[id]/search/route.js.nft.json +1 -1
  226. package/.next/server/app/api/sessions/[id]/tabs/route.js +1 -1
  227. package/.next/server/app/api/sessions/bulk-delete/route.js +1 -1
  228. package/.next/server/app/api/sessions/bulk-delete/route.js.nft.json +1 -1
  229. package/.next/server/app/api/sessions/by-ids/route.js +1 -1
  230. package/.next/server/app/api/sessions/by-ids/route.js.nft.json +1 -1
  231. package/.next/server/app/api/sessions/group/route.js +1 -1
  232. package/.next/server/app/api/sessions/group/route.js.nft.json +1 -1
  233. package/.next/server/app/api/sessions/pinned/route.js +1 -1
  234. package/.next/server/app/api/sessions/route.js +1 -1
  235. package/.next/server/app/api/sessions/route.js.nft.json +1 -1
  236. package/.next/server/app/api/sessions/search/route.js +1 -1
  237. package/.next/server/app/api/sessions/search/route.js.nft.json +1 -1
  238. package/.next/server/app/api/sessions/thinking/route.js +1 -1
  239. package/.next/server/app/api/sessions/thinking/route.js.nft.json +1 -1
  240. package/.next/server/app/api/skills/[name]/route.js +1 -1
  241. package/.next/server/app/api/skills/route.js +1 -1
  242. package/.next/server/app/api/terminal/[id]/route.js +1 -1
  243. package/.next/server/app/api/terminal/[id]/route.js.nft.json +1 -1
  244. package/.next/server/app/api/terminal/route.js +1 -1
  245. package/.next/server/app/api/terminal/route.js.nft.json +1 -1
  246. package/.next/server/app/api/usage/route.js +1 -1
  247. package/.next/server/app/api/version/changelog/route.js +1 -1
  248. package/.next/server/app/api/version/cockpit/changelog/route.js +1 -1
  249. package/.next/server/app/api/version/cockpit/route.js +1 -1
  250. package/.next/server/app/api/version/route.js +2 -2
  251. package/.next/server/app/claude-md/edit.html +1 -1
  252. package/.next/server/app/claude-md/edit.rsc +4 -4
  253. package/.next/server/app/claude-md/edit.segments/!KGFwcCk/claude-md/edit/__PAGE__.segment.rsc +2 -2
  254. package/.next/server/app/claude-md/edit.segments/!KGFwcCk/claude-md/edit.segment.rsc +1 -1
  255. package/.next/server/app/claude-md/edit.segments/!KGFwcCk/claude-md.segment.rsc +1 -1
  256. package/.next/server/app/claude-md/edit.segments/!KGFwcCk.segment.rsc +2 -2
  257. package/.next/server/app/claude-md/edit.segments/_full.segment.rsc +4 -4
  258. package/.next/server/app/claude-md/edit.segments/_head.segment.rsc +1 -1
  259. package/.next/server/app/claude-md/edit.segments/_index.segment.rsc +2 -2
  260. package/.next/server/app/claude-md/edit.segments/_tree.segment.rsc +2 -2
  261. package/.next/server/app/claude-md.html +1 -1
  262. package/.next/server/app/claude-md.rsc +4 -4
  263. package/.next/server/app/claude-md.segments/!KGFwcCk/claude-md/__PAGE__.segment.rsc +2 -2
  264. package/.next/server/app/claude-md.segments/!KGFwcCk/claude-md.segment.rsc +1 -1
  265. package/.next/server/app/claude-md.segments/!KGFwcCk.segment.rsc +2 -2
  266. package/.next/server/app/claude-md.segments/_full.segment.rsc +4 -4
  267. package/.next/server/app/claude-md.segments/_head.segment.rsc +1 -1
  268. package/.next/server/app/claude-md.segments/_index.segment.rsc +2 -2
  269. package/.next/server/app/claude-md.segments/_tree.segment.rsc +2 -2
  270. package/.next/server/app/commands.html +1 -1
  271. package/.next/server/app/commands.rsc +4 -4
  272. package/.next/server/app/commands.segments/!KGFwcCk/commands/__PAGE__.segment.rsc +2 -2
  273. package/.next/server/app/commands.segments/!KGFwcCk/commands.segment.rsc +1 -1
  274. package/.next/server/app/commands.segments/!KGFwcCk.segment.rsc +2 -2
  275. package/.next/server/app/commands.segments/_full.segment.rsc +4 -4
  276. package/.next/server/app/commands.segments/_head.segment.rsc +1 -1
  277. package/.next/server/app/commands.segments/_index.segment.rsc +2 -2
  278. package/.next/server/app/commands.segments/_tree.segment.rsc +2 -2
  279. package/.next/server/app/hooks.html +1 -1
  280. package/.next/server/app/hooks.rsc +4 -4
  281. package/.next/server/app/hooks.segments/!KGFwcCk/hooks/__PAGE__.segment.rsc +2 -2
  282. package/.next/server/app/hooks.segments/!KGFwcCk/hooks.segment.rsc +1 -1
  283. package/.next/server/app/hooks.segments/!KGFwcCk.segment.rsc +2 -2
  284. package/.next/server/app/hooks.segments/_full.segment.rsc +4 -4
  285. package/.next/server/app/hooks.segments/_head.segment.rsc +1 -1
  286. package/.next/server/app/hooks.segments/_index.segment.rsc +2 -2
  287. package/.next/server/app/hooks.segments/_tree.segment.rsc +2 -2
  288. package/.next/server/app/inbox.html +1 -1
  289. package/.next/server/app/inbox.rsc +4 -4
  290. package/.next/server/app/inbox.segments/!KGFwcCk/inbox/__PAGE__.segment.rsc +2 -2
  291. package/.next/server/app/inbox.segments/!KGFwcCk/inbox.segment.rsc +1 -1
  292. package/.next/server/app/inbox.segments/!KGFwcCk.segment.rsc +2 -2
  293. package/.next/server/app/inbox.segments/_full.segment.rsc +4 -4
  294. package/.next/server/app/inbox.segments/_head.segment.rsc +1 -1
  295. package/.next/server/app/inbox.segments/_index.segment.rsc +2 -2
  296. package/.next/server/app/inbox.segments/_tree.segment.rsc +2 -2
  297. package/.next/server/app/index.html +1 -1
  298. package/.next/server/app/index.rsc +4 -4
  299. package/.next/server/app/index.segments/!KGFwcCk/__PAGE__.segment.rsc +2 -2
  300. package/.next/server/app/index.segments/!KGFwcCk.segment.rsc +2 -2
  301. package/.next/server/app/index.segments/_full.segment.rsc +4 -4
  302. package/.next/server/app/index.segments/_head.segment.rsc +1 -1
  303. package/.next/server/app/index.segments/_index.segment.rsc +2 -2
  304. package/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  305. package/.next/server/app/jobs.html +1 -1
  306. package/.next/server/app/jobs.rsc +4 -4
  307. package/.next/server/app/jobs.segments/!KGFwcCk/jobs/__PAGE__.segment.rsc +2 -2
  308. package/.next/server/app/jobs.segments/!KGFwcCk/jobs.segment.rsc +1 -1
  309. package/.next/server/app/jobs.segments/!KGFwcCk.segment.rsc +2 -2
  310. package/.next/server/app/jobs.segments/_full.segment.rsc +4 -4
  311. package/.next/server/app/jobs.segments/_head.segment.rsc +1 -1
  312. package/.next/server/app/jobs.segments/_index.segment.rsc +2 -2
  313. package/.next/server/app/jobs.segments/_tree.segment.rsc +2 -2
  314. package/.next/server/app/login/page.js +2 -2
  315. package/.next/server/app/login/page.js.nft.json +1 -1
  316. package/.next/server/app/login/page_client-reference-manifest.js +1 -1
  317. package/.next/server/app/login.html +1 -1
  318. package/.next/server/app/login.rsc +3 -3
  319. package/.next/server/app/login.segments/_full.segment.rsc +3 -3
  320. package/.next/server/app/login.segments/_head.segment.rsc +1 -1
  321. package/.next/server/app/login.segments/_index.segment.rsc +2 -2
  322. package/.next/server/app/login.segments/_tree.segment.rsc +2 -2
  323. package/.next/server/app/login.segments/login/__PAGE__.segment.rsc +2 -2
  324. package/.next/server/app/login.segments/login.segment.rsc +1 -1
  325. package/.next/server/app/mcp-servers.html +1 -1
  326. package/.next/server/app/mcp-servers.rsc +4 -4
  327. package/.next/server/app/mcp-servers.segments/!KGFwcCk/mcp-servers/__PAGE__.segment.rsc +2 -2
  328. package/.next/server/app/mcp-servers.segments/!KGFwcCk/mcp-servers.segment.rsc +1 -1
  329. package/.next/server/app/mcp-servers.segments/!KGFwcCk.segment.rsc +2 -2
  330. package/.next/server/app/mcp-servers.segments/_full.segment.rsc +4 -4
  331. package/.next/server/app/mcp-servers.segments/_head.segment.rsc +1 -1
  332. package/.next/server/app/mcp-servers.segments/_index.segment.rsc +2 -2
  333. package/.next/server/app/mcp-servers.segments/_tree.segment.rsc +2 -2
  334. package/.next/server/app/plugins.html +1 -0
  335. package/.next/server/app/{changes.meta → plugins.meta} +3 -3
  336. package/.next/server/app/{changes.rsc → plugins.rsc} +4 -4
  337. package/.next/server/app/{files.segments/!KGFwcCk/files → plugins.segments/!KGFwcCk/plugins}/__PAGE__.segment.rsc +2 -2
  338. package/.next/server/app/{changes.segments/!KGFwcCk/changes.segment.rsc → plugins.segments/!KGFwcCk/plugins.segment.rsc} +1 -1
  339. package/.next/server/app/{changes.segments → plugins.segments}/!KGFwcCk.segment.rsc +2 -2
  340. package/.next/server/app/{changes.segments → plugins.segments}/_full.segment.rsc +4 -4
  341. package/.next/server/app/{changes.segments → plugins.segments}/_head.segment.rsc +1 -1
  342. package/.next/server/app/{files.segments → plugins.segments}/_index.segment.rsc +2 -2
  343. package/.next/server/app/{changes.segments → plugins.segments}/_tree.segment.rsc +2 -2
  344. package/.next/server/app/reviews.html +1 -1
  345. package/.next/server/app/reviews.rsc +4 -4
  346. package/.next/server/app/reviews.segments/!KGFwcCk/reviews/__PAGE__.segment.rsc +2 -2
  347. package/.next/server/app/reviews.segments/!KGFwcCk/reviews.segment.rsc +1 -1
  348. package/.next/server/app/reviews.segments/!KGFwcCk.segment.rsc +2 -2
  349. package/.next/server/app/reviews.segments/_full.segment.rsc +4 -4
  350. package/.next/server/app/reviews.segments/_head.segment.rsc +1 -1
  351. package/.next/server/app/reviews.segments/_index.segment.rsc +2 -2
  352. package/.next/server/app/reviews.segments/_tree.segment.rsc +2 -2
  353. package/.next/server/app/settings/appearance.html +1 -1
  354. package/.next/server/app/settings/appearance.rsc +4 -4
  355. package/.next/server/app/settings/appearance.segments/!KGFwcCk/settings/appearance/__PAGE__.segment.rsc +2 -2
  356. package/.next/server/app/settings/appearance.segments/!KGFwcCk/settings/appearance.segment.rsc +1 -1
  357. package/.next/server/app/settings/appearance.segments/!KGFwcCk/settings.segment.rsc +1 -1
  358. package/.next/server/app/settings/appearance.segments/!KGFwcCk.segment.rsc +2 -2
  359. package/.next/server/app/settings/appearance.segments/_full.segment.rsc +4 -4
  360. package/.next/server/app/settings/appearance.segments/_head.segment.rsc +1 -1
  361. package/.next/server/app/settings/appearance.segments/_index.segment.rsc +2 -2
  362. package/.next/server/app/settings/appearance.segments/_tree.segment.rsc +2 -2
  363. package/.next/server/app/settings/notifications.html +1 -1
  364. package/.next/server/app/settings/notifications.rsc +4 -4
  365. package/.next/server/app/settings/notifications.segments/!KGFwcCk/settings/notifications/__PAGE__.segment.rsc +2 -2
  366. package/.next/server/app/settings/notifications.segments/!KGFwcCk/settings/notifications.segment.rsc +1 -1
  367. package/.next/server/app/settings/notifications.segments/!KGFwcCk/settings.segment.rsc +1 -1
  368. package/.next/server/app/settings/notifications.segments/!KGFwcCk.segment.rsc +2 -2
  369. package/.next/server/app/settings/notifications.segments/_full.segment.rsc +4 -4
  370. package/.next/server/app/settings/notifications.segments/_head.segment.rsc +1 -1
  371. package/.next/server/app/settings/notifications.segments/_index.segment.rsc +2 -2
  372. package/.next/server/app/settings/notifications.segments/_tree.segment.rsc +2 -2
  373. package/.next/server/app/settings/providers/new.html +1 -1
  374. package/.next/server/app/settings/providers/new.rsc +4 -4
  375. package/.next/server/app/settings/providers/new.segments/!KGFwcCk/settings/providers/new/__PAGE__.segment.rsc +2 -2
  376. package/.next/server/app/settings/providers/new.segments/!KGFwcCk/settings/providers/new.segment.rsc +1 -1
  377. package/.next/server/app/settings/providers/new.segments/!KGFwcCk/settings/providers.segment.rsc +1 -1
  378. package/.next/server/app/settings/providers/new.segments/!KGFwcCk/settings.segment.rsc +1 -1
  379. package/.next/server/app/settings/providers/new.segments/!KGFwcCk.segment.rsc +2 -2
  380. package/.next/server/app/settings/providers/new.segments/_full.segment.rsc +4 -4
  381. package/.next/server/app/settings/providers/new.segments/_head.segment.rsc +1 -1
  382. package/.next/server/app/settings/providers/new.segments/_index.segment.rsc +2 -2
  383. package/.next/server/app/settings/providers/new.segments/_tree.segment.rsc +2 -2
  384. package/.next/server/app/settings/providers.html +1 -1
  385. package/.next/server/app/settings/providers.rsc +4 -4
  386. package/.next/server/app/settings/providers.segments/!KGFwcCk/settings/providers/__PAGE__.segment.rsc +2 -2
  387. package/.next/server/app/settings/providers.segments/!KGFwcCk/settings/providers.segment.rsc +1 -1
  388. package/.next/server/app/settings/providers.segments/!KGFwcCk/settings.segment.rsc +1 -1
  389. package/.next/server/app/settings/providers.segments/!KGFwcCk.segment.rsc +2 -2
  390. package/.next/server/app/settings/providers.segments/_full.segment.rsc +4 -4
  391. package/.next/server/app/settings/providers.segments/_head.segment.rsc +1 -1
  392. package/.next/server/app/settings/providers.segments/_index.segment.rsc +2 -2
  393. package/.next/server/app/settings/providers.segments/_tree.segment.rsc +2 -2
  394. package/.next/server/app/settings/session.html +1 -1
  395. package/.next/server/app/settings/session.rsc +4 -4
  396. package/.next/server/app/settings/session.segments/!KGFwcCk/settings/session/__PAGE__.segment.rsc +2 -2
  397. package/.next/server/app/settings/session.segments/!KGFwcCk/settings/session.segment.rsc +1 -1
  398. package/.next/server/app/settings/session.segments/!KGFwcCk/settings.segment.rsc +1 -1
  399. package/.next/server/app/settings/session.segments/!KGFwcCk.segment.rsc +2 -2
  400. package/.next/server/app/settings/session.segments/_full.segment.rsc +4 -4
  401. package/.next/server/app/settings/session.segments/_head.segment.rsc +1 -1
  402. package/.next/server/app/settings/session.segments/_index.segment.rsc +2 -2
  403. package/.next/server/app/settings/session.segments/_tree.segment.rsc +2 -2
  404. package/.next/server/app/settings.html +1 -1
  405. package/.next/server/app/settings.rsc +4 -4
  406. package/.next/server/app/settings.segments/!KGFwcCk/settings/__PAGE__.segment.rsc +2 -2
  407. package/.next/server/app/settings.segments/!KGFwcCk/settings.segment.rsc +1 -1
  408. package/.next/server/app/settings.segments/!KGFwcCk.segment.rsc +2 -2
  409. package/.next/server/app/settings.segments/_full.segment.rsc +4 -4
  410. package/.next/server/app/settings.segments/_head.segment.rsc +1 -1
  411. package/.next/server/app/settings.segments/_index.segment.rsc +2 -2
  412. package/.next/server/app/settings.segments/_tree.segment.rsc +2 -2
  413. package/.next/server/app/skills.html +1 -1
  414. package/.next/server/app/skills.rsc +4 -4
  415. package/.next/server/app/skills.segments/!KGFwcCk/skills/__PAGE__.segment.rsc +2 -2
  416. package/.next/server/app/skills.segments/!KGFwcCk/skills.segment.rsc +1 -1
  417. package/.next/server/app/skills.segments/!KGFwcCk.segment.rsc +2 -2
  418. package/.next/server/app/skills.segments/_full.segment.rsc +4 -4
  419. package/.next/server/app/skills.segments/_head.segment.rsc +1 -1
  420. package/.next/server/app/skills.segments/_index.segment.rsc +2 -2
  421. package/.next/server/app/skills.segments/_tree.segment.rsc +2 -2
  422. package/.next/server/app-paths-manifest.json +10 -2
  423. package/.next/server/chunks/1011.js +1 -1
  424. package/.next/server/chunks/1327.js +1 -1
  425. package/.next/server/chunks/1979.js +7 -2
  426. package/.next/server/chunks/2666.js +1 -0
  427. package/.next/server/chunks/3136.js +11 -0
  428. package/.next/server/chunks/319.js +45 -0
  429. package/.next/server/chunks/3445.js +2 -2
  430. package/.next/server/chunks/3764.js +1 -1
  431. package/.next/server/chunks/4053.js +4971 -0
  432. package/.next/server/chunks/4734.js +201 -0
  433. package/.next/server/chunks/5318.js +1 -1
  434. package/.next/server/chunks/5472.js +1 -1
  435. package/.next/server/chunks/6304.js +1 -1
  436. package/.next/server/chunks/6705.js +1 -1
  437. package/.next/server/chunks/7539.js +5 -0
  438. package/.next/server/chunks/7891.js +3 -0
  439. package/.next/server/chunks/8578.js +1 -1
  440. package/.next/server/chunks/8728.js +1 -0
  441. package/.next/server/middleware-build-manifest.js +1 -1
  442. package/.next/server/middleware-react-loadable-manifest.js +1 -1
  443. package/.next/server/pages/404.html +1 -1
  444. package/.next/server/pages/500.html +1 -1
  445. package/.next/server/server-reference-manifest.json +1 -1
  446. package/.next/static/NTa6G91R3HtKCLYuQqdR0/_buildManifest.js +1 -0
  447. package/.next/static/chunks/12644.84908edd1bec8b5a.js +1 -0
  448. package/.next/static/chunks/14371-46bd93e838a73082.js +201 -0
  449. package/.next/static/chunks/1550-2b61396833da3dec.js +25 -0
  450. package/.next/static/chunks/18977.393a8bc1bef44fc4.js +1 -0
  451. package/.next/static/chunks/{2503.bb9d3528c3c7ccae.js → 2503.68e12779c4b14adb.js} +1 -1
  452. package/.next/static/chunks/{27455.1bce740b63d7c3cc.js → 27455.8f2189c777c63368.js} +1 -1
  453. package/.next/static/chunks/33072.3d32bb7b2a85ca9b.js +1 -0
  454. package/.next/static/chunks/39267.0c93a6bed8e46ac0.js +1 -0
  455. package/.next/static/chunks/52333.ff3bf0753b68875e.js +1 -0
  456. package/.next/static/chunks/69940.42e1ca99efc62caf.js +1 -0
  457. package/.next/static/chunks/70400.ffe0412efe741888.js +1 -0
  458. package/.next/static/chunks/7113.336a2a8deabe2aa5.js +1 -0
  459. package/.next/static/chunks/{71642.852436e8f0287b89.js → 71642.e11bcaa30efbf1f2.js} +1 -1
  460. package/.next/static/chunks/{72839.a5325a99f8c12fed.js → 72839.225c36dd5e767a20.js} +1 -1
  461. package/.next/static/chunks/{69427.a0b463c808aa54c8.js → 81272.b0027c9bc80050aa.js} +1 -1
  462. package/.next/static/chunks/85853.421f0c913b3d332b.js +1 -0
  463. package/.next/static/chunks/86155.3c5c1468fa2f446e.js +1 -0
  464. package/.next/static/chunks/86339.ba009abde9765665.js +1 -0
  465. package/.next/static/chunks/86939-ba1fb2321ef9cd80.js +1 -0
  466. package/.next/static/chunks/93794-b87eef7d177fe7b3.js +32 -0
  467. package/.next/static/chunks/989-6074551b2b54a168.js +3 -0
  468. package/.next/static/chunks/app/(app)/agents/[name]/page-2b04446e17990f1a.js +8 -0
  469. package/.next/static/chunks/app/(app)/agents/page-ba23fc2296a7be83.js +1 -0
  470. package/.next/static/chunks/app/(app)/claude-md/edit/page-a281913e0b8add64.js +1 -0
  471. package/.next/static/chunks/app/(app)/claude-md/{page-cd9e2176a12ba241.js → page-2d96e3554ef23d18.js} +1 -1
  472. package/.next/static/chunks/app/(app)/commands/[name]/page-fb34a46c0c086dab.js +6 -0
  473. package/.next/static/chunks/app/(app)/commands/page-3802984c62d8ac69.js +1 -0
  474. package/.next/static/chunks/app/(app)/hooks/[event]/{page-28038323fd29adfa.js → page-9481839e736408cb.js} +2 -2
  475. package/.next/static/chunks/app/(app)/hooks/page-f430735f702c7219.js +1 -0
  476. package/.next/static/chunks/app/(app)/inbox/[id]/page-aadeab885f4845b0.js +1 -0
  477. package/.next/static/chunks/app/(app)/inbox/page-b95594cb0a1a5cac.js +1 -0
  478. package/.next/static/chunks/app/(app)/jobs/[id]/edit/page-cc5a314765daff0b.js +1 -0
  479. package/.next/static/chunks/app/(app)/jobs/[id]/page-5890d22a832830ae.js +1 -0
  480. package/.next/static/chunks/app/(app)/jobs/[id]/runs/[runId]/page-0b99d3ca8a0db5a4.js +1 -0
  481. package/.next/static/chunks/app/(app)/jobs/page-3112e52c1cf2a1c6.js +1 -0
  482. package/.next/static/chunks/app/(app)/{layout-ce9e1be301c60fe5.js → layout-62bd7715bd974abb.js} +1 -1
  483. package/.next/static/chunks/app/(app)/mcp-servers/[name]/{page-d6d805a27ec0b0c0.js → page-c8586b1dc6f9824d.js} +1 -1
  484. package/.next/static/chunks/app/(app)/mcp-servers/page-bfc2a6ca8f7968c9.js +1 -0
  485. package/.next/static/chunks/app/(app)/page-7fa2e1ffac49c78b.js +1 -0
  486. package/.next/static/chunks/app/(app)/plugins/page-f37a96c5d3bd20a1.js +1 -0
  487. package/.next/static/chunks/app/(app)/reviews/[owner]/[repo]/[number]/page-9bdb676f496d53bd.js +13 -0
  488. package/.next/static/chunks/app/(app)/reviews/[owner]/[repo]/{page-c5fd013309ab3eba.js → page-200fefe31b935564.js} +1 -1
  489. package/.next/static/chunks/app/(app)/reviews/page-2b8118a506454063.js +1 -0
  490. package/.next/static/chunks/app/(app)/sessions/[id]/page-428e74d62712abe2.js +1 -0
  491. package/.next/static/chunks/app/(app)/settings/appearance/{page-95902da748ac5f1e.js → page-e2b21c857330b047.js} +1 -1
  492. package/.next/static/chunks/app/(app)/settings/notifications/page-4c4e5802b3993e7f.js +1 -0
  493. package/.next/static/chunks/app/(app)/settings/page-3c1d956c719f0160.js +1 -0
  494. package/.next/static/chunks/app/(app)/settings/providers/[id]/page-020f2eab5c3a93ee.js +1 -0
  495. package/.next/static/chunks/app/(app)/settings/providers/new/page-9010d32aeca78d7f.js +1 -0
  496. package/.next/static/chunks/app/(app)/settings/providers/page-d86ebcd6d1cb033d.js +1 -0
  497. package/.next/static/chunks/app/(app)/settings/session/page-174370077dbb9079.js +1 -0
  498. package/.next/static/chunks/app/(app)/skills/[name]/page-dfea5f58b95c01b6.js +6 -0
  499. package/.next/static/chunks/app/(app)/skills/page-c33dbb722dbdf826.js +1 -0
  500. package/.next/static/chunks/app/_global-error/page-bf8153dffcb47d46.js +1 -0
  501. package/.next/static/chunks/app/api/agents/[name]/route-bf8153dffcb47d46.js +1 -0
  502. package/.next/static/chunks/app/api/agents/route-bf8153dffcb47d46.js +1 -0
  503. package/.next/static/chunks/app/api/assistant-session/route-bf8153dffcb47d46.js +1 -0
  504. package/.next/static/chunks/app/api/auth/check/route-bf8153dffcb47d46.js +1 -0
  505. package/.next/static/chunks/app/api/auth/login/route-bf8153dffcb47d46.js +1 -0
  506. package/.next/static/chunks/app/api/auth/setup/route-bf8153dffcb47d46.js +1 -0
  507. package/.next/static/chunks/app/api/auth/ws-token/route-bf8153dffcb47d46.js +1 -0
  508. package/.next/static/chunks/app/api/btw/route-bf8153dffcb47d46.js +1 -0
  509. package/.next/static/chunks/app/api/claude-md/route-bf8153dffcb47d46.js +1 -0
  510. package/.next/static/chunks/app/api/commands/[name]/route-bf8153dffcb47d46.js +1 -0
  511. package/.next/static/chunks/app/api/commands/route-bf8153dffcb47d46.js +1 -0
  512. package/.next/static/chunks/app/api/config/cwd/route-bf8153dffcb47d46.js +1 -0
  513. package/.next/static/chunks/app/api/defaults/route-bf8153dffcb47d46.js +1 -0
  514. package/.next/static/chunks/app/api/filesystem/browse/route-bf8153dffcb47d46.js +1 -0
  515. package/.next/static/chunks/app/api/filesystem/files/route-bf8153dffcb47d46.js +1 -0
  516. package/.next/static/chunks/app/api/filesystem/mkdir/route-bf8153dffcb47d46.js +1 -0
  517. package/.next/static/chunks/app/api/filesystem/read/route-bf8153dffcb47d46.js +1 -0
  518. package/.next/static/chunks/app/api/git/clone/route-bf8153dffcb47d46.js +1 -0
  519. package/.next/static/chunks/app/api/git/commit/route-bf8153dffcb47d46.js +1 -0
  520. package/.next/static/chunks/app/api/git/diff/route-bf8153dffcb47d46.js +1 -0
  521. package/.next/static/chunks/app/api/git/discard/route-bf8153dffcb47d46.js +1 -0
  522. package/.next/static/chunks/app/api/git/generate-message/route-bf8153dffcb47d46.js +1 -0
  523. package/.next/static/chunks/app/api/git/push/route-bf8153dffcb47d46.js +1 -0
  524. package/.next/static/chunks/app/api/git/status/route-bf8153dffcb47d46.js +1 -0
  525. package/.next/static/chunks/app/api/github/file-content/route-bf8153dffcb47d46.js +1 -0
  526. package/.next/static/chunks/app/api/github/orgs/route-bf8153dffcb47d46.js +1 -0
  527. package/.next/static/chunks/app/api/github/prs/checks/route-bf8153dffcb47d46.js +1 -0
  528. package/.next/static/chunks/app/api/github/prs/diff/route-bf8153dffcb47d46.js +1 -0
  529. package/.next/static/chunks/app/api/github/prs/review/route-bf8153dffcb47d46.js +1 -0
  530. package/.next/static/chunks/app/api/github/prs/route-bf8153dffcb47d46.js +1 -0
  531. package/.next/static/chunks/app/api/github/prs/view/route-bf8153dffcb47d46.js +1 -0
  532. package/.next/static/chunks/app/api/github/repos/route-bf8153dffcb47d46.js +1 -0
  533. package/.next/static/chunks/app/api/github/review-session/route-bf8153dffcb47d46.js +1 -0
  534. package/.next/static/chunks/app/api/health/route-bf8153dffcb47d46.js +1 -0
  535. package/.next/static/chunks/app/api/hooks/route-bf8153dffcb47d46.js +1 -0
  536. package/.next/static/chunks/app/api/inbox/[id]/route-bf8153dffcb47d46.js +1 -0
  537. package/.next/static/chunks/app/api/inbox/route-bf8153dffcb47d46.js +1 -0
  538. package/.next/static/chunks/app/api/jobs/[id]/route-bf8153dffcb47d46.js +1 -0
  539. package/.next/static/chunks/app/api/jobs/[id]/runs/[runId]/route-bf8153dffcb47d46.js +1 -0
  540. package/.next/static/chunks/app/api/jobs/[id]/runs/[runId]/transcript/route-bf8153dffcb47d46.js +1 -0
  541. package/.next/static/chunks/app/api/jobs/[id]/runs/route-bf8153dffcb47d46.js +1 -0
  542. package/.next/static/chunks/app/api/jobs/[id]/stop/route-bf8153dffcb47d46.js +1 -0
  543. package/.next/static/chunks/app/api/jobs/[id]/trigger/route-bf8153dffcb47d46.js +1 -0
  544. package/.next/static/chunks/app/api/jobs/mcp-discover/route-bf8153dffcb47d46.js +1 -0
  545. package/.next/static/chunks/app/api/jobs/route-bf8153dffcb47d46.js +1 -0
  546. package/.next/static/chunks/app/api/jobs/status/route-bf8153dffcb47d46.js +1 -0
  547. package/.next/static/chunks/app/api/mcp-servers/[name]/route-bf8153dffcb47d46.js +1 -0
  548. package/.next/static/chunks/app/api/mcp-servers/[name]/test/route-bf8153dffcb47d46.js +1 -0
  549. package/.next/static/chunks/app/api/mcp-servers/[name]/tools/route-bf8153dffcb47d46.js +1 -0
  550. package/.next/static/chunks/app/api/mcp-servers/route-bf8153dffcb47d46.js +1 -0
  551. package/.next/static/chunks/app/api/notifications/route-bf8153dffcb47d46.js +1 -0
  552. package/.next/static/chunks/app/api/notifications/test/route-bf8153dffcb47d46.js +1 -0
  553. package/.next/static/chunks/app/api/plugins/[id]/route-bf8153dffcb47d46.js +1 -0
  554. package/.next/static/chunks/app/api/plugins/install/route-bf8153dffcb47d46.js +1 -0
  555. package/.next/static/chunks/app/api/plugins/marketplaces/[name]/route-bf8153dffcb47d46.js +1 -0
  556. package/.next/static/chunks/app/api/plugins/marketplaces/route-bf8153dffcb47d46.js +1 -0
  557. package/.next/static/chunks/app/api/plugins/route-bf8153dffcb47d46.js +1 -0
  558. package/.next/static/chunks/app/api/providers/[id]/route-bf8153dffcb47d46.js +1 -0
  559. package/.next/static/chunks/app/api/providers/route-bf8153dffcb47d46.js +1 -0
  560. package/.next/static/chunks/app/api/reviews/pinned/route-bf8153dffcb47d46.js +1 -0
  561. package/.next/static/chunks/app/api/sessions/[id]/context/route-bf8153dffcb47d46.js +1 -0
  562. package/.next/static/chunks/app/api/sessions/[id]/mcp/route-bf8153dffcb47d46.js +1 -0
  563. package/.next/static/chunks/app/api/sessions/[id]/route-bf8153dffcb47d46.js +1 -0
  564. package/.next/static/chunks/app/api/sessions/[id]/search/route-bf8153dffcb47d46.js +1 -0
  565. package/.next/static/chunks/app/api/sessions/[id]/tabs/route-bf8153dffcb47d46.js +1 -0
  566. package/.next/static/chunks/app/api/sessions/bulk-delete/route-bf8153dffcb47d46.js +1 -0
  567. package/.next/static/chunks/app/api/sessions/by-ids/route-bf8153dffcb47d46.js +1 -0
  568. package/.next/static/chunks/app/api/sessions/group/route-bf8153dffcb47d46.js +1 -0
  569. package/.next/static/chunks/app/api/sessions/pinned/route-bf8153dffcb47d46.js +1 -0
  570. package/.next/static/chunks/app/api/sessions/route-bf8153dffcb47d46.js +1 -0
  571. package/.next/static/chunks/app/api/sessions/search/route-bf8153dffcb47d46.js +1 -0
  572. package/.next/static/chunks/app/api/sessions/thinking/route-bf8153dffcb47d46.js +1 -0
  573. package/.next/static/chunks/app/api/skills/[name]/route-bf8153dffcb47d46.js +1 -0
  574. package/.next/static/chunks/app/api/skills/route-bf8153dffcb47d46.js +1 -0
  575. package/.next/static/chunks/app/api/terminal/[id]/route-bf8153dffcb47d46.js +1 -0
  576. package/.next/static/chunks/app/api/terminal/route-bf8153dffcb47d46.js +1 -0
  577. package/.next/static/chunks/app/api/usage/route-bf8153dffcb47d46.js +1 -0
  578. package/.next/static/chunks/app/api/version/changelog/route-bf8153dffcb47d46.js +1 -0
  579. package/.next/static/chunks/app/api/version/cockpit/changelog/route-bf8153dffcb47d46.js +1 -0
  580. package/.next/static/chunks/app/api/version/cockpit/route-bf8153dffcb47d46.js +1 -0
  581. package/.next/static/chunks/app/api/version/route-bf8153dffcb47d46.js +1 -0
  582. package/.next/static/chunks/{framework-6fd9f138158c42e0.js → framework-45a1aae1a0f575fd.js} +1 -1
  583. package/.next/static/chunks/{main-5dac9bfffcc23702.js → main-eb9ff0b73c75808a.js} +3 -3
  584. package/.next/static/chunks/next/dist/client/components/builtin/app-error-bf8153dffcb47d46.js +1 -0
  585. package/.next/static/chunks/next/dist/client/components/builtin/forbidden-bf8153dffcb47d46.js +1 -0
  586. package/.next/static/chunks/next/dist/client/components/builtin/not-found-bf8153dffcb47d46.js +1 -0
  587. package/.next/static/chunks/next/dist/client/components/builtin/unauthorized-bf8153dffcb47d46.js +1 -0
  588. package/.next/static/chunks/webpack-76a545b642140725.js +1 -0
  589. package/.next/static/css/4cc7360c7e3ca504.css +1 -0
  590. package/README.md +2 -2
  591. package/dist/server.js +10 -0
  592. package/dist/src/lib/cli-commands.js +147 -0
  593. package/dist/src/lib/models.js +57 -1
  594. package/dist/src/lib/paste-detect.js +161 -0
  595. package/dist/src/server/assistant-settings.js +35 -0
  596. package/dist/src/server/claude-bin.js +32 -0
  597. package/dist/src/server/claude-settings.js +3 -0
  598. package/dist/src/server/cli-init-fetch.js +6 -1
  599. package/dist/src/server/inbox.js +2 -2
  600. package/dist/src/server/job-scheduler.js +146 -4
  601. package/dist/src/server/job-storage.js +33 -0
  602. package/dist/src/server/mcp/cockpit-agent-prompt.js +5 -0
  603. package/dist/src/server/mcp/cockpit-config-server.js +632 -0
  604. package/dist/src/server/mcp/run-context.js +23 -0
  605. package/dist/src/server/notifications.js +51 -10
  606. package/dist/src/server/plugins.js +103 -0
  607. package/dist/src/server/providers.js +25 -2
  608. package/dist/src/server/pty-runtime.js +113 -3
  609. package/dist/src/server/pty-session.js +7 -4
  610. package/dist/src/server/session-manager.js +394 -116
  611. package/dist/src/server/singleton.js +9 -0
  612. package/dist/src/server/terminal-buffer.js +17 -0
  613. package/dist/src/server/terminal-manager.js +9 -13
  614. package/dist/src/server/transcript.js +65 -27
  615. package/dist/src/server/ws-handler.js +19 -7
  616. package/next.config.ts +1 -0
  617. package/package.json +3 -2
  618. package/.next/server/app/(app)/changes/page.js +0 -2
  619. package/.next/server/app/(app)/changes/page.js.nft.json +0 -1
  620. package/.next/server/app/(app)/changes/page_client-reference-manifest.js +0 -1
  621. package/.next/server/app/(app)/files/page.js +0 -2
  622. package/.next/server/app/(app)/files/page_client-reference-manifest.js +0 -1
  623. package/.next/server/app/changes.html +0 -1
  624. package/.next/server/app/changes.segments/!KGFwcCk/changes/__PAGE__.segment.rsc +0 -9
  625. package/.next/server/app/changes.segments/_index.segment.rsc +0 -5
  626. package/.next/server/app/files.html +0 -1
  627. package/.next/server/app/files.meta +0 -16
  628. package/.next/server/app/files.rsc +0 -23
  629. package/.next/server/app/files.segments/!KGFwcCk/files.segment.rsc +0 -5
  630. package/.next/server/app/files.segments/!KGFwcCk.segment.rsc +0 -7
  631. package/.next/server/app/files.segments/_full.segment.rsc +0 -23
  632. package/.next/server/app/files.segments/_head.segment.rsc +0 -6
  633. package/.next/server/app/files.segments/_tree.segment.rsc +0 -2
  634. package/.next/server/chunks/3006.js +0 -199
  635. package/.next/server/chunks/4342.js +0 -1
  636. package/.next/server/chunks/4352.js +0 -1
  637. package/.next/server/chunks/4445.js +0 -1
  638. package/.next/server/chunks/63.js +0 -45
  639. package/.next/server/chunks/7782.js +0 -6
  640. package/.next/server/chunks/8148.js +0 -1
  641. package/.next/server/chunks/9599.js +0 -11
  642. package/.next/static/I-rxZaJEzhe3ZUTjSqB11/_buildManifest.js +0 -1
  643. package/.next/static/chunks/18977.a98edaf19c6df2d4.js +0 -1
  644. package/.next/static/chunks/26126-97874904b42befb8.js +0 -1
  645. package/.next/static/chunks/31010-6e87f77b97544424.js +0 -1
  646. package/.next/static/chunks/33072.9c3cd19e8d515dea.js +0 -1
  647. package/.next/static/chunks/3765-d323c6675307a63e.js +0 -20
  648. package/.next/static/chunks/39267.ef60669ade47cf4c.js +0 -1
  649. package/.next/static/chunks/41487-d802643f4a8fad3c.js +0 -199
  650. package/.next/static/chunks/48273-fb393846bb4333c0.js +0 -6
  651. package/.next/static/chunks/52333.f98d1cca9a127b34.js +0 -1
  652. package/.next/static/chunks/6935-f436a624267529fb.js +0 -1
  653. package/.next/static/chunks/70400.1816c247ad90f9bc.js +0 -1
  654. package/.next/static/chunks/7113.39704408fef3d26e.js +0 -1
  655. package/.next/static/chunks/85853.39872899093b140a.js +0 -1
  656. package/.next/static/chunks/86155.40f687f9aaa13854.js +0 -1
  657. package/.next/static/chunks/86339.4dbd51a9b9871f65.js +0 -1
  658. package/.next/static/chunks/86939-dfc6f8eb395caa89.js +0 -1
  659. package/.next/static/chunks/93794-5f89a674d8cefcff.js +0 -32
  660. package/.next/static/chunks/989-94bf2b9d242776c3.js +0 -3
  661. package/.next/static/chunks/app/(app)/agents/[name]/page-8bdd0359043537d4.js +0 -8
  662. package/.next/static/chunks/app/(app)/agents/page-6fcfd7ab6781814e.js +0 -1
  663. package/.next/static/chunks/app/(app)/changes/page-4549a5bd72d77e3e.js +0 -1
  664. package/.next/static/chunks/app/(app)/claude-md/edit/page-08e6e120e71979f4.js +0 -1
  665. package/.next/static/chunks/app/(app)/commands/[name]/page-7cdfdef29ded0aa0.js +0 -6
  666. package/.next/static/chunks/app/(app)/commands/page-f126b608b04747ac.js +0 -1
  667. package/.next/static/chunks/app/(app)/files/page-f526eb95821e000e.js +0 -1
  668. package/.next/static/chunks/app/(app)/hooks/page-f1f39284e53c0344.js +0 -1
  669. package/.next/static/chunks/app/(app)/inbox/[id]/page-bc1ff3a0db0114a4.js +0 -1
  670. package/.next/static/chunks/app/(app)/inbox/page-82e03870103ce9bd.js +0 -1
  671. package/.next/static/chunks/app/(app)/jobs/[id]/edit/page-7fb788f772ff2129.js +0 -1
  672. package/.next/static/chunks/app/(app)/jobs/[id]/page-a5856b9ae967ff59.js +0 -1
  673. package/.next/static/chunks/app/(app)/jobs/[id]/runs/[runId]/page-b7c513402db11db6.js +0 -1
  674. package/.next/static/chunks/app/(app)/jobs/page-e9bbd6c116b9699f.js +0 -1
  675. package/.next/static/chunks/app/(app)/mcp-servers/page-4b7276d43451cd43.js +0 -1
  676. package/.next/static/chunks/app/(app)/page-027a5382da30ddb9.js +0 -1
  677. package/.next/static/chunks/app/(app)/reviews/[owner]/[repo]/[number]/page-9ab2955c455bb5fa.js +0 -13
  678. package/.next/static/chunks/app/(app)/reviews/page-47530d93bb9d4a76.js +0 -1
  679. package/.next/static/chunks/app/(app)/sessions/[id]/page-94f891e1b54fd05f.js +0 -1
  680. package/.next/static/chunks/app/(app)/settings/notifications/page-229f1db6beb1d19c.js +0 -1
  681. package/.next/static/chunks/app/(app)/settings/page-8ed16a66fdde10cd.js +0 -1
  682. package/.next/static/chunks/app/(app)/settings/providers/[id]/page-13654263246617b3.js +0 -1
  683. package/.next/static/chunks/app/(app)/settings/providers/new/page-e1798e321ccbc6df.js +0 -1
  684. package/.next/static/chunks/app/(app)/settings/providers/page-0bb4c1db2ee35b3d.js +0 -1
  685. package/.next/static/chunks/app/(app)/settings/session/page-ab216a8fa37a0f76.js +0 -1
  686. package/.next/static/chunks/app/(app)/skills/[name]/page-8ab85d5090967ee4.js +0 -6
  687. package/.next/static/chunks/app/(app)/skills/page-c52773eacb27c04e.js +0 -1
  688. package/.next/static/chunks/app/_global-error/page-fc747760bd4c8a4b.js +0 -1
  689. package/.next/static/chunks/app/api/agents/[name]/route-fc747760bd4c8a4b.js +0 -1
  690. package/.next/static/chunks/app/api/agents/route-fc747760bd4c8a4b.js +0 -1
  691. package/.next/static/chunks/app/api/auth/check/route-fc747760bd4c8a4b.js +0 -1
  692. package/.next/static/chunks/app/api/auth/login/route-fc747760bd4c8a4b.js +0 -1
  693. package/.next/static/chunks/app/api/auth/setup/route-fc747760bd4c8a4b.js +0 -1
  694. package/.next/static/chunks/app/api/auth/ws-token/route-fc747760bd4c8a4b.js +0 -1
  695. package/.next/static/chunks/app/api/btw/route-fc747760bd4c8a4b.js +0 -1
  696. package/.next/static/chunks/app/api/claude-md/route-fc747760bd4c8a4b.js +0 -1
  697. package/.next/static/chunks/app/api/commands/[name]/route-fc747760bd4c8a4b.js +0 -1
  698. package/.next/static/chunks/app/api/commands/route-fc747760bd4c8a4b.js +0 -1
  699. package/.next/static/chunks/app/api/defaults/route-fc747760bd4c8a4b.js +0 -1
  700. package/.next/static/chunks/app/api/filesystem/browse/route-fc747760bd4c8a4b.js +0 -1
  701. package/.next/static/chunks/app/api/filesystem/files/route-fc747760bd4c8a4b.js +0 -1
  702. package/.next/static/chunks/app/api/filesystem/mkdir/route-fc747760bd4c8a4b.js +0 -1
  703. package/.next/static/chunks/app/api/filesystem/read/route-fc747760bd4c8a4b.js +0 -1
  704. package/.next/static/chunks/app/api/git/clone/route-fc747760bd4c8a4b.js +0 -1
  705. package/.next/static/chunks/app/api/git/commit/route-fc747760bd4c8a4b.js +0 -1
  706. package/.next/static/chunks/app/api/git/diff/route-fc747760bd4c8a4b.js +0 -1
  707. package/.next/static/chunks/app/api/git/discard/route-fc747760bd4c8a4b.js +0 -1
  708. package/.next/static/chunks/app/api/git/generate-message/route-fc747760bd4c8a4b.js +0 -1
  709. package/.next/static/chunks/app/api/git/push/route-fc747760bd4c8a4b.js +0 -1
  710. package/.next/static/chunks/app/api/git/status/route-fc747760bd4c8a4b.js +0 -1
  711. package/.next/static/chunks/app/api/github/file-content/route-fc747760bd4c8a4b.js +0 -1
  712. package/.next/static/chunks/app/api/github/orgs/route-fc747760bd4c8a4b.js +0 -1
  713. package/.next/static/chunks/app/api/github/prs/checks/route-fc747760bd4c8a4b.js +0 -1
  714. package/.next/static/chunks/app/api/github/prs/diff/route-fc747760bd4c8a4b.js +0 -1
  715. package/.next/static/chunks/app/api/github/prs/review/route-fc747760bd4c8a4b.js +0 -1
  716. package/.next/static/chunks/app/api/github/prs/route-fc747760bd4c8a4b.js +0 -1
  717. package/.next/static/chunks/app/api/github/prs/view/route-fc747760bd4c8a4b.js +0 -1
  718. package/.next/static/chunks/app/api/github/repos/route-fc747760bd4c8a4b.js +0 -1
  719. package/.next/static/chunks/app/api/github/review-session/route-fc747760bd4c8a4b.js +0 -1
  720. package/.next/static/chunks/app/api/health/route-fc747760bd4c8a4b.js +0 -1
  721. package/.next/static/chunks/app/api/hooks/route-fc747760bd4c8a4b.js +0 -1
  722. package/.next/static/chunks/app/api/inbox/[id]/route-fc747760bd4c8a4b.js +0 -1
  723. package/.next/static/chunks/app/api/inbox/route-fc747760bd4c8a4b.js +0 -1
  724. package/.next/static/chunks/app/api/jobs/[id]/route-fc747760bd4c8a4b.js +0 -1
  725. package/.next/static/chunks/app/api/jobs/[id]/runs/[runId]/route-fc747760bd4c8a4b.js +0 -1
  726. package/.next/static/chunks/app/api/jobs/[id]/runs/[runId]/transcript/route-fc747760bd4c8a4b.js +0 -1
  727. package/.next/static/chunks/app/api/jobs/[id]/runs/route-fc747760bd4c8a4b.js +0 -1
  728. package/.next/static/chunks/app/api/jobs/[id]/trigger/route-fc747760bd4c8a4b.js +0 -1
  729. package/.next/static/chunks/app/api/jobs/mcp-discover/route-fc747760bd4c8a4b.js +0 -1
  730. package/.next/static/chunks/app/api/jobs/route-fc747760bd4c8a4b.js +0 -1
  731. package/.next/static/chunks/app/api/jobs/status/route-fc747760bd4c8a4b.js +0 -1
  732. package/.next/static/chunks/app/api/mcp-servers/[name]/route-fc747760bd4c8a4b.js +0 -1
  733. package/.next/static/chunks/app/api/mcp-servers/[name]/test/route-fc747760bd4c8a4b.js +0 -1
  734. package/.next/static/chunks/app/api/mcp-servers/route-fc747760bd4c8a4b.js +0 -1
  735. package/.next/static/chunks/app/api/notifications/route-fc747760bd4c8a4b.js +0 -1
  736. package/.next/static/chunks/app/api/notifications/test/route-fc747760bd4c8a4b.js +0 -1
  737. package/.next/static/chunks/app/api/providers/[id]/route-fc747760bd4c8a4b.js +0 -1
  738. package/.next/static/chunks/app/api/providers/route-fc747760bd4c8a4b.js +0 -1
  739. package/.next/static/chunks/app/api/reviews/pinned/route-fc747760bd4c8a4b.js +0 -1
  740. package/.next/static/chunks/app/api/sessions/[id]/context/route-fc747760bd4c8a4b.js +0 -1
  741. package/.next/static/chunks/app/api/sessions/[id]/mcp/route-fc747760bd4c8a4b.js +0 -1
  742. package/.next/static/chunks/app/api/sessions/[id]/route-fc747760bd4c8a4b.js +0 -1
  743. package/.next/static/chunks/app/api/sessions/[id]/search/route-fc747760bd4c8a4b.js +0 -1
  744. package/.next/static/chunks/app/api/sessions/[id]/tabs/route-fc747760bd4c8a4b.js +0 -1
  745. package/.next/static/chunks/app/api/sessions/bulk-delete/route-fc747760bd4c8a4b.js +0 -1
  746. package/.next/static/chunks/app/api/sessions/by-ids/route-fc747760bd4c8a4b.js +0 -1
  747. package/.next/static/chunks/app/api/sessions/group/route-fc747760bd4c8a4b.js +0 -1
  748. package/.next/static/chunks/app/api/sessions/pinned/route-fc747760bd4c8a4b.js +0 -1
  749. package/.next/static/chunks/app/api/sessions/route-fc747760bd4c8a4b.js +0 -1
  750. package/.next/static/chunks/app/api/sessions/search/route-fc747760bd4c8a4b.js +0 -1
  751. package/.next/static/chunks/app/api/sessions/thinking/route-fc747760bd4c8a4b.js +0 -1
  752. package/.next/static/chunks/app/api/skills/[name]/route-fc747760bd4c8a4b.js +0 -1
  753. package/.next/static/chunks/app/api/skills/route-fc747760bd4c8a4b.js +0 -1
  754. package/.next/static/chunks/app/api/terminal/[id]/route-fc747760bd4c8a4b.js +0 -1
  755. package/.next/static/chunks/app/api/terminal/route-fc747760bd4c8a4b.js +0 -1
  756. package/.next/static/chunks/app/api/usage/route-fc747760bd4c8a4b.js +0 -1
  757. package/.next/static/chunks/app/api/version/changelog/route-fc747760bd4c8a4b.js +0 -1
  758. package/.next/static/chunks/app/api/version/cockpit/changelog/route-fc747760bd4c8a4b.js +0 -1
  759. package/.next/static/chunks/app/api/version/cockpit/route-fc747760bd4c8a4b.js +0 -1
  760. package/.next/static/chunks/app/api/version/route-fc747760bd4c8a4b.js +0 -1
  761. package/.next/static/chunks/next/dist/client/components/builtin/app-error-fc747760bd4c8a4b.js +0 -1
  762. package/.next/static/chunks/next/dist/client/components/builtin/forbidden-fc747760bd4c8a4b.js +0 -1
  763. package/.next/static/chunks/next/dist/client/components/builtin/not-found-fc747760bd4c8a4b.js +0 -1
  764. package/.next/static/chunks/next/dist/client/components/builtin/unauthorized-fc747760bd4c8a4b.js +0 -1
  765. package/.next/static/chunks/webpack-e31bb45fa59caed8.js +0 -1
  766. package/.next/static/css/3f8af4ae6f812d5c.css +0 -1
  767. /package/.next/static/{I-rxZaJEzhe3ZUTjSqB11 → NTa6G91R3HtKCLYuQqdR0}/_ssgManifest.js +0 -0
@@ -1,4 +1,4 @@
1
- exports.id=1979,exports.ids=[1979],exports.modules={2864:(a,b,c)=>{"use strict";c.d(b,{E:()=>h});var d=c(48249),e=c(21654);c(67484);var f=c(14490);let g=(0,e.F)("inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring",{variants:{variant:{default:"border-transparent bg-primary text-primary-foreground",secondary:"border-transparent bg-secondary text-secondary-foreground",destructive:"border-transparent bg-destructive text-white",outline:"text-foreground"}},defaultVariants:{variant:"default"}});function h({className:a,variant:b,...c}){return(0,d.jsx)("div",{className:(0,f.cn)(g({variant:b}),a),...c})}},3284:(a,b,c)=>{"use strict";c.d(b,{GV:()=>W,si:()=>R,E2:()=>Q,mq:()=>S,tB:()=>T});var d=c(48249),e=c(35101),f=c(63120),g=c(81220),h=c(67484),i=c(19099);function j({children:a}){(0,i.useRouter)();let[b,c]=(0,h.useState)(!1);return b?(0,d.jsx)(d.Fragment,{children:a}):null}var k=c(35471),l=c(20878),m=c(29813),n=c(69357),o=c(45535),p=c(2864),q=c(25297),r=c(63647),s=c(80435);function t({preview:a,matchStart:b,matchLength:c}){let e=a.slice(0,b),f=a.slice(b,b+c),g=a.slice(b+c);return(0,d.jsxs)("span",{className:"text-sm text-muted-foreground whitespace-pre-wrap break-words select-text",children:[e,(0,d.jsx)("mark",{className:"bg-yellow-300/30 text-foreground rounded-sm px-0.5",children:f}),g]})}function u({text:a}){let[b,c]=(0,h.useState)(!1),e=(0,h.useCallback)(b=>{b.stopPropagation(),navigator.clipboard.writeText(a),c(!0),setTimeout(()=>c(!1),1500)},[a]);return(0,d.jsx)(q.$,{variant:"ghost",size:"icon",className:"h-6 w-6 shrink-0",onClick:e,title:"Copy full message",children:b?(0,d.jsx)(k.A,{className:"h-3 w-3"}):(0,d.jsx)(l.A,{className:"h-3 w-3"})})}function v({onClose:a}){let{sessionId:b,cwd:c}=Q(),[e,f]=(0,h.useState)(""),[g,i]=(0,h.useState)([]),[j,k]=(0,h.useState)(!1),[l,w]=(0,h.useState)(!1),[x,y]=(0,h.useState)(null),z=(0,h.useRef)(null);(0,h.useRef)(null);let A=(0,h.useCallback)(a=>{y(a)},[]),B=(0,h.useCallback)(b=>{b.target===b.currentTarget&&a()},[a]);return null!==x?(0,d.jsx)(s.Q,{timestamp:x,onClose:()=>y(null)}):(0,d.jsx)("div",{className:"fixed inset-0 z-50 bg-black/50 flex items-center justify-center p-4",onClick:B,children:(0,d.jsxs)(r.Zp,{className:"w-full max-w-2xl flex flex-col",style:{maxHeight:"calc(100dvh - 2rem)"},children:[(0,d.jsxs)("div",{className:"flex items-center gap-2 p-4 border-b",children:[(0,d.jsx)(m.A,{className:"h-4 w-4 text-muted-foreground shrink-0"}),(0,d.jsx)("input",{ref:z,value:e,onChange:a=>f(a.target.value),placeholder:"Search messages...",className:"flex-1 bg-transparent outline-none text-sm"}),j&&(0,d.jsx)(n.A,{className:"h-4 w-4 animate-spin text-muted-foreground shrink-0"}),(0,d.jsx)(q.$,{variant:"ghost",size:"icon",className:"h-6 w-6 shrink-0",onClick:a,children:(0,d.jsx)(o.A,{className:"h-4 w-4"})})]}),(0,d.jsxs)("div",{className:"flex-1 min-h-0 overflow-y-auto",children:[l&&0===g.length&&(0,d.jsx)("div",{className:"p-8 text-center text-sm text-muted-foreground",children:"No results"}),g.map((a,b)=>(0,d.jsxs)("button",{onClick:()=>A(a.timestamp),className:"w-full text-left p-4 border-b last:border-b-0 hover:bg-muted/50 transition-colors cursor-pointer",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2 mb-1",children:[(0,d.jsx)(p.E,{variant:"user"===a.role?"default":"secondary",className:"text-[10px] px-1.5 py-0",children:"user"===a.role?"User":"Assistant"}),(0,d.jsx)("span",{className:"text-xs text-muted-foreground select-text",children:new Date(a.timestamp).toLocaleString()}),(0,d.jsx)("div",{className:"ml-auto",children:(0,d.jsx)(u,{text:a.fullContent})})]}),(0,d.jsx)(t,{preview:a.preview,matchStart:a.matchStart,matchLength:a.matchLength})]},`${a.messageId}-${b}`))]})]})})}function w(){let{sessionId:a}=Q(),[b,c]=(0,h.useState)(!1);return a?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(q.$,{variant:"ghost",size:"icon",onClick:()=>c(!0),title:"Search messages (Ctrl+F)",children:(0,d.jsx)(m.A,{className:"h-4 w-4"})}),b&&(0,d.jsx)(v,{onClose:()=>c(!1)})]}):null}var x=c(40320),y=c(24950),z=c(99646);function A({tasks:a}){let[b,c]=(0,h.useState)(!1),e=a.filter(a=>"running"===a.status);return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)(q.$,{variant:"ghost",size:"icon",className:"h-8 w-8 relative",onClick:()=>c(!0),title:`${e.length} background task${1!==e.length?"s":""}`,children:[(0,d.jsx)(y.A,{className:"h-4 w-4"}),e.length>0&&(0,d.jsx)("span",{className:"absolute -top-0.5 -right-0.5 flex h-3.5 w-3.5 items-center justify-center rounded-full bg-primary text-[9px] font-bold text-primary-foreground",children:e.length})]}),b&&(0,d.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/50",onMouseDown:a=>{a.target===a.currentTarget&&c(!1)},children:(0,d.jsxs)("div",{className:"w-full max-w-md mx-4 rounded-lg border bg-background p-5 shadow-lg",children:[(0,d.jsxs)("div",{className:"flex items-center justify-between mb-4",children:[(0,d.jsx)("h2",{className:"text-base font-semibold",children:"Background Tasks"}),(0,d.jsx)(q.$,{variant:"ghost",size:"icon",onClick:()=>c(!1),children:(0,d.jsx)(o.A,{className:"h-4 w-4"})})]}),0===a.length?(0,d.jsx)("p",{className:"text-sm text-muted-foreground py-4 text-center",children:"No background tasks"}):(0,d.jsx)("div",{className:"space-y-2 max-h-64 overflow-y-auto",children:a.map(a=>(0,d.jsxs)("div",{className:"flex items-start gap-3 rounded-md border border-border px-3 py-2.5",children:["completed"===a.status?(0,d.jsx)(z.A,{className:"h-4 w-4 shrink-0 mt-0.5 text-green-500"}):(0,d.jsx)(n.A,{className:"h-4 w-4 shrink-0 mt-0.5 animate-spin text-muted-foreground"}),(0,d.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,d.jsx)("div",{className:"text-sm truncate",children:a.title||a.description}),a.title&&a.description&&a.description!==a.title&&(0,d.jsx)("div",{className:"text-xs text-muted-foreground truncate mt-0.5",children:a.description}),a.activity&&a.activity!==(a.title||a.description)&&(0,d.jsx)("div",{className:"text-xs text-muted-foreground truncate mt-0.5",children:a.activity}),"completed"===a.status&&a.summary&&(0,d.jsx)("div",{className:"text-xs text-muted-foreground truncate mt-0.5",children:a.summary})]})]},a.taskId))})]})})]})}var B=c(18201),C=c(82373);function D({todos:a}){let[b,c]=(0,h.useState)(!1),e=(0,h.useMemo)(()=>a.filter(a=>"completed"!==a.status).length,[a]);return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)(q.$,{variant:"ghost",size:"icon",className:"h-8 w-8 relative",onClick:()=>c(!0),title:`${e} todo${1!==e?"s":""}`,children:[(0,d.jsx)(B.A,{className:"h-4 w-4"}),e>0&&(0,d.jsx)("span",{className:"absolute -top-0.5 -right-0.5 flex h-3.5 w-3.5 items-center justify-center rounded-full bg-primary text-[9px] font-bold text-primary-foreground",children:e})]}),b&&(0,d.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/50",onMouseDown:a=>{a.target===a.currentTarget&&c(!1)},children:(0,d.jsxs)("div",{className:"w-full max-w-md mx-4 rounded-lg border bg-background p-5 shadow-lg",children:[(0,d.jsxs)("div",{className:"flex items-center justify-between mb-4",children:[(0,d.jsx)("h2",{className:"text-base font-semibold",children:"Todo"}),(0,d.jsx)(q.$,{variant:"ghost",size:"icon",onClick:()=>c(!1),children:(0,d.jsx)(o.A,{className:"h-4 w-4"})})]}),0===a.length?(0,d.jsx)("p",{className:"text-sm text-muted-foreground py-4 text-center",children:"No todo items"}):(0,d.jsx)("div",{className:"space-y-1 max-h-80 overflow-y-auto",children:a.map((a,b)=>(0,d.jsxs)("div",{className:"flex items-start gap-2.5 rounded-md px-3 py-2",children:[(0,d.jsx)(E,{status:a.status}),(0,d.jsx)("div",{className:`min-w-0 flex-1 text-sm ${"completed"===a.status?"text-muted-foreground line-through":""}`,children:"in_progress"===a.status&&a.activeForm?a.activeForm:a.content})]},b))})]})})]})}function E({status:a}){return"completed"===a?(0,d.jsx)(z.A,{className:"h-4 w-4 shrink-0 mt-0.5 text-green-500"}):"in_progress"===a?(0,d.jsx)(n.A,{className:"h-4 w-4 shrink-0 mt-0.5 animate-spin text-blue-500"}):(0,d.jsx)(C.A,{className:"h-4 w-4 shrink-0 mt-0.5 text-muted-foreground"})}var F=c(41290),G=c(27993);let H=null,I=0,J=null,K=null;async function L(a=!1){let b=Date.now();return!a&&H&&b-I<3e4?H:K||(K=(async()=>{try{let a=await fetch("/api/usage");if(!a.ok){let b=await a.json().catch(()=>({}));throw Error(b.error||`HTTP ${a.status}`)}let b=await a.json();return H=b,I=Date.now(),J=null,b}catch(a){return J=a instanceof Error?a.message:"Unknown error",null}finally{K=null}})())}function M({label:a,limit:b}){let c=Math.round(b.utilization),e=c>80?"#ef4444":c>50?"#f97316":"#22c55e";return(0,d.jsxs)("div",{className:"mb-4 last:mb-0",children:[(0,d.jsxs)("div",{className:"flex justify-between text-sm mb-1",children:[(0,d.jsx)("span",{children:a}),(0,d.jsxs)("span",{className:"text-muted-foreground",children:[c,"% \xb7 resets in ",function(a){let b=new Date(a).getTime()-Date.now();if(b<=0)return"now";let c=Math.floor(b/6e4),d=Math.floor(c/60),e=Math.floor(d/24);return e>0?`${e}d ${d%24}h`:d>0?`${d}h ${c%60}m`:`${c}m`}(b.resets_at)]})]}),(0,d.jsx)("div",{className:"h-2.5 rounded-full bg-muted overflow-hidden",children:(0,d.jsx)("div",{className:"h-full rounded-full transition-all",style:{width:`${Math.min(c,100)}%`,backgroundColor:e}})})]})}function N({className:a}){let[b,c]=(0,h.useState)(!1),{usage:e,loading:f,error:g,refresh:i}=function(){let[a,b]=(0,h.useState)(H),[c,d]=(0,h.useState)(null===H),[e,f]=(0,h.useState)(null),g=(0,h.useRef)(!0);return{usage:a,loading:c,error:e,refresh:(0,h.useCallback)(async(a=!1)=>{a&&d(!0);let c=await L(a);g.current&&(c?(b(c),f(null)):H||f(J||"Failed to load usage data"),d(!1))},[])}}(),j=e?.seven_day&&e.seven_day.utilization>=100?100:e?.five_hour?.utilization??0;return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(q.$,{variant:"ghost",size:"icon",onClick:()=>c(!0),title:"Account usage",className:a,children:(0,d.jsx)(F.A,{className:`h-4 w-4 ${e?j>80?"text-red-500":j>50?"text-orange-500":"text-green-500":""}`})}),b&&(0,d.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/50",onMouseDown:a=>{a.target===a.currentTarget&&c(!1)},children:(0,d.jsxs)("div",{className:"w-full max-w-md mx-4 rounded-lg border bg-background p-5 shadow-lg",children:[(0,d.jsxs)("div",{className:"flex items-center justify-between mb-4",children:[(0,d.jsx)("h2",{className:"text-base font-semibold",children:"Account Usage"}),(0,d.jsxs)("div",{className:"flex gap-1",children:[(0,d.jsx)(q.$,{variant:"ghost",size:"icon",onClick:()=>i(!0),disabled:f,title:"Refresh usage",children:(0,d.jsx)(G.A,{className:`h-4 w-4 ${f?"animate-spin":""}`})}),(0,d.jsx)(q.$,{variant:"ghost",size:"icon",onClick:()=>c(!1),children:(0,d.jsx)(o.A,{className:"h-4 w-4"})})]})]}),f&&!e&&(0,d.jsx)("div",{className:"flex items-center justify-center py-8",children:(0,d.jsx)(n.A,{className:"h-5 w-5 animate-spin text-muted-foreground"})}),g&&!e&&(0,d.jsx)("p",{className:"text-sm text-muted-foreground py-4 text-center",children:g}),e&&(0,d.jsxs)(d.Fragment,{children:[e.five_hour&&(0,d.jsx)(M,{label:"5-hour limit",limit:e.five_hour}),e.seven_day&&(0,d.jsx)(M,{label:"7-day limit",limit:e.seven_day}),e.seven_day_sonnet&&(0,d.jsx)(M,{label:"7-day Sonnet",limit:e.seven_day_sonnet}),e.seven_day_opus&&(0,d.jsx)(M,{label:"7-day Opus",limit:e.seven_day_opus}),e.extra_usage?.enabled&&(0,d.jsx)("div",{className:"mt-4 pt-3 border-t text-sm",children:(0,d.jsxs)("div",{className:"flex justify-between",children:[(0,d.jsx)("span",{children:"Extra usage credits"}),(0,d.jsxs)("span",{className:"font-medium",children:["$",e.extra_usage.remaining_credits.toFixed(2)," remaining"]})]})})]})]})})]})}var O=c(93571);let P=(0,h.createContext)({setHeader:()=>{},cwd:void 0,setCwd:()=>{},sessionId:void 0,setSessionId:()=>{},runtime:"stream",setRuntime:()=>{},backgroundTasks:[],setBackgroundTasks:()=>{},todos:[],setTodos:()=>{},initData:null,setInitData:()=>{},sidebarSections:new Map,setSidebarSection:()=>{},removeSidebarSection:()=>{},closeSidebar:()=>{},tabActions:null,setTabActions:()=>{}});function Q(){return(0,h.useContext)(P)}function R(a,b){let{setHeader:c}=Q();b?.hideActions}function S(a){let{setCwd:b}=Q()}function T(a){let{setSessionId:b}=Q()}function U({title:a,onRename:b}){let[c,e]=(0,h.useState)(!1),[f,g]=(0,h.useState)(a),i=(0,h.useRef)(null);if(!b)return(0,d.jsx)("span",{className:"text-sm font-bold truncate",children:a});if(!c)return(0,d.jsx)("button",{onClick:()=>e(!0),className:"text-sm font-bold truncate hover:text-muted-foreground transition-colors text-left",title:"Click to rename",children:a});let j=()=>{let c=f.trim();c&&c!==a&&b(c),e(!1)};return(0,d.jsx)("input",{ref:i,value:f,onChange:a=>g(a.target.value),onBlur:j,onKeyDown:b=>{"Enter"===b.key&&j(),"Escape"===b.key&&(g(a),e(!1))},className:"text-sm font-bold bg-transparent border-b border-primary outline-none w-40"})}function V({cwd:a}){let{tabActions:b}=Q(),[c,f]=(0,h.useState)(!1),g=(0,h.useCallback)(async()=>{if(b?.openTerminal){f(!0);try{let c=await fetch("/api/terminal",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:a})});if(!c.ok)return;let{terminalId:d}=await c.json();b.openTerminal(d)}finally{f(!1)}}},[a,b]);return(0,d.jsx)(q.$,{variant:"ghost",size:"icon",onClick:g,disabled:c,title:"New terminal (Ctrl+`)",children:(0,d.jsx)(e.A,{className:"h-4 w-4"})})}function W({children:a}){let b=(0,h.useRef)(null),[c,e]=(0,h.useState)({title:"Cockpit"}),[i,k]=(0,h.useState)(void 0),[l,m]=(0,h.useState)(void 0),[n,o]=(0,h.useState)([]),[p,r]=(0,h.useState)([]),[s,t]=(0,h.useState)(null),[u,v]=(0,h.useState)(new Map),[y,z]=(0,h.useState)("stream"),[B,C]=(0,h.useState)(null),E=(0,h.useCallback)(a=>{v(b=>{let c=new Map(b);return c.set(a.id,a),c})},[]),F=(0,h.useCallback)(a=>{v(b=>{if(!b.has(a))return b;let c=new Map(b);return c.delete(a),c})},[]),G=(0,h.useCallback)(a=>{e(a)},[]),H=(0,h.useCallback)(a=>{k(a)},[]),I=(0,h.useCallback)(a=>{m(a)},[]),J=(0,h.useCallback)(()=>{b.current?.toggle()},[]),K=(0,h.useCallback)(()=>{b.current?.close()},[]),L=(0,h.useCallback)(a=>{z(a)},[]),M=(0,h.useCallback)(a=>{C(a)},[]);return(0,d.jsx)(j,{children:(0,d.jsx)(O.f,{children:(0,d.jsx)(P.Provider,{value:{setHeader:G,cwd:i,setCwd:H,sessionId:l,setSessionId:I,runtime:y,setRuntime:L,backgroundTasks:n,setBackgroundTasks:o,todos:p,setTodos:r,initData:s,setInitData:t,sidebarSections:u,setSidebarSection:E,removeSidebarSection:F,closeSidebar:K,tabActions:B,setTabActions:M},children:(0,d.jsxs)("div",{className:"fixed inset-0 flex",children:[(0,d.jsx)(x.Bx,{ref:b}),(0,d.jsxs)("div",{className:"flex-1 min-h-0 min-w-0 flex flex-col",children:[(0,d.jsxs)("header",{className:"shrink-0 flex items-center gap-2 border-b px-4 py-2 bg-background",children:[(0,d.jsx)(q.$,{variant:"ghost",size:"icon",onClick:J,title:"Toggle sidebar (Ctrl+B)",className:"md:hidden",children:(0,d.jsx)(f.A,{className:"h-4 w-4"})}),(0,d.jsxs)("div",{className:"hidden md:flex items-center gap-2 min-w-0 flex-1 overflow-hidden",children:[(0,d.jsx)(g.default,{src:"/icon-192.png",alt:"",width:22,height:22,className:"shrink-0 dark:invert"}),(0,d.jsx)(U,{title:c.title,onRename:c.onRename})]}),!c.hideActions&&(0,d.jsxs)("div",{className:"flex items-center gap-2 shrink-0 ml-auto",children:[i&&(0,d.jsx)(V,{cwd:i}),(0,d.jsx)(w,{}),i&&(0,d.jsx)(D,{todos:p}),i&&(0,d.jsx)(A,{tasks:n}),(0,d.jsx)(N,{})]})]}),(0,d.jsx)("main",{className:"flex-1 min-h-0 min-w-0 flex flex-col",children:a})]})]})})})})}},5223:(a,b,c)=>{"use strict";c.d(b,{h:()=>r});var d=c(48249),e=c(69357),f=c(69627),g=c(91995),h=c(22130),i=c(2409),j=c(8251),k=c(67484),l=c(93571),m=c(14490);let n=new Map;async function o(a,b=!1){if(!b){let b=n.get(a);if(b)return b}let c=new URLSearchParams({path:a,includeFiles:"true",showHidden:"true"}),d=await fetch(`/api/filesystem/browse?${c}`);if(!d.ok)return n.get(a)||[];let e=((await d.json()).entries||[]).map(a=>({name:a.name,path:a.path,type:a.type}));return n.set(a,e),e}let p=new Map;function q({node:a,depth:b,selectedFile:c,onSelectFile:l,expandedSet:p,onToggleExpand:r,refreshTick:s}){let t="directory"===a.type,u=p.has(a.path),[v,w]=(0,k.useState)(n.get(a.path)||[]),[x,y]=(0,k.useState)(!1),z=(0,k.useCallback)(()=>{t?(r(a.path),p.has(a.path)||n.has(a.path)||(y(!0),o(a.path).then(a=>{w(a),y(!1)}))):l(a.path)},[t,a.path,r,l,p]);return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)("div",{className:(0,m.cn)("flex items-center gap-1 px-2 py-1 text-sm cursor-pointer hover:bg-muted/50",!t&&c===a.path&&"bg-muted"),style:{paddingLeft:`${16*b+8}px`},onClick:z,children:[t?(0,d.jsxs)(d.Fragment,{children:[x?(0,d.jsx)(e.A,{className:"h-3.5 w-3.5 shrink-0 animate-spin text-muted-foreground"}):u?(0,d.jsx)(f.A,{className:"h-3.5 w-3.5 shrink-0 text-muted-foreground"}):(0,d.jsx)(g.A,{className:"h-3.5 w-3.5 shrink-0 text-muted-foreground"}),u?(0,d.jsx)(h.A,{className:"h-3.5 w-3.5 shrink-0 text-muted-foreground"}):(0,d.jsx)(i.A,{className:"h-3.5 w-3.5 shrink-0 text-muted-foreground"})]}):(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("span",{className:"w-3.5 shrink-0"}),(0,d.jsx)(j.A,{className:"h-3.5 w-3.5 shrink-0 text-muted-foreground"})]}),(0,d.jsx)("span",{className:"font-mono text-xs truncate",children:a.name})]}),t&&u&&v.map(a=>(0,d.jsx)(q,{node:a,depth:b+1,selectedFile:c,onSelectFile:l,expandedSet:p,onToggleExpand:r,refreshTick:s},a.path))]})}function r({cwd:a,selectedFile:b,onSelectFile:c}){let[f,g]=(0,k.useState)(n.get(a)||[]),[h,i]=(0,k.useState)(0===f.length),[j,m]=(0,k.useState)(()=>{let b;return(b=p.get(a))||(b=new Set,p.set(a,b)),b}),[o,s]=(0,k.useState)(0);(0,k.useRef)(a),(0,k.useRef)(j).current=j;let{subscribe:t}=(0,l.h)(),u=(0,k.useCallback)(b=>{m(c=>{let d=new Set(c);return d.has(b)?d.delete(b):d.add(b),p.set(a,d),d})},[a]);return h?(0,d.jsx)("div",{className:"flex items-center justify-center py-12",children:(0,d.jsx)(e.A,{className:"h-5 w-5 animate-spin text-muted-foreground"})}):0===f.length?(0,d.jsx)("div",{className:"flex items-center justify-center py-12 text-sm text-muted-foreground",children:"Empty directory"}):(0,d.jsx)("div",{className:"py-1",children:f.map(a=>(0,d.jsx)(q,{node:a,depth:0,selectedFile:b,onSelectFile:c,expandedSet:j,onToggleExpand:u,refreshTick:o},a.path))})}},14490:(a,b,c)=>{"use strict";c.d(b,{cn:()=>f});var d=c(99314),e=c(96862);function f(...a){return(0,e.QP)((0,d.$)(a))}},14670:(a,b,c)=>{Promise.resolve().then(c.bind(c,29604))},15637:()=>{},19198:(a,b,c)=>{"use strict";c.d(b,{K:()=>m});var d=c(48249),e=c(91995),f=c(69357),g=c(2409),h=c(87914),i=c(67484),j=c(25297),k=c(88877),l=c(94856);function m({onSelect:a,onCancel:b}){let[c,n]=(0,i.useState)(""),[o,p]=(0,i.useState)([]),[q,r]=(0,i.useState)(!0),[s,t]=(0,i.useState)(""),[u,v]=(0,i.useState)(!1),[w,x]=(0,i.useState)(""),[y,z]=(0,i.useState)(""),A=(0,i.useCallback)(async a=>{r(!0),t("");let b=new URLSearchParams;a&&b.set("path",a);try{let a=await fetch(`/api/filesystem/browse?${b}`);if(!a.ok){let b=await a.json().catch(()=>({error:"Failed to browse"}));t(b.error||"Failed to browse"),p([]);return}let c=await a.json();n(c.path),p(c.entries)}catch{t("Failed to connect"),p([])}finally{r(!1)}},[]),B=async()=>{let a=w.trim();if(a){z("");try{let b=await fetch("/api/filesystem/mkdir",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({parentPath:c,name:a})});if(!b.ok){let a=await b.json().catch(()=>({error:"Failed to create folder"}));z(a.error||"Failed to create folder");return}let d=await b.json();v(!1),x(""),A(d.path)}catch{z("Failed to connect")}}},C=(0,l.cs)(c),D=/^[a-zA-Z]:[/\\]/.test(c),E=D?c.slice(0,3):"/",F=D?c.slice(0,3):"/",G=D?C.slice(1):C;return(0,d.jsxs)("div",{className:"space-y-3",children:[(0,d.jsxs)("div",{className:"flex items-center gap-1 text-xs font-mono overflow-x-auto",children:[(0,d.jsx)("button",{type:"button",onClick:()=>A(F),className:"shrink-0 text-muted-foreground hover:text-foreground",children:E}),G.map((a,b)=>{let c=F+G.slice(0,b+1).join("/"),f=b===G.length-1;return(0,d.jsxs)("span",{className:"flex items-center gap-1",children:[(0,d.jsx)(e.A,{className:"h-3 w-3 text-muted-foreground shrink-0"}),f?(0,d.jsx)("span",{className:"text-foreground font-medium",children:a}):(0,d.jsx)("button",{type:"button",onClick:()=>A(c),className:"text-muted-foreground hover:text-foreground",children:a})]},c)})]}),(0,d.jsxs)("div",{className:"border rounded-md max-h-56 overflow-y-auto",children:[q&&(0,d.jsx)("div",{className:"flex items-center justify-center py-8",children:(0,d.jsx)(f.A,{className:"h-4 w-4 animate-spin text-muted-foreground"})}),s&&(0,d.jsx)("div",{className:"px-3 py-4 text-sm text-destructive",children:s}),!q&&!s&&0===o.length&&!u&&(0,d.jsx)("div",{className:"px-3 py-4 text-sm text-muted-foreground",children:"No subdirectories"}),!q&&!s&&o.map(a=>(0,d.jsxs)("button",{type:"button",onClick:()=>A(a.path),className:"flex w-full items-center gap-2 px-3 py-1.5 text-sm hover:bg-muted/50 text-left",children:[(0,d.jsx)(g.A,{className:"h-4 w-4 shrink-0 text-muted-foreground"}),(0,d.jsx)("span",{className:"truncate",children:a.name})]},a.path)),u&&(0,d.jsxs)("div",{className:"px-3 py-1.5 space-y-1",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)(h.A,{className:"h-4 w-4 shrink-0 text-muted-foreground"}),(0,d.jsx)(k.p,{value:w,onChange:a=>x(a.target.value),onKeyDown:a=>{"Enter"===a.key&&(a.preventDefault(),B()),"Escape"===a.key&&(v(!1),x(""),z(""))},placeholder:"Folder name",className:"h-7 text-sm",autoFocus:!0}),(0,d.jsx)(j.$,{type:"button",size:"sm",variant:"ghost",className:"h-7 px-2 text-xs",onClick:B,children:"Create"})]}),y&&(0,d.jsx)("p",{className:"text-xs text-destructive pl-6",children:y})]})]}),(0,d.jsxs)("div",{className:"flex gap-2 justify-end",children:[!u&&(0,d.jsxs)(j.$,{type:"button",variant:"outline",size:"sm",onClick:()=>{v(!0),z("")},disabled:!c,children:[(0,d.jsx)(h.A,{className:"h-3.5 w-3.5 mr-1.5"}),"New Folder"]}),(0,d.jsx)("div",{className:"flex-1"}),(0,d.jsx)(j.$,{type:"button",variant:"outline",size:"sm",onClick:b,children:"Cancel"}),(0,d.jsxs)(j.$,{type:"button",size:"sm",disabled:!c,onClick:()=>a(c),children:["Select ",c?(0,l.uk)(c)||"/":""]})]})]})}},20390:(a,b,c)=>{"use strict";c.d(b,{s:()=>P});var d=c(48249),e=c(69357),f=c(91995),g=c(69627),h=c(15741),i=c(8251),j=c(64571),k=c(67484),l=c(36606),m=c(42377),n=c(38393),o=c(23077),p=c(14490),q=c(28470),r=c(90069),s=c(19099),t=c(94856),u=c(3284),v=c(42708),w=c(53649);function x(a,b){let c=a.toLowerCase();return("write"===c||"edit"===c)&&(b.includes("/.claude/plans/")||b.startsWith("~/.claude/plans/"))&&b.endsWith(".md")}function y({tool:a,expandedToolIds:b}){let c=function(){let[a,b]=(0,k.useState)(!1);return a}(),{backgroundTasks:e}=(0,u.E2)(),{settings:g,loaded:h}=(0,o.t)(),i=(0,k.useMemo)(()=>(function(a){if(!a)return{};try{return JSON.parse(a)}catch{return{}}})(a.input),[a.input]),[j,l]=(0,k.useState)(()=>b?.current?.has(a.id)??!1),[m,n]=(0,k.useState)(!1),r=(0,k.useRef)(b?.current?.has(a.id)??!1),s=i.file_path||a.filePath||"",t=x(a.name,s),v=i.content||"",z=t&&("Write"===a.name||"write"===a.name)&&v,A="EnterPlanMode"!==a.name&&"ExitPlanMode"!==a.name&&"TaskCreate"!==a.name&&"TaskUpdate"!==a.name&&"TaskList"!==a.name&&"TaskGet"!==a.name&&"TodoWrite"!==a.name&&(a.input||a.output),B=(0,k.useMemo)(()=>({current:!1}),[]),C=(0,k.useCallback)(a=>{a&&B.current&&(B.current=!1,requestAnimationFrame(()=>{let b=a.closest("[tabindex]");if(!b)return;let c=b.getBoundingClientRect();a.getBoundingClientRect().bottom>c.bottom&&a.scrollIntoView({block:"nearest",behavior:"smooth"})}))},[B]);return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)("div",{className:"rounded border border-border bg-card text-card-foreground text-xs overflow-hidden",children:[(0,d.jsxs)("button",{onClick:()=>{if(z)return void n(!0);if(!A)return;let c=!j;B.current=c,r.current=!0,l(c),b?.current&&(c?b.current.add(a.id):b.current.delete(a.id))},className:(0,p.cn)("flex w-full items-start gap-2 px-3 py-1.5 text-left",A&&"cursor-pointer hover:bg-muted/50",!A&&"cursor-default"),children:[z?(0,d.jsx)(q.A,{className:"h-3 w-3 shrink-0 text-blue-500"}):(0,d.jsx)(f.A,{className:(0,p.cn)("h-3 w-3 shrink-0 text-muted-foreground transition-transform",j&&"rotate-90")}),"Agent"===a.name?(0,d.jsx)(D,{tool:a,input:i,backgroundTasks:e}):(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("span",{className:"font-mono font-medium",children:a.name}),(0,d.jsx)(E,{tool:a,input:i})]})]}),j&&A&&(0,d.jsx)("div",{ref:C,className:"border-t border-border px-3 py-2 space-y-2",children:(0,d.jsx)(F,{tool:a,input:i,dark:c,expandedToolIds:b})})]}),z&&(0,d.jsx)(w.G,{open:m,onOpenChange:n,content:v,filePath:s})]})}function z(a){let{cwd:b}=(0,u.E2)();return`/files?cwd=${encodeURIComponent(b||"")}&file=${encodeURIComponent(a)}`}function A(){let a=document.querySelector("[data-chat-scroll]");a&&sessionStorage.setItem("cockpit:scrollPos:"+window.location.pathname,String(a.scrollTop))}function B({filePath:a}){let{tabActions:b}=(0,u.E2)(),c=z(a),e=(0,s.useRouter)();return(0,d.jsx)("button",{onClick:d=>{d.stopPropagation(),b?b.openFile(a):(A(),e.push(c))},title:a,className:"shrink-0 text-muted-foreground hover:text-foreground",children:(0,d.jsx)(r.A,{className:"h-3 w-3"})})}function C({filePath:a,children:b}){let{tabActions:c}=(0,u.E2)(),e=z(a),f=(0,s.useRouter)();return(0,d.jsx)("a",{href:e,onClick:b=>{b.preventDefault(),c?c.openFile(a):(A(),f.push(e))},title:a,className:"font-mono text-muted-foreground break-all hover:underline",children:b})}function D({tool:a,input:b,backgroundTasks:c}){let f=b.description||b.prompt||"",g=f.length>80?f.slice(0,80)+"...":f,h=b.model,i=[b.subagent_type,h].filter(Boolean),j="running"===a.status||c.some(b=>b.toolUseId===a.id&&"running"===b.status);return(0,d.jsxs)("div",{className:"flex flex-col gap-0.5 min-w-0 flex-1",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("span",{className:"font-mono font-medium",children:"Agent"}),j&&(0,d.jsx)(e.A,{className:"h-3 w-3 shrink-0 animate-spin text-muted-foreground"}),i.map(a=>(0,d.jsx)("span",{className:"shrink-0 rounded bg-muted px-1.5 py-0.5 text-[10px] text-muted-foreground",children:a},a))]}),g&&(0,d.jsx)("span",{className:"text-muted-foreground truncate",children:g})]})}function E({tool:a,input:b}){let c=a.name;if("Edit"===c||"edit"===c){let e=b.file_path||a.filePath||"";if(!e)return null;let f=x(c,e);return(0,d.jsxs)("span",{className:"flex items-center gap-1.5 min-w-0",children:[(0,d.jsxs)("span",{className:"text-muted-foreground truncate",children:[(0,t._1)(e),f?" (plan edit)":""]}),(0,d.jsx)(B,{filePath:e})]})}if("Write"===c||"write"===c){let e=b.file_path||a.filePath||"";if(!e)return null;let f=b.content||"";return x(c,e)&&f?(0,d.jsx)("span",{className:"text-blue-500 truncate",children:"View plan"}):(0,d.jsxs)("span",{className:"flex items-center gap-1.5 min-w-0",children:[(0,d.jsx)("span",{className:"text-muted-foreground truncate",children:(0,t._1)(e)}),(0,d.jsx)(B,{filePath:e})]})}if("Read"===c||"read"===c){let c=b.file_path||a.filePath||"";return c?(0,d.jsxs)("span",{className:"flex items-center gap-1.5 min-w-0",children:[(0,d.jsx)("span",{className:"text-muted-foreground truncate",children:(0,t._1)(c)}),(0,d.jsx)(B,{filePath:c})]}):null}if("Bash"===c||"bash"===c){let a=b.command||"",c=a.length>60?a.slice(0,60)+"...":a;return c?(0,d.jsx)("span",{className:"font-mono text-muted-foreground truncate",children:c}):null}if("Grep"===c||"grep"===c){let a=b.pattern||"";return a?(0,d.jsxs)("span",{className:"font-mono text-muted-foreground truncate",children:["/",a,"/"]}):null}if("Glob"===c||"glob"===c){let a=b.pattern||"";return a?(0,d.jsx)("span",{className:"font-mono text-muted-foreground truncate",children:a}):null}if("EnterPlanMode"===c)return(0,d.jsx)("span",{className:"text-muted-foreground",children:"Entering plan mode"});if("ExitPlanMode"===c)return(0,d.jsx)("span",{className:"text-muted-foreground",children:"Exiting plan mode"});if("TaskCreate"===c){let a=b.subject||b.content||"";return a?(0,d.jsx)("span",{className:"text-muted-foreground truncate",children:a}):null}if("TaskUpdate"===c){let a=b.taskId||"",c=b.status||"";return a?(0,d.jsxs)("span",{className:"text-muted-foreground truncate",children:["#",a," ",c]}):null}if("TaskList"===c)return(0,d.jsx)("span",{className:"text-muted-foreground",children:"Listing tasks"});if("TaskGet"===c){let a=b.taskId||"";return a?(0,d.jsxs)("span",{className:"text-muted-foreground",children:["#",a]}):null}return null}function F({tool:a,input:b,dark:c,expandedToolIds:e}){let f=a.name;return"Edit"===f||"edit"===f?(0,d.jsx)(G,{input:b,tool:a,dark:c}):"Write"===f||"write"===f?(0,d.jsx)(H,{input:b,tool:a,dark:c}):"Read"===f||"read"===f?(0,d.jsx)(I,{input:b,tool:a,dark:c}):"Bash"===f||"bash"===f?(0,d.jsx)(J,{input:b,tool:a}):"Grep"===f||"grep"===f||"Glob"===f||"glob"===f?(0,d.jsx)(K,{input:b,tool:a}):"Agent"===f?(0,d.jsx)(L,{input:b,tool:a,dark:c,expandedToolIds:e}):(0,d.jsx)(M,{input:b,tool:a})}function G({input:a,tool:b,dark:c}){let e=a.file_path||b.filePath||"file",f=a.old_string||"",g=a.new_string||"";return f||g?(0,d.jsx)(v.Mh,{filePath:e,oldString:f,newString:g,dark:c}):(0,d.jsx)(M,{input:a,tool:b})}function H({input:a,tool:b,dark:c}){let e=a.file_path||b.filePath||"",f=a.content||"",g=e?(0,l.WG)(e):void 0;return(0,d.jsxs)("div",{className:"space-y-1",children:[e&&(0,d.jsx)(C,{filePath:e,children:e}),f&&(0,d.jsx)(l.NG,{code:f,language:g,dark:c}),b.output&&(0,d.jsx)("pre",{className:"overflow-x-auto rounded bg-muted/50 p-2 text-[11px] leading-relaxed max-h-32 overflow-y-auto text-muted-foreground",children:b.output})]})}function I({input:a,tool:b,dark:c}){let e=a.file_path||b.filePath||"",f=e?(0,l.WG)(e):void 0;return(0,d.jsxs)("div",{className:"space-y-1",children:[e&&(0,d.jsx)(C,{filePath:e,children:e}),b.output&&(0,d.jsx)(l.NG,{code:b.output,language:f,dark:c})]})}function J({input:a,tool:b}){let c=a.command||"";return(0,d.jsxs)("div",{className:"space-y-1",children:[c&&(0,d.jsxs)("div",{className:"font-mono text-muted-foreground break-all",children:[(0,d.jsx)("span",{className:"text-foreground/60",children:"$"})," ",c]}),b.output&&(0,d.jsx)("pre",{className:"whitespace-pre-wrap break-all rounded bg-muted/50 p-2 text-[11px] leading-relaxed max-h-64 overflow-y-auto",children:b.output})]})}function K({input:a,tool:b}){let c=a.pattern||"",e=a.path||"";return(0,d.jsxs)("div",{className:"space-y-1",children:[(0,d.jsxs)("div",{className:"font-mono text-muted-foreground",children:[c&&(0,d.jsxs)("span",{children:["/",c,"/"]}),e&&(0,d.jsxs)("span",{children:[" in ",(0,t._1)(e)]})]}),b.output&&(0,d.jsx)("pre",{className:"overflow-x-auto rounded bg-muted/50 p-2 text-[11px] leading-relaxed max-h-64 overflow-y-auto",children:b.output})]})}function L({input:a,tool:b,expandedToolIds:c}){let e=a.prompt||"",f=b.children||[];return(0,d.jsxs)("div",{className:"space-y-2",children:[e&&(0,d.jsx)("pre",{className:"overflow-x-auto rounded bg-muted/50 p-2 text-[11px] leading-relaxed max-h-32 overflow-y-auto text-muted-foreground",children:e}),f.length>0&&(0,d.jsx)("div",{className:"pl-3 border-l-2 border-border space-y-1",children:f.map(a=>(0,d.jsx)(y,{tool:a,expandedToolIds:c},a.id))}),b.output&&(0,d.jsx)("pre",{className:"overflow-x-auto rounded bg-muted/50 p-2 text-[11px] leading-relaxed max-h-48 overflow-y-auto text-muted-foreground",children:b.output})]})}function M({input:a,tool:b}){let c=Object.keys(a).length>0;return(0,d.jsxs)("div",{className:"space-y-1",children:[c&&(0,d.jsx)("pre",{className:"overflow-x-auto rounded bg-muted/50 p-2 text-[11px] leading-relaxed max-h-48 overflow-y-auto",children:JSON.stringify(a,null,2)}),b.output&&(0,d.jsx)("pre",{className:"overflow-x-auto rounded bg-muted/50 p-2 text-[11px] leading-relaxed max-h-48 overflow-y-auto text-muted-foreground",children:b.output})]})}let N=/<(?:task-notification|local-command-caveat|local-command-stdout|command-name|command-message|command-args|system-reminder)[^>]*>[\s\S]*?<\/(?:task-notification|local-command-caveat|local-command-stdout|command-name|command-message|command-args|system-reminder)>[\s\S]*/g;function O(a){return a.replace(N,"").trim()}let P=(0,k.memo)(function({message:a,collapsedByDefault:b=!1,expandedToolIds:c,selectionMode:i=!1,selected:j=!1,onEnterSelection:l,onToggleSelect:o}){let[q,r]=(0,k.useState)(b),[s,t]=(0,k.useState)(null),u="user"===a.role,v="system"===a.role,w=!v,x=new Set(["AskUserQuestion","TodoWrite"]),z=a.blocks?.filter(a=>!("tool_use"===a.type&&x.has(a.toolUse.name)))||[],A=z.length>0,B=(0,k.useRef)(!1),C=(0,k.useRef)(null),D=(0,k.useCallback)(b=>{B.current||i&&(b.preventDefault(),w&&o?.(a.id))},[w,i,a.id,o]),E=(0,k.useCallback)(()=>{B.current=!0},[]),F=(0,k.useCallback)(()=>{B.current=!1},[]),G=(0,k.useCallback)(b=>{if(i){w&&o?.(a.id);return}if(!w)return;let c=Date.now(),d=C.current;if(d&&c-d.time<300){let c=b.clientX-d.x,e=b.clientY-d.y;if(c*c+e*e<400){C.current=null,window.getSelection()?.removeAllRanges(),l?.(a.id);return}}C.current={time:c,x:b.clientX,y:b.clientY}},[i,w,a.id,o,l]);if(v){let b="__compacting__"===a.content,c="__compacted__"===a.content;return b||c?(0,d.jsxs)("div",{className:"flex w-full items-center gap-3 py-2",children:[(0,d.jsx)("div",{className:"flex-1 border-t border-border"}),(0,d.jsxs)("div",{className:"flex items-center gap-1.5 text-[10px] text-muted-foreground uppercase tracking-wider",children:[b&&(0,d.jsx)(e.A,{className:"h-3 w-3 animate-spin"}),b?"Compacting...":"Compacted"]}),(0,d.jsx)("div",{className:"flex-1 border-t border-border"})]}):"__context_reset__"===a.content?(0,d.jsxs)("div",{className:"flex w-full items-center gap-3 py-2",children:[(0,d.jsx)("div",{className:"flex-1 border-t border-border"}),(0,d.jsx)("div",{className:"text-[10px] text-muted-foreground uppercase tracking-wider",children:"Context cleared"}),(0,d.jsx)("div",{className:"flex-1 border-t border-border"})]}):(0,d.jsx)("div",{className:"flex w-full justify-center",children:(0,d.jsx)("div",{className:"text-xs text-muted-foreground whitespace-pre-wrap py-1",children:a.content})})}return!u&&!v&&!A&&!a.content&&a.toolUses.every(a=>x.has(a.name))||u&&a.content.startsWith("[Request interrupted")?null:q?(a.content.slice(0,80).replace(/\n/g," "),(0,d.jsx)("div",{className:"flex w-full justify-start",children:(0,d.jsx)("button",{onClick:()=>r(!1),className:"max-w-[85%] rounded-lg px-4 py-2 bg-muted text-foreground text-left overflow-hidden",children:(0,d.jsxs)("div",{className:"flex items-center gap-1.5 text-xs text-muted-foreground",children:[(0,d.jsx)(f.A,{className:"h-3 w-3"}),(0,d.jsx)("span",{className:"font-medium",children:"Compaction summary"})]})})})):(0,d.jsxs)("div",{className:(0,p.cn)("flex w-full",u&&!b?"justify-end":"justify-start",i&&"cursor-pointer select-none"),onContextMenu:D,onTouchStart:E,onMouseDown:F,onClick:G,children:[(0,d.jsxs)("div",{className:(0,p.cn)("max-w-[85%] rounded-lg px-4 py-2 overflow-hidden transition-colors",u&&!b?"bg-primary text-primary-foreground":"bg-muted text-foreground",j&&"ring-2 ring-blue-500"),children:[b&&(0,d.jsxs)("button",{onClick:()=>r(!0),className:"flex items-center gap-1 text-xs text-muted-foreground mb-2 hover:text-foreground",children:[(0,d.jsx)(g.A,{className:"h-3 w-3"}),(0,d.jsx)("span",{className:"font-medium",children:"Compaction summary"})]}),u?(0,d.jsxs)(d.Fragment,{children:[a.images&&a.images.length>0&&(0,d.jsx)("div",{className:"flex gap-2 flex-wrap mb-2",children:a.images.map((a,b)=>(0,d.jsx)("img",{src:`data:${a.mediaType};base64,${a.data}`,className:"max-h-60 rounded border border-primary-foreground/20 object-contain cursor-pointer",alt:"",onClick:b=>{b.stopPropagation(),t(`data:${a.mediaType};base64,${a.data}`)}},b))}),a.documents&&a.documents.length>0&&(0,d.jsx)("div",{className:"flex gap-2 flex-wrap mb-2",children:a.documents.map((a,b)=>(0,d.jsxs)("div",{className:"flex items-center gap-1.5 rounded border border-primary-foreground/20 px-2 py-1 text-xs",children:[(0,d.jsx)(h.A,{className:"h-3.5 w-3.5"}),(0,d.jsx)("span",{children:a.name})]},b))}),a.textFiles&&a.textFiles.length>0&&(0,d.jsx)("div",{className:"space-y-1.5 mb-2",children:a.textFiles.map((a,b)=>(0,d.jsx)(Q,{name:a.name,content:a.content},b))}),a.content&&(0,d.jsx)("p",{className:"whitespace-pre-wrap break-words text-base leading-relaxed",children:a.content})]}):A?(0,d.jsx)("div",{className:"space-y-2",children:z.map((a,b)=>"tool_use"===a.type?(0,d.jsx)(y,{tool:a.toolUse,expandedToolIds:c},a.toolUse.id):"thinking"===a.type?(0,d.jsx)(R,{text:a.text,tokens:a.tokens,durationMs:a.durationMs,redacted:a.redacted},`thinking-${b}`):(0,d.jsx)(m.Y,{content:O(a.text)},`text-${b}`))}):(0,d.jsxs)(d.Fragment,{children:[a.toolUses.filter(a=>!x.has(a.name)).length>0&&(0,d.jsx)("div",{className:"mb-2 space-y-1",children:a.toolUses.filter(a=>!x.has(a.name)).map(a=>(0,d.jsx)(y,{tool:a,expandedToolIds:c},a.id))}),(0,d.jsx)(m.Y,{content:O(a.content)})]})]}),(0,d.jsx)(n.lG,{open:null!==s,onOpenChange:()=>t(null),className:"max-w-3xl",children:(0,d.jsx)(n.Cf,{className:"max-h-[80vh] overflow-auto",onClose:()=>t(null),children:s&&(0,d.jsx)("img",{src:s,className:"w-full rounded object-contain",alt:""})})})]})});function Q({name:a,content:b}){let[c,e]=(0,k.useState)(!1),f=b.split(/\r?\n/).length;return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)("button",{onClick:a=>{a.stopPropagation(),e(!0)},className:"flex w-full items-center gap-1.5 rounded border border-blue-500/20 bg-blue-500/5 px-3 py-1.5 text-xs text-blue-400 hover:text-blue-300",children:[(0,d.jsx)(i.A,{className:"h-3 w-3"}),(0,d.jsx)("span",{className:"font-medium",children:a}),(0,d.jsxs)("span",{className:"text-muted-foreground ml-1",children:[f," lines"]})]}),(0,d.jsx)(n.lG,{open:c,onOpenChange:e,className:"max-w-3xl",children:(0,d.jsxs)(n.Cf,{className:"max-h-[80vh] flex flex-col",onClose:()=>e(!1),children:[(0,d.jsxs)("div",{className:"text-sm font-medium px-1 pb-2 border-b border-border flex items-center gap-1.5",children:[(0,d.jsx)(i.A,{className:"h-3.5 w-3.5 text-blue-400"}),a]}),(0,d.jsx)("div",{className:"flex-1 min-h-0 overflow-auto",children:(0,d.jsx)(l.NG,{code:b,language:(0,l.WG)(a),dark:!0,fullHeight:!0})})]})})]})}function R({text:a,tokens:b,durationMs:c}){let{settings:e}=(0,o.t)(),[h,i]=(0,k.useState)(null),l=h??e.thinkingExpanded,m=a.length>0,n=null!=c?`${Math.max(1,Math.round(c/1e3))}s`:null!=b?`${b.toLocaleString()} token${1===b?"":"s"}`:m?`${a.length.toLocaleString()} chars`:null;return(0,d.jsxs)("div",{className:"rounded border border-purple-500/20 bg-purple-500/5",children:[(0,d.jsxs)("button",{onClick:()=>m&&i(!l),disabled:!m,className:"flex w-full items-center gap-1.5 px-3 py-1.5 text-xs text-purple-400 hover:text-purple-300 disabled:cursor-default disabled:hover:text-purple-400",children:[(0,d.jsx)(j.A,{className:"h-3 w-3"}),(0,d.jsx)("span",{className:"font-medium",children:"Thinking"}),n&&(0,d.jsx)("span",{className:"text-muted-foreground ml-1",children:n}),m&&(l?(0,d.jsx)(g.A,{className:"h-3 w-3 ml-auto"}):(0,d.jsx)(f.A,{className:"h-3 w-3 ml-auto"}))]}),m&&l&&(0,d.jsx)("div",{className:"border-t border-purple-500/20 px-3 py-2 text-xs text-muted-foreground whitespace-pre-wrap max-h-60 overflow-y-auto",children:a})]})}},23077:(a,b,c)=>{"use strict";c.d(b,{t:()=>f});var d=c(67484);c(28213);let e={diffStyle:"split",dismissKeyboardOnSend:!0,thinkingLevel:"high",bypassAllPermissions:!1,thinkingExpanded:!1,readExpanded:!1,editExpanded:!1,toolCallsExpanded:!1,modelSlots:{main:"sonnet"},messageStitching:!0,reviewsEnabled:!0,terminalFontSize:14,terminalTheme:"dark",terminalScrollback:1e3};function f(){let[a,b]=(0,d.useState)(e),[c,f]=(0,d.useState)(!1);return{settings:a,updateSetting:(0,d.useCallback)((a,c)=>{b(b=>{let d={...b,[a]:c};return fetch("/api/defaults",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({[a]:c})}).catch(()=>{}),d})},[]),loaded:c}}},25297:(a,b,c)=>{"use strict";c.d(b,{$:()=>j});var d=c(48249),e=c(51317),f=c(21654),g=c(67484),h=c(14490);let i=(0,f.F)("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50",{variants:{variant:{default:"bg-primary text-primary-foreground hover:bg-primary/90",destructive:"bg-destructive text-white hover:bg-destructive/90",outline:"border border-input bg-background hover:bg-accent hover:text-accent-foreground",secondary:"bg-secondary text-secondary-foreground hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-10 px-4 py-2",sm:"h-9 rounded-md px-3",lg:"h-11 rounded-md px-8",icon:"h-10 w-10"}},defaultVariants:{variant:"default",size:"default"}}),j=g.forwardRef(({className:a,variant:b,size:c,asChild:f=!1,...g},j)=>{let k=f?e.DX:"button";return(0,d.jsx)(k,{className:(0,h.cn)(i({variant:b,size:c,className:a})),ref:j,...g})});j.displayName="Button"},28213:(a,b,c)=>{"use strict";c.d(b,{AX:()=>j,Mi:()=>l,XR:()=>d,bs:()=>g,iz:()=>k,jp:()=>m,r5:()=>h,w6:()=>e,zQ:()=>i});let d={"200k":{label:"200K",disableEnv:!0,window:2e5},"1m":{label:"1M",disableEnv:!1,window:1e6}},e="200k",f=[{alias:"haiku",version:"4.5",modelId:"claude-haiku-4-5-20251001",displayName:"Haiku 4.5",description:"Fastest",contextSizes:["200k"],contextWindow:2e5,isDefault:!0},{alias:"sonnet",version:"4.6",modelId:"claude-sonnet-4-6",displayName:"Sonnet 4.6",description:"Balanced",contextSizes:["200k","1m"],contextWindow:2e5,isDefault:!0},{alias:"opus",version:"4.6",modelId:"claude-opus-4-6",displayName:"Opus 4.6",description:"Previous generation",contextSizes:["200k","1m"],contextWindow:2e5},{alias:"opus",version:"4.7",modelId:"claude-opus-4-7",displayName:"Opus 4.7",description:"Previous generation",contextSizes:["200k","1m"],contextWindow:2e5,supportsXhigh:!0},{alias:"opus",version:"4.8",modelId:"claude-opus-4-8",displayName:"Opus 4.8",description:"Most capable",contextSizes:["200k","1m"],contextWindow:2e5,isDefault:!0,supportsXhigh:!0}];function g(a){if(a)return f.find(b=>b.modelId===a)}function h(a){return f.filter(b=>b.alias===a)}function i(a){return f.find(b=>b.alias===a&&b.isDefault)??h(a)[0]}function j(a){if(!a)return null;let b=a.replace(/\[.*\]$/,"");return"opus"===b||"sonnet"===b||"haiku"===b?i(b)??null:g(b)??null}function k(a){if(!a||"haiku"===a.alias)return[];let b=["low","medium","high"];return a.supportsXhigh&&b.push("xhigh"),b.push("max"),b}function l(a){return a&&"haiku"!==a.alias?a.supportsXhigh?"xhigh":"sonnet"===a.alias?"medium":"high":null}function m(a){if(!a)return{model:void 0,contextSize:e};let b=/\[1m\]$/i.test(a);return{model:a.replace(/\[.*\]$/,"")||void 0,contextSize:b?"1m":"200k"}}},29604:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/dev/repos/cockpit/src/app/(app)/layout.tsx\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/dev/repos/cockpit/src/app/(app)/layout.tsx","default")},34588:(a,b,c)=>{Promise.resolve().then(c.t.bind(c,81921,23)),Promise.resolve().then(c.t.bind(c,60440,23)),Promise.resolve().then(c.t.bind(c,84342,23)),Promise.resolve().then(c.t.bind(c,82265,23)),Promise.resolve().then(c.t.bind(c,35421,23)),Promise.resolve().then(c.t.bind(c,61335,23)),Promise.resolve().then(c.t.bind(c,70664,23)),Promise.resolve().then(c.bind(c,74661))},36606:(a,b,c)=>{"use strict";c.d(b,{NG:()=>n,WG:()=>h,Ik:()=>m});var d=c(48249),e=c(67484),f=c(94856);let g={ts:"typescript",tsx:"tsx",js:"javascript",jsx:"jsx",py:"python",rb:"ruby",rs:"rust",go:"go",java:"java",kt:"kotlin",swift:"swift",c:"c",cpp:"cpp",h:"c",hpp:"cpp",cs:"csharp",css:"css",scss:"scss",html:"html",vue:"vue",svelte:"svelte",json:"json",yaml:"yaml",yml:"yaml",toml:"toml",xml:"xml",sql:"sql",sh:"bash",bash:"bash",zsh:"bash",fish:"fish",ps1:"powershell",md:"markdown",mdx:"mdx",graphql:"graphql",gql:"graphql",dockerfile:"dockerfile",tf:"hcl",lua:"lua",r:"r",php:"php",scala:"scala",ex:"elixir",exs:"elixir",erl:"erlang",hs:"haskell",ml:"ocaml",zig:"zig"};function h(a){let b=(0,f.uk)(a)||"",c=b.toLowerCase();if("dockerfile"===c)return"dockerfile";if("makefile"===c)return"makefile";let d=b.includes(".")?b.split(".").pop()?.toLowerCase():void 0;if(d)return g[d]}function i(a){let b=a.split(/\r?\n/),c=/^\s*(\d+)\u2192(.*)$/,d=b[0]?.match(c);if(!d)return{code:a,startLine:1};let e=parseInt(d[1],10);return{code:b.map(a=>{let b=a.match(c);return b?b[2]:a}).join("\n"),startLine:e}}async function j(a,b,d){try{let e=await Promise.resolve().then(c.bind(c,61379));return await e.codeToHtml(a,{lang:b,theme:d})}catch{return null}}let k=new Map;function l(a,b,c){return`${c}:${b}:${a}`}function m(a,b,c){let{code:d}=i(a),e=c?"github-dark":"github-light",f=l(d,b,e);k.has(f)||j(d,b,e).then(a=>{a&&k.set(f,a)})}function n({code:a,language:b,dark:c,fullHeight:f,wrap:g}){let{code:h,startLine:j}=i(a),m=b?l(h,b,c?"github-dark":"github-light"):"",[o,p]=(0,e.useState)(b?k.get(m)??null:null),q=`
1
+ exports.id=1979,exports.ids=[1979],exports.modules={2233:(a,b,c)=>{"use strict";c.d(b,{Bx:()=>ab,HC:()=>_,MJ:()=>W,MN:()=>S});var d=c(48249),e=c(32174),f=c(70296),g=c(27656),h=c(9008),i=c(45535),j=c(69473),k=c(15828),l=c(57762),m=c(78337),n=c(33636),o=c(46940),p=c(78321),q=c(11577),r=c(90069),s=c(35471),t=c(71362),u=c(11091),v=c(88580),w=c(19099),x=c(67484),y=c(67257),z=c(86929),A=c(5223),B=c(91995),C=c(14490);let D="cockpit_sidebar_sections";function E({id:a,title:b,badge:c,defaultOpen:e=!0,actions:f,children:g}){let[h,i]=(0,x.useState)(e);return(0,d.jsxs)("div",{className:"border-b last:border-b-0",children:[(0,d.jsxs)("div",{className:"flex items-center",children:[(0,d.jsxs)("button",{type:"button",onClick:()=>{let b=!h;i(b);try{let c=localStorage.getItem(D),d=c?JSON.parse(c):{};d[a]=b,localStorage.setItem(D,JSON.stringify(d))}catch{}},className:"flex flex-1 items-center gap-1.5 px-3 py-2 text-left text-xs font-semibold uppercase tracking-wide text-muted-foreground hover:bg-accent/50 transition-colors min-w-0",children:[(0,d.jsx)(B.A,{className:(0,C.cn)("h-3 w-3 shrink-0 transition-transform",h&&"rotate-90")}),(0,d.jsx)("span",{className:"flex-1 min-w-0 truncate",children:b}),c&&(0,d.jsx)("span",{className:"shrink-0 rounded-full bg-muted px-1.5 py-0.5 text-[10px] leading-none",children:c})]}),f&&(0,d.jsx)("div",{className:"shrink-0 pr-2 flex items-center",children:f})]}),h&&g]})}var F=c(25297),G=c(38393),H=c(77424),I=c(23077),J=c(93571),K=c(47244),L=c(69357),M=c(76275);function N({open:a,onOpenChange:b}){(0,x.useRef)(null);let[c,e]=(0,x.useState)(null),[f,g]=(0,x.useState)(!1),[h,j]=(0,x.useState)(null),[k,l]=(0,x.useState)("");(0,x.useRef)(!1);let m=(0,x.useCallback)(a=>{a||e(null),b(a)},[b]);return(0,d.jsx)(G.lG,{open:a,onOpenChange:m,children:(0,d.jsxs)(G.Cf,{className:"sm:max-w-3xl h-[80vh] flex flex-col p-0 gap-0 overflow-hidden",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2 px-4 py-3 border-b shrink-0",children:[(0,d.jsx)(v.A,{className:"h-4 w-4 text-muted-foreground"}),(0,d.jsx)("span",{className:"text-sm font-medium",children:"Cockpit Assistant"}),(0,d.jsx)("button",{type:"button",onClick:()=>m(!1),"aria-label":"Close assistant",className:"ml-auto rounded-sm text-muted-foreground opacity-70 transition-opacity hover:opacity-100",children:(0,d.jsx)(i.A,{className:"h-4 w-4"})})]}),(0,d.jsxs)("div",{className:"flex-1 min-h-0 flex flex-col",children:[f&&(0,d.jsx)("div",{className:"flex items-center justify-center h-full",children:(0,d.jsx)(L.A,{className:"h-5 w-5 animate-spin text-muted-foreground"})}),h&&(0,d.jsx)("div",{className:"flex items-center justify-center h-full text-sm text-muted-foreground px-4",children:h}),c&&!f&&!h&&(0,d.jsx)(M.I,{sessionId:c,cwd:k,showPlanToggle:!1,isCockpitAgent:!0})]})]})})}var O=c(58412);let P="cockpit_sidebar_width";function Q({onResize:a}){let b=(0,x.useRef)(!1),c=(0,x.useRef)(0),e=(0,x.useCallback)(d=>{d.preventDefault(),b.current=!0,c.current=d.clientX;let e=d=>{if(!b.current)return;let e=d.clientX-c.current;c.current=d.clientX,a(e)},f=()=>{b.current=!1,document.removeEventListener("mousemove",e),document.removeEventListener("mouseup",f),document.body.style.cursor="",document.body.style.userSelect=""};document.body.style.cursor="col-resize",document.body.style.userSelect="none",document.addEventListener("mousemove",e),document.addEventListener("mouseup",f)},[a]);return(0,d.jsx)("div",{onMouseDown:e,className:"hidden md:block absolute inset-y-0 right-0 w-1 cursor-col-resize hover:bg-primary/30 transition-colors z-10"})}let R="cockpit_unread_sessions";async function S(a){await fetch("/api/sessions/pinned",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({add:a})}).catch(()=>{})}async function T(a){await fetch("/api/sessions/pinned",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({remove:a})}).catch(()=>{})}async function U(){try{let a=await fetch("/api/sessions/pinned");if(!a.ok)return[];let b=await a.json();return Array.isArray(b.pinned)?b.pinned:[]}catch{return[]}}let V=new Set;async function W(a){for(let b of(await fetch("/api/reviews/pinned",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({add:a})}).catch(()=>{}),V))b()}async function X(a){await fetch("/api/reviews/pinned",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({remove:a})}).catch(()=>{})}async function Y(){try{let a=await fetch("/api/reviews/pinned");if(!a.ok)return[];let b=await a.json();return Array.isArray(b.pinned)?b.pinned:[]}catch{return[]}}let Z=/^Review:\s*(?:(.+?)\/)?(.+?)#(\d+)(?:\s+-\s+(.*))?$/;function $(){try{let a=localStorage.getItem(R);if(a)return new Set(JSON.parse(a))}catch{}return new Set}function _(a){let b=$();b.delete(a),localStorage.setItem(R,JSON.stringify([...b]))}function aa({session:a,isCurrent:b,isUnread:c,onNavigate:e,onAction:j}){var k;let l,{attributes:m,listeners:n,setNodeRef:o,transform:p,transition:q,isDragging:r}=(0,f.gl)({id:a.id}),s={transform:g.Ks.Transform.toString(p),transition:q,opacity:r?.5:1};return(0,d.jsxs)("div",{ref:o,style:s,role:"button",tabIndex:0,onClick:()=>e(a),onKeyDown:b=>{("Enter"===b.key||" "===b.key)&&(b.preventDefault(),e(a))},className:(0,C.cn)("w-full flex items-center gap-2 px-3 py-2 text-left text-sm hover:bg-accent/50 transition-colors cursor-pointer",b&&"bg-accent"),children:[(0,d.jsx)("button",{type:"button",...m,...n,onClick:a=>a.stopPropagation(),className:"shrink-0 cursor-grab active:cursor-grabbing text-muted-foreground/60 hover:text-muted-foreground touch-none",title:"Drag to reorder","aria-label":"Drag to reorder",children:(0,d.jsx)(h.A,{className:"h-4 w-4"})}),(0,d.jsx)("div",{className:"shrink-0 relative flex items-center justify-center h-4 w-4",children:(a.pendingRequestCount??0)>0?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("div",{className:"absolute h-4 w-4 rounded-full bg-blue-500/20 animate-ping"}),(0,d.jsx)("div",{className:"h-2.5 w-2.5 rounded-full bg-blue-500",title:"Awaiting your input","data-testid":"status-pending"})]}):"running"===a.status?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("div",{className:"absolute h-4 w-4 rounded-full bg-yellow-500/20 animate-ping"}),(0,d.jsx)("div",{className:"h-2.5 w-2.5 rounded-full bg-yellow-500",title:"Working","data-testid":"status-running"})]}):c?(0,d.jsx)("div",{className:"h-2.5 w-2.5 rounded-full bg-green-500",title:"New response","data-testid":"status-unread"}):(0,d.jsx)("div",{className:"h-2.5 w-2.5 rounded-full bg-muted-foreground/30","data-testid":"status-idle"})}),(0,d.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,d.jsx)("div",{className:"truncate font-medium text-left",dir:"rtl",title:a.cwd,children:(0,d.jsx)("bdo",{dir:"ltr",children:(l=(k=a.cwd).split(/[/\\]/)).length>2?"~/"+l.slice(-2).join("/"):k})}),(0,d.jsx)("div",{className:"truncate text-xs text-muted-foreground",children:a.name})]}),(0,d.jsx)(F.$,{variant:"ghost",size:"icon",className:"h-8 w-8 shrink-0 text-red-500 hover:text-red-600 hover:bg-red-500/10",onClick:b=>j(b,a),title:"running"===a.status?"Stop session":"Remove from sidebar",children:(0,d.jsx)(i.A,{className:"h-4 w-4"})})]})}let ab=(0,x.forwardRef)(function(a,b){let c=(0,w.useRouter)(),g=(0,w.usePathname)(),{send:h,subscribe:m,connected:n}=(0,J.h)(),{sidebarSections:o,cwd:p,sessionId:q}=(0,y.E2)(),{settings:r}=(0,I.t)(),[s,t]=(0,x.useState)(!1),[u,v]=(0,x.useState)([]),[z,A]=(0,x.useState)(new Set),[B,D]=(0,x.useState)(!1),[G,H]=(0,x.useState)(!1),[K,L]=(0,x.useState)(288);(0,x.useEffect)(()=>{L(function(){try{let a=localStorage.getItem(P);if(a){let b=parseInt(a,10);if(b>=200&&b<=480)return b}}catch{}return 288}())},[]),(0,x.useEffect)(()=>{c.prefetch("/sessions/_")},[c]);let M=(0,x.useCallback)(a=>{L(b=>{let c=Math.max(200,Math.min(480,b+a));return localStorage.setItem(P,String(c)),c})},[]),V=(0,x.useRef)(new Map),W=(0,e.FR)((0,e.MS)(e.AN,{activationConstraint:{delay:150,tolerance:5}}));(0,x.useImperativeHandle)(b,()=>({toggle:()=>t(a=>!a),close:()=>t(!1)}),[]);let X=(0,x.useCallback)(()=>t(!1),[]),Y=g.startsWith("/sessions/")?g.split("/")[2]:null;(0,x.useEffect)(()=>m(a=>{if("session:status"===a.type){let{sessionId:b,status:c}=a,d=new Set(u.map(a=>a.id));if(!d.has(b))return void console.log("[sidebar] status update for unknown session",b.slice(0,8),"known:",[...d].map(a=>a.slice(0,8)));console.log("[sidebar] status updated",b.slice(0,8),"->",c);let e=V.current.get(b);if(V.current.set(b,c),"running"===e&&"idle"===c&&Y!==b){let a;(a=$()).add(b),localStorage.setItem(R,JSON.stringify([...a])),A($())}v(a=>a.map(a=>a.id===b?{...a,status:c}:a))}else if("session:pending"===a.type){let{sessionId:b,count:c}=a;if(!new Set(u.map(a=>a.id)).has(b))return void console.log("[sidebar] pending update for unknown session",b.slice(0,8));console.log("[sidebar] pending updated",b.slice(0,8),"->",c),v(a=>a.map(a=>a.id===b?{...a,pendingRequestCount:c}:a))}else if("session:info_updated"===a.type){let{sessionId:b,info:c}=a;v(a=>a.map(a=>a.id===b?{...a,name:c.name,model:c.model}:a))}}),[m,Y,u]);let Z=(0,x.useCallback)(async()=>{A($());let a=await U();if(0===a.length)return void v([]);let b=a.join(","),c=await fetch(`/api/sessions/by-ids?ids=${encodeURIComponent(b)}`).then(a=>a.ok?a.json():null).catch(()=>null);if(!c)return;let d=(c.sessions||[]).filter(a=>!a.cwd.endsWith(".cockpit/reviews")),e=new Set(Array.isArray(c.foundIds)?c.foundIds:d.map(a=>a.id)),f=new Map(d.map(a=>[a.id,a])),g=[],i=[];for(let b of a){let a=f.get(b);a&&(g.push(a),i.push(b))}for(let b of(a.some(a=>!e.has(a))&&fetch("/api/sessions/pinned",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({pinned:i})}).catch(()=>{}),g))V.current.has(b.id)||V.current.set(b.id,b.status);v(g),g.length>0&&h({type:"session:subscribe",sessionIds:g.map(a=>a.id)})},[h]),ab=(0,x.useRef)(!1);(0,x.useEffect)(()=>{ab.current||(ab.current=!0,Z())},[Z]),(0,x.useEffect)(()=>{(s||n)&&Z()},[s,n,g,Z]);let ak=async(a,b)=>{a.stopPropagation(),(await fetch(`/api/sessions/${b}`,{method:"DELETE"})).ok&&(await T(b),_(b),A($()),v(a=>a.filter(a=>a.id!==b)),Y===b&&c.push("/"))},al=async(a,b)=>{a.stopPropagation(),await T(b),_(b),A($()),v(a=>a.filter(a=>a.id!==b)),Y===b&&c.push("/")},am=(0,x.useCallback)(a=>{let{active:b,over:c}=a;if(!c||b.id===c.id)return;let d=u.findIndex(a=>a.id===b.id),e=u.findIndex(a=>a.id===c.id);if(d<0||e<0)return;let g=(0,f.be)(u,d,e);v(g),fetch("/api/sessions/pinned",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({pinned:g.map(a=>a.id)})}).catch(a=>console.error("Failed to persist sidebar order",a))},[u]),an=async(a,b,d)=>{let e=await fetch("/api/sessions",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:a,name:b||void 0,runtime:d})});if(e.ok){let b=await e.json();await S(b.sessionId),await Z(),X(),c.push(`/sessions/${b.sessionId}?cwd=${encodeURIComponent(a)}`)}},ao=a=>{_(a.id),A($()),X();let b=new URLSearchParams({cwd:a.cwd});a.name&&b.set("name",a.name),c.push(`/sessions/${a.id}?${b}`)};return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("div",{className:(0,C.cn)("fixed inset-0 z-40 bg-black/50 transition-opacity md:hidden",s?"opacity-100":"opacity-0 pointer-events-none"),onMouseDown:X}),(0,d.jsxs)("div",{className:(0,C.cn)("fixed inset-y-0 left-0 z-50 bg-background border-r flex flex-col transition-transform duration-200","md:relative md:inset-auto md:z-auto md:translate-x-0 md:shrink-0 md:transition-none",s?"translate-x-0":"-translate-x-full"),style:{width:K},children:[(0,d.jsx)(Q,{onResize:M}),(0,d.jsx)("div",{className:"flex items-center justify-end px-3 py-1 border-b md:hidden",children:(0,d.jsx)(F.$,{variant:"ghost",size:"icon",onClick:X,children:(0,d.jsx)(i.A,{className:"h-4 w-4"})})}),(0,d.jsxs)("div",{className:"flex-1 min-h-0 overflow-y-auto",children:[(0,d.jsx)(E,{id:"sessions",title:"Sessions",badge:u.length>0?String(u.length):void 0,actions:(0,d.jsxs)("div",{className:"flex items-center",children:[(0,d.jsx)(F.$,{variant:"ghost",size:"icon",className:"h-6 w-6",onClick:()=>D(!0),title:"New session",children:(0,d.jsx)(j.A,{className:"h-3.5 w-3.5"})}),(0,d.jsx)(F.$,{variant:"ghost",size:"icon",className:"h-6 w-6",onClick:()=>{X(),c.push("/")},title:"All sessions",children:(0,d.jsx)(k.A,{className:"h-3 w-3"})})]}),children:0===u.length?(0,d.jsx)("p",{className:"px-3 py-3 text-sm text-muted-foreground",children:"No active sessions."}):(0,d.jsx)(e.Mp,{sensors:W,onDragEnd:am,children:(0,d.jsx)(f.gB,{items:u.map(a=>a.id),strategy:f._G,children:u.map(a=>(0,d.jsx)(aa,{session:a,isCurrent:Y===a.id,isUnread:z.has(a.id),onNavigate:ao,onAction:(a,b)=>"running"===b.status?ak(a,b.id):al(a,b.id)},a.id))})})}),(0,d.jsx)(ae,{sections:o,exclude:ad}),p&&!o.has("git-changes")&&(0,d.jsx)(ag,{cwd:p,sessionId:q}),p&&!o.has("file-tree")&&(0,d.jsx)(af,{cwd:p}),r.reviewsEnabled&&(0,d.jsx)(ac,{onNavigate:X}),r.reviewsEnabled&&(0,d.jsx)(E,{id:"pr-files",title:o.get("pr-files")?.title||"PR Files",badge:o.get("pr-files")?.badge,defaultOpen:!1,children:o.has("pr-files")?o.get("pr-files").content:(0,d.jsx)("div",{className:"px-3 py-3 text-xs text-muted-foreground",children:"No PR open"})})]}),(0,d.jsxs)("div",{className:"border-t px-3 py-2 flex items-center justify-end gap-2",children:[(0,d.jsx)(aj,{onClick:()=>H(!0)}),(0,d.jsx)(ah,{onClick:()=>{X(),c.push("/jobs")}}),(0,d.jsx)(ai,{onClick:()=>{X(),c.push("/inbox")}}),(0,d.jsx)(F.$,{variant:"ghost",size:"icon",className:"shrink-0 h-8 w-8 text-muted-foreground hover:text-foreground",onClick:()=>{sessionStorage.removeItem("settings-scroll"),X(),c.push("/settings")},title:"Settings",children:(0,d.jsx)(l.A,{className:"h-4 w-4"})})]})]}),(0,d.jsx)(O.t,{open:B,onOpenChange:D,onSubmit:an}),(0,d.jsx)(N,{open:G,onOpenChange:H})]})});function ac({onNavigate:a}){let b=(0,w.useRouter)();(0,w.usePathname)();let{subscribe:c,send:e}=(0,J.h)(),[f,g]=(0,x.useState)([]);(0,x.useCallback)(async()=>{let a=await Y();if(0===a.length)return void g([]);let b=await fetch(`/api/sessions/by-ids?ids=${encodeURIComponent(a.join(","))}`).then(a=>a.ok?a.json():null).catch(()=>null);if(!b)return;let c=b.sessions||[],d=new Set(Array.isArray(b.foundIds)?b.foundIds:c.map(a=>a.id)),f=new Map(c.map(a=>[a.id,a])),h=[],i=[];for(let b of a){let a=f.get(b);if(a){let c=function(a){let b=Z.exec(a.name);return b?{id:a.id,owner:b[1]||"",repo:b[2],number:parseInt(b[3],10),title:b[4]||"",status:a.status,pendingRequestCount:a.pendingRequestCount??0}:null}(a);c&&h.push(c),i.push(b)}}a.some(a=>!d.has(a))&&fetch("/api/reviews/pinned",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({pinned:i})}).catch(()=>{}),g(h),h.length>0&&e({type:"session:subscribe",sessionIds:h.map(a=>a.id)})},[e]);let h=c=>{a(),c.owner?b.push(`/reviews/${c.owner}/${c.repo}/${c.number}`):b.push("/reviews")};return(0,d.jsx)(E,{id:"reviews",title:"Reviews",badge:f.length>0?String(f.length):void 0,actions:(0,d.jsx)(F.$,{variant:"ghost",size:"icon",className:"h-6 w-6",onClick:()=>{a(),b.push("/reviews")},title:"All reviews",children:(0,d.jsx)(m.A,{className:"h-3 w-3"})}),children:0===f.length?(0,d.jsx)("p",{className:"px-3 py-3 text-sm text-muted-foreground",children:"No pinned reviews."}):f.map(a=>(0,d.jsxs)("div",{role:"button",tabIndex:0,onClick:()=>h(a),onKeyDown:b=>{("Enter"===b.key||" "===b.key)&&(b.preventDefault(),h(a))},className:"w-full flex items-center gap-2 px-3 py-2 text-left text-sm hover:bg-accent/50 transition-colors cursor-pointer",children:[(0,d.jsx)("div",{className:"shrink-0 relative flex items-center justify-center h-4 w-4",children:a.pendingRequestCount>0?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("div",{className:"absolute h-4 w-4 rounded-full bg-blue-500/20 animate-ping"}),(0,d.jsx)("div",{className:"h-2.5 w-2.5 rounded-full bg-blue-500",title:"Awaiting input"})]}):"running"===a.status?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("div",{className:"absolute h-4 w-4 rounded-full bg-yellow-500/20 animate-ping"}),(0,d.jsx)("div",{className:"h-2.5 w-2.5 rounded-full bg-yellow-500",title:"Working"})]}):(0,d.jsx)("div",{className:"h-2.5 w-2.5 rounded-full bg-muted-foreground/30"})}),(0,d.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,d.jsxs)("div",{className:"truncate font-medium",children:[a.repo,"#",a.number]}),a.title&&(0,d.jsx)("div",{className:"truncate text-xs text-muted-foreground",children:a.title})]}),(0,d.jsx)(F.$,{variant:"ghost",size:"icon",className:"h-8 w-8 shrink-0 text-red-500 hover:text-red-600 hover:bg-red-500/10",onClick:b=>{var c;return c=a.id,void(b.stopPropagation(),g(a=>a.filter(a=>a.id!==c)),X(c))},title:"Remove",children:(0,d.jsx)(i.A,{className:"h-4 w-4"})})]},a.id))})}let ad=new Set(["pr-files"]);function ae({sections:a,exclude:b}){let c=(0,x.useMemo)(()=>Array.from(a.values()).filter(a=>!b?.has(a.id)).sort((a,b)=>(a.order??50)-(b.order??50)),[a,b]);return(0,d.jsx)(d.Fragment,{children:c.map(a=>(0,d.jsx)(E,{id:a.id,title:a.title,badge:a.badge,actions:a.actions,children:a.content},a.id))})}function af({cwd:a}){let{tabActions:b,closeSidebar:c}=(0,y.E2)(),[e,f]=(0,x.useState)(!1),g=(0,x.useCallback)(a=>{b?.openFile(a)},[b,c]),h=(0,x.useCallback)(a=>{g(a),f(!1)},[g]);return(0,d.jsxs)(E,{id:"files",title:"Session Files",defaultOpen:!1,actions:(0,d.jsx)("button",{onClick:()=>f(!0),title:"Open file",className:"flex items-center justify-center rounded p-0.5 hover:bg-accent text-muted-foreground",children:(0,d.jsx)(j.A,{className:"h-3.5 w-3.5"})}),children:[(0,d.jsx)(A.h,{cwd:a,selectedFile:null,onSelectFile:g}),(0,d.jsx)(G.lG,{open:e,onOpenChange:f,children:(0,d.jsxs)(G.Cf,{className:"sm:max-w-lg",children:[(0,d.jsx)(G.c7,{children:(0,d.jsx)(G.L3,{children:"Open File"})}),(0,d.jsx)(z.N,{startPath:a,onSelect:h,onCancel:()=>f(!1)})]})})]})}function ag({cwd:a}){(0,w.usePathname)();let{tabActions:b}=(0,y.E2)(),{subscribe:c}=(0,J.h)(),{checkedFiles:e,toggleFile:f}=(0,K.e)(a),[g,h]=(0,x.useState)(""),[i,j]=(0,x.useState)(null),[k,l]=(0,x.useState)([]),m=(0,x.useRef)(a);m.current=a,(0,x.useCallback)(()=>{fetch(`/api/git/status?cwd=${encodeURIComponent(m.current)}`).then(a=>{if(!a.ok)throw Error("Not a git repository");return a.json()}).then(a=>{l(a.files||[]),h(a.branch||""),j(null)}).catch(a=>{l([]),h(""),j(a instanceof Error?a.message:"Failed to load")})},[]);let t=k.reduce((a,b)=>a+b.additions,0),u=k.reduce((a,b)=>a+b.deletions,0);return(0,d.jsx)(E,{id:"session-changes",title:"Session Changes",badge:k.length>0?String(k.length):void 0,defaultOpen:!1,children:i?(0,d.jsx)("p",{className:"px-3 py-3 text-sm text-muted-foreground",children:i}):0===k.length?(0,d.jsx)("p",{className:"px-3 py-3 text-sm text-muted-foreground",children:"Working tree clean"}):(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)("div",{className:"px-3 py-1.5 text-xs text-muted-foreground flex items-center gap-2 border-b",children:[g&&(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("span",{children:"Branch:"}),(0,d.jsx)("span",{className:"font-mono font-bold text-foreground",children:g}),(0,d.jsx)("span",{className:"mx-0.5",children:"\xb7"})]}),(0,d.jsxs)("span",{children:[k.length," changed"]}),t>0&&(0,d.jsxs)("span",{className:"text-green-500",children:["+",t]}),u>0&&(0,d.jsxs)("span",{className:"text-red-500",children:["-",u]}),(0,d.jsx)("div",{className:"flex-1"}),(0,d.jsx)("button",{type:"button",title:"Open commit view",onClick:()=>{b?.openChanges()},className:"hover:text-foreground transition-colors",children:(0,d.jsx)(r.A,{className:"h-3 w-3"})})]}),k.map(a=>(0,d.jsxs)("div",{className:"flex items-center gap-1 px-3 py-1 text-xs hover:bg-accent/50 transition-colors",children:[(0,d.jsx)("button",{type:"button",role:"checkbox","aria-checked":e.has(a.path),onClick:b=>{b.stopPropagation(),f(a.path)},className:(0,C.cn)("h-3.5 w-3.5 shrink-0 rounded-full border flex items-center justify-center transition-colors",e.has(a.path)?"border-primary bg-primary text-primary-foreground":"border-muted-foreground/30 bg-transparent hover:border-muted-foreground/50"),children:e.has(a.path)&&(0,d.jsx)(s.A,{className:"h-2 w-2",strokeWidth:3})}),(0,d.jsxs)("button",{type:"button",onClick:()=>{b?.openDiff(a.path)},className:"flex items-center gap-2 flex-1 min-w-0 text-left",children:[function(a){switch(a){case"added":case"untracked":return(0,d.jsx)(n.A,{className:"h-3.5 w-3.5 text-green-500"});case"deleted":return(0,d.jsx)(o.A,{className:"h-3.5 w-3.5 text-red-500"});case"renamed":return(0,d.jsx)(p.A,{className:"h-3.5 w-3.5 text-blue-500"});default:return(0,d.jsx)(q.A,{className:"h-3.5 w-3.5 text-yellow-500"})}}(a.status),(0,d.jsx)("span",{className:"font-mono truncate flex-1 min-w-0",children:a.path}),(0,d.jsxs)("span",{className:"shrink-0 flex gap-1 text-[10px] font-mono",children:[a.additions>0&&(0,d.jsxs)("span",{className:"text-green-500",children:["+",a.additions]}),a.deletions>0&&(0,d.jsxs)("span",{className:"text-red-500",children:["-",a.deletions]})]})]})]},a.path))]})})}function ah({onClick:a}){let{count:b}=(0,H.wA)();return(0,d.jsxs)(F.$,{variant:"ghost",size:"icon",className:"shrink-0 h-8 w-8 text-muted-foreground hover:text-foreground relative",onClick:a,title:"Scheduled Jobs",children:[(0,d.jsx)(t.A,{className:"h-4 w-4"}),b>0&&(0,d.jsx)("span",{className:"absolute top-1 right-1 h-2 w-2 rounded-full bg-red-500"})]})}function ai({onClick:a}){let[b,c]=(0,x.useState)(0);return(0,w.usePathname)(),(0,d.jsxs)(F.$,{variant:"ghost",size:"icon",className:"shrink-0 h-8 w-8 text-muted-foreground hover:text-foreground relative",onClick:a,title:"Inbox",children:[(0,d.jsx)(u.A,{className:"h-4 w-4"}),b>0&&(0,d.jsx)("span",{className:"absolute top-1 right-1 h-2 w-2 rounded-full bg-blue-500"})]})}function aj({onClick:a}){return(0,d.jsx)(F.$,{variant:"ghost",size:"icon",className:"shrink-0 h-8 w-8 text-muted-foreground hover:text-foreground",onClick:a,title:"Cockpit Assistant",children:(0,d.jsx)(v.A,{className:"h-4 w-4"})})}},2864:(a,b,c)=>{"use strict";c.d(b,{E:()=>h});var d=c(48249),e=c(21654);c(67484);var f=c(14490);let g=(0,e.F)("inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring",{variants:{variant:{default:"border-transparent bg-primary text-primary-foreground",secondary:"border-transparent bg-secondary text-secondary-foreground",destructive:"border-transparent bg-destructive text-white",outline:"text-foreground"}},defaultVariants:{variant:"default"}});function h({className:a,variant:b,...c}){return(0,d.jsx)("div",{className:(0,f.cn)(g({variant:b}),a),...c})}},5223:(a,b,c)=>{"use strict";c.d(b,{h:()=>r});var d=c(48249),e=c(69357),f=c(69627),g=c(91995),h=c(22130),i=c(2409),j=c(8251),k=c(67484),l=c(93571),m=c(14490);let n=new Map;async function o(a,b=!1){if(!b){let b=n.get(a);if(b)return b}let c=new URLSearchParams({path:a,includeFiles:"true",showHidden:"true"}),d=await fetch(`/api/filesystem/browse?${c}`);if(!d.ok)return n.get(a)||[];let e=((await d.json()).entries||[]).map(a=>({name:a.name,path:a.path,type:a.type}));return n.set(a,e),e}let p=new Map;function q({node:a,depth:b,selectedFile:c,onSelectFile:l,expandedSet:p,onToggleExpand:r,refreshTick:s}){let t="directory"===a.type,u=p.has(a.path),[v,w]=(0,k.useState)(n.get(a.path)||[]),[x,y]=(0,k.useState)(!1),z=(0,k.useCallback)(()=>{t?(r(a.path),p.has(a.path)||n.has(a.path)||(y(!0),o(a.path).then(a=>{w(a),y(!1)}))):l(a.path)},[t,a.path,r,l,p]);return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)("div",{className:(0,m.cn)("flex items-center gap-1 px-2 py-1 text-sm cursor-pointer hover:bg-muted/50",!t&&c===a.path&&"bg-muted"),style:{paddingLeft:`${16*b+8}px`},onClick:z,children:[t?(0,d.jsxs)(d.Fragment,{children:[x?(0,d.jsx)(e.A,{className:"h-3.5 w-3.5 shrink-0 animate-spin text-muted-foreground"}):u?(0,d.jsx)(f.A,{className:"h-3.5 w-3.5 shrink-0 text-muted-foreground"}):(0,d.jsx)(g.A,{className:"h-3.5 w-3.5 shrink-0 text-muted-foreground"}),u?(0,d.jsx)(h.A,{className:"h-3.5 w-3.5 shrink-0 text-muted-foreground"}):(0,d.jsx)(i.A,{className:"h-3.5 w-3.5 shrink-0 text-muted-foreground"})]}):(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("span",{className:"w-3.5 shrink-0"}),(0,d.jsx)(j.A,{className:"h-3.5 w-3.5 shrink-0 text-muted-foreground"})]}),(0,d.jsx)("span",{className:"font-mono text-xs truncate",children:a.name})]}),t&&u&&v.map(a=>(0,d.jsx)(q,{node:a,depth:b+1,selectedFile:c,onSelectFile:l,expandedSet:p,onToggleExpand:r,refreshTick:s},a.path))]})}function r({cwd:a,selectedFile:b,onSelectFile:c}){let[f,g]=(0,k.useState)(n.get(a)||[]),[h,i]=(0,k.useState)(0===f.length),[j,m]=(0,k.useState)(()=>{let b;return(b=p.get(a))||(b=new Set,p.set(a,b)),b}),[o,s]=(0,k.useState)(0);(0,k.useRef)(a),(0,k.useRef)(j).current=j;let{subscribe:t}=(0,l.h)(),u=(0,k.useCallback)(b=>{m(c=>{let d=new Set(c);return d.has(b)?d.delete(b):d.add(b),p.set(a,d),d})},[a]);return h?(0,d.jsx)("div",{className:"flex items-center justify-center py-12",children:(0,d.jsx)(e.A,{className:"h-5 w-5 animate-spin text-muted-foreground"})}):0===f.length?(0,d.jsx)("div",{className:"flex items-center justify-center py-12 text-sm text-muted-foreground",children:"Empty directory"}):(0,d.jsx)("div",{className:"py-1",children:f.map(a=>(0,d.jsx)(q,{node:a,depth:0,selectedFile:b,onSelectFile:c,expandedSet:j,onToggleExpand:u,refreshTick:o},a.path))})}},14490:(a,b,c)=>{"use strict";c.d(b,{cn:()=>f});var d=c(99314),e=c(96862);function f(...a){return(0,e.QP)((0,d.$)(a))}},14670:(a,b,c)=>{Promise.resolve().then(c.bind(c,29604))},15637:()=>{},19198:(a,b,c)=>{"use strict";c.d(b,{K:()=>m});var d=c(48249),e=c(91995),f=c(69357),g=c(2409),h=c(87914),i=c(67484),j=c(25297),k=c(88877),l=c(94856);function m({onSelect:a,onCancel:b}){let[c,n]=(0,i.useState)(""),[o,p]=(0,i.useState)([]),[q,r]=(0,i.useState)(!0),[s,t]=(0,i.useState)(""),[u,v]=(0,i.useState)(!1),[w,x]=(0,i.useState)(""),[y,z]=(0,i.useState)(""),A=(0,i.useCallback)(async a=>{r(!0),t("");let b=new URLSearchParams;a&&b.set("path",a);try{let a=await fetch(`/api/filesystem/browse?${b}`);if(!a.ok){let b=await a.json().catch(()=>({error:"Failed to browse"}));t(b.error||"Failed to browse"),p([]);return}let c=await a.json();n(c.path),p(c.entries)}catch{t("Failed to connect"),p([])}finally{r(!1)}},[]),B=async()=>{let a=w.trim();if(a){z("");try{let b=await fetch("/api/filesystem/mkdir",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({parentPath:c,name:a})});if(!b.ok){let a=await b.json().catch(()=>({error:"Failed to create folder"}));z(a.error||"Failed to create folder");return}let d=await b.json();v(!1),x(""),A(d.path)}catch{z("Failed to connect")}}},C=(0,l.cs)(c),D=/^[a-zA-Z]:[/\\]/.test(c),E=D?c.slice(0,3):"/",F=D?c.slice(0,3):"/",G=D?C.slice(1):C;return(0,d.jsxs)("div",{className:"space-y-3",children:[(0,d.jsxs)("div",{className:"flex items-center gap-1 text-xs font-mono overflow-x-auto",children:[(0,d.jsx)("button",{type:"button",onClick:()=>A(F),className:"shrink-0 text-muted-foreground hover:text-foreground",children:E}),G.map((a,b)=>{let c=F+G.slice(0,b+1).join("/"),f=b===G.length-1;return(0,d.jsxs)("span",{className:"flex items-center gap-1",children:[(0,d.jsx)(e.A,{className:"h-3 w-3 text-muted-foreground shrink-0"}),f?(0,d.jsx)("span",{className:"text-foreground font-medium",children:a}):(0,d.jsx)("button",{type:"button",onClick:()=>A(c),className:"text-muted-foreground hover:text-foreground",children:a})]},c)})]}),(0,d.jsxs)("div",{className:"border rounded-md max-h-56 overflow-y-auto",children:[q&&(0,d.jsx)("div",{className:"flex items-center justify-center py-8",children:(0,d.jsx)(f.A,{className:"h-4 w-4 animate-spin text-muted-foreground"})}),s&&(0,d.jsx)("div",{className:"px-3 py-4 text-sm text-destructive",children:s}),!q&&!s&&0===o.length&&!u&&(0,d.jsx)("div",{className:"px-3 py-4 text-sm text-muted-foreground",children:"No subdirectories"}),!q&&!s&&o.map(a=>(0,d.jsxs)("button",{type:"button",onClick:()=>A(a.path),className:"flex w-full items-center gap-2 px-3 py-1.5 text-sm hover:bg-muted/50 text-left",children:[(0,d.jsx)(g.A,{className:"h-4 w-4 shrink-0 text-muted-foreground"}),(0,d.jsx)("span",{className:"truncate",children:a.name})]},a.path)),u&&(0,d.jsxs)("div",{className:"px-3 py-1.5 space-y-1",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)(h.A,{className:"h-4 w-4 shrink-0 text-muted-foreground"}),(0,d.jsx)(k.p,{value:w,onChange:a=>x(a.target.value),onKeyDown:a=>{"Enter"===a.key&&(a.preventDefault(),B()),"Escape"===a.key&&(v(!1),x(""),z(""))},placeholder:"Folder name",className:"h-7 text-sm",autoFocus:!0}),(0,d.jsx)(j.$,{type:"button",size:"sm",variant:"ghost",className:"h-7 px-2 text-xs",onClick:B,children:"Create"})]}),y&&(0,d.jsx)("p",{className:"text-xs text-destructive pl-6",children:y})]})]}),(0,d.jsxs)("div",{className:"flex gap-2 justify-end",children:[!u&&(0,d.jsxs)(j.$,{type:"button",variant:"outline",size:"sm",onClick:()=>{v(!0),z("")},disabled:!c,children:[(0,d.jsx)(h.A,{className:"h-3.5 w-3.5 mr-1.5"}),"New Folder"]}),(0,d.jsx)("div",{className:"flex-1"}),(0,d.jsx)(j.$,{type:"button",variant:"outline",size:"sm",onClick:b,children:"Cancel"}),(0,d.jsxs)(j.$,{type:"button",size:"sm",disabled:!c,onClick:()=>a(c),children:["Select ",c?(0,l.uk)(c)||"/":""]})]})]})}},20390:(a,b,c)=>{"use strict";c.d(b,{s:()=>M});var d=c(48249),e=c(69357),f=c(91995),g=c(69627),h=c(15741),i=c(8251),j=c(64571),k=c(67484),l=c(36606),m=c(42377),n=c(38393),o=c(23077),p=c(14490),q=c(28470),r=c(90069),s=c(94856),t=c(67257),u=c(42708),v=c(53649);function w(a,b){let c=a.toLowerCase();return("write"===c||"edit"===c)&&(b.includes("/.claude/plans/")||b.startsWith("~/.claude/plans/"))&&b.endsWith(".md")}function x({tool:a,expandedToolIds:b}){let c=function(){let[a,b]=(0,k.useState)(!1);return a}(),{backgroundTasks:e}=(0,t.E2)(),{settings:g,loaded:h}=(0,o.t)(),i=(0,k.useMemo)(()=>(function(a){if(!a)return{};try{return JSON.parse(a)}catch{return{}}})(a.input),[a.input]),[j,l]=(0,k.useState)(()=>b?.current?.has(a.id)??!1),[m,n]=(0,k.useState)(!1),r=(0,k.useRef)(b?.current?.has(a.id)??!1),s=i.file_path||a.filePath||"",u=w(a.name,s),y=i.content||"",z=u&&("Write"===a.name||"write"===a.name)&&y,D="EnterPlanMode"!==a.name&&"ExitPlanMode"!==a.name&&"TaskCreate"!==a.name&&"TaskUpdate"!==a.name&&"TaskList"!==a.name&&"TaskGet"!==a.name&&"TodoWrite"!==a.name&&(a.input||a.output),E=(0,k.useMemo)(()=>({current:!1}),[]),F=(0,k.useCallback)(a=>{a&&E.current&&(E.current=!1,requestAnimationFrame(()=>{let b=a.closest("[tabindex]");if(!b)return;let c=b.getBoundingClientRect();a.getBoundingClientRect().bottom>c.bottom&&a.scrollIntoView({block:"nearest",behavior:"smooth"})}))},[E]);return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)("div",{className:"rounded border border-border bg-card text-card-foreground text-xs overflow-hidden",children:[(0,d.jsxs)("button",{onClick:()=>{if(z)return void n(!0);if(!D)return;let c=!j;E.current=c,r.current=!0,l(c),b?.current&&(c?b.current.add(a.id):b.current.delete(a.id))},className:(0,p.cn)("flex w-full items-start gap-2 px-3 py-1.5 text-left",D&&"cursor-pointer hover:bg-muted/50",!D&&"cursor-default"),children:[z?(0,d.jsx)(q.A,{className:"h-3 w-3 shrink-0 text-blue-500"}):(0,d.jsx)(f.A,{className:(0,p.cn)("h-3 w-3 shrink-0 text-muted-foreground transition-transform",j&&"rotate-90")}),"Agent"===a.name?(0,d.jsx)(A,{tool:a,input:i,backgroundTasks:e}):(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("span",{className:"font-mono font-medium",children:a.name}),(0,d.jsx)(B,{tool:a,input:i})]})]}),j&&D&&(0,d.jsx)("div",{ref:F,className:"border-t border-border px-3 py-2 space-y-2",children:(0,d.jsx)(C,{tool:a,input:i,dark:c,expandedToolIds:b})})]}),z&&(0,d.jsx)(v.G,{open:m,onOpenChange:n,content:y,filePath:s})]})}function y({filePath:a}){let{tabActions:b}=(0,t.E2)();return(0,d.jsx)("span",{role:"button",tabIndex:0,onClick:c=>{c.stopPropagation(),b?.openFile(a)},onKeyDown:c=>{("Enter"===c.key||" "===c.key)&&(c.preventDefault(),c.stopPropagation(),b?.openFile(a))},title:a,className:"shrink-0 text-muted-foreground hover:text-foreground cursor-pointer",children:(0,d.jsx)(r.A,{className:"h-3 w-3"})})}function z({filePath:a,children:b}){let{tabActions:c}=(0,t.E2)();return(0,d.jsx)("button",{type:"button",onClick:b=>{b.stopPropagation(),c?.openFile(a)},title:a,className:"font-mono text-muted-foreground break-all hover:underline text-left",children:b})}function A({tool:a,input:b,backgroundTasks:c}){let f=b.description||b.prompt||"",g=f.length>80?f.slice(0,80)+"...":f,h=b.model,i=[b.subagent_type,h].filter(Boolean),j="running"===a.status||c.some(b=>b.toolUseId===a.id&&"running"===b.status);return(0,d.jsxs)("div",{className:"flex flex-col gap-0.5 min-w-0 flex-1",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("span",{className:"font-mono font-medium",children:"Agent"}),j&&(0,d.jsx)(e.A,{className:"h-3 w-3 shrink-0 animate-spin text-muted-foreground"}),i.map(a=>(0,d.jsx)("span",{className:"shrink-0 rounded bg-muted px-1.5 py-0.5 text-[10px] text-muted-foreground",children:a},a))]}),g&&(0,d.jsx)("span",{className:"text-muted-foreground truncate",children:g})]})}function B({tool:a,input:b}){let c=a.name;if("Edit"===c||"edit"===c){let e=b.file_path||a.filePath||"";if(!e)return null;let f=w(c,e);return(0,d.jsxs)("span",{className:"flex items-center gap-1.5 min-w-0",children:[(0,d.jsxs)("span",{className:"text-muted-foreground truncate",children:[(0,s._1)(e),f?" (plan edit)":""]}),(0,d.jsx)(y,{filePath:e})]})}if("Write"===c||"write"===c){let e=b.file_path||a.filePath||"";if(!e)return null;let f=b.content||"";return w(c,e)&&f?(0,d.jsx)("span",{className:"text-blue-500 truncate",children:"View plan"}):(0,d.jsxs)("span",{className:"flex items-center gap-1.5 min-w-0",children:[(0,d.jsx)("span",{className:"text-muted-foreground truncate",children:(0,s._1)(e)}),(0,d.jsx)(y,{filePath:e})]})}if("Read"===c||"read"===c){let c=b.file_path||a.filePath||"";return c?(0,d.jsxs)("span",{className:"flex items-center gap-1.5 min-w-0",children:[(0,d.jsx)("span",{className:"text-muted-foreground truncate",children:(0,s._1)(c)}),(0,d.jsx)(y,{filePath:c})]}):null}if("Bash"===c||"bash"===c){let a=b.command||"",c=a.length>60?a.slice(0,60)+"...":a;return c?(0,d.jsx)("span",{className:"font-mono text-muted-foreground truncate",children:c}):null}if("Grep"===c||"grep"===c){let a=b.pattern||"";return a?(0,d.jsxs)("span",{className:"font-mono text-muted-foreground truncate",children:["/",a,"/"]}):null}if("Glob"===c||"glob"===c){let a=b.pattern||"";return a?(0,d.jsx)("span",{className:"font-mono text-muted-foreground truncate",children:a}):null}if("EnterPlanMode"===c)return(0,d.jsx)("span",{className:"text-muted-foreground",children:"Entering plan mode"});if("ExitPlanMode"===c)return(0,d.jsx)("span",{className:"text-muted-foreground",children:"Exiting plan mode"});if("TaskCreate"===c){let a=b.subject||b.content||"";return a?(0,d.jsx)("span",{className:"text-muted-foreground truncate",children:a}):null}if("TaskUpdate"===c){let a=b.taskId||"",c=b.status||"";return a?(0,d.jsxs)("span",{className:"text-muted-foreground truncate",children:["#",a," ",c]}):null}if("TaskList"===c)return(0,d.jsx)("span",{className:"text-muted-foreground",children:"Listing tasks"});if("TaskGet"===c){let a=b.taskId||"";return a?(0,d.jsxs)("span",{className:"text-muted-foreground",children:["#",a]}):null}return null}function C({tool:a,input:b,dark:c,expandedToolIds:e}){let f=a.name;return"Edit"===f||"edit"===f?(0,d.jsx)(D,{input:b,tool:a,dark:c}):"Write"===f||"write"===f?(0,d.jsx)(E,{input:b,tool:a,dark:c}):"Read"===f||"read"===f?(0,d.jsx)(F,{input:b,tool:a,dark:c}):"Bash"===f||"bash"===f?(0,d.jsx)(G,{input:b,tool:a}):"Grep"===f||"grep"===f||"Glob"===f||"glob"===f?(0,d.jsx)(H,{input:b,tool:a}):"Agent"===f?(0,d.jsx)(I,{input:b,tool:a,dark:c,expandedToolIds:e}):(0,d.jsx)(J,{input:b,tool:a})}function D({input:a,tool:b,dark:c}){let e=a.file_path||b.filePath||"file",f=a.old_string||"",g=a.new_string||"";return f||g?(0,d.jsx)(u.Mh,{filePath:e,oldString:f,newString:g,dark:c}):(0,d.jsx)(J,{input:a,tool:b})}function E({input:a,tool:b,dark:c}){let e=a.file_path||b.filePath||"",f=a.content||"",g=e?(0,l.WG)(e):void 0;return(0,d.jsxs)("div",{className:"space-y-1",children:[e&&(0,d.jsx)(z,{filePath:e,children:e}),f&&(0,d.jsx)(l.NG,{code:f,language:g,dark:c}),b.output&&(0,d.jsx)("pre",{className:"overflow-x-auto rounded bg-muted/50 p-2 text-[11px] leading-relaxed max-h-32 overflow-y-auto text-muted-foreground",children:b.output})]})}function F({input:a,tool:b,dark:c}){let e=a.file_path||b.filePath||"",f=e?(0,l.WG)(e):void 0;return(0,d.jsxs)("div",{className:"space-y-1",children:[e&&(0,d.jsx)(z,{filePath:e,children:e}),b.output&&(0,d.jsx)(l.NG,{code:b.output,language:f,dark:c})]})}function G({input:a,tool:b}){let c=a.command||"";return(0,d.jsxs)("div",{className:"space-y-1",children:[c&&(0,d.jsxs)("div",{className:"font-mono text-muted-foreground break-all",children:[(0,d.jsx)("span",{className:"text-foreground/60",children:"$"})," ",c]}),b.output&&(0,d.jsx)("pre",{className:"whitespace-pre-wrap break-all rounded bg-muted/50 p-2 text-[11px] leading-relaxed max-h-64 overflow-y-auto",children:b.output})]})}function H({input:a,tool:b}){let c=a.pattern||"",e=a.path||"";return(0,d.jsxs)("div",{className:"space-y-1",children:[(0,d.jsxs)("div",{className:"font-mono text-muted-foreground",children:[c&&(0,d.jsxs)("span",{children:["/",c,"/"]}),e&&(0,d.jsxs)("span",{children:[" in ",(0,s._1)(e)]})]}),b.output&&(0,d.jsx)("pre",{className:"overflow-x-auto rounded bg-muted/50 p-2 text-[11px] leading-relaxed max-h-64 overflow-y-auto",children:b.output})]})}function I({input:a,tool:b,expandedToolIds:c}){let e=a.prompt||"",f=b.children||[];return(0,d.jsxs)("div",{className:"space-y-2",children:[e&&(0,d.jsx)("pre",{className:"overflow-x-auto rounded bg-muted/50 p-2 text-[11px] leading-relaxed max-h-32 overflow-y-auto text-muted-foreground",children:e}),f.length>0&&(0,d.jsx)("div",{className:"pl-3 border-l-2 border-border space-y-1",children:f.map(a=>(0,d.jsx)(x,{tool:a,expandedToolIds:c},a.id))}),b.output&&(0,d.jsx)("pre",{className:"overflow-x-auto rounded bg-muted/50 p-2 text-[11px] leading-relaxed max-h-48 overflow-y-auto text-muted-foreground",children:b.output})]})}function J({input:a,tool:b}){let c=Object.keys(a).length>0;return(0,d.jsxs)("div",{className:"space-y-1",children:[c&&(0,d.jsx)("pre",{className:"overflow-x-auto rounded bg-muted/50 p-2 text-[11px] leading-relaxed max-h-48 overflow-y-auto",children:JSON.stringify(a,null,2)}),b.output&&(0,d.jsx)("pre",{className:"overflow-x-auto rounded bg-muted/50 p-2 text-[11px] leading-relaxed max-h-48 overflow-y-auto text-muted-foreground",children:b.output})]})}let K=/<(?:task-notification|local-command-caveat|local-command-stdout|command-name|command-message|command-args|system-reminder)[^>]*>[\s\S]*?<\/(?:task-notification|local-command-caveat|local-command-stdout|command-name|command-message|command-args|system-reminder)>[\s\S]*/g;function L(a){return a.replace(K,"").trim()}let M=(0,k.memo)(function({message:a,collapsedByDefault:b=!1,expandedToolIds:c,selectionMode:i=!1,selected:j=!1,onEnterSelection:l,onToggleSelect:o}){let[q,r]=(0,k.useState)(b),[s,t]=(0,k.useState)(null),u="user"===a.role,v="system"===a.role,w=!v,y=new Set(["AskUserQuestion","TodoWrite"]),z=a.blocks?.filter(a=>!("tool_use"===a.type&&y.has(a.toolUse.name)))||[],A=z.length>0,B=z.some(a=>"tool_use"===a.type)||a.toolUses.some(a=>!y.has(a.name)),C=(0,k.useRef)(!1),D=(0,k.useRef)(null),E=(0,k.useCallback)(b=>{C.current||i&&(b.preventDefault(),w&&o?.(a.id))},[w,i,a.id,o]),F=(0,k.useCallback)(()=>{C.current=!0},[]),G=(0,k.useCallback)(()=>{C.current=!1},[]),H=(0,k.useCallback)(b=>{if(i){w&&o?.(a.id);return}if(!w)return;let c=Date.now(),d=D.current;if(d&&c-d.time<300){let c=b.clientX-d.x,e=b.clientY-d.y;if(c*c+e*e<400){D.current=null,window.getSelection()?.removeAllRanges(),l?.(a.id);return}}D.current={time:c,x:b.clientX,y:b.clientY}},[i,w,a.id,o,l]);if(v){let b="__compacting__"===a.content,c="__compacted__"===a.content;return b||c?(0,d.jsxs)("div",{className:"flex w-full items-center gap-3 py-2",children:[(0,d.jsx)("div",{className:"flex-1 border-t border-border"}),(0,d.jsxs)("div",{className:"flex items-center gap-1.5 text-[10px] text-muted-foreground uppercase tracking-wider",children:[b&&(0,d.jsx)(e.A,{className:"h-3 w-3 animate-spin"}),b?"Compacting...":"Compacted"]}),(0,d.jsx)("div",{className:"flex-1 border-t border-border"})]}):"__context_reset__"===a.content?(0,d.jsxs)("div",{className:"flex w-full items-center gap-3 py-2",children:[(0,d.jsx)("div",{className:"flex-1 border-t border-border"}),(0,d.jsx)("div",{className:"text-[10px] text-muted-foreground uppercase tracking-wider",children:"Context cleared"}),(0,d.jsx)("div",{className:"flex-1 border-t border-border"})]}):(0,d.jsx)("div",{className:"flex w-full justify-center",children:(0,d.jsx)("div",{className:"text-xs text-muted-foreground whitespace-pre-wrap py-1",children:a.content})})}return!u&&!v&&!A&&!a.content&&a.toolUses.every(a=>y.has(a.name))||u&&a.content.startsWith("[Request interrupted")?null:q?(a.content.slice(0,80).replace(/\n/g," "),(0,d.jsx)("div",{className:"flex w-full justify-start",children:(0,d.jsx)("button",{onClick:()=>r(!1),className:"max-w-[85%] rounded-lg px-4 py-2 bg-muted text-foreground text-left overflow-hidden",children:(0,d.jsxs)("div",{className:"flex items-center gap-1.5 text-xs text-muted-foreground",children:[(0,d.jsx)(f.A,{className:"h-3 w-3"}),(0,d.jsx)("span",{className:"font-medium",children:"Compaction summary"})]})})})):(0,d.jsxs)("div",{className:(0,p.cn)("flex w-full",u&&!b?"justify-end":"justify-start",i&&"cursor-pointer select-none"),onContextMenu:E,onTouchStart:F,onMouseDown:G,onClick:H,children:[(0,d.jsxs)("div",{className:(0,p.cn)("max-w-[85%] rounded-lg px-4 py-2 overflow-hidden transition-colors select-text",!u&&B&&"w-full",u&&!b?"bg-primary text-primary-foreground":"bg-muted text-foreground",j&&"ring-2 ring-blue-500"),children:[b&&(0,d.jsxs)("button",{onClick:()=>r(!0),className:"flex items-center gap-1 text-xs text-muted-foreground mb-2 hover:text-foreground",children:[(0,d.jsx)(g.A,{className:"h-3 w-3"}),(0,d.jsx)("span",{className:"font-medium",children:"Compaction summary"})]}),u?(0,d.jsxs)(d.Fragment,{children:[a.images&&a.images.length>0&&(0,d.jsx)("div",{className:"flex gap-2 flex-wrap mb-2",children:a.images.map((a,b)=>(0,d.jsx)("img",{src:`data:${a.mediaType};base64,${a.data}`,className:"max-h-60 rounded border border-primary-foreground/20 object-contain cursor-pointer",alt:"",onClick:b=>{b.stopPropagation(),t(`data:${a.mediaType};base64,${a.data}`)}},b))}),a.documents&&a.documents.length>0&&(0,d.jsx)("div",{className:"flex gap-2 flex-wrap mb-2",children:a.documents.map((a,b)=>(0,d.jsxs)("div",{className:"flex items-center gap-1.5 rounded border border-primary-foreground/20 px-2 py-1 text-xs",children:[(0,d.jsx)(h.A,{className:"h-3.5 w-3.5"}),(0,d.jsx)("span",{children:a.name})]},b))}),a.textFiles&&a.textFiles.length>0&&(0,d.jsx)("div",{className:"space-y-1.5 mb-2",children:a.textFiles.map((a,b)=>(0,d.jsx)(N,{name:a.name,content:a.content},b))}),a.content&&(0,d.jsx)("p",{className:"whitespace-pre-wrap break-words text-base leading-relaxed",children:a.content})]}):A?(0,d.jsx)("div",{className:"space-y-2",children:z.map((a,b)=>"tool_use"===a.type?(0,d.jsx)(x,{tool:a.toolUse,expandedToolIds:c},a.toolUse.id):"thinking"===a.type?(0,d.jsx)(O,{text:a.text,tokens:a.tokens,durationMs:a.durationMs,redacted:a.redacted},`thinking-${b}`):(0,d.jsx)(m.Y,{content:L(a.text)},`text-${b}`))}):(0,d.jsxs)(d.Fragment,{children:[a.toolUses.filter(a=>!y.has(a.name)).length>0&&(0,d.jsx)("div",{className:"mb-2 space-y-1",children:a.toolUses.filter(a=>!y.has(a.name)).map(a=>(0,d.jsx)(x,{tool:a,expandedToolIds:c},a.id))}),(0,d.jsx)(m.Y,{content:L(a.content)})]})]}),(0,d.jsx)(n.lG,{open:null!==s,onOpenChange:()=>t(null),className:"max-w-3xl",children:(0,d.jsx)(n.Cf,{className:"max-h-[80vh] overflow-auto",onClose:()=>t(null),children:s&&(0,d.jsx)("img",{src:s,className:"w-full rounded object-contain",alt:""})})})]})});function N({name:a,content:b}){let[c,e]=(0,k.useState)(!1),f=b.split(/\r?\n/).length;return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)("button",{onClick:a=>{a.stopPropagation(),e(!0)},className:"flex w-full items-center gap-1.5 rounded border border-blue-500/20 bg-blue-500/5 px-3 py-1.5 text-xs text-blue-400 hover:text-blue-300",children:[(0,d.jsx)(i.A,{className:"h-3 w-3"}),(0,d.jsx)("span",{className:"font-medium",children:a}),(0,d.jsxs)("span",{className:"text-muted-foreground ml-1",children:[f," lines"]})]}),(0,d.jsx)(n.lG,{open:c,onOpenChange:e,className:"max-w-3xl",children:(0,d.jsxs)(n.Cf,{className:"max-h-[80vh] flex flex-col",onClose:()=>e(!1),children:[(0,d.jsxs)("div",{className:"text-sm font-medium px-1 pb-2 border-b border-border flex items-center gap-1.5",children:[(0,d.jsx)(i.A,{className:"h-3.5 w-3.5 text-blue-400"}),a]}),(0,d.jsx)("div",{className:"flex-1 min-h-0 overflow-auto",children:(0,d.jsx)(l.NG,{code:b,language:(0,l.WG)(a),dark:!0,fullHeight:!0})})]})})]})}function O({text:a,tokens:b,durationMs:c}){let{settings:e}=(0,o.t)(),[h,i]=(0,k.useState)(null),l=h??e.thinkingExpanded,m=a.length>0,n=null!=c?`${Math.max(1,Math.round(c/1e3))}s`:null!=b?`${b.toLocaleString()} token${1===b?"":"s"}`:m?`${a.length.toLocaleString()} chars`:null;return(0,d.jsxs)("div",{className:"rounded border border-purple-500/20 bg-purple-500/5",children:[(0,d.jsxs)("button",{onClick:()=>m&&i(!l),disabled:!m,className:"flex w-full items-center gap-1.5 px-3 py-1.5 text-xs text-purple-400 hover:text-purple-300 disabled:cursor-default disabled:hover:text-purple-400",children:[(0,d.jsx)(j.A,{className:"h-3 w-3"}),(0,d.jsx)("span",{className:"font-medium",children:"Thinking"}),n&&(0,d.jsx)("span",{className:"text-muted-foreground ml-1",children:n}),m&&(l?(0,d.jsx)(g.A,{className:"h-3 w-3 ml-auto"}):(0,d.jsx)(f.A,{className:"h-3 w-3 ml-auto"}))]}),m&&l&&(0,d.jsx)("div",{className:"border-t border-purple-500/20 px-3 py-2 text-xs text-muted-foreground whitespace-pre-wrap max-h-60 overflow-y-auto",children:a})]})}},23077:(a,b,c)=>{"use strict";c.d(b,{t:()=>f});var d=c(67484);c(28213);let e={diffStyle:"split",dismissKeyboardOnSend:!0,thinkingLevel:"high",bypassAllPermissions:!1,thinkingExpanded:!1,readExpanded:!1,editExpanded:!1,toolCallsExpanded:!1,modelSlots:{main:"sonnet"},messageStitching:!0,reviewsEnabled:!0,terminalFontSize:14,terminalTheme:"dark",terminalScrollback:1e3};function f(){let[a,b]=(0,d.useState)(e),[c,f]=(0,d.useState)(!1);return{settings:a,updateSetting:(0,d.useCallback)((a,c)=>{b(b=>{let d={...b,[a]:c};return fetch("/api/defaults",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({[a]:c})}).catch(()=>{}),d})},[]),loaded:c}}},25297:(a,b,c)=>{"use strict";c.d(b,{$:()=>j});var d=c(48249),e=c(51317),f=c(21654),g=c(67484),h=c(14490);let i=(0,f.F)("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50",{variants:{variant:{default:"bg-primary text-primary-foreground hover:bg-primary/90",destructive:"bg-destructive text-white hover:bg-destructive/90",outline:"border border-input bg-background hover:bg-accent hover:text-accent-foreground",secondary:"bg-secondary text-secondary-foreground hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-10 px-4 py-2",sm:"h-9 rounded-md px-3",lg:"h-11 rounded-md px-8",icon:"h-10 w-10"}},defaultVariants:{variant:"default",size:"default"}}),j=g.forwardRef(({className:a,variant:b,size:c,asChild:f=!1,...g},j)=>{let k=f?e.DX:"button";return(0,d.jsx)(k,{className:(0,h.cn)(i({variant:b,size:c,className:a})),ref:j,...g})});j.displayName="Button"},28213:(a,b,c)=>{"use strict";c.d(b,{AX:()=>j,Mi:()=>l,XR:()=>d,bs:()=>g,iz:()=>k,j5:()=>o,jp:()=>m,r5:()=>h,rs:()=>n,w6:()=>e,zQ:()=>i});let d={"200k":{label:"200K",disableEnv:!0,window:2e5},"1m":{label:"1M",disableEnv:!1,window:1e6}},e="200k",f=[{alias:"haiku",version:"4.5",modelId:"claude-haiku-4-5-20251001",displayName:"Haiku 4.5",description:"Fastest",contextSizes:["200k"],contextWindow:2e5,isDefault:!0},{alias:"sonnet",version:"4.6",modelId:"claude-sonnet-4-6",displayName:"Sonnet 4.6",description:"Balanced",contextSizes:["200k","1m"],contextWindow:2e5,isDefault:!0},{alias:"opus",version:"4.6",modelId:"claude-opus-4-6",displayName:"Opus 4.6",description:"Previous generation",contextSizes:["200k","1m"],contextWindow:2e5},{alias:"opus",version:"4.7",modelId:"claude-opus-4-7",displayName:"Opus 4.7",description:"Previous generation",contextSizes:["200k","1m"],contextWindow:2e5,supportsXhigh:!0},{alias:"opus",version:"4.8",modelId:"claude-opus-4-8",displayName:"Opus 4.8",description:"Most capable",contextSizes:["200k","1m"],contextWindow:2e5,isDefault:!0,supportsXhigh:!0},{alias:"fable",version:"5",modelId:"claude-fable-5",displayName:"Fable 5",description:"Most powerful",contextSizes:["200k","1m"],contextWindow:2e5,isDefault:!0,supportsXhigh:!0}];function g(a){if(a)return f.find(b=>b.modelId===a)}function h(a){return f.filter(b=>b.alias===a)}function i(a){return f.find(b=>b.alias===a&&b.isDefault)??h(a)[0]}function j(a){if(!a)return null;let b=a.replace(/\[.*\]$/,"");return"opus"===b||"sonnet"===b||"haiku"===b||"fable"===b?i(b)??null:g(b)??null}function k(a){if(!a||"haiku"===a.alias)return[];let b=["low","medium","high"];return a.supportsXhigh&&b.push("xhigh"),b.push("max"),b}function l(a){return a&&"haiku"!==a.alias?a.supportsXhigh?"xhigh":"sonnet"===a.alias?"medium":"high":null}function m(a){if(!a)return{model:void 0,contextSize:e};let b=/\[1m\]$/i.test(a);return{model:a.replace(/\[.*\]$/,"")||void 0,contextSize:b?"1m":"200k"}}function n(a,b){if(!b)return"anthropic";let c=a.replace(/\[.*\]$/,""),d=b.find(a=>a.models.some(b=>b.modelId===c||`${a.id}:${b.modelId}`===c));return d?.id??"anthropic"}function o(a,b,c,d){let e=j(a);if(e){let a=k(e);return{label:e.displayName,thinking:a.length>0&&("off"===b||a.includes(b))?b:null,context:e.contextSizes.length>=2?c:null}}let f=a.replace(/\[.*\]$/,"");for(let a of d??[]){let d=a.models.find(b=>b.modelId===f||`${a.id}:${b.modelId}`===f);if(d){let a=d.effortLevels??[];return{label:d.displayName||d.modelId,thinking:a.length>0&&("off"===b||a.includes(b))?b:null,context:(d.contextSizes??[]).length>=2?c:null}}}return{label:f.replace(/^[^:]+:/,"")||f,thinking:null,context:null}}},29604:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>d});let d=(0,c(77943).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/home/dev/repos/cockpit/src/app/(app)/layout.tsx\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/home/dev/repos/cockpit/src/app/(app)/layout.tsx","default")},34588:(a,b,c)=>{Promise.resolve().then(c.t.bind(c,81921,23)),Promise.resolve().then(c.t.bind(c,60440,23)),Promise.resolve().then(c.t.bind(c,84342,23)),Promise.resolve().then(c.t.bind(c,82265,23)),Promise.resolve().then(c.t.bind(c,35421,23)),Promise.resolve().then(c.t.bind(c,61335,23)),Promise.resolve().then(c.t.bind(c,70664,23)),Promise.resolve().then(c.bind(c,74661))},36606:(a,b,c)=>{"use strict";c.d(b,{NG:()=>n,WG:()=>h,Ik:()=>m});var d=c(48249),e=c(67484),f=c(94856);let g={ts:"typescript",tsx:"tsx",js:"javascript",jsx:"jsx",py:"python",rb:"ruby",rs:"rust",go:"go",java:"java",kt:"kotlin",swift:"swift",c:"c",cpp:"cpp",h:"c",hpp:"cpp",cs:"csharp",css:"css",scss:"scss",html:"html",vue:"vue",svelte:"svelte",json:"json",yaml:"yaml",yml:"yaml",toml:"toml",xml:"xml",sql:"sql",sh:"bash",bash:"bash",zsh:"bash",fish:"fish",ps1:"powershell",md:"markdown",mdx:"mdx",graphql:"graphql",gql:"graphql",dockerfile:"dockerfile",tf:"hcl",lua:"lua",r:"r",php:"php",scala:"scala",ex:"elixir",exs:"elixir",erl:"erlang",hs:"haskell",ml:"ocaml",zig:"zig"};function h(a){let b=(0,f.uk)(a)||"",c=b.toLowerCase();if("dockerfile"===c)return"dockerfile";if("makefile"===c)return"makefile";let d=b.includes(".")?b.split(".").pop()?.toLowerCase():void 0;if(d)return g[d]}function i(a){let b=a.split(/\r?\n/),c=/^\s*(\d+)\u2192(.*)$/,d=b[0]?.match(c);if(!d)return{code:a,startLine:1};let e=parseInt(d[1],10);return{code:b.map(a=>{let b=a.match(c);return b?b[2]:a}).join("\n"),startLine:e}}async function j(a,b,d){try{let e=await Promise.resolve().then(c.bind(c,61379));return await e.codeToHtml(a,{lang:b,theme:d})}catch{return null}}let k=new Map;function l(a,b,c){return`${c}:${b}:${a}`}function m(a,b,c){let{code:d}=i(a),e=c?"github-dark":"github-light",f=l(d,b,e);k.has(f)||j(d,b,e).then(a=>{a&&k.set(f,a)})}function n({code:a,language:b,dark:c,fullHeight:f,wrap:g}){let{code:h,startLine:j}=i(a),m=b?l(h,b,c?"github-dark":"github-light"):"",[o,p]=(0,e.useState)(b?k.get(m)??null:null),q=`
2
2
  .code-block-lines code {
3
3
  counter-reset: line ${j-1};
4
4
  }
@@ -17,4 +17,9 @@ exports.id=1979,exports.ids=[1979],exports.modules={2864:(a,b,c)=>{"use strict";
17
17
  padding-left: 4.5ch;
18
18
  text-indent: -4.5ch;
19
19
  }`:""}
20
- `,r=g?"overflow-x-hidden":"overflow-x-auto",s=g?" code-block-wrap [&_pre]:whitespace-pre-wrap [&_pre]:[overflow-wrap:anywhere]":"",t=g?" whitespace-pre-wrap [overflow-wrap:anywhere]":"",u=g&&o?o.replace(/\n/g,""):o;return o?(0,d.jsxs)("div",{className:`code-block-lines ${r} rounded text-[11px] leading-relaxed overflow-y-auto [&_pre]:!bg-transparent [&_pre]:p-2 [&_pre]:m-0${s}${f?"":" max-h-64"}`,children:[(0,d.jsx)("style",{children:q}),(0,d.jsx)("div",{dangerouslySetInnerHTML:{__html:u??""}})]}):(0,d.jsx)("pre",{className:`${r} rounded bg-muted/50 p-2 text-[11px] leading-relaxed overflow-y-auto${t}${f?"":" max-h-64"}`,children:h})}},38393:(a,b,c)=>{"use strict";c.d(b,{Cf:()=>k,L3:()=>m,c7:()=>l,lG:()=>j});var d=c(48249),e=c(45535),f=c(57684),g=c(67484),h=c(74429),i=c(14490);function j({open:a,onOpenChange:b,children:c,className:e}){return(g.useEffect(()=>{if(!a)return;let c=a=>{"Escape"===a.key&&(a.preventDefault(),a.stopPropagation(),b(!1))};return window.addEventListener("keydown",c,!0),()=>window.removeEventListener("keydown",c,!0)},[a,b]),a)?(0,h.createPortal)((0,d.jsx)("div",{className:"fixed inset-0 z-50 bg-black/80 flex items-center justify-center px-4 py-12",onMouseDown:a=>{a.target===a.currentTarget&&b(!1)},children:(0,d.jsx)("div",{className:(0,i.cn)("w-full max-h-full flex flex-col",e||"max-w-lg"),children:c})}),document.body):null}function k({className:a,children:b,...c}){return(0,d.jsxs)("div",{className:(0,i.cn)("relative rounded-lg border bg-background text-foreground p-6 shadow-lg overflow-y-auto",a),...c,children:[(c.onClose||c.onDelete)&&(0,d.jsxs)("div",{className:"sticky top-0 z-10 flex justify-between -mx-2 -mt-2 mb-2",children:[c.onClose?(0,d.jsx)("button",{className:"rounded-sm opacity-70 hover:opacity-100",onClick:c.onClose,children:(0,d.jsx)(e.A,{className:"h-4 w-4"})}):(0,d.jsx)("span",{}),c.onDelete&&(0,d.jsx)("button",{className:"rounded-sm opacity-70 hover:opacity-100 text-destructive",onClick:c.onDelete,children:(0,d.jsx)(f.A,{className:"h-4 w-4"})})]}),b]})}function l({className:a,...b}){return(0,d.jsx)("div",{className:(0,i.cn)("flex flex-col space-y-1.5 text-center sm:text-left",a),...b})}function m({className:a,...b}){return(0,d.jsx)("h2",{className:(0,i.cn)("text-lg font-semibold leading-none tracking-tight",a),...b})}},40320:(a,b,c)=>{"use strict";c.d(b,{Bx:()=>Z,HC:()=>X,MJ:()=>S,MN:()=>O});var d=c(48249),e=c(32174),f=c(70296),g=c(27656),h=c(9008),i=c(45535),j=c(69473),k=c(15828),l=c(57762),m=c(78337),n=c(33636),o=c(46940),p=c(78321),q=c(11577),r=c(90069),s=c(35471),t=c(71362),u=c(11091),v=c(19099),w=c(67484),x=c(3284),y=c(86929),z=c(5223),A=c(91995),B=c(14490);let C="cockpit_sidebar_sections";function D({id:a,title:b,badge:c,defaultOpen:e=!0,actions:f,children:g}){let[h,i]=(0,w.useState)(e);return(0,d.jsxs)("div",{className:"border-b last:border-b-0",children:[(0,d.jsxs)("div",{className:"flex items-center",children:[(0,d.jsxs)("button",{type:"button",onClick:()=>{let b=!h;i(b);try{let c=localStorage.getItem(C),d=c?JSON.parse(c):{};d[a]=b,localStorage.setItem(C,JSON.stringify(d))}catch{}},className:"flex flex-1 items-center gap-1.5 px-3 py-2 text-left text-xs font-semibold uppercase tracking-wide text-muted-foreground hover:bg-accent/50 transition-colors min-w-0",children:[(0,d.jsx)(A.A,{className:(0,B.cn)("h-3 w-3 shrink-0 transition-transform",h&&"rotate-90")}),(0,d.jsx)("span",{className:"flex-1 min-w-0 truncate",children:b}),c&&(0,d.jsx)("span",{className:"shrink-0 rounded-full bg-muted px-1.5 py-0.5 text-[10px] leading-none",children:c})]}),f&&(0,d.jsx)("div",{className:"shrink-0 pr-2 flex items-center",children:f})]}),h&&g]})}var E=c(25297),F=c(38393),G=c(77424),H=c(23077),I=c(93571),J=c(47244),K=c(58412);let L="cockpit_sidebar_width";function M({onResize:a}){let b=(0,w.useRef)(!1),c=(0,w.useRef)(0),e=(0,w.useCallback)(d=>{d.preventDefault(),b.current=!0,c.current=d.clientX;let e=d=>{if(!b.current)return;let e=d.clientX-c.current;c.current=d.clientX,a(e)},f=()=>{b.current=!1,document.removeEventListener("mousemove",e),document.removeEventListener("mouseup",f),document.body.style.cursor="",document.body.style.userSelect=""};document.body.style.cursor="col-resize",document.body.style.userSelect="none",document.addEventListener("mousemove",e),document.addEventListener("mouseup",f)},[a]);return(0,d.jsx)("div",{onMouseDown:e,className:"hidden md:block absolute inset-y-0 right-0 w-1 cursor-col-resize hover:bg-primary/30 transition-colors z-10"})}let N="cockpit_unread_sessions";async function O(a){await fetch("/api/sessions/pinned",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({add:a})}).catch(()=>{})}async function P(a){await fetch("/api/sessions/pinned",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({remove:a})}).catch(()=>{})}async function Q(){try{let a=await fetch("/api/sessions/pinned");if(!a.ok)return[];let b=await a.json();return Array.isArray(b.pinned)?b.pinned:[]}catch{return[]}}let R=new Set;async function S(a){for(let b of(await fetch("/api/reviews/pinned",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({add:a})}).catch(()=>{}),R))b()}async function T(a){await fetch("/api/reviews/pinned",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({remove:a})}).catch(()=>{})}async function U(){try{let a=await fetch("/api/reviews/pinned");if(!a.ok)return[];let b=await a.json();return Array.isArray(b.pinned)?b.pinned:[]}catch{return[]}}let V=/^Review:\s*(?:(.+?)\/)?(.+?)#(\d+)(?:\s+-\s+(.*))?$/;function W(){try{let a=localStorage.getItem(N);if(a)return new Set(JSON.parse(a))}catch{}return new Set}function X(a){let b=W();b.delete(a),localStorage.setItem(N,JSON.stringify([...b]))}function Y({session:a,isCurrent:b,isUnread:c,onNavigate:e,onAction:j}){var k;let l,{attributes:m,listeners:n,setNodeRef:o,transform:p,transition:q,isDragging:r}=(0,f.gl)({id:a.id}),s={transform:g.Ks.Transform.toString(p),transition:q,opacity:r?.5:1};return(0,d.jsxs)("div",{ref:o,style:s,role:"button",tabIndex:0,onClick:()=>e(a),onKeyDown:b=>{("Enter"===b.key||" "===b.key)&&(b.preventDefault(),e(a))},className:(0,B.cn)("w-full flex items-center gap-2 px-3 py-2 text-left text-sm hover:bg-accent/50 transition-colors cursor-pointer",b&&"bg-accent"),children:[(0,d.jsx)("button",{type:"button",...m,...n,onClick:a=>a.stopPropagation(),className:"shrink-0 cursor-grab active:cursor-grabbing text-muted-foreground/60 hover:text-muted-foreground touch-none",title:"Drag to reorder","aria-label":"Drag to reorder",children:(0,d.jsx)(h.A,{className:"h-4 w-4"})}),(0,d.jsx)("div",{className:"shrink-0 relative flex items-center justify-center h-4 w-4",children:(a.pendingRequestCount??0)>0?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("div",{className:"absolute h-4 w-4 rounded-full bg-blue-500/20 animate-ping"}),(0,d.jsx)("div",{className:"h-2.5 w-2.5 rounded-full bg-blue-500",title:"Awaiting your input","data-testid":"status-pending"})]}):"running"===a.status?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("div",{className:"absolute h-4 w-4 rounded-full bg-yellow-500/20 animate-ping"}),(0,d.jsx)("div",{className:"h-2.5 w-2.5 rounded-full bg-yellow-500",title:"Working","data-testid":"status-running"})]}):c?(0,d.jsx)("div",{className:"h-2.5 w-2.5 rounded-full bg-green-500",title:"New response","data-testid":"status-unread"}):(0,d.jsx)("div",{className:"h-2.5 w-2.5 rounded-full bg-muted-foreground/30","data-testid":"status-idle"})}),(0,d.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,d.jsx)("div",{className:"truncate font-medium text-left",dir:"rtl",title:a.cwd,children:(0,d.jsx)("bdo",{dir:"ltr",children:(l=(k=a.cwd).split(/[/\\]/)).length>2?"~/"+l.slice(-2).join("/"):k})}),(0,d.jsx)("div",{className:"truncate text-xs text-muted-foreground",children:a.name})]}),(0,d.jsx)(E.$,{variant:"ghost",size:"icon",className:"h-8 w-8 shrink-0 text-red-500 hover:text-red-600 hover:bg-red-500/10",onClick:b=>j(b,a),title:"running"===a.status?"Stop session":"Remove from sidebar",children:(0,d.jsx)(i.A,{className:"h-4 w-4"})})]})}let Z=(0,w.forwardRef)(function(a,b){let c=(0,v.useRouter)(),g=(0,v.usePathname)(),{send:h,subscribe:m,connected:n}=(0,I.h)(),{sidebarSections:o,cwd:p,sessionId:q}=(0,x.E2)(),{settings:r}=(0,H.t)(),[s,t]=(0,w.useState)(!1),[u,y]=(0,w.useState)([]),[z,A]=(0,w.useState)(new Set),[C,F]=(0,w.useState)(!1),[G,J]=(0,w.useState)(288);(0,w.useEffect)(()=>{J(function(){try{let a=localStorage.getItem(L);if(a){let b=parseInt(a,10);if(b>=200&&b<=480)return b}}catch{}return 288}())},[]),(0,w.useEffect)(()=>{c.prefetch("/sessions/_")},[c]);let R=(0,w.useCallback)(a=>{J(b=>{let c=Math.max(200,Math.min(480,b+a));return localStorage.setItem(L,String(c)),c})},[]),S=(0,w.useRef)(new Map),T=(0,e.FR)((0,e.MS)(e.AN,{activationConstraint:{delay:150,tolerance:5}}));(0,w.useImperativeHandle)(b,()=>({toggle:()=>t(a=>!a),close:()=>t(!1)}),[]);let U=(0,w.useCallback)(()=>t(!1),[]),V=g.startsWith("/sessions/")?g.split("/")[2]:null;(0,w.useEffect)(()=>m(a=>{if("session:status"===a.type){let{sessionId:b,status:c}=a,d=new Set(u.map(a=>a.id));if(!d.has(b))return void console.log("[sidebar] status update for unknown session",b.slice(0,8),"known:",[...d].map(a=>a.slice(0,8)));console.log("[sidebar] status updated",b.slice(0,8),"->",c);let e=S.current.get(b);if(S.current.set(b,c),"running"===e&&"idle"===c&&V!==b){let a;(a=W()).add(b),localStorage.setItem(N,JSON.stringify([...a])),A(W())}y(a=>a.map(a=>a.id===b?{...a,status:c}:a))}else if("session:pending"===a.type){let{sessionId:b,count:c}=a;if(!new Set(u.map(a=>a.id)).has(b))return void console.log("[sidebar] pending update for unknown session",b.slice(0,8));console.log("[sidebar] pending updated",b.slice(0,8),"->",c),y(a=>a.map(a=>a.id===b?{...a,pendingRequestCount:c}:a))}else if("session:info_updated"===a.type){let{sessionId:b,info:c}=a;y(a=>a.map(a=>a.id===b?{...a,name:c.name,model:c.model}:a))}}),[m,V,u]);let Z=(0,w.useCallback)(async()=>{A(W());let a=await Q();if(0===a.length)return void y([]);let b=a.join(","),c=await fetch(`/api/sessions/by-ids?ids=${encodeURIComponent(b)}`).then(a=>a.ok?a.json():null).catch(()=>null);if(!c)return;let d=(c.sessions||[]).filter(a=>!a.cwd.endsWith(".cockpit/reviews")),e=new Set(Array.isArray(c.foundIds)?c.foundIds:d.map(a=>a.id)),f=new Map(d.map(a=>[a.id,a])),g=[],i=[];for(let b of a){let a=f.get(b);a&&(g.push(a),i.push(b))}for(let b of(a.some(a=>!e.has(a))&&fetch("/api/sessions/pinned",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({pinned:i})}).catch(()=>{}),g))S.current.has(b.id)||S.current.set(b.id,b.status);y(g),g.length>0&&h({type:"session:subscribe",sessionIds:g.map(a=>a.id)})},[h]),af=(0,w.useRef)(!1);(0,w.useEffect)(()=>{af.current||(af.current=!0,Z())},[Z]),(0,w.useEffect)(()=>{(s||n)&&Z()},[s,n,g,Z]);let ag=async(a,b)=>{a.stopPropagation(),(await fetch(`/api/sessions/${b}`,{method:"DELETE"})).ok&&(await P(b),X(b),A(W()),y(a=>a.filter(a=>a.id!==b)),V===b&&c.push("/"))},ah=async(a,b)=>{a.stopPropagation(),await P(b),X(b),A(W()),y(a=>a.filter(a=>a.id!==b)),V===b&&c.push("/")},ai=(0,w.useCallback)(a=>{let{active:b,over:c}=a;if(!c||b.id===c.id)return;let d=u.findIndex(a=>a.id===b.id),e=u.findIndex(a=>a.id===c.id);if(d<0||e<0)return;let g=(0,f.be)(u,d,e);y(g),fetch("/api/sessions/pinned",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({pinned:g.map(a=>a.id)})}).catch(a=>console.error("Failed to persist sidebar order",a))},[u]),aj=async(a,b,d)=>{let e=await fetch("/api/sessions",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:a,name:b||void 0,runtime:d})});if(e.ok){let b=await e.json();await O(b.sessionId),await Z(),U(),c.push(`/sessions/${b.sessionId}?cwd=${encodeURIComponent(a)}`)}},ak=a=>{X(a.id),A(W()),U();let b=new URLSearchParams({cwd:a.cwd});a.name&&b.set("name",a.name),c.push(`/sessions/${a.id}?${b}`)};return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("div",{className:(0,B.cn)("fixed inset-0 z-40 bg-black/50 transition-opacity md:hidden",s?"opacity-100":"opacity-0 pointer-events-none"),onMouseDown:U}),(0,d.jsxs)("div",{className:(0,B.cn)("fixed inset-y-0 left-0 z-50 bg-background border-r flex flex-col transition-transform duration-200","md:relative md:inset-auto md:z-auto md:translate-x-0 md:shrink-0 md:transition-none",s?"translate-x-0":"-translate-x-full"),style:{width:G},children:[(0,d.jsx)(M,{onResize:R}),(0,d.jsx)("div",{className:"flex items-center justify-end px-3 py-1 border-b md:hidden",children:(0,d.jsx)(E.$,{variant:"ghost",size:"icon",onClick:U,children:(0,d.jsx)(i.A,{className:"h-4 w-4"})})}),(0,d.jsxs)("div",{className:"flex-1 min-h-0 overflow-y-auto",children:[(0,d.jsx)(D,{id:"sessions",title:"Sessions",badge:u.length>0?String(u.length):void 0,actions:(0,d.jsxs)("div",{className:"flex items-center",children:[(0,d.jsx)(E.$,{variant:"ghost",size:"icon",className:"h-6 w-6",onClick:()=>F(!0),title:"New session",children:(0,d.jsx)(j.A,{className:"h-3.5 w-3.5"})}),(0,d.jsx)(E.$,{variant:"ghost",size:"icon",className:"h-6 w-6",onClick:()=>{U(),c.push("/")},title:"All sessions",children:(0,d.jsx)(k.A,{className:"h-3 w-3"})})]}),children:0===u.length?(0,d.jsx)("p",{className:"px-3 py-3 text-sm text-muted-foreground",children:"No active sessions."}):(0,d.jsx)(e.Mp,{sensors:T,onDragEnd:ai,children:(0,d.jsx)(f.gB,{items:u.map(a=>a.id),strategy:f._G,children:u.map(a=>(0,d.jsx)(Y,{session:a,isCurrent:V===a.id,isUnread:z.has(a.id),onNavigate:ak,onAction:(a,b)=>"running"===b.status?ag(a,b.id):ah(a,b.id)},a.id))})})}),(0,d.jsx)(aa,{sections:o,exclude:_}),p&&!o.has("git-changes")&&(0,d.jsx)(ac,{cwd:p,sessionId:q}),p&&!o.has("file-tree")&&(0,d.jsx)(ab,{cwd:p}),r.reviewsEnabled&&(0,d.jsx)($,{onNavigate:U}),r.reviewsEnabled&&(0,d.jsx)(D,{id:"pr-files",title:o.get("pr-files")?.title||"PR Files",badge:o.get("pr-files")?.badge,defaultOpen:!1,children:o.has("pr-files")?o.get("pr-files").content:(0,d.jsx)("div",{className:"px-3 py-3 text-xs text-muted-foreground",children:"No PR open"})})]}),(0,d.jsxs)("div",{className:"border-t px-3 py-2 flex items-center justify-end gap-2",children:[(0,d.jsx)(ad,{onClick:()=>{U(),c.push("/jobs")}}),(0,d.jsx)(ae,{onClick:()=>{U(),c.push("/inbox")}}),(0,d.jsx)(E.$,{variant:"ghost",size:"icon",className:"shrink-0 h-8 w-8 text-muted-foreground hover:text-foreground",onClick:()=>{sessionStorage.removeItem("settings-scroll"),U(),c.push("/settings")},title:"Settings",children:(0,d.jsx)(l.A,{className:"h-4 w-4"})})]})]}),(0,d.jsx)(K.t,{open:C,onOpenChange:F,onSubmit:aj})]})});function $({onNavigate:a}){let b=(0,v.useRouter)();(0,v.usePathname)();let{subscribe:c,send:e}=(0,I.h)(),[f,g]=(0,w.useState)([]);(0,w.useCallback)(async()=>{let a=await U();if(0===a.length)return void g([]);let b=await fetch(`/api/sessions/by-ids?ids=${encodeURIComponent(a.join(","))}`).then(a=>a.ok?a.json():null).catch(()=>null);if(!b)return;let c=b.sessions||[],d=new Set(Array.isArray(b.foundIds)?b.foundIds:c.map(a=>a.id)),f=new Map(c.map(a=>[a.id,a])),h=[],i=[];for(let b of a){let a=f.get(b);if(a){let c=function(a){let b=V.exec(a.name);return b?{id:a.id,owner:b[1]||"",repo:b[2],number:parseInt(b[3],10),title:b[4]||"",status:a.status,pendingRequestCount:a.pendingRequestCount??0}:null}(a);c&&h.push(c),i.push(b)}}a.some(a=>!d.has(a))&&fetch("/api/reviews/pinned",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({pinned:i})}).catch(()=>{}),g(h),h.length>0&&e({type:"session:subscribe",sessionIds:h.map(a=>a.id)})},[e]);let h=c=>{a(),c.owner?b.push(`/reviews/${c.owner}/${c.repo}/${c.number}`):b.push("/reviews")};return(0,d.jsx)(D,{id:"reviews",title:"Reviews",badge:f.length>0?String(f.length):void 0,actions:(0,d.jsx)(E.$,{variant:"ghost",size:"icon",className:"h-6 w-6",onClick:()=>{a(),b.push("/reviews")},title:"All reviews",children:(0,d.jsx)(m.A,{className:"h-3 w-3"})}),children:0===f.length?(0,d.jsx)("p",{className:"px-3 py-3 text-sm text-muted-foreground",children:"No pinned reviews."}):f.map(a=>(0,d.jsxs)("div",{role:"button",tabIndex:0,onClick:()=>h(a),onKeyDown:b=>{("Enter"===b.key||" "===b.key)&&(b.preventDefault(),h(a))},className:"w-full flex items-center gap-2 px-3 py-2 text-left text-sm hover:bg-accent/50 transition-colors cursor-pointer",children:[(0,d.jsx)("div",{className:"shrink-0 relative flex items-center justify-center h-4 w-4",children:a.pendingRequestCount>0?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("div",{className:"absolute h-4 w-4 rounded-full bg-blue-500/20 animate-ping"}),(0,d.jsx)("div",{className:"h-2.5 w-2.5 rounded-full bg-blue-500",title:"Awaiting input"})]}):"running"===a.status?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("div",{className:"absolute h-4 w-4 rounded-full bg-yellow-500/20 animate-ping"}),(0,d.jsx)("div",{className:"h-2.5 w-2.5 rounded-full bg-yellow-500",title:"Working"})]}):(0,d.jsx)("div",{className:"h-2.5 w-2.5 rounded-full bg-muted-foreground/30"})}),(0,d.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,d.jsxs)("div",{className:"truncate font-medium",children:[a.repo,"#",a.number]}),a.title&&(0,d.jsx)("div",{className:"truncate text-xs text-muted-foreground",children:a.title})]}),(0,d.jsx)(E.$,{variant:"ghost",size:"icon",className:"h-8 w-8 shrink-0 text-red-500 hover:text-red-600 hover:bg-red-500/10",onClick:b=>{var c;return c=a.id,void(b.stopPropagation(),g(a=>a.filter(a=>a.id!==c)),T(c))},title:"Remove",children:(0,d.jsx)(i.A,{className:"h-4 w-4"})})]},a.id))})}let _=new Set(["pr-files"]);function aa({sections:a,exclude:b}){let c=(0,w.useMemo)(()=>Array.from(a.values()).filter(a=>!b?.has(a.id)).sort((a,b)=>(a.order??50)-(b.order??50)),[a,b]);return(0,d.jsx)(d.Fragment,{children:c.map(a=>(0,d.jsx)(D,{id:a.id,title:a.title,badge:a.badge,actions:a.actions,children:a.content},a.id))})}function ab({cwd:a}){let b=(0,v.useRouter)(),{tabActions:c,closeSidebar:e}=(0,x.E2)(),[f,g]=(0,w.useState)(!1),h=(0,w.useCallback)(d=>{c?c.openFile(d):b.push(`/files?cwd=${encodeURIComponent(a)}&file=${encodeURIComponent(d)}`)},[b,a,c,e]),i=(0,w.useCallback)(a=>{h(a),g(!1)},[h]);return(0,d.jsxs)(D,{id:"files",title:"Session Files",defaultOpen:!1,actions:(0,d.jsx)("button",{onClick:()=>g(!0),title:"Open file",className:"flex items-center justify-center rounded p-0.5 hover:bg-accent text-muted-foreground",children:(0,d.jsx)(j.A,{className:"h-3.5 w-3.5"})}),children:[(0,d.jsx)(z.h,{cwd:a,selectedFile:null,onSelectFile:h}),(0,d.jsx)(F.lG,{open:f,onOpenChange:g,children:(0,d.jsxs)(F.Cf,{className:"sm:max-w-lg",children:[(0,d.jsx)(F.c7,{children:(0,d.jsx)(F.L3,{children:"Open File"})}),(0,d.jsx)(y.N,{startPath:a,onSelect:i,onCancel:()=>g(!1)})]})})]})}function ac({cwd:a,sessionId:b}){let c=(0,v.useRouter)();(0,v.usePathname)();let{tabActions:e}=(0,x.E2)(),{subscribe:f}=(0,I.h)(),{checkedFiles:g,toggleFile:h}=(0,J.e)(a),[i,j]=(0,w.useState)(""),[k,l]=(0,w.useState)(null),[m,t]=(0,w.useState)([]),u=(0,w.useRef)(a);u.current=a,(0,w.useCallback)(()=>{fetch(`/api/git/status?cwd=${encodeURIComponent(u.current)}`).then(a=>{if(!a.ok)throw Error("Not a git repository");return a.json()}).then(a=>{t(a.files||[]),j(a.branch||""),l(null)}).catch(a=>{t([]),j(""),l(a instanceof Error?a.message:"Failed to load")})},[]);let y=b?`&sessionId=${encodeURIComponent(b)}`:"",z=m.reduce((a,b)=>a+b.additions,0),A=m.reduce((a,b)=>a+b.deletions,0);return(0,d.jsx)(D,{id:"session-changes",title:"Session Changes",badge:m.length>0?String(m.length):void 0,defaultOpen:!1,children:k?(0,d.jsx)("p",{className:"px-3 py-3 text-sm text-muted-foreground",children:k}):0===m.length?(0,d.jsx)("p",{className:"px-3 py-3 text-sm text-muted-foreground",children:"Working tree clean"}):(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)("div",{className:"px-3 py-1.5 text-xs text-muted-foreground flex items-center gap-2 border-b",children:[i&&(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("span",{children:"Branch:"}),(0,d.jsx)("span",{className:"font-mono font-bold text-foreground",children:i}),(0,d.jsx)("span",{className:"mx-0.5",children:"\xb7"})]}),(0,d.jsxs)("span",{children:[m.length," changed"]}),z>0&&(0,d.jsxs)("span",{className:"text-green-500",children:["+",z]}),A>0&&(0,d.jsxs)("span",{className:"text-red-500",children:["-",A]}),(0,d.jsx)("div",{className:"flex-1"}),(0,d.jsx)("button",{type:"button",title:"Open commit view",onClick:()=>{e?e.openChanges():c.push(`/changes?cwd=${encodeURIComponent(a)}${y}`)},className:"hover:text-foreground transition-colors",children:(0,d.jsx)(r.A,{className:"h-3 w-3"})})]}),m.map(b=>(0,d.jsxs)("div",{className:"flex items-center gap-1 px-3 py-1 text-xs hover:bg-accent/50 transition-colors",children:[(0,d.jsx)("button",{type:"button",role:"checkbox","aria-checked":g.has(b.path),onClick:a=>{a.stopPropagation(),h(b.path)},className:(0,B.cn)("h-3.5 w-3.5 shrink-0 rounded-full border flex items-center justify-center transition-colors",g.has(b.path)?"border-primary bg-primary text-primary-foreground":"border-muted-foreground/30 bg-transparent hover:border-muted-foreground/50"),children:g.has(b.path)&&(0,d.jsx)(s.A,{className:"h-2 w-2",strokeWidth:3})}),(0,d.jsxs)("button",{type:"button",onClick:()=>{e?e.openDiff(b.path):c.push(`/changes?cwd=${encodeURIComponent(a)}${y}`)},className:"flex items-center gap-2 flex-1 min-w-0 text-left",children:[function(a){switch(a){case"added":case"untracked":return(0,d.jsx)(n.A,{className:"h-3.5 w-3.5 text-green-500"});case"deleted":return(0,d.jsx)(o.A,{className:"h-3.5 w-3.5 text-red-500"});case"renamed":return(0,d.jsx)(p.A,{className:"h-3.5 w-3.5 text-blue-500"});default:return(0,d.jsx)(q.A,{className:"h-3.5 w-3.5 text-yellow-500"})}}(b.status),(0,d.jsx)("span",{className:"font-mono truncate flex-1 min-w-0",children:b.path}),(0,d.jsxs)("span",{className:"shrink-0 flex gap-1 text-[10px] font-mono",children:[b.additions>0&&(0,d.jsxs)("span",{className:"text-green-500",children:["+",b.additions]}),b.deletions>0&&(0,d.jsxs)("span",{className:"text-red-500",children:["-",b.deletions]})]})]})]},b.path))]})})}function ad({onClick:a}){let{count:b}=(0,G.wA)();return(0,d.jsxs)(E.$,{variant:"ghost",size:"icon",className:"shrink-0 h-8 w-8 text-muted-foreground hover:text-foreground relative",onClick:a,title:"Scheduled Jobs",children:[(0,d.jsx)(t.A,{className:"h-4 w-4"}),b>0&&(0,d.jsx)("span",{className:"absolute top-1 right-1 h-2 w-2 rounded-full bg-red-500"})]})}function ae({onClick:a}){let[b,c]=(0,w.useState)(0);return(0,v.usePathname)(),(0,d.jsxs)(E.$,{variant:"ghost",size:"icon",className:"shrink-0 h-8 w-8 text-muted-foreground hover:text-foreground relative",onClick:a,title:"Inbox",children:[(0,d.jsx)(u.A,{className:"h-4 w-4"}),b>0&&(0,d.jsx)("span",{className:"absolute top-1 right-1 h-2 w-2 rounded-full bg-blue-500"})]})}},42377:(a,b,c)=>{"use strict";c.d(b,{Y:()=>p});var d=c(48249),e=c(22325),f=c(21718),g=c(22548),h=c(35471),i=c(20878),j=c(67484);function k(a){let b=document.createElement("textarea");b.value=a,b.style.position="fixed",b.style.opacity="0",document.body.appendChild(b),b.select();try{return document.execCommand("copy")}finally{document.body.removeChild(b)}}var l=c(14490);function m(a){return(0,d.jsx)("a",{...a,target:"_blank",rel:"noopener noreferrer"})}let n={pre:function(a){let[b,c]=(0,j.useState)(!1),e=(0,j.useRef)(null),f=(0,j.useCallback)(()=>{let a=e.current?.textContent??"",b=()=>{c(!0),setTimeout(()=>c(!1),1500)};navigator.clipboard?.writeText?navigator.clipboard.writeText(a).then(b).catch(()=>{k(a)&&b()}):k(a)&&b()},[]);return(0,d.jsxs)("div",{className:"group/code relative",children:[(0,d.jsx)("pre",{ref:e,...a}),(0,d.jsx)("button",{onClick:f,className:"absolute top-2 right-2 p-1.5 rounded bg-background/80 border border-border text-muted-foreground hover:text-foreground opacity-60 sm:opacity-0 sm:group-hover/code:opacity-100 transition-opacity",title:"Copy code",children:b?(0,d.jsx)(h.A,{className:"h-3.5 w-3.5 text-green-500"}):(0,d.jsx)(i.A,{className:"h-3.5 w-3.5"})})]})},a:m},o={a:m};function p({content:a,variant:b="full",className:c}){return"lite"===b?(0,d.jsx)("div",{className:(0,l.cn)("prose prose-sm max-w-none dark:prose-invert",c),children:(0,d.jsx)(e.oz,{remarkPlugins:[g.A],components:o,children:a})}):(0,d.jsx)("div",{className:(0,l.cn)("message-prose prose prose-sm max-w-none dark:prose-invert",c),children:(0,d.jsx)(e.oz,{remarkPlugins:[g.A],rehypePlugins:[f.A],components:n,children:a})})}},42708:(a,b,c)=>{"use strict";c.d(b,{Mh:()=>k,j8:()=>j,sU:()=>i});var d=c(48249),e=c(85410),f=c(37754),g=c(67484),h=c(23077);class i extends g.Component{static getDerivedStateFromError(){return{error:!0}}render(){return this.state.error?this.props.fallback||(0,d.jsx)("pre",{className:"p-3 text-xs text-muted-foreground",children:"Unable to render diff"}):this.props.children}constructor(...a){super(...a),this.state={error:!1}}}let j="[data-column-content] { user-select: text; -webkit-user-select: text; }";function k({filePath:a,oldString:b,newString:c,dark:l}){let{settings:m}=(0,h.t)(),n=(0,g.useMemo)(()=>(0,f.ss)(`a/${a}`,`b/${a}`,b,c,"","",{context:3}),[a,b,c]);return(0,d.jsx)("div",{className:"overflow-x-auto rounded text-xs",children:(0,d.jsx)(i,{children:(0,d.jsx)(e.C,{patch:n,options:{theme:{dark:"pierre-dark",light:"pierre-light"},themeType:l?"dark":"light",disableFileHeader:!0,overflow:"wrap",diffStyle:m.diffStyle,unsafeCSS:j}})})})}},45159:(a,b,c)=>{Promise.resolve().then(c.t.bind(c,81921,23))},47244:(a,b,c)=>{"use strict";c.d(b,{e:()=>j});var d=c(67484);let e=new Map,f=new Set,g=new Set;function h(){for(let a of f)a()}function i(a){return f.add(a),()=>{f.delete(a)}}function j(a){let b=(0,d.useSyncExternalStore)(i,()=>e.get(a)||g),c=(0,d.useCallback)(b=>{let c=new Set(e.get(a)||new Set);c.has(b)?c.delete(b):c.add(b),e.set(a,c),h()},[a]);return{checkedFiles:b,toggleFile:c,toggleAll:(0,d.useCallback)(b=>{let c=e.get(a)||new Set;e.set(a,c.size===b.length?new Set:new Set(b)),h()},[a]),setCheckedFiles:(0,d.useCallback)(b=>{e.set(a,b),h()},[a])}}},48156:(a,b,c)=>{Promise.resolve().then(c.t.bind(c,95547,23)),Promise.resolve().then(c.t.bind(c,15098,23)),Promise.resolve().then(c.t.bind(c,47644,23)),Promise.resolve().then(c.t.bind(c,33859,23)),Promise.resolve().then(c.t.bind(c,98099,23)),Promise.resolve().then(c.t.bind(c,16237,23)),Promise.resolve().then(c.t.bind(c,98562,23)),Promise.resolve().then(c.t.bind(c,36675,23))},53649:(a,b,c)=>{"use strict";c.d(b,{G:()=>k});var d=c(48249),e=c(45535),f=c(67484),g=c(42377),h=c(25297),i=c(63647),j=c(94856);function k({open:a,onOpenChange:b,content:c,filePath:l}){let m=(0,f.useCallback)(()=>b(!1),[b]),n=(0,f.useCallback)(a=>{a.target===a.currentTarget&&m()},[m]);if(!a)return null;let o=(0,j.uk)(l)||l;return(0,d.jsx)("div",{className:"fixed inset-0 z-50 bg-black/50 flex items-center justify-center p-4",onClick:n,children:(0,d.jsxs)(i.Zp,{className:"w-full max-w-3xl flex flex-col",style:{maxHeight:"calc(100dvh - 2rem)"},children:[(0,d.jsxs)("div",{className:"flex items-center justify-between px-4 py-2 border-b shrink-0",children:[(0,d.jsx)("span",{className:"text-sm font-medium text-muted-foreground",children:o}),(0,d.jsx)(h.$,{variant:"ghost",size:"icon",className:"h-6 w-6",onClick:m,children:(0,d.jsx)(e.A,{className:"h-4 w-4"})})]}),(0,d.jsx)(g.Y,{content:c,className:"flex-1 min-h-0 overflow-y-auto p-4"})]})})}},58412:(a,b,c)=>{"use strict";c.d(b,{t:()=>p});var d=c(48249),e=c(4870),f=c(35101),g=c(67254),h=c(28624),i=c(22130),j=c(69357),k=c(67484),l=c(25297),m=c(38393),n=c(88877),o=c(19198);function p({open:a,onOpenChange:b,onSubmit:c}){let[r,s]=(0,k.useState)("backend"),[t,u]=(0,k.useState)("session"),[v,w]=(0,k.useState)(""),[x,y]=(0,k.useState)(""),[z,A]=(0,k.useState)(null),[B,C]=(0,k.useState)(!1),[D,E]=(0,k.useState)(""),[F,G]=(0,k.useState)(""),[H,I]=(0,k.useState)(""),[J,K]=(0,k.useState)(!1),[L,M]=(0,k.useState)(!1),[N,O]=(0,k.useState)(""),P=()=>{s("backend"),w(""),y(""),A(null),C(!1),E(""),G(""),I(""),K(!1),M(!1),O("")},Q=a=>{A(a),s("details")},R=async a=>{if(a.preventDefault(),D.trim()&&F.trim()&&z){M(!0),O("");try{let a=await fetch("/api/git/clone",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({url:D.trim(),parentPath:F.trim(),folderName:H.trim()||void 0})}),d=await a.json();if(!a.ok)return void O(d.error||"Clone failed");c(d.path,x.trim(),z),P(),b(!1)}catch{O("Failed to connect")}finally{M(!1)}}};return(0,d.jsx)(m.lG,{open:a,onOpenChange:a=>{a||P(),b(a)},children:(0,d.jsxs)(m.Cf,{onClose:()=>{P(),b(!1)},children:[(0,d.jsx)(m.c7,{children:(0,d.jsxs)(m.L3,{className:"flex items-center gap-2",children:["details"===r&&(0,d.jsx)("button",{type:"button",onClick:()=>s("backend"),className:"rounded-md p-1 text-muted-foreground hover:bg-accent hover:text-foreground",title:"Back to backend selection",children:(0,d.jsx)(e.A,{className:"h-4 w-4"})}),"backend"===r?"Choose Backend":"New Session"]})}),"backend"===r&&(0,d.jsxs)("div",{className:"space-y-3 mt-2",children:[(0,d.jsx)("p",{className:"text-sm text-muted-foreground",children:"Pick how Claude runs for this session."}),(0,d.jsx)(q,{icon:(0,d.jsx)(f.A,{className:"h-5 w-5"}),title:"PTY (interactive)",subtitle:"Pseudo-terminal",description:"Spawns a real Claude TUI in a pseudo-terminal. Supports interactive features like slash commands.",onClick:()=>Q("pty")}),(0,d.jsx)(q,{icon:(0,d.jsx)(g.A,{className:"h-5 w-5"}),title:"Stream (headless)",subtitle:"Structured output",description:"Runs Claude with structured JSON streaming. Lower overhead, better for automated workflows.",onClick:()=>Q("stream")})]}),"details"===r&&(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)("div",{className:"flex gap-1 border-b mt-2",children:[(0,d.jsx)("button",{type:"button",onClick:()=>u("session"),className:`px-3 py-1.5 text-sm font-medium border-b-2 transition-colors ${"session"===t?"border-foreground text-foreground":"border-transparent text-muted-foreground hover:text-foreground"}`,children:"Open Directory"}),(0,d.jsxs)("button",{type:"button",onClick:()=>u("clone"),className:`px-3 py-1.5 text-sm font-medium border-b-2 transition-colors flex items-center gap-1.5 ${"clone"===t?"border-foreground text-foreground":"border-transparent text-muted-foreground hover:text-foreground"}`,children:[(0,d.jsx)(h.A,{className:"h-3.5 w-3.5"}),"Clone Repo"]})]}),"session"===t&&(0,d.jsxs)("form",{onSubmit:a=>{a.preventDefault(),v.trim()&&z&&(c(v.trim(),x.trim(),z),P(),b(!1))},className:"space-y-4 mt-2",children:[(0,d.jsxs)("div",{children:[(0,d.jsx)("label",{className:"text-sm font-medium",children:"Working Directory"}),(0,d.jsxs)("div",{className:"flex gap-2",children:[(0,d.jsx)(n.p,{value:v,onChange:a=>w(a.target.value),placeholder:"/home/user/project",required:!0}),(0,d.jsx)(l.$,{type:"button",variant:"outline",size:"icon",onClick:()=>C(!B),title:"Browse directories",children:(0,d.jsx)(i.A,{className:"h-4 w-4"})})]})]}),B&&(0,d.jsx)(o.K,{onSelect:a=>{w(a),C(!1)},onCancel:()=>C(!1)}),(0,d.jsxs)("div",{children:[(0,d.jsx)("label",{className:"text-sm font-medium",children:"Name (optional)"}),(0,d.jsx)(n.p,{value:x,onChange:a=>y(a.target.value),placeholder:"My Project"})]}),(0,d.jsx)(l.$,{type:"submit",className:"w-full",disabled:!v.trim(),children:"Create Session"})]}),"clone"===t&&(0,d.jsxs)("form",{onSubmit:R,className:"space-y-4 mt-2",children:[(0,d.jsxs)("div",{children:[(0,d.jsx)("label",{className:"text-sm font-medium",children:"Repository URL"}),(0,d.jsx)(n.p,{value:D,onChange:a=>E(a.target.value),placeholder:"https://github.com/user/repo.git",required:!0})]}),(0,d.jsxs)("div",{children:[(0,d.jsx)("label",{className:"text-sm font-medium",children:"Clone Into"}),(0,d.jsxs)("div",{className:"flex gap-2",children:[(0,d.jsx)(n.p,{value:F,onChange:a=>G(a.target.value),placeholder:"/home/user/projects",required:!0}),(0,d.jsx)(l.$,{type:"button",variant:"outline",size:"icon",onClick:()=>K(!J),title:"Browse directories",children:(0,d.jsx)(i.A,{className:"h-4 w-4"})})]})]}),J&&(0,d.jsx)(o.K,{onSelect:a=>{G(a),K(!1)},onCancel:()=>K(!1)}),(0,d.jsxs)("div",{children:[(0,d.jsx)("label",{className:"text-sm font-medium",children:"Folder Name (optional)"}),(0,d.jsx)(n.p,{value:H,onChange:a=>I(a.target.value),placeholder:"Defaults to repository name"})]}),(0,d.jsxs)("div",{children:[(0,d.jsx)("label",{className:"text-sm font-medium",children:"Session Name (optional)"}),(0,d.jsx)(n.p,{value:x,onChange:a=>y(a.target.value),placeholder:"My Project"})]}),N&&(0,d.jsx)("p",{className:"text-sm text-destructive",children:N}),(0,d.jsx)(l.$,{type:"submit",className:"w-full",disabled:!D.trim()||!F.trim()||L,children:L?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(j.A,{className:"h-4 w-4 animate-spin mr-2"}),"Cloning..."]}):"Clone & Create Session"})]})]})]})})}function q({icon:a,title:b,subtitle:c,description:e,onClick:f}){return(0,d.jsxs)("button",{type:"button",onClick:f,className:"w-full text-left rounded-lg border border-input bg-card px-4 py-3 transition-colors hover:border-foreground hover:bg-accent",children:[(0,d.jsxs)("div",{className:"flex items-center gap-3 mb-1",children:[(0,d.jsx)("span",{className:"text-foreground",children:a}),(0,d.jsxs)("div",{className:"flex-1",children:[(0,d.jsx)("div",{className:"text-sm font-medium",children:b}),(0,d.jsx)("div",{className:"text-xs text-muted-foreground",children:c})]})]}),(0,d.jsx)("p",{className:"text-xs text-muted-foreground mt-2",children:e})]})}},61135:()=>{},62031:(a,b,c)=>{Promise.resolve().then(c.t.bind(c,95547,23))},63647:(a,b,c)=>{"use strict";c.d(b,{BT:()=>j,Wu:()=>k,ZB:()=>i,Zp:()=>g,aR:()=>h});var d=c(48249),e=c(67484),f=c(14490);let g=e.forwardRef(({className:a,...b},c)=>(0,d.jsx)("div",{ref:c,className:(0,f.cn)("rounded-lg border bg-card text-card-foreground shadow-sm",a),...b}));g.displayName="Card";let h=e.forwardRef(({className:a,...b},c)=>(0,d.jsx)("div",{ref:c,className:(0,f.cn)("flex flex-col space-y-1.5 p-6",a),...b}));h.displayName="CardHeader";let i=e.forwardRef(({className:a,...b},c)=>(0,d.jsx)("div",{ref:c,className:(0,f.cn)("text-2xl font-semibold leading-none tracking-tight",a),...b}));i.displayName="CardTitle";let j=e.forwardRef(({className:a,...b},c)=>(0,d.jsx)("div",{ref:c,className:(0,f.cn)("text-sm text-muted-foreground",a),...b}));j.displayName="CardDescription";let k=e.forwardRef(({className:a,...b},c)=>(0,d.jsx)("div",{ref:c,className:(0,f.cn)("p-6 pt-0",a),...b}));k.displayName="CardContent"},67522:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>f});var d=c(48249),e=c(3284);function f({children:a}){return(0,d.jsx)(e.GV,{children:a})}},73781:()=>{},76537:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>g,metadata:()=>e,viewport:()=>f});var d=c(5735);c(61135);let e={title:"Cockpit",description:"Claude Code Web UI",manifest:"/manifest.json",icons:{icon:[{url:"/favicon.ico",sizes:"any"},{url:"/icon-192.png",sizes:"192x192",type:"image/png"}],apple:"/icon-192.png"},appleWebApp:{capable:!0,statusBarStyle:"default",title:"Cockpit"}},f={width:"device-width",initialScale:1,maximumScale:1,userScalable:!1,interactiveWidget:"resizes-content",themeColor:[{media:"(prefers-color-scheme: light)",color:"#ffffff"},{media:"(prefers-color-scheme: dark)",color:"#1a1a1a"}]};function g({children:a}){return(0,d.jsx)("html",{lang:"en",className:"h-full overflow-hidden",suppressHydrationWarning:!0,children:(0,d.jsxs)("body",{className:"h-full overflow-hidden bg-background font-sans antialiased",children:[a,(0,d.jsx)("script",{dangerouslySetInnerHTML:{__html:'(function(){try{var t=localStorage.getItem("cockpit-theme");var d=t==="dark"||(t!=="light"&&matchMedia("(prefers-color-scheme:dark)").matches);if(d)document.documentElement.classList.add("dark")}catch(e){}})();if("serviceWorker"in navigator){window.addEventListener("load",function(){navigator.serviceWorker.register("/sw.js")})}'}})]})})}},77424:(a,b,c)=>{"use strict";c.d(b,{Jm:()=>f,Os:()=>e,wA:()=>g});var d=c(67484);function e(){let[a,b]=(0,d.useState)([]),[c,e]=(0,d.useState)(!0),f=(0,d.useCallback)(()=>{e(!0),fetch("/api/jobs").then(a=>a.json()).then(a=>b(a.jobs)).catch(()=>b([])).finally(()=>e(!1))},[]),g=(0,d.useCallback)(async a=>{try{if((await fetch(`/api/jobs/${a}`,{method:"DELETE"})).ok)return f(),!0;return!1}catch{return!1}},[f]);return{jobs:a,loading:c,refresh:f,deleteJob:g,triggerJob:(0,d.useCallback)(async a=>{try{return(await fetch(`/api/jobs/${a}/trigger`,{method:"POST"})).ok}catch{return!1}},[])}}function f(a){let[b,c]=(0,d.useState)([]),[e,f]=(0,d.useState)(!0),[g,h]=(0,d.useState)(!1),[i,j]=(0,d.useState)(!1),k=(0,d.useCallback)(()=>{if(!a){c([]),f(!1),j(!1);return}f(!0),fetch(`/api/jobs/${a}/runs?limit=25`).then(a=>a.json()).then(a=>{c(a.runs),j(a.hasMore??!1)}).catch(()=>c([])).finally(()=>f(!1))},[a]),l=(0,d.useCallback)(()=>{a&&!g&&i&&(h(!0),fetch(`/api/jobs/${a}/runs?limit=25&offset=${b.length}`).then(a=>a.json()).then(a=>{c(b=>[...b,...a.runs]),j(a.hasMore??!1)}).catch(()=>{}).finally(()=>h(!1)))},[a,g,i,b.length]);return{runs:b,loading:e,loadingMore:g,hasMore:i,refresh:k,loadMore:l}}function g(){let[a,b]=(0,d.useState)(0);return(0,d.useRef)(void 0),{count:a}}},77718:(a,b,c)=>{Promise.resolve().then(c.bind(c,67522))},78335:()=>{},80435:(a,b,c)=>{"use strict";c.d(b,{Q:()=>l});var d=c(48249),e=c(45535),f=c(69357),g=c(67484),h=c(25297),i=c(63647),j=c(3284),k=c(20390);function l(a){let{timestamp:b,onClose:c}=a,l=(0,j.E2)();a.sessionId??l.sessionId,a.cwd??l.cwd;let[m,n]=(0,g.useState)([]),[o,p]=(0,g.useState)(""),[q,r]=(0,g.useState)(!0),[s,t]=(0,g.useState)(null),u=(0,g.useRef)(null),v=(0,g.useRef)(new Set),w=(0,g.useCallback)(a=>{a.target===a.currentTarget&&c()},[c]);return(0,d.jsx)("div",{className:"fixed inset-0 z-50 bg-black/50 flex items-center justify-center p-4",onClick:w,children:(0,d.jsxs)(i.Zp,{className:"w-full max-w-3xl flex flex-col",style:{maxHeight:"calc(100dvh - 2rem)"},children:[(0,d.jsxs)("div",{className:"flex items-center justify-between px-4 py-2 border-b shrink-0",children:[(0,d.jsx)("span",{className:"text-sm font-medium text-muted-foreground",children:"Message context"}),(0,d.jsx)(h.$,{variant:"ghost",size:"icon",className:"h-6 w-6",onClick:c,children:(0,d.jsx)(e.A,{className:"h-4 w-4"})})]}),(0,d.jsxs)("div",{className:"flex-1 min-h-0 overflow-y-auto p-4 space-y-4",children:[q&&(0,d.jsx)("div",{className:"flex justify-center py-12",children:(0,d.jsx)(f.A,{className:"h-5 w-5 animate-spin text-muted-foreground"})}),s&&(0,d.jsx)("div",{className:"text-center text-sm text-red-500 py-12",children:s}),!q&&m.map(a=>(0,d.jsx)("div",{ref:a.id===o?u:void 0,className:a.id===o?"ring-2 ring-primary/50 rounded-lg":void 0,children:(0,d.jsx)(k.s,{message:a,expandedToolIds:v})},a.id))]})]})})}},86929:(a,b,c)=>{"use strict";c.d(b,{N:()=>m});var d=c(48249),e=c(91995),f=c(69357),g=c(30566),h=c(2409),i=c(8251),j=c(67484),k=c(25297),l=c(94856);function m({onSelect:a,onCancel:b,startPath:c}){let[n,o]=(0,j.useState)(c??""),[p,q]=(0,j.useState)([]),[r,s]=(0,j.useState)(!0),[t,u]=(0,j.useState)(""),v=(0,j.useCallback)(async a=>{s(!0),u("");let b=new URLSearchParams({includeFiles:"true"});a&&b.set("path",a);try{let a=await fetch(`/api/filesystem/browse?${b}`);if(!a.ok){let b=await a.json().catch(()=>({error:"Failed to browse"}));u(b.error||"Failed to browse"),q([]);return}let c=await a.json();o(c.path),q(c.entries)}catch{u("Failed to connect"),q([])}finally{s(!1)}},[]),w=/^[a-zA-Z]:[/\\]/.test(n),x=w?n.slice(0,3):"/",y=w?n.slice(0,3):"/",z=(0,l.cs)(n),A=w?z.slice(1):z;return(0,d.jsxs)("div",{className:"space-y-3",children:[(0,d.jsxs)("div",{className:"flex items-center gap-1 text-xs font-mono overflow-x-auto",children:[(0,d.jsx)("button",{type:"button",onClick:()=>v(y),className:"shrink-0 text-muted-foreground hover:text-foreground",children:x}),A.map((a,b)=>{let c=y+A.slice(0,b+1).join("/"),f=b===A.length-1;return(0,d.jsxs)("span",{className:"flex items-center gap-1",children:[(0,d.jsx)(e.A,{className:"h-3 w-3 text-muted-foreground shrink-0"}),f?(0,d.jsx)("span",{className:"text-foreground font-medium",children:a}):(0,d.jsx)("button",{type:"button",onClick:()=>v(c),className:"text-muted-foreground hover:text-foreground",children:a})]},c)})]}),(0,d.jsxs)("div",{className:"border rounded-md max-h-56 overflow-y-auto",children:[r&&(0,d.jsx)("div",{className:"flex items-center justify-center py-8",children:(0,d.jsx)(f.A,{className:"h-4 w-4 animate-spin text-muted-foreground"})}),t&&(0,d.jsx)("div",{className:"px-3 py-4 text-sm text-destructive",children:t}),!r&&!t&&n!==y&&(0,d.jsxs)("button",{type:"button",onClick:()=>{v(n.replace(/\/[^/]+\/?$/,"")||y)},className:"flex w-full items-center gap-2 px-3 py-1.5 text-sm hover:bg-muted/50 text-left text-muted-foreground",children:[(0,d.jsx)(g.A,{className:"h-4 w-4 shrink-0"}),(0,d.jsx)("span",{children:".."})]}),!r&&!t&&0===p.length&&(0,d.jsx)("div",{className:"px-3 py-4 text-sm text-muted-foreground",children:"Empty directory"}),!r&&!t&&p.map(b=>"directory"===b.type?(0,d.jsxs)("button",{type:"button",onClick:()=>v(b.path),className:"flex w-full items-center gap-2 px-3 py-1.5 text-sm hover:bg-muted/50 text-left",children:[(0,d.jsx)(h.A,{className:"h-4 w-4 shrink-0 text-muted-foreground"}),(0,d.jsx)("span",{className:"truncate",children:b.name})]},b.path):(0,d.jsxs)("button",{type:"button",onClick:()=>a(b.path),className:"flex w-full items-center gap-2 px-3 py-1.5 text-sm hover:bg-muted/50 text-left",children:[(0,d.jsx)(i.A,{className:"h-4 w-4 shrink-0 text-muted-foreground"}),(0,d.jsx)("span",{className:"truncate",children:b.name})]},b.path))]}),(0,d.jsx)("div",{className:"flex justify-end",children:(0,d.jsx)(k.$,{type:"button",variant:"outline",size:"sm",onClick:b,children:"Cancel"})})]})}},88877:(a,b,c)=>{"use strict";c.d(b,{p:()=>g});var d=c(48249),e=c(67484),f=c(14490);let g=e.forwardRef(({className:a,type:b,...c},e)=>(0,d.jsx)("input",{type:b,className:(0,f.cn)("flex h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50",a),ref:e,...c}));g.displayName="Input"},93571:(a,b,c)=>{"use strict";c.d(b,{f:()=>g,h:()=>h});var d=c(48249),e=c(67484);let f=(0,e.createContext)(null);function g({children:a}){let[b,c]=(0,e.useState)(!1),h=(0,e.useRef)(null),i=(0,e.useRef)(new Set),j=(0,e.useRef)(void 0),k=(0,e.useRef)(500),l=(0,e.useRef)([]),m=(0,e.useRef)(!1),n=(0,e.useRef)(!0),o=(0,e.useRef)(void 0),p=(0,e.useRef)(null),q=(0,e.useRef)(void 0),r=(0,e.useRef)(!1);(0,e.useRef)(void 0);let s=(0,e.useCallback)(()=>{if(!n.current)return;clearTimeout(j.current);let a="visible"===document.visibilityState?5e3:3e4,b=Math.min(k.current,a);console.log(`[ws] reconnect scheduled in ${b}ms`),j.current=setTimeout(()=>{k.current=Math.min(2*k.current,3e4),o.current?.()},b)},[]),t=(0,e.useCallback)(async()=>{if(m.current||h.current)return void console.log(`[ws] connect skipped (connecting=${m.current}, hasWs=${!!h.current})`);m.current=!0;let a=performance.now();console.log("[ws] connecting...");let b=p.current;if(b)console.log("[ws] using cached token");else try{let c=await fetch("/api/auth/ws-token");if(!c.ok){console.warn(`[ws] ws-token fetch failed (${c.status})`),m.current=!1,s();return}b=(await c.json()).token,console.log(`[ws] token fetched in ${(performance.now()-a).toFixed(0)}ms`)}catch(a){console.warn("[ws] ws-token fetch error:",a),m.current=!1,s();return}if(h.current||!n.current){console.log(`[ws] connect aborted (hasWs=${!!h.current}, mounted=${n.current})`),m.current=!1;return}let d="https:"===window.location.protocol?"wss:":"ws:",e=new WebSocket(`${d}//${window.location.host}/ws?token=${b}`);h.current=e,m.current=!1,e.onopen=()=>{for(let d of(console.log(`[ws] connected in ${(performance.now()-a).toFixed(0)}ms`),c(!0),p.current=b,k.current=500,l.current))e.send(JSON.stringify(d));l.current=[]},e.onmessage=a=>{let b=JSON.parse(a.data);for(let a of("pong"===b.type&&(clearTimeout(q.current),r.current=!1),"message:ack"===b.type&&u.current.length>0&&(u.current=[]),i.current))a(b)},e.onclose=a=>{console.log(`[ws] closed (code=${a.code}), reconnecting immediately`),c(!1),h.current===e&&(h.current=null),u.current.length>0&&(l.current.push(...u.current),u.current=[]),(1008===a.code||4401===a.code)&&(p.current=null),k.current=500,o.current?.()},e.onerror=()=>{e.close()}},[s]);o.current=t,(0,e.useCallback)(()=>{let a=h.current;a&&(a.onclose=null,a.onerror=null,a.close(),h.current=null),c(!1),k.current=500,o.current?.()},[]);let u=(0,e.useRef)([]),v=(0,e.useCallback)(a=>{h.current?.readyState===WebSocket.OPEN?("message:send"===a.type&&u.current.push(a),h.current.send(JSON.stringify(a))):l.current.push(a)},[]),w=(0,e.useCallback)(a=>(i.current.add(a),()=>{i.current.delete(a)}),[]);return(0,d.jsx)(f.Provider,{value:{connected:b,send:v,subscribe:w},children:a})}function h(){let a=(0,e.useContext)(f);if(!a)throw Error("useWebSocket must be used within WebSocketProvider");return a}},94856:(a,b,c)=>{"use strict";function d(a){let b=Math.max(a.lastIndexOf("/"),a.lastIndexOf("\\"));return b<0?a:a.slice(b+1)}function e(a){let b=Math.max(a.lastIndexOf("/"),a.lastIndexOf("\\"));return b<0?"":a.slice(0,b)}function f(a,b=3){let c=a.split(/[/\\]/);return c.length<=b?a:".../"+c.slice(-2).join("/")}function g(a){return a.split(/[/\\]/).filter(Boolean)}c.d(b,{_1:()=>f,cs:()=>g,uk:()=>d,ww:()=>e})},96487:()=>{}};
20
+ `,r=g?"overflow-x-hidden":"overflow-x-auto",s=g?" code-block-wrap [&_pre]:whitespace-pre-wrap [&_pre]:[overflow-wrap:anywhere]":"",t=g?" whitespace-pre-wrap [overflow-wrap:anywhere]":"",u=g&&o?o.replace(/\n/g,""):o;return o?(0,d.jsxs)("div",{className:`code-block-lines ${r} rounded text-[11px] leading-relaxed overflow-y-auto [&_pre]:!bg-transparent [&_pre]:p-2 [&_pre]:m-0${s}${f?"":" max-h-64"}`,children:[(0,d.jsx)("style",{children:q}),(0,d.jsx)("div",{dangerouslySetInnerHTML:{__html:u??""}})]}):(0,d.jsx)("pre",{className:`${r} rounded bg-muted/50 p-2 text-[11px] leading-relaxed overflow-y-auto${t}${f?"":" max-h-64"}`,children:h})}},38393:(a,b,c)=>{"use strict";c.d(b,{Cf:()=>k,L3:()=>m,c7:()=>l,lG:()=>j});var d=c(48249),e=c(45535),f=c(57684),g=c(67484),h=c(74429),i=c(14490);function j({open:a,onOpenChange:b,children:c,className:e}){return(g.useEffect(()=>{if(!a)return;let c=a=>{"Escape"===a.key&&(a.preventDefault(),a.stopPropagation(),b(!1))};return window.addEventListener("keydown",c,!0),()=>window.removeEventListener("keydown",c,!0)},[a,b]),a)?(0,h.createPortal)((0,d.jsx)("div",{className:"fixed inset-0 z-50 bg-black/80 flex items-center justify-center px-4 py-12",onMouseDown:a=>{a.target===a.currentTarget&&b(!1)},children:(0,d.jsx)("div",{className:(0,i.cn)("w-full max-h-full flex flex-col",e||"max-w-lg"),children:c})}),document.body):null}function k({className:a,children:b,...c}){return(0,d.jsxs)("div",{className:(0,i.cn)("relative rounded-lg border bg-background text-foreground p-6 shadow-lg overflow-y-auto",a),...c,children:[(c.onClose||c.onDelete)&&(0,d.jsxs)("div",{className:"sticky top-0 z-10 flex justify-between -mx-2 -mt-2 mb-2",children:[c.onClose?(0,d.jsx)("button",{className:"rounded-sm opacity-70 hover:opacity-100",onClick:c.onClose,children:(0,d.jsx)(e.A,{className:"h-4 w-4"})}):(0,d.jsx)("span",{}),c.onDelete&&(0,d.jsx)("button",{className:"rounded-sm opacity-70 hover:opacity-100 text-destructive",onClick:c.onDelete,children:(0,d.jsx)(f.A,{className:"h-4 w-4"})})]}),b]})}function l({className:a,...b}){return(0,d.jsx)("div",{className:(0,i.cn)("flex flex-col space-y-1.5 text-center sm:text-left",a),...b})}function m({className:a,...b}){return(0,d.jsx)("h2",{className:(0,i.cn)("text-lg font-semibold leading-none tracking-tight",a),...b})}},42377:(a,b,c)=>{"use strict";c.d(b,{Y:()=>p});var d=c(48249),e=c(22325),f=c(21718),g=c(22548),h=c(35471),i=c(20878),j=c(67484);function k(a){let b=document.createElement("textarea");b.value=a,b.style.position="fixed",b.style.opacity="0",document.body.appendChild(b),b.select();try{return document.execCommand("copy")}finally{document.body.removeChild(b)}}var l=c(14490);function m(a){return(0,d.jsx)("a",{...a,target:"_blank",rel:"noopener noreferrer"})}let n={pre:function(a){let[b,c]=(0,j.useState)(!1),e=(0,j.useRef)(null),f=(0,j.useCallback)(()=>{let a=e.current?.textContent??"",b=()=>{c(!0),setTimeout(()=>c(!1),1500)};navigator.clipboard?.writeText?navigator.clipboard.writeText(a).then(b).catch(()=>{k(a)&&b()}):k(a)&&b()},[]);return(0,d.jsxs)("div",{className:"group/code relative",children:[(0,d.jsx)("pre",{ref:e,...a}),(0,d.jsx)("button",{onClick:f,className:"absolute top-2 right-2 p-1.5 rounded bg-background/80 border border-border text-muted-foreground hover:text-foreground opacity-60 sm:opacity-0 sm:group-hover/code:opacity-100 transition-opacity",title:"Copy code",children:b?(0,d.jsx)(h.A,{className:"h-3.5 w-3.5 text-green-500"}):(0,d.jsx)(i.A,{className:"h-3.5 w-3.5"})})]})},a:m},o={a:m};function p({content:a,variant:b="full",className:c}){return"lite"===b?(0,d.jsx)("div",{className:(0,l.cn)("prose prose-sm max-w-none dark:prose-invert",c),children:(0,d.jsx)(e.oz,{remarkPlugins:[g.A],components:o,children:a})}):(0,d.jsx)("div",{className:(0,l.cn)("message-prose prose prose-sm max-w-none dark:prose-invert",c),children:(0,d.jsx)(e.oz,{remarkPlugins:[g.A],rehypePlugins:[f.A],components:n,children:a})})}},42708:(a,b,c)=>{"use strict";c.d(b,{Mh:()=>k,j8:()=>j,sU:()=>i});var d=c(48249),e=c(85410),f=c(37754),g=c(67484),h=c(23077);class i extends g.Component{static getDerivedStateFromError(){return{error:!0}}render(){return this.state.error?this.props.fallback||(0,d.jsx)("pre",{className:"p-3 text-xs text-muted-foreground",children:"Unable to render diff"}):this.props.children}constructor(...a){super(...a),this.state={error:!1}}}let j="[data-column-content] { user-select: text; -webkit-user-select: text; }";function k({filePath:a,oldString:b,newString:c,dark:l}){let{settings:m}=(0,h.t)(),n=(0,g.useMemo)(()=>(0,f.ss)(`a/${a}`,`b/${a}`,b,c,"","",{context:3}),[a,b,c]);return(0,d.jsx)("div",{className:"overflow-x-auto rounded text-xs",children:(0,d.jsx)(i,{children:(0,d.jsx)(e.C,{patch:n,options:{theme:{dark:"pierre-dark",light:"pierre-light"},themeType:l?"dark":"light",disableFileHeader:!0,overflow:"wrap",diffStyle:m.diffStyle,unsafeCSS:j}})})})}},45159:(a,b,c)=>{Promise.resolve().then(c.t.bind(c,81921,23))},47244:(a,b,c)=>{"use strict";c.d(b,{e:()=>j});var d=c(67484);let e=new Map,f=new Set,g=new Set;function h(){for(let a of f)a()}function i(a){return f.add(a),()=>{f.delete(a)}}function j(a){let b=(0,d.useSyncExternalStore)(i,()=>e.get(a)||g),c=(0,d.useCallback)(b=>{let c=new Set(e.get(a)||new Set);c.has(b)?c.delete(b):c.add(b),e.set(a,c),h()},[a]);return{checkedFiles:b,toggleFile:c,toggleAll:(0,d.useCallback)(b=>{let c=e.get(a)||new Set;e.set(a,c.size===b.length?new Set:new Set(b)),h()},[a]),setCheckedFiles:(0,d.useCallback)(b=>{e.set(a,b),h()},[a])}}},48156:(a,b,c)=>{Promise.resolve().then(c.t.bind(c,95547,23)),Promise.resolve().then(c.t.bind(c,15098,23)),Promise.resolve().then(c.t.bind(c,47644,23)),Promise.resolve().then(c.t.bind(c,33859,23)),Promise.resolve().then(c.t.bind(c,98099,23)),Promise.resolve().then(c.t.bind(c,16237,23)),Promise.resolve().then(c.t.bind(c,98562,23)),Promise.resolve().then(c.t.bind(c,36675,23))},53649:(a,b,c)=>{"use strict";c.d(b,{G:()=>k});var d=c(48249),e=c(45535),f=c(67484),g=c(42377),h=c(25297),i=c(63647),j=c(94856);function k({open:a,onOpenChange:b,content:c,filePath:l}){let m=(0,f.useCallback)(()=>b(!1),[b]),n=(0,f.useCallback)(a=>{a.target===a.currentTarget&&m()},[m]);if(!a)return null;let o=(0,j.uk)(l)||l;return(0,d.jsx)("div",{className:"fixed inset-0 z-50 bg-black/50 flex items-center justify-center p-4",onClick:n,children:(0,d.jsxs)(i.Zp,{className:"w-full max-w-3xl flex flex-col",style:{maxHeight:"calc(100dvh - 2rem)"},children:[(0,d.jsxs)("div",{className:"flex items-center justify-between px-4 py-2 border-b shrink-0",children:[(0,d.jsx)("span",{className:"text-sm font-medium text-muted-foreground",children:o}),(0,d.jsx)(h.$,{variant:"ghost",size:"icon",className:"h-6 w-6",onClick:m,children:(0,d.jsx)(e.A,{className:"h-4 w-4"})})]}),(0,d.jsx)(g.Y,{content:c,className:"flex-1 min-h-0 overflow-y-auto p-4"})]})})}},58412:(a,b,c)=>{"use strict";c.d(b,{t:()=>p});var d=c(48249),e=c(4870),f=c(35101),g=c(67254),h=c(28624),i=c(22130),j=c(69357),k=c(67484),l=c(25297),m=c(38393),n=c(88877),o=c(19198);function p({open:a,onOpenChange:b,onSubmit:c}){let[r,s]=(0,k.useState)("backend"),[t,u]=(0,k.useState)("session"),[v,w]=(0,k.useState)(""),[x,y]=(0,k.useState)(""),[z,A]=(0,k.useState)(null),[B,C]=(0,k.useState)(!1),[D,E]=(0,k.useState)(""),[F,G]=(0,k.useState)(""),[H,I]=(0,k.useState)(""),[J,K]=(0,k.useState)(!1),[L,M]=(0,k.useState)(!1),[N,O]=(0,k.useState)(""),P=()=>{s("backend"),w(""),y(""),A(null),C(!1),E(""),G(""),I(""),K(!1),M(!1),O("")},Q=a=>{A(a),s("details")},R=async a=>{if(a.preventDefault(),D.trim()&&F.trim()&&z){M(!0),O("");try{let a=await fetch("/api/git/clone",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({url:D.trim(),parentPath:F.trim(),folderName:H.trim()||void 0})}),d=await a.json();if(!a.ok)return void O(d.error||"Clone failed");c(d.path,x.trim(),z),P(),b(!1)}catch{O("Failed to connect")}finally{M(!1)}}};return(0,d.jsx)(m.lG,{open:a,onOpenChange:a=>{a||P(),b(a)},children:(0,d.jsxs)(m.Cf,{className:"flex flex-col",onClose:()=>{P(),b(!1)},children:[(0,d.jsx)(m.c7,{children:(0,d.jsxs)(m.L3,{className:"flex items-center gap-2",children:["details"===r&&(0,d.jsx)("button",{type:"button",onClick:()=>s("backend"),className:"rounded-md p-1 text-muted-foreground hover:bg-accent hover:text-foreground",title:"Back to backend selection",children:(0,d.jsx)(e.A,{className:"h-4 w-4"})}),"backend"===r?"Choose Backend":"New Session"]})}),"backend"===r&&(0,d.jsxs)("div",{className:"space-y-3 mt-2",children:[(0,d.jsx)("p",{className:"text-sm text-muted-foreground",children:"Pick how Claude runs for this session."}),(0,d.jsx)(q,{icon:(0,d.jsx)(f.A,{className:"h-5 w-5"}),title:"PTY (interactive)",subtitle:"Pseudo-terminal",description:"Spawns a real Claude TUI in a pseudo-terminal. Supports interactive features like slash commands.",onClick:()=>Q("pty")}),(0,d.jsx)(q,{icon:(0,d.jsx)(g.A,{className:"h-5 w-5"}),title:"Stream (headless)",subtitle:"Structured output",description:"Runs Claude with structured JSON streaming. Lower overhead, better for automated workflows.",onClick:()=>Q("stream")})]}),"details"===r&&(0,d.jsxs)("div",{className:"flex flex-1 flex-col min-h-0 mt-2",children:[(0,d.jsxs)("div",{className:"flex gap-1 border-b shrink-0",children:[(0,d.jsx)("button",{type:"button",onClick:()=>u("session"),className:`px-3 py-1.5 text-sm font-medium border-b-2 transition-colors ${"session"===t?"border-foreground text-foreground":"border-transparent text-muted-foreground hover:text-foreground"}`,children:"Open Directory"}),(0,d.jsxs)("button",{type:"button",onClick:()=>u("clone"),className:`px-3 py-1.5 text-sm font-medium border-b-2 transition-colors flex items-center gap-1.5 ${"clone"===t?"border-foreground text-foreground":"border-transparent text-muted-foreground hover:text-foreground"}`,children:[(0,d.jsx)(h.A,{className:"h-3.5 w-3.5"}),"Clone Repo"]})]}),"session"===t&&(0,d.jsxs)("form",{onSubmit:a=>{a.preventDefault(),v.trim()&&z&&(c(v.trim(),x.trim(),z),P(),b(!1))},className:"flex flex-1 flex-col min-h-0",children:[(0,d.jsxs)("div",{className:"flex-1 min-h-0 overflow-y-auto space-y-4 pt-3",children:[(0,d.jsxs)("div",{children:[(0,d.jsx)("label",{className:"text-sm font-medium",children:"Working Directory"}),(0,d.jsxs)("div",{className:"flex gap-2",children:[(0,d.jsx)(n.p,{value:v,onChange:a=>w(a.target.value),placeholder:"/home/user/project",required:!0}),(0,d.jsx)(l.$,{type:"button",variant:"outline",size:"icon",onClick:()=>C(!B),title:"Browse directories",children:(0,d.jsx)(i.A,{className:"h-4 w-4"})})]})]}),B&&(0,d.jsx)(o.K,{onSelect:a=>{w(a),C(!1)},onCancel:()=>C(!1)}),(0,d.jsxs)("div",{children:[(0,d.jsx)("label",{className:"text-sm font-medium",children:"Name (optional)"}),(0,d.jsx)(n.p,{value:x,onChange:a=>y(a.target.value),placeholder:"My Project"})]})]}),(0,d.jsx)("div",{className:"shrink-0 -mx-6 border-t bg-background px-6 pt-3",children:(0,d.jsx)(l.$,{type:"submit",className:"w-full",disabled:!v.trim(),children:"Create Session"})})]}),"clone"===t&&(0,d.jsxs)("form",{onSubmit:R,className:"flex flex-1 flex-col min-h-0",children:[(0,d.jsxs)("div",{className:"flex-1 min-h-0 overflow-y-auto space-y-4 pt-3",children:[(0,d.jsxs)("div",{children:[(0,d.jsx)("label",{className:"text-sm font-medium",children:"Repository URL"}),(0,d.jsx)(n.p,{value:D,onChange:a=>E(a.target.value),placeholder:"https://github.com/user/repo.git",required:!0})]}),(0,d.jsxs)("div",{children:[(0,d.jsx)("label",{className:"text-sm font-medium",children:"Clone Into"}),(0,d.jsxs)("div",{className:"flex gap-2",children:[(0,d.jsx)(n.p,{value:F,onChange:a=>G(a.target.value),placeholder:"/home/user/projects",required:!0}),(0,d.jsx)(l.$,{type:"button",variant:"outline",size:"icon",onClick:()=>K(!J),title:"Browse directories",children:(0,d.jsx)(i.A,{className:"h-4 w-4"})})]})]}),J&&(0,d.jsx)(o.K,{onSelect:a=>{G(a),K(!1)},onCancel:()=>K(!1)}),(0,d.jsxs)("div",{children:[(0,d.jsx)("label",{className:"text-sm font-medium",children:"Folder Name (optional)"}),(0,d.jsx)(n.p,{value:H,onChange:a=>I(a.target.value),placeholder:"Defaults to repository name"})]}),(0,d.jsxs)("div",{children:[(0,d.jsx)("label",{className:"text-sm font-medium",children:"Session Name (optional)"}),(0,d.jsx)(n.p,{value:x,onChange:a=>y(a.target.value),placeholder:"My Project"})]}),N&&(0,d.jsx)("p",{className:"text-sm text-destructive",children:N})]}),(0,d.jsx)("div",{className:"shrink-0 -mx-6 border-t bg-background px-6 pt-3",children:(0,d.jsx)(l.$,{type:"submit",className:"w-full",disabled:!D.trim()||!F.trim()||L,children:L?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(j.A,{className:"h-4 w-4 animate-spin mr-2"}),"Cloning..."]}):"Clone & Create Session"})})]})]})]})})}function q({icon:a,title:b,subtitle:c,description:e,onClick:f}){return(0,d.jsxs)("button",{type:"button",onClick:f,className:"w-full text-left rounded-lg border border-input bg-card px-4 py-3 transition-colors hover:border-foreground hover:bg-accent",children:[(0,d.jsxs)("div",{className:"flex items-center gap-3 mb-1",children:[(0,d.jsx)("span",{className:"text-foreground",children:a}),(0,d.jsxs)("div",{className:"flex-1",children:[(0,d.jsx)("div",{className:"text-sm font-medium",children:b}),(0,d.jsx)("div",{className:"text-xs text-muted-foreground",children:c})]})]}),(0,d.jsx)("p",{className:"text-xs text-muted-foreground mt-2",children:e})]})}},61135:()=>{},62031:(a,b,c)=>{Promise.resolve().then(c.t.bind(c,95547,23))},63647:(a,b,c)=>{"use strict";c.d(b,{BT:()=>j,Wu:()=>k,ZB:()=>i,Zp:()=>g,aR:()=>h});var d=c(48249),e=c(67484),f=c(14490);let g=e.forwardRef(({className:a,...b},c)=>(0,d.jsx)("div",{ref:c,className:(0,f.cn)("rounded-lg border bg-card text-card-foreground shadow-sm",a),...b}));g.displayName="Card";let h=e.forwardRef(({className:a,...b},c)=>(0,d.jsx)("div",{ref:c,className:(0,f.cn)("flex flex-col space-y-1.5 p-6",a),...b}));h.displayName="CardHeader";let i=e.forwardRef(({className:a,...b},c)=>(0,d.jsx)("div",{ref:c,className:(0,f.cn)("text-2xl font-semibold leading-none tracking-tight",a),...b}));i.displayName="CardTitle";let j=e.forwardRef(({className:a,...b},c)=>(0,d.jsx)("div",{ref:c,className:(0,f.cn)("text-sm text-muted-foreground",a),...b}));j.displayName="CardDescription";let k=e.forwardRef(({className:a,...b},c)=>(0,d.jsx)("div",{ref:c,className:(0,f.cn)("p-6 pt-0",a),...b}));k.displayName="CardContent"},67257:(a,b,c)=>{"use strict";c.d(b,{GV:()=>W,si:()=>R,E2:()=>Q,mq:()=>S,tB:()=>T});var d=c(48249),e=c(35101),f=c(63120),g=c(81220),h=c(67484),i=c(19099);function j({children:a}){(0,i.useRouter)();let[b,c]=(0,h.useState)(!1);return b?(0,d.jsx)(d.Fragment,{children:a}):null}var k=c(35471),l=c(20878),m=c(29813),n=c(69357),o=c(45535),p=c(2864),q=c(25297),r=c(63647),s=c(80435);function t({preview:a,matchStart:b,matchLength:c}){let e=a.slice(0,b),f=a.slice(b,b+c),g=a.slice(b+c);return(0,d.jsxs)("span",{className:"text-sm text-muted-foreground whitespace-pre-wrap break-words select-text",children:[e,(0,d.jsx)("mark",{className:"bg-yellow-300/30 text-foreground rounded-sm px-0.5",children:f}),g]})}function u({text:a}){let[b,c]=(0,h.useState)(!1),e=(0,h.useCallback)(b=>{b.stopPropagation(),navigator.clipboard.writeText(a),c(!0),setTimeout(()=>c(!1),1500)},[a]);return(0,d.jsx)(q.$,{variant:"ghost",size:"icon",className:"h-6 w-6 shrink-0",onClick:e,title:"Copy full message",children:b?(0,d.jsx)(k.A,{className:"h-3 w-3"}):(0,d.jsx)(l.A,{className:"h-3 w-3"})})}function v({onClose:a}){let{sessionId:b,cwd:c}=Q(),[e,f]=(0,h.useState)(""),[g,i]=(0,h.useState)([]),[j,k]=(0,h.useState)(!1),[l,w]=(0,h.useState)(!1),[x,y]=(0,h.useState)(null),z=(0,h.useRef)(null);(0,h.useRef)(null);let A=(0,h.useCallback)(a=>{y(a)},[]),B=(0,h.useCallback)(b=>{b.target===b.currentTarget&&a()},[a]);return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("div",{className:"fixed inset-0 z-50 bg-black/50 flex items-center justify-center p-4",onClick:B,children:(0,d.jsxs)(r.Zp,{className:"w-full max-w-2xl flex flex-col",style:{maxHeight:"calc(100dvh - 2rem)"},children:[(0,d.jsxs)("div",{className:"flex items-center gap-2 p-4 border-b",children:[(0,d.jsx)(m.A,{className:"h-4 w-4 text-muted-foreground shrink-0"}),(0,d.jsx)("input",{ref:z,value:e,onChange:a=>f(a.target.value),placeholder:"Search messages...",className:"flex-1 bg-transparent outline-none text-sm"}),j&&(0,d.jsx)(n.A,{className:"h-4 w-4 animate-spin text-muted-foreground shrink-0"}),(0,d.jsx)(q.$,{variant:"ghost",size:"icon",className:"h-6 w-6 shrink-0",onClick:a,children:(0,d.jsx)(o.A,{className:"h-4 w-4"})})]}),(0,d.jsxs)("div",{className:"flex-1 min-h-0 overflow-y-auto",children:[l&&0===g.length&&(0,d.jsx)("div",{className:"p-8 text-center text-sm text-muted-foreground",children:"No results"}),g.map((a,b)=>(0,d.jsxs)("div",{role:"button",tabIndex:0,onClick:()=>A(a.timestamp),onKeyDown:b=>{("Enter"===b.key||" "===b.key)&&(b.preventDefault(),A(a.timestamp))},className:"w-full text-left p-4 border-b last:border-b-0 hover:bg-muted/50 transition-colors cursor-pointer",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2 mb-1",children:[(0,d.jsx)(p.E,{variant:"user"===a.role?"default":"secondary",className:"text-[10px] px-1.5 py-0",children:"user"===a.role?"User":"Assistant"}),(0,d.jsx)("span",{className:"text-xs text-muted-foreground select-text",children:new Date(a.timestamp).toLocaleString()}),(0,d.jsx)("div",{className:"ml-auto",children:(0,d.jsx)(u,{text:a.fullContent})})]}),(0,d.jsx)(t,{preview:a.preview,matchStart:a.matchStart,matchLength:a.matchLength})]},`${a.messageId}-${b}`))]})]})}),null!==x&&(0,d.jsx)(s.Q,{timestamp:x,onClose:()=>y(null)})]})}function w(){let{sessionId:a}=Q(),[b,c]=(0,h.useState)(!1);return a?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(q.$,{variant:"ghost",size:"icon",onClick:()=>c(!0),title:"Search messages (Ctrl+F)",children:(0,d.jsx)(m.A,{className:"h-4 w-4"})}),b&&(0,d.jsx)(v,{onClose:()=>c(!1)})]}):null}var x=c(2233),y=c(24950),z=c(99646);function A({tasks:a}){let[b,c]=(0,h.useState)(!1),e=a.filter(a=>"running"===a.status);return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)(q.$,{variant:"ghost",size:"icon",className:"h-8 w-8 relative",onClick:()=>c(!0),title:`${e.length} background task${1!==e.length?"s":""}`,children:[(0,d.jsx)(y.A,{className:"h-4 w-4"}),e.length>0&&(0,d.jsx)("span",{className:"absolute -top-0.5 -right-0.5 flex h-3.5 w-3.5 items-center justify-center rounded-full bg-primary text-[9px] font-bold text-primary-foreground",children:e.length})]}),b&&(0,d.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/50",onMouseDown:a=>{a.target===a.currentTarget&&c(!1)},children:(0,d.jsxs)("div",{className:"w-full max-w-md mx-4 rounded-lg border bg-background p-5 shadow-lg",children:[(0,d.jsxs)("div",{className:"flex items-center justify-between mb-4",children:[(0,d.jsx)("h2",{className:"text-base font-semibold",children:"Background Tasks"}),(0,d.jsx)(q.$,{variant:"ghost",size:"icon",onClick:()=>c(!1),children:(0,d.jsx)(o.A,{className:"h-4 w-4"})})]}),0===a.length?(0,d.jsx)("p",{className:"text-sm text-muted-foreground py-4 text-center",children:"No background tasks"}):(0,d.jsx)("div",{className:"space-y-2 max-h-64 overflow-y-auto",children:a.map(a=>(0,d.jsxs)("div",{className:"flex items-start gap-3 rounded-md border border-border px-3 py-2.5",children:["completed"===a.status?(0,d.jsx)(z.A,{className:"h-4 w-4 shrink-0 mt-0.5 text-green-500"}):(0,d.jsx)(n.A,{className:"h-4 w-4 shrink-0 mt-0.5 animate-spin text-muted-foreground"}),(0,d.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,d.jsx)("div",{className:"text-sm truncate",children:a.title||a.description}),a.title&&a.description&&a.description!==a.title&&(0,d.jsx)("div",{className:"text-xs text-muted-foreground truncate mt-0.5",children:a.description}),a.activity&&a.activity!==(a.title||a.description)&&(0,d.jsx)("div",{className:"text-xs text-muted-foreground truncate mt-0.5",children:a.activity}),"completed"===a.status&&a.summary&&(0,d.jsx)("div",{className:"text-xs text-muted-foreground truncate mt-0.5",children:a.summary})]})]},a.taskId))})]})})]})}var B=c(18201),C=c(82373);function D({todos:a}){let[b,c]=(0,h.useState)(!1),e=(0,h.useMemo)(()=>a.filter(a=>"completed"!==a.status).length,[a]);return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)(q.$,{variant:"ghost",size:"icon",className:"h-8 w-8 relative",onClick:()=>c(!0),title:`${e} todo${1!==e?"s":""}`,children:[(0,d.jsx)(B.A,{className:"h-4 w-4"}),e>0&&(0,d.jsx)("span",{className:"absolute -top-0.5 -right-0.5 flex h-3.5 w-3.5 items-center justify-center rounded-full bg-primary text-[9px] font-bold text-primary-foreground",children:e})]}),b&&(0,d.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/50",onMouseDown:a=>{a.target===a.currentTarget&&c(!1)},children:(0,d.jsxs)("div",{className:"w-full max-w-md mx-4 rounded-lg border bg-background p-5 shadow-lg",children:[(0,d.jsxs)("div",{className:"flex items-center justify-between mb-4",children:[(0,d.jsx)("h2",{className:"text-base font-semibold",children:"Todo"}),(0,d.jsx)(q.$,{variant:"ghost",size:"icon",onClick:()=>c(!1),children:(0,d.jsx)(o.A,{className:"h-4 w-4"})})]}),0===a.length?(0,d.jsx)("p",{className:"text-sm text-muted-foreground py-4 text-center",children:"No todo items"}):(0,d.jsx)("div",{className:"space-y-1 max-h-80 overflow-y-auto",children:a.map((a,b)=>(0,d.jsxs)("div",{className:"flex items-start gap-2.5 rounded-md px-3 py-2",children:[(0,d.jsx)(E,{status:a.status}),(0,d.jsx)("div",{className:`min-w-0 flex-1 text-sm ${"completed"===a.status?"text-muted-foreground line-through":""}`,children:"in_progress"===a.status&&a.activeForm?a.activeForm:a.content})]},b))})]})})]})}function E({status:a}){return"completed"===a?(0,d.jsx)(z.A,{className:"h-4 w-4 shrink-0 mt-0.5 text-green-500"}):"in_progress"===a?(0,d.jsx)(n.A,{className:"h-4 w-4 shrink-0 mt-0.5 animate-spin text-blue-500"}):(0,d.jsx)(C.A,{className:"h-4 w-4 shrink-0 mt-0.5 text-muted-foreground"})}var F=c(41290),G=c(50374);let H=null,I=0,J=null,K=null;async function L(a=!1){let b=Date.now();return!a&&H&&b-I<3e4?H:K||(K=(async()=>{try{let a=await fetch("/api/usage");if(!a.ok){let b=await a.json().catch(()=>({}));throw Error(b.error||`HTTP ${a.status}`)}let b=await a.json();return H=b,I=Date.now(),J=null,b}catch(a){return J=a instanceof Error?a.message:"Unknown error",null}finally{K=null}})())}function M({label:a,limit:b}){let c=Math.round(b.utilization),e=c>80?"#ef4444":c>50?"#f97316":"#22c55e";return(0,d.jsxs)("div",{className:"mb-4 last:mb-0",children:[(0,d.jsxs)("div",{className:"flex justify-between text-sm mb-1",children:[(0,d.jsx)("span",{children:a}),(0,d.jsxs)("span",{className:"text-muted-foreground",children:[c,"% \xb7 resets in ",function(a){let b=new Date(a).getTime()-Date.now();if(b<=0)return"now";let c=Math.floor(b/6e4),d=Math.floor(c/60),e=Math.floor(d/24);return e>0?`${e}d ${d%24}h`:d>0?`${d}h ${c%60}m`:`${c}m`}(b.resets_at)]})]}),(0,d.jsx)("div",{className:"h-2.5 rounded-full bg-muted overflow-hidden",children:(0,d.jsx)("div",{className:"h-full rounded-full transition-all",style:{width:`${Math.min(c,100)}%`,backgroundColor:e}})})]})}function N({className:a}){let[b,c]=(0,h.useState)(!1),{usage:e,loading:f,error:g,refresh:i}=function(){let[a,b]=(0,h.useState)(H),[c,d]=(0,h.useState)(null===H),[e,f]=(0,h.useState)(null),g=(0,h.useRef)(!0);return{usage:a,loading:c,error:e,refresh:(0,h.useCallback)(async(a=!1)=>{a&&d(!0);let c=await L(a);g.current&&(c?(b(c),f(null)):H||f(J||"Failed to load usage data"),d(!1))},[])}}(),j=e?.seven_day&&e.seven_day.utilization>=100?100:e?.five_hour?.utilization??0;return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(q.$,{variant:"ghost",size:"icon",onClick:()=>c(!0),title:"Account usage",className:a,children:(0,d.jsx)(F.A,{className:`h-4 w-4 ${e?j>80?"text-red-500":j>50?"text-orange-500":"text-green-500":""}`})}),b&&(0,d.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/50",onMouseDown:a=>{a.target===a.currentTarget&&c(!1)},children:(0,d.jsxs)("div",{className:"w-full max-w-md mx-4 rounded-lg border bg-background p-5 shadow-lg",children:[(0,d.jsxs)("div",{className:"flex items-center justify-between mb-4",children:[(0,d.jsx)("h2",{className:"text-base font-semibold",children:"Account Usage"}),(0,d.jsxs)("div",{className:"flex gap-1",children:[(0,d.jsx)(q.$,{variant:"ghost",size:"icon",onClick:()=>i(!0),disabled:f,title:"Refresh usage",children:(0,d.jsx)(G.A,{className:`h-4 w-4 ${f?"animate-spin":""}`})}),(0,d.jsx)(q.$,{variant:"ghost",size:"icon",onClick:()=>c(!1),children:(0,d.jsx)(o.A,{className:"h-4 w-4"})})]})]}),f&&!e&&(0,d.jsx)("div",{className:"flex items-center justify-center py-8",children:(0,d.jsx)(n.A,{className:"h-5 w-5 animate-spin text-muted-foreground"})}),g&&!e&&(0,d.jsx)("p",{className:"text-sm text-muted-foreground py-4 text-center",children:g}),e&&(0,d.jsxs)(d.Fragment,{children:[e.five_hour&&(0,d.jsx)(M,{label:"5-hour limit",limit:e.five_hour}),e.seven_day&&(0,d.jsx)(M,{label:"7-day limit",limit:e.seven_day}),e.seven_day_sonnet&&(0,d.jsx)(M,{label:"7-day Sonnet",limit:e.seven_day_sonnet}),e.seven_day_opus&&(0,d.jsx)(M,{label:"7-day Opus",limit:e.seven_day_opus}),e.extra_usage?.enabled&&(0,d.jsx)("div",{className:"mt-4 pt-3 border-t text-sm",children:(0,d.jsxs)("div",{className:"flex justify-between",children:[(0,d.jsx)("span",{children:"Extra usage credits"}),(0,d.jsxs)("span",{className:"font-medium",children:["$",e.extra_usage.remaining_credits.toFixed(2)," remaining"]})]})})]})]})})]})}var O=c(93571);let P=(0,h.createContext)({setHeader:()=>{},cwd:void 0,setCwd:()=>{},sessionId:void 0,setSessionId:()=>{},runtime:"stream",setRuntime:()=>{},backgroundTasks:[],setBackgroundTasks:()=>{},todos:[],setTodos:()=>{},initData:null,setInitData:()=>{},sidebarSections:new Map,setSidebarSection:()=>{},removeSidebarSection:()=>{},closeSidebar:()=>{},tabActions:null,setTabActions:()=>{}});function Q(){return(0,h.useContext)(P)}function R(a,b){let{setHeader:c}=Q();b?.hideActions,b?.usageOnly}function S(a){let{setCwd:b}=Q()}function T(a){let{setSessionId:b}=Q()}function U({title:a,onRename:b}){let[c,e]=(0,h.useState)(!1),[f,g]=(0,h.useState)(a),i=(0,h.useRef)(null);if(!b)return(0,d.jsx)("span",{className:"text-sm font-bold truncate",children:a});if(!c)return(0,d.jsx)("button",{onClick:()=>e(!0),className:"text-sm font-bold truncate hover:text-muted-foreground transition-colors text-left",title:"Click to rename",children:a});let j=()=>{let c=f.trim();c&&c!==a&&b(c),e(!1)};return(0,d.jsx)("input",{ref:i,value:f,onChange:a=>g(a.target.value),onBlur:j,onKeyDown:b=>{"Enter"===b.key&&j(),"Escape"===b.key&&(g(a),e(!1))},className:"text-sm font-bold bg-transparent border-b border-primary outline-none w-40"})}function V({cwd:a}){let{tabActions:b}=Q(),[c,f]=(0,h.useState)(!1),g=(0,h.useCallback)(async()=>{if(b?.openTerminal){f(!0);try{let c=await fetch("/api/terminal",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:a})});if(!c.ok)return;let{terminalId:d}=await c.json();b.openTerminal(d)}finally{f(!1)}}},[a,b]);return(0,d.jsx)(q.$,{variant:"ghost",size:"icon",onClick:g,disabled:c,title:"New terminal (Ctrl+`)",children:(0,d.jsx)(e.A,{className:"h-4 w-4"})})}function W({children:a}){let b=(0,h.useRef)(null),[c,e]=(0,h.useState)({title:"Cockpit"}),[i,k]=(0,h.useState)(void 0),[l,m]=(0,h.useState)(void 0),[n,o]=(0,h.useState)([]),[p,r]=(0,h.useState)([]),[s,t]=(0,h.useState)(null),[u,v]=(0,h.useState)(new Map),[y,z]=(0,h.useState)("stream"),[B,C]=(0,h.useState)(null),E=(0,h.useCallback)(a=>{v(b=>{let c=new Map(b);return c.set(a.id,a),c})},[]),F=(0,h.useCallback)(a=>{v(b=>{if(!b.has(a))return b;let c=new Map(b);return c.delete(a),c})},[]),G=(0,h.useCallback)(a=>{e(a)},[]),H=(0,h.useCallback)(a=>{k(a)},[]),I=(0,h.useCallback)(a=>{m(a)},[]),J=(0,h.useCallback)(()=>{b.current?.toggle()},[]),K=(0,h.useCallback)(()=>{b.current?.close()},[]),L=(0,h.useCallback)(a=>{z(a)},[]),M=(0,h.useCallback)(a=>{C(a)},[]),Q=c&&!c.hideActions?c.usageOnly?{showSessionActions:!1,showUsage:!0}:{showSessionActions:!0,showUsage:!0}:{showSessionActions:!1,showUsage:!1};return(0,d.jsx)(j,{children:(0,d.jsx)(O.f,{children:(0,d.jsx)(P.Provider,{value:{setHeader:G,cwd:i,setCwd:H,sessionId:l,setSessionId:I,runtime:y,setRuntime:L,backgroundTasks:n,setBackgroundTasks:o,todos:p,setTodos:r,initData:s,setInitData:t,sidebarSections:u,setSidebarSection:E,removeSidebarSection:F,closeSidebar:K,tabActions:B,setTabActions:M},children:(0,d.jsxs)("div",{className:"fixed inset-0 flex",children:[(0,d.jsx)(x.Bx,{ref:b}),(0,d.jsxs)("div",{className:"flex-1 min-h-0 min-w-0 flex flex-col",children:[(0,d.jsxs)("header",{className:"shrink-0 flex items-center gap-2 border-b px-4 py-2 bg-background",children:[(0,d.jsx)(q.$,{variant:"ghost",size:"icon",onClick:J,title:"Toggle sidebar (Ctrl+B)",className:"md:hidden",children:(0,d.jsx)(f.A,{className:"h-4 w-4"})}),(0,d.jsxs)("div",{className:"hidden md:flex items-center gap-2 min-w-0 flex-1 overflow-hidden",children:[(0,d.jsx)(g.default,{src:"/icon-192.png",alt:"",width:22,height:22,className:"shrink-0 dark:invert"}),(0,d.jsx)(U,{title:c.title,onRename:c.onRename})]}),(Q.showSessionActions||Q.showUsage)&&(0,d.jsxs)("div",{className:"flex items-center gap-2 shrink-0 ml-auto",children:[Q.showSessionActions&&(0,d.jsxs)(d.Fragment,{children:[i&&(0,d.jsx)(V,{cwd:i}),(0,d.jsx)(w,{}),i&&(0,d.jsx)(D,{todos:p}),i&&(0,d.jsx)(A,{tasks:n})]}),Q.showUsage&&(0,d.jsx)(N,{})]})]}),(0,d.jsx)("main",{className:"flex-1 min-h-0 min-w-0 flex flex-col",children:a})]})]})})})})}},67522:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>f});var d=c(48249),e=c(67257);function f({children:a}){return(0,d.jsx)(e.GV,{children:a})}},73781:()=>{},76275:(a,b,c)=>{"use strict";c.d(b,{I:()=>aU});var d=c(48249),e=c(69357),f=c(34460),g=c(82902),h=c(86765),i=c(19099),j=c(67484);function k(a){if("system"===a.role)return"";if("user"===a.role)return a.content;let b=a.blocks.filter(a=>"text"===a.type).map(a=>a.text);return b.length>0?b.join("\n"):a.content}var l=c(28213);let m={asm:"asm",awk:"awk",batch:"bat",c:"c",clojure:"clj",cmake:"cmake",cobol:"cob",coffeescript:"coffee",cpp:"cpp",cs:"cs",css:"css",csv:"csv",dart:"dart",diff:"diff",dockerfile:"dockerfile",elixir:"ex",erlang:"erl",fortran:"f90",gleam:"gleam",go:"go",gradle:"gradle",groovy:"groovy",h:"h",handlebars:"hbs",haskell:"hs",hcl:"tf",hpp:"hpp",html:"html",ini:"ini",java:"java",javascript:"js",json:"json",jsonc:"jsonc",jsonl:"jsonl",jsx:"jsx",julia:"jl",kotlin:"kt",latex:"tex",less:"less",lisp:"lisp",lua:"lua",makefile:"makefile",markdown:"md",matlab:"m",nim:"nim",objectivec:"m",ocaml:"ml",odin:"odin",pascal:"pas",perl:"pl",php:"php",powershell:"ps1",prolog:"pl",proto:"proto",python:"py",r:"r",rst:"rst",ruby:"rb",rust:"rs",scala:"scala",scheme:"scm",scss:"scss",shell:"sh",solidity:"sol",sql:"sql",svelte:"svelte",svg:"svg",swift:"swift",tcl:"tcl",toml:"toml",tsx:"tsx",typescript:"ts",vba:"vba",verilog:"v",vhdl:"vhdl",vue:"vue",xml:"xml",yaml:"yaml",yara:"yar",zig:"zig"};function n(a){return a.split(/\r?\n/).length>=10}let o=null;async function p(a){try{o||(o=c.e(4293).then(c.bind(c,44293)).then(a=>a.Magika.create()));let b=await o,d=new TextEncoder().encode(a.slice(0,8192)),e=(await b.identifyBytes(d)).prediction.output.label;if("txt"===e||"unknown"===e||"empty"===e)return null;return m[e]?e:null}catch{return null}}var q=c(93571),r=c(23077),s=c(94856),t=c(14490),u=c(67257),v=c(35471),w=c(45535);let x={job:{name:"Name",schedule:"Schedule",schedules:"Schedules",prompt:"Prompt",cwd:"Working directory",enabled:"Enabled",model:"Model",contextSize:"Context size",thinkingLevel:"Thinking level",bypassPermissions:"Bypass permissions",maxDurationMinutes:"Max duration",retentionDays:"Retention days",skipIfMissed:"Skip if missed",inboxOutput:"Inbox output",runtime:"Runtime",allowedTools:"Allowed tools",mcpServers:"MCP servers",mcpToolFilters:"MCP tool filters",notifyProviders:"Notify providers",id:"Job ID"},settings:{thinkingLevel:"Thinking level",diffStyle:"Diff style",dismissKeyboardOnSend:"Dismiss keyboard on send",thinkingExpanded:"Thinking expanded",readExpanded:"Read expanded",editExpanded:"Edit expanded",toolCallsExpanded:"Tool calls expanded",messageStitching:"Message stitching",reviewsEnabled:"Reviews enabled",bypassAllPermissions:"Bypass all permissions",modelSlots:"Model"},provider:{id:"Provider ID",name:"Name",envVars:"Environment variables"},mcp_server:{name:"Name",command:"Command",args:"Arguments"},notification_settings:{baseUrl:"Base URL"},notification_provider:{id:"Provider ID",type:"Type",name:"Name",enabled:"Enabled",botToken:"Bot token",chatId:"Chat ID",serverUrl:"Server URL",topic:"Topic",token:"Token",filterPriorities:"Filter priorities",filterSources:"Filter sources"}};function y(a){return a.replace(/([a-z])([A-Z])/g,"$1 $2").replace(/_/g," ").replace(/\b\w/g,a=>a.toUpperCase())}function z({permission:a,onRespond:b}){let{domain:c,action:e}=a.configProposal||{},f=(0,j.useMemo)(()=>{if(c&&e&&a.input){try{let b=JSON.parse(a.input);if("object"==typeof b&&null!==b&&!Array.isArray(b))return function(a,b,c){let d=b.charAt(0).toUpperCase()+b.slice(1),e=`${d} ${a.replace(/_/g," ")}`,f=x[a]||{},g=new Set("job"===a&&"update"===b?["id"]:[]),h=Object.entries(c).filter(([a])=>!g.has(a));if(0===h.length)return{title:e,rows:[{label:"Change",value:JSON.stringify(c),block:!1}]};let i=[];for(let[a,b]of h)if("config"!==a||"object"!=typeof b||null===b||Array.isArray(b))i.push([a,b]);else for(let[a,c]of Object.entries(b))i.push([a,c]);return{title:e,rows:i.map(([a,b])=>{var c;let d=f[a]||y(a),{value:e,block:g}=(c=b,null==c?{value:"",block:!1}:"string"==typeof c?c.length>80||c.includes("\n")?{value:c,block:!0}:{value:c,block:!1}:"boolean"==typeof c?{value:c?"Yes":"No",block:!1}:"number"==typeof c?{value:String(c),block:!1}:Array.isArray(c)?{value:c.join(", "),block:!1}:"object"==typeof c?{value:Object.entries(c).map(([a,b])=>{let c=y(a),d="object"==typeof b&&null!==b?JSON.stringify(b):String(b);return`${c}: ${d}`}).join("\n"),block:!0}:{value:String(c),block:!1}),h={label:d,value:e};return g&&(h.block=!0),h})}}(c,e,b)}catch{}return{title:`${e||"Change"} ${(c||"").replace(/_/g," ")}`,rows:[{label:"Change",value:a.input,block:!0}]}}return{title:"Configuration change",rows:[{label:"Change",value:a.input||"",block:!1}]}},[c,e,a.input]),{displayName:g}=a.configProposal||{},h=g?`${f.title}: ${g}`:f.title;return(0,d.jsx)("div",{className:"mx-auto max-w-3xl","data-testid":"config-proposal-card",children:(0,d.jsx)("div",{className:"rounded-lg border border-blue-500/50 bg-blue-500/10 p-4",children:(0,d.jsx)("div",{className:"flex items-start gap-3",children:(0,d.jsxs)("div",{className:"flex-1 min-w-0 space-y-3",children:[(0,d.jsx)("div",{className:"text-sm font-medium capitalize text-foreground",children:h}),(0,d.jsx)("div",{className:"space-y-1.5",children:f.rows.map((a,b)=>(0,d.jsxs)("div",{children:[(0,d.jsx)("div",{className:"text-[11px] text-muted-foreground",children:a.label}),a.block?(0,d.jsx)("pre",{className:"mt-0.5 rounded bg-muted/50 px-2 py-1.5 text-[11px] text-foreground leading-relaxed whitespace-pre-wrap break-words max-h-48 overflow-y-auto",children:a.value}):(0,d.jsx)("div",{className:"text-sm text-foreground",children:a.value})]},b))}),(0,d.jsxs)("div",{className:"flex flex-wrap gap-2 pt-1",children:[(0,d.jsxs)("button",{onClick:()=>b(a.requestId,!0,"allow"),className:"rounded bg-primary px-3 py-1 text-xs font-medium text-primary-foreground hover:bg-primary/90","data-testid":"btn-approve",children:[(0,d.jsx)(v.A,{className:"h-3 w-3 inline mr-1"}),"Approve"]}),(0,d.jsxs)("button",{onClick:()=>b(a.requestId,!1,"deny"),className:"rounded bg-muted px-3 py-1 text-xs font-medium text-muted-foreground hover:bg-muted/80",children:[(0,d.jsx)(w.A,{className:"h-3 w-3 inline mr-1"}),"Reject"]})]})]})})})})}var A=c(61022),B=c(46303),C=c(64571),D=c(35101),E=c(26773),F=c(54183),G=c(24422),H=c(67254),I=c(50374),J=c(21422),K=c(48581),L=c(53061),M=c(91995),N=c(57684),O=c(15741),P=c(87359),Q=c(67612),R=c(52839),S=c(80592),T=c(67151),U=c(36606),V=c(42377),W=c(18908),X=c(91404),Y=c(57762),Z=c(2864),$=c(25297);function _({open:a,onOpenChange:b,sessionId:c,initData:f}){let g=(0,i.useRouter)(),[h,k]=(0,j.useState)([]),[l,m]=(0,j.useState)(!1),[n,o]=(0,j.useState)(null),[p,q]=(0,j.useState)(null),r=(0,j.useCallback)(()=>{c&&(m(!0),fetch(`/api/sessions/${encodeURIComponent(c)}/mcp`).then(a=>{if(!a.ok)throw Error("Failed to fetch");return a.json()}).then(a=>{a.mcpServers&&k(a.mcpServers)}).catch(()=>{}).finally(()=>m(!1)))},[c]),s=(0,j.useCallback)(async(a,b)=>{if(!c)return;let d="disabled"===b;q(a),k(b=>b.map(b=>b.name===a?{...b,status:d?"connecting":"disabled"}:b));try{await fetch(`/api/sessions/${encodeURIComponent(c)}/mcp`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"toggle",serverName:a,enabled:d})}),k(b=>b.map(b=>b.name===a?{...b,status:d?"connected":"disabled"}:b))}catch{k(c=>c.map(c=>c.name===a?{...c,status:b}:c))}finally{q(null)}},[c]),u=(0,j.useCallback)(async a=>{if(c){q(a),k(b=>b.map(b=>b.name===a?{...b,status:"connecting",error:void 0}:b));try{await fetch(`/api/sessions/${encodeURIComponent(c)}/mcp`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"reconnect",serverName:a})}),k(b=>b.map(b=>b.name===a?{...b,status:"connected"}:b))}catch{k(b=>b.map(b=>b.name===a?{...b,status:"failed"}:b))}finally{q(null)}}},[c]);return 0!==(f?.mcpServers?.length??0)&&a?(0,d.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/50",onMouseDown:a=>{a.target===a.currentTarget&&b(!1)},children:(0,d.jsxs)("div",{className:"w-full max-w-lg mx-4 rounded-lg border bg-background p-5 shadow-lg max-h-[80vh] flex flex-col",children:[(0,d.jsxs)("div",{className:"flex items-center justify-between mb-4",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)(L.A,{className:"h-4 w-4"}),(0,d.jsx)("h2",{className:"text-base font-semibold",children:"MCP Servers"}),(0,d.jsx)(Z.E,{variant:"secondary",className:"text-xs",children:h.length})]}),(0,d.jsxs)("div",{className:"flex items-center gap-1",children:[(0,d.jsx)($.$,{variant:"ghost",size:"icon",onClick:r,title:"Refresh",children:(0,d.jsx)(I.A,{className:(0,t.cn)("h-4 w-4",l&&"animate-spin")})}),(0,d.jsx)($.$,{variant:"ghost",size:"icon",onClick:()=>b(!1),children:(0,d.jsx)(w.A,{className:"h-4 w-4"})})]})]}),l&&0===h.length&&(0,d.jsx)("div",{className:"flex items-center justify-center py-8",children:(0,d.jsx)(e.A,{className:"h-5 w-5 animate-spin text-muted-foreground"})}),!l&&n&&(0,d.jsx)("p",{className:"text-sm text-muted-foreground py-4 text-center",children:n}),h.length>0&&(0,d.jsx)("div",{className:"flex-1 min-h-0 overflow-y-auto border rounded",children:h.map(a=>(0,d.jsxs)("div",{className:"flex items-center gap-3 px-3 py-2.5 border-b last:border-b-0",children:[(0,d.jsx)("div",{className:(0,t.cn)("h-2 w-2 rounded-full shrink-0",function(a){switch(a){case"connected":return"bg-green-500";case"disabled":return"bg-muted-foreground/40";case"failed":return"bg-red-500";default:return"bg-yellow-500"}}(a.status))}),(0,d.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("span",{className:"font-mono text-sm font-bold truncate",children:a.name}),a.scope&&(0,d.jsx)(Z.E,{variant:"outline",className:"text-[10px] shrink-0",children:a.scope})]}),(0,d.jsxs)("div",{className:"flex items-center gap-2 mt-0.5",children:[(0,d.jsx)("span",{className:"text-xs text-muted-foreground",children:function(a){switch(a){case"connected":return"Connected";case"connecting":return"Connecting...";case"disabled":return"Disabled";case"failed":return"Failed";default:return a}}(a.status)}),a.tools&&a.tools.length>0&&(0,d.jsxs)("span",{className:"text-xs text-muted-foreground",children:[a.tools.length," tools"]}),a.config?.type&&(0,d.jsx)("span",{className:"text-xs text-muted-foreground",children:a.config.type})]}),a.error&&(0,d.jsx)("p",{className:"text-xs text-red-500 mt-0.5 truncate",children:a.error})]}),(0,d.jsxs)("div",{className:"flex items-center gap-1 shrink-0",children:["failed"===a.status&&c&&(0,d.jsx)($.$,{variant:"ghost",size:"icon",className:"h-7 w-7",onClick:()=>u(a.name),disabled:p===a.name,title:"Reconnect",children:(0,d.jsx)(I.A,{className:(0,t.cn)("h-3.5 w-3.5",p===a.name&&"animate-spin")})}),c&&(0,d.jsx)($.$,{variant:"ghost",size:"icon",className:"h-7 w-7",onClick:()=>s(a.name,a.status),disabled:p===a.name,title:"disabled"===a.status?"Enable":"Disable",children:"disabled"===a.status?(0,d.jsx)(W.A,{className:"h-3.5 w-3.5"}):(0,d.jsx)(X.A,{className:"h-3.5 w-3.5"})})]})]},a.name))}),!l&&0===h.length&&!n&&(0,d.jsx)("p",{className:"text-sm text-muted-foreground py-4 text-center",children:"No MCP servers configured"}),(0,d.jsx)("div",{className:"flex justify-end mt-3",children:(0,d.jsxs)($.$,{variant:"outline",size:"sm",className:"gap-1.5",onClick:()=>{b(!1),g.push("/mcp-servers")},children:[(0,d.jsx)(Y.A,{className:"h-3.5 w-3.5"}),"Manage servers"]})})]})}):null}function aa(a,b){if(0===a.length)return 0;let c=a.toLowerCase(),d=b.toLowerCase(),e=0,f=0,g=!1;for(let a=0;a<d.length&&e<c.length;a++)if(d[a]===c[e]){let c=0===e,d=a>0?b[a-1]:"",h=0===a||"-"===d||"_"===d||d>="a"&&d<="z"&&b[a]>="A"&&b[a]<="Z";f+=1,g&&(f+=2),c&&h&&(f+=3),0===a&&(f+=5),g=!0,e++}else g=!1;return e<c.length?0:f}function ab(a,b,c,d){if(0===a.length)return[...b];let e=[];for(let f=0;f<b.length;f++){let g=b[f],h=aa(a,c(g)),i=0;if(d){let b=d(g);b&&b.length>0&&(i=aa(a,b))}(h>0||i>0)&&e.push({candidate:g,nameScore:h,descriptionScore:i,index:f})}return e.sort((a,b)=>{if(a.nameScore>0&&b.nameScore>0){let c=b.nameScore-a.nameScore;return 0!==c?c:a.index-b.index}if(a.nameScore>0)return -1;if(b.nameScore>0)return 1;let c=b.descriptionScore-a.descriptionScore;return 0!==c?c:a.index-b.index}),e.map(a=>a.candidate)}let ac=[{name:"Explore",description:"Fast codebase exploration"},{name:"Plan",description:"Design implementation plans"},{name:"general-purpose",description:"Multi-step tasks and code changes"},{name:"claude-code-guide",description:"Claude Code documentation"}];function ad({query:a,cwd:b,selectedIndex:c,onSelect:e,onItemsChange:f,initAgents:g}){let h=(0,j.useRef)(null),[i,k]=(0,j.useState)([]),[l,m]=(0,j.useState)([]);(0,j.useRef)(null);let n=(0,j.useMemo)(()=>{if(g&&g.length>0)return g.map(a=>({name:a.name,description:a.description}));let a=new Set(l.map(a=>a.name));return[...ac.filter(b=>!a.has(b.name)).map(a=>({name:a.name,description:a.description})),...l.map(a=>({name:a.name,description:a.description}))]},[g,l]),o=(0,j.useMemo)(()=>ab(a,n,a=>a.name,a=>a.description).map(a=>({value:a.name,label:a.name,description:a.description,kind:"agent"})),[a,n]),p=(0,j.useMemo)(()=>i.map(a=>({value:a,label:a,kind:"file"})),[i]);return 0===(0,j.useMemo)(()=>[...o,...p],[o,p]).length?null:(0,d.jsxs)("div",{ref:h,className:"absolute bottom-full left-0 mb-1 w-80 max-h-60 overflow-y-auto rounded-md border bg-popover text-popover-foreground shadow-md",children:[o.length>0&&p.length>0&&(0,d.jsx)("div",{className:"px-3 py-1 text-xs text-muted-foreground font-medium",children:"Agents"}),o.map((a,b)=>(0,d.jsxs)("button",{type:"button","data-index":b,className:`flex w-full items-baseline gap-3 px-3 py-2 text-sm text-left ${b===c?"bg-accent text-accent-foreground":""}`,onMouseDown:b=>{b.preventDefault(),e(a.value)},children:[(0,d.jsx)("span",{className:"font-mono font-bold shrink-0",children:a.label}),(0,d.jsx)("span",{className:"text-muted-foreground truncate",children:a.description})]},a.value)),p.length>0&&o.length>0&&(0,d.jsx)("div",{className:"px-3 py-1 text-xs text-muted-foreground font-medium",children:"Files"}),p.map((a,b)=>{let f=o.length+b,g=(0,s.uk)(a.value),h=(0,s.ww)(a.value)||null;return(0,d.jsxs)("button",{type:"button","data-index":f,className:`flex w-full items-baseline gap-3 px-3 py-2 text-sm text-left ${f===c?"bg-accent text-accent-foreground":""}`,onMouseDown:b=>{b.preventDefault(),e(a.value)},children:[(0,d.jsx)("span",{className:"font-mono font-bold shrink-0",children:g}),h&&(0,d.jsx)("span",{className:"text-muted-foreground truncate",children:h})]},a.value)})]})}let ae=[{command:"/clear",description:"Clear conversation and start fresh"},{command:"/compact",description:"Compact conversation context"},{command:"/cost",description:"Show token usage"},{command:"/context",description:"Show context window usage"},{command:"/model",description:"Show or switch model"},{command:"/rename",description:"Rename this session"},{command:"/commit",description:"Commit changes"},{command:"/review",description:"Review code changes"},{command:"/help",description:"Show available commands"}],af=[{command:"/btw",description:"Nudge Claude while it's working"},{command:"/mcp",description:"Show MCP server status"}];function ag({query:a,selectedIndex:b,onSelect:c,cwd:e,onItemsChange:f,initCommands:g}){let h,i,k,l,m=(0,j.useRef)(null),[n,o]=(0,j.useState)([]),p=g?(h=new Map(ae.map(a=>[a.command,a])),k=new Set((i=g.map(a=>{let b=a.startsWith("/")?a:"/"+a;return h.get(b)||{command:b,description:""}})).map(a=>a.command)),[...i,...ae.filter(a=>!k.has(a.command))]):(l=new Set(ae.map(a=>a.command)),[...ae,...n.filter(a=>!l.has(a.command))]),q=new Set,r=[];for(let a of[...p,...af])q.has(a.command)||(q.add(a.command),r.push(a));let s=ab(a,r,a=>a.command.slice(1),a=>a.description);return 0===s.length?null:(0,d.jsx)("div",{ref:m,className:"absolute bottom-full left-0 mb-1 w-80 max-h-60 overflow-y-auto rounded-md border bg-popover text-popover-foreground shadow-md",children:s.map((a,e)=>(0,d.jsxs)("button",{type:"button",className:`flex w-full items-baseline gap-3 px-3 py-2 text-sm text-left ${e===b?"bg-accent text-accent-foreground":""}`,onMouseDown:b=>{b.preventDefault(),c(a)},children:[(0,d.jsx)("span",{className:"font-mono font-bold shrink-0",children:a.command}),(0,d.jsx)("span",{className:"text-muted-foreground truncate",children:a.description})]},a.command))})}var ah=c(38393),ai=c(27962);function aj(a){return a>=1e3?`${(a/1e3).toFixed(1)}k`:String(a)}function ak({usage:a,onCompact:b}){let[c,e]=(0,j.useState)(!1),f=Math.round(a.used/a.total*100),g=f>80?"#ef4444":f>50?"#f97316":"#22c55e",h=2*Math.PI*6,i=Math.min(f,100)/100*h;return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("button",{onClick:()=>e(!0),className:"flex items-center justify-center w-8 h-6 rounded-md hover:bg-muted transition-colors",title:`Context: ${f}%`,"data-testid":"context-indicator",children:(0,d.jsxs)("svg",{width:14,height:14,className:"-rotate-90",children:[(0,d.jsx)("circle",{cx:7,cy:7,r:6,fill:"none",stroke:"currentColor",strokeWidth:2,className:"text-muted-foreground/25"}),(0,d.jsx)("circle",{cx:7,cy:7,r:6,fill:"none",stroke:g,strokeWidth:2,strokeDasharray:h,strokeDashoffset:h-i,strokeLinecap:"round"})]})}),c&&(0,d.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/50",onMouseDown:a=>{a.target===a.currentTarget&&e(!1)},children:(0,d.jsxs)("div",{className:"w-full max-w-sm mx-4 rounded-lg border bg-background p-5 shadow-lg",children:[(0,d.jsxs)("div",{className:"flex items-center justify-between mb-4",children:[(0,d.jsx)("h2",{className:"text-base font-semibold",children:"Context Usage"}),(0,d.jsx)($.$,{variant:"ghost",size:"icon",onClick:()=>e(!1),children:(0,d.jsx)(w.A,{className:"h-4 w-4"})})]}),(0,d.jsxs)("div",{className:"flex justify-between text-sm mb-2",children:[(0,d.jsx)("span",{children:"Tokens used"}),(0,d.jsxs)("span",{className:"text-muted-foreground",children:[f,"%"]})]}),(0,d.jsx)("div",{className:"h-2.5 rounded-full bg-muted overflow-hidden mb-2",children:(0,d.jsx)("div",{className:"h-full rounded-full transition-all",style:{width:`${Math.min(f,100)}%`,backgroundColor:g}})}),(0,d.jsxs)("div",{className:"flex justify-between text-xs text-muted-foreground",children:[(0,d.jsxs)("span",{"data-testid":"context-used",children:[aj(a.used)," used"]}),(0,d.jsxs)("span",{"data-testid":"context-total",children:[aj(a.total)," total"]})]}),b&&(0,d.jsxs)($.$,{variant:"outline",size:"sm",className:"w-full mt-4",onClick:()=>{b(),e(!1)},children:[(0,d.jsx)(ai.A,{className:"h-3.5 w-3.5 mr-2"}),"Compact now"]})]})})]})}var al=c(29813);function am({open:a,prompts:b,onSelect:c,onClose:e}){let[f,g]=(0,j.useState)(""),[h,i]=(0,j.useState)(0),k=(0,j.useRef)(null),l=(0,j.useRef)(null),m=(0,j.useMemo)(()=>{if(!f.trim())return b;let a=f.toLowerCase();return b.filter(b=>b.toLowerCase().includes(a))},[b,f]),n=(0,j.useCallback)(a=>{if("Escape"===a.key){a.preventDefault(),e();return}if("ArrowUp"===a.key){a.preventDefault(),i(a=>a<m.length-1?a+1:0);return}if("ArrowDown"===a.key){a.preventDefault(),i(a=>a>0?a-1:m.length-1);return}if("Enter"===a.key){a.preventDefault(),m[h]&&c(m[h]);return}},[m,h,c,e]);return a?(0,d.jsx)("div",{className:"fixed inset-0 z-50 flex items-end justify-center",onMouseDown:a=>a.target===a.currentTarget&&e(),children:(0,d.jsxs)("div",{className:"w-full max-w-3xl mb-24 mx-4 rounded-lg border bg-background shadow-lg overflow-hidden",onKeyDown:n,children:[(0,d.jsxs)("div",{ref:l,className:"max-h-80 overflow-y-auto p-1 flex flex-col-reverse",children:[0===m.length&&(0,d.jsx)("div",{className:"px-3 py-6 text-center text-sm text-muted-foreground",children:f?"No matching prompts":"No prompt history"}),m.map((a,b)=>(0,d.jsxs)("button",{onClick:()=>c(a),onMouseEnter:()=>i(b),className:`flex w-full items-start gap-2 rounded px-3 py-2 text-left text-sm transition-colors ${h===b?"bg-accent text-foreground":"text-muted-foreground hover:text-foreground"}`,children:[(0,d.jsx)("span",{className:"shrink-0 font-mono text-xs text-muted-foreground/50 w-5 text-right pt-0.5",children:b+1}),(0,d.jsx)("span",{className:"line-clamp-2 break-all",children:a})]},`${b}-${a.slice(0,20)}`))]}),(0,d.jsxs)("div",{className:"border-t px-3 py-2 flex items-center gap-2",children:[(0,d.jsx)(al.A,{className:"h-4 w-4 text-muted-foreground shrink-0"}),(0,d.jsx)("input",{ref:k,value:f,onChange:a=>g(a.target.value),placeholder:"Search prompts...",className:"flex-1 bg-transparent text-sm outline-none placeholder:text-muted-foreground"}),(0,d.jsxs)("span",{className:"text-xs text-muted-foreground shrink-0",children:[m.length," prompt",1!==m.length?"s":""]})]})]})}):null}var an=c(82078),ao=c(54171);function ap({open:a,onOpenChange:b,messages:c,paused:e,onDelete:f,onEdit:g,onResume:h}){return a?(0,d.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/50",onMouseDown:a=>{a.target===a.currentTarget&&b(!1)},children:(0,d.jsxs)("div",{className:"w-full max-w-md mx-4 rounded-lg border bg-background p-5 shadow-lg",children:[(0,d.jsxs)("div",{className:"flex items-center justify-between mb-4",children:[(0,d.jsx)("h2",{className:"text-base font-semibold",children:"Queued Messages"}),(0,d.jsx)($.$,{variant:"ghost",size:"icon",onClick:()=>b(!1),children:(0,d.jsx)(w.A,{className:"h-4 w-4"})})]}),0===c.length?(0,d.jsx)("p",{className:"text-sm text-muted-foreground py-4 text-center",children:"No queued messages"}):(0,d.jsx)("div",{className:"space-y-2 max-h-64 overflow-y-auto",children:c.map((a,c)=>(0,d.jsxs)("div",{className:"flex items-start gap-3 rounded-md border border-border px-3 py-2.5",children:[(0,d.jsxs)("span",{className:"text-xs text-muted-foreground mt-0.5 shrink-0",children:[c+1,"."]}),(0,d.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,d.jsx)("p",{className:"text-sm break-words line-clamp-3",children:a.text}),(0,d.jsx)("span",{className:`text-[10px] mt-0.5 inline-block ${e?"text-yellow-500":"text-muted-foreground"}`,children:e?"paused":"queued"})]}),(0,d.jsxs)("div",{className:"flex gap-1 shrink-0",children:[(0,d.jsx)("button",{onClick:()=>{g(a.id),b(!1)},className:"p-1 rounded hover:bg-muted text-muted-foreground hover:text-foreground transition-colors",title:"Edit (move to input)",children:(0,d.jsx)(an.A,{className:"h-3.5 w-3.5"})}),(0,d.jsx)("button",{onClick:()=>f(a.id),className:"p-1 rounded hover:bg-muted text-muted-foreground hover:text-destructive transition-colors",title:"Delete",children:(0,d.jsx)(N.A,{className:"h-3.5 w-3.5"})})]})]},a.id))}),e&&c.length>0&&(0,d.jsx)("div",{className:"mt-4 pt-4 border-t",children:(0,d.jsxs)($.$,{variant:"default",size:"sm",className:"w-full",onClick:()=>{h(),b(!1)},children:[(0,d.jsx)(ao.A,{className:"h-3.5 w-3.5 mr-2"}),"Resume queue"]})})]})}):null}let aq=[{value:"haiku",label:"Haiku"},{value:"sonnet",label:"Sonnet"},{value:"opus",label:"Opus"},{value:"fable",label:"Fable"}];function ar(a,b){let c=a.replace(/\[.*\]$/,"");if("opus"===c||"sonnet"===c||"haiku"===c||"fable"===c)return{alias:c,entry:(0,l.zQ)(c)??null,contextSize:b};let d=(0,l.bs)(c)??null;return{alias:d?.alias??null,entry:d,contextSize:b}}function as(a){return 1===(0,l.r5)(a.alias).length&&a.isDefault?a.alias:a.modelId}let at=[{value:"off",label:"Off"},{value:"low",label:"Low"},{value:"medium",label:"Medium"},{value:"high",label:"High"},{value:"xhigh",label:"XHigh"},{value:"max",label:"Max"}],au=new Set(["image/png","image/jpeg","image/gif","image/webp"]),av=new Set([".txt",".md",".py",".js",".ts",".tsx",".jsx",".json",".csv",".xml",".yaml",".yml",".html",".css",".log",".sh",".go",".rs",".java",".c",".cpp",".h",".rb",".swift",".kt",".toml",".cfg",".ini",".env",".sql",".r",".lua",".pl",".php"]);function aw(a){return new Promise(b=>{let c=new FileReader;c.onload=()=>{b(c.result.split(",")[1]||null)},c.onerror=()=>b(null),c.readAsDataURL(a)})}let ax=["image/*",".pdf",...Array.from(av)].join(","),ay=new Map;function az({sessionId:a,promptHistory:b=[],onSend:c,onInterrupt:f,isResponding:g,bypassActive:h,onSetBypass:i,planMode:k,onSetPlanMode:o,showPlanToggle:r=!0,isCockpitAgent:s=!1,thinkingLevel:t,onSetThinking:u,currentModel:x,currentContextSize:y,onSetModel:z,contextUsage:W,dismissKeyboard:X,cwd:Y,onCompact:Z,initData:aa,hasQueuedMessage:ab,queuedMessages:ac,queuePaused:ae,onDeleteQueued:af,onEditQueued:ai,onResumeQueue:aj,restoredText:al,onClearRestoredText:an,btw:ao,onDismissBtw:aA,currentRuntime:aB,onSetRuntime:aC,onRestart:aD,providers:aE}){let aF,aG,aH,aI,aJ,aK,aL,aM,aN,aO,aP,aQ,aR,{connected:aS}=(0,q.h)(),[aT,aU]=(0,j.useState)(()=>ay.get(a)||""),[aV,aW]=(0,j.useState)(!1),[aX,aY]=(0,j.useState)(!1),[aZ,a$]=(0,j.useState)(!1),[a_,a0]=(0,j.useState)(0),[a1,a2]=(0,j.useState)(!1),[a3,a4]=(0,j.useState)(!1),[a5,a6]=(0,j.useState)("model"),[a7,a8]=(0,j.useState)("anthropic"),[a9,ba]=(0,j.useState)(0),[bb,bc]=(0,j.useState)(0),[bd,be]=(0,j.useState)([]),[bf,bg]=(0,j.useState)([]),[bh,bi]=(0,j.useState)([]),[bj,bk]=(0,j.useState)(!1),[bl,bm]=(0,j.useState)(null),bn=(0,j.useRef)(null),bo=(0,j.useRef)(null),bp=(0,j.useRef)([]),bq=(0,j.useRef)([]),br=(0,j.useRef)(!1),bs=(aF=aT.slice(0,bb).match(/(?:^|\s)\/([^\s]*)$/))?{active:!0,query:aF[1],start:bb-1-aF[1].length}:{active:!1,query:"",start:0},bt=bs.active,bu=bs.query,bv=(aG=aT.slice(0,bb).match(/@([^\s]*)$/))?{active:!0,query:aG[1],start:bb-aG[0].length}:{active:!1,query:"",start:0},bw=!bt&&bv.active&&!!Y,bx=(0,j.useCallback)(a=>{let b=aT.slice(0,bs.start),c=aT.slice(bb);aU(b+a.command+" "+c),a0(0);let d=bs.start+a.command.length+1;bc(d),requestAnimationFrame(()=>{let a=bn.current;a&&(a.focus(),a.setSelectionRange(d,d))})},[aT,bs.start,bb]),by=(0,j.useCallback)(a=>{aU(aT.slice(0,bv.start)+"@"+a+" "+aT.slice(bb)),ba(0);let b=bv.start+1+a.length+1;bc(b),requestAnimationFrame(()=>{let a=bn.current;a&&(a.focus(),a.setSelectionRange(b,b))})},[aT,bv.start,bb]),bz=bd.length>0||bf.length>0||bh.length>0,bA=(0,j.useCallback)(()=>{let a=aT.trim();if((a||bz)&&aS){if(/^\/mcp\s*$/i.test(a)){aU(""),aY(!0);return}c(a,bd.length>0?bd:void 0,bf.length>0?bf:void 0,bh.length>0?bh:void 0),aU(""),be([]),bg([]),bi([]),a0(0),bn.current&&(bn.current.style.height="auto",X&&"ontouchstart"in window?bn.current.blur():bn.current.focus())}},[aT,bz,bd,bf,bh,c,X,aS]),bB=(0,j.useCallback)(a=>{if(bt){let b=bq.current;if(b.length>0){if("ArrowDown"===a.key){a.preventDefault(),a0(a=>(a+1)%b.length);return}if("ArrowUp"===a.key){a.preventDefault(),a0(a=>(a-1+b.length)%b.length);return}if("Enter"===a.key||"Tab"===a.key){a.preventDefault(),bx(b[a_]);return}}if("Escape"===a.key){a.preventDefault(),a.stopPropagation(),aU(aT.slice(0,bs.start)+aT.slice(bb));let b=bs.start;bc(b),requestAnimationFrame(()=>{let a=bn.current;a&&a.setSelectionRange(b,b)});return}}if(bw&&bp.current.length>0){let b=bp.current.length;if("ArrowDown"===a.key){a.preventDefault(),ba(a=>(a+1)%b);return}if("ArrowUp"===a.key){a.preventDefault(),ba(a=>(a-1+b)%b);return}if("Enter"===a.key||"Tab"===a.key){a.preventDefault(),by(bp.current[a9].value);return}if("Escape"===a.key){a.preventDefault(),a.stopPropagation(),aU(aT.slice(0,bv.start)+aT.slice(bb));let b=bv.start;bc(b),requestAnimationFrame(()=>{let a=bn.current;a&&a.setSelectionRange(b,b)});return}}if("Tab"===a.key&&!a.shiftKey&&r){a.preventDefault(),o(!k);return}if("Escape"===a.key&&g){a.preventDefault(),f();return}if("ArrowUp"===a.key&&!aT.trim()&&b.length>0){a.preventDefault(),a$(!0);return}"Enter"!==a.key||a.shiftKey||br.current||(a.preventDefault(),bA())},[bt,bw,a_,a9,bA,bx,by,aT,bv.start,bs.start,bb,g,f,k,o,r,b]),bC=(0,j.useCallback)(()=>{let a=bn.current;a&&(a.style.height="auto",a.style.height=Math.min(a.scrollHeight,200)+"px")},[]),bD=(0,j.useRef)(0),bE=(0,j.useCallback)(a=>{bD.current+=1;let b=bD.current,c=b>1?`-${b}`:"",d=`paste${c}`;bi(b=>[...b,{name:d,content:a}]),p(a).then(b=>{if(!b)return;let e=m[b];if(!e)return;let f=`paste${c}.${e}`;bi(c=>c.map(c=>c.name===d&&c.content===a?{...c,name:f,language:b}:c))})},[]),bF=(0,j.useCallback)(a=>{let b=a.target.value,c=b.length-aT.length;if(c>0){let d=a.target.selectionStart??b.length,e=b.slice(d-c,d);if(n(e)){let a=b.slice(0,d-c);aU(a+b.slice(d)),bE(e),bc(a.length),a0(0),ba(0);return}}aU(b),bc(a.target.selectionStart??0),a0(0),ba(0)},[aT,bE]),bG=(0,j.useCallback)(async a=>{for(let b of a)if(au.has(b.type)){let a=await function(a){return a.size<=35e5?aw(a).then(b=>b?{mediaType:a.type,data:b}:null):function(a){return new Promise(b=>{let c=URL.createObjectURL(a),d=new Image;d.onload=()=>{URL.revokeObjectURL(c);let e=document.createElement("canvas"),f=Math.sqrt(35e5/a.size),g=Math.round(d.width*f),h=Math.round(d.height*f);e.width=g,e.height=h;let i=e.getContext("2d");if(!i)return void b(null);i.drawImage(d,0,0,g,h);let j=.85,k=e.toDataURL("image/jpeg",j).split(",")[1]||"";for(;k.length>45e5&&j>.3;)j-=.1,k=e.toDataURL("image/jpeg",j).split(",")[1]||"";b({mediaType:"image/jpeg",data:k})},d.onerror=()=>{URL.revokeObjectURL(c),b(null)},d.src=c})}(a)}(b);a&&be(b=>[...b,a])}else if("application/pdf"===b.type){let a=await aw(b);a&&bg(c=>[...c,{mediaType:"application/pdf",data:a,name:b.name}])}else if(av.has(function(a){let b=a.lastIndexOf(".");return b>=0?a.slice(b).toLowerCase():""}(b.name))||b.type.startsWith("text/")){let a=await function(a){return new Promise(b=>{let c=new FileReader;c.onload=()=>b(c.result),c.onerror=()=>b(null),c.readAsText(a)})}(b);null!==a&&bi(c=>[...c,{name:b.name,content:a}])}},[]),bH=(0,j.useCallback)(a=>{br.current=!0,requestAnimationFrame(()=>{br.current=!1});let b=a.clipboardData?.items;if(!b)return;let c=[];for(let a=0;a<b.length;a++){let d=b[a];if("file"===d.kind){let a=d.getAsFile();a&&c.push(a)}}if(0===c.length&&a.clipboardData?.files?.length)for(let b=0;b<a.clipboardData.files.length;b++)c.push(a.clipboardData.files[b]);if(0===c.length){let b=a.clipboardData?.getData("text/html");if(b){let a=b.match(/<img[^>]+src="(data:image\/[^;]+;base64,[^"]+)"/);if(a){let[b,d]=a[1].split(","),e=b.match(/data:([^;]+)/);if(e&&d){let a=e[1],b=atob(d),f=new Uint8Array(b.length);for(let a=0;a<b.length;a++)f[a]=b.charCodeAt(a);let g=new Blob([f],{type:a});c.push(new File([g],`pasted-image.${a.split("/")[1]||"png"}`,{type:a}))}}}}if(c.length>0){a.preventDefault(),bG(c);return}let d=a.clipboardData?.getData("text/plain");d&&n(d)&&(a.preventDefault(),bE(d))},[bG,bE]),bI=(0,j.useCallback)(a=>{a.preventDefault(),bk(!0)},[]),bJ=(0,j.useCallback)(a=>{a.preventDefault(),bk(!1)},[]),bK=(0,j.useCallback)(a=>{a.preventDefault(),bk(!1);let b=[];if(a.dataTransfer?.files)for(let c=0;c<a.dataTransfer.files.length;c++)b.push(a.dataTransfer.files[c]);b.length>0&&bG(b)},[bG]),bL=(0,j.useCallback)(a=>{be(b=>b.filter((b,c)=>c!==a))},[]),bM=(0,j.useCallback)(a=>{bg(b=>b.filter((b,c)=>c!==a))},[]),bN=(0,j.useCallback)(a=>{bi(b=>b.filter((b,c)=>c!==a))},[]),bO=(0,j.useCallback)(()=>{bo.current?.click()},[]),bP=(0,j.useCallback)(a=>{let b=a.target.files;b&&0!==b.length&&(bG(Array.from(b)),a.target.value="")},[bG]),bQ=(0,l.j5)(x,t,y,aE),bR=bQ.thinking?at.find(a=>a.value===bQ.thinking)?.label??null:null,bS=bQ.context?l.XR[bQ.context].label:null;return(0,d.jsxs)("div",{className:`border-t bg-background px-1 pt-2 pb-1 ${bj?"ring-2 ring-primary ring-inset":""}`,onDragOver:bI,onDragLeave:bJ,onDrop:bK,children:[(0,d.jsxs)("div",{className:"mx-auto max-w-3xl",children:[ao&&(0,d.jsxs)("div",{className:"mb-2 rounded-md border border-input bg-muted/50 p-2",children:[(0,d.jsxs)("div",{className:"flex items-center justify-between mb-1",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2 text-xs text-muted-foreground",children:[(0,d.jsx)(A.A,{className:"h-3.5 w-3.5"}),(0,d.jsx)("span",{children:"Side question"})]}),(0,d.jsx)("button",{onClick:aA,className:"text-muted-foreground hover:text-foreground",children:(0,d.jsx)(w.A,{className:"h-3.5 w-3.5"})})]}),(0,d.jsx)("p",{className:"text-sm font-medium px-1 mb-1",children:ao.question}),ao.loading&&(0,d.jsxs)("div",{className:"flex items-center gap-2 text-xs text-muted-foreground px-1 py-1",children:[(0,d.jsx)(e.A,{className:"h-3.5 w-3.5 animate-spin"}),(0,d.jsx)("span",{children:"Thinking..."})]}),ao.error&&(0,d.jsx)("p",{className:"text-xs text-destructive px-1",children:ao.error}),ao.answer&&(0,d.jsx)(V.Y,{variant:"lite",content:ao.answer,className:"text-xs px-1 border-t pt-1 max-h-48 overflow-y-auto"})]}),a1&&(aH=ar(x,y),aI=[{id:"anthropic",name:"Anthropic"},...(aE||[]).filter(a=>!a.isBuiltin).map(a=>({id:a.id,name:a.name}))],aK=(aJ=aH.alias?(0,l.r5)(aH.alias):[]).length>=1,aL=(a,b)=>x===b.modelId||x===`${a.id}:${b.modelId}`,aM=(()=>{if(aH.entry)return aH.entry.contextSizes;if(!aE||!x)return[];for(let a of aE){let b=a.models.find(b=>aL(a,b));if(b)return b.contextSizes??[]}return[]})(),aO=new Set((aN=(()=>{if(!aE||!x)return[];for(let a of aE){let b=a.models.find(b=>aL(a,b));if(b)return b.effortLevels??[]}return[]})()).length>0?aN:(0,l.iz)(aH.entry)),aP=at.filter(a=>"off"===a.value?aO.size>0:aO.has(a.value)),(0,d.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/50",onMouseDown:a=>{a.target===a.currentTarget&&a2(!1)},children:(0,d.jsxs)("div",{className:"w-full max-w-xl mx-4 rounded-lg border bg-background shadow-lg overflow-hidden flex flex-col max-h-[85vh]",children:[(0,d.jsxs)("div",{className:"flex items-center justify-between px-5 py-3 border-b shrink-0",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)(B.A,{className:"h-4 w-4"}),(0,d.jsx)("h2",{className:"text-sm font-semibold",children:"Session settings"})]}),(0,d.jsx)("button",{onClick:()=>a2(!1),className:"rounded p-1 text-muted-foreground hover:text-foreground hover:bg-muted",children:(0,d.jsx)(w.A,{className:"h-4 w-4"})})]}),(0,d.jsxs)("div",{className:"flex flex-1 min-h-0",children:[(0,d.jsxs)("aside",{className:"w-28 border-r shrink-0 p-2 flex flex-col gap-1",children:[(0,d.jsxs)("button",{onClick:()=>a6("model"),className:`flex items-center gap-2 px-3 py-2 rounded text-xs font-medium transition-colors ${"model"===a5?"bg-primary/10 text-primary border-l-2 border-primary":"text-muted-foreground hover:text-foreground hover:bg-muted border-l-2 border-transparent"}`,children:[(0,d.jsx)(C.A,{className:"h-3.5 w-3.5"}),"Model"]}),(0,d.jsxs)("button",{onClick:()=>a6("runtime"),className:`flex items-center gap-2 px-3 py-2 rounded text-xs font-medium transition-colors ${"runtime"===a5?"bg-primary/10 text-primary border-l-2 border-primary":"text-muted-foreground hover:text-foreground hover:bg-muted border-l-2 border-transparent"}`,children:[(0,d.jsx)(D.A,{className:"h-3.5 w-3.5"}),"Harness"]})]}),(0,d.jsxs)("div",{className:"flex-1 overflow-y-auto p-4 space-y-4 min-h-[320px]",children:["model"===a5&&(0,d.jsxs)("div",{className:"space-y-3",children:[(0,d.jsxs)("div",{className:"flex items-center justify-between",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)(E.A,{className:"h-3.5 w-3.5 text-muted-foreground"}),(0,d.jsx)("span",{className:"text-xs font-medium text-foreground",children:"Provider"})]}),(0,d.jsx)("select",{value:a7,"data-testid":"provider-select",onChange:a=>a8(a.target.value),className:"rounded border border-input bg-background px-2 py-1 text-xs focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring",children:aI.map(a=>(0,d.jsx)("option",{value:a.id,children:a.name},a.id))})]}),"anthropic"===a7?(0,d.jsx)("div",{className:"space-y-0.5",children:aq.map(a=>{let b=aH.alias===a.value;return(0,d.jsxs)("button",{onClick:()=>{var b;let c;return z((b=a.value,(c=(0,l.zQ)(b))?as(c):b))},className:`flex w-full items-center gap-3 rounded px-3 py-2 text-xs transition-colors ${b?"bg-primary/10 text-primary":"hover:bg-muted text-foreground"}`,children:[(0,d.jsx)("div",{className:"w-3 shrink-0",children:b?(0,d.jsx)(v.A,{className:"h-3 w-3"}):(0,d.jsx)("div",{className:"h-3 w-3 rounded-full border border-muted-foreground/40"})}),(0,d.jsx)("span",{className:"font-mono font-medium",children:a.label})]},a.value)})}):(aQ=aE?.find(a=>a.id===a7))?(0,d.jsx)("div",{className:"space-y-0.5",children:aQ.models.map(a=>{let b=`${aQ.id}:${a.modelId}`,c=x===b||x===a.modelId;return(0,d.jsxs)("button",{onClick:()=>z(b),className:`flex w-full items-center gap-3 rounded px-3 py-2 text-xs transition-colors ${c?"bg-primary/10 text-primary":"hover:bg-muted text-foreground"}`,children:[(0,d.jsx)("div",{className:"w-3 shrink-0",children:c?(0,d.jsx)(v.A,{className:"h-3 w-3"}):(0,d.jsx)("div",{className:"h-3 w-3 rounded-full border border-muted-foreground/40"})}),(0,d.jsx)("span",{className:"font-mono font-medium",children:a.modelId}),(0,d.jsx)("span",{className:"text-muted-foreground ml-auto",children:a.displayName})]},a.modelId)})}):null,aK&&(0,d.jsxs)("div",{className:"flex items-center gap-2 pt-1",children:[(0,d.jsx)(F.A,{className:"h-3.5 w-3.5 text-muted-foreground shrink-0"}),(0,d.jsx)("span",{className:"text-xs text-muted-foreground",children:"Version"}),(0,d.jsx)("div",{className:"ml-auto flex gap-1",children:aJ.map(a=>(0,d.jsx)("button",{onClick:()=>z(as(a)),className:`rounded px-2 py-0.5 text-xs transition-colors ${aH.entry?.modelId===a.modelId?"bg-primary text-primary-foreground":"bg-muted text-muted-foreground hover:text-foreground"}`,children:a.version},a.modelId))})]}),aM.length>=2&&(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)(G.A,{className:"h-3.5 w-3.5 text-muted-foreground shrink-0"}),(0,d.jsx)("span",{className:"text-xs text-muted-foreground",children:"Context"}),(0,d.jsx)("div",{className:"ml-auto flex gap-1",children:aM.map(a=>(0,d.jsx)("button",{onClick:()=>z(x,a),className:`rounded px-2 py-0.5 text-xs transition-colors ${aH.contextSize===a?"bg-primary text-primary-foreground":"bg-muted text-muted-foreground hover:text-foreground"}`,children:l.XR[a].label},a))})]}),aO.size>0&&(0,d.jsxs)("div",{className:"flex items-start gap-2",children:[(0,d.jsx)(C.A,{className:"h-3.5 w-3.5 text-muted-foreground shrink-0 mt-0.5"}),(0,d.jsx)("span",{className:"text-xs text-muted-foreground py-0.5 shrink-0",children:"Thinking"}),(0,d.jsx)("div",{className:"ml-auto flex flex-wrap gap-1 justify-end",children:aP.map(a=>(0,d.jsx)("button",{onClick:()=>u(a.value),"data-testid":`thinking-${a.value}`,className:`rounded px-2 py-0.5 text-xs transition-colors ${t===a.value?"bg-primary text-primary-foreground":"bg-muted text-muted-foreground hover:text-foreground"}`,children:a.label},a.value))})]})]}),"runtime"===a5&&(0,d.jsxs)("div",{className:"space-y-5",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)(D.A,{className:"h-3.5 w-3.5 text-muted-foreground"}),(0,d.jsx)("span",{className:"text-xs text-muted-foreground",children:"Agent harness:"}),(0,d.jsx)("span",{className:"text-xs font-medium text-foreground",children:"Claude Code"})]}),aC&&(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)(H.A,{className:"h-3.5 w-3.5 text-muted-foreground shrink-0"}),(0,d.jsx)("span",{className:"text-xs text-muted-foreground",children:"Backend"}),(0,d.jsxs)("div",{className:"ml-auto flex gap-1",children:[(0,d.jsx)("button",{onClick:()=>aC("pty"),"data-testid":"runtime-pty",className:`rounded px-2 py-0.5 text-xs transition-colors ${"pty"===aB?"bg-primary text-primary-foreground":"bg-muted text-muted-foreground hover:text-foreground"}`,children:"PTY"}),(0,d.jsx)("button",{onClick:()=>aC("stream"),"data-testid":"runtime-stream",className:`rounded px-2 py-0.5 text-xs transition-colors ${"stream"===aB?"bg-primary text-primary-foreground":"bg-muted text-muted-foreground hover:text-foreground"}`,children:"Stream"})]})]}),(0,d.jsxs)("button",{onClick:()=>{aD?.(),a2(!1)},className:"flex w-full items-center justify-center gap-2 rounded-lg border border-border px-4 py-2.5 text-xs text-muted-foreground hover:text-foreground hover:bg-muted/50 transition-colors",children:[(0,d.jsx)(I.A,{className:"h-3.5 w-3.5"}),"Restart agent harness"]}),!s&&(0,d.jsxs)("button",{onClick:()=>i(!h),className:"flex w-full items-center justify-between rounded-lg border border-border px-4 py-3 text-xs hover:bg-muted/50 transition-colors","data-testid":"bypass-toggle",children:[(0,d.jsxs)("div",{className:"flex items-center gap-3",children:[h?(0,d.jsx)(J.A,{className:"h-4 w-4 text-orange-500"}):(0,d.jsx)(K.A,{className:"h-4 w-4 text-muted-foreground"}),(0,d.jsx)("span",{className:h?"text-orange-500 font-medium":"text-muted-foreground",children:"Bypass all permissions"})]}),(0,d.jsx)("span",{className:`inline-flex h-5 w-9 items-center rounded-full transition-colors shrink-0 ${h?"bg-orange-500":"bg-muted-foreground/30"}`,children:(0,d.jsx)("span",{className:`inline-block h-4 w-4 rounded-full bg-white transition-transform shadow-sm ${h?"translate-x-4.5":"translate-x-0.5"}`})})]}),aa?.mcpServers&&aa.mcpServers.length>0&&(0,d.jsxs)("button",{onClick:()=>aY(!0),className:"flex w-full items-center justify-between rounded-lg border border-border px-4 py-3 text-xs hover:bg-muted/50 transition-colors",children:[(0,d.jsxs)("div",{className:"flex items-center gap-3",children:[(0,d.jsx)(L.A,{className:"h-4 w-4 text-muted-foreground"}),(0,d.jsx)("span",{className:"text-muted-foreground",children:"MCP Servers"})]}),(0,d.jsxs)("span",{className:"flex items-center gap-1 text-muted-foreground",children:[aa.mcpServers.filter(a=>"connected"===a.status).length,"/",aa.mcpServers.length,(0,d.jsx)(M.A,{className:"h-3 w-3"})]})]})]})]})]}),(0,d.jsx)("div",{className:"flex items-center justify-end px-5 py-3 border-t shrink-0",children:(0,d.jsxs)("div",{className:"flex gap-2",children:[(0,d.jsx)("button",{onClick:()=>a2(!1),className:"px-3 py-1.5 text-xs rounded-md border border-input text-muted-foreground hover:text-foreground hover:bg-muted transition-colors",children:"Cancel"}),(0,d.jsx)("button",{onClick:()=>a2(!1),className:"px-4 py-1.5 text-xs rounded-md bg-primary text-primary-foreground hover:brightness-110 transition-all",children:"Done"})]})})]})})),bz&&(0,d.jsxs)("div",{className:"mb-1 flex gap-2 flex-wrap px-9",children:[bd.map((a,b)=>(0,d.jsxs)("div",{className:"relative group",children:[(0,d.jsx)("img",{src:`data:${a.mediaType};base64,${a.data}`,className:"h-16 rounded border object-contain cursor-pointer",alt:"",onClick:()=>bm({type:"image",src:`data:${a.mediaType};base64,${a.data}`,index:b})}),(0,d.jsx)("button",{onClick:()=>bL(b),className:"absolute top-0.5 right-0.5 opacity-0 group-hover:opacity-100 transition-opacity text-destructive",children:(0,d.jsx)(N.A,{className:"h-3.5 w-3.5"})})]},`img-${b}`)),bf.map((a,b)=>(0,d.jsxs)("div",{className:"relative group flex items-center gap-1.5 rounded border px-2 py-1 text-xs bg-muted h-16",children:[(0,d.jsx)(O.A,{className:"h-4 w-4 text-red-500 shrink-0"}),(0,d.jsx)("span",{className:"truncate max-w-[120px]",children:a.name}),(0,d.jsx)("button",{onClick:()=>bM(b),className:"absolute top-0.5 right-0.5 opacity-0 group-hover:opacity-100 transition-opacity text-destructive",children:(0,d.jsx)(N.A,{className:"h-3.5 w-3.5"})})]},`doc-${b}`)),bh.map((a,b)=>(0,d.jsxs)("div",{className:"relative group flex items-center gap-1.5 rounded border px-2 py-1 text-xs bg-muted h-16 cursor-pointer",onClick:()=>bm({type:"text",content:a.content,name:a.name,index:b}),children:[(0,d.jsx)(O.A,{className:"h-4 w-4 text-muted-foreground shrink-0"}),(0,d.jsx)("span",{className:"truncate max-w-[120px]",children:a.name}),(0,d.jsx)("button",{onClick:a=>{a.stopPropagation(),bN(b)},className:"absolute top-0.5 right-0.5 opacity-0 group-hover:opacity-100 transition-opacity text-destructive",children:(0,d.jsx)(N.A,{className:"h-3.5 w-3.5"})})]},`txt-${b}`))]}),ab&&(0,d.jsxs)("button",{type:"button",onClick:()=>aW(!0),className:"mb-2 mx-9 flex items-center gap-2 rounded-md border border-dashed px-3 py-1.5 text-xs hover:bg-muted transition-colors cursor-pointer",children:[(0,d.jsx)(A.A,{className:`h-3.5 w-3.5 shrink-0 ${ae?"text-yellow-500":"text-primary"}`}),(0,d.jsxs)("span",{className:ae?"text-yellow-500":"text-muted-foreground",children:[ac?.length??0," message",(ac?.length??0)!==1?"s":""," ",ae?"paused":"queued"]}),(0,d.jsx)("span",{className:"text-muted-foreground/50 ml-auto",children:"click to manage"})]}),(0,d.jsxs)("div",{className:"relative flex items-stretch gap-1",children:[bt&&(0,d.jsx)(ag,{query:bu,selectedIndex:a_,onSelect:bx,cwd:Y,onItemsChange:a=>{bq.current=a},initCommands:aa?.slashCommands}),bw&&Y&&(0,d.jsx)(ad,{query:bv.query,cwd:Y,selectedIndex:a9,onSelect:by,onItemsChange:a=>{bp.current=a},initAgents:aa?.agents}),(0,d.jsx)("input",{ref:bo,type:"file",accept:ax,multiple:!0,onChange:bP,className:"hidden"}),(0,d.jsxs)("div",{className:"flex flex-col items-center justify-evenly w-8 shrink-0",children:[W&&(0,d.jsx)(ak,{usage:W,onCompact:Z}),(0,d.jsx)($.$,{size:"icon",variant:"ghost","data-testid":"btn-session-settings",className:`h-8 w-8 ${h?"text-orange-500":""}`,onClick:()=>a2(a=>(a||(ar(x,y).alias?a8("anthropic"):a8((0,l.rs)(x,aE))),!a)),children:(0,d.jsx)(B.A,{className:"h-4 w-4"})})]}),(0,d.jsxs)("div",{className:"relative flex-1 mr-1",children:[(0,d.jsx)("textarea",{ref:bn,"data-testid":"message-input",value:aT,onChange:bF,onKeyDown:bB,onInput:bC,onPaste:bH,onFocus:()=>a4(!0),onBlur:()=>a4(!1),placeholder:ab?ae?"Queue paused (send to discard, or manage in modal)":"Message queued (Esc to interrupt)":g?"Use /btw to nudge, or type to queue...":k?"Plan with Claude...":"Send a message...",rows:2,className:`block w-full resize-none rounded-md border bg-background px-3 py-2 pb-7 text-sm ring-offset-background placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 overflow-y-auto scrollbar-none ${k?"border-blue-500/50 focus-visible:ring-blue-500/50":"border-input focus-visible:ring-ring"}`}),(0,d.jsx)("button",{onClick:bO,title:"Attach file",className:"absolute bottom-2.5 right-1.5 rounded p-1 text-muted-foreground hover:text-foreground hover:bg-muted transition-colors disabled:opacity-50",children:(0,d.jsx)(P.A,{className:"h-4 w-4"})}),!a3&&(0,d.jsxs)("button",{type:"button","data-testid":"model-pill",title:"Model and thinking level — click to change",onClick:()=>{a8(ar(x,y).alias?"anthropic":(0,l.rs)(x,aE)),a2(!0)},className:"absolute bottom-2.5 left-2.5 flex max-w-[60%] items-center gap-1 rounded-full bg-muted px-2 py-0.5 text-[10px] font-medium text-muted-foreground transition-colors hover:bg-muted/70 hover:text-foreground",children:[(0,d.jsx)(E.A,{className:"h-2.5 w-2.5 shrink-0"}),(0,d.jsx)("span",{className:"truncate",children:bQ.label}),bR&&(0,d.jsxs)("span",{className:"shrink-0 text-muted-foreground/60",children:["\xb7 ",bR]}),bS&&(0,d.jsxs)("span",{className:"shrink-0 text-muted-foreground/60",children:["\xb7 ",bS]})]})]}),(0,d.jsxs)("div",{className:"flex flex-col items-center justify-center w-12 shrink-0 overflow-visible",children:[aS?!g||aT.trim()||bz?(0,d.jsx)($.$,{size:"icon",className:"h-8 w-8",onClick:bA,disabled:!aT.trim()&&!bz,"data-testid":"btn-send",children:(0,d.jsx)(R.A,{className:"h-4 w-4"})}):(0,d.jsx)($.$,{size:"icon",variant:"destructive",className:"h-8 w-8",onClick:()=>f(),children:(0,d.jsx)(Q.A,{className:"h-4 w-4"})}):(0,d.jsx)($.$,{size:"icon",variant:"ghost",className:"h-8 w-8",disabled:!0,title:"Connecting...",children:(0,d.jsx)(e.A,{className:"h-4 w-4 animate-spin text-muted-foreground"})}),r&&(0,d.jsxs)("button",{onClick:()=>o(!k),title:k?"Switch to Build mode (Tab)":"Switch to Plan mode (Tab)",className:`mt-4 flex items-center gap-0.5 whitespace-nowrap rounded-full px-1.5 py-0.5 text-[10px] font-medium transition-colors ${k?"bg-blue-500/15 text-blue-500 hover:bg-blue-500/25":"bg-muted text-muted-foreground hover:bg-muted/80 hover:text-foreground"}`,children:[k?(0,d.jsx)(S.A,{className:"h-2.5 w-2.5"}):(0,d.jsx)(T.A,{className:"h-2.5 w-2.5"}),k?"Plan":"Build"]})]})]})]}),(0,d.jsx)(ah.lG,{open:null!==bl,onOpenChange:()=>bm(null),className:"max-w-3xl",children:(0,d.jsxs)(ah.Cf,{className:"max-h-[80vh] overflow-auto",onClose:()=>bm(null),onDelete:()=>{bl&&("image"===bl.type?bL(bl.index):bN(bl.index),bm(null))},children:[bl?.type==="image"&&(0,d.jsx)("img",{src:bl.src,className:"w-full rounded object-contain",alt:""}),bl?.type==="text"&&((aR=(0,U.WG)(bl.name))?(0,d.jsx)(U.NG,{code:bl.content,language:aR,fullHeight:!0}):(0,d.jsx)("pre",{className:"whitespace-pre-wrap text-sm font-mono",children:bl.content}))]})}),(0,d.jsx)(ap,{open:aV,onOpenChange:aW,messages:ac??[],paused:ae??!1,onDelete:af??(()=>{}),onEdit:ai??(()=>{}),onResume:aj??(()=>{})}),(0,d.jsx)(_,{open:aX,onOpenChange:aY,sessionId:a,initData:aa}),(0,d.jsx)(am,{open:aZ,prompts:b,onSelect:a=>{a$(!1),aU(a),requestAnimationFrame(()=>bn.current?.focus())},onClose:()=>{a$(!1),requestAnimationFrame(()=>bn.current?.focus())}})]})}var aA=c(20390);function aB({currentModel:a,currentContextSize:b,onSelect:c,providers:e,slot:f}){let g=function(a){let b=[];for(let c of a)for(let a of c.models){let d=a.effortLevels.length>0?`Thinking: ${a.effortLevels.join(", ")}`:"No thinking";b.push({key:`${c.id}::${a.modelId}`,value:a.modelId,label:a.displayName,description:d,providerId:c.id,providerName:c.name,sizes:a.contextSizes})}return b}(e),h="";return(0,d.jsx)("div",{className:"mx-auto max-w-3xl",children:(0,d.jsxs)("div",{className:"rounded-lg border border-border bg-card p-4 space-y-1",children:[(0,d.jsxs)("div",{className:"flex items-baseline justify-between pb-2",children:[(0,d.jsx)("div",{className:"text-sm font-medium",children:f?`Switch ${f} model`:"Switch model"}),(0,d.jsxs)("div",{className:"text-xs text-muted-foreground font-mono",children:["Current: ",a]})]}),g.map(e=>{let f=e.providerName!==h;h=e.providerName;let g=e.value===a;return(0,d.jsxs)("div",{children:[f&&(0,d.jsx)("div",{className:"text-xs font-medium text-muted-foreground uppercase tracking-wider pt-3 pb-1 px-3",children:e.providerName}),(0,d.jsxs)("button",{onClick:()=>c(e.value),className:`w-full flex items-center gap-3 rounded-md px-3 py-2 text-left text-sm transition-colors ${g?"bg-primary/10 text-primary":"hover:bg-muted text-foreground"}`,children:[(0,d.jsx)("div",{className:"w-4 shrink-0",children:g&&(0,d.jsx)(v.A,{className:"h-4 w-4"})}),(0,d.jsx)("span",{className:"font-mono font-bold",children:e.value}),(0,d.jsx)("span",{className:"text-muted-foreground",children:e.label}),(0,d.jsx)("span",{className:"text-muted-foreground ml-auto text-xs",children:e.description})]}),e.sizes.length>=2&&(0,d.jsx)("div",{className:"flex gap-1 pl-10 pt-1 pb-2",children:e.sizes.map(f=>(0,d.jsx)("button",{onClick:()=>c(e.value,f),className:`rounded px-2 py-0.5 text-xs transition-colors ${e.value===a&&b===f?"bg-primary text-primary-foreground":"bg-muted text-muted-foreground hover:text-foreground"}`,children:l.XR[f].label},f))})]},e.key)})]})})}var aC=c(18835);let aD={session:"session",localSettings:"project (local)",projectSettings:"project",userSettings:"global",cliArg:"session"};function aE({permission:a,onRespond:b}){let c=(0,j.useRef)(null),e=(0,j.useMemo)(()=>{if(!a.input)return{};try{return JSON.parse(a.input)}catch{return{}}},[a.input]),f=function(a,b){switch(a){case"Bash":case"bash":{let a=b.command||"";return a.length>80?a.slice(0,80)+"...":a}case"Write":case"write":case"Edit":case"edit":case"Read":case"read":{let a=b.file_path||"";return a?(0,s._1)(a):""}default:return""}}(a.toolName,e),g=a.suggestions,h=g&&g.length>0;return(0,d.jsx)("div",{className:"mx-auto max-w-3xl","data-testid":"permission-prompt",children:(0,d.jsx)("div",{className:"rounded-lg border border-yellow-500/50 bg-yellow-500/10 p-4",children:(0,d.jsxs)("div",{className:"flex items-start gap-3",children:[(0,d.jsx)(aC.A,{className:"h-5 w-5 shrink-0 text-yellow-500 mt-0.5"}),(0,d.jsxs)("div",{className:"flex-1 min-w-0 space-y-2",children:[(0,d.jsxs)("div",{className:"text-sm font-medium",children:["Permission requested: ",(0,d.jsx)("span",{className:"font-mono",children:a.toolName})]}),f&&(0,d.jsx)("div",{className:"font-mono text-xs text-muted-foreground truncate",children:f}),a.input&&(0,d.jsx)("pre",{className:"overflow-x-auto rounded bg-black/10 dark:bg-white/5 p-2 text-[11px] leading-relaxed max-h-32 overflow-y-auto",children:a.input.length>500?a.input.slice(0,500)+"\n... (truncated)":a.input}),(0,d.jsxs)("div",{className:"flex flex-wrap gap-2 pt-1",children:[(0,d.jsx)("button",{ref:c,onClick:()=>b(a.requestId,!0,"allow"),className:"rounded bg-primary px-3 py-1 text-xs font-medium text-primary-foreground hover:bg-primary/90","data-testid":"btn-allow",children:"Allow"}),h?g.map((c,e)=>(0,d.jsx)("button",{onClick:()=>b(a.requestId,!0,"allow_always",e),className:"rounded bg-primary/70 px-3 py-1 text-xs font-medium text-primary-foreground hover:bg-primary/60",title:JSON.stringify(c,null,2),children:function(a){let b=aD[a.destination||""]||a.destination||"session";if("setMode"===a.type&&a.mode)return`${a.mode} mode (${b})`;if("addDirectories"===a.type&&a.directories?.length){let c=a.directories[0],d=(0,s.uk)(c)||c;return`Allow dir ${d} (${b})`}if(!a.rules?.length)return`Always allow (${b})`;let c=a.rules[0],d=c.toolName,e=c.ruleContent;if(!e)return`Always ${d} (${b})`;let f=e.length>30?e.slice(0,30)+"...":e;return`${d}(${f}) (${b})`}(c)},e)):(0,d.jsxs)("button",{onClick:()=>b(a.requestId,!0,"allow_always"),className:"rounded bg-primary/70 px-3 py-1 text-xs font-medium text-primary-foreground hover:bg-primary/60",children:["Always for ",a.toolName]}),(0,d.jsx)("button",{onClick:()=>b(a.requestId,!0,"allow_all"),className:"rounded bg-orange-600 px-3 py-1 text-xs font-medium text-white hover:bg-orange-700",children:"Bypass All"}),(0,d.jsx)("button",{onClick:()=>b(a.requestId,!1,"deny"),className:"rounded bg-muted px-3 py-1 text-xs font-medium text-muted-foreground hover:bg-muted/80",children:"Deny"})]})]})]})})})}var aF=c(45414),aG=c(28470),aH=c(53649);let aI=[{label:"Yes, clear context and auto-accept edits",clearContext:!0,autoAccept:!0},{label:"Yes, clear context and manually approve edits",clearContext:!0,autoAccept:!1},{label:"Yes, auto-accept edits",clearContext:!1,autoAccept:!0},{label:"Yes, manually approve edits",clearContext:!1,autoAccept:!1}],aJ=[{label:"Yes, clear context and implement",clearContext:!0,autoAccept:!0},{label:"Yes, continue implementing",clearContext:!1,autoAccept:!0}];function aK({permission:a,bypassActive:b,onRespond:c,onSendMessage:e,onSetBypass:f,onSetPlanMode:g}){let h=b?aJ:aI,[i,k]=(0,j.useState)(0),[l,m]=(0,j.useState)(!1),[n,o]=(0,j.useState)(""),[p,q]=(0,j.useState)(!1),r=(0,j.useRef)(null),s=(0,j.useRef)(null),t=(0,j.useMemo)(()=>{if(!a.input)return[];try{return JSON.parse(a.input).allowedPrompts||[]}catch{return[]}},[a.input]),u=(0,j.useCallback)(b=>{let d=h[b];if(d.autoAccept&&f(!0),d.clearContext){let b=a.planFilePath?` at ${a.planFilePath}`:"";c(a.requestId,!1,"deny"),g(!1),setTimeout(()=>{e("/clear"),setTimeout(()=>e(`Implement the plan${b}`),200)},100)}else c(a.requestId,!0,"allow")},[h,a.requestId,a.planFilePath,c,e,f,g]),v=(0,j.useCallback)(()=>{c(a.requestId,!1,"deny"),setTimeout(()=>g(!0),100)},[a.requestId,c,g]),w=(0,j.useCallback)(()=>{let b=n.trim();b&&(c(a.requestId,!1,"deny"),setTimeout(()=>e(b),100))},[n,a.requestId,c,e]),x=(0,j.useCallback)(a=>{if(l)return void("Escape"===a.key?(a.preventDefault(),m(!1),r.current?.focus()):"Enter"!==a.key||a.shiftKey||(a.preventDefault(),w()));if("Escape"===a.key){a.preventDefault(),v();return}"ArrowUp"===a.key||"k"===a.key?(a.preventDefault(),k(a=>Math.max(0,a-1))):"ArrowDown"===a.key||"j"===a.key?(a.preventDefault(),k(a=>Math.min(h.length+1,a+1))):"Enter"===a.key&&(a.preventDefault(),i===h.length?m(!0):i===h.length+1?v():u(i))},[h,l,i,u,w,v]);return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("div",{className:"mx-auto max-w-3xl","data-testid":"plan-approval-prompt",children:(0,d.jsx)("div",{ref:r,tabIndex:-1,onKeyDown:x,className:"rounded-lg border border-blue-500/50 bg-blue-500/10 p-4 outline-none",children:(0,d.jsxs)("div",{className:"flex items-start gap-3",children:[(0,d.jsx)(aF.A,{className:"h-5 w-5 shrink-0 text-blue-500 mt-0.5"}),(0,d.jsxs)("div",{className:"flex-1 min-w-0 space-y-3",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("div",{className:"text-sm font-medium",children:"Would you like to proceed?"}),a.planContent&&(0,d.jsxs)("button",{onClick:()=>q(!0),className:"flex items-center gap-1 rounded px-1.5 py-0.5 text-xs text-blue-500 hover:bg-blue-500/10",children:[(0,d.jsx)(aG.A,{className:"h-3 w-3"}),"View plan"]})]}),t.length>0&&(0,d.jsxs)("div",{className:"space-y-1",children:[(0,d.jsx)("div",{className:"text-xs text-muted-foreground",children:"Permissions requested for implementation:"}),(0,d.jsx)("ul",{className:"text-xs text-muted-foreground space-y-0.5",children:t.map((a,b)=>(0,d.jsxs)("li",{className:"flex items-center gap-1.5 pl-2",children:[(0,d.jsx)("span",{className:"font-mono text-foreground/70",children:a.tool}),(0,d.jsx)("span",{children:a.prompt})]},b))})]}),(0,d.jsxs)("div",{className:"space-y-0.5",children:[h.map((a,b)=>(0,d.jsxs)("button",{onClick:()=>u(b),onMouseEnter:()=>k(b),className:`flex w-full items-center gap-2 rounded px-2 py-1.5 text-left text-xs transition-colors ${i===b?"bg-blue-600/20 text-foreground":"text-muted-foreground hover:text-foreground"}`,children:[(0,d.jsxs)("span",{className:"shrink-0 font-mono text-blue-500 w-4",children:[b+1,"."]}),(0,d.jsx)("span",{children:a.label}),0===b&&(0,d.jsx)("span",{className:"ml-auto text-[10px] text-muted-foreground hidden sm:inline",children:"default"})]},b)),(0,d.jsxs)("button",{onClick:()=>m(!0),onMouseEnter:()=>k(h.length),className:`flex w-full items-center gap-2 rounded px-2 py-1.5 text-left text-xs transition-colors ${i===h.length?"bg-blue-600/20 text-foreground":"text-muted-foreground hover:text-foreground"}`,children:[(0,d.jsxs)("span",{className:"shrink-0 font-mono text-blue-500 w-4",children:[h.length+1,"."]}),(0,d.jsx)("span",{children:"Tell Claude what to change"})]}),(0,d.jsxs)("button",{onClick:v,onMouseEnter:()=>k(h.length+1),className:`flex w-full items-center gap-2 rounded px-2 py-1.5 text-left text-xs transition-colors ${i===h.length+1?"bg-blue-600/20 text-foreground":"text-muted-foreground hover:text-foreground"}`,children:[(0,d.jsx)("span",{className:"shrink-0 font-mono text-muted-foreground w-4",children:"Esc"}),(0,d.jsx)("span",{children:"Dismiss"})]})]}),l&&(0,d.jsxs)("div",{className:"space-y-2",children:[(0,d.jsx)("textarea",{ref:s,value:n,onChange:a=>o(a.target.value),placeholder:"Describe what you'd like to change about the plan...",className:"w-full rounded border border-border bg-background px-3 py-2 text-xs resize-none focus:outline-none focus:ring-1 focus:ring-blue-500",rows:3}),(0,d.jsxs)("div",{className:"flex gap-2",children:[(0,d.jsxs)("button",{onClick:w,disabled:!n.trim(),className:"flex items-center gap-1.5 rounded bg-blue-600 px-3 py-1.5 text-xs font-medium text-white hover:bg-blue-700 disabled:opacity-50 disabled:cursor-not-allowed",children:[(0,d.jsx)(R.A,{className:"h-3 w-3"}),"Send feedback"]}),(0,d.jsx)("button",{onClick:()=>{m(!1),r.current?.focus()},className:"rounded px-3 py-1.5 text-xs text-muted-foreground hover:bg-muted",children:"Cancel"})]})]})]})]})})}),a.planContent&&a.planFilePath&&(0,d.jsx)(aH.G,{open:p,onOpenChange:q,content:a.planContent,filePath:a.planFilePath})]})}var aL=c(83394),aM=c(82373);function aN(a){try{return JSON.parse(a).questions||[]}catch{return[]}}function aO({tool:a}){let b=(0,j.useMemo)(()=>aN(a.input),[a.input]),c=(0,j.useMemo)(()=>(function(a){let b=new Map;for(let c of a.matchAll(/"([^"]+)"="([^"]+)"/g))b.set(c[1],c[2]);return b})(a.output||""),[a.output]);return 0===b.length?null:(0,d.jsx)("div",{className:"rounded-lg border border-border bg-background/50 p-3 space-y-3",children:b.map((a,b)=>{let e=c.get(a.question),f=e&&!a.options.some(a=>a.label===e);return(0,d.jsxs)("div",{className:"space-y-2",children:[(0,d.jsxs)("div",{className:"text-sm font-medium flex items-center gap-2",children:[(0,d.jsx)(aL.A,{className:"h-4 w-4 shrink-0 text-muted-foreground"}),a.question]}),(0,d.jsxs)("div",{className:"space-y-0.5 pl-6",children:[a.options.map((a,b)=>{let c=e===a.label;return(0,d.jsxs)("div",{className:`flex w-full items-start gap-2.5 rounded-md px-2.5 py-2 text-xs ${c?"bg-primary/10":""}`,children:[c?(0,d.jsx)(v.A,{className:"h-3.5 w-3.5 shrink-0 mt-0.5 text-primary"}):(0,d.jsx)(aM.A,{className:"h-3.5 w-3.5 shrink-0 mt-0.5 text-muted-foreground/40"}),(0,d.jsxs)("div",{className:"min-w-0",children:[(0,d.jsx)("div",{className:c?"font-medium text-foreground":"text-muted-foreground",children:a.label}),c&&a.description&&(0,d.jsx)("div",{className:"text-muted-foreground text-[11px] mt-0.5",children:a.description})]})]},b)}),f&&(0,d.jsxs)("div",{className:"flex w-full items-start gap-2.5 rounded-md px-2.5 py-2 text-xs bg-primary/10",children:[(0,d.jsx)(an.A,{className:"h-3.5 w-3.5 shrink-0 mt-0.5 text-primary"}),(0,d.jsx)("div",{className:"min-w-0",children:(0,d.jsx)("div",{className:"font-medium text-foreground",children:e})})]})]})]},b)})})}let aP="__other__";function aQ({questions:a,requestId:b,onSubmit:c}){let[e,f]=(0,j.useState)({}),[g,h]=(0,j.useState)({}),[i,k]=(0,j.useState)(!1),l=(0,j.useRef)({}),m=(0,j.useCallback)((a,b)=>{i||f(c=>({...c,[a]:c[a]===b?"":b}))},[i]),n=(0,j.useCallback)(a=>{i||(f(b=>({...b,[a]:aP})),setTimeout(()=>l.current[a]?.focus(),0))},[i]),o=a.every(a=>{let b=e[a.question];return!!b&&(b!==aP||!!g[a.question]?.trim())}),p=(0,j.useCallback)(()=>{if(!o||i)return;k(!0);let d={};for(let b of a){let a=e[b.question];d[b.question]=a===aP?g[b.question]:a}c(b,d)},[o,i,b,e,g,a,c]);return(0,d.jsx)("div",{className:"rounded-lg border border-border bg-card p-4",children:(0,d.jsxs)("div",{className:"space-y-3",children:[a.map((a,b)=>{let c=e[a.question],f=c===aP;return(0,d.jsxs)("div",{className:"space-y-2",children:[a.header&&(0,d.jsx)("div",{className:"text-[10px] uppercase tracking-wider text-muted-foreground font-medium",children:a.header}),(0,d.jsxs)("div",{className:"text-sm font-medium flex items-center gap-2",children:[(0,d.jsx)(aL.A,{className:"h-4 w-4 shrink-0 text-muted-foreground"}),a.question]}),(0,d.jsxs)("div",{className:"space-y-0.5 pl-6",children:[a.options.map((b,e)=>{let f=c===b.label,g=i?"div":"button";return(0,d.jsxs)(g,{onClick:i?void 0:()=>m(a.question,b.label),className:`flex w-full items-start gap-2.5 rounded-md px-2.5 py-2 text-xs text-left transition-colors ${f?"bg-primary/10":i?"":"hover:bg-muted/50 cursor-pointer"}`,children:[f?(0,d.jsx)(v.A,{className:"h-3.5 w-3.5 shrink-0 mt-0.5 text-primary"}):(0,d.jsx)(aM.A,{className:"h-3.5 w-3.5 shrink-0 mt-0.5 text-muted-foreground/40"}),(0,d.jsxs)("div",{className:"min-w-0",children:[(0,d.jsx)("div",{className:f?"font-medium text-foreground":i?"text-muted-foreground":"text-foreground",children:b.label}),b.description&&(0,d.jsx)("div",{className:"text-muted-foreground text-[11px] mt-0.5",children:b.description})]})]},e)}),i?f&&(0,d.jsxs)("div",{className:"flex w-full items-start gap-2.5 rounded-md px-2.5 py-2 text-xs bg-primary/10",children:[(0,d.jsx)(v.A,{className:"h-3.5 w-3.5 shrink-0 mt-0.5 text-primary"}),(0,d.jsx)("div",{className:"min-w-0",children:(0,d.jsx)("div",{className:"font-medium text-foreground",children:g[a.question]})})]}):(0,d.jsxs)("div",{className:`rounded-md transition-colors ${f?"bg-primary/10":"hover:bg-muted/50"}`,children:[(0,d.jsxs)("button",{type:"button",onClick:()=>n(a.question),className:"flex w-full items-start gap-2.5 px-2.5 py-2 text-xs text-left cursor-pointer",children:[f?(0,d.jsx)(v.A,{className:"h-3.5 w-3.5 shrink-0 mt-0.5 text-primary"}):(0,d.jsx)(aM.A,{className:"h-3.5 w-3.5 shrink-0 mt-0.5 text-muted-foreground/40"}),(0,d.jsx)("div",{className:"min-w-0 flex-1",children:(0,d.jsx)("div",{className:f?"font-medium text-foreground":"text-foreground",children:"Other"})})]}),f&&(0,d.jsx)("div",{className:"px-2.5 pb-2 pl-9",children:(0,d.jsx)("input",{ref:b=>{l.current[a.question]=b},type:"text",value:g[a.question]||"",onChange:b=>h(c=>({...c,[a.question]:b.target.value})),onKeyDown:a=>{"Enter"===a.key&&(a.preventDefault(),p())},placeholder:"Tell Claude what to do instead...",className:"w-full rounded border border-border bg-background px-2 py-1 text-xs text-foreground placeholder:text-muted-foreground focus:outline-none focus:ring-1 focus:ring-primary"})})]})]})]},b)}),!i&&(0,d.jsx)("div",{className:"flex justify-end pt-1",children:(0,d.jsx)("button",{disabled:!o,onClick:p,className:`rounded px-4 py-1.5 text-xs font-medium transition-colors ${o?"bg-primary text-primary-foreground hover:bg-primary/90":"bg-muted text-muted-foreground cursor-not-allowed"}`,children:"Submit"})})]})})}var aR=c(20878);function aS({count:a,onCopy:b,onCancel:c}){return(0,d.jsx)("div",{className:"fixed bottom-20 left-1/2 -translate-x-1/2 z-50 animate-in slide-in-from-bottom-4 fade-in duration-200",children:(0,d.jsxs)("div",{className:"flex items-center gap-2 rounded-full border bg-background px-4 py-2 shadow-lg",children:[(0,d.jsxs)("span",{className:"text-sm text-muted-foreground whitespace-nowrap",children:[a," selected"]}),(0,d.jsxs)($.$,{size:"sm",variant:"default",onClick:b,className:"gap-1.5",children:[(0,d.jsx)(aR.A,{className:"h-3.5 w-3.5"}),"Copy"]}),(0,d.jsx)($.$,{size:"sm",variant:"ghost",onClick:c,children:(0,d.jsx)(w.A,{className:"h-3.5 w-3.5"})})]})})}function aT({open:a,models:b,onStrip:c,onNewSession:g,onCancel:h}){let[i,k]=(0,j.useState)(!1),l=async()=>{k(!0);try{await c()}finally{k(!1)}};return(0,d.jsx)(ah.lG,{open:a,onOpenChange:a=>!a&&h(),children:(0,d.jsxs)(ah.Cf,{onClose:h,children:[(0,d.jsx)(ah.c7,{children:(0,d.jsxs)(ah.L3,{className:"flex items-center gap-2",children:[(0,d.jsx)(f.A,{className:"h-5 w-5 text-amber-500"}),"Incompatible Thinking Blocks"]})}),(0,d.jsxs)("div",{className:"space-y-3 mt-1",children:[(0,d.jsxs)("p",{className:"text-sm text-muted-foreground",children:["This session contains thinking blocks from ",(0,d.jsx)("span",{className:"font-mono text-foreground",children:b.join(", ")}),". Anthropic models cannot continue a conversation that includes non-Anthropic thinking blocks."]}),(0,d.jsxs)("div",{className:"flex flex-col gap-2 pt-2",children:[(0,d.jsx)($.$,{onClick:l,disabled:i,variant:"default",children:i?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(e.A,{className:"h-4 w-4 animate-spin mr-2"}),"Stripping..."]}):"Strip thinking blocks and switch"}),(0,d.jsx)($.$,{onClick:g,variant:"outline",disabled:i,children:"Start a new session instead"}),(0,d.jsx)($.$,{onClick:h,variant:"ghost",disabled:i,className:"text-muted-foreground",children:"Cancel"})]})]})]})})}function aU({sessionId:a,cwd:b,initialName:c,initialContext:m,historyView:n,onSendMessage:o,className:p,showPlanToggle:s=!0,isCockpitAgent:v=!1}){let{messages:w,historyLoaded:x,isResponding:y,errorActive:A,pendingPermissions:B,pendingQuestions:C,modelPicker:D,currentModel:E,currentContextSize:F,bypassActive:G,planMode:H,thinkingLevel:I,contextUsage:J,rateLimitStatus:K,apiError:L,sessionName:M,initData:N,activeModelId:O,hasQueuedMessage:P,queuedMessages:Q,queuePaused:R,backgroundTasks:S,todos:T,btw:U,promptHistory:V,hasMoreHistory:W,loadingMore:X,requestMoreHistory:Y,sendMessage:Z,interrupt:$,respondToPermission:_,respondToQuestion:aa,setModel:ab,setBypassAll:ac,setPlanMode:ad,setThinkingLevel:ae,cancelQueuedMessage:af,deleteQueuedMessage:ag,editQueuedMessage:ah,resumeQueue:ai,restoredText:aj,clearRestoredText:ak,dismissBtw:al,retry:am,currentRuntime:an,setRuntime:ao,restartSession:ap,thinkingCheck:aq,confirmThinkingStrip:ar,cancelThinkingCheck:as}=function(a,b,c){let{send:d,subscribe:e,connected:f}=(0,q.h)(),[g,h]=(0,j.useState)([]),[i,k]=(0,j.useState)(!1),[m,n]=(0,j.useState)([]),[o,p]=(0,j.useState)([]),[r,s]=(0,j.useState)(null),[t,u]=(0,j.useState)("sonnet"),[v,w]=(0,j.useState)(l.w6),[x,y]=(0,j.useState)("stream"),[z,A]=(0,j.useState)(!1),[B,C]=(0,j.useState)(!1),[D,E]=(0,j.useState)("high"),[F,G]=(0,j.useState)(!1),[H,I]=(0,j.useState)(null),[J,K]=(0,j.useState)(null),[L,M]=(0,j.useState)(null),[N,O]=(0,j.useState)([]),[P,Q]=(0,j.useState)(null),[R,S]=(0,j.useState)(null),[T,U]=(0,j.useState)(null),[V,W]=(0,j.useState)([]),[X,Y]=(0,j.useState)([]),[Z,$]=(0,j.useState)(null),[_,aa]=(0,j.useState)([]),[ab,ac]=(0,j.useState)(!1),[ad,ae]=(0,j.useState)(!1),[af,ag]=(0,j.useState)(!1),[ah,ai]=(0,j.useState)([]),[aj,ak]=(0,j.useState)(!1),[al,am]=(0,j.useState)(null),[an,ao]=(0,j.useState)(!1);(0,j.useRef)(void 0);let ap=(0,j.useRef)(!1),aq=(0,j.useRef)([]),ar=(0,j.useRef)(t),as=(0,j.useRef)(null),at=(0,j.useRef)([]),au=(0,j.useRef)(null),av=(0,j.useRef)([]),aw=(0,j.useRef)(null);null!==aw.current&&aw.current!==a&&(au.current=null,av.current=[],aw.current=null,aa([]),ac(!1),ae(!1));let ax=(0,j.useCallback)(()=>{if(ad||!ab)return;let b=aq.current[0];b&&(ae(!0),d({type:"history:request_more",sessionId:a,beforeMessageId:b.id}))},[ad,ab,a,d]);(0,j.useRef)(0),(0,j.useCallback)(async()=>{try{let c=new URLSearchParams;b&&c.set("cwd",b);let d=await fetch(`/api/sessions/${a}?${c}`);if(!d.ok)return void console.warn(`[fallback] HTTP check failed (${d.status})`);let e=await d.json();if("idle"===e.session.status){console.log("[fallback] session is idle, recovering");let a=new Set,b=e.messages.filter(b=>!a.has(b.id)&&(a.add(b.id),!0));h(b),b.length>0&&(au.current=b[b.length-1].id);for(let a=b.length-1;a>=0;a--){let c=b[a];if("assistant"===c.role&&c.model){U(c.model);break}}k(!1),ap.current=!1,as.current=null,at.current=[]}}catch{}},[a,b]);let ay=(0,j.useCallback)((e,f,g,i)=>{let j=e;if(i?.length&&(j=i.map(a=>`<file path="${a.name}">
21
+ ${a.content}
22
+ </file>`).join("\n\n")+(e?"\n\n"+e:"")),ap.current&&/^\/btw\s/i.test(e.trim())){let a=e.trim().replace(/^\/btw\s+/i,"");if(!a)return;$({question:a,answer:null,loading:!0,error:null}),fetch("/api/btw",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({question:a,context:aq.current.filter(a=>"user"===a.role||"assistant"===a.role).slice(-20).map(a=>({role:a.role,content:a.content.slice(0,2e3)})),model:ar.current,cwd:b})}).then(a=>a.json()).then(a=>{a.error?$(b=>b?{...b,loading:!1,error:a.error}:null):$(b=>b?{...b,loading:!1,answer:a.answer}:null)}).catch(a=>{$(b=>b?{...b,loading:!1,error:a.message}:null)});return}if(ap.current){av.current.push({text:e,apiText:j,images:f,documents:g,textFiles:i}),d({type:"message:send",sessionId:a,text:j,images:f?.length?f:void 0,documents:g?.length?g:void 0});return}aj&&(av.current=[],ai([]),ak(!1),ag(!1));let k={id:"user-"+Date.now(),role:"user",content:e,toolUses:[],blocks:[],timestamp:Date.now(),images:f?.length?f:void 0,documents:g?.length?g:void 0,textFiles:i?.length?i:void 0};h(a=>[...a,k]),O([]);let l=e.replace(/^\[Attached [^\]]+\]\n*/gm,"").trim();l&&!l.startsWith("/")&&aa(a=>a[0]===l?a:[l,...a.filter(a=>a!==l)]),d({type:"message:send",sessionId:a,text:j,images:f?.length?f:void 0,documents:g?.length?g:void 0,cwd:b||void 0,historyView:c||void 0})},[d,a,aj,b,c]),az=(0,j.useCallback)(()=>{d({type:"session:interrupt",sessionId:a})},[d,a]),aA=(0,j.useCallback)((b,c,e,f)=>{d({type:"permission:response",sessionId:a,requestId:b,allowed:c,permissionMode:e,suggestionIndex:f}),n(a=>a.filter(a=>a.requestId!==b))},[d,a]),aB=(0,j.useCallback)((b,c)=>{console.log("[question-debug] respondToQuestion",b),d({type:"question:response",sessionId:a,requestId:b,answers:c}),p(a=>(console.log("[question-debug] marking answered, current pending:",a.map(a=>({id:a.requestId,answered:a.answered}))),a.map(a=>a.requestId===b?{...a,answered:!0}:a)))},[d,a]),[aC,aD]=(0,j.useState)(null),aE=(0,j.useCallback)((b,c)=>{s(null),u(b),void 0!==c&&w(c),d({type:"session:set_model",sessionId:a,model:b,contextSize:c})},[d,a]),aF=(0,j.useCallback)(async(b,c)=>{let d=b.replace(/\[.*\]$/,"");if(!(d.startsWith("claude")||null!==(0,l.AX)(d)))return void aE(b,c);try{let d=await fetch(`/api/sessions/thinking?sessionId=${encodeURIComponent(a)}`),e=await d.json();if(e.hasNonAnthropicThinking){s(null),aD({pending:!0,targetModel:b,models:e.models,contextSize:c});return}}catch{}aE(b,c)},[a,aE]),aG=(0,j.useCallback)((a,b)=>{aF(a,b)},[aF]),aH=(0,j.useCallback)(async()=>{if(!aC)return;let{targetModel:b,contextSize:c}=aC;await fetch("/api/sessions/thinking",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({sessionId:a})}),aD(null),aE(b,c)},[aC,a,aE]),aI=(0,j.useCallback)(()=>{aD(null)},[]),aJ=(0,j.useCallback)((b,c)=>{"main"===b&&u(c),d({type:"session:set_model_slot",sessionId:a,slot:b,modelId:c})},[d,a]),aK=(0,j.useCallback)(b=>{A(b),d({type:"permission:set_bypass",sessionId:a,enabled:b})},[d,a]),aL=(0,j.useCallback)(b=>{C(b),d({type:"session:set_plan_mode",sessionId:a,enabled:b})},[d,a]),aM=(0,j.useCallback)(b=>{E(b),h(a=>[...a,{id:"thinking-"+Date.now(),role:"system",content:`Thinking: ${b}`,toolUses:[],blocks:[],timestamp:Date.now()}]),d({type:"session:set_thinking",sessionId:a,level:b})},[d,a]),aN=(0,j.useCallback)(()=>{d({type:"message:cancel_queued",sessionId:a})},[d,a]),aO=(0,j.useCallback)(b=>{d({type:"message:delete_queued",sessionId:a,messageId:b})},[d,a]),aP=(0,j.useCallback)(b=>{d({type:"message:edit_queued",sessionId:a,messageId:b})},[d,a]),aQ=(0,j.useCallback)(()=>{d({type:"message:resume_queue",sessionId:a})},[d,a]),aR=(0,j.useCallback)(()=>{am(null)},[]),aS=(0,j.useCallback)(()=>{if(Z?.answer){let a=Date.now();h(b=>[...b,{id:`btw-q-${a}`,role:"user",content:`[side question] ${Z.question}`,toolUses:[],blocks:[],timestamp:a},{id:`btw-a-${a}`,role:"assistant",content:Z.answer,toolUses:[],blocks:[],timestamp:a+1}])}$(null)},[Z]),aT=(0,j.useCallback)(()=>{M(null),d({type:"message:send",sessionId:a,text:"Continue from where you left off."})},[d,a]);return{messages:g,historyLoaded:F,isResponding:i,errorActive:an,pendingPermissions:m,pendingQuestions:o,modelPicker:r,currentModel:t,currentContextSize:v,bypassActive:z,planMode:B,thinkingLevel:D,contextUsage:H,rateLimitStatus:J,apiError:L,suggestions:N,sessionName:P,initData:R,activeModelId:T,hasQueuedMessage:af,queuedMessages:ah,queuePaused:aj,backgroundTasks:V,todos:X,btw:Z,promptHistory:_,hasMoreHistory:ab,loadingMore:ad,requestMoreHistory:ax,sendMessage:ay,interrupt:az,respondToPermission:aA,respondToQuestion:aB,setModel:aG,setModelSlot:aJ,setBypassAll:aK,setPlanMode:aL,setThinkingLevel:aM,cancelQueuedMessage:aN,deleteQueuedMessage:aO,editQueuedMessage:aP,resumeQueue:aQ,restoredText:al,clearRestoredText:aR,dismissBtw:aS,retry:aT,currentRuntime:x,setRuntime:(0,j.useCallback)(b=>{y(b),d({type:"session:set_runtime",sessionId:a,runtime:b})},[d,a]),restartSession:(0,j.useCallback)(()=>{d({type:"session:restart",sessionId:a})},[d,a]),thinkingCheck:aC,confirmThinkingStrip:aH,cancelThinkingCheck:aI}}(a,b,n),{settings:at}=(0,r.t)(),au=(0,i.useRouter)(),{setHeader:av,setBackgroundTasks:aw,setTodos:ax,setInitData:ay,setRuntime:aC}=(0,u.E2)(),aD=(0,j.useRef)(null),aF=(0,j.useRef)(!0),[aG,aH]=(0,j.useState)(!1),aI=(0,j.useRef)(0),[aJ,aL]=(0,j.useState)(50),aM=(0,j.useRef)(0),aP=(0,j.useRef)(0),{selectedIds:aR,selectionMode:aV,enterSelection:aW,toggleSelect:aX,clearSelection:aY,copySelected:aZ}=function(){let[a,b]=(0,j.useState)(new Set),c=a.size>0,d=(0,j.useCallback)(a=>{b(new Set([a]))},[]),e=(0,j.useCallback)(a=>{b(b=>{let c=new Set(b);return c.has(a)?c.delete(a):c.add(a),c})},[]),f=(0,j.useCallback)(()=>{b(new Set)},[]),g=(0,j.useCallback)(async c=>{let d=c.filter(b=>a.has(b.id)&&"system"!==b.role).map(k).filter(Boolean).join("\n\n---\n\n");if(d)if(navigator.clipboard?.writeText)await navigator.clipboard.writeText(d);else{let a=document.createElement("textarea");a.value=d,a.style.position="fixed",a.style.opacity="0",document.body.appendChild(a),a.select(),document.execCommand("copy"),document.body.removeChild(a)}b(new Set)},[a]);return{selectedIds:a,selectionMode:c,enterSelection:d,toggleSelect:e,clearSelection:f,copySelected:g}}(),a$=(0,j.useRef)(new Set),[a_,a0]=(0,j.useState)(!1),[a1,a2]=(0,j.useState)([]),a3=(0,j.useMemo)(()=>{let a=new Set;return w.filter(b=>!a.has(b.id)&&(a.add(b.id),!0))},[w]),a4=Math.max(0,a3.length-aJ),a5=(0,j.useMemo)(()=>a3.slice(a4),[a3,a4]),a6=a4>0,{send:a7}=(0,q.h)();(0,j.useCallback)(b=>{a7({type:"message:send",sessionId:a,text:`/rename ${b}`})},[a7,a]);let a8=(0,j.useCallback)(()=>{if(Date.now()<aI.current)return;let a=aD.current;if(!a)return;let b=a.scrollHeight-a.scrollTop-a.clientHeight;aF.current=b<80,aH(b>300),a.scrollTop<800&&Date.now()>aM.current&&(aM.current=Date.now()+100,a6?(aP.current=a.scrollHeight,aL(a=>a+30)):W&&!X&&(aP.current=a.scrollHeight,Y()))},[a6,W,X,Y]),a9=(0,j.useCallback)(()=>{let a=aD.current;a&&(a.scrollTop=a.scrollHeight),aI.current=Date.now()+150,aH(!1)},[]),ba=(0,j.useRef)(!1),bb=(0,j.useCallback)((a,b,c,d)=>{aF.current=!0,m&&!ba.current&&0===w.length?(ba.current=!0,Z(`${a}
23
+
24
+ ---
25
+ ${m}`,b,c,d)):Z(a,b,c,d)},[Z,m,w.length]),bc=(0,j.useCallback)(()=>{Z("/compact")},[Z]),bd=(0,j.useCallback)(()=>{aZ(a3)},[aZ,a3]),be=(0,j.useCallback)(async()=>{if(!b)return;as();let a=aq?.targetModel;try{let c=await fetch("/api/sessions",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:b,runtime:an,model:a})});if(c.ok){let a=await c.json();au.push(`/sessions/${a.sessionId}?cwd=${encodeURIComponent(b)}`)}}catch{}},[b,an,aq?.targetModel,as,au]);return(0,d.jsxs)("div",{className:(0,t.cn)("flex flex-col flex-1 min-h-0",p),children:[(0,d.jsx)("div",{ref:aD,"data-chat-scroll":!0,tabIndex:a_?void 0:-1,className:"flex-1 min-h-0 overflow-y-auto p-4 outline-none",onScroll:a8,children:(0,d.jsxs)("div",{className:"mx-auto max-w-3xl lg:max-w-4xl xl:max-w-5xl 2xl:max-w-6xl space-y-4",children:[0===a3.length&&(0,d.jsx)("div",{className:"flex flex-col items-center pt-20 text-sm text-muted-foreground",children:x?(0,d.jsx)("p",{children:"Send a message to start the conversation."}):(0,d.jsx)(e.A,{className:"h-5 w-5 animate-spin"})}),(a6||X)&&(0,d.jsx)("div",{className:"flex justify-center py-2",children:(0,d.jsx)(e.A,{className:"h-4 w-4 animate-spin text-muted-foreground"})}),a5.map((a,b)=>{let c=b>0&&"__compacted__"===a5[b-1].content;if("assistant"===a.role){let{before:b,questionBlock:e,after:f}=function(a){let b=a.findIndex(a=>"tool_use"===a.type&&"AskUserQuestion"===a.toolUse.name);if(b<0)return{before:a,questionBlock:null,after:[]};let c=a[b];return{before:a.slice(0,b),questionBlock:c,after:a.slice(b+1).filter(a=>"tool_use"!==a.type||"AskUserQuestion"!==a.toolUse.name)}}(a.blocks||[]);if(e){let g=C.find(a=>!a.answered),h=!!e.toolUse.output;return console.log(`[question-debug] Place1 render: msgId=${a.id.slice(0,8)}, hasOutput=${h}, pending=${!!g}, pendingCount=${C.length}`),(0,d.jsxs)("div",{"data-message-id":a.id,className:"space-y-4",children:[b.length>0&&(0,d.jsx)(aA.s,{message:{...a,blocks:b,content:""},collapsedByDefault:c,expandedToolIds:a$,selectionMode:aV,selected:aR.has(a.id),onEnterSelection:aW,onToggleSelect:aX}),(0,d.jsx)("div",{className:"flex w-full justify-start",children:(0,d.jsx)("div",{className:"max-w-[85%]",children:h?(0,d.jsx)(aO,{tool:e.toolUse}):g?(0,d.jsx)(aQ,{questions:aN(g.questions),onSubmit:aa,requestId:g.requestId}):null})}),f.length>0&&(0,d.jsx)(aA.s,{message:{...a,blocks:f,content:""},collapsedByDefault:!1,expandedToolIds:a$,selectionMode:aV,selected:aR.has(a.id),onEnterSelection:aW,onToggleSelect:aX})]},a.id)}}return(0,d.jsx)("div",{"data-message-id":a.id,className:"space-y-4",children:(0,d.jsx)(aA.s,{message:a,collapsedByDefault:c,expandedToolIds:a$,selectionMode:aV,selected:aR.has(a.id),onEnterSelection:aW,onToggleSelect:aX})},a.id)}),(y||A)&&0===B.length&&!C.some(a=>!a.answered)&&(0,d.jsxs)("div",{className:"flex items-center gap-2 text-muted-foreground",children:[(0,d.jsx)(e.A,{className:"h-4 w-4 animate-spin"}),A&&!y&&(0,d.jsx)("span",{className:"text-xs text-red-500",children:"API error, retrying..."}),K&&(0,d.jsx)("span",{className:"text-xs",children:"Rate limited, retrying..."})]}),L&&!y&&!A&&(0,d.jsx)("div",{className:"flex w-full justify-start",children:(0,d.jsxs)("div",{className:"max-w-[85%] rounded-lg border border-red-500/30 bg-red-500/5 px-4 py-3",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2 text-red-500 mb-1",children:[(0,d.jsx)(f.A,{className:"h-4 w-4 shrink-0"}),(0,d.jsx)("span",{className:"text-sm font-medium",children:"API Error"})]}),(0,d.jsx)("p",{className:"text-xs text-muted-foreground mb-3",children:L}),(0,d.jsxs)("button",{onClick:am,className:"flex items-center gap-1.5 rounded-md border px-3 py-1.5 text-xs hover:bg-muted transition-colors",children:[(0,d.jsx)(g.A,{className:"h-3 w-3"}),"Retry"]})]})}),B.map(a=>"ExitPlanMode"===a.toolName?(0,d.jsx)(aK,{permission:a,bypassActive:G,onRespond:_,onSendMessage:Z,onSetBypass:ac,onSetPlanMode:ad},a.requestId):a.configProposal?(0,d.jsx)(z,{permission:a,onRespond:_},a.requestId):(0,d.jsx)(aE,{permission:a,onRespond:_},a.requestId)),C.some(a=>!a.answered)&&!a5.some(a=>"assistant"===a.role&&(a.blocks||[]).some(a=>"tool_use"===a.type&&"AskUserQuestion"===a.toolUse.name&&!a.toolUse.output))&&C.filter(a=>!a.answered).map(a=>(0,d.jsx)("div",{className:"flex w-full justify-start",children:(0,d.jsx)("div",{className:"max-w-[85%]",children:(0,d.jsx)(aQ,{questions:aN(a.questions),onSubmit:aa,requestId:a.requestId})})},a.requestId)),null!==D&&(0,d.jsx)(aB,{currentModel:D,currentContextSize:F,activeModelId:O,onSelect:(a,b)=>ab(a,b),providers:a1}),(0,d.jsx)(aT,{open:null!==aq,models:aq?.models??[],onStrip:ar,onNewSession:be,onCancel:as}),(0,d.jsx)("div",{})]})}),aV&&(0,d.jsx)(aS,{count:aR.size,onCopy:bd,onCancel:aY}),aG&&(0,d.jsx)("div",{className:"relative z-10 flex justify-center pointer-events-none",style:{marginTop:-52},children:(0,d.jsx)("button",{onClick:()=>{a9(),aF.current=!0,aH(!1)},className:"pointer-events-auto rounded-full border bg-background/90 backdrop-blur p-3 shadow-md text-muted-foreground hover:text-foreground transition-colors",children:(0,d.jsx)(h.A,{className:"h-5 w-5"})})}),(0,d.jsx)("div",{className:"shrink-0",children:(0,d.jsx)(az,{sessionId:a,promptHistory:V,onSend:bb,onInterrupt:$,isResponding:y||A,bypassActive:G,onSetBypass:ac,planMode:H,onSetPlanMode:ad,showPlanToggle:s,isCockpitAgent:v,thinkingLevel:I,onSetThinking:ae,currentModel:E,currentContextSize:F,onSetModel:ab,contextUsage:J,dismissKeyboard:at.dismissKeyboardOnSend,cwd:b,onCompact:bc,initData:N,hasQueuedMessage:P,queuedMessages:Q,queuePaused:R,onCancelQueued:af,onDeleteQueued:ag,onEditQueued:ah,onResumeQueue:ai,restoredText:aj,onClearRestoredText:ak,btw:U,onDismissBtw:al,currentRuntime:an,onSetRuntime:ao,onRestart:ap,providers:a1})})]})}},76537:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>g,metadata:()=>e,viewport:()=>f});var d=c(5735);c(61135);let e={title:"Cockpit",description:"Claude Code Web UI",manifest:"/manifest.json",icons:{icon:[{url:"/favicon.ico",sizes:"any"},{url:"/icon-192.png",sizes:"192x192",type:"image/png"}],apple:"/icon-192.png"},appleWebApp:{capable:!0,statusBarStyle:"default",title:"Cockpit"}},f={width:"device-width",initialScale:1,maximumScale:1,userScalable:!1,interactiveWidget:"resizes-content",themeColor:[{media:"(prefers-color-scheme: light)",color:"#ffffff"},{media:"(prefers-color-scheme: dark)",color:"#1a1a1a"}]};function g({children:a}){return(0,d.jsx)("html",{lang:"en",className:"h-full overflow-hidden",suppressHydrationWarning:!0,children:(0,d.jsxs)("body",{className:"h-full overflow-hidden bg-background font-sans antialiased",children:[a,(0,d.jsx)("script",{dangerouslySetInnerHTML:{__html:'(function(){try{var t=localStorage.getItem("cockpit-theme");var d=t==="dark"||(t!=="light"&&matchMedia("(prefers-color-scheme:dark)").matches);if(d)document.documentElement.classList.add("dark")}catch(e){}})();if("serviceWorker"in navigator){window.addEventListener("load",function(){navigator.serviceWorker.register("/sw.js")})}'}})]})})}},77424:(a,b,c)=>{"use strict";c.d(b,{Jm:()=>f,Os:()=>e,wA:()=>g});var d=c(67484);function e(){let[a,b]=(0,d.useState)([]),[c,e]=(0,d.useState)(!0),f=(0,d.useCallback)(()=>{e(!0),fetch("/api/jobs").then(a=>a.json()).then(a=>b(a.jobs)).catch(()=>b([])).finally(()=>e(!1))},[]),g=(0,d.useCallback)(async a=>{try{if((await fetch(`/api/jobs/${a}`,{method:"DELETE"})).ok)return f(),!0;return!1}catch{return!1}},[f]),h=(0,d.useCallback)(async a=>{try{return(await fetch(`/api/jobs/${a}/trigger`,{method:"POST"})).ok}catch{return!1}},[]),i=(0,d.useCallback)(async a=>{try{if((await fetch(`/api/jobs/${a}/stop`,{method:"POST"})).ok)return f(),!0;return!1}catch{return!1}},[f]);return{jobs:a,loading:c,refresh:f,deleteJob:g,triggerJob:h,stopJob:i}}function f(a){let[b,c]=(0,d.useState)([]),[e,f]=(0,d.useState)(!0),[g,h]=(0,d.useState)(!1),[i,j]=(0,d.useState)(!1),k=(0,d.useCallback)(()=>{if(!a){c([]),f(!1),j(!1);return}f(!0),fetch(`/api/jobs/${a}/runs?limit=25`).then(a=>a.json()).then(a=>{c(a.runs),j(a.hasMore??!1)}).catch(()=>c([])).finally(()=>f(!1))},[a]),l=(0,d.useCallback)(()=>{a&&!g&&i&&(h(!0),fetch(`/api/jobs/${a}/runs?limit=25&offset=${b.length}`).then(a=>a.json()).then(a=>{c(b=>[...b,...a.runs]),j(a.hasMore??!1)}).catch(()=>{}).finally(()=>h(!1)))},[a,g,i,b.length]);return{runs:b,loading:e,loadingMore:g,hasMore:i,refresh:k,loadMore:l}}function g(){let[a,b]=(0,d.useState)(0);return(0,d.useRef)(void 0),{count:a}}},77718:(a,b,c)=>{Promise.resolve().then(c.bind(c,67522))},78335:()=>{},80435:(a,b,c)=>{"use strict";c.d(b,{Q:()=>n});var d=c(48249),e=c(11527),f=c(45535),g=c(69357),h=c(19099),i=c(67484),j=c(25297),k=c(63647),l=c(67257),m=c(20390);function n(a){let{timestamp:b,onClose:c}=a,n=(0,l.E2)(),o=(0,h.useRouter)(),p=a.sessionId??n.sessionId,q=a.cwd??n.cwd,[r,s]=(0,i.useState)([]),[t,u]=(0,i.useState)(""),[v,w]=(0,i.useState)(!0),[x,y]=(0,i.useState)(null),z=(0,i.useRef)(null),A=(0,i.useRef)(new Set),B=(0,i.useCallback)(a=>{a.target===a.currentTarget&&c()},[c]);return(0,d.jsx)("div",{className:"fixed inset-0 z-50 bg-black/50 flex items-center justify-center p-4",onClick:B,children:(0,d.jsxs)(k.Zp,{className:"w-full max-w-3xl flex flex-col",style:{maxHeight:"calc(100dvh - 2rem)"},children:[(0,d.jsxs)("div",{className:"flex items-center justify-between px-4 py-2 border-b shrink-0",children:[(0,d.jsx)("span",{className:"text-sm font-medium text-muted-foreground",children:"Message context"}),(0,d.jsxs)("div",{className:"flex items-center gap-1",children:[a.sessionId&&(0,d.jsxs)(j.$,{variant:"ghost",size:"sm",className:"h-6 gap-1 px-2 text-xs",title:"Open session",onClick:()=>{o.push(`/sessions/${p}?cwd=${encodeURIComponent(q??"")}&historyView=true`),c()},children:[(0,d.jsx)(e.A,{className:"h-3 w-3"}),"Open session"]}),(0,d.jsx)(j.$,{variant:"ghost",size:"icon",className:"h-6 w-6",onClick:c,children:(0,d.jsx)(f.A,{className:"h-4 w-4"})})]})]}),(0,d.jsxs)("div",{className:"flex-1 min-h-0 overflow-y-auto p-4 space-y-4",children:[v&&(0,d.jsx)("div",{className:"flex justify-center py-12",children:(0,d.jsx)(g.A,{className:"h-5 w-5 animate-spin text-muted-foreground"})}),x&&(0,d.jsx)("div",{className:"text-center text-sm text-red-500 py-12",children:x}),!v&&r.map(a=>(0,d.jsx)("div",{ref:a.id===t?z:void 0,className:a.id===t?"ring-2 ring-primary/50 rounded-lg":void 0,children:(0,d.jsx)(m.s,{message:a,expandedToolIds:A})},a.id))]})]})})}},86929:(a,b,c)=>{"use strict";c.d(b,{N:()=>m});var d=c(48249),e=c(91995),f=c(69357),g=c(30566),h=c(2409),i=c(8251),j=c(67484),k=c(25297),l=c(94856);function m({onSelect:a,onCancel:b,startPath:c}){let[n,o]=(0,j.useState)(c??""),[p,q]=(0,j.useState)([]),[r,s]=(0,j.useState)(!0),[t,u]=(0,j.useState)(""),v=(0,j.useCallback)(async a=>{s(!0),u("");let b=new URLSearchParams({includeFiles:"true"});a&&b.set("path",a);try{let a=await fetch(`/api/filesystem/browse?${b}`);if(!a.ok){let b=await a.json().catch(()=>({error:"Failed to browse"}));u(b.error||"Failed to browse"),q([]);return}let c=await a.json();o(c.path),q(c.entries)}catch{u("Failed to connect"),q([])}finally{s(!1)}},[]),w=/^[a-zA-Z]:[/\\]/.test(n),x=w?n.slice(0,3):"/",y=w?n.slice(0,3):"/",z=(0,l.cs)(n),A=w?z.slice(1):z;return(0,d.jsxs)("div",{className:"space-y-3",children:[(0,d.jsxs)("div",{className:"flex items-center gap-1 text-xs font-mono overflow-x-auto",children:[(0,d.jsx)("button",{type:"button",onClick:()=>v(y),className:"shrink-0 text-muted-foreground hover:text-foreground",children:x}),A.map((a,b)=>{let c=y+A.slice(0,b+1).join("/"),f=b===A.length-1;return(0,d.jsxs)("span",{className:"flex items-center gap-1",children:[(0,d.jsx)(e.A,{className:"h-3 w-3 text-muted-foreground shrink-0"}),f?(0,d.jsx)("span",{className:"text-foreground font-medium",children:a}):(0,d.jsx)("button",{type:"button",onClick:()=>v(c),className:"text-muted-foreground hover:text-foreground",children:a})]},c)})]}),(0,d.jsxs)("div",{className:"border rounded-md max-h-56 overflow-y-auto",children:[r&&(0,d.jsx)("div",{className:"flex items-center justify-center py-8",children:(0,d.jsx)(f.A,{className:"h-4 w-4 animate-spin text-muted-foreground"})}),t&&(0,d.jsx)("div",{className:"px-3 py-4 text-sm text-destructive",children:t}),!r&&!t&&n!==y&&(0,d.jsxs)("button",{type:"button",onClick:()=>{v(n.replace(/\/[^/]+\/?$/,"")||y)},className:"flex w-full items-center gap-2 px-3 py-1.5 text-sm hover:bg-muted/50 text-left text-muted-foreground",children:[(0,d.jsx)(g.A,{className:"h-4 w-4 shrink-0"}),(0,d.jsx)("span",{children:".."})]}),!r&&!t&&0===p.length&&(0,d.jsx)("div",{className:"px-3 py-4 text-sm text-muted-foreground",children:"Empty directory"}),!r&&!t&&p.map(b=>"directory"===b.type?(0,d.jsxs)("button",{type:"button",onClick:()=>v(b.path),className:"flex w-full items-center gap-2 px-3 py-1.5 text-sm hover:bg-muted/50 text-left",children:[(0,d.jsx)(h.A,{className:"h-4 w-4 shrink-0 text-muted-foreground"}),(0,d.jsx)("span",{className:"truncate",children:b.name})]},b.path):(0,d.jsxs)("button",{type:"button",onClick:()=>a(b.path),className:"flex w-full items-center gap-2 px-3 py-1.5 text-sm hover:bg-muted/50 text-left",children:[(0,d.jsx)(i.A,{className:"h-4 w-4 shrink-0 text-muted-foreground"}),(0,d.jsx)("span",{className:"truncate",children:b.name})]},b.path))]}),(0,d.jsx)("div",{className:"flex justify-end",children:(0,d.jsx)(k.$,{type:"button",variant:"outline",size:"sm",onClick:b,children:"Cancel"})})]})}},88877:(a,b,c)=>{"use strict";c.d(b,{p:()=>g});var d=c(48249),e=c(67484),f=c(14490);let g=e.forwardRef(({className:a,type:b,...c},e)=>(0,d.jsx)("input",{type:b,className:(0,f.cn)("flex h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50",a),ref:e,...c}));g.displayName="Input"},93571:(a,b,c)=>{"use strict";c.d(b,{f:()=>g,h:()=>h});var d=c(48249),e=c(67484);let f=(0,e.createContext)(null);function g({children:a}){let[b,c]=(0,e.useState)(!1),h=(0,e.useRef)(null),i=(0,e.useRef)(new Set),j=(0,e.useRef)(void 0),k=(0,e.useRef)(500),l=(0,e.useRef)([]),m=(0,e.useRef)(!1),n=(0,e.useRef)(!0),o=(0,e.useRef)(void 0),p=(0,e.useRef)(null),q=(0,e.useRef)(void 0),r=(0,e.useRef)(!1);(0,e.useRef)(void 0);let s=(0,e.useCallback)(()=>{if(!n.current)return;clearTimeout(j.current);let a="visible"===document.visibilityState?5e3:3e4,b=Math.min(k.current,a);console.log(`[ws] reconnect scheduled in ${b}ms`),j.current=setTimeout(()=>{k.current=Math.min(2*k.current,3e4),o.current?.()},b)},[]),t=(0,e.useCallback)(async()=>{if(m.current||h.current)return void console.log(`[ws] connect skipped (connecting=${m.current}, hasWs=${!!h.current})`);m.current=!0;let a=performance.now();console.log("[ws] connecting...");let b=p.current;if(b)console.log("[ws] using cached token");else try{let c=await fetch("/api/auth/ws-token");if(!c.ok){console.warn(`[ws] ws-token fetch failed (${c.status})`),m.current=!1,s();return}b=(await c.json()).token,console.log(`[ws] token fetched in ${(performance.now()-a).toFixed(0)}ms`)}catch(a){console.warn("[ws] ws-token fetch error:",a),m.current=!1,s();return}if(h.current||!n.current){console.log(`[ws] connect aborted (hasWs=${!!h.current}, mounted=${n.current})`),m.current=!1;return}let d="https:"===window.location.protocol?"wss:":"ws:",e=new WebSocket(`${d}//${window.location.host}/ws?token=${b}`);h.current=e,m.current=!1,e.onopen=()=>{for(let d of(console.log(`[ws] connected in ${(performance.now()-a).toFixed(0)}ms`),c(!0),p.current=b,k.current=500,l.current))e.send(JSON.stringify(d));l.current=[]},e.onmessage=a=>{let b=JSON.parse(a.data);for(let a of("pong"===b.type&&(clearTimeout(q.current),r.current=!1),"message:ack"===b.type&&u.current.length>0&&(u.current=[]),i.current))a(b)},e.onclose=a=>{console.log(`[ws] closed (code=${a.code}), reconnecting immediately`),c(!1),h.current===e&&(h.current=null),u.current.length>0&&(l.current.push(...u.current),u.current=[]),(1008===a.code||4401===a.code)&&(p.current=null),k.current=500,o.current?.()},e.onerror=()=>{e.close()}},[s]);o.current=t,(0,e.useCallback)(()=>{let a=h.current;a&&(a.onclose=null,a.onerror=null,a.close(),h.current=null),c(!1),k.current=500,o.current?.()},[]);let u=(0,e.useRef)([]),v=(0,e.useCallback)(a=>{h.current?.readyState===WebSocket.OPEN?("message:send"===a.type&&u.current.push(a),h.current.send(JSON.stringify(a))):l.current.push(a)},[]),w=(0,e.useCallback)(a=>(i.current.add(a),()=>{i.current.delete(a)}),[]);return(0,d.jsx)(f.Provider,{value:{connected:b,send:v,subscribe:w},children:a})}function h(){let a=(0,e.useContext)(f);if(!a)throw Error("useWebSocket must be used within WebSocketProvider");return a}},94856:(a,b,c)=>{"use strict";function d(a){let b=Math.max(a.lastIndexOf("/"),a.lastIndexOf("\\"));return b<0?a:a.slice(b+1)}function e(a){let b=Math.max(a.lastIndexOf("/"),a.lastIndexOf("\\"));return b<0?"":a.slice(0,b)}function f(a,b=3){let c=a.split(/[/\\]/);return c.length<=b?a:".../"+c.slice(-2).join("/")}function g(a){return a.split(/[/\\]/).filter(Boolean)}c.d(b,{_1:()=>f,cs:()=>g,uk:()=>d,ww:()=>e})},96487:()=>{}};