@alexjbarnes/cockpit 0.1.1 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (707) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/app-path-routes-manifest.json +28 -3
  3. package/.next/build-manifest.json +3 -3
  4. package/.next/prerender-manifest.json +147 -3
  5. package/.next/react-loadable-manifest.json +19 -3
  6. package/.next/required-server-files.js +3 -0
  7. package/.next/required-server-files.json +3 -0
  8. package/.next/routes-manifest.json +162 -0
  9. package/.next/server/app/(app)/agents/[name]/page.js +3 -3
  10. package/.next/server/app/(app)/agents/[name]/page.js.nft.json +1 -1
  11. package/.next/server/app/(app)/agents/[name]/page_client-reference-manifest.js +1 -1
  12. package/.next/server/app/(app)/agents/page.js +2 -2
  13. package/.next/server/app/(app)/agents/page.js.nft.json +1 -1
  14. package/.next/server/app/(app)/agents/page_client-reference-manifest.js +1 -1
  15. package/.next/server/app/(app)/changes/page.js +2 -2
  16. package/.next/server/app/(app)/changes/page.js.nft.json +1 -1
  17. package/.next/server/app/(app)/changes/page_client-reference-manifest.js +1 -1
  18. package/.next/server/app/(app)/claude-md/edit/page.js +2 -2
  19. package/.next/server/app/(app)/claude-md/edit/page.js.nft.json +1 -1
  20. package/.next/server/app/(app)/claude-md/edit/page_client-reference-manifest.js +1 -1
  21. package/.next/server/app/(app)/claude-md/page.js +2 -2
  22. package/.next/server/app/(app)/claude-md/page.js.nft.json +1 -1
  23. package/.next/server/app/(app)/claude-md/page_client-reference-manifest.js +1 -1
  24. package/.next/server/app/(app)/commands/[name]/page.js +3 -3
  25. package/.next/server/app/(app)/commands/[name]/page.js.nft.json +1 -1
  26. package/.next/server/app/(app)/commands/[name]/page_client-reference-manifest.js +1 -1
  27. package/.next/server/app/(app)/commands/page.js +2 -2
  28. package/.next/server/app/(app)/commands/page.js.nft.json +1 -1
  29. package/.next/server/app/(app)/commands/page_client-reference-manifest.js +1 -1
  30. package/.next/server/app/(app)/files/page.js +2 -2
  31. package/.next/server/app/(app)/files/page.js.nft.json +1 -1
  32. package/.next/server/app/(app)/files/page_client-reference-manifest.js +1 -1
  33. package/.next/server/app/(app)/hooks/[event]/page.js +3 -3
  34. package/.next/server/app/(app)/hooks/[event]/page.js.nft.json +1 -1
  35. package/.next/server/app/(app)/hooks/[event]/page_client-reference-manifest.js +1 -1
  36. package/.next/server/app/(app)/hooks/page.js +2 -2
  37. package/.next/server/app/(app)/hooks/page.js.nft.json +1 -1
  38. package/.next/server/app/(app)/hooks/page_client-reference-manifest.js +1 -1
  39. package/.next/server/app/(app)/inbox/[id]/page.js +2 -0
  40. package/.next/server/app/(app)/inbox/[id]/page.js.nft.json +1 -0
  41. package/.next/server/app/(app)/inbox/[id]/page_client-reference-manifest.js +1 -0
  42. package/.next/server/app/(app)/inbox/page.js +2 -0
  43. package/.next/server/app/(app)/inbox/page.js.nft.json +1 -0
  44. package/.next/server/app/(app)/inbox/page_client-reference-manifest.js +1 -0
  45. package/.next/server/app/(app)/jobs/[id]/edit/page.js +2 -2
  46. package/.next/server/app/(app)/jobs/[id]/edit/page.js.nft.json +1 -1
  47. package/.next/server/app/(app)/jobs/[id]/edit/page_client-reference-manifest.js +1 -1
  48. package/.next/server/app/(app)/jobs/[id]/page.js +2 -2
  49. package/.next/server/app/(app)/jobs/[id]/page.js.nft.json +1 -1
  50. package/.next/server/app/(app)/jobs/[id]/page_client-reference-manifest.js +1 -1
  51. package/.next/server/app/(app)/jobs/[id]/runs/[runId]/page.js +2 -2
  52. package/.next/server/app/(app)/jobs/[id]/runs/[runId]/page.js.nft.json +1 -1
  53. package/.next/server/app/(app)/jobs/[id]/runs/[runId]/page_client-reference-manifest.js +1 -1
  54. package/.next/server/app/(app)/jobs/page.js +2 -2
  55. package/.next/server/app/(app)/jobs/page.js.nft.json +1 -1
  56. package/.next/server/app/(app)/jobs/page_client-reference-manifest.js +1 -1
  57. package/.next/server/app/(app)/mcp-servers/[name]/page.js +2 -2
  58. package/.next/server/app/(app)/mcp-servers/[name]/page.js.nft.json +1 -1
  59. package/.next/server/app/(app)/mcp-servers/[name]/page_client-reference-manifest.js +1 -1
  60. package/.next/server/app/(app)/mcp-servers/page.js +2 -2
  61. package/.next/server/app/(app)/mcp-servers/page.js.nft.json +1 -1
  62. package/.next/server/app/(app)/mcp-servers/page_client-reference-manifest.js +1 -1
  63. package/.next/server/app/(app)/page.js +2 -2
  64. package/.next/server/app/(app)/page.js.nft.json +1 -1
  65. package/.next/server/app/(app)/page_client-reference-manifest.js +1 -1
  66. package/.next/server/app/(app)/reviews/[owner]/[repo]/[number]/page.js +6 -6
  67. package/.next/server/app/(app)/reviews/[owner]/[repo]/[number]/page.js.nft.json +1 -1
  68. package/.next/server/app/(app)/reviews/[owner]/[repo]/[number]/page_client-reference-manifest.js +1 -1
  69. package/.next/server/app/(app)/reviews/[owner]/[repo]/page.js +2 -2
  70. package/.next/server/app/(app)/reviews/[owner]/[repo]/page.js.nft.json +1 -1
  71. package/.next/server/app/(app)/reviews/[owner]/[repo]/page_client-reference-manifest.js +1 -1
  72. package/.next/server/app/(app)/reviews/page.js +2 -2
  73. package/.next/server/app/(app)/reviews/page.js.nft.json +1 -1
  74. package/.next/server/app/(app)/reviews/page_client-reference-manifest.js +1 -1
  75. package/.next/server/app/(app)/sessions/[id]/page.js +2 -2
  76. package/.next/server/app/(app)/sessions/[id]/page.js.nft.json +1 -1
  77. package/.next/server/app/(app)/sessions/[id]/page_client-reference-manifest.js +1 -1
  78. package/.next/server/app/(app)/settings/appearance/page.js +2 -0
  79. package/.next/server/app/(app)/settings/appearance/page.js.nft.json +1 -0
  80. package/.next/server/app/(app)/settings/appearance/page_client-reference-manifest.js +1 -0
  81. package/.next/server/app/(app)/settings/notifications/page.js +2 -0
  82. package/.next/server/app/(app)/settings/notifications/page.js.nft.json +1 -0
  83. package/.next/server/app/(app)/settings/notifications/page_client-reference-manifest.js +1 -0
  84. package/.next/server/app/(app)/settings/page.js +2 -2
  85. package/.next/server/app/(app)/settings/page.js.nft.json +1 -1
  86. package/.next/server/app/(app)/settings/page_client-reference-manifest.js +1 -1
  87. package/.next/server/app/(app)/settings/providers/[id]/page.js +2 -0
  88. package/.next/server/app/(app)/settings/providers/[id]/page.js.nft.json +1 -0
  89. package/.next/server/app/(app)/settings/providers/[id]/page_client-reference-manifest.js +1 -0
  90. package/.next/server/app/(app)/settings/providers/new/page.js +2 -0
  91. package/.next/server/app/(app)/settings/providers/new/page.js.nft.json +1 -0
  92. package/.next/server/app/(app)/settings/providers/new/page_client-reference-manifest.js +1 -0
  93. package/.next/server/app/(app)/settings/providers/page.js +2 -0
  94. package/.next/server/app/(app)/settings/providers/page.js.nft.json +1 -0
  95. package/.next/server/app/(app)/settings/providers/page_client-reference-manifest.js +1 -0
  96. package/.next/server/app/(app)/settings/session/page.js +2 -0
  97. package/.next/server/app/(app)/settings/session/page.js.nft.json +1 -0
  98. package/.next/server/app/(app)/settings/session/page_client-reference-manifest.js +1 -0
  99. package/.next/server/app/(app)/skills/[name]/page.js +3 -3
  100. package/.next/server/app/(app)/skills/[name]/page.js.nft.json +1 -1
  101. package/.next/server/app/(app)/skills/[name]/page_client-reference-manifest.js +1 -1
  102. package/.next/server/app/(app)/skills/page.js +2 -2
  103. package/.next/server/app/(app)/skills/page.js.nft.json +1 -1
  104. package/.next/server/app/(app)/skills/page_client-reference-manifest.js +1 -1
  105. package/.next/server/app/_global-error/page.js +3 -3
  106. package/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  107. package/.next/server/app/_global-error.html +1 -1
  108. package/.next/server/app/_global-error.rsc +1 -1
  109. package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  110. package/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  111. package/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  112. package/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  113. package/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  114. package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  115. package/.next/server/app/_not-found/page.js +2 -2
  116. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  117. package/.next/server/app/_not-found.html +1 -1
  118. package/.next/server/app/_not-found.rsc +2 -2
  119. package/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
  120. package/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  121. package/.next/server/app/_not-found.segments/_index.segment.rsc +2 -2
  122. package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  123. package/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  124. package/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  125. package/.next/server/app/agents.html +1 -1
  126. package/.next/server/app/agents.rsc +4 -4
  127. package/.next/server/app/agents.segments/!KGFwcCk/agents/__PAGE__.segment.rsc +2 -2
  128. package/.next/server/app/agents.segments/!KGFwcCk/agents.segment.rsc +1 -1
  129. package/.next/server/app/agents.segments/!KGFwcCk.segment.rsc +2 -2
  130. package/.next/server/app/agents.segments/_full.segment.rsc +4 -4
  131. package/.next/server/app/agents.segments/_head.segment.rsc +1 -1
  132. package/.next/server/app/agents.segments/_index.segment.rsc +2 -2
  133. package/.next/server/app/agents.segments/_tree.segment.rsc +2 -2
  134. package/.next/server/app/api/agents/[name]/route.js +1 -1
  135. package/.next/server/app/api/agents/route.js +1 -1
  136. package/.next/server/app/api/auth/check/route.js +1 -1
  137. package/.next/server/app/api/auth/login/route.js +1 -1
  138. package/.next/server/app/api/auth/setup/route.js +1 -1
  139. package/.next/server/app/api/auth/ws-token/route.js +1 -1
  140. package/.next/server/app/api/btw/route.js +2 -2
  141. package/.next/server/app/api/claude-md/route.js +1 -1
  142. package/.next/server/app/api/commands/[name]/route.js +1 -1
  143. package/.next/server/app/api/commands/route.js +1 -1
  144. package/.next/server/app/api/defaults/route.js +1 -1
  145. package/.next/server/app/api/filesystem/browse/route.js +1 -1
  146. package/.next/server/app/api/filesystem/files/route.js +1 -1
  147. package/.next/server/app/api/filesystem/mkdir/route.js +1 -1
  148. package/.next/server/app/api/filesystem/read/route.js +1 -1
  149. package/.next/server/app/api/git/clone/route.js +1 -1
  150. package/.next/server/app/api/git/commit/route.js +1 -1
  151. package/.next/server/app/api/git/diff/route.js +1 -1
  152. package/.next/server/app/api/git/discard/route.js +1 -1
  153. package/.next/server/app/api/git/generate-message/route.js +2 -2
  154. package/.next/server/app/api/git/push/route.js +1 -1
  155. package/.next/server/app/api/git/status/route.js +1 -1
  156. package/.next/server/app/api/github/file-content/route.js +1 -1
  157. package/.next/server/app/api/github/orgs/route.js +1 -1
  158. package/.next/server/app/api/github/prs/checks/route.js +1 -1
  159. package/.next/server/app/api/github/prs/diff/route.js +1 -1
  160. package/.next/server/app/api/github/prs/review/route.js +1 -1
  161. package/.next/server/app/api/github/prs/route.js +1 -1
  162. package/.next/server/app/api/github/prs/view/route.js +1 -1
  163. package/.next/server/app/api/github/repos/route.js +1 -1
  164. package/.next/server/app/api/github/review-session/route.js +1 -1
  165. package/.next/server/app/api/github/review-session/route.js.nft.json +1 -1
  166. package/.next/server/app/api/health/route.js +1 -1
  167. package/.next/server/app/api/hooks/route.js +1 -1
  168. package/.next/server/app/api/inbox/[id]/route.js +5 -0
  169. package/.next/server/app/api/inbox/[id]/route.js.nft.json +1 -0
  170. package/.next/server/app/api/inbox/[id]/route_client-reference-manifest.js +1 -0
  171. package/.next/server/app/api/inbox/route.js +5 -0
  172. package/.next/server/app/api/inbox/route.js.nft.json +1 -0
  173. package/.next/server/app/api/inbox/route_client-reference-manifest.js +1 -0
  174. package/.next/server/app/api/jobs/[id]/route.js +1 -1
  175. package/.next/server/app/api/jobs/[id]/route.js.nft.json +1 -1
  176. package/.next/server/app/api/jobs/[id]/runs/[runId]/route.js +1 -1
  177. package/.next/server/app/api/jobs/[id]/runs/[runId]/transcript/route.js +1 -1
  178. package/.next/server/app/api/jobs/[id]/runs/route.js +1 -1
  179. package/.next/server/app/api/jobs/[id]/trigger/route.js +1 -1
  180. package/.next/server/app/api/jobs/[id]/trigger/route.js.nft.json +1 -1
  181. package/.next/server/app/api/jobs/mcp-discover/route.js +1 -1
  182. package/.next/server/app/api/jobs/mcp-discover/route.js.nft.json +1 -1
  183. package/.next/server/app/api/jobs/route.js +1 -1
  184. package/.next/server/app/api/jobs/route.js.nft.json +1 -1
  185. package/.next/server/app/api/jobs/status/route.js +1 -1
  186. package/.next/server/app/api/mcp-servers/[name]/route.js +1 -1
  187. package/.next/server/app/api/mcp-servers/[name]/test/route.js +1 -1
  188. package/.next/server/app/api/mcp-servers/route.js +1 -1
  189. package/.next/server/app/api/notifications/route.js +1 -0
  190. package/.next/server/app/api/notifications/route.js.nft.json +1 -0
  191. package/.next/server/app/api/notifications/route_client-reference-manifest.js +1 -0
  192. package/.next/server/app/api/notifications/test/route.js +5 -0
  193. package/.next/server/app/api/notifications/test/route.js.nft.json +1 -0
  194. package/.next/server/app/api/notifications/test/route_client-reference-manifest.js +1 -0
  195. package/.next/server/app/api/providers/[id]/route.js +1 -0
  196. package/.next/server/app/api/providers/[id]/route.js.nft.json +1 -0
  197. package/.next/server/app/api/providers/[id]/route_client-reference-manifest.js +1 -0
  198. package/.next/server/app/api/providers/route.js +1 -0
  199. package/.next/server/app/api/providers/route.js.nft.json +1 -0
  200. package/.next/server/app/api/providers/route_client-reference-manifest.js +1 -0
  201. package/.next/server/app/api/reviews/pinned/route.js +1 -0
  202. package/.next/server/app/api/reviews/pinned/route.js.nft.json +1 -0
  203. package/.next/server/app/api/reviews/pinned/route_client-reference-manifest.js +1 -0
  204. package/.next/server/app/api/sessions/[id]/context/route.js +1 -1
  205. package/.next/server/app/api/sessions/[id]/mcp/route.js +1 -1
  206. package/.next/server/app/api/sessions/[id]/mcp/route.js.nft.json +1 -1
  207. package/.next/server/app/api/sessions/[id]/route.js +1 -1
  208. package/.next/server/app/api/sessions/[id]/route.js.nft.json +1 -1
  209. package/.next/server/app/api/sessions/[id]/search/route.js +1 -1
  210. package/.next/server/app/api/sessions/[id]/tabs/route.js +1 -0
  211. package/.next/server/app/api/sessions/[id]/tabs/route.js.nft.json +1 -0
  212. package/.next/server/app/api/sessions/[id]/tabs/route_client-reference-manifest.js +1 -0
  213. package/.next/server/app/api/sessions/bulk-delete/route.js +1 -0
  214. package/.next/server/app/api/sessions/bulk-delete/route.js.nft.json +1 -0
  215. package/.next/server/app/api/sessions/bulk-delete/route_client-reference-manifest.js +1 -0
  216. package/.next/server/app/api/sessions/by-ids/route.js +1 -0
  217. package/.next/server/app/api/sessions/by-ids/route.js.nft.json +1 -0
  218. package/.next/server/app/api/sessions/by-ids/route_client-reference-manifest.js +1 -0
  219. package/.next/server/app/api/sessions/group/route.js +1 -0
  220. package/.next/server/app/api/sessions/group/route.js.nft.json +1 -0
  221. package/.next/server/app/api/sessions/group/route_client-reference-manifest.js +1 -0
  222. package/.next/server/app/api/sessions/pinned/route.js +1 -1
  223. package/.next/server/app/api/sessions/route.js +1 -1
  224. package/.next/server/app/api/sessions/route.js.nft.json +1 -1
  225. package/.next/server/app/api/sessions/search/route.js +1 -0
  226. package/.next/server/app/api/sessions/search/route.js.nft.json +1 -0
  227. package/.next/server/app/api/sessions/search/route_client-reference-manifest.js +1 -0
  228. package/.next/server/app/api/sessions/thinking/route.js +1 -0
  229. package/.next/server/app/api/sessions/thinking/route.js.nft.json +1 -0
  230. package/.next/server/app/api/sessions/thinking/route_client-reference-manifest.js +1 -0
  231. package/.next/server/app/api/skills/[name]/route.js +1 -1
  232. package/.next/server/app/api/skills/route.js +1 -1
  233. package/.next/server/app/api/terminal/[id]/route.js +1 -0
  234. package/.next/server/app/api/terminal/[id]/route.js.nft.json +1 -0
  235. package/.next/server/app/api/terminal/[id]/route_client-reference-manifest.js +1 -0
  236. package/.next/server/app/api/terminal/route.js +1 -0
  237. package/.next/server/app/api/terminal/route.js.nft.json +1 -0
  238. package/.next/server/app/api/terminal/route_client-reference-manifest.js +1 -0
  239. package/.next/server/app/api/usage/route.js +1 -1
  240. package/.next/server/app/api/version/changelog/route.js +1 -0
  241. package/.next/server/app/api/version/changelog/route.js.nft.json +1 -0
  242. package/.next/server/app/api/version/changelog/route_client-reference-manifest.js +1 -0
  243. package/.next/server/app/api/version/cockpit/changelog/route.js +1 -0
  244. package/.next/server/app/api/version/cockpit/changelog/route.js.nft.json +1 -0
  245. package/.next/server/app/api/version/cockpit/changelog/route_client-reference-manifest.js +1 -0
  246. package/.next/server/app/api/version/cockpit/route.js +1 -1
  247. package/.next/server/app/api/version/route.js +2 -2
  248. package/.next/server/app/changes.html +1 -1
  249. package/.next/server/app/changes.rsc +4 -4
  250. package/.next/server/app/changes.segments/!KGFwcCk/changes/__PAGE__.segment.rsc +2 -2
  251. package/.next/server/app/changes.segments/!KGFwcCk/changes.segment.rsc +1 -1
  252. package/.next/server/app/changes.segments/!KGFwcCk.segment.rsc +2 -2
  253. package/.next/server/app/changes.segments/_full.segment.rsc +4 -4
  254. package/.next/server/app/changes.segments/_head.segment.rsc +1 -1
  255. package/.next/server/app/changes.segments/_index.segment.rsc +2 -2
  256. package/.next/server/app/changes.segments/_tree.segment.rsc +2 -2
  257. package/.next/server/app/claude-md/edit.html +1 -1
  258. package/.next/server/app/claude-md/edit.rsc +4 -4
  259. package/.next/server/app/claude-md/edit.segments/!KGFwcCk/claude-md/edit/__PAGE__.segment.rsc +2 -2
  260. package/.next/server/app/claude-md/edit.segments/!KGFwcCk/claude-md/edit.segment.rsc +1 -1
  261. package/.next/server/app/claude-md/edit.segments/!KGFwcCk/claude-md.segment.rsc +1 -1
  262. package/.next/server/app/claude-md/edit.segments/!KGFwcCk.segment.rsc +2 -2
  263. package/.next/server/app/claude-md/edit.segments/_full.segment.rsc +4 -4
  264. package/.next/server/app/claude-md/edit.segments/_head.segment.rsc +1 -1
  265. package/.next/server/app/claude-md/edit.segments/_index.segment.rsc +2 -2
  266. package/.next/server/app/claude-md/edit.segments/_tree.segment.rsc +2 -2
  267. package/.next/server/app/claude-md.html +1 -1
  268. package/.next/server/app/claude-md.rsc +4 -4
  269. package/.next/server/app/claude-md.segments/!KGFwcCk/claude-md/__PAGE__.segment.rsc +2 -2
  270. package/.next/server/app/claude-md.segments/!KGFwcCk/claude-md.segment.rsc +1 -1
  271. package/.next/server/app/claude-md.segments/!KGFwcCk.segment.rsc +2 -2
  272. package/.next/server/app/claude-md.segments/_full.segment.rsc +4 -4
  273. package/.next/server/app/claude-md.segments/_head.segment.rsc +1 -1
  274. package/.next/server/app/claude-md.segments/_index.segment.rsc +2 -2
  275. package/.next/server/app/claude-md.segments/_tree.segment.rsc +2 -2
  276. package/.next/server/app/commands.html +1 -1
  277. package/.next/server/app/commands.rsc +4 -4
  278. package/.next/server/app/commands.segments/!KGFwcCk/commands/__PAGE__.segment.rsc +2 -2
  279. package/.next/server/app/commands.segments/!KGFwcCk/commands.segment.rsc +1 -1
  280. package/.next/server/app/commands.segments/!KGFwcCk.segment.rsc +2 -2
  281. package/.next/server/app/commands.segments/_full.segment.rsc +4 -4
  282. package/.next/server/app/commands.segments/_head.segment.rsc +1 -1
  283. package/.next/server/app/commands.segments/_index.segment.rsc +2 -2
  284. package/.next/server/app/commands.segments/_tree.segment.rsc +2 -2
  285. package/.next/server/app/files.html +1 -1
  286. package/.next/server/app/files.rsc +4 -4
  287. package/.next/server/app/files.segments/!KGFwcCk/files/__PAGE__.segment.rsc +2 -2
  288. package/.next/server/app/files.segments/!KGFwcCk/files.segment.rsc +1 -1
  289. package/.next/server/app/files.segments/!KGFwcCk.segment.rsc +2 -2
  290. package/.next/server/app/files.segments/_full.segment.rsc +4 -4
  291. package/.next/server/app/files.segments/_head.segment.rsc +1 -1
  292. package/.next/server/app/files.segments/_index.segment.rsc +2 -2
  293. package/.next/server/app/files.segments/_tree.segment.rsc +2 -2
  294. package/.next/server/app/hooks.html +1 -1
  295. package/.next/server/app/hooks.rsc +4 -4
  296. package/.next/server/app/hooks.segments/!KGFwcCk/hooks/__PAGE__.segment.rsc +2 -2
  297. package/.next/server/app/hooks.segments/!KGFwcCk/hooks.segment.rsc +1 -1
  298. package/.next/server/app/hooks.segments/!KGFwcCk.segment.rsc +2 -2
  299. package/.next/server/app/hooks.segments/_full.segment.rsc +4 -4
  300. package/.next/server/app/hooks.segments/_head.segment.rsc +1 -1
  301. package/.next/server/app/hooks.segments/_index.segment.rsc +2 -2
  302. package/.next/server/app/hooks.segments/_tree.segment.rsc +2 -2
  303. package/.next/server/app/inbox.html +1 -0
  304. package/.next/server/app/inbox.meta +16 -0
  305. package/.next/server/app/inbox.rsc +23 -0
  306. package/.next/server/app/inbox.segments/!KGFwcCk/inbox/__PAGE__.segment.rsc +9 -0
  307. package/.next/server/app/inbox.segments/!KGFwcCk/inbox.segment.rsc +5 -0
  308. package/.next/server/app/inbox.segments/!KGFwcCk.segment.rsc +7 -0
  309. package/.next/server/app/inbox.segments/_full.segment.rsc +23 -0
  310. package/.next/server/app/inbox.segments/_head.segment.rsc +6 -0
  311. package/.next/server/app/inbox.segments/_index.segment.rsc +5 -0
  312. package/.next/server/app/inbox.segments/_tree.segment.rsc +2 -0
  313. package/.next/server/app/index.html +1 -1
  314. package/.next/server/app/index.rsc +4 -4
  315. package/.next/server/app/index.segments/!KGFwcCk/__PAGE__.segment.rsc +2 -2
  316. package/.next/server/app/index.segments/!KGFwcCk.segment.rsc +2 -2
  317. package/.next/server/app/index.segments/_full.segment.rsc +4 -4
  318. package/.next/server/app/index.segments/_head.segment.rsc +1 -1
  319. package/.next/server/app/index.segments/_index.segment.rsc +2 -2
  320. package/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  321. package/.next/server/app/jobs.html +1 -1
  322. package/.next/server/app/jobs.rsc +4 -4
  323. package/.next/server/app/jobs.segments/!KGFwcCk/jobs/__PAGE__.segment.rsc +2 -2
  324. package/.next/server/app/jobs.segments/!KGFwcCk/jobs.segment.rsc +1 -1
  325. package/.next/server/app/jobs.segments/!KGFwcCk.segment.rsc +2 -2
  326. package/.next/server/app/jobs.segments/_full.segment.rsc +4 -4
  327. package/.next/server/app/jobs.segments/_head.segment.rsc +1 -1
  328. package/.next/server/app/jobs.segments/_index.segment.rsc +2 -2
  329. package/.next/server/app/jobs.segments/_tree.segment.rsc +2 -2
  330. package/.next/server/app/login/page.js +2 -2
  331. package/.next/server/app/login/page_client-reference-manifest.js +1 -1
  332. package/.next/server/app/login.html +1 -1
  333. package/.next/server/app/login.rsc +2 -2
  334. package/.next/server/app/login.segments/_full.segment.rsc +2 -2
  335. package/.next/server/app/login.segments/_head.segment.rsc +1 -1
  336. package/.next/server/app/login.segments/_index.segment.rsc +2 -2
  337. package/.next/server/app/login.segments/_tree.segment.rsc +2 -2
  338. package/.next/server/app/login.segments/login/__PAGE__.segment.rsc +1 -1
  339. package/.next/server/app/login.segments/login.segment.rsc +1 -1
  340. package/.next/server/app/mcp-servers.html +1 -1
  341. package/.next/server/app/mcp-servers.rsc +4 -4
  342. package/.next/server/app/mcp-servers.segments/!KGFwcCk/mcp-servers/__PAGE__.segment.rsc +2 -2
  343. package/.next/server/app/mcp-servers.segments/!KGFwcCk/mcp-servers.segment.rsc +1 -1
  344. package/.next/server/app/mcp-servers.segments/!KGFwcCk.segment.rsc +2 -2
  345. package/.next/server/app/mcp-servers.segments/_full.segment.rsc +4 -4
  346. package/.next/server/app/mcp-servers.segments/_head.segment.rsc +1 -1
  347. package/.next/server/app/mcp-servers.segments/_index.segment.rsc +2 -2
  348. package/.next/server/app/mcp-servers.segments/_tree.segment.rsc +2 -2
  349. package/.next/server/app/reviews.html +1 -1
  350. package/.next/server/app/reviews.rsc +4 -4
  351. package/.next/server/app/reviews.segments/!KGFwcCk/reviews/__PAGE__.segment.rsc +2 -2
  352. package/.next/server/app/reviews.segments/!KGFwcCk/reviews.segment.rsc +1 -1
  353. package/.next/server/app/reviews.segments/!KGFwcCk.segment.rsc +2 -2
  354. package/.next/server/app/reviews.segments/_full.segment.rsc +4 -4
  355. package/.next/server/app/reviews.segments/_head.segment.rsc +1 -1
  356. package/.next/server/app/reviews.segments/_index.segment.rsc +2 -2
  357. package/.next/server/app/reviews.segments/_tree.segment.rsc +2 -2
  358. package/.next/server/app/settings/appearance.html +1 -0
  359. package/.next/server/app/settings/appearance.meta +17 -0
  360. package/.next/server/app/settings/appearance.rsc +23 -0
  361. package/.next/server/app/settings/appearance.segments/!KGFwcCk/settings/appearance/__PAGE__.segment.rsc +9 -0
  362. package/.next/server/app/settings/appearance.segments/!KGFwcCk/settings/appearance.segment.rsc +5 -0
  363. package/.next/server/app/settings/appearance.segments/!KGFwcCk/settings.segment.rsc +5 -0
  364. package/.next/server/app/settings/appearance.segments/!KGFwcCk.segment.rsc +7 -0
  365. package/.next/server/app/settings/appearance.segments/_full.segment.rsc +23 -0
  366. package/.next/server/app/settings/appearance.segments/_head.segment.rsc +6 -0
  367. package/.next/server/app/settings/appearance.segments/_index.segment.rsc +5 -0
  368. package/.next/server/app/settings/appearance.segments/_tree.segment.rsc +2 -0
  369. package/.next/server/app/settings/notifications.html +1 -0
  370. package/.next/server/app/settings/notifications.meta +17 -0
  371. package/.next/server/app/settings/notifications.rsc +23 -0
  372. package/.next/server/app/settings/notifications.segments/!KGFwcCk/settings/notifications/__PAGE__.segment.rsc +9 -0
  373. package/.next/server/app/settings/notifications.segments/!KGFwcCk/settings/notifications.segment.rsc +5 -0
  374. package/.next/server/app/settings/notifications.segments/!KGFwcCk/settings.segment.rsc +5 -0
  375. package/.next/server/app/settings/notifications.segments/!KGFwcCk.segment.rsc +7 -0
  376. package/.next/server/app/settings/notifications.segments/_full.segment.rsc +23 -0
  377. package/.next/server/app/settings/notifications.segments/_head.segment.rsc +6 -0
  378. package/.next/server/app/settings/notifications.segments/_index.segment.rsc +5 -0
  379. package/.next/server/app/settings/notifications.segments/_tree.segment.rsc +2 -0
  380. package/.next/server/app/settings/providers/new.html +1 -0
  381. package/.next/server/app/settings/providers/new.meta +18 -0
  382. package/.next/server/app/settings/providers/new.rsc +23 -0
  383. package/.next/server/app/settings/providers/new.segments/!KGFwcCk/settings/providers/new/__PAGE__.segment.rsc +9 -0
  384. package/.next/server/app/settings/providers/new.segments/!KGFwcCk/settings/providers/new.segment.rsc +5 -0
  385. package/.next/server/app/settings/providers/new.segments/!KGFwcCk/settings/providers.segment.rsc +5 -0
  386. package/.next/server/app/settings/providers/new.segments/!KGFwcCk/settings.segment.rsc +5 -0
  387. package/.next/server/app/settings/providers/new.segments/!KGFwcCk.segment.rsc +7 -0
  388. package/.next/server/app/settings/providers/new.segments/_full.segment.rsc +23 -0
  389. package/.next/server/app/settings/providers/new.segments/_head.segment.rsc +6 -0
  390. package/.next/server/app/settings/providers/new.segments/_index.segment.rsc +5 -0
  391. package/.next/server/app/settings/providers/new.segments/_tree.segment.rsc +2 -0
  392. package/.next/server/app/settings/providers.html +1 -0
  393. package/.next/server/app/settings/providers.meta +17 -0
  394. package/.next/server/app/settings/providers.rsc +23 -0
  395. package/.next/server/app/settings/providers.segments/!KGFwcCk/settings/providers/__PAGE__.segment.rsc +9 -0
  396. package/.next/server/app/settings/providers.segments/!KGFwcCk/settings/providers.segment.rsc +5 -0
  397. package/.next/server/app/settings/providers.segments/!KGFwcCk/settings.segment.rsc +5 -0
  398. package/.next/server/app/settings/providers.segments/!KGFwcCk.segment.rsc +7 -0
  399. package/.next/server/app/settings/providers.segments/_full.segment.rsc +23 -0
  400. package/.next/server/app/settings/providers.segments/_head.segment.rsc +6 -0
  401. package/.next/server/app/settings/providers.segments/_index.segment.rsc +5 -0
  402. package/.next/server/app/settings/providers.segments/_tree.segment.rsc +2 -0
  403. package/.next/server/app/settings/session.html +1 -0
  404. package/.next/server/app/settings/session.meta +17 -0
  405. package/.next/server/app/settings/session.rsc +23 -0
  406. package/.next/server/app/settings/session.segments/!KGFwcCk/settings/session/__PAGE__.segment.rsc +9 -0
  407. package/.next/server/app/settings/session.segments/!KGFwcCk/settings/session.segment.rsc +5 -0
  408. package/.next/server/app/settings/session.segments/!KGFwcCk/settings.segment.rsc +5 -0
  409. package/.next/server/app/settings/session.segments/!KGFwcCk.segment.rsc +7 -0
  410. package/.next/server/app/settings/session.segments/_full.segment.rsc +23 -0
  411. package/.next/server/app/settings/session.segments/_head.segment.rsc +6 -0
  412. package/.next/server/app/settings/session.segments/_index.segment.rsc +5 -0
  413. package/.next/server/app/settings/session.segments/_tree.segment.rsc +2 -0
  414. package/.next/server/app/settings.html +1 -1
  415. package/.next/server/app/settings.rsc +4 -4
  416. package/.next/server/app/settings.segments/!KGFwcCk/settings/__PAGE__.segment.rsc +2 -2
  417. package/.next/server/app/settings.segments/!KGFwcCk/settings.segment.rsc +1 -1
  418. package/.next/server/app/settings.segments/!KGFwcCk.segment.rsc +2 -2
  419. package/.next/server/app/settings.segments/_full.segment.rsc +4 -4
  420. package/.next/server/app/settings.segments/_head.segment.rsc +1 -1
  421. package/.next/server/app/settings.segments/_index.segment.rsc +2 -2
  422. package/.next/server/app/settings.segments/_tree.segment.rsc +2 -2
  423. package/.next/server/app/skills.html +1 -1
  424. package/.next/server/app/skills.rsc +4 -4
  425. package/.next/server/app/skills.segments/!KGFwcCk/skills/__PAGE__.segment.rsc +2 -2
  426. package/.next/server/app/skills.segments/!KGFwcCk/skills.segment.rsc +1 -1
  427. package/.next/server/app/skills.segments/!KGFwcCk.segment.rsc +2 -2
  428. package/.next/server/app/skills.segments/_full.segment.rsc +4 -4
  429. package/.next/server/app/skills.segments/_head.segment.rsc +1 -1
  430. package/.next/server/app/skills.segments/_index.segment.rsc +2 -2
  431. package/.next/server/app/skills.segments/_tree.segment.rsc +2 -2
  432. package/.next/server/app-paths-manifest.json +28 -3
  433. package/.next/server/chunks/1002.js +18 -0
  434. package/.next/server/chunks/1011.js +1 -0
  435. package/.next/server/chunks/1979.js +2 -2
  436. package/.next/server/chunks/{9012.js → 3006.js} +3 -3
  437. package/.next/server/chunks/3108.js +1 -0
  438. package/.next/server/chunks/3434.js +1 -0
  439. package/.next/server/chunks/{6142.js → 4342.js} +1 -1
  440. package/.next/server/chunks/4352.js +1 -0
  441. package/.next/server/chunks/4445.js +1 -1
  442. package/.next/server/chunks/5965.js +1 -1
  443. package/.next/server/chunks/7782.js +6 -0
  444. package/.next/server/chunks/8148.js +1 -0
  445. package/.next/server/chunks/9599.js +11 -0
  446. package/.next/server/middleware-build-manifest.js +1 -1
  447. package/.next/server/middleware-react-loadable-manifest.js +1 -1
  448. package/.next/server/pages/404.html +1 -1
  449. package/.next/server/pages/500.html +1 -1
  450. package/.next/server/server-reference-manifest.json +1 -1
  451. package/.next/static/chunks/{35922.5bdf78a760129504.js → 13541.056c34ca7fde6869.js} +1 -1
  452. package/.next/static/chunks/26126-97874904b42befb8.js +1 -0
  453. package/.next/static/chunks/{22086-756d490e3320ad15.js → 31010-6e87f77b97544424.js} +1 -1
  454. package/.next/static/chunks/3765-d323c6675307a63e.js +20 -0
  455. package/.next/static/chunks/41487-d802643f4a8fad3c.js +199 -0
  456. package/.next/static/chunks/48273-bbd15bac6733dfc4.js +6 -0
  457. package/.next/static/chunks/{80392.bca860d8b5972706.js → 58011.3de5770e8b0d8759.js} +1 -1
  458. package/.next/static/chunks/63606.a387b0261d6523ab.js +1 -0
  459. package/.next/static/chunks/6935-f436a624267529fb.js +1 -0
  460. package/.next/static/chunks/{69427.755a0a4013596f7a.js → 69427.a0b463c808aa54c8.js} +1 -1
  461. package/.next/static/chunks/86939-dfc6f8eb395caa89.js +1 -0
  462. package/.next/static/chunks/app/(app)/agents/[name]/page-8bdd0359043537d4.js +8 -0
  463. package/.next/static/chunks/app/(app)/agents/page-6fcfd7ab6781814e.js +1 -0
  464. package/.next/static/chunks/app/(app)/changes/page-4549a5bd72d77e3e.js +1 -0
  465. package/.next/static/chunks/app/(app)/claude-md/edit/page-08e6e120e71979f4.js +1 -0
  466. package/.next/static/chunks/app/(app)/claude-md/page-cd9e2176a12ba241.js +1 -0
  467. package/.next/static/chunks/app/(app)/commands/[name]/page-7cdfdef29ded0aa0.js +6 -0
  468. package/.next/static/chunks/app/(app)/commands/page-f126b608b04747ac.js +1 -0
  469. package/.next/static/chunks/app/(app)/files/page-f526eb95821e000e.js +1 -0
  470. package/.next/static/chunks/app/(app)/hooks/[event]/page-28038323fd29adfa.js +6 -0
  471. package/.next/static/chunks/app/(app)/hooks/page-f1f39284e53c0344.js +1 -0
  472. package/.next/static/chunks/app/(app)/inbox/[id]/page-bc1ff3a0db0114a4.js +1 -0
  473. package/.next/static/chunks/app/(app)/inbox/page-82e03870103ce9bd.js +1 -0
  474. package/.next/static/chunks/app/(app)/jobs/[id]/edit/page-7fb788f772ff2129.js +1 -0
  475. package/.next/static/chunks/app/(app)/jobs/[id]/page-a5856b9ae967ff59.js +1 -0
  476. package/.next/static/chunks/app/(app)/jobs/[id]/runs/[runId]/page-b7c513402db11db6.js +1 -0
  477. package/.next/static/chunks/app/(app)/jobs/page-e9bbd6c116b9699f.js +1 -0
  478. package/.next/static/chunks/app/(app)/layout-ce9e1be301c60fe5.js +1 -0
  479. package/.next/static/chunks/app/(app)/mcp-servers/[name]/page-d6d805a27ec0b0c0.js +1 -0
  480. package/.next/static/chunks/app/(app)/mcp-servers/page-4b7276d43451cd43.js +1 -0
  481. package/.next/static/chunks/app/(app)/page-027a5382da30ddb9.js +1 -0
  482. package/.next/static/chunks/app/(app)/reviews/[owner]/[repo]/[number]/page-9ab2955c455bb5fa.js +13 -0
  483. package/.next/static/chunks/app/(app)/reviews/[owner]/[repo]/page-c5fd013309ab3eba.js +1 -0
  484. package/.next/static/chunks/app/(app)/reviews/page-47530d93bb9d4a76.js +1 -0
  485. package/.next/static/chunks/app/(app)/sessions/[id]/page-94f891e1b54fd05f.js +1 -0
  486. package/.next/static/chunks/app/(app)/settings/appearance/page-95902da748ac5f1e.js +1 -0
  487. package/.next/static/chunks/app/(app)/settings/notifications/page-229f1db6beb1d19c.js +1 -0
  488. package/.next/static/chunks/app/(app)/settings/page-8ed16a66fdde10cd.js +1 -0
  489. package/.next/static/chunks/app/(app)/settings/providers/[id]/page-13654263246617b3.js +1 -0
  490. package/.next/static/chunks/app/(app)/settings/providers/new/page-e1798e321ccbc6df.js +1 -0
  491. package/.next/static/chunks/app/(app)/settings/providers/page-0bb4c1db2ee35b3d.js +1 -0
  492. package/.next/static/chunks/app/(app)/settings/session/page-ab216a8fa37a0f76.js +1 -0
  493. package/.next/static/chunks/app/(app)/skills/[name]/page-8ab85d5090967ee4.js +6 -0
  494. package/.next/static/chunks/app/(app)/skills/page-c52773eacb27c04e.js +1 -0
  495. package/.next/static/chunks/app/_global-error/page-fc747760bd4c8a4b.js +1 -0
  496. package/.next/static/chunks/app/api/agents/[name]/route-fc747760bd4c8a4b.js +1 -0
  497. package/.next/static/chunks/app/api/agents/route-fc747760bd4c8a4b.js +1 -0
  498. package/.next/static/chunks/app/api/auth/check/route-fc747760bd4c8a4b.js +1 -0
  499. package/.next/static/chunks/app/api/auth/login/route-fc747760bd4c8a4b.js +1 -0
  500. package/.next/static/chunks/app/api/auth/setup/route-fc747760bd4c8a4b.js +1 -0
  501. package/.next/static/chunks/app/api/auth/ws-token/route-fc747760bd4c8a4b.js +1 -0
  502. package/.next/static/chunks/app/api/btw/route-fc747760bd4c8a4b.js +1 -0
  503. package/.next/static/chunks/app/api/claude-md/route-fc747760bd4c8a4b.js +1 -0
  504. package/.next/static/chunks/app/api/commands/[name]/route-fc747760bd4c8a4b.js +1 -0
  505. package/.next/static/chunks/app/api/commands/route-fc747760bd4c8a4b.js +1 -0
  506. package/.next/static/chunks/app/api/defaults/route-fc747760bd4c8a4b.js +1 -0
  507. package/.next/static/chunks/app/api/filesystem/browse/route-fc747760bd4c8a4b.js +1 -0
  508. package/.next/static/chunks/app/api/filesystem/files/route-fc747760bd4c8a4b.js +1 -0
  509. package/.next/static/chunks/app/api/filesystem/mkdir/route-fc747760bd4c8a4b.js +1 -0
  510. package/.next/static/chunks/app/api/filesystem/read/route-fc747760bd4c8a4b.js +1 -0
  511. package/.next/static/chunks/app/api/git/clone/route-fc747760bd4c8a4b.js +1 -0
  512. package/.next/static/chunks/app/api/git/commit/route-fc747760bd4c8a4b.js +1 -0
  513. package/.next/static/chunks/app/api/git/diff/route-fc747760bd4c8a4b.js +1 -0
  514. package/.next/static/chunks/app/api/git/discard/route-fc747760bd4c8a4b.js +1 -0
  515. package/.next/static/chunks/app/api/git/generate-message/route-fc747760bd4c8a4b.js +1 -0
  516. package/.next/static/chunks/app/api/git/push/route-fc747760bd4c8a4b.js +1 -0
  517. package/.next/static/chunks/app/api/git/status/route-fc747760bd4c8a4b.js +1 -0
  518. package/.next/static/chunks/app/api/github/file-content/route-fc747760bd4c8a4b.js +1 -0
  519. package/.next/static/chunks/app/api/github/orgs/route-fc747760bd4c8a4b.js +1 -0
  520. package/.next/static/chunks/app/api/github/prs/checks/route-fc747760bd4c8a4b.js +1 -0
  521. package/.next/static/chunks/app/api/github/prs/diff/route-fc747760bd4c8a4b.js +1 -0
  522. package/.next/static/chunks/app/api/github/prs/review/route-fc747760bd4c8a4b.js +1 -0
  523. package/.next/static/chunks/app/api/github/prs/route-fc747760bd4c8a4b.js +1 -0
  524. package/.next/static/chunks/app/api/github/prs/view/route-fc747760bd4c8a4b.js +1 -0
  525. package/.next/static/chunks/app/api/github/repos/route-fc747760bd4c8a4b.js +1 -0
  526. package/.next/static/chunks/app/api/github/review-session/route-fc747760bd4c8a4b.js +1 -0
  527. package/.next/static/chunks/app/api/health/route-fc747760bd4c8a4b.js +1 -0
  528. package/.next/static/chunks/app/api/hooks/route-fc747760bd4c8a4b.js +1 -0
  529. package/.next/static/chunks/app/api/inbox/[id]/route-fc747760bd4c8a4b.js +1 -0
  530. package/.next/static/chunks/app/api/inbox/route-fc747760bd4c8a4b.js +1 -0
  531. package/.next/static/chunks/app/api/jobs/[id]/route-fc747760bd4c8a4b.js +1 -0
  532. package/.next/static/chunks/app/api/jobs/[id]/runs/[runId]/route-fc747760bd4c8a4b.js +1 -0
  533. package/.next/static/chunks/app/api/jobs/[id]/runs/[runId]/transcript/route-fc747760bd4c8a4b.js +1 -0
  534. package/.next/static/chunks/app/api/jobs/[id]/runs/route-fc747760bd4c8a4b.js +1 -0
  535. package/.next/static/chunks/app/api/jobs/[id]/trigger/route-fc747760bd4c8a4b.js +1 -0
  536. package/.next/static/chunks/app/api/jobs/mcp-discover/route-fc747760bd4c8a4b.js +1 -0
  537. package/.next/static/chunks/app/api/jobs/route-fc747760bd4c8a4b.js +1 -0
  538. package/.next/static/chunks/app/api/jobs/status/route-fc747760bd4c8a4b.js +1 -0
  539. package/.next/static/chunks/app/api/mcp-servers/[name]/route-fc747760bd4c8a4b.js +1 -0
  540. package/.next/static/chunks/app/api/mcp-servers/[name]/test/route-fc747760bd4c8a4b.js +1 -0
  541. package/.next/static/chunks/app/api/mcp-servers/route-fc747760bd4c8a4b.js +1 -0
  542. package/.next/static/chunks/app/api/notifications/route-fc747760bd4c8a4b.js +1 -0
  543. package/.next/static/chunks/app/api/notifications/test/route-fc747760bd4c8a4b.js +1 -0
  544. package/.next/static/chunks/app/api/providers/[id]/route-fc747760bd4c8a4b.js +1 -0
  545. package/.next/static/chunks/app/api/providers/route-fc747760bd4c8a4b.js +1 -0
  546. package/.next/static/chunks/app/api/reviews/pinned/route-fc747760bd4c8a4b.js +1 -0
  547. package/.next/static/chunks/app/api/sessions/[id]/context/route-fc747760bd4c8a4b.js +1 -0
  548. package/.next/static/chunks/app/api/sessions/[id]/mcp/route-fc747760bd4c8a4b.js +1 -0
  549. package/.next/static/chunks/app/api/sessions/[id]/route-fc747760bd4c8a4b.js +1 -0
  550. package/.next/static/chunks/app/api/sessions/[id]/search/route-fc747760bd4c8a4b.js +1 -0
  551. package/.next/static/chunks/app/api/sessions/[id]/tabs/route-fc747760bd4c8a4b.js +1 -0
  552. package/.next/static/chunks/app/api/sessions/bulk-delete/route-fc747760bd4c8a4b.js +1 -0
  553. package/.next/static/chunks/app/api/sessions/by-ids/route-fc747760bd4c8a4b.js +1 -0
  554. package/.next/static/chunks/app/api/sessions/group/route-fc747760bd4c8a4b.js +1 -0
  555. package/.next/static/chunks/app/api/sessions/pinned/route-fc747760bd4c8a4b.js +1 -0
  556. package/.next/static/chunks/app/api/sessions/route-fc747760bd4c8a4b.js +1 -0
  557. package/.next/static/chunks/app/api/sessions/search/route-fc747760bd4c8a4b.js +1 -0
  558. package/.next/static/chunks/app/api/sessions/thinking/route-fc747760bd4c8a4b.js +1 -0
  559. package/.next/static/chunks/app/api/skills/[name]/route-fc747760bd4c8a4b.js +1 -0
  560. package/.next/static/chunks/app/api/skills/route-fc747760bd4c8a4b.js +1 -0
  561. package/.next/static/chunks/app/api/terminal/[id]/route-fc747760bd4c8a4b.js +1 -0
  562. package/.next/static/chunks/app/api/terminal/route-fc747760bd4c8a4b.js +1 -0
  563. package/.next/static/chunks/app/api/usage/route-fc747760bd4c8a4b.js +1 -0
  564. package/.next/static/chunks/app/api/version/changelog/route-fc747760bd4c8a4b.js +1 -0
  565. package/.next/static/chunks/app/api/version/cockpit/changelog/route-fc747760bd4c8a4b.js +1 -0
  566. package/.next/static/chunks/app/api/version/cockpit/route-fc747760bd4c8a4b.js +1 -0
  567. package/.next/static/chunks/app/api/version/route-fc747760bd4c8a4b.js +1 -0
  568. package/.next/static/chunks/e868780c.f24b6da08e62c7b2.js +18 -0
  569. package/.next/static/chunks/next/dist/client/components/builtin/app-error-fc747760bd4c8a4b.js +1 -0
  570. package/.next/static/chunks/next/dist/client/components/builtin/forbidden-fc747760bd4c8a4b.js +1 -0
  571. package/.next/static/chunks/next/dist/client/components/builtin/not-found-fc747760bd4c8a4b.js +1 -0
  572. package/.next/static/chunks/next/dist/client/components/builtin/unauthorized-fc747760bd4c8a4b.js +1 -0
  573. package/.next/static/chunks/webpack-e31bb45fa59caed8.js +1 -0
  574. package/.next/static/css/3f8af4ae6f812d5c.css +1 -0
  575. package/.next/static/zr8XZzqb74eHitdlkpo-C/_buildManifest.js +1 -0
  576. package/README.md +14 -4
  577. package/bin/cockpit-hook-bridge.mjs +101 -0
  578. package/dist/server.js +49 -2
  579. package/dist/src/lib/models.js +48 -7
  580. package/dist/src/server/auth.js +32 -10
  581. package/dist/src/server/claude-settings.js +153 -0
  582. package/dist/src/server/cli-init-fetch.js +86 -0
  583. package/dist/src/server/cron-utils.js +16 -5
  584. package/dist/src/server/debug-logger.js +2 -2
  585. package/dist/src/server/defaults.js +18 -7
  586. package/dist/src/server/fs-watcher.js +50 -0
  587. package/dist/src/server/hook-bridge-path.js +34 -0
  588. package/dist/src/server/hook-event-translator.js +211 -0
  589. package/dist/src/server/hook-router.js +150 -0
  590. package/dist/src/server/inbox.js +136 -0
  591. package/dist/src/server/job-lock.js +103 -0
  592. package/dist/src/server/job-scheduler.js +170 -43
  593. package/dist/src/server/job-storage.js +32 -20
  594. package/dist/src/server/notification-settings.js +43 -0
  595. package/dist/src/server/notifications.js +125 -0
  596. package/dist/src/server/paths.js +23 -0
  597. package/dist/src/server/plans.js +8 -5
  598. package/dist/src/server/providers.js +128 -0
  599. package/dist/src/server/pty-runtime.js +324 -0
  600. package/dist/src/server/pty-session.js +178 -0
  601. package/dist/src/server/session-manager.js +838 -152
  602. package/dist/src/server/session-prefs.js +33 -8
  603. package/dist/src/server/singleton.js +18 -0
  604. package/dist/src/server/stream-processor.js +61 -48
  605. package/dist/src/server/terminal-manager.js +153 -0
  606. package/dist/src/server/todo-watcher.js +178 -0
  607. package/dist/src/server/transcript-watcher.js +91 -0
  608. package/dist/src/server/transcript.js +444 -13
  609. package/dist/src/server/ws-handler.js +251 -74
  610. package/next.config.ts +1 -0
  611. package/package.json +10 -3
  612. package/public/fonts/symbols-nerd-font-mono.woff2 +0 -0
  613. package/.next/server/chunks/1941.js +0 -9
  614. package/.next/server/chunks/2444.js +0 -6
  615. package/.next/server/chunks/8346.js +0 -1
  616. package/.next/static/V2EfPtTUC96VYyF12K0om/_buildManifest.js +0 -1
  617. package/.next/static/chunks/30120-1535e9064b17ce74.js +0 -20
  618. package/.next/static/chunks/66997-652baf5596173fea.js +0 -199
  619. package/.next/static/chunks/93273-c5cb6dcedef67c81.js +0 -6
  620. package/.next/static/chunks/app/(app)/agents/[name]/page-44c5691c80f17d38.js +0 -8
  621. package/.next/static/chunks/app/(app)/agents/page-4ce7a715bc0145dc.js +0 -1
  622. package/.next/static/chunks/app/(app)/changes/page-84cf4cd3ca347d98.js +0 -1
  623. package/.next/static/chunks/app/(app)/claude-md/edit/page-fb7117171d0f94d2.js +0 -1
  624. package/.next/static/chunks/app/(app)/claude-md/page-9503f1415e660911.js +0 -1
  625. package/.next/static/chunks/app/(app)/commands/[name]/page-6ef571e73b105248.js +0 -6
  626. package/.next/static/chunks/app/(app)/commands/page-e8a506da73d1c280.js +0 -1
  627. package/.next/static/chunks/app/(app)/files/page-67a95d351a685d79.js +0 -1
  628. package/.next/static/chunks/app/(app)/hooks/[event]/page-03f85595561b068a.js +0 -6
  629. package/.next/static/chunks/app/(app)/hooks/page-5578c83ad353e307.js +0 -1
  630. package/.next/static/chunks/app/(app)/jobs/[id]/edit/page-51d784c59737778c.js +0 -1
  631. package/.next/static/chunks/app/(app)/jobs/[id]/page-7d00e7a01c70a261.js +0 -1
  632. package/.next/static/chunks/app/(app)/jobs/[id]/runs/[runId]/page-665191da233fde19.js +0 -1
  633. package/.next/static/chunks/app/(app)/jobs/page-8b4ee1166a53d5e1.js +0 -1
  634. package/.next/static/chunks/app/(app)/layout-8dad55d6ce637a01.js +0 -1
  635. package/.next/static/chunks/app/(app)/mcp-servers/[name]/page-c30f0d78daf7719e.js +0 -1
  636. package/.next/static/chunks/app/(app)/mcp-servers/page-737b87d338afdb49.js +0 -1
  637. package/.next/static/chunks/app/(app)/page-40052655d2a9a84f.js +0 -1
  638. package/.next/static/chunks/app/(app)/reviews/[owner]/[repo]/[number]/page-1d9179bf5a4de7a4.js +0 -13
  639. package/.next/static/chunks/app/(app)/reviews/[owner]/[repo]/page-d8a9ee39e7cc056a.js +0 -1
  640. package/.next/static/chunks/app/(app)/reviews/page-098e6e6fe3123e02.js +0 -1
  641. package/.next/static/chunks/app/(app)/sessions/[id]/page-a74f7fe8322678ba.js +0 -1
  642. package/.next/static/chunks/app/(app)/settings/page-1fa46b8ac8e22927.js +0 -1
  643. package/.next/static/chunks/app/(app)/skills/[name]/page-e6572062a6ad90df.js +0 -6
  644. package/.next/static/chunks/app/(app)/skills/page-8fca8814aa818ae6.js +0 -1
  645. package/.next/static/chunks/app/_global-error/page-b277aba73f9e0212.js +0 -1
  646. package/.next/static/chunks/app/api/agents/[name]/route-b277aba73f9e0212.js +0 -1
  647. package/.next/static/chunks/app/api/agents/route-b277aba73f9e0212.js +0 -1
  648. package/.next/static/chunks/app/api/auth/check/route-b277aba73f9e0212.js +0 -1
  649. package/.next/static/chunks/app/api/auth/login/route-b277aba73f9e0212.js +0 -1
  650. package/.next/static/chunks/app/api/auth/setup/route-b277aba73f9e0212.js +0 -1
  651. package/.next/static/chunks/app/api/auth/ws-token/route-b277aba73f9e0212.js +0 -1
  652. package/.next/static/chunks/app/api/btw/route-b277aba73f9e0212.js +0 -1
  653. package/.next/static/chunks/app/api/claude-md/route-b277aba73f9e0212.js +0 -1
  654. package/.next/static/chunks/app/api/commands/[name]/route-b277aba73f9e0212.js +0 -1
  655. package/.next/static/chunks/app/api/commands/route-b277aba73f9e0212.js +0 -1
  656. package/.next/static/chunks/app/api/defaults/route-b277aba73f9e0212.js +0 -1
  657. package/.next/static/chunks/app/api/filesystem/browse/route-b277aba73f9e0212.js +0 -1
  658. package/.next/static/chunks/app/api/filesystem/files/route-b277aba73f9e0212.js +0 -1
  659. package/.next/static/chunks/app/api/filesystem/mkdir/route-b277aba73f9e0212.js +0 -1
  660. package/.next/static/chunks/app/api/filesystem/read/route-b277aba73f9e0212.js +0 -1
  661. package/.next/static/chunks/app/api/git/clone/route-b277aba73f9e0212.js +0 -1
  662. package/.next/static/chunks/app/api/git/commit/route-b277aba73f9e0212.js +0 -1
  663. package/.next/static/chunks/app/api/git/diff/route-b277aba73f9e0212.js +0 -1
  664. package/.next/static/chunks/app/api/git/discard/route-b277aba73f9e0212.js +0 -1
  665. package/.next/static/chunks/app/api/git/generate-message/route-b277aba73f9e0212.js +0 -1
  666. package/.next/static/chunks/app/api/git/push/route-b277aba73f9e0212.js +0 -1
  667. package/.next/static/chunks/app/api/git/status/route-b277aba73f9e0212.js +0 -1
  668. package/.next/static/chunks/app/api/github/file-content/route-b277aba73f9e0212.js +0 -1
  669. package/.next/static/chunks/app/api/github/orgs/route-b277aba73f9e0212.js +0 -1
  670. package/.next/static/chunks/app/api/github/prs/checks/route-b277aba73f9e0212.js +0 -1
  671. package/.next/static/chunks/app/api/github/prs/diff/route-b277aba73f9e0212.js +0 -1
  672. package/.next/static/chunks/app/api/github/prs/review/route-b277aba73f9e0212.js +0 -1
  673. package/.next/static/chunks/app/api/github/prs/route-b277aba73f9e0212.js +0 -1
  674. package/.next/static/chunks/app/api/github/prs/view/route-b277aba73f9e0212.js +0 -1
  675. package/.next/static/chunks/app/api/github/repos/route-b277aba73f9e0212.js +0 -1
  676. package/.next/static/chunks/app/api/github/review-session/route-b277aba73f9e0212.js +0 -1
  677. package/.next/static/chunks/app/api/health/route-b277aba73f9e0212.js +0 -1
  678. package/.next/static/chunks/app/api/hooks/route-b277aba73f9e0212.js +0 -1
  679. package/.next/static/chunks/app/api/jobs/[id]/route-b277aba73f9e0212.js +0 -1
  680. package/.next/static/chunks/app/api/jobs/[id]/runs/[runId]/route-b277aba73f9e0212.js +0 -1
  681. package/.next/static/chunks/app/api/jobs/[id]/runs/[runId]/transcript/route-b277aba73f9e0212.js +0 -1
  682. package/.next/static/chunks/app/api/jobs/[id]/runs/route-b277aba73f9e0212.js +0 -1
  683. package/.next/static/chunks/app/api/jobs/[id]/trigger/route-b277aba73f9e0212.js +0 -1
  684. package/.next/static/chunks/app/api/jobs/mcp-discover/route-b277aba73f9e0212.js +0 -1
  685. package/.next/static/chunks/app/api/jobs/route-b277aba73f9e0212.js +0 -1
  686. package/.next/static/chunks/app/api/jobs/status/route-b277aba73f9e0212.js +0 -1
  687. package/.next/static/chunks/app/api/mcp-servers/[name]/route-b277aba73f9e0212.js +0 -1
  688. package/.next/static/chunks/app/api/mcp-servers/[name]/test/route-b277aba73f9e0212.js +0 -1
  689. package/.next/static/chunks/app/api/mcp-servers/route-b277aba73f9e0212.js +0 -1
  690. package/.next/static/chunks/app/api/sessions/[id]/context/route-b277aba73f9e0212.js +0 -1
  691. package/.next/static/chunks/app/api/sessions/[id]/mcp/route-b277aba73f9e0212.js +0 -1
  692. package/.next/static/chunks/app/api/sessions/[id]/route-b277aba73f9e0212.js +0 -1
  693. package/.next/static/chunks/app/api/sessions/[id]/search/route-b277aba73f9e0212.js +0 -1
  694. package/.next/static/chunks/app/api/sessions/pinned/route-b277aba73f9e0212.js +0 -1
  695. package/.next/static/chunks/app/api/sessions/route-b277aba73f9e0212.js +0 -1
  696. package/.next/static/chunks/app/api/skills/[name]/route-b277aba73f9e0212.js +0 -1
  697. package/.next/static/chunks/app/api/skills/route-b277aba73f9e0212.js +0 -1
  698. package/.next/static/chunks/app/api/usage/route-b277aba73f9e0212.js +0 -1
  699. package/.next/static/chunks/app/api/version/cockpit/route-b277aba73f9e0212.js +0 -1
  700. package/.next/static/chunks/app/api/version/route-b277aba73f9e0212.js +0 -1
  701. package/.next/static/chunks/next/dist/client/components/builtin/app-error-b277aba73f9e0212.js +0 -1
  702. package/.next/static/chunks/next/dist/client/components/builtin/forbidden-b277aba73f9e0212.js +0 -1
  703. package/.next/static/chunks/next/dist/client/components/builtin/not-found-b277aba73f9e0212.js +0 -1
  704. package/.next/static/chunks/next/dist/client/components/builtin/unauthorized-b277aba73f9e0212.js +0 -1
  705. package/.next/static/chunks/webpack-2a5835e108df6f34.js +0 -1
  706. package/.next/static/css/1e1239c76b265910.css +0 -1
  707. /package/.next/static/{V2EfPtTUC96VYyF12K0om → zr8XZzqb74eHitdlkpo-C}/_ssgManifest.js +0 -0
@@ -0,0 +1 @@
1
+ "use strict";exports.id=1011,exports.ids=[1011],exports.modules={26773:(a,b,c)=>{c.d(b,{A:()=>d});let d=(0,c(41926).A)("cpu",[["path",{d:"M12 20v2",key:"1lh1kg"}],["path",{d:"M12 2v2",key:"tus03m"}],["path",{d:"M17 20v2",key:"1rnc9c"}],["path",{d:"M17 2v2",key:"11trls"}],["path",{d:"M2 12h2",key:"1t8f8n"}],["path",{d:"M2 17h2",key:"7oei6x"}],["path",{d:"M2 7h2",key:"asdhe0"}],["path",{d:"M20 12h2",key:"1q8mjw"}],["path",{d:"M20 17h2",key:"1fpfkl"}],["path",{d:"M20 7h2",key:"1o8tra"}],["path",{d:"M7 20v2",key:"4gnj0m"}],["path",{d:"M7 2v2",key:"1i4yhu"}],["rect",{x:"4",y:"4",width:"16",height:"16",rx:"2",key:"1vbyd7"}],["rect",{x:"8",y:"8",width:"8",height:"8",rx:"1",key:"z9xiuo"}]])},41011:(a,b,c)=>{c.d(b,{Q:()=>s});var d=c(48249);let e=(0,c(41926).A)("key",[["path",{d:"m15.5 7.5 2.3 2.3a1 1 0 0 0 1.4 0l2.1-2.1a1 1 0 0 0 0-1.4L19 4",key:"g0fldk"}],["path",{d:"m21 2-9.6 9.6",key:"1j0ho8"}],["circle",{cx:"7.5",cy:"15.5",r:"5.5",key:"yqb3hr"}]]);var f=c(54183),g=c(26773),h=c(45535),i=c(69473),j=c(57684),k=c(67484),l=c(88877),m=c(28213);let n=["low","medium","high","xhigh","max"];function o(a){return/TOKEN|SECRET|PASSWORD/i.test(a)||a.toUpperCase().endsWith("_KEY")}function p({selected:a,onChange:b}){return(0,d.jsx)("div",{className:"ml-auto flex flex-wrap gap-1 justify-end",children:n.map(c=>(0,d.jsx)("button",{type:"button",onClick:()=>b(a.includes(c)?a.filter(a=>a!==c):[...a,c]),className:`rounded px-2 py-0.5 text-xs transition-colors ${a.includes(c)?"bg-primary text-primary-foreground":"bg-muted text-muted-foreground hover:text-foreground"}`,children:c},c))})}function q({selected:a,onChange:b}){let c=Object.keys(m.XR);return(0,d.jsx)("div",{className:"ml-auto flex flex-wrap gap-1 justify-end",children:c.map(c=>{let e=a.includes(c);return(0,d.jsx)("button",{type:"button",onClick:()=>b(e?a.filter(a=>a!==c):[...a,c]),className:`rounded px-2 py-0.5 text-xs transition-colors ${e?"bg-primary text-primary-foreground":"bg-muted text-muted-foreground hover:text-foreground"}`,children:m.XR[c].label},c)})})}function r({active:a,onClick:b,icon:c,label:e}){return(0,d.jsxs)("button",{onClick:b,className:`flex items-center gap-2 px-3 py-1.5 rounded text-xs font-medium transition-colors ${a?"bg-primary/10 text-primary":"text-muted-foreground hover:text-foreground hover:bg-muted"}`,children:[c,e]})}function s({provider:a,isNew:b,onSave:c,onCancel:n,onDelete:t,lockedEnvKeys:u}){let[v,w]=(0,k.useState)("general"),[x,y]=(0,k.useState)(a.name),[z,A]=(0,k.useState)(Object.entries(a.envVars)),[B,C]=(0,k.useState)(a.models),[D,E]=(0,k.useState)(""),[F,G]=(0,k.useState)(""),[H,I]=(0,k.useState)(""),[J,K]=(0,k.useState)(""),[L,M]=(0,k.useState)([]),[N,O]=(0,k.useState)(["200k"]),[P,Q]=(0,k.useState)(null),[R,S]=(0,k.useState)(!1),T=new Set(u??[]),U=async()=>{if(x.trim()){S(!0);try{await c({...a,name:x,envVars:Object.fromEntries(z),models:B})}finally{S(!1)}}},V=()=>{D.trim()&&(A([...z,[D.trim(),F]]),E(""),G(""))},W=()=>{H.trim()&&N.length>0&&(C([...B,{modelId:H.trim(),displayName:J.trim()||H.trim(),effortLevels:L,contextSizes:N}]),I(""),K(""),M([]),O(["200k"]))},X=()=>{P&&0!==P.contextSizes.length&&(C(B.map((a,b)=>b===P.index?{modelId:P.modelId.trim(),displayName:P.displayName.trim()||P.modelId.trim(),effortLevels:P.effortLevels,contextSizes:P.contextSizes}:a)),Q(null))};return(0,d.jsxs)("div",{className:"flex flex-col h-full",children:[(0,d.jsxs)("div",{className:"flex gap-1 px-1 pb-3 border-b shrink-0",children:[(0,d.jsx)(r,{active:"general"===v,onClick:()=>w("general"),icon:(0,d.jsx)(e,{className:"h-3.5 w-3.5"}),label:"General"}),(0,d.jsx)(r,{active:"models"===v,onClick:()=>w("models"),icon:(0,d.jsx)(f.A,{className:"h-3.5 w-3.5"}),label:"Models"})]}),(0,d.jsxs)("div",{className:"flex-1 overflow-y-auto py-4 space-y-4",children:["general"===v&&(0,d.jsxs)("div",{className:"space-y-4 sm:space-y-5",children:[(0,d.jsxs)("div",{className:"flex flex-col sm:flex-row sm:items-center gap-1.5 sm:gap-2",children:[(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"}),(0,d.jsx)("span",{className:"text-xs font-medium text-foreground",children:"Name"})]}),(0,d.jsx)(l.p,{value:x,onChange:a=>y(a.target.value),placeholder:"e.g. OpenRouter",className:"sm:ml-auto sm:w-56 text-xs h-7"})]}),(0,d.jsxs)("div",{className:"space-y-2 sm:space-y-3",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)(e,{className:"h-3.5 w-3.5 text-muted-foreground"}),(0,d.jsx)("span",{className:"text-xs font-medium text-foreground",children:"Environment Variables"})]}),(0,d.jsx)("div",{className:"space-y-1.5",children:z.map(([a,b],c)=>{let e=T.has(a),f=o(a);return(0,d.jsxs)("div",{className:"rounded-lg border border-border px-3 py-2 text-xs space-y-1.5",children:[(0,d.jsx)("div",{className:"flex items-center gap-2",children:e?(0,d.jsx)("span",{className:"font-mono text-muted-foreground truncate",children:a}):(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(l.p,{value:a,onChange:a=>{let d=[...z];d[c]=[a.target.value,b],A(d)},placeholder:"KEY",className:"flex-1 min-w-0 font-mono text-xs h-7"}),(0,d.jsx)("button",{type:"button",onClick:()=>A(z.filter((a,b)=>b!==c)),className:"shrink-0 text-muted-foreground hover:text-foreground p-0.5",children:(0,d.jsx)(h.A,{className:"h-3.5 w-3.5"})})]})}),(0,d.jsx)(l.p,{type:f?"password":"text",value:b,onChange:b=>{let d=[...z];d[c]=[a,b.target.value],A(d)},placeholder:f?"••••••••":"value",className:"w-full font-mono text-xs h-7"})]},c)})}),(0,d.jsxs)("div",{className:"rounded-lg border border-dashed border-input px-3 py-2 space-y-1.5",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)(l.p,{value:D,onChange:a=>E(a.target.value),placeholder:"NEW_KEY",className:"flex-1 min-w-0 font-mono text-xs h-7",onKeyDown:a=>"Enter"===a.key&&V()}),(0,d.jsx)("button",{type:"button",onClick:V,className:"shrink-0 text-muted-foreground hover:text-foreground p-0.5",children:(0,d.jsx)(i.A,{className:"h-3.5 w-3.5"})})]}),(0,d.jsx)(l.p,{type:o(D)?"password":"text",value:F,onChange:a=>G(a.target.value),placeholder:o(D)?"••••••••":"value",className:"w-full font-mono text-xs h-7",onKeyDown:a=>"Enter"===a.key&&V()})]})]})]}),"models"===v&&(0,d.jsxs)("div",{className:"space-y-4",children:[0===B.length&&!P&&(0,d.jsx)("p",{className:"text-xs text-muted-foreground py-4 text-center",children:"No models configured yet."}),(0,d.jsx)("div",{className:"space-y-1",children:B.map((a,b)=>P?.index===b?(0,d.jsxs)("div",{className:"rounded-lg border border-primary/30 bg-primary/5 px-3 sm:px-4 py-3 space-y-3",children:[(0,d.jsxs)("div",{className:"flex flex-col sm:flex-row gap-2",children:[(0,d.jsx)(l.p,{value:P.modelId,onChange:a=>Q({...P,modelId:a.target.value}),placeholder:"Model ID",className:"flex-1 font-mono text-xs h-7"}),(0,d.jsx)(l.p,{value:P.displayName,onChange:a=>Q({...P,displayName:a.target.value}),placeholder:"Display name",className:"flex-1 text-xs h-7"})]}),(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("span",{className:"text-xs text-muted-foreground",children:"Thinking"}),(0,d.jsx)(p,{selected:P.effortLevels,onChange:a=>Q({...P,effortLevels:a})})]}),(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)("span",{className:"text-xs text-muted-foreground",children:"Context"}),(0,d.jsx)(q,{selected:P.contextSizes,onChange:a=>Q({...P,contextSizes:a})})]}),(0,d.jsxs)("div",{className:"flex gap-1.5",children:[(0,d.jsx)("button",{type:"button",onClick:()=>Q(null),className:"px-2.5 py-1 text-xs rounded-md border border-input text-muted-foreground hover:text-foreground hover:bg-muted transition-colors",children:"Cancel"}),(0,d.jsx)("button",{type:"button",onClick:X,disabled:!P.modelId.trim()||0===P.contextSizes.length,className:"px-2.5 py-1 text-xs rounded-md bg-primary text-primary-foreground hover:brightness-110 transition-all disabled:opacity-50",children:"Save"})]})]})]},b):(0,d.jsxs)("button",{type:"button",onClick:()=>Q({index:b,modelId:a.modelId,displayName:a.displayName,effortLevels:a.effortLevels,contextSizes:a.contextSizes}),className:"flex w-full items-center gap-2 sm:gap-3 rounded-lg border border-border px-3 sm:px-4 py-2.5 text-xs hover:bg-muted/50 transition-colors text-left",children:[(0,d.jsxs)("div",{className:"flex flex-col sm:flex-row sm:items-center gap-0.5 sm:gap-3 min-w-0 flex-1",children:[(0,d.jsx)("span",{className:"font-mono font-medium truncate",children:a.modelId}),a.displayName!==a.modelId&&(0,d.jsx)("span",{className:"text-muted-foreground truncate",children:a.displayName})]}),(0,d.jsxs)("div",{className:"flex items-center gap-2 shrink-0",children:[a.effortLevels.length>0&&(0,d.jsx)("span",{className:"text-muted-foreground hidden sm:inline",children:a.effortLevels.join(", ")}),a.contextSizes.filter(a=>"200k"!==a).map(a=>(0,d.jsx)("span",{className:"text-muted-foreground",children:m.XR[a].label},a)),(0,d.jsx)("button",{type:"button",onClick:a=>{a.stopPropagation(),C(B.filter((a,c)=>c!==b))},className:"text-muted-foreground hover:text-destructive p-0.5",children:(0,d.jsx)(h.A,{className:"h-3 w-3"})})]})]},b))}),(0,d.jsxs)("div",{className:"rounded-lg border border-dashed border-input px-3 sm:px-4 py-3 space-y-3",children:[(0,d.jsxs)("div",{className:"flex flex-col sm:flex-row gap-2",children:[(0,d.jsx)(l.p,{value:H,onChange:a=>I(a.target.value),placeholder:"Model ID (e.g. openai/gpt-4o)",className:"flex-1 font-mono text-xs h-7",onKeyDown:a=>"Enter"===a.key&&W()}),(0,d.jsx)(l.p,{value:J,onChange:a=>K(a.target.value),placeholder:"Display name",className:"flex-1 text-xs h-7",onKeyDown:a=>"Enter"===a.key&&W()})]}),(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("span",{className:"text-xs text-muted-foreground",children:"Thinking"}),(0,d.jsx)(p,{selected:L,onChange:M})]}),(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)("span",{className:"text-xs text-muted-foreground",children:"Context"}),(0,d.jsx)(q,{selected:N,onChange:O})]}),(0,d.jsxs)("button",{type:"button",onClick:W,disabled:!H.trim()||0===N.length,className:"flex items-center gap-1.5 px-3 py-1.5 text-xs rounded-md border border-input text-muted-foreground hover:text-foreground hover:bg-muted transition-colors disabled:opacity-50",children:[(0,d.jsx)(i.A,{className:"h-3 w-3"}),"Add model"]})]})]})]})]}),(0,d.jsxs)("div",{className:"flex items-center justify-between pt-3 border-t shrink-0",children:[(0,d.jsx)("div",{children:t&&(0,d.jsxs)("button",{onClick:t,className:"flex items-center gap-1.5 px-3 py-1.5 text-xs rounded-md text-destructive hover:bg-destructive/10 transition-colors",children:[(0,d.jsx)(j.A,{className:"h-3 w-3"}),"Delete"]})}),(0,d.jsxs)("div",{className:"flex gap-2",children:[(0,d.jsx)("button",{onClick:n,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:U,disabled:!x.trim()||R,className:"px-4 py-1.5 text-xs rounded-md bg-primary text-primary-foreground hover:brightness-110 transition-all disabled:opacity-50",children:R?"Saving...":b?"Create":"Save"})]})]})]})}},54183:(a,b,c)=>{c.d(b,{A:()=>d});let d=(0,c(41926).A)("layers",[["path",{d:"M12.83 2.18a2 2 0 0 0-1.66 0L2.6 6.08a1 1 0 0 0 0 1.83l8.58 3.91a2 2 0 0 0 1.66 0l8.58-3.9a1 1 0 0 0 0-1.83z",key:"zw3jo"}],["path",{d:"M2 12a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 12",key:"1wduqc"}],["path",{d:"M2 17a1 1 0 0 0 .58.91l8.6 3.91a2 2 0 0 0 1.65 0l8.58-3.9A1 1 0 0 0 22 17",key:"kqbvx6"}]])}};
@@ -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})}},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:()=>I});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(94856),s=c(45326),t=c(42708),u=c(53649);function v(a,b){let c=a.toLowerCase();return("write"===c||"edit"===c)&&(b.includes("/.claude/plans/")||b.startsWith("~/.claude/plans/"))&&b.endsWith(".md")}function w({tool:a,expandedToolIds:b}){let c=function(){let[a,b]=(0,k.useState)(!1);return a}(),{backgroundTasks:g}=(0,s.E2)(),{settings:h,loaded:i}=(0,o.t)(),j=(0,k.useMemo)(()=>(function(a){if(!a)return{};try{return JSON.parse(a)}catch{return{}}})(a.input),[a.input]),[l,m]=(0,k.useState)(()=>b?.current?.has(a.id)??!1),[n,r]=(0,k.useState)(!1),t=(0,k.useRef)(b?.current?.has(a.id)??!1),z=j.file_path||a.filePath||"",A=v(a.name,z),B=j.content||"",C=A&&("Write"===a.name||"write"===a.name)&&B,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(C)return void r(!0);if(!D)return;let c=!l;E.current=c,t.current=!0,m(c),b?.current&&(c?b.current.add(a.id):b.current.delete(a.id))},className:(0,p.cn)("flex w-full items-center gap-2 px-3 py-1.5 text-left",D&&"cursor-pointer hover:bg-muted/50",!D&&"cursor-default"),children:[C?(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",l&&"rotate-90")}),(0,d.jsx)("span",{className:"font-mono font-medium",children:a.name}),"Agent"===a.name&&("running"===a.status||g.some(b=>b.toolUseId===a.id&&"running"===b.status))&&(0,d.jsx)(e.A,{className:"h-3 w-3 shrink-0 animate-spin text-muted-foreground"}),(0,d.jsx)(x,{tool:a,input:j})]}),l&&D&&(0,d.jsx)("div",{ref:F,className:"border-t border-border px-3 py-2 space-y-2",children:(0,d.jsx)(y,{tool:a,input:j,dark:c,expandedToolIds:b})})]}),C&&(0,d.jsx)(u.G,{open:n,onOpenChange:r,content:B,filePath:z})]})}function x({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=v(c,e);return(0,d.jsxs)("span",{className:"text-muted-foreground truncate",children:[(0,r._1)(e),f?" (plan edit)":""]})}if("Write"===c||"write"===c){let e=b.file_path||a.filePath||"";if(!e)return null;let f=b.content||"";return v(c,e)&&f?(0,d.jsx)("span",{className:"text-blue-500 truncate",children:"View plan"}):(0,d.jsx)("span",{className:"text-muted-foreground truncate",children:(0,r._1)(e)})}if("Read"===c||"read"===c){let c=b.file_path||a.filePath||"";return c?(0,d.jsx)("span",{className:"text-muted-foreground truncate",children:(0,r._1)(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("Agent"===c){let a=b.description||b.prompt||"",c=a.length>60?a.slice(0,60)+"...":a,e=b.model,f=[b.subagent_type,e].filter(Boolean);return(0,d.jsxs)("span",{className:"flex items-center gap-1.5 truncate",children:[c&&(0,d.jsx)("span",{className:"text-muted-foreground truncate",children:c}),f.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))]})}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 y({tool:a,input:b,dark:c,expandedToolIds:e}){let f=a.name;return"Edit"===f||"edit"===f?(0,d.jsx)(z,{input:b,tool:a,dark:c}):"Write"===f||"write"===f?(0,d.jsx)(A,{input:b,tool:a,dark:c}):"Read"===f||"read"===f?(0,d.jsx)(B,{input:b,tool:a,dark:c}):"Bash"===f||"bash"===f?(0,d.jsx)(C,{input:b,tool:a}):"Grep"===f||"grep"===f||"Glob"===f||"glob"===f?(0,d.jsx)(D,{input:b,tool:a}):"Agent"===f?(0,d.jsx)(E,{input:b,tool:a,dark:c,expandedToolIds:e}):(0,d.jsx)(F,{input:b,tool:a})}function z({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)(t.Mh,{filePath:e,oldString:f,newString:g,dark:c}):(0,d.jsx)(F,{input:a,tool:b})}function A({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)("div",{className:"font-mono text-muted-foreground",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 B({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)("div",{className:"font-mono text-muted-foreground",children:e}),b.output&&(0,d.jsx)(l.NG,{code:b.output,language:f,dark:c})]})}function C({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",children:[(0,d.jsx)("span",{className:"text-foreground/60",children:"$"})," ",c]}),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 D({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,r._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 E({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)(w,{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 F({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 G=/<(?:task-notification|local-command-caveat|local-command-stdout|command-name|system-reminder)[^>]*>[\s\S]*?<\/(?:task-notification|local-command-caveat|local-command-stdout|command-name|system-reminder)>[\s\S]*/g;function H(a){return a.replace(G,"").trim()}let I=(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,x=!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=(0,k.useRef)(!1),C=(0,k.useRef)(null),D=(0,k.useCallback)(b=>{B.current||i&&(b.preventDefault(),x&&o?.(a.id))},[x,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){x&&o?.(a.id);return}if(!x)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,x,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: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)(J,{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)(w,{tool:a.toolUse,expandedToolIds:c},a.toolUse.id):"thinking"===a.type?(0,d.jsx)(K,{text:a.text,tokens:a.tokens,durationMs:a.durationMs,redacted:a.redacted},`thinking-${b}`):(0,d.jsx)(m.Y,{content:H(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)(w,{tool:a,expandedToolIds:c},a.id))}),(0,d.jsx)(m.Y,{content:H(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 J({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 K({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);let e={diffStyle:"split",dismissKeyboardOnSend:!0,thinkingLevel:"high",bypassAllPermissions:!1,thinkingExpanded:!1,readExpanded:!1,editExpanded:!1,toolCallsExpanded:!1,model:"sonnet"};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"},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={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=`
2
2
  .code-block-lines code {
3
3
  counter-reset: line ${j-1};
4
4
  }
@@ -17,4 +17,4 @@ 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:()=>j,L3:()=>l,c7:()=>k,lG:()=>i});var d=c(48249),e=c(45535),f=c(57684),g=c(67484),h=c(14490);function i({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,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,h.cn)("w-full max-h-full flex flex-col",e||"max-w-lg"),children:c})}):null}function j({className:a,children:b,...c}){return(0,d.jsxs)("div",{className:(0,h.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 k({className:a,...b}){return(0,d.jsx)("div",{className:(0,h.cn)("flex flex-col space-y-1.5 text-center sm:text-left",a),...b})}function l({className:a,...b}){return(0,d.jsx)("h2",{className:(0,h.cn)("text-lg font-semibold leading-none tracking-tight",a),...b})}},42377:(a,b,c)=>{"use strict";c.d(b,{Y:()=>n});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);let m={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"})})]})}};function n({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],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:m,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))},45326:(a,b,c)=>{"use strict";c.d(b,{GV:()=>ad,si:()=>$,E2:()=>Z,mq:()=>_,tB:()=>aa});var d=c(48249),e=c(22130),f=c(63120),g=c(81220),h=c(19099),i=c(67484);function j({children:a}){(0,h.useRouter)();let[b,c]=(0,i.useState)(!1);return b?(0,d.jsx)(d.Fragment,{children:a}):null}var k=c(33636),l=c(46940),m=c(78321),n=c(11577),o=c(28624),p=c(45535),q=c(69357),r=c(69473),s=c(32823),t=c(90069),u=c(25297);function v({cwd:a}){let b=(0,h.useRouter)(),c=(0,h.usePathname)(),[e,f]=(0,i.useState)(!1),[g,j]=(0,i.useState)(null),[w,x]=(0,i.useState)(!1),[y,z]=(0,i.useState)(null);(0,i.useCallback)(()=>{a&&(x(!0),z(null),j(null),fetch(`/api/git/status?cwd=${encodeURIComponent(a)}`).then(a=>{if(!a.ok)throw Error("Failed to fetch");return a.json()}).then(a=>j(a)).catch(()=>z("Not a git repository")).finally(()=>x(!1)))},[a]);let A=g?.files.reduce((a,b)=>a+b.additions,0)??0,B=g?.files.reduce((a,b)=>a+b.deletions,0)??0;return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(u.$,{variant:"ghost",size:"icon",onClick:()=>{j(null),z(null),f(!0)},title:"Git status",disabled:!a,children:(0,d.jsx)(o.A,{className:"h-4 w-4"})}),e&&(0,d.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/50",onMouseDown:a=>{a.target===a.currentTarget&&f(!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)(o.A,{className:"h-4 w-4"}),(0,d.jsx)("h2",{className:"text-base font-semibold",children:"Git Status"})]}),(0,d.jsx)(u.$,{variant:"ghost",size:"icon",onClick:()=>f(!1),children:(0,d.jsx)(p.A,{className:"h-4 w-4"})})]}),w&&(0,d.jsx)("div",{className:"flex items-center justify-center py-8",children:(0,d.jsx)(q.A,{className:"h-5 w-5 animate-spin text-muted-foreground"})}),!w&&y&&(0,d.jsx)("p",{className:"text-sm text-muted-foreground py-4 text-center",children:y}),!w&&g&&(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)("div",{className:"flex items-center gap-2 mb-3 px-1",children:[(0,d.jsx)("span",{className:"text-sm text-muted-foreground",children:"Branch:"}),(0,d.jsx)("span",{className:"font-mono text-sm font-bold",children:g.branch})]}),0===g.files.length?(0,d.jsx)("p",{className:"text-sm text-muted-foreground py-4 text-center",children:"Working tree clean"}):(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)("div",{className:"flex items-center gap-3 mb-2 px-1 text-xs text-muted-foreground",children:[(0,d.jsxs)("span",{children:[g.files.length," file",1!==g.files.length?"s":""," changed"]}),A>0&&(0,d.jsxs)("span",{className:"flex items-center gap-0.5 text-green-500",children:[(0,d.jsx)(r.A,{className:"h-3 w-3"}),A]}),B>0&&(0,d.jsxs)("span",{className:"flex items-center gap-0.5 text-red-500",children:[(0,d.jsx)(s.A,{className:"h-3 w-3"}),B]})]}),(0,d.jsx)("div",{className:"flex-1 min-h-0 overflow-y-auto border rounded",children:g.files.map(a=>(0,d.jsxs)("div",{className:"flex items-center gap-2 px-3 py-1.5 text-sm border-b last:border-b-0 hover:bg-muted/50",children:[function(a){switch(a){case"added":case"untracked":return(0,d.jsx)(k.A,{className:"h-3.5 w-3.5 text-green-500"});case"deleted":return(0,d.jsx)(l.A,{className:"h-3.5 w-3.5 text-red-500"});case"renamed":return(0,d.jsx)(m.A,{className:"h-3.5 w-3.5 text-blue-500"});default:return(0,d.jsx)(n.A,{className:"h-3.5 w-3.5 text-yellow-500"})}}(a.status),(0,d.jsx)("span",{className:"font-mono text-xs truncate flex-1 min-w-0",children:a.path}),(0,d.jsxs)("div",{className:"flex items-center gap-2 shrink-0 text-xs",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))}),(0,d.jsxs)(u.$,{variant:"outline",size:"sm",className:"mt-3 gap-1.5",onClick:()=>{f(!1);let d=c.match(/^\/sessions\/([^/?]+)/),e=d?`&sessionId=${encodeURIComponent(d[1])}`:"";b.push(`/changes?cwd=${encodeURIComponent(a)}${e}`)},children:[(0,d.jsx)(t.A,{className:"h-3.5 w-3.5"}),"View changes"]})]})]})]})})]})}var w=c(35471),x=c(20878),y=c(29813),z=c(2864),A=c(63647),B=c(20390);function C({timestamp:a,onClose:b}){let{sessionId:c,cwd:e}=Z(),[f,g]=(0,i.useState)([]),[h,j]=(0,i.useState)(""),[k,l]=(0,i.useState)(!0),[m,n]=(0,i.useState)(null),o=(0,i.useRef)(null),r=(0,i.useRef)(new Set),s=(0,i.useCallback)(a=>{a.target===a.currentTarget&&b()},[b]);return(0,d.jsx)("div",{className:"fixed inset-0 z-50 bg-black/50 flex items-center justify-center p-4",onClick:s,children:(0,d.jsxs)(A.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)(u.$,{variant:"ghost",size:"icon",className:"h-6 w-6",onClick:b,children:(0,d.jsx)(p.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:[k&&(0,d.jsx)("div",{className:"flex justify-center py-12",children:(0,d.jsx)(q.A,{className:"h-5 w-5 animate-spin text-muted-foreground"})}),m&&(0,d.jsx)("div",{className:"text-center text-sm text-red-500 py-12",children:m}),!k&&f.map(a=>(0,d.jsx)("div",{ref:a.id===h?o:void 0,className:a.id===h?"ring-2 ring-primary/50 rounded-lg":void 0,children:(0,d.jsx)(B.s,{message:a,expandedToolIds:r})},a.id))]})]})})}function D({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 E({text:a}){let[b,c]=(0,i.useState)(!1),e=(0,i.useCallback)(b=>{b.stopPropagation(),navigator.clipboard.writeText(a),c(!0),setTimeout(()=>c(!1),1500)},[a]);return(0,d.jsx)(u.$,{variant:"ghost",size:"icon",className:"h-6 w-6 shrink-0",onClick:e,title:"Copy full message",children:b?(0,d.jsx)(w.A,{className:"h-3 w-3"}):(0,d.jsx)(x.A,{className:"h-3 w-3"})})}function F({onClose:a}){let{sessionId:b,cwd:c}=Z(),[e,f]=(0,i.useState)(""),[g,h]=(0,i.useState)([]),[j,k]=(0,i.useState)(!1),[l,m]=(0,i.useState)(!1),[n,o]=(0,i.useState)(null),r=(0,i.useRef)(null);(0,i.useRef)(null);let s=(0,i.useCallback)(a=>{o(a)},[]),t=(0,i.useCallback)(b=>{b.target===b.currentTarget&&a()},[a]);return null!==n?(0,d.jsx)(C,{timestamp:n,onClose:()=>o(null)}):(0,d.jsx)("div",{className:"fixed inset-0 z-50 bg-black/50 flex items-center justify-center p-4",onClick:t,children:(0,d.jsxs)(A.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)(y.A,{className:"h-4 w-4 text-muted-foreground shrink-0"}),(0,d.jsx)("input",{ref:r,value:e,onChange:a=>f(a.target.value),placeholder:"Search messages...",className:"flex-1 bg-transparent outline-none text-sm"}),j&&(0,d.jsx)(q.A,{className:"h-4 w-4 animate-spin text-muted-foreground shrink-0"}),(0,d.jsx)(u.$,{variant:"ghost",size:"icon",className:"h-6 w-6 shrink-0",onClick:a,children:(0,d.jsx)(p.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:()=>s(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)(z.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)(E,{text:a.fullContent})})]}),(0,d.jsx)(D,{preview:a.preview,matchStart:a.matchStart,matchLength:a.matchLength})]},`${a.messageId}-${b}`))]})]})})}function G(){let{sessionId:a}=Z(),[b,c]=(0,i.useState)(!1);return a?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(u.$,{variant:"ghost",size:"icon",onClick:()=>c(!0),title:"Search messages (Ctrl+F)",children:(0,d.jsx)(y.A,{className:"h-4 w-4"})}),b&&(0,d.jsx)(F,{onClose:()=>c(!1)})]}):null}var H=c(77900),I=c(24950),J=c(99646);function K({tasks:a}){let[b,c]=(0,i.useState)(!1),e=a.filter(a=>"running"===a.status);return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)(u.$,{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)(I.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)(u.$,{variant:"ghost",size:"icon",onClick:()=>c(!1),children:(0,d.jsx)(p.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)(J.A,{className:"h-4 w-4 shrink-0 mt-0.5 text-green-500"}):(0,d.jsx)(q.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.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 L=c(18201),M=c(82373);function N({todos:a}){let[b,c]=(0,i.useState)(!1),e=(0,i.useMemo)(()=>a.filter(a=>"completed"!==a.status).length,[a]);return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)(u.$,{variant:"ghost",size:"icon",className:"h-8 w-8 relative",onClick:()=>c(!0),title:`${e} todo${1!==e?"s":""}`,children:[(0,d.jsx)(L.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)(u.$,{variant:"ghost",size:"icon",onClick:()=>c(!1),children:(0,d.jsx)(p.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)(O,{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 O({status:a}){return"completed"===a?(0,d.jsx)(J.A,{className:"h-4 w-4 shrink-0 mt-0.5 text-green-500"}):"in_progress"===a?(0,d.jsx)(q.A,{className:"h-4 w-4 shrink-0 mt-0.5 animate-spin text-blue-500"}):(0,d.jsx)(M.A,{className:"h-4 w-4 shrink-0 mt-0.5 text-muted-foreground"})}var P=c(41290),Q=c(27993);let R=null,S=0,T=null;async function U(a=!1){let b=Date.now();return!a&&R&&b-S<3e4?R:T||(T=(async()=>{try{let a=await fetch("/api/usage");if(!a.ok)return null;let b=await a.json();return R=b,S=Date.now(),b}catch{return null}finally{T=null}})())}function V({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 W(){let[a,b]=(0,i.useState)(!1),{usage:c,loading:e,error:f,refresh:g}=function(){let[a,b]=(0,i.useState)(R),[c,d]=(0,i.useState)(null===R),[e,f]=(0,i.useState)(null),g=(0,i.useRef)(!0);return{usage:a,loading:c,error:e,refresh:(0,i.useCallback)(async(a=!1)=>{a&&d(!0);let c=await U(a);g.current&&(c?(b(c),f(null)):R||f("Failed to load usage data"),d(!1))},[])}}(),h=c?.seven_day&&c.seven_day.utilization>=100?100:c?.five_hour?.utilization??0;return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(u.$,{variant:"ghost",size:"icon",onClick:()=>b(!0),title:"Account usage",children:(0,d.jsx)(P.A,{className:`h-4 w-4 ${c?h>80?"text-red-500":h>50?"text-orange-500":"text-green-500":""}`})}),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:"Account Usage"}),(0,d.jsxs)("div",{className:"flex gap-1",children:[(0,d.jsx)(u.$,{variant:"ghost",size:"icon",onClick:()=>g(!0),disabled:e,title:"Refresh usage",children:(0,d.jsx)(Q.A,{className:`h-4 w-4 ${e?"animate-spin":""}`})}),(0,d.jsx)(u.$,{variant:"ghost",size:"icon",onClick:()=>b(!1),children:(0,d.jsx)(p.A,{className:"h-4 w-4"})})]})]}),e&&!c&&(0,d.jsx)("div",{className:"flex items-center justify-center py-8",children:(0,d.jsx)(q.A,{className:"h-5 w-5 animate-spin text-muted-foreground"})}),f&&!c&&(0,d.jsx)("p",{className:"text-sm text-muted-foreground py-4 text-center",children:f}),c&&(0,d.jsxs)(d.Fragment,{children:[c.five_hour&&(0,d.jsx)(V,{label:"5-hour limit",limit:c.five_hour}),c.seven_day&&(0,d.jsx)(V,{label:"7-day limit",limit:c.seven_day}),c.seven_day_sonnet&&(0,d.jsx)(V,{label:"7-day Sonnet",limit:c.seven_day_sonnet}),c.seven_day_opus&&(0,d.jsx)(V,{label:"7-day Opus",limit:c.seven_day_opus}),c.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:["$",c.extra_usage.remaining_credits.toFixed(2)," remaining"]})]})})]})]})})]})}var X=c(93571);let Y=(0,i.createContext)({setHeader:()=>{},cwd:void 0,setCwd:()=>{},sessionId:void 0,setSessionId:()=>{},backgroundTasks:[],setBackgroundTasks:()=>{},todos:[],setTodos:()=>{},initData:null,setInitData:()=>{},sidebarContent:null,setSidebarContent:()=>{},closeSidebar:()=>{}});function Z(){return(0,i.useContext)(Y)}function $(a){let{setHeader:b}=Z()}function _(a){let{setCwd:b}=Z()}function aa(a){let{setSessionId:b}=Z()}function ab({cwd:a}){let b=(0,h.useRouter)();return(0,d.jsx)(u.$,{variant:"ghost",size:"icon",onClick:()=>b.push(`/files?cwd=${encodeURIComponent(a)}`),title:"Browse files",children:(0,d.jsx)(e.A,{className:"h-4 w-4"})})}function ac({title:a,onRename:b}){let[c,e]=(0,i.useState)(!1),[f,g]=(0,i.useState)(a),h=(0,i.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:h,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 ad({children:a}){let b=(0,i.useRef)(null),[c,e]=(0,i.useState)({title:"Cockpit"}),[h,k]=(0,i.useState)(void 0),[l,m]=(0,i.useState)(void 0),[n,o]=(0,i.useState)([]),[p,q]=(0,i.useState)([]),[r,s]=(0,i.useState)(null),[t,w]=(0,i.useState)(null),x=(0,i.useCallback)(a=>{w(a)},[]),y=(0,i.useCallback)(a=>{e(a)},[]),z=(0,i.useCallback)(a=>{k(a)},[]),A=(0,i.useCallback)(a=>{m(a)},[]),B=(0,i.useCallback)(()=>{b.current?.toggle()},[]),C=(0,i.useCallback)(()=>{b.current?.close()},[]);return(0,d.jsx)(j,{children:(0,d.jsx)(X.f,{children:(0,d.jsx)(Y.Provider,{value:{setHeader:y,cwd:h,setCwd:z,sessionId:l,setSessionId:A,backgroundTasks:n,setBackgroundTasks:o,todos:p,setTodos:q,initData:r,setInitData:s,sidebarContent:t,setSidebarContent:x,closeSidebar:C},children:(0,d.jsxs)("div",{className:"fixed inset-0 flex",children:[(0,d.jsx)(H.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)(u.$,{variant:"ghost",size:"icon",onClick:B,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)(ac,{title:c.title,onRename:c.onRename})]}),(0,d.jsxs)("div",{className:"flex items-center gap-2 shrink-0 ml-auto",children:[(0,d.jsx)(G,{}),h&&(0,d.jsx)(N,{todos:p}),h&&(0,d.jsx)(K,{tasks:n}),h&&(0,d.jsx)(W,{}),h&&(0,d.jsx)(v,{cwd:h}),h&&(0,d.jsx)(ab,{cwd:h})]})]}),(0,d.jsx)("main",{className:"flex-1 min-h-0 min-w-0 flex flex-col",children: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:()=>m});var d=c(48249),e=c(28624),f=c(22130),g=c(69357),h=c(67484),i=c(25297),j=c(38393),k=c(88877),l=c(19198);function m({open:a,onOpenChange:b,onSubmit:c}){let[n,o]=(0,h.useState)("session"),[p,q]=(0,h.useState)(""),[r,s]=(0,h.useState)(""),[t,u]=(0,h.useState)(!1),[v,w]=(0,h.useState)(""),[x,y]=(0,h.useState)(""),[z,A]=(0,h.useState)(""),[B,C]=(0,h.useState)(!1),[D,E]=(0,h.useState)(!1),[F,G]=(0,h.useState)(""),H=()=>{q(""),s(""),u(!1),w(""),y(""),A(""),C(!1),E(!1),G("")},I=async a=>{if(a.preventDefault(),v.trim()&&x.trim()){E(!0),G("");try{let a=await fetch("/api/git/clone",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({url:v.trim(),parentPath:x.trim(),folderName:z.trim()||void 0})}),d=await a.json();if(!a.ok)return void G(d.error||"Clone failed");c(d.path,r.trim()),H(),b(!1)}catch{G("Failed to connect")}finally{E(!1)}}};return(0,d.jsx)(j.lG,{open:a,onOpenChange:a=>{a||H(),b(a)},children:(0,d.jsxs)(j.Cf,{onClose:()=>{H(),b(!1)},children:[(0,d.jsx)(j.c7,{children:(0,d.jsx)(j.L3,{children:"New Session"})}),(0,d.jsxs)("div",{className:"flex gap-1 border-b mt-2",children:[(0,d.jsx)("button",{type:"button",onClick:()=>o("session"),className:`px-3 py-1.5 text-sm font-medium border-b-2 transition-colors ${"session"===n?"border-foreground text-foreground":"border-transparent text-muted-foreground hover:text-foreground"}`,children:"Open Directory"}),(0,d.jsxs)("button",{type:"button",onClick:()=>o("clone"),className:`px-3 py-1.5 text-sm font-medium border-b-2 transition-colors flex items-center gap-1.5 ${"clone"===n?"border-foreground text-foreground":"border-transparent text-muted-foreground hover:text-foreground"}`,children:[(0,d.jsx)(e.A,{className:"h-3.5 w-3.5"}),"Clone Repo"]})]}),"session"===n&&(0,d.jsxs)("form",{onSubmit:a=>{a.preventDefault(),p.trim()&&(c(p.trim(),r.trim()),H(),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)(k.p,{value:p,onChange:a=>q(a.target.value),placeholder:"/home/user/project",required:!0}),(0,d.jsx)(i.$,{type:"button",variant:"outline",size:"icon",onClick:()=>u(!t),title:"Browse directories",children:(0,d.jsx)(f.A,{className:"h-4 w-4"})})]})]}),t&&(0,d.jsx)(l.K,{onSelect:a=>{q(a),u(!1)},onCancel:()=>u(!1)}),(0,d.jsxs)("div",{children:[(0,d.jsx)("label",{className:"text-sm font-medium",children:"Name (optional)"}),(0,d.jsx)(k.p,{value:r,onChange:a=>s(a.target.value),placeholder:"My Project"})]}),(0,d.jsx)(i.$,{type:"submit",className:"w-full",disabled:!p.trim(),children:"Create Session"})]}),"clone"===n&&(0,d.jsxs)("form",{onSubmit:I,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)(k.p,{value:v,onChange:a=>w(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)(k.p,{value:x,onChange:a=>y(a.target.value),placeholder:"/home/user/projects",required:!0}),(0,d.jsx)(i.$,{type:"button",variant:"outline",size:"icon",onClick:()=>C(!B),title:"Browse directories",children:(0,d.jsx)(f.A,{className:"h-4 w-4"})})]})]}),B&&(0,d.jsx)(l.K,{onSelect:a=>{y(a),C(!1)},onCancel:()=>C(!1)}),(0,d.jsxs)("div",{children:[(0,d.jsx)("label",{className:"text-sm font-medium",children:"Folder Name (optional)"}),(0,d.jsx)(k.p,{value:z,onChange:a=>A(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)(k.p,{value:r,onChange:a=>s(a.target.value),placeholder:"My Project"})]}),F&&(0,d.jsx)("p",{className:"text-sm text-destructive",children:F}),(0,d.jsx)(i.$,{type:"submit",className:"w-full",disabled:!v.trim()||!x.trim()||D,children:D?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(g.A,{className:"h-4 w-4 animate-spin mr-2"}),"Cloning..."]}):"Clone & Create Session"})]})]})})}},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(45326);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))},77900:(a,b,c)=>{"use strict";c.d(b,{Bx:()=>F,HC:()=>D,MN:()=>z});var d=c(48249),e=c(32174),f=c(70296),g=c(27656),h=c(9008),i=c(45535),j=c(69473),k=c(78337),l=c(57762),m=c(71362),n=c(81220),o=c(19099),p=c(67484),q=c(45326),r=c(25297),s=c(77424),t=c(93571),u=c(14490),v=c(58412);let w="cockpit_sidebar_width";function x({onResize:a}){let b=(0,p.useRef)(!1),c=(0,p.useRef)(0),e=(0,p.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 y="cockpit_unread_sessions";async function z(a){await fetch("/api/sessions/pinned",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({add:a})}).catch(()=>{})}async function A(a){await fetch("/api/sessions/pinned",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({remove:a})}).catch(()=>{})}async function B(){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[]}}function C(){try{let a=localStorage.getItem(y);if(a)return new Set(JSON.parse(a))}catch{}return new Set}function D(a){let b=C();b.delete(a),localStorage.setItem(y,JSON.stringify([...b]))}function E({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:s}=(0,f.gl)({id:a.id}),t={transform:g.Ks.Transform.toString(p),transition:q,opacity:s?.5:1};return(0,d.jsxs)("div",{ref:o,style:t,role:"button",tabIndex:0,onClick:()=>e(a),onKeyDown:b=>{("Enter"===b.key||" "===b.key)&&(b.preventDefault(),e(a))},className:(0,u.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:"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"})]}):c?(0,d.jsx)("div",{className:"h-2.5 w-2.5 rounded-full bg-green-500",title:"New response"}):(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.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)(r.$,{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 F=(0,p.forwardRef)(function(a,b){let c=(0,o.useRouter)(),g=(0,o.usePathname)(),{send:h,subscribe:m,connected:s}=(0,t.h)(),{sidebarContent:F}=(0,q.E2)(),[H,I]=(0,p.useState)(!1),[J,K]=(0,p.useState)([]),[L,M]=(0,p.useState)(new Set),[N,O]=(0,p.useState)(!1),[P,Q]=(0,p.useState)(288);(0,p.useEffect)(()=>{Q(function(){try{let a=localStorage.getItem(w);if(a){let b=parseInt(a,10);if(b>=200&&b<=480)return b}}catch{}return 288}())},[]);let R=(0,p.useCallback)(a=>{Q(b=>{let c=Math.max(200,Math.min(480,b+a));return localStorage.setItem(w,String(c)),c})},[]),S=(0,p.useRef)(new Map),T=(0,e.FR)((0,e.MS)(e.AN,{activationConstraint:{delay:150,tolerance:5}}));(0,p.useImperativeHandle)(b,()=>({toggle:()=>I(a=>!a),close:()=>I(!1)}),[]);let U=(0,p.useCallback)(()=>I(!1),[]),V=g.startsWith("/sessions/")?g.split("/")[2]:null;(0,p.useEffect)(()=>m(a=>{if("session:status"===a.type){let{sessionId:b,status:c}=a;if(!new Set(J.map(a=>a.id)).has(b))return;let d=S.current.get(b);if(S.current.set(b,c),"running"===d&&"idle"===c&&V!==b){let a;(a=C()).add(b),localStorage.setItem(y,JSON.stringify([...a])),M(C())}K(a=>a.map(a=>a.id===b?{...a,status:c}:a))}else if("session:info_updated"===a.type){let{sessionId:b,info:c}=a;K(a=>a.map(a=>a.id===b?{...a,name:c.name,model:c.model}:a))}}),[m,V,J]);let W=(0,p.useCallback)(async()=>{M(C());let[a,b]=await Promise.all([B(),fetch("/api/sessions").then(a=>a.ok?a.json():null).catch(()=>null)]);if(!b)return;let c=new Map((b.groups||[]).flatMap(a=>a.sessions).filter(a=>!a.cwd.endsWith(".cockpit/reviews")).map(a=>[a.id,a])),d=[],e=[];for(let b of a){let a=c.get(b);a&&(d.push(a),e.push(b))}for(let b of(e.length!==a.length&&fetch("/api/sessions/pinned",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({pinned:e})}).catch(()=>{}),d))S.current.has(b.id)||S.current.set(b.id,b.status);K(d),d.length>0&&h({type:"session:subscribe",sessionIds:d.map(a=>a.id)})},[h]);(0,p.useEffect)(()=>{(H||s)&&W()},[H,s,g,W]);let X=async(a,b)=>{a.stopPropagation(),(await fetch(`/api/sessions/${b}`,{method:"DELETE"})).ok&&(await A(b),D(b),M(C()),K(a=>a.filter(a=>a.id!==b)),V===b&&c.push("/"))},Y=async(a,b)=>{a.stopPropagation(),await A(b),D(b),M(C()),K(a=>a.filter(a=>a.id!==b)),V===b&&c.push("/")},Z=(0,p.useCallback)(a=>{let{active:b,over:c}=a;if(!c||b.id===c.id)return;let d=J.findIndex(a=>a.id===b.id),e=J.findIndex(a=>a.id===c.id);if(d<0||e<0)return;let g=(0,f.be)(J,d,e);K(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))},[J]),$=async(a,b)=>{let d=await fetch("/api/sessions",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:a,name:b||void 0})});if(d.ok){let b=await d.json();await z(b.sessionId),await W(),U(),c.push(`/sessions/${b.sessionId}?cwd=${encodeURIComponent(a)}`)}},_=a=>{D(a.id),M(C()),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,u.cn)("fixed inset-0 z-40 bg-black/50 transition-opacity md:hidden",H?"opacity-100":"opacity-0 pointer-events-none"),onMouseDown:U}),(0,d.jsxs)("div",{className:(0,u.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",H?"translate-x-0":"-translate-x-full"),style:{width:P},children:[(0,d.jsx)(x,{onResize:R}),F?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("div",{className:"flex items-center justify-end px-3 py-2 border-b md:hidden",children:(0,d.jsx)(r.$,{variant:"ghost",size:"icon",onClick:U,children:(0,d.jsx)(i.A,{className:"h-4 w-4"})})}),(0,d.jsx)("div",{className:"flex-1 min-h-0 overflow-y-auto",children:F})]}):(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)("div",{className:"flex items-center justify-between px-3 py-2 border-b",children:[(0,d.jsx)("span",{className:"text-sm font-bold",children:"Active Sessions"}),(0,d.jsxs)("div",{className:"flex items-center gap-1",children:[(0,d.jsx)(r.$,{variant:"ghost",size:"icon",onClick:()=>O(!0),title:"New session",children:(0,d.jsx)(j.A,{className:"h-4 w-4"})}),(0,d.jsx)(r.$,{variant:"ghost",size:"icon",onClick:U,className:"md:hidden",children:(0,d.jsx)(i.A,{className:"h-4 w-4"})})]})]}),(0,d.jsx)("div",{className:"flex-1 min-h-0 overflow-y-auto py-1",children:0===J.length?(0,d.jsx)("p",{className:"px-3 py-4 text-sm text-muted-foreground",children:"No active sessions."}):(0,d.jsx)(e.Mp,{sensors:T,onDragEnd:Z,children:(0,d.jsx)(f.gB,{items:J.map(a=>a.id),strategy:f._G,children:J.map(a=>(0,d.jsx)(E,{session:a,isCurrent:V===a.id,isUnread:L.has(a.id),onNavigate:_,onAction:(a,b)=>"running"===b.status?X(a,b.id):Y(a,b.id)},a.id))})})})]}),(0,d.jsxs)("div",{className:"border-t px-3 py-2 flex items-center gap-2",children:[(0,d.jsxs)("button",{onClick:()=>{U(),c.push("/")},className:"flex items-center gap-2 text-sm text-muted-foreground hover:text-foreground transition-colors flex-1 min-w-0",children:[(0,d.jsx)(n.default,{src:"/icon-192.png",alt:"",width:18,height:18,className:"shrink-0 dark:invert"}),"All sessions"]}),(0,d.jsx)(r.$,{variant:"ghost",size:"icon",className:"shrink-0 h-8 w-8 text-muted-foreground hover:text-foreground",onClick:()=>{U(),c.push("/reviews")},title:"Reviews",children:(0,d.jsx)(k.A,{className:"h-4 w-4"})}),(0,d.jsx)(G,{onClick:()=>{U(),c.push("/jobs")}}),(0,d.jsx)(r.$,{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)(v.t,{open:N,onOpenChange:O,onSubmit:$})]})});function G({onClick:a}){let{count:b}=(0,s.wA)();return(0,d.jsxs)(r.$,{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)(m.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"})]})}},78335:()=>{},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)(1e3),l=(0,e.useRef)([]),m=(0,e.useRef)(!1),n=(0,e.useRef)(!0),o=(0,e.useRef)(void 0),p=(0,e.useRef)(void 0),q=(0,e.useRef)(!1);(0,e.useRef)(void 0);let r=(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)},[]);o.current=(0,e.useCallback)(async()=>{let a;if(m.current||h.current)return void console.log(`[ws] connect skipped (connecting=${m.current}, hasWs=${!!h.current})`);m.current=!0;let b=performance.now();console.log("[ws] connecting...");try{let c=await fetch("/api/auth/ws-token");if(!c.ok){console.warn(`[ws] ws-token fetch failed (${c.status})`),m.current=!1,r();return}a=(await c.json()).token,console.log(`[ws] token fetched in ${(performance.now()-b).toFixed(0)}ms`)}catch(a){console.warn("[ws] ws-token fetch error:",a),m.current=!1,r();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=${a}`);h.current=e,m.current=!1,e.onopen=()=>{for(let a of(console.log(`[ws] connected in ${(performance.now()-b).toFixed(0)}ms`),c(!0),k.current=1e3,l.current))e.send(JSON.stringify(a));l.current=[]},e.onmessage=a=>{let b=JSON.parse(a.data);for(let a of("pong"===b.type&&(clearTimeout(p.current),q.current=!1),"message:ack"===b.type&&s.current.length>0&&(s.current=[]),i.current))a(b)},e.onclose=a=>{console.log(`[ws] closed (code=${a.code}), scheduling reconnect`),c(!1),h.current===e&&(h.current=null),s.current.length>0&&(l.current.push(...s.current),s.current=[]),k.current=1e3,r()},e.onerror=()=>{e.close()}},[r]),(0,e.useCallback)(()=>{let a=h.current;a&&(a.onclose=null,a.onerror=null,a.close(),h.current=null),c(!1),k.current=1e3,o.current?.()},[]);let s=(0,e.useRef)([]),t=(0,e.useCallback)(a=>{h.current?.readyState===WebSocket.OPEN?("message:send"===a.type&&s.current.push(a),h.current.send(JSON.stringify(a))):l.current.push(a)},[]),u=(0,e.useCallback)(a=>(i.current.add(a),()=>{i.current.delete(a)}),[]);return(0,d.jsx)(f.Provider,{value:{connected:b,send:t,subscribe:u},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})}},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:()=>{}};