@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,375 +0,0 @@
1
- import { readFile } from "node:fs/promises";
2
- import { squareAssignedParticipantName } from "@astrosheep/square";
3
- import { emitInitiatingPluginSignal } from "../../plugin/akuma-signals.js";
4
- import { decodeTellWaitObservation } from "../../akuma/fleet-execution.js";
5
- import { Akumas, } from "../../index.js";
6
- import { callObservationStream, inputWaitStream, waitObservationStream, } from "../render/akuma-activity.js";
7
- import { callObservationHead, tellWaitProgressStream, waitedTellProgress } from "../render/akuma.js";
8
- import { DEFAULT_CLI_COLUMNS } from "../render/terminal.js";
9
- import { tellWaitAkuma, waitAkuma } from "../../library/fleet.js";
10
- import { localExecutionContext } from "../../akuma/requests.js";
11
- import { Akuma, Schema } from "../../akuma/index.js";
12
- import { addressAkuma, resolveAkuma } from "../../library/address.js";
13
- import { executionChannel } from "../../akuma/requests.js";
14
- import { requestForwardedFleetTellAnswer } from "../../akuma/fleet-request.js";
15
- function akumas(input) {
16
- return Akumas.of(input.path, { execution: input.execution ?? localExecutionContext() });
17
- }
18
- function callSignalOption(signal) {
19
- return signal === undefined ? {} : { signal };
20
- }
21
- /** The display context the command result renders with, so live progress rows match the result. */
22
- function resultContext() {
23
- const tty = process.stderr.isTTY === true;
24
- return {
25
- columns: tty && Number.isInteger(process.stderr.columns) ? process.stderr.columns : DEFAULT_CLI_COLUMNS,
26
- color: tty && process.env.NO_COLOR === undefined,
27
- };
28
- }
29
- function writeProgress(body) {
30
- if (body.length === 0)
31
- return;
32
- process.stderr.write(body.endsWith("\n") ? body : `${body}\n`);
33
- }
34
- async function schemaFromFile(path) {
35
- try {
36
- const parsed = JSON.parse(await readFile(path, "utf8"));
37
- return Schema.json(parsed, (value) => value);
38
- }
39
- catch (error) {
40
- throw new Error(`cannot read JSON Schema file ${path}: ${error instanceof Error ? error.message : String(error)}`);
41
- }
42
- }
43
- function inputAlias(selector) {
44
- return selector.startsWith("@") ? selector : undefined;
45
- }
46
- async function promptBody(command, input) {
47
- return command.prompt.kind === "stdin" ? await input.readStdin() : command.prompt.value;
48
- }
49
- /**
50
- * The live half of a local wait: each observation round opens every newly seen
51
- * Akuma with its identity frame, then prints only the rows that settled since
52
- * the previous round. The first sighting of an Akuma only establishes its
53
- * baseline, so an already settled Akuma prints no backlog rows. When the wait
54
- * ends, `conclude` prints its closing scoreboard on the same channel.
55
- */
56
- function waitObserver(stream, onSelected) {
57
- return {
58
- selected: (selected) => {
59
- onSelected?.(selected);
60
- stream.select(selected);
61
- },
62
- observe: (observed) => {
63
- const lines = stream.observe(observed);
64
- if (lines.length > 0)
65
- writeProgress(lines.join("\n"));
66
- },
67
- };
68
- }
69
- async function invokeWait(command, input) {
70
- const alias = command.akuma.length === 1 ? inputAlias(command.akuma[0]) : undefined;
71
- const stream = command.output === "text" ? waitObservationStream(resultContext()) : undefined;
72
- const startedAt = Date.now();
73
- let selection;
74
- const observer = stream === undefined
75
- ? undefined
76
- : waitObserver(stream, (selected) => {
77
- selection = selected;
78
- });
79
- const result = await waitAkuma({
80
- path: input.path,
81
- akuma: command.akuma,
82
- ...(input.repo === undefined ? {} : { repo: input.repo }),
83
- ...(command.completion === undefined ? {} : { completion: command.completion }),
84
- ...(command.timeoutMs === undefined ? {} : { timeoutMs: command.timeoutMs }),
85
- ...(input.signal === undefined ? {} : { signal: input.signal }),
86
- }, input.execution ?? localExecutionContext(), observer);
87
- const frozen = {
88
- startedAt,
89
- ...(selection === undefined ? {} : { selection }),
90
- };
91
- if (stream !== undefined && stream.streamed()) {
92
- const closing = stream.conclude(result);
93
- if (closing.length > 0)
94
- writeProgress(closing);
95
- return {
96
- kind: "akuma",
97
- action: "wait",
98
- result,
99
- streamed: true,
100
- ...(alias === undefined ? {} : { alias }),
101
- ...frozen,
102
- };
103
- }
104
- return {
105
- kind: "akuma",
106
- action: "wait",
107
- result,
108
- ...(alias === undefined ? {} : { alias }),
109
- ...frozen,
110
- };
111
- }
112
- async function inputInitiator(input) {
113
- let initiator;
114
- try {
115
- initiator = squareAssignedParticipantName(input.environment);
116
- }
117
- catch { }
118
- if (initiator === undefined)
119
- return {};
120
- try {
121
- await emitInitiatingPluginSignal({
122
- world: input.path,
123
- ...(input.settings === undefined ? {} : { settings: input.settings }),
124
- initiator,
125
- reportDiagnostic: (message) => process.stderr.write(`${message}\n`),
126
- });
127
- }
128
- catch (error) {
129
- process.stderr.write(`! plugin initiation: ${error instanceof Error ? error.message : String(error)}\n`);
130
- }
131
- return { initiator };
132
- }
133
- async function invokeWaitedTell(command, input, body) {
134
- const schema = command.schema === undefined ? undefined : await schemaFromFile(command.schema);
135
- const alias = inputAlias(command.akuma);
136
- const channel = executionChannel(input.execution);
137
- const progress = command.output === "text" && channel.kind === "local"
138
- ? tellWaitProgressStream(undefined, alias, resultContext())
139
- : undefined;
140
- const result = await tellWaitAkuma({
141
- ...(await inputInitiator(input)),
142
- path: input.path,
143
- akuma: command.akuma,
144
- body,
145
- timeoutMs: command.timeoutMs,
146
- ...(schema === undefined ? {} : { schema }),
147
- ...(command.interrupt ? { interrupt: true } : {}),
148
- ...(input.repo === undefined ? {} : { repo: input.repo }),
149
- ...(input.signal === undefined ? {} : { signal: input.signal }),
150
- ...(progress === undefined
151
- ? {}
152
- : {
153
- observe: {
154
- admitted: (tell, id) => writeProgress(progress.admitted(tell, id).join("\n")),
155
- observe: (observation) => writeProgress(progress.observe(observation).join("\n")),
156
- },
157
- }),
158
- }, input.execution ?? localExecutionContext());
159
- const rendered = schema === undefined ? result : { ...result, observation: decodeTellWaitObservation(result.observation, schema) };
160
- if (progress !== undefined)
161
- writeProgress(progress.conclude(rendered).join("\n"));
162
- else if (command.output === "text" && channel.kind === "body-request")
163
- writeProgress(waitedTellProgress(rendered, alias, resultContext()));
164
- return {
165
- kind: "akuma",
166
- action: "tell",
167
- mode: "wait",
168
- result: rendered,
169
- body,
170
- ...(alias === undefined ? {} : { alias }),
171
- ...(schema === undefined ? {} : { structured: true }),
172
- };
173
- }
174
- async function invokeTell(command, input) {
175
- const body = await promptBody(command, input);
176
- if (command.timeoutMs !== undefined)
177
- return await invokeWaitedTell(command, input, body);
178
- if (command.schema !== undefined) {
179
- const schema = await schemaFromFile(command.schema);
180
- const channel = executionChannel(input.execution);
181
- const values = {
182
- path: input.path,
183
- akuma: command.akuma,
184
- ...(input.repo === undefined ? {} : { repo: input.repo }),
185
- };
186
- // A forwarded answer lets the parent Fleet prove the target, so it resolves
187
- // coordinates here and never reads this process's own Heart files.
188
- const addressed = channel.kind === "body-request" ? await resolveAkuma(values) : await addressAkuma(values);
189
- const initiator = await inputInitiator(input);
190
- const answer = channel.kind === "body-request"
191
- ? await requestForwardedFleetTellAnswer({
192
- directory: channel.directory,
193
- target: addressed.id,
194
- body,
195
- schema,
196
- interrupt: command.interrupt,
197
- ...initiator,
198
- ...(input.signal === undefined ? {} : { signal: input.signal }),
199
- })
200
- : await Akuma.select(addressed.path, addressed.id).tell(body, {
201
- schema,
202
- ...initiator,
203
- ...(command.interrupt ? { interrupt: true } : {}),
204
- ...(input.signal === undefined ? {} : { signal: input.signal }),
205
- });
206
- const alias = inputAlias(command.akuma);
207
- return {
208
- kind: "akuma",
209
- action: "tell",
210
- mode: "schema",
211
- result: answer,
212
- body,
213
- ...(alias === undefined ? {} : { alias }),
214
- };
215
- }
216
- const initiator = await inputInitiator(input);
217
- if (command.interrupt) {
218
- const result = await akumas(input).interrupt({
219
- ...initiator,
220
- akuma: command.akuma,
221
- body,
222
- ...(input.repo === undefined ? {} : { repo: input.repo }),
223
- ...(input.signal === undefined ? {} : { signal: input.signal }),
224
- });
225
- const alias = inputAlias(command.akuma);
226
- return {
227
- kind: "akuma",
228
- action: "tell",
229
- mode: "interrupt",
230
- result,
231
- body,
232
- ...(alias === undefined ? {} : { alias }),
233
- };
234
- }
235
- const result = await akumas(input).tell({
236
- ...initiator,
237
- akuma: command.akuma,
238
- body,
239
- ...(input.repo === undefined ? {} : { repo: input.repo }),
240
- ...(input.signal === undefined ? {} : { signal: input.signal }),
241
- });
242
- const alias = inputAlias(command.akuma);
243
- return { kind: "akuma", action: "tell", mode: "ordinary", result, body, ...(alias === undefined ? {} : { alias }) };
244
- }
245
- async function invokeHistory(command, input) {
246
- const result = await akumas(input).history({
247
- akuma: command.akuma,
248
- ...(input.repo === undefined ? {} : { repo: input.repo }),
249
- ...(command.before === undefined ? {} : { before: command.before }),
250
- ...(command.since === undefined ? {} : { since: command.since }),
251
- ...(command.limit === undefined ? {} : { limit: command.limit }),
252
- ...(command.id === undefined ? {} : { id: command.id }),
253
- last: command.last,
254
- });
255
- return {
256
- kind: "akuma",
257
- action: "history",
258
- akuma: result.id,
259
- historyResult: result,
260
- ...(inputAlias(command.akuma) === undefined ? {} : { alias: command.akuma }),
261
- ...(command.id !== undefined
262
- ? { mode: "exact" }
263
- : result.kind === "history"
264
- ? { mode: "page", history: result.history }
265
- : result.kind === "last"
266
- ? { mode: "last", answer: result.answer }
267
- : { mode: "no-answer" }),
268
- };
269
- }
270
- async function invokeFork(command, input) {
271
- return {
272
- kind: "akuma",
273
- action: "fork",
274
- receipt: await akumas(input).fork({
275
- akuma: command.akuma,
276
- at: command.at,
277
- ...(input.repo === undefined ? {} : { repo: input.repo }),
278
- }),
279
- };
280
- }
281
- async function invokeKill(command, input) {
282
- const alias = command.akuma.length === 1 ? inputAlias(command.akuma[0]) : undefined;
283
- return {
284
- kind: "akuma",
285
- action: "kill",
286
- result: await akumas(input).kill({
287
- akuma: command.akuma,
288
- ...(input.repo === undefined ? {} : { repo: input.repo }),
289
- ...(input.signal === undefined ? {} : { signal: input.signal }),
290
- }),
291
- ...(alias === undefined ? {} : { alias }),
292
- };
293
- }
294
- export async function invokeAkuma(command, input) {
295
- switch (command.command) {
296
- case "call": {
297
- const body = await promptBody(command, input);
298
- const schema = command.schema === undefined ? undefined : await schemaFromFile(command.schema);
299
- const caller = akumas(input);
300
- const request = {
301
- ...(await inputInitiator(input)),
302
- archetype: command.archetype,
303
- body,
304
- ...(input.home === undefined ? {} : { home: input.home }),
305
- ...(input.settings === undefined ? {} : { settings: input.settings }),
306
- ...(input.executionCwd === undefined ? {} : { cwd: input.executionCwd }),
307
- ...(input.contract === undefined ? {} : { contract: input.contract }),
308
- ...(command.alias === undefined ? {} : { alias: command.alias }),
309
- ...(command.allowed === undefined ? {} : { allowed: command.allowed }),
310
- ...(schema === undefined ? {} : { schema }),
311
- ...callSignalOption(input.signal),
312
- };
313
- let stream;
314
- const observing = command.mode === "wait" && command.output === "text";
315
- const observe = observing
316
- ? {
317
- admitted: (tell, id, head) => {
318
- stream = callObservationStream(resultContext(), callObservationHead({ akuma: id, ...head }), {
319
- admittedAt: tell.row.at,
320
- });
321
- },
322
- observe: (observation) => {
323
- const lines = stream?.observe(observation) ?? [];
324
- if (lines.length > 0)
325
- writeProgress(lines.join("\n"));
326
- },
327
- }
328
- : undefined;
329
- const result = await caller.call({
330
- ...request,
331
- mode: command.mode,
332
- ...(command.timeoutMs === undefined ? {} : { timeoutMs: command.timeoutMs }),
333
- ...(observe === undefined ? {} : { observe }),
334
- });
335
- let streamed = stream !== undefined;
336
- if (stream !== undefined) {
337
- writeProgress(stream.conclude(result.observation));
338
- }
339
- else if (observing && result.observation.kind === "failed") {
340
- const fallback = inputWaitStream(resultContext(), () => callObservationHead({
341
- akuma: result.akuma,
342
- dispatch: result.dispatch,
343
- alias: result.alias,
344
- }), { cursor: "empty", answerSeparator: true });
345
- writeProgress(fallback.conclude({ kind: "failed", diagnostic: result.observation.failure.diagnostic }));
346
- streamed = true;
347
- }
348
- return {
349
- kind: "akuma",
350
- action: "call",
351
- result,
352
- world: input.path,
353
- ...(streamed ? { streamed: true } : {}),
354
- };
355
- }
356
- case "wait":
357
- return await invokeWait(command, input);
358
- case "tell":
359
- return await invokeTell(command, input);
360
- case "history":
361
- return await invokeHistory(command, input);
362
- case "fork":
363
- return await invokeFork(command, input);
364
- case "kill":
365
- return await invokeKill(command, input);
366
- }
367
- }
368
- export async function invokeAkumaStatus(path, akuma, alias, repo) {
369
- return {
370
- kind: "akuma",
371
- action: "status",
372
- status: await Akumas.of(path).status({ akuma, ...(repo === undefined ? {} : { repo }) }),
373
- ...(alias === undefined ? {} : { alias }),
374
- };
375
- }
@@ -1,34 +0,0 @@
1
- import type { ExecutionEvent } from "../../library/execution.js";
2
- import type { InvocationResult } from "../result.js";
3
- import type { ParsedCommand } from "../parse.js";
4
- import type { WorktreeHooks } from "../../library/configuration.js";
5
- import type { Repo } from "../../library/repo.js";
6
- import type { Settings } from "../../settings.js";
7
- import type { WorldRoot } from "../../world.js";
8
- import type { ExecutionContext } from "../../akuma/requests.js";
9
- type ContractMutation = Extract<ParsedCommand, {
10
- command: "bind" | "amend" | "deliver" | "review" | "arc" | "abandon" | "audit";
11
- }>;
12
- type InvocationEdge = Readonly<{
13
- environment: NodeJS.ProcessEnv;
14
- readStdin: () => Promise<string>;
15
- signal?: AbortSignal;
16
- progress?: (events: AsyncIterable<ExecutionEvent>) => Promise<void>;
17
- }>;
18
- export type ContractMutationInput = Readonly<{
19
- parsed: ContractMutation;
20
- repo: Repo;
21
- edge: InvocationEdge;
22
- scope: string;
23
- configuration?: Settings;
24
- hooks?: WorktreeHooks;
25
- establishWorld: () => Promise<WorldRoot>;
26
- execution: ExecutionContext;
27
- }>;
28
- export declare function admitMarkdownBindSyntax(input: Readonly<{
29
- markdown: string;
30
- processCwd?: string;
31
- cwd?: string;
32
- }>): Promise<void>;
33
- export declare function invokeContractMutation(input: ContractMutationInput): Promise<InvocationResult>;
34
- export {};
@@ -1,259 +0,0 @@
1
- import { resolveActor } from "../actor.js";
2
- import { CliUsageError } from "../usage.js";
3
- async function consumeExecution(execution, edge) {
4
- const observation = edge.progress === undefined ? undefined : Promise.resolve().then(() => edge.progress(execution.progress));
5
- void observation?.catch(() => undefined);
6
- try {
7
- return await execution.result;
8
- }
9
- finally {
10
- await observation?.catch(() => undefined);
11
- }
12
- }
13
- function actorFromEdge(actor, environment) {
14
- try {
15
- return resolveActor({ env: environment, ...(actor === undefined ? {} : { actor }) });
16
- }
17
- catch (error) {
18
- if (error instanceof Error && "executionReceipt" in error)
19
- throw error;
20
- throw new CliUsageError(error instanceof Error ? error.message : String(error));
21
- }
22
- }
23
- function consumeSettings(run, ErrorType) {
24
- try {
25
- return run();
26
- }
27
- catch (error) {
28
- if (error instanceof Error && "executionReceipt" in error)
29
- throw error;
30
- if (error instanceof ErrorType)
31
- throw new CliUsageError(error.message);
32
- throw error;
33
- }
34
- }
35
- async function selectedGates(value, names) {
36
- const { gatesFrom, SettingsError } = await import("../../library/configuration.js");
37
- return consumeSettings(() => gatesFrom({ settings: value, ...(names === undefined ? {} : { names }) }), SettingsError);
38
- }
39
- async function selectedGitPolicy(value) {
40
- const { requireBranchesToBeUpToDateFrom, SettingsError } = await import("../../library/configuration.js");
41
- return consumeSettings(() => requireBranchesToBeUpToDateFrom({ settings: value }), SettingsError);
42
- }
43
- async function selectContract(repo, selector, scope, library) {
44
- const { contractFromInput, resolveContextualContract } = await import("../selectors.js");
45
- const id = selector !== undefined && !selector.startsWith("@")
46
- ? contractFromInput(repo, selector).id
47
- : resolveContextualContract(await (await import("../../library/contract.js")).listCompleteContractBoard(repo), selector, scope);
48
- return { id, contract: library.select({ repo, id }) };
49
- }
50
- function draftWarning(error) {
51
- return { warning: `bind draft could not be preserved: ${error instanceof Error ? error.message : String(error)}` };
52
- }
53
- async function bindDraftReceipt(establishWorld, markdown) {
54
- const { preserveBindDraft } = await import("../draft.js");
55
- try {
56
- return preserveBindDraft(await establishWorld(), markdown);
57
- }
58
- catch (error) {
59
- if (error instanceof Error && "executionReceipt" in error)
60
- throw error;
61
- return draftWarning(error);
62
- }
63
- }
64
- async function bindDraftReceiptAtCwd(input, markdown) {
65
- const { preserveBindDraft } = await import("../draft.js");
66
- try {
67
- const { resolveInvocationCwd } = await import("../coordinates.js");
68
- return await preserveBindDraft(await resolveInvocationCwd(input), markdown);
69
- }
70
- catch (error) {
71
- if (error instanceof Error && "executionReceipt" in error)
72
- throw error;
73
- return draftWarning(error);
74
- }
75
- }
76
- export async function admitMarkdownBindSyntax(input) {
77
- try {
78
- const { parseMarkdownBindDocument } = await import("../../library/contract.js");
79
- parseMarkdownBindDocument(input.markdown);
80
- }
81
- catch (error) {
82
- if (error instanceof Error && "executionReceipt" in error)
83
- throw error;
84
- if (!(error instanceof TypeError))
85
- throw error;
86
- const { BindDraftError } = await import("../draft.js");
87
- throw new BindDraftError(error, await bindDraftReceiptAtCwd(input, input.markdown));
88
- }
89
- }
90
- async function invokeBind(input) {
91
- const { parsed, repo, edge, configuration, hooks, establishWorld } = input;
92
- if (parsed.command !== "bind")
93
- throw new Error("bind invocation requires bind syntax");
94
- const actor = actorFromEdge(parsed.actor, edge.environment);
95
- const { bindFromCommand } = await import("./bind.js");
96
- const { acceptedBind, resultFromMutationCall } = await import("../accepted.js");
97
- if (parsed.forkOf !== undefined) {
98
- return resultFromMutationCall("bind", () => bindFromCommand({
99
- command: parsed,
100
- repo,
101
- ...(actor === undefined ? {} : { actor }),
102
- ...(hooks === undefined ? {} : { hooks }),
103
- }), (accepted) => {
104
- const bound = accepted.facts.find((fact) => fact.kind === "bind");
105
- if (bound === undefined || bound.kind !== "bind")
106
- throw new Error("accepted bind is missing its bind fact");
107
- return acceptedBind(accepted, bound.data.coordinates);
108
- });
109
- }
110
- if (configuration === undefined)
111
- throw new Error("bind invocation requires Settings");
112
- const markdown = await edge.readStdin();
113
- const gates = await selectedGates(configuration, parsed.gates);
114
- try {
115
- const result = await resultFromMutationCall("bind", () => bindFromCommand({
116
- command: parsed,
117
- repo,
118
- markdown,
119
- gates,
120
- ...(actor === undefined ? {} : { actor }),
121
- ...(hooks === undefined ? {} : { hooks }),
122
- }), (accepted) => {
123
- const bound = accepted.facts.find((fact) => fact.kind === "bind");
124
- if (bound === undefined || bound.kind !== "bind")
125
- throw new Error("accepted bind is missing its bind fact");
126
- return acceptedBind(accepted, bound.data.coordinates);
127
- });
128
- if (result.kind !== "refused")
129
- return result;
130
- return { ...result, draft: await bindDraftReceipt(establishWorld, markdown) };
131
- }
132
- catch (error) {
133
- if (error instanceof Error && "executionReceipt" in error)
134
- throw error;
135
- if (!(error instanceof TypeError))
136
- throw error;
137
- const { BindDraftError } = await import("../draft.js");
138
- throw new BindDraftError(error, await bindDraftReceipt(establishWorld, markdown));
139
- }
140
- }
141
- function deliverRefusal(refusal) {
142
- if (typeof refusal !== "object" || refusal === null || !("kind" in refusal) || refusal.kind !== "dirty-workspace") {
143
- return refusal;
144
- }
145
- const submodules = "submodules" in refusal && Array.isArray(refusal.submodules) ? refusal.submodules : [];
146
- return { ...refusal, option: { flag: "--include-dirty", available: submodules.length === 0 } };
147
- }
148
- async function existingSeat(input, parsed, library) {
149
- const { repo, edge, scope, hooks } = input;
150
- const { id, contract } = await selectContract(repo, parsed.contract, scope, library);
151
- const actor = "actor" in parsed ? actorFromEdge(parsed.actor, edge.environment) : undefined;
152
- return { contract, id, ...(actor === undefined ? {} : { actor }), ...(hooks === undefined ? {} : { hooks }) };
153
- }
154
- async function invokeDeliver(parsed, seat, edge) {
155
- const { acceptedDeliver } = await import("../accepted.js");
156
- try {
157
- const delivered = await consumeExecution(seat.contract.startDelivery({
158
- ...(parsed.message === undefined ? {} : { message: parsed.message }),
159
- includeDirty: parsed.includeDirty,
160
- materializeConflict: parsed.materializeConflict,
161
- overwrite: parsed.overwrite,
162
- ...(edge.signal === undefined ? {} : { signal: edge.signal }),
163
- }), edge);
164
- if (!("facts" in delivered))
165
- return delivered;
166
- return acceptedDeliver(delivered, seat.id);
167
- }
168
- catch (error) {
169
- if (error instanceof Error && "executionReceipt" in error)
170
- throw error;
171
- const { KeiyakuRefused, KeiyakuRetry } = await import("../../library/keiyaku.js");
172
- if (error instanceof KeiyakuRefused) {
173
- return { kind: "refused", verb: "deliver", contract: seat.id, refusal: deliverRefusal(error.refusal) };
174
- }
175
- if (error instanceof KeiyakuRetry)
176
- return { kind: "retry", verb: "deliver", contract: seat.id, detail: error.reason };
177
- throw error;
178
- }
179
- }
180
- async function invokeReview(parsed, seat, edge) {
181
- const summary = parsed.summaryFromStdin === true ? await edge.readStdin() : parsed.summary;
182
- const { acceptedReview, resultFromMutationCall } = await import("../accepted.js");
183
- const input = {
184
- verdict: parsed.verdict,
185
- ...(summary === undefined ? {} : { summary }),
186
- ...(edge.signal === undefined ? {} : { signal: edge.signal }),
187
- };
188
- return resultFromMutationCall("review", () => consumeExecution(seat.contract.startReview(input), edge), (result) => acceptedReview(result, seat.id), { coordinate: seat.id });
189
- }
190
- async function contractLibrary(input, parsed) {
191
- const { configuration, edge, hooks } = input;
192
- const { Keiyaku } = await import("../../library/keiyaku.js");
193
- if (input.execution.channel.kind !== "local" || !["audit", "deliver", "review"].includes(parsed.command)) {
194
- return Keiyaku.with({ execution: input.execution });
195
- }
196
- const requireBranchesToBeUpToDate = parsed.command !== "review" && configuration !== undefined ? await selectedGitPolicy(configuration) : false;
197
- const actor = actorFromEdge(undefined, edge.environment);
198
- return Keiyaku.with({
199
- execution: input.execution,
200
- ...(actor === undefined ? {} : { actor }),
201
- ...(hooks === undefined ? {} : { hooks }),
202
- requireBranchesToBeUpToDate,
203
- });
204
- }
205
- export async function invokeContractMutation(input) {
206
- const { parsed, repo, edge, configuration, hooks } = input;
207
- if (parsed.command === "bind")
208
- return invokeBind(input);
209
- const seat = await existingSeat(input, parsed, await contractLibrary(input, parsed));
210
- const { id, contract, actor } = seat;
211
- switch (parsed.command) {
212
- case "amend": {
213
- if (configuration === undefined)
214
- throw new Error("amend invocation requires Settings");
215
- const markdown = parsed.stdin === true ? await edge.readStdin() : undefined;
216
- const gates = parsed.gates === undefined ? undefined : await selectedGates(configuration, parsed.gates);
217
- const { amendFromCommand } = await import("./amend.js");
218
- const { acceptedAmend, resultFromMutationCall } = await import("../accepted.js");
219
- return resultFromMutationCall("amend", () => amendFromCommand({
220
- command: parsed,
221
- repo,
222
- contract,
223
- ...(markdown === undefined ? {} : { markdown }),
224
- gates,
225
- ...(actor === undefined ? {} : { actor }),
226
- ...(hooks === undefined ? {} : { hooks }),
227
- }), (result) => acceptedAmend(result, id), { coordinate: id });
228
- }
229
- case "deliver":
230
- return invokeDeliver(parsed, seat, edge);
231
- case "review":
232
- return invokeReview(parsed, seat, edge);
233
- case "arc": {
234
- const markdown = await edge.readStdin();
235
- const { acceptedArc, resultFromMutationCall } = await import("../accepted.js");
236
- return resultFromMutationCall("arc", () => contract.arc({
237
- markdown,
238
- ...(actor === undefined ? {} : { actor }),
239
- ...(hooks === undefined ? {} : { hooks }),
240
- }), (result) => acceptedArc(result, id), { coordinate: id });
241
- }
242
- case "abandon": {
243
- const { acceptedAbandon, resultFromMutationCall } = await import("../accepted.js");
244
- return resultFromMutationCall("abandon", () => contract.abandon({
245
- ...(actor === undefined ? {} : { actor }),
246
- ...(parsed.note === undefined ? {} : { note: parsed.note }),
247
- ...(hooks === undefined ? {} : { hooks }),
248
- }), (result) => acceptedAbandon(result, id), { coordinate: id });
249
- }
250
- case "audit": {
251
- const { acceptedAudit, resultFromMutationCall } = await import("../accepted.js");
252
- return resultFromMutationCall("audit", () => consumeExecution(contract.startAudit({
253
- includeDirty: parsed.includeDirty,
254
- showDiff: parsed.showDiff,
255
- ...(edge.signal === undefined ? {} : { signal: edge.signal }),
256
- }), edge), (result) => acceptedAudit(result, id), { coordinate: id });
257
- }
258
- }
259
- }
@@ -1,10 +0,0 @@
1
- import { type NukeResult } from "../../index.js";
2
- import type { WorldRoot } from "../../world.js";
3
- import { type ParsedCommand } from "../parse.js";
4
- import type { InvocationResult } from "../result.js";
5
- export declare function invokeNuke(command: Extract<ParsedCommand, {
6
- command: "nuke";
7
- }>, world: WorldRoot | null): Promise<Readonly<{
8
- kind: "nuke";
9
- result: NukeResult;
10
- }> | InvocationResult>;