@alexjbarnes/cockpit 0.1.1 → 0.2.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 (560) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/app-path-routes-manifest.json +12 -0
  3. package/.next/build-manifest.json +3 -3
  4. package/.next/prerender-manifest.json +51 -3
  5. package/.next/react-loadable-manifest.json +2 -2
  6. package/.next/routes-manifest.json +76 -0
  7. package/.next/server/app/(app)/agents/[name]/page.js +3 -3
  8. package/.next/server/app/(app)/agents/[name]/page.js.nft.json +1 -1
  9. package/.next/server/app/(app)/agents/[name]/page_client-reference-manifest.js +1 -1
  10. package/.next/server/app/(app)/agents/page.js +2 -2
  11. package/.next/server/app/(app)/agents/page.js.nft.json +1 -1
  12. package/.next/server/app/(app)/agents/page_client-reference-manifest.js +1 -1
  13. package/.next/server/app/(app)/changes/page.js +2 -2
  14. package/.next/server/app/(app)/changes/page.js.nft.json +1 -1
  15. package/.next/server/app/(app)/changes/page_client-reference-manifest.js +1 -1
  16. package/.next/server/app/(app)/claude-md/edit/page.js +2 -2
  17. package/.next/server/app/(app)/claude-md/edit/page.js.nft.json +1 -1
  18. package/.next/server/app/(app)/claude-md/edit/page_client-reference-manifest.js +1 -1
  19. package/.next/server/app/(app)/claude-md/page.js +2 -2
  20. package/.next/server/app/(app)/claude-md/page.js.nft.json +1 -1
  21. package/.next/server/app/(app)/claude-md/page_client-reference-manifest.js +1 -1
  22. package/.next/server/app/(app)/commands/[name]/page.js +3 -3
  23. package/.next/server/app/(app)/commands/[name]/page.js.nft.json +1 -1
  24. package/.next/server/app/(app)/commands/[name]/page_client-reference-manifest.js +1 -1
  25. package/.next/server/app/(app)/commands/page.js +2 -2
  26. package/.next/server/app/(app)/commands/page.js.nft.json +1 -1
  27. package/.next/server/app/(app)/commands/page_client-reference-manifest.js +1 -1
  28. package/.next/server/app/(app)/files/page.js +2 -2
  29. package/.next/server/app/(app)/files/page.js.nft.json +1 -1
  30. package/.next/server/app/(app)/files/page_client-reference-manifest.js +1 -1
  31. package/.next/server/app/(app)/hooks/[event]/page.js +3 -3
  32. package/.next/server/app/(app)/hooks/[event]/page.js.nft.json +1 -1
  33. package/.next/server/app/(app)/hooks/[event]/page_client-reference-manifest.js +1 -1
  34. package/.next/server/app/(app)/hooks/page.js +2 -2
  35. package/.next/server/app/(app)/hooks/page.js.nft.json +1 -1
  36. package/.next/server/app/(app)/hooks/page_client-reference-manifest.js +1 -1
  37. package/.next/server/app/(app)/inbox/[id]/page.js +2 -0
  38. package/.next/server/app/(app)/inbox/[id]/page.js.nft.json +1 -0
  39. package/.next/server/app/(app)/inbox/[id]/page_client-reference-manifest.js +1 -0
  40. package/.next/server/app/(app)/inbox/page.js +2 -0
  41. package/.next/server/app/(app)/inbox/page.js.nft.json +1 -0
  42. package/.next/server/app/(app)/inbox/page_client-reference-manifest.js +1 -0
  43. package/.next/server/app/(app)/jobs/[id]/edit/page.js +2 -2
  44. package/.next/server/app/(app)/jobs/[id]/edit/page.js.nft.json +1 -1
  45. package/.next/server/app/(app)/jobs/[id]/edit/page_client-reference-manifest.js +1 -1
  46. package/.next/server/app/(app)/jobs/[id]/page.js +2 -2
  47. package/.next/server/app/(app)/jobs/[id]/page.js.nft.json +1 -1
  48. package/.next/server/app/(app)/jobs/[id]/page_client-reference-manifest.js +1 -1
  49. package/.next/server/app/(app)/jobs/[id]/runs/[runId]/page.js +2 -2
  50. package/.next/server/app/(app)/jobs/[id]/runs/[runId]/page.js.nft.json +1 -1
  51. package/.next/server/app/(app)/jobs/[id]/runs/[runId]/page_client-reference-manifest.js +1 -1
  52. package/.next/server/app/(app)/jobs/page.js +2 -2
  53. package/.next/server/app/(app)/jobs/page.js.nft.json +1 -1
  54. package/.next/server/app/(app)/jobs/page_client-reference-manifest.js +1 -1
  55. package/.next/server/app/(app)/mcp-servers/[name]/page.js +2 -2
  56. package/.next/server/app/(app)/mcp-servers/[name]/page.js.nft.json +1 -1
  57. package/.next/server/app/(app)/mcp-servers/[name]/page_client-reference-manifest.js +1 -1
  58. package/.next/server/app/(app)/mcp-servers/page.js +2 -2
  59. package/.next/server/app/(app)/mcp-servers/page.js.nft.json +1 -1
  60. package/.next/server/app/(app)/mcp-servers/page_client-reference-manifest.js +1 -1
  61. package/.next/server/app/(app)/page.js +2 -2
  62. package/.next/server/app/(app)/page.js.nft.json +1 -1
  63. package/.next/server/app/(app)/page_client-reference-manifest.js +1 -1
  64. package/.next/server/app/(app)/reviews/[owner]/[repo]/[number]/page.js +9 -9
  65. package/.next/server/app/(app)/reviews/[owner]/[repo]/[number]/page.js.nft.json +1 -1
  66. package/.next/server/app/(app)/reviews/[owner]/[repo]/[number]/page_client-reference-manifest.js +1 -1
  67. package/.next/server/app/(app)/reviews/[owner]/[repo]/page.js +2 -2
  68. package/.next/server/app/(app)/reviews/[owner]/[repo]/page.js.nft.json +1 -1
  69. package/.next/server/app/(app)/reviews/[owner]/[repo]/page_client-reference-manifest.js +1 -1
  70. package/.next/server/app/(app)/reviews/page.js +2 -2
  71. package/.next/server/app/(app)/reviews/page.js.nft.json +1 -1
  72. package/.next/server/app/(app)/reviews/page_client-reference-manifest.js +1 -1
  73. package/.next/server/app/(app)/sessions/[id]/page.js +2 -2
  74. package/.next/server/app/(app)/sessions/[id]/page.js.nft.json +1 -1
  75. package/.next/server/app/(app)/sessions/[id]/page_client-reference-manifest.js +1 -1
  76. package/.next/server/app/(app)/settings/notifications/page.js +2 -0
  77. package/.next/server/app/(app)/settings/notifications/page.js.nft.json +1 -0
  78. package/.next/server/app/(app)/settings/notifications/page_client-reference-manifest.js +1 -0
  79. package/.next/server/app/(app)/settings/page.js +2 -2
  80. package/.next/server/app/(app)/settings/page.js.nft.json +1 -1
  81. package/.next/server/app/(app)/settings/page_client-reference-manifest.js +1 -1
  82. package/.next/server/app/(app)/skills/[name]/page.js +3 -3
  83. package/.next/server/app/(app)/skills/[name]/page.js.nft.json +1 -1
  84. package/.next/server/app/(app)/skills/[name]/page_client-reference-manifest.js +1 -1
  85. package/.next/server/app/(app)/skills/page.js +2 -2
  86. package/.next/server/app/(app)/skills/page.js.nft.json +1 -1
  87. package/.next/server/app/(app)/skills/page_client-reference-manifest.js +1 -1
  88. package/.next/server/app/_global-error/page.js +3 -3
  89. package/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  90. package/.next/server/app/_global-error.html +1 -1
  91. package/.next/server/app/_global-error.rsc +1 -1
  92. package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  93. package/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  94. package/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  95. package/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  96. package/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  97. package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  98. package/.next/server/app/_not-found/page.js +2 -2
  99. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  100. package/.next/server/app/_not-found.html +1 -1
  101. package/.next/server/app/_not-found.rsc +2 -2
  102. package/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
  103. package/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  104. package/.next/server/app/_not-found.segments/_index.segment.rsc +2 -2
  105. package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  106. package/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  107. package/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  108. package/.next/server/app/agents.html +1 -1
  109. package/.next/server/app/agents.rsc +4 -4
  110. package/.next/server/app/agents.segments/!KGFwcCk/agents/__PAGE__.segment.rsc +2 -2
  111. package/.next/server/app/agents.segments/!KGFwcCk/agents.segment.rsc +1 -1
  112. package/.next/server/app/agents.segments/!KGFwcCk.segment.rsc +2 -2
  113. package/.next/server/app/agents.segments/_full.segment.rsc +4 -4
  114. package/.next/server/app/agents.segments/_head.segment.rsc +1 -1
  115. package/.next/server/app/agents.segments/_index.segment.rsc +2 -2
  116. package/.next/server/app/agents.segments/_tree.segment.rsc +2 -2
  117. package/.next/server/app/api/agents/[name]/route.js +1 -1
  118. package/.next/server/app/api/agents/route.js +1 -1
  119. package/.next/server/app/api/auth/check/route.js +1 -1
  120. package/.next/server/app/api/auth/login/route.js +1 -1
  121. package/.next/server/app/api/auth/setup/route.js +1 -1
  122. package/.next/server/app/api/auth/ws-token/route.js +1 -1
  123. package/.next/server/app/api/btw/route.js +2 -2
  124. package/.next/server/app/api/claude-md/route.js +1 -1
  125. package/.next/server/app/api/commands/[name]/route.js +1 -1
  126. package/.next/server/app/api/commands/route.js +1 -1
  127. package/.next/server/app/api/defaults/route.js +1 -1
  128. package/.next/server/app/api/filesystem/browse/route.js +1 -1
  129. package/.next/server/app/api/filesystem/files/route.js +1 -1
  130. package/.next/server/app/api/filesystem/mkdir/route.js +1 -1
  131. package/.next/server/app/api/filesystem/read/route.js +1 -1
  132. package/.next/server/app/api/git/clone/route.js +1 -1
  133. package/.next/server/app/api/git/commit/route.js +1 -1
  134. package/.next/server/app/api/git/diff/route.js +1 -1
  135. package/.next/server/app/api/git/discard/route.js +1 -1
  136. package/.next/server/app/api/git/generate-message/route.js +2 -2
  137. package/.next/server/app/api/git/push/route.js +1 -1
  138. package/.next/server/app/api/git/status/route.js +1 -1
  139. package/.next/server/app/api/github/file-content/route.js +1 -1
  140. package/.next/server/app/api/github/orgs/route.js +1 -1
  141. package/.next/server/app/api/github/prs/checks/route.js +1 -1
  142. package/.next/server/app/api/github/prs/diff/route.js +1 -1
  143. package/.next/server/app/api/github/prs/review/route.js +1 -1
  144. package/.next/server/app/api/github/prs/route.js +1 -1
  145. package/.next/server/app/api/github/prs/view/route.js +1 -1
  146. package/.next/server/app/api/github/repos/route.js +1 -1
  147. package/.next/server/app/api/github/review-session/route.js +1 -1
  148. package/.next/server/app/api/health/route.js +1 -1
  149. package/.next/server/app/api/hooks/route.js +1 -1
  150. package/.next/server/app/api/inbox/[id]/route.js +5 -0
  151. package/.next/server/app/api/inbox/[id]/route.js.nft.json +1 -0
  152. package/.next/server/app/api/inbox/[id]/route_client-reference-manifest.js +1 -0
  153. package/.next/server/app/api/inbox/route.js +5 -0
  154. package/.next/server/app/api/inbox/route.js.nft.json +1 -0
  155. package/.next/server/app/api/inbox/route_client-reference-manifest.js +1 -0
  156. package/.next/server/app/api/jobs/[id]/route.js +1 -1
  157. package/.next/server/app/api/jobs/[id]/runs/[runId]/route.js +1 -1
  158. package/.next/server/app/api/jobs/[id]/runs/[runId]/transcript/route.js +1 -1
  159. package/.next/server/app/api/jobs/[id]/runs/route.js +1 -1
  160. package/.next/server/app/api/jobs/[id]/trigger/route.js +1 -1
  161. package/.next/server/app/api/jobs/mcp-discover/route.js +1 -1
  162. package/.next/server/app/api/jobs/route.js +1 -1
  163. package/.next/server/app/api/jobs/status/route.js +1 -1
  164. package/.next/server/app/api/mcp-servers/[name]/route.js +1 -1
  165. package/.next/server/app/api/mcp-servers/[name]/test/route.js +1 -1
  166. package/.next/server/app/api/mcp-servers/route.js +1 -1
  167. package/.next/server/app/api/notifications/route.js +1 -0
  168. package/.next/server/app/api/notifications/route.js.nft.json +1 -0
  169. package/.next/server/app/api/notifications/route_client-reference-manifest.js +1 -0
  170. package/.next/server/app/api/notifications/test/route.js +5 -0
  171. package/.next/server/app/api/notifications/test/route.js.nft.json +1 -0
  172. package/.next/server/app/api/notifications/test/route_client-reference-manifest.js +1 -0
  173. package/.next/server/app/api/reviews/pinned/route.js +1 -0
  174. package/.next/server/app/api/reviews/pinned/route.js.nft.json +1 -0
  175. package/.next/server/app/api/reviews/pinned/route_client-reference-manifest.js +1 -0
  176. package/.next/server/app/api/sessions/[id]/context/route.js +1 -1
  177. package/.next/server/app/api/sessions/[id]/mcp/route.js +1 -1
  178. package/.next/server/app/api/sessions/[id]/route.js +1 -1
  179. package/.next/server/app/api/sessions/[id]/search/route.js +1 -1
  180. package/.next/server/app/api/sessions/bulk-delete/route.js +1 -0
  181. package/.next/server/app/api/sessions/bulk-delete/route.js.nft.json +1 -0
  182. package/.next/server/app/api/sessions/bulk-delete/route_client-reference-manifest.js +1 -0
  183. package/.next/server/app/api/sessions/by-ids/route.js +1 -0
  184. package/.next/server/app/api/sessions/by-ids/route.js.nft.json +1 -0
  185. package/.next/server/app/api/sessions/by-ids/route_client-reference-manifest.js +1 -0
  186. package/.next/server/app/api/sessions/group/route.js +1 -0
  187. package/.next/server/app/api/sessions/group/route.js.nft.json +1 -0
  188. package/.next/server/app/api/sessions/group/route_client-reference-manifest.js +1 -0
  189. package/.next/server/app/api/sessions/pinned/route.js +1 -1
  190. package/.next/server/app/api/sessions/route.js +1 -1
  191. package/.next/server/app/api/sessions/search/route.js +1 -0
  192. package/.next/server/app/api/sessions/search/route.js.nft.json +1 -0
  193. package/.next/server/app/api/sessions/search/route_client-reference-manifest.js +1 -0
  194. package/.next/server/app/api/skills/[name]/route.js +1 -1
  195. package/.next/server/app/api/skills/route.js +1 -1
  196. package/.next/server/app/api/usage/route.js +1 -1
  197. package/.next/server/app/api/version/cockpit/route.js +1 -1
  198. package/.next/server/app/api/version/route.js +2 -2
  199. package/.next/server/app/changes.html +1 -1
  200. package/.next/server/app/changes.rsc +4 -4
  201. package/.next/server/app/changes.segments/!KGFwcCk/changes/__PAGE__.segment.rsc +2 -2
  202. package/.next/server/app/changes.segments/!KGFwcCk/changes.segment.rsc +1 -1
  203. package/.next/server/app/changes.segments/!KGFwcCk.segment.rsc +2 -2
  204. package/.next/server/app/changes.segments/_full.segment.rsc +4 -4
  205. package/.next/server/app/changes.segments/_head.segment.rsc +1 -1
  206. package/.next/server/app/changes.segments/_index.segment.rsc +2 -2
  207. package/.next/server/app/changes.segments/_tree.segment.rsc +2 -2
  208. package/.next/server/app/claude-md/edit.html +1 -1
  209. package/.next/server/app/claude-md/edit.rsc +4 -4
  210. package/.next/server/app/claude-md/edit.segments/!KGFwcCk/claude-md/edit/__PAGE__.segment.rsc +2 -2
  211. package/.next/server/app/claude-md/edit.segments/!KGFwcCk/claude-md/edit.segment.rsc +1 -1
  212. package/.next/server/app/claude-md/edit.segments/!KGFwcCk/claude-md.segment.rsc +1 -1
  213. package/.next/server/app/claude-md/edit.segments/!KGFwcCk.segment.rsc +2 -2
  214. package/.next/server/app/claude-md/edit.segments/_full.segment.rsc +4 -4
  215. package/.next/server/app/claude-md/edit.segments/_head.segment.rsc +1 -1
  216. package/.next/server/app/claude-md/edit.segments/_index.segment.rsc +2 -2
  217. package/.next/server/app/claude-md/edit.segments/_tree.segment.rsc +2 -2
  218. package/.next/server/app/claude-md.html +1 -1
  219. package/.next/server/app/claude-md.rsc +4 -4
  220. package/.next/server/app/claude-md.segments/!KGFwcCk/claude-md/__PAGE__.segment.rsc +2 -2
  221. package/.next/server/app/claude-md.segments/!KGFwcCk/claude-md.segment.rsc +1 -1
  222. package/.next/server/app/claude-md.segments/!KGFwcCk.segment.rsc +2 -2
  223. package/.next/server/app/claude-md.segments/_full.segment.rsc +4 -4
  224. package/.next/server/app/claude-md.segments/_head.segment.rsc +1 -1
  225. package/.next/server/app/claude-md.segments/_index.segment.rsc +2 -2
  226. package/.next/server/app/claude-md.segments/_tree.segment.rsc +2 -2
  227. package/.next/server/app/commands.html +1 -1
  228. package/.next/server/app/commands.rsc +4 -4
  229. package/.next/server/app/commands.segments/!KGFwcCk/commands/__PAGE__.segment.rsc +2 -2
  230. package/.next/server/app/commands.segments/!KGFwcCk/commands.segment.rsc +1 -1
  231. package/.next/server/app/commands.segments/!KGFwcCk.segment.rsc +2 -2
  232. package/.next/server/app/commands.segments/_full.segment.rsc +4 -4
  233. package/.next/server/app/commands.segments/_head.segment.rsc +1 -1
  234. package/.next/server/app/commands.segments/_index.segment.rsc +2 -2
  235. package/.next/server/app/commands.segments/_tree.segment.rsc +2 -2
  236. package/.next/server/app/files.html +1 -1
  237. package/.next/server/app/files.rsc +4 -4
  238. package/.next/server/app/files.segments/!KGFwcCk/files/__PAGE__.segment.rsc +2 -2
  239. package/.next/server/app/files.segments/!KGFwcCk/files.segment.rsc +1 -1
  240. package/.next/server/app/files.segments/!KGFwcCk.segment.rsc +2 -2
  241. package/.next/server/app/files.segments/_full.segment.rsc +4 -4
  242. package/.next/server/app/files.segments/_head.segment.rsc +1 -1
  243. package/.next/server/app/files.segments/_index.segment.rsc +2 -2
  244. package/.next/server/app/files.segments/_tree.segment.rsc +2 -2
  245. package/.next/server/app/hooks.html +1 -1
  246. package/.next/server/app/hooks.rsc +4 -4
  247. package/.next/server/app/hooks.segments/!KGFwcCk/hooks/__PAGE__.segment.rsc +2 -2
  248. package/.next/server/app/hooks.segments/!KGFwcCk/hooks.segment.rsc +1 -1
  249. package/.next/server/app/hooks.segments/!KGFwcCk.segment.rsc +2 -2
  250. package/.next/server/app/hooks.segments/_full.segment.rsc +4 -4
  251. package/.next/server/app/hooks.segments/_head.segment.rsc +1 -1
  252. package/.next/server/app/hooks.segments/_index.segment.rsc +2 -2
  253. package/.next/server/app/hooks.segments/_tree.segment.rsc +2 -2
  254. package/.next/server/app/inbox.html +1 -0
  255. package/.next/server/app/inbox.meta +16 -0
  256. package/.next/server/app/inbox.rsc +23 -0
  257. package/.next/server/app/inbox.segments/!KGFwcCk/inbox/__PAGE__.segment.rsc +9 -0
  258. package/.next/server/app/inbox.segments/!KGFwcCk/inbox.segment.rsc +5 -0
  259. package/.next/server/app/inbox.segments/!KGFwcCk.segment.rsc +7 -0
  260. package/.next/server/app/inbox.segments/_full.segment.rsc +23 -0
  261. package/.next/server/app/inbox.segments/_head.segment.rsc +6 -0
  262. package/.next/server/app/inbox.segments/_index.segment.rsc +5 -0
  263. package/.next/server/app/inbox.segments/_tree.segment.rsc +2 -0
  264. package/.next/server/app/index.html +1 -1
  265. package/.next/server/app/index.rsc +4 -4
  266. package/.next/server/app/index.segments/!KGFwcCk/__PAGE__.segment.rsc +2 -2
  267. package/.next/server/app/index.segments/!KGFwcCk.segment.rsc +2 -2
  268. package/.next/server/app/index.segments/_full.segment.rsc +4 -4
  269. package/.next/server/app/index.segments/_head.segment.rsc +1 -1
  270. package/.next/server/app/index.segments/_index.segment.rsc +2 -2
  271. package/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  272. package/.next/server/app/jobs.html +1 -1
  273. package/.next/server/app/jobs.rsc +4 -4
  274. package/.next/server/app/jobs.segments/!KGFwcCk/jobs/__PAGE__.segment.rsc +2 -2
  275. package/.next/server/app/jobs.segments/!KGFwcCk/jobs.segment.rsc +1 -1
  276. package/.next/server/app/jobs.segments/!KGFwcCk.segment.rsc +2 -2
  277. package/.next/server/app/jobs.segments/_full.segment.rsc +4 -4
  278. package/.next/server/app/jobs.segments/_head.segment.rsc +1 -1
  279. package/.next/server/app/jobs.segments/_index.segment.rsc +2 -2
  280. package/.next/server/app/jobs.segments/_tree.segment.rsc +2 -2
  281. package/.next/server/app/login/page.js +2 -2
  282. package/.next/server/app/login/page_client-reference-manifest.js +1 -1
  283. package/.next/server/app/login.html +1 -1
  284. package/.next/server/app/login.rsc +2 -2
  285. package/.next/server/app/login.segments/_full.segment.rsc +2 -2
  286. package/.next/server/app/login.segments/_head.segment.rsc +1 -1
  287. package/.next/server/app/login.segments/_index.segment.rsc +2 -2
  288. package/.next/server/app/login.segments/_tree.segment.rsc +2 -2
  289. package/.next/server/app/login.segments/login/__PAGE__.segment.rsc +1 -1
  290. package/.next/server/app/login.segments/login.segment.rsc +1 -1
  291. package/.next/server/app/mcp-servers.html +1 -1
  292. package/.next/server/app/mcp-servers.rsc +4 -4
  293. package/.next/server/app/mcp-servers.segments/!KGFwcCk/mcp-servers/__PAGE__.segment.rsc +2 -2
  294. package/.next/server/app/mcp-servers.segments/!KGFwcCk/mcp-servers.segment.rsc +1 -1
  295. package/.next/server/app/mcp-servers.segments/!KGFwcCk.segment.rsc +2 -2
  296. package/.next/server/app/mcp-servers.segments/_full.segment.rsc +4 -4
  297. package/.next/server/app/mcp-servers.segments/_head.segment.rsc +1 -1
  298. package/.next/server/app/mcp-servers.segments/_index.segment.rsc +2 -2
  299. package/.next/server/app/mcp-servers.segments/_tree.segment.rsc +2 -2
  300. package/.next/server/app/reviews.html +1 -1
  301. package/.next/server/app/reviews.rsc +4 -4
  302. package/.next/server/app/reviews.segments/!KGFwcCk/reviews/__PAGE__.segment.rsc +2 -2
  303. package/.next/server/app/reviews.segments/!KGFwcCk/reviews.segment.rsc +1 -1
  304. package/.next/server/app/reviews.segments/!KGFwcCk.segment.rsc +2 -2
  305. package/.next/server/app/reviews.segments/_full.segment.rsc +4 -4
  306. package/.next/server/app/reviews.segments/_head.segment.rsc +1 -1
  307. package/.next/server/app/reviews.segments/_index.segment.rsc +2 -2
  308. package/.next/server/app/reviews.segments/_tree.segment.rsc +2 -2
  309. package/.next/server/app/settings/notifications.html +1 -0
  310. package/.next/server/app/settings/notifications.meta +17 -0
  311. package/.next/server/app/settings/notifications.rsc +23 -0
  312. package/.next/server/app/settings/notifications.segments/!KGFwcCk/settings/notifications/__PAGE__.segment.rsc +9 -0
  313. package/.next/server/app/settings/notifications.segments/!KGFwcCk/settings/notifications.segment.rsc +5 -0
  314. package/.next/server/app/settings/notifications.segments/!KGFwcCk/settings.segment.rsc +5 -0
  315. package/.next/server/app/settings/notifications.segments/!KGFwcCk.segment.rsc +7 -0
  316. package/.next/server/app/settings/notifications.segments/_full.segment.rsc +23 -0
  317. package/.next/server/app/settings/notifications.segments/_head.segment.rsc +6 -0
  318. package/.next/server/app/settings/notifications.segments/_index.segment.rsc +5 -0
  319. package/.next/server/app/settings/notifications.segments/_tree.segment.rsc +2 -0
  320. package/.next/server/app/settings.html +1 -1
  321. package/.next/server/app/settings.rsc +4 -4
  322. package/.next/server/app/settings.segments/!KGFwcCk/settings/__PAGE__.segment.rsc +2 -2
  323. package/.next/server/app/settings.segments/!KGFwcCk/settings.segment.rsc +1 -1
  324. package/.next/server/app/settings.segments/!KGFwcCk.segment.rsc +2 -2
  325. package/.next/server/app/settings.segments/_full.segment.rsc +4 -4
  326. package/.next/server/app/settings.segments/_head.segment.rsc +1 -1
  327. package/.next/server/app/settings.segments/_index.segment.rsc +2 -2
  328. package/.next/server/app/settings.segments/_tree.segment.rsc +2 -2
  329. package/.next/server/app/skills.html +1 -1
  330. package/.next/server/app/skills.rsc +4 -4
  331. package/.next/server/app/skills.segments/!KGFwcCk/skills/__PAGE__.segment.rsc +2 -2
  332. package/.next/server/app/skills.segments/!KGFwcCk/skills.segment.rsc +1 -1
  333. package/.next/server/app/skills.segments/!KGFwcCk.segment.rsc +2 -2
  334. package/.next/server/app/skills.segments/_full.segment.rsc +4 -4
  335. package/.next/server/app/skills.segments/_head.segment.rsc +1 -1
  336. package/.next/server/app/skills.segments/_index.segment.rsc +2 -2
  337. package/.next/server/app/skills.segments/_tree.segment.rsc +2 -2
  338. package/.next/server/app-paths-manifest.json +12 -0
  339. package/.next/server/chunks/1659.js +1 -1
  340. package/.next/server/chunks/1941.js +2 -2
  341. package/.next/server/chunks/1979.js +2 -2
  342. package/.next/server/chunks/2408.js +1 -1
  343. package/.next/server/chunks/2444.js +1 -1
  344. package/.next/server/chunks/3108.js +1 -0
  345. package/.next/server/chunks/4445.js +1 -1
  346. package/.next/server/chunks/{6142.js → 5920.js} +1 -1
  347. package/.next/server/chunks/5965.js +1 -1
  348. package/.next/server/chunks/{9012.js → 7627.js} +3 -3
  349. package/.next/server/middleware-build-manifest.js +1 -1
  350. package/.next/server/middleware-react-loadable-manifest.js +1 -1
  351. package/.next/server/pages/404.html +1 -1
  352. package/.next/server/pages/500.html +1 -1
  353. package/.next/server/server-reference-manifest.json +1 -1
  354. package/.next/static/brzairTqHmHwvfgKpdkYX/_buildManifest.js +1 -0
  355. package/.next/static/chunks/11242-d240a18d4e59390b.js +199 -0
  356. package/.next/static/chunks/3765-a4c7a493ec83f918.js +20 -0
  357. package/.next/static/chunks/{80392.bca860d8b5972706.js → 58011.3de5770e8b0d8759.js} +1 -1
  358. package/.next/static/chunks/{69427.755a0a4013596f7a.js → 69427.0f379c6bdea95405.js} +1 -1
  359. package/.next/static/chunks/75866-76a3987dda1295ae.js +1 -0
  360. package/.next/static/chunks/93273-87110c1449e1e7fd.js +6 -0
  361. package/.next/static/chunks/app/(app)/agents/[name]/{page-44c5691c80f17d38.js → page-3ec9a3460e8e9006.js} +2 -2
  362. package/.next/static/chunks/app/(app)/agents/page-d6d504e7d7757ea2.js +1 -0
  363. package/.next/static/chunks/app/(app)/changes/page-a09bf4742aa8b5ce.js +1 -0
  364. package/.next/static/chunks/app/(app)/claude-md/edit/page-ab42921ba2618dc3.js +1 -0
  365. package/.next/static/chunks/app/(app)/claude-md/page-c4c8b20aa002a94a.js +1 -0
  366. package/.next/static/chunks/app/(app)/commands/[name]/{page-6ef571e73b105248.js → page-2124ffed9a4e95a3.js} +2 -2
  367. package/.next/static/chunks/app/(app)/commands/page-d5bf1bddd17e31dd.js +1 -0
  368. package/.next/static/chunks/app/(app)/files/page-04e4e5bf1ca89945.js +1 -0
  369. package/.next/static/chunks/app/(app)/hooks/[event]/{page-03f85595561b068a.js → page-d988623e739973b5.js} +2 -2
  370. package/.next/static/chunks/app/(app)/hooks/page-818242d7db432578.js +1 -0
  371. package/.next/static/chunks/app/(app)/inbox/[id]/page-c33dc94e309ff117.js +1 -0
  372. package/.next/static/chunks/app/(app)/inbox/page-ca3e1724b5072734.js +1 -0
  373. package/.next/static/chunks/app/(app)/jobs/[id]/edit/page-3a1c927d76333bf0.js +1 -0
  374. package/.next/static/chunks/app/(app)/jobs/[id]/page-8e698e00b90968b0.js +1 -0
  375. package/.next/static/chunks/app/(app)/jobs/[id]/runs/[runId]/page-f942df0b7c1d280b.js +1 -0
  376. package/.next/static/chunks/app/(app)/jobs/page-7a88cc6ac34550c2.js +1 -0
  377. package/.next/static/chunks/app/(app)/layout-81c1899969de11e6.js +1 -0
  378. package/.next/static/chunks/app/(app)/mcp-servers/[name]/page-3541bf3ccdef9145.js +1 -0
  379. package/.next/static/chunks/app/(app)/mcp-servers/page-3927dfd03d921040.js +1 -0
  380. package/.next/static/chunks/app/(app)/page-594120e0ea1df527.js +1 -0
  381. package/.next/static/chunks/app/(app)/reviews/[owner]/[repo]/[number]/page-74c23b04f5c3ff88.js +13 -0
  382. package/.next/static/chunks/app/(app)/reviews/[owner]/[repo]/page-c7473a899c7c59c3.js +1 -0
  383. package/.next/static/chunks/app/(app)/reviews/page-0e6e7395a4f62b50.js +1 -0
  384. package/.next/static/chunks/app/(app)/sessions/[id]/page-435e9fb4dd34007d.js +1 -0
  385. package/.next/static/chunks/app/(app)/settings/notifications/page-a28db2ebc9fd0de8.js +1 -0
  386. package/.next/static/chunks/app/(app)/settings/page-f8ada7997c0d5b03.js +1 -0
  387. package/.next/static/chunks/app/(app)/skills/[name]/{page-e6572062a6ad90df.js → page-5dbe1e7682880145.js} +2 -2
  388. package/.next/static/chunks/app/(app)/skills/page-fd1986ad7e060f4d.js +1 -0
  389. package/.next/static/chunks/app/_global-error/page-65c661eddfc65f5b.js +1 -0
  390. package/.next/static/chunks/app/api/agents/[name]/route-65c661eddfc65f5b.js +1 -0
  391. package/.next/static/chunks/app/api/agents/route-65c661eddfc65f5b.js +1 -0
  392. package/.next/static/chunks/app/api/auth/check/route-65c661eddfc65f5b.js +1 -0
  393. package/.next/static/chunks/app/api/auth/login/route-65c661eddfc65f5b.js +1 -0
  394. package/.next/static/chunks/app/api/auth/setup/route-65c661eddfc65f5b.js +1 -0
  395. package/.next/static/chunks/app/api/auth/ws-token/route-65c661eddfc65f5b.js +1 -0
  396. package/.next/static/chunks/app/api/btw/route-65c661eddfc65f5b.js +1 -0
  397. package/.next/static/chunks/app/api/claude-md/route-65c661eddfc65f5b.js +1 -0
  398. package/.next/static/chunks/app/api/commands/[name]/route-65c661eddfc65f5b.js +1 -0
  399. package/.next/static/chunks/app/api/commands/route-65c661eddfc65f5b.js +1 -0
  400. package/.next/static/chunks/app/api/defaults/route-65c661eddfc65f5b.js +1 -0
  401. package/.next/static/chunks/app/api/filesystem/browse/route-65c661eddfc65f5b.js +1 -0
  402. package/.next/static/chunks/app/api/filesystem/files/route-65c661eddfc65f5b.js +1 -0
  403. package/.next/static/chunks/app/api/filesystem/mkdir/route-65c661eddfc65f5b.js +1 -0
  404. package/.next/static/chunks/app/api/filesystem/read/route-65c661eddfc65f5b.js +1 -0
  405. package/.next/static/chunks/app/api/git/clone/route-65c661eddfc65f5b.js +1 -0
  406. package/.next/static/chunks/app/api/git/commit/route-65c661eddfc65f5b.js +1 -0
  407. package/.next/static/chunks/app/api/git/diff/route-65c661eddfc65f5b.js +1 -0
  408. package/.next/static/chunks/app/api/git/discard/route-65c661eddfc65f5b.js +1 -0
  409. package/.next/static/chunks/app/api/git/generate-message/route-65c661eddfc65f5b.js +1 -0
  410. package/.next/static/chunks/app/api/git/push/route-65c661eddfc65f5b.js +1 -0
  411. package/.next/static/chunks/app/api/git/status/route-65c661eddfc65f5b.js +1 -0
  412. package/.next/static/chunks/app/api/github/file-content/route-65c661eddfc65f5b.js +1 -0
  413. package/.next/static/chunks/app/api/github/orgs/route-65c661eddfc65f5b.js +1 -0
  414. package/.next/static/chunks/app/api/github/prs/checks/route-65c661eddfc65f5b.js +1 -0
  415. package/.next/static/chunks/app/api/github/prs/diff/route-65c661eddfc65f5b.js +1 -0
  416. package/.next/static/chunks/app/api/github/prs/review/route-65c661eddfc65f5b.js +1 -0
  417. package/.next/static/chunks/app/api/github/prs/route-65c661eddfc65f5b.js +1 -0
  418. package/.next/static/chunks/app/api/github/prs/view/route-65c661eddfc65f5b.js +1 -0
  419. package/.next/static/chunks/app/api/github/repos/route-65c661eddfc65f5b.js +1 -0
  420. package/.next/static/chunks/app/api/github/review-session/route-65c661eddfc65f5b.js +1 -0
  421. package/.next/static/chunks/app/api/health/route-65c661eddfc65f5b.js +1 -0
  422. package/.next/static/chunks/app/api/hooks/route-65c661eddfc65f5b.js +1 -0
  423. package/.next/static/chunks/app/api/inbox/[id]/route-65c661eddfc65f5b.js +1 -0
  424. package/.next/static/chunks/app/api/inbox/route-65c661eddfc65f5b.js +1 -0
  425. package/.next/static/chunks/app/api/jobs/[id]/route-65c661eddfc65f5b.js +1 -0
  426. package/.next/static/chunks/app/api/jobs/[id]/runs/[runId]/route-65c661eddfc65f5b.js +1 -0
  427. package/.next/static/chunks/app/api/jobs/[id]/runs/[runId]/transcript/route-65c661eddfc65f5b.js +1 -0
  428. package/.next/static/chunks/app/api/jobs/[id]/runs/route-65c661eddfc65f5b.js +1 -0
  429. package/.next/static/chunks/app/api/jobs/[id]/trigger/route-65c661eddfc65f5b.js +1 -0
  430. package/.next/static/chunks/app/api/jobs/mcp-discover/route-65c661eddfc65f5b.js +1 -0
  431. package/.next/static/chunks/app/api/jobs/route-65c661eddfc65f5b.js +1 -0
  432. package/.next/static/chunks/app/api/jobs/status/route-65c661eddfc65f5b.js +1 -0
  433. package/.next/static/chunks/app/api/mcp-servers/[name]/route-65c661eddfc65f5b.js +1 -0
  434. package/.next/static/chunks/app/api/mcp-servers/[name]/test/route-65c661eddfc65f5b.js +1 -0
  435. package/.next/static/chunks/app/api/mcp-servers/route-65c661eddfc65f5b.js +1 -0
  436. package/.next/static/chunks/app/api/notifications/route-65c661eddfc65f5b.js +1 -0
  437. package/.next/static/chunks/app/api/notifications/test/route-65c661eddfc65f5b.js +1 -0
  438. package/.next/static/chunks/app/api/reviews/pinned/route-65c661eddfc65f5b.js +1 -0
  439. package/.next/static/chunks/app/api/sessions/[id]/context/route-65c661eddfc65f5b.js +1 -0
  440. package/.next/static/chunks/app/api/sessions/[id]/mcp/route-65c661eddfc65f5b.js +1 -0
  441. package/.next/static/chunks/app/api/sessions/[id]/route-65c661eddfc65f5b.js +1 -0
  442. package/.next/static/chunks/app/api/sessions/[id]/search/route-65c661eddfc65f5b.js +1 -0
  443. package/.next/static/chunks/app/api/sessions/bulk-delete/route-65c661eddfc65f5b.js +1 -0
  444. package/.next/static/chunks/app/api/sessions/by-ids/route-65c661eddfc65f5b.js +1 -0
  445. package/.next/static/chunks/app/api/sessions/group/route-65c661eddfc65f5b.js +1 -0
  446. package/.next/static/chunks/app/api/sessions/pinned/route-65c661eddfc65f5b.js +1 -0
  447. package/.next/static/chunks/app/api/sessions/route-65c661eddfc65f5b.js +1 -0
  448. package/.next/static/chunks/app/api/sessions/search/route-65c661eddfc65f5b.js +1 -0
  449. package/.next/static/chunks/app/api/skills/[name]/route-65c661eddfc65f5b.js +1 -0
  450. package/.next/static/chunks/app/api/skills/route-65c661eddfc65f5b.js +1 -0
  451. package/.next/static/chunks/app/api/usage/route-65c661eddfc65f5b.js +1 -0
  452. package/.next/static/chunks/app/api/version/cockpit/route-65c661eddfc65f5b.js +1 -0
  453. package/.next/static/chunks/app/api/version/route-65c661eddfc65f5b.js +1 -0
  454. package/.next/static/chunks/next/dist/client/components/builtin/app-error-65c661eddfc65f5b.js +1 -0
  455. package/.next/static/chunks/next/dist/client/components/builtin/forbidden-65c661eddfc65f5b.js +1 -0
  456. package/.next/static/chunks/next/dist/client/components/builtin/not-found-65c661eddfc65f5b.js +1 -0
  457. package/.next/static/chunks/next/dist/client/components/builtin/unauthorized-65c661eddfc65f5b.js +1 -0
  458. package/.next/static/chunks/{webpack-2a5835e108df6f34.js → webpack-3461a05957b13f46.js} +1 -1
  459. package/.next/static/css/f04f303b5708dd90.css +1 -0
  460. package/README.md +14 -4
  461. package/dist/server.js +38 -1
  462. package/dist/src/server/defaults.js +2 -0
  463. package/dist/src/server/inbox.js +132 -0
  464. package/dist/src/server/job-scheduler.js +152 -40
  465. package/dist/src/server/job-storage.js +4 -7
  466. package/dist/src/server/notification-settings.js +39 -0
  467. package/dist/src/server/notifications.js +125 -0
  468. package/dist/src/server/session-manager.js +118 -15
  469. package/dist/src/server/transcript.js +271 -6
  470. package/dist/src/server/ws-handler.js +16 -13
  471. package/package.json +1 -1
  472. package/.next/server/chunks/8346.js +0 -1
  473. package/.next/static/V2EfPtTUC96VYyF12K0om/_buildManifest.js +0 -1
  474. package/.next/static/chunks/22086-756d490e3320ad15.js +0 -1
  475. package/.next/static/chunks/30120-1535e9064b17ce74.js +0 -20
  476. package/.next/static/chunks/66997-652baf5596173fea.js +0 -199
  477. package/.next/static/chunks/93273-c5cb6dcedef67c81.js +0 -6
  478. package/.next/static/chunks/app/(app)/agents/page-4ce7a715bc0145dc.js +0 -1
  479. package/.next/static/chunks/app/(app)/changes/page-84cf4cd3ca347d98.js +0 -1
  480. package/.next/static/chunks/app/(app)/claude-md/edit/page-fb7117171d0f94d2.js +0 -1
  481. package/.next/static/chunks/app/(app)/claude-md/page-9503f1415e660911.js +0 -1
  482. package/.next/static/chunks/app/(app)/commands/page-e8a506da73d1c280.js +0 -1
  483. package/.next/static/chunks/app/(app)/files/page-67a95d351a685d79.js +0 -1
  484. package/.next/static/chunks/app/(app)/hooks/page-5578c83ad353e307.js +0 -1
  485. package/.next/static/chunks/app/(app)/jobs/[id]/edit/page-51d784c59737778c.js +0 -1
  486. package/.next/static/chunks/app/(app)/jobs/[id]/page-7d00e7a01c70a261.js +0 -1
  487. package/.next/static/chunks/app/(app)/jobs/[id]/runs/[runId]/page-665191da233fde19.js +0 -1
  488. package/.next/static/chunks/app/(app)/jobs/page-8b4ee1166a53d5e1.js +0 -1
  489. package/.next/static/chunks/app/(app)/layout-8dad55d6ce637a01.js +0 -1
  490. package/.next/static/chunks/app/(app)/mcp-servers/[name]/page-c30f0d78daf7719e.js +0 -1
  491. package/.next/static/chunks/app/(app)/mcp-servers/page-737b87d338afdb49.js +0 -1
  492. package/.next/static/chunks/app/(app)/page-40052655d2a9a84f.js +0 -1
  493. package/.next/static/chunks/app/(app)/reviews/[owner]/[repo]/[number]/page-1d9179bf5a4de7a4.js +0 -13
  494. package/.next/static/chunks/app/(app)/reviews/[owner]/[repo]/page-d8a9ee39e7cc056a.js +0 -1
  495. package/.next/static/chunks/app/(app)/reviews/page-098e6e6fe3123e02.js +0 -1
  496. package/.next/static/chunks/app/(app)/sessions/[id]/page-a74f7fe8322678ba.js +0 -1
  497. package/.next/static/chunks/app/(app)/settings/page-1fa46b8ac8e22927.js +0 -1
  498. package/.next/static/chunks/app/(app)/skills/page-8fca8814aa818ae6.js +0 -1
  499. package/.next/static/chunks/app/_global-error/page-b277aba73f9e0212.js +0 -1
  500. package/.next/static/chunks/app/api/agents/[name]/route-b277aba73f9e0212.js +0 -1
  501. package/.next/static/chunks/app/api/agents/route-b277aba73f9e0212.js +0 -1
  502. package/.next/static/chunks/app/api/auth/check/route-b277aba73f9e0212.js +0 -1
  503. package/.next/static/chunks/app/api/auth/login/route-b277aba73f9e0212.js +0 -1
  504. package/.next/static/chunks/app/api/auth/setup/route-b277aba73f9e0212.js +0 -1
  505. package/.next/static/chunks/app/api/auth/ws-token/route-b277aba73f9e0212.js +0 -1
  506. package/.next/static/chunks/app/api/btw/route-b277aba73f9e0212.js +0 -1
  507. package/.next/static/chunks/app/api/claude-md/route-b277aba73f9e0212.js +0 -1
  508. package/.next/static/chunks/app/api/commands/[name]/route-b277aba73f9e0212.js +0 -1
  509. package/.next/static/chunks/app/api/commands/route-b277aba73f9e0212.js +0 -1
  510. package/.next/static/chunks/app/api/defaults/route-b277aba73f9e0212.js +0 -1
  511. package/.next/static/chunks/app/api/filesystem/browse/route-b277aba73f9e0212.js +0 -1
  512. package/.next/static/chunks/app/api/filesystem/files/route-b277aba73f9e0212.js +0 -1
  513. package/.next/static/chunks/app/api/filesystem/mkdir/route-b277aba73f9e0212.js +0 -1
  514. package/.next/static/chunks/app/api/filesystem/read/route-b277aba73f9e0212.js +0 -1
  515. package/.next/static/chunks/app/api/git/clone/route-b277aba73f9e0212.js +0 -1
  516. package/.next/static/chunks/app/api/git/commit/route-b277aba73f9e0212.js +0 -1
  517. package/.next/static/chunks/app/api/git/diff/route-b277aba73f9e0212.js +0 -1
  518. package/.next/static/chunks/app/api/git/discard/route-b277aba73f9e0212.js +0 -1
  519. package/.next/static/chunks/app/api/git/generate-message/route-b277aba73f9e0212.js +0 -1
  520. package/.next/static/chunks/app/api/git/push/route-b277aba73f9e0212.js +0 -1
  521. package/.next/static/chunks/app/api/git/status/route-b277aba73f9e0212.js +0 -1
  522. package/.next/static/chunks/app/api/github/file-content/route-b277aba73f9e0212.js +0 -1
  523. package/.next/static/chunks/app/api/github/orgs/route-b277aba73f9e0212.js +0 -1
  524. package/.next/static/chunks/app/api/github/prs/checks/route-b277aba73f9e0212.js +0 -1
  525. package/.next/static/chunks/app/api/github/prs/diff/route-b277aba73f9e0212.js +0 -1
  526. package/.next/static/chunks/app/api/github/prs/review/route-b277aba73f9e0212.js +0 -1
  527. package/.next/static/chunks/app/api/github/prs/route-b277aba73f9e0212.js +0 -1
  528. package/.next/static/chunks/app/api/github/prs/view/route-b277aba73f9e0212.js +0 -1
  529. package/.next/static/chunks/app/api/github/repos/route-b277aba73f9e0212.js +0 -1
  530. package/.next/static/chunks/app/api/github/review-session/route-b277aba73f9e0212.js +0 -1
  531. package/.next/static/chunks/app/api/health/route-b277aba73f9e0212.js +0 -1
  532. package/.next/static/chunks/app/api/hooks/route-b277aba73f9e0212.js +0 -1
  533. package/.next/static/chunks/app/api/jobs/[id]/route-b277aba73f9e0212.js +0 -1
  534. package/.next/static/chunks/app/api/jobs/[id]/runs/[runId]/route-b277aba73f9e0212.js +0 -1
  535. package/.next/static/chunks/app/api/jobs/[id]/runs/[runId]/transcript/route-b277aba73f9e0212.js +0 -1
  536. package/.next/static/chunks/app/api/jobs/[id]/runs/route-b277aba73f9e0212.js +0 -1
  537. package/.next/static/chunks/app/api/jobs/[id]/trigger/route-b277aba73f9e0212.js +0 -1
  538. package/.next/static/chunks/app/api/jobs/mcp-discover/route-b277aba73f9e0212.js +0 -1
  539. package/.next/static/chunks/app/api/jobs/route-b277aba73f9e0212.js +0 -1
  540. package/.next/static/chunks/app/api/jobs/status/route-b277aba73f9e0212.js +0 -1
  541. package/.next/static/chunks/app/api/mcp-servers/[name]/route-b277aba73f9e0212.js +0 -1
  542. package/.next/static/chunks/app/api/mcp-servers/[name]/test/route-b277aba73f9e0212.js +0 -1
  543. package/.next/static/chunks/app/api/mcp-servers/route-b277aba73f9e0212.js +0 -1
  544. package/.next/static/chunks/app/api/sessions/[id]/context/route-b277aba73f9e0212.js +0 -1
  545. package/.next/static/chunks/app/api/sessions/[id]/mcp/route-b277aba73f9e0212.js +0 -1
  546. package/.next/static/chunks/app/api/sessions/[id]/route-b277aba73f9e0212.js +0 -1
  547. package/.next/static/chunks/app/api/sessions/[id]/search/route-b277aba73f9e0212.js +0 -1
  548. package/.next/static/chunks/app/api/sessions/pinned/route-b277aba73f9e0212.js +0 -1
  549. package/.next/static/chunks/app/api/sessions/route-b277aba73f9e0212.js +0 -1
  550. package/.next/static/chunks/app/api/skills/[name]/route-b277aba73f9e0212.js +0 -1
  551. package/.next/static/chunks/app/api/skills/route-b277aba73f9e0212.js +0 -1
  552. package/.next/static/chunks/app/api/usage/route-b277aba73f9e0212.js +0 -1
  553. package/.next/static/chunks/app/api/version/cockpit/route-b277aba73f9e0212.js +0 -1
  554. package/.next/static/chunks/app/api/version/route-b277aba73f9e0212.js +0 -1
  555. package/.next/static/chunks/next/dist/client/components/builtin/app-error-b277aba73f9e0212.js +0 -1
  556. package/.next/static/chunks/next/dist/client/components/builtin/forbidden-b277aba73f9e0212.js +0 -1
  557. package/.next/static/chunks/next/dist/client/components/builtin/not-found-b277aba73f9e0212.js +0 -1
  558. package/.next/static/chunks/next/dist/client/components/builtin/unauthorized-b277aba73f9e0212.js +0 -1
  559. package/.next/static/css/1e1239c76b265910.css +0 -1
  560. /package/.next/static/{V2EfPtTUC96VYyF12K0om → brzairTqHmHwvfgKpdkYX}/_ssgManifest.js +0 -0
@@ -1,4 +1,4 @@
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};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},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{messages:c,byteOffset:d,totalSize:e,lastUsage:f}=await (0,z.vi)(b.cliSessionId,b.info.cwd,{tailLines:150});if(b.bufferCliSessionId=b.cliSessionId,b.previousCliSessionIds.length>0){let a=c;for(let e=b.previousCliSessionIds.length-1;e>=0;e--){let g=b.previousCliSessionIds[e],h=await (0,z.vi)(g,b.info.cwd,{tailLines:150});if(h.messages.length>0){let e={id:"clear-boundary-"+Date.now(),role:"system",content:"__context_reset__",toolUses:[],blocks:[],timestamp:Date.now()};c=[...h.messages,e,...a],d=h.byteOffset,f=f||h.lastUsage,b.bufferCliSessionId=g;break}}}b.transcriptBuffer=c,b.transcriptByteOffset=d,b.transcriptTotalSize=e,b.paginationPrevIds=[...b.previousCliSessionIds];let g=c.length>50?c.slice(-50):c,h=c.length>50||d>0||b.previousCliSessionIds.length>0,j=i().basename(b.info.cwd)||b.info.cwd;if(b.info.name===j&&c.length>0){let a=c.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:g,hasMore:h,lastUsage:f}}async getSessionByCwd(a,b){this.ensureSession(a,b);let c=this.sessions.get(a),{messages:d,byteOffset:e,totalSize:f,lastUsage:g}=await (0,z.vi)(c.cliSessionId,b,{tailLines:150});if(c.bufferCliSessionId=c.cliSessionId,c.previousCliSessionIds.length>0){let a=d;for(let f=c.previousCliSessionIds.length-1;f>=0;f--){let h=c.previousCliSessionIds[f],i=await (0,z.vi)(h,b,{tailLines:150});if(i.messages.length>0){let b={id:"clear-boundary-"+Date.now(),role:"system",content:"__context_reset__",toolUses:[],blocks:[],timestamp:Date.now()};d=[...i.messages,b,...a],e=i.byteOffset,g=g||i.lastUsage,c.bufferCliSessionId=h;break}}}c.transcriptBuffer=d,c.transcriptByteOffset=e,c.transcriptTotalSize=f,c.paginationPrevIds=[...c.previousCliSessionIds];let h=d.length>50?d.slice(-50):d,j=d.length>50||e>0||c.previousCliSessionIds.length>0,k=i().basename(b)||b;if(c.info.name===k&&d.length>0){let a=d.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:h,hasMore:j,lastUsage:g}}async getCliSessionView(a,b){if(!(0,z.Br)(a,b))return null;let c=(0,s.Kw)(a),d=c?c.truncatedPrevIds:[],{messages:e,lastUsage:f}=await (0,z.vi)(a,b,{tailLines:150});if(d.length>0){let a=e;for(let c=d.length-1;c>=0;c--){let g=await (0,z.vi)(d[c],b,{tailLines:150});if(g.messages.length>0){let b={id:"clear-boundary-"+Date.now(),role:"system",content:"__context_reset__",toolUses:[],blocks:[],timestamp:Date.now()};e=[...g.messages,b,...a],f=f||g.lastUsage;break}}}let g=e.length>50?e.slice(-50):e,h=i().basename(b)||b;if(e.length>0){let a=e.find(a=>"user"===a.role&&a.content&&!a.content.startsWith("[")&&!a.content.startsWith("<"));a&&(h=a.content.slice(0,120))}return{info:{id:a,name:h,cwd:b,createdAt:Date.now(),lastActiveAt:Date.now(),status:"idle"},messages:g,hasMore:e.length>50,lastUsage:f}}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}fixStaleStatus(a){let b=this.sessions.get(a);b&&"running"===b.info.status&&!b.process&&(b.info.status="idle",b.pendingRequests.clear())}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(),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)}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)}removePendingRequest(a,b){let c=this.sessions.get(a);c&&c.pendingRequests.delete(b)}getPendingRequests(a){let b=this.sessions.get(a);return b?Array.from(b.pendingRequests.values()):[]}respondToPermission(a,b,c,d,e,f){let g=this.sessions.get(a);if(!g?.stdin)return!1;g.pendingRequests.delete(b);let h={type:"control_response",response:{subtype:"success",request_id:b,response:c?{behavior:"allow",...d?{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.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.emitSystem(b,a,"__bypass_state::off"))}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.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.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)}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{let b="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,planFilePath:b,planContent:b?function(a){try{return(0,f.readFileSync)(a,"utf-8")}catch{return}}(b):void 0})}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>
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
2
  Cockpit plan mode is now active, layered on top of Claude Code's native plan mode.
3
3
 
4
4
  Additional Cockpit rules beyond the CLI's defaults:
@@ -6,4 +6,4 @@ Additional Cockpit rules beyond the CLI's defaults:
6
6
  - git: only read-only subcommands (status, log, diff, show, blame, branch, remote, ls-files, ls-tree, rev-parse, describe, tag, reflog).
7
7
  - Edit, Write, NotebookEdit: blocked. Use ExitPlanMode to submit the plan before making changes.
8
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)}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"))}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"};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}}};
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}}};