@openagt/dashboard 0.8.0 → 0.10.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 (965) hide show
  1. package/README.md +14 -17
  2. package/dist/agent-view.d.ts +3 -3
  3. package/dist/bridge-browser.d.ts +4 -4
  4. package/dist/bridge-browser.d.ts.map +1 -1
  5. package/dist/bridge-browser.js +8 -8
  6. package/dist/bridge-browser.js.map +1 -1
  7. package/dist/built-in.d.ts +45 -14
  8. package/dist/built-in.d.ts.map +1 -1
  9. package/dist/built-in.js +122 -27
  10. package/dist/built-in.js.map +1 -1
  11. package/dist/chrome-extension/background.js +11 -11
  12. package/dist/chrome-extension/content.js +37 -37
  13. package/dist/chrome-extension/driver-plan.js +1 -1
  14. package/dist/chrome-extension/fingerprint.js +1 -1
  15. package/dist/chrome-extension/manifest.json +3 -3
  16. package/dist/chrome-extension/options.html +4 -4
  17. package/dist/chrome-extension/options.js +4 -4
  18. package/dist/cli.d.ts +1 -1
  19. package/dist/cli.js +7 -7
  20. package/dist/cli.js.map +1 -1
  21. package/dist/client.d.ts +1 -1
  22. package/dist/client.js +2 -2
  23. package/dist/cloud-run-state.d.ts +1 -1
  24. package/dist/cloud-scratch-refs.js +7 -7
  25. package/dist/cloud-scratch-refs.js.map +1 -1
  26. package/dist/cloud-work.js +2 -2
  27. package/dist/daemon-runtime.d.ts +5 -4
  28. package/dist/daemon-runtime.d.ts.map +1 -1
  29. package/dist/daemon-runtime.js +59 -10
  30. package/dist/daemon-runtime.js.map +1 -1
  31. package/dist/daemon-services.d.ts +4 -3
  32. package/dist/daemon-services.d.ts.map +1 -1
  33. package/dist/daemon-services.js +14 -8
  34. package/dist/daemon-services.js.map +1 -1
  35. package/dist/daemon-tick.js +1 -1
  36. package/dist/daemon.d.ts +1 -12
  37. package/dist/daemon.d.ts.map +1 -1
  38. package/dist/daemon.js +9 -32
  39. package/dist/daemon.js.map +1 -1
  40. package/dist/dashboard/agent-handoff.d.ts +4 -4
  41. package/dist/dashboard/agent-handoff.js +7 -7
  42. package/dist/dashboard/agent-handoff.js.map +1 -1
  43. package/dist/dashboard/bridge-endpoints.d.ts +3 -3
  44. package/dist/dashboard/bridge-endpoints.js +3 -3
  45. package/dist/dashboard/content-type.js +1 -1
  46. package/dist/dashboard/docs.d.ts +1 -1
  47. package/dist/dashboard/docs.js +1 -1
  48. package/dist/dashboard/git-status.d.ts +1 -1
  49. package/dist/dashboard/index.d.ts +1 -1
  50. package/dist/dashboard/index.d.ts.map +1 -1
  51. package/dist/dashboard/interventions.d.ts +2 -2
  52. package/dist/dashboard/open-in-app.d.ts +3 -3
  53. package/dist/dashboard/open-in-app.js +4 -4
  54. package/dist/dashboard/open-questions.d.ts +2 -2
  55. package/dist/dashboard/projects.d.ts +6 -5
  56. package/dist/dashboard/projects.d.ts.map +1 -1
  57. package/dist/dashboard/projects.js.map +1 -1
  58. package/dist/dashboard/pull-requests.d.ts +5 -5
  59. package/dist/dashboard/pull-requests.d.ts.map +1 -1
  60. package/dist/dashboard/pull-requests.js +2 -2
  61. package/dist/dashboard/pull-requests.js.map +1 -1
  62. package/dist/dashboard/relay-endpoints.d.ts +3 -3
  63. package/dist/dashboard/relay-endpoints.js +1 -1
  64. package/dist/dashboard/remote-run.d.ts +5 -5
  65. package/dist/dashboard/remote-run.js +3 -3
  66. package/dist/dashboard/rpc-serve.d.ts +7 -4
  67. package/dist/dashboard/rpc-serve.d.ts.map +1 -1
  68. package/dist/dashboard/rpc-serve.js.map +1 -1
  69. package/dist/dashboard/run-inbox.d.ts +2 -2
  70. package/dist/dashboard/run-inbox.js +4 -4
  71. package/dist/dashboard/run-inbox.js.map +1 -1
  72. package/dist/dashboard/server.d.ts +6 -4
  73. package/dist/dashboard/server.d.ts.map +1 -1
  74. package/dist/dashboard/server.js +3 -2
  75. package/dist/dashboard/server.js.map +1 -1
  76. package/dist/dashboard/start-branch.d.ts +32 -0
  77. package/dist/dashboard/start-branch.d.ts.map +1 -0
  78. package/dist/dashboard/start-branch.js +47 -0
  79. package/dist/dashboard/start-branch.js.map +1 -0
  80. package/dist/dashboard/static.js +1 -1
  81. package/dist/dashboard/types.d.ts +29 -3
  82. package/dist/dashboard/types.d.ts.map +1 -1
  83. package/dist/dashboard/web-start-endpoints.d.ts +1 -1
  84. package/dist/dashboard/web-start-endpoints.d.ts.map +1 -1
  85. package/dist/dashboard/web-start-endpoints.js +1 -1
  86. package/dist/dashboard/web-start-endpoints.js.map +1 -1
  87. package/dist/dashboard-bundle/assets/main-Q7JMdMJI.css +2 -0
  88. package/dist/dashboard-bundle/assets/main-fDZWGOub.js +140 -0
  89. package/dist/dashboard-bundle/assets/{module-jASZmfSB.js → module-gKz-ZvkG.js} +4 -4
  90. package/dist/dashboard-bundle/host/module.js +1 -1
  91. package/dist/dashboard-bundle/index.html +6 -6
  92. package/dist/dashboard-rpc/context.d.ts +2 -0
  93. package/dist/dashboard-rpc/context.d.ts.map +1 -1
  94. package/dist/dashboard-rpc/context.js +4 -0
  95. package/dist/dashboard-rpc/context.js.map +1 -1
  96. package/dist/dashboard-rpc/control.d.ts +1 -1
  97. package/dist/dashboard-rpc/control.js +3 -3
  98. package/dist/dashboard-rpc/control.js.map +1 -1
  99. package/dist/dashboard-rpc/events.d.ts +3 -3
  100. package/dist/dashboard-rpc/index.d.ts +2 -1
  101. package/dist/dashboard-rpc/index.d.ts.map +1 -1
  102. package/dist/dashboard-rpc/index.js +4 -2
  103. package/dist/dashboard-rpc/index.js.map +1 -1
  104. package/dist/dashboard-rpc/modules.d.ts +8 -6
  105. package/dist/dashboard-rpc/modules.d.ts.map +1 -1
  106. package/dist/dashboard-rpc/modules.js +8 -6
  107. package/dist/dashboard-rpc/modules.js.map +1 -1
  108. package/dist/dashboard-rpc/preferences.d.ts +2 -2
  109. package/dist/dashboard-rpc/preferences.d.ts.map +1 -1
  110. package/dist/dashboard-rpc/preferences.js +2 -2
  111. package/dist/dashboard-rpc/preferences.js.map +1 -1
  112. package/dist/dashboard-rpc/projects.d.ts +29 -3
  113. package/dist/dashboard-rpc/projects.d.ts.map +1 -1
  114. package/dist/dashboard-rpc/projects.js +57 -8
  115. package/dist/dashboard-rpc/projects.js.map +1 -1
  116. package/dist/dashboard-rpc/reads.d.ts +3 -3
  117. package/dist/dashboard-rpc/reads.js +1 -1
  118. package/dist/dashboard-rpc/skills.d.ts +80 -0
  119. package/dist/dashboard-rpc/skills.d.ts.map +1 -0
  120. package/dist/dashboard-rpc/skills.js +84 -0
  121. package/dist/dashboard-rpc/skills.js.map +1 -0
  122. package/dist/dashboard-rpc/test-context.d.ts.map +1 -1
  123. package/dist/dashboard-rpc/test-context.js +4 -3
  124. package/dist/dashboard-rpc/test-context.js.map +1 -1
  125. package/dist/event-stream.d.ts +1 -1
  126. package/dist/event-stream.js +1 -1
  127. package/dist/events.d.ts +8 -8
  128. package/dist/events.d.ts.map +1 -1
  129. package/dist/index.d.ts +3 -2
  130. package/dist/index.d.ts.map +1 -1
  131. package/dist/install.d.ts +9 -7
  132. package/dist/install.d.ts.map +1 -1
  133. package/dist/install.js +28 -14
  134. package/dist/install.js.map +1 -1
  135. package/dist/module-server.d.ts +1 -1
  136. package/dist/module-types/dashboard/components/ui/switch.d.ts +7 -0
  137. package/dist/module-types/dashboard/lib/route.d.ts +2 -1
  138. package/dist/module-types/dashboard/lib/use-modules.d.ts +4 -3
  139. package/dist/module-types/dashboard/module/index.d.ts +6 -5
  140. package/dist/module-types/src/agent-view.d.ts +3 -3
  141. package/dist/module-types/src/bridge-browser.d.ts +4 -4
  142. package/dist/module-types/src/built-in.d.ts +45 -14
  143. package/dist/module-types/src/client.d.ts +1 -1
  144. package/dist/module-types/src/cloud-run-state.d.ts +1 -1
  145. package/dist/module-types/src/dashboard/agent-handoff.d.ts +4 -4
  146. package/dist/module-types/src/dashboard/bridge-endpoints.d.ts +3 -3
  147. package/dist/module-types/src/dashboard/docs.d.ts +1 -1
  148. package/dist/module-types/src/dashboard/git-status.d.ts +1 -1
  149. package/dist/module-types/src/dashboard/interventions.d.ts +2 -2
  150. package/dist/module-types/src/dashboard/open-in-app.d.ts +3 -3
  151. package/dist/module-types/src/dashboard/open-questions.d.ts +2 -2
  152. package/dist/module-types/src/dashboard/projects.d.ts +6 -5
  153. package/dist/module-types/src/dashboard/pull-requests.d.ts +5 -5
  154. package/dist/module-types/src/dashboard/remote-run.d.ts +5 -5
  155. package/dist/module-types/src/dashboard/rpc-serve.d.ts +7 -4
  156. package/dist/module-types/src/dashboard/run-inbox.d.ts +2 -2
  157. package/dist/module-types/src/dashboard/start-branch.d.ts +31 -0
  158. package/dist/module-types/src/dashboard/types.d.ts +29 -3
  159. package/dist/module-types/src/dashboard-rpc/context.d.ts +2 -0
  160. package/dist/module-types/src/dashboard-rpc/control.d.ts +1 -1
  161. package/dist/module-types/src/dashboard-rpc/events.d.ts +3 -3
  162. package/dist/module-types/src/dashboard-rpc/index.d.ts +2 -1
  163. package/dist/module-types/src/dashboard-rpc/modules.d.ts +8 -6
  164. package/dist/module-types/src/dashboard-rpc/preferences.d.ts +2 -2
  165. package/dist/module-types/src/dashboard-rpc/projects.d.ts +29 -3
  166. package/dist/module-types/src/dashboard-rpc/reads.d.ts +3 -3
  167. package/dist/module-types/src/dashboard-rpc/skills.d.ts +79 -0
  168. package/dist/module-types/src/event-stream.d.ts +1 -1
  169. package/dist/module-types/src/events.d.ts +8 -8
  170. package/dist/module-types/src/index.d.ts +3 -2
  171. package/dist/module-types/src/open-choices.d.ts +2 -2
  172. package/dist/module-types/src/openagent-dir.d.ts +8 -0
  173. package/dist/module-types/src/openagent-gitignore.d.ts +11 -0
  174. package/dist/module-types/src/project-commands.d.ts +5 -1
  175. package/dist/module-types/src/project-errors.d.ts +11 -7
  176. package/dist/module-types/src/project-hooks.d.ts +12 -9
  177. package/dist/module-types/src/project-modules.d.ts +9 -7
  178. package/dist/module-types/src/project-presets.d.ts +4 -4
  179. package/dist/module-types/src/project.d.ts +6 -6
  180. package/dist/module-types/src/publish-levels.d.ts +4 -4
  181. package/dist/module-types/src/quota-boundary.d.ts +2 -2
  182. package/dist/module-types/src/registry.d.ts +13 -7
  183. package/dist/module-types/src/store/agent-checkout.d.ts +1 -1
  184. package/dist/module-types/src/store/agent-store.d.ts +6 -6
  185. package/dist/module-types/src/store/branches.d.ts +8 -8
  186. package/dist/module-types/src/store/git-host.d.ts +8 -8
  187. package/dist/module-types/src/store/provided.d.ts +3 -3
  188. package/dist/module-types/src/store/queue.d.ts +9 -9
  189. package/dist/module-types/src/store/repository.d.ts +2 -2
  190. package/dist/module-types/src/store/run-record.d.ts +10 -10
  191. package/dist/module-types/src/store/runs.d.ts +7 -7
  192. package/dist/module-types/src/store/tickets.d.ts +8 -8
  193. package/dist/module-types/src/terminal.d.ts +3 -3
  194. package/dist/open-choices.d.ts +2 -2
  195. package/dist/openagent-dir.d.ts +9 -0
  196. package/dist/openagent-dir.d.ts.map +1 -0
  197. package/dist/openagent-dir.js +9 -0
  198. package/dist/openagent-dir.js.map +1 -0
  199. package/dist/openagent-gitignore.d.ts +12 -0
  200. package/dist/openagent-gitignore.d.ts.map +1 -0
  201. package/dist/openagent-gitignore.js +19 -0
  202. package/dist/openagent-gitignore.js.map +1 -0
  203. package/dist/pick-directory.js +2 -2
  204. package/dist/pick-directory.js.map +1 -1
  205. package/dist/project-commands.d.ts +5 -1
  206. package/dist/project-commands.d.ts.map +1 -1
  207. package/dist/project-commands.js +1 -1
  208. package/dist/project-commands.js.map +1 -1
  209. package/dist/project-errors.d.ts +11 -7
  210. package/dist/project-errors.d.ts.map +1 -1
  211. package/dist/project-errors.js +10 -8
  212. package/dist/project-errors.js.map +1 -1
  213. package/dist/project-hooks.d.ts +12 -9
  214. package/dist/project-hooks.d.ts.map +1 -1
  215. package/dist/project-hooks.js +17 -14
  216. package/dist/project-hooks.js.map +1 -1
  217. package/dist/project-modules.d.ts +9 -7
  218. package/dist/project-modules.d.ts.map +1 -1
  219. package/dist/project-modules.js +7 -13
  220. package/dist/project-modules.js.map +1 -1
  221. package/dist/project-presets.d.ts +4 -4
  222. package/dist/project-presets.d.ts.map +1 -1
  223. package/dist/project-presets.js +9 -9
  224. package/dist/project-presets.js.map +1 -1
  225. package/dist/project.d.ts +6 -6
  226. package/dist/project.d.ts.map +1 -1
  227. package/dist/project.js +6 -7
  228. package/dist/project.js.map +1 -1
  229. package/dist/publish-levels.d.ts +4 -4
  230. package/dist/publish-levels.d.ts.map +1 -1
  231. package/dist/publish-levels.js +7 -5
  232. package/dist/publish-levels.js.map +1 -1
  233. package/dist/quota-boundary.d.ts +2 -2
  234. package/dist/quota-boundary.js +2 -2
  235. package/dist/registry.d.ts +13 -7
  236. package/dist/registry.d.ts.map +1 -1
  237. package/dist/registry.js +19 -3
  238. package/dist/registry.js.map +1 -1
  239. package/dist/remove-files.d.ts +24 -0
  240. package/dist/remove-files.d.ts.map +1 -0
  241. package/dist/remove-files.js +98 -0
  242. package/dist/remove-files.js.map +1 -0
  243. package/dist/store/agent-checkout.d.ts +1 -1
  244. package/dist/store/agent-checkout.js +3 -3
  245. package/dist/store/agent-checkout.js.map +1 -1
  246. package/dist/store/agent-store.d.ts +6 -6
  247. package/dist/store/agent-store.js +8 -8
  248. package/dist/store/agent-store.js.map +1 -1
  249. package/dist/store/branches.d.ts +8 -8
  250. package/dist/store/branches.d.ts.map +1 -1
  251. package/dist/store/branches.js +2 -2
  252. package/dist/store/branches.js.map +1 -1
  253. package/dist/store/git-host.d.ts +8 -8
  254. package/dist/store/git-host.d.ts.map +1 -1
  255. package/dist/store/git-host.js +3 -3
  256. package/dist/store/git-host.js.map +1 -1
  257. package/dist/store/provided.d.ts +3 -3
  258. package/dist/store/provided.d.ts.map +1 -1
  259. package/dist/store/provided.js +3 -3
  260. package/dist/store/provided.js.map +1 -1
  261. package/dist/store/queue.d.ts +9 -9
  262. package/dist/store/queue.d.ts.map +1 -1
  263. package/dist/store/queue.js +2 -2
  264. package/dist/store/queue.js.map +1 -1
  265. package/dist/store/repository.d.ts +2 -2
  266. package/dist/store/run-record.d.ts +10 -10
  267. package/dist/store/run-record.d.ts.map +1 -1
  268. package/dist/store/run-record.js +7 -7
  269. package/dist/store/run-record.js.map +1 -1
  270. package/dist/store/runs.d.ts +7 -7
  271. package/dist/store/runs.d.ts.map +1 -1
  272. package/dist/store/runs.js +3 -3
  273. package/dist/store/runs.js.map +1 -1
  274. package/dist/store/test-branches.d.ts +0 -8
  275. package/dist/store/test-branches.d.ts.map +1 -1
  276. package/dist/store/test-branches.js +0 -24
  277. package/dist/store/test-branches.js.map +1 -1
  278. package/dist/store/tickets.d.ts +8 -8
  279. package/dist/store/tickets.d.ts.map +1 -1
  280. package/dist/store/tickets.js +2 -2
  281. package/dist/store/tickets.js.map +1 -1
  282. package/dist/terminal.d.ts +3 -3
  283. package/dist/terminal.js +3 -3
  284. package/package.json +23 -20
  285. package/dist/agent-archive.d.ts +0 -35
  286. package/dist/agent-archive.d.ts.map +0 -1
  287. package/dist/agent-archive.js +0 -67
  288. package/dist/agent-archive.js.map +0 -1
  289. package/dist/agent-commit.d.ts +0 -140
  290. package/dist/agent-commit.d.ts.map +0 -1
  291. package/dist/agent-commit.js +0 -254
  292. package/dist/agent-commit.js.map +0 -1
  293. package/dist/agent-driver.d.ts +0 -28
  294. package/dist/agent-driver.d.ts.map +0 -1
  295. package/dist/agent-driver.js +0 -18
  296. package/dist/agent-driver.js.map +0 -1
  297. package/dist/agent-location.d.ts +0 -11
  298. package/dist/agent-location.d.ts.map +0 -1
  299. package/dist/agent-location.js +0 -10
  300. package/dist/agent-location.js.map +0 -1
  301. package/dist/agent-messages.d.ts +0 -55
  302. package/dist/agent-messages.d.ts.map +0 -1
  303. package/dist/agent-messages.js +0 -73
  304. package/dist/agent-messages.js.map +0 -1
  305. package/dist/agent-names.d.ts +0 -24
  306. package/dist/agent-names.d.ts.map +0 -1
  307. package/dist/agent-names.js +0 -33
  308. package/dist/agent-names.js.map +0 -1
  309. package/dist/agent-options.d.ts +0 -45
  310. package/dist/agent-options.d.ts.map +0 -1
  311. package/dist/agent-options.js +0 -83
  312. package/dist/agent-options.js.map +0 -1
  313. package/dist/agent-spec.d.ts +0 -56
  314. package/dist/agent-spec.d.ts.map +0 -1
  315. package/dist/agent-spec.js +0 -56
  316. package/dist/agent-spec.js.map +0 -1
  317. package/dist/agent-telemetry.d.ts +0 -88
  318. package/dist/agent-telemetry.d.ts.map +0 -1
  319. package/dist/agent-telemetry.js +0 -97
  320. package/dist/agent-telemetry.js.map +0 -1
  321. package/dist/agent.d.ts +0 -113
  322. package/dist/agent.d.ts.map +0 -1
  323. package/dist/agent.js +0 -168
  324. package/dist/agent.js.map +0 -1
  325. package/dist/archived-agent-patch.d.ts +0 -14
  326. package/dist/archived-agent-patch.d.ts.map +0 -1
  327. package/dist/archived-agent-patch.js +0 -22
  328. package/dist/archived-agent-patch.js.map +0 -1
  329. package/dist/auto-pm.d.ts +0 -538
  330. package/dist/auto-pm.d.ts.map +0 -1
  331. package/dist/auto-pm.js +0 -707
  332. package/dist/auto-pm.js.map +0 -1
  333. package/dist/await-gate.d.ts +0 -184
  334. package/dist/await-gate.d.ts.map +0 -1
  335. package/dist/await-gate.js +0 -252
  336. package/dist/await-gate.js.map +0 -1
  337. package/dist/branch-links-pass.d.ts +0 -15
  338. package/dist/branch-links-pass.d.ts.map +0 -1
  339. package/dist/branch-links-pass.js +0 -13
  340. package/dist/branch-links-pass.js.map +0 -1
  341. package/dist/branch-links.d.ts +0 -53
  342. package/dist/branch-links.d.ts.map +0 -1
  343. package/dist/branch-links.js +0 -94
  344. package/dist/branch-links.js.map +0 -1
  345. package/dist/branch-names.d.ts +0 -57
  346. package/dist/branch-names.d.ts.map +0 -1
  347. package/dist/branch-names.js +0 -72
  348. package/dist/branch-names.js.map +0 -1
  349. package/dist/ci-watch.d.ts +0 -123
  350. package/dist/ci-watch.d.ts.map +0 -1
  351. package/dist/ci-watch.js +0 -228
  352. package/dist/ci-watch.js.map +0 -1
  353. package/dist/claude-trust.d.ts +0 -16
  354. package/dist/claude-trust.d.ts.map +0 -1
  355. package/dist/claude-trust.js +0 -72
  356. package/dist/claude-trust.js.map +0 -1
  357. package/dist/cli-exec.d.ts +0 -36
  358. package/dist/cli-exec.d.ts.map +0 -1
  359. package/dist/cli-exec.js +0 -44
  360. package/dist/cli-exec.js.map +0 -1
  361. package/dist/closing-keywords.d.ts +0 -28
  362. package/dist/closing-keywords.d.ts.map +0 -1
  363. package/dist/closing-keywords.js +0 -49
  364. package/dist/closing-keywords.js.map +0 -1
  365. package/dist/config-layers.d.ts +0 -62
  366. package/dist/config-layers.d.ts.map +0 -1
  367. package/dist/config-layers.js +0 -70
  368. package/dist/config-layers.js.map +0 -1
  369. package/dist/config.d.ts +0 -54
  370. package/dist/config.d.ts.map +0 -1
  371. package/dist/config.js +0 -78
  372. package/dist/config.js.map +0 -1
  373. package/dist/consumption-guard.d.ts +0 -53
  374. package/dist/consumption-guard.d.ts.map +0 -1
  375. package/dist/consumption-guard.js +0 -69
  376. package/dist/consumption-guard.js.map +0 -1
  377. package/dist/control.d.ts +0 -75
  378. package/dist/control.d.ts.map +0 -1
  379. package/dist/control.js +0 -68
  380. package/dist/control.js.map +0 -1
  381. package/dist/conversation-commit.d.ts +0 -166
  382. package/dist/conversation-commit.d.ts.map +0 -1
  383. package/dist/conversation-commit.js +0 -309
  384. package/dist/conversation-commit.js.map +0 -1
  385. package/dist/conversations.d.ts +0 -93
  386. package/dist/conversations.d.ts.map +0 -1
  387. package/dist/conversations.js +0 -176
  388. package/dist/conversations.js.map +0 -1
  389. package/dist/daemon-writes.d.ts +0 -33
  390. package/dist/daemon-writes.d.ts.map +0 -1
  391. package/dist/daemon-writes.js +0 -45
  392. package/dist/daemon-writes.js.map +0 -1
  393. package/dist/dashboard/agent-tree.d.ts +0 -106
  394. package/dist/dashboard/agent-tree.d.ts.map +0 -1
  395. package/dist/dashboard/agent-tree.js +0 -180
  396. package/dist/dashboard/agent-tree.js.map +0 -1
  397. package/dist/dashboard/browser-proxy.d.ts +0 -41
  398. package/dist/dashboard/browser-proxy.d.ts.map +0 -1
  399. package/dist/dashboard/browser-proxy.js +0 -96
  400. package/dist/dashboard/browser-proxy.js.map +0 -1
  401. package/dist/dashboard/discord-webhook.d.ts +0 -17
  402. package/dist/dashboard/discord-webhook.d.ts.map +0 -1
  403. package/dist/dashboard/discord-webhook.js +0 -36
  404. package/dist/dashboard/discord-webhook.js.map +0 -1
  405. package/dist/dashboard/file-diff.d.ts +0 -67
  406. package/dist/dashboard/file-diff.d.ts.map +0 -1
  407. package/dist/dashboard/file-diff.js +0 -132
  408. package/dist/dashboard/file-diff.js.map +0 -1
  409. package/dist/dashboard/file-read.d.ts +0 -42
  410. package/dist/dashboard/file-read.d.ts.map +0 -1
  411. package/dist/dashboard/file-read.js +0 -69
  412. package/dist/dashboard/file-read.js.map +0 -1
  413. package/dist/dashboard/file-status.d.ts +0 -21
  414. package/dist/dashboard/file-status.d.ts.map +0 -1
  415. package/dist/dashboard/file-status.js +0 -37
  416. package/dist/dashboard/file-status.js.map +0 -1
  417. package/dist/dashboard/gh.d.ts +0 -131
  418. package/dist/dashboard/gh.d.ts.map +0 -1
  419. package/dist/dashboard/gh.js +0 -150
  420. package/dist/dashboard/gh.js.map +0 -1
  421. package/dist/dashboard/github.d.ts +0 -11
  422. package/dist/dashboard/github.d.ts.map +0 -1
  423. package/dist/dashboard/github.js +0 -33
  424. package/dist/dashboard/github.js.map +0 -1
  425. package/dist/dashboard/run-handoff.d.ts +0 -311
  426. package/dist/dashboard/run-handoff.d.ts.map +0 -1
  427. package/dist/dashboard/run-handoff.js +0 -485
  428. package/dist/dashboard/run-handoff.js.map +0 -1
  429. package/dist/dashboard/scheduler-state.d.ts +0 -73
  430. package/dist/dashboard/scheduler-state.d.ts.map +0 -1
  431. package/dist/dashboard/scheduler-state.js +0 -120
  432. package/dist/dashboard/scheduler-state.js.map +0 -1
  433. package/dist/dashboard/subagent-settings.d.ts +0 -26
  434. package/dist/dashboard/subagent-settings.d.ts.map +0 -1
  435. package/dist/dashboard/subagent-settings.js +0 -52
  436. package/dist/dashboard/subagent-settings.js.map +0 -1
  437. package/dist/dashboard/telefunc-serve.d.ts +0 -118
  438. package/dist/dashboard/telefunc-serve.d.ts.map +0 -1
  439. package/dist/dashboard/telefunc-serve.js +0 -108
  440. package/dist/dashboard/telefunc-serve.js.map +0 -1
  441. package/dist/dashboard/tickets.d.ts +0 -29
  442. package/dist/dashboard/tickets.d.ts.map +0 -1
  443. package/dist/dashboard/tickets.js +0 -38
  444. package/dist/dashboard/tickets.js.map +0 -1
  445. package/dist/dashboard/widget-serve.d.ts +0 -15
  446. package/dist/dashboard/widget-serve.d.ts.map +0 -1
  447. package/dist/dashboard/widget-serve.js +0 -45
  448. package/dist/dashboard/widget-serve.js.map +0 -1
  449. package/dist/dashboard-bundle/assets/main-B3HghPQy.css +0 -2
  450. package/dist/dashboard-bundle/assets/main-om0WOAku.js +0 -140
  451. package/dist/dashboard-client/assets/chunks/chunk-BF9pJudf.js +0 -4
  452. package/dist/dashboard-client/assets/entries/entry-client-routing.CT1e9F0o.js +0 -1
  453. package/dist/dashboard-client/assets/entries/pages_index.CkW5JQ8X.js +0 -428
  454. package/dist/dashboard-client/assets/static/layouts_tailwind-00e65532.8OjKGAbA.css +0 -2
  455. package/dist/dashboard-client/index.html +0 -27
  456. package/dist/dashboard-client/index.pageContext.json +0 -1
  457. package/dist/dashboard-client/logo-animated.svg +0 -34
  458. package/dist/dashboard-client/logo.svg +0 -16
  459. package/dist/dashboard-rpc/control.telefunc.d.ts +0 -176
  460. package/dist/dashboard-rpc/control.telefunc.d.ts.map +0 -1
  461. package/dist/dashboard-rpc/control.telefunc.js +0 -373
  462. package/dist/dashboard-rpc/control.telefunc.js.map +0 -1
  463. package/dist/dashboard-rpc/devices.telefunc.d.ts +0 -9
  464. package/dist/dashboard-rpc/devices.telefunc.d.ts.map +0 -1
  465. package/dist/dashboard-rpc/devices.telefunc.js +0 -12
  466. package/dist/dashboard-rpc/devices.telefunc.js.map +0 -1
  467. package/dist/dashboard-rpc/events.telefunc.d.ts +0 -36
  468. package/dist/dashboard-rpc/events.telefunc.d.ts.map +0 -1
  469. package/dist/dashboard-rpc/events.telefunc.js +0 -70
  470. package/dist/dashboard-rpc/events.telefunc.js.map +0 -1
  471. package/dist/dashboard-rpc/preferences.telefunc.d.ts +0 -97
  472. package/dist/dashboard-rpc/preferences.telefunc.d.ts.map +0 -1
  473. package/dist/dashboard-rpc/preferences.telefunc.js +0 -157
  474. package/dist/dashboard-rpc/preferences.telefunc.js.map +0 -1
  475. package/dist/dashboard-rpc/projects.telefunc.d.ts +0 -56
  476. package/dist/dashboard-rpc/projects.telefunc.d.ts.map +0 -1
  477. package/dist/dashboard-rpc/projects.telefunc.js +0 -96
  478. package/dist/dashboard-rpc/projects.telefunc.js.map +0 -1
  479. package/dist/dashboard-rpc/quota.telefunc.d.ts +0 -40
  480. package/dist/dashboard-rpc/quota.telefunc.d.ts.map +0 -1
  481. package/dist/dashboard-rpc/quota.telefunc.js +0 -84
  482. package/dist/dashboard-rpc/quota.telefunc.js.map +0 -1
  483. package/dist/dashboard-rpc/reads.telefunc.d.ts +0 -197
  484. package/dist/dashboard-rpc/reads.telefunc.d.ts.map +0 -1
  485. package/dist/dashboard-rpc/reads.telefunc.js +0 -403
  486. package/dist/dashboard-rpc/reads.telefunc.js.map +0 -1
  487. package/dist/dashboard-rpc/register.d.ts +0 -18
  488. package/dist/dashboard-rpc/register.d.ts.map +0 -1
  489. package/dist/dashboard-rpc/register.js +0 -66
  490. package/dist/dashboard-rpc/register.js.map +0 -1
  491. package/dist/dashboard-rpc/relay-run.d.ts +0 -9
  492. package/dist/dashboard-rpc/relay-run.d.ts.map +0 -1
  493. package/dist/dashboard-rpc/relay-run.js +0 -21
  494. package/dist/dashboard-rpc/relay-run.js.map +0 -1
  495. package/dist/dashboard-rpc/stream-channel.d.ts +0 -23
  496. package/dist/dashboard-rpc/stream-channel.d.ts.map +0 -1
  497. package/dist/dashboard-rpc/stream-channel.js +0 -52
  498. package/dist/dashboard-rpc/stream-channel.js.map +0 -1
  499. package/dist/dashboard-rpc/subagents.d.ts +0 -12
  500. package/dist/dashboard-rpc/subagents.d.ts.map +0 -1
  501. package/dist/dashboard-rpc/subagents.js +0 -13
  502. package/dist/dashboard-rpc/subagents.js.map +0 -1
  503. package/dist/dashboard-rpc/widgets.d.ts +0 -33
  504. package/dist/dashboard-rpc/widgets.d.ts.map +0 -1
  505. package/dist/dashboard-rpc/widgets.js +0 -54
  506. package/dist/dashboard-rpc/widgets.js.map +0 -1
  507. package/dist/data-branch.d.ts +0 -120
  508. package/dist/data-branch.d.ts.map +0 -1
  509. package/dist/data-branch.js +0 -319
  510. package/dist/data-branch.js.map +0 -1
  511. package/dist/discord/bot.d.ts +0 -61
  512. package/dist/discord/bot.d.ts.map +0 -1
  513. package/dist/discord/bot.js +0 -94
  514. package/dist/discord/bot.js.map +0 -1
  515. package/dist/discord/gateway.d.ts +0 -137
  516. package/dist/discord/gateway.d.ts.map +0 -1
  517. package/dist/discord/gateway.js +0 -315
  518. package/dist/discord/gateway.js.map +0 -1
  519. package/dist/discord/live-run.d.ts +0 -31
  520. package/dist/discord/live-run.d.ts.map +0 -1
  521. package/dist/discord/live-run.js +0 -57
  522. package/dist/discord/live-run.js.map +0 -1
  523. package/dist/discord/reply-mirror.d.ts +0 -83
  524. package/dist/discord/reply-mirror.d.ts.map +0 -1
  525. package/dist/discord/reply-mirror.js +0 -84
  526. package/dist/discord/reply-mirror.js.map +0 -1
  527. package/dist/discord/rest.d.ts +0 -20
  528. package/dist/discord/rest.d.ts.map +0 -1
  529. package/dist/discord/rest.js +0 -41
  530. package/dist/discord/rest.js.map +0 -1
  531. package/dist/discord/routing.d.ts +0 -81
  532. package/dist/discord/routing.d.ts.map +0 -1
  533. package/dist/discord/routing.js +0 -91
  534. package/dist/discord/routing.js.map +0 -1
  535. package/dist/discord-credentials-store.d.ts +0 -14
  536. package/dist/discord-credentials-store.d.ts.map +0 -1
  537. package/dist/discord-credentials-store.js +0 -53
  538. package/dist/discord-credentials-store.js.map +0 -1
  539. package/dist/discord-credentials.d.ts +0 -80
  540. package/dist/discord-credentials.d.ts.map +0 -1
  541. package/dist/discord-credentials.js +0 -55
  542. package/dist/discord-credentials.js.map +0 -1
  543. package/dist/driver/actions-zip.d.ts +0 -2
  544. package/dist/driver/actions-zip.d.ts.map +0 -1
  545. package/dist/driver/actions-zip.js +0 -70
  546. package/dist/driver/actions-zip.js.map +0 -1
  547. package/dist/driver/actions.d.ts +0 -130
  548. package/dist/driver/actions.d.ts.map +0 -1
  549. package/dist/driver/actions.js +0 -261
  550. package/dist/driver/actions.js.map +0 -1
  551. package/dist/driver/agent-cli.d.ts +0 -57
  552. package/dist/driver/agent-cli.d.ts.map +0 -1
  553. package/dist/driver/agent-cli.js +0 -134
  554. package/dist/driver/agent-cli.js.map +0 -1
  555. package/dist/driver/child-registry.d.ts +0 -25
  556. package/dist/driver/child-registry.d.ts.map +0 -1
  557. package/dist/driver/child-registry.js +0 -53
  558. package/dist/driver/child-registry.js.map +0 -1
  559. package/dist/driver/claude-code-quota.d.ts +0 -40
  560. package/dist/driver/claude-code-quota.d.ts.map +0 -1
  561. package/dist/driver/claude-code-quota.js +0 -144
  562. package/dist/driver/claude-code-quota.js.map +0 -1
  563. package/dist/driver/claude-code.d.ts +0 -104
  564. package/dist/driver/claude-code.d.ts.map +0 -1
  565. package/dist/driver/claude-code.js +0 -314
  566. package/dist/driver/claude-code.js.map +0 -1
  567. package/dist/driver/cli-session.d.ts +0 -57
  568. package/dist/driver/cli-session.d.ts.map +0 -1
  569. package/dist/driver/cli-session.js +0 -134
  570. package/dist/driver/cli-session.js.map +0 -1
  571. package/dist/driver/cloud.d.ts +0 -109
  572. package/dist/driver/cloud.d.ts.map +0 -1
  573. package/dist/driver/cloud.js +0 -232
  574. package/dist/driver/cloud.js.map +0 -1
  575. package/dist/driver/codex.d.ts +0 -99
  576. package/dist/driver/codex.d.ts.map +0 -1
  577. package/dist/driver/codex.js +0 -190
  578. package/dist/driver/codex.js.map +0 -1
  579. package/dist/driver/fake.d.ts +0 -54
  580. package/dist/driver/fake.d.ts.map +0 -1
  581. package/dist/driver/fake.js +0 -73
  582. package/dist/driver/fake.js.map +0 -1
  583. package/dist/driver/index.d.ts +0 -10
  584. package/dist/driver/index.d.ts.map +0 -1
  585. package/dist/driver/index.js +0 -14
  586. package/dist/driver/index.js.map +0 -1
  587. package/dist/driver/session-support.d.ts +0 -14
  588. package/dist/driver/session-support.d.ts.map +0 -1
  589. package/dist/driver/session-support.js +0 -37
  590. package/dist/driver/session-support.js.map +0 -1
  591. package/dist/driver/types.d.ts +0 -310
  592. package/dist/driver/types.d.ts.map +0 -1
  593. package/dist/driver/types.js +0 -5
  594. package/dist/driver/types.js.map +0 -1
  595. package/dist/driver-cli.d.ts +0 -61
  596. package/dist/driver-cli.d.ts.map +0 -1
  597. package/dist/driver-cli.js +0 -66
  598. package/dist/driver-cli.js.map +0 -1
  599. package/dist/fake-script.d.ts +0 -15
  600. package/dist/fake-script.d.ts.map +0 -1
  601. package/dist/fake-script.js +0 -58
  602. package/dist/fake-script.js.map +0 -1
  603. package/dist/framework-dir.d.ts +0 -11
  604. package/dist/framework-dir.d.ts.map +0 -1
  605. package/dist/framework-dir.js +0 -11
  606. package/dist/framework-dir.js.map +0 -1
  607. package/dist/framework-gitignore.d.ts +0 -12
  608. package/dist/framework-gitignore.d.ts.map +0 -1
  609. package/dist/framework-gitignore.js +0 -19
  610. package/dist/framework-gitignore.js.map +0 -1
  611. package/dist/gate-keepalive.d.ts +0 -47
  612. package/dist/gate-keepalive.d.ts.map +0 -1
  613. package/dist/gate-keepalive.js +0 -62
  614. package/dist/gate-keepalive.js.map +0 -1
  615. package/dist/git-exclude.d.ts +0 -11
  616. package/dist/git-exclude.d.ts.map +0 -1
  617. package/dist/git-exclude.js +0 -23
  618. package/dist/git-exclude.js.map +0 -1
  619. package/dist/handoff-level.d.ts +0 -56
  620. package/dist/handoff-level.d.ts.map +0 -1
  621. package/dist/handoff-level.js +0 -62
  622. package/dist/handoff-level.js.map +0 -1
  623. package/dist/host-exec.d.ts +0 -21
  624. package/dist/host-exec.d.ts.map +0 -1
  625. package/dist/host-exec.js +0 -30
  626. package/dist/host-exec.js.map +0 -1
  627. package/dist/layout.d.ts +0 -41
  628. package/dist/layout.d.ts.map +0 -1
  629. package/dist/layout.js +0 -69
  630. package/dist/layout.js.map +0 -1
  631. package/dist/logs.d.ts +0 -73
  632. package/dist/logs.d.ts.map +0 -1
  633. package/dist/logs.js +0 -218
  634. package/dist/logs.js.map +0 -1
  635. package/dist/maintenance.d.ts +0 -90
  636. package/dist/maintenance.d.ts.map +0 -1
  637. package/dist/maintenance.js +0 -141
  638. package/dist/maintenance.js.map +0 -1
  639. package/dist/merged-worktrees.d.ts +0 -74
  640. package/dist/merged-worktrees.d.ts.map +0 -1
  641. package/dist/merged-worktrees.js +0 -84
  642. package/dist/merged-worktrees.js.map +0 -1
  643. package/dist/module-types/src/dashboard/agent-tree.d.ts +0 -105
  644. package/dist/module-types/src/dashboard/file-diff.d.ts +0 -66
  645. package/dist/module-types/src/dashboard/file-read.d.ts +0 -41
  646. package/dist/module-types/src/dashboard/file-status.d.ts +0 -20
  647. package/dist/module-types/src/dashboard/scheduler-state.d.ts +0 -72
  648. package/dist/module-types/src/dashboard/subagent-settings.d.ts +0 -25
  649. package/dist/module-types/src/dashboard-rpc/subagents.d.ts +0 -11
  650. package/dist/module-types/src/framework-dir.d.ts +0 -10
  651. package/dist/module-types/src/framework-gitignore.d.ts +0 -11
  652. package/dist/module-types/src/subagent-settings.d.ts +0 -26
  653. package/dist/on-before-mergeable-prompt.d.ts +0 -32
  654. package/dist/on-before-mergeable-prompt.d.ts.map +0 -1
  655. package/dist/on-before-mergeable-prompt.js +0 -26
  656. package/dist/on-before-mergeable-prompt.js.map +0 -1
  657. package/dist/planned-quick-wins.d.ts +0 -102
  658. package/dist/planned-quick-wins.d.ts.map +0 -1
  659. package/dist/planned-quick-wins.js +0 -171
  660. package/dist/planned-quick-wins.js.map +0 -1
  661. package/dist/preflight.d.ts +0 -77
  662. package/dist/preflight.d.ts.map +0 -1
  663. package/dist/preflight.js +0 -91
  664. package/dist/preflight.js.map +0 -1
  665. package/dist/preset-catalog.d.ts +0 -98
  666. package/dist/preset-catalog.d.ts.map +0 -1
  667. package/dist/preset-catalog.js +0 -129
  668. package/dist/preset-catalog.js.map +0 -1
  669. package/dist/preset-prompt.d.ts +0 -81
  670. package/dist/preset-prompt.d.ts.map +0 -1
  671. package/dist/preset-prompt.js +0 -51
  672. package/dist/preset-prompt.js.map +0 -1
  673. package/dist/preset-registry.d.ts +0 -32
  674. package/dist/preset-registry.d.ts.map +0 -1
  675. package/dist/preset-registry.js +0 -35
  676. package/dist/preset-registry.js.map +0 -1
  677. package/dist/presets.d.ts +0 -20
  678. package/dist/presets.d.ts.map +0 -1
  679. package/dist/presets.js +0 -33
  680. package/dist/presets.js.map +0 -1
  681. package/dist/preview-runtime.d.ts +0 -33
  682. package/dist/preview-runtime.d.ts.map +0 -1
  683. package/dist/preview-runtime.js +0 -96
  684. package/dist/preview-runtime.js.map +0 -1
  685. package/dist/preview.d.ts +0 -78
  686. package/dist/preview.d.ts.map +0 -1
  687. package/dist/preview.js +0 -301
  688. package/dist/preview.js.map +0 -1
  689. package/dist/project-widgets.d.ts +0 -46
  690. package/dist/project-widgets.d.ts.map +0 -1
  691. package/dist/project-widgets.js +0 -93
  692. package/dist/project-widgets.js.map +0 -1
  693. package/dist/prompt-run.d.ts +0 -104
  694. package/dist/prompt-run.d.ts.map +0 -1
  695. package/dist/prompt-run.js +0 -112
  696. package/dist/prompt-run.js.map +0 -1
  697. package/dist/prompt-template.d.ts +0 -16
  698. package/dist/prompt-template.d.ts.map +0 -1
  699. package/dist/prompt-template.js +0 -56
  700. package/dist/prompt-template.js.map +0 -1
  701. package/dist/prompts.generated.d.ts +0 -53
  702. package/dist/prompts.generated.d.ts.map +0 -1
  703. package/dist/prompts.generated.js +0 -55
  704. package/dist/prompts.generated.js.map +0 -1
  705. package/dist/queue-promote.d.ts +0 -70
  706. package/dist/queue-promote.d.ts.map +0 -1
  707. package/dist/queue-promote.js +0 -118
  708. package/dist/queue-promote.js.map +0 -1
  709. package/dist/relay.d.ts +0 -84
  710. package/dist/relay.d.ts.map +0 -1
  711. package/dist/relay.js +0 -199
  712. package/dist/relay.js.map +0 -1
  713. package/dist/repos-directory.d.ts +0 -19
  714. package/dist/repos-directory.d.ts.map +0 -1
  715. package/dist/repos-directory.js +0 -23
  716. package/dist/repos-directory.js.map +0 -1
  717. package/dist/retired-project-settings.d.ts +0 -43
  718. package/dist/retired-project-settings.d.ts.map +0 -1
  719. package/dist/retired-project-settings.js +0 -125
  720. package/dist/retired-project-settings.js.map +0 -1
  721. package/dist/routine-locks.d.ts +0 -53
  722. package/dist/routine-locks.d.ts.map +0 -1
  723. package/dist/routine-locks.js +0 -125
  724. package/dist/routine-locks.js.map +0 -1
  725. package/dist/run-driver.d.ts +0 -26
  726. package/dist/run-driver.d.ts.map +0 -1
  727. package/dist/run-driver.js +0 -17
  728. package/dist/run-driver.js.map +0 -1
  729. package/dist/run-locks.d.ts +0 -3
  730. package/dist/run-locks.d.ts.map +0 -1
  731. package/dist/run-locks.js +0 -39
  732. package/dist/run-locks.js.map +0 -1
  733. package/dist/run-messages.d.ts +0 -64
  734. package/dist/run-messages.d.ts.map +0 -1
  735. package/dist/run-messages.js +0 -76
  736. package/dist/run-messages.js.map +0 -1
  737. package/dist/run-options.d.ts +0 -53
  738. package/dist/run-options.d.ts.map +0 -1
  739. package/dist/run-options.js +0 -110
  740. package/dist/run-options.js.map +0 -1
  741. package/dist/run-telemetry.d.ts +0 -115
  742. package/dist/run-telemetry.d.ts.map +0 -1
  743. package/dist/run-telemetry.js +0 -137
  744. package/dist/run-telemetry.js.map +0 -1
  745. package/dist/run-view.d.ts +0 -109
  746. package/dist/run-view.d.ts.map +0 -1
  747. package/dist/run-view.js +0 -118
  748. package/dist/run-view.js.map +0 -1
  749. package/dist/run.d.ts +0 -261
  750. package/dist/run.d.ts.map +0 -1
  751. package/dist/run.js +0 -420
  752. package/dist/run.js.map +0 -1
  753. package/dist/runtime-keys.d.ts +0 -17
  754. package/dist/runtime-keys.d.ts.map +0 -1
  755. package/dist/runtime-keys.js +0 -17
  756. package/dist/runtime-keys.js.map +0 -1
  757. package/dist/sandbox.d.ts +0 -27
  758. package/dist/sandbox.d.ts.map +0 -1
  759. package/dist/sandbox.js +0 -63
  760. package/dist/sandbox.js.map +0 -1
  761. package/dist/session-link.d.ts +0 -19
  762. package/dist/session-link.d.ts.map +0 -1
  763. package/dist/session-link.js +0 -26
  764. package/dist/session-link.js.map +0 -1
  765. package/dist/sessions.d.ts +0 -77
  766. package/dist/sessions.d.ts.map +0 -1
  767. package/dist/sessions.js +0 -146
  768. package/dist/sessions.js.map +0 -1
  769. package/dist/spike-locks.d.ts +0 -75
  770. package/dist/spike-locks.d.ts.map +0 -1
  771. package/dist/spike-locks.js +0 -208
  772. package/dist/spike-locks.js.map +0 -1
  773. package/dist/stale-branch.d.ts +0 -21
  774. package/dist/stale-branch.d.ts.map +0 -1
  775. package/dist/stale-branch.js +0 -32
  776. package/dist/stale-branch.js.map +0 -1
  777. package/dist/steps.d.ts +0 -9
  778. package/dist/steps.d.ts.map +0 -1
  779. package/dist/steps.js +0 -13
  780. package/dist/steps.js.map +0 -1
  781. package/dist/store/forge.d.ts +0 -110
  782. package/dist/store/forge.d.ts.map +0 -1
  783. package/dist/store/forge.js +0 -97
  784. package/dist/store/forge.js.map +0 -1
  785. package/dist/store/run-checkout.d.ts +0 -33
  786. package/dist/store/run-checkout.d.ts.map +0 -1
  787. package/dist/store/run-checkout.js +0 -59
  788. package/dist/store/run-checkout.js.map +0 -1
  789. package/dist/store/run-store.d.ts +0 -501
  790. package/dist/store/run-store.d.ts.map +0 -1
  791. package/dist/store/run-store.js +0 -806
  792. package/dist/store/run-store.js.map +0 -1
  793. package/dist/store/suspend.d.ts +0 -38
  794. package/dist/store/suspend.d.ts.map +0 -1
  795. package/dist/store/suspend.js +0 -45
  796. package/dist/store/suspend.js.map +0 -1
  797. package/dist/store/worktree-deps.d.ts +0 -30
  798. package/dist/store/worktree-deps.d.ts.map +0 -1
  799. package/dist/store/worktree-deps.js +0 -115
  800. package/dist/store/worktree-deps.js.map +0 -1
  801. package/dist/store/worktree.d.ts +0 -194
  802. package/dist/store/worktree.d.ts.map +0 -1
  803. package/dist/store/worktree.js +0 -331
  804. package/dist/store/worktree.js.map +0 -1
  805. package/dist/subagent-settings.d.ts +0 -27
  806. package/dist/subagent-settings.d.ts.map +0 -1
  807. package/dist/subagent-settings.js +0 -35
  808. package/dist/subagent-settings.js.map +0 -1
  809. package/dist/system-prompt-file.d.ts +0 -18
  810. package/dist/system-prompt-file.d.ts.map +0 -1
  811. package/dist/system-prompt-file.js +0 -28
  812. package/dist/system-prompt-file.js.map +0 -1
  813. package/dist/system-prompt.d.ts +0 -148
  814. package/dist/system-prompt.d.ts.map +0 -1
  815. package/dist/system-prompt.js +0 -170
  816. package/dist/system-prompt.js.map +0 -1
  817. package/dist/target-driver.d.ts +0 -28
  818. package/dist/target-driver.d.ts.map +0 -1
  819. package/dist/target-driver.js +0 -18
  820. package/dist/target-driver.js.map +0 -1
  821. package/dist/ticket-locks.d.ts +0 -61
  822. package/dist/ticket-locks.d.ts.map +0 -1
  823. package/dist/ticket-locks.js +0 -137
  824. package/dist/ticket-locks.js.map +0 -1
  825. package/dist/tickets-file.d.ts +0 -7
  826. package/dist/tickets-file.d.ts.map +0 -1
  827. package/dist/tickets-file.js +0 -21
  828. package/dist/tickets-file.js.map +0 -1
  829. package/dist/tickets.d.ts +0 -18
  830. package/dist/tickets.d.ts.map +0 -1
  831. package/dist/tickets.js +0 -23
  832. package/dist/tickets.js.map +0 -1
  833. package/dist/todo-loop.d.ts +0 -110
  834. package/dist/todo-loop.d.ts.map +0 -1
  835. package/dist/todo-loop.js +0 -175
  836. package/dist/todo-loop.js.map +0 -1
  837. package/dist/turn-gate.d.ts +0 -144
  838. package/dist/turn-gate.d.ts.map +0 -1
  839. package/dist/turn-gate.js +0 -217
  840. package/dist/turn-gate.js.map +0 -1
  841. package/dist/usage.d.ts +0 -32
  842. package/dist/usage.d.ts.map +0 -1
  843. package/dist/usage.js +0 -46
  844. package/dist/usage.js.map +0 -1
  845. package/dist/widget-types/dashboard/components/LinkActions.d.ts +0 -26
  846. package/dist/widget-types/dashboard/components/Markdown.d.ts +0 -4
  847. package/dist/widget-types/dashboard/components/StartAgentButton.d.ts +0 -39
  848. package/dist/widget-types/dashboard/components/ui/badge.d.ts +0 -2
  849. package/dist/widget-types/dashboard/components/ui/button.d.ts +0 -10
  850. package/dist/widget-types/dashboard/components/ui/card.d.ts +0 -5
  851. package/dist/widget-types/dashboard/components/ui/checkbox.d.ts +0 -7
  852. package/dist/widget-types/dashboard/components/ui/dropdown-menu.d.ts +0 -16
  853. package/dist/widget-types/dashboard/components/ui/input.d.ts +0 -2
  854. package/dist/widget-types/dashboard/components/ui/option-label.d.ts +0 -4
  855. package/dist/widget-types/dashboard/components/ui/popover.d.ts +0 -8
  856. package/dist/widget-types/dashboard/components/ui/scroll-area.d.ts +0 -10
  857. package/dist/widget-types/dashboard/components/ui/separator.d.ts +0 -3
  858. package/dist/widget-types/dashboard/components/ui/skeleton.d.ts +0 -2
  859. package/dist/widget-types/dashboard/components/ui/slider.d.ts +0 -9
  860. package/dist/widget-types/dashboard/components/ui/tooltip.d.ts +0 -11
  861. package/dist/widget-types/dashboard/lib/draft-handoff.d.ts +0 -15
  862. package/dist/widget-types/dashboard/lib/format-date.d.ts +0 -51
  863. package/dist/widget-types/dashboard/lib/host-services.d.ts +0 -12
  864. package/dist/widget-types/dashboard/lib/route.d.ts +0 -24
  865. package/dist/widget-types/dashboard/lib/rpc.d.ts +0 -31
  866. package/dist/widget-types/dashboard/lib/use-action.d.ts +0 -25
  867. package/dist/widget-types/dashboard/lib/use-async.d.ts +0 -39
  868. package/dist/widget-types/dashboard/lib/use-widgets.d.ts +0 -42
  869. package/dist/widget-types/dashboard/lib/utils.d.ts +0 -3
  870. package/dist/widget-types/dashboard/rpc/widgets.d.ts +0 -4
  871. package/dist/widget-types/dashboard/widget/index.d.ts +0 -207
  872. package/dist/widget-types/src/agent-id.d.ts +0 -12
  873. package/dist/widget-types/src/agent-locks.d.ts +0 -2
  874. package/dist/widget-types/src/agent-view.d.ts +0 -38
  875. package/dist/widget-types/src/bridge-browser.d.ts +0 -216
  876. package/dist/widget-types/src/browser-stream.d.ts +0 -19
  877. package/dist/widget-types/src/browser.d.ts +0 -15
  878. package/dist/widget-types/src/cli-exec.d.ts +0 -35
  879. package/dist/widget-types/src/cloud-run-state.d.ts +0 -26
  880. package/dist/widget-types/src/dashboard/activity.d.ts +0 -40
  881. package/dist/widget-types/src/dashboard/agent-handoff.d.ts +0 -211
  882. package/dist/widget-types/src/dashboard/agent-tree.d.ts +0 -105
  883. package/dist/widget-types/src/dashboard/bridge-endpoints.d.ts +0 -157
  884. package/dist/widget-types/src/dashboard/bridge-question.d.ts +0 -32
  885. package/dist/widget-types/src/dashboard/bridge-store.d.ts +0 -178
  886. package/dist/widget-types/src/dashboard/cache.d.ts +0 -46
  887. package/dist/widget-types/src/dashboard/content-type.d.ts +0 -2
  888. package/dist/widget-types/src/dashboard/dashboard.d.ts +0 -37
  889. package/dist/widget-types/src/dashboard/discord-webhook.d.ts +0 -16
  890. package/dist/widget-types/src/dashboard/docs.d.ts +0 -38
  891. package/dist/widget-types/src/dashboard/file-diff.d.ts +0 -66
  892. package/dist/widget-types/src/dashboard/file-read.d.ts +0 -41
  893. package/dist/widget-types/src/dashboard/file-status.d.ts +0 -20
  894. package/dist/widget-types/src/dashboard/gh.d.ts +0 -130
  895. package/dist/widget-types/src/dashboard/git-status.d.ts +0 -32
  896. package/dist/widget-types/src/dashboard/github.d.ts +0 -10
  897. package/dist/widget-types/src/dashboard/http.d.ts +0 -28
  898. package/dist/widget-types/src/dashboard/interventions.d.ts +0 -66
  899. package/dist/widget-types/src/dashboard/keys.d.ts +0 -30
  900. package/dist/widget-types/src/dashboard/models.d.ts +0 -24
  901. package/dist/widget-types/src/dashboard/open-in-app.d.ts +0 -42
  902. package/dist/widget-types/src/dashboard/open-questions.d.ts +0 -52
  903. package/dist/widget-types/src/dashboard/overview.d.ts +0 -77
  904. package/dist/widget-types/src/dashboard/projects.d.ts +0 -89
  905. package/dist/widget-types/src/dashboard/pull-requests.d.ts +0 -126
  906. package/dist/widget-types/src/dashboard/queue.d.ts +0 -16
  907. package/dist/widget-types/src/dashboard/quota.d.ts +0 -59
  908. package/dist/widget-types/src/dashboard/remote-run.d.ts +0 -94
  909. package/dist/widget-types/src/dashboard/rpc-serve.d.ts +0 -102
  910. package/dist/widget-types/src/dashboard/run-inbox.d.ts +0 -30
  911. package/dist/widget-types/src/dashboard/scheduler-state.d.ts +0 -64
  912. package/dist/widget-types/src/dashboard/tickets.d.ts +0 -28
  913. package/dist/widget-types/src/dashboard/types.d.ts +0 -99
  914. package/dist/widget-types/src/dashboard/widget-serve.d.ts +0 -14
  915. package/dist/widget-types/src/dashboard-rpc/context.d.ts +0 -53
  916. package/dist/widget-types/src/dashboard-rpc/control.d.ts +0 -108
  917. package/dist/widget-types/src/dashboard-rpc/devices.d.ts +0 -8
  918. package/dist/widget-types/src/dashboard-rpc/events-tail.d.ts +0 -53
  919. package/dist/widget-types/src/dashboard-rpc/events.d.ts +0 -29
  920. package/dist/widget-types/src/dashboard-rpc/index.d.ts +0 -28
  921. package/dist/widget-types/src/dashboard-rpc/models.d.ts +0 -3
  922. package/dist/widget-types/src/dashboard-rpc/preferences.d.ts +0 -40
  923. package/dist/widget-types/src/dashboard-rpc/projects.d.ts +0 -54
  924. package/dist/widget-types/src/dashboard-rpc/quota.d.ts +0 -26
  925. package/dist/widget-types/src/dashboard-rpc/reads.d.ts +0 -227
  926. package/dist/widget-types/src/dashboard-rpc/relay-agent.d.ts +0 -8
  927. package/dist/widget-types/src/dashboard-rpc/stream-forward.d.ts +0 -16
  928. package/dist/widget-types/src/dashboard-rpc/widgets.d.ts +0 -32
  929. package/dist/widget-types/src/discord-credentials.d.ts +0 -79
  930. package/dist/widget-types/src/driver-names.d.ts +0 -21
  931. package/dist/widget-types/src/error-message.d.ts +0 -7
  932. package/dist/widget-types/src/event-stream.d.ts +0 -32
  933. package/dist/widget-types/src/events.d.ts +0 -235
  934. package/dist/widget-types/src/framework-dir.d.ts +0 -10
  935. package/dist/widget-types/src/framework-gitignore.d.ts +0 -11
  936. package/dist/widget-types/src/index.d.ts +0 -42
  937. package/dist/widget-types/src/jsonl-tail.d.ts +0 -54
  938. package/dist/widget-types/src/loopback-host.d.ts +0 -19
  939. package/dist/widget-types/src/node-fs.d.ts +0 -32
  940. package/dist/widget-types/src/open-choices.d.ts +0 -14
  941. package/dist/widget-types/src/pick-directory.d.ts +0 -29
  942. package/dist/widget-types/src/preference-defaults.d.ts +0 -53
  943. package/dist/widget-types/src/project-commands.d.ts +0 -23
  944. package/dist/widget-types/src/project-errors.d.ts +0 -43
  945. package/dist/widget-types/src/project-hooks.d.ts +0 -133
  946. package/dist/widget-types/src/project-presets.d.ts +0 -29
  947. package/dist/widget-types/src/project-widgets.d.ts +0 -45
  948. package/dist/widget-types/src/project.d.ts +0 -28
  949. package/dist/widget-types/src/quota-boundary.d.ts +0 -115
  950. package/dist/widget-types/src/quota-poller.d.ts +0 -82
  951. package/dist/widget-types/src/registry.d.ts +0 -210
  952. package/dist/widget-types/src/store/agent-checkout.d.ts +0 -46
  953. package/dist/widget-types/src/store/agent-store.d.ts +0 -237
  954. package/dist/widget-types/src/store/branches.d.ts +0 -133
  955. package/dist/widget-types/src/store/forge.d.ts +0 -109
  956. package/dist/widget-types/src/store/git-host.d.ts +0 -111
  957. package/dist/widget-types/src/store/index.d.ts +0 -9
  958. package/dist/widget-types/src/store/provided.d.ts +0 -16
  959. package/dist/widget-types/src/store/queue.d.ts +0 -45
  960. package/dist/widget-types/src/store/run-record.d.ts +0 -21
  961. package/dist/widget-types/src/store/runs.d.ts +0 -101
  962. package/dist/widget-types/src/store/tickets.d.ts +0 -72
  963. package/dist/widget-types/src/tickets.d.ts +0 -17
  964. package/dist/widget-types/src/worktrees.d.ts +0 -89
  965. package/dist/widget.css +0 -50
@@ -1,130 +0,0 @@
1
- import type { Driver, DriverEvent, DriverPromptOptions, DriverSession, DriverStartOptions, DriverTurn } from './types.js';
2
- /**
3
- * A {@link Driver} that runs the agent on **GitHub Actions** instead of on this
4
- * machine (#610): dispatch a workflow, poll it, read the transcript it uploads.
5
- *
6
- * This is the answer to "drive Claude Code on the web". The routines fire API was
7
- * the obvious candidate and turned out unusable — the prompt arrives wrapped as
8
- * untrusted data, and there is no read-back of any kind. The official
9
- * `anthropics/claude-code-action@v1` has neither problem: the prompt is passed
10
- * verbatim, and the run publishes its full transcript. Auth is the same
11
- * subscription posture as everywhere else (#495): a `claude setup-token` OAuth
12
- * token held by the repo, never an API key of ours.
13
- *
14
- * It fits `Driver`/`DriverSession` as written, with no new methods. What changes is
15
- * not the shape but the tempo, and those costs are real:
16
- *
17
- * - **Minutes, not seconds.** Every `prompt` is a fresh runner and a fresh
18
- * checkout. Continuity comes from the branch the previous turn pushed, which the
19
- * session tracks and dispatches onto next time.
20
- * - **No live stream.** The transcript arrives once, at the end, so the dashboard's
21
- * {@link DriverStartOptions.onEvent} feed replays in a burst rather than trickling.
22
- * - **Quota is the account's, not the runner's.** Free minutes on a public repo
23
- * change nothing about the subscription window every run draws down.
24
- *
25
- * The workspace lives on a runner that is gone by the time we read it, so
26
- * {@link ActionsSession.readCode} reads from the pushed branch over the contents
27
- * API rather than from disk.
28
- */
29
- export declare class ActionsDriver implements Driver {
30
- private readonly opts;
31
- readonly id = "github-actions";
32
- constructor(opts: ActionsDriverOptions);
33
- start(opts: DriverStartOptions): Promise<DriverSession>;
34
- }
35
- /** Options for {@link ActionsDriver}. */
36
- export interface ActionsDriverOptions {
37
- /** Repository owner (user or org) that runs the workflow. */
38
- owner: string;
39
- /** Repository name. */
40
- repo: string;
41
- /**
42
- * GitHub token used to dispatch and to read runs, artifacts, and file contents.
43
- * Needs `repo` + `workflow` scope. Must belong to a **user**, not an App: the
44
- * action's `checkHumanActor` rejects a bot-triggered agent run unless the bot is
45
- * in its `allowed_bots`.
46
- */
47
- token: string;
48
- /** Workflow file to dispatch. Default `"framework-agent.yml"`. */
49
- workflow?: string;
50
- /** Git ref the first turn runs on. Later turns follow the branch the agent pushed. */
51
- ref?: string;
52
- /** How often to poll the run, in ms. Default 5000. */
53
- pollIntervalMs?: number;
54
- /** Give up on a run after this long, in ms. Default 1 hour (the job cap is 6). */
55
- timeoutMs?: number;
56
- /** REST base. Default `"https://api.github.com"`. */
57
- apiBase?: string;
58
- /** `fetch` override for tests. Default the global. */
59
- fetch?: FetchLike;
60
- /** Clock override for tests. Default `Date.now`. */
61
- now?: () => number;
62
- /** Sleep override for tests. Default a real timer. */
63
- sleep?: (ms: number) => Promise<void>;
64
- /**
65
- * Unique tag mixed into the correlation id. Default a random token; injected in tests for
66
- * a stable id. Without it a fresh driver process restarts the session counter at 1, so
67
- * every run's first turn is `actions-1-turn-1` and runs collide (see {@link ActionsSession}).
68
- */
69
- runTag?: () => string;
70
- /**
71
- * Prefix for the branch each run pushes its work to (#1085). Default `"claude/"`. The
72
- * driver names the branch (prefix + session id) and passes it to the workflow, rather than
73
- * discovering it after the fact: the action leaves `branch_name` empty for a
74
- * `workflow_dispatch` run, so there is nothing to discover.
75
- */
76
- branchPrefix?: string;
77
- }
78
- /** The slice of `fetch` this driver uses. */
79
- export type FetchLike = (url: string, init?: RequestInit) => Promise<Response>;
80
- /** One Actions-backed session. Each `prompt` is one workflow run. */
81
- export declare class ActionsSession implements DriverSession {
82
- private readonly config;
83
- private readonly startOpts;
84
- readonly id: string;
85
- readonly cwd: string;
86
- /** The branch the last run pushed; set once the run reports it, and the next turn builds on it. */
87
- private branch;
88
- /** The branch this session asks each run to push to. Stable across turns, so they chain. */
89
- private readonly runBranch;
90
- /** The agent's own session id, carried across turns so `resume` can continue it. */
91
- private lastSessionId;
92
- private turnCounter;
93
- constructor(config: ActionsDriverOptions, startOpts: DriverStartOptions);
94
- prompt(text: string, opts?: DriverPromptOptions): Promise<DriverTurn>;
95
- /**
96
- * Read a file the agent produced. The runner is gone, so this reads the branch the
97
- * run pushed rather than the local workspace — the seam is still the code, just
98
- * fetched over the contents API.
99
- */
100
- readCode(path: string): Promise<string>;
101
- dispose(): Promise<void>;
102
- /** Fire the workflow. Returns nothing useful: dispatch is 204 with no body, hence the correlation id. */
103
- private dispatch;
104
- /** Poll until our run appears and finishes. Identified by the correlation id in its `run-name`. */
105
- private awaitWorkflowRun;
106
- /** Our run among the workflow's recent ones, or undefined while GitHub is still creating it. */
107
- private findWorkflowRun;
108
- /** Download the run's artifact and pull the transcript and the pushed branch out of it. */
109
- private readRunArtifact;
110
- private get owner();
111
- /** The session-wide signal or the per-prompt one (`DriverPromptOptions.signal`) both stop the poll. */
112
- private throwIfAborted;
113
- /** A REST call that expects JSON back. */
114
- private api;
115
- /** A REST call, with auth and error handling. */
116
- private request;
117
- }
118
- /**
119
- * Turn the action's `execution_file` into a turn, replaying its events on the way.
120
- *
121
- * The adapter is thin on purpose: the file is a JSON **array** of exactly the
122
- * SDKMessage objects the CLI emits one-per-line, so the existing
123
- * {@link StreamJsonParser} reads it verbatim once the array is unwrapped. The whole
124
- * difference between running locally and running on a runner is array-vs-JSONL.
125
- *
126
- * Events replay in a burst at the end rather than live — that is the honest cost of
127
- * this driver, and the dashboard sees the same event stream either way.
128
- */
129
- export declare function replayTranscript(json: string, emit?: (event: DriverEvent) => void): DriverTurn;
130
- //# sourceMappingURL=actions.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"actions.d.ts","sourceRoot":"","sources":["../../src/driver/actions.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,mBAAmB,EAAE,aAAa,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAEzH;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,qBAAa,aAAc,YAAW,MAAM;IAE9B,OAAO,CAAC,QAAQ,CAAC,IAAI;IADjC,QAAQ,CAAC,EAAE,oBAAmB;IAC9B,YAA6B,IAAI,EAAE,oBAAoB,EAAI;IAE3D,KAAK,CAAC,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAAC,aAAa,CAAC,CAEtD;CAIF;AAED,yCAAyC;AACzC,MAAM,WAAW,oBAAoB;IACnC,6DAA6D;IAC7D,KAAK,EAAE,MAAM,CAAA;IACb,uBAAuB;IACvB,IAAI,EAAE,MAAM,CAAA;IACZ;;;;;OAKG;IACH,KAAK,EAAE,MAAM,CAAA;IACb,kEAAkE;IAClE,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,sFAAsF;IACtF,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,sDAAsD;IACtD,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,kFAAkF;IAClF,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,qDAAqD;IACrD,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,sDAAsD;IACtD,KAAK,CAAC,EAAE,SAAS,CAAA;IACjB,oDAAoD;IACpD,GAAG,CAAC,EAAE,MAAM,MAAM,CAAA;IAClB,sDAAsD;IACtD,KAAK,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IACrC;;;;OAIG;IACH,MAAM,CAAC,EAAE,MAAM,MAAM,CAAA;IACrB;;;;;OAKG;IACH,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB;AAED,6CAA6C;AAC7C,MAAM,MAAM,SAAS,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,WAAW,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAA;AAO9E,qEAAqE;AACrE,qBAAa,cAAe,YAAW,aAAa;IAYhD,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAZ5B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAA;IACpB,mGAAmG;IACnG,OAAO,CAAC,MAAM,CAAoB;IAClC,4FAA4F;IAC5F,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAQ;IAClC,oFAAoF;IACpF,OAAO,CAAC,aAAa,CAAoB;IACzC,OAAO,CAAC,WAAW,CAAI;IAEvB,YACmB,MAAM,EAAE,oBAAoB,EAC5B,SAAS,EAAE,kBAAkB,EAQ/C;IAEK,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,GAAE,mBAAwB,GAAG,OAAO,CAAC,UAAU,CAAC,CA2B9E;IAED;;;;OAIG;IACG,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAM5C;IAED,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAGvB;IAED,yGAAyG;YAC3F,QAAQ;IAatB,mGAAmG;YACrF,gBAAgB;IA8B9B,gGAAgG;YAClF,eAAe;IAK7B,2FAA2F;YAC7E,eAAe;IAe7B,OAAO,KAAK,KAAK,GAEhB;IAED,uGAAuG;IACvG,OAAO,CAAC,cAAc;IAKtB,0CAA0C;YAC5B,GAAG;IAMjB,iDAAiD;YACnC,OAAO;CAetB;AAWD;;;;;;;;;;GAUG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,GAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAe,GAAG,UAAU,CAcxG"}
@@ -1,261 +0,0 @@
1
- import { randomUUID } from 'node:crypto';
2
- import { StreamJsonParser } from './claude-code.js';
3
- import { readZip } from './actions-zip.js';
4
- import { combineFraming, makeEmit } from './session-support.js';
5
- /**
6
- * A {@link Driver} that runs the agent on **GitHub Actions** instead of on this
7
- * machine (#610): dispatch a workflow, poll it, read the transcript it uploads.
8
- *
9
- * This is the answer to "drive Claude Code on the web". The routines fire API was
10
- * the obvious candidate and turned out unusable — the prompt arrives wrapped as
11
- * untrusted data, and there is no read-back of any kind. The official
12
- * `anthropics/claude-code-action@v1` has neither problem: the prompt is passed
13
- * verbatim, and the run publishes its full transcript. Auth is the same
14
- * subscription posture as everywhere else (#495): a `claude setup-token` OAuth
15
- * token held by the repo, never an API key of ours.
16
- *
17
- * It fits `Driver`/`DriverSession` as written, with no new methods. What changes is
18
- * not the shape but the tempo, and those costs are real:
19
- *
20
- * - **Minutes, not seconds.** Every `prompt` is a fresh runner and a fresh
21
- * checkout. Continuity comes from the branch the previous turn pushed, which the
22
- * session tracks and dispatches onto next time.
23
- * - **No live stream.** The transcript arrives once, at the end, so the dashboard's
24
- * {@link DriverStartOptions.onEvent} feed replays in a burst rather than trickling.
25
- * - **Quota is the account's, not the runner's.** Free minutes on a public repo
26
- * change nothing about the subscription window every run draws down.
27
- *
28
- * The workspace lives on a runner that is gone by the time we read it, so
29
- * {@link ActionsSession.readCode} reads from the pushed branch over the contents
30
- * API rather than from disk.
31
- */
32
- export class ActionsDriver {
33
- opts;
34
- id = 'github-actions';
35
- constructor(opts) {
36
- this.opts = opts;
37
- }
38
- start(opts) {
39
- return Promise.resolve(new ActionsSession(this.opts, opts));
40
- }
41
- }
42
- let sessionCounter = 0;
43
- /** A short random tag so correlation ids stay unique across driver processes. */
44
- const randomRunTag = () => randomUUID().slice(0, 8);
45
- /** One Actions-backed session. Each `prompt` is one workflow run. */
46
- export class ActionsSession {
47
- config;
48
- startOpts;
49
- id;
50
- cwd;
51
- /** The branch the last run pushed; set once the run reports it, and the next turn builds on it. */
52
- branch;
53
- /** The branch this session asks each run to push to. Stable across turns, so they chain. */
54
- runBranch;
55
- /** The agent's own session id, carried across turns so `resume` can continue it. */
56
- lastSessionId;
57
- turnCounter = 0;
58
- constructor(config, startOpts) {
59
- this.config = config;
60
- this.startOpts = startOpts;
61
- this.cwd = startOpts.cwd;
62
- // The counter reads well in logs within one process; the random tag is what keeps the
63
- // correlation id unique across processes, since the daemon spawns a fresh one per run.
64
- this.id = `actions-${++sessionCounter}-${(config.runTag ?? randomRunTag)()}`;
65
- this.runBranch = `${config.branchPrefix ?? 'claude/'}framework-${this.id}`;
66
- this.lastSessionId = startOpts.resumeSessionId;
67
- }
68
- async prompt(text, opts = {}) {
69
- const emit = makeEmit(this.startOpts.onEvent, 'github-actions');
70
- // The action takes `prompt` as an action input, not through a shell, so a
71
- // multi-line prompt is safe. The framing rides in front of it (as with Codex):
72
- // `--append-system-prompt` would have to survive shell-quoting inside the
73
- // workflow, and a system prompt is not worth an injection seam.
74
- const framing = combineFraming(this.startOpts.system, opts.system);
75
- const prompt = framing ? `${framing}\n\n${text}` : text;
76
- emit({ type: 'start', prompt });
77
- // How we find our run: the dispatch API returns no run id, so the workflow echoes this
78
- // into its run-name and artifact name and we match on it. It must be unique per run (the
79
- // session's random tag) so a fresh process never latches onto a stale same-named run.
80
- const correlationId = `${this.id}-turn-${++this.turnCounter}`;
81
- const resume = opts.resume ? this.lastSessionId : undefined;
82
- await this.dispatch(prompt, correlationId, resume);
83
- emit({ type: 'notice', message: `Dispatched ${correlationId} to ${this.config.owner}/${this.config.repo}; waiting for the runner.` });
84
- const run = await this.awaitWorkflowRun(correlationId, emit, opts.signal);
85
- const artifact = await this.readRunArtifact(run.id, correlationId);
86
- if (artifact.branch)
87
- this.branch = artifact.branch;
88
- const turn = replayTranscript(artifact.execution, emit);
89
- if (turn.sessionId)
90
- this.lastSessionId = turn.sessionId;
91
- emit({ type: 'result', text: turn.text, ...(turn.sessionId ? { sessionId: turn.sessionId } : {}), ...(turn.usage ? { usage: turn.usage } : {}) });
92
- return turn;
93
- }
94
- /**
95
- * Read a file the agent produced. The runner is gone, so this reads the branch the
96
- * run pushed rather than the local workspace — the seam is still the code, just
97
- * fetched over the contents API.
98
- */
99
- async readCode(path) {
100
- if (!this.branch)
101
- throw new Error('No branch yet: readCode is only available after a run has pushed one.');
102
- const encoded = path.split('/').map(encodeURIComponent).join('/');
103
- const body = await this.api(`/repos/${this.owner}/contents/${encoded}?ref=${encodeURIComponent(this.branch)}`);
104
- if (typeof body.content !== 'string')
105
- throw new Error(`${path} is not a file on ${this.branch}`);
106
- return Buffer.from(body.content, body.encoding === 'base64' ? 'base64' : 'utf8').toString('utf8');
107
- }
108
- dispose() {
109
- // Every run reaps itself on the runner; there is nothing here to free.
110
- return Promise.resolve();
111
- }
112
- /** Fire the workflow. Returns nothing useful: dispatch is 204 with no body, hence the correlation id. */
113
- async dispatch(prompt, correlationId, resume) {
114
- const workflow = this.config.workflow ?? 'framework-agent.yml';
115
- const inputs = { prompt, correlation_id: correlationId, branch: this.runBranch };
116
- // These reach a shell on the runner as environment variables. They are ids and
117
- // model names, so anything outside that alphabet is a bug or an attack.
118
- if (this.startOpts.model)
119
- inputs['model'] = assertToken(this.startOpts.model, 'model');
120
- if (resume)
121
- inputs['resume_session_id'] = assertToken(resume, 'resume session id');
122
- await this.api(`/repos/${this.owner}/actions/workflows/${encodeURIComponent(workflow)}/dispatches`, {
123
- method: 'POST',
124
- body: JSON.stringify({ ref: this.branch ?? this.config.ref ?? 'main', inputs }),
125
- });
126
- }
127
- /** Poll until our run appears and finishes. Identified by the correlation id in its `run-name`. */
128
- async awaitWorkflowRun(correlationId, emit, promptSignal) {
129
- const now = this.config.now ?? Date.now;
130
- const sleep = this.config.sleep ?? (ms => new Promise(r => setTimeout(r, ms)));
131
- const interval = this.config.pollIntervalMs ?? 5000;
132
- const deadline = now() + (this.config.timeoutMs ?? 60 * 60 * 1000);
133
- let announced = false;
134
- for (;;) {
135
- const found = await this.findWorkflowRun(correlationId);
136
- if (found) {
137
- if (!announced) {
138
- announced = true;
139
- emit({ type: 'action', label: `run ${found.html_url}` });
140
- }
141
- if (found.status === 'completed') {
142
- if (found.conclusion !== 'success')
143
- throw new Error(`GitHub Actions run concluded "${found.conclusion}": ${found.html_url}`);
144
- return found;
145
- }
146
- }
147
- if (now() >= deadline)
148
- throw new Error(`Timed out waiting for the GitHub Actions run (${correlationId}).`);
149
- this.throwIfAborted(promptSignal);
150
- await sleep(interval);
151
- this.throwIfAborted(promptSignal);
152
- }
153
- }
154
- /** Our run among the workflow's recent ones, or undefined while GitHub is still creating it. */
155
- async findWorkflowRun(correlationId) {
156
- const body = await this.api(`/repos/${this.owner}/actions/runs?event=workflow_dispatch&per_page=50`);
157
- return (body.workflow_runs ?? []).find(run => typeof run.name === 'string' && run.name.includes(correlationId));
158
- }
159
- /** Download the run's artifact and pull the transcript and the pushed branch out of it. */
160
- async readRunArtifact(runId, correlationId) {
161
- const list = await this.api(`/repos/${this.owner}/actions/runs/${runId}/artifacts`);
162
- const artifact = (list.artifacts ?? []).find(a => a.name.includes(correlationId)) ?? list.artifacts?.[0];
163
- if (!artifact)
164
- throw new Error(`Run ${runId} uploaded no artifact; the workflow's collect step did not run.`);
165
- const res = await this.request(`/repos/${this.owner}/actions/artifacts/${artifact.id}/zip`);
166
- const entries = readZip(Buffer.from(await res.arrayBuffer()));
167
- const execution = entries.find(e => e.name.endsWith('execution.json'));
168
- if (!execution)
169
- throw new Error(`Artifact ${artifact.name} has no execution.json (entries: ${entries.map(e => e.name).join(', ') || 'none'})`);
170
- const meta = entries.find(e => e.name.endsWith('meta.json'));
171
- const branch = meta ? readBranch(meta.data.toString('utf8')) : undefined;
172
- return { execution: execution.data.toString('utf8'), ...(branch ? { branch } : {}) };
173
- }
174
- get owner() {
175
- return `${this.config.owner}/${this.config.repo}`;
176
- }
177
- /** The session-wide signal or the per-prompt one (`DriverPromptOptions.signal`) both stop the poll. */
178
- throwIfAborted(promptSignal) {
179
- if (this.startOpts.signal?.aborted || promptSignal?.aborted)
180
- throw new Error('Session aborted while waiting for the GitHub Actions run.');
181
- }
182
- /** A REST call that expects JSON back. */
183
- async api(path, init) {
184
- const res = await this.request(path, init);
185
- if (res.status === 204)
186
- return undefined;
187
- return (await res.json());
188
- }
189
- /** A REST call, with auth and error handling. */
190
- async request(path, init = {}) {
191
- const doFetch = this.config.fetch ?? globalThis.fetch;
192
- const res = await doFetch(`${this.config.apiBase ?? 'https://api.github.com'}${path}`, {
193
- ...init,
194
- headers: {
195
- accept: 'application/vnd.github+json',
196
- authorization: `Bearer ${this.config.token}`,
197
- 'x-github-api-version': '2022-11-28',
198
- ...(init.body ? { 'content-type': 'application/json' } : {}),
199
- ...init.headers,
200
- },
201
- });
202
- if (!res.ok)
203
- throw new Error(`GitHub API ${init.method ?? 'GET'} ${path} failed (${res.status} ${res.statusText}): ${await safeText(res)}`);
204
- return res;
205
- }
206
- }
207
- /**
208
- * Turn the action's `execution_file` into a turn, replaying its events on the way.
209
- *
210
- * The adapter is thin on purpose: the file is a JSON **array** of exactly the
211
- * SDKMessage objects the CLI emits one-per-line, so the existing
212
- * {@link StreamJsonParser} reads it verbatim once the array is unwrapped. The whole
213
- * difference between running locally and running on a runner is array-vs-JSONL.
214
- *
215
- * Events replay in a burst at the end rather than live — that is the honest cost of
216
- * this driver, and the dashboard sees the same event stream either way.
217
- */
218
- export function replayTranscript(json, emit = () => { }) {
219
- let messages;
220
- try {
221
- messages = JSON.parse(json);
222
- }
223
- catch (err) {
224
- throw new Error(`Could not parse the run transcript as JSON: ${err.message}`);
225
- }
226
- if (!Array.isArray(messages))
227
- throw new Error('The run transcript is not a JSON array of messages.');
228
- const parser = new StreamJsonParser();
229
- for (const message of messages) {
230
- for (const event of parser.push(JSON.stringify(message)))
231
- emit(event);
232
- }
233
- return parser.result();
234
- }
235
- /** The branch the run pushed, from the workflow's `meta.json`. Absent when the agent pushed nothing. */
236
- function readBranch(json) {
237
- try {
238
- const meta = JSON.parse(json);
239
- const branch = meta['branch'];
240
- return typeof branch === 'string' && branch ? branch : undefined;
241
- }
242
- catch {
243
- return undefined; // A malformed meta file costs us `readCode`, not the turn.
244
- }
245
- }
246
- /** Reject anything that is not an opaque id, since these reach a shell on the runner. */
247
- function assertToken(value, what) {
248
- if (!/^[A-Za-z0-9._:-]+$/.test(value))
249
- throw new Error(`Refusing to pass an unsafe ${what} to the workflow: ${value}`);
250
- return value;
251
- }
252
- /** An error body, best-effort — a failure to read one must not replace the real error. */
253
- async function safeText(res) {
254
- try {
255
- return (await res.text()).slice(0, 500);
256
- }
257
- catch {
258
- return '<no body>';
259
- }
260
- }
261
- //# sourceMappingURL=actions.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"actions.js","sourceRoot":"","sources":["../../src/driver/actions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AACnD,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAA;AAC1C,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAA;AAG/D;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAM,OAAO,aAAa;IAEK,IAAI;IADxB,EAAE,GAAG,gBAAgB,CAAA;IAC9B,YAA6B,IAA0B;oBAA1B,IAAI;IAAyB,CAAC;IAE3D,KAAK,CAAC,IAAwB;QAC5B,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAA;IAC7D,CAAC;CAIF;AAiDD,IAAI,cAAc,GAAG,CAAC,CAAA;AAEtB,iFAAiF;AACjF,MAAM,YAAY,GAAG,GAAW,EAAE,CAAC,UAAU,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;AAE3D,qEAAqE;AACrE,MAAM,OAAO,cAAc;IAYN,MAAM;IACN,SAAS;IAZnB,EAAE,CAAQ;IACV,GAAG,CAAQ;IACpB,mGAAmG;IAC3F,MAAM,CAAoB;IAClC,4FAA4F;IAC3E,SAAS,CAAQ;IAClC,oFAAoF;IAC5E,aAAa,CAAoB;IACjC,WAAW,GAAG,CAAC,CAAA;IAEvB,YACmB,MAA4B,EAC5B,SAA6B;sBAD7B,MAAM;yBACN,SAAS;QAE1B,IAAI,CAAC,GAAG,GAAG,SAAS,CAAC,GAAG,CAAA;QACxB,sFAAsF;QACtF,uFAAuF;QACvF,IAAI,CAAC,EAAE,GAAG,WAAW,EAAE,cAAc,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,YAAY,CAAC,EAAE,EAAE,CAAA;QAC5E,IAAI,CAAC,SAAS,GAAG,GAAG,MAAM,CAAC,YAAY,IAAI,SAAS,aAAa,IAAI,CAAC,EAAE,EAAE,CAAA;QAC1E,IAAI,CAAC,aAAa,GAAG,SAAS,CAAC,eAAe,CAAA;IAChD,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,IAAY,EAAE,IAAI,GAAwB,EAAE;QACvD,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAA;QAC/D,0EAA0E;QAC1E,+EAA+E;QAC/E,0EAA0E;QAC1E,gEAAgE;QAChE,MAAM,OAAO,GAAG,cAAc,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;QAClE,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,OAAO,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAA;QACvD,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAA;QAE/B,uFAAuF;QACvF,yFAAyF;QACzF,sFAAsF;QACtF,MAAM,aAAa,GAAG,GAAG,IAAI,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,WAAW,EAAE,CAAA;QAC7D,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAA;QAE3D,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,aAAa,EAAE,MAAM,CAAC,CAAA;QAClD,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,cAAc,aAAa,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,2BAA2B,EAAE,CAAC,CAAA;QAErI,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,aAAa,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAA;QACzE,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,EAAE,aAAa,CAAC,CAAA;QAClE,IAAI,QAAQ,CAAC,MAAM;YAAE,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAA;QAElD,MAAM,IAAI,GAAG,gBAAgB,CAAC,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC,CAAA;QACvD,IAAI,IAAI,CAAC,SAAS;YAAE,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,SAAS,CAAA;QACvD,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAA;QACjJ,OAAO,IAAI,CAAA;IACb,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,QAAQ,CAAC,IAAY;QACzB,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,uEAAuE,CAAC,CAAA;QAC1G,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QACjE,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,GAAG,CAA0C,UAAU,IAAI,CAAC,KAAK,aAAa,OAAO,QAAQ,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;QACvJ,IAAI,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ;YAAE,MAAM,IAAI,KAAK,CAAC,GAAG,IAAI,qBAAqB,IAAI,CAAC,MAAM,EAAE,CAAC,CAAA;QAChG,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;IACnG,CAAC;IAED,OAAO;QACL,uEAAuE;QACvE,OAAO,OAAO,CAAC,OAAO,EAAE,CAAA;IAC1B,CAAC;IAED,yGAAyG;IACjG,KAAK,CAAC,QAAQ,CAAC,MAAc,EAAE,aAAqB,EAAE,MAA0B;QACtF,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,qBAAqB,CAAA;QAC9D,MAAM,MAAM,GAA2B,EAAE,MAAM,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,EAAE,IAAI,CAAC,SAAS,EAAE,CAAA;QACxG,+EAA+E;QAC/E,wEAAwE;QACxE,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK;YAAE,MAAM,CAAC,OAAO,CAAC,GAAG,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;QACtF,IAAI,MAAM;YAAE,MAAM,CAAC,mBAAmB,CAAC,GAAG,WAAW,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAA;QAClF,MAAM,IAAI,CAAC,GAAG,CAAC,UAAU,IAAI,CAAC,KAAK,sBAAsB,kBAAkB,CAAC,QAAQ,CAAC,aAAa,EAAE;YAClG,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,MAAM,EAAE,MAAM,EAAE,CAAC;SAChF,CAAC,CAAA;IACJ,CAAC;IAED,mGAAmG;IAC3F,KAAK,CAAC,gBAAgB,CAC5B,aAAqB,EACrB,IAAkC,EAClC,YAA0B;QAE1B,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,CAAA;QACvC,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,OAAO,CAAO,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAA;QACpF,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,cAAc,IAAI,IAAI,CAAA;QACnD,MAAM,QAAQ,GAAG,GAAG,EAAE,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAA;QAClE,IAAI,SAAS,GAAG,KAAK,CAAA;QAErB,SAAS,CAAC;YACR,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,CAAA;YACvD,IAAI,KAAK,EAAE,CAAC;gBACV,IAAI,CAAC,SAAS,EAAE,CAAC;oBACf,SAAS,GAAG,IAAI,CAAA;oBAChB,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,KAAK,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAA;gBAC1D,CAAC;gBACD,IAAI,KAAK,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;oBACjC,IAAI,KAAK,CAAC,UAAU,KAAK,SAAS;wBAAE,MAAM,IAAI,KAAK,CAAC,iCAAiC,KAAK,CAAC,UAAU,MAAM,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAA;oBAC5H,OAAO,KAAK,CAAA;gBACd,CAAC;YACH,CAAC;YACD,IAAI,GAAG,EAAE,IAAI,QAAQ;gBAAE,MAAM,IAAI,KAAK,CAAC,iDAAiD,aAAa,IAAI,CAAC,CAAA;YAC1G,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,CAAA;YACjC,MAAM,KAAK,CAAC,QAAQ,CAAC,CAAA;YACrB,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,CAAA;QACnC,CAAC;IACH,CAAC;IAED,gGAAgG;IACxF,KAAK,CAAC,eAAe,CAAC,aAAqB;QACjD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,GAAG,CAAoC,UAAU,IAAI,CAAC,KAAK,mDAAmD,CAAC,CAAA;QACvI,OAAO,CAAC,IAAI,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ,IAAI,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAA;IACjH,CAAC;IAED,2FAA2F;IACnF,KAAK,CAAC,eAAe,CAAC,KAAa,EAAE,aAAqB;QAChE,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,GAAG,CAAiD,UAAU,IAAI,CAAC,KAAK,iBAAiB,KAAK,YAAY,CAAC,CAAA;QACnI,MAAM,QAAQ,GAAG,CAAC,IAAI,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAA;QACxG,IAAI,CAAC,QAAQ;YAAE,MAAM,IAAI,KAAK,CAAC,OAAO,KAAK,iEAAiE,CAAC,CAAA;QAE7G,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,UAAU,IAAI,CAAC,KAAK,sBAAsB,QAAQ,CAAC,EAAE,MAAM,CAAC,CAAA;QAC3F,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC,CAAA;QAC7D,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC,CAAA;QACtE,IAAI,CAAC,SAAS;YAAE,MAAM,IAAI,KAAK,CAAC,YAAY,QAAQ,CAAC,IAAI,oCAAoC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,MAAM,GAAG,CAAC,CAAA;QAE9I,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAA;QAC5D,MAAM,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;QACxE,OAAO,EAAE,SAAS,EAAE,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAA;IACtF,CAAC;IAED,IAAY,KAAK;QACf,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAA;IACnD,CAAC;IAED,uGAAuG;IAC/F,cAAc,CAAC,YAA0B;QAC/C,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,OAAO,IAAI,YAAY,EAAE,OAAO;YACzD,MAAM,IAAI,KAAK,CAAC,2DAA2D,CAAC,CAAA;IAChF,CAAC;IAED,0CAA0C;IAClC,KAAK,CAAC,GAAG,CAAc,IAAY,EAAE,IAAkB;QAC7D,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;QAC1C,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG;YAAE,OAAO,SAAc,CAAA;QAC7C,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAM,CAAA;IAChC,CAAC;IAED,iDAAiD;IACzC,KAAK,CAAC,OAAO,CAAC,IAAY,EAAE,IAAI,GAAgB,EAAE;QACxD,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,IAAK,UAAU,CAAC,KAAmB,CAAA;QACpE,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,IAAI,wBAAwB,GAAG,IAAI,EAAE,EAAE;YACrF,GAAG,IAAI;YACP,OAAO,EAAE;gBACP,MAAM,EAAE,6BAA6B;gBACrC,aAAa,EAAE,UAAU,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE;gBAC5C,sBAAsB,EAAE,YAAY;gBACpC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;gBAC5D,GAAG,IAAI,CAAC,OAAO;aAChB;SACF,CAAC,CAAA;QACF,IAAI,CAAC,GAAG,CAAC,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,cAAc,IAAI,CAAC,MAAM,IAAI,KAAK,IAAI,IAAI,YAAY,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC,UAAU,MAAM,MAAM,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QAC3I,OAAO,GAAG,CAAA;IACZ,CAAC;CACF;AAWD;;;;;;;;;;GAUG;AACH,MAAM,UAAU,gBAAgB,CAAC,IAAY,EAAE,IAAI,GAAiC,GAAG,EAAE,GAAE,CAAC;IAC1F,IAAI,QAAiB,CAAA;IACrB,IAAI,CAAC;QACH,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;IAC7B,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,+CAAgD,GAAa,CAAC,OAAO,EAAE,CAAC,CAAA;IAC1F,CAAC;IACD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,qDAAqD,CAAC,CAAA;IAEpG,MAAM,MAAM,GAAG,IAAI,gBAAgB,EAAE,CAAA;IACrC,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;YAAE,IAAI,CAAC,KAAK,CAAC,CAAA;IACvE,CAAC;IACD,OAAO,MAAM,CAAC,MAAM,EAAE,CAAA;AACxB,CAAC;AAED,wGAAwG;AACxG,SAAS,UAAU,CAAC,IAAY;IAC9B,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAA4B,CAAA;QACxD,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAA;QAC7B,OAAO,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAA;IAClE,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,SAAS,CAAA,CAAC,2DAA2D;IAC9E,CAAC;AACH,CAAC;AAED,yFAAyF;AACzF,SAAS,WAAW,CAAC,KAAa,EAAE,IAAY;IAC9C,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,8BAA8B,IAAI,qBAAqB,KAAK,EAAE,CAAC,CAAA;IACtH,OAAO,KAAK,CAAA;AACd,CAAC;AAED,0FAA0F;AAC1F,KAAK,UAAU,QAAQ,CAAC,GAAa;IACnC,IAAI,CAAC;QACH,OAAO,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAA;IACzC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,WAAW,CAAA;IACpB,CAAC;AACH,CAAC"}
@@ -1,57 +0,0 @@
1
- import type { DriverEvent, DriverTurn } from './types.js';
2
- /** The slice of `child_process.spawn` a driver needs. Injectable for tests. */
3
- export type SpawnLike = (command: string, args: readonly string[], options: {
4
- cwd: string;
5
- env: NodeJS.ProcessEnv;
6
- detached?: boolean;
7
- }) => SpawnedProcess;
8
- /** The slice of a spawned process a driver reads. */
9
- export interface SpawnedProcess {
10
- /** OS pid; present for a real child, absent for in-memory test fakes. */
11
- pid?: number | undefined;
12
- stdout: NodeJS.ReadableStream | null;
13
- stderr: NodeJS.ReadableStream | null;
14
- stdin: NodeJS.WritableStream | null;
15
- on(event: 'close', listener: (code: number | null) => void): unknown;
16
- on(event: 'error', listener: (err: Error) => void): unknown;
17
- kill(signal?: NodeJS.Signals): unknown;
18
- }
19
- /**
20
- * The slice of a driver's output parser {@link runAgentCli} drives: fed one line
21
- * at a time, asked for the turn at the end. Each wrapped agent speaks its own
22
- * dialect ({@link StreamJsonParser} for Claude Code, `CodexJsonParser` for
23
- * Codex), but the process handling around it is identical.
24
- */
25
- export interface AgentCliParser {
26
- /** Fold one line of the agent's output in, and surface anything worth emitting. */
27
- push(line: string): DriverEvent[];
28
- /** The turn the lines added up to. */
29
- result(): DriverTurn;
30
- }
31
- /** How to run one agent-CLI invocation. */
32
- export interface RunAgentCliOptions {
33
- bin: string;
34
- args: string[];
35
- cwd: string;
36
- env: NodeJS.ProcessEnv;
37
- prompt: string;
38
- spawn: SpawnLike;
39
- emit: (event: DriverEvent) => void;
40
- signals: AbortSignal[];
41
- /** The agent's own output dialect. */
42
- parser: AgentCliParser;
43
- /** The agent's name, for error messages. Default `"claude-code"`. */
44
- agent?: string;
45
- }
46
- /**
47
- * Spawn one agent-CLI invocation and resolve with its final turn.
48
- *
49
- * Everything here is about the *process*, not the agent: its own process group
50
- * so an interrupt kills the whole tree rather than orphaning it, a SIGTERM/
51
- * SIGKILL grace window, abort wiring, and a non-zero exit failing the turn even
52
- * when text was streamed first. Only {@link RunAgentCliOptions.parser} knows
53
- * which agent is on the other end — a second agent gets all of this for free
54
- * rather than a second copy of it.
55
- */
56
- export declare function runAgentCli(opts: RunAgentCliOptions): Promise<DriverTurn>;
57
- //# sourceMappingURL=agent-cli.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"agent-cli.d.ts","sourceRoot":"","sources":["../../src/driver/agent-cli.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAWzD,+EAA+E;AAC/E,MAAM,MAAM,SAAS,GAAG,CACtB,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,SAAS,MAAM,EAAE,EACvB,OAAO,EAAE;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC,UAAU,CAAC;IAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAE,KACjE,cAAc,CAAA;AAEnB,qDAAqD;AACrD,MAAM,WAAW,cAAc;IAC7B,yEAAyE;IACzE,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACxB,MAAM,EAAE,MAAM,CAAC,cAAc,GAAG,IAAI,CAAA;IACpC,MAAM,EAAE,MAAM,CAAC,cAAc,GAAG,IAAI,CAAA;IACpC,KAAK,EAAE,MAAM,CAAC,cAAc,GAAG,IAAI,CAAA;IACnC,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,GAAG,OAAO,CAAA;IACpE,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,IAAI,GAAG,OAAO,CAAA;IAC3D,IAAI,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,OAAO,GAAG,OAAO,CAAA;CACvC;AAED;;;;;GAKG;AACH,MAAM,WAAW,cAAc;IAC7B,mFAAmF;IACnF,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,EAAE,CAAA;IACjC,sCAAsC;IACtC,MAAM,IAAI,UAAU,CAAA;CACrB;AAED,2CAA2C;AAC3C,MAAM,WAAW,kBAAkB;IACjC,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,MAAM,EAAE,CAAA;IACd,GAAG,EAAE,MAAM,CAAA;IACX,GAAG,EAAE,MAAM,CAAC,UAAU,CAAA;IACtB,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,SAAS,CAAA;IAChB,IAAI,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,CAAA;IAClC,OAAO,EAAE,WAAW,EAAE,CAAA;IACtB,sCAAsC;IACtC,MAAM,EAAE,cAAc,CAAA;IACtB,qEAAqE;IACrE,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED;;;;;;;;;GASG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAAC,UAAU,CAAC,CA8GzE"}
@@ -1,134 +0,0 @@
1
- import { createInterface } from 'node:readline';
2
- import { killTree, registerChild, unregisterChild } from './child-registry.js';
3
- // The agent-agnostic core for running one wrapped coding-agent CLI: spawn it in its own
4
- // process group, stream its output through a parser, and gate the turn on its exit. Each
5
- // concrete driver (claude-code, codex) supplies the argv and an AgentCliParser for its own
6
- // output dialect; everything about the *process* lives here, so a second driver reuses it
7
- // rather than reaching into the first driver's file for it.
8
- /** Grace between SIGTERM and the SIGKILL that forces a hung agent tree down. */
9
- const TERMINATE_GRACE_MS = 5000;
10
- /**
11
- * Spawn one agent-CLI invocation and resolve with its final turn.
12
- *
13
- * Everything here is about the *process*, not the agent: its own process group
14
- * so an interrupt kills the whole tree rather than orphaning it, a SIGTERM/
15
- * SIGKILL grace window, abort wiring, and a non-zero exit failing the turn even
16
- * when text was streamed first. Only {@link RunAgentCliOptions.parser} knows
17
- * which agent is on the other end — a second agent gets all of this for free
18
- * rather than a second copy of it.
19
- */
20
- export function runAgentCli(opts) {
21
- return new Promise((resolvePromise, rejectPromise) => {
22
- for (const s of opts.signals) {
23
- if (s.aborted) {
24
- rejectPromise(new Error(`[framework] ${opts.agent ?? 'claude-code'} prompt aborted`));
25
- return;
26
- }
27
- }
28
- opts.emit({ type: 'start', prompt: opts.prompt });
29
- // `detached` makes the child its own process-group leader so we can kill the
30
- // whole agent subtree (claude + node workers + tool calls) at once, not just
31
- // the top process — otherwise an interrupt orphans the tree (the leak).
32
- const child = opts.spawn(opts.bin, opts.args, { cwd: opts.cwd, env: opts.env, detached: true });
33
- const pid = child.pid;
34
- if (pid != null)
35
- registerChild(pid);
36
- const parser = opts.parser;
37
- const agent = opts.agent ?? 'claude-code';
38
- let settled = false;
39
- let hardKillTimer;
40
- // Raw bytes, decoded once at close: a per-chunk `String(chunk)` corrupts a multibyte
41
- // UTF-8 codepoint split across two chunks, and this text becomes the turn's error detail.
42
- const stderrChunks = [];
43
- // Kill the agent's whole process group: SIGTERM to let it flush, then a
44
- // SIGKILL after a grace window in case it ignores the term (mid tool-call).
45
- const terminate = () => {
46
- if (pid != null)
47
- killTree(pid, 'SIGTERM');
48
- else
49
- child.kill('SIGTERM');
50
- hardKillTimer = setTimeout(() => {
51
- if (pid != null)
52
- killTree(pid, 'SIGKILL');
53
- else
54
- child.kill('SIGKILL');
55
- }, TERMINATE_GRACE_MS);
56
- hardKillTimer.unref?.();
57
- };
58
- // Runs exactly once the process is done with (closed, errored, or killed):
59
- // stop tracking it and cancel any pending hard-kill.
60
- const cleanup = () => {
61
- if (pid != null)
62
- unregisterChild(pid);
63
- if (hardKillTimer)
64
- clearTimeout(hardKillTimer);
65
- };
66
- const finish = (fn) => {
67
- if (settled)
68
- return;
69
- settled = true;
70
- for (const { signal, handler } of aborts)
71
- signal.removeEventListener('abort', handler);
72
- fn();
73
- };
74
- const aborts = opts.signals.map(signal => {
75
- const handler = () => {
76
- if (settled)
77
- return;
78
- terminate();
79
- finish(() => rejectPromise(new Error(`[framework] ${agent} prompt aborted`)));
80
- };
81
- signal.addEventListener('abort', handler);
82
- return { signal, handler };
83
- });
84
- child.on('error', err => {
85
- cleanup();
86
- finish(() => rejectPromise(err));
87
- });
88
- if (child.stdout) {
89
- const rl = createInterface({ input: child.stdout });
90
- rl.on('line', line => {
91
- for (const event of parser.push(line))
92
- opts.emit(event);
93
- });
94
- }
95
- if (child.stderr) {
96
- child.stderr.on('data', (chunk) => stderrChunks.push(Buffer.isBuffer(chunk) ? chunk : Buffer.from(chunk)));
97
- }
98
- child.on('close', code => {
99
- cleanup();
100
- // An abort (or a spawn error) already settled and reported the turn; the process
101
- // still closes afterward, but its late exit must not emit a second telemetry event.
102
- if (settled)
103
- return;
104
- const turn = parser.result();
105
- // A non-zero exit is a failed turn even when the agent streamed some text
106
- // first: the loop gates on the outcome, so a crash mid-build must not pass
107
- // as a result. Surface stderr, else the partial text, as context.
108
- if (code !== 0) {
109
- const detail = Buffer.concat(stderrChunks).toString('utf8').trim() || turn.text.trim() || `exit code ${code ?? 'null'}`;
110
- opts.emit({ type: 'error', message: detail });
111
- finish(() => rejectPromise(new Error(`[framework] ${agent} exited (${code ?? 'null'}): ${detail}`)));
112
- return;
113
- }
114
- opts.emit({
115
- type: 'result',
116
- text: turn.text,
117
- ...(turn.sessionId ? { sessionId: turn.sessionId } : {}),
118
- ...(turn.usage ? { usage: turn.usage } : {}),
119
- });
120
- finish(() => resolvePromise(turn));
121
- });
122
- // Feed the prompt over stdin so long prompts never hit arg-length limits.
123
- if (child.stdin) {
124
- // A CLI that exits before reading stdin (bad flag, instant crash) surfaces an async
125
- // EPIPE on the stream; with no listener that is an uncaught exception in the daemon
126
- // (#943). The close handler already reports the failed turn, so the error carries
127
- // nothing the caller needs.
128
- child.stdin.on('error', () => { });
129
- child.stdin.write(opts.prompt);
130
- child.stdin.end();
131
- }
132
- });
133
- }
134
- //# sourceMappingURL=agent-cli.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"agent-cli.js","sourceRoot":"","sources":["../../src/driver/agent-cli.ts"],"names":[],"mappings":"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"}
@@ -1,25 +0,0 @@
1
- /**
2
- * Process-tree kill registry.
3
- *
4
- * The framework spawns the Claude Code CLI, which in turn spawns a deep subtree
5
- * (node workers, ripgrep, bash tool calls, MCP servers). Signaling only the
6
- * top-level `claude` orphans that subtree: it reparents to init and keeps
7
- * burning CPU — the runaway-process leak we hit (a swarm of stray `claude`
8
- * processes after an agent was interrupted).
9
- *
10
- * Fix: spawn each long-lived child as its own process-group leader (`detached`)
11
- * and signal the whole group at once via a negative pid. Register every live
12
- * child here so a hard framework exit (crash, uncaught error, process.exit)
13
- * still reaps the trees on the way out.
14
- */
15
- /**
16
- * Signal an entire process group. `pid` must be a group leader (spawned
17
- * `detached`); the negative pid targets the group, reaping the whole subtree in
18
- * one shot. Never throws — a group that already exited is not an error.
19
- */
20
- export declare function killTree(pid: number, signal: NodeJS.Signals): void;
21
- /** Track a detached child so it is force-killed if the framework exits first. */
22
- export declare function registerChild(pid: number): void;
23
- /** Stop tracking a child that has already exited (or been killed). */
24
- export declare function unregisterChild(pid: number): void;
25
- //# sourceMappingURL=child-registry.d.ts.map