@astrosheep/keiyaku 4.5.29 → 4.6.2

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 (418) hide show
  1. package/build/integrations/marketplace/plugins/keiyaku/skills/keiyaku/SKILL.md +0 -13
  2. package/build/integrations/marketplace/plugins/keiyaku/skills/keiyaku-akuma/SKILL.md +47 -78
  3. package/build/integrations/marketplace/plugins/keiyaku/skills/keiyaku-akuma/references/automation.md +54 -41
  4. package/build/integrations/marketplace/plugins/keiyaku/skills/keiyaku-babysit/SKILL.md +10 -0
  5. package/build/integrations/marketplace/plugins/keiyaku/skills/keiyaku-bind/SKILL.md +27 -9
  6. package/build/integrations/marketplace/plugins/keiyaku/skills/keiyaku-workflow/SKILL.md +68 -71
  7. package/build/src/akuma/akuma-call.d.ts +53 -0
  8. package/build/src/akuma/akuma-call.js +113 -0
  9. package/build/src/akuma/akuma-instance.d.ts +20 -18
  10. package/build/src/akuma/akuma-instance.js +65 -175
  11. package/build/src/akuma/akuma-observe.d.ts +3 -21
  12. package/build/src/akuma/akuma-observe.js +7 -24
  13. package/build/src/akuma/{akuma-handle.d.ts → akuma-owner.d.ts} +55 -27
  14. package/build/src/akuma/{akuma-handle.js → akuma-owner.js} +24 -23
  15. package/build/src/akuma/akuma-selection-execution.d.ts +51 -0
  16. package/build/src/akuma/akuma-selection-execution.js +134 -0
  17. package/build/src/akuma/{fleet-execution.d.ts → akuma-wait.d.ts} +24 -44
  18. package/build/src/akuma/akuma-wait.js +113 -0
  19. package/build/src/akuma/akuma.d.ts +35 -89
  20. package/build/src/akuma/akuma.js +148 -30
  21. package/build/src/akuma/archetype.d.ts +12 -0
  22. package/build/src/akuma/archetype.js +47 -19
  23. package/build/src/akuma/body.d.ts +76 -36
  24. package/build/src/akuma/body.js +84 -49
  25. package/build/src/akuma/call-initial-tell.d.ts +131 -22
  26. package/build/src/akuma/call-initial-tell.js +31 -1
  27. package/build/src/akuma/call-request.d.ts +237 -31
  28. package/build/src/akuma/call-request.js +67 -94
  29. package/build/src/akuma/coordinate.d.ts +15 -5
  30. package/build/src/akuma/coordinate.js +12 -22
  31. package/build/src/akuma/dispatch-association.d.ts +1 -1
  32. package/build/src/akuma/dispatch-association.js +1 -10
  33. package/build/src/akuma/heart/activity-schema.d.ts +325 -0
  34. package/build/src/akuma/heart/activity-schema.js +53 -0
  35. package/build/src/akuma/heart/facts.d.ts +1 -6
  36. package/build/src/akuma/heart/index.d.ts +3 -1
  37. package/build/src/akuma/heart/index.js +4 -1
  38. package/build/src/akuma/heart/rows.d.ts +49 -2
  39. package/build/src/akuma/heart/rows.js +16 -2
  40. package/build/src/akuma/heart/soul.d.ts +1 -0
  41. package/build/src/akuma/heart/soul.js +6 -4
  42. package/build/src/akuma/heart/tells.d.ts +1 -0
  43. package/build/src/akuma/heart/tells.js +18 -0
  44. package/build/src/akuma/identity.d.ts +10 -7
  45. package/build/src/akuma/identity.js +23 -0
  46. package/build/src/akuma/index.d.ts +10 -8
  47. package/build/src/akuma/index.js +2 -2
  48. package/build/src/akuma/nuke.d.ts +3 -0
  49. package/build/src/akuma/nuke.js +13 -7
  50. package/build/src/akuma/projection.d.ts +0 -5
  51. package/build/src/akuma/projection.js +22 -43
  52. package/build/src/akuma/provider-recipe.d.ts +58 -13
  53. package/build/src/akuma/provider-recipe.js +62 -80
  54. package/build/src/akuma/provider.d.ts +6 -76
  55. package/build/src/akuma/provider.js +11 -219
  56. package/build/src/akuma/providers/acp/config.d.ts +2 -0
  57. package/build/src/akuma/providers/acp/config.js +26 -1
  58. package/build/src/akuma/providers/acp/core.d.ts +7 -0
  59. package/build/src/akuma/providers/acp/core.js +49 -18
  60. package/build/src/akuma/providers/acp/index.js +14 -6
  61. package/build/src/akuma/providers/grok-build/index.js +44 -13
  62. package/build/src/akuma/providers/index.d.ts +3 -3
  63. package/build/src/akuma/providers/index.js +2 -13
  64. package/build/src/akuma/providers/opencode-sdk/event-stream.d.ts +28 -0
  65. package/build/src/akuma/providers/opencode-sdk/event-stream.js +92 -0
  66. package/build/src/akuma/providers/opencode-sdk/events.d.ts +0 -1
  67. package/build/src/akuma/providers/opencode-sdk/index.js +200 -64
  68. package/build/src/akuma/providers/opencode-sdk/session.d.ts +41 -1
  69. package/build/src/akuma/providers/opencode-sdk/session.js +69 -2
  70. package/build/src/akuma/providers/pi/events.js +5 -2
  71. package/build/src/akuma/providers/pi/index.d.ts +3 -4
  72. package/build/src/akuma/providers/pi/index.js +99 -45
  73. package/build/src/akuma/publication.d.ts +84 -3
  74. package/build/src/akuma/publication.js +145 -2
  75. package/build/src/akuma/read-pool.d.ts +2 -0
  76. package/build/src/akuma/read-pool.js +15 -0
  77. package/build/src/akuma/request-rendezvous.js +10 -0
  78. package/build/src/akuma/request-serve.js +7 -0
  79. package/build/src/akuma/request-wire.d.ts +14 -26
  80. package/build/src/akuma/request-wire.js +4 -0
  81. package/build/src/akuma/requests.d.ts +0 -2
  82. package/build/src/akuma/requests.js +0 -17
  83. package/build/src/akuma/{fleet-observation.d.ts → selection-observation.d.ts} +37 -36
  84. package/build/src/akuma/selection-observation.js +65 -0
  85. package/build/src/akuma/{fleet-owner-port.d.ts → selection-owner-port.d.ts} +3 -3
  86. package/build/src/akuma/{fleet-owner-port.js → selection-owner-port.js} +11 -17
  87. package/build/src/akuma/{fleet-request.d.ts → selection-request.d.ts} +42 -82
  88. package/build/src/akuma/{fleet-request.js → selection-request.js} +92 -136
  89. package/build/src/akuma/turn-drive.js +73 -14
  90. package/build/src/akuma-body.js +91 -56
  91. package/build/src/body/amend.d.ts +5 -0
  92. package/build/src/body/amend.js +26 -50
  93. package/build/src/body/arc.d.ts +4 -2
  94. package/build/src/body/arc.js +19 -26
  95. package/build/src/body/criteria.d.ts +6 -0
  96. package/build/src/body/criteria.js +37 -0
  97. package/build/src/body/decode.js +5 -42
  98. package/build/src/body/region.d.ts +5 -0
  99. package/build/src/body/region.js +45 -2
  100. package/build/src/body/render.js +2 -4
  101. package/build/src/cli/activity.d.ts +26 -0
  102. package/build/src/cli/activity.js +75 -0
  103. package/build/src/cli/actor.d.ts +3 -1
  104. package/build/src/cli/actor.js +15 -2
  105. package/build/src/cli/commands/akuma-grammar.d.ts +75 -0
  106. package/build/src/cli/commands/akuma-grammar.js +414 -0
  107. package/build/src/cli/commands/akuma.d.ts +5 -69
  108. package/build/src/cli/commands/akuma.js +352 -319
  109. package/build/src/cli/commands/amend.d.ts +4 -5
  110. package/build/src/cli/commands/amend.js +1 -2
  111. package/build/src/cli/commands/bind.d.ts +4 -5
  112. package/build/src/cli/commands/bind.js +7 -10
  113. package/build/src/cli/commands/contract-grammar.d.ts +112 -0
  114. package/build/src/cli/commands/contract-grammar.js +282 -0
  115. package/build/src/cli/commands/contract-help.d.ts +17 -22
  116. package/build/src/cli/commands/contract-help.js +37 -24
  117. package/build/src/cli/commands/contract.d.ts +18 -97
  118. package/build/src/cli/commands/contract.js +621 -233
  119. package/build/src/cli/commands/install.d.ts +1 -1
  120. package/build/src/cli/commands/install.js +2 -2
  121. package/build/src/cli/commands/task-grammar.d.ts +19 -0
  122. package/build/src/cli/commands/task-grammar.js +438 -0
  123. package/build/src/cli/commands/task-query.js +23 -104
  124. package/build/src/cli/commands/task.d.ts +5 -20
  125. package/build/src/cli/commands/task.js +414 -364
  126. package/build/src/cli/coordinates.d.ts +10 -0
  127. package/build/src/cli/coordinates.js +20 -0
  128. package/build/src/cli/draft.d.ts +7 -1
  129. package/build/src/cli/main.js +10 -1
  130. package/build/src/cli/parse.d.ts +8 -9
  131. package/build/src/cli/parse.js +62 -62
  132. package/build/src/cli/render/akuma-activity.d.ts +54 -36
  133. package/build/src/cli/render/akuma-activity.js +262 -242
  134. package/build/src/cli/render/akuma-tool.d.ts +8 -4
  135. package/build/src/cli/render/akuma-tool.js +6 -5
  136. package/build/src/cli/render/akuma.d.ts +36 -16
  137. package/build/src/cli/render/akuma.js +65 -132
  138. package/build/src/cli/render/audit.d.ts +6 -2
  139. package/build/src/cli/render/audit.js +59 -28
  140. package/build/src/cli/render/catalog.d.ts +11 -2
  141. package/build/src/cli/render/catalog.js +75 -95
  142. package/build/src/cli/render/contract-history.d.ts +3 -1
  143. package/build/src/cli/render/contract-history.js +215 -22
  144. package/build/src/cli/render/contract-observation.d.ts +10 -5
  145. package/build/src/cli/render/contract-observation.js +29 -46
  146. package/build/src/cli/render/contract.d.ts +10 -3
  147. package/build/src/cli/render/contract.js +252 -103
  148. package/build/src/cli/render/effects.d.ts +26 -0
  149. package/build/src/cli/render/effects.js +41 -0
  150. package/build/src/cli/render/execution-progress.d.ts +18 -6
  151. package/build/src/cli/render/execution-progress.js +34 -31
  152. package/build/src/cli/render/kanshi-akuma.d.ts +1 -2
  153. package/build/src/cli/render/kanshi-akuma.js +5 -26
  154. package/build/src/cli/render/kanshi.js +107 -128
  155. package/build/src/cli/render/marks.d.ts +13 -0
  156. package/build/src/cli/render/marks.js +74 -0
  157. package/build/src/cli/render/nuke.js +18 -7
  158. package/build/src/cli/render/receipt.d.ts +10 -4
  159. package/build/src/cli/render/receipt.js +124 -44
  160. package/build/src/cli/render/reconcile.d.ts +5 -0
  161. package/build/src/cli/render/reconcile.js +152 -0
  162. package/build/src/cli/render/refusal.d.ts +21 -4
  163. package/build/src/cli/render/refusal.js +60 -33
  164. package/build/src/cli/render/region.js +3 -2
  165. package/build/src/cli/render/settings.js +2 -12
  166. package/build/src/cli/render/task.d.ts +37 -6
  167. package/build/src/cli/render/task.js +161 -157
  168. package/build/src/cli/render/terminal.d.ts +20 -1
  169. package/build/src/cli/render/terminal.js +92 -18
  170. package/build/src/cli/runtime.d.ts +32 -8
  171. package/build/src/cli/runtime.js +157 -165
  172. package/build/src/cli/selectors.d.ts +5 -2
  173. package/build/src/cli/selectors.js +11 -3
  174. package/build/src/cli/streams.d.ts +11 -0
  175. package/build/src/cli/streams.js +32 -0
  176. package/build/src/cli/usage.d.ts +2 -0
  177. package/build/src/cli/usage.js +12 -8
  178. package/build/src/contract-guidance.js +3 -7
  179. package/build/src/contract-worktree.d.ts +20 -28
  180. package/build/src/contract-worktree.js +18 -70
  181. package/build/src/coordination/durable-file.d.ts +2 -2
  182. package/build/src/coordination/durable-file.js +0 -27
  183. package/build/src/core/facts/codec.d.ts +1 -2
  184. package/build/src/core/facts/codec.js +6 -7
  185. package/build/src/core/facts/gate.d.ts +0 -1
  186. package/build/src/core/facts/gate.js +0 -82
  187. package/build/src/core/facts/types.d.ts +1 -2
  188. package/build/src/core/verbs/abandon.d.ts +2 -6
  189. package/build/src/core/verbs/abandon.js +0 -16
  190. package/build/src/core/verbs/amend.d.ts +0 -1
  191. package/build/src/core/verbs/amend.js +0 -20
  192. package/build/src/core/verbs/arc.d.ts +7 -8
  193. package/build/src/core/verbs/arc.js +2 -19
  194. package/build/src/core/verbs/attestation.d.ts +2 -6
  195. package/build/src/core/verbs/attestation.js +0 -16
  196. package/build/src/core/verbs/bind.d.ts +0 -1
  197. package/build/src/core/verbs/bind.js +0 -16
  198. package/build/src/core/verbs/deliver.d.ts +0 -1
  199. package/build/src/core/verbs/deliver.js +0 -16
  200. package/build/src/core/verbs/placement.d.ts +2 -1
  201. package/build/src/core/verbs/placement.js +10 -59
  202. package/build/src/git/admission.d.ts +6 -4
  203. package/build/src/git/admission.js +4 -0
  204. package/build/src/git/hooks.d.ts +55 -30
  205. package/build/src/git/hooks.js +30 -3
  206. package/build/src/git/identity.d.ts +6 -0
  207. package/build/src/git/identity.js +47 -0
  208. package/build/src/git/integration.d.ts +31 -13
  209. package/build/src/git/integration.js +32 -1
  210. package/build/src/git/nuke.d.ts +10 -1
  211. package/build/src/git/nuke.js +31 -11
  212. package/build/src/git/observe.js +2 -15
  213. package/build/src/git/private-state-seat.d.ts +6 -7
  214. package/build/src/git/private-state-seat.js +8 -6
  215. package/build/src/git/read-observation.d.ts +6 -1
  216. package/build/src/git/read-observation.js +81 -46
  217. package/build/src/git/reconcile.d.ts +117 -40
  218. package/build/src/git/reconcile.js +169 -40
  219. package/build/src/git/scratch.d.ts +7 -4
  220. package/build/src/git/scratch.js +28 -6
  221. package/build/src/git/target-placement.d.ts +53 -38
  222. package/build/src/git/target-placement.js +69 -54
  223. package/build/src/git/tender.d.ts +37 -28
  224. package/build/src/git/tender.js +39 -0
  225. package/build/src/git/terminal-reconcile.js +21 -23
  226. package/build/src/git/terminal-seal.d.ts +8 -6
  227. package/build/src/git/terminal-seal.js +10 -0
  228. package/build/src/git/workspace.d.ts +29 -15
  229. package/build/src/git/workspace.js +28 -2
  230. package/build/src/identity/normalize.js +19 -6
  231. package/build/src/index.d.ts +78 -7
  232. package/build/src/index.js +52 -4
  233. package/build/src/kanshi/read.d.ts +3 -3
  234. package/build/src/kanshi/read.js +21 -21
  235. package/build/src/kanshi/report.d.ts +9 -8
  236. package/build/src/kanshi/roster.d.ts +2 -0
  237. package/build/src/kanshi/roster.js +2 -0
  238. package/build/src/kanshi/select.js +7 -3
  239. package/build/src/library/address.d.ts +3 -7
  240. package/build/src/library/address.js +7 -7
  241. package/build/src/library/akuma-creation.d.ts +21 -32
  242. package/build/src/library/akuma-creation.js +148 -165
  243. package/build/src/library/akumas.d.ts +20 -22
  244. package/build/src/library/akumas.js +43 -20
  245. package/build/src/library/bind.d.ts +107 -13
  246. package/build/src/library/bind.js +29 -23
  247. package/build/src/library/continuation.d.ts +556 -28
  248. package/build/src/library/continuation.js +29 -54
  249. package/build/src/library/contract-composition.d.ts +40 -0
  250. package/build/src/library/contract-composition.js +105 -0
  251. package/build/src/library/contract-creation.d.ts +7 -0
  252. package/build/src/library/contract-creation.js +192 -0
  253. package/build/src/library/contract-execution.d.ts +29 -40
  254. package/build/src/library/contract-execution.js +503 -128
  255. package/build/src/library/contract-operations.d.ts +275 -134
  256. package/build/src/library/contract-operations.js +83 -92
  257. package/build/src/library/contract-outcomes.d.ts +71 -0
  258. package/build/src/library/contract-outcomes.js +32 -0
  259. package/build/src/library/contract-settings.d.ts +25 -0
  260. package/build/src/library/contract-settings.js +135 -0
  261. package/build/src/library/contract-types.d.ts +17 -38
  262. package/build/src/library/delivery.d.ts +530 -10
  263. package/build/src/library/delivery.js +20 -45
  264. package/build/src/library/input.d.ts +3 -1
  265. package/build/src/library/input.js +11 -16
  266. package/build/src/library/invocation.d.ts +87 -0
  267. package/build/src/library/invocation.js +290 -0
  268. package/build/src/library/keiyaku.d.ts +45 -22
  269. package/build/src/library/keiyaku.js +134 -8
  270. package/build/src/library/nuke.d.ts +2 -11
  271. package/build/src/library/nuke.js +70 -57
  272. package/build/src/library/outcome.d.ts +13196 -0
  273. package/build/src/library/outcome.js +487 -0
  274. package/build/src/library/reconcile.d.ts +96 -24
  275. package/build/src/library/reconcile.js +102 -42
  276. package/build/src/library/refusal.d.ts +470 -42
  277. package/build/src/library/refusal.js +55 -143
  278. package/build/src/library/region.d.ts +15 -7
  279. package/build/src/library/region.js +23 -3
  280. package/build/src/library/repo.d.ts +2 -12
  281. package/build/src/library/repo.js +1 -22
  282. package/build/src/library/selection.d.ts +121 -0
  283. package/build/src/library/{fleet.js → selection.js} +169 -152
  284. package/build/src/plugin/public.d.ts +2 -0
  285. package/build/src/protocol/abandon.d.ts +2 -2
  286. package/build/src/protocol/abandon.js +1 -0
  287. package/build/src/protocol/amend.js +1 -0
  288. package/build/src/protocol/arc.d.ts +6 -4
  289. package/build/src/protocol/attempt.d.ts +4 -2
  290. package/build/src/protocol/attempt.js +10 -0
  291. package/build/src/protocol/audit.d.ts +255 -52
  292. package/build/src/protocol/audit.js +63 -5
  293. package/build/src/protocol/bind.d.ts +18 -17
  294. package/build/src/protocol/bind.js +9 -28
  295. package/build/src/protocol/completion.d.ts +256 -22
  296. package/build/src/protocol/completion.js +100 -12
  297. package/build/src/protocol/deliver.d.ts +34 -23
  298. package/build/src/protocol/deliver.js +39 -25
  299. package/build/src/protocol/execution-observation.d.ts +36 -37
  300. package/build/src/protocol/execution-observation.js +7 -9
  301. package/build/src/protocol/intent.d.ts +101 -30
  302. package/build/src/protocol/intent.js +74 -1
  303. package/build/src/protocol/operations.d.ts +570 -64
  304. package/build/src/protocol/operations.js +189 -9
  305. package/build/src/protocol/outcome.d.ts +2 -1
  306. package/build/src/protocol/placement.d.ts +2 -2
  307. package/build/src/protocol/placement.js +3 -1
  308. package/build/src/protocol/progress.d.ts +108 -65
  309. package/build/src/protocol/progress.js +82 -132
  310. package/build/src/protocol/read/status.d.ts +4 -3
  311. package/build/src/protocol/read/status.js +6 -5
  312. package/build/src/protocol/reconcile.d.ts +3 -3
  313. package/build/src/protocol/reconcile.js +4 -0
  314. package/build/src/protocol/reintegrate.d.ts +2 -2
  315. package/build/src/protocol/review.d.ts +30 -12
  316. package/build/src/protocol/review.js +15 -24
  317. package/build/src/protocol/run.d.ts +34 -5
  318. package/build/src/protocol/run.js +24 -12
  319. package/build/src/runtime/proc/windows-launch.exe +0 -0
  320. package/build/src/settings.d.ts +0 -10
  321. package/build/src/settings.js +0 -76
  322. package/build/src/settlement/holder.d.ts +1 -1
  323. package/build/src/settlement/settle.d.ts +25 -16
  324. package/build/src/settlement/settle.js +80 -20
  325. package/build/src/task/board.d.ts +3 -1
  326. package/build/src/task/board.js +13 -17
  327. package/build/src/task/catalog.d.ts +0 -4
  328. package/build/src/task/catalog.js +0 -15
  329. package/build/src/task/compose-language.d.ts +19 -9
  330. package/build/src/task/compose-language.js +30 -20
  331. package/build/src/task/compose.d.ts +7 -37
  332. package/build/src/task/compose.js +20 -2
  333. package/build/src/task/created-observation.d.ts +0 -1
  334. package/build/src/task/created-observation.js +1 -4
  335. package/build/src/task/document.d.ts +12 -2
  336. package/build/src/task/document.js +4 -0
  337. package/build/src/task/identity.d.ts +4 -1
  338. package/build/src/task/identity.js +21 -17
  339. package/build/src/task/index.d.ts +36 -16
  340. package/build/src/task/index.js +103 -96
  341. package/build/src/task/lifecycle-operations.d.ts +1 -1
  342. package/build/src/task/mutation-result.d.ts +647 -586
  343. package/build/src/task/mutation-result.js +79 -46
  344. package/build/src/task/mutation.d.ts +298 -270
  345. package/build/src/task/mutation.js +93 -110
  346. package/build/src/task/operation-types.d.ts +6 -49
  347. package/build/src/task/operations.d.ts +2 -1
  348. package/build/src/task/operations.js +35 -12
  349. package/build/src/task/query.d.ts +9 -3
  350. package/build/src/task/query.js +42 -16
  351. package/build/src/task/store.d.ts +2 -1
  352. package/build/src/task/store.js +10 -14
  353. package/build/src/verification/declaration.d.ts +0 -1
  354. package/build/src/verification/declaration.js +1 -18
  355. package/build/src/verification/execution.d.ts +6 -2
  356. package/build/src/verification/observation.d.ts +1 -1
  357. package/package.json +2 -18
  358. package/build/src/akuma/akuma-product.d.ts +0 -58
  359. package/build/src/akuma/akuma-product.js +0 -276
  360. package/build/src/akuma/fleet-execution.js +0 -234
  361. package/build/src/akuma/fleet-observation.js +0 -97
  362. package/build/src/cli/accepted.d.ts +0 -24
  363. package/build/src/cli/accepted.js +0 -167
  364. package/build/src/cli/catalog.d.ts +0 -45
  365. package/build/src/cli/catalog.js +0 -1
  366. package/build/src/cli/commands/akuma-invoke.d.ts +0 -114
  367. package/build/src/cli/commands/akuma-invoke.js +0 -375
  368. package/build/src/cli/commands/contract-invoke.d.ts +0 -34
  369. package/build/src/cli/commands/contract-invoke.js +0 -259
  370. package/build/src/cli/commands/nuke.d.ts +0 -10
  371. package/build/src/cli/commands/nuke.js +0 -20
  372. package/build/src/cli/commands/status-set.d.ts +0 -4
  373. package/build/src/cli/commands/status-set.js +0 -52
  374. package/build/src/cli/commands/task-invoke.d.ts +0 -49
  375. package/build/src/cli/commands/task-invoke.js +0 -306
  376. package/build/src/cli/invoke.d.ts +0 -27
  377. package/build/src/cli/invoke.js +0 -521
  378. package/build/src/cli/render/board.d.ts +0 -3
  379. package/build/src/cli/render/board.js +0 -25
  380. package/build/src/cli/render/status-set.d.ts +0 -5
  381. package/build/src/cli/render/status-set.js +0 -19
  382. package/build/src/cli/render/text.d.ts +0 -3
  383. package/build/src/cli/render/text.js +0 -33
  384. package/build/src/cli/result.d.ts +0 -240
  385. package/build/src/cli/result.js +0 -1
  386. package/build/src/git/result-codec.d.ts +0 -29
  387. package/build/src/git/result-codec.js +0 -309
  388. package/build/src/kanshi/fleet.d.ts +0 -6
  389. package/build/src/kanshi/fleet.js +0 -27
  390. package/build/src/library/audit.d.ts +0 -29
  391. package/build/src/library/audit.js +0 -41
  392. package/build/src/library/composition.d.ts +0 -15
  393. package/build/src/library/composition.js +0 -28
  394. package/build/src/library/configuration.d.ts +0 -4
  395. package/build/src/library/configuration.js +0 -2
  396. package/build/src/library/contract-bind.d.ts +0 -31
  397. package/build/src/library/contract-bind.js +0 -140
  398. package/build/src/library/contract-forwarding.d.ts +0 -55
  399. package/build/src/library/contract-forwarding.js +0 -67
  400. package/build/src/library/contract-handle.d.ts +0 -50
  401. package/build/src/library/contract-handle.js +0 -385
  402. package/build/src/library/contract.d.ts +0 -46
  403. package/build/src/library/contract.js +0 -73
  404. package/build/src/library/execution-result.d.ts +0 -243
  405. package/build/src/library/execution-result.js +0 -101
  406. package/build/src/library/execution.d.ts +0 -8
  407. package/build/src/library/execution.js +0 -102
  408. package/build/src/library/fleet.d.ts +0 -83
  409. package/build/src/library/mutation.d.ts +0 -501
  410. package/build/src/library/mutation.js +0 -248
  411. package/build/src/library/result-codec.d.ts +0 -2
  412. package/build/src/library/result-codec.js +0 -12
  413. package/build/src/protocol/result-codec.d.ts +0 -23
  414. package/build/src/protocol/result-codec.js +0 -488
  415. package/build/src/settlement/result-codec.d.ts +0 -2
  416. package/build/src/settlement/result-codec.js +0 -56
  417. package/build/src/task/public.d.ts +0 -2
  418. package/build/src/task/public.js +0 -1
@@ -1,32 +1,265 @@
1
- import type { ActorId, SnapshotId } from "../core/facts/types.js";
1
+ import { z } from "zod";
2
+ import type { ActorId, ContractId, EntryUlid } from "../core/facts/types.js";
2
3
  import type { GitRepository } from "../git/process.js";
3
4
  import type { GitDecodeChannel } from "../git/read-observation.js";
4
- import { type CurrentVerifiedAttestation } from "./intent.js";
5
- import { type ContractCheckpoint, type ExecutionProgress, type ExecutionStop } from "./progress.js";
5
+ import { type ContractCheckpoint, type ProtocolProgress, type ExecutionStop } from "./progress.js";
6
6
  import type { DocumentDerivation, PlacementStop, VerificationStop } from "./operations.js";
7
- export type CandidateCompletion = Readonly<{
8
- integration: SnapshotId;
9
- /** The reference this placement advanced and the head it advanced from, both observed at completion time. */
10
- predecessor?: SnapshotId;
11
- target?: string;
12
- verification?: Readonly<{
13
- mode: "ran" | "reused";
14
- verdict: "satisfied" | "unsatisfied";
15
- }>;
16
- }>;
17
- /** Candidate conclusions only. Invocation-owned receipts and cleanup live in progress. */
18
- export type CompletionEvidence = Readonly<{
19
- completion?: CandidateCompletion;
20
- verification?: VerificationStop;
21
- verificationReuse?: CurrentVerifiedAttestation;
22
- verificationSummary?: string;
23
- placement?: PlacementStop;
24
- }>;
7
+ declare const candidateCompletionSchema: z.ZodObject<{
8
+ integration: z.ZodPipe<z.ZodString, z.ZodTransform<import("../core/facts/types.js").SnapshotId, string>>;
9
+ predecessor: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<import("../core/facts/types.js").SnapshotId, string>>>;
10
+ target: z.ZodOptional<z.ZodString>;
11
+ scope: z.ZodOptional<z.ZodObject<{
12
+ deletions: z.ZodNumber;
13
+ filesChanged: z.ZodNumber;
14
+ insertions: z.ZodNumber;
15
+ }, z.core.$strict>>;
16
+ verification: z.ZodOptional<z.ZodObject<{
17
+ mode: z.ZodEnum<{
18
+ reused: "reused";
19
+ ran: "ran";
20
+ }>;
21
+ verdict: z.ZodEnum<{
22
+ satisfied: "satisfied";
23
+ unsatisfied: "unsatisfied";
24
+ }>;
25
+ }, z.core.$strict>>;
26
+ }, z.core.$strict>;
27
+ export type CandidateCompletion = z.infer<typeof candidateCompletionSchema>;
28
+ export declare const completionEvidenceSchema: z.ZodObject<{
29
+ completion: z.ZodOptional<z.ZodObject<{
30
+ integration: z.ZodPipe<z.ZodString, z.ZodTransform<import("../core/facts/types.js").SnapshotId, string>>;
31
+ predecessor: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<import("../core/facts/types.js").SnapshotId, string>>>;
32
+ target: z.ZodOptional<z.ZodString>;
33
+ scope: z.ZodOptional<z.ZodObject<{
34
+ deletions: z.ZodNumber;
35
+ filesChanged: z.ZodNumber;
36
+ insertions: z.ZodNumber;
37
+ }, z.core.$strict>>;
38
+ verification: z.ZodOptional<z.ZodObject<{
39
+ mode: z.ZodEnum<{
40
+ reused: "reused";
41
+ ran: "ran";
42
+ }>;
43
+ verdict: z.ZodEnum<{
44
+ satisfied: "satisfied";
45
+ unsatisfied: "unsatisfied";
46
+ }>;
47
+ }, z.core.$strict>>;
48
+ }, z.core.$strict>>;
49
+ verification: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
50
+ refusal: z.ZodUnion<readonly [z.ZodObject<{
51
+ kind: z.ZodEnum<{
52
+ terminal: "terminal";
53
+ "contract-missing": "contract-missing";
54
+ }>;
55
+ contractId: z.ZodPipe<z.ZodString, z.ZodTransform<ContractId, string>>;
56
+ }, z.core.$strict>, z.ZodObject<{
57
+ kind: z.ZodLiteral<"verification-declaration-invalid">;
58
+ contractId: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<ContractId, string>>>;
59
+ }, z.core.$strict>]>;
60
+ }, z.core.$strict>, z.ZodObject<{
61
+ retry: z.ZodUnion<readonly [z.ZodObject<{
62
+ kind: z.ZodEnum<{
63
+ exhausted: "exhausted";
64
+ collision: "collision";
65
+ }>;
66
+ }, z.core.$strict>, z.ZodObject<{
67
+ kind: z.ZodLiteral<"publication-failed">;
68
+ diagnostic: z.ZodString;
69
+ }, z.core.$strict>]>;
70
+ }, z.core.$strict>, z.ZodUnion<readonly [z.ZodObject<{
71
+ stdout: z.ZodOptional<z.ZodString>;
72
+ stderr: z.ZodOptional<z.ZodString>;
73
+ truncated: z.ZodOptional<z.ZodLiteral<true>>;
74
+ failure: z.ZodEnum<{
75
+ cancelled: "cancelled";
76
+ "unknown-exit": "unknown-exit";
77
+ }>;
78
+ }, z.core.$strict>, z.ZodObject<{
79
+ stdout: z.ZodOptional<z.ZodString>;
80
+ stderr: z.ZodOptional<z.ZodString>;
81
+ truncated: z.ZodOptional<z.ZodLiteral<true>>;
82
+ failure: z.ZodEnum<{
83
+ "spawn-error": "spawn-error";
84
+ "candidate-unavailable": "candidate-unavailable";
85
+ }>;
86
+ diagnostic: z.ZodString;
87
+ }, z.core.$strict>, z.ZodObject<{
88
+ stdout: z.ZodOptional<z.ZodString>;
89
+ stderr: z.ZodOptional<z.ZodString>;
90
+ truncated: z.ZodOptional<z.ZodLiteral<true>>;
91
+ failure: z.ZodLiteral<"environment-failure">;
92
+ diagnostic: z.ZodString;
93
+ }, z.core.$strict>, z.ZodObject<{
94
+ stdout: z.ZodOptional<z.ZodString>;
95
+ stderr: z.ZodOptional<z.ZodString>;
96
+ truncated: z.ZodOptional<z.ZodLiteral<true>>;
97
+ failure: z.ZodLiteral<"environment-failure">;
98
+ name: z.ZodString;
99
+ detail: z.ZodUnion<readonly [z.ZodObject<{
100
+ kind: z.ZodLiteral<"exit">;
101
+ code: z.ZodNumber;
102
+ stdout: z.ZodString;
103
+ stderr: z.ZodString;
104
+ truncated: z.ZodBoolean;
105
+ }, z.core.$strict>, z.ZodObject<{
106
+ stdout: z.ZodOptional<z.ZodString>;
107
+ stderr: z.ZodOptional<z.ZodString>;
108
+ truncated: z.ZodOptional<z.ZodBoolean>;
109
+ kind: z.ZodLiteral<"timeout">;
110
+ }, z.core.$strict>, z.ZodObject<{
111
+ stdout: z.ZodOptional<z.ZodString>;
112
+ stderr: z.ZodOptional<z.ZodString>;
113
+ truncated: z.ZodOptional<z.ZodBoolean>;
114
+ kind: z.ZodLiteral<"unknown-exit">;
115
+ }, z.core.$strict>, z.ZodObject<{
116
+ kind: z.ZodLiteral<"spawn-error">;
117
+ diagnostic: z.ZodString;
118
+ }, z.core.$strict>]>;
119
+ }, z.core.$strict>]>]>>;
120
+ verificationReuse: z.ZodOptional<z.ZodObject<{
121
+ entry: z.ZodPipe<z.ZodString, z.ZodTransform<EntryUlid, string>>;
122
+ verdict: z.ZodEnum<{
123
+ satisfied: "satisfied";
124
+ unsatisfied: "unsatisfied";
125
+ }>;
126
+ summary: z.ZodOptional<z.ZodString>;
127
+ }, z.core.$strict>>;
128
+ verificationSubject: z.ZodOptional<z.ZodObject<{
129
+ mode: z.ZodEnum<{
130
+ reused: "reused";
131
+ ran: "ran";
132
+ }>;
133
+ verdict: z.ZodEnum<{
134
+ satisfied: "satisfied";
135
+ unsatisfied: "unsatisfied";
136
+ }>;
137
+ snapshot: z.ZodPipe<z.ZodString, z.ZodTransform<import("../core/facts/types.js").SnapshotId, string>>;
138
+ }, z.core.$strict>>;
139
+ verificationSummary: z.ZodOptional<z.ZodString>;
140
+ placement: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
141
+ refusal: z.ZodUnion<readonly [z.ZodUnion<readonly [z.ZodObject<{
142
+ kind: z.ZodEnum<{
143
+ terminal: "terminal";
144
+ "contract-missing": "contract-missing";
145
+ "delivery-missing": "delivery-missing";
146
+ }>;
147
+ contractId: z.ZodPipe<z.ZodString, z.ZodTransform<ContractId, string>>;
148
+ }, z.core.$strict>, z.ZodObject<{
149
+ kind: z.ZodLiteral<"gates-unsatisfied">;
150
+ contractId: z.ZodPipe<z.ZodString, z.ZodTransform<ContractId, string>>;
151
+ unmet: z.ZodReadonly<z.ZodArray<z.ZodObject<{
152
+ gate: z.ZodPipe<z.ZodString, z.ZodTransform<import("../core/facts/types.js").Gate, string>>;
153
+ current: z.ZodUnion<readonly [z.ZodObject<{
154
+ kind: z.ZodLiteral<"missing">;
155
+ }, z.core.$strict>, z.ZodObject<{
156
+ kind: z.ZodLiteral<"attested">;
157
+ verdict: z.ZodEnum<{
158
+ satisfied: "satisfied";
159
+ unsatisfied: "unsatisfied";
160
+ }>;
161
+ at: z.ZodString;
162
+ summary: z.ZodOptional<z.ZodString>;
163
+ }, z.core.$strict>, z.ZodObject<{
164
+ kind: z.ZodLiteral<"stale">;
165
+ priorVerdict: z.ZodEnum<{
166
+ satisfied: "satisfied";
167
+ unsatisfied: "unsatisfied";
168
+ }>;
169
+ reason: z.ZodOptional<z.ZodObject<{
170
+ kind: z.ZodLiteral<"candidate-content-changed">;
171
+ target: z.ZodOptional<z.ZodString>;
172
+ previousChange: z.ZodPipe<z.ZodString, z.ZodTransform<import("../core/facts/types.js").ChangeId, string>>;
173
+ currentChange: z.ZodPipe<z.ZodString, z.ZodTransform<import("../core/facts/types.js").ChangeId, string>>;
174
+ }, z.core.$strict>>;
175
+ }, z.core.$strict>]>;
176
+ }, z.core.$strict>>>;
177
+ target: z.ZodOptional<z.ZodString>;
178
+ }, z.core.$strict>, z.ZodObject<{
179
+ kind: z.ZodLiteral<"prerequisites-unsatisfied">;
180
+ contractId: z.ZodPipe<z.ZodString, z.ZodTransform<ContractId, string>>;
181
+ unmet: z.ZodReadonly<z.ZodArray<z.ZodObject<{
182
+ contractId: z.ZodPipe<z.ZodString, z.ZodTransform<ContractId, string>>;
183
+ state: z.ZodEnum<{
184
+ abandoned: "abandoned";
185
+ missing: "missing";
186
+ active: "active";
187
+ }>;
188
+ }, z.core.$strict>>>;
189
+ }, z.core.$strict>]>, z.ZodObject<{
190
+ kind: z.ZodLiteral<"checkout-not-followable">;
191
+ contractId: z.ZodPipe<z.ZodString, z.ZodTransform<ContractId, string>>;
192
+ target: z.ZodString;
193
+ path: z.ZodString;
194
+ reason: z.ZodLiteral<"untracked">;
195
+ paths: z.ZodReadonly<z.ZodArray<z.ZodString>>;
196
+ }, z.core.$strict>, z.ZodUnion<readonly [z.ZodPipe<z.ZodObject<{
197
+ kind: z.ZodLiteral<"integration-failed">;
198
+ contractId: z.ZodPipe<z.ZodString, z.ZodTransform<ContractId, string>>;
199
+ reason: z.ZodEnum<{
200
+ "not-based-on-target": "not-based-on-target";
201
+ "unrelated-histories": "unrelated-histories";
202
+ conflict: "conflict";
203
+ }>;
204
+ targetHead: z.ZodPipe<z.ZodString, z.ZodTransform<import("../core/facts/types.js").SnapshotId, string>>;
205
+ conflictPaths: z.ZodOptional<z.ZodReadonly<z.ZodArray<z.ZodString>>>;
206
+ }, z.core.$strict>, z.ZodTransform<{
207
+ kind: "integration-failed";
208
+ contractId: ContractId;
209
+ reason: "not-based-on-target" | "unrelated-histories" | "conflict";
210
+ targetHead: import("../core/facts/types.js").SnapshotId;
211
+ } & {
212
+ conflictPaths?: readonly string[];
213
+ }, {
214
+ kind: "integration-failed";
215
+ contractId: ContractId;
216
+ reason: "not-based-on-target" | "unrelated-histories" | "conflict";
217
+ targetHead: import("../core/facts/types.js").SnapshotId;
218
+ conflictPaths?: readonly string[] | undefined;
219
+ }>>, z.ZodObject<{
220
+ kind: z.ZodLiteral<"integration-unsupported">;
221
+ contractId: z.ZodPipe<z.ZodString, z.ZodTransform<ContractId, string>>;
222
+ requiredGit: z.ZodLiteral<"2.38">;
223
+ }, z.core.$strict>]>, z.ZodObject<{
224
+ kind: z.ZodLiteral<"target-missing">;
225
+ contractId: z.ZodPipe<z.ZodString, z.ZodTransform<ContractId, string>>;
226
+ }, z.core.$strict>]>;
227
+ }, z.core.$strict>, z.ZodObject<{
228
+ retry: z.ZodUnion<readonly [z.ZodObject<{
229
+ kind: z.ZodEnum<{
230
+ exhausted: "exhausted";
231
+ collision: "collision";
232
+ }>;
233
+ }, z.core.$strict>, z.ZodObject<{
234
+ kind: z.ZodLiteral<"publication-failed">;
235
+ diagnostic: z.ZodString;
236
+ }, z.core.$strict>]>;
237
+ }, z.core.$strict>, z.ZodObject<{
238
+ failure: z.ZodLiteral<"target-placement-failed">;
239
+ diagnostic: z.ZodString;
240
+ }, z.core.$strict>, z.ZodObject<{
241
+ failure: z.ZodLiteral<"target-moved">;
242
+ contractId: z.ZodPipe<z.ZodString, z.ZodTransform<ContractId, string>>;
243
+ target: z.ZodString;
244
+ integratedAt: z.ZodPipe<z.ZodString, z.ZodTransform<import("../core/facts/types.js").SnapshotId, string>>;
245
+ observed: z.ZodNullable<z.ZodPipe<z.ZodString, z.ZodTransform<import("../core/facts/types.js").SnapshotId, string>>>;
246
+ attempts: z.ZodNumber;
247
+ observedTreeEqualsCandidate: z.ZodBoolean;
248
+ }, z.core.$strict>, z.ZodObject<{
249
+ failure: z.ZodLiteral<"target-moved">;
250
+ contractId: z.ZodPipe<z.ZodString, z.ZodTransform<ContractId, string>>;
251
+ target: z.ZodString;
252
+ expected: z.ZodPipe<z.ZodString, z.ZodTransform<import("../core/facts/types.js").SnapshotId, string>>;
253
+ observed: z.ZodNullable<z.ZodPipe<z.ZodString, z.ZodTransform<import("../core/facts/types.js").SnapshotId, string>>>;
254
+ observedTreeEqualsCandidate: z.ZodBoolean;
255
+ }, z.core.$strict>]>>;
256
+ }, z.core.$strict>;
257
+ export type CompletionEvidence = z.infer<typeof completionEvidenceSchema>;
25
258
  export type CompletionInput = Readonly<{
26
259
  channel: GitDecodeChannel;
27
260
  repository: GitRepository;
28
261
  checkpoint: ContractCheckpoint;
29
- progress: ExecutionProgress;
262
+ progress: ProtocolProgress;
30
263
  start: "verification" | "placement";
31
264
  deriveDocument(state: ContractCheckpoint["state"]): DocumentDerivation;
32
265
  actor?: ActorId;
@@ -46,3 +279,4 @@ export type CompletionResult = Readonly<{
46
279
  }>;
47
280
  /** Advance one contract. The trigger owns the leading act; this node owns no other contract. */
48
281
  export declare function completeCandidate(input: CompletionInput): Promise<CompletionResult>;
282
+ export {};
@@ -1,10 +1,41 @@
1
+ import { z } from "zod";
2
+ import { snapshotIdSchema, verdictSchema, verificationStopSchema, placementStopSchema } from "./operations.js";
3
+ import { verificationReuseSchema } from "./intent.js";
4
+ import { deliveryDiffScopeSchema, readDeliveryScope } from "../git/integration.js";
1
5
  import { currentVerifiedAttestation, verifyDelivery } from "./intent.js";
2
6
  import { admitPlacement, observeTargetPlacement } from "./placement.js";
3
7
  import { reintegrateOperation } from "./reintegrate.js";
4
- import { contractCheckpoint, executionStop, } from "./progress.js";
8
+ import { contractCheckpoint, executionStop, isOperationalFailure, isOperationalStop, } from "./progress.js";
5
9
  import { placementStop, timestamp, unpackVerificationOutcome } from "./operations.js";
6
10
  import { VERIFIED } from "../verification/declaration.js";
7
11
  const MAX_REINTEGRATION_CYCLES = 3;
12
+ const verdictProvenanceSchema = z.object({ mode: z.enum(["ran", "reused"]), verdict: verdictSchema }).strict();
13
+ const candidateCompletionSchema = z
14
+ .object({
15
+ integration: snapshotIdSchema,
16
+ predecessor: snapshotIdSchema.optional(),
17
+ target: z
18
+ .string()
19
+ .refine((value) => value.trim() !== "")
20
+ .optional(),
21
+ scope: deliveryDiffScopeSchema.omit({ paths: true }).optional(),
22
+ verification: verdictProvenanceSchema.optional(),
23
+ })
24
+ .strict();
25
+ const verificationSubjectSchema = verdictProvenanceSchema.extend({ snapshot: snapshotIdSchema }).strict();
26
+ export const completionEvidenceSchema = z
27
+ .object({
28
+ completion: candidateCompletionSchema.optional(),
29
+ verification: verificationStopSchema.optional(),
30
+ verificationReuse: verificationReuseSchema.optional(),
31
+ verificationSubject: verificationSubjectSchema.optional(),
32
+ verificationSummary: z
33
+ .string()
34
+ .refine((value) => value.trim() !== "")
35
+ .optional(),
36
+ placement: placementStopSchema.optional(),
37
+ })
38
+ .strict();
8
39
  function reintegrationStop(result) {
9
40
  if (result.kind === "placement-failed")
10
41
  return { failure: "target-placement-failed", diagnostic: result.diagnostic };
@@ -21,14 +52,20 @@ async function verifyCurrentCandidate(input, cursor) {
21
52
  throw new Error("delivery completion requires an integration snapshot");
22
53
  cursor.evidence = {};
23
54
  cursor.ran = undefined;
55
+ input.progress.recordCandidate(state.id, cursor.evidence);
24
56
  const current = currentVerifiedAttestation(state);
25
57
  if (current !== undefined) {
26
- cursor.evidence = { verificationReuse: current };
58
+ cursor.evidence = {
59
+ verificationReuse: current,
60
+ verificationSubject: { snapshot, mode: "reused", verdict: current.verdict },
61
+ };
62
+ input.progress.recordCandidate(state.id, cursor.evidence);
27
63
  return;
28
64
  }
29
65
  const declaration = input.deriveDocument(state).verification;
30
66
  if (declaration.kind === "refused") {
31
67
  cursor.evidence = { verification: { refusal: declaration.refusal } };
68
+ input.progress.recordCandidate(state.id, cursor.evidence);
32
69
  return;
33
70
  }
34
71
  const result = await verifyDelivery({
@@ -51,12 +88,20 @@ async function verifyCurrentCandidate(input, cursor) {
51
88
  input.progress.recordResidue(state.id, verified.admission);
52
89
  cursor.ran = verified.admission.facts.find((fact) => fact.kind === "attestation" && fact.data.gate === "verified")?.entry;
53
90
  }
91
+ const subject = verified.reuse !== undefined
92
+ ? { snapshot, mode: "reused", verdict: verified.reuse.verdict }
93
+ : verified.counts === undefined
94
+ ? undefined
95
+ : { snapshot, mode: "ran", verdict: verified.counts.verdict };
54
96
  cursor.evidence = {
97
+ ...(verified.reuse === undefined ? {} : { verificationReuse: verified.reuse }),
98
+ ...(subject === undefined ? {} : { verificationSubject: subject }),
55
99
  ...(verified.stop === undefined ? {} : { verification: verified.stop }),
56
100
  ...(verified.counts?.verdict !== "unsatisfied" || verified.counts.summary === undefined
57
101
  ? {}
58
102
  : { verificationSummary: verified.counts.summary }),
59
103
  };
104
+ input.progress.recordCandidate(state.id, cursor.evidence);
60
105
  }
61
106
  async function observeCandidateTarget(input, cursor) {
62
107
  const target = cursor.checkpoint.state.coordinates.target;
@@ -75,16 +120,25 @@ async function observeCandidateTarget(input, cursor) {
75
120
  return observed.kind === "refused" ? { refusal: observed.refusal } : undefined;
76
121
  }
77
122
  catch (error) {
78
- return { failure: "target-placement-failed", diagnostic: error instanceof Error ? error.message : String(error) };
123
+ if (!isOperationalFailure(error))
124
+ throw error;
125
+ return { failure: "target-placement-failed", diagnostic: error.message };
79
126
  }
80
127
  }
81
- function completedResult(cursor) {
128
+ async function completedResult(input, cursor) {
82
129
  const state = cursor.checkpoint.state;
83
130
  const integration = state.currentIntegration?.snapshot;
84
131
  if (integration === undefined)
85
132
  throw new Error("accepted placement requires its integration snapshot");
86
133
  const target = state.coordinates.target;
87
134
  const predecessor = state.currentIntegration?.predecessor;
135
+ // Movement and the completion base are known before this optional observation; a failed scope
136
+ // read must never erase an already-claimed candidate.
137
+ cursor.completion = {
138
+ integration,
139
+ ...(predecessor === undefined || target === undefined ? {} : { predecessor, target }),
140
+ };
141
+ input.progress.recordCompletion(state.id, cursor.completion);
88
142
  // Never attach a superseded run's verdict to the final integration.
89
143
  const current = currentVerifiedAttestation(state);
90
144
  const verification = current === undefined
@@ -93,17 +147,26 @@ function completedResult(cursor) {
93
147
  mode: cursor.ran === current.entry ? "ran" : "reused",
94
148
  verdict: current.verdict,
95
149
  };
96
- const { verificationSummary: _oldSummary, verificationReuse: _oldReuse, ...evidence } = cursor.evidence;
150
+ cursor.completion = { ...cursor.completion, ...(verification === undefined ? {} : { verification }) };
151
+ input.progress.recordCompletion(state.id, cursor.completion);
152
+ const scope = predecessor === undefined ? undefined : await readDeliveryScope(input.repository, predecessor, integration, false);
153
+ const { verificationSummary: _oldSummary, verificationReuse: _oldReuse, verificationSubject: _oldSubject, ...evidence } = cursor.evidence;
154
+ const completion = {
155
+ integration,
156
+ ...(predecessor === undefined || target === undefined ? {} : { predecessor, target }),
157
+ ...(scope === undefined
158
+ ? {}
159
+ : { scope: { filesChanged: scope.filesChanged, insertions: scope.insertions, deletions: scope.deletions } }),
160
+ ...(verification === undefined ? {} : { verification }),
161
+ };
162
+ cursor.completion = completion;
163
+ input.progress.recordCompletion(state.id, completion);
97
164
  return {
98
165
  kind: "completed",
99
166
  checkpoint: cursor.checkpoint,
100
167
  evidence: {
101
168
  ...evidence,
102
- completion: {
103
- integration,
104
- ...(predecessor === undefined || target === undefined ? {} : { predecessor, target }),
105
- ...(verification === undefined ? {} : { verification }),
106
- },
169
+ completion,
107
170
  ...(current === undefined || verification?.mode !== "reused" ? {} : { verificationReuse: current }),
108
171
  ...(current?.verdict !== "unsatisfied" || current.summary === undefined
109
172
  ? {}
@@ -152,6 +215,14 @@ async function placeCurrentCandidate(input, cursor) {
152
215
  if (result.kind === "accepted") {
153
216
  cursor.checkpoint = contractCheckpoint(result);
154
217
  input.progress.recordResidue(result.state.id, result);
218
+ const acceptedIntegration = result.state.currentIntegration?.snapshot;
219
+ if (acceptedIntegration !== undefined) {
220
+ const acceptedPredecessor = result.state.currentIntegration?.predecessor;
221
+ input.progress.recordCompletion(result.state.id, {
222
+ integration: acceptedIntegration,
223
+ ...(acceptedPredecessor === undefined ? {} : { predecessor: acceptedPredecessor }),
224
+ });
225
+ }
155
226
  }
156
227
  return result;
157
228
  }
@@ -184,7 +255,7 @@ async function advanceCandidate(input, cursor) {
184
255
  let placement = await placeCurrentCandidate(input, cursor);
185
256
  for (let cycles = 0;; cycles += 1) {
186
257
  if (placement.kind === "accepted")
187
- return completedResult(cursor);
258
+ return await completedResult(input, cursor);
188
259
  if (placement.kind !== "target-moved" || target === undefined || placement.observedTreeEqualsCandidate) {
189
260
  const stop = placementStop(placement);
190
261
  if (stop === undefined)
@@ -229,6 +300,8 @@ export async function completeCandidate(input) {
229
300
  return await advanceCandidate(input, cursor);
230
301
  }
231
302
  catch (error) {
303
+ if (!isOperationalStop(error, input.signal))
304
+ throw error;
232
305
  const contractId = input.checkpoint.state.id;
233
306
  const stop = executionStop(contractId, cursor.stage, error, input.signal);
234
307
  input.progress.recordStop(stop);
@@ -237,7 +310,22 @@ export async function completeCandidate(input) {
237
310
  cursor.checkpoint = admitted;
238
311
  // Only this invocation's confirmed claim can complete the node after a trailing failure.
239
312
  if (admitted?.state.terminal?.kind === "claimed" && input.progress.hasFact(admitted.state.terminal)) {
240
- return completedResult(cursor);
313
+ if (cursor.completion === undefined) {
314
+ const integration = admitted.state.currentIntegration;
315
+ if (integration === null)
316
+ throw error;
317
+ const target = admitted.state.coordinates.target;
318
+ cursor.completion = {
319
+ integration: integration.snapshot,
320
+ ...(target === undefined ? {} : { target, predecessor: integration.predecessor }),
321
+ };
322
+ input.progress.recordCompletion(contractId, cursor.completion);
323
+ }
324
+ return {
325
+ kind: "completed",
326
+ checkpoint: cursor.checkpoint,
327
+ evidence: { ...cursor.evidence, completion: cursor.completion },
328
+ };
241
329
  }
242
330
  return stoppedResult(cursor, stop);
243
331
  }
@@ -1,32 +1,41 @@
1
- import { type ConflictRecovery } from "../git/workspace.js";
2
- import type { ActorId, ContractId, ContractState, DeliverData, EntryUlid, SnapshotId } from "../core/facts/types.js";
1
+ import { z } from "zod";
2
+ import { worktreeWorkspaceSchema } from "../git/workspace.js";
3
+ import type { ActorId, ContractId, ContractState, DeliverData } from "../core/facts/types.js";
3
4
  import { type CurrentVerifiedAttestation } from "./intent.js";
4
5
  import type { LeadingOutcome } from "./outcome.js";
5
6
  import type { CompletionEvidence } from "./completion.js";
6
7
  import { type ManagedWorktreeAppointment } from "../workspace-place.js";
7
- import type { DeliveryPreparationRefusal, DocumentDerivation, IntentRefusal, MutationOperationInput } from "./operations.js";
8
+ import type { DeliveryPreparationRefusal, DocumentDerivation, MutationOperationInput } from "./operations.js";
8
9
  type DeliveryIdentity = DeliverData;
9
10
  export type VerificationReuse = CurrentVerifiedAttestation;
10
- export type DeliverLeading = Readonly<{
11
- kind: "already-admitted";
12
- fact: EntryUlid;
13
- }>;
14
- export type DeliverValue = DeliveryIdentity & CompletionEvidence & Readonly<{
15
- leading?: DeliverLeading;
16
- }>;
17
- export type AppointedWorkspace = Readonly<{
18
- kind: "worktree";
19
- path: string;
20
- }>;
21
- export type IntegrationConflictMaterialized = Readonly<{
22
- kind: "integration-conflict-materialized";
23
- targetHead: SnapshotId;
24
- conflictPaths: readonly string[];
25
- workspace: AppointedWorkspace;
26
- handoffBase: SnapshotId;
27
- recovery: ConflictRecovery;
11
+ export declare const deliverLeadingSchema: z.ZodObject<{
12
+ kind: z.ZodEnum<{
13
+ "admitted-now": "admitted-now";
14
+ "already-admitted": "already-admitted";
15
+ }>;
16
+ fact: z.ZodPipe<z.ZodString, z.ZodTransform<import("../core/facts/types.js").EntryUlid, string>>;
17
+ }, z.core.$strict>;
18
+ type DeliverLeading = z.infer<typeof deliverLeadingSchema>;
19
+ type DeliverValue = DeliveryIdentity & CompletionEvidence & Readonly<{
20
+ leading: DeliverLeading;
28
21
  }>;
29
- export { decodeMaterializedConflict } from "./result-codec.js";
22
+ export type AppointedWorkspace = z.infer<typeof worktreeWorkspaceSchema>;
23
+ export declare const materializedConflictSchema: z.ZodObject<{
24
+ kind: z.ZodLiteral<"integration-conflict-materialized">;
25
+ targetHead: z.ZodPipe<z.ZodString, z.ZodTransform<import("../core/facts/types.js").SnapshotId, string>>;
26
+ conflictPaths: z.ZodReadonly<z.ZodArray<z.ZodString>>;
27
+ workspace: z.ZodObject<{
28
+ kind: z.ZodLiteral<"worktree">;
29
+ path: z.ZodString;
30
+ }, z.core.$strict>;
31
+ handoffBase: z.ZodPipe<z.ZodString, z.ZodTransform<import("../core/facts/types.js").SnapshotId, string>>;
32
+ recovery: z.ZodObject<{
33
+ materialize: z.ZodLiteral<"deliver --materialize-conflict --include-dirty">;
34
+ deliver: z.ZodLiteral<"deliver --include-dirty">;
35
+ staging: z.ZodLiteral<"not-required">;
36
+ }, z.core.$strict>;
37
+ }, z.core.$strict>;
38
+ export type IntegrationConflictMaterialized = z.infer<typeof materializedConflictSchema>;
30
39
  type DeliverOperationInput = MutationOperationInput & Readonly<{
31
40
  deriveDocument: (state: ContractState) => DocumentDerivation;
32
41
  message?: string;
@@ -36,6 +45,7 @@ type DeliverOperationInput = MutationOperationInput & Readonly<{
36
45
  overwrite?: boolean;
37
46
  signal?: AbortSignal;
38
47
  }>;
48
+ type DeliverOperationRefusal = import("../core/verbs/deliver.js").DeliverRefusal | DeliveryPreparationRefusal | import("./operations.js").DeliverConflictRefusal | import("../verification/declaration.js").VerificationDeclarationRefusal;
39
49
  export declare function prepareDelivery(repository: import("../git/process.js").GitRepository, stage: Readonly<{
40
50
  contractId: ContractId;
41
51
  coordinates: ContractState["coordinates"];
@@ -56,4 +66,5 @@ export declare function prepareDelivery(repository: import("../git/process.js").
56
66
  kind: "refused";
57
67
  refusal: DeliveryPreparationRefusal;
58
68
  }>;
59
- export declare function admitDeliveryOperation(input: DeliverOperationInput): Promise<LeadingOutcome<DeliverValue, IntentRefusal> | IntegrationConflictMaterialized>;
69
+ export declare function admitDeliveryOperation(input: DeliverOperationInput): Promise<LeadingOutcome<DeliverValue, DeliverOperationRefusal> | IntegrationConflictMaterialized>;
70
+ export {};