@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,14 +1,13 @@
1
- import type { ActivityRow, SnapshotRow } from "../../akuma/akuma.js";
1
+ import type { ActivityRow, SnapshotRow } from "../../akuma/projection.js";
2
2
  import type { AkumaObservation } from "../../index.js";
3
- type FleetTimelineRow = Extract<AkumaObservation["status"]["timeline"]["entries"][number], {
3
+ type StatusTimelineRow = Extract<AkumaObservation["status"]["timeline"]["entries"][number], {
4
4
  kind: "row";
5
5
  }>["row"];
6
- type ToolRow = Extract<ActivityRow | SnapshotRow | FleetTimelineRow, {
6
+ type ToolRow = Extract<ActivityRow | SnapshotRow | StatusTimelineRow, {
7
7
  kind: "tool";
8
8
  }>;
9
9
  /** The bounded body of a generic tool row, including its terminal diagnostic. */
10
10
  export declare function toolContent(row: ToolRow, columns: number): string;
11
- export declare function toolLabel(row: ToolRow): string;
12
11
  /** The trailing failure, duration, or message clause one settled tool row carries, otherwise the empty string. */
13
12
  export declare function toolDiagnostic(row: ToolRow): string;
14
13
  export type ToolRepr = Readonly<{
@@ -23,6 +22,11 @@ export type ToolRepr = Readonly<{
23
22
  diagnostic?: string;
24
23
  }>;
25
24
  }>;
25
+ /** The one diffstat renderer: unknown stays unknown, known renders compact additions and removals. */
26
+ export declare function renderDiffstat(diffstat: Readonly<{
27
+ added: number;
28
+ removed: number;
29
+ }> | undefined): string;
26
30
  /** Pure provider-neutral tool presentation; it performs no activity selection. */
27
31
  export declare function toolRepr(row: ToolRow): ToolRepr;
28
32
  export {};
@@ -1,5 +1,5 @@
1
- import { displayColumns, truncateDisplayText } from "./terminal.js";
2
1
  import { normalizeToolCommand } from "./akuma-tool-command.js";
2
+ import { displayColumns, truncateDisplayText } from "./terminal.js";
3
3
  /** The bounded body of a generic tool row, including its terminal diagnostic. */
4
4
  export function toolContent(row, columns) {
5
5
  const input = row.call.kind === "other" ? row.call.input : undefined;
@@ -24,9 +24,6 @@ export function toolContent(row, columns) {
24
24
  }
25
25
  return `${truncateDisplayText(text, width)}${diagnostic}`;
26
26
  }
27
- export function toolLabel(row) {
28
- return toolCore(row).label;
29
- }
30
27
  /** The trailing failure, duration, or message clause one settled tool row carries, otherwise the empty string. */
31
28
  export function toolDiagnostic(row) {
32
29
  const suffix = result(row);
@@ -156,6 +153,10 @@ function commonOtherText(row) {
156
153
  }
157
154
  return undefined;
158
155
  }
156
+ /** The one diffstat renderer: unknown stays unknown, known renders compact additions and removals. */
157
+ export function renderDiffstat(diffstat) {
158
+ return diffstat === undefined ? "~" : `+${diffstat.added} -${diffstat.removed}`;
159
+ }
159
160
  function fileChange(call, state) {
160
161
  const first = call.changes[0];
161
162
  if (first === undefined)
@@ -174,7 +175,7 @@ function fileChange(call, state) {
174
175
  removed: sum.removed + change.diffstat.removed,
175
176
  }), { added: 0, removed: 0 })
176
177
  : undefined;
177
- const detail = `${call.changes.length === 1 ? "" : " ..."} — ${totals === undefined ? "+? -?" : `+${totals.added} -${totals.removed}`}`;
178
+ const detail = `${call.changes.length === 1 ? "" : " ..."} — ${renderDiffstat(totals)}`;
178
179
  return { label, text: `${before}${path}${detail}`, pathPreview: { before, path, detail } };
179
180
  }
180
181
  /** One provider-neutral core owns every tool-kind label and non-generic body. */
@@ -1,25 +1,45 @@
1
- import type { CallWaitHead } from "../../index.js";
2
- import type { AkumaInvocationResult } from "../commands/akuma-invoke.js";
3
- import type { ParsedCommand } from "../parse.js";
4
- import { type ObservedCallHead } from "./akuma-activity.js";
5
- import type { AkumaTellWaitResult } from "../../akuma/fleet-observation.js";
6
- import type { AkuId } from "../../akuma/identity.js";
7
1
  import type { LiveStatusObservation } from "../../akuma/akuma-observe.js";
8
- import type { TellResult } from "../../akuma/akuma.js";
2
+ import type { TellResult } from "../../akuma/body.js";
3
+ import type { AkuId } from "../../akuma/identity.js";
4
+ import type { AkumaAskResult, AkumaKillResult, AkumaObservation, AkumaTellResult, AkumaWaitResult } from "../../akuma/selection-observation.js";
5
+ import type { CallWaitHead, ForkResult } from "../../index.js";
6
+ import type { CallResult } from "../../library/akuma-creation.js";
7
+ import type { AkumaHistoryResult } from "../../library/selection.js";
8
+ import { type ObservedCallHead } from "./akuma-activity.js";
9
9
  import { type TextRenderContext } from "./terminal.js";
10
- export type TellWaitProgress = Readonly<{
10
+ export type AskProgress = Readonly<{
11
11
  admitted: (tell: TellResult, id: AkuId) => readonly string[];
12
12
  observe: (observation: LiveStatusObservation) => readonly string[];
13
- conclude: (result: AkumaTellWaitResult) => readonly string[];
13
+ frame: () => readonly string[];
14
+ flush: () => readonly string[];
15
+ conclude: (result: AkumaAskResult) => readonly string[];
14
16
  }>;
15
- export declare function tellWaitProgressStream(akuma: AkuId | undefined, alias: string | undefined, context: TextRenderContext): TellWaitProgress;
16
- export declare function waitedTellProgress(result: AkumaTellWaitResult, alias: string | undefined, context: TextRenderContext): string;
17
- export declare function akumaRawAnswer(result: AkumaInvocationResult): string | undefined;
17
+ export declare function askProgressStream(akuma: AkuId | undefined, alias: string | undefined, context: TextRenderContext): AskProgress;
18
+ export declare function waitedTellProgress(result: AkumaAskResult, alias: string | undefined, context: TextRenderContext): string;
18
19
  /** The shared identity frame for one admitted call input. */
19
20
  export declare function callObservationHead(input: Readonly<{
20
21
  akuma: string;
21
22
  }> & CallWaitHead): ObservedCallHead;
22
- export declare function renderAkumaText(command: ParsedCommand, result: AkumaInvocationResult, context?: TextRenderContext): string;
23
- export declare function akumaExitCode(result: AkumaInvocationResult): number;
24
- export declare function akumaJsonValue(result: AkumaInvocationResult): unknown;
25
- export declare function renderAkumaJson(result: AkumaInvocationResult): string;
23
+ export declare function renderCallText(result: CallResult, streamed: boolean, context: TextRenderContext): string;
24
+ export declare function renderWaitText(result: AkumaWaitResult, presentation: Readonly<{
25
+ alias?: string;
26
+ startedAt?: number;
27
+ selection?: readonly import("./akuma-activity.js").WaitSelectedIdentity[];
28
+ }>, context?: TextRenderContext): string;
29
+ export declare function renderStatusText(status: AkumaObservation, alias: string | undefined, context?: TextRenderContext): string;
30
+ export declare function renderTellText(result: AkumaTellResult, alias: string | undefined, context?: TextRenderContext, options?: Readonly<{
31
+ identity?: boolean;
32
+ }>): string;
33
+ export declare function renderHistoryText(result: AkumaHistoryResult, presentation: Readonly<{
34
+ alias?: string;
35
+ id?: string;
36
+ last?: boolean;
37
+ }>, context?: TextRenderContext): string;
38
+ export declare function renderForkText(receipt: ForkResult): string;
39
+ export declare function renderKillText(result: AkumaKillResult, alias: string | undefined, context: TextRenderContext): string;
40
+ export declare function callExitCode(result: CallResult): number;
41
+ export declare function killExitCode(result: AkumaKillResult): number;
42
+ export declare function tellExitCode(result: AkumaTellResult): number;
43
+ export declare function askExitCode(result: AkumaAskResult): number;
44
+ export declare function forkExitCode(receipt: ForkResult): number;
45
+ export declare function historyExitCode(result: AkumaHistoryResult, id: string | undefined): number;
@@ -1,6 +1,6 @@
1
- import { DEFAULT_CONTEXT, akumaRawAnswer as akumaActivityRawAnswer, associatedIdentity, historyText, inputWaitStream, killResultText, mutationObservationStageText, snapshotHeading, snapshotText, tellText, waitText, } from "./akuma-activity.js";
1
+ import { DEFAULT_CONTEXT, associatedIdentity, historyText, inputWaitStream, killResultText, snapshotHeading, snapshotText, tellText, waitText, } from "./akuma-activity.js";
2
2
  import { safeText } from "./terminal.js";
3
- export function tellWaitProgressStream(akuma, alias, context) {
3
+ export function askProgressStream(akuma, alias, context) {
4
4
  let target = akuma;
5
5
  const stream = inputWaitStream(context, () => {
6
6
  if (target === undefined)
@@ -13,19 +13,12 @@ export function tellWaitProgressStream(akuma, alias, context) {
13
13
  return stream.admitted({
14
14
  at: tell.row.at,
15
15
  sequence: tell.row.sequence,
16
- rows: [
17
- tellText({
18
- kind: "akuma",
19
- action: "tell",
20
- mode: "ordinary",
21
- result: { akuma: target, tell },
22
- body: "",
23
- ...(alias === undefined ? {} : { alias }),
24
- }, context, { identity: false }),
25
- ],
16
+ rows: [tellText({ akuma: target, tell }, alias, context, { identity: false })],
26
17
  });
27
18
  },
28
19
  observe: (observation) => stream.observe(observation),
20
+ frame: () => stream.frame(),
21
+ flush: () => stream.flush(),
29
22
  conclude: (result) => [
30
23
  stream.conclude({
31
24
  kind: "observed",
@@ -36,12 +29,9 @@ export function tellWaitProgressStream(akuma, alias, context) {
36
29
  };
37
30
  }
38
31
  export function waitedTellProgress(result, alias, context) {
39
- const stream = tellWaitProgressStream(result.akuma, alias, context);
32
+ const stream = askProgressStream(result.akuma, alias, context);
40
33
  return [...stream.admitted(result.tell, result.akuma), ...stream.conclude(result)].join("\n");
41
34
  }
42
- export function akumaRawAnswer(result) {
43
- return akumaActivityRawAnswer(result);
44
- }
45
35
  function dispatchLines(stage) {
46
36
  if (stage.kind === "none")
47
37
  return [];
@@ -69,30 +59,33 @@ export function callObservationHead(input) {
69
59
  facts,
70
60
  };
71
61
  }
72
- function callText(result, context) {
73
- if (result.streamed === true)
62
+ export function renderCallText(result, streamed, context) {
63
+ if (streamed)
74
64
  return "";
75
65
  const head = callObservationHead({
76
- akuma: result.result.akuma,
77
- dispatch: result.result.dispatch,
78
- alias: result.result.alias,
66
+ akuma: result.akuma,
67
+ dispatch: result.dispatch,
68
+ alias: result.alias,
79
69
  });
80
- if (result.result.observation.kind === "detached") {
70
+ if (result.observation.kind === "detached" || result.observation.kind === "born") {
71
+ const branches = [
72
+ ...(head.contract.kind === "associated" ? [safeText(head.contract.contractId)] : []),
73
+ safeText(result.execution.cwd),
74
+ ];
81
75
  return [
82
- associatedIdentity(result.result.akuma, head.alias),
83
- ...(head.contract.kind === "associated" ? [` -> ${safeText(head.contract.contractId)}`] : []),
84
- ` cwd ${safeText(result.result.execution.cwd)}`,
76
+ associatedIdentity(result.akuma, head.alias),
77
+ ...branches.map((fact, index) => `${index === branches.length - 1 ? "└─" : "├─"} ${fact}`),
85
78
  ...head.facts,
86
79
  ].join("\n");
87
80
  }
88
- if (result.result.observation.kind === "failed") {
81
+ if (result.observation.kind === "failed") {
89
82
  return [
90
83
  ...snapshotHeading(head.id, head.alias, head.contract),
91
84
  ...head.facts,
92
- `! error ${safeText(result.result.observation.failure.diagnostic)}`,
85
+ `! error ${safeText(result.observation.failure.diagnostic)}`,
93
86
  ].join("\n");
94
87
  }
95
- const inputObservation = result.result.observation;
88
+ const inputObservation = result.observation;
96
89
  const stream = inputWaitStream(context, () => head, { cursor: "empty" });
97
90
  stream.admitted({ at: inputObservation.tell.row.at, rows: [] });
98
91
  return stream.conclude({
@@ -101,119 +94,59 @@ function callText(result, context) {
101
94
  ...(inputObservation.completedAt === undefined ? {} : { completedAt: inputObservation.completedAt }),
102
95
  });
103
96
  }
104
- export function renderAkumaText(command, result, context = DEFAULT_CONTEXT) {
105
- const answer = akumaRawAnswer(result);
106
- if (answer !== undefined)
107
- return answer;
108
- if (result.action === "tell" && result.mode === "schema")
109
- return JSON.stringify(result.result);
110
- switch (result.action) {
111
- case "call":
112
- return callText(result, context);
113
- case "status":
114
- return snapshotText(result.status, context, {
115
- ...(result.alias === undefined ? {} : { alias: result.alias }),
116
- });
117
- case "wait":
118
- return waitText(result, context);
119
- case "tell":
120
- if (result.mode === "wait")
121
- return "";
122
- return result.mode === "ordinary"
123
- ? tellText(result, context)
124
- : mutationObservationStageText(result.result.id, result.result.observation, context, {
125
- ...(result.alias === undefined ? {} : { alias: result.alias }),
126
- showLife: false,
127
- });
128
- case "history":
129
- return historyText(command, result, context);
130
- case "fork": {
131
- if (result.receipt.kind !== "forked")
132
- return result.receipt.kind === "unknown-history"
133
- ? `${result.receipt.at} has no matching retained answered turn`
134
- : result.receipt.kind === "provider-cannot-fork"
135
- ? `${result.receipt.provider} cannot fork`
136
- : result.receipt.diagnostic;
137
- const contractId = result.receipt.dispatch.kind === "dispatched" ? result.receipt.dispatch.dispatch.contractId : undefined;
138
- return associatedIdentity(result.receipt.child, undefined, contractId === undefined ? { kind: "none" } : { kind: "associated", contractId });
139
- }
140
- case "kill":
141
- return result.result.results
142
- .map((member) => killResultText(member.id, member.evidence, result.alias))
143
- .join("\n\n");
97
+ export function renderWaitText(result, presentation, context = DEFAULT_CONTEXT) {
98
+ return waitText(result, presentation, context);
99
+ }
100
+ export function renderStatusText(status, alias, context = DEFAULT_CONTEXT) {
101
+ return snapshotText(status, context, ...(alias === undefined ? [{}] : [{ alias }]));
102
+ }
103
+ export function renderTellText(result, alias, context = DEFAULT_CONTEXT, options = {}) {
104
+ return tellText(result, alias, context, options);
105
+ }
106
+ export function renderHistoryText(result, presentation, context = DEFAULT_CONTEXT) {
107
+ return historyText(result, presentation, context);
108
+ }
109
+ export function renderForkText(receipt) {
110
+ if (receipt.kind !== "forked") {
111
+ if (receipt.kind === "unknown-history")
112
+ return `${receipt.at} has no matching retained answered turn`;
113
+ if (receipt.kind === "provider-cannot-fork")
114
+ return `${receipt.provider} cannot fork`;
115
+ return receipt.diagnostic;
144
116
  }
117
+ const contractId = receipt.dispatch.kind === "dispatched" ? receipt.dispatch.dispatch.contractId : undefined;
118
+ return associatedIdentity(receipt.child, undefined, contractId === undefined ? { kind: "none" } : { kind: "associated", contractId });
119
+ }
120
+ export function renderKillText(result, alias, context) {
121
+ void context;
122
+ return result.results.map((member) => killResultText(member.id, member.evidence, alias)).join("\n\n");
145
123
  }
146
- function callExitCode(result) {
147
- if (result.result.dispatch.kind === "failed" ||
148
- result.result.alias.kind === "failed" ||
149
- result.result.observation.kind === "failed")
124
+ export function callExitCode(result) {
125
+ if (result.dispatch.kind === "failed" || result.alias.kind === "failed" || result.observation.kind === "failed")
150
126
  return 2;
151
- if (result.result.observation.kind !== "observed")
127
+ if (result.observation.kind !== "observed")
152
128
  return 0;
153
- return result.result.observation.observation.reason === "failed" ||
154
- result.result.observation.observation.reason === "invalid-output"
129
+ return result.observation.observation.reason === "failed" ||
130
+ result.observation.observation.reason === "invalid-output"
155
131
  ? 2
156
132
  : 0;
157
133
  }
158
- function killExitCode(result) {
159
- return result.result.results.some((member) => member.evidence === "unavailable" || member.evidence === "hung" || member.evidence === "untidy")
134
+ export function killExitCode(result) {
135
+ return result.results.some((member) => member.evidence === "unavailable" || member.evidence === "hung" || member.evidence === "untidy")
160
136
  ? 1
161
137
  : 0;
162
138
  }
163
- function tellExitCode(result) {
164
- if (result.mode === "schema")
165
- return 0;
166
- if (result.mode === "wait")
167
- return result.result.observation.reason === "failed" || result.result.observation.reason === "invalid-output"
168
- ? 2
169
- : 0;
170
- return result.mode === "ordinary"
171
- ? result.result.tell.wake.kind === "failed"
172
- ? 2
173
- : 0
174
- : result.result.receipt.kind === "interrupted"
175
- ? 0
176
- : 1;
177
- }
178
- function forkExitCode(result) {
179
- return result.receipt.kind === "forked" ? 0 : result.receipt.kind === "upstream-forked" ? 2 : 1;
180
- }
181
- function historyExitCode(result) {
182
- if (result.mode !== "exact")
183
- return 0;
184
- return result.historyResult.kind === "exact" ? 0 : 1;
185
- }
186
- export function akumaExitCode(result) {
187
- switch (result.action) {
188
- case "call":
189
- return callExitCode(result);
190
- case "kill":
191
- return killExitCode(result);
192
- case "tell":
193
- return tellExitCode(result);
194
- case "fork":
195
- return forkExitCode(result);
196
- case "history":
197
- return historyExitCode(result);
198
- default:
199
- return 0;
200
- }
139
+ export function tellExitCode(result) {
140
+ return result.tell.wake.kind === "failed" ? 2 : 0;
201
141
  }
202
- export function akumaJsonValue(result) {
203
- if (result.action === "call")
204
- return result.result;
205
- if (result.action === "fork")
206
- return result.receipt;
207
- if (result.action === "status")
208
- return result.status;
209
- if (result.action === "wait")
210
- return result.result;
211
- if (result.action === "tell")
212
- return result.mode === "schema" ? result.result : result.result;
213
- if (result.action === "kill")
214
- return result.result;
215
- return result.historyResult;
216
- }
217
- export function renderAkumaJson(result) {
218
- return JSON.stringify(akumaJsonValue(result));
142
+ export function askExitCode(result) {
143
+ return result.observation.reason === "failed" || result.observation.reason === "invalid-output" ? 2 : 0;
144
+ }
145
+ export function forkExitCode(receipt) {
146
+ return receipt.kind === "forked" ? 0 : receipt.kind === "upstream-forked" ? 2 : 1;
147
+ }
148
+ export function historyExitCode(result, id) {
149
+ if (id === undefined)
150
+ return 0;
151
+ return result.kind === "exact" ? 0 : 1;
219
152
  }
@@ -1,3 +1,7 @@
1
- import type { AcceptedAuditResult } from "../result.js";
1
+ import type { AuditOutcome } from "../../index.js";
2
2
  import { type TextRenderContext } from "./terminal.js";
3
- export declare function renderAcceptedAudit(result: AcceptedAuditResult, context?: TextRenderContext): string;
3
+ type AcceptedAudit = Extract<AuditOutcome, {
4
+ kind: "accepted";
5
+ }>;
6
+ export declare function renderAcceptedAudit(result: AcceptedAudit, context?: TextRenderContext): string;
7
+ export {};
@@ -1,11 +1,13 @@
1
- import { executionCleanupLines, executionStopLines, receiptPayload, receiptRow, stopLines, titleLines, } from "./receipt.js";
1
+ import { effectCleanup, effectExecutionStops } from "./effects.js";
2
+ import { executionCleanupLines, executionStopLines, receiptPayload, receiptRow, reuseLines, stopLines, titleLines, } from "./receipt.js";
2
3
  import { renderRefusalFacts } from "./refusal.js";
4
+ import { abbreviateGitIds, displayGitId } from "./contract-observation.js";
3
5
  import { DEFAULT_CLI_COLUMNS, gitShortStat, renderTextBlock, safeText } from "./terminal.js";
4
6
  const CHILD = " ";
5
7
  function workspaceEvidence(workspace) {
6
- return [`${CHILD}workspace ${workspace.kind}`, `${CHILD}worktree ${safeText(workspace.path)}`];
8
+ return [`${CHILD}worktree ${safeText(workspace.path)}`];
7
9
  }
8
- function candidateLines(report, columns, addressed) {
10
+ function candidateLines(report, columns, addressed, abbreviations) {
9
11
  const candidate = report.candidate;
10
12
  const lines = [];
11
13
  if (candidate.kind === "blocked") {
@@ -15,9 +17,10 @@ function candidateLines(report, columns, addressed) {
15
17
  }
16
18
  const identity = candidate.identity;
17
19
  receiptRow(lines, " ", "candidate", [{ text: "ready" }], columns);
18
- lines.push(`${CHILD}tender commit ${identity.tenderSnapshot}`);
19
- lines.push(`${CHILD}integration commit ${identity.integration.snapshot}`);
20
- lines.push(`${CHILD}content identity (not commit) ${identity.integration.changeId}`);
20
+ lines.push(`${CHILD}candidate ${displayGitId(identity.tenderSnapshot, abbreviations)}`);
21
+ lines.push(`${CHILD}integration result ${displayGitId(identity.integration.snapshot, abbreviations)}`);
22
+ if (!/^0{40}$/u.test(identity.integration.changeId))
23
+ lines.push(`${CHILD}content identity (not commit) ${displayGitId(identity.integration.changeId, abbreviations)}`);
21
24
  lines.push(...workspaceEvidence(candidate.workspace));
22
25
  lines.push(...renderTextBlock(gitShortStat(candidate.scope), CHILD, columns));
23
26
  if (candidate.scope.paths !== undefined) {
@@ -31,50 +34,76 @@ function candidateLines(report, columns, addressed) {
31
34
  }
32
35
  function verificationLines(verification, columns, addressed) {
33
36
  const lines = [];
37
+ if (verification.kind === "undeclared") {
38
+ receiptRow(lines, " ", "verification", [{ text: "none declared" }], columns);
39
+ return lines;
40
+ }
34
41
  if (verification.kind === "not-run") {
35
- receiptRow(lines, " ", "verification", [{ text: "not-run" }], columns);
42
+ receiptRow(lines, " ", "verification", [{ text: "not run" }], columns);
36
43
  return lines;
37
44
  }
38
45
  if (verification.kind === "stopped") {
39
46
  return stopLines(verification.stop, columns, addressed);
40
47
  }
41
- receiptRow(lines, verification.kind === "satisfied" ? " " : "!", "verification", [{ text: verification.kind }, { text: `${verification.passed} of ${verification.total}` }], columns);
48
+ if (verification.kind === "reused") {
49
+ receiptRow(lines, " ", "verification", [{ text: "reused" }, { text: verification.verdict }], columns);
50
+ lines.push(...reuseLines(verification, columns));
51
+ if (verification.summary !== undefined)
52
+ receiptPayload(lines, "summary", auditSummary(verification.summary));
53
+ return lines;
54
+ }
55
+ receiptRow(lines, verification.kind === "satisfied" ? "✓" : "!", "verification", [{ text: verification.kind }, { text: `${verification.passed} of ${verification.total}` }], columns);
42
56
  if (verification.summary !== undefined) {
43
- receiptPayload(lines, "summary", verification.summary);
57
+ receiptPayload(lines, "summary", auditSummary(verification.summary));
44
58
  }
45
59
  return lines;
46
60
  }
61
+ function auditSummary(summary) {
62
+ return summary.replace(/\[(\d+) (bash|zsh|pwsh) exit (-?\d+)( output-truncated)?\]/gu, (_, number, executor, exit, truncated) => `declaration ${number} · ${executor} exit ${exit}${truncated ?? ""}`);
63
+ }
47
64
  function admittedCandidateLines(report, columns) {
48
65
  const delivery = report.delivery;
49
66
  if (delivery === undefined)
50
67
  return [];
51
68
  const verification = delivery.verification;
69
+ if (verification.kind === "undeclared")
70
+ return [];
52
71
  const detail = verification.kind === "recorded" ? `${verification.kind} ${verification.verdict}` : verification.kind;
53
72
  const lines = [];
54
73
  receiptRow(lines, verification.kind === "unrecorded" ? "!" : " ", "admitted verification", [{ text: detail }], columns);
55
74
  return lines;
56
75
  }
57
- function targetLines(target, columns, addressed) {
76
+ function targetLines(report, columns, addressed, abbreviations) {
77
+ const target = report.target;
58
78
  const lines = [];
59
79
  if (target.kind === "not-observed") {
60
80
  receiptRow(lines, " ", "target", [{ text: "not-observed" }], columns);
61
81
  return lines;
62
82
  }
63
83
  if (target.kind === "placeable") {
64
- receiptRow(lines, " ", "target", [{ text: "placeable" }, { text: target.ref, opaque: true }, { text: target.head, opaque: true }], columns);
84
+ receiptRow(lines, " ", "target", [
85
+ { text: "placeable" },
86
+ {
87
+ text: `${target.ref.replace(/^refs\/heads\//u, "")} @ ${displayGitId(target.head, abbreviations)}${report.targetLag?.kind === "counted" && report.targetLag.behind > 0 ? ` · behind ${report.targetLag.behind}` : report.targetLag?.kind === "unknown" ? " · behind unknown" : ""}`,
88
+ opaque: true,
89
+ },
90
+ ], columns);
65
91
  return lines;
66
92
  }
67
93
  if (target.kind === "moved") {
68
94
  receiptRow(lines, "!", "target", [
69
95
  { text: "moved" },
70
96
  { text: target.ref, opaque: true },
71
- { text: `${target.expected} -> ${target.observed}`, opaque: true },
97
+ {
98
+ text: `${displayGitId(target.expected, abbreviations)} -> ${target.observed === null ? "absent" : displayGitId(target.observed, abbreviations)}`,
99
+ opaque: true,
100
+ },
72
101
  ], columns);
73
102
  return lines;
74
103
  }
75
104
  if (target.kind === "failed") {
76
105
  receiptRow(lines, "!", "target", [{ text: "failed" }], columns);
77
- receiptPayload(lines, "diagnostic", target.diagnostic);
106
+ receiptPayload(lines, "reason", target.diagnostic);
78
107
  return lines;
79
108
  }
80
109
  receiptRow(lines, "!", "target", [{ text: "refused" }], columns);
@@ -83,29 +112,31 @@ function targetLines(target, columns, addressed) {
83
112
  }
84
113
  function obligationLines(result, columns) {
85
114
  return [
86
- ...executionCleanupLines(result.cleanup ?? [], columns, result.contract),
87
- ...executionStopLines(result.executionStops ?? [], columns),
115
+ ...executionCleanupLines(effectCleanup(result.effects).filter((issue) => issue.kind !== "worktree-leak"), columns, result.contract),
116
+ ...executionStopLines(effectExecutionStops(result.effects), columns),
88
117
  ];
89
118
  }
90
- function recordLines(result, columns) {
91
- if (result.facts.length === 0)
92
- return [];
93
- const rows = [];
94
- for (const fact of result.facts) {
95
- receiptRow(rows, " ", "journal", [{ text: fact.entry, opaque: true }, { text: `· ${fact.kind}` }], columns);
96
- }
97
- return rows;
98
- }
99
119
  export function renderAcceptedAudit(result, context) {
100
- const report = result.report;
120
+ const report = result.value;
101
121
  const columns = context?.columns ?? DEFAULT_CLI_COLUMNS;
122
+ const ids = report.candidate.kind === "ready"
123
+ ? [
124
+ report.candidate.identity.tenderSnapshot,
125
+ report.candidate.identity.integration.snapshot,
126
+ report.candidate.identity.integration.changeId,
127
+ ]
128
+ : [];
129
+ if (report.target.kind === "placeable")
130
+ ids.push(report.target.head);
131
+ if (report.target.kind === "moved")
132
+ ids.push(report.target.expected, report.target.observed ?? "");
133
+ const abbreviations = abbreviateGitIds(ids);
102
134
  return [
103
135
  ...titleLines("✓", "audit", result.contract, columns),
104
- ...candidateLines(report, columns, result.contract),
136
+ ...candidateLines(report, columns, result.contract, abbreviations),
105
137
  ...admittedCandidateLines(report, columns),
106
138
  ...verificationLines(report.verification, columns, result.contract),
107
- ...targetLines(report.target, columns, result.contract),
139
+ ...targetLines(report, columns, result.contract, abbreviations),
108
140
  ...obligationLines(result, columns),
109
- ...recordLines(result, columns),
110
141
  ].join("\n");
111
142
  }
@@ -1,2 +1,11 @@
1
- import type { Catalog } from "../catalog.js";
2
- export declare function renderCatalogText(catalog: Catalog): string;
1
+ import type { AkumaList } from "../../akuma/akuma.js";
2
+ import type { ArchetypeCatalogRow } from "../../akuma/archetype.js";
3
+ import type { ContractList } from "../../library/contract-types.js";
4
+ import type { TaskPage, TaskRow } from "../../task/index.js";
5
+ export declare function renderAkumaCatalogue(list: AkumaList, archetype: string | null): string;
6
+ export declare function renderContractCatalogue(list: ContractList): string;
7
+ export declare function renderArchetypeCatalogue(list: Readonly<{
8
+ rows: readonly ArchetypeCatalogRow[];
9
+ hasMore: boolean;
10
+ }>): string;
11
+ export declare function renderTaskCatalogue(list: TaskPage<TaskRow>, namespace: readonly string[]): string;