@alexjbarnes/cockpit 0.3.0 → 0.4.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 (760) hide show
  1. package/.next/BUILD_ID +1 -1
  2. package/.next/app-path-routes-manifest.json +11 -3
  3. package/.next/build-manifest.json +4 -4
  4. package/.next/next-server.js.nft.json +1 -1
  5. package/.next/prerender-manifest.json +21 -45
  6. package/.next/react-loadable-manifest.json +279 -267
  7. package/.next/routes-manifest.json +68 -12
  8. package/.next/server/app/(app)/agents/[name]/page.js +3 -3
  9. package/.next/server/app/(app)/agents/[name]/page.js.nft.json +1 -1
  10. package/.next/server/app/(app)/agents/[name]/page_client-reference-manifest.js +1 -1
  11. package/.next/server/app/(app)/agents/page.js +2 -2
  12. package/.next/server/app/(app)/agents/page.js.nft.json +1 -1
  13. package/.next/server/app/(app)/agents/page_client-reference-manifest.js +1 -1
  14. package/.next/server/app/(app)/claude-md/edit/page.js +2 -2
  15. package/.next/server/app/(app)/claude-md/edit/page.js.nft.json +1 -1
  16. package/.next/server/app/(app)/claude-md/edit/page_client-reference-manifest.js +1 -1
  17. package/.next/server/app/(app)/claude-md/page.js +2 -2
  18. package/.next/server/app/(app)/claude-md/page.js.nft.json +1 -1
  19. package/.next/server/app/(app)/claude-md/page_client-reference-manifest.js +1 -1
  20. package/.next/server/app/(app)/commands/[name]/page.js +3 -3
  21. package/.next/server/app/(app)/commands/[name]/page.js.nft.json +1 -1
  22. package/.next/server/app/(app)/commands/[name]/page_client-reference-manifest.js +1 -1
  23. package/.next/server/app/(app)/commands/page.js +2 -2
  24. package/.next/server/app/(app)/commands/page.js.nft.json +1 -1
  25. package/.next/server/app/(app)/commands/page_client-reference-manifest.js +1 -1
  26. package/.next/server/app/(app)/hooks/[event]/page.js +3 -3
  27. package/.next/server/app/(app)/hooks/[event]/page.js.nft.json +1 -1
  28. package/.next/server/app/(app)/hooks/[event]/page_client-reference-manifest.js +1 -1
  29. package/.next/server/app/(app)/hooks/page.js +2 -2
  30. package/.next/server/app/(app)/hooks/page.js.nft.json +1 -1
  31. package/.next/server/app/(app)/hooks/page_client-reference-manifest.js +1 -1
  32. package/.next/server/app/(app)/inbox/[id]/page.js +2 -2
  33. package/.next/server/app/(app)/inbox/[id]/page.js.nft.json +1 -1
  34. package/.next/server/app/(app)/inbox/[id]/page_client-reference-manifest.js +1 -1
  35. package/.next/server/app/(app)/inbox/page.js +2 -2
  36. package/.next/server/app/(app)/inbox/page.js.nft.json +1 -1
  37. package/.next/server/app/(app)/inbox/page_client-reference-manifest.js +1 -1
  38. package/.next/server/app/(app)/jobs/[id]/edit/page.js +2 -2
  39. package/.next/server/app/(app)/jobs/[id]/edit/page.js.nft.json +1 -1
  40. package/.next/server/app/(app)/jobs/[id]/edit/page_client-reference-manifest.js +1 -1
  41. package/.next/server/app/(app)/jobs/[id]/page.js +2 -2
  42. package/.next/server/app/(app)/jobs/[id]/page.js.nft.json +1 -1
  43. package/.next/server/app/(app)/jobs/[id]/page_client-reference-manifest.js +1 -1
  44. package/.next/server/app/(app)/jobs/[id]/runs/[runId]/page.js +2 -2
  45. package/.next/server/app/(app)/jobs/[id]/runs/[runId]/page.js.nft.json +1 -1
  46. package/.next/server/app/(app)/jobs/[id]/runs/[runId]/page_client-reference-manifest.js +1 -1
  47. package/.next/server/app/(app)/jobs/page.js +2 -2
  48. package/.next/server/app/(app)/jobs/page.js.nft.json +1 -1
  49. package/.next/server/app/(app)/jobs/page_client-reference-manifest.js +1 -1
  50. package/.next/server/app/(app)/mcp-servers/[name]/page.js +2 -2
  51. package/.next/server/app/(app)/mcp-servers/[name]/page.js.nft.json +1 -1
  52. package/.next/server/app/(app)/mcp-servers/[name]/page_client-reference-manifest.js +1 -1
  53. package/.next/server/app/(app)/mcp-servers/page.js +2 -2
  54. package/.next/server/app/(app)/mcp-servers/page.js.nft.json +1 -1
  55. package/.next/server/app/(app)/mcp-servers/page_client-reference-manifest.js +1 -1
  56. package/.next/server/app/(app)/page.js +2 -2
  57. package/.next/server/app/(app)/page.js.nft.json +1 -1
  58. package/.next/server/app/(app)/page_client-reference-manifest.js +1 -1
  59. package/.next/server/app/(app)/plugins/page.js +2 -0
  60. package/.next/server/app/(app)/{files → plugins}/page.js.nft.json +1 -1
  61. package/.next/server/app/(app)/plugins/page_client-reference-manifest.js +1 -0
  62. package/.next/server/app/(app)/reviews/[owner]/[repo]/[number]/page.js +4 -4
  63. package/.next/server/app/(app)/reviews/[owner]/[repo]/[number]/page.js.nft.json +1 -1
  64. package/.next/server/app/(app)/reviews/[owner]/[repo]/[number]/page_client-reference-manifest.js +1 -1
  65. package/.next/server/app/(app)/reviews/[owner]/[repo]/page.js +2 -2
  66. package/.next/server/app/(app)/reviews/[owner]/[repo]/page.js.nft.json +1 -1
  67. package/.next/server/app/(app)/reviews/[owner]/[repo]/page_client-reference-manifest.js +1 -1
  68. package/.next/server/app/(app)/reviews/page.js +2 -2
  69. package/.next/server/app/(app)/reviews/page.js.nft.json +1 -1
  70. package/.next/server/app/(app)/reviews/page_client-reference-manifest.js +1 -1
  71. package/.next/server/app/(app)/sessions/[id]/page.js +2 -2
  72. package/.next/server/app/(app)/sessions/[id]/page.js.nft.json +1 -1
  73. package/.next/server/app/(app)/sessions/[id]/page_client-reference-manifest.js +1 -1
  74. package/.next/server/app/(app)/settings/appearance/page.js +2 -2
  75. package/.next/server/app/(app)/settings/appearance/page.js.nft.json +1 -1
  76. package/.next/server/app/(app)/settings/appearance/page_client-reference-manifest.js +1 -1
  77. package/.next/server/app/(app)/settings/notifications/page.js +2 -2
  78. package/.next/server/app/(app)/settings/notifications/page.js.nft.json +1 -1
  79. package/.next/server/app/(app)/settings/notifications/page_client-reference-manifest.js +1 -1
  80. package/.next/server/app/(app)/settings/page.js +2 -2
  81. package/.next/server/app/(app)/settings/page.js.nft.json +1 -1
  82. package/.next/server/app/(app)/settings/page_client-reference-manifest.js +1 -1
  83. package/.next/server/app/(app)/settings/providers/[id]/page.js +2 -2
  84. package/.next/server/app/(app)/settings/providers/[id]/page.js.nft.json +1 -1
  85. package/.next/server/app/(app)/settings/providers/[id]/page_client-reference-manifest.js +1 -1
  86. package/.next/server/app/(app)/settings/providers/new/page.js +2 -2
  87. package/.next/server/app/(app)/settings/providers/new/page.js.nft.json +1 -1
  88. package/.next/server/app/(app)/settings/providers/new/page_client-reference-manifest.js +1 -1
  89. package/.next/server/app/(app)/settings/providers/page.js +2 -2
  90. package/.next/server/app/(app)/settings/providers/page.js.nft.json +1 -1
  91. package/.next/server/app/(app)/settings/providers/page_client-reference-manifest.js +1 -1
  92. package/.next/server/app/(app)/settings/session/page.js +2 -2
  93. package/.next/server/app/(app)/settings/session/page.js.nft.json +1 -1
  94. package/.next/server/app/(app)/settings/session/page_client-reference-manifest.js +1 -1
  95. package/.next/server/app/(app)/skills/[name]/page.js +3 -3
  96. package/.next/server/app/(app)/skills/[name]/page.js.nft.json +1 -1
  97. package/.next/server/app/(app)/skills/[name]/page_client-reference-manifest.js +1 -1
  98. package/.next/server/app/(app)/skills/page.js +2 -2
  99. package/.next/server/app/(app)/skills/page.js.nft.json +1 -1
  100. package/.next/server/app/(app)/skills/page_client-reference-manifest.js +1 -1
  101. package/.next/server/app/_global-error/page.js +3 -3
  102. package/.next/server/app/_global-error/page.js.nft.json +1 -1
  103. package/.next/server/app/_global-error/page_client-reference-manifest.js +1 -1
  104. package/.next/server/app/_global-error.html +1 -1
  105. package/.next/server/app/_global-error.rsc +1 -1
  106. package/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
  107. package/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +1 -1
  108. package/.next/server/app/_global-error.segments/_global-error.segment.rsc +1 -1
  109. package/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
  110. package/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
  111. package/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
  112. package/.next/server/app/_not-found/page.js +2 -2
  113. package/.next/server/app/_not-found/page.js.nft.json +1 -1
  114. package/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
  115. package/.next/server/app/_not-found.html +1 -1
  116. package/.next/server/app/_not-found.rsc +2 -2
  117. package/.next/server/app/_not-found.segments/_full.segment.rsc +2 -2
  118. package/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
  119. package/.next/server/app/_not-found.segments/_index.segment.rsc +2 -2
  120. package/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
  121. package/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
  122. package/.next/server/app/_not-found.segments/_tree.segment.rsc +2 -2
  123. package/.next/server/app/agents.html +1 -1
  124. package/.next/server/app/agents.rsc +4 -4
  125. package/.next/server/app/agents.segments/!KGFwcCk/agents/__PAGE__.segment.rsc +2 -2
  126. package/.next/server/app/agents.segments/!KGFwcCk/agents.segment.rsc +1 -1
  127. package/.next/server/app/agents.segments/!KGFwcCk.segment.rsc +2 -2
  128. package/.next/server/app/agents.segments/_full.segment.rsc +4 -4
  129. package/.next/server/app/agents.segments/_head.segment.rsc +1 -1
  130. package/.next/server/app/agents.segments/_index.segment.rsc +2 -2
  131. package/.next/server/app/agents.segments/_tree.segment.rsc +2 -2
  132. package/.next/server/app/api/agents/[name]/route.js +1 -1
  133. package/.next/server/app/api/agents/route.js +1 -1
  134. package/.next/server/app/api/assistant-session/route.js +1 -0
  135. package/.next/server/app/api/assistant-session/route.js.nft.json +1 -0
  136. package/.next/server/app/api/assistant-session/route_client-reference-manifest.js +1 -0
  137. package/.next/server/app/api/auth/check/route.js +1 -1
  138. package/.next/server/app/api/auth/login/route.js +1 -1
  139. package/.next/server/app/api/auth/setup/route.js +1 -1
  140. package/.next/server/app/api/auth/ws-token/route.js +1 -1
  141. package/.next/server/app/api/btw/route.js +2 -2
  142. package/.next/server/app/api/claude-md/route.js +1 -1
  143. package/.next/server/app/api/commands/[name]/route.js +1 -1
  144. package/.next/server/app/api/commands/route.js +1 -1
  145. package/.next/server/app/api/config/cwd/route.js +1 -0
  146. package/.next/server/app/api/config/cwd/route.js.nft.json +1 -0
  147. package/.next/server/app/api/config/cwd/route_client-reference-manifest.js +1 -0
  148. package/.next/server/app/api/defaults/route.js +1 -1
  149. package/.next/server/app/api/filesystem/browse/route.js +1 -1
  150. package/.next/server/app/api/filesystem/files/route.js +1 -1
  151. package/.next/server/app/api/filesystem/mkdir/route.js +1 -1
  152. package/.next/server/app/api/filesystem/read/route.js +1 -1
  153. package/.next/server/app/api/git/clone/route.js +1 -1
  154. package/.next/server/app/api/git/commit/route.js +1 -1
  155. package/.next/server/app/api/git/diff/route.js +1 -1
  156. package/.next/server/app/api/git/discard/route.js +1 -1
  157. package/.next/server/app/api/git/generate-message/route.js +2 -2
  158. package/.next/server/app/api/git/push/route.js +1 -1
  159. package/.next/server/app/api/git/status/route.js +1 -1
  160. package/.next/server/app/api/github/file-content/route.js +1 -1
  161. package/.next/server/app/api/github/orgs/route.js +1 -1
  162. package/.next/server/app/api/github/prs/checks/route.js +1 -1
  163. package/.next/server/app/api/github/prs/diff/route.js +1 -1
  164. package/.next/server/app/api/github/prs/review/route.js +1 -1
  165. package/.next/server/app/api/github/prs/route.js +1 -1
  166. package/.next/server/app/api/github/prs/view/route.js +1 -1
  167. package/.next/server/app/api/github/repos/route.js +1 -1
  168. package/.next/server/app/api/github/review-session/route.js +1 -1
  169. package/.next/server/app/api/github/review-session/route.js.nft.json +1 -1
  170. package/.next/server/app/api/health/route.js +1 -1
  171. package/.next/server/app/api/hooks/route.js +1 -1
  172. package/.next/server/app/api/inbox/[id]/route.js +1 -5
  173. package/.next/server/app/api/inbox/[id]/route.js.nft.json +1 -1
  174. package/.next/server/app/api/inbox/route.js +1 -5
  175. package/.next/server/app/api/inbox/route.js.nft.json +1 -1
  176. package/.next/server/app/api/jobs/[id]/route.js +1 -1
  177. package/.next/server/app/api/jobs/[id]/route.js.nft.json +1 -1
  178. package/.next/server/app/api/jobs/[id]/runs/[runId]/route.js +1 -1
  179. package/.next/server/app/api/jobs/[id]/runs/[runId]/transcript/route.js +1 -1
  180. package/.next/server/app/api/jobs/[id]/runs/[runId]/transcript/route.js.nft.json +1 -1
  181. package/.next/server/app/api/jobs/[id]/runs/route.js +1 -1
  182. package/.next/server/app/api/jobs/[id]/stop/route.js +1 -0
  183. package/.next/server/app/api/jobs/[id]/stop/route.js.nft.json +1 -0
  184. package/.next/server/app/api/jobs/[id]/stop/route_client-reference-manifest.js +1 -0
  185. package/.next/server/app/api/jobs/[id]/trigger/route.js +1 -1
  186. package/.next/server/app/api/jobs/[id]/trigger/route.js.nft.json +1 -1
  187. package/.next/server/app/api/jobs/mcp-discover/route.js +1 -1
  188. package/.next/server/app/api/jobs/mcp-discover/route.js.nft.json +1 -1
  189. package/.next/server/app/api/jobs/route.js +1 -1
  190. package/.next/server/app/api/jobs/route.js.nft.json +1 -1
  191. package/.next/server/app/api/jobs/status/route.js +1 -1
  192. package/.next/server/app/api/mcp-servers/[name]/route.js +1 -1
  193. package/.next/server/app/api/mcp-servers/[name]/test/route.js +1 -1
  194. package/.next/server/app/api/mcp-servers/[name]/tools/route.js +1 -0
  195. package/.next/server/app/api/mcp-servers/[name]/tools/route.js.nft.json +1 -0
  196. package/.next/server/app/api/mcp-servers/[name]/tools/route_client-reference-manifest.js +1 -0
  197. package/.next/server/app/api/mcp-servers/route.js +1 -1
  198. package/.next/server/app/api/notifications/route.js +1 -1
  199. package/.next/server/app/api/notifications/test/route.js +3 -3
  200. package/.next/server/app/api/plugins/[id]/route.js +1 -0
  201. package/.next/server/app/api/plugins/[id]/route.js.nft.json +1 -0
  202. package/.next/server/app/api/plugins/[id]/route_client-reference-manifest.js +1 -0
  203. package/.next/server/app/api/plugins/install/route.js +1 -0
  204. package/.next/server/app/api/plugins/install/route.js.nft.json +1 -0
  205. package/.next/server/app/api/plugins/install/route_client-reference-manifest.js +1 -0
  206. package/.next/server/app/api/plugins/marketplaces/[name]/route.js +1 -0
  207. package/.next/server/app/api/plugins/marketplaces/[name]/route.js.nft.json +1 -0
  208. package/.next/server/app/api/plugins/marketplaces/[name]/route_client-reference-manifest.js +1 -0
  209. package/.next/server/app/api/plugins/marketplaces/route.js +1 -0
  210. package/.next/server/app/api/plugins/marketplaces/route.js.nft.json +1 -0
  211. package/.next/server/app/api/plugins/marketplaces/route_client-reference-manifest.js +1 -0
  212. package/.next/server/app/api/plugins/route.js +1 -0
  213. package/.next/server/app/api/plugins/route.js.nft.json +1 -0
  214. package/.next/server/app/api/plugins/route_client-reference-manifest.js +1 -0
  215. package/.next/server/app/api/providers/[id]/route.js +1 -1
  216. package/.next/server/app/api/providers/route.js +1 -1
  217. package/.next/server/app/api/reviews/pinned/route.js +1 -1
  218. package/.next/server/app/api/sessions/[id]/context/route.js +1 -1
  219. package/.next/server/app/api/sessions/[id]/context/route.js.nft.json +1 -1
  220. package/.next/server/app/api/sessions/[id]/mcp/route.js +1 -1
  221. package/.next/server/app/api/sessions/[id]/mcp/route.js.nft.json +1 -1
  222. package/.next/server/app/api/sessions/[id]/route.js +1 -1
  223. package/.next/server/app/api/sessions/[id]/route.js.nft.json +1 -1
  224. package/.next/server/app/api/sessions/[id]/search/route.js +1 -1
  225. package/.next/server/app/api/sessions/[id]/search/route.js.nft.json +1 -1
  226. package/.next/server/app/api/sessions/[id]/tabs/route.js +1 -1
  227. package/.next/server/app/api/sessions/bulk-delete/route.js +1 -1
  228. package/.next/server/app/api/sessions/bulk-delete/route.js.nft.json +1 -1
  229. package/.next/server/app/api/sessions/by-ids/route.js +1 -1
  230. package/.next/server/app/api/sessions/by-ids/route.js.nft.json +1 -1
  231. package/.next/server/app/api/sessions/group/route.js +1 -1
  232. package/.next/server/app/api/sessions/group/route.js.nft.json +1 -1
  233. package/.next/server/app/api/sessions/pinned/route.js +1 -1
  234. package/.next/server/app/api/sessions/route.js +1 -1
  235. package/.next/server/app/api/sessions/route.js.nft.json +1 -1
  236. package/.next/server/app/api/sessions/search/route.js +1 -1
  237. package/.next/server/app/api/sessions/search/route.js.nft.json +1 -1
  238. package/.next/server/app/api/sessions/thinking/route.js +1 -1
  239. package/.next/server/app/api/sessions/thinking/route.js.nft.json +1 -1
  240. package/.next/server/app/api/skills/[name]/route.js +1 -1
  241. package/.next/server/app/api/skills/route.js +1 -1
  242. package/.next/server/app/api/terminal/[id]/route.js +1 -1
  243. package/.next/server/app/api/terminal/[id]/route.js.nft.json +1 -1
  244. package/.next/server/app/api/terminal/route.js +1 -1
  245. package/.next/server/app/api/terminal/route.js.nft.json +1 -1
  246. package/.next/server/app/api/usage/route.js +1 -1
  247. package/.next/server/app/api/version/changelog/route.js +1 -1
  248. package/.next/server/app/api/version/cockpit/changelog/route.js +1 -1
  249. package/.next/server/app/api/version/cockpit/route.js +1 -1
  250. package/.next/server/app/api/version/route.js +2 -2
  251. package/.next/server/app/claude-md/edit.html +1 -1
  252. package/.next/server/app/claude-md/edit.rsc +4 -4
  253. package/.next/server/app/claude-md/edit.segments/!KGFwcCk/claude-md/edit/__PAGE__.segment.rsc +2 -2
  254. package/.next/server/app/claude-md/edit.segments/!KGFwcCk/claude-md/edit.segment.rsc +1 -1
  255. package/.next/server/app/claude-md/edit.segments/!KGFwcCk/claude-md.segment.rsc +1 -1
  256. package/.next/server/app/claude-md/edit.segments/!KGFwcCk.segment.rsc +2 -2
  257. package/.next/server/app/claude-md/edit.segments/_full.segment.rsc +4 -4
  258. package/.next/server/app/claude-md/edit.segments/_head.segment.rsc +1 -1
  259. package/.next/server/app/claude-md/edit.segments/_index.segment.rsc +2 -2
  260. package/.next/server/app/claude-md/edit.segments/_tree.segment.rsc +2 -2
  261. package/.next/server/app/claude-md.html +1 -1
  262. package/.next/server/app/claude-md.rsc +4 -4
  263. package/.next/server/app/claude-md.segments/!KGFwcCk/claude-md/__PAGE__.segment.rsc +2 -2
  264. package/.next/server/app/claude-md.segments/!KGFwcCk/claude-md.segment.rsc +1 -1
  265. package/.next/server/app/claude-md.segments/!KGFwcCk.segment.rsc +2 -2
  266. package/.next/server/app/claude-md.segments/_full.segment.rsc +4 -4
  267. package/.next/server/app/claude-md.segments/_head.segment.rsc +1 -1
  268. package/.next/server/app/claude-md.segments/_index.segment.rsc +2 -2
  269. package/.next/server/app/claude-md.segments/_tree.segment.rsc +2 -2
  270. package/.next/server/app/commands.html +1 -1
  271. package/.next/server/app/commands.rsc +4 -4
  272. package/.next/server/app/commands.segments/!KGFwcCk/commands/__PAGE__.segment.rsc +2 -2
  273. package/.next/server/app/commands.segments/!KGFwcCk/commands.segment.rsc +1 -1
  274. package/.next/server/app/commands.segments/!KGFwcCk.segment.rsc +2 -2
  275. package/.next/server/app/commands.segments/_full.segment.rsc +4 -4
  276. package/.next/server/app/commands.segments/_head.segment.rsc +1 -1
  277. package/.next/server/app/commands.segments/_index.segment.rsc +2 -2
  278. package/.next/server/app/commands.segments/_tree.segment.rsc +2 -2
  279. package/.next/server/app/hooks.html +1 -1
  280. package/.next/server/app/hooks.rsc +4 -4
  281. package/.next/server/app/hooks.segments/!KGFwcCk/hooks/__PAGE__.segment.rsc +2 -2
  282. package/.next/server/app/hooks.segments/!KGFwcCk/hooks.segment.rsc +1 -1
  283. package/.next/server/app/hooks.segments/!KGFwcCk.segment.rsc +2 -2
  284. package/.next/server/app/hooks.segments/_full.segment.rsc +4 -4
  285. package/.next/server/app/hooks.segments/_head.segment.rsc +1 -1
  286. package/.next/server/app/hooks.segments/_index.segment.rsc +2 -2
  287. package/.next/server/app/hooks.segments/_tree.segment.rsc +2 -2
  288. package/.next/server/app/inbox.html +1 -1
  289. package/.next/server/app/inbox.rsc +4 -4
  290. package/.next/server/app/inbox.segments/!KGFwcCk/inbox/__PAGE__.segment.rsc +2 -2
  291. package/.next/server/app/inbox.segments/!KGFwcCk/inbox.segment.rsc +1 -1
  292. package/.next/server/app/inbox.segments/!KGFwcCk.segment.rsc +2 -2
  293. package/.next/server/app/inbox.segments/_full.segment.rsc +4 -4
  294. package/.next/server/app/inbox.segments/_head.segment.rsc +1 -1
  295. package/.next/server/app/inbox.segments/_index.segment.rsc +2 -2
  296. package/.next/server/app/inbox.segments/_tree.segment.rsc +2 -2
  297. package/.next/server/app/index.html +1 -1
  298. package/.next/server/app/index.rsc +4 -4
  299. package/.next/server/app/index.segments/!KGFwcCk/__PAGE__.segment.rsc +2 -2
  300. package/.next/server/app/index.segments/!KGFwcCk.segment.rsc +2 -2
  301. package/.next/server/app/index.segments/_full.segment.rsc +4 -4
  302. package/.next/server/app/index.segments/_head.segment.rsc +1 -1
  303. package/.next/server/app/index.segments/_index.segment.rsc +2 -2
  304. package/.next/server/app/index.segments/_tree.segment.rsc +2 -2
  305. package/.next/server/app/jobs.html +1 -1
  306. package/.next/server/app/jobs.rsc +4 -4
  307. package/.next/server/app/jobs.segments/!KGFwcCk/jobs/__PAGE__.segment.rsc +2 -2
  308. package/.next/server/app/jobs.segments/!KGFwcCk/jobs.segment.rsc +1 -1
  309. package/.next/server/app/jobs.segments/!KGFwcCk.segment.rsc +2 -2
  310. package/.next/server/app/jobs.segments/_full.segment.rsc +4 -4
  311. package/.next/server/app/jobs.segments/_head.segment.rsc +1 -1
  312. package/.next/server/app/jobs.segments/_index.segment.rsc +2 -2
  313. package/.next/server/app/jobs.segments/_tree.segment.rsc +2 -2
  314. package/.next/server/app/login/page.js +2 -2
  315. package/.next/server/app/login/page.js.nft.json +1 -1
  316. package/.next/server/app/login/page_client-reference-manifest.js +1 -1
  317. package/.next/server/app/login.html +1 -1
  318. package/.next/server/app/login.rsc +3 -3
  319. package/.next/server/app/login.segments/_full.segment.rsc +3 -3
  320. package/.next/server/app/login.segments/_head.segment.rsc +1 -1
  321. package/.next/server/app/login.segments/_index.segment.rsc +2 -2
  322. package/.next/server/app/login.segments/_tree.segment.rsc +2 -2
  323. package/.next/server/app/login.segments/login/__PAGE__.segment.rsc +2 -2
  324. package/.next/server/app/login.segments/login.segment.rsc +1 -1
  325. package/.next/server/app/mcp-servers.html +1 -1
  326. package/.next/server/app/mcp-servers.rsc +4 -4
  327. package/.next/server/app/mcp-servers.segments/!KGFwcCk/mcp-servers/__PAGE__.segment.rsc +2 -2
  328. package/.next/server/app/mcp-servers.segments/!KGFwcCk/mcp-servers.segment.rsc +1 -1
  329. package/.next/server/app/mcp-servers.segments/!KGFwcCk.segment.rsc +2 -2
  330. package/.next/server/app/mcp-servers.segments/_full.segment.rsc +4 -4
  331. package/.next/server/app/mcp-servers.segments/_head.segment.rsc +1 -1
  332. package/.next/server/app/mcp-servers.segments/_index.segment.rsc +2 -2
  333. package/.next/server/app/mcp-servers.segments/_tree.segment.rsc +2 -2
  334. package/.next/server/app/plugins.html +1 -0
  335. package/.next/server/app/{changes.meta → plugins.meta} +3 -3
  336. package/.next/server/app/{changes.rsc → plugins.rsc} +4 -4
  337. package/.next/server/app/{files.segments/!KGFwcCk/files → plugins.segments/!KGFwcCk/plugins}/__PAGE__.segment.rsc +2 -2
  338. package/.next/server/app/{changes.segments/!KGFwcCk/changes.segment.rsc → plugins.segments/!KGFwcCk/plugins.segment.rsc} +1 -1
  339. package/.next/server/app/{changes.segments → plugins.segments}/!KGFwcCk.segment.rsc +2 -2
  340. package/.next/server/app/{changes.segments → plugins.segments}/_full.segment.rsc +4 -4
  341. package/.next/server/app/{changes.segments → plugins.segments}/_head.segment.rsc +1 -1
  342. package/.next/server/app/{files.segments → plugins.segments}/_index.segment.rsc +2 -2
  343. package/.next/server/app/{changes.segments → plugins.segments}/_tree.segment.rsc +2 -2
  344. package/.next/server/app/reviews.html +1 -1
  345. package/.next/server/app/reviews.rsc +4 -4
  346. package/.next/server/app/reviews.segments/!KGFwcCk/reviews/__PAGE__.segment.rsc +2 -2
  347. package/.next/server/app/reviews.segments/!KGFwcCk/reviews.segment.rsc +1 -1
  348. package/.next/server/app/reviews.segments/!KGFwcCk.segment.rsc +2 -2
  349. package/.next/server/app/reviews.segments/_full.segment.rsc +4 -4
  350. package/.next/server/app/reviews.segments/_head.segment.rsc +1 -1
  351. package/.next/server/app/reviews.segments/_index.segment.rsc +2 -2
  352. package/.next/server/app/reviews.segments/_tree.segment.rsc +2 -2
  353. package/.next/server/app/settings/appearance.html +1 -1
  354. package/.next/server/app/settings/appearance.rsc +4 -4
  355. package/.next/server/app/settings/appearance.segments/!KGFwcCk/settings/appearance/__PAGE__.segment.rsc +2 -2
  356. package/.next/server/app/settings/appearance.segments/!KGFwcCk/settings/appearance.segment.rsc +1 -1
  357. package/.next/server/app/settings/appearance.segments/!KGFwcCk/settings.segment.rsc +1 -1
  358. package/.next/server/app/settings/appearance.segments/!KGFwcCk.segment.rsc +2 -2
  359. package/.next/server/app/settings/appearance.segments/_full.segment.rsc +4 -4
  360. package/.next/server/app/settings/appearance.segments/_head.segment.rsc +1 -1
  361. package/.next/server/app/settings/appearance.segments/_index.segment.rsc +2 -2
  362. package/.next/server/app/settings/appearance.segments/_tree.segment.rsc +2 -2
  363. package/.next/server/app/settings/notifications.html +1 -1
  364. package/.next/server/app/settings/notifications.rsc +4 -4
  365. package/.next/server/app/settings/notifications.segments/!KGFwcCk/settings/notifications/__PAGE__.segment.rsc +2 -2
  366. package/.next/server/app/settings/notifications.segments/!KGFwcCk/settings/notifications.segment.rsc +1 -1
  367. package/.next/server/app/settings/notifications.segments/!KGFwcCk/settings.segment.rsc +1 -1
  368. package/.next/server/app/settings/notifications.segments/!KGFwcCk.segment.rsc +2 -2
  369. package/.next/server/app/settings/notifications.segments/_full.segment.rsc +4 -4
  370. package/.next/server/app/settings/notifications.segments/_head.segment.rsc +1 -1
  371. package/.next/server/app/settings/notifications.segments/_index.segment.rsc +2 -2
  372. package/.next/server/app/settings/notifications.segments/_tree.segment.rsc +2 -2
  373. package/.next/server/app/settings/providers/new.html +1 -1
  374. package/.next/server/app/settings/providers/new.rsc +4 -4
  375. package/.next/server/app/settings/providers/new.segments/!KGFwcCk/settings/providers/new/__PAGE__.segment.rsc +2 -2
  376. package/.next/server/app/settings/providers/new.segments/!KGFwcCk/settings/providers/new.segment.rsc +1 -1
  377. package/.next/server/app/settings/providers/new.segments/!KGFwcCk/settings/providers.segment.rsc +1 -1
  378. package/.next/server/app/settings/providers/new.segments/!KGFwcCk/settings.segment.rsc +1 -1
  379. package/.next/server/app/settings/providers/new.segments/!KGFwcCk.segment.rsc +2 -2
  380. package/.next/server/app/settings/providers/new.segments/_full.segment.rsc +4 -4
  381. package/.next/server/app/settings/providers/new.segments/_head.segment.rsc +1 -1
  382. package/.next/server/app/settings/providers/new.segments/_index.segment.rsc +2 -2
  383. package/.next/server/app/settings/providers/new.segments/_tree.segment.rsc +2 -2
  384. package/.next/server/app/settings/providers.html +1 -1
  385. package/.next/server/app/settings/providers.rsc +4 -4
  386. package/.next/server/app/settings/providers.segments/!KGFwcCk/settings/providers/__PAGE__.segment.rsc +2 -2
  387. package/.next/server/app/settings/providers.segments/!KGFwcCk/settings/providers.segment.rsc +1 -1
  388. package/.next/server/app/settings/providers.segments/!KGFwcCk/settings.segment.rsc +1 -1
  389. package/.next/server/app/settings/providers.segments/!KGFwcCk.segment.rsc +2 -2
  390. package/.next/server/app/settings/providers.segments/_full.segment.rsc +4 -4
  391. package/.next/server/app/settings/providers.segments/_head.segment.rsc +1 -1
  392. package/.next/server/app/settings/providers.segments/_index.segment.rsc +2 -2
  393. package/.next/server/app/settings/providers.segments/_tree.segment.rsc +2 -2
  394. package/.next/server/app/settings/session.html +1 -1
  395. package/.next/server/app/settings/session.rsc +4 -4
  396. package/.next/server/app/settings/session.segments/!KGFwcCk/settings/session/__PAGE__.segment.rsc +2 -2
  397. package/.next/server/app/settings/session.segments/!KGFwcCk/settings/session.segment.rsc +1 -1
  398. package/.next/server/app/settings/session.segments/!KGFwcCk/settings.segment.rsc +1 -1
  399. package/.next/server/app/settings/session.segments/!KGFwcCk.segment.rsc +2 -2
  400. package/.next/server/app/settings/session.segments/_full.segment.rsc +4 -4
  401. package/.next/server/app/settings/session.segments/_head.segment.rsc +1 -1
  402. package/.next/server/app/settings/session.segments/_index.segment.rsc +2 -2
  403. package/.next/server/app/settings/session.segments/_tree.segment.rsc +2 -2
  404. package/.next/server/app/settings.html +1 -1
  405. package/.next/server/app/settings.rsc +4 -4
  406. package/.next/server/app/settings.segments/!KGFwcCk/settings/__PAGE__.segment.rsc +2 -2
  407. package/.next/server/app/settings.segments/!KGFwcCk/settings.segment.rsc +1 -1
  408. package/.next/server/app/settings.segments/!KGFwcCk.segment.rsc +2 -2
  409. package/.next/server/app/settings.segments/_full.segment.rsc +4 -4
  410. package/.next/server/app/settings.segments/_head.segment.rsc +1 -1
  411. package/.next/server/app/settings.segments/_index.segment.rsc +2 -2
  412. package/.next/server/app/settings.segments/_tree.segment.rsc +2 -2
  413. package/.next/server/app/skills.html +1 -1
  414. package/.next/server/app/skills.rsc +4 -4
  415. package/.next/server/app/skills.segments/!KGFwcCk/skills/__PAGE__.segment.rsc +2 -2
  416. package/.next/server/app/skills.segments/!KGFwcCk/skills.segment.rsc +1 -1
  417. package/.next/server/app/skills.segments/!KGFwcCk.segment.rsc +2 -2
  418. package/.next/server/app/skills.segments/_full.segment.rsc +4 -4
  419. package/.next/server/app/skills.segments/_head.segment.rsc +1 -1
  420. package/.next/server/app/skills.segments/_index.segment.rsc +2 -2
  421. package/.next/server/app/skills.segments/_tree.segment.rsc +2 -2
  422. package/.next/server/app-paths-manifest.json +11 -3
  423. package/.next/server/chunks/1011.js +1 -1
  424. package/.next/server/chunks/1327.js +1 -1
  425. package/.next/server/chunks/1979.js +7 -2
  426. package/.next/server/chunks/2666.js +1 -0
  427. package/.next/server/chunks/3136.js +11 -0
  428. package/.next/server/chunks/319.js +45 -0
  429. package/.next/server/chunks/3445.js +2 -2
  430. package/.next/server/chunks/3764.js +1 -1
  431. package/.next/server/chunks/4053.js +4971 -0
  432. package/.next/server/chunks/5292.js +201 -0
  433. package/.next/server/chunks/5318.js +1 -1
  434. package/.next/server/chunks/5472.js +1 -1
  435. package/.next/server/chunks/6304.js +1 -1
  436. package/.next/server/chunks/6705.js +1 -1
  437. package/.next/server/chunks/7539.js +5 -0
  438. package/.next/server/chunks/7891.js +1 -0
  439. package/.next/server/chunks/8578.js +1 -1
  440. package/.next/server/chunks/8728.js +1 -0
  441. package/.next/server/middleware-build-manifest.js +1 -1
  442. package/.next/server/middleware-react-loadable-manifest.js +1 -1
  443. package/.next/server/pages/404.html +1 -1
  444. package/.next/server/pages/500.html +1 -1
  445. package/.next/server/server-reference-manifest.json +1 -1
  446. package/.next/static/chunks/12644.84908edd1bec8b5a.js +1 -0
  447. package/.next/static/chunks/1550-9a32fa02f6722fc7.js +25 -0
  448. package/.next/static/chunks/18977.393a8bc1bef44fc4.js +1 -0
  449. package/.next/static/chunks/{2503.bb9d3528c3c7ccae.js → 2503.68e12779c4b14adb.js} +1 -1
  450. package/.next/static/chunks/25781-c77dc5d11fb85d82.js +201 -0
  451. package/.next/static/chunks/{27455.1bce740b63d7c3cc.js → 27455.8f2189c777c63368.js} +1 -1
  452. package/.next/static/chunks/33072.3d32bb7b2a85ca9b.js +1 -0
  453. package/.next/static/chunks/39267.0c93a6bed8e46ac0.js +1 -0
  454. package/.next/static/chunks/52333.ff3bf0753b68875e.js +1 -0
  455. package/.next/static/chunks/69940.42e1ca99efc62caf.js +1 -0
  456. package/.next/static/chunks/70400.ffe0412efe741888.js +1 -0
  457. package/.next/static/chunks/7113.336a2a8deabe2aa5.js +1 -0
  458. package/.next/static/chunks/{71642.852436e8f0287b89.js → 71642.e11bcaa30efbf1f2.js} +1 -1
  459. package/.next/static/chunks/{72839.a5325a99f8c12fed.js → 72839.225c36dd5e767a20.js} +1 -1
  460. package/.next/static/chunks/{69427.a0b463c808aa54c8.js → 81272.b0027c9bc80050aa.js} +1 -1
  461. package/.next/static/chunks/85853.421f0c913b3d332b.js +1 -0
  462. package/.next/static/chunks/86155.3c5c1468fa2f446e.js +1 -0
  463. package/.next/static/chunks/86339.ba009abde9765665.js +1 -0
  464. package/.next/static/chunks/86939-51ae17d3d12c0310.js +1 -0
  465. package/.next/static/chunks/93794-b87eef7d177fe7b3.js +32 -0
  466. package/.next/static/chunks/989-6074551b2b54a168.js +3 -0
  467. package/.next/static/chunks/app/(app)/agents/[name]/page-6954a12623e4bdcf.js +8 -0
  468. package/.next/static/chunks/app/(app)/agents/{page-6fcfd7ab6781814e.js → page-b984c01f39aed22e.js} +1 -1
  469. package/.next/static/chunks/app/(app)/claude-md/edit/page-575c5ccdc585516c.js +1 -0
  470. package/.next/static/chunks/app/(app)/claude-md/{page-cd9e2176a12ba241.js → page-aab6df0c14c657f3.js} +1 -1
  471. package/.next/static/chunks/app/(app)/commands/[name]/page-ea86a4400fd29210.js +6 -0
  472. package/.next/static/chunks/app/(app)/commands/{page-f126b608b04747ac.js → page-3867a45c1378c6fe.js} +1 -1
  473. package/.next/static/chunks/app/(app)/hooks/[event]/{page-28038323fd29adfa.js → page-2c41e810c15a1149.js} +2 -2
  474. package/.next/static/chunks/app/(app)/hooks/{page-f1f39284e53c0344.js → page-49f9dbb78a3f97df.js} +1 -1
  475. package/.next/static/chunks/app/(app)/inbox/[id]/page-885a258b67e47b00.js +1 -0
  476. package/.next/static/chunks/app/(app)/inbox/page-592249fc155b9fe4.js +1 -0
  477. package/.next/static/chunks/app/(app)/jobs/[id]/edit/page-121bf977a839488c.js +1 -0
  478. package/.next/static/chunks/app/(app)/jobs/[id]/page-ba516fa01db89ea0.js +1 -0
  479. package/.next/static/chunks/app/(app)/jobs/[id]/runs/[runId]/page-0650e6f678fae5b8.js +1 -0
  480. package/.next/static/chunks/app/(app)/jobs/page-da3fe23a43277e67.js +1 -0
  481. package/.next/static/chunks/app/(app)/{layout-ce9e1be301c60fe5.js → layout-3cd80708648e0723.js} +1 -1
  482. package/.next/static/chunks/app/(app)/mcp-servers/[name]/{page-d6d805a27ec0b0c0.js → page-9290a7940a32d9ac.js} +1 -1
  483. package/.next/static/chunks/app/(app)/mcp-servers/page-1e828264f81ee08c.js +1 -0
  484. package/.next/static/chunks/app/(app)/{page-027a5382da30ddb9.js → page-2d171ffc3e1945e1.js} +1 -1
  485. package/.next/static/chunks/app/(app)/plugins/page-7e70e0b3ead44a99.js +1 -0
  486. package/.next/static/chunks/app/(app)/reviews/[owner]/[repo]/[number]/page-4396e9d6df189336.js +13 -0
  487. package/.next/static/chunks/app/(app)/reviews/[owner]/[repo]/{page-c5fd013309ab3eba.js → page-76a072cbfe3d9f0e.js} +1 -1
  488. package/.next/static/chunks/app/(app)/reviews/{page-47530d93bb9d4a76.js → page-deaa44f0ce253da8.js} +1 -1
  489. package/.next/static/chunks/app/(app)/sessions/[id]/page-95bcce2e0b9f827a.js +1 -0
  490. package/.next/static/chunks/app/(app)/settings/appearance/{page-95902da748ac5f1e.js → page-433fcfb9b95fb22e.js} +1 -1
  491. package/.next/static/chunks/app/(app)/settings/notifications/page-e5309337f125a059.js +1 -0
  492. package/.next/static/chunks/app/(app)/settings/{page-8ed16a66fdde10cd.js → page-353ef8c508418af1.js} +1 -1
  493. package/.next/static/chunks/app/(app)/settings/providers/[id]/page-2cacea2e60ba435c.js +1 -0
  494. package/.next/static/chunks/app/(app)/settings/providers/new/page-d40acef3abfc7c19.js +1 -0
  495. package/.next/static/chunks/app/(app)/settings/providers/page-098d8f399c663944.js +1 -0
  496. package/.next/static/chunks/app/(app)/settings/session/page-706118ba33c2b99f.js +1 -0
  497. package/.next/static/chunks/app/(app)/skills/[name]/page-7dd7c0f316742c01.js +6 -0
  498. package/.next/static/chunks/app/(app)/skills/{page-c52773eacb27c04e.js → page-48d0bbe201180fc8.js} +1 -1
  499. package/.next/static/chunks/app/_global-error/page-bf8153dffcb47d46.js +1 -0
  500. package/.next/static/chunks/app/api/agents/[name]/route-bf8153dffcb47d46.js +1 -0
  501. package/.next/static/chunks/app/api/agents/route-bf8153dffcb47d46.js +1 -0
  502. package/.next/static/chunks/app/api/assistant-session/route-bf8153dffcb47d46.js +1 -0
  503. package/.next/static/chunks/app/api/auth/check/route-bf8153dffcb47d46.js +1 -0
  504. package/.next/static/chunks/app/api/auth/login/route-bf8153dffcb47d46.js +1 -0
  505. package/.next/static/chunks/app/api/auth/setup/route-bf8153dffcb47d46.js +1 -0
  506. package/.next/static/chunks/app/api/auth/ws-token/route-bf8153dffcb47d46.js +1 -0
  507. package/.next/static/chunks/app/api/btw/route-bf8153dffcb47d46.js +1 -0
  508. package/.next/static/chunks/app/api/claude-md/route-bf8153dffcb47d46.js +1 -0
  509. package/.next/static/chunks/app/api/commands/[name]/route-bf8153dffcb47d46.js +1 -0
  510. package/.next/static/chunks/app/api/commands/route-bf8153dffcb47d46.js +1 -0
  511. package/.next/static/chunks/app/api/config/cwd/route-bf8153dffcb47d46.js +1 -0
  512. package/.next/static/chunks/app/api/defaults/route-bf8153dffcb47d46.js +1 -0
  513. package/.next/static/chunks/app/api/filesystem/browse/route-bf8153dffcb47d46.js +1 -0
  514. package/.next/static/chunks/app/api/filesystem/files/route-bf8153dffcb47d46.js +1 -0
  515. package/.next/static/chunks/app/api/filesystem/mkdir/route-bf8153dffcb47d46.js +1 -0
  516. package/.next/static/chunks/app/api/filesystem/read/route-bf8153dffcb47d46.js +1 -0
  517. package/.next/static/chunks/app/api/git/clone/route-bf8153dffcb47d46.js +1 -0
  518. package/.next/static/chunks/app/api/git/commit/route-bf8153dffcb47d46.js +1 -0
  519. package/.next/static/chunks/app/api/git/diff/route-bf8153dffcb47d46.js +1 -0
  520. package/.next/static/chunks/app/api/git/discard/route-bf8153dffcb47d46.js +1 -0
  521. package/.next/static/chunks/app/api/git/generate-message/route-bf8153dffcb47d46.js +1 -0
  522. package/.next/static/chunks/app/api/git/push/route-bf8153dffcb47d46.js +1 -0
  523. package/.next/static/chunks/app/api/git/status/route-bf8153dffcb47d46.js +1 -0
  524. package/.next/static/chunks/app/api/github/file-content/route-bf8153dffcb47d46.js +1 -0
  525. package/.next/static/chunks/app/api/github/orgs/route-bf8153dffcb47d46.js +1 -0
  526. package/.next/static/chunks/app/api/github/prs/checks/route-bf8153dffcb47d46.js +1 -0
  527. package/.next/static/chunks/app/api/github/prs/diff/route-bf8153dffcb47d46.js +1 -0
  528. package/.next/static/chunks/app/api/github/prs/review/route-bf8153dffcb47d46.js +1 -0
  529. package/.next/static/chunks/app/api/github/prs/route-bf8153dffcb47d46.js +1 -0
  530. package/.next/static/chunks/app/api/github/prs/view/route-bf8153dffcb47d46.js +1 -0
  531. package/.next/static/chunks/app/api/github/repos/route-bf8153dffcb47d46.js +1 -0
  532. package/.next/static/chunks/app/api/github/review-session/route-bf8153dffcb47d46.js +1 -0
  533. package/.next/static/chunks/app/api/health/route-bf8153dffcb47d46.js +1 -0
  534. package/.next/static/chunks/app/api/hooks/route-bf8153dffcb47d46.js +1 -0
  535. package/.next/static/chunks/app/api/inbox/[id]/route-bf8153dffcb47d46.js +1 -0
  536. package/.next/static/chunks/app/api/inbox/route-bf8153dffcb47d46.js +1 -0
  537. package/.next/static/chunks/app/api/jobs/[id]/route-bf8153dffcb47d46.js +1 -0
  538. package/.next/static/chunks/app/api/jobs/[id]/runs/[runId]/route-bf8153dffcb47d46.js +1 -0
  539. package/.next/static/chunks/app/api/jobs/[id]/runs/[runId]/transcript/route-bf8153dffcb47d46.js +1 -0
  540. package/.next/static/chunks/app/api/jobs/[id]/runs/route-bf8153dffcb47d46.js +1 -0
  541. package/.next/static/chunks/app/api/jobs/[id]/stop/route-bf8153dffcb47d46.js +1 -0
  542. package/.next/static/chunks/app/api/jobs/[id]/trigger/route-bf8153dffcb47d46.js +1 -0
  543. package/.next/static/chunks/app/api/jobs/mcp-discover/route-bf8153dffcb47d46.js +1 -0
  544. package/.next/static/chunks/app/api/jobs/route-bf8153dffcb47d46.js +1 -0
  545. package/.next/static/chunks/app/api/jobs/status/route-bf8153dffcb47d46.js +1 -0
  546. package/.next/static/chunks/app/api/mcp-servers/[name]/route-bf8153dffcb47d46.js +1 -0
  547. package/.next/static/chunks/app/api/mcp-servers/[name]/test/route-bf8153dffcb47d46.js +1 -0
  548. package/.next/static/chunks/app/api/mcp-servers/[name]/tools/route-bf8153dffcb47d46.js +1 -0
  549. package/.next/static/chunks/app/api/mcp-servers/route-bf8153dffcb47d46.js +1 -0
  550. package/.next/static/chunks/app/api/notifications/route-bf8153dffcb47d46.js +1 -0
  551. package/.next/static/chunks/app/api/notifications/test/route-bf8153dffcb47d46.js +1 -0
  552. package/.next/static/chunks/app/api/plugins/[id]/route-bf8153dffcb47d46.js +1 -0
  553. package/.next/static/chunks/app/api/plugins/install/route-bf8153dffcb47d46.js +1 -0
  554. package/.next/static/chunks/app/api/plugins/marketplaces/[name]/route-bf8153dffcb47d46.js +1 -0
  555. package/.next/static/chunks/app/api/plugins/marketplaces/route-bf8153dffcb47d46.js +1 -0
  556. package/.next/static/chunks/app/api/plugins/route-bf8153dffcb47d46.js +1 -0
  557. package/.next/static/chunks/app/api/providers/[id]/route-bf8153dffcb47d46.js +1 -0
  558. package/.next/static/chunks/app/api/providers/route-bf8153dffcb47d46.js +1 -0
  559. package/.next/static/chunks/app/api/reviews/pinned/route-bf8153dffcb47d46.js +1 -0
  560. package/.next/static/chunks/app/api/sessions/[id]/context/route-bf8153dffcb47d46.js +1 -0
  561. package/.next/static/chunks/app/api/sessions/[id]/mcp/route-bf8153dffcb47d46.js +1 -0
  562. package/.next/static/chunks/app/api/sessions/[id]/route-bf8153dffcb47d46.js +1 -0
  563. package/.next/static/chunks/app/api/sessions/[id]/search/route-bf8153dffcb47d46.js +1 -0
  564. package/.next/static/chunks/app/api/sessions/[id]/tabs/route-bf8153dffcb47d46.js +1 -0
  565. package/.next/static/chunks/app/api/sessions/bulk-delete/route-bf8153dffcb47d46.js +1 -0
  566. package/.next/static/chunks/app/api/sessions/by-ids/route-bf8153dffcb47d46.js +1 -0
  567. package/.next/static/chunks/app/api/sessions/group/route-bf8153dffcb47d46.js +1 -0
  568. package/.next/static/chunks/app/api/sessions/pinned/route-bf8153dffcb47d46.js +1 -0
  569. package/.next/static/chunks/app/api/sessions/route-bf8153dffcb47d46.js +1 -0
  570. package/.next/static/chunks/app/api/sessions/search/route-bf8153dffcb47d46.js +1 -0
  571. package/.next/static/chunks/app/api/sessions/thinking/route-bf8153dffcb47d46.js +1 -0
  572. package/.next/static/chunks/app/api/skills/[name]/route-bf8153dffcb47d46.js +1 -0
  573. package/.next/static/chunks/app/api/skills/route-bf8153dffcb47d46.js +1 -0
  574. package/.next/static/chunks/app/api/terminal/[id]/route-bf8153dffcb47d46.js +1 -0
  575. package/.next/static/chunks/app/api/terminal/route-bf8153dffcb47d46.js +1 -0
  576. package/.next/static/chunks/app/api/usage/route-bf8153dffcb47d46.js +1 -0
  577. package/.next/static/chunks/app/api/version/changelog/route-bf8153dffcb47d46.js +1 -0
  578. package/.next/static/chunks/app/api/version/cockpit/changelog/route-bf8153dffcb47d46.js +1 -0
  579. package/.next/static/chunks/app/api/version/cockpit/route-bf8153dffcb47d46.js +1 -0
  580. package/.next/static/chunks/app/api/version/route-bf8153dffcb47d46.js +1 -0
  581. package/.next/static/chunks/{framework-6fd9f138158c42e0.js → framework-45a1aae1a0f575fd.js} +1 -1
  582. package/.next/static/chunks/{main-5dac9bfffcc23702.js → main-eb9ff0b73c75808a.js} +3 -3
  583. package/.next/static/chunks/next/dist/client/components/builtin/app-error-bf8153dffcb47d46.js +1 -0
  584. package/.next/static/chunks/next/dist/client/components/builtin/forbidden-bf8153dffcb47d46.js +1 -0
  585. package/.next/static/chunks/next/dist/client/components/builtin/not-found-bf8153dffcb47d46.js +1 -0
  586. package/.next/static/chunks/next/dist/client/components/builtin/unauthorized-bf8153dffcb47d46.js +1 -0
  587. package/.next/static/chunks/webpack-76a545b642140725.js +1 -0
  588. package/.next/static/css/483101dd9c42fb97.css +1 -0
  589. package/.next/static/mmHo0MmzQHWjZATtI-VbH/_buildManifest.js +1 -0
  590. package/README.md +13 -4
  591. package/bin/cockpit-hook-bridge.mjs +93 -24
  592. package/dist/server.js +10 -0
  593. package/dist/src/lib/cli-commands.js +147 -0
  594. package/dist/src/lib/models.js +8 -0
  595. package/dist/src/lib/paste-detect.js +161 -0
  596. package/dist/src/server/assistant-settings.js +35 -0
  597. package/dist/src/server/claude-bin.js +21 -0
  598. package/dist/src/server/cli-init-fetch.js +6 -1
  599. package/dist/src/server/inbox.js +2 -2
  600. package/dist/src/server/job-scheduler.js +146 -4
  601. package/dist/src/server/job-storage.js +33 -0
  602. package/dist/src/server/mcp/cockpit-agent-prompt.js +5 -0
  603. package/dist/src/server/mcp/cockpit-config-server.js +632 -0
  604. package/dist/src/server/mcp/run-context.js +23 -0
  605. package/dist/src/server/notifications.js +51 -10
  606. package/dist/src/server/plugins.js +103 -0
  607. package/dist/src/server/providers.js +25 -2
  608. package/dist/src/server/pty-runtime.js +112 -3
  609. package/dist/src/server/pty-session.js +7 -4
  610. package/dist/src/server/session-manager.js +338 -100
  611. package/dist/src/server/singleton.js +9 -0
  612. package/dist/src/server/terminal-buffer.js +17 -0
  613. package/dist/src/server/terminal-manager.js +9 -13
  614. package/dist/src/server/transcript.js +39 -22
  615. package/dist/src/server/ws-handler.js +18 -6
  616. package/next.config.ts +1 -0
  617. package/package.json +3 -2
  618. package/.next/server/app/(app)/changes/page.js +0 -2
  619. package/.next/server/app/(app)/changes/page.js.nft.json +0 -1
  620. package/.next/server/app/(app)/changes/page_client-reference-manifest.js +0 -1
  621. package/.next/server/app/(app)/files/page.js +0 -2
  622. package/.next/server/app/(app)/files/page_client-reference-manifest.js +0 -1
  623. package/.next/server/app/changes.html +0 -1
  624. package/.next/server/app/changes.segments/!KGFwcCk/changes/__PAGE__.segment.rsc +0 -9
  625. package/.next/server/app/changes.segments/_index.segment.rsc +0 -5
  626. package/.next/server/app/files.html +0 -1
  627. package/.next/server/app/files.meta +0 -16
  628. package/.next/server/app/files.rsc +0 -23
  629. package/.next/server/app/files.segments/!KGFwcCk/files.segment.rsc +0 -5
  630. package/.next/server/app/files.segments/!KGFwcCk.segment.rsc +0 -7
  631. package/.next/server/app/files.segments/_full.segment.rsc +0 -23
  632. package/.next/server/app/files.segments/_head.segment.rsc +0 -6
  633. package/.next/server/app/files.segments/_tree.segment.rsc +0 -2
  634. package/.next/server/chunks/3006.js +0 -199
  635. package/.next/server/chunks/4342.js +0 -1
  636. package/.next/server/chunks/4352.js +0 -1
  637. package/.next/server/chunks/4445.js +0 -1
  638. package/.next/server/chunks/63.js +0 -45
  639. package/.next/server/chunks/7782.js +0 -6
  640. package/.next/server/chunks/8148.js +0 -1
  641. package/.next/server/chunks/9599.js +0 -11
  642. package/.next/static/chunks/18977.a98edaf19c6df2d4.js +0 -1
  643. package/.next/static/chunks/26126-97874904b42befb8.js +0 -1
  644. package/.next/static/chunks/31010-6e87f77b97544424.js +0 -1
  645. package/.next/static/chunks/33072.9c3cd19e8d515dea.js +0 -1
  646. package/.next/static/chunks/3765-d323c6675307a63e.js +0 -20
  647. package/.next/static/chunks/39267.ef60669ade47cf4c.js +0 -1
  648. package/.next/static/chunks/41487-d802643f4a8fad3c.js +0 -199
  649. package/.next/static/chunks/48273-bbd15bac6733dfc4.js +0 -6
  650. package/.next/static/chunks/52333.f98d1cca9a127b34.js +0 -1
  651. package/.next/static/chunks/6935-f436a624267529fb.js +0 -1
  652. package/.next/static/chunks/70400.1816c247ad90f9bc.js +0 -1
  653. package/.next/static/chunks/7113.39704408fef3d26e.js +0 -1
  654. package/.next/static/chunks/85853.39872899093b140a.js +0 -1
  655. package/.next/static/chunks/86155.40f687f9aaa13854.js +0 -1
  656. package/.next/static/chunks/86339.4dbd51a9b9871f65.js +0 -1
  657. package/.next/static/chunks/86939-dfc6f8eb395caa89.js +0 -1
  658. package/.next/static/chunks/93794-5f89a674d8cefcff.js +0 -32
  659. package/.next/static/chunks/989-94bf2b9d242776c3.js +0 -3
  660. package/.next/static/chunks/app/(app)/agents/[name]/page-8bdd0359043537d4.js +0 -8
  661. package/.next/static/chunks/app/(app)/changes/page-4549a5bd72d77e3e.js +0 -1
  662. package/.next/static/chunks/app/(app)/claude-md/edit/page-08e6e120e71979f4.js +0 -1
  663. package/.next/static/chunks/app/(app)/commands/[name]/page-7cdfdef29ded0aa0.js +0 -6
  664. package/.next/static/chunks/app/(app)/files/page-f526eb95821e000e.js +0 -1
  665. package/.next/static/chunks/app/(app)/inbox/[id]/page-bc1ff3a0db0114a4.js +0 -1
  666. package/.next/static/chunks/app/(app)/inbox/page-82e03870103ce9bd.js +0 -1
  667. package/.next/static/chunks/app/(app)/jobs/[id]/edit/page-7fb788f772ff2129.js +0 -1
  668. package/.next/static/chunks/app/(app)/jobs/[id]/page-a5856b9ae967ff59.js +0 -1
  669. package/.next/static/chunks/app/(app)/jobs/[id]/runs/[runId]/page-b7c513402db11db6.js +0 -1
  670. package/.next/static/chunks/app/(app)/jobs/page-e9bbd6c116b9699f.js +0 -1
  671. package/.next/static/chunks/app/(app)/mcp-servers/page-4b7276d43451cd43.js +0 -1
  672. package/.next/static/chunks/app/(app)/reviews/[owner]/[repo]/[number]/page-9ab2955c455bb5fa.js +0 -13
  673. package/.next/static/chunks/app/(app)/sessions/[id]/page-94f891e1b54fd05f.js +0 -1
  674. package/.next/static/chunks/app/(app)/settings/notifications/page-229f1db6beb1d19c.js +0 -1
  675. package/.next/static/chunks/app/(app)/settings/providers/[id]/page-13654263246617b3.js +0 -1
  676. package/.next/static/chunks/app/(app)/settings/providers/new/page-e1798e321ccbc6df.js +0 -1
  677. package/.next/static/chunks/app/(app)/settings/providers/page-0bb4c1db2ee35b3d.js +0 -1
  678. package/.next/static/chunks/app/(app)/settings/session/page-ab216a8fa37a0f76.js +0 -1
  679. package/.next/static/chunks/app/(app)/skills/[name]/page-8ab85d5090967ee4.js +0 -6
  680. package/.next/static/chunks/app/_global-error/page-fc747760bd4c8a4b.js +0 -1
  681. package/.next/static/chunks/app/api/agents/[name]/route-fc747760bd4c8a4b.js +0 -1
  682. package/.next/static/chunks/app/api/agents/route-fc747760bd4c8a4b.js +0 -1
  683. package/.next/static/chunks/app/api/auth/check/route-fc747760bd4c8a4b.js +0 -1
  684. package/.next/static/chunks/app/api/auth/login/route-fc747760bd4c8a4b.js +0 -1
  685. package/.next/static/chunks/app/api/auth/setup/route-fc747760bd4c8a4b.js +0 -1
  686. package/.next/static/chunks/app/api/auth/ws-token/route-fc747760bd4c8a4b.js +0 -1
  687. package/.next/static/chunks/app/api/btw/route-fc747760bd4c8a4b.js +0 -1
  688. package/.next/static/chunks/app/api/claude-md/route-fc747760bd4c8a4b.js +0 -1
  689. package/.next/static/chunks/app/api/commands/[name]/route-fc747760bd4c8a4b.js +0 -1
  690. package/.next/static/chunks/app/api/commands/route-fc747760bd4c8a4b.js +0 -1
  691. package/.next/static/chunks/app/api/defaults/route-fc747760bd4c8a4b.js +0 -1
  692. package/.next/static/chunks/app/api/filesystem/browse/route-fc747760bd4c8a4b.js +0 -1
  693. package/.next/static/chunks/app/api/filesystem/files/route-fc747760bd4c8a4b.js +0 -1
  694. package/.next/static/chunks/app/api/filesystem/mkdir/route-fc747760bd4c8a4b.js +0 -1
  695. package/.next/static/chunks/app/api/filesystem/read/route-fc747760bd4c8a4b.js +0 -1
  696. package/.next/static/chunks/app/api/git/clone/route-fc747760bd4c8a4b.js +0 -1
  697. package/.next/static/chunks/app/api/git/commit/route-fc747760bd4c8a4b.js +0 -1
  698. package/.next/static/chunks/app/api/git/diff/route-fc747760bd4c8a4b.js +0 -1
  699. package/.next/static/chunks/app/api/git/discard/route-fc747760bd4c8a4b.js +0 -1
  700. package/.next/static/chunks/app/api/git/generate-message/route-fc747760bd4c8a4b.js +0 -1
  701. package/.next/static/chunks/app/api/git/push/route-fc747760bd4c8a4b.js +0 -1
  702. package/.next/static/chunks/app/api/git/status/route-fc747760bd4c8a4b.js +0 -1
  703. package/.next/static/chunks/app/api/github/file-content/route-fc747760bd4c8a4b.js +0 -1
  704. package/.next/static/chunks/app/api/github/orgs/route-fc747760bd4c8a4b.js +0 -1
  705. package/.next/static/chunks/app/api/github/prs/checks/route-fc747760bd4c8a4b.js +0 -1
  706. package/.next/static/chunks/app/api/github/prs/diff/route-fc747760bd4c8a4b.js +0 -1
  707. package/.next/static/chunks/app/api/github/prs/review/route-fc747760bd4c8a4b.js +0 -1
  708. package/.next/static/chunks/app/api/github/prs/route-fc747760bd4c8a4b.js +0 -1
  709. package/.next/static/chunks/app/api/github/prs/view/route-fc747760bd4c8a4b.js +0 -1
  710. package/.next/static/chunks/app/api/github/repos/route-fc747760bd4c8a4b.js +0 -1
  711. package/.next/static/chunks/app/api/github/review-session/route-fc747760bd4c8a4b.js +0 -1
  712. package/.next/static/chunks/app/api/health/route-fc747760bd4c8a4b.js +0 -1
  713. package/.next/static/chunks/app/api/hooks/route-fc747760bd4c8a4b.js +0 -1
  714. package/.next/static/chunks/app/api/inbox/[id]/route-fc747760bd4c8a4b.js +0 -1
  715. package/.next/static/chunks/app/api/inbox/route-fc747760bd4c8a4b.js +0 -1
  716. package/.next/static/chunks/app/api/jobs/[id]/route-fc747760bd4c8a4b.js +0 -1
  717. package/.next/static/chunks/app/api/jobs/[id]/runs/[runId]/route-fc747760bd4c8a4b.js +0 -1
  718. package/.next/static/chunks/app/api/jobs/[id]/runs/[runId]/transcript/route-fc747760bd4c8a4b.js +0 -1
  719. package/.next/static/chunks/app/api/jobs/[id]/runs/route-fc747760bd4c8a4b.js +0 -1
  720. package/.next/static/chunks/app/api/jobs/[id]/trigger/route-fc747760bd4c8a4b.js +0 -1
  721. package/.next/static/chunks/app/api/jobs/mcp-discover/route-fc747760bd4c8a4b.js +0 -1
  722. package/.next/static/chunks/app/api/jobs/route-fc747760bd4c8a4b.js +0 -1
  723. package/.next/static/chunks/app/api/jobs/status/route-fc747760bd4c8a4b.js +0 -1
  724. package/.next/static/chunks/app/api/mcp-servers/[name]/route-fc747760bd4c8a4b.js +0 -1
  725. package/.next/static/chunks/app/api/mcp-servers/[name]/test/route-fc747760bd4c8a4b.js +0 -1
  726. package/.next/static/chunks/app/api/mcp-servers/route-fc747760bd4c8a4b.js +0 -1
  727. package/.next/static/chunks/app/api/notifications/route-fc747760bd4c8a4b.js +0 -1
  728. package/.next/static/chunks/app/api/notifications/test/route-fc747760bd4c8a4b.js +0 -1
  729. package/.next/static/chunks/app/api/providers/[id]/route-fc747760bd4c8a4b.js +0 -1
  730. package/.next/static/chunks/app/api/providers/route-fc747760bd4c8a4b.js +0 -1
  731. package/.next/static/chunks/app/api/reviews/pinned/route-fc747760bd4c8a4b.js +0 -1
  732. package/.next/static/chunks/app/api/sessions/[id]/context/route-fc747760bd4c8a4b.js +0 -1
  733. package/.next/static/chunks/app/api/sessions/[id]/mcp/route-fc747760bd4c8a4b.js +0 -1
  734. package/.next/static/chunks/app/api/sessions/[id]/route-fc747760bd4c8a4b.js +0 -1
  735. package/.next/static/chunks/app/api/sessions/[id]/search/route-fc747760bd4c8a4b.js +0 -1
  736. package/.next/static/chunks/app/api/sessions/[id]/tabs/route-fc747760bd4c8a4b.js +0 -1
  737. package/.next/static/chunks/app/api/sessions/bulk-delete/route-fc747760bd4c8a4b.js +0 -1
  738. package/.next/static/chunks/app/api/sessions/by-ids/route-fc747760bd4c8a4b.js +0 -1
  739. package/.next/static/chunks/app/api/sessions/group/route-fc747760bd4c8a4b.js +0 -1
  740. package/.next/static/chunks/app/api/sessions/pinned/route-fc747760bd4c8a4b.js +0 -1
  741. package/.next/static/chunks/app/api/sessions/route-fc747760bd4c8a4b.js +0 -1
  742. package/.next/static/chunks/app/api/sessions/search/route-fc747760bd4c8a4b.js +0 -1
  743. package/.next/static/chunks/app/api/sessions/thinking/route-fc747760bd4c8a4b.js +0 -1
  744. package/.next/static/chunks/app/api/skills/[name]/route-fc747760bd4c8a4b.js +0 -1
  745. package/.next/static/chunks/app/api/skills/route-fc747760bd4c8a4b.js +0 -1
  746. package/.next/static/chunks/app/api/terminal/[id]/route-fc747760bd4c8a4b.js +0 -1
  747. package/.next/static/chunks/app/api/terminal/route-fc747760bd4c8a4b.js +0 -1
  748. package/.next/static/chunks/app/api/usage/route-fc747760bd4c8a4b.js +0 -1
  749. package/.next/static/chunks/app/api/version/changelog/route-fc747760bd4c8a4b.js +0 -1
  750. package/.next/static/chunks/app/api/version/cockpit/changelog/route-fc747760bd4c8a4b.js +0 -1
  751. package/.next/static/chunks/app/api/version/cockpit/route-fc747760bd4c8a4b.js +0 -1
  752. package/.next/static/chunks/app/api/version/route-fc747760bd4c8a4b.js +0 -1
  753. package/.next/static/chunks/next/dist/client/components/builtin/app-error-fc747760bd4c8a4b.js +0 -1
  754. package/.next/static/chunks/next/dist/client/components/builtin/forbidden-fc747760bd4c8a4b.js +0 -1
  755. package/.next/static/chunks/next/dist/client/components/builtin/not-found-fc747760bd4c8a4b.js +0 -1
  756. package/.next/static/chunks/next/dist/client/components/builtin/unauthorized-fc747760bd4c8a4b.js +0 -1
  757. package/.next/static/chunks/webpack-e31bb45fa59caed8.js +0 -1
  758. package/.next/static/css/3f8af4ae6f812d5c.css +0 -1
  759. package/.next/static/zr8XZzqb74eHitdlkpo-C/_buildManifest.js +0 -1
  760. /package/.next/static/{zr8XZzqb74eHitdlkpo-C → mmHo0MmzQHWjZATtI-VbH}/_ssgManifest.js +0 -0
@@ -0,0 +1 @@
1
+ "use strict";exports.id=2666,exports.ids=[2666],exports.modules={92666:(a,b,c)=>{c.d(b,{default:()=>d});let d=Object.freeze(JSON.parse('{"name":"Pierre Dark Soft","type":"dark","colors":{"editor.background":"#171717","editor.foreground":"#d4d4d4","foreground":"#d4d4d4","focusBorder":"#69b1ff","selection.background":"#1f3e5e","editor.selectionBackground":"#69b1ff4d","editor.lineHighlightBackground":"#1f3e5e8c","editorCursor.foreground":"#69b1ff","editorLineNumber.foreground":"#636363","editorLineNumber.activeForeground":"#8a8a8a","editorIndentGuide.background":"#262626","editorIndentGuide.activeBackground":"#2c2c2c","diffEditor.insertedTextBackground":"#60d1991a","diffEditor.deletedTextBackground":"#ff67621a","sideBar.background":"#101010","sideBar.foreground":"#8a8a8a","sideBar.border":"#1d1d1d","sideBarTitle.foreground":"#d4d4d4","sideBarSectionHeader.background":"#101010","sideBarSectionHeader.foreground":"#8a8a8a","sideBarSectionHeader.border":"#1d1d1d","activityBar.background":"#101010","activityBar.foreground":"#d4d4d4","activityBar.border":"#1d1d1d","activityBar.activeBorder":"#69b1ff","activityBarBadge.background":"#69b1ff","activityBarBadge.foreground":"#171717","titleBar.activeBackground":"#101010","titleBar.activeForeground":"#d4d4d4","titleBar.inactiveBackground":"#101010","titleBar.inactiveForeground":"#636363","titleBar.border":"#1d1d1d","list.activeSelectionBackground":"#1f3e5e99","list.activeSelectionForeground":"#d4d4d4","list.inactiveSelectionBackground":"#1f3e5e73","list.hoverBackground":"#1f3e5e59","list.focusOutline":"#69b1ff","tab.activeBackground":"#171717","tab.activeForeground":"#d4d4d4","tab.activeBorderTop":"#69b1ff","tab.inactiveBackground":"#101010","tab.inactiveForeground":"#636363","tab.border":"#1d1d1d","editorGroupHeader.tabsBackground":"#101010","editorGroupHeader.tabsBorder":"#1d1d1d","panel.background":"#101010","panel.border":"#1d1d1d","panelTitle.activeBorder":"#69b1ff","panelTitle.activeForeground":"#d4d4d4","panelTitle.inactiveForeground":"#636363","statusBar.background":"#101010","statusBar.foreground":"#8a8a8a","statusBar.border":"#1d1d1d","statusBar.noFolderBackground":"#101010","statusBar.debuggingBackground":"#ffd452","statusBar.debuggingForeground":"#171717","statusBarItem.remoteBackground":"#101010","statusBarItem.remoteForeground":"#8a8a8a","input.background":"#262626","input.border":"#2c2c2c","input.foreground":"#d4d4d4","input.placeholderForeground":"#525252","dropdown.background":"#262626","dropdown.border":"#2c2c2c","dropdown.foreground":"#d4d4d4","button.background":"#69b1ff","button.foreground":"#171717","button.hoverBackground":"#61a2e8","textLink.foreground":"#69b1ff","textLink.activeForeground":"#69b1ff","notifications.background":"#1d1d1d","notifications.foreground":"#d4d4d4","notifications.border":"#262626","notificationToast.border":"#262626","notificationCenter.border":"#262626","notificationCenterHeader.background":"#1d1d1d","notificationCenterHeader.foreground":"#8a8a8a","notificationLink.foreground":"#69b1ff","notificationsErrorIcon.foreground":"#ff6762","notificationsWarningIcon.foreground":"#ffd452","notificationsInfoIcon.foreground":"#68cdf2","quickInput.background":"#1d1d1d","quickInput.foreground":"#d4d4d4","quickInputTitle.background":"#1d1d1d","widget.border":"#262626","gitDecoration.addedResourceForeground":"#60d199","gitDecoration.conflictingResourceForeground":"#9d6afb","gitDecoration.modifiedResourceForeground":"#69b1ff","gitDecoration.deletedResourceForeground":"#ff6762","gitDecoration.untrackedResourceForeground":"#60d199","gitDecoration.ignoredResourceForeground":"#636363","merge.currentHeaderBackground":"#9d6afb4d","merge.currentContentBackground":"#9d6afb1f","merge.incomingHeaderBackground":"#68cdf24d","merge.incomingContentBackground":"#68cdf21f","editorOverviewRuler.currentContentForeground":"#9d6afb","editorOverviewRuler.incomingContentForeground":"#68cdf2","terminal.titleForeground":"#8a8a8a","terminal.titleInactiveForeground":"#636363","terminal.background":"#101010","terminal.foreground":"#8a8a8a","terminal.ansiBlack":"#171717","terminal.ansiRed":"#ff2e3f","terminal.ansiGreen":"#0dbe4e","terminal.ansiYellow":"#ffca00","terminal.ansiBlue":"#009fff","terminal.ansiMagenta":"#e130ac","terminal.ansiCyan":"#08c0ef","terminal.ansiWhite":"#bcbcbc","terminal.ansiBrightBlack":"#171717","terminal.ansiBrightRed":"#ff2e3f","terminal.ansiBrightGreen":"#86c427","terminal.ansiBrightYellow":"#ffca00","terminal.ansiBrightBlue":"#009fff","terminal.ansiBrightMagenta":"#e130ac","terminal.ansiBrightCyan":"#08c0ef","terminal.ansiBrightWhite":"#bcbcbc"},"tokenColors":[{"scope":["comment","punctuation.definition.comment"],"settings":{"foreground":"#636363"}},{"scope":"comment markup.link","settings":{"foreground":"#636363"}},{"scope":["string","constant.other.symbol"],"settings":{"foreground":"#8cda94"}},{"scope":["punctuation.definition.string.begin","punctuation.definition.string.end"],"settings":{"foreground":"#8cda94"}},{"scope":["constant.numeric","constant.language.boolean"],"settings":{"foreground":"#96d9f6"}},{"scope":"constant","settings":{"foreground":"#ffde80"}},{"scope":"punctuation.definition.constant","settings":{"foreground":"#ffde80"}},{"scope":"constant.language","settings":{"foreground":"#96d9f6"}},{"scope":"variable.other.constant","settings":{"foreground":"#ffbc56"}},{"scope":"keyword","settings":{"foreground":"#ff91a8"}},{"scope":"keyword.control","settings":{"foreground":"#ff91a8"}},{"scope":["storage","storage.type","storage.modifier"],"settings":{"foreground":"#ff91a8"}},{"scope":"token.storage","settings":{"foreground":"#ff91a8"}},{"scope":["keyword.operator.new","keyword.operator.expression.instanceof","keyword.operator.expression.typeof","keyword.operator.expression.void","keyword.operator.expression.delete","keyword.operator.expression.in","keyword.operator.expression.of","keyword.operator.expression.keyof"],"settings":{"foreground":"#ff91a8"}},{"scope":"keyword.operator.delete","settings":{"foreground":"#ff91a8"}},{"scope":["variable","identifier","meta.definition.variable"],"settings":{"foreground":"#ffba82"}},{"scope":["variable.other.readwrite","meta.object-literal.key","support.variable.property","support.variable.object.process","support.variable.object.node"],"settings":{"foreground":"#ffba82"}},{"scope":"variable.language","settings":{"foreground":"#ffbc56"}},{"scope":"variable.parameter.function","settings":{"foreground":"#8a8a8a"}},{"scope":"function.parameter","settings":{"foreground":"#8a8a8a"}},{"scope":"variable.parameter","settings":{"foreground":"#8a8a8a"}},{"scope":"variable.parameter.function.language.python","settings":{"foreground":"#ffde80"}},{"scope":"variable.parameter.function.python","settings":{"foreground":"#ffde80"}},{"scope":["support.function","entity.name.function","meta.function-call","meta.require","support.function.any-method","variable.function"],"settings":{"foreground":"#ba8ffd"}},{"scope":"keyword.other.special-method","settings":{"foreground":"#ba8ffd"}},{"scope":"entity.name.function","settings":{"foreground":"#ba8ffd"}},{"scope":"support.function.console","settings":{"foreground":"#ba8ffd"}},{"scope":["support.type","entity.name.type","entity.name.class","storage.type"],"settings":{"foreground":"#e290f0"}},{"scope":["support.class","entity.name.type.class"],"settings":{"foreground":"#e290f0"}},{"scope":["entity.name.class","variable.other.class.js","variable.other.class.ts"],"settings":{"foreground":"#e290f0"}},{"scope":"entity.name.class.identifier.namespace.type","settings":{"foreground":"#e290f0"}},{"scope":"entity.name.type.namespace","settings":{"foreground":"#ffbc56"}},{"scope":"entity.other.inherited-class","settings":{"foreground":"#e290f0"}},{"scope":"entity.name.namespace","settings":{"foreground":"#ffbc56"}},{"scope":"keyword.operator","settings":{"foreground":"#737373"}},{"scope":["keyword.operator.logical","keyword.operator.bitwise","keyword.operator.channel"],"settings":{"foreground":"#68cdf2"}},{"scope":["keyword.operator.arithmetic","keyword.operator.comparison","keyword.operator.relational","keyword.operator.increment","keyword.operator.decrement"],"settings":{"foreground":"#68cdf2"}},{"scope":"keyword.operator.assignment","settings":{"foreground":"#68cdf2"}},{"scope":"keyword.operator.assignment.compound","settings":{"foreground":"#ff91a8"}},{"scope":["keyword.operator.assignment.compound.js","keyword.operator.assignment.compound.ts"],"settings":{"foreground":"#68cdf2"}},{"scope":"keyword.operator.ternary","settings":{"foreground":"#ff91a8"}},{"scope":"keyword.operator.optional","settings":{"foreground":"#ff91a8"}},{"scope":"punctuation","settings":{"foreground":"#737373"}},{"scope":"punctuation.separator.delimiter","settings":{"foreground":"#737373"}},{"scope":"punctuation.separator.key-value","settings":{"foreground":"#737373"}},{"scope":"punctuation.terminator","settings":{"foreground":"#737373"}},{"scope":"meta.brace","settings":{"foreground":"#737373"}},{"scope":"meta.brace.square","settings":{"foreground":"#737373"}},{"scope":"meta.brace.round","settings":{"foreground":"#737373"}},{"scope":"function.brace","settings":{"foreground":"#737373"}},{"scope":["punctuation.definition.parameters","punctuation.definition.typeparameters"],"settings":{"foreground":"#737373"}},{"scope":["punctuation.definition.block","punctuation.definition.tag"],"settings":{"foreground":"#737373"}},{"scope":["meta.tag.tsx","meta.tag.jsx","meta.tag.js","meta.tag.ts"],"settings":{"foreground":"#737373"}},{"scope":"keyword.operator.expression.import","settings":{"foreground":"#ba8ffd"}},{"scope":"keyword.operator.module","settings":{"foreground":"#ff91a8"}},{"scope":"support.type.object.console","settings":{"foreground":"#ffba82"}},{"scope":["support.module.node","support.type.object.module","entity.name.type.module"],"settings":{"foreground":"#ffbc56"}},{"scope":"support.constant.math","settings":{"foreground":"#ffbc56"}},{"scope":"support.constant.property.math","settings":{"foreground":"#ffde80"}},{"scope":"support.constant.json","settings":{"foreground":"#ffde80"}},{"scope":"support.type.object.dom","settings":{"foreground":"#68cdf2"}},{"scope":["support.variable.dom","support.variable.property.dom"],"settings":{"foreground":"#ffba82"}},{"scope":"support.variable.property.process","settings":{"foreground":"#ffde80"}},{"scope":"meta.property.object","settings":{"foreground":"#ffba82"}},{"scope":"variable.parameter.function.js","settings":{"foreground":"#ffba82"}},{"scope":["keyword.other.template.begin","keyword.other.template.end"],"settings":{"foreground":"#8cda94"}},{"scope":["keyword.other.substitution.begin","keyword.other.substitution.end"],"settings":{"foreground":"#8cda94"}},{"scope":["punctuation.definition.template-expression.begin","punctuation.definition.template-expression.end"],"settings":{"foreground":"#ff91a8"}},{"scope":"meta.template.expression","settings":{"foreground":"#737373"}},{"scope":"punctuation.section.embedded","settings":{"foreground":"#ffba82"}},{"scope":"variable.interpolation","settings":{"foreground":"#ffba82"}},{"scope":["punctuation.section.embedded.begin","punctuation.section.embedded.end"],"settings":{"foreground":"#ff91a8"}},{"scope":"punctuation.quasi.element","settings":{"foreground":"#ff91a8"}},{"scope":["support.type.primitive.ts","support.type.builtin.ts","support.type.primitive.tsx","support.type.builtin.tsx"],"settings":{"foreground":"#e290f0"}},{"scope":"support.type.type.flowtype","settings":{"foreground":"#ba8ffd"}},{"scope":"support.type.primitive","settings":{"foreground":"#e290f0"}},{"scope":["meta.decorator","meta.decorator punctuation.decorator"],"settings":{"foreground":"#97c4ff"}},{"scope":"entity.name.function.decorator","settings":{"foreground":"#97c4ff"}},{"scope":"punctuation.definition.decorator","settings":{"foreground":"#97c4ff"}},{"scope":"support.variable.magic.python","settings":{"foreground":"#ffa685"}},{"scope":"variable.parameter.function.language.special.self.python","settings":{"foreground":"#ffbc56"}},{"scope":["punctuation.separator.period.python","punctuation.separator.element.python","punctuation.parenthesis.begin.python","punctuation.parenthesis.end.python"],"settings":{"foreground":"#737373"}},{"scope":["punctuation.definition.arguments.begin.python","punctuation.definition.arguments.end.python","punctuation.separator.arguments.python","punctuation.definition.list.begin.python","punctuation.definition.list.end.python"],"settings":{"foreground":"#737373"}},{"scope":"support.type.python","settings":{"foreground":"#68cdf2"}},{"scope":"keyword.operator.logical.python","settings":{"foreground":"#ff91a8"}},{"scope":"meta.function-call.generic.python","settings":{"foreground":"#ba8ffd"}},{"scope":"constant.character.format.placeholder.other.python","settings":{"foreground":"#ffde80"}},{"scope":"meta.function.decorator.python","settings":{"foreground":"#ba8ffd"}},{"scope":["support.token.decorator.python","meta.function.decorator.identifier.python"],"settings":{"foreground":"#68cdf2"}},{"scope":"storage.modifier.lifetime.rust","settings":{"foreground":"#737373"}},{"scope":"support.function.std.rust","settings":{"foreground":"#ba8ffd"}},{"scope":"entity.name.lifetime.rust","settings":{"foreground":"#ffbc56"}},{"scope":"variable.language.rust","settings":{"foreground":"#ffa685"}},{"scope":"keyword.operator.misc.rust","settings":{"foreground":"#737373"}},{"scope":"keyword.operator.sigil.rust","settings":{"foreground":"#ff91a8"}},{"scope":"support.constant.core.rust","settings":{"foreground":"#ffde80"}},{"scope":["meta.function.c","meta.function.cpp"],"settings":{"foreground":"#ffa685"}},{"scope":["punctuation.section.block.begin.bracket.curly.cpp","punctuation.section.block.end.bracket.curly.cpp","punctuation.terminator.statement.c","punctuation.section.block.begin.bracket.curly.c","punctuation.section.block.end.bracket.curly.c","punctuation.section.parens.begin.bracket.round.c","punctuation.section.parens.end.bracket.round.c","punctuation.section.parameters.begin.bracket.round.c","punctuation.section.parameters.end.bracket.round.c"],"settings":{"foreground":"#737373"}},{"scope":["keyword.operator.assignment.c","keyword.operator.comparison.c","keyword.operator.c","keyword.operator.increment.c","keyword.operator.decrement.c","keyword.operator.bitwise.shift.c"],"settings":{"foreground":"#ff91a8"}},{"scope":["keyword.operator.assignment.cpp","keyword.operator.comparison.cpp","keyword.operator.cpp","keyword.operator.increment.cpp","keyword.operator.decrement.cpp","keyword.operator.bitwise.shift.cpp"],"settings":{"foreground":"#ff91a8"}},{"scope":["punctuation.separator.c","punctuation.separator.cpp"],"settings":{"foreground":"#ff91a8"}},{"scope":["support.type.posix-reserved.c","support.type.posix-reserved.cpp"],"settings":{"foreground":"#68cdf2"}},{"scope":["keyword.operator.sizeof.c","keyword.operator.sizeof.cpp"],"settings":{"foreground":"#ff91a8"}},{"scope":"variable.c","settings":{"foreground":"#737373"}},{"scope":["storage.type.annotation.java","storage.type.object.array.java"],"settings":{"foreground":"#ffbc56"}},{"scope":"source.java","settings":{"foreground":"#ffa685"}},{"scope":["punctuation.section.block.begin.java","punctuation.section.block.end.java","punctuation.definition.method-parameters.begin.java","punctuation.definition.method-parameters.end.java","meta.method.identifier.java","punctuation.section.method.begin.java","punctuation.section.method.end.java","punctuation.terminator.java","punctuation.section.class.begin.java","punctuation.section.class.end.java","punctuation.section.inner-class.begin.java","punctuation.section.inner-class.end.java","meta.method-call.java","punctuation.section.class.begin.bracket.curly.java","punctuation.section.class.end.bracket.curly.java","punctuation.section.method.begin.bracket.curly.java","punctuation.section.method.end.bracket.curly.java","punctuation.separator.period.java","punctuation.bracket.angle.java","punctuation.definition.annotation.java","meta.method.body.java"],"settings":{"foreground":"#737373"}},{"scope":"meta.method.java","settings":{"foreground":"#ba8ffd"}},{"scope":["storage.modifier.import.java","storage.type.java","storage.type.generic.java"],"settings":{"foreground":"#ffbc56"}},{"scope":"keyword.operator.instanceof.java","settings":{"foreground":"#ff91a8"}},{"scope":"meta.definition.variable.name.java","settings":{"foreground":"#ffa685"}},{"scope":"token.variable.parameter.java","settings":{"foreground":"#737373"}},{"scope":"import.storage.java","settings":{"foreground":"#ffbc56"}},{"scope":"token.package.keyword","settings":{"foreground":"#ff91a8"}},{"scope":"token.package","settings":{"foreground":"#737373"}},{"scope":"token.storage.type.java","settings":{"foreground":"#ffbc56"}},{"scope":"keyword.operator.assignment.go","settings":{"foreground":"#ffbc56"}},{"scope":["keyword.operator.arithmetic.go","keyword.operator.address.go"],"settings":{"foreground":"#ff91a8"}},{"scope":"entity.name.package.go","settings":{"foreground":"#ffbc56"}},{"scope":["support.other.namespace.use.php","support.other.namespace.use-as.php","support.other.namespace.php","entity.other.alias.php","meta.interface.php"],"settings":{"foreground":"#ffbc56"}},{"scope":"keyword.operator.error-control.php","settings":{"foreground":"#ff91a8"}},{"scope":"keyword.operator.type.php","settings":{"foreground":"#ff91a8"}},{"scope":["punctuation.section.array.begin.php","punctuation.section.array.end.php"],"settings":{"foreground":"#737373"}},{"scope":["storage.type.php","meta.other.type.phpdoc.php","keyword.other.type.php","keyword.other.array.phpdoc.php"],"settings":{"foreground":"#ffbc56"}},{"scope":["meta.function-call.php","meta.function-call.object.php","meta.function-call.static.php"],"settings":{"foreground":"#ba8ffd"}},{"scope":["punctuation.definition.parameters.begin.bracket.round.php","punctuation.definition.parameters.end.bracket.round.php","punctuation.separator.delimiter.php","punctuation.section.scope.begin.php","punctuation.section.scope.end.php","punctuation.terminator.expression.php","punctuation.definition.arguments.begin.bracket.round.php","punctuation.definition.arguments.end.bracket.round.php","punctuation.definition.storage-type.begin.bracket.round.php","punctuation.definition.storage-type.end.bracket.round.php","punctuation.definition.array.begin.bracket.round.php","punctuation.definition.array.end.bracket.round.php","punctuation.definition.begin.bracket.round.php","punctuation.definition.end.bracket.round.php","punctuation.definition.begin.bracket.curly.php","punctuation.definition.end.bracket.curly.php","punctuation.definition.section.switch-block.end.bracket.curly.php","punctuation.definition.section.switch-block.start.bracket.curly.php","punctuation.definition.section.switch-block.begin.bracket.curly.php","punctuation.definition.section.switch-block.end.bracket.curly.php"],"settings":{"foreground":"#737373"}},{"scope":["support.constant.ext.php","support.constant.std.php","support.constant.core.php","support.constant.parser-token.php"],"settings":{"foreground":"#ffde80"}},{"scope":["entity.name.goto-label.php","support.other.php"],"settings":{"foreground":"#ba8ffd"}},{"scope":["keyword.operator.logical.php","keyword.operator.bitwise.php","keyword.operator.arithmetic.php"],"settings":{"foreground":"#68cdf2"}},{"scope":"keyword.operator.regexp.php","settings":{"foreground":"#ff91a8"}},{"scope":"keyword.operator.comparison.php","settings":{"foreground":"#68cdf2"}},{"scope":["keyword.operator.heredoc.php","keyword.operator.nowdoc.php"],"settings":{"foreground":"#ff91a8"}},{"scope":"variable.other.class.php","settings":{"foreground":"#ffa685"}},{"scope":"invalid.illegal.non-null-typehinted.php","settings":{"foreground":"#d4d4d4"}},{"scope":"variable.other.generic-type.haskell","settings":{"foreground":"#ff91a8"}},{"scope":"storage.type.haskell","settings":{"foreground":"#ffde80"}},{"scope":"storage.type.cs","settings":{"foreground":"#ffbc56"}},{"scope":"entity.name.variable.local.cs","settings":{"foreground":"#ffa685"}},{"scope":"entity.name.label.cs","settings":{"foreground":"#ffbc56"}},{"scope":["entity.name.scope-resolution.function.call","entity.name.scope-resolution.function.definition"],"settings":{"foreground":"#ffbc56"}},{"scope":["punctuation.definition.delayed.unison","punctuation.definition.list.begin.unison","punctuation.definition.list.end.unison","punctuation.definition.ability.begin.unison","punctuation.definition.ability.end.unison","punctuation.operator.assignment.as.unison","punctuation.separator.pipe.unison","punctuation.separator.delimiter.unison","punctuation.definition.hash.unison"],"settings":{"foreground":"#ffa685"}},{"scope":"support.constant.edge","settings":{"foreground":"#ff91a8"}},{"scope":"support.type.prelude.elm","settings":{"foreground":"#68cdf2"}},{"scope":"support.constant.elm","settings":{"foreground":"#ffde80"}},{"scope":"entity.global.clojure","settings":{"foreground":"#ffbc56"}},{"scope":"meta.symbol.clojure","settings":{"foreground":"#ffa685"}},{"scope":"constant.keyword.clojure","settings":{"foreground":"#68cdf2"}},{"scope":["meta.arguments.coffee","variable.parameter.function.coffee"],"settings":{"foreground":"#ffa685"}},{"scope":"storage.modifier.import.groovy","settings":{"foreground":"#ffbc56"}},{"scope":"meta.method.groovy","settings":{"foreground":"#ba8ffd"}},{"scope":"meta.definition.variable.name.groovy","settings":{"foreground":"#ffa685"}},{"scope":"meta.definition.class.inherited.classes.groovy","settings":{"foreground":"#8cda94"}},{"scope":"support.variable.semantic.hlsl","settings":{"foreground":"#ffbc56"}},{"scope":["support.type.texture.hlsl","support.type.sampler.hlsl","support.type.object.hlsl","support.type.object.rw.hlsl","support.type.fx.hlsl","support.type.object.hlsl"],"settings":{"foreground":"#ff91a8"}},{"scope":["text.variable","text.bracketed"],"settings":{"foreground":"#ffa685"}},{"scope":["support.type.swift","support.type.vb.asp"],"settings":{"foreground":"#ffbc56"}},{"scope":"meta.scope.prerequisites.makefile","settings":{"foreground":"#ffa685"}},{"scope":"source.makefile","settings":{"foreground":"#ffbc56"}},{"scope":"source.ini","settings":{"foreground":"#8cda94"}},{"scope":"constant.language.symbol.ruby","settings":{"foreground":"#68cdf2"}},{"scope":["function.parameter.ruby","function.parameter.cs"],"settings":{"foreground":"#737373"}},{"scope":"constant.language.symbol.elixir","settings":{"foreground":"#68cdf2"}},{"scope":"text.html.laravel-blade source.php.embedded.line.html entity.name.tag.laravel-blade","settings":{"foreground":"#ff91a8"}},{"scope":"text.html.laravel-blade source.php.embedded.line.html support.constant.laravel-blade","settings":{"foreground":"#ff91a8"}},{"scope":"entity.name.function.xi","settings":{"foreground":"#ffbc56"}},{"scope":"entity.name.class.xi","settings":{"foreground":"#68cdf2"}},{"scope":"constant.character.character-class.regexp.xi","settings":{"foreground":"#ffa685"}},{"scope":"constant.regexp.xi","settings":{"foreground":"#ff91a8"}},{"scope":"keyword.control.xi","settings":{"foreground":"#68cdf2"}},{"scope":"invalid.xi","settings":{"foreground":"#737373"}},{"scope":"beginning.punctuation.definition.quote.markdown.xi","settings":{"foreground":"#8cda94"}},{"scope":"beginning.punctuation.definition.list.markdown.xi","settings":{"foreground":"#636363"}},{"scope":"constant.character.xi","settings":{"foreground":"#ba8ffd"}},{"scope":"accent.xi","settings":{"foreground":"#ba8ffd"}},{"scope":"wikiword.xi","settings":{"foreground":"#ffde80"}},{"scope":"constant.other.color.rgb-value.xi","settings":{"foreground":"#d4d4d4"}},{"scope":"punctuation.definition.tag.xi","settings":{"foreground":"#636363"}},{"scope":["support.constant.property-value.scss","support.constant.property-value.css"],"settings":{"foreground":"#ffde80"}},{"scope":["keyword.operator.css","keyword.operator.scss","keyword.operator.less"],"settings":{"foreground":"#68cdf2"}},{"scope":["support.constant.color.w3c-standard-color-name.css","support.constant.color.w3c-standard-color-name.scss"],"settings":{"foreground":"#ffde80"}},{"scope":"punctuation.separator.list.comma.css","settings":{"foreground":"#737373"}},{"scope":"support.type.vendored.property-name.css","settings":{"foreground":"#68cdf2"}},{"scope":"support.type.property-name.css","settings":{"foreground":"#68cdf2"}},{"scope":"support.type.property-name","settings":{"foreground":"#737373"}},{"scope":"support.constant.property-value","settings":{"foreground":"#737373"}},{"scope":"support.constant.font-name","settings":{"foreground":"#ffde80"}},{"scope":"entity.other.attribute-name.class.css","settings":{"foreground":"#8eddb2","fontStyle":"normal"}},{"scope":"entity.other.attribute-name.id","settings":{"foreground":"#ba8ffd","fontStyle":"normal"}},{"scope":["entity.other.attribute-name.pseudo-element","entity.other.attribute-name.pseudo-class"],"settings":{"foreground":"#68cdf2"}},{"scope":"meta.selector","settings":{"foreground":"#ff91a8"}},{"scope":"selector.sass","settings":{"foreground":"#ffa685"}},{"scope":"rgb-value","settings":{"foreground":"#68cdf2"}},{"scope":"inline-color-decoration rgb-value","settings":{"foreground":"#ffde80"}},{"scope":"less rgb-value","settings":{"foreground":"#ffde80"}},{"scope":"control.elements","settings":{"foreground":"#ffde80"}},{"scope":"keyword.operator.less","settings":{"foreground":"#ffde80"}},{"scope":"entity.name.tag","settings":{"foreground":"#ffa685"}},{"scope":"entity.other.attribute-name","settings":{"foreground":"#8eddb2","fontStyle":"normal"}},{"scope":"constant.character.entity","settings":{"foreground":"#ffa685"}},{"scope":"meta.tag","settings":{"foreground":"#737373"}},{"scope":"invalid.illegal.bad-ampersand.html","settings":{"foreground":"#737373"}},{"scope":"markup.heading","settings":{"foreground":"#ffa685"}},{"scope":["markup.heading punctuation.definition.heading","entity.name.section"],"settings":{"foreground":"#ba8ffd"}},{"scope":"entity.name.section.markdown","settings":{"foreground":"#ffa685"}},{"scope":"punctuation.definition.heading.markdown","settings":{"foreground":"#ffa685"}},{"scope":"markup.heading.setext","settings":{"foreground":"#737373"}},{"scope":["markup.heading.setext.1.markdown","markup.heading.setext.2.markdown"],"settings":{"foreground":"#ffa685"}},{"scope":["markup.bold","todo.bold"],"settings":{"foreground":"#ffde80"}},{"scope":"punctuation.definition.bold","settings":{"foreground":"#ffbc56"}},{"scope":"punctuation.definition.bold.markdown","settings":{"foreground":"#ffde80"}},{"scope":["markup.italic","punctuation.definition.italic","todo.emphasis"],"settings":{"foreground":"#ff91a8","fontStyle":"italic"}},{"scope":"emphasis md","settings":{"foreground":"#ff91a8"}},{"scope":"markup.italic.markdown","settings":{"fontStyle":"italic"}},{"scope":["markup.underline.link.markdown","markup.underline.link.image.markdown"],"settings":{"foreground":"#ff91a8"}},{"scope":["string.other.link.title.markdown","string.other.link.description.markdown"],"settings":{"foreground":"#ba8ffd"}},{"scope":"punctuation.definition.metadata.markdown","settings":{"foreground":"#ffa685"}},{"scope":["markup.inline.raw.markdown","markup.inline.raw.string.markdown"],"settings":{"foreground":"#8cda94"}},{"scope":"punctuation.definition.list.begin.markdown","settings":{"foreground":"#ffa685"}},{"scope":"punctuation.definition.list.markdown","settings":{"foreground":"#ffa685"}},{"scope":"beginning.punctuation.definition.list.markdown","settings":{"foreground":"#ffa685"}},{"scope":["punctuation.definition.string.begin.markdown","punctuation.definition.string.end.markdown"],"settings":{"foreground":"#ffa685"}},{"scope":"markup.quote.markdown","settings":{"foreground":"#636363"}},{"scope":"keyword.other.unit","settings":{"foreground":"#ffa685"}},{"scope":"markup.changed.diff","settings":{"foreground":"#ffbc56"}},{"scope":["meta.diff.header.from-file","meta.diff.header.to-file","punctuation.definition.from-file.diff","punctuation.definition.to-file.diff"],"settings":{"foreground":"#ba8ffd"}},{"scope":"markup.inserted.diff","settings":{"foreground":"#8cda94"}},{"scope":"markup.deleted.diff","settings":{"foreground":"#ffa685"}},{"scope":"string.regexp","settings":{"foreground":"#92dde4"}},{"scope":"constant.other.character-class.regexp","settings":{"foreground":"#ffa685"}},{"scope":"keyword.operator.quantifier.regexp","settings":{"foreground":"#ffde80"}},{"scope":"constant.character.escape","settings":{"foreground":"#8fe0d0"}},{"scope":"source.json meta.structure.dictionary.json > string.quoted.json","settings":{"foreground":"#ffa685"}},{"scope":"source.json meta.structure.dictionary.json > string.quoted.json > punctuation.string","settings":{"foreground":"#ffa685"}},{"scope":["source.json meta.structure.dictionary.json > value.json > string.quoted.json","source.json meta.structure.array.json > value.json > string.quoted.json","source.json meta.structure.dictionary.json > value.json > string.quoted.json > punctuation","source.json meta.structure.array.json > value.json > string.quoted.json > punctuation"],"settings":{"foreground":"#8cda94"}},{"scope":["source.json meta.structure.dictionary.json > constant.language.json","source.json meta.structure.array.json > constant.language.json"],"settings":{"foreground":"#68cdf2"}},{"scope":"support.type.property-name.json","settings":{"foreground":"#ffa685"}},{"scope":"support.type.property-name.json punctuation","settings":{"foreground":"#ffa685"}},{"scope":"punctuation.definition.block.sequence.item.yaml","settings":{"foreground":"#737373"}},{"scope":"block.scope.end","settings":{"foreground":"#737373"}},{"scope":"block.scope.begin","settings":{"foreground":"#737373"}},{"scope":"token.info-token","settings":{"foreground":"#ba8ffd"}},{"scope":"token.warn-token","settings":{"foreground":"#ffde80"}},{"scope":"token.error-token","settings":{"foreground":"#d4d4d4"}},{"scope":"token.debug-token","settings":{"foreground":"#ff91a8"}},{"scope":"invalid.illegal","settings":{"foreground":"#d4d4d4"}},{"scope":"invalid.broken","settings":{"foreground":"#d4d4d4"}},{"scope":"invalid.deprecated","settings":{"foreground":"#d4d4d4"}},{"scope":"invalid.unimplemented","settings":{"foreground":"#d4d4d4"}}],"semanticTokenColors":{"comment":"#636363","string":"#8cda94","number":"#96d9f6","regexp":"#92dde4","keyword":"#ff91a8","variable":"#ffba82","parameter":"#8a8a8a","property":"#ffba82","function":"#ba8ffd","method":"#ba8ffd","type":"#e290f0","class":"#e290f0","namespace":"#ffbc56","enumMember":"#68cdf2","variable.constant":"#ffde80","variable.defaultLibrary":"#ffbc56","decorator":"#97c4ff"}}'))}};
@@ -0,0 +1,11 @@
1
+ "use strict";exports.id=3136,exports.ids=[3136],exports.modules={22211:(a,b,c)=>{c.d(b,{$K:()=>u,Z3:()=>p,Zi:()=>r,f9:()=>s,h1:()=>t,sO:()=>q});var d=c(73024),e=c(76760),f=c(78796),g=c(64423),h=c(99417);function i(){return(0,e.join)((0,h.j_)(),"providers.json")}function j(a){for(let b of a.models)if(!Array.isArray(b.contextSizes)||0===b.contextSizes.length)throw Error(`provider${a.id?` ${a.id}`:""}: model ${b.modelId} has empty contextSizes`)}function k(){return{id:"anthropic",name:"Anthropic",envVars:{},models:(0,g.J$)(),isBuiltin:!0}}let l=null,m=0;function n(){try{return(0,d.statSync)(i()).mtimeMs}catch{return 0}}function o(a){try{(0,d.mkdirSync)((0,h.j_)(),{recursive:!0}),(0,d.writeFileSync)(i(),JSON.stringify(a,null,2)+"\n")}catch{}}function p(){let a=n();return(null===l||a!==m)&&(l=[k(),...function(){try{return JSON.parse((0,d.readFileSync)(i(),"utf-8"))}catch{return[]}}()],m=a),l}function q(a){return p().find(b=>b.id===a)}function r(a){let b={...a,id:(0,f.A)()};j(b);let c=p().filter(a=>!a.isBuiltin);return c.push(b),o(c),l=[k(),...c],m=n(),b}function s(a,b){if("anthropic"===a)throw Error("Cannot modify built-in provider");let c=p().filter(a=>!a.isBuiltin),d=c.findIndex(b=>b.id===a);if(-1===d)throw Error(`Provider not found: ${a}`);let e={...c[d],...b,id:a};return j(e),c[d]=e,o(c),l=[k(),...c],m=n(),c[d]}function t(a){if("anthropic"===a)throw Error("Cannot delete built-in provider");let b=p(),c=b.filter(b=>!b.isBuiltin&&b.id!==a);if(c.length===b.filter(a=>!a.isBuiltin).length)throw Error(`Provider not found: ${a}`);o(c),l=[k(),...c],m=n()}function u(a){if(!a)return null;let b=a.indexOf(":");if(b>0){let c=a.slice(0,b),d=a.slice(b+1).replace(/\[.*\]$/,""),e=q(c);if(e){let a=e.models.find(a=>a.modelId===d);if(a)return{provider:e,model:a}}return null}for(let b of p()){let c=b.models.find(b=>b.modelId===a);if(c)return{provider:b,model:c}}return null}},43136:(a,b,c)=>{c.d(b,{Go:()=>al,hW:()=>ak,Rb:()=>ai,wF:()=>ah,AU:()=>aj});var d=c(31421),e=c(77598),f=c(78474),g=c(73024),h=c(48161),i=c(76760),j=c.n(i),k=c(78796);let l={"add-dir":"local-jsx",advisor:"local-jsx",agents:"local-jsx",autocompact:"local","autofix-pr":"local-jsx",background:"local-jsx",branch:"local-jsx","bridge-kick":"local",brief:"local-jsx",btw:"local-jsx",chrome:"local-jsx",clear:"local",color:"local",compact:"local",config:"local-jsx",context:"local-jsx",copy:"local-jsx",daemon:"local-jsx",desktop:"local-jsx",diff:"local-jsx",doctor:"local-jsx",effort:"local",exit:"local",export:"local-jsx","extra-usage":"local",fast:"local",feedback:"local-jsx",focus:"local-jsx",fork:"local-jsx",goal:"local",heapdump:"local",help:"local-jsx",hooks:"local-jsx",ide:"local-jsx",init:"prompt","init-verifiers":"prompt",insights:"prompt",install:"local-jsx","install-github-app":"local-jsx","install-slack-app":"local",keybindings:"local",login:"local",logout:"local-jsx",loops:"local-jsx",mcp:"local-jsx",memory:"local-jsx",mobile:"local-jsx",model:"local-jsx",passes:"local-jsx",permissions:"local-jsx",plan:"local-jsx",plugin:"local-jsx",powerup:"local-jsx","privacy-settings":"local-jsx","pro-trial-expired":"local-jsx",radio:"local","rate-limit-options":"local-jsx",recap:"local","release-notes":"local-jsx","reload-plugins":"local","reload-skills":"local","remote-control":"local-jsx","remote-env":"local-jsx",rename:"local",resume:"local-jsx",review:"prompt",rewind:"local",sandbox:"local-jsx","scroll-speed":"local-jsx",session:"local-jsx","setup-bedrock":"local-jsx","setup-vertex":"local-jsx",skills:"local-jsx",status:"local-jsx",statusline:"prompt",stickers:"local",stop:"local",tasks:"local-jsx","team-onboarding":"prompt",teleport:"local-jsx","terminal-setup":"local-jsx",theme:"local-jsx","toggle-memory":"local",tui:"local-jsx",ultraplan:"local-jsx",ultrareview:"local-jsx",update:"local",upgrade:"local-jsx",usage:"local","usage-credits":"local",version:"local",voice:"local","web-setup":"local-jsx",wellbeing:"local-jsx",workflows:"local-jsx"},m={"allowed-tools":"permissions",android:"mobile",app:"desktop",bashes:"tasks",bg:"background","break-reminder":"wellbeing",breaks:"wellbeing",bug:"feedback",checkpoint:"rewind",continue:"resume",cost:"usage",downtime:"wellbeing",ios:"mobile",marketplace:"plugin",name:"rename",new:"clear",plugins:"plugin",quit:"exit",rc:"remote-control",remote:"session",reset:"clear",settings:"config",share:"feedback",stats:"usage",tp:"teleport",undo:"rewind"};var n=c(64423),o=c(99417);let p={model:"sonnet",thinkingLevel:"high"};function q(){return(0,i.join)((0,o.j_)(),"assistant.json")}function r(){try{let a=JSON.parse((0,g.readFileSync)(q(),"utf-8"));return{...p,...a}}catch{return{...p}}}var s=c(43719),t=c(22211),u=c(13075),v=c(51675);class w{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,k.A)(),role:"assistant",content:b||"",toolUses:[],blocks:[],timestamp:Date.now(),model:this.lastAssistantModel??void 0},interrupted:"error_during_execution"===d}]}constructor(){this.lastAssistantModel=null}}var x=c(57830);let y="You are the Cockpit Assistant, an AI agent embedded in Cockpit — a self-hosted web UI for running and managing Claude Code on this machine (sessions, scheduled jobs, model providers, MCP servers, app settings, and notifications). Your purpose is to let the user inspect and change Cockpit's configuration and operate its scheduled jobs through conversation instead of clicking the UI. You have a set of cockpit-config tools over MCP: read tools (names starting with list_ or get_) return current state and run automatically; write tools (create_/update_/delete_/add_/save_/run_) change state or trigger actions and are shown to the user as a proposal they approve or reject before taking effect — so state plainly what you are about to change. For scheduled jobs you can list jobs, inspect a job, create/update/delete jobs, run a job now (run_job), stop a running job (stop_job), and check which jobs are currently running (list_running_jobs). Providers, MCP servers, app settings, and notification settings can be listed and modified the same way. Be concise and direct, confirm intent before destructive changes, and prefer the job tools over guessing when asked what is running. You operate on the local single-user Cockpit Assistant instance.",z=new Map;function A(a){z.set(a,null)}function B(a){z.delete(a)}var C=c(51455);let D=null,E=["PreToolUse","PostToolUse","Stop","StopFailure","UserPromptSubmit","UserPromptExpansion","SubagentStart","SubagentStop","Notification","PermissionRequest","PreCompact","PostCompact"];async function F(a){let b=function(){if(D)return D;let a=process.env.COCKPIT_HOOK_BRIDGE_BIN;if(a&&(0,g.existsSync)(a))return D=a,a;let b=j().resolve(process.cwd(),"bin","cockpit-hook-bridge.mjs");if((0,g.existsSync)(b))return D=b,b;throw Error(`cockpit-hook-bridge.mjs not found at ${b}`)}(),c=await H(),d=function(a){let b={};for(let d of E){var c;let e={type:"command",command:`node ${(c=a,/[\s"'\\$`]/.test(c)?`'${c.replace(/'/g,"'\\''")}'`:c)} ${d}`};"PermissionRequest"===d&&(e.timeout=86400),b[d]=[{matcher:"",hooks:[e]}]}return b}(b);for(let[a,b]of Object.entries(c.hooks??{}))Array.isArray(b)&&b.length>0&&d[a]&&(d[a]=[...b,...d[a]]);let e=Array.isArray(c.permissions?.allow)?c.permissions.allow:[],f=Array.isArray(c.permissions?.deny)?c.permissions.deny:[],h={...c,hooks:d,permissions:{...c.permissions??{},allow:[...e,...a.allowList??[]],deny:[...f,...a.denyList??[]]},skipDangerousModePermissionPrompt:!0},i=await K(),k=j().join(i,`${a.sessionId}.json`);return await (0,C.writeFile)(k,JSON.stringify(h,null,2),{mode:384}),{settingsPath:k,env:{COCKPIT_HOOK_URL:a.hookUrl,COCKPIT_HOOK_TOKEN:a.hookToken,COCKPIT_SESSION_ID:a.sessionId}}}async function G(a){let b=await K(),c=j().join(b,`${a}.json`);await (0,C.rm)(c,{force:!0})}async function H(){let a={};for(let b of[j().join((0,o.Wc)(),"settings.json"),j().join((0,o.Wc)(),"settings.local.json")])try{let c=await (0,C.readFile)(b,"utf-8"),d=JSON.parse(c);d&&"object"==typeof d&&!Array.isArray(d)&&(a=function a(b,c){let d={...b};for(let e of Object.keys(c)){let f=b[e],g=c[e];I(f)&&I(g)?d[e]=a(f,g):d[e]=g}return d}(a,d))}catch{}return a}function I(a){return null!==a&&"object"==typeof a&&!Array.isArray(a)}let J=null;async function K(){if(J)return J;let a=j().join((0,o.du)(),"hook-settings");try{return await (0,C.mkdir)(a,{recursive:!0}),J=a,a}catch{let a=j().join((0,h.tmpdir)(),"cockpit-hook-settings");return await (0,C.mkdir)(a,{recursive:!0}),J=a,a}}function L(a,b){var c,d,e,f,g,h;switch(a){case"PreToolUse":let i,j,l;return i=M((c=b).tool_name,"unknown"),j=c.tool_input,l=[{type:"system_message",text:"__tool_use_start"},{type:"tool_use_start",toolName:i,toolId:M(c.tool_use_id,"")||void 0,toolInput:j?JSON.stringify(j):""}],"EnterPlanMode"===i&&l.push({type:"system_message",text:"__permission_mode::plan"}),l;case"PostToolUse":let m,n,o,p;return m=M((d=b).tool_name,"unknown"),n=M(d.tool_use_id,""),o=d.tool_input,p=[{type:"tool_result",toolId:n||void 0,toolOutput:function(a){if(null==a)return"";if("string"==typeof a)return a;if("object"==typeof a){if("string"==typeof a.stdout){let b=a.stdout;return"string"==typeof a.stderr&&a.stderr.length>0&&(b+=`
2
+ ${a.stderr}`),b}return"string"==typeof a.content?a.content:JSON.stringify(a)}return String(a)}(d.tool_response),filePath:function(a){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}}(o)}],"ExitPlanMode"===m&&p.push({type:"system_message",text:"__permission_mode::standard"}),p;case"Stop":let q;return q=M(b.last_assistant_message,""),[{type:"message_done",message:{id:(0,k.A)(),role:"assistant",content:q,toolUses:[],blocks:[],timestamp:Date.now()}}];case"StopFailure":let r,s;return r=M((e=b).error_type,"unknown"),s=M(e.error_message,"Unknown error"),[{type:"message_done",message:{id:(0,k.A)(),role:"assistant",content:"",toolUses:[],blocks:[],timestamp:Date.now()}},{type:"system_message",text:`__stop_failure::${r}::${s}`}];case"PermissionRequest":let t,u;return t=M((f=b).tool_name,"unknown"),u=f.tool_input,[{type:"permission_request",requestId:(0,k.A)(),toolName:t,toolInput:u?JSON.stringify(u):"",rawToolInput:u}];case"Notification":let v;return(v=M(b.message,""))?[{type:"system_message",text:`__notification::${v}`}]:[];case"SubagentStart":let w,x,y;return w=M((g=b).session_id,(0,k.A)()),x=M(g.agent_id,""),[{type:"task_update",taskInfo:{taskId:w,toolUseId:x,status:"running",title:(y=M(g.agent_type,""))||"Agent",description:M(g.description,"")||y||"Subagent running"}}];case"SubagentStop":let z,A,B,C;return z=M((h=b).session_id,""),A=M(h.agent_id,""),B=M(h.agent_type,""),C=M(h.last_assistant_message,""),[{type:"task_update",taskInfo:{taskId:z,toolUseId:A,status:"completed",title:B||"Agent",description:M(h.description,"")||B||"Subagent completed",summary:C.slice(0,500)||void 0}}];case"PreCompact":return[{type:"system_message",text:"__compact::hook_start"}];case"PostCompact":return[{type:"system_message",text:"__compact::hook_done"}];case"UserPromptSubmit":case"UserPromptExpansion":return[]}}function M(a,b){return"string"==typeof a?a:b}var N=c(14566);class O{constructor(a){this.pty=null,this.buffer="",this.exited=!1,this.exitCode=null,this.opts=a,this.cols=a.cols??160,this.rows=a.rows??50}get pid(){return this.pty?.pid??-1}async start(){if(this.pty)throw Error("PtySession already started");let a=this.opts.bin??"claude",b=["--verbose","--settings",this.opts.settingsPath,...this.opts.extraArgs??[]],c={...process.env};delete c.CLAUDECODE,delete c.CLAUDE_CODE_ENTRYPOINT,delete c.CLAUDE_CODE_DISABLE_1M_CONTEXT,Object.assign(c,this.opts.env??{});let d="darwin"===process.platform?"/bin/zsh":a,e="darwin"===process.platform?["-l","-c",`exec ${[a,...b].map(Q).join(" ")}`]:b,f=`platform=${process.platform}, file=${d}, cwd=${this.opts.cwd}`;try{let a=(0,g.existsSync)(d);if(f+=`, exists=${a}`,a){let a=(0,g.realpathSync)(d),b=(0,g.statSync)(a),c=`0${(4095&b.mode).toString(8)}`;f+=`, realpath=${a}, mode=${c}, size=${b.size}`}}catch(a){f+=`, diagError=${a instanceof Error?a.message:String(a)}`}console.log(`[pty-session] spawn diagnostic: ${f}`),console.log(`[pty-session] spawn args: ${JSON.stringify(e).slice(0,500)}`),console.log(`[pty-session] PATH: ${c.PATH?.split(":").slice(0,10).join(":")}`);try{this.pty=(0,N.spawn)(d,e,{name:"xterm-256color",cols:this.cols,rows:this.rows,cwd:this.opts.cwd,env:c})}catch(a){throw console.error(`[pty-session] spawn failed: ${a instanceof Error?a.message:String(a)}`),console.error(`[pty-session] full diagnostic: ${f}`),a}this.pty.onData(a=>{this.buffer+=a,this.buffer.length>65536&&(this.buffer=this.buffer.slice(-32768)),this.opts.onData?.(a)}),this.pty.onExit(a=>{this.exited=!0,this.exitCode=a.exitCode,this.opts.onExit?.(a),this.pty=null}),await this.handleTrustDialog(),await this.waitForReplReady()}async sendText(a){let b=this.requirePty();b.write("\x15"),b.write(a),await P(300),b.write("\r")}sendSlash(a){let b=a.startsWith("/")?a:`/${a}`;this.requirePty().write(`${b}\r`)}sendKey(a){this.requirePty().write(a)}resize(a,b){this.pty&&(a!==this.cols||b!==this.rows)&&(this.cols=a,this.rows=b,this.pty.resize(a,b))}kill(a){if(this.pty){try{this.pty.kill(a)}catch{}this.pty=null}}requirePty(){if(!this.pty)throw Error("PtySession not started or already exited");return this.pty}cleanOutput(){return this.buffer.replace(/\x1b\[[0-9;]*[a-zA-Z]/g,"").replace(/\x1b[>=?][^\x1b]*/g,"")}async handleTrustDialog(){let a=Date.now()+5e3,b=!1;for(;Date.now()<a;){if(this.exited)return;let a=this.cleanOutput();if(a.includes("trust")||a.includes("Yes,")){this.requirePty().write("\r"),b=!0;break}if(a.length>100)break;await P(200)}b&&await P(2e3)}async waitForReplReady(){let a=Date.now()+6e4;for(;Date.now()<a;){if(this.exited)throw Error(`claude exited during startup (code=${this.exitCode}, output=${this.cleanOutput().slice(0,200)})`);if(this.cleanOutput().length>=100){if(await P(2e3),this.exited)throw Error(`claude exited during startup (code=${this.exitCode}, output=${this.cleanOutput().slice(0,200)})`);return}await P(200)}let b=this.cleanOutput();throw Error(`Timed out after 60000ms waiting for claude REPL (got ${b.length} bytes: ${b.slice(0,200)})`)}}function P(a){return new Promise(b=>setTimeout(b,a))}function Q(a){return/[\s"'\\$`!#&|;()<>]/.test(a)?`'${a.replace(/'/g,"'\\''")}'`:a}var R=c(19021);let S=/\x1b\[[0-9;]*[a-zA-Z]/g;class T{constructor(a){this.pty=null,this.settingsPath=null,this.pendingPermissions=new Map,this.exited=!1,this.cleaned=!1,this.promptAccepted=null,this.ptyOutputBuffer="",this.errorDebounce=null,this.opts=a}get pid(){return this.pty?.pid??-1}get isAlive(){return!!this.pty&&!this.exited}async start(a){let{sessionId:b,cwd:c,hookRouter:d}=this.opts,e=Date.now();(0,u._N)(b,"pty:start-enter",{hasInitialText:!!a});let f=d.register(b,this.buildHandler()),{settingsPath:g,env:h}=await F({sessionId:b,hookUrl:d.getUrl(),hookToken:f,allowList:this.opts.allowList,denyList:this.opts.denyList});this.settingsPath=g,(0,u._N)(b,"pty:hooks-ready",{elapsedMs:Date.now()-e}),this.pty=new O({cwd:c,settingsPath:g,env:{...h,...this.opts.extraEnv??{}},extraArgs:this.opts.extraArgs,bin:this.opts.claudeBin,onData:a=>{this.scanForErrors(a),this.opts.onPtyData?.(a)},onExit:a=>{this.exited=!0,this.opts.onExit(a),this.cleanup().catch(()=>{})}});try{await this.pty.start()}catch(a){throw(0,u._N)(b,"pty:process-start-failed",{elapsedMs:Date.now()-e,error:a instanceof Error?a.message:String(a)}),await this.cleanup(),a}(0,u._N)(b,"pty:process-started",{pid:this.pid,elapsedMs:Date.now()-e}),a&&await this.deliverInitialPrompt(a),(0,u._N)(b,"pty:start-complete",{elapsedMs:Date.now()-e}),this.fetchInitData()}async deliverInitialPrompt(a){let{sessionId:b}=this.opts,c=(0,R.Wv)(this.opts.cliSessionId,this.opts.cwd),d=()=>(0,R.Wv)(this.opts.cliSessionId,this.opts.cwd)>c;(0,u._N)(b,"pty:deliver-begin",{textLen:a.length,maxAttempts:4,baselineMsgs:c});for(let c=1;c<=4;c++){let e=this.pty;if(this.exited||!e)throw(0,u._N)(b,"pty:deliver-aborted",{attempt:c,exited:this.exited,hasPty:!!e}),Error("claude exited before the initial prompt was delivered");let f=null,g=new Promise(a=>{this.promptAccepted=()=>a(!0),f=setTimeout(()=>a(!1),8e3)}),h=Date.now();(0,u._N)(b,"pty:deliver-attempt",{attempt:c,screenBefore:this.recentScreen()}),await e.sendText(a);let i=await g;if(f&&clearTimeout(f),this.promptAccepted=null,i)return void(0,u._N)(b,"pty:deliver-accepted",{attempt:c,waitedMs:Date.now()-h});if(d())return void(0,u._N)(b,"pty:deliver-accepted-via-transcript",{attempt:c,waitedMs:Date.now()-h});(0,u._N)(b,"pty:deliver-timeout",{attempt:c,waitedMs:Date.now()-h,screenAfter:this.recentScreen()}),console.log(`[pty-runtime] initial prompt not confirmed for ${b.slice(0,8)} (attempt ${c}/4), resending`)}throw(0,u._N)(b,"pty:deliver-failed",{attempts:4}),Error("claude did not accept the initial prompt after 4 attempts")}fetchInitData(){var a;let b,c,{sessionId:e}=this.opts,f=e.slice(0,8);console.log(`[pty-runtime] fetching CLI init data for session ${f}`),(0,u._N)(e,"pty:init-fetch-begin"),(b=(a={cwd:this.opts.cwd,bin:this.opts.claudeBin}).bin??"claude",c=["-p","--no-session-persistence","--verbose","--output-format","stream-json","hi"],new Promise(e=>{let f=!1,g=a=>{if(!f){f=!0;try{h.kill()}catch{}e(a)}};console.log(`[cli-init-fetch] spawning: ${b} ${c.join(" ")} (cwd=${a.cwd})`);let h=(0,d.spawn)(b,c,{cwd:a.cwd,stdio:["ignore","pipe","pipe"]}),i="",j="";h.stdout.on("data",a=>{let b=(i+=a.toString()).split("\n");for(let a of(i=b.pop()||"",b))if(a.trim())try{let b=JSON.parse(a);if("system"===b.type&&"init"===b.subtype){let a=function(a){let b=a.slash_commands||[],c=a.skills||[],d=(a.agents||[]).map(a=>"string"==typeof a?{name:a}:{name:a.name||"",description:a.description}),e=a.claude_code_version||"",f=a.model||"";return{slashCommands:b,skills:c,agents:d,version:e,model:f,mcpServers:(a.mcp_servers||[]).map(a=>({name:a.name||"",status:a.status||""}))}}(b);console.log(`[cli-init-fetch] got init: ${a.slashCommands.length} commands, ${a.skills.length} skills`),g(a);return}}catch{}}),h.stderr?.on("data",a=>{(j+=a.toString()).length>2048&&(j=j.slice(-1024))}),h.on("close",a=>{console.log(`[cli-init-fetch] process exited code=${a}${j?` stderr=${j.slice(0,200)}`:""}`),g(null)}),h.on("error",a=>{console.log(`[cli-init-fetch] spawn error: ${a.message}`),g(null)}),setTimeout(()=>{console.log("[cli-init-fetch] timeout reached, giving up"),g(null)},3e4)})).then(a=>{a&&!this.exited?(console.log(`[pty-runtime] emitting init event for session ${f}: ${a.slashCommands.length} commands`),(0,u._N)(e,"pty:init-fetch-done",{slashCommands:a.slashCommands.length,mcpServers:a.mcpServers?.length??0}),this.emit([{type:"init",initData:a}])):(console.log(`[pty-runtime] init fetch returned ${a?"data but session exited":"null"} for session ${f}`),(0,u._N)(e,"pty:init-fetch-empty",{exited:this.exited,hadData:!!a}))}).catch(a=>{console.log(`[pty-runtime] init fetch failed for session ${f}: ${a}`),(0,u._N)(e,"pty:init-fetch-failed",{error:a instanceof Error?a.message:String(a)})})}async sendText(a){if(!this.pty)throw Error("PtyRuntime not started");await this.pty.sendText(a)}sendSlash(a){if(!this.pty)throw Error("PtyRuntime not started");this.pty.sendSlash(a)}sendKey(a){if(!this.pty)throw Error("PtyRuntime not started");this.pty.sendKey(a)}interrupt(){if(this.pty){for(let[,a]of(this.pty.sendKey("\x1b"),this.pendingPermissions))a({behavior:"deny",message:"interrupted"});this.pendingPermissions.clear()}}resize(a,b){this.pty?.resize(a,b)}async kill(a){for(let[,b]of(this.cancelErrorDebounce(),this.pty&&(this.pty.kill(a),this.pty=null),this.pendingPermissions))b({behavior:"deny",message:"session ended"});this.pendingPermissions.clear(),await this.cleanup()}notifyPermissionDecision(a,b){let c=this.pendingPermissions.get(a);return c?(this.pendingPermissions.delete(a),(0,u._N)(this.opts.sessionId,"pty:permission-decision",{requestId:a,behavior:b.behavior,pending:this.pendingPermissions.size}),c(b),!0):((0,u._N)(this.opts.sessionId,"pty:permission-decision-unmatched",{requestId:a,behavior:b.behavior}),!1)}buildHandler(){return{onPreToolUse:a=>{this.cancelErrorDebounce(),this.ptyOutputBuffer="";let b="string"==typeof a.tool_name?a.tool_name:"unknown",c="string"==typeof a.session_id?a.session_id.slice(0,8):"none",d="string"==typeof a.tool_use_id?a.tool_use_id.slice(0,12):"none";console.log(`[pty-runtime] PreToolUse: tool=${b} cli_session=${c} tool_use_id=${d}`),this.emit(L("PreToolUse",a))},onPostToolUse:a=>{this.cancelErrorDebounce(),this.ptyOutputBuffer="";let b="string"==typeof a.tool_name?a.tool_name:"unknown",c="string"==typeof a.session_id?a.session_id.slice(0,8):"none",d="string"==typeof a.tool_use_id?a.tool_use_id.slice(0,12):"none";console.log(`[pty-runtime] PostToolUse: tool=${b} cli_session=${c} tool_use_id=${d}`),this.emit(L("PostToolUse",a))},onStop:a=>{this.cancelErrorDebounce(),this.ptyOutputBuffer="",console.log(`[pty-runtime] Stop hook received for session ${this.opts.sessionId.slice(0,8)}`);let b=L("Stop",a);console.log(`[pty-runtime] Stop translated to ${b.length} events: [${b.map(a=>a.type).join(", ")}]`),this.emit(b)},onStopFailure:a=>{this.cancelErrorDebounce(),this.ptyOutputBuffer="";let b="string"==typeof a.error_type?a.error_type:"unknown",c="string"==typeof a.error_message?a.error_message:"Unknown error";console.log(`[pty-runtime] StopFailure hook for session ${this.opts.sessionId.slice(0,8)}: ${b} - ${c}`),this.emit(L("StopFailure",a)),this.opts.onError(`${c} (${b})`)},onUserPromptSubmit:a=>{this.cancelErrorDebounce(),this.ptyOutputBuffer="",(0,u._N)(this.opts.sessionId,"pty:hook-user-prompt-submit",{armed:!!this.promptAccepted}),this.promptAccepted?.(),this.emit(L("UserPromptSubmit",a))},onUserPromptExpansion:a=>{this.cancelErrorDebounce(),this.ptyOutputBuffer="",this.promptAccepted?.();let b="string"==typeof a.command_name?a.command_name:"unknown",c=this.opts.sessionId.slice(0,8);console.log(`[pty-runtime] UserPromptExpansion: command=${b}, session=${c}`),this.emit(L("UserPromptExpansion",a))},onSubagentStart:a=>{this.cancelErrorDebounce(),this.ptyOutputBuffer="";let b="string"==typeof a.session_id?a.session_id.slice(0,8):"none",c="string"==typeof a.tool_use_id?a.tool_use_id.slice(0,12):"none",d="string"==typeof a.agent_type?a.agent_type:"unknown",e="string"==typeof a.description?a.description.slice(0,80):"";console.log(`[pty-runtime] SubagentStart: cli_session=${b} tool_use_id=${c} type=${d} desc="${e}"`),console.log(`[pty-runtime] SubagentStart full payload keys: ${Object.keys(a).join(", ")}`),this.emit(L("SubagentStart",a))},onSubagentStop:a=>{this.cancelErrorDebounce(),this.ptyOutputBuffer="";let b="string"==typeof a.session_id?a.session_id.slice(0,8):"none",c="string"==typeof a.tool_use_id?a.tool_use_id.slice(0,12):"none",d="string"==typeof a.agent_type?a.agent_type:"unknown";console.log(`[pty-runtime] SubagentStop: cli_session=${b} tool_use_id=${c} type=${d}`),console.log(`[pty-runtime] SubagentStop full payload keys: ${Object.keys(a).join(", ")}`),this.emit(L("SubagentStop",a))},onPreCompact:a=>{this.cancelErrorDebounce(),this.ptyOutputBuffer="",console.log(`[pty-runtime] PreCompact for session ${this.opts.sessionId.slice(0,8)}`),this.emit(L("PreCompact",a))},onPostCompact:a=>{this.cancelErrorDebounce(),this.ptyOutputBuffer="",console.log(`[pty-runtime] PostCompact for session ${this.opts.sessionId.slice(0,8)}`),this.emit(L("PostCompact",a))},onNotification:a=>{this.cancelErrorDebounce(),this.emit(L("Notification",a))},onPermissionRequest:a=>this.handlePermissionRequest(a)}}handlePermissionRequest(a){let b=(0,k.A)(),c="string"==typeof a.tool_name?a.tool_name:"unknown",d=a.tool_input,e={type:"permission_request",requestId:b,toolName:c,toolInput:d?JSON.stringify(d):"",rawToolInput:d};return(0,u._N)(this.opts.sessionId,"pty:permission-request",{requestId:b,toolName:c}),new Promise(a=>{this.pendingPermissions.set(b,a);try{this.opts.onEvents([e])}catch(d){this.pendingPermissions.delete(b),(0,u._N)(this.opts.sessionId,"pty:permission-handler-error",{requestId:b,toolName:c,error:String(d)}),a({behavior:"deny",message:`cockpit handler error: ${String(d)}`})}})}emit(a){if(0!==a.length)try{this.opts.onEvents(a)}catch(a){console.error(`[pty-runtime] onEvents threw for session ${this.opts.sessionId.slice(0,8)}:`,a),this.opts.onError(a instanceof Error?a.message:String(a))}}cancelErrorDebounce(){this.errorDebounce&&(clearTimeout(this.errorDebounce),this.errorDebounce=null)}recentScreen(a=600){let b=this.ptyOutputBuffer.replace(S,"").replace(/[\x00-\x08\x0b\x0c\x0e-\x1f]/g,"").replace(/[ \t]+/g," ").replace(/\n{2,}/g,"\n").trim();return b.length>a?b.slice(-a):b}scanForErrors(a){if(this.ptyOutputBuffer+=a,this.ptyOutputBuffer.length>8192&&(this.ptyOutputBuffer=this.ptyOutputBuffer.slice(-4096)),this.errorDebounce)return;let b=this.ptyOutputBuffer.replace(S,"").replace(/[\x00-\x1f]/g,""),c=b.match(/API\s*Error:\s*(\d+)\s*([^✓✗❯]*)/)||b.match(/APIError:\s*(\d+)\s*(.*)/);if(!c)return;let d=c[1],e=c[2].trim().slice(0,200),f=e?`${e} (HTTP ${d})`:`API Error (HTTP ${d})`;this.errorDebounce=setTimeout(()=>{this.errorDebounce=null,this.ptyOutputBuffer="",console.log(`[pty-runtime] API error detected for session ${this.opts.sessionId.slice(0,8)}: ${f}`);let a={type:"message_done",message:{id:(0,k.A)(),role:"assistant",content:"",toolUses:[],blocks:[],timestamp:Date.now()}};try{this.opts.onEvents([a])}catch{}this.opts.onError(f)},1e4)}async cleanup(){!this.cleaned&&(this.cleaned=!0,this.opts.hookRouter.unregister(this.opts.sessionId),this.settingsPath&&(await G(this.opts.sessionId).catch(()=>{}),this.settingsPath=null))}}var U=c(13470);let V=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"]),W=new Set(["status","log","diff","show","blame","branch","remote","ls-files","ls-tree","rev-parse","describe","tag","reflog"]),X=[/^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))/],Y=new Set(["Edit","Write","Bash","NotebookEdit"]),Z=new Set(["ExitPlanMode","AskUserQuestion","EnterPlanMode"]);function $(){return{pendingToolUses:[],pendingBlocks:[],agentStack:[],currentAssistantMsgId:null,flushedOnMessageDone:!1,thinkingStartedAt:null}}function _(a,b,c){let d={emit:[],systemMessages:[],errors:[],intermediateMessages:[],snapshot:null,permissionActions:[],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,d=e.assistantMessageId===b.currentAssistantMsgId;if(e.isMainThread=d,b.agentStack.length>0&&!d){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,console.log(`[stream-processor] message_done: interrupted=${!!e.interrupted}, pendingBlocks=${b.pendingBlocks.length}, pendingToolUses=${b.pendingToolUses.length}, currentMsgId=${b.currentAssistantMsgId?.slice(0,8)??"null"}, clearPending=${!!e.clearPending}`),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}if(e.clearPending)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;else{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||!W.has(c))return!1;continue}if(!V.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(Y.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(!Z.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 X.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.statusChange&&console.log(`[stream-processor] statusChange=${d.statusChange}, emitting ${d.emit.length} events: [${d.emit.map(a=>a.type).join(", ")}]`),d}class aa{constructor(a,b){this.cliSessionId=a,this.onUpdate=b,this.watchers=[],this.polling=!1,this.timer=null,this.lastJson="",this.stopped=!1;const c=(0,o.Wc)();this.todosDir=(0,i.join)(c,"todos"),this.tasksDir=(0,i.join)(c,"tasks",a)}start(){this.watchDir(this.todosDir),this.watchDir(this.tasksDir),this.reload()}stop(){for(let a of(this.stopped=!0,this.timer&&(clearTimeout(this.timer),this.timer=null),this.watchers))a.close();if(this.watchers=[],this.polling){try{(0,g.unwatchFile)(this.todosDir)}catch{}try{(0,g.unwatchFile)(this.tasksDir)}catch{}this.polling=!1}}watchDir(a){if(!(0,g.existsSync)(a))return void this.pollDir(a);try{let b=(0,g.watch)(a,()=>this.scheduleReload());this.watchers.push(b)}catch{this.pollDir(a)}}pollDir(a){this.polling=!0,(0,g.watchFile)(a,{interval:1e3},()=>{if(!this.stopped){if((0,g.existsSync)(a)){(0,g.unwatchFile)(a);try{let b=(0,g.watch)(a,()=>this.scheduleReload());this.watchers.push(b)}catch{}}this.scheduleReload()}})}scheduleReload(){this.stopped||(this.timer&&clearTimeout(this.timer),this.timer=setTimeout(()=>this.reload(),300))}readOnce(){let a=this.readTodos(),b=this.readTasks();return a.length>0?a:b}reload(){let a=this.readTodos(),b=this.readTasks(),c=a.length>0?a:b;if(0===c.length&&""===this.lastJson)return;let d=JSON.stringify(c);d!==this.lastJson&&(this.lastJson=d,this.onUpdate(c))}readTodos(){try{if(!(0,g.existsSync)(this.todosDir))return[];let a=`${this.cliSessionId}-agent-`,b=(0,g.readdirSync)(this.todosDir).filter(b=>b.startsWith(a)&&b.endsWith(".json"));if(0===b.length)return[];let c=b.sort().pop(),d=JSON.parse((0,g.readFileSync)((0,i.join)(this.todosDir,c),"utf-8"));if(!Array.isArray(d))return[];return d.filter(a=>a.content&&a.status).map(a=>({content:a.content,status:a.status,activeForm:a.activeForm||void 0}))}catch{return[]}}readTasks(){try{if(!(0,g.existsSync)(this.tasksDir))return[];let b=(0,g.readdirSync)(this.tasksDir).filter(a=>a.endsWith(".json"));if(0===b.length)return[];let c=[];for(let d of b)try{var a;let b=JSON.parse((0,g.readFileSync)((0,i.join)(this.tasksDir,d),"utf-8"));if("deleted"===b.status)continue;c.push({content:b.subject||b.description||"",status:(a=b.status,"in_progress"===a?"in_progress":"completed"===a?"completed":"pending"),activeForm:b.activeForm||void 0})}catch{}return c}catch{return[]}}}class ab{constructor(a,b,c){this.sessionId=a,this.cwd=b,this.onUpdate=c,this.watcher=null,this.polling=!1,this.timer=null,this.lastSize=0,this.stopped=!1,this.filePath=(0,R.kw)(a,b)}start(){(0,g.existsSync)(this.filePath)?this.watchWithInotify():this.watchWithPoll()}async stop(){this.stopped=!0,this.timer&&(clearTimeout(this.timer),this.timer=null),this.watcher&&(this.watcher.close(),this.watcher=null),this.polling&&((0,g.unwatchFile)(this.filePath),this.polling=!1),await this.reload()}watchWithInotify(){try{this.watcher=(0,g.watch)(this.filePath,()=>this.scheduleReload())}catch{this.watchWithPoll()}}watchWithPoll(){this.polling=!0,(0,g.watchFile)(this.filePath,{interval:500},()=>{this.stopped||(!this.watcher&&(0,g.existsSync)(this.filePath)&&((0,g.unwatchFile)(this.filePath),this.polling=!1,this.watchWithInotify()),this.scheduleReload())})}scheduleReload(){this.stopped||(this.timer&&clearTimeout(this.timer),this.timer=setTimeout(()=>this.reload(),250))}async reload(){try{let a=await (0,R.vi)(this.sessionId,this.cwd,{tailLines:150});a.totalSize!==this.lastSize&&(this.lastSize=a.totalSize,this.onUpdate(a.messages,a.lastUsage))}catch{this.stopped||(this.timer=setTimeout(()=>this.reload(),100))}}}let ac=(a,b)=>{if(!(0,u.TT)())return;let c=new Date().toISOString().slice(11,23),d=a.slice(0,8);console.log(`[session:${d}] ${c} ${b}`)};function ad(a,b){let c=j().join((0,h.tmpdir)(),"cockpit-mcp-config");(0,g.mkdirSync)(c,{recursive:!0});let d=j().join(c,`${b.slice(0,16)}.json`),e={mcpServers:{"cockpit-config":{type:"http",url:`${a}/mcp`,headers:{Authorization:`Bearer ${b}`}}}};return(0,g.writeFileSync)(d,JSON.stringify(e,null,2),{mode:384}),{path:d}}class ae{constructor(){this.sessions=new Map,this._cockpitAgentSessionPromise=null,setInterval(()=>{for(let[a,b]of this.sessions)if("running"===b.info.status&&!b.process&&!b.ptyRuntime?.isAlive){let c=a.slice(0,8);(0,u.cY)(`[session:${c}] stale check: status=running but no live process, correcting to idle`),(0,u._N)(a,"idle:stale-check",{runtime:b.runtime,spawning:b.spawning??!1,hasPtyRuntime:!!b.ptyRuntime}),b.info.status="idle",b.emitter.emit("status",a,"idle")}},15e3)}createSession(a,b,c){let d=(0,k.A)(),e=Date.now(),g=(0,v.r)(),h={main:g.modelSlots.main??"sonnet"},i=c?.cockpitAgent===!0,l=c?.runtime??"stream",m={id:d,name:i?"Cockpit Assistant":b||j().basename(a)||a,cwd:a,createdAt:e,lastActiveAt:e,status:"idle",model:h.main,contextSize:g.modelSlots?.mainContext??n.w6,runtime:l,pendingRequestCount:0};return this.sessions.set(d,{info:m,process:null,stdin:null,emitter:new f.EventEmitter,cliSessionId:d,previousCliSessionIds:[],bypassAllPermissions:!i&&(c?.bypassPermissions??g.bypassAllPermissions),planMode:!1,needsRespawnForPermissions:!1,compacting:!1,thinkingLevel:g.thinkingLevel,streamState:null,contextUsage:null,contextWindowSize:(0,n.oh)(m.contextSize??n.w6),todoItems:[],pendingRequests:new Map,controlCallbacks:new Map,streamingSnapshot:null,queuedMessages:[],queuePaused:!1,modelSlots:h,transcriptBuffer:[],transcriptByteOffset:0,transcriptTotalSize:0,bufferCliSessionId:d,paginationPrevIds:[],runtime:l,ptyRuntime:null,transcriptWatcher:null,todoWatcher:null,attachmentPaths:[],totalTokens:{input:0,output:0,cacheCreate:0,cacheRead:0},cockpitAgent:i,cockpitAgentCleanups:[]}),(0,U.JG)(d,{runtime:l,...i?{cockpitAgent:!0}:{}}),i&&this.registerCockpitAgentOnInit(d),m}registerCockpitAgentOnInit(a){let b=this.sessions.get(a);if(!b)return;let c=this.onInit(a,async b=>{for(let c of b.mcpServers)if("cockpit-config"!==c.name&&"disabled"!==c.status)try{await this.mcpToggle(a,c.name,!1)}catch{}});c?b.cockpitAgentCleanups.push(c):console.warn(`[cockpit-agent] onInit returned null for session ${a.slice(0,8)}`)}ensureSession(a,b){let c=this.sessions.get(a);if(!c){let d=(0,U.XP)(a),e=d?.cliSessionId||a,g=d?.previousCliSessionIds||[],h=a.slice(0,8);(0,u.cY)(`[session:${h}] ensureSession: cliSessionId=${e.slice(0,8)}, prevIds=[${g.map(a=>a.slice(0,8)).join(",")}], hasPrefs=${!!d}`);let i=(0,v.r)(),k=Date.now(),l=d?.modelSlots??(d?.model?{main:d.model}:{main:i.modelSlots.main??"sonnet"}),m=d?.runtime??"stream",o=d?.contextSize??d?.modelSlots?.mainContext??n.w6;c={info:{id:a,name:d?.name||j().basename(b)||b,cwd:b,createdAt:k,lastActiveAt:k,status:"idle",model:l.main,contextSize:o,runtime:m,pendingRequestCount:0},process:null,stdin:null,emitter:new f.EventEmitter,cliSessionId:e,previousCliSessionIds:g,bypassAllPermissions:(!d?.cockpitAgent&&d?.bypassAllPermissions)??i.bypassAllPermissions,planMode:d?.planMode??!1,pendingPlanReminder:d?.planMode??!1,needsRespawnForPermissions:!1,compacting:!1,thinkingLevel:d?.thinkingLevel??(0,n.Mi)((0,n.AX)((d?.model||i.modelSlots.main)??"sonnet"))??i.thinkingLevel,streamState:null,contextUsage:null,contextWindowSize:(0,n.oh)(o),todoItems:[],pendingRequests:new Map,controlCallbacks:new Map,initData:d?.initData,streamingSnapshot:null,queuedMessages:[],queuePaused:!1,modelSlots:l,transcriptBuffer:[],transcriptByteOffset:0,transcriptTotalSize:0,bufferCliSessionId:e,paginationPrevIds:[],runtime:m,ptyRuntime:null,transcriptWatcher:null,todoWatcher:null,attachmentPaths:[],totalTokens:{input:0,output:0,cacheCreate:0,cacheRead:0},cockpitAgent:d?.cockpitAgent??!1,cockpitAgentCleanups:[]},this.sessions.set(a,c),d?.cockpitAgent&&this.registerCockpitAgentOnInit(a)}return c}async getOrCreateCockpitAgentSession(){let a=r().sessionId;return a&&this.sessions.has(a)?a:(this._cockpitAgentSessionPromise||(this._cockpitAgentSessionPromise=this._resolveOrCreateCockpitAgentSession().finally(()=>{this._cockpitAgentSessionPromise=null})),this._cockpitAgentSessionPromise)}async _resolveOrCreateCockpitAgentSession(){let a=r(),b=a.sessionId;if(b){if(this.sessions.has(b))return b;let a=(0,U.XP)(b);if(a?.cockpitAgent){let c=await (0,R.gT)(a.cliSessionId||b)??await (0,R.gT)(b);if(c)return this.ensureSession(b,c),b}}let c=this.createSession((0,o.j_)(),void 0,{cockpitAgent:!0,runtime:a.runtime});return a.model&&this.setModel(c.id,a.model,a.contextSize),a.thinkingLevel&&this.setThinkingLevel(c.id,a.thinkingLevel),!function(a){let b={...r(),...a};try{(0,g.mkdirSync)((0,o.j_)(),{recursive:!0}),(0,g.writeFileSync)(q(),JSON.stringify(b,null,2)+"\n")}catch{}}({sessionId:c.id}),c.id}async getSession(a){let b=this.sessions.get(a);if(!b){let c=(0,U.XP)(a),d=await (0,R.gT)(c?.cliSessionId||a)||await (0,R.gT)(a);if(!d)return null;this.ensureSession(a,d),b=this.sessions.get(a)}let c=(0,v.r)().messageStitching,d=c&&b.previousCliSessionIds.length>0,{messages:e,byteOffset:f,totalSize:g,lastUsage:h}=await (0,R.vi)(b.cliSessionId,b.info.cwd,d?void 0:{tailLines:150});if(b.bufferCliSessionId=b.cliSessionId,d)for(let a=b.previousCliSessionIds.length-1;a>=0;a--){let c=b.previousCliSessionIds[a],d=await (0,R.vi)(c,b.info.cwd,{tailLines:150});if(d.messages.length>0){let g={id:`clear-boundary-${a}`,role:"system",content:"__context_reset__",toolUses:[],blocks:[],timestamp:Date.now()};e=[...d.messages,g,...e],f=d.byteOffset,h=h||d.lastUsage,b.bufferCliSessionId=c}}b.transcriptBuffer=e,b.transcriptByteOffset=f,b.transcriptTotalSize=g,b.paginationPrevIds=c?[...b.previousCliSessionIds]:[];let i=e.length>50?e.slice(-50):e,k=e.length>50||f>0||c&&b.previousCliSessionIds.length>0,l=j().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))}let m=[...b.previousCliSessionIds,b.cliSessionId],n=await Promise.all(m.map(a=>(0,R.tS)(a,b.info.cwd))),o=new Set,p=[];for(let a of n)for(let b of a)o.has(b)||(o.add(b),p.push(b));let q=h?{used:h.used,total:b.contextWindowSize}:null;return{info:b.info,messages:i,hasMore:k,lastUsage:q,promptHistory:p}}async getSessionByCwd(a,b){this.ensureSession(a,b);let c=this.sessions.get(a),d=(0,v.r)().messageStitching,e=d&&c.previousCliSessionIds.length>0,{messages:f,byteOffset:g,totalSize:h,lastUsage:i}=await (0,R.vi)(c.cliSessionId,b,e?void 0:{tailLines:150});if(c.bufferCliSessionId=c.cliSessionId,e)for(let a=c.previousCliSessionIds.length-1;a>=0;a--){let d=c.previousCliSessionIds[a],e=await (0,R.vi)(d,b,{tailLines:150});if(e.messages.length>0){let b={id:`clear-boundary-${a}`,role:"system",content:"__context_reset__",toolUses:[],blocks:[],timestamp:Date.now()};f=[...e.messages,b,...f],g=e.byteOffset,i=i||e.lastUsage,c.bufferCliSessionId=d}}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=j().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))}let n=[...c.previousCliSessionIds,c.cliSessionId],o=await Promise.all(n.map(a=>(0,R.tS)(a,b))),p=new Set,q=[];for(let a of o)for(let b of a)p.has(b)||(p.add(b),q.push(b));let r=i?{used:i.used,total:c.contextWindowSize}:null;return{info:c.info,messages:k,hasMore:l,lastUsage:r,promptHistory:q}}async getCliSessionView(a,b){if(!(0,R.Br)(a,b))return null;let c=(0,U.Kw)(a),d=c?c.truncatedPrevIds:[],e=(0,v.r)().messageStitching&&d.length>0,{messages:f,lastUsage:g}=await (0,R.vi)(a,b,e?void 0:{tailLines:150});if(e)for(let a=d.length-1;a>=0;a--){let c=await (0,R.vi)(d[a],b,{tailLines:150});if(c.messages.length>0){let b={id:`clear-boundary-${a}`,role:"system",content:"__context_reset__",toolUses:[],blocks:[],timestamp:Date.now()};f=[...c.messages,b,...f],g=g||c.lastUsage}}let h=f.length>50?f.slice(-50):f,i=j().basename(b)||b;if(f.length>0){let a=f.find(a=>"user"===a.role&&a.content&&!a.content.startsWith("[")&&!a.content.startsWith("<"));a&&(i=a.content.slice(0,120))}let k=[...d,a],l=await Promise.all(k.map(a=>(0,R.tS)(a,b))),m=new Set,o=[];for(let a of l)for(let b of a)m.has(b)||(m.add(b),o.push(b));let p=(0,U.XP)(a),q=p?.contextSize??p?.modelSlots?.mainContext??n.w6,r=g?{used:g.used,total:(0,n.oh)(q)}:null;return{info:{id:a,name:i,cwd:b,createdAt:Date.now(),lastActiveAt:Date.now(),status:"idle"},messages:h,hasMore:f.length>50,lastUsage:r,promptHistory:o}}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,R.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,R.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}getRuntime(a){return this.sessions.get(a)?.runtime??"stream"}getSessionCwd(a){return this.sessions.get(a)?.info.cwd??null}getCliSessionId(a){return this.sessions.get(a)?.cliSessionId??null}getSessionModel(a){return this.sessions.get(a)?.info.model??null}listActiveSessions(){return Array.from(this.sessions.values()).filter(a=>null!==a.process||!!a.ptyRuntime?.isAlive).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{let a=af();if(!(0,g.existsSync)(a))return[];return JSON.parse((0,g.readFileSync)(a,"utf-8"))}catch{return[]}}())a.add(b);return Array.from(a)}isProcessAlive(a){let b=this.sessions.get(a);return!!b?.process||!!b?.ptyRuntime?.isAlive}hasRunningProcess(a){let b=this.sessions.get(a);return!!b?.process||!!b?.ptyRuntime?.isAlive}fixStaleStatus(a){let b=this.sessions.get(a);!b||"running"!==b.info.status||b.process||b.ptyRuntime?.isAlive||(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);if(!b)return!1;if(b.process&&this.endProcess(b,"session_destroyed"),b.ptyRuntime){let a=b.ptyRuntime;b.ptyRuntime=null,a.kill().catch(()=>{})}for(let a of(b.transcriptWatcher&&(b.transcriptWatcher.stop(),b.transcriptWatcher=null),b.todoWatcher&&(b.todoWatcher.stop(),b.todoWatcher=null),this.cleanupAttachments(b),b.cockpitAgentCleanups))try{a()}catch{}if(b.mcpToken){B(b.mcpToken);let a=j().join((0,h.tmpdir)(),"cockpit-mcp-config",`${b.mcpToken.slice(0,16)}.json`);try{(0,g.unlinkSync)(a)}catch{}}return 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 ac(a,"onStatus: session not in memory, returning null"),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)}onTranscript(a,b){let c=this.sessions.get(a);if(!c)return null;let d=(a,c)=>b(c);return c.emitter.on("transcript",d),()=>c.emitter.off("transcript",d)}interrupt(a){let b=this.sessions.get(a);if(!b)return(0,u._N)(a,"interrupt:no-process",{hasSession:!1}),!1;if(b.queuedMessages.length>0&&(b.queuePaused=!0),"pty"===b.runtime)return b.ptyRuntime?.isAlive?((0,u._N)(a,"interrupt:pty-esc"),b.ptyRuntime.interrupt(),"running"===b.info.status&&(b.info.status="idle",b.streamingSnapshot=null,b.streamState&&(b.streamState.pendingBlocks.length=0,b.streamState.pendingToolUses.length=0,b.streamState.agentStack.length=0,b.streamState.currentAssistantMsgId=null,b.streamState.flushedOnMessageDone=!1),b.emitter.emit("status",a,"idle")),b.pendingRequests.clear(),this.notifyPendingChanged(b,a),!0):((0,u._N)(a,"interrupt:no-pty"),!1);if(!b.process)return(0,u._N)(a,"interrupt:no-process",{hasSession:!0}),!1;if(b.stdin){let c={type:"control_request",request_id:`interrupt-${Date.now()}`,request:{subtype:"interrupt"}};return(0,u._N)(a,"interrupt:stdin",{requestId:c.request_id}),b.stdin.write(JSON.stringify(c)+"\n"),b.pendingRequests.clear(),this.notifyPendingChanged(b,a),!0}return(0,u._N)(a,"interrupt:kill-fallback"),this.killProcessGroup(b.process),b.pendingRequests.clear(),this.notifyPendingChanged(b,a),!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);if(c){let d=c.pendingRequests.has(b),e=c.pendingRequests.get(b)?.type==="question";c.pendingRequests.delete(b),e&&console.log(`[question-debug] removePendingRequest: session=${a.slice(0,8)}, requestId=${b}, existed=${d}, remaining=${c.pendingRequests.size}`),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)return!1;if("pty"===g.runtime)return!!g.ptyRuntime?.isAlive&&(g.pendingRequests.delete(b),this.notifyPendingChanged(g,a),g.ptyRuntime.notifyPermissionDecision(b,c?{behavior:"allow",...d?{updatedInput:d}:{}}:{behavior:"deny",message:f??"User denied"}));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.cockpitAgent||(b.bypassAllPermissions=!0,(0,U.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,U.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||a.ptyRuntime?.isAlive)&&("idle"===a.info.status?this.killProcess(a):a.needsRespawnForPermissions=!0)}setRuntime(a,b){let c=this.sessions.get(a);return!!c&&c.runtime!==b&&(c.runtime=b,c.info.runtime=b,(0,U.JG)(a,{runtime:b}),this.killProcess(c),this.emitInfoUpdated(c,a),!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,U.JG)(a,{planMode:!0}),(b.process||b.ptyRuntime?.isAlive)&&(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,U.JG)(a,{planMode:!1}),(b.process||b.ptyRuntime?.isAlive)&&(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,c){let d,e,f=this.sessions.get(a);if(this.log(a,`setModel: requested=${b} size=${c??"(unspecified)"}, current=${f?.info.model} currentSize=${f?.info.contextSize??"(unset)"}, hasStdin=${!!f?.stdin}, hasPty=${!!f?.ptyRuntime}`),!f)return;let g=f.info.contextSize??n.w6,h=c??g,i=(d=(0,n.AX)(b)?.contextSizes)&&0!==d.length?d.includes(h)?h:d[0]:h,j=g!==i;if(f.info.model===b&&!j)return void this.log(a,`setModel: skipping (already ${b} with size ${i})`);f.info.model=b,f.info.contextSize=i,f.modelSlots={...f.modelSlots,main:b,mainContext:i},(0,U.JG)(a,{model:b,contextSize:i,modelSlots:f.modelSlots});let k=(0,n.AX)(b),l=k?(0,n.i3)(f.thinkingLevel,k):0===(e=this.modelEffortLevels(b)).length?null:e.includes(f.thinkingLevel)?f.thinkingLevel:e[e.length-1];if(null!==l&&l!==f.thinkingLevel&&(f.thinkingLevel=l,(0,U.JG)(a,{thinkingLevel:l}),this.emitSystem(f,a,`__thinking_level::${l}`)),f.stdin&&!j){this.log(a,`setModel: sending control_request set_model=${b}`);let c={type:"control_request",request_id:`model-${Date.now()}`,request:{subtype:"set_model",model:b}};if(f.stdin.write(JSON.stringify(c)+"\n"),this.modelEffortLevels(b).length>0){let a={type:"control_request",request_id:`effort-${Date.now()}`,request:{subtype:"apply_flag_settings",settings:{effort:f.thinkingLevel}}};f.stdin.write(JSON.stringify(a)+"\n")}}else this.log(a,`setModel: killing process (hasStdin=${!!f.stdin}, contextChanged=${j})`),this.killProcess(f),f.queuedMessages.length=0,f.queuePaused=!1,f.info.status="idle",f.emitter.emit("status",a,"idle");this.emitInfoUpdated(f,a),j&&(f.contextWindowSize=(0,n.oh)(i));let m=f.contextUsage;m&&f.emitter.emit("usage",a,{used:m.used,total:f.contextWindowSize})}setModelSlot(a,b,c){let d=this.sessions.get(a);if(!d)return;let e={...d.modelSlots};e[b]=c,d.modelSlots=e,(0,U.JG)(a,{modelSlots:e}),"main"===b?this.setModel(a,c):(this.killProcess(d),d.queuedMessages.length=0,d.queuePaused=!1,d.info.status="idle",d.emitter.emit("status",a,"idle"),this.emitInfoUpdated(d,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,U.JG)(a,{thinkingLevel:b});let d=this.modelEffortLevels(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,U.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,U.XP)(a)?.initData}setInitData(a,b){let c=this.sessions.get(a);if(!c)return;let d=c.initData||(0,U.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,U.JG)(a,{initData:c.initData}),c.initData.mcpServers.length>0&&function(a){try{let b=af(),c=j().dirname(b);(0,g.mkdirSync)(c,{recursive:!0}),(0,g.writeFileSync)(b,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)}loadTodosFromFiles(a){let b=this.sessions.get(a);if(!b||b.todoItems.length>0)return;let c=new aa(b.cliSessionId,()=>{}).readOnce();0!==c.length&&(b.todoItems=c,b.emitter.emit("todos",a,[...b.todoItems]))}startTodoWatcher(a,b){a.todoWatcher&&a.todoWatcher.stop();let c=new aa(a.cliSessionId,c=>{a.todoItems=c,a.emitter.emit("todos",b,[...c])});a.todoWatcher=c,c.start()}extractUsage(a,b,c){try{let d=JSON.parse(c.trim());if("assistant"!==d.type||!d.message?.usage||"<synthetic>"===d.message.model)return;let e=d.message.usage,f=(e.input_tokens||0)+(e.cache_creation_input_tokens||0)+(e.cache_read_input_tokens||0);if(f>0){let c={used:f,total:a.contextWindowSize};a.contextUsage=c,a.emitter.emit("usage",b,c)}a.totalTokens.input+=e.input_tokens||0,a.totalTokens.output+=e.output_tokens||0,a.totalTokens.cacheCreate+=e.cache_creation_input_tokens||0,a.totalTokens.cacheRead+=e.cache_read_input_tokens||0}catch{}}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){if(a.process&&(a.process.on("close",()=>{}),this.endProcess(a,"session_reset"),a.process=null,a.stdin=null),a.ptyRuntime){let b=a.ptyRuntime;a.ptyRuntime=null,b.kill().catch(()=>{})}a.spawning=!1,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){let d=c.emit.map(a=>a.type).join(", ");for(let e of(d&&console.log(`[sm] applyProcessedResult for ${b.slice(0,8)}: events=[${d}], statusChange=${c.statusChange??"none"}, currentStatus=${a.info.status}`),c.intermediateMessages))a.emitter.emit("event",b,{type:"message_done",message:e}),e.toolUses.some(a=>"Agent"===a.name)&&this.loadAgentChildren(a,b,e.id,a.info.cwd);for(let d of c.systemMessages){if("__tool_use_start"===d){a.info.status="running",console.log(`[sm] emit status running (via tool_use_start) for ${b.slice(0,8)} (runtime=${a.runtime})`),a.emitter.emit("status",b,"running");continue}if("__compact::hook_start"===d){a.compacting||((0,u._N)(b,"compact:hook-start"),a.compacting=!0,this.emitSystem(a,b,"__compact::start"));continue}if("__compact::hook_done"===d){if(a.compacting){(0,u._N)(b,"compact:hook-done"),a.compacting=!1,this.emitSystem(a,b,"__compact::done");let c={used:Math.round(.1*a.contextWindowSize),total:a.contextWindowSize};a.contextUsage=c,a.emitter.emit("usage",b,c),a.info.status="idle",a.emitter.emit("status",b,"idle"),this.flushQueuedMessage(a,b)}continue}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,U.JG)(b,{planMode:!1}),a.needsRespawnForPermissions=!0,this.emitSystem(a,b,"__plan_state::off")):(a.planMode=!0,(0,U.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);let e=new Set;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.cockpitAgent&&"AskUserQuestion"!==d.toolName){let c=d.toolName,e=["Read","Grep","Glob"].includes(c),f="mcp__cockpit-config__",g=c.startsWith(f),h=g?c.slice(f.length).split("_")[0]:"",i=g&&("list"===h||"get"===h),j=g&&!i;if((0,u._N)(b,"cockpit-agent:permission",{toolName:c,decision:e||i?"auto_approve":j?"proposal":"auto_deny"}),e||i)this.respondToPermission(b,d.requestId,!0,d.rawToolInput);else if(j){let e,f=c.replace("mcp__cockpit-config__","").split("_"),g=f[0],h=f.slice(1).join("_");if("job"===h&&("update"===g||"delete"===g)){let a=d.rawToolInput?.id;"string"==typeof a&&(e=(0,x.ax)(a)?.name)}a.pendingRequests.set(d.requestId,{type:"permission",requestId:d.requestId,toolName:d.toolName,toolInput:d.toolInput||"",rawToolInput:d.rawToolInput,configProposal:{toolName:c,domain:h,action:g,...e?{displayName:e}:{}}}),this.notifyPendingChanged(a,b)}else this.respondToPermission(b,d.requestId,!1,void 0,void 0,"This tool is not available in the cockpit assistant")}else if(a.bypassAllPermissions&&!a.planMode&&"AskUserQuestion"!==d.toolName)this.respondToPermission(b,d.requestId,!0,d.rawToolInput),e.add(d.requestId);else{let c="ExitPlanMode"===d.toolName?function(){try{let a=(0,i.join)((0,o.Wc)(),"plans"),b=(0,g.readdirSync)(a).filter(a=>a.endsWith(".md")&&!a.includes("-agent-"));if(0===b.length)return;let c=b[0],d=0;for(let e of b){let b=(0,g.statSync)((0,i.join)(a,e)).mtimeMs;b>d&&(d=b,c=e)}return(0,i.join)(a,c)}catch{return}}():void 0,e="AskUserQuestion"===d.toolName?"question":"permission";"question"===e&&console.log(`[question-debug] adding pending question: session=${b.slice(0,8)}, requestId=${d.requestId}, total=${a.pendingRequests.size+1}`),a.pendingRequests.set(d.requestId,{type:e,requestId:d.requestId,toolName:d.toolName,toolInput:d.toolInput||"",rawToolInput:d.rawToolInput,permissionSuggestions:d.permissionSuggestions,planFilePath:c,planContent:c?function(a){try{return(0,g.readFileSync)(a,"utf-8")}catch{return}}(c):void 0}),this.notifyPendingChanged(a,b)}if(c.compactDone){a.compacting=!1,this.emitSystem(a,b,"__compact::done");let c={used:Math.round(.1*a.contextWindowSize),total:a.contextWindowSize};a.contextUsage=c,a.emitter.emit("usage",b,c)}for(let d of(c.emit.length>0&&0===a.emitter.listenerCount("event")&&ac(b,`applyProcessedResult: ${c.emit.length} events but 0 event listeners`),c.emit))"permission_request"===d.type&&d.requestId&&e.has(d.requestId)||a.emitter.emit("event",b,d);a.streamingSnapshot=c.snapshot;let f=c.emit[c.emit.length-1];f?.type==="message_done"&&f.message&&(f.message.toolUses.some(a=>"Agent"===a.name)&&this.loadAgentChildren(a,b,f.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",console.log(`[sm] emit status idle for ${b.slice(0,8)} (runtime=${a.runtime})`),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,k.A)(),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,U.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.log(a,`/model command: args="${f}", was=${c.info.model}`),this.killProcess(c),c.info.model=f,c.info.status="idle",c.emitter.emit("status",a,"idle"),(0,U.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,U.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 /cost - Show session token usage\n /context - Show context window usage\n /status - Show session status\n /help - Show this help message\n\nOther commands (/compact, /commit, /review, etc.) are passed to Claude when possible."),!0;case"/cost":{let b=c.totalTokens,d=[`Input tokens: ${b.input.toLocaleString()}`,`Output tokens: ${b.output.toLocaleString()}`,`Cache write tokens: ${b.cacheCreate.toLocaleString()}`,`Cache read tokens: ${b.cacheRead.toLocaleString()}`];return this.emitSystem(c,a,d.join("\n")),!0}case"/context":{if("pty"===c.runtime&&"running"!==c.info.status)return c.ptyRuntime?.isAlive?c.ptyRuntime.sendText("/context").catch(()=>{}):this.spawnPtyProcess(c,a,"/context"),!0;if(!c.contextUsage)return this.emitSystem(c,a,"Context usage data not available yet."),!0;let b=c.contextWindowSize>0?Math.round(c.contextUsage.used/c.contextWindowSize*100):0;return this.emitSystem(c,a,`Context window: ${c.contextUsage.used.toLocaleString()} / ${c.contextWindowSize.toLocaleString()} (${b}%)`),!0}case"/status":{let b=c.info.model||"sonnet",d=c.runtime,e=c.planMode?" [plan]":"";return this.emitSystem(c,a,`Model: ${b} Runtime: ${d}${e}`),!0}}if(c.ptyRuntime?.isAlive){let b,d=l[m[b=e.replace(/^\//,"").toLowerCase()]??b]??"unknown";if(!ae.PTY_FORWARD_LOCAL.has(e.replace(/^\//,""))&&("local"===d||"local-jsx"===d))return this.emitSystem(c,a,`"${e}" ${"local-jsx"===d?"opens an interactive CLI dialog":"runs in the CLI only"} and isn't available in remote mode.`),!0}return!1}static{this.PTY_FORWARD_LOCAL=new Set(["compact"])}static{this.MEDIA_EXT={"image/png":".png","image/jpeg":".jpg","image/gif":".gif","image/webp":".webp","application/pdf":".pdf"}}writeAttachments(a,b){if(!a?.length&&!b?.length)return[];let c=j().join((0,o.du)(),"attachments");(0,g.mkdirSync)(c,{recursive:!0});let d=[];for(let b of a??[]){let a=ae.MEDIA_EXT[b.mediaType]||".png",e=j().join(c,`${(0,k.A)()}${a}`);(0,g.writeFileSync)(e,Buffer.from(b.data,"base64")),d.push(e)}for(let a of b??[]){let b=ae.MEDIA_EXT[a.mediaType]||".pdf",e=j().join(c,`${(0,k.A)()}${b}`);(0,g.writeFileSync)(e,Buffer.from(a.data,"base64")),d.push(e)}return d}cleanupAttachments(a){for(let b of a.attachmentPaths)try{(0,g.unlinkSync)(b)}catch{}a.attachmentPaths=[]}buildPtyText(a,b){if(0===b.length)return a;let c=b.map(a=>`[Attached image: ${a}]`).join("\n");return`${c}
3
+ ${a}`}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>
4
+ Cockpit plan mode is now active, layered on top of Claude Code's native plan mode.
5
+
6
+ Additional Cockpit rules beyond the CLI's defaults:
7
+ - Bash: only read-only commands are permitted (ls, cat, head, tail, wc, grep, rg, find, stat, file, du, df, tree, pwd, which, type, echo, env, date, basename, dirname, realpath, readlink, uname, whoami, hostname, id). Pipes are allowed; ';', '&&', '||', '>', '<', '$(...)', '\`...\`', '<(...)' are not.
8
+ - git: only read-only subcommands (status, log, diff, show, blame, branch, remote, ls-files, ls-tree, rev-parse, describe, tag, reflog).
9
+ - Edit, Write, NotebookEdit: blocked. Use ExitPlanMode to submit the plan before making changes.
10
+ - Read, Grep, Glob, and all other read-only tools: unrestricted.
11
+ </system-reminder>`}async recoverSession(a){if(this.sessions.has(a))return!0;ac(a,"recovering session: not in memory, searching disk");let b=(0,U.XP)(a),c=await (0,R.gT)(b?.cliSessionId||a)||await (0,R.gT)(a);return c?(this.ensureSession(a,c),ac(a,`recovery succeeded: restored from ${c}`),!0):(ac(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 ac(a,"sendMessage: session not in memory, returning false"),(0,u._N)(a,"send:no-session"),!1;if(b.startsWith("/")){if(this.handleCommand(a,b))return!0;b.trim().toLowerCase().startsWith("/compact")&&((0,u._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,u._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.ptyRuntime?.isAlive?e.ptyRuntime.sendText("/compact").catch(()=>{}):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);if(e.queuePaused&&(e.queuedMessages.length=0,e.queuePaused=!1,e.emitter.emit("queued",a,0)),"running"===e.info.status)return 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;if((0,u._N)(a,"running:send",{hasProcess:!!e.process,hasStdin:!!e.stdin,runtime:e.runtime,ptyAlive:!!e.ptyRuntime?.isAlive}),e.info.status="running",console.log(`[sm] emit status running for ${a.slice(0,8)} (runtime=${e.runtime})`),e.emitter.emit("status",a,"running"),"pty"===e.runtime&&e.ptyRuntime?.isAlive){e.streamState&&(e.streamState.thinkingStartedAt=Date.now()),this.cleanupAttachments(e);let f=this.writeAttachments(c,d);e.attachmentPaths.push(...f);let g=this.buildPtyText(b,f);return e.ptyRuntime.sendText(g).catch(b=>{this.log(a,`pty sendText failed: ${b instanceof Error?b.message:String(b)}`)}),!0}return 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,u.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||b.ptyRuntime?.isAlive||b.spawning||this.spawnProcess(b,a)}modelEffortLevels(a){if(!a)return[];let b=(0,n.AX)(a);if(b)return(0,n.iz)(b);let c=(0,t.$K)(a);return c?c.model.effortLevels:[]}spawnProcess(a,b,c,f,i){if("pty"===a.runtime)return void this.spawnPtyProcess(a,b,c,f,i);let k=(0,R.Br)(a.cliSessionId,a.info.cwd);this.log(b,`spawning CLI process (resume=${k}, model=${a.info.model||"sonnet"})`);let l=["-p","--verbose","--output-format","stream-json","--input-format","stream-json"];a.planMode||a.cockpitAgent||l.push("--allow-dangerously-skip-permissions"),l.push("--permission-prompt-tool","stdio"),a.planMode?l.push("--permission-mode","plan"):a.bypassAllPermissions&&!a.cockpitAgent&&l.push("--permission-mode","bypassPermissions"),k?l.push("--resume",a.cliSessionId):l.push("--session-id",a.cliSessionId);let m=(0,t.$K)(a.info.model??"sonnet"),o=m?m.model.modelId:a.info.model;this.log(b,`spawn: info.model=${a.info.model}, resolved=${m?`${m.provider.id}:${m.model.modelId}`:"null"}, cliModel=${o}`),o&&l.push("--model",o),this.modelEffortLevels(a.info.model).length>0&&l.push("--effort",a.thinkingLevel);let p={...process.env};delete p.CLAUDECODE,delete p.CLAUDE_CODE_ENTRYPOINT,m&&Object.assign(p,m.provider.envVars);let q=a.info.contextSize??n.w6;if(n.XR[q].disableEnv?p.CLAUDE_CODE_DISABLE_1M_CONTEXT="1":delete p.CLAUDE_CODE_DISABLE_1M_CONTEXT,a.modelSlots.subagent&&a.modelSlots.subagent!==a.modelSlots.main){let b=(0,t.$K)(a.modelSlots.subagent);p.ANTHROPIC_SMALL_FAST_MODEL=b?b.model.modelId:a.modelSlots.subagent}if(a.cockpitAgent){l.push("--append-system-prompt",y);let b=al();if(b){if(a.mcpToken){B(a.mcpToken);try{(0,g.unlinkSync)(j().join((0,h.tmpdir)(),"cockpit-mcp-config",`${a.mcpToken.slice(0,16)}.json`))}catch{}}let c=(0,e.randomBytes)(24).toString("hex");if(a.runContext){var r;r=a.runContext,z.set(c,r)}else A(c);a.mcpToken=c;let d=ad(b.getUrl(),c);l.push("--mcp-config",d.path)}}(0,g.mkdirSync)(a.info.cwd,{recursive:!0});let v="win32"===process.platform,x=(0,d.spawn)((0,s.S)(),l,{cwd:a.info.cwd,env:p,stdio:["pipe","pipe","pipe"],...v?{shell:!0}:{detached:!0}});a.process=x,a.stdin=x.stdin,this.log(b,`CLI process spawned (pid=${x.pid})`),this.startTodoWatcher(a,b);let C={type:"control_request",request_id:`init-${Date.now()}`,request:{subtype:"initialize"}};if(x.stdin.write(JSON.stringify(C)+"\n"),a.planMode?this.sendPermissionMode(a,b,"plan"):a.bypassAllPermissions&&!a.cockpitAgent&&this.sendPermissionMode(a,b,"bypassPermissions"),c){let b=this.buildContent(a,c,f,i);x.stdin.write(JSON.stringify({type:"user",message:{role:"user",content:b}})+"\n")}x.stdin.on("error",a=>{this.log(b,`stdin pipe error: ${a.message}`)}),x.stdout.on("error",a=>{this.log(b,`stdout pipe error: ${a.message}`)}),x.stderr.on("error",a=>{this.log(b,`stderr pipe error: ${a.message}`)});let D=new w,E="",F=$();a.streamState=F,F.thinkingStartedAt=Date.now();let G="";x.stdout.on("data",c=>{let d=(G+=c.toString()).split(/\r?\n/);if((G=d.pop()||"").trimStart().startsWith("{")&&G.trimEnd().endsWith("}"))try{JSON.parse(G),d.push(G),G=""}catch{}for(let c of d){if((0,u.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===F.agentStack.length&&this.extractUsage(a,b,c);let d=_(D.parseLine(c),F,{planMode:a.planMode,compacting:a.compacting});this.applyProcessedResult(a,b,d)}}),x.stderr.on("data",a=>{E+=a.toString()}),x.on("close",(c,d)=>{if(this.log(b,`CLI process exited (code=${c}, signal=${d}, pid=${x.pid})`),null!==a.process&&a.process!==x)return void this.log(b,`skipping close cleanup: newer process already running (pid=${a.process.pid})`);if(G.trim()){let c=_(D.parseLine(G),F,{planMode:a.planMode,compacting:a.compacting});this.applyProcessedResult(a,b,c)}if(a.process=null,a.stdin=null,a.streamingSnapshot=null,(0,u._N)(b,"idle:process-close",{code:c,flushedOnMessageDone:F.flushedOnMessageDone}),a.info.status="idle",a.emitter.emit("status",b,"idle"),a.compacting){(0,u._N)(b,"compact:done-on-close"),a.compacting=!1,this.emitSystem(a,b,"__compact::done");let c={used:Math.round(.1*a.contextWindowSize),total:a.contextWindowSize};a.contextUsage=c,a.emitter.emit("usage",b,c)}a.todoItems.length>0&&a.todoItems.every(a=>"completed"===a.status)&&(a.todoItems=[],a.emitter.emit("todos",b,[])),0!==c&&E.trim()&&a.emitter.emit("error",b,E.trim()),F.flushedOnMessageDone||this.flushQueuedMessage(a,b)}),x.on("error",c=>{this.log(b,`CLI process error: ${c.message}`),(0,u._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)})}spawnPtyProcess(a,b,c,d,f){if(a.ptyRuntime?.isAlive){let b=a.ptyRuntime;a.ptyRuntime=null,b.kill().catch(()=>{})}let i=ak();if(!i){let c="PTY runtime requires the hook router; server boot did not register one";this.log(b,c),a.info.status="idle",a.emitter.emit("status",b,"idle"),a.emitter.emit("error",b,c);return}let k=(0,R.Br)(a.cliSessionId,a.info.cwd);this.log(b,`spawning PTY claude (resume=${k}, model=${a.info.model||"sonnet"})`);let l=Date.now();(0,u._N)(b,"pty:spawn-begin",{model:a.info.model,hasText:!!c,status:a.info.status}),(0,g.mkdirSync)(a.info.cwd,{recursive:!0});let m=$();a.streamState=m,m.thinkingStartedAt=Date.now();let o=[];(0,R.Br)(a.cliSessionId,a.info.cwd)?o.push("--resume",a.cliSessionId):o.push("--session-id",a.cliSessionId);let p=(0,t.$K)(a.info.model??"sonnet"),q=p?p.model.modelId:a.info.model;q&&o.push("--model",q),this.modelEffortLevels(a.info.model).length>0&&o.push("--effort",a.thinkingLevel),a.planMode?o.push("--permission-mode","plan"):a.bypassAllPermissions&&!a.cockpitAgent&&o.push("--permission-mode","bypassPermissions");let r={};p&&Object.assign(r,p.provider.envVars);let v=a.info.contextSize??n.w6;if(n.XR[v].disableEnv&&(r.CLAUDE_CODE_DISABLE_1M_CONTEXT="1"),a.modelSlots.subagent&&a.modelSlots.subagent!==a.modelSlots.main){let b=(0,t.$K)(a.modelSlots.subagent);r.ANTHROPIC_SMALL_FAST_MODEL=b?b.model.modelId:a.modelSlots.subagent}if(a.cockpitAgent){o.push("--append-system-prompt",y);let b=al();if(b){if(a.mcpToken){B(a.mcpToken);try{(0,g.unlinkSync)(j().join((0,h.tmpdir)(),"cockpit-mcp-config",`${a.mcpToken.slice(0,16)}.json`))}catch{}}let c=(0,e.randomBytes)(24).toString("hex");if(a.runContext){var w;w=a.runContext,z.set(c,w)}else A(c);a.mcpToken=c;let d=ad(b.getUrl(),c);o.push("--mcp-config",d.path)}}let x=new T({sessionId:b,cwd:a.info.cwd,cliSessionId:a.cliSessionId,hookRouter:i,claudeBin:(0,s.S)(),extraArgs:o,extraEnv:r,onEvents:c=>{let d=c.map(a=>a.type).join(", ");console.log(`[sm] pty onEvents for ${b.slice(0,8)}: [${d}]`);let e=_(c,m,{planMode:a.planMode,compacting:a.compacting});this.applyProcessedResult(a,b,e)},onError:c=>{this.log(b,`pty runtime error: ${c}`),a.emitter.emit("error",b,c)},onExit:({exitCode:c,signal:d})=>{if(this.log(b,`PTY claude exited (code=${c}, signal=${d??"none"})`),a.ptyRuntime===x){if(a.ptyRuntime=null,a.spawning=!1,a.streamingSnapshot=null,(0,u._N)(b,"idle:pty-exit",{exitCode:c,signal:d??null,flushedOnMessageDone:m.flushedOnMessageDone,sinceSpawnMs:Date.now()-l}),a.transcriptWatcher&&(a.transcriptWatcher.stop(),a.transcriptWatcher=null),a.info.status="idle",a.emitter.emit("status",b,"idle"),a.compacting){(0,u._N)(b,"compact:done-on-pty-exit"),a.compacting=!1,this.emitSystem(a,b,"__compact::done");let c={used:Math.round(.1*a.contextWindowSize),total:a.contextWindowSize};a.contextUsage=c,a.emitter.emit("usage",b,c)}a.todoItems.length>0&&a.todoItems.every(a=>"completed"===a.status)&&(a.todoItems=[],a.emitter.emit("todos",b,[])),m.flushedOnMessageDone||this.flushQueuedMessage(a,b)}}});a.ptyRuntime=x,(0,u._N)(b,"pty:runtime-assigned",{elapsedMs:Date.now()-l}),this.cleanupAttachments(a);let C=this.writeAttachments(d,f);a.attachmentPaths.push(...C);let D=c?this.buildPtyText(c,C):c,E=new ab(a.cliSessionId,a.info.cwd,(c,d)=>{if(a.emitter.emit("transcript",b,c),d){let c={used:d.used,total:a.contextWindowSize};a.contextUsage=c,a.emitter.emit("usage",b,c)}if(a.compacting&&c.some(a=>"__compacted__"===a.content)){(0,u._N)(b,"compact:done-on-transcript"),a.compacting=!1,this.emitSystem(a,b,"__compact::done");let c={used:Math.round(.1*a.contextWindowSize),total:a.contextWindowSize};a.contextUsage=c,a.emitter.emit("usage",b,c),a.info.status="idle",a.emitter.emit("status",b,"idle"),this.flushQueuedMessage(a,b)}});a.transcriptWatcher=E,this.startTodoWatcher(a,b),a.spawning=!0,x.start(D).then(()=>{a.spawning=!1,this.log(b,`PTY claude ready (pid=${x.pid})`),(0,u._N)(b,"pty:start-resolved",{pid:x.pid,elapsedMs:Date.now()-l,isAlive:x.isAlive,status:a.info.status}),E.start()}).catch(c=>{a.spawning=!1;let d=c instanceof Error?c.message:String(c);this.log(b,`pty runtime start failed: ${d}`),(0,u._N)(b,"pty:start-rejected",{error:d,elapsedMs:Date.now()-l});let e=a.ptyRuntime;a.ptyRuntime=null,a.emitter.emit("error",b,d),a.info.status="idle",a.emitter.emit("status",b,"idle"),e?.kill().catch(()=>{})})}async loadAgentChildren(a,b,c,d){try{let e=(await (0,R.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{}}}function af(){return j().join((0,o.j_)(),"mcp-servers.json")}let ag="__cockpit_session_manager__";function ah(){let a=globalThis;return a[ag]||(a[ag]=new ae),a[ag]}function ai(){return globalThis.__cockpit_job_scheduler__||null}function aj(){return globalThis.__cockpit_terminal_manager__||null}function ak(){return globalThis.__cockpit_hook_router__||null}function al(){return globalThis.__cockpit_mcp__||null}},43719:(a,b,c)=>{c.d(b,{S:()=>f});var d=c(31421);let e=null;function f(){if(e)return e;let a="win32"===process.platform?"where":"which";try{e=(0,d.execFileSync)(a,["claude"],{encoding:"utf-8"}).trim().split("\n")[0]}catch{e="claude"}return e}},51675:(a,b,c)=>{c.d(b,{P:()=>j,r:()=>i});var d=c(73024),e=c(76760),f=c(99417);function g(){return(0,e.join)((0,f.j_)(),"defaults.json")}let h={thinkingLevel:"high",bypassAllPermissions:!1,diffStyle:"split",dismissKeyboardOnSend:!0,thinkingExpanded:!1,readExpanded:!1,editExpanded:!1,toolCallsExpanded:!1,modelSlots:{main:"sonnet"},messageStitching:!0,reviewsEnabled:!0};function i(){try{let a=JSON.parse((0,d.readFileSync)(g(),"utf-8"));return a.model&&!a.modelSlots&&(a.modelSlots={main:a.model},delete a.model),{...h,...a}}catch{return{...h}}}function j(a){let b={...i(),...a};try{(0,d.mkdirSync)((0,f.j_)(),{recursive:!0}),(0,d.writeFileSync)(g(),JSON.stringify(b,null,2)+"\n")}catch{}return b}},57830:(a,b,c)=>{c.d(b,{Mh:()=>s,XX:()=>q,ax:()=>o,d_:()=>v,h_:()=>n,lR:()=>r,p7:()=>p,ti:()=>u,uK:()=>t});var d=c(73024),e=c(76760),f=c(64423),g=c(99417);function h(){return(0,g.j_)()}function i(){return(0,e.join)(h(),"scheduled-jobs.json")}function j(){return(0,e.join)(h(),"job-runs")}function k(a){(0,d.mkdirSync)(a,{recursive:!0})}function l(a){return(0,e.join)(j(),`${a}.json`)}function m(a){if(a.model?.includes("[")){let b=(0,f.jp)(a.model);return{...a,model:b.model,contextSize:a.contextSize??b.contextSize}}return a}function n(){try{return(JSON.parse((0,d.readFileSync)(i(),"utf-8")).jobs||[]).map(m)}catch{return[]}}function o(a){return n().find(b=>b.id===a)}function p(a){let b=n(),c=b.findIndex(b=>b.id===a.id);c>=0?b[c]=a:b.push(a),k(h()),(0,d.writeFileSync)(i(),JSON.stringify({jobs:b},null,2)+"\n")}function q(a){let b=n(),e=b.filter(b=>b.id!==a);if(e.length===b.length)return!1;k(h()),(0,d.writeFileSync)(i(),JSON.stringify({jobs:e},null,2)+"\n");let f=l(a);try{if((0,d.existsSync)(f)){let{unlinkSync:a}=c(73024);a(f)}}catch{}return!0}function r(a){try{return JSON.parse((0,d.readFileSync)(l(a),"utf-8")).runs||[]}catch{return[]}}function s(a,b){return r(a).find(a=>a.id===b)}function t(){let a,b=new Set;try{a=(0,d.readdirSync)(j())}catch{return b}for(let c of a)if(c.endsWith(".json"))try{for(let a of JSON.parse((0,d.readFileSync)((0,e.join)(j(),c),"utf-8")).runs||[])a.sessionId&&b.add(a.sessionId)}catch{}return b}function u(a){let b=r(a);if(0!==b.length)return b.reduce((a,b)=>b.startedAt>a.startedAt?b:a)}function v(){let a=n(),b=0;for(let c of a){let a=u(c.id);a&&("failure"===a.status||"timeout"===a.status)&&b++}return b}}};