cloving 1.2.0 → 1.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (752) hide show
  1. package/README.md +700 -331
  2. package/dist/src/agent-harness-shell.d.ts +13 -0
  3. package/dist/src/agent-harness-shell.js +93 -0
  4. package/dist/src/agent-harness-versions.d.ts +8 -0
  5. package/dist/src/agent-harness-versions.js +49 -0
  6. package/dist/src/agent-harnesses.d.ts +4 -0
  7. package/dist/src/agent-harnesses.js +13 -0
  8. package/dist/src/authority/command-wait-checks.d.ts +8 -0
  9. package/dist/src/authority/command-wait-checks.js +88 -0
  10. package/dist/src/authority/command-wait-results.d.ts +15 -0
  11. package/dist/src/authority/command-wait-results.js +73 -0
  12. package/dist/src/authority/command-wait-view.d.ts +21 -0
  13. package/dist/src/authority/command-wait-view.js +34 -0
  14. package/dist/src/authority/command-waits.d.ts +39 -0
  15. package/dist/src/authority/command-waits.js +97 -0
  16. package/dist/src/authority/commands.d.ts +1 -0
  17. package/dist/src/authority/commands.js +46 -5
  18. package/dist/src/authority/dispatch-decision.d.ts +8 -0
  19. package/dist/src/authority/dispatch-decision.js +26 -1
  20. package/dist/src/authority/effect-requests.js +6 -3
  21. package/dist/src/authority/effect-results.js +4 -2
  22. package/dist/src/authority/gate-reduction.d.ts +1 -0
  23. package/dist/src/authority/gate-reduction.js +18 -3
  24. package/dist/src/authority/gates.d.ts +2 -1
  25. package/dist/src/authority/gates.js +5 -1
  26. package/dist/src/authority/history-state.d.ts +2 -0
  27. package/dist/src/authority/history-state.js +13 -1
  28. package/dist/src/authority/instants.d.ts +1 -0
  29. package/dist/src/authority/instants.js +21 -0
  30. package/dist/src/authority/operations.js +1 -1
  31. package/dist/src/authority/reduction-state.d.ts +2 -0
  32. package/dist/src/authority/reduction-state.js +5 -0
  33. package/dist/src/authority/reduction.d.ts +1 -1
  34. package/dist/src/authority/reduction.js +30 -1
  35. package/dist/src/authority/status-input.d.ts +3 -1
  36. package/dist/src/authority/status.d.ts +3 -0
  37. package/dist/src/authority/status.js +28 -3
  38. package/dist/src/authority/stop-sequence.d.ts +1 -0
  39. package/dist/src/authority/stop-sequence.js +2 -1
  40. package/dist/src/authority/transitions.d.ts +7 -5
  41. package/dist/src/authority/transitions.js +13 -0
  42. package/dist/src/broker/actor/authority-delivery.js +1 -0
  43. package/dist/src/broker/actor/authority-queries.d.ts +9 -2
  44. package/dist/src/broker/actor/authority-queries.js +29 -5
  45. package/dist/src/broker/actor/authority-receipts.js +11 -1
  46. package/dist/src/broker/actor/authority-session.js +2 -2
  47. package/dist/src/broker/actor/authority-settings.js +4 -0
  48. package/dist/src/broker/actor/authority-upgrades.d.ts +19 -2
  49. package/dist/src/broker/actor/authority-upgrades.js +7 -2
  50. package/dist/src/broker/actor/delivery-intents.d.ts +2 -1
  51. package/dist/src/broker/actor/delivery-intents.js +6 -4
  52. package/dist/src/broker/actor/effect-delivery.d.ts +1 -1
  53. package/dist/src/broker/actor/effect-delivery.js +18 -2
  54. package/dist/src/broker/actor/effect-plan.js +11 -2
  55. package/dist/src/broker/actor/effect-queries.d.ts +5 -0
  56. package/dist/src/broker/actor/effect-queries.js +16 -1
  57. package/dist/src/broker/actor/effect-turn.js +2 -0
  58. package/dist/src/broker/actor/pin-check.js +1 -1
  59. package/dist/src/broker/actor/stop-plan.js +10 -4
  60. package/dist/src/broker/actor/stop-turn.d.ts +2 -0
  61. package/dist/src/broker/actor/stop-turn.js +24 -11
  62. package/dist/src/broker/actor/turn-draft.d.ts +1 -0
  63. package/dist/src/broker/actor/turn-draft.js +4 -0
  64. package/dist/src/broker/actor/turn-state.js +6 -2
  65. package/dist/src/broker/authority-admission.js +80 -7
  66. package/dist/src/broker/authority-restore.d.ts +2 -0
  67. package/dist/src/broker/authority-restore.js +36 -1
  68. package/dist/src/broker/command-wait-restore.d.ts +31 -0
  69. package/dist/src/broker/command-wait-restore.js +86 -0
  70. package/dist/src/broker/decision-restore.d.ts +1 -1
  71. package/dist/src/broker/decision-restore.js +5 -4
  72. package/dist/src/broker/effect-upgrade.d.ts +2 -0
  73. package/dist/src/broker/effect-upgrade.js +8 -2
  74. package/dist/src/broker/socket-address.d.ts +3 -1
  75. package/dist/src/broker/socket-address.js +2 -2
  76. package/dist/src/cli/arguments.d.ts +22 -11
  77. package/dist/src/cli/arguments.js +73 -104
  78. package/dist/src/cli/chat-stores.d.ts +2 -0
  79. package/dist/src/cli/chat-stores.js +113 -0
  80. package/dist/src/cli/client.d.ts +4 -1
  81. package/dist/src/cli/client.js +9 -3
  82. package/dist/src/cli/command-effects.d.ts +7 -0
  83. package/dist/src/cli/command-effects.js +39 -0
  84. package/dist/src/cli/command-requests.d.ts +17 -0
  85. package/dist/src/cli/command-requests.js +43 -0
  86. package/dist/src/cli/command-waits.d.ts +9 -0
  87. package/dist/src/cli/command-waits.js +51 -0
  88. package/dist/src/cli/commands.js +21 -41
  89. package/dist/src/cli/config-arguments.d.ts +11 -0
  90. package/dist/src/cli/config-arguments.js +59 -0
  91. package/dist/src/cli/config-command.d.ts +2 -0
  92. package/dist/src/cli/config-command.js +105 -0
  93. package/dist/src/cli/config-file.d.ts +3 -0
  94. package/dist/src/cli/config-file.js +52 -0
  95. package/dist/src/cli/config-lock.d.ts +7 -0
  96. package/dist/src/cli/config-lock.js +61 -0
  97. package/dist/src/cli/config-notice.d.ts +5 -0
  98. package/dist/src/cli/config-notice.js +46 -0
  99. package/dist/src/cli/doctor-github.d.ts +9 -0
  100. package/dist/src/cli/doctor-github.js +138 -0
  101. package/dist/src/cli/doctor-harness.d.ts +13 -0
  102. package/dist/src/cli/doctor-harness.js +242 -0
  103. package/dist/src/cli/doctor-local.d.ts +18 -0
  104. package/dist/src/cli/doctor-local.js +77 -0
  105. package/dist/src/cli/doctor-runtime.d.ts +15 -0
  106. package/dist/src/cli/doctor-runtime.js +176 -0
  107. package/dist/src/cli/doctor-service.d.ts +1 -0
  108. package/dist/src/cli/doctor-service.js +11 -0
  109. package/dist/src/cli/doctor-workflows.d.ts +6 -0
  110. package/dist/src/cli/doctor-workflows.js +50 -0
  111. package/dist/src/cli/doctor.d.ts +15 -0
  112. package/dist/src/cli/doctor.js +187 -0
  113. package/dist/src/cli/github-ci-progress.d.ts +8 -0
  114. package/dist/src/cli/github-ci-progress.js +83 -0
  115. package/dist/src/cli/github-retry.d.ts +6 -0
  116. package/dist/src/cli/github-retry.js +47 -0
  117. package/dist/src/cli/harness-probes.d.ts +24 -0
  118. package/dist/src/cli/harness-probes.js +183 -0
  119. package/dist/src/cli/harness-processes.d.ts +6 -0
  120. package/dist/src/cli/harness-processes.js +36 -0
  121. package/dist/src/cli/init-command.d.ts +9 -0
  122. package/dist/src/cli/init-command.js +52 -0
  123. package/dist/src/cli/init-prompt-command.d.ts +10 -0
  124. package/dist/src/cli/init-prompt-command.js +145 -0
  125. package/dist/src/cli/init-prompt.d.ts +35 -0
  126. package/dist/src/cli/init-prompt.js +74 -0
  127. package/dist/src/cli/init-selection.d.ts +13 -0
  128. package/dist/src/cli/init-selection.js +75 -0
  129. package/dist/src/cli/main.d.ts +9 -1
  130. package/dist/src/cli/main.js +69 -61
  131. package/dist/src/cli/mcp-server.d.ts +1 -0
  132. package/dist/src/cli/mcp-server.js +156 -0
  133. package/dist/src/cli/mcp-tools.d.ts +15 -0
  134. package/dist/src/cli/mcp-tools.js +80 -0
  135. package/dist/src/cli/phone-arguments.d.ts +14 -0
  136. package/dist/src/cli/phone-arguments.js +37 -0
  137. package/dist/src/cli/phone-client.d.ts +2 -0
  138. package/dist/src/cli/phone-client.js +32 -0
  139. package/dist/src/cli/phone-command.d.ts +13 -0
  140. package/dist/src/cli/phone-command.js +101 -0
  141. package/dist/src/cli/probe-command.d.ts +36 -0
  142. package/dist/src/cli/probe-command.js +59 -0
  143. package/dist/src/cli/project-settings.d.ts +4 -0
  144. package/dist/src/cli/project-settings.js +33 -0
  145. package/dist/src/cli/render.d.ts +2 -1
  146. package/dist/src/cli/render.js +57 -54
  147. package/dist/src/cli/report-ci-jobs.d.ts +23 -0
  148. package/dist/src/cli/report-ci-jobs.js +103 -0
  149. package/dist/src/cli/report-ci-usage.d.ts +9 -0
  150. package/dist/src/cli/report-ci-usage.js +185 -0
  151. package/dist/src/cli/report-ci.d.ts +13 -0
  152. package/dist/src/cli/report-ci.js +74 -0
  153. package/dist/src/cli/report-closures.d.ts +6 -0
  154. package/dist/src/cli/report-closures.js +97 -0
  155. package/dist/src/cli/report-flow.d.ts +7 -0
  156. package/dist/src/cli/report-flow.js +122 -0
  157. package/dist/src/cli/report-github-reader.d.ts +29 -0
  158. package/dist/src/cli/report-github-reader.js +157 -0
  159. package/dist/src/cli/report-github.d.ts +25 -0
  160. package/dist/src/cli/report-github.js +181 -0
  161. package/dist/src/cli/report-operator.d.ts +3 -0
  162. package/dist/src/cli/report-operator.js +40 -0
  163. package/dist/src/cli/report-ready.d.ts +3 -0
  164. package/dist/src/cli/report-ready.js +96 -0
  165. package/dist/src/cli/report-text.d.ts +9 -0
  166. package/dist/src/cli/report-text.js +33 -0
  167. package/dist/src/cli/report.d.ts +18 -0
  168. package/dist/src/cli/report.js +269 -0
  169. package/dist/src/cli/repository-arguments.d.ts +5 -0
  170. package/dist/src/cli/repository-arguments.js +34 -0
  171. package/dist/src/cli/runtime-arguments.d.ts +6 -1
  172. package/dist/src/cli/runtime-arguments.js +22 -2
  173. package/dist/src/cli/runtime-directory.d.ts +6 -2
  174. package/dist/src/cli/runtime-directory.js +72 -14
  175. package/dist/src/cli/schedule-arguments.d.ts +14 -0
  176. package/dist/src/cli/schedule-arguments.js +26 -0
  177. package/dist/src/cli/schedule-render.d.ts +22 -0
  178. package/dist/src/cli/schedule-render.js +73 -0
  179. package/dist/src/cli/terminal-text.d.ts +3 -0
  180. package/dist/src/cli/terminal-text.js +28 -0
  181. package/dist/src/cli/toolchain.d.ts +2 -0
  182. package/dist/src/cli/toolchain.js +22 -2
  183. package/dist/src/cli/usage-render.d.ts +6 -0
  184. package/dist/src/cli/usage-render.js +67 -1
  185. package/dist/src/cli/usage.d.ts +3 -3
  186. package/dist/src/cli/usage.js +119 -50
  187. package/dist/src/cli/watch-actions.d.ts +2 -0
  188. package/dist/src/cli/watch-actions.js +6 -6
  189. package/dist/src/cli/watch-board-view.d.ts +1 -1
  190. package/dist/src/cli/watch-board-view.js +27 -4
  191. package/dist/src/cli/watch-board.d.ts +4 -2
  192. package/dist/src/cli/watch-board.js +58 -35
  193. package/dist/src/cli/watch-card-forms.d.ts +1 -1
  194. package/dist/src/cli/watch-card-forms.js +13 -12
  195. package/dist/src/cli/watch-client.d.ts +1 -1
  196. package/dist/src/cli/watch-client.js +7 -11
  197. package/dist/src/cli/watch-header-view.d.ts +22 -0
  198. package/dist/src/cli/watch-header-view.js +104 -0
  199. package/dist/src/cli/watch-model.d.ts +4 -1
  200. package/dist/src/cli/watch-model.js +34 -15
  201. package/dist/src/cli/watch-page.js +57 -23
  202. package/dist/src/cli/watch-phases.d.ts +12 -3
  203. package/dist/src/cli/watch-phases.js +68 -11
  204. package/dist/src/cli/watch-phone-client.d.ts +1 -0
  205. package/dist/src/cli/watch-phone-client.js +84 -0
  206. package/dist/src/cli/watch-phone-view.d.ts +56 -0
  207. package/dist/src/cli/watch-phone-view.js +113 -0
  208. package/dist/src/cli/watch-phone.d.ts +5 -0
  209. package/dist/src/cli/watch-phone.js +53 -0
  210. package/dist/src/cli/watch-pr-board.js +1 -1
  211. package/dist/src/cli/watch-pr-command.d.ts +1 -0
  212. package/dist/src/cli/watch-pull-request.d.ts +3 -1
  213. package/dist/src/cli/watch-pull-request.js +22 -8
  214. package/dist/src/cli/watch-reads.d.ts +2 -0
  215. package/dist/src/cli/watch-reads.js +17 -16
  216. package/dist/src/cli/watch-render.d.ts +23 -1
  217. package/dist/src/cli/watch-run-input.d.ts +0 -1
  218. package/dist/src/cli/watch-run-input.js +0 -13
  219. package/dist/src/cli/watch-server.js +29 -11
  220. package/dist/src/cli/watch-turn.d.ts +4 -1
  221. package/dist/src/cli/watch-turn.js +37 -1
  222. package/dist/src/cli/watch-usage.js +5 -1
  223. package/dist/src/cli/watch-view.d.ts +4 -21
  224. package/dist/src/cli/watch-view.js +26 -118
  225. package/dist/src/cli.js +165 -28
  226. package/dist/src/command-settings.d.ts +16 -0
  227. package/dist/src/command-settings.js +42 -0
  228. package/dist/src/command-wait.d.ts +4 -0
  229. package/dist/src/command-wait.js +45 -0
  230. package/dist/src/configuration-change.d.ts +18 -0
  231. package/dist/src/configuration-change.js +76 -0
  232. package/dist/src/configuration-display.d.ts +21 -0
  233. package/dist/src/configuration-display.js +69 -0
  234. package/dist/src/configuration-schema.d.ts +58 -0
  235. package/dist/src/configuration-schema.js +163 -0
  236. package/dist/src/daemon/attachment-file.d.ts +6 -0
  237. package/dist/src/daemon/attachment-file.js +86 -0
  238. package/dist/src/daemon/attachments.d.ts +14 -0
  239. package/dist/src/daemon/attachments.js +17 -0
  240. package/dist/src/daemon/claude-recovery.d.ts +50 -0
  241. package/dist/src/daemon/claude-recovery.js +204 -0
  242. package/dist/src/daemon/claude-stream.d.ts +27 -0
  243. package/dist/src/daemon/claude-stream.js +63 -0
  244. package/dist/src/daemon/claude-turn.d.ts +18 -18
  245. package/dist/src/daemon/claude-turn.js +151 -105
  246. package/dist/src/daemon/claude-worker.d.ts +5 -4
  247. package/dist/src/daemon/claude-worker.js +149 -158
  248. package/dist/src/daemon/command-journal.d.ts +5 -0
  249. package/dist/src/daemon/command-journal.js +50 -0
  250. package/dist/src/daemon/command-process.d.ts +28 -0
  251. package/dist/src/daemon/command-process.js +164 -0
  252. package/dist/src/daemon/command-worker.d.ts +19 -0
  253. package/dist/src/daemon/command-worker.js +182 -0
  254. package/dist/src/daemon/cursor-stream.d.ts +4 -0
  255. package/dist/src/daemon/cursor-stream.js +154 -0
  256. package/dist/src/daemon/daemon-adapters.d.ts +60 -0
  257. package/dist/src/daemon/daemon-adapters.js +126 -0
  258. package/dist/src/daemon/daemon-loops.d.ts +16 -0
  259. package/dist/src/daemon/daemon-loops.js +41 -0
  260. package/dist/src/daemon/daemon.d.ts +2 -33
  261. package/dist/src/daemon/daemon.js +133 -131
  262. package/dist/src/daemon/declared-input.d.ts +3 -0
  263. package/dist/src/daemon/declared-input.js +9 -0
  264. package/dist/src/daemon/delivery-router.js +1 -1
  265. package/dist/src/daemon/gemini-stream.d.ts +4 -0
  266. package/dist/src/daemon/gemini-stream.js +129 -0
  267. package/dist/src/daemon/github-attach.d.ts +2 -0
  268. package/dist/src/daemon/github-attach.js +149 -0
  269. package/dist/src/daemon/github-ci-filters.d.ts +6 -0
  270. package/dist/src/daemon/github-ci-filters.js +138 -0
  271. package/dist/src/daemon/github-ci-rerun.d.ts +26 -0
  272. package/dist/src/daemon/github-ci-rerun.js +92 -0
  273. package/dist/src/daemon/github-ci-workflows.d.ts +10 -0
  274. package/dist/src/daemon/github-ci-workflows.js +148 -0
  275. package/dist/src/daemon/github-ci.js +109 -10
  276. package/dist/src/daemon/github-issue-methods.d.ts +2 -0
  277. package/dist/src/daemon/github-issue-methods.js +37 -2
  278. package/dist/src/daemon/github-merge-call.d.ts +4 -1
  279. package/dist/src/daemon/github-merge-call.js +10 -3
  280. package/dist/src/daemon/github-merge.js +58 -26
  281. package/dist/src/daemon/github-methods.js +22 -2
  282. package/dist/src/daemon/github-operation.d.ts +5 -0
  283. package/dist/src/daemon/github-operation.js +6 -0
  284. package/dist/src/daemon/github-retry.js +8 -44
  285. package/dist/src/daemon/github-worker.d.ts +4 -0
  286. package/dist/src/daemon/github-worker.js +6 -0
  287. package/dist/src/daemon/issue-queue.d.ts +1 -0
  288. package/dist/src/daemon/issue-queue.js +16 -34
  289. package/dist/src/daemon/notify-events.d.ts +6 -0
  290. package/dist/src/daemon/notify-events.js +84 -0
  291. package/dist/src/daemon/notify-journal.js +1 -1
  292. package/dist/src/daemon/notify-message.d.ts +4 -1
  293. package/dist/src/daemon/notify-message.js +36 -0
  294. package/dist/src/daemon/notify.d.ts +1 -1
  295. package/dist/src/daemon/notify.js +7 -78
  296. package/dist/src/daemon/opencode-stream.d.ts +5 -0
  297. package/dist/src/daemon/opencode-stream.js +87 -0
  298. package/dist/src/daemon/operation-journal.d.ts +1 -0
  299. package/dist/src/daemon/queue-status.d.ts +10 -0
  300. package/dist/src/daemon/queue-status.js +51 -0
  301. package/dist/src/daemon/resume-index-lock.d.ts +13 -0
  302. package/dist/src/daemon/resume-index-lock.js +160 -0
  303. package/dist/src/daemon/resume-worktree.d.ts +7 -0
  304. package/dist/src/daemon/resume-worktree.js +29 -0
  305. package/dist/src/daemon/retry-worktree.d.ts +18 -0
  306. package/dist/src/daemon/retry-worktree.js +139 -0
  307. package/dist/src/daemon/retrying-turn.d.ts +2 -10
  308. package/dist/src/daemon/retrying-turn.js +145 -141
  309. package/dist/src/daemon/schedule-control.d.ts +26 -0
  310. package/dist/src/daemon/schedule-control.js +110 -0
  311. package/dist/src/daemon/schedule-journal.d.ts +6 -0
  312. package/dist/src/daemon/schedule-journal.js +120 -0
  313. package/dist/src/daemon/text-output.d.ts +18 -0
  314. package/dist/src/daemon/text-output.js +44 -0
  315. package/dist/src/daemon/ticket-registration.d.ts +7 -14
  316. package/dist/src/daemon/ticket-registration.js +93 -114
  317. package/dist/src/daemon/turn-attempt-journal.d.ts +38 -0
  318. package/dist/src/daemon/turn-attempt-journal.js +136 -0
  319. package/dist/src/daemon/turn-attempts.d.ts +47 -0
  320. package/dist/src/daemon/turn-attempts.js +166 -0
  321. package/dist/src/daemon/turn-command.d.ts +10 -0
  322. package/dist/src/daemon/turn-command.js +33 -0
  323. package/dist/src/daemon/turn-report.d.ts +25 -0
  324. package/dist/src/daemon/turn-report.js +118 -0
  325. package/dist/src/daemon/work-tree.d.ts +11 -1
  326. package/dist/src/daemon/work-tree.js +35 -12
  327. package/dist/src/daemon/worker-profile.d.ts +8 -0
  328. package/dist/src/daemon/worker-profile.js +40 -0
  329. package/dist/src/daemon/workflow-generations.d.ts +32 -0
  330. package/dist/src/daemon/workflow-generations.js +57 -0
  331. package/dist/src/daemon/workflow-replay.d.ts +16 -0
  332. package/dist/src/daemon/workflow-replay.js +58 -0
  333. package/dist/src/daemon/workflow-schedules.d.ts +30 -0
  334. package/dist/src/daemon/workflow-schedules.js +238 -0
  335. package/dist/src/daemon/worktree-processes.d.ts +9 -0
  336. package/dist/src/daemon/worktree-processes.js +151 -0
  337. package/dist/src/decision-wait.d.ts +1 -0
  338. package/dist/src/decision-wait.js +3 -0
  339. package/dist/src/delivery-backoff.d.ts +1 -0
  340. package/dist/src/delivery-backoff.js +3 -0
  341. package/dist/src/doctor-report.d.ts +22 -0
  342. package/dist/src/doctor-report.js +63 -0
  343. package/dist/src/execution-pin.d.ts +5 -0
  344. package/dist/src/execution-pin.js +67 -4
  345. package/dist/src/grok-result.d.ts +12 -0
  346. package/dist/src/grok-result.js +61 -0
  347. package/dist/src/harness-defaults.d.ts +35 -0
  348. package/dist/src/harness-defaults.js +121 -0
  349. package/dist/src/harness-start.d.ts +15 -0
  350. package/dist/src/harness-start.js +37 -0
  351. package/dist/src/host/command-wait.d.ts +38 -0
  352. package/dist/src/host/command-wait.js +115 -0
  353. package/dist/src/host/decision-resume.d.ts +35 -0
  354. package/dist/src/host/decision-resume.js +86 -0
  355. package/dist/src/host/gate-bridge.d.ts +48 -0
  356. package/dist/src/host/gate-bridge.js +124 -0
  357. package/dist/src/host/run-wait.d.ts +26 -0
  358. package/dist/src/host/run-wait.js +37 -0
  359. package/dist/src/host/start-delivery.d.ts +6 -8
  360. package/dist/src/host/start-delivery.js +13 -18
  361. package/dist/src/host/step-bridge-host.d.ts +8 -20
  362. package/dist/src/host/step-bridge-host.js +65 -58
  363. package/dist/src/merge-request.d.ts +19 -0
  364. package/dist/src/merge-request.js +32 -0
  365. package/dist/src/operation-identity.d.ts +1 -0
  366. package/dist/src/operation-identity.js +4 -0
  367. package/dist/src/phone/canonical-json.d.ts +1 -0
  368. package/dist/src/phone/canonical-json.js +16 -0
  369. package/dist/src/phone/phone-link.d.ts +7 -0
  370. package/dist/src/phone/phone-link.js +21 -0
  371. package/dist/src/phone/qr-data.d.ts +8 -0
  372. package/dist/src/phone/qr-data.js +133 -0
  373. package/dist/src/phone/qr-matrix.d.ts +6 -0
  374. package/dist/src/phone/qr-matrix.js +175 -0
  375. package/dist/src/phone/qr-penalty.d.ts +3 -0
  376. package/dist/src/phone/qr-penalty.js +67 -0
  377. package/dist/src/phone/qr-picture.d.ts +5 -0
  378. package/dist/src/phone/qr-picture.js +24 -0
  379. package/dist/src/private-config.schema.json +303 -0
  380. package/dist/src/project-config.schema.json +105 -0
  381. package/dist/src/project-settings.d.ts +19 -0
  382. package/dist/src/project-settings.js +133 -0
  383. package/dist/src/queue-spend.d.ts +4 -0
  384. package/dist/src/queue-spend.js +21 -0
  385. package/dist/src/relay/answer-check.d.ts +24 -0
  386. package/dist/src/relay/answer-check.js +145 -0
  387. package/dist/src/relay/answer-inbox.d.ts +15 -0
  388. package/dist/src/relay/answer-inbox.js +173 -0
  389. package/dist/src/relay/daemon-keys.d.ts +16 -0
  390. package/dist/src/relay/daemon-keys.js +75 -0
  391. package/dist/src/relay/decision-check.d.ts +3 -0
  392. package/dist/src/relay/decision-check.js +77 -0
  393. package/dist/src/relay/decision-close.d.ts +6 -0
  394. package/dist/src/relay/decision-close.js +72 -0
  395. package/dist/src/relay/decision-envelopes.d.ts +29 -0
  396. package/dist/src/relay/decision-envelopes.js +93 -0
  397. package/dist/src/relay/decision-watch.d.ts +14 -0
  398. package/dist/src/relay/decision-watch.js +68 -0
  399. package/dist/src/relay/envelope-post.d.ts +8 -0
  400. package/dist/src/relay/envelope-post.js +71 -0
  401. package/dist/src/relay/envelope.d.ts +28 -0
  402. package/dist/src/relay/envelope.js +53 -0
  403. package/dist/src/relay/hpke.d.ts +25 -0
  404. package/dist/src/relay/hpke.js +108 -0
  405. package/dist/src/relay/pairing-checks.d.ts +42 -0
  406. package/dist/src/relay/pairing-checks.js +172 -0
  407. package/dist/src/relay/pairing-follow.d.ts +8 -0
  408. package/dist/src/relay/pairing-follow.js +95 -0
  409. package/dist/src/relay/pairing-session.d.ts +29 -0
  410. package/dist/src/relay/pairing-session.js +87 -0
  411. package/dist/src/relay/phone-delivery.d.ts +51 -0
  412. package/dist/src/relay/phone-delivery.js +139 -0
  413. package/dist/src/relay/phone-devices.d.ts +36 -0
  414. package/dist/src/relay/phone-devices.js +46 -0
  415. package/dist/src/relay/phone-inbox.d.ts +18 -0
  416. package/dist/src/relay/phone-inbox.js +17 -0
  417. package/dist/src/relay/phone-operations.d.ts +18 -0
  418. package/dist/src/relay/phone-operations.js +121 -0
  419. package/dist/src/relay/phone-outbox.d.ts +21 -0
  420. package/dist/src/relay/phone-outbox.js +25 -0
  421. package/dist/src/relay/phone-socket.d.ts +6 -0
  422. package/dist/src/relay/phone-socket.js +63 -0
  423. package/dist/src/relay/relay-control.d.ts +7 -0
  424. package/dist/src/relay/relay-control.js +24 -0
  425. package/dist/src/relay/relay-files.d.ts +2 -0
  426. package/dist/src/relay/relay-files.js +23 -0
  427. package/dist/src/relay/relay-heartbeat.d.ts +17 -0
  428. package/dist/src/relay/relay-heartbeat.js +81 -0
  429. package/dist/src/relay/relay-http.d.ts +14 -0
  430. package/dist/src/relay/relay-http.js +63 -0
  431. package/dist/src/relay/relay-registration.d.ts +15 -0
  432. package/dist/src/relay/relay-registration.js +63 -0
  433. package/dist/src/relay/relay-service.d.ts +28 -0
  434. package/dist/src/relay/relay-service.js +218 -0
  435. package/dist/src/relay/relay-store.d.ts +48 -0
  436. package/dist/src/relay/relay-store.js +131 -0
  437. package/dist/src/relay/sealed-post.d.ts +25 -0
  438. package/dist/src/relay/sealed-post.js +52 -0
  439. package/dist/src/relay.d.ts +1 -0
  440. package/dist/src/relay.js +8 -0
  441. package/dist/src/report-ci.d.ts +164 -0
  442. package/dist/src/report-ci.js +32 -0
  443. package/dist/src/report-effects.d.ts +15 -0
  444. package/dist/src/report-effects.js +212 -0
  445. package/dist/src/report-flow-types.d.ts +38 -0
  446. package/dist/src/report-flow-types.js +7 -0
  447. package/dist/src/report-flow.d.ts +43 -0
  448. package/dist/src/report-flow.js +193 -0
  449. package/dist/src/report-operator.d.ts +67 -0
  450. package/dist/src/report-operator.js +25 -0
  451. package/dist/src/report-quality.d.ts +221 -0
  452. package/dist/src/report-quality.js +94 -0
  453. package/dist/src/report-ready.d.ts +23 -0
  454. package/dist/src/report-ready.js +117 -0
  455. package/dist/src/report-statistics.d.ts +51 -0
  456. package/dist/src/report-statistics.js +106 -0
  457. package/dist/src/report.d.ts +712 -0
  458. package/dist/src/report.js +234 -0
  459. package/dist/src/repository-identity.d.ts +4 -0
  460. package/dist/src/repository-identity.js +4 -0
  461. package/dist/src/review-subject.d.ts +41 -0
  462. package/dist/src/review-subject.js +91 -0
  463. package/dist/src/run-wait.d.ts +23 -0
  464. package/dist/src/run-wait.js +20 -0
  465. package/dist/src/schedule-progress.d.ts +33 -0
  466. package/dist/src/schedule-progress.js +45 -0
  467. package/dist/src/service/active-tickets.d.ts +4 -0
  468. package/dist/src/service/active-tickets.js +49 -0
  469. package/dist/src/service/command-effects.d.ts +4 -0
  470. package/dist/src/service/command-effects.js +16 -0
  471. package/dist/src/service/command-waits.d.ts +34 -0
  472. package/dist/src/service/command-waits.js +86 -0
  473. package/dist/src/service/decision-handler.d.ts +4 -0
  474. package/dist/src/service/decision-handler.js +39 -4
  475. package/dist/src/service/expiry.js +2 -0
  476. package/dist/src/service/gateway.js +21 -4
  477. package/dist/src/service/queue-spend.d.ts +6 -0
  478. package/dist/src/service/queue-spend.js +68 -0
  479. package/dist/src/service/registry.d.ts +16 -3
  480. package/dist/src/service/registry.js +34 -3
  481. package/dist/src/service/replies.d.ts +16 -1
  482. package/dist/src/service/replies.js +23 -0
  483. package/dist/src/service/run-handlers.js +35 -56
  484. package/dist/src/service/run-metadata.d.ts +22 -0
  485. package/dist/src/service/run-metadata.js +138 -0
  486. package/dist/src/service/run-waits.d.ts +3 -0
  487. package/dist/src/service/run-waits.js +41 -0
  488. package/dist/src/service/service.d.ts +22 -2
  489. package/dist/src/service/service.js +29 -13
  490. package/dist/src/service/submission-handler.d.ts +0 -1
  491. package/dist/src/service/submission-handler.js +22 -36
  492. package/dist/src/service/worker-port.d.ts +1 -0
  493. package/dist/src/service/worker-port.js +9 -1
  494. package/dist/src/service/worker-totals.d.ts +2 -0
  495. package/dist/src/service/worker-totals.js +9 -24
  496. package/dist/src/step-bridge.d.ts +43 -0
  497. package/dist/src/steps/command-wait.d.ts +12 -0
  498. package/dist/src/steps/command-wait.js +26 -0
  499. package/dist/src/steps/merge-by-person.d.ts +2 -0
  500. package/dist/src/steps/merge-by-person.js +18 -0
  501. package/dist/src/steps/merge-when-green.d.ts +2 -0
  502. package/dist/src/steps/merge-when-green.js +62 -0
  503. package/dist/src/steps/open-decision-wait.d.ts +2 -0
  504. package/dist/src/steps/open-decision-wait.js +8 -0
  505. package/dist/src/steps/review-by-agent.d.ts +5 -0
  506. package/dist/src/steps/review-by-agent.js +124 -0
  507. package/dist/src/steps/review-by-person.d.ts +4 -0
  508. package/dist/src/steps/review-by-person.js +19 -0
  509. package/dist/src/steps/review-subject.d.ts +2 -0
  510. package/dist/src/steps/review-subject.js +11 -0
  511. package/dist/src/steps/run-command.d.ts +2 -0
  512. package/dist/src/steps/run-command.js +15 -0
  513. package/dist/src/steps/sleep.d.ts +3 -0
  514. package/dist/src/steps/sleep.js +19 -0
  515. package/dist/src/steps/wait-for-command.d.ts +3 -0
  516. package/dist/src/steps/wait-for-command.js +17 -0
  517. package/dist/src/steps/wait-for-decision.d.ts +2 -0
  518. package/dist/src/steps/wait-for-decision.js +71 -0
  519. package/dist/src/steps/wait-for-run.d.ts +5 -0
  520. package/dist/src/steps/wait-for-run.js +9 -0
  521. package/dist/src/storage/command-wait-rows.d.ts +30 -0
  522. package/dist/src/storage/command-wait-rows.js +96 -0
  523. package/dist/src/storage/decision-snapshots.d.ts +9 -1
  524. package/dist/src/storage/decision-snapshots.js +22 -2
  525. package/dist/src/storage/domain-changes.d.ts +2 -0
  526. package/dist/src/storage/domain-changes.js +3 -0
  527. package/dist/src/storage/domain-schema.d.ts +13 -1
  528. package/dist/src/storage/domain-schema.js +31 -4
  529. package/dist/src/storage/effect-schema.d.ts +1 -0
  530. package/dist/src/storage/effect-schema.js +5 -0
  531. package/dist/src/submission.d.ts +4 -0
  532. package/dist/src/submission.js +6 -2
  533. package/dist/src/testing-requests.d.ts +15 -0
  534. package/dist/src/testing-requests.js +93 -0
  535. package/dist/src/testing.d.ts +23 -0
  536. package/dist/src/testing.js +211 -0
  537. package/dist/src/ticket-status-stream.d.ts +9 -0
  538. package/dist/src/ticket-status-stream.js +94 -0
  539. package/dist/src/token-prices.d.ts +12 -4
  540. package/dist/src/token-prices.js +15 -2
  541. package/dist/src/turn-profile.d.ts +1 -0
  542. package/dist/src/turn-profile.js +8 -1
  543. package/dist/src/worker-usage.d.ts +17 -0
  544. package/dist/src/worker-usage.js +60 -0
  545. package/dist/src/workflow-admission.d.ts +5 -0
  546. package/dist/src/workflow-candidate.d.ts +8 -2
  547. package/dist/src/workflow-candidate.js +59 -6
  548. package/dist/src/workflow-contracts.d.ts +1 -0
  549. package/dist/src/workflow-contracts.js +9 -2
  550. package/dist/src/workflow-declaration.d.ts +21 -3
  551. package/dist/src/workflow-declaration.js +77 -9
  552. package/dist/src/workflow-discovery.d.ts +3 -13
  553. package/dist/src/workflow-discovery.js +5 -14
  554. package/dist/src/workflow-refusals.js +3 -1
  555. package/dist/src/workflow-schedule.d.ts +22 -0
  556. package/dist/src/workflow-schedule.js +53 -0
  557. package/dist/src/workflows.d.ts +12 -2
  558. package/dist/src/workflows.js +9 -1
  559. package/dist/tools/admit-workflow.d.ts +1 -0
  560. package/dist/tools/admit-workflow.js +18 -5
  561. package/dist/tools/doctor-adoption.d.ts +1 -0
  562. package/dist/tools/doctor-adoption.js +11 -0
  563. package/dist/tools/project-configuration.d.ts +4 -0
  564. package/dist/tools/project-configuration.js +47 -0
  565. package/dist/tools/red-green-command.d.ts +1 -0
  566. package/dist/tools/red-green-command.js +174 -0
  567. package/dist/tools/red-green-process.d.ts +10 -0
  568. package/dist/tools/red-green-process.js +59 -0
  569. package/dist/tools/self-host-processes.d.ts +3 -0
  570. package/dist/tools/self-host-processes.js +63 -33
  571. package/dist/tools/self-host-project.d.ts +4 -0
  572. package/dist/tools/self-host-project.js +42 -60
  573. package/dist/tools/self-host-runtime.d.ts +16 -0
  574. package/dist/tools/self-host-runtime.js +60 -0
  575. package/dist/tools/self-host-workflows.d.ts +1 -0
  576. package/dist/tools/self-host-workflows.js +36 -1
  577. package/dist/tools/self-host.js +128 -71
  578. package/dist/tools/template-command.d.ts +1 -0
  579. package/dist/tools/template-command.js +160 -0
  580. package/dist/tools/template-copy.d.ts +11 -0
  581. package/dist/tools/template-copy.js +130 -0
  582. package/dist/tools/template-files.d.ts +17 -0
  583. package/dist/tools/template-files.js +74 -0
  584. package/dist/tools/workflow-bundles.js +1 -0
  585. package/dist/tools/workflow-candidate-counts.d.ts +6 -2
  586. package/dist/tools/workflow-candidate-counts.js +31 -16
  587. package/dist/tools/workflow-candidate-fields.d.ts +5 -0
  588. package/dist/tools/workflow-candidate-fields.js +24 -0
  589. package/dist/tools/workflow-candidate-helper-counts.d.ts +10 -0
  590. package/dist/tools/workflow-candidate-helper-counts.js +129 -0
  591. package/dist/tools/workflow-candidate-program.d.ts +2 -0
  592. package/dist/tools/workflow-candidate-program.js +36 -8
  593. package/dist/tools/workflow-candidate-shape.d.ts +3 -0
  594. package/dist/tools/workflow-candidate-shape.js +90 -0
  595. package/dist/tools/workflow-candidate-source.js +92 -16
  596. package/dist/tools/workflow-candidate-syntax.d.ts +9 -3
  597. package/dist/tools/workflow-candidate-syntax.js +83 -109
  598. package/dist/tools/workflow-command.d.ts +1 -0
  599. package/dist/tools/workflow-command.js +142 -0
  600. package/dist/tools/workflow-folder-capture.d.ts +1 -0
  601. package/dist/tools/workflow-folder-capture.js +47 -2
  602. package/dist/tools/workflow-folders.d.ts +18 -3
  603. package/dist/tools/workflow-folders.js +60 -7
  604. package/dist/tools/workflow-test-hook.d.ts +7 -0
  605. package/dist/tools/workflow-test-hook.js +16 -0
  606. package/dist/tools/workflow-test-loader.d.ts +1 -0
  607. package/dist/tools/workflow-test-loader.js +10 -0
  608. package/package.json +60 -10
  609. package/templates/develop/README.md +90 -0
  610. package/templates/develop/develop/accept.ts +11 -0
  611. package/templates/develop/develop/flow-tests.ts +394 -0
  612. package/templates/develop/develop/local.ts +40 -0
  613. package/templates/develop/develop/option-tests.ts +174 -0
  614. package/templates/develop/develop/partial-choice.ts +29 -0
  615. package/templates/develop/develop/partial.ts +28 -0
  616. package/templates/develop/develop/pull.ts +156 -0
  617. package/templates/develop/develop/queue-partial.ts +39 -0
  618. package/templates/develop/develop/refusal-tests.ts +251 -0
  619. package/templates/develop/develop/report.ts +156 -0
  620. package/templates/develop/develop/round.ts +40 -0
  621. package/templates/develop/develop/scenarios.ts +87 -0
  622. package/templates/develop/develop/turn.ts +68 -0
  623. package/templates/develop/develop.declaration.json +24 -0
  624. package/templates/develop/develop.test.ts +287 -0
  625. package/templates/develop/develop.ts +30 -0
  626. package/templates/develop/template.json +153 -0
  627. package/templates/idea-to-issue/README.md +27 -0
  628. package/templates/idea-to-issue/idea-to-issue/effects.ts +52 -0
  629. package/templates/idea-to-issue/idea-to-issue/leave.ts +10 -0
  630. package/templates/idea-to-issue/idea-to-issue/next.ts +29 -0
  631. package/templates/idea-to-issue/idea-to-issue/post-person.ts +18 -0
  632. package/templates/idea-to-issue/idea-to-issue/post.ts +50 -0
  633. package/templates/idea-to-issue/idea-to-issue/queue.ts +27 -0
  634. package/templates/idea-to-issue/idea-to-issue/review.ts +42 -0
  635. package/templates/idea-to-issue/idea-to-issue/scenarios.ts +50 -0
  636. package/templates/idea-to-issue/idea-to-issue/turn.ts +40 -0
  637. package/templates/idea-to-issue/idea-to-issue.declaration.json +16 -0
  638. package/templates/idea-to-issue/idea-to-issue.test.ts +79 -0
  639. package/templates/idea-to-issue/idea-to-issue.ts +49 -0
  640. package/templates/idea-to-issue/template.json +81 -0
  641. package/templates/review-day/README.md +97 -0
  642. package/templates/review-day/review-day/critique.ts +58 -0
  643. package/templates/review-day/review-day/decision.ts +29 -0
  644. package/templates/review-day/review-day/facts.ts +69 -0
  645. package/templates/review-day/review-day/label.ts +29 -0
  646. package/templates/review-day/review-day/next.ts +28 -0
  647. package/templates/review-day/review-day/post.ts +27 -0
  648. package/templates/review-day/review-day/report.ts +98 -0
  649. package/templates/review-day/review-day/rules.ts +12 -0
  650. package/templates/review-day/review-day/scenarios.ts +76 -0
  651. package/templates/review-day/review-day/turn.ts +73 -0
  652. package/templates/review-day/review-day.declaration.json +16 -0
  653. package/templates/review-day/review-day.test.ts +362 -0
  654. package/templates/review-day/review-day.ts +37 -0
  655. package/templates/review-day/template.json +56 -0
  656. package/dist/src/chats/analysis-batches.d.ts +0 -42
  657. package/dist/src/chats/analysis-batches.js +0 -97
  658. package/dist/src/chats/analysis-checkpoint.d.ts +0 -29
  659. package/dist/src/chats/analysis-checkpoint.js +0 -31
  660. package/dist/src/chats/analysis-contract.d.ts +0 -80
  661. package/dist/src/chats/analysis-contract.js +0 -16
  662. package/dist/src/chats/analysis-data.d.ts +0 -3
  663. package/dist/src/chats/analysis-data.js +0 -85
  664. package/dist/src/chats/analysis-input.d.ts +0 -18
  665. package/dist/src/chats/analysis-input.js +0 -97
  666. package/dist/src/chats/analysis-links.d.ts +0 -2
  667. package/dist/src/chats/analysis-links.js +0 -25
  668. package/dist/src/chats/analysis-merge.d.ts +0 -16
  669. package/dist/src/chats/analysis-merge.js +0 -134
  670. package/dist/src/chats/analysis-prompt.d.ts +0 -18
  671. package/dist/src/chats/analysis-prompt.js +0 -42
  672. package/dist/src/chats/analysis-proposal.d.ts +0 -4
  673. package/dist/src/chats/analysis-proposal.js +0 -41
  674. package/dist/src/chats/analysis-provenance.d.ts +0 -4
  675. package/dist/src/chats/analysis-provenance.js +0 -99
  676. package/dist/src/chats/analysis-shape.d.ts +0 -4
  677. package/dist/src/chats/analysis-shape.js +0 -235
  678. package/dist/src/chats/analysis.d.ts +0 -3
  679. package/dist/src/chats/analysis.js +0 -42
  680. package/dist/src/chats/corpus-input.d.ts +0 -5
  681. package/dist/src/chats/corpus-input.js +0 -288
  682. package/dist/src/chats/destination.d.ts +0 -4
  683. package/dist/src/chats/destination.js +0 -96
  684. package/dist/src/chats/import.d.ts +0 -15
  685. package/dist/src/chats/import.js +0 -243
  686. package/dist/src/chats/input-file.d.ts +0 -3
  687. package/dist/src/chats/input-file.js +0 -32
  688. package/dist/src/chats/normalize.d.ts +0 -29
  689. package/dist/src/chats/normalize.js +0 -155
  690. package/dist/src/chats/previous-import.d.ts +0 -5
  691. package/dist/src/chats/previous-import.js +0 -34
  692. package/dist/src/chats/reader.d.ts +0 -21
  693. package/dist/src/chats/reader.js +0 -118
  694. package/dist/src/chats/redact-import.d.ts +0 -14
  695. package/dist/src/chats/redact-import.js +0 -141
  696. package/dist/src/chats/redaction.d.ts +0 -41
  697. package/dist/src/chats/redaction.js +0 -161
  698. package/dist/src/chats/reference-mapping.d.ts +0 -16
  699. package/dist/src/chats/reference-mapping.js +0 -153
  700. package/dist/src/chats/revision-input.d.ts +0 -3
  701. package/dist/src/chats/revision-input.js +0 -180
  702. package/dist/src/chats/revision.d.ts +0 -48
  703. package/dist/src/chats/revision.js +0 -94
  704. package/dist/src/chats/selection.d.ts +0 -25
  705. package/dist/src/chats/selection.js +0 -109
  706. package/dist/src/chats/source.d.ts +0 -23
  707. package/dist/src/chats/source.js +0 -135
  708. package/dist/src/chats/structure.d.ts +0 -57
  709. package/dist/src/chats/structure.js +0 -216
  710. package/dist/src/chats/workflow-generation-projection.d.ts +0 -8
  711. package/dist/src/chats/workflow-generation-projection.js +0 -75
  712. package/dist/src/chats/workflow-generation-source.d.ts +0 -25
  713. package/dist/src/chats/workflow-generation-source.js +0 -124
  714. package/dist/src/chats/workflow-generation-text.d.ts +0 -23
  715. package/dist/src/chats/workflow-generation-text.js +0 -74
  716. package/dist/src/chats/workflow-generation.d.ts +0 -69
  717. package/dist/src/chats/workflow-generation.js +0 -142
  718. package/dist/src/cli/watch-start-view.d.ts +0 -18
  719. package/dist/src/cli/watch-start-view.js +0 -77
  720. package/dist/src/daemon/analysis-launch.d.ts +0 -5
  721. package/dist/src/daemon/analysis-launch.js +0 -81
  722. package/dist/src/daemon/analysis-token.d.ts +0 -6
  723. package/dist/src/daemon/analysis-token.js +0 -88
  724. package/dist/src/daemon/analysis-worker.d.ts +0 -20
  725. package/dist/src/daemon/analysis-worker.js +0 -271
  726. package/dist/src/daemon/chats-batch-binding.d.ts +0 -23
  727. package/dist/src/daemon/chats-batch-binding.js +0 -99
  728. package/dist/src/daemon/chats-capture.d.ts +0 -18
  729. package/dist/src/daemon/chats-capture.js +0 -194
  730. package/dist/src/daemon/chats-checkpoints.d.ts +0 -41
  731. package/dist/src/daemon/chats-checkpoints.js +0 -186
  732. package/dist/src/daemon/chats-files.d.ts +0 -42
  733. package/dist/src/daemon/chats-files.js +0 -252
  734. package/dist/src/daemon/chats-follow-up.d.ts +0 -38
  735. package/dist/src/daemon/chats-follow-up.js +0 -180
  736. package/dist/src/daemon/chats-question.d.ts +0 -15
  737. package/dist/src/daemon/chats-question.js +0 -93
  738. package/dist/src/daemon/chats-worker.d.ts +0 -13
  739. package/dist/src/daemon/chats-worker.js +0 -201
  740. package/dist/src/steps/decision-gate.d.ts +0 -2
  741. package/dist/src/steps/decision-gate.js +0 -8
  742. package/dist/workflows/analyze-chats.d.ts +0 -15
  743. package/dist/workflows/analyze-chats.declaration.json +0 -22
  744. package/dist/workflows/analyze-chats.js +0 -250
  745. package/dist/workflows/develop-prd.d.ts +0 -7
  746. package/dist/workflows/develop-prd.js +0 -165
  747. package/dist/workflows/develop-ticket.d.ts +0 -9
  748. package/dist/workflows/develop-ticket.js +0 -207
  749. package/dist/workflows/issue-labels.d.ts +0 -16
  750. package/dist/workflows/issue-labels.js +0 -70
  751. package/dist/workflows/ticket-prompts.d.ts +0 -35
  752. package/dist/workflows/ticket-prompts.js +0 -143
@@ -86,7 +86,7 @@ function effectPort(parts) {
86
86
  command: {
87
87
  kind: "report-effect",
88
88
  ...rest,
89
- ...(result === undefined ? {} : { result: documentDigest(result) }),
89
+ ...reportedResult({ result, worker: report.worker }),
90
90
  },
91
91
  documents: result === undefined ? [] : [result],
92
92
  epoch: epoch ?? authority.epoch,
@@ -124,3 +124,11 @@ export function workerPort(parts) {
124
124
  ...effectPort(parts),
125
125
  };
126
126
  }
127
+ function reportedResult(report) {
128
+ if (report.result === undefined)
129
+ return {};
130
+ return {
131
+ result: documentDigest(report.result),
132
+ ...(report.worker === "command" ? { commandOutput: report.result } : {}),
133
+ };
134
+ }
@@ -1,3 +1,5 @@
1
+ import { type Fields } from "../protocol.ts";
1
2
  import { type WorkerTotals } from "../worker-usage.ts";
2
3
  import type { ServiceContext } from "./replies.ts";
4
+ export declare function reportFields(text: string | undefined): Fields;
3
5
  export declare function usageTotals(context: ServiceContext, runId: string): Promise<WorkerTotals>;
@@ -1,6 +1,6 @@
1
1
  import { record } from "../protocol.js";
2
- import { priceOf, usageOf, tokenCount, workerTotals, } from "../worker-usage.js";
3
- function reportFields(text) {
2
+ import { priceOf, usageOf, attemptsOf, workerTotals, } from "../worker-usage.js";
3
+ export function reportFields(text) {
4
4
  try {
5
5
  return record(JSON.parse(text ?? "null")) ?? {};
6
6
  }
@@ -8,28 +8,6 @@ function reportFields(text) {
8
8
  return {};
9
9
  }
10
10
  }
11
- function attemptsOf(value) {
12
- if (!Array.isArray(value))
13
- return undefined;
14
- return value.flatMap((entry) => {
15
- const fields = record(entry) ?? {};
16
- const attempt = tokenCount(fields["attempt"]);
17
- const model = fields["model"];
18
- if (attempt === null ||
19
- attempt === 0 ||
20
- (model !== null && typeof model !== "string"))
21
- return [];
22
- return [
23
- {
24
- attempt,
25
- model,
26
- usage: usageOf(fields["usage"]),
27
- costUsd: priceOf(fields["costUsd"]),
28
- estimatedCostUsd: priceOf(fields["estimatedCostUsd"]),
29
- },
30
- ];
31
- });
32
- }
33
11
  export async function usageTotals(context, runId) {
34
12
  const { effects, queries } = context.authority;
35
13
  const operations = (await effects.operations(runId)).filter((operation) => operation.capability === "claude" &&
@@ -40,7 +18,14 @@ export async function usageTotals(context, runId) {
40
18
  ? undefined
41
19
  : await queries.document(operation.result));
42
20
  const attempts = attemptsOf(report["attempts"]);
21
+ const model = report["model"];
22
+ const summary = report["summary"];
23
+ const harness = report["harness"] ??
24
+ (await context.workerHarness?.(operation.operationId));
43
25
  turns.push({
26
+ ...(typeof model === "string" ? { model } : {}),
27
+ ...(typeof summary === "string" ? { summary } : {}),
28
+ ...(typeof harness === "string" ? { harness } : {}),
44
29
  ...(attempts === undefined ? {} : { attempts }),
45
30
  operationId: operation.operationId,
46
31
  usage: usageOf(report["usage"]),
@@ -41,6 +41,13 @@ export interface GateRequest {
41
41
  readonly prompt: string;
42
42
  readonly expiresAt?: string;
43
43
  }
44
+ export interface DecisionResult {
45
+ readonly decision: "approved" | "denied" | "answered" | "expired";
46
+ readonly answer: string | null;
47
+ }
48
+ export type DecisionWait = {
49
+ readonly token: string;
50
+ } | DecisionResult;
44
51
  export type HandoffValue = string | number | boolean | null | readonly HandoffValue[] | {
45
52
  readonly [key: string]: HandoffValue;
46
53
  };
@@ -48,6 +55,36 @@ export interface HandoffRequest {
48
55
  readonly workflowId: string;
49
56
  readonly input: Readonly<Record<string, HandoffValue>>;
50
57
  }
58
+ export interface RunWaitRequest {
59
+ readonly runId: string;
60
+ readonly maximumWaitSeconds: number;
61
+ }
62
+ export interface RunWaitOutcome {
63
+ readonly kind: string;
64
+ readonly reason: string | null;
65
+ readonly promotionId: string | null;
66
+ }
67
+ export interface CommandWaitRequest {
68
+ readonly name: string;
69
+ readonly input: HandoffValue;
70
+ }
71
+ export type CommandWaitOutcome = {
72
+ readonly kind: "ready";
73
+ readonly value: HandoffValue;
74
+ } | {
75
+ readonly kind: "timed-out" | "failed" | "refused" | "unavailable";
76
+ readonly reason: string;
77
+ };
78
+ export type CommandWaitProgress = CommandWaitOutcome | {
79
+ readonly kind: "pending";
80
+ readonly deadline: number;
81
+ readonly nextCheckAt: number;
82
+ };
83
+ export interface CommandRequest {
84
+ readonly scope: ProtectedScope;
85
+ readonly name: string;
86
+ readonly input: HandoffValue;
87
+ }
51
88
  export type GateResult = {
52
89
  readonly kind: "opened";
53
90
  readonly decisionId: string;
@@ -59,8 +96,14 @@ export type GateResult = {
59
96
  readonly reason: string;
60
97
  };
61
98
  export interface StepBridge {
99
+ readonly openCommandWait?: (request: CommandWaitRequest) => Promise<CommandWaitProgress>;
100
+ readonly checkCommandWait?: (request: {
101
+ readonly name: string;
102
+ }) => Promise<CommandWaitProgress>;
62
103
  readonly effect: (request: ProtectedRequest) => Promise<ProtectedResult>;
63
104
  readonly gate: (request: GateRequest) => Promise<GateResult>;
105
+ readonly waitForDecision?: (request: GateRequest) => Promise<DecisionWait>;
64
106
  readonly handoff?: (request: HandoffRequest) => Promise<ProtectedResult>;
107
+ readonly waitForRun?: (request: RunWaitRequest) => Promise<RunWaitOutcome>;
65
108
  }
66
109
  export declare function isStepBridge(value: unknown): value is StepBridge;
@@ -0,0 +1,12 @@
1
+ import { type CommandWaitRequest, type CommandWaitProgress } from "../command-wait.ts";
2
+ export declare function openCommandWait(request: CommandWaitRequest): Promise<CommandWaitProgress>;
3
+ export declare namespace openCommandWait {
4
+ var maxRetries: number;
5
+ }
6
+ export declare function checkCommandWait(request: {
7
+ readonly name: string;
8
+ }): Promise<CommandWaitProgress>;
9
+ export declare namespace checkCommandWait {
10
+ var maxRetries: number;
11
+ }
12
+ export declare function commandWaitDate(milliseconds: number): Date;
@@ -0,0 +1,26 @@
1
+ import { isStepBridge, stepBridgeKey } from "../step-bridge.js";
2
+ import { isCommandWaitRequest, } from "../command-wait.js";
3
+ export async function openCommandWait(request) {
4
+ "use step";
5
+ if (!isCommandWaitRequest(request))
6
+ return { kind: "refused", reason: "invalid-command-wait-request" };
7
+ const bridge = Reflect.get(globalThis, Symbol.for(stepBridgeKey));
8
+ if (!isStepBridge(bridge) || bridge.openCommandWait === undefined)
9
+ return { kind: "unavailable", reason: "cloving-host-unavailable" };
10
+ return await bridge.openCommandWait({
11
+ name: request.name,
12
+ input: request.input,
13
+ });
14
+ }
15
+ export async function checkCommandWait(request) {
16
+ "use step";
17
+ const bridge = Reflect.get(globalThis, Symbol.for(stepBridgeKey));
18
+ if (!isStepBridge(bridge) || bridge.checkCommandWait === undefined)
19
+ return { kind: "unavailable", reason: "cloving-host-unavailable" };
20
+ return await bridge.checkCommandWait({ name: request.name });
21
+ }
22
+ openCommandWait.maxRetries = 0;
23
+ checkCommandWait.maxRetries = 0;
24
+ export function commandWaitDate(milliseconds) {
25
+ return new Date(milliseconds);
26
+ }
@@ -0,0 +1,2 @@
1
+ import { type MergeRequest, type MergeResult } from "../merge-request.ts";
2
+ export declare function mergeByPerson(request: MergeRequest): Promise<MergeResult>;
@@ -0,0 +1,18 @@
1
+ import { mergeRequest, } from "../merge-request.js";
2
+ import { mergeWhenGreen } from "./merge-when-green.js";
3
+ import { waitForDecision } from "./wait-for-decision.js";
4
+ export async function mergeByPerson(request) {
5
+ const { pull, check, round } = mergeRequest(request);
6
+ const decision = await waitForDecision({
7
+ gateId: `merge:${String(pull.number)}:${pull.commit}`,
8
+ kind: "approval",
9
+ prompt: `Merge pull request #${String(pull.number)} (${pull.url}) at commit ${pull.commit} ${check === null ? "with no local check" : `after the local check ${check}`}.`,
10
+ });
11
+ if (decision.decision !== "approved")
12
+ return {
13
+ merged: false,
14
+ reason: "not-approved",
15
+ output: decision.answer ?? "",
16
+ };
17
+ return await mergeWhenGreen({ pull, check, round });
18
+ }
@@ -0,0 +1,2 @@
1
+ import { type MergeRequest, type MergeResult } from "../merge-request.ts";
2
+ export declare function mergeWhenGreen(request: MergeRequest): Promise<MergeResult>;
@@ -0,0 +1,62 @@
1
+ import { mergeRequest, } from "../merge-request.js";
2
+ import { record } from "../protocol.js";
3
+ import { protectedEffect } from "./protected-effect.js";
4
+ const repairReasons = [
5
+ "check-failed",
6
+ "merge-conflict",
7
+ "ci-failed",
8
+ "ci-pending",
9
+ ];
10
+ export async function mergeWhenGreen(request) {
11
+ const { pull, check, round } = mergeRequest(request);
12
+ const effect = await protectedEffect({
13
+ capability: "github",
14
+ method: "merge",
15
+ target: pull.target,
16
+ payload: JSON.stringify({
17
+ number: pull.number,
18
+ commit: pull.commit,
19
+ check,
20
+ }),
21
+ scope: {
22
+ phase: "merge",
23
+ operation: "merge",
24
+ round,
25
+ key: `${String(pull.number)}:${pull.commit}`,
26
+ },
27
+ units: 1,
28
+ });
29
+ return mergeOutcome(effect, pull);
30
+ }
31
+ function mergeOutcome(effect, pull) {
32
+ if (effect.kind !== "completed")
33
+ return notMerged(effect);
34
+ const result = parsedResult(effect.result);
35
+ const reason = repairReasons.find((name) => name === result["reason"]);
36
+ if (reason !== undefined && typeof result["output"] === "string")
37
+ return { merged: false, reason, output: result["output"] };
38
+ if (result["reason"] !== undefined ||
39
+ result["number"] !== pull.number ||
40
+ result["commit"] !== pull.commit ||
41
+ typeof result["merged"] !== "string")
42
+ throw new Error("invalid-merge-result");
43
+ return { merged: true, reason: null, output: "" };
44
+ }
45
+ function notMerged(effect) {
46
+ if (effect.kind === "failed" && effect.reason === "check-not-configured")
47
+ return { merged: false, reason: "check-not-configured", output: "" };
48
+ throw new Error(effect.reason ?? effect.kind);
49
+ }
50
+ function parsedResult(text) {
51
+ let parsed;
52
+ try {
53
+ parsed = JSON.parse(text ?? "null");
54
+ }
55
+ catch {
56
+ throw new Error("invalid-merge-result");
57
+ }
58
+ const result = record(parsed);
59
+ if (result === undefined)
60
+ throw new Error("invalid-merge-result");
61
+ return result;
62
+ }
@@ -0,0 +1,2 @@
1
+ import { type GateRequest, type DecisionWait } from "../step-bridge.ts";
2
+ export declare function openDecisionWait(request: GateRequest): Promise<DecisionWait>;
@@ -0,0 +1,8 @@
1
+ import { isStepBridge, stepBridgeKey, } from "../step-bridge.js";
2
+ export async function openDecisionWait(request) {
3
+ "use step";
4
+ const bridge = Reflect.get(globalThis, Symbol.for(stepBridgeKey));
5
+ if (!isStepBridge(bridge) || bridge.waitForDecision === undefined)
6
+ throw new Error("cloving-host-unavailable");
7
+ return await bridge.waitForDecision(request);
8
+ }
@@ -0,0 +1,5 @@
1
+ import type { ReviewResult, ReviewSubject, Reviewer } from "../review-subject.ts";
2
+ export declare function reviewByAgent(request: {
3
+ readonly subject: ReviewSubject;
4
+ readonly reviewer: Reviewer;
5
+ }): Promise<ReviewResult>;
@@ -0,0 +1,124 @@
1
+ import { record } from "../protocol.js";
2
+ import { protectedEffect } from "./protected-effect.js";
3
+ import { snapshotReviewSubject } from "./review-subject.js";
4
+ export async function reviewByAgent(request) {
5
+ const reviewer = selectedReviewer(request.reviewer);
6
+ const subject = { ...request.subject };
7
+ const snapshot = await snapshotReviewSubject(subject);
8
+ const effect = await protectedEffect({
9
+ ...reviewEffect({ subject, snapshot, reviewer }),
10
+ scope: {
11
+ phase: "review",
12
+ operation: reviewer.kind === "greptile" ? "greptile" : `turn:${reviewer.profile}`,
13
+ round: 1,
14
+ key: snapshot.subjectDigest,
15
+ },
16
+ units: 1,
17
+ });
18
+ if (effect.kind !== "completed")
19
+ throw new Error(effect.reason ?? effect.kind);
20
+ let parsed;
21
+ try {
22
+ parsed = JSON.parse(effect.result ?? "null");
23
+ }
24
+ catch {
25
+ throw new Error("invalid-review-result");
26
+ }
27
+ return {
28
+ ...(reviewer.kind === "turn"
29
+ ? turnResult(parsed)
30
+ : greptileFeedback(parsed, subject)),
31
+ commit: snapshot.commit,
32
+ subjectDigest: snapshot.subjectDigest,
33
+ };
34
+ }
35
+ function selectedReviewer(value) {
36
+ const reviewer = record(value);
37
+ if (reviewer?.["kind"] === "greptile")
38
+ return { kind: "greptile" };
39
+ if (reviewer?.["kind"] === "turn" &&
40
+ typeof reviewer["profile"] === "string" &&
41
+ /^[A-Za-z0-9_-]{1,119}$/.test(reviewer["profile"]))
42
+ return { kind: "turn", profile: reviewer["profile"] };
43
+ throw new Error("invalid-reviewer");
44
+ }
45
+ function reviewEffect(input) {
46
+ const { subject, snapshot, reviewer } = input;
47
+ if (reviewer.kind === "turn")
48
+ return {
49
+ capability: "claude",
50
+ method: `run-turn:${reviewer.profile}`,
51
+ target: "draft" in subject ? snapshot.subjectDigest : subject.target,
52
+ payload: `Review only this immutable subject. Do not change it. For a commit, inspect that exact commit, not the current branch head.\n${snapshot.prompt}\nEnd your report with exactly one of these lines:\nReview verdict: accept\nReview verdict: change`,
53
+ };
54
+ if ("draft" in subject ||
55
+ !Number.isSafeInteger(subject.number) ||
56
+ Number(subject.number) < 1)
57
+ throw new Error("invalid-greptile-subject");
58
+ return {
59
+ capability: "github",
60
+ method: "wait-review",
61
+ target: subject.target,
62
+ payload: JSON.stringify({ number: subject.number, commit: subject.commit }),
63
+ };
64
+ }
65
+ function turnResult(parsed) {
66
+ const result = record(parsed);
67
+ if (result &&
68
+ (result["reviewVerdict"] === null || result["reviewVerdict"] === undefined))
69
+ return {
70
+ accepted: false,
71
+ feedback: "The review turn has no verdict line.",
72
+ };
73
+ if (!result ||
74
+ typeof result["summary"] !== "string" ||
75
+ (result["reviewVerdict"] !== "accept" &&
76
+ result["reviewVerdict"] !== "change"))
77
+ throw new Error("invalid-review-result");
78
+ return {
79
+ accepted: result["reviewVerdict"] === "accept",
80
+ feedback: result["summary"],
81
+ };
82
+ }
83
+ function greptileFeedback(parsed, subject) {
84
+ if ("draft" in subject)
85
+ throw new Error("invalid-greptile-subject");
86
+ const result = greptileResult(parsed, subject);
87
+ return {
88
+ accepted: result.score === 5,
89
+ feedback: [result.summary, ...result.findings].filter(Boolean).join("\n\n"),
90
+ };
91
+ }
92
+ function greptileResult(parsed, subject) {
93
+ const result = record(parsed);
94
+ if (!result)
95
+ throw new Error("invalid-review-result");
96
+ const score = result["score"];
97
+ const summary = result["summary"];
98
+ const findings = result["findings"];
99
+ if (result["number"] !== subject.number ||
100
+ result["commit"] !== subject.commit ||
101
+ typeof score !== "number" ||
102
+ !Number.isInteger(score) ||
103
+ score < 0 ||
104
+ score > 5 ||
105
+ typeof summary !== "string" ||
106
+ !Array.isArray(findings))
107
+ throw new Error("invalid-review-result");
108
+ return {
109
+ score,
110
+ summary,
111
+ findings: findings.map((value) => {
112
+ const finding = record(value);
113
+ if (!finding)
114
+ throw new Error("invalid-review-result");
115
+ const { path, line, body } = finding;
116
+ if (typeof path !== "string" ||
117
+ typeof body !== "string" ||
118
+ !(line === null ||
119
+ (typeof line === "number" && Number.isSafeInteger(line) && line > 0)))
120
+ throw new Error("invalid-review-result");
121
+ return `${path}${line === null ? "" : `:${String(line)}`}\n${body}`;
122
+ }),
123
+ };
124
+ }
@@ -0,0 +1,4 @@
1
+ import type { ReviewResult, ReviewSubject } from "../review-subject.ts";
2
+ export declare function reviewByPerson(request: {
3
+ readonly subject: ReviewSubject;
4
+ }): Promise<ReviewResult>;
@@ -0,0 +1,19 @@
1
+ import { snapshotReviewSubject } from "./review-subject.js";
2
+ import { waitForDecision } from "./wait-for-decision.js";
3
+ export async function reviewByPerson(request) {
4
+ let draft = "draft" in request.subject ? request.subject.draft : null;
5
+ if (draft !== null && request.subject.commit !== undefined)
6
+ draft = `${request.subject.commit}\n${draft}`;
7
+ const snapshot = await snapshotReviewSubject(request.subject);
8
+ const decision = await waitForDecision({
9
+ gateId: `review:${snapshot.subjectDigest}`,
10
+ kind: "approval",
11
+ prompt: `Review this subject:\n${draft ?? snapshot.prompt}`,
12
+ });
13
+ return {
14
+ accepted: decision.decision === "approved",
15
+ feedback: decision.answer ?? "",
16
+ commit: snapshot.commit,
17
+ subjectDigest: snapshot.subjectDigest,
18
+ };
19
+ }
@@ -0,0 +1,2 @@
1
+ import { type ReviewSubject, type ReviewSnapshot } from "../review-subject.ts";
2
+ export declare function snapshotReviewSubject(subject: ReviewSubject): Promise<ReviewSnapshot>;
@@ -0,0 +1,11 @@
1
+ import { operationDigest } from "../broker/operation-digest.js";
2
+ import { reviewSubjectText, } from "../review-subject.js";
3
+ export async function snapshotReviewSubject(subject) {
4
+ "use step";
5
+ const prompt = reviewSubjectText(subject);
6
+ return Promise.resolve({
7
+ commit: "draft" in subject ? null : subject.commit,
8
+ subjectDigest: `sha256:${operationDigest(prompt)}`,
9
+ prompt,
10
+ });
11
+ }
@@ -0,0 +1,2 @@
1
+ import { type CommandRequest, type ProtectedResult } from "../step-bridge.ts";
2
+ export declare function runCommand(request: CommandRequest): Promise<ProtectedResult>;
@@ -0,0 +1,15 @@
1
+ import { isStepBridge, stepBridgeKey, } from "../step-bridge.js";
2
+ export async function runCommand(request) {
3
+ "use step";
4
+ const bridge = Reflect.get(globalThis, Symbol.for(stepBridgeKey));
5
+ if (!isStepBridge(bridge))
6
+ return { kind: "unavailable", reason: "cloving-host-unavailable" };
7
+ return await bridge.effect({
8
+ scope: request.scope,
9
+ capability: "command",
10
+ method: `run:${request.name}`,
11
+ target: request.name,
12
+ payload: JSON.stringify(request.input),
13
+ units: 1,
14
+ });
15
+ }
@@ -0,0 +1,3 @@
1
+ export declare function sleep(request: {
2
+ readonly seconds: number;
3
+ }): Promise<void>;
@@ -0,0 +1,19 @@
1
+ import { sleep as sdkSleep } from "workflow";
2
+ export async function sleep(request) {
3
+ await sdkSleep(sleepSeconds(request) * 1000);
4
+ }
5
+ function sleepSeconds(request) {
6
+ if (typeof request !== "object" ||
7
+ request === null ||
8
+ Reflect.ownKeys(request).length !== 1)
9
+ throw new Error("invalid-sleep-seconds");
10
+ const field = Object.getOwnPropertyDescriptor(request, "seconds") ?? {};
11
+ const seconds = field.value;
12
+ if (field.enumerable !== true ||
13
+ typeof seconds !== "number" ||
14
+ !Number.isInteger(seconds) ||
15
+ seconds < 1 ||
16
+ seconds > 86400)
17
+ throw new Error("invalid-sleep-seconds");
18
+ return seconds;
19
+ }
@@ -0,0 +1,3 @@
1
+ import { type CommandWaitRequest, type CommandWaitOutcome } from "../command-wait.ts";
2
+ export type { CommandWaitRequest, CommandWaitOutcome, } from "../command-wait.ts";
3
+ export declare function waitForCommand(request: CommandWaitRequest): Promise<CommandWaitOutcome>;
@@ -0,0 +1,17 @@
1
+ import { sleep } from "workflow";
2
+ import { isCommandWaitRequest, } from "../command-wait.js";
3
+ import { openCommandWait, checkCommandWait, commandWaitDate, } from "./command-wait.js";
4
+ export async function waitForCommand(request) {
5
+ if (!isCommandWaitRequest(request))
6
+ return { kind: "refused", reason: "invalid-command-wait-request" };
7
+ let result = await openCommandWait({
8
+ name: request.name,
9
+ input: request.input,
10
+ });
11
+ while (result.kind === "pending") {
12
+ result = await checkCommandWait({ name: request.name });
13
+ if (result.kind === "pending")
14
+ await sleep(commandWaitDate(Math.min(result.deadline, result.nextCheckAt)));
15
+ }
16
+ return result;
17
+ }
@@ -0,0 +1,2 @@
1
+ import type { DecisionResult, GateRequest } from "../step-bridge.ts";
2
+ export declare function waitForDecision(request: GateRequest): Promise<DecisionResult>;
@@ -0,0 +1,71 @@
1
+ var __addDisposableResource = (this && this.__addDisposableResource) || function (env, value, async) {
2
+ if (value !== null && value !== void 0) {
3
+ if (typeof value !== "object" && typeof value !== "function") throw new TypeError("Object expected.");
4
+ var dispose, inner;
5
+ if (async) {
6
+ if (!Symbol.asyncDispose) throw new TypeError("Symbol.asyncDispose is not defined.");
7
+ dispose = value[Symbol.asyncDispose];
8
+ }
9
+ if (dispose === void 0) {
10
+ if (!Symbol.dispose) throw new TypeError("Symbol.dispose is not defined.");
11
+ dispose = value[Symbol.dispose];
12
+ if (async) inner = dispose;
13
+ }
14
+ if (typeof dispose !== "function") throw new TypeError("Object not disposable.");
15
+ if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };
16
+ env.stack.push({ value: value, dispose: dispose, async: async });
17
+ }
18
+ else if (async) {
19
+ env.stack.push({ async: true });
20
+ }
21
+ return value;
22
+ };
23
+ var __disposeResources = (this && this.__disposeResources) || (function (SuppressedError) {
24
+ return function (env) {
25
+ function fail(e) {
26
+ env.error = env.hasError ? new SuppressedError(e, env.error, "An error was suppressed during disposal.") : e;
27
+ env.hasError = true;
28
+ }
29
+ var r, s = 0;
30
+ function next() {
31
+ while (r = env.stack.pop()) {
32
+ try {
33
+ if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);
34
+ if (r.dispose) {
35
+ var result = r.dispose.call(r.value);
36
+ if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });
37
+ }
38
+ else s |= 1;
39
+ }
40
+ catch (e) {
41
+ fail(e);
42
+ }
43
+ }
44
+ if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();
45
+ if (env.hasError) throw env.error;
46
+ }
47
+ return next();
48
+ };
49
+ })(typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) {
50
+ var e = new Error(message);
51
+ return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
52
+ });
53
+ import { createHook } from "workflow";
54
+ import { openDecisionWait } from "./open-decision-wait.js";
55
+ export async function waitForDecision(request) {
56
+ const env_1 = { stack: [], error: void 0, hasError: false };
57
+ try {
58
+ const wait = await openDecisionWait(request);
59
+ if ("decision" in wait)
60
+ return wait;
61
+ const hook = __addDisposableResource(env_1, createHook({ token: wait.token }), false);
62
+ return await hook;
63
+ }
64
+ catch (e_1) {
65
+ env_1.error = e_1;
66
+ env_1.hasError = true;
67
+ }
68
+ finally {
69
+ __disposeResources(env_1);
70
+ }
71
+ }
@@ -0,0 +1,5 @@
1
+ import { type RunWaitOutcome, type RunWaitRequest } from "../step-bridge.ts";
2
+ export declare function waitForRun(request: RunWaitRequest): Promise<RunWaitOutcome>;
3
+ export declare namespace waitForRun {
4
+ var maxRetries: number;
5
+ }
@@ -0,0 +1,9 @@
1
+ import { isStepBridge, stepBridgeKey, } from "../step-bridge.js";
2
+ export async function waitForRun(request) {
3
+ "use step";
4
+ const bridge = Reflect.get(globalThis, Symbol.for(stepBridgeKey));
5
+ if (!isStepBridge(bridge) || bridge.waitForRun === undefined)
6
+ throw new Error("cloving-host-unavailable");
7
+ return await bridge.waitForRun(request);
8
+ }
9
+ waitForRun.maxRetries = 86401;
@@ -0,0 +1,30 @@
1
+ import { type SqlConnection } from "./domain-rows.ts";
2
+ import { type Statement } from "./statements.ts";
3
+ export declare const commandWaitSchema = "\nCREATE TABLE command_waits (\n run_id TEXT NOT NULL REFERENCES runs (run_id) DEFERRABLE INITIALLY DEFERRED,\n name TEXT NOT NULL,\n command TEXT NOT NULL,\n input_digest TEXT NOT NULL REFERENCES documents (digest) DEFERRABLE INITIALLY DEFERRED,\n maximum_wait_seconds INTEGER NOT NULL,\n poll_every_seconds INTEGER NOT NULL,\n started_at INTEGER NOT NULL,\n deadline INTEGER NOT NULL,\n next_check_at INTEGER,\n state TEXT NOT NULL,\n settled_at INTEGER,\n reason TEXT,\n PRIMARY KEY (run_id, name)\n) STRICT;\n";
4
+ export declare const commandWaitCheckSchema = "\nALTER TABLE command_waits ADD COLUMN check_count INTEGER NOT NULL DEFAULT 0;\nALTER TABLE command_waits ADD COLUMN check_operation TEXT;\nALTER TABLE command_waits ADD COLUMN last_check_settled_at INTEGER;\nALTER TABLE command_waits ADD COLUMN result TEXT;\n";
5
+ export interface CommandWaitRow {
6
+ readonly runId: string;
7
+ readonly name: string;
8
+ readonly command: string;
9
+ readonly inputDigest: string;
10
+ readonly maximumWaitSeconds: number;
11
+ readonly pollEverySeconds: number;
12
+ readonly startedAt: number;
13
+ readonly deadline: number;
14
+ readonly nextCheckAt: number | null;
15
+ readonly state: string;
16
+ readonly checkCount: number;
17
+ readonly checkOperation: string | null;
18
+ readonly lastCheckSettledAt: number | null;
19
+ readonly result: string | null;
20
+ readonly settledAt: number | null;
21
+ readonly reason: string | null;
22
+ }
23
+ export declare function commandWaitRow(value: unknown): CommandWaitRow;
24
+ export declare function loadCommandWaits(connection: SqlConnection, scope?: {
25
+ readonly runId?: string;
26
+ readonly version?: "opened";
27
+ }): Promise<readonly CommandWaitRow[]>;
28
+ export declare function commandWaitStatements(rows: readonly CommandWaitRow[], scope?: {
29
+ readonly version?: "opened";
30
+ }): readonly Statement[];