@openagt/dashboard 0.0.0-stage → 0.8.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 (1275) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +125 -2
  3. package/dist/agent-archive.d.ts +35 -0
  4. package/dist/agent-archive.d.ts.map +1 -0
  5. package/dist/agent-archive.js +67 -0
  6. package/dist/agent-archive.js.map +1 -0
  7. package/dist/agent-commit.d.ts +140 -0
  8. package/dist/agent-commit.d.ts.map +1 -0
  9. package/dist/agent-commit.js +254 -0
  10. package/dist/agent-commit.js.map +1 -0
  11. package/dist/agent-driver.d.ts +28 -0
  12. package/dist/agent-driver.d.ts.map +1 -0
  13. package/dist/agent-driver.js +18 -0
  14. package/dist/agent-driver.js.map +1 -0
  15. package/dist/agent-id.d.ts +13 -0
  16. package/dist/agent-id.d.ts.map +1 -0
  17. package/dist/agent-id.js +20 -0
  18. package/dist/agent-id.js.map +1 -0
  19. package/dist/agent-location.d.ts +11 -0
  20. package/dist/agent-location.d.ts.map +1 -0
  21. package/dist/agent-location.js +10 -0
  22. package/dist/agent-location.js.map +1 -0
  23. package/dist/agent-locks.d.ts +3 -0
  24. package/dist/agent-locks.d.ts.map +1 -0
  25. package/dist/agent-locks.js +40 -0
  26. package/dist/agent-locks.js.map +1 -0
  27. package/dist/agent-messages.d.ts +55 -0
  28. package/dist/agent-messages.d.ts.map +1 -0
  29. package/dist/agent-messages.js +73 -0
  30. package/dist/agent-messages.js.map +1 -0
  31. package/dist/agent-names.d.ts +24 -0
  32. package/dist/agent-names.d.ts.map +1 -0
  33. package/dist/agent-names.js +33 -0
  34. package/dist/agent-names.js.map +1 -0
  35. package/dist/agent-options.d.ts +45 -0
  36. package/dist/agent-options.d.ts.map +1 -0
  37. package/dist/agent-options.js +83 -0
  38. package/dist/agent-options.js.map +1 -0
  39. package/dist/agent-spec.d.ts +56 -0
  40. package/dist/agent-spec.d.ts.map +1 -0
  41. package/dist/agent-spec.js +56 -0
  42. package/dist/agent-spec.js.map +1 -0
  43. package/dist/agent-telemetry.d.ts +88 -0
  44. package/dist/agent-telemetry.d.ts.map +1 -0
  45. package/dist/agent-telemetry.js +97 -0
  46. package/dist/agent-telemetry.js.map +1 -0
  47. package/dist/agent-view.d.ts +39 -0
  48. package/dist/agent-view.d.ts.map +1 -0
  49. package/dist/agent-view.js +45 -0
  50. package/dist/agent-view.js.map +1 -0
  51. package/dist/agent.d.ts +113 -0
  52. package/dist/agent.d.ts.map +1 -0
  53. package/dist/agent.js +168 -0
  54. package/dist/agent.js.map +1 -0
  55. package/dist/archived-agent-patch.d.ts +14 -0
  56. package/dist/archived-agent-patch.d.ts.map +1 -0
  57. package/dist/archived-agent-patch.js +22 -0
  58. package/dist/archived-agent-patch.js.map +1 -0
  59. package/dist/auto-pm.d.ts +538 -0
  60. package/dist/auto-pm.d.ts.map +1 -0
  61. package/dist/auto-pm.js +707 -0
  62. package/dist/auto-pm.js.map +1 -0
  63. package/dist/await-gate.d.ts +184 -0
  64. package/dist/await-gate.d.ts.map +1 -0
  65. package/dist/await-gate.js +252 -0
  66. package/dist/await-gate.js.map +1 -0
  67. package/dist/bin.d.ts +3 -0
  68. package/dist/bin.d.ts.map +1 -0
  69. package/dist/bin.js +11 -0
  70. package/dist/bin.js.map +1 -0
  71. package/dist/branch-links-pass.d.ts +15 -0
  72. package/dist/branch-links-pass.d.ts.map +1 -0
  73. package/dist/branch-links-pass.js +13 -0
  74. package/dist/branch-links-pass.js.map +1 -0
  75. package/dist/branch-links.d.ts +53 -0
  76. package/dist/branch-links.d.ts.map +1 -0
  77. package/dist/branch-links.js +94 -0
  78. package/dist/branch-links.js.map +1 -0
  79. package/dist/branch-name.d.ts +8 -0
  80. package/dist/branch-name.d.ts.map +1 -0
  81. package/dist/branch-name.js +20 -0
  82. package/dist/branch-name.js.map +1 -0
  83. package/dist/branch-names.d.ts +57 -0
  84. package/dist/branch-names.d.ts.map +1 -0
  85. package/dist/branch-names.js +72 -0
  86. package/dist/branch-names.js.map +1 -0
  87. package/dist/bridge-browser.d.ts +217 -0
  88. package/dist/bridge-browser.d.ts.map +1 -0
  89. package/dist/bridge-browser.js +520 -0
  90. package/dist/bridge-browser.js.map +1 -0
  91. package/dist/browser-stream.d.ts +20 -0
  92. package/dist/browser-stream.d.ts.map +1 -0
  93. package/dist/browser-stream.js +51 -0
  94. package/dist/browser-stream.js.map +1 -0
  95. package/dist/browser.d.ts +16 -0
  96. package/dist/browser.d.ts.map +1 -0
  97. package/dist/browser.js +38 -0
  98. package/dist/browser.js.map +1 -0
  99. package/dist/built-in.d.ts +29 -0
  100. package/dist/built-in.d.ts.map +1 -0
  101. package/dist/built-in.js +78 -0
  102. package/dist/built-in.js.map +1 -0
  103. package/dist/chrome-extension/background.js +532 -0
  104. package/dist/chrome-extension/content.js +1475 -0
  105. package/dist/chrome-extension/driver-plan.js +41 -0
  106. package/dist/chrome-extension/fingerprint.js +43 -0
  107. package/dist/chrome-extension/manifest.json +31 -0
  108. package/dist/chrome-extension/options.html +48 -0
  109. package/dist/chrome-extension/options.js +122 -0
  110. package/dist/ci-watch.d.ts +123 -0
  111. package/dist/ci-watch.d.ts.map +1 -0
  112. package/dist/ci-watch.js +228 -0
  113. package/dist/ci-watch.js.map +1 -0
  114. package/dist/claude-trust.d.ts +16 -0
  115. package/dist/claude-trust.d.ts.map +1 -0
  116. package/dist/claude-trust.js +72 -0
  117. package/dist/claude-trust.js.map +1 -0
  118. package/dist/cli-exec.d.ts +36 -0
  119. package/dist/cli-exec.d.ts.map +1 -0
  120. package/dist/cli-exec.js +44 -0
  121. package/dist/cli-exec.js.map +1 -0
  122. package/dist/cli.d.ts +43 -0
  123. package/dist/cli.d.ts.map +1 -0
  124. package/dist/cli.js +186 -0
  125. package/dist/cli.js.map +1 -0
  126. package/dist/client.d.ts +16 -0
  127. package/dist/client.d.ts.map +1 -0
  128. package/dist/client.js +30 -0
  129. package/dist/client.js.map +1 -0
  130. package/dist/closing-keywords.d.ts +28 -0
  131. package/dist/closing-keywords.d.ts.map +1 -0
  132. package/dist/closing-keywords.js +49 -0
  133. package/dist/closing-keywords.js.map +1 -0
  134. package/dist/cloud-run-state.d.ts +27 -0
  135. package/dist/cloud-run-state.d.ts.map +1 -0
  136. package/dist/cloud-run-state.js +36 -0
  137. package/dist/cloud-run-state.js.map +1 -0
  138. package/dist/cloud-scratch-refs.d.ts +85 -0
  139. package/dist/cloud-scratch-refs.d.ts.map +1 -0
  140. package/dist/cloud-scratch-refs.js +275 -0
  141. package/dist/cloud-scratch-refs.js.map +1 -0
  142. package/dist/cloud-work.d.ts +66 -0
  143. package/dist/cloud-work.d.ts.map +1 -0
  144. package/dist/cloud-work.js +204 -0
  145. package/dist/cloud-work.js.map +1 -0
  146. package/dist/config-layers.d.ts +62 -0
  147. package/dist/config-layers.d.ts.map +1 -0
  148. package/dist/config-layers.js +70 -0
  149. package/dist/config-layers.js.map +1 -0
  150. package/dist/config.d.ts +54 -0
  151. package/dist/config.d.ts.map +1 -0
  152. package/dist/config.js +78 -0
  153. package/dist/config.js.map +1 -0
  154. package/dist/consumption-guard.d.ts +53 -0
  155. package/dist/consumption-guard.d.ts.map +1 -0
  156. package/dist/consumption-guard.js +69 -0
  157. package/dist/consumption-guard.js.map +1 -0
  158. package/dist/control.d.ts +75 -0
  159. package/dist/control.d.ts.map +1 -0
  160. package/dist/control.js +68 -0
  161. package/dist/control.js.map +1 -0
  162. package/dist/conversation-commit.d.ts +166 -0
  163. package/dist/conversation-commit.d.ts.map +1 -0
  164. package/dist/conversation-commit.js +309 -0
  165. package/dist/conversation-commit.js.map +1 -0
  166. package/dist/conversations.d.ts +93 -0
  167. package/dist/conversations.d.ts.map +1 -0
  168. package/dist/conversations.js +176 -0
  169. package/dist/conversations.js.map +1 -0
  170. package/dist/daemon-runtime.d.ts +41 -0
  171. package/dist/daemon-runtime.d.ts.map +1 -0
  172. package/dist/daemon-runtime.js +133 -0
  173. package/dist/daemon-runtime.js.map +1 -0
  174. package/dist/daemon-services.d.ts +36 -0
  175. package/dist/daemon-services.d.ts.map +1 -0
  176. package/dist/daemon-services.js +120 -0
  177. package/dist/daemon-services.js.map +1 -0
  178. package/dist/daemon-tick.d.ts +68 -0
  179. package/dist/daemon-tick.d.ts.map +1 -0
  180. package/dist/daemon-tick.js +97 -0
  181. package/dist/daemon-tick.js.map +1 -0
  182. package/dist/daemon-writes.d.ts +33 -0
  183. package/dist/daemon-writes.d.ts.map +1 -0
  184. package/dist/daemon-writes.js +45 -0
  185. package/dist/daemon-writes.js.map +1 -0
  186. package/dist/daemon.d.ts +76 -0
  187. package/dist/daemon.d.ts.map +1 -0
  188. package/dist/daemon.js +225 -0
  189. package/dist/daemon.js.map +1 -0
  190. package/dist/dashboard/activity.d.ts +41 -0
  191. package/dist/dashboard/activity.d.ts.map +1 -0
  192. package/dist/dashboard/activity.js +56 -0
  193. package/dist/dashboard/activity.js.map +1 -0
  194. package/dist/dashboard/agent-handoff.d.ts +244 -0
  195. package/dist/dashboard/agent-handoff.d.ts.map +1 -0
  196. package/dist/dashboard/agent-handoff.js +310 -0
  197. package/dist/dashboard/agent-handoff.js.map +1 -0
  198. package/dist/dashboard/agent-tree.d.ts +106 -0
  199. package/dist/dashboard/agent-tree.d.ts.map +1 -0
  200. package/dist/dashboard/agent-tree.js +180 -0
  201. package/dist/dashboard/agent-tree.js.map +1 -0
  202. package/dist/dashboard/bridge-endpoints.d.ts +158 -0
  203. package/dist/dashboard/bridge-endpoints.d.ts.map +1 -0
  204. package/dist/dashboard/bridge-endpoints.js +382 -0
  205. package/dist/dashboard/bridge-endpoints.js.map +1 -0
  206. package/dist/dashboard/bridge-question.d.ts +33 -0
  207. package/dist/dashboard/bridge-question.d.ts.map +1 -0
  208. package/dist/dashboard/bridge-question.js +20 -0
  209. package/dist/dashboard/bridge-question.js.map +1 -0
  210. package/dist/dashboard/bridge-sessions.d.ts +25 -0
  211. package/dist/dashboard/bridge-sessions.d.ts.map +1 -0
  212. package/dist/dashboard/bridge-sessions.js +46 -0
  213. package/dist/dashboard/bridge-sessions.js.map +1 -0
  214. package/dist/dashboard/bridge-starts.d.ts +61 -0
  215. package/dist/dashboard/bridge-starts.d.ts.map +1 -0
  216. package/dist/dashboard/bridge-starts.js +94 -0
  217. package/dist/dashboard/bridge-starts.js.map +1 -0
  218. package/dist/dashboard/bridge-store.d.ts +179 -0
  219. package/dist/dashboard/bridge-store.d.ts.map +1 -0
  220. package/dist/dashboard/bridge-store.js +262 -0
  221. package/dist/dashboard/bridge-store.js.map +1 -0
  222. package/dist/dashboard/browser-proxy.d.ts +41 -0
  223. package/dist/dashboard/browser-proxy.d.ts.map +1 -0
  224. package/dist/dashboard/browser-proxy.js +96 -0
  225. package/dist/dashboard/browser-proxy.js.map +1 -0
  226. package/dist/dashboard/bundle.d.ts +12 -0
  227. package/dist/dashboard/bundle.d.ts.map +1 -0
  228. package/dist/dashboard/bundle.js +22 -0
  229. package/dist/dashboard/bundle.js.map +1 -0
  230. package/dist/dashboard/cache.d.ts +47 -0
  231. package/dist/dashboard/cache.d.ts.map +1 -0
  232. package/dist/dashboard/cache.js +87 -0
  233. package/dist/dashboard/cache.js.map +1 -0
  234. package/dist/dashboard/content-type.d.ts +3 -0
  235. package/dist/dashboard/content-type.d.ts.map +1 -0
  236. package/dist/dashboard/content-type.js +31 -0
  237. package/dist/dashboard/content-type.js.map +1 -0
  238. package/dist/dashboard/dashboard.d.ts +38 -0
  239. package/dist/dashboard/dashboard.d.ts.map +1 -0
  240. package/dist/dashboard/dashboard.js +42 -0
  241. package/dist/dashboard/dashboard.js.map +1 -0
  242. package/dist/dashboard/discord-webhook.d.ts +17 -0
  243. package/dist/dashboard/discord-webhook.d.ts.map +1 -0
  244. package/dist/dashboard/discord-webhook.js +36 -0
  245. package/dist/dashboard/discord-webhook.js.map +1 -0
  246. package/dist/dashboard/docs.d.ts +39 -0
  247. package/dist/dashboard/docs.d.ts.map +1 -0
  248. package/dist/dashboard/docs.js +59 -0
  249. package/dist/dashboard/docs.js.map +1 -0
  250. package/dist/dashboard/file-diff.d.ts +67 -0
  251. package/dist/dashboard/file-diff.d.ts.map +1 -0
  252. package/dist/dashboard/file-diff.js +132 -0
  253. package/dist/dashboard/file-diff.js.map +1 -0
  254. package/dist/dashboard/file-read.d.ts +42 -0
  255. package/dist/dashboard/file-read.d.ts.map +1 -0
  256. package/dist/dashboard/file-read.js +69 -0
  257. package/dist/dashboard/file-read.js.map +1 -0
  258. package/dist/dashboard/file-status.d.ts +21 -0
  259. package/dist/dashboard/file-status.d.ts.map +1 -0
  260. package/dist/dashboard/file-status.js +37 -0
  261. package/dist/dashboard/file-status.js.map +1 -0
  262. package/dist/dashboard/gh.d.ts +131 -0
  263. package/dist/dashboard/gh.d.ts.map +1 -0
  264. package/dist/dashboard/gh.js +150 -0
  265. package/dist/dashboard/gh.js.map +1 -0
  266. package/dist/dashboard/git-status.d.ts +44 -0
  267. package/dist/dashboard/git-status.d.ts.map +1 -0
  268. package/dist/dashboard/git-status.js +37 -0
  269. package/dist/dashboard/git-status.js.map +1 -0
  270. package/dist/dashboard/github.d.ts +11 -0
  271. package/dist/dashboard/github.d.ts.map +1 -0
  272. package/dist/dashboard/github.js +33 -0
  273. package/dist/dashboard/github.js.map +1 -0
  274. package/dist/dashboard/http.d.ts +29 -0
  275. package/dist/dashboard/http.d.ts.map +1 -0
  276. package/dist/dashboard/http.js +74 -0
  277. package/dist/dashboard/http.js.map +1 -0
  278. package/dist/dashboard/index.d.ts +24 -0
  279. package/dist/dashboard/index.d.ts.map +1 -0
  280. package/dist/dashboard/index.js +23 -0
  281. package/dist/dashboard/index.js.map +1 -0
  282. package/dist/dashboard/interventions.d.ts +67 -0
  283. package/dist/dashboard/interventions.d.ts.map +1 -0
  284. package/dist/dashboard/interventions.js +169 -0
  285. package/dist/dashboard/interventions.js.map +1 -0
  286. package/dist/dashboard/keyed-watcher.d.ts +29 -0
  287. package/dist/dashboard/keyed-watcher.d.ts.map +1 -0
  288. package/dist/dashboard/keyed-watcher.js +42 -0
  289. package/dist/dashboard/keyed-watcher.js.map +1 -0
  290. package/dist/dashboard/keys.d.ts +31 -0
  291. package/dist/dashboard/keys.d.ts.map +1 -0
  292. package/dist/dashboard/keys.js +37 -0
  293. package/dist/dashboard/keys.js.map +1 -0
  294. package/dist/dashboard/models.d.ts +25 -0
  295. package/dist/dashboard/models.d.ts.map +1 -0
  296. package/dist/dashboard/models.js +30 -0
  297. package/dist/dashboard/models.js.map +1 -0
  298. package/dist/dashboard/module-host.d.ts +44 -0
  299. package/dist/dashboard/module-host.d.ts.map +1 -0
  300. package/dist/dashboard/module-host.js +91 -0
  301. package/dist/dashboard/module-host.js.map +1 -0
  302. package/dist/dashboard/module-serve.d.ts +15 -0
  303. package/dist/dashboard/module-serve.d.ts.map +1 -0
  304. package/dist/dashboard/module-serve.js +45 -0
  305. package/dist/dashboard/module-serve.js.map +1 -0
  306. package/dist/dashboard/open-in-app.d.ts +43 -0
  307. package/dist/dashboard/open-in-app.d.ts.map +1 -0
  308. package/dist/dashboard/open-in-app.js +98 -0
  309. package/dist/dashboard/open-in-app.js.map +1 -0
  310. package/dist/dashboard/open-questions.d.ts +45 -0
  311. package/dist/dashboard/open-questions.d.ts.map +1 -0
  312. package/dist/dashboard/open-questions.js +62 -0
  313. package/dist/dashboard/open-questions.js.map +1 -0
  314. package/dist/dashboard/overview.d.ts +78 -0
  315. package/dist/dashboard/overview.d.ts.map +1 -0
  316. package/dist/dashboard/overview.js +87 -0
  317. package/dist/dashboard/overview.js.map +1 -0
  318. package/dist/dashboard/projects.d.ts +100 -0
  319. package/dist/dashboard/projects.d.ts.map +1 -0
  320. package/dist/dashboard/projects.js +63 -0
  321. package/dist/dashboard/projects.js.map +1 -0
  322. package/dist/dashboard/pull-requests.d.ts +127 -0
  323. package/dist/dashboard/pull-requests.d.ts.map +1 -0
  324. package/dist/dashboard/pull-requests.js +137 -0
  325. package/dist/dashboard/pull-requests.js.map +1 -0
  326. package/dist/dashboard/queue.d.ts +17 -0
  327. package/dist/dashboard/queue.d.ts.map +1 -0
  328. package/dist/dashboard/queue.js +19 -0
  329. package/dist/dashboard/queue.js.map +1 -0
  330. package/dist/dashboard/quota.d.ts +53 -0
  331. package/dist/dashboard/quota.d.ts.map +1 -0
  332. package/dist/dashboard/quota.js +42 -0
  333. package/dist/dashboard/quota.js.map +1 -0
  334. package/dist/dashboard/relay-endpoints.d.ts +32 -0
  335. package/dist/dashboard/relay-endpoints.d.ts.map +1 -0
  336. package/dist/dashboard/relay-endpoints.js +115 -0
  337. package/dist/dashboard/relay-endpoints.js.map +1 -0
  338. package/dist/dashboard/remote-run.d.ts +95 -0
  339. package/dist/dashboard/remote-run.d.ts.map +1 -0
  340. package/dist/dashboard/remote-run.js +235 -0
  341. package/dist/dashboard/remote-run.js.map +1 -0
  342. package/dist/dashboard/rpc-serve.d.ts +103 -0
  343. package/dist/dashboard/rpc-serve.d.ts.map +1 -0
  344. package/dist/dashboard/rpc-serve.js +180 -0
  345. package/dist/dashboard/rpc-serve.js.map +1 -0
  346. package/dist/dashboard/run-handoff.d.ts +311 -0
  347. package/dist/dashboard/run-handoff.d.ts.map +1 -0
  348. package/dist/dashboard/run-handoff.js +485 -0
  349. package/dist/dashboard/run-handoff.js.map +1 -0
  350. package/dist/dashboard/run-inbox.d.ts +31 -0
  351. package/dist/dashboard/run-inbox.d.ts.map +1 -0
  352. package/dist/dashboard/run-inbox.js +51 -0
  353. package/dist/dashboard/run-inbox.js.map +1 -0
  354. package/dist/dashboard/scheduler-state.d.ts +73 -0
  355. package/dist/dashboard/scheduler-state.d.ts.map +1 -0
  356. package/dist/dashboard/scheduler-state.js +120 -0
  357. package/dist/dashboard/scheduler-state.js.map +1 -0
  358. package/dist/dashboard/server.d.ts +103 -0
  359. package/dist/dashboard/server.d.ts.map +1 -0
  360. package/dist/dashboard/server.js +230 -0
  361. package/dist/dashboard/server.js.map +1 -0
  362. package/dist/dashboard/static.d.ts +9 -0
  363. package/dist/dashboard/static.d.ts.map +1 -0
  364. package/dist/dashboard/static.js +54 -0
  365. package/dist/dashboard/static.js.map +1 -0
  366. package/dist/dashboard/subagent-settings.d.ts +26 -0
  367. package/dist/dashboard/subagent-settings.d.ts.map +1 -0
  368. package/dist/dashboard/subagent-settings.js +52 -0
  369. package/dist/dashboard/subagent-settings.js.map +1 -0
  370. package/dist/dashboard/telefunc-serve.d.ts +118 -0
  371. package/dist/dashboard/telefunc-serve.d.ts.map +1 -0
  372. package/dist/dashboard/telefunc-serve.js +108 -0
  373. package/dist/dashboard/telefunc-serve.js.map +1 -0
  374. package/dist/dashboard/tickets.d.ts +29 -0
  375. package/dist/dashboard/tickets.d.ts.map +1 -0
  376. package/dist/dashboard/tickets.js +38 -0
  377. package/dist/dashboard/tickets.js.map +1 -0
  378. package/dist/dashboard/types.d.ts +109 -0
  379. package/dist/dashboard/types.d.ts.map +1 -0
  380. package/dist/dashboard/types.js +2 -0
  381. package/dist/dashboard/types.js.map +1 -0
  382. package/dist/dashboard/web-start-endpoints.d.ts +32 -0
  383. package/dist/dashboard/web-start-endpoints.d.ts.map +1 -0
  384. package/dist/dashboard/web-start-endpoints.js +75 -0
  385. package/dist/dashboard/web-start-endpoints.js.map +1 -0
  386. package/dist/dashboard/widget-serve.d.ts +15 -0
  387. package/dist/dashboard/widget-serve.d.ts.map +1 -0
  388. package/dist/dashboard/widget-serve.js +45 -0
  389. package/dist/dashboard/widget-serve.js.map +1 -0
  390. package/dist/dashboard-bundle/assets/client-CbBRB9m4.js +9 -0
  391. package/dist/dashboard-bundle/assets/jsx-runtime-By8HlURe.js +1 -0
  392. package/dist/dashboard-bundle/assets/main-B3HghPQy.css +2 -0
  393. package/dist/dashboard-bundle/assets/main-om0WOAku.js +140 -0
  394. package/dist/dashboard-bundle/assets/module-jASZmfSB.js +21 -0
  395. package/dist/dashboard-bundle/assets/react-CZI7_Jkm.js +1 -0
  396. package/dist/dashboard-bundle/assets/react-dom-cJyBB_A4.js +1 -0
  397. package/dist/dashboard-bundle/assets/rolldown-runtime-QTnfLwEv.js +1 -0
  398. package/dist/dashboard-bundle/host/module.js +1 -0
  399. package/dist/dashboard-bundle/host/react-dom-client.js +1 -0
  400. package/dist/dashboard-bundle/host/react-dom.js +1 -0
  401. package/dist/dashboard-bundle/host/react-jsx-runtime.js +1 -0
  402. package/dist/dashboard-bundle/host/react.js +1 -0
  403. package/dist/dashboard-bundle/index.html +42 -0
  404. package/dist/dashboard-bundle/logo-animated.svg +34 -0
  405. package/dist/dashboard-bundle/logo.svg +16 -0
  406. package/dist/dashboard-client/assets/chunks/chunk-BF9pJudf.js +4 -0
  407. package/dist/dashboard-client/assets/entries/entry-client-routing.CT1e9F0o.js +1 -0
  408. package/dist/dashboard-client/assets/entries/pages_index.CkW5JQ8X.js +428 -0
  409. package/dist/dashboard-client/assets/static/layouts_tailwind-00e65532.8OjKGAbA.css +2 -0
  410. package/dist/dashboard-client/index.html +27 -0
  411. package/dist/dashboard-client/index.pageContext.json +1 -0
  412. package/dist/dashboard-client/logo-animated.svg +34 -0
  413. package/dist/dashboard-client/logo.svg +16 -0
  414. package/dist/dashboard-rpc/context.d.ts +54 -0
  415. package/dist/dashboard-rpc/context.d.ts.map +1 -0
  416. package/dist/dashboard-rpc/context.js +102 -0
  417. package/dist/dashboard-rpc/context.js.map +1 -0
  418. package/dist/dashboard-rpc/control.d.ts +124 -0
  419. package/dist/dashboard-rpc/control.d.ts.map +1 -0
  420. package/dist/dashboard-rpc/control.js +284 -0
  421. package/dist/dashboard-rpc/control.js.map +1 -0
  422. package/dist/dashboard-rpc/control.telefunc.d.ts +176 -0
  423. package/dist/dashboard-rpc/control.telefunc.d.ts.map +1 -0
  424. package/dist/dashboard-rpc/control.telefunc.js +373 -0
  425. package/dist/dashboard-rpc/control.telefunc.js.map +1 -0
  426. package/dist/dashboard-rpc/devices.d.ts +9 -0
  427. package/dist/dashboard-rpc/devices.d.ts.map +1 -0
  428. package/dist/dashboard-rpc/devices.js +12 -0
  429. package/dist/dashboard-rpc/devices.js.map +1 -0
  430. package/dist/dashboard-rpc/devices.telefunc.d.ts +9 -0
  431. package/dist/dashboard-rpc/devices.telefunc.d.ts.map +1 -0
  432. package/dist/dashboard-rpc/devices.telefunc.js +12 -0
  433. package/dist/dashboard-rpc/devices.telefunc.js.map +1 -0
  434. package/dist/dashboard-rpc/events-tail.d.ts +68 -0
  435. package/dist/dashboard-rpc/events-tail.d.ts.map +1 -0
  436. package/dist/dashboard-rpc/events-tail.js +257 -0
  437. package/dist/dashboard-rpc/events-tail.js.map +1 -0
  438. package/dist/dashboard-rpc/events.d.ts +39 -0
  439. package/dist/dashboard-rpc/events.d.ts.map +1 -0
  440. package/dist/dashboard-rpc/events.js +47 -0
  441. package/dist/dashboard-rpc/events.js.map +1 -0
  442. package/dist/dashboard-rpc/events.telefunc.d.ts +36 -0
  443. package/dist/dashboard-rpc/events.telefunc.d.ts.map +1 -0
  444. package/dist/dashboard-rpc/events.telefunc.js +70 -0
  445. package/dist/dashboard-rpc/events.telefunc.js.map +1 -0
  446. package/dist/dashboard-rpc/index.d.ts +29 -0
  447. package/dist/dashboard-rpc/index.d.ts.map +1 -0
  448. package/dist/dashboard-rpc/index.js +40 -0
  449. package/dist/dashboard-rpc/index.js.map +1 -0
  450. package/dist/dashboard-rpc/models.d.ts +4 -0
  451. package/dist/dashboard-rpc/models.d.ts.map +1 -0
  452. package/dist/dashboard-rpc/models.js +8 -0
  453. package/dist/dashboard-rpc/models.js.map +1 -0
  454. package/dist/dashboard-rpc/modules.d.ts +43 -0
  455. package/dist/dashboard-rpc/modules.d.ts.map +1 -0
  456. package/dist/dashboard-rpc/modules.js +77 -0
  457. package/dist/dashboard-rpc/modules.js.map +1 -0
  458. package/dist/dashboard-rpc/preferences.d.ts +41 -0
  459. package/dist/dashboard-rpc/preferences.d.ts.map +1 -0
  460. package/dist/dashboard-rpc/preferences.js +65 -0
  461. package/dist/dashboard-rpc/preferences.js.map +1 -0
  462. package/dist/dashboard-rpc/preferences.telefunc.d.ts +97 -0
  463. package/dist/dashboard-rpc/preferences.telefunc.d.ts.map +1 -0
  464. package/dist/dashboard-rpc/preferences.telefunc.js +157 -0
  465. package/dist/dashboard-rpc/preferences.telefunc.js.map +1 -0
  466. package/dist/dashboard-rpc/projects.d.ts +59 -0
  467. package/dist/dashboard-rpc/projects.d.ts.map +1 -0
  468. package/dist/dashboard-rpc/projects.js +87 -0
  469. package/dist/dashboard-rpc/projects.js.map +1 -0
  470. package/dist/dashboard-rpc/projects.telefunc.d.ts +56 -0
  471. package/dist/dashboard-rpc/projects.telefunc.d.ts.map +1 -0
  472. package/dist/dashboard-rpc/projects.telefunc.js +96 -0
  473. package/dist/dashboard-rpc/projects.telefunc.js.map +1 -0
  474. package/dist/dashboard-rpc/quota.d.ts +4 -0
  475. package/dist/dashboard-rpc/quota.d.ts.map +1 -0
  476. package/dist/dashboard-rpc/quota.js +15 -0
  477. package/dist/dashboard-rpc/quota.js.map +1 -0
  478. package/dist/dashboard-rpc/quota.telefunc.d.ts +40 -0
  479. package/dist/dashboard-rpc/quota.telefunc.d.ts.map +1 -0
  480. package/dist/dashboard-rpc/quota.telefunc.js +84 -0
  481. package/dist/dashboard-rpc/quota.telefunc.js.map +1 -0
  482. package/dist/dashboard-rpc/reads.d.ts +185 -0
  483. package/dist/dashboard-rpc/reads.d.ts.map +1 -0
  484. package/dist/dashboard-rpc/reads.js +370 -0
  485. package/dist/dashboard-rpc/reads.js.map +1 -0
  486. package/dist/dashboard-rpc/reads.telefunc.d.ts +197 -0
  487. package/dist/dashboard-rpc/reads.telefunc.d.ts.map +1 -0
  488. package/dist/dashboard-rpc/reads.telefunc.js +403 -0
  489. package/dist/dashboard-rpc/reads.telefunc.js.map +1 -0
  490. package/dist/dashboard-rpc/register.d.ts +18 -0
  491. package/dist/dashboard-rpc/register.d.ts.map +1 -0
  492. package/dist/dashboard-rpc/register.js +66 -0
  493. package/dist/dashboard-rpc/register.js.map +1 -0
  494. package/dist/dashboard-rpc/relay-agent.d.ts +9 -0
  495. package/dist/dashboard-rpc/relay-agent.d.ts.map +1 -0
  496. package/dist/dashboard-rpc/relay-agent.js +21 -0
  497. package/dist/dashboard-rpc/relay-agent.js.map +1 -0
  498. package/dist/dashboard-rpc/relay-dispatch.d.ts +9 -0
  499. package/dist/dashboard-rpc/relay-dispatch.d.ts.map +1 -0
  500. package/dist/dashboard-rpc/relay-dispatch.js +24 -0
  501. package/dist/dashboard-rpc/relay-dispatch.js.map +1 -0
  502. package/dist/dashboard-rpc/relay-run.d.ts +9 -0
  503. package/dist/dashboard-rpc/relay-run.d.ts.map +1 -0
  504. package/dist/dashboard-rpc/relay-run.js +21 -0
  505. package/dist/dashboard-rpc/relay-run.js.map +1 -0
  506. package/dist/dashboard-rpc/stream-channel.d.ts +23 -0
  507. package/dist/dashboard-rpc/stream-channel.d.ts.map +1 -0
  508. package/dist/dashboard-rpc/stream-channel.js +52 -0
  509. package/dist/dashboard-rpc/stream-channel.js.map +1 -0
  510. package/dist/dashboard-rpc/stream-forward.d.ts +17 -0
  511. package/dist/dashboard-rpc/stream-forward.d.ts.map +1 -0
  512. package/dist/dashboard-rpc/stream-forward.js +38 -0
  513. package/dist/dashboard-rpc/stream-forward.js.map +1 -0
  514. package/dist/dashboard-rpc/subagents.d.ts +12 -0
  515. package/dist/dashboard-rpc/subagents.d.ts.map +1 -0
  516. package/dist/dashboard-rpc/subagents.js +13 -0
  517. package/dist/dashboard-rpc/subagents.js.map +1 -0
  518. package/dist/dashboard-rpc/test-context.d.ts +23 -0
  519. package/dist/dashboard-rpc/test-context.d.ts.map +1 -0
  520. package/dist/dashboard-rpc/test-context.js +42 -0
  521. package/dist/dashboard-rpc/test-context.js.map +1 -0
  522. package/dist/dashboard-rpc/widgets.d.ts +33 -0
  523. package/dist/dashboard-rpc/widgets.d.ts.map +1 -0
  524. package/dist/dashboard-rpc/widgets.js +54 -0
  525. package/dist/dashboard-rpc/widgets.js.map +1 -0
  526. package/dist/data-branch.d.ts +120 -0
  527. package/dist/data-branch.d.ts.map +1 -0
  528. package/dist/data-branch.js +319 -0
  529. package/dist/data-branch.js.map +1 -0
  530. package/dist/discord/bot.d.ts +61 -0
  531. package/dist/discord/bot.d.ts.map +1 -0
  532. package/dist/discord/bot.js +94 -0
  533. package/dist/discord/bot.js.map +1 -0
  534. package/dist/discord/gateway.d.ts +137 -0
  535. package/dist/discord/gateway.d.ts.map +1 -0
  536. package/dist/discord/gateway.js +315 -0
  537. package/dist/discord/gateway.js.map +1 -0
  538. package/dist/discord/live-run.d.ts +31 -0
  539. package/dist/discord/live-run.d.ts.map +1 -0
  540. package/dist/discord/live-run.js +57 -0
  541. package/dist/discord/live-run.js.map +1 -0
  542. package/dist/discord/reply-mirror.d.ts +83 -0
  543. package/dist/discord/reply-mirror.d.ts.map +1 -0
  544. package/dist/discord/reply-mirror.js +84 -0
  545. package/dist/discord/reply-mirror.js.map +1 -0
  546. package/dist/discord/rest.d.ts +20 -0
  547. package/dist/discord/rest.d.ts.map +1 -0
  548. package/dist/discord/rest.js +41 -0
  549. package/dist/discord/rest.js.map +1 -0
  550. package/dist/discord/routing.d.ts +81 -0
  551. package/dist/discord/routing.d.ts.map +1 -0
  552. package/dist/discord/routing.js +91 -0
  553. package/dist/discord/routing.js.map +1 -0
  554. package/dist/discord-credentials-store.d.ts +14 -0
  555. package/dist/discord-credentials-store.d.ts.map +1 -0
  556. package/dist/discord-credentials-store.js +53 -0
  557. package/dist/discord-credentials-store.js.map +1 -0
  558. package/dist/discord-credentials.d.ts +80 -0
  559. package/dist/discord-credentials.d.ts.map +1 -0
  560. package/dist/discord-credentials.js +55 -0
  561. package/dist/discord-credentials.js.map +1 -0
  562. package/dist/driver/actions-zip.d.ts +2 -0
  563. package/dist/driver/actions-zip.d.ts.map +1 -0
  564. package/dist/driver/actions-zip.js +70 -0
  565. package/dist/driver/actions-zip.js.map +1 -0
  566. package/dist/driver/actions.d.ts +130 -0
  567. package/dist/driver/actions.d.ts.map +1 -0
  568. package/dist/driver/actions.js +261 -0
  569. package/dist/driver/actions.js.map +1 -0
  570. package/dist/driver/agent-cli.d.ts +57 -0
  571. package/dist/driver/agent-cli.d.ts.map +1 -0
  572. package/dist/driver/agent-cli.js +134 -0
  573. package/dist/driver/agent-cli.js.map +1 -0
  574. package/dist/driver/child-registry.d.ts +25 -0
  575. package/dist/driver/child-registry.d.ts.map +1 -0
  576. package/dist/driver/child-registry.js +53 -0
  577. package/dist/driver/child-registry.js.map +1 -0
  578. package/dist/driver/claude-code-quota.d.ts +40 -0
  579. package/dist/driver/claude-code-quota.d.ts.map +1 -0
  580. package/dist/driver/claude-code-quota.js +144 -0
  581. package/dist/driver/claude-code-quota.js.map +1 -0
  582. package/dist/driver/claude-code.d.ts +104 -0
  583. package/dist/driver/claude-code.d.ts.map +1 -0
  584. package/dist/driver/claude-code.js +314 -0
  585. package/dist/driver/claude-code.js.map +1 -0
  586. package/dist/driver/cli-session.d.ts +57 -0
  587. package/dist/driver/cli-session.d.ts.map +1 -0
  588. package/dist/driver/cli-session.js +134 -0
  589. package/dist/driver/cli-session.js.map +1 -0
  590. package/dist/driver/cloud.d.ts +109 -0
  591. package/dist/driver/cloud.d.ts.map +1 -0
  592. package/dist/driver/cloud.js +232 -0
  593. package/dist/driver/cloud.js.map +1 -0
  594. package/dist/driver/codex.d.ts +99 -0
  595. package/dist/driver/codex.d.ts.map +1 -0
  596. package/dist/driver/codex.js +190 -0
  597. package/dist/driver/codex.js.map +1 -0
  598. package/dist/driver/fake.d.ts +54 -0
  599. package/dist/driver/fake.d.ts.map +1 -0
  600. package/dist/driver/fake.js +73 -0
  601. package/dist/driver/fake.js.map +1 -0
  602. package/dist/driver/index.d.ts +10 -0
  603. package/dist/driver/index.d.ts.map +1 -0
  604. package/dist/driver/index.js +14 -0
  605. package/dist/driver/index.js.map +1 -0
  606. package/dist/driver/session-support.d.ts +14 -0
  607. package/dist/driver/session-support.d.ts.map +1 -0
  608. package/dist/driver/session-support.js +37 -0
  609. package/dist/driver/session-support.js.map +1 -0
  610. package/dist/driver/types.d.ts +310 -0
  611. package/dist/driver/types.d.ts.map +1 -0
  612. package/dist/driver/types.js +5 -0
  613. package/dist/driver/types.js.map +1 -0
  614. package/dist/driver-cli.d.ts +61 -0
  615. package/dist/driver-cli.d.ts.map +1 -0
  616. package/dist/driver-cli.js +66 -0
  617. package/dist/driver-cli.js.map +1 -0
  618. package/dist/driver-names.d.ts +22 -0
  619. package/dist/driver-names.d.ts.map +1 -0
  620. package/dist/driver-names.js +29 -0
  621. package/dist/driver-names.js.map +1 -0
  622. package/dist/error-message.d.ts +8 -0
  623. package/dist/error-message.d.ts.map +1 -0
  624. package/dist/error-message.js +10 -0
  625. package/dist/error-message.js.map +1 -0
  626. package/dist/event-stream.d.ts +33 -0
  627. package/dist/event-stream.d.ts.map +1 -0
  628. package/dist/event-stream.js +104 -0
  629. package/dist/event-stream.js.map +1 -0
  630. package/dist/events.d.ts +236 -0
  631. package/dist/events.d.ts.map +1 -0
  632. package/dist/events.js +5 -0
  633. package/dist/events.js.map +1 -0
  634. package/dist/fake-script.d.ts +15 -0
  635. package/dist/fake-script.d.ts.map +1 -0
  636. package/dist/fake-script.js +58 -0
  637. package/dist/fake-script.js.map +1 -0
  638. package/dist/format-bytes.d.ts +3 -0
  639. package/dist/format-bytes.d.ts.map +1 -0
  640. package/dist/format-bytes.js +18 -0
  641. package/dist/format-bytes.js.map +1 -0
  642. package/dist/framework-dir.d.ts +11 -0
  643. package/dist/framework-dir.d.ts.map +1 -0
  644. package/dist/framework-dir.js +11 -0
  645. package/dist/framework-dir.js.map +1 -0
  646. package/dist/framework-gitignore.d.ts +12 -0
  647. package/dist/framework-gitignore.d.ts.map +1 -0
  648. package/dist/framework-gitignore.js +19 -0
  649. package/dist/framework-gitignore.js.map +1 -0
  650. package/dist/gate-keepalive.d.ts +47 -0
  651. package/dist/gate-keepalive.d.ts.map +1 -0
  652. package/dist/gate-keepalive.js +62 -0
  653. package/dist/gate-keepalive.js.map +1 -0
  654. package/dist/git-exclude.d.ts +11 -0
  655. package/dist/git-exclude.d.ts.map +1 -0
  656. package/dist/git-exclude.js +23 -0
  657. package/dist/git-exclude.js.map +1 -0
  658. package/dist/handoff-level.d.ts +56 -0
  659. package/dist/handoff-level.d.ts.map +1 -0
  660. package/dist/handoff-level.js +62 -0
  661. package/dist/handoff-level.js.map +1 -0
  662. package/dist/has-remote.d.ts +8 -0
  663. package/dist/has-remote.d.ts.map +1 -0
  664. package/dist/has-remote.js +10 -0
  665. package/dist/has-remote.js.map +1 -0
  666. package/dist/host-exec.d.ts +21 -0
  667. package/dist/host-exec.d.ts.map +1 -0
  668. package/dist/host-exec.js +30 -0
  669. package/dist/host-exec.js.map +1 -0
  670. package/dist/index.d.ts +41 -0
  671. package/dist/index.d.ts.map +1 -0
  672. package/dist/index.js +16 -0
  673. package/dist/index.js.map +1 -0
  674. package/dist/install.d.ts +29 -0
  675. package/dist/install.d.ts.map +1 -0
  676. package/dist/install.js +40 -0
  677. package/dist/install.js.map +1 -0
  678. package/dist/jsonl-tail.d.ts +59 -0
  679. package/dist/jsonl-tail.d.ts.map +1 -0
  680. package/dist/jsonl-tail.js +152 -0
  681. package/dist/jsonl-tail.js.map +1 -0
  682. package/dist/layout.d.ts +41 -0
  683. package/dist/layout.d.ts.map +1 -0
  684. package/dist/layout.js +69 -0
  685. package/dist/layout.js.map +1 -0
  686. package/dist/logs.d.ts +73 -0
  687. package/dist/logs.d.ts.map +1 -0
  688. package/dist/logs.js +218 -0
  689. package/dist/logs.js.map +1 -0
  690. package/dist/loopback-host.d.ts +20 -0
  691. package/dist/loopback-host.d.ts.map +1 -0
  692. package/dist/loopback-host.js +31 -0
  693. package/dist/loopback-host.js.map +1 -0
  694. package/dist/maintenance.d.ts +90 -0
  695. package/dist/maintenance.d.ts.map +1 -0
  696. package/dist/maintenance.js +141 -0
  697. package/dist/maintenance.js.map +1 -0
  698. package/dist/merged-worktrees.d.ts +74 -0
  699. package/dist/merged-worktrees.d.ts.map +1 -0
  700. package/dist/merged-worktrees.js +84 -0
  701. package/dist/merged-worktrees.js.map +1 -0
  702. package/dist/module-server.d.ts +56 -0
  703. package/dist/module-types/dashboard/components/DiffStat.d.ts +6 -0
  704. package/dist/module-types/dashboard/components/DriverModelMenu.d.ts +23 -0
  705. package/dist/module-types/dashboard/components/LinkActions.d.ts +26 -0
  706. package/dist/module-types/dashboard/components/Markdown.d.ts +4 -0
  707. package/dist/module-types/dashboard/components/SettingsRows.d.ts +37 -0
  708. package/dist/module-types/dashboard/components/StartAgentButton.d.ts +39 -0
  709. package/dist/module-types/dashboard/components/ui/badge.d.ts +2 -0
  710. package/dist/module-types/dashboard/components/ui/button.d.ts +10 -0
  711. package/dist/module-types/dashboard/components/ui/card.d.ts +5 -0
  712. package/dist/module-types/dashboard/components/ui/checkbox.d.ts +7 -0
  713. package/dist/module-types/dashboard/components/ui/dropdown-menu.d.ts +16 -0
  714. package/dist/module-types/dashboard/components/ui/input.d.ts +2 -0
  715. package/dist/module-types/dashboard/components/ui/option-label.d.ts +4 -0
  716. package/dist/module-types/dashboard/components/ui/popover.d.ts +8 -0
  717. package/dist/module-types/dashboard/components/ui/scroll-area.d.ts +10 -0
  718. package/dist/module-types/dashboard/components/ui/separator.d.ts +3 -0
  719. package/dist/module-types/dashboard/components/ui/skeleton.d.ts +2 -0
  720. package/dist/module-types/dashboard/components/ui/slider.d.ts +9 -0
  721. package/dist/module-types/dashboard/components/ui/tooltip.d.ts +11 -0
  722. package/dist/module-types/dashboard/lib/agent-settings.d.ts +2 -0
  723. package/dist/module-types/dashboard/lib/draft-handoff.d.ts +15 -0
  724. package/dist/module-types/dashboard/lib/format-date.d.ts +51 -0
  725. package/dist/module-types/dashboard/lib/host-services.d.ts +12 -0
  726. package/dist/module-types/dashboard/lib/models.d.ts +24 -0
  727. package/dist/module-types/dashboard/lib/route.d.ts +37 -0
  728. package/dist/module-types/dashboard/lib/rpc.d.ts +31 -0
  729. package/dist/module-types/dashboard/lib/use-action.d.ts +25 -0
  730. package/dist/module-types/dashboard/lib/use-async.d.ts +45 -0
  731. package/dist/module-types/dashboard/lib/use-modules.d.ts +78 -0
  732. package/dist/module-types/dashboard/lib/utils.d.ts +3 -0
  733. package/dist/module-types/dashboard/module/index.d.ts +335 -0
  734. package/dist/module-types/dashboard/rpc/models.d.ts +2 -0
  735. package/dist/module-types/dashboard/rpc/modules.d.ts +5 -0
  736. package/dist/module-types/src/agent-id.d.ts +12 -0
  737. package/dist/module-types/src/agent-locks.d.ts +2 -0
  738. package/dist/module-types/src/agent-view.d.ts +38 -0
  739. package/dist/module-types/src/bridge-browser.d.ts +216 -0
  740. package/dist/module-types/src/browser-stream.d.ts +19 -0
  741. package/dist/module-types/src/browser.d.ts +15 -0
  742. package/dist/module-types/src/built-in.d.ts +28 -0
  743. package/dist/module-types/src/client.d.ts +15 -0
  744. package/dist/module-types/src/cloud-run-state.d.ts +26 -0
  745. package/dist/module-types/src/dashboard/activity.d.ts +40 -0
  746. package/dist/module-types/src/dashboard/agent-handoff.d.ts +243 -0
  747. package/dist/module-types/src/dashboard/agent-tree.d.ts +105 -0
  748. package/dist/module-types/src/dashboard/bridge-endpoints.d.ts +157 -0
  749. package/dist/module-types/src/dashboard/bridge-question.d.ts +32 -0
  750. package/dist/module-types/src/dashboard/bridge-store.d.ts +178 -0
  751. package/dist/module-types/src/dashboard/cache.d.ts +46 -0
  752. package/dist/module-types/src/dashboard/content-type.d.ts +2 -0
  753. package/dist/module-types/src/dashboard/dashboard.d.ts +37 -0
  754. package/dist/module-types/src/dashboard/docs.d.ts +38 -0
  755. package/dist/module-types/src/dashboard/file-diff.d.ts +66 -0
  756. package/dist/module-types/src/dashboard/file-read.d.ts +41 -0
  757. package/dist/module-types/src/dashboard/file-status.d.ts +20 -0
  758. package/dist/module-types/src/dashboard/git-status.d.ts +43 -0
  759. package/dist/module-types/src/dashboard/http.d.ts +28 -0
  760. package/dist/module-types/src/dashboard/interventions.d.ts +66 -0
  761. package/dist/module-types/src/dashboard/keyed-watcher.d.ts +28 -0
  762. package/dist/module-types/src/dashboard/keys.d.ts +30 -0
  763. package/dist/module-types/src/dashboard/models.d.ts +24 -0
  764. package/dist/module-types/src/dashboard/module-host.d.ts +43 -0
  765. package/dist/module-types/src/dashboard/module-serve.d.ts +14 -0
  766. package/dist/module-types/src/dashboard/open-in-app.d.ts +42 -0
  767. package/dist/module-types/src/dashboard/open-questions.d.ts +44 -0
  768. package/dist/module-types/src/dashboard/overview.d.ts +77 -0
  769. package/dist/module-types/src/dashboard/projects.d.ts +99 -0
  770. package/dist/module-types/src/dashboard/pull-requests.d.ts +126 -0
  771. package/dist/module-types/src/dashboard/queue.d.ts +16 -0
  772. package/dist/module-types/src/dashboard/quota.d.ts +52 -0
  773. package/dist/module-types/src/dashboard/remote-run.d.ts +94 -0
  774. package/dist/module-types/src/dashboard/rpc-serve.d.ts +102 -0
  775. package/dist/module-types/src/dashboard/run-inbox.d.ts +30 -0
  776. package/dist/module-types/src/dashboard/scheduler-state.d.ts +72 -0
  777. package/dist/module-types/src/dashboard/subagent-settings.d.ts +25 -0
  778. package/dist/module-types/src/dashboard/types.d.ts +108 -0
  779. package/dist/module-types/src/dashboard-rpc/context.d.ts +53 -0
  780. package/dist/module-types/src/dashboard-rpc/control.d.ts +123 -0
  781. package/dist/module-types/src/dashboard-rpc/devices.d.ts +8 -0
  782. package/dist/module-types/src/dashboard-rpc/events-tail.d.ts +67 -0
  783. package/dist/module-types/src/dashboard-rpc/events.d.ts +38 -0
  784. package/dist/module-types/src/dashboard-rpc/index.d.ts +28 -0
  785. package/dist/module-types/src/dashboard-rpc/models.d.ts +3 -0
  786. package/dist/module-types/src/dashboard-rpc/modules.d.ts +42 -0
  787. package/dist/module-types/src/dashboard-rpc/preferences.d.ts +40 -0
  788. package/dist/module-types/src/dashboard-rpc/projects.d.ts +58 -0
  789. package/dist/module-types/src/dashboard-rpc/quota.d.ts +3 -0
  790. package/dist/module-types/src/dashboard-rpc/reads.d.ts +184 -0
  791. package/dist/module-types/src/dashboard-rpc/relay-agent.d.ts +8 -0
  792. package/dist/module-types/src/dashboard-rpc/stream-forward.d.ts +16 -0
  793. package/dist/module-types/src/dashboard-rpc/subagents.d.ts +11 -0
  794. package/dist/module-types/src/driver-names.d.ts +21 -0
  795. package/dist/module-types/src/error-message.d.ts +7 -0
  796. package/dist/module-types/src/event-stream.d.ts +32 -0
  797. package/dist/module-types/src/events.d.ts +235 -0
  798. package/dist/module-types/src/format-bytes.d.ts +2 -0
  799. package/dist/module-types/src/framework-dir.d.ts +10 -0
  800. package/dist/module-types/src/framework-gitignore.d.ts +11 -0
  801. package/dist/module-types/src/has-remote.d.ts +7 -0
  802. package/dist/module-types/src/index.d.ts +40 -0
  803. package/dist/module-types/src/jsonl-tail.d.ts +58 -0
  804. package/dist/module-types/src/loopback-host.d.ts +19 -0
  805. package/dist/module-types/src/node-fs.d.ts +32 -0
  806. package/dist/module-types/src/open-choices.d.ts +14 -0
  807. package/dist/module-types/src/pick-directory.d.ts +29 -0
  808. package/dist/module-types/src/preference-defaults.d.ts +42 -0
  809. package/dist/module-types/src/project-commands.d.ts +23 -0
  810. package/dist/module-types/src/project-errors.d.ts +55 -0
  811. package/dist/module-types/src/project-hooks.d.ts +129 -0
  812. package/dist/module-types/src/project-modules.d.ts +49 -0
  813. package/dist/module-types/src/project-presets.d.ts +29 -0
  814. package/dist/module-types/src/project.d.ts +28 -0
  815. package/dist/module-types/src/publish-levels.d.ts +32 -0
  816. package/dist/module-types/src/quota-boundary.d.ts +64 -0
  817. package/dist/module-types/src/quota-poller.d.ts +82 -0
  818. package/dist/module-types/src/registry.d.ts +220 -0
  819. package/dist/module-types/src/store/agent-checkout.d.ts +53 -0
  820. package/dist/module-types/src/store/agent-store.d.ts +266 -0
  821. package/dist/module-types/src/store/branches.d.ts +163 -0
  822. package/dist/module-types/src/store/git-host.d.ts +113 -0
  823. package/dist/module-types/src/store/index.d.ts +9 -0
  824. package/dist/module-types/src/store/provided.d.ts +16 -0
  825. package/dist/module-types/src/store/queue.d.ts +45 -0
  826. package/dist/module-types/src/store/repository.d.ts +32 -0
  827. package/dist/module-types/src/store/run-record.d.ts +21 -0
  828. package/dist/module-types/src/store/runs.d.ts +107 -0
  829. package/dist/module-types/src/store/tickets.d.ts +72 -0
  830. package/dist/module-types/src/subagent-settings.d.ts +26 -0
  831. package/dist/module-types/src/terminal.d.ts +3 -0
  832. package/dist/module-types/src/worktrees.d.ts +89 -0
  833. package/dist/module.css +50 -0
  834. package/dist/node-fs.d.ts +33 -0
  835. package/dist/node-fs.d.ts.map +1 -0
  836. package/dist/node-fs.js +57 -0
  837. package/dist/node-fs.js.map +1 -0
  838. package/dist/on-before-mergeable-prompt.d.ts +32 -0
  839. package/dist/on-before-mergeable-prompt.d.ts.map +1 -0
  840. package/dist/on-before-mergeable-prompt.js +26 -0
  841. package/dist/on-before-mergeable-prompt.js.map +1 -0
  842. package/dist/open-choices.d.ts +15 -0
  843. package/dist/open-choices.d.ts.map +1 -0
  844. package/dist/open-choices.js +31 -0
  845. package/dist/open-choices.js.map +1 -0
  846. package/dist/pick-directory.d.ts +30 -0
  847. package/dist/pick-directory.d.ts.map +1 -0
  848. package/dist/pick-directory.js +102 -0
  849. package/dist/pick-directory.js.map +1 -0
  850. package/dist/planned-quick-wins.d.ts +102 -0
  851. package/dist/planned-quick-wins.d.ts.map +1 -0
  852. package/dist/planned-quick-wins.js +171 -0
  853. package/dist/planned-quick-wins.js.map +1 -0
  854. package/dist/preference-defaults.d.ts +43 -0
  855. package/dist/preference-defaults.d.ts.map +1 -0
  856. package/dist/preference-defaults.js +34 -0
  857. package/dist/preference-defaults.js.map +1 -0
  858. package/dist/preflight.d.ts +77 -0
  859. package/dist/preflight.d.ts.map +1 -0
  860. package/dist/preflight.js +91 -0
  861. package/dist/preflight.js.map +1 -0
  862. package/dist/preset-catalog.d.ts +98 -0
  863. package/dist/preset-catalog.d.ts.map +1 -0
  864. package/dist/preset-catalog.js +129 -0
  865. package/dist/preset-catalog.js.map +1 -0
  866. package/dist/preset-prompt.d.ts +81 -0
  867. package/dist/preset-prompt.d.ts.map +1 -0
  868. package/dist/preset-prompt.js +51 -0
  869. package/dist/preset-prompt.js.map +1 -0
  870. package/dist/preset-registry.d.ts +32 -0
  871. package/dist/preset-registry.d.ts.map +1 -0
  872. package/dist/preset-registry.js +35 -0
  873. package/dist/preset-registry.js.map +1 -0
  874. package/dist/presets.d.ts +20 -0
  875. package/dist/presets.d.ts.map +1 -0
  876. package/dist/presets.js +33 -0
  877. package/dist/presets.js.map +1 -0
  878. package/dist/preview-runtime.d.ts +33 -0
  879. package/dist/preview-runtime.d.ts.map +1 -0
  880. package/dist/preview-runtime.js +96 -0
  881. package/dist/preview-runtime.js.map +1 -0
  882. package/dist/preview.d.ts +78 -0
  883. package/dist/preview.d.ts.map +1 -0
  884. package/dist/preview.js +301 -0
  885. package/dist/preview.js.map +1 -0
  886. package/dist/project-commands.d.ts +24 -0
  887. package/dist/project-commands.d.ts.map +1 -0
  888. package/dist/project-commands.js +57 -0
  889. package/dist/project-commands.js.map +1 -0
  890. package/dist/project-errors.d.ts +56 -0
  891. package/dist/project-errors.d.ts.map +1 -0
  892. package/dist/project-errors.js +49 -0
  893. package/dist/project-errors.js.map +1 -0
  894. package/dist/project-hooks.d.ts +130 -0
  895. package/dist/project-hooks.d.ts.map +1 -0
  896. package/dist/project-hooks.js +232 -0
  897. package/dist/project-hooks.js.map +1 -0
  898. package/dist/project-modules.d.ts +50 -0
  899. package/dist/project-modules.d.ts.map +1 -0
  900. package/dist/project-modules.js +110 -0
  901. package/dist/project-modules.js.map +1 -0
  902. package/dist/project-pass.d.ts +32 -0
  903. package/dist/project-pass.d.ts.map +1 -0
  904. package/dist/project-pass.js +45 -0
  905. package/dist/project-pass.js.map +1 -0
  906. package/dist/project-presets.d.ts +30 -0
  907. package/dist/project-presets.d.ts.map +1 -0
  908. package/dist/project-presets.js +74 -0
  909. package/dist/project-presets.js.map +1 -0
  910. package/dist/project-widgets.d.ts +46 -0
  911. package/dist/project-widgets.d.ts.map +1 -0
  912. package/dist/project-widgets.js +93 -0
  913. package/dist/project-widgets.js.map +1 -0
  914. package/dist/project.d.ts +29 -0
  915. package/dist/project.d.ts.map +1 -0
  916. package/dist/project.js +41 -0
  917. package/dist/project.js.map +1 -0
  918. package/dist/prompt-run.d.ts +104 -0
  919. package/dist/prompt-run.d.ts.map +1 -0
  920. package/dist/prompt-run.js +112 -0
  921. package/dist/prompt-run.js.map +1 -0
  922. package/dist/prompt-template.d.ts +16 -0
  923. package/dist/prompt-template.d.ts.map +1 -0
  924. package/dist/prompt-template.js +56 -0
  925. package/dist/prompt-template.js.map +1 -0
  926. package/dist/prompts.generated.d.ts +53 -0
  927. package/dist/prompts.generated.d.ts.map +1 -0
  928. package/dist/prompts.generated.js +55 -0
  929. package/dist/prompts.generated.js.map +1 -0
  930. package/dist/publish-levels.d.ts +33 -0
  931. package/dist/publish-levels.d.ts.map +1 -0
  932. package/dist/publish-levels.js +51 -0
  933. package/dist/publish-levels.js.map +1 -0
  934. package/dist/queue-promote.d.ts +70 -0
  935. package/dist/queue-promote.d.ts.map +1 -0
  936. package/dist/queue-promote.js +118 -0
  937. package/dist/queue-promote.js.map +1 -0
  938. package/dist/quota-boundary.d.ts +65 -0
  939. package/dist/quota-boundary.d.ts.map +1 -0
  940. package/dist/quota-boundary.js +135 -0
  941. package/dist/quota-boundary.js.map +1 -0
  942. package/dist/quota-poller.d.ts +83 -0
  943. package/dist/quota-poller.d.ts.map +1 -0
  944. package/dist/quota-poller.js +118 -0
  945. package/dist/quota-poller.js.map +1 -0
  946. package/dist/registry.d.ts +221 -0
  947. package/dist/registry.d.ts.map +1 -0
  948. package/dist/registry.js +348 -0
  949. package/dist/registry.js.map +1 -0
  950. package/dist/relay.d.ts +84 -0
  951. package/dist/relay.d.ts.map +1 -0
  952. package/dist/relay.js +199 -0
  953. package/dist/relay.js.map +1 -0
  954. package/dist/repos-directory.d.ts +19 -0
  955. package/dist/repos-directory.d.ts.map +1 -0
  956. package/dist/repos-directory.js +23 -0
  957. package/dist/repos-directory.js.map +1 -0
  958. package/dist/request-path.d.ts +10 -0
  959. package/dist/request-path.d.ts.map +1 -0
  960. package/dist/request-path.js +16 -0
  961. package/dist/request-path.js.map +1 -0
  962. package/dist/retired-project-settings.d.ts +43 -0
  963. package/dist/retired-project-settings.d.ts.map +1 -0
  964. package/dist/retired-project-settings.js +125 -0
  965. package/dist/retired-project-settings.js.map +1 -0
  966. package/dist/routine-locks.d.ts +53 -0
  967. package/dist/routine-locks.d.ts.map +1 -0
  968. package/dist/routine-locks.js +125 -0
  969. package/dist/routine-locks.js.map +1 -0
  970. package/dist/run-driver.d.ts +26 -0
  971. package/dist/run-driver.d.ts.map +1 -0
  972. package/dist/run-driver.js +17 -0
  973. package/dist/run-driver.js.map +1 -0
  974. package/dist/run-locks.d.ts +3 -0
  975. package/dist/run-locks.d.ts.map +1 -0
  976. package/dist/run-locks.js +39 -0
  977. package/dist/run-locks.js.map +1 -0
  978. package/dist/run-messages.d.ts +64 -0
  979. package/dist/run-messages.d.ts.map +1 -0
  980. package/dist/run-messages.js +76 -0
  981. package/dist/run-messages.js.map +1 -0
  982. package/dist/run-options.d.ts +53 -0
  983. package/dist/run-options.d.ts.map +1 -0
  984. package/dist/run-options.js +110 -0
  985. package/dist/run-options.js.map +1 -0
  986. package/dist/run-telemetry.d.ts +115 -0
  987. package/dist/run-telemetry.d.ts.map +1 -0
  988. package/dist/run-telemetry.js +137 -0
  989. package/dist/run-telemetry.js.map +1 -0
  990. package/dist/run-view.d.ts +109 -0
  991. package/dist/run-view.d.ts.map +1 -0
  992. package/dist/run-view.js +118 -0
  993. package/dist/run-view.js.map +1 -0
  994. package/dist/run.d.ts +261 -0
  995. package/dist/run.d.ts.map +1 -0
  996. package/dist/run.js +420 -0
  997. package/dist/run.js.map +1 -0
  998. package/dist/runtime-keys.d.ts +17 -0
  999. package/dist/runtime-keys.d.ts.map +1 -0
  1000. package/dist/runtime-keys.js +17 -0
  1001. package/dist/runtime-keys.js.map +1 -0
  1002. package/dist/sandbox.d.ts +27 -0
  1003. package/dist/sandbox.d.ts.map +1 -0
  1004. package/dist/sandbox.js +63 -0
  1005. package/dist/sandbox.js.map +1 -0
  1006. package/dist/session-link.d.ts +19 -0
  1007. package/dist/session-link.d.ts.map +1 -0
  1008. package/dist/session-link.js +26 -0
  1009. package/dist/session-link.js.map +1 -0
  1010. package/dist/sessions.d.ts +77 -0
  1011. package/dist/sessions.d.ts.map +1 -0
  1012. package/dist/sessions.js +146 -0
  1013. package/dist/sessions.js.map +1 -0
  1014. package/dist/spike-locks.d.ts +75 -0
  1015. package/dist/spike-locks.d.ts.map +1 -0
  1016. package/dist/spike-locks.js +208 -0
  1017. package/dist/spike-locks.js.map +1 -0
  1018. package/dist/stale-branch.d.ts +21 -0
  1019. package/dist/stale-branch.d.ts.map +1 -0
  1020. package/dist/stale-branch.js +32 -0
  1021. package/dist/stale-branch.js.map +1 -0
  1022. package/dist/steps.d.ts +9 -0
  1023. package/dist/steps.d.ts.map +1 -0
  1024. package/dist/steps.js +13 -0
  1025. package/dist/steps.js.map +1 -0
  1026. package/dist/store/agent-checkout.d.ts +54 -0
  1027. package/dist/store/agent-checkout.d.ts.map +1 -0
  1028. package/dist/store/agent-checkout.js +61 -0
  1029. package/dist/store/agent-checkout.js.map +1 -0
  1030. package/dist/store/agent-store.d.ts +267 -0
  1031. package/dist/store/agent-store.d.ts.map +1 -0
  1032. package/dist/store/agent-store.js +190 -0
  1033. package/dist/store/agent-store.js.map +1 -0
  1034. package/dist/store/branches.d.ts +164 -0
  1035. package/dist/store/branches.d.ts.map +1 -0
  1036. package/dist/store/branches.js +187 -0
  1037. package/dist/store/branches.js.map +1 -0
  1038. package/dist/store/forge.d.ts +110 -0
  1039. package/dist/store/forge.d.ts.map +1 -0
  1040. package/dist/store/forge.js +97 -0
  1041. package/dist/store/forge.js.map +1 -0
  1042. package/dist/store/git-host.d.ts +114 -0
  1043. package/dist/store/git-host.d.ts.map +1 -0
  1044. package/dist/store/git-host.js +103 -0
  1045. package/dist/store/git-host.js.map +1 -0
  1046. package/dist/store/index.d.ts +10 -0
  1047. package/dist/store/index.d.ts.map +1 -0
  1048. package/dist/store/index.js +10 -0
  1049. package/dist/store/index.js.map +1 -0
  1050. package/dist/store/provided.d.ts +17 -0
  1051. package/dist/store/provided.d.ts.map +1 -0
  1052. package/dist/store/provided.js +37 -0
  1053. package/dist/store/provided.js.map +1 -0
  1054. package/dist/store/queue.d.ts +46 -0
  1055. package/dist/store/queue.d.ts.map +1 -0
  1056. package/dist/store/queue.js +61 -0
  1057. package/dist/store/queue.js.map +1 -0
  1058. package/dist/store/repository.d.ts +33 -0
  1059. package/dist/store/repository.d.ts.map +1 -0
  1060. package/dist/store/repository.js +25 -0
  1061. package/dist/store/repository.js.map +1 -0
  1062. package/dist/store/run-checkout.d.ts +33 -0
  1063. package/dist/store/run-checkout.d.ts.map +1 -0
  1064. package/dist/store/run-checkout.js +59 -0
  1065. package/dist/store/run-checkout.js.map +1 -0
  1066. package/dist/store/run-record.d.ts +22 -0
  1067. package/dist/store/run-record.d.ts.map +1 -0
  1068. package/dist/store/run-record.js +108 -0
  1069. package/dist/store/run-record.js.map +1 -0
  1070. package/dist/store/run-store.d.ts +501 -0
  1071. package/dist/store/run-store.d.ts.map +1 -0
  1072. package/dist/store/run-store.js +806 -0
  1073. package/dist/store/run-store.js.map +1 -0
  1074. package/dist/store/runs.d.ts +108 -0
  1075. package/dist/store/runs.d.ts.map +1 -0
  1076. package/dist/store/runs.js +146 -0
  1077. package/dist/store/runs.js.map +1 -0
  1078. package/dist/store/suspend.d.ts +38 -0
  1079. package/dist/store/suspend.d.ts.map +1 -0
  1080. package/dist/store/suspend.js +45 -0
  1081. package/dist/store/suspend.js.map +1 -0
  1082. package/dist/store/test-branches.d.ts +18 -0
  1083. package/dist/store/test-branches.d.ts.map +1 -0
  1084. package/dist/store/test-branches.js +59 -0
  1085. package/dist/store/test-branches.js.map +1 -0
  1086. package/dist/store/test-runs.d.ts +15 -0
  1087. package/dist/store/test-runs.d.ts.map +1 -0
  1088. package/dist/store/test-runs.js +37 -0
  1089. package/dist/store/test-runs.js.map +1 -0
  1090. package/dist/store/tickets.d.ts +73 -0
  1091. package/dist/store/tickets.d.ts.map +1 -0
  1092. package/dist/store/tickets.js +67 -0
  1093. package/dist/store/tickets.js.map +1 -0
  1094. package/dist/store/worktree-deps.d.ts +30 -0
  1095. package/dist/store/worktree-deps.d.ts.map +1 -0
  1096. package/dist/store/worktree-deps.js +115 -0
  1097. package/dist/store/worktree-deps.js.map +1 -0
  1098. package/dist/store/worktree.d.ts +194 -0
  1099. package/dist/store/worktree.d.ts.map +1 -0
  1100. package/dist/store/worktree.js +331 -0
  1101. package/dist/store/worktree.js.map +1 -0
  1102. package/dist/subagent-settings.d.ts +27 -0
  1103. package/dist/subagent-settings.d.ts.map +1 -0
  1104. package/dist/subagent-settings.js +35 -0
  1105. package/dist/subagent-settings.js.map +1 -0
  1106. package/dist/system-prompt-file.d.ts +18 -0
  1107. package/dist/system-prompt-file.d.ts.map +1 -0
  1108. package/dist/system-prompt-file.js +28 -0
  1109. package/dist/system-prompt-file.js.map +1 -0
  1110. package/dist/system-prompt.d.ts +148 -0
  1111. package/dist/system-prompt.d.ts.map +1 -0
  1112. package/dist/system-prompt.js +170 -0
  1113. package/dist/system-prompt.js.map +1 -0
  1114. package/dist/target-driver.d.ts +28 -0
  1115. package/dist/target-driver.d.ts.map +1 -0
  1116. package/dist/target-driver.js +18 -0
  1117. package/dist/target-driver.js.map +1 -0
  1118. package/dist/terminal.d.ts +4 -0
  1119. package/dist/terminal.d.ts.map +1 -0
  1120. package/dist/terminal.js +97 -0
  1121. package/dist/terminal.js.map +1 -0
  1122. package/dist/ticket-locks.d.ts +61 -0
  1123. package/dist/ticket-locks.d.ts.map +1 -0
  1124. package/dist/ticket-locks.js +137 -0
  1125. package/dist/ticket-locks.js.map +1 -0
  1126. package/dist/tickets-file.d.ts +7 -0
  1127. package/dist/tickets-file.d.ts.map +1 -0
  1128. package/dist/tickets-file.js +21 -0
  1129. package/dist/tickets-file.js.map +1 -0
  1130. package/dist/tickets.d.ts +18 -0
  1131. package/dist/tickets.d.ts.map +1 -0
  1132. package/dist/tickets.js +23 -0
  1133. package/dist/tickets.js.map +1 -0
  1134. package/dist/todo-loop.d.ts +110 -0
  1135. package/dist/todo-loop.d.ts.map +1 -0
  1136. package/dist/todo-loop.js +175 -0
  1137. package/dist/todo-loop.js.map +1 -0
  1138. package/dist/turn-gate.d.ts +144 -0
  1139. package/dist/turn-gate.d.ts.map +1 -0
  1140. package/dist/turn-gate.js +217 -0
  1141. package/dist/turn-gate.js.map +1 -0
  1142. package/dist/update-check.d.ts +44 -0
  1143. package/dist/update-check.d.ts.map +1 -0
  1144. package/dist/update-check.js +71 -0
  1145. package/dist/update-check.js.map +1 -0
  1146. package/dist/usage.d.ts +32 -0
  1147. package/dist/usage.d.ts.map +1 -0
  1148. package/dist/usage.js +46 -0
  1149. package/dist/usage.js.map +1 -0
  1150. package/dist/widget-types/dashboard/components/LinkActions.d.ts +26 -0
  1151. package/dist/widget-types/dashboard/components/Markdown.d.ts +4 -0
  1152. package/dist/widget-types/dashboard/components/StartAgentButton.d.ts +39 -0
  1153. package/dist/widget-types/dashboard/components/ui/badge.d.ts +2 -0
  1154. package/dist/widget-types/dashboard/components/ui/button.d.ts +10 -0
  1155. package/dist/widget-types/dashboard/components/ui/card.d.ts +5 -0
  1156. package/dist/widget-types/dashboard/components/ui/checkbox.d.ts +7 -0
  1157. package/dist/widget-types/dashboard/components/ui/dropdown-menu.d.ts +16 -0
  1158. package/dist/widget-types/dashboard/components/ui/input.d.ts +2 -0
  1159. package/dist/widget-types/dashboard/components/ui/option-label.d.ts +4 -0
  1160. package/dist/widget-types/dashboard/components/ui/popover.d.ts +8 -0
  1161. package/dist/widget-types/dashboard/components/ui/scroll-area.d.ts +10 -0
  1162. package/dist/widget-types/dashboard/components/ui/separator.d.ts +3 -0
  1163. package/dist/widget-types/dashboard/components/ui/skeleton.d.ts +2 -0
  1164. package/dist/widget-types/dashboard/components/ui/slider.d.ts +9 -0
  1165. package/dist/widget-types/dashboard/components/ui/tooltip.d.ts +11 -0
  1166. package/dist/widget-types/dashboard/lib/draft-handoff.d.ts +15 -0
  1167. package/dist/widget-types/dashboard/lib/format-date.d.ts +51 -0
  1168. package/dist/widget-types/dashboard/lib/host-services.d.ts +12 -0
  1169. package/dist/widget-types/dashboard/lib/route.d.ts +24 -0
  1170. package/dist/widget-types/dashboard/lib/rpc.d.ts +31 -0
  1171. package/dist/widget-types/dashboard/lib/use-action.d.ts +25 -0
  1172. package/dist/widget-types/dashboard/lib/use-async.d.ts +39 -0
  1173. package/dist/widget-types/dashboard/lib/use-widgets.d.ts +42 -0
  1174. package/dist/widget-types/dashboard/lib/utils.d.ts +3 -0
  1175. package/dist/widget-types/dashboard/rpc/widgets.d.ts +4 -0
  1176. package/dist/widget-types/dashboard/widget/index.d.ts +207 -0
  1177. package/dist/widget-types/src/agent-id.d.ts +12 -0
  1178. package/dist/widget-types/src/agent-locks.d.ts +2 -0
  1179. package/dist/widget-types/src/agent-view.d.ts +38 -0
  1180. package/dist/widget-types/src/bridge-browser.d.ts +216 -0
  1181. package/dist/widget-types/src/browser-stream.d.ts +19 -0
  1182. package/dist/widget-types/src/browser.d.ts +15 -0
  1183. package/dist/widget-types/src/cli-exec.d.ts +35 -0
  1184. package/dist/widget-types/src/cloud-run-state.d.ts +26 -0
  1185. package/dist/widget-types/src/dashboard/activity.d.ts +40 -0
  1186. package/dist/widget-types/src/dashboard/agent-handoff.d.ts +211 -0
  1187. package/dist/widget-types/src/dashboard/agent-tree.d.ts +105 -0
  1188. package/dist/widget-types/src/dashboard/bridge-endpoints.d.ts +157 -0
  1189. package/dist/widget-types/src/dashboard/bridge-question.d.ts +32 -0
  1190. package/dist/widget-types/src/dashboard/bridge-store.d.ts +178 -0
  1191. package/dist/widget-types/src/dashboard/cache.d.ts +46 -0
  1192. package/dist/widget-types/src/dashboard/content-type.d.ts +2 -0
  1193. package/dist/widget-types/src/dashboard/dashboard.d.ts +37 -0
  1194. package/dist/widget-types/src/dashboard/discord-webhook.d.ts +16 -0
  1195. package/dist/widget-types/src/dashboard/docs.d.ts +38 -0
  1196. package/dist/widget-types/src/dashboard/file-diff.d.ts +66 -0
  1197. package/dist/widget-types/src/dashboard/file-read.d.ts +41 -0
  1198. package/dist/widget-types/src/dashboard/file-status.d.ts +20 -0
  1199. package/dist/widget-types/src/dashboard/gh.d.ts +130 -0
  1200. package/dist/widget-types/src/dashboard/git-status.d.ts +32 -0
  1201. package/dist/widget-types/src/dashboard/github.d.ts +10 -0
  1202. package/dist/widget-types/src/dashboard/http.d.ts +28 -0
  1203. package/dist/widget-types/src/dashboard/interventions.d.ts +66 -0
  1204. package/dist/widget-types/src/dashboard/keys.d.ts +30 -0
  1205. package/dist/widget-types/src/dashboard/models.d.ts +24 -0
  1206. package/dist/widget-types/src/dashboard/open-in-app.d.ts +42 -0
  1207. package/dist/widget-types/src/dashboard/open-questions.d.ts +52 -0
  1208. package/dist/widget-types/src/dashboard/overview.d.ts +77 -0
  1209. package/dist/widget-types/src/dashboard/projects.d.ts +89 -0
  1210. package/dist/widget-types/src/dashboard/pull-requests.d.ts +126 -0
  1211. package/dist/widget-types/src/dashboard/queue.d.ts +16 -0
  1212. package/dist/widget-types/src/dashboard/quota.d.ts +59 -0
  1213. package/dist/widget-types/src/dashboard/remote-run.d.ts +94 -0
  1214. package/dist/widget-types/src/dashboard/rpc-serve.d.ts +102 -0
  1215. package/dist/widget-types/src/dashboard/run-inbox.d.ts +30 -0
  1216. package/dist/widget-types/src/dashboard/scheduler-state.d.ts +64 -0
  1217. package/dist/widget-types/src/dashboard/tickets.d.ts +28 -0
  1218. package/dist/widget-types/src/dashboard/types.d.ts +99 -0
  1219. package/dist/widget-types/src/dashboard/widget-serve.d.ts +14 -0
  1220. package/dist/widget-types/src/dashboard-rpc/context.d.ts +53 -0
  1221. package/dist/widget-types/src/dashboard-rpc/control.d.ts +108 -0
  1222. package/dist/widget-types/src/dashboard-rpc/devices.d.ts +8 -0
  1223. package/dist/widget-types/src/dashboard-rpc/events-tail.d.ts +53 -0
  1224. package/dist/widget-types/src/dashboard-rpc/events.d.ts +29 -0
  1225. package/dist/widget-types/src/dashboard-rpc/index.d.ts +28 -0
  1226. package/dist/widget-types/src/dashboard-rpc/models.d.ts +3 -0
  1227. package/dist/widget-types/src/dashboard-rpc/preferences.d.ts +40 -0
  1228. package/dist/widget-types/src/dashboard-rpc/projects.d.ts +54 -0
  1229. package/dist/widget-types/src/dashboard-rpc/quota.d.ts +26 -0
  1230. package/dist/widget-types/src/dashboard-rpc/reads.d.ts +227 -0
  1231. package/dist/widget-types/src/dashboard-rpc/relay-agent.d.ts +8 -0
  1232. package/dist/widget-types/src/dashboard-rpc/stream-forward.d.ts +16 -0
  1233. package/dist/widget-types/src/dashboard-rpc/widgets.d.ts +32 -0
  1234. package/dist/widget-types/src/discord-credentials.d.ts +79 -0
  1235. package/dist/widget-types/src/driver-names.d.ts +21 -0
  1236. package/dist/widget-types/src/error-message.d.ts +7 -0
  1237. package/dist/widget-types/src/event-stream.d.ts +32 -0
  1238. package/dist/widget-types/src/events.d.ts +235 -0
  1239. package/dist/widget-types/src/framework-dir.d.ts +10 -0
  1240. package/dist/widget-types/src/framework-gitignore.d.ts +11 -0
  1241. package/dist/widget-types/src/index.d.ts +42 -0
  1242. package/dist/widget-types/src/jsonl-tail.d.ts +54 -0
  1243. package/dist/widget-types/src/loopback-host.d.ts +19 -0
  1244. package/dist/widget-types/src/node-fs.d.ts +32 -0
  1245. package/dist/widget-types/src/open-choices.d.ts +14 -0
  1246. package/dist/widget-types/src/pick-directory.d.ts +29 -0
  1247. package/dist/widget-types/src/preference-defaults.d.ts +53 -0
  1248. package/dist/widget-types/src/project-commands.d.ts +23 -0
  1249. package/dist/widget-types/src/project-errors.d.ts +43 -0
  1250. package/dist/widget-types/src/project-hooks.d.ts +133 -0
  1251. package/dist/widget-types/src/project-presets.d.ts +29 -0
  1252. package/dist/widget-types/src/project-widgets.d.ts +45 -0
  1253. package/dist/widget-types/src/project.d.ts +28 -0
  1254. package/dist/widget-types/src/quota-boundary.d.ts +115 -0
  1255. package/dist/widget-types/src/quota-poller.d.ts +82 -0
  1256. package/dist/widget-types/src/registry.d.ts +210 -0
  1257. package/dist/widget-types/src/store/agent-checkout.d.ts +46 -0
  1258. package/dist/widget-types/src/store/agent-store.d.ts +237 -0
  1259. package/dist/widget-types/src/store/branches.d.ts +133 -0
  1260. package/dist/widget-types/src/store/forge.d.ts +109 -0
  1261. package/dist/widget-types/src/store/git-host.d.ts +111 -0
  1262. package/dist/widget-types/src/store/index.d.ts +9 -0
  1263. package/dist/widget-types/src/store/provided.d.ts +16 -0
  1264. package/dist/widget-types/src/store/queue.d.ts +45 -0
  1265. package/dist/widget-types/src/store/run-record.d.ts +21 -0
  1266. package/dist/widget-types/src/store/runs.d.ts +101 -0
  1267. package/dist/widget-types/src/store/tickets.d.ts +72 -0
  1268. package/dist/widget-types/src/tickets.d.ts +17 -0
  1269. package/dist/widget-types/src/worktrees.d.ts +89 -0
  1270. package/dist/widget.css +50 -0
  1271. package/dist/worktrees.d.ts +90 -0
  1272. package/dist/worktrees.d.ts.map +1 -0
  1273. package/dist/worktrees.js +123 -0
  1274. package/dist/worktrees.js.map +1 -0
  1275. package/package.json +103 -3
@@ -0,0 +1,104 @@
1
+ import type { Driver } from './driver/index.js';
2
+ import { type ChoicePick, type ChoiceRequest, type FrameworkEvent } from './events.js';
3
+ import { type BindProjectDeps, type RecordMessage } from './await-gate.js';
4
+ import { type EcoOptions } from './system-prompt.js';
5
+ import type { RunMessages } from './run-messages.js';
6
+ /**
7
+ * The direct prompt path (#331): run *one prompt* through the driver and honor
8
+ * its await gates — no scope/build scaffolding, no review loop. This
9
+ * is what a review-shaped preset like [Research] needs: the prompt operates on
10
+ * existing code, stops at `showChoices()` / `showMultiSelect()` + AWAIT, and
11
+ * continues from the user's answer. Plumbing, not babysitting — the framework
12
+ * adds nothing but the gate protocol and the usage/budget accounting.
13
+ */
14
+ /** Options for {@link runPrompt}. */
15
+ export interface RunPromptOptions {
16
+ /** The fully rendered prompt to run (see e.g. `renderResearchPrompt`). */
17
+ prompt: string;
18
+ /** The driver wrapping the coding agent. */
19
+ driver: Driver;
20
+ /** Workspace the agent works in. */
21
+ cwd: string;
22
+ /** Receives every {@link FrameworkEvent} as it happens (dashboard, terminal, store). */
23
+ onEvent?: (event: FrameworkEvent) => void;
24
+ /**
25
+ * The interactive gate handler, exactly as in `RunFrameworkOptions` (#304).
26
+ * Unlike a build run, a *headless* direct run still resolves each gate to its
27
+ * defaults and continues — the prompt's post-gate steps must run either way.
28
+ */
29
+ requestChoice?: (req: ChoiceRequest) => Promise<ChoicePick>;
30
+ /** Abort to stop the run (Stop button / Ctrl+C / control channel). */
31
+ signal?: AbortSignal;
32
+ /** Model override passed through to the driver. */
33
+ model?: string;
34
+ /** A user SYSTEM.md to append to the built-in system prompt (#301). */
35
+ systemPrompt?: string;
36
+ /** Include the built-in #326 system prompt. Default true (#301; the name is the historical config key). */
37
+ antiLazyPill?: boolean;
38
+ /** This run has a real browser (#824), so the system channel says so. */
39
+ browser?: boolean;
40
+ /**
41
+ * This is a project-less "topic" run (#1120): advertise the bind gate (#1121) in the system
42
+ * channel and wire {@link bind} so an `await-bind-project` / `await-create-project` gate resolves.
43
+ */
44
+ topic?: boolean;
45
+ /** The bind seams (#1121) a topic run's gate resolves against. Only meaningful with {@link topic}. */
46
+ bind?: BindProjectDeps;
47
+ /** Transparent mode (#625): empty the system channel and pass the prompt verbatim (raw `claude -p`). */
48
+ transparent?: boolean;
49
+ /** Whether autopilot mode is on: steers the #326 prompt's maintenance stance (#325). Default false. */
50
+ autopilot?: boolean;
51
+ /** Eco fine-grained control (#314): drop the enabled #326 sections to save tokens. */
52
+ eco?: EcoOptions;
53
+ /** In-context directories (#439): added as one `Context:` line to the system prompt. */
54
+ context?: readonly string[];
55
+ /** Stop the run once the agent has spent this much, in USD (#322). */
56
+ budgetUsd?: number;
57
+ /**
58
+ * Consult the consumption limits between turns (#531): return the limit that
59
+ * has been reached to pause the run, or `null` to carry on. Same seam and same
60
+ * fail-open as a build run — see `RunFrameworkOptions.consumptionGate`.
61
+ */
62
+ consumptionGate?: () => string | null;
63
+ /** Session link template for the dashboard, `{sessionId}` resolved when known. */
64
+ sessionLink?: string;
65
+ /**
66
+ * Live chat (#714): once the prompt settles, take the user's own messages, each
67
+ * resuming the same session. The session then ends itself when the queue is idle
68
+ * (#1390) unless {@link stayOpenChat} parks it. Unset for a headless run, which
69
+ * ends when the agent stops asking — exactly as before.
70
+ */
71
+ messages?: RunMessages;
72
+ /**
73
+ * Keep the chat parked for the next message instead of ending on an idle queue (#1390).
74
+ * Only for a run whose own terminal dashboard is the single surface — it has no daemon
75
+ * to resume the session through, so ending would leave its composer a dead end.
76
+ */
77
+ stayOpenChat?: boolean;
78
+ /** Record each chat turn to the committed conversation (#908). Best-effort; unset = not recorded. */
79
+ recordMessage?: RecordMessage;
80
+ /**
81
+ * Resume a finished run's conversation (#720): the captured agent session id to
82
+ * continue. When set, the prompt is sent as a plain continuation message that
83
+ * `--resume`s that session (full prior context), and the built-in system framing
84
+ * is skipped (the resumed transcript already carries it). This is what the
85
+ * dashboard sends when you message a run that has already ended.
86
+ */
87
+ resumeSessionId?: string;
88
+ }
89
+ /** What {@link runPrompt} resolves with. */
90
+ export interface RunPromptResult {
91
+ /** The final turn's text. */
92
+ text: string;
93
+ /** Every event emitted, in order. */
94
+ events: FrameworkEvent[];
95
+ }
96
+ /**
97
+ * Run one prompt to completion through the driver, pausing on each await gate
98
+ * (#337/#339) and re-prompting with the user's answer. Emits the same
99
+ * {@link FrameworkEvent} stream a build run does (`session`, `driver`, `choice`,
100
+ * `usage`, `end`), so the dashboard, the store, and the control channel (#344)
101
+ * all work unchanged.
102
+ */
103
+ export declare function runPrompt(opts: RunPromptOptions): Promise<RunPromptResult>;
104
+ //# sourceMappingURL=prompt-run.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompt-run.d.ts","sourceRoot":"","sources":["../src/prompt-run.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAiB,MAAM,mBAAmB,CAAA;AAC9D,OAAO,EAAE,KAAK,UAAU,EAAE,KAAK,aAAa,EAAE,KAAK,cAAc,EAAE,MAAM,aAAa,CAAA;AACtF,OAAO,EAAkB,KAAK,eAAe,EAAE,KAAK,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAC1F,OAAO,EAAwC,KAAK,UAAU,EAAkB,MAAM,oBAAoB,CAAA;AAI1G,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAEpD;;;;;;;GAOG;AAEH,qCAAqC;AACrC,MAAM,WAAW,gBAAgB;IAC/B,0EAA0E;IAC1E,MAAM,EAAE,MAAM,CAAA;IACd,4CAA4C;IAC5C,MAAM,EAAE,MAAM,CAAA;IACd,oCAAoC;IACpC,GAAG,EAAE,MAAM,CAAA;IACX,wFAAwF;IACxF,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,cAAc,KAAK,IAAI,CAAA;IACzC;;;;OAIG;IACH,aAAa,CAAC,EAAE,CAAC,GAAG,EAAE,aAAa,KAAK,OAAO,CAAC,UAAU,CAAC,CAAA;IAC3D,sEAAsE;IACtE,MAAM,CAAC,EAAE,WAAW,CAAA;IACpB,mDAAmD;IACnD,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,uEAAuE;IACvE,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,2GAA2G;IAC3G,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,yEAAyE;IACzE,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB;;;OAGG;IACH,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,sGAAsG;IACtG,IAAI,CAAC,EAAE,eAAe,CAAA;IACtB,wGAAwG;IACxG,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,uGAAuG;IACvG,SAAS,CAAC,EAAE,OAAO,CAAA;IACnB,sFAAsF;IACtF,GAAG,CAAC,EAAE,UAAU,CAAA;IAChB,wFAAwF;IACxF,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAA;IAC3B,sEAAsE;IACtE,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB;;;;OAIG;IACH,eAAe,CAAC,EAAE,MAAM,MAAM,GAAG,IAAI,CAAA;IACrC,kFAAkF;IAClF,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,WAAW,CAAA;IACtB;;;;OAIG;IACH,YAAY,CAAC,EAAE,OAAO,CAAA;IACtB,qGAAqG;IACrG,aAAa,CAAC,EAAE,aAAa,CAAA;IAC7B;;;;;;OAMG;IACH,eAAe,CAAC,EAAE,MAAM,CAAA;CACzB;AAED,4CAA4C;AAC5C,MAAM,WAAW,eAAe;IAC9B,6BAA6B;IAC7B,IAAI,EAAE,MAAM,CAAA;IACZ,qCAAqC;IACrC,MAAM,EAAE,cAAc,EAAE,CAAA;CACzB;AAED;;;;;;GAMG;AACH,wBAAsB,SAAS,CAAC,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,eAAe,CAAC,CAqGhF"}
@@ -0,0 +1,112 @@
1
+ import { runAwaitRounds } from './await-gate.js';
2
+ import { composeRunSystem, renderSystemPrompt } from './system-prompt.js';
3
+ import { createRunControls, emitSessionStart, endStopDetail } from './run-telemetry.js';
4
+ import { createTurnSignalEmitter } from './turn-gate.js';
5
+ import { leaveResumeNote } from './todo-loop.js';
6
+ /**
7
+ * Run one prompt to completion through the driver, pausing on each await gate
8
+ * (#337/#339) and re-prompting with the user's answer. Emits the same
9
+ * {@link FrameworkEvent} stream a build run does (`session`, `driver`, `choice`,
10
+ * `usage`, `end`), so the dashboard, the store, and the control channel (#344)
11
+ * all work unchanged.
12
+ */
13
+ export async function runPrompt(opts) {
14
+ const events = [];
15
+ const emit = (event) => {
16
+ events.push(event);
17
+ // Swallow a listener that throws, as runFramework does: emit runs both inside and outside the
18
+ // try below (the session-start and system-prompt events fire first), so an unguarded throw would
19
+ // escape the run uncaught or skip its `end` event.
20
+ if (opts.onEvent) {
21
+ try {
22
+ opts.onEvent(event);
23
+ }
24
+ catch (err) {
25
+ console.error('[framework] onEvent threw; ignoring:', err);
26
+ }
27
+ }
28
+ };
29
+ // The built-in #326 prompt + any user SYSTEM.md frame the session (#301). The
30
+ // await protocol is always on — honoring the prompt's gates is the whole point
31
+ // of this path.
32
+ const tf = {
33
+ prompt: opts.prompt,
34
+ params: { autopilot: opts.autopilot === true, ...(opts.eco ? { eco: opts.eco } : {}) },
35
+ };
36
+ // The "read" half of the bind mechanism (#1121/#1129): a topic run's channel lists the projects
37
+ // it can bind to, read through the same injected seam the gate resolves against so no `node:fs`
38
+ // reaches this path. Absent for a non-topic run.
39
+ const topicProjects = opts.topic && opts.bind ? (await opts.bind.listProjects()).map(p => p.path) : undefined;
40
+ const system = composeRunSystem({ antiLazyPill: opts.antiLazyPill, browser: opts.browser, handsOff: opts.driver.handsOff === true, topic: opts.topic, ...(topicProjects ? { topicProjects } : {}), transparent: opts.transparent, user: opts.systemPrompt, tf, context: opts.context });
41
+ // The template's `# User prompt` half carries the prompt (today it renders to
42
+ // exactly `opts.prompt`; any framing Rom adds around the slot rides along). With
43
+ // the built-in prompt off (or transparent, #625), the raw prompt is sent as-is.
44
+ // Resuming a finished run (#720) also sends it raw: the `--resume`d transcript already
45
+ // carries the framing, so re-wrapping it would only duplicate the system template.
46
+ const resuming = typeof opts.resumeSessionId === 'string' && opts.resumeSessionId.length > 0;
47
+ const firstPrompt = resuming || opts.transparent || opts.antiLazyPill === false ? opts.prompt : renderSystemPrompt(tf).user;
48
+ emitSessionStart({ emit, driver: opts.driver, cwd: opts.cwd, sessionLink: opts.sessionLink, model: opts.model });
49
+ // Surface the exact system prompt the agent runs under (#343). The user prompts
50
+ // ride along as `driver` `start` events, so the dashboard can show them all.
51
+ emit({ kind: 'system-prompt', text: system });
52
+ // Usage accounting + the self-stops, the same wiring as a build run (#322/#529):
53
+ // the run signal composes the caller's abort with the budget/consumption aborts.
54
+ // (The decline controller is inert here — this path finishes a declined plan cleanly.)
55
+ const { runSignal, onDriverEvent, consumptionTrip, budgetController, consumptionController, declineController } = createRunControls({
56
+ emit,
57
+ signal: opts.signal,
58
+ sessionLink: opts.sessionLink,
59
+ budgetUsd: opts.budgetUsd,
60
+ consumptionGate: opts.consumptionGate,
61
+ });
62
+ const session = await opts.driver.start({
63
+ cwd: opts.cwd,
64
+ system,
65
+ ...(opts.model ? { model: opts.model } : {}),
66
+ ...(resuming ? { resumeSessionId: opts.resumeSessionId } : {}),
67
+ signal: runSignal,
68
+ onEvent: onDriverEvent,
69
+ });
70
+ // Non-blocking signals the agent emitted this turn: markdown views (#441) and the #326
71
+ // lifecycle signals (session name, ready-for-merge). None stop the turn.
72
+ const emitTurnSignals = createTurnSignalEmitter(emit);
73
+ try {
74
+ // A declined plan (#358) ends the run cleanly: the user takes over with fresh instructions.
75
+ const rounds = await runAwaitRounds({
76
+ session,
77
+ prompt: firstPrompt,
78
+ emitTurnSignals,
79
+ requestChoice: opts.requestChoice,
80
+ emit,
81
+ signal: runSignal,
82
+ ...(opts.bind ? { bind: opts.bind } : {}),
83
+ ...(resuming ? { resume: true } : {}),
84
+ ...(opts.messages ? { messages: opts.messages } : {}),
85
+ ...(opts.stayOpenChat ? { stayOpenChat: true } : {}),
86
+ ...(opts.recordMessage ? { recordMessage: opts.recordMessage } : {}),
87
+ });
88
+ // The agent kept asking past the limit: finish with the latest turn rather than loop.
89
+ if (rounds.exhausted)
90
+ emit({ kind: 'log', message: 'Finishing the session (await limit reached).' });
91
+ emit({ kind: 'end', ok: true });
92
+ return { text: rounds.text, events };
93
+ }
94
+ catch (err) {
95
+ const { stopped, detail } = await endStopDetail({
96
+ err,
97
+ ...(opts.signal ? { signal: opts.signal } : {}),
98
+ budgetController,
99
+ consumptionController,
100
+ declineController,
101
+ consumptionTrip,
102
+ ...(opts.budgetUsd != null ? { budgetUsd: opts.budgetUsd } : {}),
103
+ leaveResumeNote: () => leaveResumeNote(opts.cwd, events, emit),
104
+ });
105
+ emit({ kind: 'end', ok: false, ...(stopped ? { stopped: true } : {}), detail });
106
+ throw err;
107
+ }
108
+ finally {
109
+ await session.dispose();
110
+ }
111
+ }
112
+ //# sourceMappingURL=prompt-run.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompt-run.js","sourceRoot":"","sources":["../src/prompt-run.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAA4C,MAAM,iBAAiB,CAAA;AAC1F,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAmC,MAAM,oBAAoB,CAAA;AAC1G,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AACvF,OAAO,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAA;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAgGhD;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,IAAsB;IACpD,MAAM,MAAM,GAAqB,EAAE,CAAA;IACnC,MAAM,IAAI,GAAG,CAAC,KAAqB,EAAQ,EAAE;QAC3C,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QAClB,8FAA8F;QAC9F,iGAAiG;QACjG,mDAAmD;QACnD,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,IAAI,CAAC;gBACH,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;YACrB,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO,CAAC,KAAK,CAAC,sCAAsC,EAAE,GAAG,CAAC,CAAA;YAC5D,CAAC;QACH,CAAC;IACH,CAAC,CAAA;IAED,8EAA8E;IAC9E,+EAA+E;IAC/E,gBAAgB;IAChB,MAAM,EAAE,GAAc;QACpB,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,KAAK,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE;KACvF,CAAA;IACD,gGAAgG;IAChG,gGAAgG;IAChG,iDAAiD;IACjD,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;IAC7G,MAAM,MAAM,GAAG,gBAAgB,CAAC,EAAE,YAAY,EAAE,IAAI,CAAC,YAAY,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,KAAK,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,CAAC,YAAY,EAAE,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAA;IACvR,8EAA8E;IAC9E,iFAAiF;IACjF,gFAAgF;IAChF,uFAAuF;IACvF,mFAAmF;IACnF,MAAM,QAAQ,GAAG,OAAO,IAAI,CAAC,eAAe,KAAK,QAAQ,IAAI,IAAI,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,CAAA;IAC5F,MAAM,WAAW,GAAG,QAAQ,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,YAAY,KAAK,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC,IAAI,CAAA;IAE3H,gBAAgB,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAA;IAChH,gFAAgF;IAChF,6EAA6E;IAC7E,IAAI,CAAC,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAA;IAE7C,iFAAiF;IACjF,iFAAiF;IACjF,uFAAuF;IACvF,MAAM,EAAE,SAAS,EAAE,aAAa,EAAE,eAAe,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,GAC7G,iBAAiB,CAAC;QAChB,IAAI;QACJ,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,eAAe,EAAE,IAAI,CAAC,eAAe;KACtC,CAAC,CAAA;IAEJ,MAAM,OAAO,GAAkB,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;QACrD,GAAG,EAAE,IAAI,CAAC,GAAG;QACb,MAAM;QACN,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5C,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,IAAI,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC9D,MAAM,EAAE,SAAS;QACjB,OAAO,EAAE,aAAa;KACvB,CAAC,CAAA;IAEF,uFAAuF;IACvF,yEAAyE;IACzE,MAAM,eAAe,GAAG,uBAAuB,CAAC,IAAI,CAAC,CAAA;IAErD,IAAI,CAAC;QACH,4FAA4F;QAC5F,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC;YAClC,OAAO;YACP,MAAM,EAAE,WAAW;YACnB,eAAe;YACf,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,IAAI;YACJ,MAAM,EAAE,SAAS;YACjB,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACzC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACrC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACrD,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACpD,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,aAAa,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACrE,CAAC,CAAA;QACF,sFAAsF;QACtF,IAAI,MAAM,CAAC,SAAS;YAAE,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,8CAA8C,EAAE,CAAC,CAAA;QACpG,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAA;QAC/B,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,CAAA;IACtC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM,aAAa,CAAC;YAC9C,GAAG;YACH,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC/C,gBAAgB;YAChB,qBAAqB;YACrB,iBAAiB;YACjB,eAAe;YACf,GAAG,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAChE,eAAe,EAAE,GAAG,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC;SAC/D,CAAC,CAAA;QACF,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,CAAA;QAC/E,MAAM,GAAG,CAAA;IACX,CAAC;YAAS,CAAC;QACT,MAAM,OAAO,CAAC,OAAO,EAAE,CAAA;IACzB,CAAC;AACH,CAAC"}
@@ -0,0 +1,16 @@
1
+ /** Thrown when a `${{ ... }}` fragment fails to evaluate or evaluates to `undefined`. */
2
+ export declare class TemplateFragmentError extends Error {
3
+ /** The fragment's expression, as written in the template. */
4
+ readonly fragment: string;
5
+ constructor(fragment: string, detail: string);
6
+ }
7
+ /**
8
+ * Render a template by evaluating every `${{ <expression> }}` fragment against
9
+ * `context` (each key becomes a variable the expression can read, e.g. `tf`).
10
+ * The result is stringified in place; text outside fragments passes through
11
+ * byte-identical. A fragment that throws or evaluates to `undefined` (almost
12
+ * always a typo) throws a {@link TemplateFragmentError} rather than silently
13
+ * degrading the prompt.
14
+ */
15
+ export declare function renderTemplate(template: string, context: Record<string, unknown>): string;
16
+ //# sourceMappingURL=prompt-template.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompt-template.d.ts","sourceRoot":"","sources":["../src/prompt-template.ts"],"names":[],"mappings":"AAwBA,yFAAyF;AACzF,qBAAa,qBAAsB,SAAQ,KAAK;IAC9C,6DAA6D;IAC7D,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,YAAY,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAI3C;CACF;AAED;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAazF"}
@@ -0,0 +1,56 @@
1
+ import { errorMessage } from './error-message.js';
2
+ /**
3
+ * The `${{ ... }}` markdown-fragment layer (#350): the built-in system (#326) prompt embeds
4
+ * JS expressions (e.g. a ternary on `tf.params.autopilot`), so the verbatim
5
+ * template renders against a context at run time. Each fragment is a real JS
6
+ * expression evaluated with `new Function` — that is arbitrary code execution,
7
+ * so only ever render trusted templates (the built-in system prompt), never
8
+ * user- or repo-supplied text.
9
+ */
10
+ /**
11
+ * One `${{ ... }}` fragment. Non-greedy, so it ends at the first *adjacent* `}}`: an expression
12
+ * may nest braces, but never let two of them close together — `{a:{b:1}}` ends the fragment on the
13
+ * inner pair, and what gets evaluated is not what was written. A space between them (`{b:1} }`) is
14
+ * the whole fix.
15
+ *
16
+ * A rule of this language, not a bug waiting to be fixed. Replacing the language outright was
17
+ * considered and declined, so the limit is permanent, and two places already bend around it (a
18
+ * block of the system prompt that cannot ship verbatim, and the `maintenance` preset). Written
19
+ * down here so the next one bends on purpose rather than debugging a truncated prompt.
20
+ */
21
+ const FRAGMENT = /\$\{\{([\s\S]*?)\}\}/g;
22
+ /** Thrown when a `${{ ... }}` fragment fails to evaluate or evaluates to `undefined`. */
23
+ export class TemplateFragmentError extends Error {
24
+ /** The fragment's expression, as written in the template. */
25
+ fragment;
26
+ constructor(fragment, detail) {
27
+ super(`[framework] template fragment \${{${fragment}}} ${detail}`);
28
+ this.name = 'TemplateFragmentError';
29
+ this.fragment = fragment;
30
+ }
31
+ }
32
+ /**
33
+ * Render a template by evaluating every `${{ <expression> }}` fragment against
34
+ * `context` (each key becomes a variable the expression can read, e.g. `tf`).
35
+ * The result is stringified in place; text outside fragments passes through
36
+ * byte-identical. A fragment that throws or evaluates to `undefined` (almost
37
+ * always a typo) throws a {@link TemplateFragmentError} rather than silently
38
+ * degrading the prompt.
39
+ */
40
+ export function renderTemplate(template, context) {
41
+ const names = Object.keys(context);
42
+ const values = names.map(name => context[name]);
43
+ return template.replace(FRAGMENT, (_, expression) => {
44
+ let result;
45
+ try {
46
+ result = new Function(...names, `'use strict'; return (${expression});`)(...values);
47
+ }
48
+ catch (err) {
49
+ throw new TemplateFragmentError(expression, `failed to evaluate: ${errorMessage(err)}`);
50
+ }
51
+ if (result === undefined)
52
+ throw new TemplateFragmentError(expression, 'evaluated to undefined (typo in the expression?)');
53
+ return String(result);
54
+ });
55
+ }
56
+ //# sourceMappingURL=prompt-template.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompt-template.js","sourceRoot":"","sources":["../src/prompt-template.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAEjD;;;;;;;GAOG;AAEH;;;;;;;;;;GAUG;AACH,MAAM,QAAQ,GAAG,uBAAuB,CAAA;AAExC,yFAAyF;AACzF,MAAM,OAAO,qBAAsB,SAAQ,KAAK;IAC9C,6DAA6D;IACpD,QAAQ,CAAQ;IACzB,YAAY,QAAgB,EAAE,MAAc;QAC1C,KAAK,CAAC,qCAAqC,QAAQ,MAAM,MAAM,EAAE,CAAC,CAAA;QAClE,IAAI,CAAC,IAAI,GAAG,uBAAuB,CAAA;QACnC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAA;IAC1B,CAAC;CACF;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,cAAc,CAAC,QAAgB,EAAE,OAAgC;IAC/E,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IAClC,MAAM,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAA;IAC/C,OAAO,QAAQ,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,EAAE,UAAkB,EAAE,EAAE;QAC1D,IAAI,MAAe,CAAA;QACnB,IAAI,CAAC;YACH,MAAM,GAAG,IAAI,QAAQ,CAAC,GAAG,KAAK,EAAE,yBAAyB,UAAU,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC,CAAA;QACrF,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,IAAI,qBAAqB,CAAC,UAAU,EAAE,uBAAuB,YAAY,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QACzF,CAAC;QACD,IAAI,MAAM,KAAK,SAAS;YAAE,MAAM,IAAI,qBAAqB,CAAC,UAAU,EAAE,kDAAkD,CAAC,CAAA;QACzH,OAAO,MAAM,CAAC,MAAM,CAAC,CAAA;IACvB,CAAC,CAAC,CAAA;AACJ,CAAC"}
@@ -0,0 +1,53 @@
1
+ /** `prompts/branch_yourself.md` */
2
+ export declare const BRANCH_YOURSELF = "# Branch management\n\nThe `branches` command is not available here. Create and check out the branch `agent-<SESSION_NAME>` yourself (`$ git checkout -b agent-<SESSION_NAME>`), and commit your work to it as you go. Only what you committed is ever published \u2014 nothing is committed on your behalf.";
3
+ /** `prompts/on_before_mergeable_prompt.md` */
4
+ export declare const ON_BEFORE_MERGEABLE_PROMPT = "TODO_FILE: the agent queue, `TODO_AGENTS.md` \u2014 add an entry with `queue add \"<entry>\"` from the `queue` skill\n\n## Maintenance\n\nIf the changes introduced by ${{ tf.session_name }} aren't trivial and have refactor potential, add the following to <TODO_FILE>\n- `Apply ${{ tf.presets.maintainability.filePath }} with tf.params.what set to \"changes introduced by ${{ tf.session_name }}\"`\nIf the changes introduced by ${{ tf.session_name }} can potentially lead to security issues, add the following to <TODO_FILE>\n- `Apply ${{ tf.presets.security_audit.filePath }} with tf.params.what set to \"changes introduced by ${{ tf.session_name }}\"`\n\n\n## Business knowledge\n\nIf you didn't already, consider updating the following based on the changes and discussions of ${{ tf.session_name }} (you can create the files if they're missing):\n- `knowledge-base/DECISIONS.md` (decisions taken, and why)\n- `knowledge-base/FACTS.md` (non-obvious facts relevant to the project)\n- `knowledge-base/INSIGHTS.md` (insights relevant to the project)\n\nOnly write what a future agent would need and cannot get from the code itself.";
5
+ /** `prompts/presets/maintainability.md` */
6
+ export declare const PRESETS_MAINTAINABILITY = "Refactor ${{ tf.params.what }} to make it as maintainable as possible:\n- Look for maintainability red flags, and fix them.";
7
+ /** `prompts/presets/maintenance.md` */
8
+ export declare const PRESETS_MAINTENANCE = "Analyze ${{ tf.params.what }} and look for opportunities to refactor code.\n\nFor each codebase subset that needs it, put the following entries on the queue with `queue add \"<entry>\" --priority <N>` (from the `queue` skill; usually a low priority) and replace <CODEBASE_SUBSET> with a clear designation.\n- \"Apply ${{ tf.presets.maintainability.filePath }} with tf.params.what set to <CODEBASE_SUBSET>\"\n- \"Apply ${{ tf.presets.security_audit.filePath }} with tf.params.what set to <CODEBASE_SUBSET>\"";
9
+ /** `prompts/presets/market_research.md` */
10
+ export declare const PRESETS_MARKET_RESEARCH = "- Make a thorough market research\n- Write it to `knowledge-base/MARKET_RESEARCH.md`\n- Put this entry on the queue with `queue add` (from the `queue` skill): \"Read <SESSION_NAME> then suggest new tickets\"\n\nSESSION_NAME: the name of the session";
11
+ /** `prompts/presets/plan_tickets.md` */
12
+ export declare const PRESETS_PLAN_TICKETS = "Use the `tickets` skill. Run `tickets list` and, for the <COUNT> most important tickets that are neither planned nor locked, put the following on the queue:\n- `queue add \"Create tickets/<TICKET>.plan.md\" --priority <N>` (from the `queue` skill)\n\nPick each entry's priority following a mix of sensible criteria after reading the ticket (`tickets show <TICKET>.md`; e.g. if the ticket seems low effort => higher priority).\n\nCOUNT: 10";
13
+ /** `prompts/presets/readability.md` */
14
+ export declare const PRESETS_READABILITY = "Refactor ${{ tf.params.what }} to make it as easy as possible for humans to read:\n- Pinnacle architectural split\n - Does each file and each <FUNCTION> represent a sensible and natural abstraction?\n - Rate the *seams*, not just the boxes: for each call site, ask whether the responsibility sits on the right side of the boundary \u2014 should a caller's wrapper move down into the callee (or vice versa)? A <FUNCTION> can be clean, DRY and well-tested in isolation yet still be in the wrong place. \"Well-factored\" is not \"well-located\".\n- Linearity (for humans)\n - Put yourself in the shoes of a human reader who reads everything in a linear fashion\n - Top to bottom: place callers above callees so readers encounter high-level logic before implementation details (humans think high-level first)\n - Altitude pass: for each entry-point / orchestration <FUNCTION>, read it top-to-bottom as prose. Flag any line that drops the reader into lower-level mechanism (a flag, a thunk, a log verb, error plumbing) in the middle of what should be a high-level narrative. For each, ask: can that mechanism move down into the callee so the caller reads at one consistent altitude? Prioritize the reading path of all the <FUNCTION> a reader hits first.\n- Before starting to work: list *ALL* files and *ALL* <FUNCTION> in this chat, rate them all (0: convoluted abstraction, hard to read, wrong place \u2014 10: perfect), and give a reason for your rating\n - DON'T skip any file nor any <FUNCTION> in your rating list \u2014 write an extra separated list in this chat of all files and all <FUNCTION> and put a \u2705 tick to each entry to double check whether you forgot to rate something. So two lists: one list of ratings & explanation, and a second confirmation list.\n- Separate commit for each refactor\n- Work until it's exceptionally good. We as an expert team will check against every little detail.\n - If we see that you gave mostly a 10/10 rating, that's a sign you've been lazy... so make sure you scrutinize everything and spend a substantial amount of time. We don't want to prompt you again and again to achieve quality \u2014 autonomously strive for quality on your own without us pushing you.\n- Give summary of what you worked on: print the lists again with old rating => new rating with link to commit(s)\n\nFUNCTION: an actual function or a class, procedure, etc. (anything that represents a unit of logic)";
15
+ /** `prompts/presets/research.md` */
16
+ export declare const PRESETS_RESEARCH = "Measure \"problem variability\" of ${{ tf.params.what }}\n- List all high-level flows the code implements, i.e. the list of all \"problems\" the code solves\n- Give a rating for each problem (from 0 to 10) following this criteria: does the code solves the problem in an obviously optimal way (10), or is it highly unclear whether the problem can be solved in a better way (0)?\n- Write down the ratings in a new file <REVIEW_FILE>\n- Show the list to the user and enable him to select problems via `showMultiSelect()`, <AWAIT>\n - Set default to `true` for entries with low rating\n- For all problems the user selected, add a new entry to <TODO_FILE>\n - The entry: \"Deep-dive research for alternative solutions, see <REVIEW_FILE>\"\n\nAWAIT: Stop, await user answer before resuming\nREVIEW_FILE: `REVIEW-PROBLEMS_<SESSION_NAME>.agent.md`\nTODO_FILE: `TODO_<SESSION_NAME>.agent.md`\nSESSION_NAME: the name of the current Git branch \u2014 sanitize it to be a SLUG, if name is generic (e.g. `main`) then create a succinct SLUG";
17
+ /** `prompts/presets/security_audit.md` */
18
+ export declare const PRESETS_SECURITY_AUDIT = "Security audit ${{ tf.params.what }}\n- Scrutinize the entire code for potential security issues\n- Make it exhaustive (100% coverage)\n- List every aspect you considered and, for each aspect, include a verdict as well as an explanation for non-obvious verdicts\n- If you see any security issue, fix each security issue in a separate commit";
19
+ /** `prompts/presets/suggest_new_features.md` */
20
+ export declare const PRESETS_SUGGEST_NEW_FEATURES = "1. Study what this product does today: skim the README, the docs, and the main user-facing surfaces, plus the existing tickets (`tickets list`, from the `tickets` skill)\n2. Think like a product manager and propose net-new features the product should have next\n - Net-new capabilities a user would want, not bugs, refactors, or chores\n - Skip anything an existing ticket already covers, and anything already built\n - Favour features that fit the product's direction and are worth building\n3. Write each proposed feature as a new ticket with `tickets put <DATE>_<SLUG>.md`, following the ticket format the `tickets` skill gives\n4. Show a short summary of what you proposed via `showMarkdown()`";
21
+ /** `prompts/presets/suggest_new_tickets.md` */
22
+ export declare const PRESETS_SUGGEST_NEW_TICKETS = "Suggest new tickets, and write each with `tickets put <DATE>_<SLUG>.md` in the ticket format the `tickets` skill gives (use the skill; `tickets list` shows the existing tickets)";
23
+ /** `prompts/presets/suggest_tickets_to_work_on.md` */
24
+ export declare const PRESETS_SUGGEST_TICKETS_TO_WORK_ON = "1. Look at all tickets (`tickets list`, from the `tickets` skill) and pick tickets to work on next\n2. Show the tickets you picked via `showMultiSelect()`\n - For each ticket, if high confidence the ticket is a good candidate to work on next => set its default to `true`, otherwise `false`\n3. <AWAIT>\n4. Put each approved ticket on the queue: `queue add \"[<title>](tickets/<file>)\" --priority <N>` (from the `queue` skill; <N> the ticket's `Priority:`, 5 when it has none)\n\nAWAIT: Stop, await user answer before resuming";
25
+ /** `prompts/presets/triage_consensual.md` */
26
+ export declare const PRESETS_TRIAGE_CONSENSUAL = "1. Use the `tickets` skill. Look at all tickets (`tickets list`; `effort` and `uncertainty` are in its output) and choose tickets to work on next\n - Only pick tickets that are significant (no quick-wins) and consensual (zero open questions, zero variability, e.g. a single fairly obvious plan)\n2. Put each picked ticket on the queue: `queue add \"[<title>](tickets/<file>)\" --priority <N>` (from the `queue` skill; <N> the ticket's `Priority:`, 5 when it has none)\n\nAlways set <SESSION_NAME> to triage-consensual";
27
+ /** `prompts/presets/triage_quick.md` */
28
+ export declare const PRESETS_TRIAGE_QUICK = "Use the `tickets` skill. Look at all tickets (`tickets list`; `effort` and `uncertainty` are in its output) and choose tickets to work on next:\n- Pick a ticket if it has a plan that shows it's a quick-win (low `effort` value) with `uncertainty: 0`\n- Put each picked ticket on the queue: `queue add \"[<title>](tickets/<file>)\" --priority <N>` (from the `queue` skill)\n - With sensible prioritization, and consider bumping the priority of lowest effort tickets (e.g. to make `effort: 0` the next tasks agents work on)\n\nAlways set <SESSION_NAME> to triage-quick";
29
+ /** `prompts/presets/update_tickets.md` */
30
+ export declare const PRESETS_UPDATE_TICKETS = "Use the `tickets` skill. Update the tickets from this repo's GitHub issues, bringing across what has changed since the last import rather than starting over.\n\nNote the current UTC time before you fetch anything, in ISO 8601. That is the timestamp you will record at the end, and taking it first is deliberate: an issue edited while you work is then picked up by the next update instead of being missed.\n\nRead `lastImportedAt` off `tickets/meta.json` (`git show origin/agent-data:tickets/meta.json` after `git fetch origin tickets`; `tickets list` says whether there are tickets).\n\nDo one of the following:\n- [Error] If there are existing tickets but `lastImportedAt` is missing, or `gh` is missing or logged out, report the error \u2014 say which of those it is \u2014 and abort\n- [Empty] If there are no tickets, treat it as a first import and bring every open issue across\n- [Update] Fetch only what changed: `gh issue list --state all --limit 500 --json number,title,body,state,labels,updatedAt --search \"updated:>=<lastImportedAt>\"`, and the discussion with `gh api --paginate \"repos/{owner}/{repo}/issues/comments?since=<lastImportedAt>\"`\n\nThen reconcile, one ticket file per issue, each written with `tickets put <file>`:\n- An issue with no ticket yet gets one\n- An issue that already has a ticket has that ticket updated in place. Keep its filename, and keep its `.plan.md` but consider setting `outdated: yes`.\n- New comments are worth folding into the ticket only where they change what the work is. Do not paste the thread.\n- If an issue is now closed, `tickets close <file>` removes its ticket with its `.plan.md` and `.lock.md`\n\nFinish with `tickets put meta.json` writing `{\"lastImportedAt\": \"<the UTC time you noted at the start>\"}`, and say in one line how many tickets you added, updated and removed.";
31
+ /** `prompts/presets/ux.md` */
32
+ export declare const PRESETS_UX = "Review all UI flows of ${{ tf.params.what }}\n1. Before starting to work: list *ALL* UI flows\n - DON'T skip any UI flow (100% coverage)\n2. Then, give a UX rating for each UI flow (10: perfect UX, 0: unusable UX), and give a reason for your rating\n3. Improve UI flows with bad UX rating\n - Separate commit for each UI flow you improved\n - Work until it's exceptionally good. We as an expert team will check against every little detail.\n - If we see that you gave mostly a 10/10 rating, that's a sign you've been lazy... so make sure you scrutinize everything and spend a substantial amount of time. We don't want to prompt you again and again to achieve quality \u2014 autonomously strive for quality on your own without us pushing you.\n - Give summary of what you worked on: print the UI flow list again with old rating => new rating with link to commits";
33
+ /** `prompts/protocols/await.md` */
34
+ export declare const PROTOCOLS_AWAIT = "## Awaiting a choice\nWhen these instructions tell you to showChoices() / showMultiSelect() / showMarkdown() and then AWAIT, do not decide for the user.\nEnd your turn with one fenced code block, then stop.\nTag it `await-choices`:\n```await-choices\n{ \"title\": \"<the question>\", \"options\": [{ \"label\": \"<option>\", \"detail\": \"<optional one-liner>\" }], \"recommended\": \"<the label to default to>\" }\n```\nEvery question you stop to ask is this one block, whatever it is about:\n- An approval is two options: `{ \"title\": \"Ship this?\", \"options\": [{ \"label\": \"Approve\" }, { \"label\": \"Decline\", \"stop\": true }], \"recommended\": \"Approve\" }`.\n- A plan or document you wrote and want signed off adds `\"file\": \"PLAN_<slug>.agent.md\"`, and the framework shows that file beside the question.\n- Several answers at once (showMultiSelect) adds `\"multi\": true`, and `\"default\": true` on the entries that start checked.\n- `recommended` is what the framework picks when nobody is there to answer, so name the option that is safe to take unattended \u2014 never an option marked `stop`.\n- `\"stop\": true` marks an answer that ends the session instead of resuming you: the user is taking over and will come back with fresh instructions. Mark the option that rejects your work \u2014 declining a plan, saying no to the approach \u2014 and leave it off everything else. You are not re-prompted with that answer, so do not plan around being told it.\n\nThe framework shows it, waits for the user, and re-prompts you with their answer. Do not continue past it on your own.\n\n## Handing the browser to a human\nWhen you are working in a browser and hit something you cannot or should not get past yourself \u2014 a login wall, a captcha, an SSO or 2FA step \u2014 stop and hand it over. Never type a password, never attempt a captcha, and never use a credential you found lying around in the repo or the environment. Ask with the same `await-choices` block, naming the page and recommending the option that is true when nobody is there:\n```await-choices\n{ \"title\": \"<what the human needs to do> (<the page you are stuck on>)\", \"options\": [{ \"label\": \"Handled it\" }, { \"label\": \"Could not handle it\" }], \"recommended\": \"Could not handle it\" }\n```\nThe user acts in that browser, then you are re-prompted. If their answer says it was not handled, do not retry the same page \u2014 say what you could not reach and work on what you can, or stop.\n\n## Showing a document without waiting\nTo display markdown in the side panel without blocking (a plan, a summary, a writeup) and keep working, put a `show-markdown` block anywhere in your turn. The first line is its title:\n```show-markdown\n# <title>\n<the markdown body>\n```\nThis just shows it; you do not stop. Re-emit the same title to update that view in place.";
35
+ /** `prompts/protocols/browser.md` */
36
+ export declare const PROTOCOLS_BROWSER = "## You have a real browser\n\nThis run has a real Chrome attached, through the `chrome-devtools` tools (`new_page`, `navigate_page`, `click`, `fill`, `take_snapshot`, `evaluate_script`). It is the same browser a human can watch and take over, so use it for anything you need to *see* or *act on*: pages that render their content with JavaScript, a flow you have to click through, a form to fill, an app you are checking actually works.\n\nWhen you only need to read a page, `WebFetch` is still the better tool: it is faster and hands you the text directly. Use the browser when `WebFetch` would come back with nothing useful, such as a page that is blank until its JavaScript runs.\n\nPrefer navigating within a single page rather than opening new pages, so the user can more easily watch you navigate.";
37
+ /** `prompts/protocols/hands_off.md` */
38
+ export declare const PROTOCOLS_HANDS_OFF = "## This session runs detached \u2014 land everything\nIt was handed to a remote service: no machine sees its workspace, and nothing here follows it to\nthe end. So before ending: commit your work on your session branch and open a pull request for\nit. If the deliverable is analysis, a plan, or a decision, write it into committed files \u2014 a\nresult that lives only in this conversation, or in a gitignored file, reaches nobody. End without\na pull request only when the task genuinely required no repository change, and say so explicitly\nin your final message.";
39
+ /** `prompts/protocols/signal.md` */
40
+ export declare const PROTOCOLS_SIGNAL = "## Ready for merge\nWhen you call setReadyForMerge() \u2014 you believe the work is complete and ready for human review \u2014 emit an empty `ready-for-merge` block. This flips the dashboard status from building to ready; it does not stop your turn.\n```ready-for-merge\n```\n\n## Opening a pull request\nWhenever you emit `ready-for-merge`, emit an `open-pr` block too, naming and describing the work. The Framework opens the pull request for you \u2014 you do not need to run `gh pr create` yourself. Write it like a commit message: the first line is the title, the rest is the body.\n```open-pr\n<one line naming what the change does, under 100 characters>\n\n<what changed, and why \u2014 markdown, as long as it needs to be>\n```\nWithout it the pull request has no name for your work and can only repeat the prompt you were given, which does not say what the work turned out to be. The Framework supplies the rest: the ticket's issue reference where there is one, and recording the number so every surface shows the same pull request. You do not stop, and you can re-emit it as the work changes \u2014 the last one is used. Opening the pull request yourself instead still works; you then own all of the above.\n\n## Reporting an error\nWhen you hit something only the user can fix \u2014 a missing file you were told to read, a command that will not run, a login you do not have \u2014 emit an `error` block saying what is wrong, then carry on or stop as the task requires. The first line is the headline; anything below it is the detail.\n```error\n<what is wrong, in one line>\n\n<the detail: what you ran, what it said>\n```\nThe Framework marks it in the session log and counts it on the session, so the user sees it without reading the whole log. It does not stop your turn and it does not ask the user anything \u2014 use `AWAIT` for a question. Report the same thing once: a re-emitted identical block is ignored.";
41
+ /** `prompts/system_prompt.md` */
42
+ export declare const SYSTEM_PROMPT = "# System prompt\n\nSHOW_MD: Show it via `showMarkdown()`\nSHOW_CHOICES: Show it via `showChoices()`\nAWAIT: Stop, await user answer before resuming\nSESSION_NAME: the name of the session\nTODO_FILE: the agent queue, `TODO_AGENTS.md` \u2014 add an entry with `queue add \"<entry>\" --priority <N>` from the `queue` skill\n\n## Analyze the user prompt\n\nAnalyze the user prompt and follow the instructions below.\n\n### Ambiguous prompt\n\nIf it isn't clear what you should do (e.g. unclear scope, unclear user prompt), make a list of interpretations sorted by plausibility, <SHOW_CHOICES>, <AWAIT>\n\n### Scope\n\n- If the scope of what you'll work on is *large*, create a `PLAN_<SESSION_NAME>.agent.md` of what you'll work on, <SHOW_MD>, <AWAIT>\n- If the scope is potentially *very large* (e.g. spans over many hours/days of work), consider adding entries to <TODO_FILE> (backlog of follow-up tasks) and show new entries <SHOW_MD>\n\n\n## Before starting changes\n\nDo the following before applying your first change.\n\n### Session name\n\n1. Create a <SESSION_NAME> as a string [a-z0-9-]+ that succinctly represents the intention of the user prompt\n2. Name your branch after it: use the `branches` skill, which says how. Where that skill is not available, the \"Branch management\" section below says how instead. If the name you end up with differs, that is your <SESSION_NAME> from now on\n\n\n## Before applying changes\n\nDo the following before applying changes \u2014 do it again anytime you make new changes.\n\n### Alternatives\n\nMeasure \"variability\":\n- List all high-level problems that you're about to solve\n- Give a rating to each problem (from 0 to 10) following this criteria: is there an obviously optimal way to solve the problem (10), or is it highly unclear whether the problem can be solved in a better way (0)?\n- Explore and suggest alternatives for problems with a low rating\n- For each problem that has alternatives: list all alternatives sorted in a sensible order, <SHOW_CHOICES>, <AWAIT>\n\n\n## After applying changes\n\nAfter you're done, decide: is <SESSION_NAME> finished, with no work left to do?\n- Yes: call setReadyForMerge() \u2014 required, the work is never merged without it\n- No: don't call it; say what's left instead\n\n\n\n# User prompt\n\n${{tf.prompt}}";
43
+ /** `prompts/tickets_yourself.md` */
44
+ export declare const TICKETS_YOURSELF = "# Tickets and the agent queue, without the commands\n\nThe `tickets` and `queue` commands are not available here. The tickets and the queue described below live on the branch `agent-data` of this repository; do with git what the commands would do:\n\n- Read: `git fetch origin agent-data`, then `git show origin/agent-data:<FILE>` (e.g. `origin/agent-data:TODO_AGENTS.md`, `origin/agent-data:tickets/<DATE>_<SLUG>.md`).\n- Write, only when your instructions say to change tickets or the queue: commit the change on a checkout of `origin/agent-data` (`git worktree add --detach <dir> origin/agent-data`) and push it straight to the branch (`git push origin HEAD:refs/heads/agent-data`); on a rejected push, fetch, rebase and push again. Never switch your own checkout to the branch, and never put these files on your own branch.\n- Claim: a ticket is claimed by adding `tickets/<DATE>_<SLUG>.lock.md` holding `CLAIMED: <holder>` \u2014 `$AGENT_ID` when your environment has it, else your branch name. If the push of the lock is rejected because that file now exists, someone else claimed the ticket first: back off and pick another; never remove or overwrite their lock.";
45
+ /** `prompts/triage_scope.md` */
46
+ export declare const TRIAGE_SCOPE = "You only queue work, you never do it: the only thing you change is the queue, through `queue add`. Do not implement a ticket, however small its plan \u2014 no code changes, no pull request for it. Every ticket you pick goes on the queue, where a human can still veto it before an agent implements it.";
47
+ /** `@gemstack/skill-tickets/SKILL.md` */
48
+ export declare const TICKETS_SKILL = "# Tickets\n\nThe tickets (`tickets/<DATE>_<SLUG>.md`, with their `.plan.md` and `.lock.md` siblings) live on the branch `agent-data`, never on a code branch. A `tickets` link at the repository root, if present, shows a possibly stale copy; never write there. The command reads fresh.\n\nRead and change them with the `tickets` command, a dependency of this repository (`@gemstack/skill-tickets`), run as `npx tickets`. When that fails for a missing `node_modules`, install with the lockfile's package manager (`npm install` for `package-lock.json`) and run it again. Every change it makes is one commit pushed straight to the `agent-data` branch. A refusal exits 1 with a line on stderr; a wrong command line exits 2 with the usage.\n\n## Read\n\n```\nnpx tickets list every open ticket, as one JSON array: file, title, summary, priority, topics,\n github, pr, date, planned, effort, uncertainty, locked, lockedBy\n (priority, topics, github, pr, effort, uncertainty, locked, lockedBy\n absent when unset; pr set means the ticket is in review)\nnpx tickets show <file> one ticket: its text, its plan, who holds it\nnpx tickets meta when the tickets last caught up with the issue tracker:\n {\"lastImportedAt\": <ISO 8601>}, or {} when no import was recorded\n```\n\n## Change\n\n```\nnpx tickets put <file> write one file under tickets/ from stdin, the whole file, creating it if new;\n empty stdin writes an empty file\n (npx tickets put <file> < draft.md): a ticket or a plan\nnpx tickets close <file> once the work is merged, or the ticket is not wanted: remove the ticket\n with its plan and lock; refused while someone else holds it; its queue\n entry, if any, stays: `npx queue done` it\n```\n\n## Queue a ticket\n\nWhen the repository has the `queue` skill, a ticket goes on the agent queue as a link, its title as the label, at the ticket's own `Priority:` (5 when it has none):\n\n```\nnpx queue add \"[<title>](tickets/<file>)\" --priority <N>\n```\n\nOnce the work is committed and its pull request is open, `npx queue done` the entry, write the pull request into the ticket as its `PR:` line (`npx tickets put <file>` with the whole ticket, the line added above the title) and release your claim: the ticket is in review. Do not close it: it closes when the pull request merges, through the update from the issue tracker. The pull request's body names the ticket it closes with a line `Closes tickets/<file>`, and the issue with `Closes #<number>` when the ticket has one.\n\n## Claim before you plan or work a ticket\n\n```\nnpx tickets claim <file> {\"ok\":true,\"file\":\u2026,\"holder\":\u2026} \u2014 the ticket is yours\n {\"ok\":false,\"reason\":\"claimed\",\"holder\":\u2026,\"file\":\u2026} \u2014 someone else's\n (no holder when the lock's line does not parse): pick another; never remove\n or overwrite their lock. A claim guards claim, close and release;\n put overwrites whoever holds the ticket\nnpx tickets release <file> lift your own claim when the plan or the work is done, and before you\n stop unless you closed it; nothing lifts it on a timeout\n```\n\nEvery `<file>` above takes a ticket's filename (`2042-01-01_some-ticket.md`) or the `tickets/\u2026` path a queue entry links to; `put` also takes that ticket's `.plan.md` name, and writes a plan for a ticket that does not exist, without complaint, invisible to `show`. You claim as `AGENT_ID` when it is set, else as your current branch (so a rename or a branch switch between claim and release changes who you are: release from the branch you claimed on, or the lock stays until a person edits the branch).\n\n## Formats\n\n### A ticket: `tickets/<DATE>_<SLUG>.md`\n\nDATE: yyyy-mm-dd. SLUG: a succinct kebab-case slug of the ticket title.\n\n```md\nPriority: 0-10 [optional, 10: critical \u2014 act immediately, 0: only if capacity]\nTopics: [list-of-topics] [optional]\nGitHub: [#42](https://github.com/org/repo/issues/42) [optional]\nPR: [#1790](https://github.com/org/repo/pull/1790) [optional: the pull request that closes this ticket, once one is open]\n\n# Ticket title\n\n## TLDR\n\n...\n\n## Why it matters\n\n...\n\n[optional: more info (any heading and format you want)]\n```\n\nA ticket with a `PR:` line is in review: skip it when choosing work, and never queue it again while the line stands; remove the line to have it worked again. `Priority:`, `Effort:` and `Uncertainty:` are bare whole numbers above the `# ` title; anything else reads as absent for queue placement and the scales, and a ticket with no readable `Priority:` queues at 5.\n\n### A claim: `tickets/<DATE>_<SLUG>.lock.md`\n\nWritten by `npx tickets claim`, removed by `npx tickets release` or `npx tickets close`. One line: `CLAIMED: <holder>`.\n\n### A plan: `tickets/<DATE>_<SLUG>.plan.md`\n\nThe plan for an existing ticket (`tickets/2042-01-01_some-ticket.md` \u2192 `tickets/2042-01-01_some-ticket.plan.md`).\n\n```md\nEffort: 0-10 [0: implementation is trivial, 10: implementation takes months]\nUncertainty: 0-10 [0: implementation without meaningful alternatives, 10: highly uncertain how to implement]\nOutdated: yes [optional, only if the ticket was updated in a way that makes the plan outdated]\n\n# [Plan] Ticket title\n\nSingle sentence describing this file's content.\n\n## TLDR [optional]\n\nBrief overview of this file's content.\n\n## Problems [optional]\n\nList of all significant aspects with low confidence on how to implement, with explanation why uncertain.\n\n## Solutions [optional]\n\nFor each problem, list of ways to solve the problem (including meaningful shortcuts, for quicker implementation).\n\n## Considerations [optional]\n\nExhaustive list of all significant aspects to be considered (including edge cases).\n\n## Implementation [optional]\n\nConcrete plan to implement the ticket.\n```\n\nNotes:\n- Covers both spiking (e.g. high-level research without implementation plan) and planning (e.g. concrete implementation proposal)\n- The `.plan.md` file can be modified multiple times over an extended period (e.g. a ticket requiring repeated human intervention, transitioning from spiking to concrete plan)\n- All sections are just proposals and optional: you can use any headings with any format\n- The uncertainty value:\n - Gauges whether there are *significant* alternatives, minor variability such as syntax should be ignored\n - Is used for evaluating whether human intervention is needed (0 => clearly no human intervention needed)\n- Example of how to gauge uncertainty and alternatives:\n - List all aspects that need to be considered\n - Give an uncertainty rating (0-10) to each aspect following this criteria: is there an obviously optimal way to implement it (0), or is it highly unclear whether it can be implemented in a better way (10)?\n - Explore and suggest alternatives for each aspect with a low rating";
49
+ /** `@gemstack/skill-queue/SKILL.md` */
50
+ export declare const QUEUE_SKILL = "# The agent queue\n\nThe agent queue (`TODO_AGENTS.md`) lives on the branch `agent-data`, never on a code branch; your checkout does not contain it. It lists every task agents will work on next, in the order they will be taken.\n\nRead and change it with the `queue` command, a dependency of this repository (`@gemstack/skill-queue`), run as `npx queue`. When that fails for a missing `node_modules`, install with the lockfile's package manager (`npm install` for `package-lock.json`) and run it again. Every change it makes is one commit pushed straight to the `agent-data` branch. A refusal exits 1 with a line on stderr; a wrong command line exits 2 with the usage.\n\n## Read\n\n```\nnpx queue the open entries, in order of work, as one JSON array\n```\n\n## Change\n\n```\nnpx queue add <text> [--priority N]\n put an entry on the queue; --priority (0-10) places it in that\n section; without it, the entry goes at the end of the file\nnpx queue done <entry> remove an entry: one quoted argument, exactly as `npx queue`\n printed it; done means deleted\n```\n\n## Format\n\n```md\n## Priority 10 (critical \u2014 act immediately)\n\n...\n\n## Priority 9\n\n- [Succinct description](/link-for-more-details)\n- Or self-contained TODO item with complete description of what should be done\n\n...\n\n## Priority 0 (only if capacity)\n\n...\n```\n\nThe queue lists *all* tasks AI will work on next, sorted by priority. Priority 10 is rarely used (e.g. critical production bugs) and is treated as the utmost priority. Within a priority, the first tasks have higher priority (they are the \"next\" tasks within that \"priority queue\"). A done entry is removed (`npx queue done`).";
51
+ /** `@gemstack/skill-logs/SKILL.md` */
52
+ export declare const LOGS_SKILL = "# Agent logs\n\nEvery run an agent made on this project leaves a record on the branch `agent-data`, never on a code branch; your checkout does not contain it. A run is two files under `agents/<who>/`: the card, `<id>.json` \u2014 what was asked, the ticket, the branch, the pull request, how it ended, what it cost \u2014 and the diary, `<id>.jsonl` \u2014 what the agent said along the way, its result.\n\nRead them with the `logs` command, a dependency of this repository (`@gemstack/skill-logs`), run as `npx logs`. When that fails for a missing `node_modules`, install with the lockfile's package manager (`npm install` for `package-lock.json`) and run it again. The command only reads: the program that ran an agent records its run, at its end. A refusal exits 1 with a line on stderr; a wrong command line exits 2 with the usage.\n\n## Read\n\n```\nnpx logs [--ticket <file>] [--branch <name>] [--limit N]\n the runs, newest first, as one JSON array of cards \u2014 the newest 20\n unless --limit says otherwise; --ticket keeps the runs that worked\n one ticket (its filename, or the path a queue entry links to);\n --branch the runs on one branch\nnpx logs show <id> one run: its card, plus `diary`, the lines of what the agent\n said, its result, how it ended, and what it cost\n```\n\n## Before you plan or work a ticket, read its runs\n\n```\nnpx logs --ticket <file>\n```\n\nA ticket, or a queue entry that links one, may have been worked before. A `stopped` or `failed` run tells you what to avoid: `npx logs show <id>` for what that agent said before it ended. A `done` run with a `pr` means the work may already be there: read the pull request before doing it again. A run with no ticket is found by `--branch`, or in the list.\n\n## The card\n\n```json\n{\n \"id\": \"2026-09-08T18-14-30-111Z\",\n \"startedAt\": \"2026-09-08T18:14:30.651Z\",\n \"endedAt\": \"2026-09-08T18:15:40.433Z\",\n \"status\": \"done\",\n \"intent\": \"what the agent was asked to do\",\n \"driver\": \"claude-code\",\n \"model\": \"opus\",\n \"branch\": \"agent-2026-09-08T18-14-30-111Z\",\n \"pr\": { \"number\": 1765, \"url\": \"https://github.com/org/repo/pull/1765\" },\n \"ticket\": \"tickets/2026-09-01_some-ticket.md\",\n \"cost\": 0.62\n}\n```\n\n`status` is `running`, `done`, `stopped`, `failed` or `waiting` (ended on a question the agent asked, until it is answered). `cost` is in US dollars. Every field but `id`, `startedAt` and `status` is absent when unknown. The program that wrote the card may keep its own bookkeeping under one more key, `caller`; the command never prints it.\n\n## The diary\n\nOne JSON object per line. Four kinds are the agent's, in the order they happened:\n\n```\n{\"kind\":\"said\",\"text\":\"\u2026\"} something the agent said\n{\"kind\":\"result\",\"text\":\"\u2026\"} the agent's final answer for a turn\n{\"kind\":\"cost\",\"usd\":0.62} what a stretch of the run cost, in US dollars\n{\"kind\":\"ended\",\"status\":\"failed\",\"detail\":\"\u2026\"} how the run ended; detail when it did not end well\n```\n\nAny other kind of line is the writing program's own; `show` leaves it out.";
53
+ //# sourceMappingURL=prompts.generated.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompts.generated.d.ts","sourceRoot":"","sources":["../src/prompts.generated.ts"],"names":[],"mappings":"AAGA,mCAAmC;AACnC,eAAO,MAAM,eAAe,iTAA4S,CAAA;AAExU,8CAA8C;AAC9C,eAAO,MAAM,0BAA0B,8mCAAymC,CAAA;AAEhpC,2CAA2C;AAC3C,eAAO,MAAM,uBAAuB,gIAAgI,CAAA;AAEpK,uCAAuC;AACvC,eAAO,MAAM,mBAAmB,+fAA+f,CAAA;AAE/hB,2CAA2C;AAC3C,eAAO,MAAM,uBAAuB,6PAA6P,CAAA;AAEjS,wCAAwC;AACxC,eAAO,MAAM,oBAAoB,2bAA2b,CAAA;AAE5d,uCAAuC;AACvC,eAAO,MAAM,mBAAmB,m4EAA02E,CAAA;AAE14E,oCAAoC;AACpC,eAAO,MAAM,gBAAgB,ygCAAogC,CAAA;AAEjiC,0CAA0C;AAC1C,eAAO,MAAM,sBAAsB,yVAAyV,CAAA;AAE5X,gDAAgD;AAChD,eAAO,MAAM,4BAA4B,osBAAosB,CAAA;AAE7uB,+CAA+C;AAC/C,eAAO,MAAM,2BAA2B,sLAAsL,CAAA;AAE9N,sDAAsD;AACtD,eAAO,MAAM,kCAAkC,ohBAAohB,CAAA;AAEnkB,6CAA6C;AAC7C,eAAO,MAAM,yBAAyB,4gBAA4gB,CAAA;AAEljB,wCAAwC;AACxC,eAAO,MAAM,oBAAoB,2jBAA2jB,CAAA;AAE5lB,0CAA0C;AAC1C,eAAO,MAAM,sBAAsB,szDAA4yD,CAAA;AAE/0D,8BAA8B;AAC9B,eAAO,MAAM,UAAU,82BAAy2B,CAAA;AAEh4B,mCAAmC;AACnC,eAAO,MAAM,eAAe,ozFAAsxF,CAAA;AAElzF,qCAAqC;AACrC,eAAO,MAAM,iBAAiB,uyBAAuyB,CAAA;AAEr0B,uCAAuC;AACvC,eAAO,MAAM,mBAAmB,2jBAAijB,CAAA;AAEjlB,oCAAoC;AACpC,eAAO,MAAM,gBAAgB,24DAAm2D,CAAA;AAEh4D,iCAAiC;AACjC,eAAO,MAAM,aAAa,ywEAA0vE,CAAA;AAEpxE,oCAAoC;AACpC,eAAO,MAAM,gBAAgB,spCAAipC,CAAA;AAE9qC,gCAAgC;AAChC,eAAO,MAAM,YAAY,iTAA4S,CAAA;AAErU,yCAAyC;AACzC,eAAO,MAAM,aAAa,+pOAAknO,CAAA;AAE5oO,uCAAuC;AACvC,eAAO,MAAM,WAAW,oxDAA+wD,CAAA;AAEvyD,sCAAsC;AACtC,eAAO,MAAM,UAAU,8yGAA2wG,CAAA"}
@@ -0,0 +1,55 @@
1
+ // Generated from prompts/**/*.md by scripts/gen-prompts.mjs. Do not edit.
2
+ // Edit the markdown instead; this file is rebuilt on every build/test/typecheck.
3
+ /** `prompts/branch_yourself.md` */
4
+ export const BRANCH_YOURSELF = "# Branch management\n\nThe `branches` command is not available here. Create and check out the branch `agent-<SESSION_NAME>` yourself (`$ git checkout -b agent-<SESSION_NAME>`), and commit your work to it as you go. Only what you committed is ever published — nothing is committed on your behalf.";
5
+ /** `prompts/on_before_mergeable_prompt.md` */
6
+ export const ON_BEFORE_MERGEABLE_PROMPT = "TODO_FILE: the agent queue, `TODO_AGENTS.md` — add an entry with `queue add \"<entry>\"` from the `queue` skill\n\n## Maintenance\n\nIf the changes introduced by ${{ tf.session_name }} aren't trivial and have refactor potential, add the following to <TODO_FILE>\n- `Apply ${{ tf.presets.maintainability.filePath }} with tf.params.what set to \"changes introduced by ${{ tf.session_name }}\"`\nIf the changes introduced by ${{ tf.session_name }} can potentially lead to security issues, add the following to <TODO_FILE>\n- `Apply ${{ tf.presets.security_audit.filePath }} with tf.params.what set to \"changes introduced by ${{ tf.session_name }}\"`\n\n\n## Business knowledge\n\nIf you didn't already, consider updating the following based on the changes and discussions of ${{ tf.session_name }} (you can create the files if they're missing):\n- `knowledge-base/DECISIONS.md` (decisions taken, and why)\n- `knowledge-base/FACTS.md` (non-obvious facts relevant to the project)\n- `knowledge-base/INSIGHTS.md` (insights relevant to the project)\n\nOnly write what a future agent would need and cannot get from the code itself.";
7
+ /** `prompts/presets/maintainability.md` */
8
+ export const PRESETS_MAINTAINABILITY = "Refactor ${{ tf.params.what }} to make it as maintainable as possible:\n- Look for maintainability red flags, and fix them.";
9
+ /** `prompts/presets/maintenance.md` */
10
+ export const PRESETS_MAINTENANCE = "Analyze ${{ tf.params.what }} and look for opportunities to refactor code.\n\nFor each codebase subset that needs it, put the following entries on the queue with `queue add \"<entry>\" --priority <N>` (from the `queue` skill; usually a low priority) and replace <CODEBASE_SUBSET> with a clear designation.\n- \"Apply ${{ tf.presets.maintainability.filePath }} with tf.params.what set to <CODEBASE_SUBSET>\"\n- \"Apply ${{ tf.presets.security_audit.filePath }} with tf.params.what set to <CODEBASE_SUBSET>\"";
11
+ /** `prompts/presets/market_research.md` */
12
+ export const PRESETS_MARKET_RESEARCH = "- Make a thorough market research\n- Write it to `knowledge-base/MARKET_RESEARCH.md`\n- Put this entry on the queue with `queue add` (from the `queue` skill): \"Read <SESSION_NAME> then suggest new tickets\"\n\nSESSION_NAME: the name of the session";
13
+ /** `prompts/presets/plan_tickets.md` */
14
+ export const PRESETS_PLAN_TICKETS = "Use the `tickets` skill. Run `tickets list` and, for the <COUNT> most important tickets that are neither planned nor locked, put the following on the queue:\n- `queue add \"Create tickets/<TICKET>.plan.md\" --priority <N>` (from the `queue` skill)\n\nPick each entry's priority following a mix of sensible criteria after reading the ticket (`tickets show <TICKET>.md`; e.g. if the ticket seems low effort => higher priority).\n\nCOUNT: 10";
15
+ /** `prompts/presets/readability.md` */
16
+ export const PRESETS_READABILITY = "Refactor ${{ tf.params.what }} to make it as easy as possible for humans to read:\n- Pinnacle architectural split\n - Does each file and each <FUNCTION> represent a sensible and natural abstraction?\n - Rate the *seams*, not just the boxes: for each call site, ask whether the responsibility sits on the right side of the boundary — should a caller's wrapper move down into the callee (or vice versa)? A <FUNCTION> can be clean, DRY and well-tested in isolation yet still be in the wrong place. \"Well-factored\" is not \"well-located\".\n- Linearity (for humans)\n - Put yourself in the shoes of a human reader who reads everything in a linear fashion\n - Top to bottom: place callers above callees so readers encounter high-level logic before implementation details (humans think high-level first)\n - Altitude pass: for each entry-point / orchestration <FUNCTION>, read it top-to-bottom as prose. Flag any line that drops the reader into lower-level mechanism (a flag, a thunk, a log verb, error plumbing) in the middle of what should be a high-level narrative. For each, ask: can that mechanism move down into the callee so the caller reads at one consistent altitude? Prioritize the reading path of all the <FUNCTION> a reader hits first.\n- Before starting to work: list *ALL* files and *ALL* <FUNCTION> in this chat, rate them all (0: convoluted abstraction, hard to read, wrong place — 10: perfect), and give a reason for your rating\n - DON'T skip any file nor any <FUNCTION> in your rating list — write an extra separated list in this chat of all files and all <FUNCTION> and put a ✅ tick to each entry to double check whether you forgot to rate something. So two lists: one list of ratings & explanation, and a second confirmation list.\n- Separate commit for each refactor\n- Work until it's exceptionally good. We as an expert team will check against every little detail.\n - If we see that you gave mostly a 10/10 rating, that's a sign you've been lazy... so make sure you scrutinize everything and spend a substantial amount of time. We don't want to prompt you again and again to achieve quality — autonomously strive for quality on your own without us pushing you.\n- Give summary of what you worked on: print the lists again with old rating => new rating with link to commit(s)\n\nFUNCTION: an actual function or a class, procedure, etc. (anything that represents a unit of logic)";
17
+ /** `prompts/presets/research.md` */
18
+ export const PRESETS_RESEARCH = "Measure \"problem variability\" of ${{ tf.params.what }}\n- List all high-level flows the code implements, i.e. the list of all \"problems\" the code solves\n- Give a rating for each problem (from 0 to 10) following this criteria: does the code solves the problem in an obviously optimal way (10), or is it highly unclear whether the problem can be solved in a better way (0)?\n- Write down the ratings in a new file <REVIEW_FILE>\n- Show the list to the user and enable him to select problems via `showMultiSelect()`, <AWAIT>\n - Set default to `true` for entries with low rating\n- For all problems the user selected, add a new entry to <TODO_FILE>\n - The entry: \"Deep-dive research for alternative solutions, see <REVIEW_FILE>\"\n\nAWAIT: Stop, await user answer before resuming\nREVIEW_FILE: `REVIEW-PROBLEMS_<SESSION_NAME>.agent.md`\nTODO_FILE: `TODO_<SESSION_NAME>.agent.md`\nSESSION_NAME: the name of the current Git branch — sanitize it to be a SLUG, if name is generic (e.g. `main`) then create a succinct SLUG";
19
+ /** `prompts/presets/security_audit.md` */
20
+ export const PRESETS_SECURITY_AUDIT = "Security audit ${{ tf.params.what }}\n- Scrutinize the entire code for potential security issues\n- Make it exhaustive (100% coverage)\n- List every aspect you considered and, for each aspect, include a verdict as well as an explanation for non-obvious verdicts\n- If you see any security issue, fix each security issue in a separate commit";
21
+ /** `prompts/presets/suggest_new_features.md` */
22
+ export const PRESETS_SUGGEST_NEW_FEATURES = "1. Study what this product does today: skim the README, the docs, and the main user-facing surfaces, plus the existing tickets (`tickets list`, from the `tickets` skill)\n2. Think like a product manager and propose net-new features the product should have next\n - Net-new capabilities a user would want, not bugs, refactors, or chores\n - Skip anything an existing ticket already covers, and anything already built\n - Favour features that fit the product's direction and are worth building\n3. Write each proposed feature as a new ticket with `tickets put <DATE>_<SLUG>.md`, following the ticket format the `tickets` skill gives\n4. Show a short summary of what you proposed via `showMarkdown()`";
23
+ /** `prompts/presets/suggest_new_tickets.md` */
24
+ export const PRESETS_SUGGEST_NEW_TICKETS = "Suggest new tickets, and write each with `tickets put <DATE>_<SLUG>.md` in the ticket format the `tickets` skill gives (use the skill; `tickets list` shows the existing tickets)";
25
+ /** `prompts/presets/suggest_tickets_to_work_on.md` */
26
+ export const PRESETS_SUGGEST_TICKETS_TO_WORK_ON = "1. Look at all tickets (`tickets list`, from the `tickets` skill) and pick tickets to work on next\n2. Show the tickets you picked via `showMultiSelect()`\n - For each ticket, if high confidence the ticket is a good candidate to work on next => set its default to `true`, otherwise `false`\n3. <AWAIT>\n4. Put each approved ticket on the queue: `queue add \"[<title>](tickets/<file>)\" --priority <N>` (from the `queue` skill; <N> the ticket's `Priority:`, 5 when it has none)\n\nAWAIT: Stop, await user answer before resuming";
27
+ /** `prompts/presets/triage_consensual.md` */
28
+ export const PRESETS_TRIAGE_CONSENSUAL = "1. Use the `tickets` skill. Look at all tickets (`tickets list`; `effort` and `uncertainty` are in its output) and choose tickets to work on next\n - Only pick tickets that are significant (no quick-wins) and consensual (zero open questions, zero variability, e.g. a single fairly obvious plan)\n2. Put each picked ticket on the queue: `queue add \"[<title>](tickets/<file>)\" --priority <N>` (from the `queue` skill; <N> the ticket's `Priority:`, 5 when it has none)\n\nAlways set <SESSION_NAME> to triage-consensual";
29
+ /** `prompts/presets/triage_quick.md` */
30
+ export const PRESETS_TRIAGE_QUICK = "Use the `tickets` skill. Look at all tickets (`tickets list`; `effort` and `uncertainty` are in its output) and choose tickets to work on next:\n- Pick a ticket if it has a plan that shows it's a quick-win (low `effort` value) with `uncertainty: 0`\n- Put each picked ticket on the queue: `queue add \"[<title>](tickets/<file>)\" --priority <N>` (from the `queue` skill)\n - With sensible prioritization, and consider bumping the priority of lowest effort tickets (e.g. to make `effort: 0` the next tasks agents work on)\n\nAlways set <SESSION_NAME> to triage-quick";
31
+ /** `prompts/presets/update_tickets.md` */
32
+ export const PRESETS_UPDATE_TICKETS = "Use the `tickets` skill. Update the tickets from this repo's GitHub issues, bringing across what has changed since the last import rather than starting over.\n\nNote the current UTC time before you fetch anything, in ISO 8601. That is the timestamp you will record at the end, and taking it first is deliberate: an issue edited while you work is then picked up by the next update instead of being missed.\n\nRead `lastImportedAt` off `tickets/meta.json` (`git show origin/agent-data:tickets/meta.json` after `git fetch origin tickets`; `tickets list` says whether there are tickets).\n\nDo one of the following:\n- [Error] If there are existing tickets but `lastImportedAt` is missing, or `gh` is missing or logged out, report the error — say which of those it is — and abort\n- [Empty] If there are no tickets, treat it as a first import and bring every open issue across\n- [Update] Fetch only what changed: `gh issue list --state all --limit 500 --json number,title,body,state,labels,updatedAt --search \"updated:>=<lastImportedAt>\"`, and the discussion with `gh api --paginate \"repos/{owner}/{repo}/issues/comments?since=<lastImportedAt>\"`\n\nThen reconcile, one ticket file per issue, each written with `tickets put <file>`:\n- An issue with no ticket yet gets one\n- An issue that already has a ticket has that ticket updated in place. Keep its filename, and keep its `.plan.md` but consider setting `outdated: yes`.\n- New comments are worth folding into the ticket only where they change what the work is. Do not paste the thread.\n- If an issue is now closed, `tickets close <file>` removes its ticket with its `.plan.md` and `.lock.md`\n\nFinish with `tickets put meta.json` writing `{\"lastImportedAt\": \"<the UTC time you noted at the start>\"}`, and say in one line how many tickets you added, updated and removed.";
33
+ /** `prompts/presets/ux.md` */
34
+ export const PRESETS_UX = "Review all UI flows of ${{ tf.params.what }}\n1. Before starting to work: list *ALL* UI flows\n - DON'T skip any UI flow (100% coverage)\n2. Then, give a UX rating for each UI flow (10: perfect UX, 0: unusable UX), and give a reason for your rating\n3. Improve UI flows with bad UX rating\n - Separate commit for each UI flow you improved\n - Work until it's exceptionally good. We as an expert team will check against every little detail.\n - If we see that you gave mostly a 10/10 rating, that's a sign you've been lazy... so make sure you scrutinize everything and spend a substantial amount of time. We don't want to prompt you again and again to achieve quality — autonomously strive for quality on your own without us pushing you.\n - Give summary of what you worked on: print the UI flow list again with old rating => new rating with link to commits";
35
+ /** `prompts/protocols/await.md` */
36
+ export const PROTOCOLS_AWAIT = "## Awaiting a choice\nWhen these instructions tell you to showChoices() / showMultiSelect() / showMarkdown() and then AWAIT, do not decide for the user.\nEnd your turn with one fenced code block, then stop.\nTag it `await-choices`:\n```await-choices\n{ \"title\": \"<the question>\", \"options\": [{ \"label\": \"<option>\", \"detail\": \"<optional one-liner>\" }], \"recommended\": \"<the label to default to>\" }\n```\nEvery question you stop to ask is this one block, whatever it is about:\n- An approval is two options: `{ \"title\": \"Ship this?\", \"options\": [{ \"label\": \"Approve\" }, { \"label\": \"Decline\", \"stop\": true }], \"recommended\": \"Approve\" }`.\n- A plan or document you wrote and want signed off adds `\"file\": \"PLAN_<slug>.agent.md\"`, and the framework shows that file beside the question.\n- Several answers at once (showMultiSelect) adds `\"multi\": true`, and `\"default\": true` on the entries that start checked.\n- `recommended` is what the framework picks when nobody is there to answer, so name the option that is safe to take unattended — never an option marked `stop`.\n- `\"stop\": true` marks an answer that ends the session instead of resuming you: the user is taking over and will come back with fresh instructions. Mark the option that rejects your work — declining a plan, saying no to the approach — and leave it off everything else. You are not re-prompted with that answer, so do not plan around being told it.\n\nThe framework shows it, waits for the user, and re-prompts you with their answer. Do not continue past it on your own.\n\n## Handing the browser to a human\nWhen you are working in a browser and hit something you cannot or should not get past yourself — a login wall, a captcha, an SSO or 2FA step — stop and hand it over. Never type a password, never attempt a captcha, and never use a credential you found lying around in the repo or the environment. Ask with the same `await-choices` block, naming the page and recommending the option that is true when nobody is there:\n```await-choices\n{ \"title\": \"<what the human needs to do> (<the page you are stuck on>)\", \"options\": [{ \"label\": \"Handled it\" }, { \"label\": \"Could not handle it\" }], \"recommended\": \"Could not handle it\" }\n```\nThe user acts in that browser, then you are re-prompted. If their answer says it was not handled, do not retry the same page — say what you could not reach and work on what you can, or stop.\n\n## Showing a document without waiting\nTo display markdown in the side panel without blocking (a plan, a summary, a writeup) and keep working, put a `show-markdown` block anywhere in your turn. The first line is its title:\n```show-markdown\n# <title>\n<the markdown body>\n```\nThis just shows it; you do not stop. Re-emit the same title to update that view in place.";
37
+ /** `prompts/protocols/browser.md` */
38
+ export const PROTOCOLS_BROWSER = "## You have a real browser\n\nThis run has a real Chrome attached, through the `chrome-devtools` tools (`new_page`, `navigate_page`, `click`, `fill`, `take_snapshot`, `evaluate_script`). It is the same browser a human can watch and take over, so use it for anything you need to *see* or *act on*: pages that render their content with JavaScript, a flow you have to click through, a form to fill, an app you are checking actually works.\n\nWhen you only need to read a page, `WebFetch` is still the better tool: it is faster and hands you the text directly. Use the browser when `WebFetch` would come back with nothing useful, such as a page that is blank until its JavaScript runs.\n\nPrefer navigating within a single page rather than opening new pages, so the user can more easily watch you navigate.";
39
+ /** `prompts/protocols/hands_off.md` */
40
+ export const PROTOCOLS_HANDS_OFF = "## This session runs detached — land everything\nIt was handed to a remote service: no machine sees its workspace, and nothing here follows it to\nthe end. So before ending: commit your work on your session branch and open a pull request for\nit. If the deliverable is analysis, a plan, or a decision, write it into committed files — a\nresult that lives only in this conversation, or in a gitignored file, reaches nobody. End without\na pull request only when the task genuinely required no repository change, and say so explicitly\nin your final message.";
41
+ /** `prompts/protocols/signal.md` */
42
+ export const PROTOCOLS_SIGNAL = "## Ready for merge\nWhen you call setReadyForMerge() — you believe the work is complete and ready for human review — emit an empty `ready-for-merge` block. This flips the dashboard status from building to ready; it does not stop your turn.\n```ready-for-merge\n```\n\n## Opening a pull request\nWhenever you emit `ready-for-merge`, emit an `open-pr` block too, naming and describing the work. The Framework opens the pull request for you — you do not need to run `gh pr create` yourself. Write it like a commit message: the first line is the title, the rest is the body.\n```open-pr\n<one line naming what the change does, under 100 characters>\n\n<what changed, and why — markdown, as long as it needs to be>\n```\nWithout it the pull request has no name for your work and can only repeat the prompt you were given, which does not say what the work turned out to be. The Framework supplies the rest: the ticket's issue reference where there is one, and recording the number so every surface shows the same pull request. You do not stop, and you can re-emit it as the work changes — the last one is used. Opening the pull request yourself instead still works; you then own all of the above.\n\n## Reporting an error\nWhen you hit something only the user can fix — a missing file you were told to read, a command that will not run, a login you do not have — emit an `error` block saying what is wrong, then carry on or stop as the task requires. The first line is the headline; anything below it is the detail.\n```error\n<what is wrong, in one line>\n\n<the detail: what you ran, what it said>\n```\nThe Framework marks it in the session log and counts it on the session, so the user sees it without reading the whole log. It does not stop your turn and it does not ask the user anything — use `AWAIT` for a question. Report the same thing once: a re-emitted identical block is ignored.";
43
+ /** `prompts/system_prompt.md` */
44
+ export const SYSTEM_PROMPT = "# System prompt\n\nSHOW_MD: Show it via `showMarkdown()`\nSHOW_CHOICES: Show it via `showChoices()`\nAWAIT: Stop, await user answer before resuming\nSESSION_NAME: the name of the session\nTODO_FILE: the agent queue, `TODO_AGENTS.md` — add an entry with `queue add \"<entry>\" --priority <N>` from the `queue` skill\n\n## Analyze the user prompt\n\nAnalyze the user prompt and follow the instructions below.\n\n### Ambiguous prompt\n\nIf it isn't clear what you should do (e.g. unclear scope, unclear user prompt), make a list of interpretations sorted by plausibility, <SHOW_CHOICES>, <AWAIT>\n\n### Scope\n\n- If the scope of what you'll work on is *large*, create a `PLAN_<SESSION_NAME>.agent.md` of what you'll work on, <SHOW_MD>, <AWAIT>\n- If the scope is potentially *very large* (e.g. spans over many hours/days of work), consider adding entries to <TODO_FILE> (backlog of follow-up tasks) and show new entries <SHOW_MD>\n\n\n## Before starting changes\n\nDo the following before applying your first change.\n\n### Session name\n\n1. Create a <SESSION_NAME> as a string [a-z0-9-]+ that succinctly represents the intention of the user prompt\n2. Name your branch after it: use the `branches` skill, which says how. Where that skill is not available, the \"Branch management\" section below says how instead. If the name you end up with differs, that is your <SESSION_NAME> from now on\n\n\n## Before applying changes\n\nDo the following before applying changes — do it again anytime you make new changes.\n\n### Alternatives\n\nMeasure \"variability\":\n- List all high-level problems that you're about to solve\n- Give a rating to each problem (from 0 to 10) following this criteria: is there an obviously optimal way to solve the problem (10), or is it highly unclear whether the problem can be solved in a better way (0)?\n- Explore and suggest alternatives for problems with a low rating\n- For each problem that has alternatives: list all alternatives sorted in a sensible order, <SHOW_CHOICES>, <AWAIT>\n\n\n## After applying changes\n\nAfter you're done, decide: is <SESSION_NAME> finished, with no work left to do?\n- Yes: call setReadyForMerge() — required, the work is never merged without it\n- No: don't call it; say what's left instead\n\n\n\n# User prompt\n\n${{tf.prompt}}";
45
+ /** `prompts/tickets_yourself.md` */
46
+ export const TICKETS_YOURSELF = "# Tickets and the agent queue, without the commands\n\nThe `tickets` and `queue` commands are not available here. The tickets and the queue described below live on the branch `agent-data` of this repository; do with git what the commands would do:\n\n- Read: `git fetch origin agent-data`, then `git show origin/agent-data:<FILE>` (e.g. `origin/agent-data:TODO_AGENTS.md`, `origin/agent-data:tickets/<DATE>_<SLUG>.md`).\n- Write, only when your instructions say to change tickets or the queue: commit the change on a checkout of `origin/agent-data` (`git worktree add --detach <dir> origin/agent-data`) and push it straight to the branch (`git push origin HEAD:refs/heads/agent-data`); on a rejected push, fetch, rebase and push again. Never switch your own checkout to the branch, and never put these files on your own branch.\n- Claim: a ticket is claimed by adding `tickets/<DATE>_<SLUG>.lock.md` holding `CLAIMED: <holder>` — `$AGENT_ID` when your environment has it, else your branch name. If the push of the lock is rejected because that file now exists, someone else claimed the ticket first: back off and pick another; never remove or overwrite their lock.";
47
+ /** `prompts/triage_scope.md` */
48
+ export const TRIAGE_SCOPE = "You only queue work, you never do it: the only thing you change is the queue, through `queue add`. Do not implement a ticket, however small its plan — no code changes, no pull request for it. Every ticket you pick goes on the queue, where a human can still veto it before an agent implements it.";
49
+ /** `@gemstack/skill-tickets/SKILL.md` */
50
+ export const TICKETS_SKILL = "# Tickets\n\nThe tickets (`tickets/<DATE>_<SLUG>.md`, with their `.plan.md` and `.lock.md` siblings) live on the branch `agent-data`, never on a code branch. A `tickets` link at the repository root, if present, shows a possibly stale copy; never write there. The command reads fresh.\n\nRead and change them with the `tickets` command, a dependency of this repository (`@gemstack/skill-tickets`), run as `npx tickets`. When that fails for a missing `node_modules`, install with the lockfile's package manager (`npm install` for `package-lock.json`) and run it again. Every change it makes is one commit pushed straight to the `agent-data` branch. A refusal exits 1 with a line on stderr; a wrong command line exits 2 with the usage.\n\n## Read\n\n```\nnpx tickets list every open ticket, as one JSON array: file, title, summary, priority, topics,\n github, pr, date, planned, effort, uncertainty, locked, lockedBy\n (priority, topics, github, pr, effort, uncertainty, locked, lockedBy\n absent when unset; pr set means the ticket is in review)\nnpx tickets show <file> one ticket: its text, its plan, who holds it\nnpx tickets meta when the tickets last caught up with the issue tracker:\n {\"lastImportedAt\": <ISO 8601>}, or {} when no import was recorded\n```\n\n## Change\n\n```\nnpx tickets put <file> write one file under tickets/ from stdin, the whole file, creating it if new;\n empty stdin writes an empty file\n (npx tickets put <file> < draft.md): a ticket or a plan\nnpx tickets close <file> once the work is merged, or the ticket is not wanted: remove the ticket\n with its plan and lock; refused while someone else holds it; its queue\n entry, if any, stays: `npx queue done` it\n```\n\n## Queue a ticket\n\nWhen the repository has the `queue` skill, a ticket goes on the agent queue as a link, its title as the label, at the ticket's own `Priority:` (5 when it has none):\n\n```\nnpx queue add \"[<title>](tickets/<file>)\" --priority <N>\n```\n\nOnce the work is committed and its pull request is open, `npx queue done` the entry, write the pull request into the ticket as its `PR:` line (`npx tickets put <file>` with the whole ticket, the line added above the title) and release your claim: the ticket is in review. Do not close it: it closes when the pull request merges, through the update from the issue tracker. The pull request's body names the ticket it closes with a line `Closes tickets/<file>`, and the issue with `Closes #<number>` when the ticket has one.\n\n## Claim before you plan or work a ticket\n\n```\nnpx tickets claim <file> {\"ok\":true,\"file\":…,\"holder\":…} — the ticket is yours\n {\"ok\":false,\"reason\":\"claimed\",\"holder\":…,\"file\":…} — someone else's\n (no holder when the lock's line does not parse): pick another; never remove\n or overwrite their lock. A claim guards claim, close and release;\n put overwrites whoever holds the ticket\nnpx tickets release <file> lift your own claim when the plan or the work is done, and before you\n stop unless you closed it; nothing lifts it on a timeout\n```\n\nEvery `<file>` above takes a ticket's filename (`2042-01-01_some-ticket.md`) or the `tickets/…` path a queue entry links to; `put` also takes that ticket's `.plan.md` name, and writes a plan for a ticket that does not exist, without complaint, invisible to `show`. You claim as `AGENT_ID` when it is set, else as your current branch (so a rename or a branch switch between claim and release changes who you are: release from the branch you claimed on, or the lock stays until a person edits the branch).\n\n## Formats\n\n### A ticket: `tickets/<DATE>_<SLUG>.md`\n\nDATE: yyyy-mm-dd. SLUG: a succinct kebab-case slug of the ticket title.\n\n```md\nPriority: 0-10 [optional, 10: critical — act immediately, 0: only if capacity]\nTopics: [list-of-topics] [optional]\nGitHub: [#42](https://github.com/org/repo/issues/42) [optional]\nPR: [#1790](https://github.com/org/repo/pull/1790) [optional: the pull request that closes this ticket, once one is open]\n\n# Ticket title\n\n## TLDR\n\n...\n\n## Why it matters\n\n...\n\n[optional: more info (any heading and format you want)]\n```\n\nA ticket with a `PR:` line is in review: skip it when choosing work, and never queue it again while the line stands; remove the line to have it worked again. `Priority:`, `Effort:` and `Uncertainty:` are bare whole numbers above the `# ` title; anything else reads as absent for queue placement and the scales, and a ticket with no readable `Priority:` queues at 5.\n\n### A claim: `tickets/<DATE>_<SLUG>.lock.md`\n\nWritten by `npx tickets claim`, removed by `npx tickets release` or `npx tickets close`. One line: `CLAIMED: <holder>`.\n\n### A plan: `tickets/<DATE>_<SLUG>.plan.md`\n\nThe plan for an existing ticket (`tickets/2042-01-01_some-ticket.md` → `tickets/2042-01-01_some-ticket.plan.md`).\n\n```md\nEffort: 0-10 [0: implementation is trivial, 10: implementation takes months]\nUncertainty: 0-10 [0: implementation without meaningful alternatives, 10: highly uncertain how to implement]\nOutdated: yes [optional, only if the ticket was updated in a way that makes the plan outdated]\n\n# [Plan] Ticket title\n\nSingle sentence describing this file's content.\n\n## TLDR [optional]\n\nBrief overview of this file's content.\n\n## Problems [optional]\n\nList of all significant aspects with low confidence on how to implement, with explanation why uncertain.\n\n## Solutions [optional]\n\nFor each problem, list of ways to solve the problem (including meaningful shortcuts, for quicker implementation).\n\n## Considerations [optional]\n\nExhaustive list of all significant aspects to be considered (including edge cases).\n\n## Implementation [optional]\n\nConcrete plan to implement the ticket.\n```\n\nNotes:\n- Covers both spiking (e.g. high-level research without implementation plan) and planning (e.g. concrete implementation proposal)\n- The `.plan.md` file can be modified multiple times over an extended period (e.g. a ticket requiring repeated human intervention, transitioning from spiking to concrete plan)\n- All sections are just proposals and optional: you can use any headings with any format\n- The uncertainty value:\n - Gauges whether there are *significant* alternatives, minor variability such as syntax should be ignored\n - Is used for evaluating whether human intervention is needed (0 => clearly no human intervention needed)\n- Example of how to gauge uncertainty and alternatives:\n - List all aspects that need to be considered\n - Give an uncertainty rating (0-10) to each aspect following this criteria: is there an obviously optimal way to implement it (0), or is it highly unclear whether it can be implemented in a better way (10)?\n - Explore and suggest alternatives for each aspect with a low rating";
51
+ /** `@gemstack/skill-queue/SKILL.md` */
52
+ export const QUEUE_SKILL = "# The agent queue\n\nThe agent queue (`TODO_AGENTS.md`) lives on the branch `agent-data`, never on a code branch; your checkout does not contain it. It lists every task agents will work on next, in the order they will be taken.\n\nRead and change it with the `queue` command, a dependency of this repository (`@gemstack/skill-queue`), run as `npx queue`. When that fails for a missing `node_modules`, install with the lockfile's package manager (`npm install` for `package-lock.json`) and run it again. Every change it makes is one commit pushed straight to the `agent-data` branch. A refusal exits 1 with a line on stderr; a wrong command line exits 2 with the usage.\n\n## Read\n\n```\nnpx queue the open entries, in order of work, as one JSON array\n```\n\n## Change\n\n```\nnpx queue add <text> [--priority N]\n put an entry on the queue; --priority (0-10) places it in that\n section; without it, the entry goes at the end of the file\nnpx queue done <entry> remove an entry: one quoted argument, exactly as `npx queue`\n printed it; done means deleted\n```\n\n## Format\n\n```md\n## Priority 10 (critical — act immediately)\n\n...\n\n## Priority 9\n\n- [Succinct description](/link-for-more-details)\n- Or self-contained TODO item with complete description of what should be done\n\n...\n\n## Priority 0 (only if capacity)\n\n...\n```\n\nThe queue lists *all* tasks AI will work on next, sorted by priority. Priority 10 is rarely used (e.g. critical production bugs) and is treated as the utmost priority. Within a priority, the first tasks have higher priority (they are the \"next\" tasks within that \"priority queue\"). A done entry is removed (`npx queue done`).";
53
+ /** `@gemstack/skill-logs/SKILL.md` */
54
+ export const LOGS_SKILL = "# Agent logs\n\nEvery run an agent made on this project leaves a record on the branch `agent-data`, never on a code branch; your checkout does not contain it. A run is two files under `agents/<who>/`: the card, `<id>.json` — what was asked, the ticket, the branch, the pull request, how it ended, what it cost — and the diary, `<id>.jsonl` — what the agent said along the way, its result.\n\nRead them with the `logs` command, a dependency of this repository (`@gemstack/skill-logs`), run as `npx logs`. When that fails for a missing `node_modules`, install with the lockfile's package manager (`npm install` for `package-lock.json`) and run it again. The command only reads: the program that ran an agent records its run, at its end. A refusal exits 1 with a line on stderr; a wrong command line exits 2 with the usage.\n\n## Read\n\n```\nnpx logs [--ticket <file>] [--branch <name>] [--limit N]\n the runs, newest first, as one JSON array of cards — the newest 20\n unless --limit says otherwise; --ticket keeps the runs that worked\n one ticket (its filename, or the path a queue entry links to);\n --branch the runs on one branch\nnpx logs show <id> one run: its card, plus `diary`, the lines of what the agent\n said, its result, how it ended, and what it cost\n```\n\n## Before you plan or work a ticket, read its runs\n\n```\nnpx logs --ticket <file>\n```\n\nA ticket, or a queue entry that links one, may have been worked before. A `stopped` or `failed` run tells you what to avoid: `npx logs show <id>` for what that agent said before it ended. A `done` run with a `pr` means the work may already be there: read the pull request before doing it again. A run with no ticket is found by `--branch`, or in the list.\n\n## The card\n\n```json\n{\n \"id\": \"2026-09-08T18-14-30-111Z\",\n \"startedAt\": \"2026-09-08T18:14:30.651Z\",\n \"endedAt\": \"2026-09-08T18:15:40.433Z\",\n \"status\": \"done\",\n \"intent\": \"what the agent was asked to do\",\n \"driver\": \"claude-code\",\n \"model\": \"opus\",\n \"branch\": \"agent-2026-09-08T18-14-30-111Z\",\n \"pr\": { \"number\": 1765, \"url\": \"https://github.com/org/repo/pull/1765\" },\n \"ticket\": \"tickets/2026-09-01_some-ticket.md\",\n \"cost\": 0.62\n}\n```\n\n`status` is `running`, `done`, `stopped`, `failed` or `waiting` (ended on a question the agent asked, until it is answered). `cost` is in US dollars. Every field but `id`, `startedAt` and `status` is absent when unknown. The program that wrote the card may keep its own bookkeeping under one more key, `caller`; the command never prints it.\n\n## The diary\n\nOne JSON object per line. Four kinds are the agent's, in the order they happened:\n\n```\n{\"kind\":\"said\",\"text\":\"…\"} something the agent said\n{\"kind\":\"result\",\"text\":\"…\"} the agent's final answer for a turn\n{\"kind\":\"cost\",\"usd\":0.62} what a stretch of the run cost, in US dollars\n{\"kind\":\"ended\",\"status\":\"failed\",\"detail\":\"…\"} how the run ended; detail when it did not end well\n```\n\nAny other kind of line is the writing program's own; `show` leaves it out.";
55
+ //# sourceMappingURL=prompts.generated.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompts.generated.js","sourceRoot":"","sources":["../src/prompts.generated.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAC1E,iFAAiF;AAEjF,mCAAmC;AACnC,MAAM,CAAC,MAAM,eAAe,GAAG,ySAAyS,CAAA;AAExU,8CAA8C;AAC9C,MAAM,CAAC,MAAM,0BAA0B,GAAG,smCAAsmC,CAAA;AAEhpC,2CAA2C;AAC3C,MAAM,CAAC,MAAM,uBAAuB,GAAG,6HAA6H,CAAA;AAEpK,uCAAuC;AACvC,MAAM,CAAC,MAAM,mBAAmB,GAAG,4fAA4f,CAAA;AAE/hB,2CAA2C;AAC3C,MAAM,CAAC,MAAM,uBAAuB,GAAG,0PAA0P,CAAA;AAEjS,wCAAwC;AACxC,MAAM,CAAC,MAAM,oBAAoB,GAAG,wbAAwb,CAAA;AAE5d,uCAAuC;AACvC,MAAM,CAAC,MAAM,mBAAmB,GAAG,u2EAAu2E,CAAA;AAE14E,oCAAoC;AACpC,MAAM,CAAC,MAAM,gBAAgB,GAAG,igCAAigC,CAAA;AAEjiC,0CAA0C;AAC1C,MAAM,CAAC,MAAM,sBAAsB,GAAG,sVAAsV,CAAA;AAE5X,gDAAgD;AAChD,MAAM,CAAC,MAAM,4BAA4B,GAAG,isBAAisB,CAAA;AAE7uB,+CAA+C;AAC/C,MAAM,CAAC,MAAM,2BAA2B,GAAG,mLAAmL,CAAA;AAE9N,sDAAsD;AACtD,MAAM,CAAC,MAAM,kCAAkC,GAAG,ihBAAihB,CAAA;AAEnkB,6CAA6C;AAC7C,MAAM,CAAC,MAAM,yBAAyB,GAAG,ygBAAygB,CAAA;AAEljB,wCAAwC;AACxC,MAAM,CAAC,MAAM,oBAAoB,GAAG,wjBAAwjB,CAAA;AAE5lB,0CAA0C;AAC1C,MAAM,CAAC,MAAM,sBAAsB,GAAG,yyDAAyyD,CAAA;AAE/0D,8BAA8B;AAC9B,MAAM,CAAC,MAAM,UAAU,GAAG,s2BAAs2B,CAAA;AAEh4B,mCAAmC;AACnC,MAAM,CAAC,MAAM,eAAe,GAAG,mxFAAmxF,CAAA;AAElzF,qCAAqC;AACrC,MAAM,CAAC,MAAM,iBAAiB,GAAG,oyBAAoyB,CAAA;AAEr0B,uCAAuC;AACvC,MAAM,CAAC,MAAM,mBAAmB,GAAG,8iBAA8iB,CAAA;AAEjlB,oCAAoC;AACpC,MAAM,CAAC,MAAM,gBAAgB,GAAG,g2DAAg2D,CAAA;AAEh4D,iCAAiC;AACjC,MAAM,CAAC,MAAM,aAAa,GAAG,uvEAAuvE,CAAA;AAEpxE,oCAAoC;AACpC,MAAM,CAAC,MAAM,gBAAgB,GAAG,8oCAA8oC,CAAA;AAE9qC,gCAAgC;AAChC,MAAM,CAAC,MAAM,YAAY,GAAG,ySAAyS,CAAA;AAErU,yCAAyC;AACzC,MAAM,CAAC,MAAM,aAAa,GAAG,+mOAA+mO,CAAA;AAE5oO,uCAAuC;AACvC,MAAM,CAAC,MAAM,WAAW,GAAG,4wDAA4wD,CAAA;AAEvyD,sCAAsC;AACtC,MAAM,CAAC,MAAM,UAAU,GAAG,wwGAAwwG,CAAA"}