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
@@ -0,0 +1,12 @@
1
+ import { type WorkerUsage } from "./worker-usage.ts";
2
+ export declare function grokResultFields(value: unknown): {
3
+ readonly usage: WorkerUsage;
4
+ readonly failed: boolean;
5
+ readonly pricingModel: string | null;
6
+ readonly costUsd: number | null;
7
+ readonly model?: string;
8
+ };
9
+ export declare function grokUsageWarnings(): {
10
+ readonly write: (chunk: string) => void;
11
+ readonly incomplete: () => boolean;
12
+ };
@@ -0,0 +1,61 @@
1
+ import { record } from "./protocol.js";
2
+ import { tokenCount, usageOf } from "./worker-usage.js";
3
+ function grokUsage(value) {
4
+ const fields = record(value) ?? {};
5
+ const input = tokenCount(fields["input_tokens"]);
6
+ const creation = tokenCount(fields["cache_creation_input_tokens"]);
7
+ const read = tokenCount(fields["cache_read_input_tokens"]);
8
+ const output = tokenCount(fields["output_tokens"]);
9
+ if (input === null || creation === null || read === null || output === null)
10
+ return usageOf(null);
11
+ if (input + creation + read + output === 0)
12
+ return usageOf(null);
13
+ return {
14
+ input_tokens: tokenCount(input + creation),
15
+ cache_read_input_tokens: read,
16
+ output_tokens: output,
17
+ };
18
+ }
19
+ function attributedModel(result) {
20
+ const entries = Object.entries(record(result["modelUsage"]) ?? {});
21
+ const [entry] = entries;
22
+ if (entries.length !== 1 || entry === undefined)
23
+ return null;
24
+ const [model, row] = entry;
25
+ const counts = record(row) ?? {};
26
+ const aggregate = record(result["usage"]) ?? {};
27
+ const fields = [
28
+ ["input_tokens", "inputTokens"],
29
+ ["cache_creation_input_tokens", "cacheCreationInputTokens"],
30
+ ["cache_read_input_tokens", "cacheReadInputTokens"],
31
+ ["output_tokens", "outputTokens"],
32
+ ];
33
+ return fields.every(([total, key]) => tokenCount(aggregate[total]) !== null && aggregate[total] === counts[key])
34
+ ? model
35
+ : null;
36
+ }
37
+ export function grokResultFields(value) {
38
+ const fields = record(value) ?? {};
39
+ const usage = grokUsage(fields["usage"]);
40
+ const model = attributedModel(fields);
41
+ return {
42
+ usage,
43
+ failed: fields["subtype"] !== "success" || fields["is_error"] !== false,
44
+ pricingModel: model,
45
+ costUsd: null,
46
+ ...(model === null ? {} : { model }),
47
+ };
48
+ }
49
+ export function grokUsageWarnings() {
50
+ let tail = "";
51
+ let incomplete = false;
52
+ return {
53
+ write: (chunk) => {
54
+ const text = tail + chunk;
55
+ incomplete ||=
56
+ /streaming-messages-json: (usage is incomplete|no aggregate usage ledger at turn end)/.test(text);
57
+ tail = text.slice(-128);
58
+ },
59
+ incomplete: () => incomplete,
60
+ };
61
+ }
@@ -0,0 +1,35 @@
1
+ export declare const defaultCommand: string[];
2
+ export declare const defaultCodexCommand: string[];
3
+ export declare const defaultGeminiCommand: string[];
4
+ export declare const defaultCursorCommand: string[];
5
+ export declare const defaultOpencodeCommand: string[];
6
+ export declare const defaultGrokCommand: string[];
7
+ export type NativeHarness = "claude" | "codex" | "gemini" | "grok" | "opencode" | "cursor-agent";
8
+ export interface HarnessSettings {
9
+ readonly worker?: string;
10
+ readonly command?: readonly string[];
11
+ readonly workerCommands?: Readonly<Partial<Record<NativeHarness, readonly string[]>>>;
12
+ readonly harness?: {
13
+ readonly name?: string;
14
+ readonly kind?: "file" | "shell";
15
+ readonly path?: string;
16
+ readonly command?: readonly string[];
17
+ readonly turn?: readonly string[];
18
+ readonly output?: "text";
19
+ };
20
+ readonly shell?: string;
21
+ }
22
+ export declare function isTurnCommand(value: unknown): value is readonly string[];
23
+ export declare function harnessDefaults(value: unknown): {
24
+ readonly command: readonly string[];
25
+ readonly variable?: string;
26
+ };
27
+ export declare function turnHarness(settings: HarnessSettings, profile?: {
28
+ readonly harness?: string;
29
+ }): {
30
+ readonly worker: string;
31
+ readonly command: readonly string[];
32
+ readonly shell?: string;
33
+ readonly output?: "text";
34
+ };
35
+ export declare function nativeHarness(name: string): name is NativeHarness;
@@ -0,0 +1,121 @@
1
+ export const defaultCommand = [
2
+ "claude",
3
+ "-p",
4
+ "--output-format",
5
+ "stream-json",
6
+ "--verbose",
7
+ "--permission-mode",
8
+ "acceptEdits",
9
+ "--allowedTools",
10
+ "Bash,Read,Edit,Write,Glob,Grep,WebSearch,WebFetch",
11
+ "--max-budget-usd",
12
+ "5",
13
+ ];
14
+ export const defaultCodexCommand = [
15
+ "codex",
16
+ "exec",
17
+ "--json",
18
+ "--dangerously-bypass-approvals-and-sandbox",
19
+ "--skip-git-repo-check",
20
+ "-",
21
+ ];
22
+ export const defaultGeminiCommand = [
23
+ "gemini",
24
+ "--output-format",
25
+ "stream-json",
26
+ "--approval-mode",
27
+ "yolo",
28
+ ];
29
+ export const defaultCursorCommand = [
30
+ "cursor-agent",
31
+ "-p",
32
+ "--output-format",
33
+ "stream-json",
34
+ "--force",
35
+ ];
36
+ export const defaultOpencodeCommand = ["opencode", "run", "--format", "json"];
37
+ export const defaultGrokCommand = [
38
+ "grok",
39
+ "--output-format",
40
+ "streaming-messages-json",
41
+ "--always-approve",
42
+ "-p",
43
+ ];
44
+ const defaultCommands = {
45
+ claude: defaultCommand,
46
+ codex: defaultCodexCommand,
47
+ gemini: defaultGeminiCommand,
48
+ grok: defaultGrokCommand,
49
+ opencode: defaultOpencodeCommand,
50
+ "cursor-agent": defaultCursorCommand,
51
+ };
52
+ function matchingHarness(settings, name) {
53
+ return (settings.harness?.name ?? "claude") === name
54
+ ? (settings.harness ?? {})
55
+ : {};
56
+ }
57
+ function nativeCommand(settings, name) {
58
+ const command = settings.workerCommands?.[name];
59
+ if (command !== undefined)
60
+ return command;
61
+ if (name === (settings.worker ?? "claude") && settings.command !== undefined)
62
+ return settings.command;
63
+ const saved = matchingHarness(settings, name);
64
+ if (saved.command !== undefined)
65
+ return saved.command;
66
+ const defaults = harnessDefaults(name).command;
67
+ return [saved.path ?? name, ...defaults.slice(1)];
68
+ }
69
+ export function isTurnCommand(value) {
70
+ if (!Array.isArray(value))
71
+ return false;
72
+ const program = value[0];
73
+ return (typeof program === "string" &&
74
+ program !== "" &&
75
+ program !== "{prompt}" &&
76
+ value.every((part) => typeof part === "string" && !part.includes("\u0000")) &&
77
+ value.filter((part) => part === "{prompt}").length <= 1);
78
+ }
79
+ export function harnessDefaults(value) {
80
+ const name = typeof value === "string" && nativeHarness(value) ? value : "claude";
81
+ const variable = {
82
+ claude: "CLOVING_CLAUDE_COMMAND",
83
+ codex: "CLOVING_CODEX_COMMAND",
84
+ gemini: "CLOVING_GEMINI_COMMAND",
85
+ grok: "CLOVING_GROK_COMMAND",
86
+ opencode: "CLOVING_OPENCODE_COMMAND",
87
+ "cursor-agent": undefined,
88
+ }[name];
89
+ return {
90
+ command: defaultCommands[name],
91
+ ...(variable === undefined ? {} : { variable }),
92
+ };
93
+ }
94
+ function selectedCommand(settings, name) {
95
+ if (nativeHarness(name))
96
+ return { command: nativeCommand(settings, name) };
97
+ const saved = matchingHarness(settings, name);
98
+ if (saved.turn === undefined)
99
+ throw new Error(`harness-no-worker: ${name}`);
100
+ if (!isTurnCommand(saved.turn))
101
+ throw new Error("invalid-setting: harness.turn");
102
+ return {
103
+ command: saved.command ?? [
104
+ saved.path ?? saved.turn[0] ?? "",
105
+ ...saved.turn.slice(1),
106
+ ],
107
+ output: "text",
108
+ };
109
+ }
110
+ export function turnHarness(settings, profile = {}) {
111
+ const name = profile.harness ?? settings.worker ?? settings.harness?.name ?? "claude";
112
+ const saved = matchingHarness(settings, name);
113
+ return {
114
+ worker: name,
115
+ ...selectedCommand(settings, name),
116
+ ...(saved.kind === "shell" ? { shell: settings.shell ?? "/bin/sh" } : {}),
117
+ };
118
+ }
119
+ export function nativeHarness(name) {
120
+ return Object.hasOwn(defaultCommands, name);
121
+ }
@@ -0,0 +1,15 @@
1
+ import { type ShellMode } from "./agent-harness-shell.ts";
2
+ import type { HarnessSelection } from "./configuration-change.ts";
3
+ export interface HarnessStartRequest {
4
+ readonly executable: string;
5
+ readonly arguments: readonly string[];
6
+ readonly directory: string;
7
+ readonly environment: Readonly<Record<string, string | undefined>>;
8
+ }
9
+ export declare function harnessStartRequest(entry: HarnessSelection & {
10
+ readonly shellMode?: ShellMode;
11
+ }, context: {
12
+ readonly repository: string;
13
+ readonly environment: Readonly<NodeJS.ProcessEnv>;
14
+ readonly message: string;
15
+ }): HarnessStartRequest;
@@ -0,0 +1,37 @@
1
+ import { shellArguments, shellRunScript, } from "./agent-harness-shell.js";
2
+ const shellStartScript = `
3
+ set +m
4
+ kind=
5
+ if [ -n "\${ZSH_VERSION-}" ]; then
6
+ kind=$(builtin whence -w -- "$1" 2>/dev/null) || kind=
7
+ kind="\${kind##*: }"
8
+ elif [ -n "\${BASH_VERSION-}" ]; then
9
+ kind=$(builtin type -t -- "$1" 2>/dev/null) || kind=
10
+ fi
11
+ case "$kind" in
12
+ function|alias) ;;
13
+ *) printf '%s\\n' 'Open your agent in this repository and tell it: run \`cloving init-prompt\`.' >&2; exit 1 ;;
14
+ esac
15
+ ${shellRunScript}
16
+ `;
17
+ export function harnessStartRequest(entry, context) {
18
+ const argumentsList = entry.name === "opencode"
19
+ ? ["--prompt", context.message]
20
+ : [context.message];
21
+ const executable = entry.kind === "shell" ? (context.environment["SHELL"] ?? "") : entry.path;
22
+ const args = entry.kind === "shell"
23
+ ? [
24
+ ...shellArguments(entry.shellMode ?? "login"),
25
+ shellStartScript,
26
+ "cloving-init",
27
+ entry.path,
28
+ ...argumentsList,
29
+ ]
30
+ : argumentsList;
31
+ return {
32
+ executable,
33
+ arguments: args,
34
+ directory: context.repository,
35
+ environment: context.environment,
36
+ };
37
+ }
@@ -0,0 +1,38 @@
1
+ import type { CommandWaitState } from "../authority/command-waits.ts";
2
+ import type { CommandWaitRequest, CommandWaitProgress } from "../step-bridge.ts";
3
+ interface WaitName {
4
+ readonly runId: string;
5
+ readonly name: string;
6
+ }
7
+ interface WaitCall extends WaitName {
8
+ readonly commandId: string;
9
+ }
10
+ interface WaitReceipt {
11
+ readonly kind: string;
12
+ readonly reason?: string;
13
+ }
14
+ export interface CommandWaitPorts {
15
+ readonly open: (request: WaitCall & {
16
+ readonly input: string;
17
+ }) => Promise<WaitReceipt>;
18
+ readonly check: (request: WaitCall) => Promise<WaitReceipt>;
19
+ readonly read: (request: WaitName) => Promise<CommandWaitState | undefined>;
20
+ }
21
+ interface WaitHost {
22
+ readonly commandWait?: CommandWaitPorts;
23
+ readonly runStatus: (runId: string) => Promise<string | undefined>;
24
+ readonly subject: () => Promise<{
25
+ readonly runId: string;
26
+ readonly commandId: string;
27
+ } | undefined>;
28
+ readonly stopped: AbortSignal;
29
+ readonly pollMilliseconds: number;
30
+ readonly retryMilliseconds: number;
31
+ }
32
+ export declare function commandWaitBridge(host: WaitHost): {
33
+ openCommandWait: (request: CommandWaitRequest) => Promise<CommandWaitProgress>;
34
+ checkCommandWait: (request: {
35
+ readonly name: string;
36
+ }) => Promise<CommandWaitProgress>;
37
+ };
38
+ export {};
@@ -0,0 +1,115 @@
1
+ import { setTimeout as delay } from "node:timers/promises";
2
+ import { commandWaitValue, isCommandWaitRequest } from "../command-wait.js";
3
+ function progress(wait) {
4
+ if (wait === undefined)
5
+ return { kind: "refused", reason: "unknown-command-wait" };
6
+ if (wait.state === "waiting")
7
+ return waiting(wait);
8
+ if (wait.state === "timed-out")
9
+ return { kind: "timed-out", reason: "command-wait-timeout" };
10
+ if (wait.state !== "completed")
11
+ return { kind: "failed", reason: wait.reason ?? "command-wait-failed" };
12
+ const value = JSON.parse(wait.result ?? "null");
13
+ return commandWaitValue(value)
14
+ ? { kind: "ready", value }
15
+ : { kind: "failed", reason: "command-wait-invalid-output" };
16
+ }
17
+ function refused(receipt) {
18
+ if (["accepted", "duplicate"].includes(receipt.kind))
19
+ return undefined;
20
+ return {
21
+ kind: receipt.kind === "failed" ? "failed" : "refused",
22
+ reason: receipt.reason ?? receipt.kind,
23
+ };
24
+ }
25
+ async function requested(context, send) {
26
+ const { host, call, retryReasons = ["service-busy"] } = context;
27
+ for (;;) {
28
+ if (host.stopped.aborted)
29
+ await new Promise(() => undefined);
30
+ const receipt = await send();
31
+ if (receipt.kind !== "rejected" ||
32
+ !retryReasons.includes(receipt.reason ?? ""))
33
+ return receipt;
34
+ if (receipt.reason === "command-wait-run-not-running" &&
35
+ !["queued", "running", "waiting_gate", "paused"].includes((await host.runStatus(call.runId)) ?? ""))
36
+ return receipt;
37
+ await delay(host.retryMilliseconds, undefined, {
38
+ signal: host.stopped,
39
+ }).catch(() => undefined);
40
+ }
41
+ }
42
+ async function settled(context, request) {
43
+ const { host, port } = context;
44
+ for (;;) {
45
+ if (host.stopped.aborted)
46
+ await new Promise(() => undefined);
47
+ const wait = await port.read(request);
48
+ if (wait?.state !== "waiting" || wait.checkOperation === null)
49
+ return progress(wait);
50
+ await delay(host.pollMilliseconds, undefined, {
51
+ signal: host.stopped,
52
+ }).catch(() => undefined);
53
+ }
54
+ }
55
+ export function commandWaitBridge(host) {
56
+ return {
57
+ openCommandWait: async (request) => {
58
+ if (!isCommandWaitRequest(request))
59
+ return { kind: "refused", reason: "invalid-command-wait-request" };
60
+ const subject = await host.subject();
61
+ const port = host.commandWait;
62
+ if (subject === undefined || port === undefined)
63
+ return { kind: "unavailable", reason: "cloving-host-unavailable" };
64
+ const call = {
65
+ ...subject,
66
+ name: request.name,
67
+ input: JSON.stringify(request.input),
68
+ };
69
+ const receipt = await requested({
70
+ host,
71
+ call,
72
+ retryReasons: ["service-busy", "command-wait-run-not-running"],
73
+ }, () => port.open(call));
74
+ return (refused(receipt) ??
75
+ progress(await port.read({ ...subject, name: request.name })));
76
+ },
77
+ checkCommandWait: async (request) => {
78
+ const subject = await host.subject();
79
+ const port = host.commandWait;
80
+ if (subject === undefined || port === undefined)
81
+ return { kind: "unavailable", reason: "cloving-host-unavailable" };
82
+ const call = { ...subject, name: request.name };
83
+ const wait = await port.read(call);
84
+ if (wait?.state !== "waiting")
85
+ return progress(wait);
86
+ if (wait.checkOperation !== null)
87
+ return await settled({ host, port }, call);
88
+ if (wait.nextCheckAt !== null &&
89
+ Date.now() < Math.min(wait.nextCheckAt, wait.deadline))
90
+ return progress(wait);
91
+ const receipt = await requested({ host, call }, () => port.check(call));
92
+ return checkReply(receipt, wait) ?? (await settled({ host, port }, call));
93
+ },
94
+ };
95
+ }
96
+ function checkReply(receipt, wait) {
97
+ if (receipt.reason === "command-wait-timeout")
98
+ return { kind: "timed-out", reason: receipt.reason };
99
+ if (receipt.reason === "command-wait-run-not-running")
100
+ return waiting(wait, Date.now() + 1000);
101
+ if ([
102
+ "command-wait-check-in-flight",
103
+ "command-wait-check-not-due",
104
+ "command-wait-ended",
105
+ ].includes(receipt.reason ?? ""))
106
+ return undefined;
107
+ return refused(receipt);
108
+ }
109
+ function waiting(wait, nextCheckAt = wait.nextCheckAt ?? wait.deadline) {
110
+ return {
111
+ kind: "pending",
112
+ deadline: wait.deadline,
113
+ nextCheckAt,
114
+ };
115
+ }
@@ -0,0 +1,35 @@
1
+ interface RunIntent {
2
+ readonly runId: string;
3
+ readonly gateId?: string;
4
+ readonly decision?: string;
5
+ readonly answer?: string | null;
6
+ }
7
+ interface ResumeParts {
8
+ readonly runs: () => Promise<readonly {
9
+ readonly operationId: string | null;
10
+ readonly receipt: string;
11
+ }[]>;
12
+ readonly document: (digest: string) => Promise<string | undefined>;
13
+ }
14
+ export declare function reconciledDecision(parts: ResumeParts, intent: RunIntent): Promise<{
15
+ readonly kind: "accepted";
16
+ readonly receipt: string;
17
+ } | {
18
+ readonly kind: "absent";
19
+ }>;
20
+ export declare function deliveredDecision(parts: ResumeParts, request: {
21
+ readonly intent: RunIntent;
22
+ readonly signal: AbortSignal | undefined;
23
+ }): Promise<{
24
+ readonly receipt: string;
25
+ }>;
26
+ export declare function stoppedDecision(parts: ResumeParts & {
27
+ readonly cancel: (receipt: string) => Promise<string>;
28
+ }, intent: RunIntent): Promise<{
29
+ readonly kind: "stopped";
30
+ readonly receipt: string;
31
+ } | {
32
+ readonly kind: "unknown";
33
+ readonly evidence: string;
34
+ }>;
35
+ export {};
@@ -0,0 +1,86 @@
1
+ import { resumeHook } from "workflow/api";
2
+ import { getWorld } from "workflow/runtime";
3
+ import { setTimeout as delay } from "node:timers/promises";
4
+ import { decisionToken } from "../decision-wait.js";
5
+ import { namesRunIntent } from "../authority/operations.js";
6
+ async function runSubject(receipt, token) {
7
+ const world = await getWorld();
8
+ let page = await world.events.list({
9
+ runId: receipt,
10
+ resolveData: "none",
11
+ pagination: { limit: 1000, sortOrder: "asc" },
12
+ });
13
+ const events = [...page.data];
14
+ while (page.hasMore && page.cursor !== null) {
15
+ page = await world.events.list({
16
+ runId: receipt,
17
+ resolveData: "none",
18
+ pagination: { limit: 1000, sortOrder: "asc", cursor: page.cursor },
19
+ });
20
+ events.push(...page.data);
21
+ }
22
+ const created = events.find((event) => event.eventType === "hook_created" && event.eventData.token === token);
23
+ const hookId = created?.correlationId;
24
+ return {
25
+ runId: receipt,
26
+ token,
27
+ hookId,
28
+ received: hookId !== undefined &&
29
+ events.some((event) => event.eventType === "hook_received" && event.correlationId === hookId),
30
+ };
31
+ }
32
+ async function subject(parts, intent) {
33
+ if (intent.gateId === undefined)
34
+ throw new Error("missing-decision-gate");
35
+ const token = decisionToken(intent.runId, intent.gateId);
36
+ const runs = (await parts.runs()).filter((run) => namesRunIntent(run.operationId ?? "", intent.runId));
37
+ const latest = runs.at(-1);
38
+ if (latest === undefined)
39
+ throw new Error("missing-decision-run");
40
+ const matches = [];
41
+ for (const run of runs) {
42
+ const found = await runSubject(run.receipt, token);
43
+ if (found.hookId !== undefined)
44
+ matches.push(found);
45
+ }
46
+ if (matches.length > 1)
47
+ throw new Error("conflicting-decision-hooks");
48
+ return (matches[0] ?? {
49
+ runId: latest.receipt,
50
+ token,
51
+ hookId: undefined,
52
+ received: false,
53
+ });
54
+ }
55
+ export async function reconciledDecision(parts, intent) {
56
+ const found = await subject(parts, intent);
57
+ return found.received
58
+ ? { kind: "accepted", receipt: found.runId }
59
+ : { kind: "absent" };
60
+ }
61
+ export async function deliveredDecision(parts, request) {
62
+ const { intent, signal } = request;
63
+ let found = await subject(parts, intent);
64
+ while (!found.received && found.hookId === undefined) {
65
+ await delay(20, undefined, signal === undefined ? {} : { signal });
66
+ found = await subject(parts, intent);
67
+ }
68
+ if (found.received)
69
+ return { receipt: found.runId };
70
+ if (intent.decision === undefined)
71
+ throw new Error("missing-decision");
72
+ const answer = intent.answer === undefined || intent.answer === null
73
+ ? null
74
+ : await parts.document(intent.answer);
75
+ if (answer === undefined)
76
+ throw new Error("missing-decision-answer");
77
+ await resumeHook(found.token, { decision: intent.decision, answer });
78
+ return { receipt: found.runId };
79
+ }
80
+ export async function stoppedDecision(parts, intent) {
81
+ const found = await subject(parts, intent);
82
+ const status = await parts.cancel(found.runId);
83
+ return ["cancelled", "completed", "failed"].includes(status)
84
+ ? { kind: "stopped", receipt: found.runId }
85
+ : { kind: "unknown", evidence: `world-run:${found.runId} ${status}` };
86
+ }
@@ -0,0 +1,48 @@
1
+ import type { DecisionWait, GateRequest, GateResult } from "../step-bridge.ts";
2
+ export interface GateReceipt {
3
+ readonly kind: string;
4
+ readonly reason?: string;
5
+ }
6
+ export interface GateOpening {
7
+ readonly waitMode?: "hook";
8
+ readonly runId: string;
9
+ readonly commandId: string;
10
+ readonly expectedRevision: number;
11
+ readonly gateId: string;
12
+ readonly kind: "question" | "approval";
13
+ readonly prompt: string;
14
+ readonly subject: string;
15
+ readonly expiresAt?: string;
16
+ }
17
+ export interface WaitRegistration {
18
+ readonly runId: string;
19
+ readonly commandId: string;
20
+ readonly gateId: string;
21
+ }
22
+ interface GatePorts {
23
+ readonly stopped: AbortSignal;
24
+ readonly timing?: {
25
+ readonly pollMilliseconds: number;
26
+ readonly retryMilliseconds: number;
27
+ };
28
+ readonly state: () => Promise<{
29
+ readonly runs: Readonly<Record<string, {
30
+ readonly revision: number;
31
+ } | undefined>>;
32
+ readonly gates: Readonly<Record<string, unknown>>;
33
+ }>;
34
+ readonly openGate: (opening: GateOpening) => Promise<GateReceipt>;
35
+ readonly registerWait: (wait: WaitRegistration) => Promise<GateReceipt>;
36
+ }
37
+ interface GateSubject {
38
+ readonly waitMode?: "hook";
39
+ readonly runId: string;
40
+ readonly transport: string;
41
+ readonly request: GateRequest;
42
+ }
43
+ export declare function openBridgeGate(ports: GatePorts, subject: GateSubject): Promise<GateResult>;
44
+ export declare function waitForBridgeDecision(ports: GatePorts & {
45
+ readonly document: (digest: string) => Promise<string | undefined>;
46
+ readonly decisionReceived: (runId: string, gateId: string) => Promise<boolean>;
47
+ }, subject: GateSubject): Promise<DecisionWait>;
48
+ export {};