@alexjbarnes/cockpit 0.2.0 → 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 (694) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/app-path-routes-manifest.json +16 -3
  3. package/.next/build-manifest.json +3 -3
  4. package/.next/prerender-manifest.json +99 -3
  5. package/.next/react-loadable-manifest.json +18 -2
  6. package/.next/required-server-files.js +3 -0
  7. package/.next/required-server-files.json +3 -0
  8. package/.next/routes-manifest.json +86 -0
  9. package/.next/server/app/(app)/agents/[name]/page.js +2 -2
  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 +2 -2
  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 -2
  40. package/.next/server/app/(app)/inbox/[id]/page.js.nft.json +1 -1
  41. package/.next/server/app/(app)/inbox/[id]/page_client-reference-manifest.js +1 -1
  42. package/.next/server/app/(app)/inbox/page.js +2 -2
  43. package/.next/server/app/(app)/inbox/page.js.nft.json +1 -1
  44. package/.next/server/app/(app)/inbox/page_client-reference-manifest.js +1 -1
  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 +10 -10
  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 -2
  82. package/.next/server/app/(app)/settings/notifications/page.js.nft.json +1 -1
  83. package/.next/server/app/(app)/settings/notifications/page_client-reference-manifest.js +1 -1
  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 +2 -2
  169. package/.next/server/app/api/inbox/route.js +2 -2
  170. package/.next/server/app/api/jobs/[id]/route.js +1 -1
  171. package/.next/server/app/api/jobs/[id]/route.js.nft.json +1 -1
  172. package/.next/server/app/api/jobs/[id]/runs/[runId]/route.js +1 -1
  173. package/.next/server/app/api/jobs/[id]/runs/[runId]/transcript/route.js +1 -1
  174. package/.next/server/app/api/jobs/[id]/runs/route.js +1 -1
  175. package/.next/server/app/api/jobs/[id]/trigger/route.js +1 -1
  176. package/.next/server/app/api/jobs/[id]/trigger/route.js.nft.json +1 -1
  177. package/.next/server/app/api/jobs/mcp-discover/route.js +1 -1
  178. package/.next/server/app/api/jobs/mcp-discover/route.js.nft.json +1 -1
  179. package/.next/server/app/api/jobs/route.js +1 -1
  180. package/.next/server/app/api/jobs/route.js.nft.json +1 -1
  181. package/.next/server/app/api/jobs/status/route.js +1 -1
  182. package/.next/server/app/api/mcp-servers/[name]/route.js +1 -1
  183. package/.next/server/app/api/mcp-servers/[name]/test/route.js +1 -1
  184. package/.next/server/app/api/mcp-servers/route.js +1 -1
  185. package/.next/server/app/api/notifications/route.js +1 -1
  186. package/.next/server/app/api/notifications/test/route.js +1 -1
  187. package/.next/server/app/api/providers/[id]/route.js +1 -0
  188. package/.next/server/app/api/providers/[id]/route.js.nft.json +1 -0
  189. package/.next/server/app/api/providers/[id]/route_client-reference-manifest.js +1 -0
  190. package/.next/server/app/api/providers/route.js +1 -0
  191. package/.next/server/app/api/providers/route.js.nft.json +1 -0
  192. package/.next/server/app/api/providers/route_client-reference-manifest.js +1 -0
  193. package/.next/server/app/api/reviews/pinned/route.js +1 -1
  194. package/.next/server/app/api/sessions/[id]/context/route.js +1 -1
  195. package/.next/server/app/api/sessions/[id]/mcp/route.js +1 -1
  196. package/.next/server/app/api/sessions/[id]/mcp/route.js.nft.json +1 -1
  197. package/.next/server/app/api/sessions/[id]/route.js +1 -1
  198. package/.next/server/app/api/sessions/[id]/route.js.nft.json +1 -1
  199. package/.next/server/app/api/sessions/[id]/search/route.js +1 -1
  200. package/.next/server/app/api/sessions/[id]/tabs/route.js +1 -0
  201. package/.next/server/app/api/sessions/[id]/tabs/route.js.nft.json +1 -0
  202. package/.next/server/app/api/sessions/[id]/tabs/route_client-reference-manifest.js +1 -0
  203. package/.next/server/app/api/sessions/bulk-delete/route.js +1 -1
  204. package/.next/server/app/api/sessions/bulk-delete/route.js.nft.json +1 -1
  205. package/.next/server/app/api/sessions/by-ids/route.js +1 -1
  206. package/.next/server/app/api/sessions/by-ids/route.js.nft.json +1 -1
  207. package/.next/server/app/api/sessions/group/route.js +1 -1
  208. package/.next/server/app/api/sessions/group/route.js.nft.json +1 -1
  209. package/.next/server/app/api/sessions/pinned/route.js +1 -1
  210. package/.next/server/app/api/sessions/route.js +1 -1
  211. package/.next/server/app/api/sessions/route.js.nft.json +1 -1
  212. package/.next/server/app/api/sessions/search/route.js +1 -1
  213. package/.next/server/app/api/sessions/thinking/route.js +1 -0
  214. package/.next/server/app/api/sessions/thinking/route.js.nft.json +1 -0
  215. package/.next/server/app/api/sessions/thinking/route_client-reference-manifest.js +1 -0
  216. package/.next/server/app/api/skills/[name]/route.js +1 -1
  217. package/.next/server/app/api/skills/route.js +1 -1
  218. package/.next/server/app/api/terminal/[id]/route.js +1 -0
  219. package/.next/server/app/api/terminal/[id]/route.js.nft.json +1 -0
  220. package/.next/server/app/api/terminal/[id]/route_client-reference-manifest.js +1 -0
  221. package/.next/server/app/api/terminal/route.js +1 -0
  222. package/.next/server/app/api/terminal/route.js.nft.json +1 -0
  223. package/.next/server/app/api/terminal/route_client-reference-manifest.js +1 -0
  224. package/.next/server/app/api/usage/route.js +1 -1
  225. package/.next/server/app/api/version/changelog/route.js +1 -0
  226. package/.next/server/app/api/version/changelog/route.js.nft.json +1 -0
  227. package/.next/server/app/api/version/changelog/route_client-reference-manifest.js +1 -0
  228. package/.next/server/app/api/version/cockpit/changelog/route.js +1 -0
  229. package/.next/server/app/api/version/cockpit/changelog/route.js.nft.json +1 -0
  230. package/.next/server/app/api/version/cockpit/changelog/route_client-reference-manifest.js +1 -0
  231. package/.next/server/app/api/version/cockpit/route.js +1 -1
  232. package/.next/server/app/api/version/route.js +2 -2
  233. package/.next/server/app/changes.html +1 -1
  234. package/.next/server/app/changes.rsc +4 -4
  235. package/.next/server/app/changes.segments/!KGFwcCk/changes/__PAGE__.segment.rsc +2 -2
  236. package/.next/server/app/changes.segments/!KGFwcCk/changes.segment.rsc +1 -1
  237. package/.next/server/app/changes.segments/!KGFwcCk.segment.rsc +2 -2
  238. package/.next/server/app/changes.segments/_full.segment.rsc +4 -4
  239. package/.next/server/app/changes.segments/_head.segment.rsc +1 -1
  240. package/.next/server/app/changes.segments/_index.segment.rsc +2 -2
  241. package/.next/server/app/changes.segments/_tree.segment.rsc +2 -2
  242. package/.next/server/app/claude-md/edit.html +1 -1
  243. package/.next/server/app/claude-md/edit.rsc +4 -4
  244. package/.next/server/app/claude-md/edit.segments/!KGFwcCk/claude-md/edit/__PAGE__.segment.rsc +2 -2
  245. package/.next/server/app/claude-md/edit.segments/!KGFwcCk/claude-md/edit.segment.rsc +1 -1
  246. package/.next/server/app/claude-md/edit.segments/!KGFwcCk/claude-md.segment.rsc +1 -1
  247. package/.next/server/app/claude-md/edit.segments/!KGFwcCk.segment.rsc +2 -2
  248. package/.next/server/app/claude-md/edit.segments/_full.segment.rsc +4 -4
  249. package/.next/server/app/claude-md/edit.segments/_head.segment.rsc +1 -1
  250. package/.next/server/app/claude-md/edit.segments/_index.segment.rsc +2 -2
  251. package/.next/server/app/claude-md/edit.segments/_tree.segment.rsc +2 -2
  252. package/.next/server/app/claude-md.html +1 -1
  253. package/.next/server/app/claude-md.rsc +4 -4
  254. package/.next/server/app/claude-md.segments/!KGFwcCk/claude-md/__PAGE__.segment.rsc +2 -2
  255. package/.next/server/app/claude-md.segments/!KGFwcCk/claude-md.segment.rsc +1 -1
  256. package/.next/server/app/claude-md.segments/!KGFwcCk.segment.rsc +2 -2
  257. package/.next/server/app/claude-md.segments/_full.segment.rsc +4 -4
  258. package/.next/server/app/claude-md.segments/_head.segment.rsc +1 -1
  259. package/.next/server/app/claude-md.segments/_index.segment.rsc +2 -2
  260. package/.next/server/app/claude-md.segments/_tree.segment.rsc +2 -2
  261. package/.next/server/app/commands.html +1 -1
  262. package/.next/server/app/commands.rsc +4 -4
  263. package/.next/server/app/commands.segments/!KGFwcCk/commands/__PAGE__.segment.rsc +2 -2
  264. package/.next/server/app/commands.segments/!KGFwcCk/commands.segment.rsc +1 -1
  265. package/.next/server/app/commands.segments/!KGFwcCk.segment.rsc +2 -2
  266. package/.next/server/app/commands.segments/_full.segment.rsc +4 -4
  267. package/.next/server/app/commands.segments/_head.segment.rsc +1 -1
  268. package/.next/server/app/commands.segments/_index.segment.rsc +2 -2
  269. package/.next/server/app/commands.segments/_tree.segment.rsc +2 -2
  270. package/.next/server/app/files.html +1 -1
  271. package/.next/server/app/files.rsc +4 -4
  272. package/.next/server/app/files.segments/!KGFwcCk/files/__PAGE__.segment.rsc +2 -2
  273. package/.next/server/app/files.segments/!KGFwcCk/files.segment.rsc +1 -1
  274. package/.next/server/app/files.segments/!KGFwcCk.segment.rsc +2 -2
  275. package/.next/server/app/files.segments/_full.segment.rsc +4 -4
  276. package/.next/server/app/files.segments/_head.segment.rsc +1 -1
  277. package/.next/server/app/files.segments/_index.segment.rsc +2 -2
  278. package/.next/server/app/files.segments/_tree.segment.rsc +2 -2
  279. package/.next/server/app/hooks.html +1 -1
  280. package/.next/server/app/hooks.rsc +4 -4
  281. package/.next/server/app/hooks.segments/!KGFwcCk/hooks/__PAGE__.segment.rsc +2 -2
  282. package/.next/server/app/hooks.segments/!KGFwcCk/hooks.segment.rsc +1 -1
  283. package/.next/server/app/hooks.segments/!KGFwcCk.segment.rsc +2 -2
  284. package/.next/server/app/hooks.segments/_full.segment.rsc +4 -4
  285. package/.next/server/app/hooks.segments/_head.segment.rsc +1 -1
  286. package/.next/server/app/hooks.segments/_index.segment.rsc +2 -2
  287. package/.next/server/app/hooks.segments/_tree.segment.rsc +2 -2
  288. package/.next/server/app/inbox.html +1 -1
  289. package/.next/server/app/inbox.rsc +4 -4
  290. package/.next/server/app/inbox.segments/!KGFwcCk/inbox/__PAGE__.segment.rsc +2 -2
  291. package/.next/server/app/inbox.segments/!KGFwcCk/inbox.segment.rsc +1 -1
  292. package/.next/server/app/inbox.segments/!KGFwcCk.segment.rsc +2 -2
  293. package/.next/server/app/inbox.segments/_full.segment.rsc +4 -4
  294. package/.next/server/app/inbox.segments/_head.segment.rsc +1 -1
  295. package/.next/server/app/inbox.segments/_index.segment.rsc +2 -2
  296. package/.next/server/app/inbox.segments/_tree.segment.rsc +2 -2
  297. package/.next/server/app/index.html +1 -1
  298. package/.next/server/app/index.rsc +4 -4
  299. package/.next/server/app/index.segments/!KGFwcCk/__PAGE__.segment.rsc +2 -2
  300. package/.next/server/app/index.segments/!KGFwcCk.segment.rsc +2 -2
  301. package/.next/server/app/index.segments/_full.segment.rsc +4 -4
  302. package/.next/server/app/index.segments/_head.segment.rsc +1 -1
  303. package/.next/server/app/index.segments/_index.segment.rsc +2 -2
  304. package/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  305. package/.next/server/app/jobs.html +1 -1
  306. package/.next/server/app/jobs.rsc +4 -4
  307. package/.next/server/app/jobs.segments/!KGFwcCk/jobs/__PAGE__.segment.rsc +2 -2
  308. package/.next/server/app/jobs.segments/!KGFwcCk/jobs.segment.rsc +1 -1
  309. package/.next/server/app/jobs.segments/!KGFwcCk.segment.rsc +2 -2
  310. package/.next/server/app/jobs.segments/_full.segment.rsc +4 -4
  311. package/.next/server/app/jobs.segments/_head.segment.rsc +1 -1
  312. package/.next/server/app/jobs.segments/_index.segment.rsc +2 -2
  313. package/.next/server/app/jobs.segments/_tree.segment.rsc +2 -2
  314. package/.next/server/app/login/page.js +2 -2
  315. package/.next/server/app/login/page_client-reference-manifest.js +1 -1
  316. package/.next/server/app/login.html +1 -1
  317. package/.next/server/app/login.rsc +2 -2
  318. package/.next/server/app/login.segments/_full.segment.rsc +2 -2
  319. package/.next/server/app/login.segments/_head.segment.rsc +1 -1
  320. package/.next/server/app/login.segments/_index.segment.rsc +2 -2
  321. package/.next/server/app/login.segments/_tree.segment.rsc +2 -2
  322. package/.next/server/app/login.segments/login/__PAGE__.segment.rsc +1 -1
  323. package/.next/server/app/login.segments/login.segment.rsc +1 -1
  324. package/.next/server/app/mcp-servers.html +1 -1
  325. package/.next/server/app/mcp-servers.rsc +4 -4
  326. package/.next/server/app/mcp-servers.segments/!KGFwcCk/mcp-servers/__PAGE__.segment.rsc +2 -2
  327. package/.next/server/app/mcp-servers.segments/!KGFwcCk/mcp-servers.segment.rsc +1 -1
  328. package/.next/server/app/mcp-servers.segments/!KGFwcCk.segment.rsc +2 -2
  329. package/.next/server/app/mcp-servers.segments/_full.segment.rsc +4 -4
  330. package/.next/server/app/mcp-servers.segments/_head.segment.rsc +1 -1
  331. package/.next/server/app/mcp-servers.segments/_index.segment.rsc +2 -2
  332. package/.next/server/app/mcp-servers.segments/_tree.segment.rsc +2 -2
  333. package/.next/server/app/reviews.html +1 -1
  334. package/.next/server/app/reviews.rsc +4 -4
  335. package/.next/server/app/reviews.segments/!KGFwcCk/reviews/__PAGE__.segment.rsc +2 -2
  336. package/.next/server/app/reviews.segments/!KGFwcCk/reviews.segment.rsc +1 -1
  337. package/.next/server/app/reviews.segments/!KGFwcCk.segment.rsc +2 -2
  338. package/.next/server/app/reviews.segments/_full.segment.rsc +4 -4
  339. package/.next/server/app/reviews.segments/_head.segment.rsc +1 -1
  340. package/.next/server/app/reviews.segments/_index.segment.rsc +2 -2
  341. package/.next/server/app/reviews.segments/_tree.segment.rsc +2 -2
  342. package/.next/server/app/settings/appearance.html +1 -0
  343. package/.next/server/app/settings/appearance.meta +17 -0
  344. package/.next/server/app/settings/appearance.rsc +23 -0
  345. package/.next/server/app/settings/appearance.segments/!KGFwcCk/settings/appearance/__PAGE__.segment.rsc +9 -0
  346. package/.next/server/app/settings/appearance.segments/!KGFwcCk/settings/appearance.segment.rsc +5 -0
  347. package/.next/server/app/settings/appearance.segments/!KGFwcCk/settings.segment.rsc +5 -0
  348. package/.next/server/app/settings/appearance.segments/!KGFwcCk.segment.rsc +7 -0
  349. package/.next/server/app/settings/appearance.segments/_full.segment.rsc +23 -0
  350. package/.next/server/app/settings/appearance.segments/_head.segment.rsc +6 -0
  351. package/.next/server/app/settings/appearance.segments/_index.segment.rsc +5 -0
  352. package/.next/server/app/settings/appearance.segments/_tree.segment.rsc +2 -0
  353. package/.next/server/app/settings/notifications.html +1 -1
  354. package/.next/server/app/settings/notifications.rsc +4 -4
  355. package/.next/server/app/settings/notifications.segments/!KGFwcCk/settings/notifications/__PAGE__.segment.rsc +2 -2
  356. package/.next/server/app/settings/notifications.segments/!KGFwcCk/settings/notifications.segment.rsc +1 -1
  357. package/.next/server/app/settings/notifications.segments/!KGFwcCk/settings.segment.rsc +1 -1
  358. package/.next/server/app/settings/notifications.segments/!KGFwcCk.segment.rsc +2 -2
  359. package/.next/server/app/settings/notifications.segments/_full.segment.rsc +4 -4
  360. package/.next/server/app/settings/notifications.segments/_head.segment.rsc +1 -1
  361. package/.next/server/app/settings/notifications.segments/_index.segment.rsc +2 -2
  362. package/.next/server/app/settings/notifications.segments/_tree.segment.rsc +2 -2
  363. package/.next/server/app/settings/providers/new.html +1 -0
  364. package/.next/server/app/settings/providers/new.meta +18 -0
  365. package/.next/server/app/settings/providers/new.rsc +23 -0
  366. package/.next/server/app/settings/providers/new.segments/!KGFwcCk/settings/providers/new/__PAGE__.segment.rsc +9 -0
  367. package/.next/server/app/settings/providers/new.segments/!KGFwcCk/settings/providers/new.segment.rsc +5 -0
  368. package/.next/server/app/settings/providers/new.segments/!KGFwcCk/settings/providers.segment.rsc +5 -0
  369. package/.next/server/app/settings/providers/new.segments/!KGFwcCk/settings.segment.rsc +5 -0
  370. package/.next/server/app/settings/providers/new.segments/!KGFwcCk.segment.rsc +7 -0
  371. package/.next/server/app/settings/providers/new.segments/_full.segment.rsc +23 -0
  372. package/.next/server/app/settings/providers/new.segments/_head.segment.rsc +6 -0
  373. package/.next/server/app/settings/providers/new.segments/_index.segment.rsc +5 -0
  374. package/.next/server/app/settings/providers/new.segments/_tree.segment.rsc +2 -0
  375. package/.next/server/app/settings/providers.html +1 -0
  376. package/.next/server/app/settings/providers.meta +17 -0
  377. package/.next/server/app/settings/providers.rsc +23 -0
  378. package/.next/server/app/settings/providers.segments/!KGFwcCk/settings/providers/__PAGE__.segment.rsc +9 -0
  379. package/.next/server/app/settings/providers.segments/!KGFwcCk/settings/providers.segment.rsc +5 -0
  380. package/.next/server/app/settings/providers.segments/!KGFwcCk/settings.segment.rsc +5 -0
  381. package/.next/server/app/settings/providers.segments/!KGFwcCk.segment.rsc +7 -0
  382. package/.next/server/app/settings/providers.segments/_full.segment.rsc +23 -0
  383. package/.next/server/app/settings/providers.segments/_head.segment.rsc +6 -0
  384. package/.next/server/app/settings/providers.segments/_index.segment.rsc +5 -0
  385. package/.next/server/app/settings/providers.segments/_tree.segment.rsc +2 -0
  386. package/.next/server/app/settings/session.html +1 -0
  387. package/.next/server/app/settings/session.meta +17 -0
  388. package/.next/server/app/settings/session.rsc +23 -0
  389. package/.next/server/app/settings/session.segments/!KGFwcCk/settings/session/__PAGE__.segment.rsc +9 -0
  390. package/.next/server/app/settings/session.segments/!KGFwcCk/settings/session.segment.rsc +5 -0
  391. package/.next/server/app/settings/session.segments/!KGFwcCk/settings.segment.rsc +5 -0
  392. package/.next/server/app/settings/session.segments/!KGFwcCk.segment.rsc +7 -0
  393. package/.next/server/app/settings/session.segments/_full.segment.rsc +23 -0
  394. package/.next/server/app/settings/session.segments/_head.segment.rsc +6 -0
  395. package/.next/server/app/settings/session.segments/_index.segment.rsc +5 -0
  396. package/.next/server/app/settings/session.segments/_tree.segment.rsc +2 -0
  397. package/.next/server/app/settings.html +1 -1
  398. package/.next/server/app/settings.rsc +4 -4
  399. package/.next/server/app/settings.segments/!KGFwcCk/settings/__PAGE__.segment.rsc +2 -2
  400. package/.next/server/app/settings.segments/!KGFwcCk/settings.segment.rsc +1 -1
  401. package/.next/server/app/settings.segments/!KGFwcCk.segment.rsc +2 -2
  402. package/.next/server/app/settings.segments/_full.segment.rsc +4 -4
  403. package/.next/server/app/settings.segments/_head.segment.rsc +1 -1
  404. package/.next/server/app/settings.segments/_index.segment.rsc +2 -2
  405. package/.next/server/app/settings.segments/_tree.segment.rsc +2 -2
  406. package/.next/server/app/skills.html +1 -1
  407. package/.next/server/app/skills.rsc +4 -4
  408. package/.next/server/app/skills.segments/!KGFwcCk/skills/__PAGE__.segment.rsc +2 -2
  409. package/.next/server/app/skills.segments/!KGFwcCk/skills.segment.rsc +1 -1
  410. package/.next/server/app/skills.segments/!KGFwcCk.segment.rsc +2 -2
  411. package/.next/server/app/skills.segments/_full.segment.rsc +4 -4
  412. package/.next/server/app/skills.segments/_head.segment.rsc +1 -1
  413. package/.next/server/app/skills.segments/_index.segment.rsc +2 -2
  414. package/.next/server/app/skills.segments/_tree.segment.rsc +2 -2
  415. package/.next/server/app-paths-manifest.json +16 -3
  416. package/.next/server/chunks/1002.js +18 -0
  417. package/.next/server/chunks/1011.js +1 -0
  418. package/.next/server/chunks/1659.js +1 -1
  419. package/.next/server/chunks/1979.js +2 -2
  420. package/.next/server/chunks/2408.js +1 -1
  421. package/.next/server/chunks/{7627.js → 3006.js} +3 -3
  422. package/.next/server/chunks/3434.js +1 -0
  423. package/.next/server/chunks/{5920.js → 4342.js} +1 -1
  424. package/.next/server/chunks/4352.js +1 -0
  425. package/.next/server/chunks/4445.js +1 -1
  426. package/.next/server/chunks/7782.js +6 -0
  427. package/.next/server/chunks/8148.js +1 -0
  428. package/.next/server/chunks/9599.js +11 -0
  429. package/.next/server/middleware-build-manifest.js +1 -1
  430. package/.next/server/middleware-react-loadable-manifest.js +1 -1
  431. package/.next/server/pages/404.html +1 -1
  432. package/.next/server/pages/500.html +1 -1
  433. package/.next/server/server-reference-manifest.json +1 -1
  434. package/.next/static/chunks/{35922.5bdf78a760129504.js → 13541.056c34ca7fde6869.js} +1 -1
  435. package/.next/static/chunks/26126-97874904b42befb8.js +1 -0
  436. package/.next/static/chunks/31010-6e87f77b97544424.js +1 -0
  437. package/.next/static/chunks/3765-d323c6675307a63e.js +20 -0
  438. package/.next/static/chunks/{11242-d240a18d4e59390b.js → 41487-d802643f4a8fad3c.js} +5 -5
  439. package/.next/static/chunks/48273-bbd15bac6733dfc4.js +6 -0
  440. package/.next/static/chunks/63606.a387b0261d6523ab.js +1 -0
  441. package/.next/static/chunks/6935-f436a624267529fb.js +1 -0
  442. package/.next/static/chunks/{69427.0f379c6bdea95405.js → 69427.a0b463c808aa54c8.js} +1 -1
  443. package/.next/static/chunks/86939-dfc6f8eb395caa89.js +1 -0
  444. package/.next/static/chunks/app/(app)/agents/[name]/page-8bdd0359043537d4.js +8 -0
  445. package/.next/static/chunks/app/(app)/agents/page-6fcfd7ab6781814e.js +1 -0
  446. package/.next/static/chunks/app/(app)/changes/page-4549a5bd72d77e3e.js +1 -0
  447. package/.next/static/chunks/app/(app)/claude-md/edit/page-08e6e120e71979f4.js +1 -0
  448. package/.next/static/chunks/app/(app)/claude-md/page-cd9e2176a12ba241.js +1 -0
  449. package/.next/static/chunks/app/(app)/commands/[name]/page-7cdfdef29ded0aa0.js +6 -0
  450. package/.next/static/chunks/app/(app)/commands/page-f126b608b04747ac.js +1 -0
  451. package/.next/static/chunks/app/(app)/files/page-f526eb95821e000e.js +1 -0
  452. package/.next/static/chunks/app/(app)/hooks/[event]/page-28038323fd29adfa.js +6 -0
  453. package/.next/static/chunks/app/(app)/hooks/page-f1f39284e53c0344.js +1 -0
  454. package/.next/static/chunks/app/(app)/inbox/[id]/page-bc1ff3a0db0114a4.js +1 -0
  455. package/.next/static/chunks/app/(app)/inbox/page-82e03870103ce9bd.js +1 -0
  456. package/.next/static/chunks/app/(app)/jobs/[id]/edit/page-7fb788f772ff2129.js +1 -0
  457. package/.next/static/chunks/app/(app)/jobs/[id]/page-a5856b9ae967ff59.js +1 -0
  458. package/.next/static/chunks/app/(app)/jobs/[id]/runs/[runId]/page-b7c513402db11db6.js +1 -0
  459. package/.next/static/chunks/app/(app)/jobs/page-e9bbd6c116b9699f.js +1 -0
  460. package/.next/static/chunks/app/(app)/{layout-81c1899969de11e6.js → layout-ce9e1be301c60fe5.js} +1 -1
  461. package/.next/static/chunks/app/(app)/mcp-servers/[name]/page-d6d805a27ec0b0c0.js +1 -0
  462. package/.next/static/chunks/app/(app)/mcp-servers/page-4b7276d43451cd43.js +1 -0
  463. package/.next/static/chunks/app/(app)/page-027a5382da30ddb9.js +1 -0
  464. package/.next/static/chunks/app/(app)/reviews/[owner]/[repo]/[number]/page-9ab2955c455bb5fa.js +13 -0
  465. package/.next/static/chunks/app/(app)/reviews/[owner]/[repo]/{page-c7473a899c7c59c3.js → page-c5fd013309ab3eba.js} +1 -1
  466. package/.next/static/chunks/app/(app)/reviews/{page-0e6e7395a4f62b50.js → page-47530d93bb9d4a76.js} +1 -1
  467. package/.next/static/chunks/app/(app)/sessions/[id]/page-94f891e1b54fd05f.js +1 -0
  468. package/.next/static/chunks/app/(app)/settings/appearance/page-95902da748ac5f1e.js +1 -0
  469. package/.next/static/chunks/app/(app)/settings/notifications/{page-a28db2ebc9fd0de8.js → page-229f1db6beb1d19c.js} +1 -1
  470. package/.next/static/chunks/app/(app)/settings/page-8ed16a66fdde10cd.js +1 -0
  471. package/.next/static/chunks/app/(app)/settings/providers/[id]/page-13654263246617b3.js +1 -0
  472. package/.next/static/chunks/app/(app)/settings/providers/new/page-e1798e321ccbc6df.js +1 -0
  473. package/.next/static/chunks/app/(app)/settings/providers/page-0bb4c1db2ee35b3d.js +1 -0
  474. package/.next/static/chunks/app/(app)/settings/session/page-ab216a8fa37a0f76.js +1 -0
  475. package/.next/static/chunks/app/(app)/skills/[name]/page-8ab85d5090967ee4.js +6 -0
  476. package/.next/static/chunks/app/(app)/skills/page-c52773eacb27c04e.js +1 -0
  477. package/.next/static/chunks/app/_global-error/page-fc747760bd4c8a4b.js +1 -0
  478. package/.next/static/chunks/app/api/agents/[name]/route-fc747760bd4c8a4b.js +1 -0
  479. package/.next/static/chunks/app/api/agents/route-fc747760bd4c8a4b.js +1 -0
  480. package/.next/static/chunks/app/api/auth/check/route-fc747760bd4c8a4b.js +1 -0
  481. package/.next/static/chunks/app/api/auth/login/route-fc747760bd4c8a4b.js +1 -0
  482. package/.next/static/chunks/app/api/auth/setup/route-fc747760bd4c8a4b.js +1 -0
  483. package/.next/static/chunks/app/api/auth/ws-token/route-fc747760bd4c8a4b.js +1 -0
  484. package/.next/static/chunks/app/api/btw/route-fc747760bd4c8a4b.js +1 -0
  485. package/.next/static/chunks/app/api/claude-md/route-fc747760bd4c8a4b.js +1 -0
  486. package/.next/static/chunks/app/api/commands/[name]/route-fc747760bd4c8a4b.js +1 -0
  487. package/.next/static/chunks/app/api/commands/route-fc747760bd4c8a4b.js +1 -0
  488. package/.next/static/chunks/app/api/defaults/route-fc747760bd4c8a4b.js +1 -0
  489. package/.next/static/chunks/app/api/filesystem/browse/route-fc747760bd4c8a4b.js +1 -0
  490. package/.next/static/chunks/app/api/filesystem/files/route-fc747760bd4c8a4b.js +1 -0
  491. package/.next/static/chunks/app/api/filesystem/mkdir/route-fc747760bd4c8a4b.js +1 -0
  492. package/.next/static/chunks/app/api/filesystem/read/route-fc747760bd4c8a4b.js +1 -0
  493. package/.next/static/chunks/app/api/git/clone/route-fc747760bd4c8a4b.js +1 -0
  494. package/.next/static/chunks/app/api/git/commit/route-fc747760bd4c8a4b.js +1 -0
  495. package/.next/static/chunks/app/api/git/diff/route-fc747760bd4c8a4b.js +1 -0
  496. package/.next/static/chunks/app/api/git/discard/route-fc747760bd4c8a4b.js +1 -0
  497. package/.next/static/chunks/app/api/git/generate-message/route-fc747760bd4c8a4b.js +1 -0
  498. package/.next/static/chunks/app/api/git/push/route-fc747760bd4c8a4b.js +1 -0
  499. package/.next/static/chunks/app/api/git/status/route-fc747760bd4c8a4b.js +1 -0
  500. package/.next/static/chunks/app/api/github/file-content/route-fc747760bd4c8a4b.js +1 -0
  501. package/.next/static/chunks/app/api/github/orgs/route-fc747760bd4c8a4b.js +1 -0
  502. package/.next/static/chunks/app/api/github/prs/checks/route-fc747760bd4c8a4b.js +1 -0
  503. package/.next/static/chunks/app/api/github/prs/diff/route-fc747760bd4c8a4b.js +1 -0
  504. package/.next/static/chunks/app/api/github/prs/review/route-fc747760bd4c8a4b.js +1 -0
  505. package/.next/static/chunks/app/api/github/prs/route-fc747760bd4c8a4b.js +1 -0
  506. package/.next/static/chunks/app/api/github/prs/view/route-fc747760bd4c8a4b.js +1 -0
  507. package/.next/static/chunks/app/api/github/repos/route-fc747760bd4c8a4b.js +1 -0
  508. package/.next/static/chunks/app/api/github/review-session/route-fc747760bd4c8a4b.js +1 -0
  509. package/.next/static/chunks/app/api/health/route-fc747760bd4c8a4b.js +1 -0
  510. package/.next/static/chunks/app/api/hooks/route-fc747760bd4c8a4b.js +1 -0
  511. package/.next/static/chunks/app/api/inbox/[id]/route-fc747760bd4c8a4b.js +1 -0
  512. package/.next/static/chunks/app/api/inbox/route-fc747760bd4c8a4b.js +1 -0
  513. package/.next/static/chunks/app/api/jobs/[id]/route-fc747760bd4c8a4b.js +1 -0
  514. package/.next/static/chunks/app/api/jobs/[id]/runs/[runId]/route-fc747760bd4c8a4b.js +1 -0
  515. package/.next/static/chunks/app/api/jobs/[id]/runs/[runId]/transcript/route-fc747760bd4c8a4b.js +1 -0
  516. package/.next/static/chunks/app/api/jobs/[id]/runs/route-fc747760bd4c8a4b.js +1 -0
  517. package/.next/static/chunks/app/api/jobs/[id]/trigger/route-fc747760bd4c8a4b.js +1 -0
  518. package/.next/static/chunks/app/api/jobs/mcp-discover/route-fc747760bd4c8a4b.js +1 -0
  519. package/.next/static/chunks/app/api/jobs/route-fc747760bd4c8a4b.js +1 -0
  520. package/.next/static/chunks/app/api/jobs/status/route-fc747760bd4c8a4b.js +1 -0
  521. package/.next/static/chunks/app/api/mcp-servers/[name]/route-fc747760bd4c8a4b.js +1 -0
  522. package/.next/static/chunks/app/api/mcp-servers/[name]/test/route-fc747760bd4c8a4b.js +1 -0
  523. package/.next/static/chunks/app/api/mcp-servers/route-fc747760bd4c8a4b.js +1 -0
  524. package/.next/static/chunks/app/api/notifications/route-fc747760bd4c8a4b.js +1 -0
  525. package/.next/static/chunks/app/api/notifications/test/route-fc747760bd4c8a4b.js +1 -0
  526. package/.next/static/chunks/app/api/providers/[id]/route-fc747760bd4c8a4b.js +1 -0
  527. package/.next/static/chunks/app/api/providers/route-fc747760bd4c8a4b.js +1 -0
  528. package/.next/static/chunks/app/api/reviews/pinned/route-fc747760bd4c8a4b.js +1 -0
  529. package/.next/static/chunks/app/api/sessions/[id]/context/route-fc747760bd4c8a4b.js +1 -0
  530. package/.next/static/chunks/app/api/sessions/[id]/mcp/route-fc747760bd4c8a4b.js +1 -0
  531. package/.next/static/chunks/app/api/sessions/[id]/route-fc747760bd4c8a4b.js +1 -0
  532. package/.next/static/chunks/app/api/sessions/[id]/search/route-fc747760bd4c8a4b.js +1 -0
  533. package/.next/static/chunks/app/api/sessions/[id]/tabs/route-fc747760bd4c8a4b.js +1 -0
  534. package/.next/static/chunks/app/api/sessions/bulk-delete/route-fc747760bd4c8a4b.js +1 -0
  535. package/.next/static/chunks/app/api/sessions/by-ids/route-fc747760bd4c8a4b.js +1 -0
  536. package/.next/static/chunks/app/api/sessions/group/route-fc747760bd4c8a4b.js +1 -0
  537. package/.next/static/chunks/app/api/sessions/pinned/route-fc747760bd4c8a4b.js +1 -0
  538. package/.next/static/chunks/app/api/sessions/route-fc747760bd4c8a4b.js +1 -0
  539. package/.next/static/chunks/app/api/sessions/search/route-fc747760bd4c8a4b.js +1 -0
  540. package/.next/static/chunks/app/api/sessions/thinking/route-fc747760bd4c8a4b.js +1 -0
  541. package/.next/static/chunks/app/api/skills/[name]/route-fc747760bd4c8a4b.js +1 -0
  542. package/.next/static/chunks/app/api/skills/route-fc747760bd4c8a4b.js +1 -0
  543. package/.next/static/chunks/app/api/terminal/[id]/route-fc747760bd4c8a4b.js +1 -0
  544. package/.next/static/chunks/app/api/terminal/route-fc747760bd4c8a4b.js +1 -0
  545. package/.next/static/chunks/app/api/usage/route-fc747760bd4c8a4b.js +1 -0
  546. package/.next/static/chunks/app/api/version/changelog/route-fc747760bd4c8a4b.js +1 -0
  547. package/.next/static/chunks/app/api/version/cockpit/changelog/route-fc747760bd4c8a4b.js +1 -0
  548. package/.next/static/chunks/app/api/version/cockpit/route-fc747760bd4c8a4b.js +1 -0
  549. package/.next/static/chunks/app/api/version/route-fc747760bd4c8a4b.js +1 -0
  550. package/.next/static/chunks/e868780c.f24b6da08e62c7b2.js +18 -0
  551. package/.next/static/chunks/next/dist/client/components/builtin/app-error-fc747760bd4c8a4b.js +1 -0
  552. package/.next/static/chunks/next/dist/client/components/builtin/forbidden-fc747760bd4c8a4b.js +1 -0
  553. package/.next/static/chunks/next/dist/client/components/builtin/not-found-fc747760bd4c8a4b.js +1 -0
  554. package/.next/static/chunks/next/dist/client/components/builtin/unauthorized-fc747760bd4c8a4b.js +1 -0
  555. package/.next/static/chunks/webpack-e31bb45fa59caed8.js +1 -0
  556. package/.next/static/css/3f8af4ae6f812d5c.css +1 -0
  557. package/.next/static/zr8XZzqb74eHitdlkpo-C/_buildManifest.js +1 -0
  558. package/bin/cockpit-hook-bridge.mjs +101 -0
  559. package/dist/server.js +11 -1
  560. package/dist/src/lib/models.js +48 -7
  561. package/dist/src/server/auth.js +32 -10
  562. package/dist/src/server/claude-settings.js +153 -0
  563. package/dist/src/server/cli-init-fetch.js +86 -0
  564. package/dist/src/server/cron-utils.js +16 -5
  565. package/dist/src/server/debug-logger.js +2 -2
  566. package/dist/src/server/defaults.js +16 -7
  567. package/dist/src/server/fs-watcher.js +50 -0
  568. package/dist/src/server/hook-bridge-path.js +34 -0
  569. package/dist/src/server/hook-event-translator.js +211 -0
  570. package/dist/src/server/hook-router.js +150 -0
  571. package/dist/src/server/inbox.js +14 -10
  572. package/dist/src/server/job-lock.js +103 -0
  573. package/dist/src/server/job-scheduler.js +23 -8
  574. package/dist/src/server/job-storage.js +28 -13
  575. package/dist/src/server/notification-settings.js +13 -9
  576. package/dist/src/server/paths.js +23 -0
  577. package/dist/src/server/plans.js +8 -5
  578. package/dist/src/server/providers.js +128 -0
  579. package/dist/src/server/pty-runtime.js +324 -0
  580. package/dist/src/server/pty-session.js +178 -0
  581. package/dist/src/server/session-manager.js +727 -144
  582. package/dist/src/server/session-prefs.js +33 -8
  583. package/dist/src/server/singleton.js +18 -0
  584. package/dist/src/server/stream-processor.js +61 -48
  585. package/dist/src/server/terminal-manager.js +153 -0
  586. package/dist/src/server/todo-watcher.js +178 -0
  587. package/dist/src/server/transcript-watcher.js +91 -0
  588. package/dist/src/server/transcript.js +177 -11
  589. package/dist/src/server/ws-handler.js +235 -61
  590. package/next.config.ts +1 -0
  591. package/package.json +10 -3
  592. package/public/fonts/symbols-nerd-font-mono.woff2 +0 -0
  593. package/.next/server/chunks/1941.js +0 -9
  594. package/.next/server/chunks/2444.js +0 -6
  595. package/.next/static/brzairTqHmHwvfgKpdkYX/_buildManifest.js +0 -1
  596. package/.next/static/chunks/3765-a4c7a493ec83f918.js +0 -20
  597. package/.next/static/chunks/75866-76a3987dda1295ae.js +0 -1
  598. package/.next/static/chunks/93273-87110c1449e1e7fd.js +0 -6
  599. package/.next/static/chunks/app/(app)/agents/[name]/page-3ec9a3460e8e9006.js +0 -8
  600. package/.next/static/chunks/app/(app)/agents/page-d6d504e7d7757ea2.js +0 -1
  601. package/.next/static/chunks/app/(app)/changes/page-a09bf4742aa8b5ce.js +0 -1
  602. package/.next/static/chunks/app/(app)/claude-md/edit/page-ab42921ba2618dc3.js +0 -1
  603. package/.next/static/chunks/app/(app)/claude-md/page-c4c8b20aa002a94a.js +0 -1
  604. package/.next/static/chunks/app/(app)/commands/[name]/page-2124ffed9a4e95a3.js +0 -6
  605. package/.next/static/chunks/app/(app)/commands/page-d5bf1bddd17e31dd.js +0 -1
  606. package/.next/static/chunks/app/(app)/files/page-04e4e5bf1ca89945.js +0 -1
  607. package/.next/static/chunks/app/(app)/hooks/[event]/page-d988623e739973b5.js +0 -6
  608. package/.next/static/chunks/app/(app)/hooks/page-818242d7db432578.js +0 -1
  609. package/.next/static/chunks/app/(app)/inbox/[id]/page-c33dc94e309ff117.js +0 -1
  610. package/.next/static/chunks/app/(app)/inbox/page-ca3e1724b5072734.js +0 -1
  611. package/.next/static/chunks/app/(app)/jobs/[id]/edit/page-3a1c927d76333bf0.js +0 -1
  612. package/.next/static/chunks/app/(app)/jobs/[id]/page-8e698e00b90968b0.js +0 -1
  613. package/.next/static/chunks/app/(app)/jobs/[id]/runs/[runId]/page-f942df0b7c1d280b.js +0 -1
  614. package/.next/static/chunks/app/(app)/jobs/page-7a88cc6ac34550c2.js +0 -1
  615. package/.next/static/chunks/app/(app)/mcp-servers/[name]/page-3541bf3ccdef9145.js +0 -1
  616. package/.next/static/chunks/app/(app)/mcp-servers/page-3927dfd03d921040.js +0 -1
  617. package/.next/static/chunks/app/(app)/page-594120e0ea1df527.js +0 -1
  618. package/.next/static/chunks/app/(app)/reviews/[owner]/[repo]/[number]/page-74c23b04f5c3ff88.js +0 -13
  619. package/.next/static/chunks/app/(app)/sessions/[id]/page-435e9fb4dd34007d.js +0 -1
  620. package/.next/static/chunks/app/(app)/settings/page-f8ada7997c0d5b03.js +0 -1
  621. package/.next/static/chunks/app/(app)/skills/[name]/page-5dbe1e7682880145.js +0 -6
  622. package/.next/static/chunks/app/(app)/skills/page-fd1986ad7e060f4d.js +0 -1
  623. package/.next/static/chunks/app/_global-error/page-65c661eddfc65f5b.js +0 -1
  624. package/.next/static/chunks/app/api/agents/[name]/route-65c661eddfc65f5b.js +0 -1
  625. package/.next/static/chunks/app/api/agents/route-65c661eddfc65f5b.js +0 -1
  626. package/.next/static/chunks/app/api/auth/check/route-65c661eddfc65f5b.js +0 -1
  627. package/.next/static/chunks/app/api/auth/login/route-65c661eddfc65f5b.js +0 -1
  628. package/.next/static/chunks/app/api/auth/setup/route-65c661eddfc65f5b.js +0 -1
  629. package/.next/static/chunks/app/api/auth/ws-token/route-65c661eddfc65f5b.js +0 -1
  630. package/.next/static/chunks/app/api/btw/route-65c661eddfc65f5b.js +0 -1
  631. package/.next/static/chunks/app/api/claude-md/route-65c661eddfc65f5b.js +0 -1
  632. package/.next/static/chunks/app/api/commands/[name]/route-65c661eddfc65f5b.js +0 -1
  633. package/.next/static/chunks/app/api/commands/route-65c661eddfc65f5b.js +0 -1
  634. package/.next/static/chunks/app/api/defaults/route-65c661eddfc65f5b.js +0 -1
  635. package/.next/static/chunks/app/api/filesystem/browse/route-65c661eddfc65f5b.js +0 -1
  636. package/.next/static/chunks/app/api/filesystem/files/route-65c661eddfc65f5b.js +0 -1
  637. package/.next/static/chunks/app/api/filesystem/mkdir/route-65c661eddfc65f5b.js +0 -1
  638. package/.next/static/chunks/app/api/filesystem/read/route-65c661eddfc65f5b.js +0 -1
  639. package/.next/static/chunks/app/api/git/clone/route-65c661eddfc65f5b.js +0 -1
  640. package/.next/static/chunks/app/api/git/commit/route-65c661eddfc65f5b.js +0 -1
  641. package/.next/static/chunks/app/api/git/diff/route-65c661eddfc65f5b.js +0 -1
  642. package/.next/static/chunks/app/api/git/discard/route-65c661eddfc65f5b.js +0 -1
  643. package/.next/static/chunks/app/api/git/generate-message/route-65c661eddfc65f5b.js +0 -1
  644. package/.next/static/chunks/app/api/git/push/route-65c661eddfc65f5b.js +0 -1
  645. package/.next/static/chunks/app/api/git/status/route-65c661eddfc65f5b.js +0 -1
  646. package/.next/static/chunks/app/api/github/file-content/route-65c661eddfc65f5b.js +0 -1
  647. package/.next/static/chunks/app/api/github/orgs/route-65c661eddfc65f5b.js +0 -1
  648. package/.next/static/chunks/app/api/github/prs/checks/route-65c661eddfc65f5b.js +0 -1
  649. package/.next/static/chunks/app/api/github/prs/diff/route-65c661eddfc65f5b.js +0 -1
  650. package/.next/static/chunks/app/api/github/prs/review/route-65c661eddfc65f5b.js +0 -1
  651. package/.next/static/chunks/app/api/github/prs/route-65c661eddfc65f5b.js +0 -1
  652. package/.next/static/chunks/app/api/github/prs/view/route-65c661eddfc65f5b.js +0 -1
  653. package/.next/static/chunks/app/api/github/repos/route-65c661eddfc65f5b.js +0 -1
  654. package/.next/static/chunks/app/api/github/review-session/route-65c661eddfc65f5b.js +0 -1
  655. package/.next/static/chunks/app/api/health/route-65c661eddfc65f5b.js +0 -1
  656. package/.next/static/chunks/app/api/hooks/route-65c661eddfc65f5b.js +0 -1
  657. package/.next/static/chunks/app/api/inbox/[id]/route-65c661eddfc65f5b.js +0 -1
  658. package/.next/static/chunks/app/api/inbox/route-65c661eddfc65f5b.js +0 -1
  659. package/.next/static/chunks/app/api/jobs/[id]/route-65c661eddfc65f5b.js +0 -1
  660. package/.next/static/chunks/app/api/jobs/[id]/runs/[runId]/route-65c661eddfc65f5b.js +0 -1
  661. package/.next/static/chunks/app/api/jobs/[id]/runs/[runId]/transcript/route-65c661eddfc65f5b.js +0 -1
  662. package/.next/static/chunks/app/api/jobs/[id]/runs/route-65c661eddfc65f5b.js +0 -1
  663. package/.next/static/chunks/app/api/jobs/[id]/trigger/route-65c661eddfc65f5b.js +0 -1
  664. package/.next/static/chunks/app/api/jobs/mcp-discover/route-65c661eddfc65f5b.js +0 -1
  665. package/.next/static/chunks/app/api/jobs/route-65c661eddfc65f5b.js +0 -1
  666. package/.next/static/chunks/app/api/jobs/status/route-65c661eddfc65f5b.js +0 -1
  667. package/.next/static/chunks/app/api/mcp-servers/[name]/route-65c661eddfc65f5b.js +0 -1
  668. package/.next/static/chunks/app/api/mcp-servers/[name]/test/route-65c661eddfc65f5b.js +0 -1
  669. package/.next/static/chunks/app/api/mcp-servers/route-65c661eddfc65f5b.js +0 -1
  670. package/.next/static/chunks/app/api/notifications/route-65c661eddfc65f5b.js +0 -1
  671. package/.next/static/chunks/app/api/notifications/test/route-65c661eddfc65f5b.js +0 -1
  672. package/.next/static/chunks/app/api/reviews/pinned/route-65c661eddfc65f5b.js +0 -1
  673. package/.next/static/chunks/app/api/sessions/[id]/context/route-65c661eddfc65f5b.js +0 -1
  674. package/.next/static/chunks/app/api/sessions/[id]/mcp/route-65c661eddfc65f5b.js +0 -1
  675. package/.next/static/chunks/app/api/sessions/[id]/route-65c661eddfc65f5b.js +0 -1
  676. package/.next/static/chunks/app/api/sessions/[id]/search/route-65c661eddfc65f5b.js +0 -1
  677. package/.next/static/chunks/app/api/sessions/bulk-delete/route-65c661eddfc65f5b.js +0 -1
  678. package/.next/static/chunks/app/api/sessions/by-ids/route-65c661eddfc65f5b.js +0 -1
  679. package/.next/static/chunks/app/api/sessions/group/route-65c661eddfc65f5b.js +0 -1
  680. package/.next/static/chunks/app/api/sessions/pinned/route-65c661eddfc65f5b.js +0 -1
  681. package/.next/static/chunks/app/api/sessions/route-65c661eddfc65f5b.js +0 -1
  682. package/.next/static/chunks/app/api/sessions/search/route-65c661eddfc65f5b.js +0 -1
  683. package/.next/static/chunks/app/api/skills/[name]/route-65c661eddfc65f5b.js +0 -1
  684. package/.next/static/chunks/app/api/skills/route-65c661eddfc65f5b.js +0 -1
  685. package/.next/static/chunks/app/api/usage/route-65c661eddfc65f5b.js +0 -1
  686. package/.next/static/chunks/app/api/version/cockpit/route-65c661eddfc65f5b.js +0 -1
  687. package/.next/static/chunks/app/api/version/route-65c661eddfc65f5b.js +0 -1
  688. package/.next/static/chunks/next/dist/client/components/builtin/app-error-65c661eddfc65f5b.js +0 -1
  689. package/.next/static/chunks/next/dist/client/components/builtin/forbidden-65c661eddfc65f5b.js +0 -1
  690. package/.next/static/chunks/next/dist/client/components/builtin/not-found-65c661eddfc65f5b.js +0 -1
  691. package/.next/static/chunks/next/dist/client/components/builtin/unauthorized-65c661eddfc65f5b.js +0 -1
  692. package/.next/static/chunks/webpack-3461a05957b13f46.js +0 -1
  693. package/.next/static/css/f04f303b5708dd90.css +0 -1
  694. /package/.next/static/{brzairTqHmHwvfgKpdkYX → zr8XZzqb74eHitdlkpo-C}/_ssgManifest.js +0 -0
@@ -1,9 +0,0 @@
1
- "use strict";exports.id=1941,exports.ids=[1941],exports.modules={13470:(a,b,c)=>{c.d(b,{JG:()=>l,Kw:()=>m,XP:()=>k});var d=c(73024),e=c(48161),f=c(76760);let g=(0,f.join)((0,e.homedir)(),".cockpit"),h=(0,f.join)(g,"session-prefs.json"),i=null;function j(){if(i)return i;try{return i=JSON.parse((0,d.readFileSync)(h,"utf-8"))}catch{return i={}}}function k(a){let b=j(),c=m(a);return c&&b[c.cockpitId]?b[c.cockpitId]:b[a]}function l(a,b){let c=j(),e=a;if(!c[a]){let b=m(a);b&&c[b.cockpitId]&&(e=b.cockpitId)}let f=c[e]||{};if(c[e]={...f,...b},i)try{(0,d.mkdirSync)(g,{recursive:!0}),(0,d.writeFileSync)(h,JSON.stringify(i,null,2)+"\n")}catch{}}function m(a){for(let[b,c]of Object.entries(j())){if(!c.previousCliSessionIds||!c.cliSessionId)continue;if(c.cliSessionId===a)return{cockpitId:b,truncatedPrevIds:[...c.previousCliSessionIds]};let d=c.previousCliSessionIds.indexOf(a);if(d>=0)return{cockpitId:b,truncatedPrevIds:c.previousCliSessionIds.slice(0,d)}}return null}},41941:(a,b,c)=>{c.d(b,{Rb:()=>F,wF:()=>E});var d=c(31421),e=c(78474),f=c(73024),g=c(48161),h=c(76760),i=c.n(h),j=c(78796);let k=[{alias:"haiku",version:"4.5",modelId:"claude-haiku-4-5-20251001",displayName:"Haiku 4.5",description:"Fastest",supportsExtendedContext:!1,contextWindow:2e5,isDefault:!0},{alias:"sonnet",version:"4.6",modelId:"claude-sonnet-4-6",displayName:"Sonnet 4.6",description:"Balanced",supportsExtendedContext:!0,contextWindow:2e5,isDefault:!0},{alias:"opus",version:"4.6",modelId:"claude-opus-4-6",displayName:"Opus 4.6",description:"Previous generation",supportsExtendedContext:!0,contextWindow:2e5},{alias:"opus",version:"4.7",modelId:"claude-opus-4-7",displayName:"Opus 4.7",description:"Most capable",supportsExtendedContext:!0,contextWindow:2e5,isDefault:!0}];function l(a){if(!a)return null;let b=a.replace(/\[.*\]$/,"");if("opus"===b||"sonnet"===b||"haiku"===b)return k.find(a=>a.alias===b&&a.isDefault)??k.filter(a=>a.alias===b)[0]??null;return function(a){if(a)return k.find(b=>b.modelId===a)}(b)??null}function m(a){if(!a||"haiku"===a.alias)return[];let b=["low","medium","high"];return"opus"===a.alias&&"4.7"===a.version&&b.push("xhigh"),b.push("max"),b}function n(a){return a&&"haiku"!==a.alias?"opus"===a.alias&&"4.7"===a.version?"xhigh":"sonnet"===a.alias?"medium":"high":null}var o=c(13075),p=c(51675);class q{parseLine(a){let b,c=a.trim();if(!c)return[];try{b=JSON.parse(c)}catch{return[]}let d=b.type;if("assistant"===d)return this.parseAssistantEvent(b);if("user"===d)return this.parseUserEvent(b);if("result"===d)return this.parseResultEvent(b);if("control_request"===d)return this.parseControlRequest(b);if("tool_progress"===d){let a=b.tool_use_id,c=b.content;return a&&c?[{type:"tool_progress",toolId:a,text:c}]:[]}if("rate_limit_event"===d){let a=b.rate_limit_info;return a?[{type:"rate_limit",rateLimitInfo:{status:a.status||"unknown",retryAfterMs:a.retry_after_ms}}]:[]}if("prompt_suggestion"===d){let a=b.suggestions||b.prompt_suggestions;return a?.length?[{type:"prompt_suggestion",suggestions:a}]:[]}if("auth_status"===d)return[{type:"system_message",text:`__auth::${b.status||"unknown"}`}];if("tool_use_summary"===d||"stream_event"===d)return[];if("control_response"===d){let a=b.response;if(!a)return[];let c=a.subtype,d=a.response||a;if("success"!==c||!d.models)return[];let e=d.models||[],f=d.account,g=d.commands||[],h=d.agents||[];return[{type:"init",initData:{slashCommands:g.map(a=>a.name||""),skills:[],agents:h.map(a=>({name:a.name||"",description:a.description||void 0})),version:"",model:"",mcpServers:[],models:e.map(a=>({value:a.value||"",displayName:a.displayName||"",description:a.description||"",supportsEffort:a.supportsEffort,supportedEffortLevels:a.supportedEffortLevels,supportsAdaptiveThinking:a.supportsAdaptiveThinking,supportsFastMode:a.supportsFastMode,supportsAutoMode:a.supportsAutoMode})),account:f?{email:f.email||"",organization:f.organization||"",subscriptionType:f.subscriptionType||""}:void 0,commands:g.map(a=>({name:a.name||"",description:a.description||"",argumentHint:a.argumentHint}))}}]}if("system"===d){let a=b.subtype;if("compact_boundary"===a)return[{type:"system_message",text:"__compact_boundary__"}];if("status"===a&&"compacting"===b.status)return[{type:"system_message",text:"__compact::start"}];if("status"===a&&b.permissionMode){let a=b.permissionMode;return[{type:"system_message",text:`__permission_mode::${a}`}]}if("hook_started"===a){let a=b.hook_name||b.name||"unknown";return[{type:"system_message",text:`__hook::started::${a}`}]}if("hook_progress"===a){let a=b.content||"";return[{type:"system_message",text:`__hook::progress::${a}`}]}if("hook_response"===a)return[{type:"system_message",text:"__hook::done"}];if("task_started"===a)return[{type:"task_update",taskInfo:{taskId:b.task_id||"",toolUseId:b.tool_use_id||"",status:"running",description:b.description||""}}];if("task_progress"===a)return[{type:"task_update",taskInfo:{taskId:b.task_id||"",toolUseId:b.tool_use_id||"",status:"progress",description:b.description||""}}];if("task_notification"===a)return[{type:"task_update",taskInfo:{taskId:b.task_id||"",toolUseId:b.tool_use_id||"",status:"completed",description:b.description||"",summary:b.summary||""}}];if("init"===a){let a=b.slash_commands||[],c=b.skills||[],d=(b.agents||[]).map(a=>"string"==typeof a?{name:a}:{name:a.name||"",description:a.description}),e=b.claude_code_version||"";return[{type:"init",initData:{slashCommands:a,skills:c,agents:d,version:e,model:b.model||"",mcpServers:(b.mcp_servers||[]).map(a=>({name:a.name||"",status:a.status||""}))}}]}if(a)return[{type:"system_message",text:`__system::${a}`}]}return[]}parseAssistantEvent(a){let b=a.message;if(!b?.content)return[];b.model&&(this.lastAssistantModel=b.model);let c=b.id||void 0,d=[];for(let a of b.content)if("thinking"===a.type){let b=!a.thinking&&!!a.signature;if(!a.thinking&&!b)continue;d.push({type:"thinking",text:a.thinking??"",redacted:b,assistantMessageId:c})}else"text"===a.type&&a.text?d.push({type:"text_delta",text:a.text,assistantMessageId:c}):"tool_use"===a.type&&d.push({type:"tool_use_start",toolName:a.name||"unknown",toolId:a.id,toolInput:a.input?JSON.stringify(a.input):"",assistantMessageId:c});return d}parseUserEvent(a){let b=a.message;if(!b?.content||!Array.isArray(b.content))return[];let c=[];for(let a of b.content)if("tool_result"===a.type&&a.tool_use_id){let b=this.extractToolResultOutput(a),d=this.extractFilePath(a);c.push({type:"tool_result",toolId:a.tool_use_id,toolOutput:b,filePath:d})}return c}extractToolResultOutput(a){if("string"==typeof a.content)return a.content;if(Array.isArray(a.content)){let b=[];for(let c of a.content)"string"==typeof c?b.push(c):"text"===c.type&&c.text&&b.push(c.text);return b.join("\n")}return""}extractFilePath(a){if(Array.isArray(a.content)){for(let b of a.content)if("string"!=typeof b){let a=b.input;if(a){if("string"==typeof a.file_path)return a.file_path;if("string"==typeof a.filePath)return a.filePath;if("string"==typeof a.path)return a.path}}}}parseControlRequest(a){let b=a.request;return b?.subtype==="can_use_tool"?[{type:"permission_request",requestId:a.request_id,toolName:b.tool_name||"unknown",toolInput:b.input?JSON.stringify(b.input):"",rawToolInput:b.input,permissionSuggestions:b.permission_suggestions}]:[]}parseResultEvent(a){let b=a.result,c=a.uuid,d=a.subtype;return[{type:"message_done",message:{id:c||(0,j.A)(),role:"assistant",content:b||"",toolUses:[],blocks:[],timestamp:Date.now(),model:this.lastAssistantModel??void 0},interrupted:"error_during_execution"===d}]}constructor(){this.lastAssistantModel=null}}let r=(0,h.join)((0,g.homedir)(),".claude","plans");var s=c(13470);let t=new Set(["ls","cat","head","tail","wc","grep","rg","find","pwd","which","type","whereis","file","stat","du","df","tree","date","echo","printf","env","printenv","basename","dirname","realpath","readlink","uname","whoami","hostname","id","dir","findstr","where","more","sort"]),u=new Set(["status","log","diff","show","blame","branch","remote","ls-files","ls-tree","rev-parse","describe","tag","reflog"]),v=[/^gh\s+pr\s+(list|view|diff|status|checks)\b/,/^gh\s+issue\s+(list|view|status)\b/,/^gh\s+repo\s+(list|view|clone)\b/,/^gh\s+run\s+(list|view|watch)\b/,/^gh\s+search\b/,/^gh\s+api\b(?!.*-X\s*(POST|PUT|PATCH|DELETE))(?!.*--method\s*(POST|PUT|PATCH|DELETE))/],w=new Set(["Edit","Write","Bash","NotebookEdit"]),x=new Set(["ExitPlanMode","AskUserQuestion","EnterPlanMode"]);function y(a,b,c){let d={emit:[],systemMessages:[],errors:[],intermediateMessages:[],snapshot:null,permissionActions:[],todoInputs:[],compactDone:!1};for(let e of a){if(e.assistantMessageId&&e.assistantMessageId!==b.currentAssistantMsgId&&0===b.agentStack.length){if(b.currentAssistantMsgId&&b.pendingBlocks.length>0){let a=b.pendingBlocks.filter(a=>"text"===a.type).map(a=>a.text).join(""),c={id:b.currentAssistantMsgId,role:"assistant",content:a,toolUses:[...b.pendingToolUses],blocks:[...b.pendingBlocks],timestamp:Date.now()};d.intermediateMessages.push(c),b.pendingToolUses.length=0,b.pendingBlocks.length=0}b.currentAssistantMsgId=e.assistantMessageId}if("thinking"===e.type&&(e.text||e.redacted)){if(b.agentStack.length>0)continue;let a=null!=b.thinkingStartedAt?Date.now()-b.thinkingStartedAt:void 0;e.durationMs=a;let c=b.pendingBlocks[b.pendingBlocks.length-1];c&&"thinking"===c.type?(c.text+=e.text??"",e.redacted&&(c.redacted=!0),void 0!==a&&(c.durationMs=a)):b.pendingBlocks.push({type:"thinking",text:e.text??"",redacted:e.redacted,durationMs:a})}else if("text_delta"===e.type&&e.text){if(b.agentStack.length>0)continue;b.thinkingStartedAt=null;let a=b.pendingBlocks[b.pendingBlocks.length-1];a&&"text"===a.type?a.text+=e.text:b.pendingBlocks.push({type:"text",text:e.text})}else if("tool_use_start"===e.type){b.thinkingStartedAt=null;let a={id:e.toolId||"",name:e.toolName||"",input:e.toolInput||"",output:"",status:"running"},c="Agent"===a.name;"TodoWrite"===a.name&&d.todoInputs.push(a.input);let f=e.assistantMessageId===b.currentAssistantMsgId;if(e.isMainThread=f,b.agentStack.length>0&&!f){let c=b.agentStack[b.agentStack.length-1];c.children||(c.children=[]),c.children.push(a)}else b.pendingToolUses.push(a),b.pendingBlocks.push({type:"tool_use",toolUse:a});c&&b.agentStack.push(a)}else if("tool_result"===e.type){let a=b.agentStack.findIndex(a=>a.id===e.toolId);if(-1!==a)b.agentStack[a].output=e.toolOutput||"",e.filePath&&(b.agentStack[a].filePath=e.filePath),b.agentStack[a].status="done",b.agentStack.splice(a,1);else if(b.agentStack.length>0)for(let a of b.agentStack){let b=a.children?.find(a=>a.id===e.toolId);if(b){b.output=e.toolOutput||"",e.filePath&&(b.filePath=e.filePath),b.status="done";break}}else{let a=b.pendingToolUses.find(a=>a.id===e.toolId);a&&(a.output=e.toolOutput||"",e.filePath&&(a.filePath=e.filePath),a.status="done")}b.thinkingStartedAt=Date.now()}else if("tool_progress"===e.type&&e.toolId&&e.text){let a=b.agentStack.find(a=>a.id===e.toolId);if(a)a.output+=e.text;else if(b.agentStack.length>0){let a=!1;for(let c of b.agentStack){let b=c.children?.find(a=>a.id===e.toolId);if(b){b.output+=e.text,a=!0;break}}if(!a){let a=b.pendingToolUses.find(a=>a.id===e.toolId);a&&(a.output+=e.text)}}else{let a=b.pendingToolUses.find(a=>a.id===e.toolId);a&&(a.output+=e.text)}}else if("system_message"===e.type&&e.text){if(e.text.startsWith("__permission_mode::")){d.systemMessages.push(e.text);continue}d.systemMessages.push(e.text)}else if("message_done"===e.type&&e.message){if(b.thinkingStartedAt=null,e.interrupted){b.currentAssistantMsgId&&(e.message.id=b.currentAssistantMsgId),b.pendingBlocks.length>0&&(e.message.blocks=[...b.pendingBlocks],e.message.content=b.pendingBlocks.filter(a=>"text"===a.type).map(a=>a.text).join("")),b.pendingToolUses.length>0&&0===e.message.toolUses.length&&(e.message.toolUses=[...b.pendingToolUses]),b.pendingBlocks.length=0,b.pendingToolUses.length=0,b.agentStack.length=0,b.currentAssistantMsgId=null,d.statusChange="idle",b.flushedOnMessageDone=!0,d.emit.push(e),d.snapshot=null;continue}if(0===b.pendingBlocks.length&&0===b.pendingToolUses.length&&b.currentAssistantMsgId){b.currentAssistantMsgId=null,d.statusChange="idle",c.compacting&&(d.compactDone=!0),b.flushedOnMessageDone=!0,d.snapshot=null;continue}b.currentAssistantMsgId&&(e.message.id=b.currentAssistantMsgId);let a=b.pendingBlocks.some(a=>"text"===a.type);if(e.message.content&&!a&&b.pendingBlocks.push({type:"text",text:e.message.content}),0===b.pendingToolUses.length){let a=b.pendingBlocks.filter(a=>"text"===a.type).map(a=>a.text).join("").trim();if("No response requested."===a){b.pendingBlocks.length=0,b.currentAssistantMsgId=null,d.statusChange="idle",b.flushedOnMessageDone=!0,d.snapshot=null;continue}let c=a.match(/^API Error: (\d+)\s/);if(c){let e=a.match(/"message"\s*:\s*"([^"]+)"/),f=e?`${e[1]} (HTTP ${c[1]})`:a.slice(0,200);b.pendingBlocks.length=0,b.pendingToolUses.length=0,b.agentStack.length=0,b.currentAssistantMsgId=null,d.statusChange="idle",d.errors.push(f),b.flushedOnMessageDone=!0,d.snapshot=null;continue}}e.message.blocks=[...b.pendingBlocks],0===e.message.toolUses.length&&b.pendingToolUses.length>0&&(e.message.toolUses=[...b.pendingToolUses]),b.pendingToolUses.length=0,b.pendingBlocks.length=0,b.agentStack.length=0,b.currentAssistantMsgId=null,d.statusChange="idle",c.compacting&&(d.compactDone=!0),b.flushedOnMessageDone=!0}if("permission_request"===e.type&&e.requestId){let a=e.toolName||"";if(c.planMode){if("Bash"===a){if(function(a){let b=a.trim();if(!b||/(?:;|&&|\|\||>|<|`|\$\(|<\()/.test(b)||/(?:^|[^|])&(?!&)/.test(b))return!1;let c=b.split("|").map(a=>a.trim()).filter(Boolean);if(!c.length)return!1;for(let a of c){let[b,c]=a.split(/\s+/);if("git"===b){if(!c||!u.has(c))return!1;continue}if(!t.has(b))return!1}return!0}(e.rawToolInput?.command??"")){d.permissionActions.push({type:"auto_approve",requestId:e.requestId,toolName:a,rawToolInput:e.rawToolInput});continue}d.permissionActions.push({type:"auto_deny",requestId:e.requestId,toolName:a,denyReason:"Cockpit plan mode: Bash is restricted to read-only commands (ls, cat, head, tail, wc, grep, rg, find, stat, file, du, df, tree, git status/log/diff/show/blame, etc.). Shell operators ';', '&&', '||', '>', '<', '$(...)', backticks are not allowed. Use Read/Grep/Glob for file access, or call ExitPlanMode when ready to implement."});continue}if(w.has(a)){d.permissionActions.push({type:"auto_deny",requestId:e.requestId,toolName:a,denyReason:`Cockpit plan mode: ${a} is blocked. Plan mode is read-only; call ExitPlanMode to submit the plan before making changes.`});continue}if(!x.has(a)){d.permissionActions.push({type:"auto_approve",requestId:e.requestId,toolName:a,rawToolInput:e.rawToolInput});continue}}if("Bash"===a&&e.rawToolInput){let b=e.rawToolInput.command||"";if(b.trimStart().startsWith("gh ")&&function(a){let b=a.trim();return v.some(a=>a.test(b))}(b)){d.permissionActions.push({type:"auto_approve",requestId:e.requestId,toolName:a,rawToolInput:e.rawToolInput});continue}}d.permissionActions.push({type:"store",requestId:e.requestId,toolName:a,toolInput:e.toolInput,rawToolInput:e.rawToolInput,permissionSuggestions:e.permissionSuggestions})}d.emit.push(e),d.snapshot=function(a){if(a.currentAssistantMsgId&&a.pendingBlocks.length>0){let b=a.pendingBlocks.filter(a=>"text"===a.type).map(a=>a.text).join("");return{messageId:a.currentAssistantMsgId,content:b,toolUses:a.pendingToolUses.map(a=>({...a,children:a.children?[...a.children]:void 0})),blocks:a.pendingBlocks.map(a=>"tool_use"===a.type?{...a,toolUse:{...a.toolUse}}:{...a})}}return null}(b)}return d}var z=c(16987);let A=(a,b)=>{if(!(0,o.TT)())return;let c=new Date().toISOString().slice(11,23),d=a.slice(0,8);console.log(`[session:${d}] ${c} ${b}`)};class B{constructor(){this.sessions=new Map,setInterval(()=>{for(let[a,b]of this.sessions)if("running"===b.info.status&&!b.process){let c=a.slice(0,8);(0,o.cY)(`[session:${c}] stale check: status=running but process=null, correcting to idle`),(0,o._N)(a,"idle:stale-check"),b.info.status="idle",b.emitter.emit("status",a,"idle")}},15e3)}createSession(a,b,c){let d=(0,j.A)(),f=Date.now(),g=(0,p.r)(),h={id:d,name:b||i().basename(a)||a,cwd:a,createdAt:f,lastActiveAt:f,status:"idle",model:g.model||void 0,pendingRequestCount:0};return this.sessions.set(d,{info:h,process:null,stdin:null,emitter:new e.EventEmitter,hasSpawnedBefore:!1,cliSessionId:d,previousCliSessionIds:[],bypassAllPermissions:c?.bypassPermissions??g.bypassAllPermissions,planMode:!1,needsRespawnForPermissions:!1,compacting:!1,thinkingLevel:g.thinkingLevel,streamState:null,contextUsage:null,contextWindowSize:2e5,todoItems:[],pendingRequests:new Map,controlCallbacks:new Map,streamingSnapshot:null,queuedMessages:[],queuePaused:!1,transcriptBuffer:[],transcriptByteOffset:0,transcriptTotalSize:0,bufferCliSessionId:d,paginationPrevIds:[]}),h}ensureSession(a,b){let c=this.sessions.get(a);if(!c){let d=(0,s.XP)(a),f=(0,p.r)(),g=Date.now();c={info:{id:a,name:d?.name||i().basename(b)||b,cwd:b,createdAt:g,lastActiveAt:g,status:"idle",model:d?.model||f.model||void 0,pendingRequestCount:0},process:null,stdin:null,emitter:new e.EventEmitter,hasSpawnedBefore:!0,cliSessionId:d?.cliSessionId||a,previousCliSessionIds:d?.previousCliSessionIds||[],bypassAllPermissions:d?.bypassAllPermissions??f.bypassAllPermissions,planMode:d?.planMode??!1,pendingPlanReminder:d?.planMode??!1,needsRespawnForPermissions:!1,compacting:!1,thinkingLevel:d?.thinkingLevel??n(l(d?.model||f.model))??f.thinkingLevel,streamState:null,contextUsage:null,contextWindowSize:2e5,todoItems:[],pendingRequests:new Map,controlCallbacks:new Map,initData:d?.initData,streamingSnapshot:null,queuedMessages:[],queuePaused:!1,transcriptBuffer:[],transcriptByteOffset:0,transcriptTotalSize:0,bufferCliSessionId:d?.cliSessionId||a,paginationPrevIds:[]},this.sessions.set(a,c)}return c}async getSession(a){let b=this.sessions.get(a);if(!b){let c=(0,s.XP)(a),d=await (0,z.gT)(c?.cliSessionId||a)||await (0,z.gT)(a);if(!d)return null;this.ensureSession(a,d),b=this.sessions.get(a)}let c=(0,p.r)().messageStitching,d=c&&b.previousCliSessionIds.length>0,{messages:e,byteOffset:f,totalSize:g,lastUsage:h}=await (0,z.vi)(b.cliSessionId,b.info.cwd,d?void 0:{tailLines:150});if(b.bufferCliSessionId=b.cliSessionId,d){let a=e;for(let c=b.previousCliSessionIds.length-1;c>=0;c--){let d=b.previousCliSessionIds[c],g=await (0,z.vi)(d,b.info.cwd,{tailLines:150});if(g.messages.length>0){let c={id:"clear-boundary-"+Date.now(),role:"system",content:"__context_reset__",toolUses:[],blocks:[],timestamp:Date.now()};e=[...g.messages,c,...a],f=g.byteOffset,h=h||g.lastUsage,b.bufferCliSessionId=d;break}}}b.transcriptBuffer=e,b.transcriptByteOffset=f,b.transcriptTotalSize=g,b.paginationPrevIds=c?[...b.previousCliSessionIds]:[];let j=e.length>50?e.slice(-50):e,k=e.length>50||f>0||c&&b.previousCliSessionIds.length>0,l=i().basename(b.info.cwd)||b.info.cwd;if(b.info.name===l&&e.length>0){let a=e.find(a=>"user"===a.role&&a.content&&!a.content.startsWith("[")&&!a.content.startsWith("<"));a&&(b.info.name=a.content.slice(0,120))}return{info:b.info,messages:j,hasMore:k,lastUsage:h}}async getSessionByCwd(a,b){this.ensureSession(a,b);let c=this.sessions.get(a),d=(0,p.r)().messageStitching,e=d&&c.previousCliSessionIds.length>0,{messages:f,byteOffset:g,totalSize:h,lastUsage:j}=await (0,z.vi)(c.cliSessionId,b,e?void 0:{tailLines:150});if(c.bufferCliSessionId=c.cliSessionId,e){let a=f;for(let d=c.previousCliSessionIds.length-1;d>=0;d--){let e=c.previousCliSessionIds[d],h=await (0,z.vi)(e,b,{tailLines:150});if(h.messages.length>0){let b={id:"clear-boundary-"+Date.now(),role:"system",content:"__context_reset__",toolUses:[],blocks:[],timestamp:Date.now()};f=[...h.messages,b,...a],g=h.byteOffset,j=j||h.lastUsage,c.bufferCliSessionId=e;break}}}c.transcriptBuffer=f,c.transcriptByteOffset=g,c.transcriptTotalSize=h,c.paginationPrevIds=d?[...c.previousCliSessionIds]:[];let k=f.length>50?f.slice(-50):f,l=f.length>50||g>0||d&&c.previousCliSessionIds.length>0,m=i().basename(b)||b;if(c.info.name===m&&f.length>0){let a=f.find(a=>"user"===a.role&&a.content&&!a.content.startsWith("[")&&!a.content.startsWith("<"));a&&(c.info.name=a.content.slice(0,120))}return{info:c.info,messages:k,hasMore:l,lastUsage:j}}async getCliSessionView(a,b){if(!(0,z.Br)(a,b))return null;let c=(0,s.Kw)(a),d=c?c.truncatedPrevIds:[],e=(0,p.r)().messageStitching&&d.length>0,{messages:f,lastUsage:g}=await (0,z.vi)(a,b,e?void 0:{tailLines:150});if(e){let a=f;for(let c=d.length-1;c>=0;c--){let e=await (0,z.vi)(d[c],b,{tailLines:150});if(e.messages.length>0){let b={id:"clear-boundary-"+Date.now(),role:"system",content:"__context_reset__",toolUses:[],blocks:[],timestamp:Date.now()};f=[...e.messages,b,...a],g=g||e.lastUsage;break}}}let h=f.length>50?f.slice(-50):f,j=i().basename(b)||b;if(f.length>0){let a=f.find(a=>"user"===a.role&&a.content&&!a.content.startsWith("[")&&!a.content.startsWith("<"));a&&(j=a.content.slice(0,120))}return{info:{id:a,name:j,cwd:b,createdAt:Date.now(),lastActiveAt:Date.now(),status:"idle"},messages:h,hasMore:f.length>50,lastUsage:g}}async getMoreHistory(a,b){let c=this.sessions.get(a);if(!c)return{messages:[],hasMore:!1};let d=c.paginationPrevIds,e=c.transcriptBuffer,f=e.findIndex(a=>a.id===b);if(f>0){let a=Math.max(0,f-50);return{messages:e.slice(a,f),hasMore:a>0||c.transcriptByteOffset>0||d.length>0}}if(c.transcriptByteOffset<=0){for(;d.length>0&&d[d.length-1]===c.bufferCliSessionId;)d.pop();if(0===d.length)return{messages:[],hasMore:!1};let a=d[d.length-1],f=await (0,z.vi)(a,c.info.cwd,{tailLines:150});d.pop(),c.transcriptByteOffset=f.byteOffset,c.bufferCliSessionId=a,c.transcriptBuffer=[...f.messages,...e];let g=c.transcriptBuffer,h=g.findIndex(a=>a.id===b);if(h>0){let a=Math.max(0,h-50);return{messages:g.slice(a,h),hasMore:a>0||c.transcriptByteOffset>0||d.length>0}}return{messages:f.messages.slice(-50),hasMore:f.byteOffset>0||d.length>0}}let g=c.info.cwd,h=await (0,z.y)(c.bufferCliSessionId,g,c.transcriptByteOffset,150);c.transcriptByteOffset=h.newByteOffset,c.transcriptBuffer=[...h.messages,...e];let i=c.transcriptBuffer,j=i.findIndex(a=>a.id===b);if(j>0){let a=Math.max(0,j-50);return{messages:i.slice(a,j),hasMore:a>0||c.transcriptByteOffset>0||d.length>0}}return{messages:h.messages.slice(-50),hasMore:h.newByteOffset>0||d.length>0}}getTranscriptBuffer(a){return this.sessions.get(a)?.transcriptBuffer??[]}getStreamingSnapshot(a){return this.sessions.get(a)?.streamingSnapshot??null}isCompacting(a){return this.sessions.get(a)?.compacting??!1}listActiveSessions(){return Array.from(this.sessions.values()).filter(a=>null!==a.process).map(a=>a.info)}listKnownSessions(){return Array.from(this.sessions.values()).map(a=>a.info)}getKnownMcpServers(){let a=new Set;for(let b of this.sessions.values())for(let c of b.initData?.mcpServers||[])a.add(c.name);if(0===a.size)for(let b of function(){try{if(!(0,f.existsSync)(C))return[];return JSON.parse((0,f.readFileSync)(C,"utf-8"))}catch{return[]}}())a.add(b);return Array.from(a)}isProcessAlive(a){let b=this.sessions.get(a);return!!b?.process}hasRunningProcess(a){let b=this.sessions.get(a);return!!b?.process}fixStaleStatus(a){let b=this.sessions.get(a);b&&"running"===b.info.status&&!b.process&&(b.info.status="idle",b.pendingRequests.clear(),this.notifyPendingChanged(b,a))}restartSession(a){let b=this.sessions.get(a);return!!b&&("running"===b.info.status?(this.emitSystem(b,a,"Cannot restart while running. Interrupt first."),!1):(this.killProcess(b),b.pendingRequests.clear(),this.notifyPendingChanged(b,a),b.streamingSnapshot=null,b.info.status="idle",b.emitter.emit("status",a,"idle"),this.spawnProcess(b,a),this.emitSystem(b,a,"Session restarted — agents and commands reloaded"),!0))}destroySession(a){let b=this.sessions.get(a);return!!b&&(b.process&&this.endProcess(b,"session_destroyed"),b.emitter.removeAllListeners(),this.sessions.delete(a),!0)}subscribe(a,b){let c=this.sessions.get(a);if(!c)return null;let d=(a,c)=>{b(c)};return c.emitter.on("event",d),()=>c.emitter.off("event",d)}onStatus(a,b){let c=this.sessions.get(a);if(!c)return null;let d=(a,c)=>{b(c)};return c.emitter.on("status",d),()=>c.emitter.off("status",d)}onPending(a,b){let c=this.sessions.get(a);if(!c)return null;let d=(a,c)=>{b(c)};return c.emitter.on("pending",d),()=>c.emitter.off("pending",d)}onError(a,b){let c=this.sessions.get(a);if(!c)return null;let d=(a,c)=>{b(c)};return c.emitter.on("error",d),()=>c.emitter.off("error",d)}interrupt(a){let b=this.sessions.get(a);if(!b?.process)return(0,o._N)(a,"interrupt:no-process",{hasSession:!!b}),!1;if(b.queuedMessages.length>0&&(b.queuePaused=!0),b.stdin){let c={type:"control_request",request_id:`interrupt-${Date.now()}`,request:{subtype:"interrupt"}};return(0,o._N)(a,"interrupt:stdin",{requestId:c.request_id}),b.stdin.write(JSON.stringify(c)+"\n"),!0}return(0,o._N)(a,"interrupt:kill-fallback"),this.killProcessGroup(b.process),!0}addPendingRequest(a,b){let c=this.sessions.get(a);c&&(c.pendingRequests.set(b.requestId,b),this.notifyPendingChanged(c,a))}removePendingRequest(a,b){let c=this.sessions.get(a);c&&(c.pendingRequests.delete(b),this.notifyPendingChanged(c,a))}getPendingRequests(a){let b=this.sessions.get(a);return b?Array.from(b.pendingRequests.values()):[]}getPendingRequest(a,b){return this.sessions.get(a)?.pendingRequests.get(b)}respondToPermission(a,b,c,d,e,f){let g=this.sessions.get(a);if(!g?.stdin)return!1;g.pendingRequests.delete(b),this.notifyPendingChanged(g,a);let h={type:"control_response",response:{subtype:"success",request_id:b,response:c?{behavior:"allow",updatedInput:d??{},...e?.length?{updatedPermissions:e}:{}}:{behavior:"deny",message:f??"User denied"}}};return g.stdin.write(JSON.stringify(h)+"\n"),!0}sendPermissionMode(a,b,c){if(!a.stdin)return;let d={type:"control_request",request_id:`perm-${Date.now()}`,request:{subtype:"set_permission_mode",mode:c}};this.log(b,`sending set_permission_mode: ${c}`),a.stdin.write(JSON.stringify(d)+"\n")}setBypassAllPermissions(a){let b=this.sessions.get(a);b&&!b.bypassAllPermissions&&(b.bypassAllPermissions=!0,(0,s.JG)(a,{bypassAllPermissions:!0}),b.planMode||(this.sendPermissionMode(b,a,"bypassPermissions"),this.scheduleRespawnForPermissions(b)),this.emitSystem(b,a,"__bypass_state::on"))}clearBypassAllPermissions(a){let b=this.sessions.get(a);b?.bypassAllPermissions&&(b.bypassAllPermissions=!1,(0,s.JG)(a,{bypassAllPermissions:!1}),b.planMode||(this.sendPermissionMode(b,a,"default"),this.scheduleRespawnForPermissions(b)),this.emitSystem(b,a,"__bypass_state::off"))}scheduleRespawnForPermissions(a){a.process&&("idle"===a.info.status?(this.killProcess(a),a.hasSpawnedBefore=(0,z.Br)(a.cliSessionId,a.info.cwd)):a.needsRespawnForPermissions=!0)}isBypassActive(a){let b=this.sessions.get(a);return b?.bypassAllPermissions??!1}setPlanMode(a){let b=this.sessions.get(a);b&&(b.planMode=!0,b.pendingPlanReminder=!0,(0,s.JG)(a,{planMode:!0}),b.process&&(this.killProcess(b),b.info.status="idle",b.emitter.emit("status",a,"idle")),b.pendingRequests.clear(),this.notifyPendingChanged(b,a),this.emitSystem(b,a,"__plan_state::on"))}clearPlanMode(a){let b=this.sessions.get(a);b?.planMode&&(b.planMode=!1,(0,s.JG)(a,{planMode:!1}),b.process&&(this.killProcess(b),b.info.status="idle",b.emitter.emit("status",a,"idle")),b.pendingRequests.clear(),this.notifyPendingChanged(b,a),this.emitSystem(b,a,"__plan_state::off"),b.bypassAllPermissions&&this.emitSystem(b,a,"__bypass_state::on"))}isPlanModeActive(a){let b=this.sessions.get(a);return b?.planMode??!1}setModel(a,b){var c;let d,e=this.sessions.get(a);if(!e||e.info.model===b)return;let f=a=>!!a&&/\[1m\]/i.test(a),g=f(e.info.model)!==f(b);e.info.model=b,(0,s.JG)(a,{model:b});let h=l(b),i=(c=e.thinkingLevel,0===(d=m(h)).length?null:d.includes(c)?c:n(h)??d[d.length-1]??null);if(null!==i&&i!==e.thinkingLevel&&(e.thinkingLevel=i,(0,s.JG)(a,{thinkingLevel:i}),this.emitSystem(e,a,`__thinking_level::${i}`)),e.stdin&&!g){let a={type:"control_request",request_id:`model-${Date.now()}`,request:{subtype:"set_model",model:b}};if(e.stdin.write(JSON.stringify(a)+"\n"),m(h).length>0){let a={type:"control_request",request_id:`effort-${Date.now()}`,request:{subtype:"apply_flag_settings",settings:{effort:e.thinkingLevel}}};e.stdin.write(JSON.stringify(a)+"\n")}}else this.killProcess(e),e.queuedMessages.length=0,e.queuePaused=!1,e.info.status="idle",e.emitter.emit("status",a,"idle");this.emitInfoUpdated(e,a)}getModel(a){return this.sessions.get(a)?.info.model||"sonnet"}setThinkingLevel(a,b){let c=this.sessions.get(a);if(!c||c.thinkingLevel===b)return;c.thinkingLevel=b,(0,s.JG)(a,{thinkingLevel:b});let d=m(l(c.info.model)).length>0;if(c.stdin&&d){let a={type:"control_request",request_id:`effort-${Date.now()}`,request:{subtype:"apply_flag_settings",settings:{effort:b}}};c.stdin.write(JSON.stringify(a)+"\n")}else c.stdin||(this.killProcess(c),c.queuedMessages.length=0,c.queuePaused=!1,c.info.status="idle",c.emitter.emit("status",a,"idle"));this.emitSystem(c,a,`__thinking_level::${b}`)}getThinkingLevel(a){return this.sessions.get(a)?.thinkingLevel??"high"}sendControlRequest(a,b,c=1e4){let d=this.sessions.get(a);if(!d?.stdin)return Promise.reject(Error("Session not connected"));let e=`ctrl-${Date.now()}-${Math.random().toString(36).slice(2,8)}`,f={type:"control_request",request_id:e,request:b};return new Promise((a,b)=>{let g=setTimeout(()=>{d.controlCallbacks.delete(e),b(Error("Control request timed out"))},c);d.controlCallbacks.set(e,b=>{clearTimeout(g),d.controlCallbacks.delete(e),a(b)}),d.stdin.write(JSON.stringify(f)+"\n")})}async mcpStatus(a){return this.sendControlRequest(a,{subtype:"mcp_status"})}async mcpToggle(a,b,c){let d=await this.sendControlRequest(a,{subtype:"mcp_toggle",serverName:b,enabled:c});return this.updateMcpServerStatus(a,b,c?"connected":"disabled"),d}async mcpReconnect(a,b){let c=await this.sendControlRequest(a,{subtype:"mcp_reconnect",serverName:b});return this.updateMcpServerStatus(a,b,"connected"),c}updateMcpServerStatus(a,b,c){let d=this.sessions.get(a);if(!d?.initData)return;let e=d.initData.mcpServers.find(a=>a.name===b);e&&(e.status=c),d.emitter.emit("init",a,d.initData),(0,s.JG)(a,{initData:d.initData})}getContextUsage(a){return this.sessions.get(a)?.contextUsage??null}hasQueuedMessage(a){let b=this.sessions.get(a);return!!b&&b.queuedMessages.length>0}getQueuedCount(a){return this.sessions.get(a)?.queuedMessages.length??0}cancelQueuedMessage(a){let b=this.sessions.get(a);return b&&0!==b.queuedMessages.length?b.queuedMessages.pop().text:null}deleteQueuedMessage(a,b){let c=this.sessions.get(a);if(!c)return!1;let d=c.queuedMessages.findIndex(a=>a.id===b);return -1!==d&&(c.queuedMessages.splice(d,1),!0)}editQueuedMessage(a,b){let c=this.sessions.get(a);if(!c)return null;let d=c.queuedMessages.findIndex(a=>a.id===b);return -1===d?null:c.queuedMessages.splice(d,1)[0].text}pauseQueue(a){let b=this.sessions.get(a);b&&(b.queuePaused=!0)}resumeQueue(a){let b=this.sessions.get(a);b&&(b.queuePaused=!1,this.flushQueuedMessage(b,a))}getQueuedMessages(a){let b=this.sessions.get(a);return b?b.queuedMessages.map(a=>({id:a.id,text:a.text})):[]}isQueuePaused(a){return this.sessions.get(a)?.queuePaused??!1}onQueued(a,b){let c=this.sessions.get(a);if(!c)return null;let d=(a,c,d)=>b(c,d);return c.emitter.on("queued",d),()=>c.emitter.off("queued",d)}flushQueuedMessage(a,b){if(a.queuePaused||0===a.queuedMessages.length)return;let c=a.queuedMessages.shift();a.emitter.emit("queued",b,a.queuedMessages.length,c.text),this.sendMessage(b,c.text,c.images,c.documents)}onUsage(a,b){let c=this.sessions.get(a);if(!c)return null;let d=(a,c)=>b(c);return c.emitter.on("usage",d),()=>c.emitter.off("usage",d)}getTodos(a){return this.sessions.get(a)?.todoItems??[]}onTodos(a,b){let c=this.sessions.get(a);if(!c)return null;let d=(a,c)=>b(c);return c.emitter.on("todos",d),()=>c.emitter.off("todos",d)}getInitData(a){return this.sessions.get(a)?.initData||(0,s.XP)(a)?.initData}setInitData(a,b){let c=this.sessions.get(a);if(!c)return;let d=c.initData||(0,s.XP)(a)?.initData;c.initData={slashCommands:b.slashCommands.length>0?b.slashCommands:d?.slashCommands||[],skills:b.skills.length>0?b.skills:d?.skills||[],agents:b.agents.length>0?b.agents:d?.agents||[],version:b.version||d?.version||"",model:b.model||d?.model||"",mcpServers:b.mcpServers.length>0?b.mcpServers:d?.mcpServers||[],models:b.models||d?.models,account:b.account||d?.account,commands:b.commands||d?.commands},c.emitter.emit("init",a,c.initData),(0,s.JG)(a,{initData:c.initData}),c.initData.mcpServers.length>0&&function(a){try{let b=i().dirname(C);(0,f.mkdirSync)(b,{recursive:!0}),(0,f.writeFileSync)(C,JSON.stringify(a))}catch{}}(this.getKnownMcpServers())}onInit(a,b){let c=this.sessions.get(a);if(!c)return null;let d=(a,c)=>b(c);return c.emitter.on("init",d),()=>c.emitter.off("init",d)}handleTodoWrite(a,b,c){try{let d=JSON.parse(c).todos;if(!Array.isArray(d))return;a.todoItems=d.filter(a=>a.content&&a.status).map(a=>({content:a.content,status:a.status,activeForm:a.activeForm||void 0})),a.emitter.emit("todos",b,[...a.todoItems])}catch{}}rebuildTodosFromHistory(a,b){let c=this.sessions.get(a);if(!c||c.todoItems.length>0)return;let d=function(a){for(let b=a.length-1;b>=0;b--){let c=a[b];if("system"===c.role&&"__compacted__"===c.content)break;if("assistant"===c.role){for(let a=c.toolUses.length-1;a>=0;a--)if("TodoWrite"===c.toolUses[a].name)try{let b=JSON.parse(c.toolUses[a].input);if(!Array.isArray(b.todos))return[];return b.todos.filter(a=>a.content&&a.status).map(a=>({content:a.content,status:a.status,activeForm:a.activeForm||void 0}))}catch{return[]}}}return[]}(b);0!==d.length&&(c.todoItems=d,c.emitter.emit("todos",a,[...c.todoItems]))}extractUsage(a,b,c){try{let d=JSON.parse(c.trim());if("result"===d.type&&d.modelUsage&&this.extractContextWindowSize(a,d.modelUsage),"assistant"!==d.type||!d.message?.usage||"<synthetic>"===d.message.model)return;let e=d.message.usage,f={used:(e.input_tokens||0)+(e.cache_creation_input_tokens||0)+(e.cache_read_input_tokens||0),total:a.contextWindowSize};a.contextUsage=f,a.emitter.emit("usage",b,f)}catch{}}extractContextWindowSize(a,b){for(let c of Object.values(b))if(c.contextWindow&&c.contextWindow>0){a.contextWindowSize=c.contextWindow;return}}killProcessGroup(a){if(a.pid)try{"win32"===process.platform?(0,d.spawn)("taskkill",["/PID",String(a.pid),"/T","/F"],{stdio:"ignore"}):process.kill(-a.pid,"SIGTERM")}catch{}}endProcess(a,b){if(!a.process)return;let c=a.process;if(a.stdin){let d={type:"control_request",request_id:`end-session-${Date.now()}`,request:{subtype:"end_session",reason:b}};a.stdin.write(JSON.stringify(d)+"\n");let e=setTimeout(()=>{this.killProcessGroup(c)},3e3);c.once("close",()=>clearTimeout(e))}else this.killProcessGroup(c)}killProcess(a){a.process&&(a.process.on("close",()=>{}),this.endProcess(a,"session_reset"),a.process=null,a.stdin=null),a.compacting=!1}emitSystem(a,b,c){a.emitter.emit("system",b,c)}notifyPendingChanged(a,b){let c=a.pendingRequests.size;a.info.pendingRequestCount!==c&&(a.info.pendingRequestCount=c,a.emitter.emit("pending",b,c))}applyProcessedResult(a,b,c){for(let d of c.intermediateMessages)a.emitter.emit("event",b,{type:"message_done",message:d}),d.toolUses.some(a=>"Agent"===a.name)&&this.loadAgentChildren(a,b,d.id,a.info.cwd);for(let d of c.systemMessages){let c="__permission_mode::";if(d.startsWith(c)){let e=d.slice(c.length);"plan"!==e||a.planMode?"plan"!==e&&a.planMode&&(a.planMode=!1,(0,s.JG)(b,{planMode:!1}),a.needsRespawnForPermissions=!0,this.emitSystem(a,b,"__plan_state::off")):(a.planMode=!0,(0,s.JG)(b,{planMode:!0}),this.emitSystem(a,b,"__plan_state::on"))}else this.emitSystem(a,b,d)}for(let d of c.errors)a.emitter.emit("error",b,d);for(let d of c.todoInputs)this.handleTodoWrite(a,b,d);for(let d of c.permissionActions)if("auto_approve"===d.type)this.respondToPermission(b,d.requestId,!0,d.rawToolInput);else if("auto_deny"===d.type)this.respondToPermission(b,d.requestId,!1,void 0,void 0,d.denyReason);else if(a.bypassAllPermissions&&!a.planMode)this.respondToPermission(b,d.requestId,!0,d.rawToolInput);else{let c="ExitPlanMode"===d.toolName?function(){try{let a=(0,f.readdirSync)(r).filter(a=>a.endsWith(".md")&&!a.includes("-agent-"));if(0===a.length)return;let b=a[0],c=0;for(let d of a){let a=(0,f.statSync)((0,h.join)(r,d)).mtimeMs;a>c&&(c=a,b=d)}return(0,h.join)(r,b)}catch{return}}():void 0;a.pendingRequests.set(d.requestId,{type:"AskUserQuestion"===d.toolName?"question":"permission",requestId:d.requestId,toolName:d.toolName,toolInput:d.toolInput||"",rawToolInput:d.rawToolInput,permissionSuggestions:d.permissionSuggestions,planFilePath:c,planContent:c?function(a){try{return(0,f.readFileSync)(a,"utf-8")}catch{return}}(c):void 0}),this.notifyPendingChanged(a,b)}for(let d of(c.compactDone&&(a.compacting=!1,this.emitSystem(a,b,"__compact::done")),c.emit.length>0&&0===a.emitter.listenerCount("event")&&A(b,`applyProcessedResult: ${c.emit.length} events but 0 event listeners`),c.emit))a.emitter.emit("event",b,d);a.streamingSnapshot=c.snapshot;let d=c.emit[c.emit.length-1];d?.type==="message_done"&&d.message&&(d.message.toolUses.some(a=>"Agent"===a.name)&&this.loadAgentChildren(a,b,d.message.id,a.info.cwd),a.needsRespawnForPermissions&&(a.needsRespawnForPermissions=!1,this.killProcess(a),a.info.status="idle",a.emitter.emit("status",b,"idle"))),"idle"===c.statusChange&&(a.info.status="idle",a.emitter.emit("status",b,"idle"),this.flushQueuedMessage(a,b))}emitInfoUpdated(a,b){a.emitter.emit("info_updated",b,{...a.info})}onSystem(a,b){let c=this.sessions.get(a);if(!c)return null;let d=(a,c)=>b(c);return c.emitter.on("system",d),()=>c.emitter.off("system",d)}onClear(a,b){let c=this.sessions.get(a);if(!c)return null;let d=()=>b();return c.emitter.on("clear",d),()=>c.emitter.off("clear",d)}onInfoUpdated(a,b){let c=this.sessions.get(a);if(!c)return null;let d=(a,c)=>b(c);return c.emitter.on("info_updated",d),()=>c.emitter.off("info_updated",d)}handleCommand(a,b){let c=this.sessions.get(a);if(!c)return!1;let d=b.trim().split(/\s+/),e=d[0].toLowerCase(),f=d.slice(1).join(" ");switch(e){case"/clear":case"/reset":case"/new":return this.killProcess(c),c.previousCliSessionIds.push(c.cliSessionId),c.cliSessionId=(0,j.A)(),c.hasSpawnedBefore=!1,c.queuedMessages.length=0,c.queuePaused=!1,c.todoItems=[],c.info.status="idle",c.emitter.emit("clear",a),c.emitter.emit("status",a,"idle"),(0,s.JG)(a,{cliSessionId:c.cliSessionId,previousCliSessionIds:c.previousCliSessionIds}),!0;case"/model":if(!f){let b=c.info.model||"sonnet";return this.emitSystem(c,a,`__model_picker::${b}`),!0}return this.killProcess(c),c.info.model=f,c.info.status="idle",c.emitter.emit("status",a,"idle"),(0,s.JG)(a,{model:f}),this.emitSystem(c,a,`Model switched to ${f}`),this.emitInfoUpdated(c,a),!0;case"/rename":if(!f)return this.emitSystem(c,a,"Usage: /rename <name>"),!0;return c.info.name=f,(0,s.JG)(a,{name:f}),this.emitSystem(c,a,`Session renamed to "${f}"`),this.emitInfoUpdated(c,a),!0;case"/help":return this.emitSystem(c,a,"Cockpit commands:\n /clear, /reset, /new - Clear conversation and start fresh\n /model [name] - Show or switch model\n /rename <name> - Rename this session\n /help - Show this help message\n\nAll other slash commands (/compact, /cost, /context, /commit,\n/review, /analyze, etc.) are passed directly to Claude."),!0}return!1}buildContent(a,b,c,d){let e=a.pendingPlanReminder?this.planModeReminderText():null;if(a.pendingPlanReminder&&(a.pendingPlanReminder=!1),!c?.length&&!d?.length&&!e)return b;let f=[];for(let a of(e&&f.push({type:"text",text:e}),c??[]))f.push({type:"image",source:{type:"base64",media_type:a.mediaType,data:a.data}});for(let a of d??[])f.push({type:"document",source:{type:"base64",media_type:a.mediaType,data:a.data}});return b&&f.push({type:"text",text:b}),f}planModeReminderText(){return`<system-reminder>
2
- Cockpit plan mode is now active, layered on top of Claude Code's native plan mode.
3
-
4
- Additional Cockpit rules beyond the CLI's defaults:
5
- - Bash: only read-only commands are permitted (ls, cat, head, tail, wc, grep, rg, find, stat, file, du, df, tree, pwd, which, type, echo, env, date, basename, dirname, realpath, readlink, uname, whoami, hostname, id). Pipes are allowed; ';', '&&', '||', '>', '<', '$(...)', '\`...\`', '<(...)' are not.
6
- - git: only read-only subcommands (status, log, diff, show, blame, branch, remote, ls-files, ls-tree, rev-parse, describe, tag, reflog).
7
- - Edit, Write, NotebookEdit: blocked. Use ExitPlanMode to submit the plan before making changes.
8
- - Read, Grep, Glob, and all other read-only tools: unrestricted.
9
- </system-reminder>`}async recoverSession(a){if(this.sessions.has(a))return!0;A(a,"recovering session: not in memory, searching disk");let b=(0,s.XP)(a),c=await (0,z.gT)(b?.cliSessionId||a)||await (0,z.gT)(a);return c?(this.ensureSession(a,c),A(a,`recovery succeeded: restored from ${c}`),!0):(A(a,"recovery failed: no transcript found on disk"),!1)}estimateMessageTokens(a,b,c){let d=Math.ceil(a.length/4);return b&&(d+=2e3*b.length),c&&(d+=c.reduce((a,b)=>a+Math.ceil(b.data.length/5),0)),d}shouldPreCompact(a,b,c,d){if(!a.contextUsage||a.compacting||b.trim().toLowerCase().startsWith("/compact")||b.trim().startsWith("/"))return!1;let e=this.estimateMessageTokens(b,c,d),{used:f,total:g}=a.contextUsage;return f+e>.85*g}sendMessage(a,b,c,d){let e=this.sessions.get(a);if(!e)return A(a,"sendMessage: session not in memory, returning false"),(0,o._N)(a,"send:no-session"),!1;if(b.startsWith("/")){if(this.handleCommand(a,b))return!0;b.trim().toLowerCase().startsWith("/compact")&&((0,o._N)(a,"compact:start"),e.compacting=!0,this.emitSystem(e,a,"__compact::start"))}if("running"!==e.info.status&&this.shouldPreCompact(e,b,c,d))return this.log(a,"pre-send compact: message would exceed 85% of context window"),(0,o._N)(a,"compact:pre-send"),e.queuedMessages.push({id:`q-${Date.now()}-${Math.random().toString(36).slice(2,6)}`,text:b,images:c,documents:d}),e.emitter.emit("queued",a,e.queuedMessages.length),e.compacting=!0,this.emitSystem(e,a,"__compact::start"),e.info.status="running",e.emitter.emit("status",a,"running"),e.process&&e.stdin?e.stdin.write(JSON.stringify({type:"user",message:{role:"user",content:"/compact"}})+"\n"):this.spawnProcess(e,a,"/compact"),!0;let f=this.buildContent(e,b,c,d);return(e.queuePaused&&(e.queuedMessages.length=0,e.queuePaused=!1,e.emitter.emit("queued",a,0)),"running"===e.info.status)?(e.queuedMessages.push({id:`q-${Date.now()}-${Math.random().toString(36).slice(2,6)}`,text:b,images:c,documents:d}),e.emitter.emit("queued",a,e.queuedMessages.length),!0):((0,o._N)(a,"running:send",{hasProcess:!!e.process,hasStdin:!!e.stdin}),e.info.status="running",e.emitter.emit("status",a,"running"),e.process&&e.stdin)?(e.streamState&&(e.streamState.thinkingStartedAt=Date.now()),e.stdin.write(JSON.stringify({type:"user",message:{role:"user",content:f}})+"\n"),!0):(this.spawnProcess(e,a,b,c,d),!0)}log(a,b){if(!(0,o.TT)())return;let c=new Date().toISOString().slice(11,23),d=a.slice(0,8);console.log(`[session:${d}] ${c} ${b}`)}ensureProcess(a){let b=this.sessions.get(a);b&&!b.process&&this.spawnProcess(b,a)}spawnProcess(a,b,c,e,g){this.log(b,`spawning CLI process (resume=${a.hasSpawnedBefore}, model=${a.info.model||"sonnet"})`);let h=["-p","--verbose","--output-format","stream-json","--input-format","stream-json"];a.planMode||h.push("--allow-dangerously-skip-permissions"),h.push("--permission-prompt-tool","stdio"),a.planMode?h.push("--permission-mode","plan"):a.bypassAllPermissions&&h.push("--permission-mode","bypassPermissions"),a.hasSpawnedBefore||(0,z.Br)(a.cliSessionId,a.info.cwd)?h.push("--resume",a.cliSessionId):h.push("--session-id",a.cliSessionId),a.info.model&&h.push("--model",a.info.model),m(l(a.info.model)).length>0&&h.push("--effort",a.thinkingLevel);let i={...process.env};delete i.CLAUDECODE,delete i.CLAUDE_CODE_ENTRYPOINT,a.info.model&&!/\[1m\]/i.test(a.info.model)&&(i.CLAUDE_CODE_DISABLE_1M_CONTEXT="1"),(0,f.mkdirSync)(a.info.cwd,{recursive:!0});let j="win32"===process.platform,k=(0,d.spawn)("claude",h,{cwd:a.info.cwd,env:i,stdio:["pipe","pipe","pipe"],...j?{shell:!0}:{detached:!0}});a.process=k,a.stdin=k.stdin,a.hasSpawnedBefore=!0,this.log(b,`CLI process spawned (pid=${k.pid})`);let n={type:"control_request",request_id:`init-${Date.now()}`,request:{subtype:"initialize"}};if(k.stdin.write(JSON.stringify(n)+"\n"),a.planMode?this.sendPermissionMode(a,b,"plan"):a.bypassAllPermissions&&this.sendPermissionMode(a,b,"bypassPermissions"),c){let b=this.buildContent(a,c,e,g);k.stdin.write(JSON.stringify({type:"user",message:{role:"user",content:b}})+"\n")}k.stdin.on("error",a=>{this.log(b,`stdin pipe error: ${a.message}`)}),k.stdout.on("error",a=>{this.log(b,`stdout pipe error: ${a.message}`)}),k.stderr.on("error",a=>{this.log(b,`stderr pipe error: ${a.message}`)});let p=new q,r="",s={pendingToolUses:[],pendingBlocks:[],agentStack:[],currentAssistantMsgId:null,flushedOnMessageDone:!1,thinkingStartedAt:null};a.streamState=s,s.thinkingStartedAt=Date.now();let t="";k.stdout.on("data",c=>{let d=(t+=c.toString()).split(/\r?\n/);if((t=d.pop()||"").trimStart().startsWith("{")&&t.trimEnd().endsWith("}"))try{JSON.parse(t),d.push(t),t=""}catch{}for(let c of d){if((0,o.H6)(b,c),a.controlCallbacks.size>0&&c.includes('"control_response"'))try{let b=JSON.parse(c);if("control_response"===b.type&&b.request_id){let c=a.controlCallbacks.get(b.request_id);if(c){c(b.response||b);continue}}}catch{}0===s.agentStack.length&&this.extractUsage(a,b,c);let d=y(p.parseLine(c),s,{planMode:a.planMode,compacting:a.compacting});this.applyProcessedResult(a,b,d)}}),k.stderr.on("data",a=>{r+=a.toString()}),k.on("close",(c,d)=>{if(this.log(b,`CLI process exited (code=${c}, signal=${d}, pid=${k.pid})`),null!==a.process&&a.process!==k)return void this.log(b,`skipping close cleanup: newer process already running (pid=${a.process.pid})`);if(t.trim()){let c=y(p.parseLine(t),s,{planMode:a.planMode,compacting:a.compacting});this.applyProcessedResult(a,b,c)}a.process=null,a.stdin=null,a.streamingSnapshot=null,(0,o._N)(b,"idle:process-close",{code:c,flushedOnMessageDone:s.flushedOnMessageDone}),a.info.status="idle",a.emitter.emit("status",b,"idle"),a.compacting&&((0,o._N)(b,"compact:done-on-close"),a.compacting=!1,this.emitSystem(a,b,"__compact::done")),a.todoItems.length>0&&a.todoItems.every(a=>"completed"===a.status)&&(a.todoItems=[],a.emitter.emit("todos",b,[])),0!==c&&r.trim()&&a.emitter.emit("error",b,r.trim()),s.flushedOnMessageDone||this.flushQueuedMessage(a,b)}),k.on("error",c=>{this.log(b,`CLI process error: ${c.message}`),(0,o._N)(b,"idle:process-error",{error:c.message}),a.process=null,a.stdin=null,a.info.status="idle",a.emitter.emit("status",b,"idle"),a.emitter.emit("error",b,c.message),this.flushQueuedMessage(a,b)})}async loadAgentChildren(a,b,c,d){try{let e=(await (0,z.vi)(a.cliSessionId,d)).messages.find(a=>a.id===c);if(!e)return;for(let d of e.toolUses)"Agent"===d.name&&d.children&&0!==d.children.length&&a.emitter.emit("event",b,{type:"tool_children",messageId:c,toolId:d.id,children:d.children})}catch{}}}let C=i().join((0,g.homedir)(),".cockpit","mcp-servers.json"),D="__cockpit_session_manager__";function E(){let a=globalThis;return a[D]||(a[D]=new B),a[D]}function F(){return globalThis.__cockpit_job_scheduler__||null}},51675:(a,b,c)=>{c.d(b,{P:()=>k,r:()=>j});var d=c(73024),e=c(48161),f=c(76760);let g=(0,f.join)((0,e.homedir)(),".cockpit"),h=(0,f.join)(g,"defaults.json"),i={thinkingLevel:"high",bypassAllPermissions:!1,diffStyle:"split",dismissKeyboardOnSend:!0,thinkingExpanded:!1,readExpanded:!1,editExpanded:!1,toolCallsExpanded:!1,model:"sonnet",messageStitching:!0,reviewsEnabled:!0};function j(){try{return{...i,...JSON.parse((0,d.readFileSync)(h,"utf-8"))}}catch{return{...i}}}function k(a){let b={...j(),...a};try{(0,d.mkdirSync)(g,{recursive:!0}),(0,d.writeFileSync)(h,JSON.stringify(b,null,2)+"\n")}catch{}return b}}};
@@ -1,6 +0,0 @@
1
- "use strict";exports.id=2444,exports.ids=[2444],exports.modules={22444:(a,b,c)=>{c.d(b,{I:()=>aL});var d=c(48249),e=c(69357),f=c(34460),g=c(82902),h=c(86765),i=c(67484);function j(a){if("system"===a.role)return"";if("user"===a.role)return a.content;let b=a.blocks.filter(a=>"text"===a.type).map(a=>a.text);return b.length>0?b.join("\n"):a.content}var k=c(93571),l=c(23077),m=c(94856),n=c(3284),o=c(61022),p=c(45535),q=c(46303),r=c(26773),s=c(54183),t=c(24422),u=c(64571),v=c(21422),w=c(48581),x=c(53061),y=c(91995),z=c(27993),A=c(57684),B=c(15741),C=c(87359),D=c(67612),E=c(52839),F=c(80592),G=c(67151),H=c(36606),I=c(42377),J=c(18908),K=c(91404),L=c(57762),M=c(19099),N=c(2864),O=c(25297),P=c(14490);function Q({open:a,onOpenChange:b,sessionId:c,initData:f}){let g=(0,M.useRouter)(),[h,j]=(0,i.useState)([]),[k,l]=(0,i.useState)(!1),[m,n]=(0,i.useState)(null),[o,q]=(0,i.useState)(null),r=(0,i.useCallback)(()=>{c&&(l(!0),fetch(`/api/sessions/${encodeURIComponent(c)}/mcp`).then(a=>{if(!a.ok)throw Error("Failed to fetch");return a.json()}).then(a=>{a.mcpServers&&j(a.mcpServers)}).catch(()=>{}).finally(()=>l(!1)))},[c]),s=(0,i.useCallback)(async(a,b)=>{if(!c)return;let d="disabled"===b;q(a),j(b=>b.map(b=>b.name===a?{...b,status:d?"connecting":"disabled"}:b));try{await fetch(`/api/sessions/${encodeURIComponent(c)}/mcp`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"toggle",serverName:a,enabled:d})}),j(b=>b.map(b=>b.name===a?{...b,status:d?"connected":"disabled"}:b))}catch{j(c=>c.map(c=>c.name===a?{...c,status:b}:c))}finally{q(null)}},[c]),t=(0,i.useCallback)(async a=>{if(c){q(a),j(b=>b.map(b=>b.name===a?{...b,status:"connecting",error:void 0}:b));try{await fetch(`/api/sessions/${encodeURIComponent(c)}/mcp`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"reconnect",serverName:a})}),j(b=>b.map(b=>b.name===a?{...b,status:"connected"}:b))}catch{j(b=>b.map(b=>b.name===a?{...b,status:"failed"}:b))}finally{q(null)}}},[c]);return 0!==(f?.mcpServers?.length??0)&&a?(0,d.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/50",onMouseDown:a=>{a.target===a.currentTarget&&b(!1)},children:(0,d.jsxs)("div",{className:"w-full max-w-lg mx-4 rounded-lg border bg-background p-5 shadow-lg max-h-[80vh] flex flex-col",children:[(0,d.jsxs)("div",{className:"flex items-center justify-between mb-4",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)(x.A,{className:"h-4 w-4"}),(0,d.jsx)("h2",{className:"text-base font-semibold",children:"MCP Servers"}),(0,d.jsx)(N.E,{variant:"secondary",className:"text-xs",children:h.length})]}),(0,d.jsxs)("div",{className:"flex items-center gap-1",children:[(0,d.jsx)(O.$,{variant:"ghost",size:"icon",onClick:r,title:"Refresh",children:(0,d.jsx)(z.A,{className:(0,P.cn)("h-4 w-4",k&&"animate-spin")})}),(0,d.jsx)(O.$,{variant:"ghost",size:"icon",onClick:()=>b(!1),children:(0,d.jsx)(p.A,{className:"h-4 w-4"})})]})]}),k&&0===h.length&&(0,d.jsx)("div",{className:"flex items-center justify-center py-8",children:(0,d.jsx)(e.A,{className:"h-5 w-5 animate-spin text-muted-foreground"})}),!k&&m&&(0,d.jsx)("p",{className:"text-sm text-muted-foreground py-4 text-center",children:m}),h.length>0&&(0,d.jsx)("div",{className:"flex-1 min-h-0 overflow-y-auto border rounded",children:h.map(a=>(0,d.jsxs)("div",{className:"flex items-center gap-3 px-3 py-2.5 border-b last:border-b-0",children:[(0,d.jsx)("div",{className:(0,P.cn)("h-2 w-2 rounded-full shrink-0",function(a){switch(a){case"connected":return"bg-green-500";case"disabled":return"bg-muted-foreground/40";case"failed":return"bg-red-500";default:return"bg-yellow-500"}}(a.status))}),(0,d.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("span",{className:"font-mono text-sm font-bold truncate",children:a.name}),a.scope&&(0,d.jsx)(N.E,{variant:"outline",className:"text-[10px] shrink-0",children:a.scope})]}),(0,d.jsxs)("div",{className:"flex items-center gap-2 mt-0.5",children:[(0,d.jsx)("span",{className:"text-xs text-muted-foreground",children:function(a){switch(a){case"connected":return"Connected";case"connecting":return"Connecting...";case"disabled":return"Disabled";case"failed":return"Failed";default:return a}}(a.status)}),a.tools&&a.tools.length>0&&(0,d.jsxs)("span",{className:"text-xs text-muted-foreground",children:[a.tools.length," tools"]}),a.config?.type&&(0,d.jsx)("span",{className:"text-xs text-muted-foreground",children:a.config.type})]}),a.error&&(0,d.jsx)("p",{className:"text-xs text-red-500 mt-0.5 truncate",children:a.error})]}),(0,d.jsxs)("div",{className:"flex items-center gap-1 shrink-0",children:["failed"===a.status&&c&&(0,d.jsx)(O.$,{variant:"ghost",size:"icon",className:"h-7 w-7",onClick:()=>t(a.name),disabled:o===a.name,title:"Reconnect",children:(0,d.jsx)(z.A,{className:(0,P.cn)("h-3.5 w-3.5",o===a.name&&"animate-spin")})}),c&&(0,d.jsx)(O.$,{variant:"ghost",size:"icon",className:"h-7 w-7",onClick:()=>s(a.name,a.status),disabled:o===a.name,title:"disabled"===a.status?"Enable":"Disable",children:"disabled"===a.status?(0,d.jsx)(J.A,{className:"h-3.5 w-3.5"}):(0,d.jsx)(K.A,{className:"h-3.5 w-3.5"})})]})]},a.name))}),!k&&0===h.length&&!m&&(0,d.jsx)("p",{className:"text-sm text-muted-foreground py-4 text-center",children:"No MCP servers configured"}),(0,d.jsx)("div",{className:"flex justify-end mt-3",children:(0,d.jsxs)(O.$,{variant:"outline",size:"sm",className:"gap-1.5",onClick:()=>{b(!1),g.push("/mcp-servers")},children:[(0,d.jsx)(L.A,{className:"h-3.5 w-3.5"}),"Manage servers"]})})]})}):null}let R=[{name:"Explore",description:"Fast codebase exploration"},{name:"Plan",description:"Design implementation plans"},{name:"general-purpose",description:"Multi-step tasks and code changes"},{name:"claude-code-guide",description:"Claude Code documentation"}];function S({query:a,cwd:b,selectedIndex:c,onSelect:e,onItemsChange:f,initAgents:g}){let h=(0,i.useRef)(null),[j,k]=(0,i.useState)([]),[l,n]=(0,i.useState)([]);(0,i.useRef)(null);let o=a.toLowerCase(),p=(0,i.useMemo)(()=>{if(g&&g.length>0)return g.map(a=>({name:a.name,description:a.description}));let a=new Set(l.map(a=>a.name));return[...R.filter(b=>!a.has(b.name)).map(a=>({name:a.name,description:a.description})),...l.map(a=>({name:a.name,description:a.description}))]},[g,l]),q=(0,i.useMemo)(()=>p.filter(a=>a.name.toLowerCase().includes(o)).map(a=>({value:a.name,label:a.name,description:a.description,kind:"agent"})),[o,p]),r=(0,i.useMemo)(()=>j.map(a=>({value:a,label:a,kind:"file"})),[j]);return 0===(0,i.useMemo)(()=>[...q,...r],[q,r]).length?null:(0,d.jsxs)("div",{ref:h,className:"absolute bottom-full left-0 mb-1 w-80 max-h-60 overflow-y-auto rounded-md border bg-popover text-popover-foreground shadow-md",children:[q.length>0&&r.length>0&&(0,d.jsx)("div",{className:"px-3 py-1 text-xs text-muted-foreground font-medium",children:"Agents"}),q.map((a,b)=>(0,d.jsxs)("button",{type:"button","data-index":b,className:`flex w-full items-baseline gap-3 px-3 py-2 text-sm text-left ${b===c?"bg-accent text-accent-foreground":""}`,onMouseDown:b=>{b.preventDefault(),e(a.value)},children:[(0,d.jsx)("span",{className:"font-mono font-bold shrink-0",children:a.label}),(0,d.jsx)("span",{className:"text-muted-foreground truncate",children:a.description})]},a.value)),r.length>0&&q.length>0&&(0,d.jsx)("div",{className:"px-3 py-1 text-xs text-muted-foreground font-medium",children:"Files"}),r.map((a,b)=>{let f=q.length+b,g=(0,m.uk)(a.value),h=(0,m.ww)(a.value)||null;return(0,d.jsxs)("button",{type:"button","data-index":f,className:`flex w-full items-baseline gap-3 px-3 py-2 text-sm text-left ${f===c?"bg-accent text-accent-foreground":""}`,onMouseDown:b=>{b.preventDefault(),e(a.value)},children:[(0,d.jsx)("span",{className:"font-mono font-bold shrink-0",children:g}),h&&(0,d.jsx)("span",{className:"text-muted-foreground truncate",children:h})]},a.value)})]})}let T=[{command:"/clear",description:"Clear conversation and start fresh"},{command:"/compact",description:"Compact conversation context"},{command:"/cost",description:"Show token usage"},{command:"/context",description:"Show context window usage"},{command:"/model",description:"Show or switch model"},{command:"/rename",description:"Rename this session"},{command:"/commit",description:"Commit changes"},{command:"/review",description:"Review code changes"},{command:"/help",description:"Show available commands"}],U=[{command:"/btw",description:"Nudge Claude while it's working"},{command:"/mcp",description:"Show MCP server status"}];function V({query:a,selectedIndex:b,onSelect:c,cwd:e,onItemsChange:f,initCommands:g}){let h,j,k,l,m=(0,i.useRef)(null),[n,o]=(0,i.useState)([]),p=g?(h=new Map(T.map(a=>[a.command,a])),k=new Set((j=g.map(a=>{let b=a.startsWith("/")?a:"/"+a;return h.get(b)||{command:b,description:""}})).map(a=>a.command)),[...j,...T.filter(a=>!k.has(a.command))]):(l=new Set(T.map(a=>a.command)),[...T,...n.filter(a=>!l.has(a.command))]),q=new Set,r=[];for(let a of[...p,...U])q.has(a.command)||(q.add(a.command),r.push(a));let s=r.filter(b=>b.command.startsWith("/"+a));return 0===s.length?null:(0,d.jsx)("div",{ref:m,className:"absolute bottom-full left-0 mb-1 w-80 max-h-60 overflow-y-auto rounded-md border bg-popover text-popover-foreground shadow-md",children:s.map((a,e)=>(0,d.jsxs)("button",{type:"button",className:`flex w-full items-baseline gap-3 px-3 py-2 text-sm text-left ${e===b?"bg-accent text-accent-foreground":""}`,onMouseDown:b=>{b.preventDefault(),c(a)},children:[(0,d.jsx)("span",{className:"font-mono font-bold shrink-0",children:a.command}),(0,d.jsx)("span",{className:"text-muted-foreground truncate",children:a.description})]},a.command))})}var W=c(38393),X=c(28213);let Y={asm:"asm",awk:"awk",batch:"bat",c:"c",clojure:"clj",cmake:"cmake",cobol:"cob",coffeescript:"coffee",cpp:"cpp",cs:"cs",css:"css",csv:"csv",dart:"dart",diff:"diff",dockerfile:"dockerfile",elixir:"ex",erlang:"erl",fortran:"f90",gleam:"gleam",go:"go",gradle:"gradle",groovy:"groovy",h:"h",handlebars:"hbs",haskell:"hs",hcl:"tf",hpp:"hpp",html:"html",ini:"ini",java:"java",javascript:"js",json:"json",jsonc:"jsonc",jsonl:"jsonl",jsx:"jsx",julia:"jl",kotlin:"kt",latex:"tex",less:"less",lisp:"lisp",lua:"lua",makefile:"makefile",markdown:"md",matlab:"m",nim:"nim",objectivec:"m",ocaml:"ml",odin:"odin",pascal:"pas",perl:"pl",php:"php",powershell:"ps1",prolog:"pl",proto:"proto",python:"py",r:"r",rst:"rst",ruby:"rb",rust:"rs",scala:"scala",scheme:"scm",scss:"scss",shell:"sh",solidity:"sol",sql:"sql",svelte:"svelte",svg:"svg",swift:"swift",tcl:"tcl",toml:"toml",tsx:"tsx",typescript:"ts",vba:"vba",verilog:"v",vhdl:"vhdl",vue:"vue",xml:"xml",yaml:"yaml",yara:"yar",zig:"zig"};function Z(a){return a.split(/\r?\n/).length>=10}let $=null;async function _(a){try{$||($=c.e(4293).then(c.bind(c,44293)).then(a=>a.Magika.create()));let b=await $,d=new TextEncoder().encode(a.slice(0,8192)),e=(await b.identifyBytes(d)).prediction.output.label;if("txt"===e||"unknown"===e||"empty"===e)return null;return Y[e]?e:null}catch{return null}}var aa=c(27962);function ab(a){return a>=1e3?`${(a/1e3).toFixed(1)}k`:String(a)}function ac({usage:a,onCompact:b}){let[c,e]=(0,i.useState)(!1),f=Math.round(a.used/a.total*100),g=f>80?"#ef4444":f>50?"#f97316":"#22c55e",h=2*Math.PI*6,j=Math.min(f,100)/100*h;return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("button",{onClick:()=>e(!0),className:"flex items-center justify-center w-8 h-6 rounded-md hover:bg-muted transition-colors",title:`Context: ${f}%`,children:(0,d.jsxs)("svg",{width:14,height:14,className:"-rotate-90",children:[(0,d.jsx)("circle",{cx:7,cy:7,r:6,fill:"none",stroke:"currentColor",strokeWidth:2,className:"text-muted-foreground/25"}),(0,d.jsx)("circle",{cx:7,cy:7,r:6,fill:"none",stroke:g,strokeWidth:2,strokeDasharray:h,strokeDashoffset:h-j,strokeLinecap:"round"})]})}),c&&(0,d.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/50",onMouseDown:a=>{a.target===a.currentTarget&&e(!1)},children:(0,d.jsxs)("div",{className:"w-full max-w-sm mx-4 rounded-lg border bg-background p-5 shadow-lg",children:[(0,d.jsxs)("div",{className:"flex items-center justify-between mb-4",children:[(0,d.jsx)("h2",{className:"text-base font-semibold",children:"Context Usage"}),(0,d.jsx)(O.$,{variant:"ghost",size:"icon",onClick:()=>e(!1),children:(0,d.jsx)(p.A,{className:"h-4 w-4"})})]}),(0,d.jsxs)("div",{className:"flex justify-between text-sm mb-2",children:[(0,d.jsx)("span",{children:"Tokens used"}),(0,d.jsxs)("span",{className:"text-muted-foreground",children:[f,"%"]})]}),(0,d.jsx)("div",{className:"h-2.5 rounded-full bg-muted overflow-hidden mb-2",children:(0,d.jsx)("div",{className:"h-full rounded-full transition-all",style:{width:`${Math.min(f,100)}%`,backgroundColor:g}})}),(0,d.jsxs)("div",{className:"flex justify-between text-xs text-muted-foreground",children:[(0,d.jsxs)("span",{children:[ab(a.used)," used"]}),(0,d.jsxs)("span",{children:[ab(a.total)," total"]})]}),b&&(0,d.jsxs)(O.$,{variant:"outline",size:"sm",className:"w-full mt-4",onClick:()=>{b(),e(!1)},children:[(0,d.jsx)(aa.A,{className:"h-3.5 w-3.5 mr-2"}),"Compact now"]})]})})]})}var ad=c(82078),ae=c(54171);function af({open:a,onOpenChange:b,messages:c,paused:e,onDelete:f,onEdit:g,onResume:h}){return a?(0,d.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/50",onMouseDown:a=>{a.target===a.currentTarget&&b(!1)},children:(0,d.jsxs)("div",{className:"w-full max-w-md mx-4 rounded-lg border bg-background p-5 shadow-lg",children:[(0,d.jsxs)("div",{className:"flex items-center justify-between mb-4",children:[(0,d.jsx)("h2",{className:"text-base font-semibold",children:"Queued Messages"}),(0,d.jsx)(O.$,{variant:"ghost",size:"icon",onClick:()=>b(!1),children:(0,d.jsx)(p.A,{className:"h-4 w-4"})})]}),0===c.length?(0,d.jsx)("p",{className:"text-sm text-muted-foreground py-4 text-center",children:"No queued messages"}):(0,d.jsx)("div",{className:"space-y-2 max-h-64 overflow-y-auto",children:c.map((a,c)=>(0,d.jsxs)("div",{className:"flex items-start gap-3 rounded-md border border-border px-3 py-2.5",children:[(0,d.jsxs)("span",{className:"text-xs text-muted-foreground mt-0.5 shrink-0",children:[c+1,"."]}),(0,d.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,d.jsx)("p",{className:"text-sm break-words line-clamp-3",children:a.text}),(0,d.jsx)("span",{className:`text-[10px] mt-0.5 inline-block ${e?"text-yellow-500":"text-muted-foreground"}`,children:e?"paused":"queued"})]}),(0,d.jsxs)("div",{className:"flex gap-1 shrink-0",children:[(0,d.jsx)("button",{onClick:()=>{g(a.id),b(!1)},className:"p-1 rounded hover:bg-muted text-muted-foreground hover:text-foreground transition-colors",title:"Edit (move to input)",children:(0,d.jsx)(ad.A,{className:"h-3.5 w-3.5"})}),(0,d.jsx)("button",{onClick:()=>f(a.id),className:"p-1 rounded hover:bg-muted text-muted-foreground hover:text-destructive transition-colors",title:"Delete",children:(0,d.jsx)(A.A,{className:"h-3.5 w-3.5"})})]})]},a.id))}),e&&c.length>0&&(0,d.jsx)("div",{className:"mt-4 pt-4 border-t",children:(0,d.jsxs)(O.$,{variant:"default",size:"sm",className:"w-full",onClick:()=>{h(),b(!1)},children:[(0,d.jsx)(ae.A,{className:"h-3.5 w-3.5 mr-2"}),"Resume queue"]})})]})}):null}let ag=[{value:"haiku",label:"Haiku"},{value:"sonnet",label:"Sonnet"},{value:"opus",label:"Opus"}],ah=[{value:"default",label:"200K"},{value:"1m",label:"1M"}];function ai(a,b){let c=1===(0,X.r5)(a.alias).length&&a.isDefault?a.alias:a.modelId;return b&&a.supportsExtendedContext?`${c}[1m]`:c}let aj=[{value:"low",label:"Low"},{value:"medium",label:"Medium"},{value:"high",label:"High"},{value:"xhigh",label:"XHigh"},{value:"max",label:"Max"}],ak=new Set(["image/png","image/jpeg","image/gif","image/webp"]),al=new Set([".txt",".md",".py",".js",".ts",".tsx",".jsx",".json",".csv",".xml",".yaml",".yml",".html",".css",".log",".sh",".go",".rs",".java",".c",".cpp",".h",".rb",".swift",".kt",".toml",".cfg",".ini",".env",".sql",".r",".lua",".pl",".php"]);function am(a){return new Promise(b=>{let c=new FileReader;c.onload=()=>{b(c.result.split(",")[1]||null)},c.onerror=()=>b(null),c.readAsDataURL(a)})}let an=["image/*",".pdf",...Array.from(al)].join(","),ao=new Map,ap=new Map;function aq({sessionId:a,onSend:b,onInterrupt:c,isResponding:f,bypassActive:g,onSetBypass:h,planMode:j,onSetPlanMode:l,thinkingLevel:m,onSetThinking:n,currentModel:J,onSetModel:K,contextUsage:L,dismissKeyboard:M,cwd:N,onCompact:P,initData:R,activeModelId:T,hasQueuedMessage:U,queuedMessages:$,queuePaused:aa,onDeleteQueued:ab,onEditQueued:ad,onResumeQueue:ae,restoredText:ar,onClearRestoredText:as,btw:at,onDismissBtw:au,onRestart:av}){let aw,ax,ay,az,aA,aB,aC,{connected:aD}=(0,k.h)(),[aE,aF]=(0,i.useState)(()=>ao.get(a)||""),[aG,aH]=(0,i.useState)(!1),[aI,aJ]=(0,i.useState)(!1),aK=(0,i.useRef)(-1),[aL,aM]=(0,i.useState)(0),[aN,aO]=(0,i.useState)(!1),[aP,aQ]=(0,i.useState)(0),[aR,aS]=(0,i.useState)(0),[aT,aU]=(0,i.useState)([]),[aV,aW]=(0,i.useState)([]),[aX,aY]=(0,i.useState)([]),[aZ,a$]=(0,i.useState)(!1),[a_,a0]=(0,i.useState)(null),a1=(0,i.useRef)(null),a2=(0,i.useRef)(null),a3=(0,i.useRef)([]),a4=(0,i.useRef)([]),a5=(0,i.useRef)(!1),a6=(aw=aE.slice(0,aR).match(/(?:^|\s)\/([^\s]*)$/))?{active:!0,query:aw[1],start:aR-1-aw[1].length}:{active:!1,query:"",start:0},a7=a6.active,a8=a6.query,a9=(ax=aE.slice(0,aR).match(/@([^\s]*)$/))?{active:!0,query:ax[1],start:aR-ax[0].length}:{active:!1,query:"",start:0},ba=!a7&&a9.active&&!!N,bb=(0,i.useCallback)(a=>{let b=aE.slice(0,a6.start),c=aE.slice(aR);aF(b+a.command+" "+c),aM(0);let d=a6.start+a.command.length+1;aS(d),requestAnimationFrame(()=>{let a=a1.current;a&&(a.focus(),a.setSelectionRange(d,d))})},[aE,a6.start,aR]),bc=(0,i.useCallback)(a=>{aF(aE.slice(0,a9.start)+"@"+a+" "+aE.slice(aR)),aQ(0);let b=a9.start+1+a.length+1;aS(b),requestAnimationFrame(()=>{let a=a1.current;a&&(a.focus(),a.setSelectionRange(b,b))})},[aE,a9.start,aR]),bd=aT.length>0||aV.length>0||aX.length>0,be=(0,i.useCallback)(()=>{let c=aE.trim();if(!c&&!bd||!aD)return;if(/^\/mcp\s*$/i.test(c)){aF(""),aJ(!0);return}b(c,aT.length>0?aT:void 0,aV.length>0?aV:void 0,aX.length>0?aX:void 0);let d=ap.get(a)||[];d[d.length-1]!==c&&(d.push(c),ap.set(a,d)),aK.current=-1,aF(""),aU([]),aW([]),aY([]),aM(0),a1.current&&(a1.current.style.height="auto",M&&"ontouchstart"in window?a1.current.blur():a1.current.focus())},[aE,bd,aT,aV,aX,b,M,aD]),bf=(0,i.useCallback)(b=>{if(a7){let a=a4.current;if(a.length>0){if("ArrowDown"===b.key){b.preventDefault(),aM(b=>(b+1)%a.length);return}if("ArrowUp"===b.key){b.preventDefault(),aM(b=>(b-1+a.length)%a.length);return}if("Enter"===b.key||"Tab"===b.key){b.preventDefault(),bb(a[aL]);return}}if("Escape"===b.key){b.preventDefault(),b.stopPropagation(),aF(aE.slice(0,a6.start)+aE.slice(aR));let a=a6.start;aS(a),requestAnimationFrame(()=>{let b=a1.current;b&&b.setSelectionRange(a,a)});return}}if(ba&&a3.current.length>0){let a=a3.current.length;if("ArrowDown"===b.key){b.preventDefault(),aQ(b=>(b+1)%a);return}if("ArrowUp"===b.key){b.preventDefault(),aQ(b=>(b-1+a)%a);return}if("Enter"===b.key||"Tab"===b.key){b.preventDefault(),bc(a3.current[aP].value);return}if("Escape"===b.key){b.preventDefault(),b.stopPropagation(),aF(aE.slice(0,a9.start)+aE.slice(aR));let a=a9.start;aS(a),requestAnimationFrame(()=>{let b=a1.current;b&&b.setSelectionRange(a,a)});return}}if("Tab"===b.key&&!b.shiftKey){b.preventDefault(),l(!j);return}if("Escape"===b.key&&f){b.preventDefault(),c();return}let d=ap.get(a)||[];if("ArrowUp"===b.key&&!aE.trim()&&d.length>0){b.preventDefault();let a=-1===aK.current?d.length-1:Math.max(0,aK.current-1);aK.current=a,aF(d[a]);return}if("ArrowDown"===b.key&&aK.current>=0){b.preventDefault();let a=aK.current+1;a>=d.length?(aK.current=-1,aF("")):(aK.current=a,aF(d[a]));return}"Enter"!==b.key||b.shiftKey||a5.current||(b.preventDefault(),be())},[a7,ba,aL,aP,be,bb,bc,aE,a9.start,a6.start,aR,f,c,j,l,a]),bg=(0,i.useCallback)(()=>{let a=a1.current;a&&(a.style.height="auto",a.style.height=Math.min(a.scrollHeight,200)+"px")},[]),bh=(0,i.useRef)(0),bi=(0,i.useCallback)(a=>{bh.current+=1;let b=bh.current,c=b>1?`-${b}`:"",d=`paste${c}`;aY(b=>[...b,{name:d,content:a}]),_(a).then(b=>{if(!b)return;let e=Y[b];if(!e)return;let f=`paste${c}.${e}`;aY(c=>c.map(c=>c.name===d&&c.content===a?{...c,name:f,language:b}:c))})},[]),bj=(0,i.useCallback)(a=>{let b=a.target.value,c=b.length-aE.length;if(c>0){let d=a.target.selectionStart??b.length,e=b.slice(d-c,d);if(Z(e)){let a=b.slice(0,d-c);aF(a+b.slice(d)),bi(e),aS(a.length),aM(0),aQ(0);return}}aF(b),aS(a.target.selectionStart??0),aM(0),aQ(0)},[aE,bi]),bk=(0,i.useCallback)(async a=>{for(let b of a)if(ak.has(b.type)){let a=await function(a){return a.size<=35e5?am(a).then(b=>b?{mediaType:a.type,data:b}:null):function(a){return new Promise(b=>{let c=URL.createObjectURL(a),d=new Image;d.onload=()=>{URL.revokeObjectURL(c);let e=document.createElement("canvas"),f=Math.sqrt(35e5/a.size),g=Math.round(d.width*f),h=Math.round(d.height*f);e.width=g,e.height=h;let i=e.getContext("2d");if(!i)return void b(null);i.drawImage(d,0,0,g,h);let j=.85,k=e.toDataURL("image/jpeg",j).split(",")[1]||"";for(;k.length>45e5&&j>.3;)j-=.1,k=e.toDataURL("image/jpeg",j).split(",")[1]||"";b({mediaType:"image/jpeg",data:k})},d.onerror=()=>{URL.revokeObjectURL(c),b(null)},d.src=c})}(a)}(b);a&&aU(b=>[...b,a])}else if("application/pdf"===b.type){let a=await am(b);a&&aW(c=>[...c,{mediaType:"application/pdf",data:a,name:b.name}])}else if(al.has(function(a){let b=a.lastIndexOf(".");return b>=0?a.slice(b).toLowerCase():""}(b.name))||b.type.startsWith("text/")){let a=await function(a){return new Promise(b=>{let c=new FileReader;c.onload=()=>b(c.result),c.onerror=()=>b(null),c.readAsText(a)})}(b);null!==a&&aY(c=>[...c,{name:b.name,content:a}])}},[]),bl=(0,i.useCallback)(a=>{a5.current=!0,requestAnimationFrame(()=>{a5.current=!1});let b=a.clipboardData?.items;if(!b)return;let c=[];for(let a=0;a<b.length;a++){let d=b[a];if("file"===d.kind){let a=d.getAsFile();a&&c.push(a)}}if(0===c.length&&a.clipboardData?.files?.length)for(let b=0;b<a.clipboardData.files.length;b++)c.push(a.clipboardData.files[b]);if(0===c.length){let b=a.clipboardData?.getData("text/html");if(b){let a=b.match(/<img[^>]+src="(data:image\/[^;]+;base64,[^"]+)"/);if(a){let[b,d]=a[1].split(","),e=b.match(/data:([^;]+)/);if(e&&d){let a=e[1],b=atob(d),f=new Uint8Array(b.length);for(let a=0;a<b.length;a++)f[a]=b.charCodeAt(a);let g=new Blob([f],{type:a});c.push(new File([g],`pasted-image.${a.split("/")[1]||"png"}`,{type:a}))}}}}if(c.length>0){a.preventDefault(),bk(c);return}let d=a.clipboardData?.getData("text/plain");d&&Z(d)&&(a.preventDefault(),bi(d))},[bk,bi]),bm=(0,i.useCallback)(a=>{a.preventDefault(),a$(!0)},[]),bn=(0,i.useCallback)(a=>{a.preventDefault(),a$(!1)},[]),bo=(0,i.useCallback)(a=>{a.preventDefault(),a$(!1);let b=[];if(a.dataTransfer?.files)for(let c=0;c<a.dataTransfer.files.length;c++)b.push(a.dataTransfer.files[c]);b.length>0&&bk(b)},[bk]),bp=(0,i.useCallback)(a=>{aU(b=>b.filter((b,c)=>c!==a))},[]),bq=(0,i.useCallback)(a=>{aW(b=>b.filter((b,c)=>c!==a))},[]),br=(0,i.useCallback)(a=>{aY(b=>b.filter((b,c)=>c!==a))},[]),bs=(0,i.useCallback)(()=>{a2.current?.click()},[]),bt=(0,i.useCallback)(a=>{let b=a.target.files;b&&0!==b.length&&(bk(Array.from(b)),a.target.value="")},[bk]);return(0,d.jsxs)("div",{className:`border-t bg-background px-1 pt-2 pb-1 ${aZ?"ring-2 ring-primary ring-inset":""}`,onDragOver:bm,onDragLeave:bn,onDrop:bo,children:[(0,d.jsxs)("div",{className:"mx-auto max-w-3xl",children:[at&&(0,d.jsxs)("div",{className:"mb-2 rounded-md border border-input bg-muted/50 p-2",children:[(0,d.jsxs)("div",{className:"flex items-center justify-between mb-1",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2 text-xs text-muted-foreground",children:[(0,d.jsx)(o.A,{className:"h-3.5 w-3.5"}),(0,d.jsx)("span",{children:"Side question"})]}),(0,d.jsx)("button",{onClick:au,className:"text-muted-foreground hover:text-foreground",children:(0,d.jsx)(p.A,{className:"h-3.5 w-3.5"})})]}),(0,d.jsx)("p",{className:"text-sm font-medium px-1 mb-1",children:at.question}),at.loading&&(0,d.jsxs)("div",{className:"flex items-center gap-2 text-xs text-muted-foreground px-1 py-1",children:[(0,d.jsx)(e.A,{className:"h-3.5 w-3.5 animate-spin"}),(0,d.jsx)("span",{children:"Thinking..."})]}),at.error&&(0,d.jsx)("p",{className:"text-xs text-destructive px-1",children:at.error}),at.answer&&(0,d.jsx)(I.Y,{variant:"lite",content:at.answer,className:"text-xs px-1 border-t pt-1 max-h-48 overflow-y-auto"})]}),aN&&(aA=(az=(ay=function(a){let b=a.includes("[1m]"),c=a.replace(/\[.*\]$/,"");if("opus"===c||"sonnet"===c||"haiku"===c)return{alias:c,entry:(0,X.zQ)(c)??null,extended:b};let d=(0,X.bs)(c)??null;return{alias:d?.alias??null,entry:d,extended:b}}(J)).alias?(0,X.r5)(ay.alias):[]).length>1,aB=ay.entry?.supportsExtendedContext??!1,(0,d.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/50",onMouseDown:a=>{a.target===a.currentTarget&&aO(!1)},children:(0,d.jsxs)("div",{className:"w-full max-w-md mx-4 rounded-lg border bg-background p-4 shadow-lg space-y-1",children:[(0,d.jsxs)("div",{className:"flex items-center justify-between pb-2",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)(q.A,{className:"h-4 w-4"}),(0,d.jsx)("h2",{className:"text-sm font-semibold",children:"Session settings"})]}),(0,d.jsx)("button",{onClick:()=>aO(!1),className:"rounded p-1 text-muted-foreground hover:text-foreground hover:bg-muted",children:(0,d.jsx)(p.A,{className:"h-4 w-4"})})]}),(0,d.jsxs)("div",{className:"flex w-full items-center gap-2 rounded px-2 py-1.5 text-xs",children:[(0,d.jsx)(r.A,{className:"h-3.5 w-3.5 text-muted-foreground"}),(0,d.jsx)("span",{className:"text-muted-foreground",children:"Model"}),T&&(0,d.jsx)("span",{className:"text-[10px] font-mono text-muted-foreground/70 truncate",children:T}),(0,d.jsx)("div",{className:"ml-auto flex gap-1",children:ag.map(a=>(0,d.jsx)("button",{onClick:()=>{var b,c;let d;return K((b=a.value,c=ay.extended&&"haiku"!==a.value,(d=(0,X.zQ)(b))?ai(d,c):b))},className:`rounded px-2 py-0.5 text-xs transition-colors ${ay.alias===a.value?"bg-primary text-primary-foreground":"bg-muted text-muted-foreground hover:text-foreground"}`,children:a.label},a.value))})]}),aA&&(0,d.jsxs)("div",{className:"flex w-full items-center gap-2 rounded px-2 py-1.5 text-xs",children:[(0,d.jsx)(s.A,{className:"h-3.5 w-3.5 text-muted-foreground"}),(0,d.jsx)("span",{className:"text-muted-foreground",children:"Version"}),(0,d.jsx)("div",{className:"ml-auto flex gap-1",children:az.map(a=>(0,d.jsx)("button",{onClick:()=>K(ai(a,ay.extended&&a.supportsExtendedContext)),className:`rounded px-2 py-0.5 text-xs transition-colors ${ay.entry?.modelId===a.modelId?"bg-primary text-primary-foreground":"bg-muted text-muted-foreground hover:text-foreground"}`,children:a.version},a.modelId))})]}),aB&&ay.entry&&(0,d.jsxs)("div",{className:"flex w-full items-center gap-2 rounded px-2 py-1.5 text-xs",children:[(0,d.jsx)(t.A,{className:"h-3.5 w-3.5 text-muted-foreground"}),(0,d.jsx)("span",{className:"text-muted-foreground",children:"Context"}),(0,d.jsx)("div",{className:"ml-auto flex gap-1",children:ah.map(a=>(0,d.jsx)("button",{onClick:()=>K(ai(ay.entry,"1m"===a.value)),className:`rounded px-2 py-0.5 text-xs transition-colors ${"1m"===a.value===ay.extended?"bg-primary text-primary-foreground":"bg-muted text-muted-foreground hover:text-foreground"}`,children:a.label},a.value))})]}),(()=>{let a=new Set((0,X.iz)(ay.entry));if(0===a.size)return null;let b=aj.filter(b=>a.has(b.value));return(0,d.jsxs)("div",{className:"flex w-full items-center gap-2 rounded px-2 py-1.5 text-xs",children:[(0,d.jsx)(u.A,{className:"h-3.5 w-3.5 text-muted-foreground"}),(0,d.jsx)("span",{className:"text-muted-foreground",children:"Thinking"}),(0,d.jsx)("div",{className:"ml-auto flex gap-1",children:b.map(a=>(0,d.jsx)("button",{onClick:()=>n(a.value),className:`rounded px-2 py-0.5 text-xs transition-colors ${m===a.value?"bg-primary text-primary-foreground":"bg-muted text-muted-foreground hover:text-foreground"}`,children:a.label},a.value))})]})})(),(0,d.jsxs)("button",{onClick:()=>h(!g),className:"flex w-full items-center gap-2 rounded px-2 py-1.5 text-xs hover:bg-muted transition-colors",children:[g?(0,d.jsx)(v.A,{className:"h-3.5 w-3.5 text-orange-500"}):(0,d.jsx)(w.A,{className:"h-3.5 w-3.5 text-muted-foreground"}),(0,d.jsx)("span",{className:g?"text-orange-500 font-medium":"text-muted-foreground",children:"Bypass all permissions"}),(0,d.jsx)("span",{className:`ml-auto inline-flex h-4 w-7 items-center rounded-full transition-colors ${g?"bg-orange-500":"bg-muted-foreground/30"}`,children:(0,d.jsx)("span",{className:`inline-block h-3 w-3 rounded-full bg-white transition-transform ${g?"translate-x-3.5":"translate-x-0.5"}`})})]}),R?.mcpServers&&R.mcpServers.length>0&&(0,d.jsxs)("button",{onClick:()=>aJ(!0),className:"flex w-full items-center gap-2 rounded px-2 py-1.5 text-xs hover:bg-muted transition-colors",children:[(0,d.jsx)(x.A,{className:"h-3.5 w-3.5 text-muted-foreground"}),(0,d.jsx)("span",{className:"text-muted-foreground",children:"MCP Servers"}),(0,d.jsxs)("span",{className:"ml-auto flex items-center gap-1 text-muted-foreground",children:[R.mcpServers.filter(a=>"connected"===a.status).length,"/",R.mcpServers.length,(0,d.jsx)(y.A,{className:"h-3 w-3"})]})]}),(0,d.jsxs)("button",{onClick:()=>{av?.(),aO(!1)},className:"flex w-full items-center gap-2 rounded px-2 py-1.5 text-xs hover:bg-muted transition-colors",children:[(0,d.jsx)(z.A,{className:"h-3.5 w-3.5 text-muted-foreground"}),(0,d.jsx)("span",{className:"text-muted-foreground",children:"Restart process"})]})]})})),bd&&(0,d.jsxs)("div",{className:"mb-1 flex gap-2 flex-wrap px-9",children:[aT.map((a,b)=>(0,d.jsxs)("div",{className:"relative group",children:[(0,d.jsx)("img",{src:`data:${a.mediaType};base64,${a.data}`,className:"h-16 rounded border object-contain cursor-pointer",alt:"",onClick:()=>a0({type:"image",src:`data:${a.mediaType};base64,${a.data}`,index:b})}),(0,d.jsx)("button",{onClick:()=>bp(b),className:"absolute top-0.5 right-0.5 opacity-0 group-hover:opacity-100 transition-opacity text-destructive",children:(0,d.jsx)(A.A,{className:"h-3.5 w-3.5"})})]},`img-${b}`)),aV.map((a,b)=>(0,d.jsxs)("div",{className:"relative group flex items-center gap-1.5 rounded border px-2 py-1 text-xs bg-muted h-16",children:[(0,d.jsx)(B.A,{className:"h-4 w-4 text-red-500 shrink-0"}),(0,d.jsx)("span",{className:"truncate max-w-[120px]",children:a.name}),(0,d.jsx)("button",{onClick:()=>bq(b),className:"absolute top-0.5 right-0.5 opacity-0 group-hover:opacity-100 transition-opacity text-destructive",children:(0,d.jsx)(A.A,{className:"h-3.5 w-3.5"})})]},`doc-${b}`)),aX.map((a,b)=>(0,d.jsxs)("div",{className:"relative group flex items-center gap-1.5 rounded border px-2 py-1 text-xs bg-muted h-16 cursor-pointer",onClick:()=>a0({type:"text",content:a.content,name:a.name,index:b}),children:[(0,d.jsx)(B.A,{className:"h-4 w-4 text-muted-foreground shrink-0"}),(0,d.jsx)("span",{className:"truncate max-w-[120px]",children:a.name}),(0,d.jsx)("button",{onClick:a=>{a.stopPropagation(),br(b)},className:"absolute top-0.5 right-0.5 opacity-0 group-hover:opacity-100 transition-opacity text-destructive",children:(0,d.jsx)(A.A,{className:"h-3.5 w-3.5"})})]},`txt-${b}`))]}),U&&(0,d.jsxs)("button",{type:"button",onClick:()=>aH(!0),className:"mb-2 mx-9 flex items-center gap-2 rounded-md border border-dashed px-3 py-1.5 text-xs hover:bg-muted transition-colors cursor-pointer",children:[(0,d.jsx)(o.A,{className:`h-3.5 w-3.5 shrink-0 ${aa?"text-yellow-500":"text-primary"}`}),(0,d.jsxs)("span",{className:aa?"text-yellow-500":"text-muted-foreground",children:[$?.length??0," message",($?.length??0)!==1?"s":""," ",aa?"paused":"queued"]}),(0,d.jsx)("span",{className:"text-muted-foreground/50 ml-auto",children:"click to manage"})]}),(0,d.jsxs)("div",{className:"relative flex items-stretch gap-1",children:[a7&&(0,d.jsx)(V,{query:a8,selectedIndex:aL,onSelect:bb,cwd:N,onItemsChange:a=>{a4.current=a},initCommands:R?.slashCommands}),ba&&N&&(0,d.jsx)(S,{query:a9.query,cwd:N,selectedIndex:aP,onSelect:bc,onItemsChange:a=>{a3.current=a},initAgents:R?.agents}),(0,d.jsx)("input",{ref:a2,type:"file",accept:an,multiple:!0,onChange:bt,className:"hidden"}),(0,d.jsxs)("div",{className:"flex flex-col items-center justify-evenly w-8 shrink-0",children:[L&&(0,d.jsx)(ac,{usage:L,onCompact:P}),(0,d.jsx)(O.$,{size:"icon",variant:"ghost",className:`h-8 w-8 ${g?"text-orange-500":""}`,onClick:()=>aO(a=>!a),children:(0,d.jsx)(q.A,{className:"h-4 w-4"})})]}),(0,d.jsxs)("div",{className:"relative flex-1 mr-1",children:[(0,d.jsx)("textarea",{ref:a1,value:aE,onChange:bj,onKeyDown:bf,onInput:bg,onPaste:bl,placeholder:U?aa?"Queue paused (send to discard, or manage in modal)":"Message queued (Esc to interrupt)":f?"Use /btw to nudge, or type to queue...":j?"Plan with Claude...":"Send a message...",rows:2,className:`w-full resize-none rounded-md border bg-background px-3 py-2 pb-7 text-sm ring-offset-background placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 overflow-y-auto scrollbar-none ${j?"border-blue-500/50 focus-visible:ring-blue-500/50":"border-input focus-visible:ring-ring"}`}),(0,d.jsx)("button",{onClick:bs,title:"Attach file",className:"absolute bottom-2.5 right-1.5 rounded p-1 text-muted-foreground hover:text-foreground hover:bg-muted transition-colors disabled:opacity-50",children:(0,d.jsx)(C.A,{className:"h-4 w-4"})})]}),(0,d.jsxs)("div",{className:"flex flex-col items-center justify-center w-12 shrink-0 overflow-visible",children:[aD?!f||aE.trim()||bd?(0,d.jsx)(O.$,{size:"icon",className:"h-8 w-8",onClick:be,disabled:!aE.trim()&&!bd,children:(0,d.jsx)(E.A,{className:"h-4 w-4"})}):(0,d.jsx)(O.$,{size:"icon",variant:"destructive",className:"h-8 w-8",onClick:()=>c(),children:(0,d.jsx)(D.A,{className:"h-4 w-4"})}):(0,d.jsx)(O.$,{size:"icon",variant:"ghost",className:"h-8 w-8",disabled:!0,title:"Connecting...",children:(0,d.jsx)(e.A,{className:"h-4 w-4 animate-spin text-muted-foreground"})}),(0,d.jsxs)("button",{onClick:()=>l(!j),title:j?"Switch to Build mode (Tab)":"Switch to Plan mode (Tab)",className:`mt-4 flex items-center gap-0.5 whitespace-nowrap rounded-full px-1.5 py-0.5 text-[10px] font-medium transition-colors ${j?"bg-blue-500/15 text-blue-500 hover:bg-blue-500/25":"bg-muted text-muted-foreground hover:bg-muted/80 hover:text-foreground"}`,children:[j?(0,d.jsx)(F.A,{className:"h-2.5 w-2.5"}):(0,d.jsx)(G.A,{className:"h-2.5 w-2.5"}),j?"Plan":"Build"]})]})]})]}),(0,d.jsx)(W.lG,{open:null!==a_,onOpenChange:()=>a0(null),className:"max-w-3xl",children:(0,d.jsxs)(W.Cf,{className:"max-h-[80vh] overflow-auto",onClose:()=>a0(null),onDelete:()=>{a_&&("image"===a_.type?bp(a_.index):br(a_.index),a0(null))},children:[a_?.type==="image"&&(0,d.jsx)("img",{src:a_.src,className:"w-full rounded object-contain",alt:""}),a_?.type==="text"&&((aC=(0,H.WG)(a_.name))?(0,d.jsx)(H.NG,{code:a_.content,language:aC,fullHeight:!0}):(0,d.jsx)("pre",{className:"whitespace-pre-wrap text-sm font-mono",children:a_.content}))]})}),(0,d.jsx)(af,{open:aG,onOpenChange:aH,messages:$??[],paused:aa??!1,onDelete:ab??(()=>{}),onEdit:ad??(()=>{}),onResume:ae??(()=>{})}),(0,d.jsx)(Q,{open:aI,onOpenChange:aJ,sessionId:a,initData:R})]})}var ar=c(20390),as=c(35471);function at(a){return a.replace(/\[.*\]$/,"")}function au({currentModel:a,activeModelId:b,onSelect:c}){let e=function(){let a=[];for(let b of["haiku","sonnet","opus"]){let c=(0,X.r5)(b),d=1===c.length;for(let b of c)a.push(...function(a,b){let c=b&&a.isDefault?a.alias:a.modelId,d=[{key:`${a.modelId}`,value:c,entry:a,label:a.displayName,extended:!1}];return a.supportsExtendedContext&&d.push({key:`${a.modelId}[1m]`,value:b&&a.isDefault?`${a.alias}[1m]`:`${a.modelId}[1m]`,entry:a,label:`${a.displayName} (1M)`,extended:!0}),d}(b,d))}return a}(),f=(0,X.bs)(b),g=at(a),h=a.includes("[1m]");return(0,d.jsx)("div",{className:"mx-auto max-w-3xl",children:(0,d.jsxs)("div",{className:"rounded-lg border border-border bg-card p-4 space-y-1",children:[(0,d.jsxs)("div",{className:"flex items-baseline justify-between pb-2",children:[(0,d.jsx)("div",{className:"text-sm font-medium",children:"Switch model"}),(0,d.jsx)("div",{className:"text-xs text-muted-foreground font-mono",children:f?`Current: ${f.displayName} (${f.modelId})`:b?`Current: ${b}`:"Current: unknown"})]}),e.map(a=>{let b=at(a.value),e=a.extended===h&&(b===g||f&&a.entry.modelId===f.modelId&&b===g);return(0,d.jsxs)("button",{onClick:()=>c(a.value),className:`w-full flex items-center gap-3 rounded-md px-3 py-2 text-left text-sm transition-colors ${e?"bg-primary/10 text-primary":"hover:bg-muted text-foreground"}`,children:[(0,d.jsx)("div",{className:"w-4 shrink-0",children:e&&(0,d.jsx)(as.A,{className:"h-4 w-4"})}),(0,d.jsx)("span",{className:"font-mono font-bold",children:a.value}),(0,d.jsx)("span",{className:"text-muted-foreground",children:a.label}),(0,d.jsx)("span",{className:"text-muted-foreground ml-auto text-xs",children:a.entry.description})]},a.key)})]})})}var av=c(18835);let aw={session:"session",localSettings:"project (local)",projectSettings:"project",userSettings:"global",cliArg:"session"};function ax({permission:a,onRespond:b}){let c=(0,i.useRef)(null),e=(0,i.useMemo)(()=>{if(!a.input)return{};try{return JSON.parse(a.input)}catch{return{}}},[a.input]),f=function(a,b){switch(a){case"Bash":case"bash":{let a=b.command||"";return a.length>80?a.slice(0,80)+"...":a}case"Write":case"write":case"Edit":case"edit":case"Read":case"read":{let a=b.file_path||"";return a?(0,m._1)(a):""}default:return""}}(a.toolName,e),g=a.suggestions,h=g&&g.length>0;return(0,d.jsx)("div",{className:"mx-auto max-w-3xl",children:(0,d.jsx)("div",{className:"rounded-lg border border-yellow-500/50 bg-yellow-500/10 p-4",children:(0,d.jsxs)("div",{className:"flex items-start gap-3",children:[(0,d.jsx)(av.A,{className:"h-5 w-5 shrink-0 text-yellow-500 mt-0.5"}),(0,d.jsxs)("div",{className:"flex-1 min-w-0 space-y-2",children:[(0,d.jsxs)("div",{className:"text-sm font-medium",children:["Permission requested: ",(0,d.jsx)("span",{className:"font-mono",children:a.toolName})]}),f&&(0,d.jsx)("div",{className:"font-mono text-xs text-muted-foreground truncate",children:f}),a.input&&(0,d.jsx)("pre",{className:"overflow-x-auto rounded bg-black/10 dark:bg-white/5 p-2 text-[11px] leading-relaxed max-h-32 overflow-y-auto",children:a.input.length>500?a.input.slice(0,500)+"\n... (truncated)":a.input}),(0,d.jsxs)("div",{className:"flex flex-wrap gap-2 pt-1",children:[(0,d.jsx)("button",{ref:c,onClick:()=>b(a.requestId,!0,"allow"),className:"rounded bg-primary px-3 py-1 text-xs font-medium text-primary-foreground hover:bg-primary/90",children:"Allow"}),h?g.map((c,e)=>(0,d.jsx)("button",{onClick:()=>b(a.requestId,!0,"allow_always",e),className:"rounded bg-primary/70 px-3 py-1 text-xs font-medium text-primary-foreground hover:bg-primary/60",title:JSON.stringify(c,null,2),children:function(a){let b=aw[a.destination||""]||a.destination||"session";if("setMode"===a.type&&a.mode)return`${a.mode} mode (${b})`;if("addDirectories"===a.type&&a.directories?.length){let c=a.directories[0],d=(0,m.uk)(c)||c;return`Allow dir ${d} (${b})`}if(!a.rules?.length)return`Always allow (${b})`;let c=a.rules[0],d=c.toolName,e=c.ruleContent;if(!e)return`Always ${d} (${b})`;let f=e.length>30?e.slice(0,30)+"...":e;return`${d}(${f}) (${b})`}(c)},e)):(0,d.jsxs)("button",{onClick:()=>b(a.requestId,!0,"allow_always"),className:"rounded bg-primary/70 px-3 py-1 text-xs font-medium text-primary-foreground hover:bg-primary/60",children:["Always for ",a.toolName]}),(0,d.jsx)("button",{onClick:()=>b(a.requestId,!0,"allow_all"),className:"rounded bg-orange-600 px-3 py-1 text-xs font-medium text-white hover:bg-orange-700",children:"Bypass All"}),(0,d.jsx)("button",{onClick:()=>b(a.requestId,!1,"deny"),className:"rounded bg-muted px-3 py-1 text-xs font-medium text-muted-foreground hover:bg-muted/80",children:"Deny"})]})]})]})})})}var ay=c(45414),az=c(28470),aA=c(53649);let aB=[{label:"Yes, clear context and auto-accept edits",clearContext:!0,autoAccept:!0},{label:"Yes, clear context and manually approve edits",clearContext:!0,autoAccept:!1},{label:"Yes, auto-accept edits",clearContext:!1,autoAccept:!0},{label:"Yes, manually approve edits",clearContext:!1,autoAccept:!1}];function aC({permission:a,onRespond:b,onSendMessage:c,onSetBypass:e,onSetPlanMode:f}){let[g,h]=(0,i.useState)(0),[j,k]=(0,i.useState)(!1),[l,m]=(0,i.useState)(""),[n,o]=(0,i.useState)(!1),p=(0,i.useRef)(null),q=(0,i.useRef)(null),r=(0,i.useMemo)(()=>{if(!a.input)return[];try{return JSON.parse(a.input).allowedPrompts||[]}catch{return[]}},[a.input]),s=(0,i.useCallback)(d=>{let g=aB[d];if(g.autoAccept&&e(!0),g.clearContext){let d=a.planFilePath?` at ${a.planFilePath}`:"";b(a.requestId,!1,"deny"),f(!1),setTimeout(()=>{c("/clear"),setTimeout(()=>c(`Implement the plan${d}`),200)},100)}else b(a.requestId,!0,"allow")},[a.requestId,a.planFilePath,b,c,e,f]),t=(0,i.useCallback)(()=>{b(a.requestId,!1,"deny"),setTimeout(()=>f(!0),100)},[a.requestId,b,f]),u=(0,i.useCallback)(()=>{let d=l.trim();d&&(b(a.requestId,!1,"deny"),setTimeout(()=>c(d),100))},[l,a.requestId,b,c]),v=(0,i.useCallback)(a=>{if(j)return void("Escape"===a.key?(a.preventDefault(),k(!1),p.current?.focus()):"Enter"!==a.key||a.shiftKey||(a.preventDefault(),u()));if("Escape"===a.key){a.preventDefault(),t();return}"ArrowUp"===a.key||"k"===a.key?(a.preventDefault(),h(a=>Math.max(0,a-1))):"ArrowDown"===a.key||"j"===a.key?(a.preventDefault(),h(a=>Math.min(aB.length+1,a+1))):"Enter"===a.key&&(a.preventDefault(),g===aB.length?k(!0):g===aB.length+1?t():s(g))},[j,g,s,u,t]);return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("div",{className:"mx-auto max-w-3xl",children:(0,d.jsx)("div",{ref:p,tabIndex:-1,onKeyDown:v,className:"rounded-lg border border-blue-500/50 bg-blue-500/10 p-4 outline-none",children:(0,d.jsxs)("div",{className:"flex items-start gap-3",children:[(0,d.jsx)(ay.A,{className:"h-5 w-5 shrink-0 text-blue-500 mt-0.5"}),(0,d.jsxs)("div",{className:"flex-1 min-w-0 space-y-3",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("div",{className:"text-sm font-medium",children:"Would you like to proceed?"}),a.planContent&&(0,d.jsxs)("button",{onClick:()=>o(!0),className:"flex items-center gap-1 rounded px-1.5 py-0.5 text-xs text-blue-500 hover:bg-blue-500/10",children:[(0,d.jsx)(az.A,{className:"h-3 w-3"}),"View plan"]})]}),r.length>0&&(0,d.jsxs)("div",{className:"space-y-1",children:[(0,d.jsx)("div",{className:"text-xs text-muted-foreground",children:"Permissions requested for implementation:"}),(0,d.jsx)("ul",{className:"text-xs text-muted-foreground space-y-0.5",children:r.map((a,b)=>(0,d.jsxs)("li",{className:"flex items-center gap-1.5 pl-2",children:[(0,d.jsx)("span",{className:"font-mono text-foreground/70",children:a.tool}),(0,d.jsx)("span",{children:a.prompt})]},b))})]}),(0,d.jsxs)("div",{className:"space-y-0.5",children:[aB.map((a,b)=>(0,d.jsxs)("button",{onClick:()=>s(b),onMouseEnter:()=>h(b),className:`flex w-full items-center gap-2 rounded px-2 py-1.5 text-left text-xs transition-colors ${g===b?"bg-blue-600/20 text-foreground":"text-muted-foreground hover:text-foreground"}`,children:[(0,d.jsxs)("span",{className:"shrink-0 font-mono text-blue-500 w-4",children:[b+1,"."]}),(0,d.jsx)("span",{children:a.label}),0===b&&(0,d.jsx)("span",{className:"ml-auto text-[10px] text-muted-foreground hidden sm:inline",children:"default"})]},b)),(0,d.jsxs)("button",{onClick:()=>k(!0),onMouseEnter:()=>h(aB.length),className:`flex w-full items-center gap-2 rounded px-2 py-1.5 text-left text-xs transition-colors ${g===aB.length?"bg-blue-600/20 text-foreground":"text-muted-foreground hover:text-foreground"}`,children:[(0,d.jsx)("span",{className:"shrink-0 font-mono text-blue-500 w-4",children:"5."}),(0,d.jsx)("span",{children:"Tell Claude what to change"})]}),(0,d.jsxs)("button",{onClick:t,onMouseEnter:()=>h(aB.length+1),className:`flex w-full items-center gap-2 rounded px-2 py-1.5 text-left text-xs transition-colors ${g===aB.length+1?"bg-blue-600/20 text-foreground":"text-muted-foreground hover:text-foreground"}`,children:[(0,d.jsx)("span",{className:"shrink-0 font-mono text-muted-foreground w-4",children:"Esc"}),(0,d.jsx)("span",{children:"Dismiss"})]})]}),j&&(0,d.jsxs)("div",{className:"space-y-2",children:[(0,d.jsx)("textarea",{ref:q,value:l,onChange:a=>m(a.target.value),placeholder:"Describe what you'd like to change about the plan...",className:"w-full rounded border border-border bg-background px-3 py-2 text-xs resize-none focus:outline-none focus:ring-1 focus:ring-blue-500",rows:3}),(0,d.jsxs)("div",{className:"flex gap-2",children:[(0,d.jsxs)("button",{onClick:u,disabled:!l.trim(),className:"flex items-center gap-1.5 rounded bg-blue-600 px-3 py-1.5 text-xs font-medium text-white hover:bg-blue-700 disabled:opacity-50 disabled:cursor-not-allowed",children:[(0,d.jsx)(E.A,{className:"h-3 w-3"}),"Send feedback"]}),(0,d.jsx)("button",{onClick:()=>{k(!1),p.current?.focus()},className:"rounded px-3 py-1.5 text-xs text-muted-foreground hover:bg-muted",children:"Cancel"})]})]})]})]})})}),a.planContent&&a.planFilePath&&(0,d.jsx)(aA.G,{open:n,onOpenChange:o,content:a.planContent,filePath:a.planFilePath})]})}var aD=c(83394),aE=c(82373);function aF(a){try{return JSON.parse(a).questions||[]}catch{return[]}}function aG({tool:a}){let b=(0,i.useMemo)(()=>aF(a.input),[a.input]),c=(0,i.useMemo)(()=>(function(a){let b=new Map;for(let c of a.matchAll(/"([^"]+)"="([^"]+)"/g))b.set(c[1],c[2]);return b})(a.output||""),[a.output]);return 0===b.length?null:(0,d.jsx)("div",{className:"rounded-lg border border-border bg-background/50 p-3 space-y-3",children:b.map((a,b)=>{let e=c.get(a.question),f=e&&!a.options.some(a=>a.label===e);return(0,d.jsxs)("div",{className:"space-y-2",children:[(0,d.jsxs)("div",{className:"text-sm font-medium flex items-center gap-2",children:[(0,d.jsx)(aD.A,{className:"h-4 w-4 shrink-0 text-muted-foreground"}),a.question]}),(0,d.jsxs)("div",{className:"space-y-0.5 pl-6",children:[a.options.map((a,b)=>{let c=e===a.label;return(0,d.jsxs)("div",{className:`flex w-full items-start gap-2.5 rounded-md px-2.5 py-2 text-xs ${c?"bg-primary/10":""}`,children:[c?(0,d.jsx)(as.A,{className:"h-3.5 w-3.5 shrink-0 mt-0.5 text-primary"}):(0,d.jsx)(aE.A,{className:"h-3.5 w-3.5 shrink-0 mt-0.5 text-muted-foreground/40"}),(0,d.jsxs)("div",{className:"min-w-0",children:[(0,d.jsx)("div",{className:c?"font-medium text-foreground":"text-muted-foreground",children:a.label}),c&&a.description&&(0,d.jsx)("div",{className:"text-muted-foreground text-[11px] mt-0.5",children:a.description})]})]},b)}),f&&(0,d.jsxs)("div",{className:"flex w-full items-start gap-2.5 rounded-md px-2.5 py-2 text-xs bg-primary/10",children:[(0,d.jsx)(ad.A,{className:"h-3.5 w-3.5 shrink-0 mt-0.5 text-primary"}),(0,d.jsx)("div",{className:"min-w-0",children:(0,d.jsx)("div",{className:"font-medium text-foreground",children:e})})]})]})]},b)})})}let aH="__other__";function aI({questions:a,requestId:b,onSubmit:c}){let[e,f]=(0,i.useState)({}),[g,h]=(0,i.useState)({}),[j,k]=(0,i.useState)(!1),l=(0,i.useRef)({}),m=(0,i.useCallback)((a,b)=>{j||f(c=>({...c,[a]:c[a]===b?"":b}))},[j]),n=(0,i.useCallback)(a=>{j||(f(b=>({...b,[a]:aH})),setTimeout(()=>l.current[a]?.focus(),0))},[j]),o=a.every(a=>{let b=e[a.question];return!!b&&(b!==aH||!!g[a.question]?.trim())}),p=(0,i.useCallback)(()=>{if(!o||j)return;k(!0);let d={};for(let b of a){let a=e[b.question];d[b.question]=a===aH?g[b.question]:a}c(b,d)},[o,j,b,e,g,a,c]);return(0,d.jsx)("div",{className:"rounded-lg border border-border bg-card p-4",children:(0,d.jsxs)("div",{className:"space-y-3",children:[a.map((a,b)=>{let c=e[a.question],f=c===aH;return(0,d.jsxs)("div",{className:"space-y-2",children:[a.header&&(0,d.jsx)("div",{className:"text-[10px] uppercase tracking-wider text-muted-foreground font-medium",children:a.header}),(0,d.jsxs)("div",{className:"text-sm font-medium flex items-center gap-2",children:[(0,d.jsx)(aD.A,{className:"h-4 w-4 shrink-0 text-muted-foreground"}),a.question]}),(0,d.jsxs)("div",{className:"space-y-0.5 pl-6",children:[a.options.map((b,e)=>{let f=c===b.label,g=j?"div":"button";return(0,d.jsxs)(g,{onClick:j?void 0:()=>m(a.question,b.label),className:`flex w-full items-start gap-2.5 rounded-md px-2.5 py-2 text-xs text-left transition-colors ${f?"bg-primary/10":j?"":"hover:bg-muted/50 cursor-pointer"}`,children:[f?(0,d.jsx)(as.A,{className:"h-3.5 w-3.5 shrink-0 mt-0.5 text-primary"}):(0,d.jsx)(aE.A,{className:"h-3.5 w-3.5 shrink-0 mt-0.5 text-muted-foreground/40"}),(0,d.jsxs)("div",{className:"min-w-0",children:[(0,d.jsx)("div",{className:f?"font-medium text-foreground":j?"text-muted-foreground":"text-foreground",children:b.label}),b.description&&(0,d.jsx)("div",{className:"text-muted-foreground text-[11px] mt-0.5",children:b.description})]})]},e)}),j?f&&(0,d.jsxs)("div",{className:"flex w-full items-start gap-2.5 rounded-md px-2.5 py-2 text-xs bg-primary/10",children:[(0,d.jsx)(as.A,{className:"h-3.5 w-3.5 shrink-0 mt-0.5 text-primary"}),(0,d.jsx)("div",{className:"min-w-0",children:(0,d.jsx)("div",{className:"font-medium text-foreground",children:g[a.question]})})]}):(0,d.jsxs)("div",{className:`rounded-md transition-colors ${f?"bg-primary/10":"hover:bg-muted/50"}`,children:[(0,d.jsxs)("button",{type:"button",onClick:()=>n(a.question),className:"flex w-full items-start gap-2.5 px-2.5 py-2 text-xs text-left cursor-pointer",children:[f?(0,d.jsx)(as.A,{className:"h-3.5 w-3.5 shrink-0 mt-0.5 text-primary"}):(0,d.jsx)(aE.A,{className:"h-3.5 w-3.5 shrink-0 mt-0.5 text-muted-foreground/40"}),(0,d.jsx)("div",{className:"min-w-0 flex-1",children:(0,d.jsx)("div",{className:f?"font-medium text-foreground":"text-foreground",children:"Other"})})]}),f&&(0,d.jsx)("div",{className:"px-2.5 pb-2 pl-9",children:(0,d.jsx)("input",{ref:b=>{l.current[a.question]=b},type:"text",value:g[a.question]||"",onChange:b=>h(c=>({...c,[a.question]:b.target.value})),onKeyDown:a=>{"Enter"===a.key&&(a.preventDefault(),p())},placeholder:"Tell Claude what to do instead...",className:"w-full rounded border border-border bg-background px-2 py-1 text-xs text-foreground placeholder:text-muted-foreground focus:outline-none focus:ring-1 focus:ring-primary"})})]})]})]},b)}),!j&&(0,d.jsx)("div",{className:"flex justify-end pt-1",children:(0,d.jsx)("button",{disabled:!o,onClick:p,className:`rounded px-4 py-1.5 text-xs font-medium transition-colors ${o?"bg-primary text-primary-foreground hover:bg-primary/90":"bg-muted text-muted-foreground cursor-not-allowed"}`,children:"Submit"})})]})})}var aJ=c(20878);function aK({count:a,onCopy:b,onCancel:c}){return(0,d.jsx)("div",{className:"fixed bottom-20 left-1/2 -translate-x-1/2 z-50 animate-in slide-in-from-bottom-4 fade-in duration-200",children:(0,d.jsxs)("div",{className:"flex items-center gap-2 rounded-full border bg-background px-4 py-2 shadow-lg",children:[(0,d.jsxs)("span",{className:"text-sm text-muted-foreground whitespace-nowrap",children:[a," selected"]}),(0,d.jsxs)(O.$,{size:"sm",variant:"default",onClick:b,className:"gap-1.5",children:[(0,d.jsx)(aJ.A,{className:"h-3.5 w-3.5"}),"Copy"]}),(0,d.jsx)(O.$,{size:"sm",variant:"ghost",onClick:c,children:(0,d.jsx)(p.A,{className:"h-3.5 w-3.5"})})]})})}function aL({sessionId:a,cwd:b,initialName:c,initialContext:m,historyView:o,onSendMessage:p}){let{messages:q,historyLoaded:r,isResponding:s,pendingPermissions:t,pendingQuestions:u,modelPicker:v,currentModel:w,bypassActive:x,planMode:y,thinkingLevel:z,contextUsage:A,rateLimitStatus:B,apiError:C,sessionName:D,initData:E,activeModelId:F,hasQueuedMessage:G,queuedMessages:H,queuePaused:I,backgroundTasks:J,todos:K,btw:L,hasMoreHistory:M,loadingMore:N,requestMoreHistory:O,sendMessage:P,interrupt:Q,respondToPermission:R,respondToQuestion:S,selectModel:T,setModel:U,setBypassAll:V,setPlanMode:W,setThinkingLevel:X,cancelQueuedMessage:Y,deleteQueuedMessage:Z,editQueuedMessage:$,resumeQueue:_,restoredText:aa,clearRestoredText:ab,dismissBtw:ac,retry:ad,restartSession:ae}=function(a,b){let{send:c,subscribe:d,connected:e}=(0,k.h)(),[f,g]=(0,i.useState)([]),[h,j]=(0,i.useState)(!1),[l,m]=(0,i.useState)([]),[n,o]=(0,i.useState)([]),[p,q]=(0,i.useState)(null),[r,s]=(0,i.useState)("sonnet"),[t,u]=(0,i.useState)(!1),[v,w]=(0,i.useState)(!1),[x,y]=(0,i.useState)("high"),[z,A]=(0,i.useState)(!1),[B,C]=(0,i.useState)(null),[D,E]=(0,i.useState)(null),[F,G]=(0,i.useState)(null),[H,I]=(0,i.useState)([]),[J,K]=(0,i.useState)(null),[L,M]=(0,i.useState)(null),[N,O]=(0,i.useState)(null),[P,Q]=(0,i.useState)([]),[R,S]=(0,i.useState)([]),[T,U]=(0,i.useState)(null),[V,W]=(0,i.useState)(!1),[X,Y]=(0,i.useState)(!1),[Z,$]=(0,i.useState)(!1),[_,aa]=(0,i.useState)([]),[ab,ac]=(0,i.useState)(!1),[ad,ae]=(0,i.useState)(null),af=(0,i.useRef)(!1),ag=(0,i.useRef)([]),ah=(0,i.useRef)(r),ai=(0,i.useRef)(null),aj=(0,i.useRef)([]),ak=(0,i.useRef)(null),al=(0,i.useRef)([]),am=(0,i.useRef)(null);null!==am.current&&am.current!==a&&(ak.current=null,al.current=[],am.current=null,W(!1),Y(!1));let an=(0,i.useCallback)(()=>{if(X||!V)return;let b=ag.current[0];b&&(Y(!0),c({type:"history:request_more",sessionId:a,beforeMessageId:b.id}))},[X,V,a,c]);(0,i.useRef)(0),(0,i.useCallback)(async()=>{try{let c=new URLSearchParams;b&&c.set("cwd",b);let d=await fetch(`/api/sessions/${a}?${c}`);if(!d.ok)return void console.warn(`[fallback] HTTP check failed (${d.status})`);let e=await d.json();if("idle"===e.session.status){console.log("[fallback] session is idle, recovering");let a=new Set,b=e.messages.filter(b=>!a.has(b.id)&&(a.add(b.id),!0));g(b),b.length>0&&(ak.current=b[b.length-1].id);for(let a=b.length-1;a>=0;a--){let c=b[a];if("assistant"===c.role&&c.model){O(c.model);break}}j(!1),af.current=!1,ai.current=null,aj.current=[]}}catch{}},[a,b]);let ao=(0,i.useCallback)((d,e,f,h)=>{let i=d;if(h?.length&&(i=h.map(a=>`<file path="${a.name}">
2
- ${a.content}
3
- </file>`).join("\n\n")+(d?"\n\n"+d:"")),af.current&&/^\/btw\s/i.test(d.trim())){let a=d.trim().replace(/^\/btw\s+/i,"");if(!a)return;U({question:a,answer:null,loading:!0,error:null}),fetch("/api/btw",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({question:a,context:ag.current.filter(a=>"user"===a.role||"assistant"===a.role).slice(-20).map(a=>({role:a.role,content:a.content.slice(0,2e3)})),model:ah.current,cwd:b})}).then(a=>a.json()).then(a=>{a.error?U(b=>b?{...b,loading:!1,error:a.error}:null):U(b=>b?{...b,loading:!1,answer:a.answer}:null)}).catch(a=>{U(b=>b?{...b,loading:!1,error:a.message}:null)});return}if(af.current){al.current.push({text:d,images:e,documents:f,textFiles:h}),c({type:"message:send",sessionId:a,text:i,images:e?.length?e:void 0,documents:f?.length?f:void 0});return}ab&&(al.current=[],aa([]),ac(!1),$(!1));let j={id:"user-"+Date.now(),role:"user",content:d,toolUses:[],blocks:[],timestamp:Date.now(),images:e?.length?e:void 0,documents:f?.length?f:void 0,textFiles:h?.length?h:void 0};g(a=>[...a,j]),I([]),c({type:"message:send",sessionId:a,text:i,images:e?.length?e:void 0,documents:f?.length?f:void 0})},[c,a,ab,b]),ap=(0,i.useCallback)(()=>{c({type:"session:interrupt",sessionId:a})},[c,a]),aq=(0,i.useCallback)((b,d,e,f)=>{c({type:"permission:response",sessionId:a,requestId:b,allowed:d,permissionMode:e,suggestionIndex:f}),m(a=>a.filter(a=>a.requestId!==b))},[c,a]),ar=(0,i.useCallback)((b,d)=>{c({type:"question:response",sessionId:a,requestId:b,answers:d}),o(a=>a.map(a=>a.requestId===b?{...a,answered:!0}:a))},[c,a]),as=(0,i.useCallback)(b=>{q(null),s(b),c({type:"message:send",sessionId:a,text:`/model ${b}`})},[c,a]),at=(0,i.useCallback)(b=>{s(b),c({type:"session:set_model",sessionId:a,model:b})},[c,a]),au=(0,i.useCallback)(b=>{u(b),c({type:"permission:set_bypass",sessionId:a,enabled:b})},[c,a]),av=(0,i.useCallback)(b=>{w(b),c({type:"session:set_plan_mode",sessionId:a,enabled:b})},[c,a]),aw=(0,i.useCallback)(b=>{y(b),g(a=>[...a,{id:"thinking-"+Date.now(),role:"system",content:`Thinking: ${b}`,toolUses:[],blocks:[],timestamp:Date.now()}]),c({type:"session:set_thinking",sessionId:a,level:b})},[c,a]),ax=(0,i.useCallback)(()=>{c({type:"message:cancel_queued",sessionId:a})},[c,a]),ay=(0,i.useCallback)(b=>{c({type:"message:delete_queued",sessionId:a,messageId:b})},[c,a]),az=(0,i.useCallback)(b=>{c({type:"message:edit_queued",sessionId:a,messageId:b})},[c,a]),aA=(0,i.useCallback)(()=>{c({type:"message:resume_queue",sessionId:a})},[c,a]),aB=(0,i.useCallback)(()=>{ae(null)},[]),aC=(0,i.useCallback)(()=>{if(T?.answer){let a=Date.now();g(b=>[...b,{id:`btw-q-${a}`,role:"user",content:`[side question] ${T.question}`,toolUses:[],blocks:[],timestamp:a},{id:`btw-a-${a}`,role:"assistant",content:T.answer,toolUses:[],blocks:[],timestamp:a+1}])}U(null)},[T]);return{messages:f,historyLoaded:z,isResponding:h,pendingPermissions:l,pendingQuestions:n,modelPicker:p,currentModel:r,bypassActive:t,planMode:v,thinkingLevel:x,contextUsage:B,rateLimitStatus:D,apiError:F,suggestions:H,sessionName:J,initData:L,activeModelId:N,hasQueuedMessage:Z,queuedMessages:_,queuePaused:ab,backgroundTasks:P,todos:R,btw:T,hasMoreHistory:V,loadingMore:X,requestMoreHistory:an,sendMessage:ao,interrupt:ap,respondToPermission:aq,respondToQuestion:ar,selectModel:as,setModel:at,setBypassAll:au,setPlanMode:av,setThinkingLevel:aw,cancelQueuedMessage:ax,deleteQueuedMessage:ay,editQueuedMessage:az,resumeQueue:aA,restoredText:ad,clearRestoredText:aB,dismissBtw:aC,retry:(0,i.useCallback)(()=>{G(null),c({type:"message:send",sessionId:a,text:"Continue from where you left off."})},[c,a]),restartSession:(0,i.useCallback)(()=>{c({type:"session:restart",sessionId:a})},[c,a])}}(a,b),{settings:af}=(0,l.t)(),{setHeader:ag,setBackgroundTasks:ah,setTodos:ai,setInitData:aj}=(0,n.E2)(),ak=(0,i.useRef)(null),al=(0,i.useRef)(!0),[am,an]=(0,i.useState)(!1),ao=(0,i.useRef)(0),[ap,as]=(0,i.useState)(50),at=(0,i.useRef)(0),av=(0,i.useRef)(0),{selectedIds:aw,selectionMode:ay,enterSelection:az,toggleSelect:aA,clearSelection:aB,copySelected:aD}=function(){let[a,b]=(0,i.useState)(new Set),c=a.size>0,d=(0,i.useCallback)(a=>{b(new Set([a]))},[]),e=(0,i.useCallback)(a=>{b(b=>{let c=new Set(b);return c.has(a)?c.delete(a):c.add(a),c})},[]),f=(0,i.useCallback)(()=>{b(new Set)},[]),g=(0,i.useCallback)(async c=>{let d=c.filter(b=>a.has(b.id)&&"system"!==b.role).map(j).filter(Boolean).join("\n\n---\n\n");if(d)if(navigator.clipboard?.writeText)await navigator.clipboard.writeText(d);else{let a=document.createElement("textarea");a.value=d,a.style.position="fixed",a.style.opacity="0",document.body.appendChild(a),a.select(),document.execCommand("copy"),document.body.removeChild(a)}b(new Set)},[a]);return{selectedIds:a,selectionMode:c,enterSelection:d,toggleSelect:e,clearSelection:f,copySelected:g}}(),aE=(0,i.useRef)(new Set),[aH,aJ]=(0,i.useState)(!1),aM=(0,i.useMemo)(()=>{let a=new Set;return q.filter(b=>!a.has(b.id)&&(a.add(b.id),!0))},[q]),aN=Math.max(0,aM.length-ap),aO=(0,i.useMemo)(()=>aM.slice(aN),[aM,aN]),aP=aN>0,{send:aQ}=(0,k.h)();(0,i.useCallback)(b=>{aQ({type:"message:send",sessionId:a,text:`/rename ${b}`})},[aQ,a]);let aR=(0,i.useCallback)(()=>{if(Date.now()<ao.current)return;let a=ak.current;if(!a)return;let b=a.scrollHeight-a.scrollTop-a.clientHeight;al.current=b<80,an(b>300),a.scrollTop<800&&Date.now()>at.current&&(at.current=Date.now()+100,aP?(av.current=a.scrollHeight,as(a=>a+30)):M&&!N&&(av.current=a.scrollHeight,O()))},[aP,M,N,O]),aS=(0,i.useCallback)(()=>{let a=ak.current;a&&(a.scrollTop=a.scrollHeight),ao.current=Date.now()+150,an(!1)},[]),aT=(0,i.useRef)(!1),aU=(0,i.useCallback)((a,b,c,d)=>{al.current=!0,m&&!aT.current&&0===q.length?(aT.current=!0,P(`${a}
4
-
5
- ---
6
- ${m}`,b,c,d)):P(a,b,c,d)},[P,m,q.length]),aV=(0,i.useCallback)(()=>{P("/compact")},[P]),aW=(0,i.useCallback)(()=>{aD(aM)},[aD,aM]);return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("div",{ref:ak,tabIndex:aH?void 0:-1,className:"flex-1 min-h-0 overflow-y-auto p-4 outline-none",onScroll:aR,children:(0,d.jsxs)("div",{className:"mx-auto max-w-3xl lg:max-w-4xl xl:max-w-5xl 2xl:max-w-6xl space-y-4",children:[0===aM.length&&(0,d.jsx)("div",{className:"flex flex-col items-center pt-20 text-sm text-muted-foreground",children:r?(0,d.jsx)("p",{children:"Send a message to start the conversation."}):(0,d.jsx)(e.A,{className:"h-5 w-5 animate-spin"})}),(aP||N)&&(0,d.jsx)("div",{className:"flex justify-center py-2",children:(0,d.jsx)(e.A,{className:"h-4 w-4 animate-spin text-muted-foreground"})}),aO.map((a,b)=>{let c=b>0&&"__compacted__"===aO[b-1].content;if("assistant"===a.role){let{before:b,questionBlock:e,after:f}=function(a){let b=a.findIndex(a=>"tool_use"===a.type&&"AskUserQuestion"===a.toolUse.name);if(b<0)return{before:a,questionBlock:null,after:[]};let c=a[b];return{before:a.slice(0,b),questionBlock:c,after:a.slice(b+1).filter(a=>"tool_use"!==a.type||"AskUserQuestion"!==a.toolUse.name)}}(a.blocks||[]);if(e){let g=u.find(()=>!0),h=!!e.toolUse.output;return(0,d.jsxs)("div",{"data-message-id":a.id,className:"space-y-4",children:[b.length>0&&(0,d.jsx)(ar.s,{message:{...a,blocks:b,content:""},collapsedByDefault:c,expandedToolIds:aE,selectionMode:ay,selected:aw.has(a.id),onEnterSelection:az,onToggleSelect:aA}),(0,d.jsx)("div",{className:"flex w-full justify-start",children:(0,d.jsx)("div",{className:"max-w-[85%]",children:h?(0,d.jsx)(aG,{tool:e.toolUse}):g?(0,d.jsx)(aI,{questions:aF(g.questions),onSubmit:S,requestId:g.requestId}):null})}),f.length>0&&(0,d.jsx)(ar.s,{message:{...a,blocks:f,content:""},collapsedByDefault:!1,expandedToolIds:aE,selectionMode:ay,selected:aw.has(a.id),onEnterSelection:az,onToggleSelect:aA})]},a.id)}}return(0,d.jsx)("div",{"data-message-id":a.id,className:"space-y-4",children:(0,d.jsx)(ar.s,{message:a,collapsedByDefault:c,expandedToolIds:aE,selectionMode:ay,selected:aw.has(a.id),onEnterSelection:az,onToggleSelect:aA})},a.id)}),s&&0===t.length&&!u.some(a=>!a.answered)&&(0,d.jsxs)("div",{className:"flex items-center gap-2 text-muted-foreground",children:[(0,d.jsx)(e.A,{className:"h-4 w-4 animate-spin"}),B&&(0,d.jsx)("span",{className:"text-xs",children:"Rate limited, retrying..."})]}),C&&!s&&(0,d.jsx)("div",{className:"flex w-full justify-start",children:(0,d.jsxs)("div",{className:"max-w-[85%] rounded-lg border border-red-500/30 bg-red-500/5 px-4 py-3",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2 text-red-500 mb-1",children:[(0,d.jsx)(f.A,{className:"h-4 w-4 shrink-0"}),(0,d.jsx)("span",{className:"text-sm font-medium",children:"API Error"})]}),(0,d.jsx)("p",{className:"text-xs text-muted-foreground mb-3",children:C}),(0,d.jsxs)("button",{onClick:ad,className:"flex items-center gap-1.5 rounded-md border px-3 py-1.5 text-xs hover:bg-muted transition-colors",children:[(0,d.jsx)(g.A,{className:"h-3 w-3"}),"Retry"]})]})}),t.map(a=>"ExitPlanMode"===a.toolName?(0,d.jsx)(aC,{permission:a,onRespond:R,onSendMessage:P,onSetBypass:V,onSetPlanMode:W},a.requestId):(0,d.jsx)(ax,{permission:a,onRespond:R},a.requestId)),u.length>0&&!aO.some(a=>"assistant"===a.role&&(a.blocks||[]).some(a=>"tool_use"===a.type&&"AskUserQuestion"===a.toolUse.name))&&u.map(a=>(0,d.jsx)("div",{className:"flex w-full justify-start",children:(0,d.jsx)("div",{className:"max-w-[85%]",children:(0,d.jsx)(aI,{questions:aF(a.questions),onSubmit:S,requestId:a.requestId})})},a.requestId)),null!==v&&(0,d.jsx)(au,{currentModel:v,activeModelId:F,onSelect:T}),(0,d.jsx)("div",{})]})}),ay&&(0,d.jsx)(aK,{count:aw.size,onCopy:aW,onCancel:aB}),am&&(0,d.jsx)("div",{className:"relative z-10 flex justify-center pointer-events-none",style:{marginTop:-52},children:(0,d.jsx)("button",{onClick:()=>{aS(),al.current=!0,an(!1)},className:"pointer-events-auto rounded-full border bg-background/90 backdrop-blur p-3 shadow-md text-muted-foreground hover:text-foreground transition-colors",children:(0,d.jsx)(h.A,{className:"h-5 w-5"})})}),(0,d.jsx)("div",{className:"shrink-0",children:(0,d.jsx)(aq,{sessionId:a,onSend:aU,onInterrupt:Q,isResponding:s,bypassActive:x,onSetBypass:V,planMode:y,onSetPlanMode:W,thinkingLevel:z,onSetThinking:X,currentModel:w,onSetModel:U,contextUsage:A,dismissKeyboard:af.dismissKeyboardOnSend,cwd:b,onCompact:aV,initData:E,activeModelId:F,hasQueuedMessage:G,queuedMessages:H,queuePaused:I,onCancelQueued:Y,onDeleteQueued:Z,onEditQueued:$,onResumeQueue:_,restoredText:aa,onClearRestoredText:ab,btw:L,onDismissBtw:ac,onRestart:ae})})]})}},28213:(a,b,c)=>{c.d(b,{AX:()=>h,Mi:()=>j,bs:()=>e,iz:()=>i,r5:()=>f,zQ:()=>g});let d=[{alias:"haiku",version:"4.5",modelId:"claude-haiku-4-5-20251001",displayName:"Haiku 4.5",description:"Fastest",supportsExtendedContext:!1,contextWindow:2e5,isDefault:!0},{alias:"sonnet",version:"4.6",modelId:"claude-sonnet-4-6",displayName:"Sonnet 4.6",description:"Balanced",supportsExtendedContext:!0,contextWindow:2e5,isDefault:!0},{alias:"opus",version:"4.6",modelId:"claude-opus-4-6",displayName:"Opus 4.6",description:"Previous generation",supportsExtendedContext:!0,contextWindow:2e5},{alias:"opus",version:"4.7",modelId:"claude-opus-4-7",displayName:"Opus 4.7",description:"Most capable",supportsExtendedContext:!0,contextWindow:2e5,isDefault:!0}];function e(a){if(a)return d.find(b=>b.modelId===a)}function f(a){return d.filter(b=>b.alias===a)}function g(a){return d.find(b=>b.alias===a&&b.isDefault)??f(a)[0]}function h(a){if(!a)return null;let b=a.replace(/\[.*\]$/,"");return"opus"===b||"sonnet"===b||"haiku"===b?g(b)??null:e(b)??null}function i(a){if(!a||"haiku"===a.alias)return[];let b=["low","medium","high"];return"opus"===a.alias&&"4.7"===a.version&&b.push("xhigh"),b.push("max"),b}function j(a){return a&&"haiku"!==a.alias?"opus"===a.alias&&"4.7"===a.version?"xhigh":"sonnet"===a.alias?"medium":"high":null}}};
@@ -1 +0,0 @@
1
- self.__BUILD_MANIFEST={__rewrites:{afterFiles:[],beforeFiles:[],fallback:[]},__routerFilterStatic:{numItems:67,errorRate:1e-4,numBits:1285,numHashes:14,bitArray:[0,0,0,0,1,0,1,1,1,1,1,0,0,0,1,0,0,0,0,0,0,0,1,1,1,0,1,1,1,1,1,1,0,0,1,1,1,0,1,1,0,0,0,1,0,1,0,0,0,0,1,1,0,0,0,0,1,1,0,1,0,1,1,0,1,0,0,0,1,1,0,0,0,0,1,0,0,1,0,0,0,1,1,0,1,1,0,1,1,0,1,0,0,0,1,0,1,1,1,0,1,1,0,0,0,1,0,0,1,1,1,1,1,0,1,1,0,1,0,0,0,1,0,0,1,0,1,1,1,1,1,1,0,1,1,0,1,0,1,1,0,1,1,1,0,0,1,0,0,0,1,1,0,0,1,0,0,1,0,0,0,1,0,1,0,1,0,1,1,0,1,1,1,0,0,1,0,1,1,1,0,0,1,1,0,0,0,1,1,1,1,0,1,1,0,1,1,0,1,0,0,0,0,1,1,1,1,0,0,1,1,0,0,0,0,1,0,0,1,0,0,0,1,1,0,1,1,0,1,1,1,0,1,0,0,0,1,1,0,0,0,0,0,0,1,1,0,0,0,1,0,0,1,0,0,0,0,1,0,0,1,0,0,0,0,1,1,0,1,1,1,0,0,1,1,1,0,1,1,0,0,0,1,0,0,1,0,1,1,0,1,0,0,1,0,1,1,1,1,1,1,0,1,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,1,1,0,1,1,1,0,0,1,1,0,1,1,0,0,0,1,1,1,0,0,1,1,1,1,1,0,0,0,0,0,1,1,1,0,1,1,0,0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,1,1,1,0,0,0,0,1,0,1,0,0,1,1,1,1,0,0,1,1,0,0,0,0,0,1,1,1,1,0,0,1,0,0,0,0,1,0,0,1,1,0,1,0,1,1,1,0,0,0,0,0,1,1,1,1,1,0,1,0,1,0,0,1,0,0,1,1,1,1,0,1,0,0,0,0,0,1,0,1,0,0,1,1,1,1,0,0,1,1,0,0,0,1,0,1,1,1,0,0,1,1,1,0,1,0,1,1,1,0,1,0,1,1,0,1,1,0,1,0,0,1,0,0,1,0,0,1,1,0,0,0,1,0,1,1,1,0,1,1,0,0,1,1,1,1,1,0,1,0,1,1,1,0,0,0,0,1,1,1,1,1,1,1,0,0,0,1,1,1,0,0,0,1,0,0,0,1,0,1,1,0,0,1,1,0,1,0,1,0,1,0,0,1,0,0,1,0,1,1,1,0,1,0,1,0,0,0,1,1,1,0,0,1,1,0,1,1,1,0,1,1,1,0,1,1,1,1,0,1,1,1,0,0,1,1,1,0,1,0,0,1,0,0,1,1,0,1,1,0,0,0,1,1,1,1,1,0,0,0,1,0,1,1,1,1,0,0,1,1,1,1,0,0,1,0,1,1,1,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,0,1,1,1,0,1,1,1,1,0,1,1,0,1,0,1,0,1,0,0,1,0,1,0,1,0,0,1,0,0,1,0,0,0,1,1,1,0,0,0,1,0,0,0,0,1,1,1,0,0,1,1,1,1,0,1,0,0,0,0,0,0,0,1,0,1,0,0,1,0,0,0,1,0,1,1,0,0,1,0,1,1,1,1,0,0,1,0,1,1,0,0,1,1,1,1,1,1,0,1,0,1,1,1,1,1,1,1,1,1,1,0,1,1,0,0,0,0,1,1,0,0,1,0,1,1,1,1,1,1,1,1,0,0,1,0,0,0,1,0,1,1,1,1,0,0,1,0,1,0,0,1,0,1,1,1,1,0,0,1,1,0,0,1,0,0,0,0,0,0,1,0,0,0,0,1,0,1,0,1,1,1,1,1,1,1,0,1,1,1,0,0,1,1,1,1,0,1,1,1,0,0,1,1,0,1,1,0,0,1,1,0,1,0,1,1,1,0,0,1,1,0,1,1,1,0,0,1,1,1,0,1,1,1,1,0,1,1,0,0,0,0,0,1,1,0,1,0,0,1,0,0,0,1,1,0,1,0,1,0,1,1,0,1,1,0,1,1,1,0,1,0,1,1,1,0,0,0,0,1,0,1,0,1,1,1,0,0,0,1,1,0,0,1,0,0,1,0,1,1,1,1,1,0,0,0,1,1,0,0,0,1,1,1,1,0,1,1,1,0,1,1,1,0,1,1,1,1,0,1,0,0,0,0,0,0,1,1,1,0,1,0,1,0,1,0,1,0,0,1,1,0,0,0,0,1,1,1,0,1,1,1,1,1,1,0,1,1,1,1,1,1,0,0,0,0,1,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,1,1,0,1,0,0,1,1,1,0,1,1,1,1,1,1,1,0,1,1,0,0,1,1,0,0,0,0,1,0,1,1,1,0,0,0,1,0,1,1,1,0,1,1,0,0,1,1,1,1,1,1,0,1,1,1,1,1,0,1,1,1,0,1,1,0,1,0,1,0,0,1,0,0,1,0,1,0,0,1,1,0,1,0,0,1,1,0,1,0,1,0,1,1,0,1,1,0,0,1,1,0,0,0,1,1,0,0,1,1,0,0,0,0,0,1,1,1,0,0,0,1,0,1,1,1,1,0,1,1,1,1,1,0,0,0,1,0,0,0,1,0,0,1,0,0,1,0,1,0,1,1,0,0,1,0,1,0,0,1,0,1,1,0,0,1,0,0,0,0,1,1,1,1,0,0,0,0,1,1,0,1,0,0,0,1,0,1,0,1,0,0,1,1,0,1,1,1,0,0,1,0,0,1,1,1,1,1,1,1,0,1,0,1,1,0,0,1]},__routerFilterDynamic:{numItems:16,errorRate:1e-4,numBits:307,numHashes:14,bitArray:[0,1,1,1,1,1,0,0,1,1,1,0,0,0,1,1,1,0,1,1,0,0,0,0,0,1,1,1,1,1,0,0,0,1,0,1,0,0,1,1,0,0,0,0,1,0,0,1,1,1,1,0,1,0,1,0,1,0,0,1,0,0,0,0,1,1,0,1,1,1,0,1,1,0,1,1,0,0,0,0,1,1,0,0,1,1,0,0,1,0,0,0,1,0,0,0,0,0,0,0,1,0,0,1,1,1,0,0,0,1,0,1,1,1,0,0,1,1,0,0,0,0,1,1,0,1,0,1,0,0,0,0,0,1,0,1,0,0,0,1,1,1,0,0,1,1,0,1,0,1,1,1,0,1,1,1,0,1,1,1,1,0,1,1,0,0,1,0,0,1,1,0,1,1,1,1,1,0,1,0,1,1,1,0,1,0,1,1,1,0,1,1,0,1,0,0,1,0,1,1,0,1,1,0,1,0,0,0,1,0,1,1,0,0,1,1,0,0,0,1,0,1,0,1,0,0,1,1,0,0,0,1,0,1,1,1,0,1,0,1,1,1,1,0,0,1,1,0,1,0,0,0,1,0,1,0,1,1,0,0,1,0,0,0,1,1,0,1,1,1,1,1,1,1,1,0,1,0,1,1,1,1,1,1,0,1,1,0,0,0,1,1,0,1,0,0,1,0,1,0,1,0,0,0,0,0,0]},sortedPages:["/_app"]},self.__BUILD_MANIFEST_CB&&self.__BUILD_MANIFEST_CB();
@@ -1,20 +0,0 @@
1
- "use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[3765],{513:(e,t,s)=>{s.d(t,{s:()=>P});var n=s(95155),r=s(92571),a=s(76721),l=s(12363),i=s(36483),o=s(9107),c=s(5045),d=s(12115),u=s(18189),m=s(64233),x=s(42763),h=s(22317),f=s(40980),p=s(52750),g=s(53972),j=s(3765),b=s(57594),v=s(89723);function w(e,t){let s=e.toLowerCase();return("write"===s||"edit"===s)&&(t.includes("/.claude/plans/")||t.startsWith("~/.claude/plans/"))&&t.endsWith(".md")}function y({tool:e,expandedToolIds:t}){let s=function(){let[e,t]=(0,d.useState)(!1);return(0,d.useEffect)(()=>{let e=()=>{t(document.documentElement.classList.contains("dark"))};e();let s=new MutationObserver(e);return s.observe(document.documentElement,{attributes:!0,attributeFilter:["class"]}),()=>s.disconnect()},[]),e}(),{backgroundTasks:l}=(0,j.E2)(),{settings:i,loaded:o}=(0,h.t)(),c=(0,d.useMemo)(()=>(function(e){if(!e)return{};try{return JSON.parse(e)}catch{return{}}})(e.input),[e.input]),[m,x]=(0,d.useState)(()=>t?.current?.has(e.id)??!1),[g,b]=(0,d.useState)(!1),C=(0,d.useRef)(t?.current?.has(e.id)??!1);(0,d.useEffect)(()=>{var t;let s;o&&!C.current&&x((t=e.name,"read"===(s=t.toLowerCase())?i.readExpanded:"edit"===s?i.editExpanded:i.toolCallsExpanded))},[o,e.name,i]);let S=c.file_path||e.filePath||"",E=w(e.name,S),$=c.content||"",A=E&&("Write"===e.name||"write"===e.name)&&$;(0,d.useEffect)(()=>{let t=e.name;if(("Read"===t||"read"===t)&&e.output){let t=c.file_path||e.filePath||"",n=t?(0,u.WG)(t):void 0;n&&(0,u.Ik)(e.output,n,s)}else if(("Write"===t||"write"===t)&&c.content){let t=c.file_path||e.filePath||"",n=t?(0,u.WG)(t):void 0;n&&(0,u.Ik)(c.content,n,s)}},[e.name,e.output,e.filePath,c,s]);let T="EnterPlanMode"!==e.name&&"ExitPlanMode"!==e.name&&"TaskCreate"!==e.name&&"TaskUpdate"!==e.name&&"TaskList"!==e.name&&"TaskGet"!==e.name&&"TodoWrite"!==e.name&&(e.input||e.output),R=(0,d.useMemo)(()=>({current:!1}),[]),I=(0,d.useCallback)(e=>{e&&R.current&&(R.current=!1,requestAnimationFrame(()=>{let t=e.closest("[tabindex]");if(!t)return;let s=t.getBoundingClientRect();e.getBoundingClientRect().bottom>s.bottom&&e.scrollIntoView({block:"nearest",behavior:"smooth"})}))},[R]);return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)("div",{className:"rounded border border-border bg-card text-card-foreground text-xs overflow-hidden",children:[(0,n.jsxs)("button",{onClick:()=>{if(A)return void b(!0);if(!T)return;let s=!m;R.current=s,C.current=!0,x(s),t?.current&&(s?t.current.add(e.id):t.current.delete(e.id))},className:(0,f.cn)("flex w-full items-start gap-2 px-3 py-1.5 text-left",T&&"cursor-pointer hover:bg-muted/50",!T&&"cursor-default"),children:[A?(0,n.jsx)(p.A,{className:"h-3 w-3 shrink-0 text-blue-500"}):(0,n.jsx)(a.A,{className:(0,f.cn)("h-3 w-3 shrink-0 text-muted-foreground transition-transform",m&&"rotate-90")}),(0,n.jsx)("span",{className:"font-mono font-medium",children:e.name}),"Agent"===e.name&&("running"===e.status||l.some(t=>t.toolUseId===e.id&&"running"===t.status))&&(0,n.jsx)(r.A,{className:"h-3 w-3 shrink-0 animate-spin text-muted-foreground"}),(0,n.jsx)(N,{tool:e,input:c})]}),m&&T&&(0,n.jsx)("div",{ref:I,className:"border-t border-border px-3 py-2 space-y-2",children:(0,n.jsx)(k,{tool:e,input:c,dark:s,expandedToolIds:t})})]}),A&&(0,n.jsx)(v.G,{open:g,onOpenChange:b,content:$,filePath:S})]})}function N({tool:e,input:t}){let s=e.name;if("Edit"===s||"edit"===s){let r=t.file_path||e.filePath||"";if(!r)return null;let a=w(s,r);return(0,n.jsxs)("span",{className:"text-muted-foreground truncate",children:[(0,g._1)(r),a?" (plan edit)":""]})}if("Write"===s||"write"===s){let r=t.file_path||e.filePath||"";if(!r)return null;let a=t.content||"";return w(s,r)&&a?(0,n.jsx)("span",{className:"text-blue-500 truncate",children:"View plan"}):(0,n.jsx)("span",{className:"text-muted-foreground truncate",children:(0,g._1)(r)})}if("Read"===s||"read"===s){let s=t.file_path||e.filePath||"";return s?(0,n.jsx)("span",{className:"text-muted-foreground truncate",children:(0,g._1)(s)}):null}if("Bash"===s||"bash"===s){let e=t.command||"",s=e.length>60?e.slice(0,60)+"...":e;return s?(0,n.jsx)("span",{className:"font-mono text-muted-foreground truncate",children:s}):null}if("Grep"===s||"grep"===s){let e=t.pattern||"";return e?(0,n.jsxs)("span",{className:"font-mono text-muted-foreground truncate",children:["/",e,"/"]}):null}if("Glob"===s||"glob"===s){let e=t.pattern||"";return e?(0,n.jsx)("span",{className:"font-mono text-muted-foreground truncate",children:e}):null}if("Agent"===s){let e=t.description||t.prompt||"",s=e.length>60?e.slice(0,60)+"...":e,r=t.model,a=[t.subagent_type,r].filter(Boolean);return(0,n.jsxs)("span",{className:"flex flex-col gap-0.5 min-w-0",children:[s&&(0,n.jsx)("span",{className:"text-muted-foreground truncate",children:s}),a.length>0&&(0,n.jsx)("span",{className:"flex items-center gap-1.5",children:a.map(e=>(0,n.jsx)("span",{className:"shrink-0 rounded bg-muted px-1.5 py-0.5 text-[10px] text-muted-foreground",children:e},e))})]})}if("EnterPlanMode"===s)return(0,n.jsx)("span",{className:"text-muted-foreground",children:"Entering plan mode"});if("ExitPlanMode"===s)return(0,n.jsx)("span",{className:"text-muted-foreground",children:"Exiting plan mode"});if("TaskCreate"===s){let e=t.subject||t.content||"";return e?(0,n.jsx)("span",{className:"text-muted-foreground truncate",children:e}):null}if("TaskUpdate"===s){let e=t.taskId||"",s=t.status||"";return e?(0,n.jsxs)("span",{className:"text-muted-foreground truncate",children:["#",e," ",s]}):null}if("TaskList"===s)return(0,n.jsx)("span",{className:"text-muted-foreground",children:"Listing tasks"});if("TaskGet"===s){let e=t.taskId||"";return e?(0,n.jsxs)("span",{className:"text-muted-foreground",children:["#",e]}):null}return null}function k({tool:e,input:t,dark:s,expandedToolIds:r}){let a=e.name;return"Edit"===a||"edit"===a?(0,n.jsx)(C,{input:t,tool:e,dark:s}):"Write"===a||"write"===a?(0,n.jsx)(S,{input:t,tool:e,dark:s}):"Read"===a||"read"===a?(0,n.jsx)(E,{input:t,tool:e,dark:s}):"Bash"===a||"bash"===a?(0,n.jsx)($,{input:t,tool:e}):"Grep"===a||"grep"===a||"Glob"===a||"glob"===a?(0,n.jsx)(A,{input:t,tool:e}):"Agent"===a?(0,n.jsx)(T,{input:t,tool:e,dark:s,expandedToolIds:r}):(0,n.jsx)(R,{input:t,tool:e})}function C({input:e,tool:t,dark:s}){let r=e.file_path||t.filePath||"file",a=e.old_string||"",l=e.new_string||"";return a||l?(0,n.jsx)(b.Mh,{filePath:r,oldString:a,newString:l,dark:s}):(0,n.jsx)(R,{input:e,tool:t})}function S({input:e,tool:t,dark:s}){let r=e.file_path||t.filePath||"",a=e.content||"",l=r?(0,u.WG)(r):void 0;return(0,n.jsxs)("div",{className:"space-y-1",children:[r&&(0,n.jsx)("div",{className:"font-mono text-muted-foreground",children:r}),a&&(0,n.jsx)(u.NG,{code:a,language:l,dark:s}),t.output&&(0,n.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:t.output})]})}function E({input:e,tool:t,dark:s}){let r=e.file_path||t.filePath||"",a=r?(0,u.WG)(r):void 0;return(0,n.jsxs)("div",{className:"space-y-1",children:[r&&(0,n.jsx)("div",{className:"font-mono text-muted-foreground break-all",children:r}),t.output&&(0,n.jsx)(u.NG,{code:t.output,language:a,dark:s})]})}function $({input:e,tool:t}){let s=e.command||"";return(0,n.jsxs)("div",{className:"space-y-1",children:[s&&(0,n.jsxs)("div",{className:"font-mono text-muted-foreground break-all",children:[(0,n.jsx)("span",{className:"text-foreground/60",children:"$"})," ",s]}),t.output&&(0,n.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:t.output})]})}function A({input:e,tool:t}){let s=e.pattern||"",r=e.path||"";return(0,n.jsxs)("div",{className:"space-y-1",children:[(0,n.jsxs)("div",{className:"font-mono text-muted-foreground",children:[s&&(0,n.jsxs)("span",{children:["/",s,"/"]}),r&&(0,n.jsxs)("span",{children:[" in ",(0,g._1)(r)]})]}),t.output&&(0,n.jsx)("pre",{className:"overflow-x-auto rounded bg-muted/50 p-2 text-[11px] leading-relaxed max-h-64 overflow-y-auto",children:t.output})]})}function T({input:e,tool:t,expandedToolIds:s}){let r=e.prompt||"",a=t.children||[];return(0,n.jsxs)("div",{className:"space-y-2",children:[r&&(0,n.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:r}),a.length>0&&(0,n.jsx)("div",{className:"pl-3 border-l-2 border-border space-y-1",children:a.map(e=>(0,n.jsx)(y,{tool:e,expandedToolIds:s},e.id))}),t.output&&(0,n.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:t.output})]})}function R({input:e,tool:t}){let s=Object.keys(e).length>0;return(0,n.jsxs)("div",{className:"space-y-1",children:[s&&(0,n.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(e,null,2)}),t.output&&(0,n.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:t.output})]})}let I=/<(?: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 _(e){return e.replace(I,"").trim()}let P=(0,d.memo)(function({message:e,collapsedByDefault:t=!1,expandedToolIds:s,selectionMode:o=!1,selected:c=!1,onEnterSelection:u,onToggleSelect:h}){let[p,g]=(0,d.useState)(t),[j,b]=(0,d.useState)(null),v="user"===e.role,w="system"===e.role,N=!w,k=new Set(["AskUserQuestion","TodoWrite"]),C=e.blocks?.filter(e=>!("tool_use"===e.type&&k.has(e.toolUse.name)))||[],S=C.length>0,E=(0,d.useRef)(!1),$=(0,d.useRef)(null),A=(0,d.useCallback)(t=>{E.current||o&&(t.preventDefault(),N&&h?.(e.id))},[N,o,e.id,h]),T=(0,d.useCallback)(()=>{E.current=!0},[]),R=(0,d.useCallback)(()=>{E.current=!1},[]),I=(0,d.useCallback)(t=>{if(o){N&&h?.(e.id);return}if(!N)return;let s=Date.now(),n=$.current;if(n&&s-n.time<300){let s=t.clientX-n.x,r=t.clientY-n.y;if(s*s+r*r<400){$.current=null,window.getSelection()?.removeAllRanges(),u?.(e.id);return}}$.current={time:s,x:t.clientX,y:t.clientY}},[o,N,e.id,h,u]);if(w){let t="__compacting__"===e.content,s="__compacted__"===e.content;return t||s?(0,n.jsxs)("div",{className:"flex w-full items-center gap-3 py-2",children:[(0,n.jsx)("div",{className:"flex-1 border-t border-border"}),(0,n.jsxs)("div",{className:"flex items-center gap-1.5 text-[10px] text-muted-foreground uppercase tracking-wider",children:[t&&(0,n.jsx)(r.A,{className:"h-3 w-3 animate-spin"}),t?"Compacting...":"Compacted"]}),(0,n.jsx)("div",{className:"flex-1 border-t border-border"})]}):"__context_reset__"===e.content?(0,n.jsxs)("div",{className:"flex w-full items-center gap-3 py-2",children:[(0,n.jsx)("div",{className:"flex-1 border-t border-border"}),(0,n.jsx)("div",{className:"text-[10px] text-muted-foreground uppercase tracking-wider",children:"Context cleared"}),(0,n.jsx)("div",{className:"flex-1 border-t border-border"})]}):(0,n.jsx)("div",{className:"flex w-full justify-center",children:(0,n.jsx)("div",{className:"text-xs text-muted-foreground whitespace-pre-wrap py-1",children:e.content})})}return!v&&!w&&!S&&!e.content&&e.toolUses.every(e=>k.has(e.name))||v&&e.content.startsWith("[Request interrupted")?null:p?(e.content.slice(0,80).replace(/\n/g," "),(0,n.jsx)("div",{className:"flex w-full justify-start",children:(0,n.jsx)("button",{onClick:()=>g(!1),className:"max-w-[85%] rounded-lg px-4 py-2 bg-muted text-foreground text-left overflow-hidden",children:(0,n.jsxs)("div",{className:"flex items-center gap-1.5 text-xs text-muted-foreground",children:[(0,n.jsx)(a.A,{className:"h-3 w-3"}),(0,n.jsx)("span",{className:"font-medium",children:"Compaction summary"})]})})})):(0,n.jsxs)("div",{className:(0,f.cn)("flex w-full",v&&!t?"justify-end":"justify-start",o&&"cursor-pointer select-none"),onContextMenu:A,onTouchStart:T,onMouseDown:R,onClick:I,children:[(0,n.jsxs)("div",{className:(0,f.cn)("max-w-[85%] rounded-lg px-4 py-2 overflow-hidden transition-colors",v&&!t?"bg-primary text-primary-foreground":"bg-muted text-foreground",c&&"ring-2 ring-blue-500"),children:[t&&(0,n.jsxs)("button",{onClick:()=>g(!0),className:"flex items-center gap-1 text-xs text-muted-foreground mb-2 hover:text-foreground",children:[(0,n.jsx)(l.A,{className:"h-3 w-3"}),(0,n.jsx)("span",{className:"font-medium",children:"Compaction summary"})]}),v?(0,n.jsxs)(n.Fragment,{children:[e.images&&e.images.length>0&&(0,n.jsx)("div",{className:"flex gap-2 flex-wrap mb-2",children:e.images.map((e,t)=>(0,n.jsx)("img",{src:`data:${e.mediaType};base64,${e.data}`,className:"max-h-60 rounded border border-primary-foreground/20 object-contain cursor-pointer",alt:"",onClick:t=>{t.stopPropagation(),b(`data:${e.mediaType};base64,${e.data}`)}},t))}),e.documents&&e.documents.length>0&&(0,n.jsx)("div",{className:"flex gap-2 flex-wrap mb-2",children:e.documents.map((e,t)=>(0,n.jsxs)("div",{className:"flex items-center gap-1.5 rounded border border-primary-foreground/20 px-2 py-1 text-xs",children:[(0,n.jsx)(i.A,{className:"h-3.5 w-3.5"}),(0,n.jsx)("span",{children:e.name})]},t))}),e.textFiles&&e.textFiles.length>0&&(0,n.jsx)("div",{className:"space-y-1.5 mb-2",children:e.textFiles.map((e,t)=>(0,n.jsx)(F,{name:e.name,content:e.content},t))}),e.content&&(0,n.jsx)("p",{className:"whitespace-pre-wrap break-words text-base leading-relaxed",children:e.content})]}):S?(0,n.jsx)("div",{className:"space-y-2",children:C.map((e,t)=>"tool_use"===e.type?(0,n.jsx)(y,{tool:e.toolUse,expandedToolIds:s},e.toolUse.id):"thinking"===e.type?(0,n.jsx)(M,{text:e.text,tokens:e.tokens,durationMs:e.durationMs,redacted:e.redacted},`thinking-${t}`):(0,n.jsx)(m.Y,{content:_(e.text)},`text-${t}`))}):(0,n.jsxs)(n.Fragment,{children:[e.toolUses.filter(e=>!k.has(e.name)).length>0&&(0,n.jsx)("div",{className:"mb-2 space-y-1",children:e.toolUses.filter(e=>!k.has(e.name)).map(e=>(0,n.jsx)(y,{tool:e,expandedToolIds:s},e.id))}),(0,n.jsx)(m.Y,{content:_(e.content)})]})]}),(0,n.jsx)(x.lG,{open:null!==j,onOpenChange:()=>b(null),className:"max-w-3xl",children:(0,n.jsx)(x.Cf,{className:"max-h-[80vh] overflow-auto",onClose:()=>b(null),children:j&&(0,n.jsx)("img",{src:j,className:"w-full rounded object-contain",alt:""})})})]})});function F({name:e,content:t}){let[s,r]=(0,d.useState)(!1),a=t.split(/\r?\n/).length;return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)("button",{onClick:e=>{e.stopPropagation(),r(!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,n.jsx)(o.A,{className:"h-3 w-3"}),(0,n.jsx)("span",{className:"font-medium",children:e}),(0,n.jsxs)("span",{className:"text-muted-foreground ml-1",children:[a," lines"]})]}),(0,n.jsx)(x.lG,{open:s,onOpenChange:r,className:"max-w-3xl",children:(0,n.jsxs)(x.Cf,{className:"max-h-[80vh] flex flex-col",onClose:()=>r(!1),children:[(0,n.jsxs)("div",{className:"text-sm font-medium px-1 pb-2 border-b border-border flex items-center gap-1.5",children:[(0,n.jsx)(o.A,{className:"h-3.5 w-3.5 text-blue-400"}),e]}),(0,n.jsx)("div",{className:"flex-1 min-h-0 overflow-auto",children:(0,n.jsx)(u.NG,{code:t,language:(0,u.WG)(e),dark:!0,fullHeight:!0})})]})})]})}function M({text:e,tokens:t,durationMs:s}){let{settings:r}=(0,h.t)(),[i,o]=(0,d.useState)(null),u=i??r.thinkingExpanded,m=e.length>0,x=null!=s?`${Math.max(1,Math.round(s/1e3))}s`:null!=t?`${t.toLocaleString()} token${1===t?"":"s"}`:m?`${e.length.toLocaleString()} chars`:null;return(0,n.jsxs)("div",{className:"rounded border border-purple-500/20 bg-purple-500/5",children:[(0,n.jsxs)("button",{onClick:()=>m&&o(!u),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,n.jsx)(c.A,{className:"h-3 w-3"}),(0,n.jsx)("span",{className:"font-medium",children:"Thinking"}),x&&(0,n.jsx)("span",{className:"text-muted-foreground ml-1",children:x}),m&&(u?(0,n.jsx)(l.A,{className:"h-3 w-3 ml-auto"}):(0,n.jsx)(a.A,{className:"h-3 w-3 ml-auto"}))]}),m&&u&&(0,n.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:e})]})}},3765:(e,t,s)=>{s.d(t,{GV:()=>H,si:()=>J,E2:()=>W,mq:()=>G,tB:()=>B});var n=s(95155),r=s(96304),a=s(5772),l=s(12115),i=s(73321);let o=!1;function c({children:e}){let t=(0,i.useRouter)(),[s,r]=(0,l.useState)(o);return((0,l.useEffect)(()=>{o||fetch("/api/auth/check").then(e=>{e.ok?(o=!0,r(!0)):t.replace("/login")}).catch(()=>{t.replace("/login")})},[t]),s)?(0,n.jsx)(n.Fragment,{children:e}):null}var d=s(64577),u=s(99314),m=s(65377),x=s(92571),h=s(9005),f=s(45160),p=s(89239),g=s(81477),j=s(16617);function b({preview:e,matchStart:t,matchLength:s}){let r=e.slice(0,t),a=e.slice(t,t+s),l=e.slice(t+s);return(0,n.jsxs)("span",{className:"text-sm text-muted-foreground whitespace-pre-wrap break-words select-text",children:[r,(0,n.jsx)("mark",{className:"bg-yellow-300/30 text-foreground rounded-sm px-0.5",children:a}),l]})}function v({text:e}){let[t,s]=(0,l.useState)(!1),r=(0,l.useCallback)(t=>{t.stopPropagation(),navigator.clipboard.writeText(e),s(!0),setTimeout(()=>s(!1),1500)},[e]);return(0,n.jsx)(p.$,{variant:"ghost",size:"icon",className:"h-6 w-6 shrink-0",onClick:r,title:"Copy full message",children:t?(0,n.jsx)(d.A,{className:"h-3 w-3"}):(0,n.jsx)(u.A,{className:"h-3 w-3"})})}function w({onClose:e}){let{sessionId:t,cwd:s}=W(),[r,a]=(0,l.useState)(""),[i,o]=(0,l.useState)([]),[c,d]=(0,l.useState)(!1),[u,y]=(0,l.useState)(!1),[N,k]=(0,l.useState)(null),C=(0,l.useRef)(null),S=(0,l.useRef)(null);(0,l.useEffect)(()=>{C.current?.focus()},[]),(0,l.useEffect)(()=>{if(r.length<2){o([]),y(!1);return}let e=setTimeout(()=>{S.current?.abort();let e=new AbortController;S.current=e,d(!0);let n=new URLSearchParams({q:r});s&&n.set("cwd",s),fetch(`/api/sessions/${t}/search?${n}`,{signal:e.signal}).then(e=>e.json()).then(t=>{e.signal.aborted||(o(t.results||[]),y(!0),d(!1))}).catch(e=>{"AbortError"!==e.name&&(d(!1),y(!0))})},300);return()=>{clearTimeout(e)}},[r,t,s]),(0,l.useEffect)(()=>()=>{S.current?.abort()},[]);let E=(0,l.useCallback)(e=>{k(e)},[]),$=(0,l.useCallback)(t=>{t.target===t.currentTarget&&e()},[e]);return((0,l.useEffect)(()=>{let t=t=>{"Escape"===t.key&&(t.preventDefault(),t.stopPropagation(),e())};return window.addEventListener("keydown",t,!0),()=>window.removeEventListener("keydown",t,!0)},[e]),null!==N)?(0,n.jsx)(j.Q,{timestamp:N,onClose:()=>k(null)}):(0,n.jsx)("div",{className:"fixed inset-0 z-50 bg-black/50 flex items-center justify-center p-4",onClick:$,children:(0,n.jsxs)(g.Zp,{className:"w-full max-w-2xl flex flex-col",style:{maxHeight:"calc(100dvh - 2rem)"},children:[(0,n.jsxs)("div",{className:"flex items-center gap-2 p-4 border-b",children:[(0,n.jsx)(m.A,{className:"h-4 w-4 text-muted-foreground shrink-0"}),(0,n.jsx)("input",{ref:C,value:r,onChange:e=>a(e.target.value),placeholder:"Search messages...",className:"flex-1 bg-transparent outline-none text-sm"}),c&&(0,n.jsx)(x.A,{className:"h-4 w-4 animate-spin text-muted-foreground shrink-0"}),(0,n.jsx)(p.$,{variant:"ghost",size:"icon",className:"h-6 w-6 shrink-0",onClick:e,children:(0,n.jsx)(h.A,{className:"h-4 w-4"})})]}),(0,n.jsxs)("div",{className:"flex-1 min-h-0 overflow-y-auto",children:[u&&0===i.length&&(0,n.jsx)("div",{className:"p-8 text-center text-sm text-muted-foreground",children:"No results"}),i.map((e,t)=>(0,n.jsxs)("button",{onClick:()=>E(e.timestamp),className:"w-full text-left p-4 border-b last:border-b-0 hover:bg-muted/50 transition-colors cursor-pointer",children:[(0,n.jsxs)("div",{className:"flex items-center gap-2 mb-1",children:[(0,n.jsx)(f.E,{variant:"user"===e.role?"default":"secondary",className:"text-[10px] px-1.5 py-0",children:"user"===e.role?"User":"Assistant"}),(0,n.jsx)("span",{className:"text-xs text-muted-foreground select-text",children:new Date(e.timestamp).toLocaleString()}),(0,n.jsx)("div",{className:"ml-auto",children:(0,n.jsx)(v,{text:e.fullContent})})]}),(0,n.jsx)(b,{preview:e.preview,matchStart:e.matchStart,matchLength:e.matchLength})]},`${e.messageId}-${t}`))]})]})})}function y(){let{sessionId:e}=W(),[t,s]=(0,l.useState)(!1);return((0,l.useEffect)(()=>{let t=t=>{(t.metaKey||t.ctrlKey)&&"f"===t.key&&e&&(t.preventDefault(),s(!0))};return window.addEventListener("keydown",t),()=>window.removeEventListener("keydown",t)},[e]),e)?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(p.$,{variant:"ghost",size:"icon",onClick:()=>s(!0),title:"Search messages (Ctrl+F)",children:(0,n.jsx)(m.A,{className:"h-4 w-4"})}),t&&(0,n.jsx)(w,{onClose:()=>s(!1)})]}):null}var N=s(70518),k=s(36338),C=s(64962);function S({tasks:e}){let[t,s]=(0,l.useState)(!1);(0,l.useEffect)(()=>{if(!t)return;let e=e=>{"Escape"===e.key&&s(!1)};return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[t]);let r=e.filter(e=>"running"===e.status);return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)(p.$,{variant:"ghost",size:"icon",className:"h-8 w-8 relative",onClick:()=>s(!0),title:`${r.length} background task${1!==r.length?"s":""}`,children:[(0,n.jsx)(k.A,{className:"h-4 w-4"}),r.length>0&&(0,n.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:r.length})]}),t&&(0,n.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/50",onMouseDown:e=>{e.target===e.currentTarget&&s(!1)},children:(0,n.jsxs)("div",{className:"w-full max-w-md mx-4 rounded-lg border bg-background p-5 shadow-lg",children:[(0,n.jsxs)("div",{className:"flex items-center justify-between mb-4",children:[(0,n.jsx)("h2",{className:"text-base font-semibold",children:"Background Tasks"}),(0,n.jsx)(p.$,{variant:"ghost",size:"icon",onClick:()=>s(!1),children:(0,n.jsx)(h.A,{className:"h-4 w-4"})})]}),0===e.length?(0,n.jsx)("p",{className:"text-sm text-muted-foreground py-4 text-center",children:"No background tasks"}):(0,n.jsx)("div",{className:"space-y-2 max-h-64 overflow-y-auto",children:e.map(e=>(0,n.jsxs)("div",{className:"flex items-start gap-3 rounded-md border border-border px-3 py-2.5",children:["completed"===e.status?(0,n.jsx)(C.A,{className:"h-4 w-4 shrink-0 mt-0.5 text-green-500"}):(0,n.jsx)(x.A,{className:"h-4 w-4 shrink-0 mt-0.5 animate-spin text-muted-foreground"}),(0,n.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,n.jsx)("div",{className:"text-sm truncate",children:e.title||e.description}),e.activity&&e.activity!==(e.title||e.description)&&(0,n.jsx)("div",{className:"text-xs text-muted-foreground truncate mt-0.5",children:e.activity}),"completed"===e.status&&e.summary&&(0,n.jsx)("div",{className:"text-xs text-muted-foreground truncate mt-0.5",children:e.summary})]})]},e.taskId))})]})})]})}var E=s(8143),$=s(67401);function A({todos:e}){let[t,s]=(0,l.useState)(!1);(0,l.useEffect)(()=>{if(!t)return;let e=e=>{"Escape"===e.key&&s(!1)};return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[t]);let r=(0,l.useMemo)(()=>e.filter(e=>"completed"!==e.status).length,[e]);return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)(p.$,{variant:"ghost",size:"icon",className:"h-8 w-8 relative",onClick:()=>s(!0),title:`${r} todo${1!==r?"s":""}`,children:[(0,n.jsx)(E.A,{className:"h-4 w-4"}),r>0&&(0,n.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:r})]}),t&&(0,n.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/50",onMouseDown:e=>{e.target===e.currentTarget&&s(!1)},children:(0,n.jsxs)("div",{className:"w-full max-w-md mx-4 rounded-lg border bg-background p-5 shadow-lg",children:[(0,n.jsxs)("div",{className:"flex items-center justify-between mb-4",children:[(0,n.jsx)("h2",{className:"text-base font-semibold",children:"Todo"}),(0,n.jsx)(p.$,{variant:"ghost",size:"icon",onClick:()=>s(!1),children:(0,n.jsx)(h.A,{className:"h-4 w-4"})})]}),0===e.length?(0,n.jsx)("p",{className:"text-sm text-muted-foreground py-4 text-center",children:"No todo items"}):(0,n.jsx)("div",{className:"space-y-1 max-h-80 overflow-y-auto",children:e.map((e,t)=>(0,n.jsxs)("div",{className:"flex items-start gap-2.5 rounded-md px-3 py-2",children:[(0,n.jsx)(T,{status:e.status}),(0,n.jsx)("div",{className:`min-w-0 flex-1 text-sm ${"completed"===e.status?"text-muted-foreground line-through":""}`,children:"in_progress"===e.status&&e.activeForm?e.activeForm:e.content})]},t))})]})})]})}function T({status:e}){return"completed"===e?(0,n.jsx)(C.A,{className:"h-4 w-4 shrink-0 mt-0.5 text-green-500"}):"in_progress"===e?(0,n.jsx)(x.A,{className:"h-4 w-4 shrink-0 mt-0.5 animate-spin text-blue-500"}):(0,n.jsx)($.A,{className:"h-4 w-4 shrink-0 mt-0.5 text-muted-foreground"})}var R=s(94774),I=s(82749);let _=null,P=0,F=null,M=null;async function z(e=!1){let t=Date.now();return!e&&_&&t-P<3e4?_:M||(M=(async()=>{try{let e=await fetch("/api/usage");if(!e.ok){let t=await e.json().catch(()=>({}));throw Error(t.error||`HTTP ${e.status}`)}let t=await e.json();return _=t,P=Date.now(),F=null,t}catch(e){return F=e instanceof Error?e.message:"Unknown error",null}finally{M=null}})())}function L({label:e,limit:t}){let s=Math.round(t.utilization),r=s>80?"#ef4444":s>50?"#f97316":"#22c55e";return(0,n.jsxs)("div",{className:"mb-4 last:mb-0",children:[(0,n.jsxs)("div",{className:"flex justify-between text-sm mb-1",children:[(0,n.jsx)("span",{children:e}),(0,n.jsxs)("span",{className:"text-muted-foreground",children:[s,"% \xb7 resets in ",function(e){let t=new Date(e).getTime()-Date.now();if(t<=0)return"now";let s=Math.floor(t/6e4),n=Math.floor(s/60),r=Math.floor(n/24);return r>0?`${r}d ${n%24}h`:n>0?`${n}h ${s%60}m`:`${s}m`}(t.resets_at)]})]}),(0,n.jsx)("div",{className:"h-2.5 rounded-full bg-muted overflow-hidden",children:(0,n.jsx)("div",{className:"h-full rounded-full transition-all",style:{width:`${Math.min(s,100)}%`,backgroundColor:r}})})]})}function O({className:e}){let[t,s]=(0,l.useState)(!1),{usage:r,loading:a,error:i,refresh:o}=function(){let[e,t]=(0,l.useState)(_),[s,n]=(0,l.useState)(null===_),[r,a]=(0,l.useState)(null),i=(0,l.useRef)(!0),o=(0,l.useCallback)(async(e=!1)=>{e&&n(!0);let s=await z(e);i.current&&(s?(t(s),a(null)):_||a(F||"Failed to load usage data"),n(!1))},[]);return(0,l.useEffect)(()=>{i.current=!0,o();let e=setInterval(o,3e5);return()=>{i.current=!1,clearInterval(e)}},[o]),{usage:e,loading:s,error:r,refresh:o}}();(0,l.useEffect)(()=>{if(!t)return;let e=e=>{"Escape"===e.key&&s(!1)};return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[t]);let c=r?.seven_day&&r.seven_day.utilization>=100?100:r?.five_hour?.utilization??0;return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(p.$,{variant:"ghost",size:"icon",onClick:()=>s(!0),title:"Account usage",className:e,children:(0,n.jsx)(R.A,{className:`h-4 w-4 ${r?c>80?"text-red-500":c>50?"text-orange-500":"text-green-500":""}`})}),t&&(0,n.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/50",onMouseDown:e=>{e.target===e.currentTarget&&s(!1)},children:(0,n.jsxs)("div",{className:"w-full max-w-md mx-4 rounded-lg border bg-background p-5 shadow-lg",children:[(0,n.jsxs)("div",{className:"flex items-center justify-between mb-4",children:[(0,n.jsx)("h2",{className:"text-base font-semibold",children:"Account Usage"}),(0,n.jsxs)("div",{className:"flex gap-1",children:[(0,n.jsx)(p.$,{variant:"ghost",size:"icon",onClick:()=>o(!0),disabled:a,title:"Refresh usage",children:(0,n.jsx)(I.A,{className:`h-4 w-4 ${a?"animate-spin":""}`})}),(0,n.jsx)(p.$,{variant:"ghost",size:"icon",onClick:()=>s(!1),children:(0,n.jsx)(h.A,{className:"h-4 w-4"})})]})]}),a&&!r&&(0,n.jsx)("div",{className:"flex items-center justify-center py-8",children:(0,n.jsx)(x.A,{className:"h-5 w-5 animate-spin text-muted-foreground"})}),i&&!r&&(0,n.jsx)("p",{className:"text-sm text-muted-foreground py-4 text-center",children:i}),r&&(0,n.jsxs)(n.Fragment,{children:[r.five_hour&&(0,n.jsx)(L,{label:"5-hour limit",limit:r.five_hour}),r.seven_day&&(0,n.jsx)(L,{label:"7-day limit",limit:r.seven_day}),r.seven_day_sonnet&&(0,n.jsx)(L,{label:"7-day Sonnet",limit:r.seven_day_sonnet}),r.seven_day_opus&&(0,n.jsx)(L,{label:"7-day Opus",limit:r.seven_day_opus}),r.extra_usage?.enabled&&(0,n.jsx)("div",{className:"mt-4 pt-3 border-t text-sm",children:(0,n.jsxs)("div",{className:"flex justify-between",children:[(0,n.jsx)("span",{children:"Extra usage credits"}),(0,n.jsxs)("span",{className:"font-medium",children:["$",r.extra_usage.remaining_credits.toFixed(2)," remaining"]})]})})]})]})})]})}var D=s(89323);let U=(0,l.createContext)({setHeader:()=>{},cwd:void 0,setCwd:()=>{},sessionId:void 0,setSessionId:()=>{},backgroundTasks:[],setBackgroundTasks:()=>{},todos:[],setTodos:()=>{},initData:null,setInitData:()=>{},sidebarSections:new Map,setSidebarSection:()=>{},removeSidebarSection:()=>{},closeSidebar:()=>{}});function W(){return(0,l.useContext)(U)}function J(e){let{setHeader:t}=W();(0,l.useEffect)(()=>{t({title:e})},[e,t])}function G(e){let{setCwd:t}=W();(0,l.useEffect)(()=>{e&&t(e)},[e,t])}function B(e){let{setSessionId:t}=W();(0,l.useEffect)(()=>{e&&t(e)},[e,t])}function q({title:e,onRename:t}){let[s,r]=(0,l.useState)(!1),[a,i]=(0,l.useState)(e),o=(0,l.useRef)(null);if((0,l.useEffect)(()=>{i(e)},[e]),(0,l.useEffect)(()=>{s&&o.current?.select()},[s]),!t)return(0,n.jsx)("span",{className:"text-sm font-bold truncate",children:e});if(!s)return(0,n.jsx)("button",{onClick:()=>r(!0),className:"text-sm font-bold truncate hover:text-muted-foreground transition-colors text-left",title:"Click to rename",children:e});let c=()=>{let s=a.trim();s&&s!==e&&t(s),r(!1)};return(0,n.jsx)("input",{ref:o,value:a,onChange:e=>i(e.target.value),onBlur:c,onKeyDown:t=>{"Enter"===t.key&&c(),"Escape"===t.key&&(i(e),r(!1))},className:"text-sm font-bold bg-transparent border-b border-primary outline-none w-40"})}function H({children:e}){let t=(0,l.useRef)(null),[s,i]=(0,l.useState)({title:"Cockpit"}),[o,d]=(0,l.useState)(void 0),[u,m]=(0,l.useState)(void 0),[x,h]=(0,l.useState)([]),[f,g]=(0,l.useState)([]),[j,b]=(0,l.useState)(null),[v,w]=(0,l.useState)(new Map),k=(0,l.useCallback)(e=>{w(t=>{let s=new Map(t);return s.set(e.id,e),s})},[]),C=(0,l.useCallback)(e=>{w(t=>{if(!t.has(e))return t;let s=new Map(t);return s.delete(e),s})},[]),E=(0,l.useCallback)(e=>{i(e)},[]),$=(0,l.useCallback)(e=>{d(e)},[]),T=(0,l.useCallback)(e=>{m(e)},[]),R=(0,l.useCallback)(()=>{t.current?.toggle()},[]),I=(0,l.useCallback)(()=>{t.current?.close()},[]);return(0,l.useEffect)(()=>{let e=e=>{(e.metaKey||e.ctrlKey)&&"b"===e.key&&(e.preventDefault(),R())};return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[R]),(0,n.jsx)(c,{children:(0,n.jsx)(D.f,{children:(0,n.jsx)(U.Provider,{value:{setHeader:E,cwd:o,setCwd:$,sessionId:u,setSessionId:T,backgroundTasks:x,setBackgroundTasks:h,todos:f,setTodos:g,initData:j,setInitData:b,sidebarSections:v,setSidebarSection:k,removeSidebarSection:C,closeSidebar:I},children:(0,n.jsxs)("div",{className:"fixed inset-0 flex",children:[(0,n.jsx)(N.Bx,{ref:t}),(0,n.jsxs)("div",{className:"flex-1 min-h-0 min-w-0 flex flex-col",children:[(0,n.jsxs)("header",{className:"shrink-0 flex items-center gap-2 border-b px-4 py-2 bg-background",children:[(0,n.jsx)(p.$,{variant:"ghost",size:"icon",onClick:R,title:"Toggle sidebar (Ctrl+B)",className:"md:hidden",children:(0,n.jsx)(r.A,{className:"h-4 w-4"})}),(0,n.jsxs)("div",{className:"hidden md:flex items-center gap-2 min-w-0 flex-1 overflow-hidden",children:[(0,n.jsx)(a.default,{src:"/icon-192.png",alt:"",width:22,height:22,className:"shrink-0 dark:invert"}),(0,n.jsx)(q,{title:s.title,onRename:s.onRename})]}),(0,n.jsxs)("div",{className:"flex items-center gap-2 shrink-0 ml-auto",children:[(0,n.jsx)(y,{}),o&&(0,n.jsx)(A,{todos:f}),o&&(0,n.jsx)(S,{tasks:x}),(0,n.jsx)(O,{})]})]}),(0,n.jsx)("main",{className:"flex-1 min-h-0 min-w-0 flex flex-col",children:e})]})]})})})})}},16617:(e,t,s)=>{s.d(t,{Q:()=>u});var n=s(95155),r=s(9005),a=s(92571),l=s(12115),i=s(89239),o=s(81477),c=s(3765),d=s(513);function u(e){let{timestamp:t,onClose:s}=e,u=(0,c.E2)(),m=e.sessionId??u.sessionId,x=e.cwd??u.cwd,[h,f]=(0,l.useState)([]),[p,g]=(0,l.useState)(""),[j,b]=(0,l.useState)(!0),[v,w]=(0,l.useState)(null),y=(0,l.useRef)(null),N=(0,l.useRef)(new Set);(0,l.useEffect)(()=>{let e=new URLSearchParams({timestamp:String(t)});x&&e.set("cwd",x),fetch(`/api/sessions/${m}/context?${e}`).then(e=>{if(!e.ok)throw Error("Failed to load context");return e.json()}).then(e=>{f(e.messages),g(e.targetMessageId),b(!1)}).catch(e=>{w(e.message),b(!1)})},[m,x,t]),(0,l.useEffect)(()=>{!j&&y.current&&y.current.scrollIntoView({block:"center"})},[j]),(0,l.useEffect)(()=>{let e=e=>{"Escape"===e.key&&(e.preventDefault(),e.stopPropagation(),s())};return window.addEventListener("keydown",e,!0),()=>window.removeEventListener("keydown",e,!0)},[s]);let k=(0,l.useCallback)(e=>{e.target===e.currentTarget&&s()},[s]);return(0,n.jsx)("div",{className:"fixed inset-0 z-50 bg-black/50 flex items-center justify-center p-4",onClick:k,children:(0,n.jsxs)(o.Zp,{className:"w-full max-w-3xl flex flex-col",style:{maxHeight:"calc(100dvh - 2rem)"},children:[(0,n.jsxs)("div",{className:"flex items-center justify-between px-4 py-2 border-b shrink-0",children:[(0,n.jsx)("span",{className:"text-sm font-medium text-muted-foreground",children:"Message context"}),(0,n.jsx)(i.$,{variant:"ghost",size:"icon",className:"h-6 w-6",onClick:s,children:(0,n.jsx)(r.A,{className:"h-4 w-4"})})]}),(0,n.jsxs)("div",{className:"flex-1 min-h-0 overflow-y-auto p-4 space-y-4",children:[j&&(0,n.jsx)("div",{className:"flex justify-center py-12",children:(0,n.jsx)(a.A,{className:"h-5 w-5 animate-spin text-muted-foreground"})}),v&&(0,n.jsx)("div",{className:"text-center text-sm text-red-500 py-12",children:v}),!j&&h.map(e=>(0,n.jsx)("div",{ref:e.id===p?y:void 0,className:e.id===p?"ring-2 ring-primary/50 rounded-lg":void 0,children:(0,n.jsx)(d.s,{message:e,expandedToolIds:N})},e.id))]})]})})}},18189:(e,t,s)=>{s.d(t,{NG:()=>x,WG:()=>i,Ik:()=>m});var n=s(95155),r=s(12115),a=s(53972);let l={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 i(e){let t=(0,a.uk)(e)||"",s=t.toLowerCase();if("dockerfile"===s)return"dockerfile";if("makefile"===s)return"makefile";let n=t.includes(".")?t.split(".").pop()?.toLowerCase():void 0;if(n)return l[n]}function o(e){let t=e.split(/\r?\n/),s=/^\s*(\d+)\u2192(.*)$/,n=t[0]?.match(s);if(!n)return{code:e,startLine:1};let r=parseInt(n[1],10);return{code:t.map(e=>{let t=e.match(s);return t?t[2]:e}).join("\n"),startLine:r}}async function c(e,t,n){try{let r=await s.e(69427).then(s.bind(s,69427));return await r.codeToHtml(e,{lang:t,theme:n})}catch{return null}}let d=new Map;function u(e,t,s){return`${s}:${t}:${e}`}function m(e,t,s){let{code:n}=o(e),r=s?"github-dark":"github-light",a=u(n,t,r);d.has(a)||c(n,t,r).then(e=>{e&&d.set(a,e)})}function x({code:e,language:t,dark:s,fullHeight:a,wrap:l}){let{code:i,startLine:m}=o(e),h=s?"github-dark":"github-light",f=t?u(i,t,h):"",[p,g]=(0,r.useState)(t?d.get(f)??null:null);(0,r.useEffect)(()=>{if(!t)return void g(null);let e=d.get(f);if(e)return void g(e);let s=!1;return c(i,t,h).then(e=>{e&&d.set(f,e),s||g(e)}),()=>{s=!0}},[i,t,h,f]);let j=`
2
- .code-block-lines code {
3
- counter-reset: line ${m-1};
4
- }
5
- .code-block-lines code .line::before {
6
- counter-increment: line;
7
- content: counter(line);
8
- display: inline-block;
9
- width: 3ch;
10
- margin-right: 1.5ch;
11
- text-align: right;
12
- color: var(--line-number-color, rgba(115,138,148,0.4));
13
- user-select: none;
14
- }${l?`
15
- .code-block-lines.code-block-wrap code .line {
16
- display: block;
17
- padding-left: 4.5ch;
18
- text-indent: -4.5ch;
19
- }`:""}
20
- `,b=l?"overflow-x-hidden":"overflow-x-auto",v=l?" code-block-wrap [&_pre]:whitespace-pre-wrap [&_pre]:[overflow-wrap:anywhere]":"",w=l?" whitespace-pre-wrap [overflow-wrap:anywhere]":"",y=l&&p?p.replace(/\n/g,""):p;return p?(0,n.jsxs)("div",{className:`code-block-lines ${b} rounded text-[11px] leading-relaxed overflow-y-auto [&_pre]:!bg-transparent [&_pre]:p-2 [&_pre]:m-0${v}${a?"":" max-h-64"}`,children:[(0,n.jsx)("style",{children:j}),(0,n.jsx)("div",{dangerouslySetInnerHTML:{__html:y??""}})]}):(0,n.jsx)("pre",{className:`${b} rounded bg-muted/50 p-2 text-[11px] leading-relaxed overflow-y-auto${w}${a?"":" max-h-64"}`,children:i})}},20108:(e,t,s)=>{s.d(t,{t:()=>m});var n=s(95155),r=s(15480),a=s(95660),l=s(92571),i=s(12115),o=s(89239),c=s(42763),d=s(60529),u=s(41158);function m({open:e,onOpenChange:t,onSubmit:s}){let[x,h]=(0,i.useState)("session"),[f,p]=(0,i.useState)(""),[g,j]=(0,i.useState)(""),[b,v]=(0,i.useState)(!1),[w,y]=(0,i.useState)(""),[N,k]=(0,i.useState)(""),[C,S]=(0,i.useState)(""),[E,$]=(0,i.useState)(!1),[A,T]=(0,i.useState)(!1),[R,I]=(0,i.useState)(""),_=()=>{p(""),j(""),v(!1),y(""),k(""),S(""),$(!1),T(!1),I("")},P=async e=>{if(e.preventDefault(),w.trim()&&N.trim()){T(!0),I("");try{let e=await fetch("/api/git/clone",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({url:w.trim(),parentPath:N.trim(),folderName:C.trim()||void 0})}),n=await e.json();if(!e.ok)return void I(n.error||"Clone failed");s(n.path,g.trim()),_(),t(!1)}catch{I("Failed to connect")}finally{T(!1)}}};return(0,n.jsx)(c.lG,{open:e,onOpenChange:e=>{e||_(),t(e)},children:(0,n.jsxs)(c.Cf,{onClose:()=>{_(),t(!1)},children:[(0,n.jsx)(c.c7,{children:(0,n.jsx)(c.L3,{children:"New Session"})}),(0,n.jsxs)("div",{className:"flex gap-1 border-b mt-2",children:[(0,n.jsx)("button",{type:"button",onClick:()=>h("session"),className:`px-3 py-1.5 text-sm font-medium border-b-2 transition-colors ${"session"===x?"border-foreground text-foreground":"border-transparent text-muted-foreground hover:text-foreground"}`,children:"Open Directory"}),(0,n.jsxs)("button",{type:"button",onClick:()=>h("clone"),className:`px-3 py-1.5 text-sm font-medium border-b-2 transition-colors flex items-center gap-1.5 ${"clone"===x?"border-foreground text-foreground":"border-transparent text-muted-foreground hover:text-foreground"}`,children:[(0,n.jsx)(r.A,{className:"h-3.5 w-3.5"}),"Clone Repo"]})]}),"session"===x&&(0,n.jsxs)("form",{onSubmit:e=>{e.preventDefault(),f.trim()&&(s(f.trim(),g.trim()),_(),t(!1))},className:"space-y-4 mt-2",children:[(0,n.jsxs)("div",{children:[(0,n.jsx)("label",{className:"text-sm font-medium",children:"Working Directory"}),(0,n.jsxs)("div",{className:"flex gap-2",children:[(0,n.jsx)(d.p,{value:f,onChange:e=>p(e.target.value),placeholder:"/home/user/project",required:!0}),(0,n.jsx)(o.$,{type:"button",variant:"outline",size:"icon",onClick:()=>v(!b),title:"Browse directories",children:(0,n.jsx)(a.A,{className:"h-4 w-4"})})]})]}),b&&(0,n.jsx)(u.K,{onSelect:e=>{p(e),v(!1)},onCancel:()=>v(!1)}),(0,n.jsxs)("div",{children:[(0,n.jsx)("label",{className:"text-sm font-medium",children:"Name (optional)"}),(0,n.jsx)(d.p,{value:g,onChange:e=>j(e.target.value),placeholder:"My Project"})]}),(0,n.jsx)(o.$,{type:"submit",className:"w-full",disabled:!f.trim(),children:"Create Session"})]}),"clone"===x&&(0,n.jsxs)("form",{onSubmit:P,className:"space-y-4 mt-2",children:[(0,n.jsxs)("div",{children:[(0,n.jsx)("label",{className:"text-sm font-medium",children:"Repository URL"}),(0,n.jsx)(d.p,{value:w,onChange:e=>y(e.target.value),placeholder:"https://github.com/user/repo.git",required:!0})]}),(0,n.jsxs)("div",{children:[(0,n.jsx)("label",{className:"text-sm font-medium",children:"Clone Into"}),(0,n.jsxs)("div",{className:"flex gap-2",children:[(0,n.jsx)(d.p,{value:N,onChange:e=>k(e.target.value),placeholder:"/home/user/projects",required:!0}),(0,n.jsx)(o.$,{type:"button",variant:"outline",size:"icon",onClick:()=>$(!E),title:"Browse directories",children:(0,n.jsx)(a.A,{className:"h-4 w-4"})})]})]}),E&&(0,n.jsx)(u.K,{onSelect:e=>{k(e),$(!1)},onCancel:()=>$(!1)}),(0,n.jsxs)("div",{children:[(0,n.jsx)("label",{className:"text-sm font-medium",children:"Folder Name (optional)"}),(0,n.jsx)(d.p,{value:C,onChange:e=>S(e.target.value),placeholder:"Defaults to repository name"})]}),(0,n.jsxs)("div",{children:[(0,n.jsx)("label",{className:"text-sm font-medium",children:"Session Name (optional)"}),(0,n.jsx)(d.p,{value:g,onChange:e=>j(e.target.value),placeholder:"My Project"})]}),R&&(0,n.jsx)("p",{className:"text-sm text-destructive",children:R}),(0,n.jsx)(o.$,{type:"submit",className:"w-full",disabled:!w.trim()||!N.trim()||A,children:A?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(l.A,{className:"h-4 w-4 animate-spin mr-2"}),"Cloning..."]}):"Clone & Create Session"})]})]})})}},22317:(e,t,s)=>{s.d(t,{t:()=>a});var n=s(12115);let r={diffStyle:"split",dismissKeyboardOnSend:!0,thinkingLevel:"high",bypassAllPermissions:!1,thinkingExpanded:!1,readExpanded:!1,editExpanded:!1,toolCallsExpanded:!1,model:"sonnet",messageStitching:!0,reviewsEnabled:!0};function a(){let[e,t]=(0,n.useState)(r),[s,a]=(0,n.useState)(!1);return(0,n.useEffect)(()=>{fetch("/api/defaults").then(e=>e.json()).then(e=>{t({...r,...e}),a(!0)}).catch(()=>a(!0))},[]),{settings:e,updateSetting:(0,n.useCallback)((e,s)=>{t(t=>{let n={...t,[e]:s};return fetch("/api/defaults",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({[e]:s})}).catch(()=>{}),n})},[]),loaded:s}}},40980:(e,t,s)=>{s.d(t,{cn:()=>a});var n=s(29722),r=s(622);function a(...e){return(0,r.QP)((0,n.$)(e))}},41158:(e,t,s)=>{s.d(t,{K:()=>m});var n=s(95155),r=s(76721),a=s(92571),l=s(14225),i=s(30600),o=s(12115),c=s(89239),d=s(60529),u=s(53972);function m({onSelect:e,onCancel:t}){let[s,x]=(0,o.useState)(""),[h,f]=(0,o.useState)([]),[p,g]=(0,o.useState)(!0),[j,b]=(0,o.useState)(""),[v,w]=(0,o.useState)(!1),[y,N]=(0,o.useState)(""),[k,C]=(0,o.useState)(""),S=(0,o.useCallback)(async e=>{g(!0),b("");let t=new URLSearchParams;e&&t.set("path",e);try{let e=await fetch(`/api/filesystem/browse?${t}`);if(!e.ok){let t=await e.json().catch(()=>({error:"Failed to browse"}));b(t.error||"Failed to browse"),f([]);return}let s=await e.json();x(s.path),f(s.entries)}catch{b("Failed to connect"),f([])}finally{g(!1)}},[]);(0,o.useEffect)(()=>{S()},[S]);let E=async()=>{let e=y.trim();if(e){C("");try{let t=await fetch("/api/filesystem/mkdir",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({parentPath:s,name:e})});if(!t.ok){let e=await t.json().catch(()=>({error:"Failed to create folder"}));C(e.error||"Failed to create folder");return}let n=await t.json();w(!1),N(""),S(n.path)}catch{C("Failed to connect")}}},$=(0,u.cs)(s),A=/^[a-zA-Z]:[/\\]/.test(s),T=A?s.slice(0,3):"/",R=A?s.slice(0,3):"/",I=A?$.slice(1):$;return(0,n.jsxs)("div",{className:"space-y-3",children:[(0,n.jsxs)("div",{className:"flex items-center gap-1 text-xs font-mono overflow-x-auto",children:[(0,n.jsx)("button",{type:"button",onClick:()=>S(R),className:"shrink-0 text-muted-foreground hover:text-foreground",children:T}),I.map((e,t)=>{let s=R+I.slice(0,t+1).join("/"),a=t===I.length-1;return(0,n.jsxs)("span",{className:"flex items-center gap-1",children:[(0,n.jsx)(r.A,{className:"h-3 w-3 text-muted-foreground shrink-0"}),a?(0,n.jsx)("span",{className:"text-foreground font-medium",children:e}):(0,n.jsx)("button",{type:"button",onClick:()=>S(s),className:"text-muted-foreground hover:text-foreground",children:e})]},s)})]}),(0,n.jsxs)("div",{className:"border rounded-md max-h-56 overflow-y-auto",children:[p&&(0,n.jsx)("div",{className:"flex items-center justify-center py-8",children:(0,n.jsx)(a.A,{className:"h-4 w-4 animate-spin text-muted-foreground"})}),j&&(0,n.jsx)("div",{className:"px-3 py-4 text-sm text-destructive",children:j}),!p&&!j&&0===h.length&&!v&&(0,n.jsx)("div",{className:"px-3 py-4 text-sm text-muted-foreground",children:"No subdirectories"}),!p&&!j&&h.map(e=>(0,n.jsxs)("button",{type:"button",onClick:()=>S(e.path),className:"flex w-full items-center gap-2 px-3 py-1.5 text-sm hover:bg-muted/50 text-left",children:[(0,n.jsx)(l.A,{className:"h-4 w-4 shrink-0 text-muted-foreground"}),(0,n.jsx)("span",{className:"truncate",children:e.name})]},e.path)),v&&(0,n.jsxs)("div",{className:"px-3 py-1.5 space-y-1",children:[(0,n.jsxs)("div",{className:"flex items-center gap-2",children:[(0,n.jsx)(i.A,{className:"h-4 w-4 shrink-0 text-muted-foreground"}),(0,n.jsx)(d.p,{value:y,onChange:e=>N(e.target.value),onKeyDown:e=>{"Enter"===e.key&&(e.preventDefault(),E()),"Escape"===e.key&&(w(!1),N(""),C(""))},placeholder:"Folder name",className:"h-7 text-sm",autoFocus:!0}),(0,n.jsx)(c.$,{type:"button",size:"sm",variant:"ghost",className:"h-7 px-2 text-xs",onClick:E,children:"Create"})]}),k&&(0,n.jsx)("p",{className:"text-xs text-destructive pl-6",children:k})]})]}),(0,n.jsxs)("div",{className:"flex gap-2 justify-end",children:[!v&&(0,n.jsxs)(c.$,{type:"button",variant:"outline",size:"sm",onClick:()=>{w(!0),C("")},disabled:!s,children:[(0,n.jsx)(i.A,{className:"h-3.5 w-3.5 mr-1.5"}),"New Folder"]}),(0,n.jsx)("div",{className:"flex-1"}),(0,n.jsx)(c.$,{type:"button",variant:"outline",size:"sm",onClick:t,children:"Cancel"}),(0,n.jsxs)(c.$,{type:"button",size:"sm",disabled:!s,onClick:()=>e(s),children:["Select ",s?(0,u.uk)(s)||"/":""]})]})]})}},42763:(e,t,s)=>{s.d(t,{Cf:()=>c,L3:()=>u,c7:()=>d,lG:()=>o});var n=s(95155),r=s(9005),a=s(65738),l=s(12115),i=s(40980);function o({open:e,onOpenChange:t,children:s,className:r}){return(l.useEffect(()=>{if(!e)return;let s=e=>{"Escape"===e.key&&(e.preventDefault(),e.stopPropagation(),t(!1))};return window.addEventListener("keydown",s,!0),()=>window.removeEventListener("keydown",s,!0)},[e,t]),e)?(0,n.jsx)("div",{className:"fixed inset-0 z-50 bg-black/80 flex items-center justify-center px-4 py-12",onMouseDown:e=>{e.target===e.currentTarget&&t(!1)},children:(0,n.jsx)("div",{className:(0,i.cn)("w-full max-h-full flex flex-col",r||"max-w-lg"),children:s})}):null}function c({className:e,children:t,...s}){return(0,n.jsxs)("div",{className:(0,i.cn)("relative rounded-lg border bg-background text-foreground p-6 shadow-lg overflow-y-auto",e),...s,children:[(s.onClose||s.onDelete)&&(0,n.jsxs)("div",{className:"sticky top-0 z-10 flex justify-between -mx-2 -mt-2 mb-2",children:[s.onClose?(0,n.jsx)("button",{className:"rounded-sm opacity-70 hover:opacity-100",onClick:s.onClose,children:(0,n.jsx)(r.A,{className:"h-4 w-4"})}):(0,n.jsx)("span",{}),s.onDelete&&(0,n.jsx)("button",{className:"rounded-sm opacity-70 hover:opacity-100 text-destructive",onClick:s.onDelete,children:(0,n.jsx)(a.A,{className:"h-4 w-4"})})]}),t]})}function d({className:e,...t}){return(0,n.jsx)("div",{className:(0,i.cn)("flex flex-col space-y-1.5 text-center sm:text-left",e),...t})}function u({className:e,...t}){return(0,n.jsx)("h2",{className:(0,i.cn)("text-lg font-semibold leading-none tracking-tight",e),...t})}},45160:(e,t,s)=>{s.d(t,{E:()=>i});var n=s(95155),r=s(18460);s(12115);var a=s(40980);let l=(0,r.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 i({className:e,variant:t,...s}){return(0,n.jsx)("div",{className:(0,a.cn)(l({variant:t}),e),...s})}},53972:(e,t,s)=>{function n(e){let t=Math.max(e.lastIndexOf("/"),e.lastIndexOf("\\"));return t<0?e:e.slice(t+1)}function r(e){let t=Math.max(e.lastIndexOf("/"),e.lastIndexOf("\\"));return t<0?"":e.slice(0,t)}function a(e,t=3){let s=e.split(/[/\\]/);return s.length<=t?e:".../"+s.slice(-2).join("/")}function l(e){return e.split(/[/\\]/).filter(Boolean)}s.d(t,{_1:()=>a,cs:()=>l,uk:()=>n,ww:()=>r})},57594:(e,t,s)=>{s.d(t,{Mh:()=>d,j8:()=>c,sU:()=>o});var n=s(95155),r=s(89811),a=s(49199),l=s(12115),i=s(22317);class o extends l.Component{static getDerivedStateFromError(){return{error:!0}}render(){return this.state.error?this.props.fallback||(0,n.jsx)("pre",{className:"p-3 text-xs text-muted-foreground",children:"Unable to render diff"}):this.props.children}constructor(...e){super(...e),this.state={error:!1}}}let c="[data-column-content] { user-select: text; -webkit-user-select: text; }";function d({filePath:e,oldString:t,newString:s,dark:u}){let{settings:m}=(0,i.t)(),x=(0,l.useMemo)(()=>(0,a.ss)(`a/${e}`,`b/${e}`,t,s,"","",{context:3}),[e,t,s]);return(0,n.jsx)("div",{className:"overflow-x-auto rounded text-xs",children:(0,n.jsx)(o,{children:(0,n.jsx)(r.C,{patch:x,options:{theme:{dark:"pierre-dark",light:"pierre-light"},themeType:u?"dark":"light",disableFileHeader:!0,overflow:"wrap",diffStyle:m.diffStyle,unsafeCSS:c}})})})}},60529:(e,t,s)=>{s.d(t,{p:()=>l});var n=s(95155),r=s(12115),a=s(40980);let l=r.forwardRef(({className:e,type:t,...s},r)=>(0,n.jsx)("input",{type:t,className:(0,a.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",e),ref:r,...s}));l.displayName="Input"},64233:(e,t,s)=>{s.d(t,{Y:()=>f});var n=s(95155),r=s(57966),a=s(98076),l=s(44605),i=s(64577),o=s(99314),c=s(12115);function d(e){let t=document.createElement("textarea");t.value=e,t.style.position="fixed",t.style.opacity="0",document.body.appendChild(t),t.select();try{return document.execCommand("copy")}finally{document.body.removeChild(t)}}var u=s(40980);function m(e){return(0,n.jsx)("a",{...e,target:"_blank",rel:"noopener noreferrer"})}let x={pre:function(e){let[t,s]=(0,c.useState)(!1),r=(0,c.useRef)(null),a=(0,c.useCallback)(()=>{let e=r.current?.textContent??"",t=()=>{s(!0),setTimeout(()=>s(!1),1500)};navigator.clipboard?.writeText?navigator.clipboard.writeText(e).then(t).catch(()=>{d(e)&&t()}):d(e)&&t()},[]);return(0,n.jsxs)("div",{className:"group/code relative",children:[(0,n.jsx)("pre",{ref:r,...e}),(0,n.jsx)("button",{onClick:a,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:t?(0,n.jsx)(i.A,{className:"h-3.5 w-3.5 text-green-500"}):(0,n.jsx)(o.A,{className:"h-3.5 w-3.5"})})]})},a:m},h={a:m};function f({content:e,variant:t="full",className:s}){return"lite"===t?(0,n.jsx)("div",{className:(0,u.cn)("prose prose-sm max-w-none dark:prose-invert",s),children:(0,n.jsx)(r.oz,{remarkPlugins:[l.A],components:h,children:e})}):(0,n.jsx)("div",{className:(0,u.cn)("message-prose prose prose-sm max-w-none dark:prose-invert",s),children:(0,n.jsx)(r.oz,{remarkPlugins:[l.A],rehypePlugins:[a.A],components:x,children:e})})}},67032:(e,t,s)=>{s.d(t,{Jm:()=>a,Os:()=>r,wA:()=>l});var n=s(12115);function r(){let[e,t]=(0,n.useState)([]),[s,r]=(0,n.useState)(!0),a=(0,n.useCallback)(()=>{r(!0),fetch("/api/jobs").then(e=>e.json()).then(e=>t(e.jobs)).catch(()=>t([])).finally(()=>r(!1))},[]);(0,n.useEffect)(()=>{a()},[a]);let l=(0,n.useCallback)(async e=>{try{if((await fetch(`/api/jobs/${e}`,{method:"DELETE"})).ok)return a(),!0;return!1}catch{return!1}},[a]);return{jobs:e,loading:s,refresh:a,deleteJob:l,triggerJob:(0,n.useCallback)(async e=>{try{return(await fetch(`/api/jobs/${e}/trigger`,{method:"POST"})).ok}catch{return!1}},[])}}function a(e){let[t,s]=(0,n.useState)([]),[r,a]=(0,n.useState)(!0),[l,i]=(0,n.useState)(!1),[o,c]=(0,n.useState)(!1),d=(0,n.useCallback)(()=>{if(!e){s([]),a(!1),c(!1);return}a(!0),fetch(`/api/jobs/${e}/runs?limit=25`).then(e=>e.json()).then(e=>{s(e.runs),c(e.hasMore??!1)}).catch(()=>s([])).finally(()=>a(!1))},[e]),u=(0,n.useCallback)(()=>{e&&!l&&o&&(i(!0),fetch(`/api/jobs/${e}/runs?limit=25&offset=${t.length}`).then(e=>e.json()).then(e=>{s(t=>[...t,...e.runs]),c(e.hasMore??!1)}).catch(()=>{}).finally(()=>i(!1)))},[e,l,o,t.length]);return(0,n.useEffect)(()=>{d()},[d]),{runs:t,loading:r,loadingMore:l,hasMore:o,refresh:d,loadMore:u}}function l(){let[e,t]=(0,n.useState)(0),s=(0,n.useRef)(void 0);return(0,n.useEffect)(()=>{let e=()=>{fetch("/api/jobs/status").then(e=>e.json()).then(e=>t(e.count)).catch(()=>{})};return e(),s.current=setInterval(e,6e4),()=>clearInterval(s.current)},[]),{count:e}}},70518:(e,t,s)=>{s.d(t,{Bx:()=>B,HC:()=>J,MJ:()=>L,MN:()=>F});var n=s(95155),r=s(44923),a=s(87256),l=s(39768),i=s(58274),o=s(9005),c=s(2125),d=s(85618),u=s(88074),m=s(35397),x=s(44354),h=s(83212),f=s(19257),p=s(797),g=s(77618),j=s(61665),b=s(73321),v=s(12115),w=s(3765),y=s(96301),N=s(76721),k=s(40980);let C="cockpit_sidebar_sections";function S({id:e,title:t,badge:s,defaultOpen:r=!0,actions:a,children:l}){let[i,o]=(0,v.useState)(r);return(0,v.useEffect)(()=>{o(function(e,t){try{let t=localStorage.getItem(C);if(t){let s=JSON.parse(t);if(e in s)return s[e]}}catch{}return t}(e,r))},[e,r]),(0,n.jsxs)("div",{className:"border-b last:border-b-0",children:[(0,n.jsxs)("div",{className:"flex items-center",children:[(0,n.jsxs)("button",{type:"button",onClick:()=>{let t=!i;o(t);try{let s=localStorage.getItem(C),n=s?JSON.parse(s):{};n[e]=t,localStorage.setItem(C,JSON.stringify(n))}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,n.jsx)(N.A,{className:(0,k.cn)("h-3 w-3 shrink-0 transition-transform",i&&"rotate-90")}),(0,n.jsx)("span",{className:"flex-1 min-w-0 truncate",children:t}),s&&(0,n.jsx)("span",{className:"shrink-0 rounded-full bg-muted px-1.5 py-0.5 text-[10px] leading-none",children:s})]}),a&&(0,n.jsx)("div",{className:"shrink-0 pr-2 flex items-center",children:a})]}),i&&l]})}var E=s(89239),$=s(67032),A=s(22317),T=s(89323),R=s(20108);let I="cockpit_sidebar_width";function _({onResize:e}){let t=(0,v.useRef)(!1),s=(0,v.useRef)(0),r=(0,v.useCallback)(n=>{n.preventDefault(),t.current=!0,s.current=n.clientX;let r=n=>{if(!t.current)return;let r=n.clientX-s.current;s.current=n.clientX,e(r)},a=()=>{t.current=!1,document.removeEventListener("mousemove",r),document.removeEventListener("mouseup",a),document.body.style.cursor="",document.body.style.userSelect=""};document.body.style.cursor="col-resize",document.body.style.userSelect="none",document.addEventListener("mousemove",r),document.addEventListener("mouseup",a)},[e]);return(0,n.jsx)("div",{onMouseDown:r,className:"hidden md:block absolute inset-y-0 right-0 w-1 cursor-col-resize hover:bg-primary/30 transition-colors z-10"})}let P="cockpit_unread_sessions";async function F(e){await fetch("/api/sessions/pinned",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({add:e})}).catch(()=>{})}async function M(e){await fetch("/api/sessions/pinned",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({remove:e})}).catch(()=>{})}async function z(){try{let e=await fetch("/api/sessions/pinned");if(!e.ok)return[];let t=await e.json();return Array.isArray(t.pinned)?t.pinned:[]}catch{return[]}}async function L(e){await fetch("/api/reviews/pinned",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({add:e})}).catch(()=>{})}async function O(e){await fetch("/api/reviews/pinned",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({remove:e})}).catch(()=>{})}async function D(){try{let e=await fetch("/api/reviews/pinned");if(!e.ok)return[];let t=await e.json();return Array.isArray(t.pinned)?t.pinned:[]}catch{return[]}}let U=/^Review:\s*(?:(.+?)\/)?(.+?)#(\d+)(?:\s+-\s+(.*))?$/;function W(){try{let e=localStorage.getItem(P);if(e)return new Set(JSON.parse(e))}catch{}return new Set}function J(e){let t=W();t.delete(e),localStorage.setItem(P,JSON.stringify([...t]))}function G({session:e,isCurrent:t,isUnread:s,onNavigate:r,onAction:c}){var d;let u,{attributes:m,listeners:x,setNodeRef:h,transform:f,transition:p,isDragging:g}=(0,a.gl)({id:e.id}),j={transform:l.Ks.Transform.toString(f),transition:p,opacity:g?.5:1};return(0,n.jsxs)("div",{ref:h,style:j,role:"button",tabIndex:0,onClick:()=>r(e),onKeyDown:t=>{("Enter"===t.key||" "===t.key)&&(t.preventDefault(),r(e))},className:(0,k.cn)("w-full flex items-center gap-2 px-3 py-2 text-left text-sm hover:bg-accent/50 transition-colors cursor-pointer",t&&"bg-accent"),children:[(0,n.jsx)("button",{type:"button",...m,...x,onClick:e=>e.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,n.jsx)(i.A,{className:"h-4 w-4"})}),(0,n.jsx)("div",{className:"shrink-0 relative flex items-center justify-center h-4 w-4",children:(e.pendingRequestCount??0)>0?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("div",{className:"absolute h-4 w-4 rounded-full bg-blue-500/20 animate-ping"}),(0,n.jsx)("div",{className:"h-2.5 w-2.5 rounded-full bg-blue-500",title:"Awaiting your input"})]}):"running"===e.status?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("div",{className:"absolute h-4 w-4 rounded-full bg-yellow-500/20 animate-ping"}),(0,n.jsx)("div",{className:"h-2.5 w-2.5 rounded-full bg-yellow-500",title:"Working"})]}):s?(0,n.jsx)("div",{className:"h-2.5 w-2.5 rounded-full bg-green-500",title:"New response"}):(0,n.jsx)("div",{className:"h-2.5 w-2.5 rounded-full bg-muted-foreground/30"})}),(0,n.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,n.jsx)("div",{className:"truncate font-medium text-left",dir:"rtl",title:e.cwd,children:(0,n.jsx)("bdo",{dir:"ltr",children:(u=(d=e.cwd).split(/[/\\]/)).length>2?"~/"+u.slice(-2).join("/"):d})}),(0,n.jsx)("div",{className:"truncate text-xs text-muted-foreground",children:e.name})]}),(0,n.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:t=>c(t,e),title:"running"===e.status?"Stop session":"Remove from sidebar",children:(0,n.jsx)(o.A,{className:"h-4 w-4"})})]})}let B=(0,v.forwardRef)(function(e,t){let s=(0,b.useRouter)(),l=(0,b.usePathname)(),{send:i,subscribe:m,connected:x}=(0,T.h)(),{sidebarSections:h,cwd:f,sessionId:p}=(0,w.E2)(),{settings:g}=(0,A.t)(),[j,y]=(0,v.useState)(!1),[N,C]=(0,v.useState)([]),[$,L]=(0,v.useState)(new Set),[O,D]=(0,v.useState)(!1),[U,B]=(0,v.useState)(288);(0,v.useEffect)(()=>{B(function(){try{let e=localStorage.getItem(I);if(e){let t=parseInt(e,10);if(t>=200&&t<=480)return t}}catch{}return 288}())},[]);let Q=(0,v.useCallback)(e=>{B(t=>{let s=Math.max(200,Math.min(480,t+e));return localStorage.setItem(I,String(s)),s})},[]),ee=(0,v.useRef)(new Map),et=(0,r.FR)((0,r.MS)(r.AN,{activationConstraint:{delay:150,tolerance:5}}));(0,v.useImperativeHandle)(t,()=>({toggle:()=>y(e=>!e),close:()=>y(!1)}),[]);let es=(0,v.useCallback)(()=>y(!1),[]),en=l.startsWith("/sessions/")?l.split("/")[2]:null;(0,v.useEffect)(()=>m(e=>{if("session:status"===e.type){let{sessionId:t,status:s}=e;if(!new Set(N.map(e=>e.id)).has(t))return;let n=ee.current.get(t);if(ee.current.set(t,s),"running"===n&&"idle"===s&&en!==t){let e;(e=W()).add(t),localStorage.setItem(P,JSON.stringify([...e])),L(W())}C(e=>e.map(e=>e.id===t?{...e,status:s}:e))}else if("session:pending"===e.type){let{sessionId:t,count:s}=e;if(!new Set(N.map(e=>e.id)).has(t))return;C(e=>e.map(e=>e.id===t?{...e,pendingRequestCount:s}:e))}else if("session:info_updated"===e.type){let{sessionId:t,info:s}=e;C(e=>e.map(e=>e.id===t?{...e,name:s.name,model:s.model}:e))}}),[m,en,N]);let er=(0,v.useCallback)(async()=>{L(W());let e=await z();if(0===e.length)return void C([]);let t=e.join(","),s=await fetch(`/api/sessions/by-ids?ids=${encodeURIComponent(t)}`).then(e=>e.ok?e.json():null).catch(()=>null);if(!s)return;let n=(s.sessions||[]).filter(e=>!e.cwd.endsWith(".cockpit/reviews")),r=new Set(Array.isArray(s.foundIds)?s.foundIds:n.map(e=>e.id)),a=new Map(n.map(e=>[e.id,e])),l=[],o=[];for(let t of e){let e=a.get(t);e&&(l.push(e),o.push(t))}for(let t of(e.some(e=>!r.has(e))&&fetch("/api/sessions/pinned",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({pinned:o})}).catch(()=>{}),l))ee.current.has(t.id)||ee.current.set(t.id,t.status);C(l),l.length>0&&i({type:"session:subscribe",sessionIds:l.map(e=>e.id)})},[i]);(0,v.useEffect)(()=>{(j||x)&&er()},[j,x,l,er]);let ea=async(e,t)=>{e.stopPropagation(),(await fetch(`/api/sessions/${t}`,{method:"DELETE"})).ok&&(await M(t),J(t),L(W()),C(e=>e.filter(e=>e.id!==t)),en===t&&s.push("/"))},el=async(e,t)=>{e.stopPropagation(),await M(t),J(t),L(W()),C(e=>e.filter(e=>e.id!==t)),en===t&&s.push("/")},ei=(0,v.useCallback)(e=>{let{active:t,over:s}=e;if(!s||t.id===s.id)return;let n=N.findIndex(e=>e.id===t.id),r=N.findIndex(e=>e.id===s.id);if(n<0||r<0)return;let l=(0,a.be)(N,n,r);C(l),fetch("/api/sessions/pinned",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({pinned:l.map(e=>e.id)})}).catch(e=>console.error("Failed to persist sidebar order",e))},[N]),eo=async(e,t)=>{let n=await fetch("/api/sessions",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cwd:e,name:t||void 0})});if(n.ok){let t=await n.json();await F(t.sessionId),await er(),es(),s.push(`/sessions/${t.sessionId}?cwd=${encodeURIComponent(e)}`)}},ec=e=>{J(e.id),L(W()),es();let t=new URLSearchParams({cwd:e.cwd});e.name&&t.set("name",e.name),s.push(`/sessions/${e.id}?${t}`)};return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("div",{className:(0,k.cn)("fixed inset-0 z-40 bg-black/50 transition-opacity md:hidden",j?"opacity-100":"opacity-0 pointer-events-none"),onMouseDown:es}),(0,n.jsxs)("div",{className:(0,k.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",j?"translate-x-0":"-translate-x-full"),style:{width:U},children:[(0,n.jsx)(_,{onResize:Q}),(0,n.jsx)("div",{className:"flex items-center justify-end px-3 py-1 border-b md:hidden",children:(0,n.jsx)(E.$,{variant:"ghost",size:"icon",onClick:es,children:(0,n.jsx)(o.A,{className:"h-4 w-4"})})}),(0,n.jsxs)("div",{className:"flex-1 min-h-0 overflow-y-auto",children:[(0,n.jsx)(S,{id:"sessions",title:"Sessions",badge:N.length>0?String(N.length):void 0,actions:(0,n.jsxs)("div",{className:"flex items-center",children:[(0,n.jsx)(E.$,{variant:"ghost",size:"icon",className:"h-6 w-6",onClick:()=>D(!0),title:"New session",children:(0,n.jsx)(c.A,{className:"h-3.5 w-3.5"})}),(0,n.jsx)(E.$,{variant:"ghost",size:"icon",className:"h-6 w-6",onClick:()=>{es(),s.push("/")},title:"All sessions",children:(0,n.jsx)(d.A,{className:"h-3 w-3"})})]}),children:0===N.length?(0,n.jsx)("p",{className:"px-3 py-3 text-sm text-muted-foreground",children:"No active sessions."}):(0,n.jsx)(r.Mp,{sensors:et,onDragEnd:ei,children:(0,n.jsx)(a.gB,{items:N.map(e=>e.id),strategy:a._G,children:N.map(e=>(0,n.jsx)(G,{session:e,isCurrent:en===e.id,isUnread:$.has(e.id),onNavigate:ec,onAction:(e,t)=>"running"===t.status?ea(e,t.id):el(e,t.id)},e.id))})})}),(0,n.jsx)(K,{sections:h,exclude:H}),f&&!h.has("git-changes")&&(0,n.jsx)(X,{cwd:f,sessionId:p}),f&&!h.has("file-tree")&&(0,n.jsx)(S,{id:"files",title:"Session Files",defaultOpen:!1,children:(0,n.jsx)(V,{cwd:f})}),g.reviewsEnabled&&(0,n.jsx)(q,{onNavigate:es}),g.reviewsEnabled&&h.has("pr-files")&&(0,n.jsx)(S,{id:"pr-files",title:h.get("pr-files").title,badge:h.get("pr-files").badge,children:h.get("pr-files").content})]}),(0,n.jsxs)("div",{className:"border-t px-3 py-2 flex items-center justify-end gap-2",children:[(0,n.jsx)(Y,{onClick:()=>{es(),s.push("/jobs")}}),(0,n.jsx)(Z,{onClick:()=>{es(),s.push("/inbox")}}),(0,n.jsx)(E.$,{variant:"ghost",size:"icon",className:"shrink-0 h-8 w-8 text-muted-foreground hover:text-foreground",onClick:()=>{sessionStorage.removeItem("settings-scroll"),es(),s.push("/settings")},title:"Settings",children:(0,n.jsx)(u.A,{className:"h-4 w-4"})})]})]}),(0,n.jsx)(R.t,{open:O,onOpenChange:D,onSubmit:eo})]})});function q({onNavigate:e}){let t=(0,b.useRouter)(),s=(0,b.usePathname)(),{subscribe:r,send:a}=(0,T.h)(),[l,i]=(0,v.useState)([]),c=(0,v.useCallback)(async()=>{let e=await D();if(0===e.length)return void i([]);let t=await fetch(`/api/sessions/by-ids?ids=${encodeURIComponent(e.join(","))}`).then(e=>e.ok?e.json():null).catch(()=>null);if(!t)return;let s=t.sessions||[],n=new Set(Array.isArray(t.foundIds)?t.foundIds:s.map(e=>e.id)),r=new Map(s.map(e=>[e.id,e])),l=[],o=[];for(let t of e){let e=r.get(t);if(e){let s=function(e){let t=U.exec(e.name);return t?{id:e.id,owner:t[1]||"",repo:t[2],number:parseInt(t[3],10),title:t[4]||"",status:e.status,pendingRequestCount:e.pendingRequestCount??0}:null}(e);s&&l.push(s),o.push(t)}}e.some(e=>!n.has(e))&&fetch("/api/reviews/pinned",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({pinned:o})}).catch(()=>{}),i(l),l.length>0&&a({type:"session:subscribe",sessionIds:l.map(e=>e.id)})},[a]);(0,v.useEffect)(()=>{c()},[s,c]),(0,v.useEffect)(()=>r(e=>{if("session:status"===e.type){let{sessionId:t,status:s}=e;i(e=>e.map(e=>e.id===t?{...e,status:s}:e))}else if("session:pending"===e.type){let{sessionId:t,count:s}=e;i(e=>e.map(e=>e.id===t?{...e,pendingRequestCount:s}:e))}}),[r]);let d=s=>{e(),s.owner?t.push(`/reviews/${s.owner}/${s.repo}/${s.number}`):t.push("/reviews")};return(0,n.jsx)(S,{id:"reviews",title:"Reviews",badge:l.length>0?String(l.length):void 0,actions:(0,n.jsx)(E.$,{variant:"ghost",size:"icon",className:"h-6 w-6",onClick:()=>{e(),t.push("/reviews")},title:"All reviews",children:(0,n.jsx)(m.A,{className:"h-3 w-3"})}),children:0===l.length?(0,n.jsx)("p",{className:"px-3 py-3 text-sm text-muted-foreground",children:"No pinned reviews."}):l.map(e=>(0,n.jsxs)("div",{role:"button",tabIndex:0,onClick:()=>d(e),onKeyDown:t=>{("Enter"===t.key||" "===t.key)&&(t.preventDefault(),d(e))},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,n.jsx)("div",{className:"shrink-0 relative flex items-center justify-center h-4 w-4",children:e.pendingRequestCount>0?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("div",{className:"absolute h-4 w-4 rounded-full bg-blue-500/20 animate-ping"}),(0,n.jsx)("div",{className:"h-2.5 w-2.5 rounded-full bg-blue-500",title:"Awaiting input"})]}):"running"===e.status?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("div",{className:"absolute h-4 w-4 rounded-full bg-yellow-500/20 animate-ping"}),(0,n.jsx)("div",{className:"h-2.5 w-2.5 rounded-full bg-yellow-500",title:"Working"})]}):(0,n.jsx)("div",{className:"h-2.5 w-2.5 rounded-full bg-muted-foreground/30"})}),(0,n.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,n.jsxs)("div",{className:"truncate font-medium",children:[e.repo,"#",e.number]}),e.title&&(0,n.jsx)("div",{className:"truncate text-xs text-muted-foreground",children:e.title})]}),(0,n.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:t=>{var s;return s=e.id,void(t.stopPropagation(),i(e=>e.filter(e=>e.id!==s)),O(s))},title:"Remove",children:(0,n.jsx)(o.A,{className:"h-4 w-4"})})]},e.id))})}let H=new Set(["pr-files"]);function K({sections:e,exclude:t}){let s=(0,v.useMemo)(()=>Array.from(e.values()).filter(e=>!t?.has(e.id)).sort((e,t)=>(e.order??50)-(t.order??50)),[e,t]);return(0,n.jsx)(n.Fragment,{children:s.map(e=>(0,n.jsx)(S,{id:e.id,title:e.title,badge:e.badge,children:e.content},e.id))})}function V({cwd:e}){let t=(0,b.useRouter)(),s=(0,v.useCallback)(s=>{t.push(`/files?cwd=${encodeURIComponent(e)}&file=${encodeURIComponent(s)}`)},[t,e]);return(0,n.jsx)(y.h,{cwd:e,selectedFile:null,onSelectFile:s})}function X({cwd:e,sessionId:t}){let s=(0,b.useRouter)(),r=(0,b.usePathname)(),[a,l]=(0,v.useState)(""),[i,o]=(0,v.useState)(null),[c,d]=(0,v.useState)([]);(0,v.useEffect)(()=>{let t=!1,s=()=>{fetch(`/api/git/status?cwd=${encodeURIComponent(e)}`).then(e=>{if(!e.ok)throw Error("Not a git repository");return e.json()}).then(e=>{t||(d(e.files||[]),l(e.branch||""),o(null))}).catch(e=>{t||(d([]),l(""),o(e instanceof Error?e.message:"Failed to load"))})};s();let n=setInterval(s,3e4);return()=>{t=!0,clearInterval(n)}},[e,r]);let u=t?`&sessionId=${encodeURIComponent(t)}`:"",m=c.reduce((e,t)=>e+t.additions,0),g=c.reduce((e,t)=>e+t.deletions,0);return(0,n.jsx)(S,{id:"session-changes",title:"Session Changes",badge:c.length>0?String(c.length):void 0,defaultOpen:!1,children:i?(0,n.jsx)("p",{className:"px-3 py-3 text-sm text-muted-foreground",children:i}):0===c.length?(0,n.jsx)("p",{className:"px-3 py-3 text-sm text-muted-foreground",children:"Working tree clean"}):(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)("div",{className:"px-3 py-1.5 text-xs text-muted-foreground flex items-center gap-2 border-b",children:[a&&(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("span",{children:"Branch:"}),(0,n.jsx)("span",{className:"font-mono font-bold text-foreground",children:a}),(0,n.jsx)("span",{className:"mx-0.5",children:"\xb7"})]}),(0,n.jsxs)("span",{children:[c.length," changed"]}),m>0&&(0,n.jsxs)("span",{className:"text-green-500",children:["+",m]}),g>0&&(0,n.jsxs)("span",{className:"text-red-500",children:["-",g]})]}),c.map(t=>(0,n.jsxs)("button",{type:"button",onClick:()=>s.push(`/changes?cwd=${encodeURIComponent(e)}${u}`),className:"w-full flex items-center gap-2 px-3 py-1 text-left text-xs hover:bg-accent/50 transition-colors",children:[function(e){switch(e){case"added":case"untracked":return(0,n.jsx)(x.A,{className:"h-3.5 w-3.5 text-green-500"});case"deleted":return(0,n.jsx)(h.A,{className:"h-3.5 w-3.5 text-red-500"});case"renamed":return(0,n.jsx)(f.A,{className:"h-3.5 w-3.5 text-blue-500"});default:return(0,n.jsx)(p.A,{className:"h-3.5 w-3.5 text-yellow-500"})}}(t.status),(0,n.jsx)("span",{className:"font-mono truncate flex-1 min-w-0",children:t.path}),(0,n.jsxs)("span",{className:"shrink-0 flex gap-1 text-[10px] font-mono",children:[t.additions>0&&(0,n.jsxs)("span",{className:"text-green-500",children:["+",t.additions]}),t.deletions>0&&(0,n.jsxs)("span",{className:"text-red-500",children:["-",t.deletions]})]})]},t.path))]})})}function Y({onClick:e}){let{count:t}=(0,$.wA)();return(0,n.jsxs)(E.$,{variant:"ghost",size:"icon",className:"shrink-0 h-8 w-8 text-muted-foreground hover:text-foreground relative",onClick:e,title:"Scheduled Jobs",children:[(0,n.jsx)(g.A,{className:"h-4 w-4"}),t>0&&(0,n.jsx)("span",{className:"absolute top-1 right-1 h-2 w-2 rounded-full bg-red-500"})]})}function Z({onClick:e}){let[t,s]=(0,v.useState)(0),r=(0,b.usePathname)();return(0,v.useEffect)(()=>{let e=()=>{fetch("/api/inbox?count=true").then(e=>e.json()).then(e=>s(e.unread||0)).catch(()=>{})};e();let t=setInterval(e,15e3);return()=>clearInterval(t)},[r]),(0,n.jsxs)(E.$,{variant:"ghost",size:"icon",className:"shrink-0 h-8 w-8 text-muted-foreground hover:text-foreground relative",onClick:e,title:"Inbox",children:[(0,n.jsx)(j.A,{className:"h-4 w-4"}),t>0&&(0,n.jsx)("span",{className:"absolute top-1 right-1 h-2 w-2 rounded-full bg-blue-500"})]})}},81477:(e,t,s)=>{s.d(t,{BT:()=>c,Wu:()=>d,ZB:()=>o,Zp:()=>l,aR:()=>i});var n=s(95155),r=s(12115),a=s(40980);let l=r.forwardRef(({className:e,...t},s)=>(0,n.jsx)("div",{ref:s,className:(0,a.cn)("rounded-lg border bg-card text-card-foreground shadow-sm",e),...t}));l.displayName="Card";let i=r.forwardRef(({className:e,...t},s)=>(0,n.jsx)("div",{ref:s,className:(0,a.cn)("flex flex-col space-y-1.5 p-6",e),...t}));i.displayName="CardHeader";let o=r.forwardRef(({className:e,...t},s)=>(0,n.jsx)("div",{ref:s,className:(0,a.cn)("text-2xl font-semibold leading-none tracking-tight",e),...t}));o.displayName="CardTitle";let c=r.forwardRef(({className:e,...t},s)=>(0,n.jsx)("div",{ref:s,className:(0,a.cn)("text-sm text-muted-foreground",e),...t}));c.displayName="CardDescription";let d=r.forwardRef(({className:e,...t},s)=>(0,n.jsx)("div",{ref:s,className:(0,a.cn)("p-6 pt-0",e),...t}));d.displayName="CardContent"},89239:(e,t,s)=>{s.d(t,{$:()=>c});var n=s(95155),r=s(54850),a=s(18460),l=s(12115),i=s(40980);let o=(0,a.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"}}),c=l.forwardRef(({className:e,variant:t,size:s,asChild:a=!1,...l},c)=>{let d=a?r.DX:"button";return(0,n.jsx)(d,{className:(0,i.cn)(o({variant:t,size:s,className:e})),ref:c,...l})});c.displayName="Button"},89323:(e,t,s)=>{s.d(t,{f:()=>l,h:()=>i});var n=s(95155),r=s(12115);let a=(0,r.createContext)(null);function l({children:e}){let[t,s]=(0,r.useState)(!1),i=(0,r.useRef)(null),o=(0,r.useRef)(new Set),c=(0,r.useRef)(void 0),d=(0,r.useRef)(500),u=(0,r.useRef)([]),m=(0,r.useRef)(!1),x=(0,r.useRef)(!0),h=(0,r.useRef)(void 0),f=(0,r.useRef)(null),p=(0,r.useRef)(void 0),g=(0,r.useRef)(!1),j=(0,r.useRef)(void 0),b=(0,r.useCallback)(()=>{if(!x.current)return;clearTimeout(c.current);let e="visible"===document.visibilityState?5e3:3e4,t=Math.min(d.current,e);console.log(`[ws] reconnect scheduled in ${t}ms`),c.current=setTimeout(()=>{d.current=Math.min(2*d.current,3e4),h.current?.()},t)},[]),v=(0,r.useCallback)(async()=>{if(m.current||i.current)return void console.log(`[ws] connect skipped (connecting=${m.current}, hasWs=${!!i.current})`);m.current=!0;let e=performance.now();console.log("[ws] connecting...");let t=f.current;if(t)console.log("[ws] using cached token");else try{let s=await fetch("/api/auth/ws-token");if(!s.ok){console.warn(`[ws] ws-token fetch failed (${s.status})`),m.current=!1,b();return}t=(await s.json()).token,console.log(`[ws] token fetched in ${(performance.now()-e).toFixed(0)}ms`)}catch(e){console.warn("[ws] ws-token fetch error:",e),m.current=!1,b();return}if(i.current||!x.current){console.log(`[ws] connect aborted (hasWs=${!!i.current}, mounted=${x.current})`),m.current=!1;return}let n="https:"===window.location.protocol?"wss:":"ws:",r=new WebSocket(`${n}//${window.location.host}/ws?token=${t}`);i.current=r,m.current=!1,r.onopen=()=>{for(let n of(console.log(`[ws] connected in ${(performance.now()-e).toFixed(0)}ms`),s(!0),f.current=t,d.current=500,u.current))r.send(JSON.stringify(n));u.current=[]},r.onmessage=e=>{let t=JSON.parse(e.data);for(let e of("pong"===t.type&&(clearTimeout(p.current),g.current=!1),"message:ack"===t.type&&y.current.length>0&&(y.current=[]),o.current))e(t)},r.onclose=e=>{console.log(`[ws] closed (code=${e.code}), reconnecting immediately`),s(!1),i.current===r&&(i.current=null),y.current.length>0&&(u.current.push(...y.current),y.current=[]),(1008===e.code||4401===e.code)&&(f.current=null),d.current=500,h.current?.()},r.onerror=()=>{r.close()}},[b]);h.current=v,(0,r.useEffect)(()=>(x.current=!0,v(),()=>{x.current=!1,clearTimeout(c.current),clearInterval(j.current),i.current&&(i.current.onclose=null,i.current.close(),i.current=null),m.current=!1}),[v]);let w=(0,r.useCallback)(()=>{let e=i.current;e&&(e.onclose=null,e.onerror=null,e.close(),i.current=null),s(!1),d.current=500,h.current?.()},[]);(0,r.useEffect)(()=>{let e=()=>{clearInterval(j.current),"visible"===document.visibilityState&&(j.current=setInterval(()=>{if(!i.current&&!m.current){console.log("[ws] health: no connection, forcing reconnect"),clearTimeout(c.current),d.current=500,h.current?.();return}let e=i.current;if(e){if(e.readyState!==WebSocket.OPEN){console.log(`[ws] health: dead connection (readyState=${e.readyState}), tearing down`),w();return}if(!g.current){g.current=!0;try{e.send(JSON.stringify({type:"ping"}))}catch{g.current=!1,w();return}clearTimeout(p.current),p.current=setTimeout(()=>{g.current=!1,w()},2e3)}}},3e3))},t=()=>{if("visible"===document.visibilityState){if(console.log(`[ws] page visible (hasWs=${!!i.current}, connecting=${m.current})`),e(),!i.current&&!m.current){console.log("[ws] no connection on visibility, reconnecting now"),clearTimeout(c.current),d.current=500,h.current?.();return}let t=i.current;if(t){if(t.readyState!==WebSocket.OPEN)return void w();if(!g.current){g.current=!0;try{t.send(JSON.stringify({type:"ping"}))}catch{g.current=!1,w();return}clearTimeout(p.current),p.current=setTimeout(()=>{g.current=!1,w()},2e3)}}}else clearInterval(j.current)};return document.addEventListener("visibilitychange",t),e(),()=>{document.removeEventListener("visibilitychange",t),clearInterval(j.current),clearTimeout(p.current)}},[w]);let y=(0,r.useRef)([]),N=(0,r.useCallback)(e=>{i.current?.readyState===WebSocket.OPEN?("message:send"===e.type&&y.current.push(e),i.current.send(JSON.stringify(e))):u.current.push(e)},[]),k=(0,r.useCallback)(e=>(o.current.add(e),()=>{o.current.delete(e)}),[]);return(0,n.jsx)(a.Provider,{value:{connected:t,send:N,subscribe:k},children:e})}function i(){let e=(0,r.useContext)(a);if(!e)throw Error("useWebSocket must be used within WebSocketProvider");return e}},89723:(e,t,s)=>{s.d(t,{G:()=>d});var n=s(95155),r=s(9005),a=s(12115),l=s(64233),i=s(89239),o=s(81477),c=s(53972);function d({open:e,onOpenChange:t,content:s,filePath:u}){let m=(0,a.useCallback)(()=>t(!1),[t]);(0,a.useEffect)(()=>{if(!e)return;let t=e=>{"Escape"===e.key&&(e.preventDefault(),e.stopPropagation(),m())};return window.addEventListener("keydown",t,!0),()=>window.removeEventListener("keydown",t,!0)},[e,m]);let x=(0,a.useCallback)(e=>{e.target===e.currentTarget&&m()},[m]);if(!e)return null;let h=(0,c.uk)(u)||u;return(0,n.jsx)("div",{className:"fixed inset-0 z-50 bg-black/50 flex items-center justify-center p-4",onClick:x,children:(0,n.jsxs)(o.Zp,{className:"w-full max-w-3xl flex flex-col",style:{maxHeight:"calc(100dvh - 2rem)"},children:[(0,n.jsxs)("div",{className:"flex items-center justify-between px-4 py-2 border-b shrink-0",children:[(0,n.jsx)("span",{className:"text-sm font-medium text-muted-foreground",children:h}),(0,n.jsx)(i.$,{variant:"ghost",size:"icon",className:"h-6 w-6",onClick:m,children:(0,n.jsx)(r.A,{className:"h-4 w-4"})})]}),(0,n.jsx)(l.Y,{content:s,className:"flex-1 min-h-0 overflow-y-auto p-4"})]})})}},96301:(e,t,s)=>{s.d(t,{h:()=>g});var n=s(95155),r=s(92571),a=s(12363),l=s(76721),i=s(95660),o=s(14225),c=s(9107),d=s(12115),u=s(40980);let m=new Map;async function x(e){let t=m.get(e);if(t)return t;let s=new URLSearchParams({path:e,includeFiles:"true",showHidden:"true"}),n=await fetch(`/api/filesystem/browse?${s}`);if(!n.ok)return[];let r=((await n.json()).entries||[]).map(e=>({name:e.name,path:e.path,type:e.type}));return m.set(e,r),r}let h=new Map;function f(e){let t=h.get(e);return t||(t=new Set,h.set(e,t)),t}function p({node:e,depth:t,selectedFile:s,onSelectFile:h,expandedSet:f,onToggleExpand:g}){let j="directory"===e.type,b=f.has(e.path),[v,w]=(0,d.useState)(m.get(e.path)||[]),[y,N]=(0,d.useState)(!1),k=(0,d.useCallback)(()=>{j?(g(e.path),f.has(e.path)||m.has(e.path)||(N(!0),x(e.path).then(e=>{w(e),N(!1)}))):h(e.path)},[j,e.path,g,h,f]);return(0,d.useEffect)(()=>{if(j&&b&&0===v.length&&!y){let t=m.get(e.path);t?w(t):(N(!0),x(e.path).then(e=>{w(e),N(!1)}))}},[j,b,v.length,y,e.path]),(0,n.jsxs)(n.Fragment,{children:[(0,n.jsxs)("div",{className:(0,u.cn)("flex items-center gap-1 px-2 py-1 text-sm cursor-pointer hover:bg-muted/50",!j&&s===e.path&&"bg-muted"),style:{paddingLeft:`${16*t+8}px`},onClick:k,children:[j?(0,n.jsxs)(n.Fragment,{children:[y?(0,n.jsx)(r.A,{className:"h-3.5 w-3.5 shrink-0 animate-spin text-muted-foreground"}):b?(0,n.jsx)(a.A,{className:"h-3.5 w-3.5 shrink-0 text-muted-foreground"}):(0,n.jsx)(l.A,{className:"h-3.5 w-3.5 shrink-0 text-muted-foreground"}),b?(0,n.jsx)(i.A,{className:"h-3.5 w-3.5 shrink-0 text-muted-foreground"}):(0,n.jsx)(o.A,{className:"h-3.5 w-3.5 shrink-0 text-muted-foreground"})]}):(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("span",{className:"w-3.5 shrink-0"}),(0,n.jsx)(c.A,{className:"h-3.5 w-3.5 shrink-0 text-muted-foreground"})]}),(0,n.jsx)("span",{className:"font-mono text-xs truncate",children:e.name})]}),j&&b&&v.map(e=>(0,n.jsx)(p,{node:e,depth:t+1,selectedFile:s,onSelectFile:h,expandedSet:f,onToggleExpand:g},e.path))]})}function g({cwd:e,selectedFile:t,onSelectFile:s}){let[a,l]=(0,d.useState)(m.get(e)||[]),[i,o]=(0,d.useState)(0===a.length),[c,u]=(0,d.useState)(()=>f(e)),j=(0,d.useRef)(e);(0,d.useEffect)(()=>{j.current=e,u(f(e));let t=m.get(e);t?(l(t),o(!1)):(o(!0),x(e).then(t=>{j.current===e&&(l(t),o(!1))}))},[e]);let b=(0,d.useCallback)(t=>{u(s=>{let n=new Set(s);return n.has(t)?n.delete(t):n.add(t),h.set(e,n),n})},[e]);return i?(0,n.jsx)("div",{className:"flex items-center justify-center py-12",children:(0,n.jsx)(r.A,{className:"h-5 w-5 animate-spin text-muted-foreground"})}):0===a.length?(0,n.jsx)("div",{className:"flex items-center justify-center py-12 text-sm text-muted-foreground",children:"Empty directory"}):(0,n.jsx)("div",{className:"py-1",children:a.map(e=>(0,n.jsx)(p,{node:e,depth:0,selectedFile:t,onSelectFile:s,expandedSet:c,onToggleExpand:b},e.path))})}}}]);