@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,521 +0,0 @@
1
- import { resolve } from "node:path";
2
- import { resolveActor } from "./actor.js";
3
- import { isParsedAkumaCommand } from "./commands/akuma.js";
4
- import { invokeContractMutation } from "./commands/contract-invoke.js";
5
- import { assertExplicitRepoUse, CliUsageError, usageGuideForCommand, } from "./parse.js";
6
- import { isBlankInput } from "./usage.js";
7
- import { AKUMA_REQUESTS_ENV } from "../akuma/provider.js";
8
- import { canonicalBirthCwd } from "../akuma/call-input.js";
9
- import { bodyRequestExecution, executionChannel, localExecutionContext, } from "../akuma/requests.js";
10
- async function readStdin() {
11
- const chunks = [];
12
- for await (const chunk of process.stdin)
13
- chunks.push(Buffer.isBuffer(chunk) ? chunk : Buffer.from(chunk));
14
- return Buffer.concat(chunks).toString("utf8");
15
- }
16
- function selectedStdinDiagnostic(command) {
17
- switch (command.command) {
18
- case "bind":
19
- if (command.forkOf !== undefined)
20
- return undefined;
21
- return `${command.command} requires a nonblank stdin document`;
22
- case "arc":
23
- return `${command.command} requires a nonblank stdin document`;
24
- case "amend":
25
- return command.stdin === true ? "amend requires a nonblank stdin document" : undefined;
26
- case "review":
27
- return command.summaryFromStdin === true ? "review requires a nonblank summary" : undefined;
28
- case "call":
29
- case "tell":
30
- return command.prompt.kind === "stdin" ? `${command.command} requires a nonblank prompt` : undefined;
31
- case "task":
32
- switch (command.stdin) {
33
- case "document":
34
- return "task add requires a nonblank stdin document";
35
- case "compose":
36
- return "task compose requires a nonblank stdin document";
37
- case "body":
38
- return "task update --body requires a nonblank value";
39
- case "append":
40
- return "task update --append requires a nonblank value";
41
- case "note":
42
- return "task update --note requires a nonblank value";
43
- default:
44
- return undefined;
45
- }
46
- default:
47
- return undefined;
48
- }
49
- }
50
- async function withAcquiredStdin(command, runtime) {
51
- const diagnostic = selectedStdinDiagnostic(command);
52
- if (diagnostic === undefined)
53
- return runtime;
54
- const bytes = await (runtime.readStdin ?? readStdin)();
55
- if (isBlankInput(bytes))
56
- throw new CliUsageError(diagnostic);
57
- return { ...runtime, readStdin: async () => bytes };
58
- }
59
- async function settingsAt(root, home) {
60
- const { settings } = await import("../settings.js");
61
- return settings({ ...(root === undefined ? {} : { root }), ...(home === undefined ? {} : { home }) });
62
- }
63
- function executionForEnvironment(environment) {
64
- return environment[AKUMA_REQUESTS_ENV] === undefined
65
- ? localExecutionContext()
66
- : bodyRequestExecution({ directory: environment[AKUMA_REQUESTS_ENV] });
67
- }
68
- async function contractSettings(command, execution, world, home) {
69
- const forwarded = executionChannel(execution).kind === "body-request" &&
70
- (command.command === "audit" || command.command === "deliver" || command.command === "review");
71
- if (forwarded)
72
- return {};
73
- const configuration = await settingsAt(world ?? undefined, home);
74
- const { worktreeHooksFrom, SettingsError } = await import("../library/configuration.js");
75
- return { configuration, hooks: consumeSettings(() => worktreeHooksFrom({ settings: configuration }), SettingsError) };
76
- }
77
- function consumeSettings(run, ErrorType) {
78
- try {
79
- return run();
80
- }
81
- catch (error) {
82
- if (error instanceof Error && "executionReceipt" in error)
83
- throw error;
84
- if (error instanceof ErrorType)
85
- throw new CliUsageError(error.message);
86
- throw error;
87
- }
88
- }
89
- function actorFromEdge(actor, environment) {
90
- let resolved;
91
- try {
92
- resolved = resolveActor({ env: environment, ...(actor === undefined ? {} : { actor }) });
93
- }
94
- catch (error) {
95
- if (error instanceof Error && "executionReceipt" in error)
96
- throw error;
97
- throw new CliUsageError(error instanceof Error ? error.message : String(error));
98
- }
99
- return resolved;
100
- }
101
- function taskActor(command, runtime, environment) {
102
- return (runtime.actor ??
103
- actorFromEdge(typeof command.flags.actor === "string" ? command.flags.actor : undefined, environment));
104
- }
105
- function gitPathFromEdge(environment) {
106
- const value = environment.KEIYAKU_GIT_PATH;
107
- if (value === undefined)
108
- return undefined;
109
- if (value.trim().length === 0)
110
- throw new CliUsageError("KEIYAKU_GIT_PATH requires a nonblank value");
111
- return value;
112
- }
113
- async function selectContract(repo, selector, scope) {
114
- const { contractFromInput, resolveContextualContract } = await import("./selectors.js");
115
- if (selector !== undefined && !selector.startsWith("@"))
116
- return contractFromInput(repo, selector);
117
- const { listCompleteContractBoard } = await import("../library/contract.js");
118
- const id = resolveContextualContract(await listCompleteContractBoard(repo), selector, scope);
119
- return contractFromInput(repo, id);
120
- }
121
- async function invokeAkumaFromEdge(parsed, input) {
122
- try {
123
- const { executionCwd, repo, edge } = input;
124
- const path = await akumaWorldFor(parsed, input.located, input.candidate, input.establish);
125
- const home = parsed.command === "call" ? input.home : undefined;
126
- const configuration = parsed.command === "call" ? await settingsAt(path, home) : undefined;
127
- if (parsed.command === "call" && parsed.contract !== undefined && repo === undefined) {
128
- throw new Error("call with Contract requires a resolved Repo");
129
- }
130
- const { invokeAkuma } = await import("./commands/akuma-invoke.js");
131
- const contract = parsed.command === "call" && parsed.contract !== undefined
132
- ? (await import("./selectors.js")).contractFromInput(repo, parsed.contract, input.execution).contract
133
- : undefined;
134
- return await invokeAkuma(parsed, {
135
- path,
136
- ...(executionCwd === undefined ? {} : { executionCwd }),
137
- ...(home === undefined ? {} : { home }),
138
- ...(configuration === undefined ? {} : { settings: configuration }),
139
- ...(contract === undefined ? (repo === undefined ? {} : { repo }) : { contract }),
140
- environment: edge.environment,
141
- readStdin: edge.readStdin,
142
- execution: input.execution,
143
- ...(edge.signal === undefined ? {} : { signal: edge.signal }),
144
- });
145
- }
146
- catch (error) {
147
- if (error instanceof Error && "executionReceipt" in error)
148
- throw error;
149
- const { AkumaWorldScopeError } = await import("../library/address.js");
150
- if (error instanceof AkumaWorldScopeError)
151
- throw error;
152
- if (error instanceof TypeError)
153
- throw new CliUsageError(error.message);
154
- throw error;
155
- }
156
- }
157
- async function akumaWorldFor(parsed, located, candidate, establish) {
158
- const world = parsed.command === "call" ? (candidate ?? (await establish())) : located;
159
- if (world === null)
160
- throw new CliUsageError("no Keiyaku world contains the invocation cwd");
161
- return world;
162
- }
163
- async function invokeCatalog(parsed, world, repo, home) {
164
- try {
165
- if (parsed.query.kind === "contracts") {
166
- if (repo === undefined)
167
- throw new Error("Contract catalog requires a resolved Repo");
168
- const { Keiyaku } = await import("../library/keiyaku.js");
169
- return {
170
- kind: "catalog",
171
- catalog: {
172
- kind: "contracts",
173
- ...(await Keiyaku.with().list({
174
- repo,
175
- ...(parsed.query.limit === undefined ? {} : { limit: parsed.query.limit }),
176
- })),
177
- },
178
- };
179
- }
180
- if (parsed.query.kind === "archetypes") {
181
- const { listArchetypeDefinitions } = await import("../akuma/archetype.js");
182
- return {
183
- kind: "catalog",
184
- catalog: {
185
- kind: "archetypes",
186
- ...(await listArchetypeDefinitions({
187
- ...(world === null ? {} : { project: world }),
188
- ...(parsed.query.limit === undefined ? {} : { limit: parsed.query.limit }),
189
- ...(home === undefined ? {} : { home }),
190
- })),
191
- },
192
- };
193
- }
194
- if (world === null)
195
- throw new CliUsageError("no Keiyaku world contains the invocation cwd");
196
- if (parsed.query.kind === "tasks") {
197
- const { Tasks } = await import("../task/index.js");
198
- const listed = await Tasks.of(world).list({
199
- selection: "all",
200
- namespace: parsed.query.namespace ?? [],
201
- ...(parsed.query.limit === undefined ? {} : { limit: parsed.query.limit }),
202
- });
203
- if (listed.kind !== "accepted")
204
- throw new Error("Task list did not return an accepted observation");
205
- return {
206
- kind: "catalog",
207
- catalog: { kind: "tasks", root: world, ...listed.value },
208
- };
209
- }
210
- const { Akumas } = await import("../library/akumas.js");
211
- const listed = await Akumas.of(world).list({
212
- ...(parsed.query.archetype === undefined ? {} : { archetype: parsed.query.archetype }),
213
- ...(parsed.query.limit === undefined ? {} : { limit: parsed.query.limit }),
214
- });
215
- return {
216
- kind: "catalog",
217
- catalog: {
218
- kind: "akuma",
219
- root: world,
220
- archetype: parsed.query.archetype ?? null,
221
- ...listed,
222
- },
223
- };
224
- }
225
- catch (error) {
226
- if (error instanceof Error && "executionReceipt" in error)
227
- throw error;
228
- if (error instanceof TypeError)
229
- throw new CliUsageError(error.message);
230
- throw error;
231
- }
232
- }
233
- async function invokeStatus(parsed, world, repo) {
234
- const selectors = "selectors" in parsed ? parsed.selectors : undefined;
235
- if (selectors !== undefined) {
236
- const { invokeStatusSet } = await import("./commands/status-set.js");
237
- return await invokeStatusSet(selectors, world, repo);
238
- }
239
- if (parsed.akuma === true) {
240
- if (world === null)
241
- throw new CliUsageError("no Keiyaku world contains the invocation cwd");
242
- return (await import("./commands/akuma-invoke.js")).invokeAkumaStatus(world, parsed.contract, undefined, repo);
243
- }
244
- const { kanshi, observeKanshi, selectKanshi } = await import("../kanshi/index.js");
245
- if (parsed.contract === undefined) {
246
- const report = await kanshi({ world, ...(repo === undefined ? {} : { repo }) });
247
- return { kind: "status", report, selection: "world" };
248
- }
249
- if (parsed.contract.startsWith("@")) {
250
- try {
251
- const observation = await observeKanshi({ world, ...(repo === undefined ? {} : { repo }) });
252
- const { resolveNamedAddress } = await import("../library/address.js");
253
- const address = resolveNamedAddress({
254
- selector: parsed.contract,
255
- report: observation.report,
256
- aliases: observation.aliases,
257
- });
258
- if (address.kind === "akuma") {
259
- if (world === null)
260
- throw new CliUsageError("no Keiyaku world contains the invocation cwd");
261
- return (await import("./commands/akuma-invoke.js")).invokeAkumaStatus(world, address.id, parsed.contract, repo);
262
- }
263
- if (repo === undefined)
264
- throw new CliUsageError("cannot select a contract while the Contract world is absent");
265
- return {
266
- kind: "status",
267
- report: await kanshi({ world, repo, contract: address.id }),
268
- selection: "contract",
269
- };
270
- }
271
- catch (error) {
272
- if (error instanceof Error && "executionReceipt" in error)
273
- throw error;
274
- if (error instanceof TypeError)
275
- throw new CliUsageError(error.message);
276
- throw error;
277
- }
278
- }
279
- if (parsed.contract.startsWith("kei/")) {
280
- if (repo === undefined)
281
- throw new CliUsageError("cannot select a contract while the Contract world is absent");
282
- const { canonicalContractSelector } = await import("./selectors.js");
283
- const contract = canonicalContractSelector(parsed.contract);
284
- return {
285
- kind: "status",
286
- report: await kanshi({ world, repo, contract }),
287
- selection: "contract",
288
- };
289
- }
290
- const report = await kanshi({ world, ...(repo === undefined ? {} : { repo }) });
291
- const { resolveKanshiContract } = await import("./selectors.js");
292
- const contract = resolveKanshiContract(report, parsed.contract);
293
- return { kind: "status", report: selectKanshi({ report, contract }), selection: "contract" };
294
- }
295
- async function invokeRegion(parsed, world, repo) {
296
- const { kanshi, selectRegion } = await import("../kanshi/index.js");
297
- const read = async (region) => {
298
- try {
299
- return await kanshi({ world, repo, region });
300
- }
301
- catch (error) {
302
- if (error instanceof Error && "executionReceipt" in error)
303
- throw error;
304
- if (error instanceof TypeError)
305
- throw new CliUsageError(error.message);
306
- throw error;
307
- }
308
- };
309
- if (parsed.paths !== undefined) {
310
- const report = await read({ kind: "path", patterns: parsed.paths });
311
- return { kind: "region", region: report.region ?? { kind: "absent" } };
312
- }
313
- if (parsed.contract === undefined) {
314
- const report = await read({ kind: "declarations" });
315
- return { kind: "region", region: report.region ?? { kind: "absent" } };
316
- }
317
- const report = await read({ kind: "declarations" });
318
- const { resolveKanshiContract } = await import("./selectors.js");
319
- const contract = resolveKanshiContract(report, parsed.contract);
320
- if (report.contracts.kind !== "present" ||
321
- report.contracts.value.rows.every((row) => row.id !== contract || row.disposition !== "active")) {
322
- throw new CliUsageError(`unknown contract selector: ${parsed.contract}`);
323
- }
324
- if (report.region?.kind !== "present" || report.region.value.kind !== "declarations") {
325
- return { kind: "region", region: report.region ?? { kind: "absent" } };
326
- }
327
- return {
328
- kind: "region",
329
- region: {
330
- kind: "present",
331
- value: selectRegion({
332
- declarations: report.region.value.declarations,
333
- selection: { kind: "contract", contract },
334
- }),
335
- },
336
- };
337
- }
338
- async function invokeContractHistory(repo, contract) {
339
- if (repo === undefined)
340
- throw new Error("history kei/... requires a resolved Repo");
341
- const { contractFromInput } = await import("./selectors.js");
342
- const selected = contractFromInput(repo, contract);
343
- try {
344
- return { kind: "contract-history", history: await selected.contract.history() };
345
- }
346
- catch (error) {
347
- if (error instanceof Error && "executionReceipt" in error)
348
- throw error;
349
- if (error instanceof TypeError)
350
- throw new CliUsageError(error.message);
351
- const { KeiyakuRefused } = await import("../library/keiyaku.js");
352
- if (error instanceof KeiyakuRefused) {
353
- return { kind: "refused", verb: "history", contract: selected.id, refusal: error.refusal };
354
- }
355
- throw error;
356
- }
357
- }
358
- async function resolveInvocationCoordinates(invocation, runtime) {
359
- const environment = runtime.environment ?? process.env, gitPath = gitPathFromEdge(environment);
360
- const { resolveCliCoordinates } = await import("./coordinates.js");
361
- return resolveCliCoordinates({
362
- ...(runtime.cwd === undefined ? {} : { processCwd: runtime.cwd }),
363
- ...(invocation.cwd === undefined ? {} : { cwd: invocation.cwd }),
364
- ...(invocation.repo === undefined ? {} : { repo: invocation.repo }),
365
- ...(gitPath === undefined ? {} : { gitPath }),
366
- command: invocation.command,
367
- });
368
- }
369
- async function invokeTask(parsed, runtime, edge, execution, coordinates) {
370
- const actor = taskActor(parsed, runtime, edge.environment);
371
- return await (await import("./commands/task-invoke.js")).invokeTaskFromEdge({
372
- parsed,
373
- world: coordinates.world,
374
- candidate: coordinates.candidateWorld,
375
- context: coordinates.taskContext,
376
- establish: coordinates.establishWorld,
377
- readStdin: edge.readStdin,
378
- actor,
379
- execution,
380
- });
381
- }
382
- async function callExecutionCwd(input) {
383
- if (input.command.command !== "call")
384
- return undefined;
385
- if (input.workdir !== undefined) {
386
- return await canonicalBirthCwd(resolve(input.cwd, input.workdir), `workdir is not an existing directory: ${input.workdir}`);
387
- }
388
- return input.cwd;
389
- }
390
- async function invokeParsedAkuma(input) {
391
- const executionCwd = await callExecutionCwd({
392
- command: input.parsed,
393
- cwd: input.cwd,
394
- ...(input.workdir === undefined ? {} : { workdir: input.workdir }),
395
- });
396
- return await invokeAkumaFromEdge(input.parsed, {
397
- located: input.world,
398
- candidate: input.candidate,
399
- establish: input.establish,
400
- ...(executionCwd === undefined ? {} : { executionCwd }),
401
- ...(input.repo === undefined ? {} : { repo: input.repo }),
402
- ...(input.home === undefined ? {} : { home: input.home }),
403
- edge: input.edge,
404
- execution: input.execution,
405
- });
406
- }
407
- // eslint-disable-next-line complexity -- command dispatch keeps the CLI's existing boundary in one place.
408
- async function invokeParsed(invocation, runtime) {
409
- const environment = runtime.environment ?? process.env;
410
- const execution = executionForEnvironment(environment);
411
- const coordinates = await resolveInvocationCoordinates(invocation, runtime);
412
- const { cwd, repo, world, candidateWorld, establishWorld } = coordinates;
413
- const edge = {
414
- environment,
415
- readStdin: runtime.readStdin ?? readStdin,
416
- ...(runtime.signal === undefined ? {} : { signal: runtime.signal }),
417
- ...(runtime.progress === undefined ? {} : { progress: runtime.progress }),
418
- };
419
- const parsed = invocation.command;
420
- const mapped = edge.environment.KEIYAKU_HOME?.trim();
421
- const home = mapped === undefined || mapped.length === 0 ? undefined : mapped;
422
- if (parsed.command === "settings")
423
- return { kind: "settings", value: await settingsAt(world ?? undefined, home) };
424
- if (parsed.command === "nuke")
425
- return await (await import("./commands/nuke.js")).invokeNuke(parsed, world);
426
- if (parsed.command === "task")
427
- return await invokeTask(parsed, runtime, edge, execution, coordinates);
428
- if (parsed.command === "history" && "contract" in parsed)
429
- return await invokeContractHistory(repo, parsed.contract);
430
- if (isParsedAkumaCommand(parsed))
431
- return await invokeParsedAkuma({
432
- parsed,
433
- cwd,
434
- ...(invocation.workdir === undefined ? {} : { workdir: invocation.workdir }),
435
- world,
436
- candidate: candidateWorld,
437
- establish: coordinates.establishWorld,
438
- ...(repo === undefined ? {} : { repo }),
439
- ...(home === undefined ? {} : { home }),
440
- edge,
441
- execution,
442
- });
443
- if (parsed.command === "ls")
444
- return await invokeCatalog(parsed, world, repo, home);
445
- if (parsed.command === "status")
446
- return await invokeStatus(parsed, world, repo);
447
- if (repo === undefined)
448
- throw new Error(`${parsed.command} requires a resolved Repo`);
449
- if (parsed.command === "region")
450
- return invokeRegion(parsed, world, repo);
451
- const scope = cwd;
452
- const { configuration, hooks } = await contractSettings(parsed, execution, world, home);
453
- if (parsed.command === "show") {
454
- const selected = await selectContract(repo, parsed.contract, scope);
455
- return { kind: "guidance", contract: selected.id, guidance: await selected.contract.guidance() };
456
- }
457
- if (parsed.command === "reconcile") {
458
- if (parsed.contract === undefined) {
459
- return {
460
- kind: "observation",
461
- command: "reconcile",
462
- report: await repo.reconcile({ ...(hooks === undefined ? {} : { hooks }), retryHooks: parsed.retryHooks }),
463
- };
464
- }
465
- const { contract } = await selectContract(repo, parsed.contract, scope);
466
- return {
467
- kind: "observation",
468
- command: "reconcile",
469
- ...(await contract.reconcile({ ...(hooks === undefined ? {} : { hooks }), retryHooks: parsed.retryHooks })),
470
- };
471
- }
472
- return invokeContractMutation({
473
- parsed,
474
- repo,
475
- edge,
476
- scope,
477
- ...(configuration === undefined ? {} : { configuration }),
478
- ...(hooks === undefined ? {} : { hooks }),
479
- establishWorld,
480
- execution,
481
- });
482
- }
483
- function withResolvedTaskActor(command, runtime) {
484
- if (command.command !== "task" || (command.action !== "add" && command.action !== "compose"))
485
- return runtime;
486
- const actor = actorFromEdge(typeof command.flags.actor === "string" ? command.flags.actor : undefined, runtime.environment ?? process.env);
487
- return actor === undefined ? runtime : { ...runtime, actor };
488
- }
489
- export async function invoke(invocation, runtime = {}) {
490
- try {
491
- const command = invocation.command;
492
- assertExplicitRepoUse(command, invocation.repo);
493
- if (command.command === "install") {
494
- return (await import("./commands/install.js")).installHarnesses(command.harnesses, runtime.environment ?? process.env);
495
- }
496
- const acquiredRuntime = await withAcquiredStdin(command, withResolvedTaskActor(command, runtime));
497
- if (command.command === "bind" && command.forkOf === undefined) {
498
- const markdown = await (acquiredRuntime.readStdin ?? readStdin)();
499
- const { admitMarkdownBindSyntax } = await import("./commands/contract-invoke.js");
500
- await admitMarkdownBindSyntax({
501
- markdown,
502
- ...(runtime.cwd === undefined ? {} : { processCwd: runtime.cwd }),
503
- ...(invocation.cwd === undefined ? {} : { cwd: invocation.cwd }),
504
- });
505
- }
506
- return await invokeParsed({
507
- ...(invocation.cwd === undefined ? {} : { cwd: invocation.cwd }),
508
- ...(invocation.repo === undefined ? {} : { repo: invocation.repo }),
509
- ...(invocation.workdir === undefined ? {} : { workdir: invocation.workdir }),
510
- command,
511
- }, acquiredRuntime);
512
- }
513
- catch (error) {
514
- if (error instanceof Error && "executionReceipt" in error)
515
- throw error;
516
- if (error instanceof CliUsageError && error.guide === undefined) {
517
- throw new CliUsageError(error.diagnostic, usageGuideForCommand(invocation.command));
518
- }
519
- throw error;
520
- }
521
- }
@@ -1,3 +0,0 @@
1
- import type { ObservationResult } from "../result.js";
2
- export declare function worldObservationFailureText(result: ObservationResult): string | undefined;
3
- export declare function renderObservation(result: ObservationResult): string;
@@ -1,25 +0,0 @@
1
- import { safeText } from "./terminal.js";
2
- import { namedValueLines } from "./value.js";
3
- export function worldObservationFailureText(result) {
4
- if (result.command !== "reconcile")
5
- return undefined;
6
- const report = result.report;
7
- if (typeof report !== "object" ||
8
- report === null ||
9
- !("kind" in report) ||
10
- report.kind !== "world-observation-failed" ||
11
- !("diagnostic" in report) ||
12
- typeof report.diagnostic !== "string") {
13
- return undefined;
14
- }
15
- return `× observation ${result.command}\n diagnostic ${report.diagnostic}`;
16
- }
17
- export function renderObservation(result) {
18
- const failed = worldObservationFailureText(result);
19
- if (failed !== undefined)
20
- return failed;
21
- const facts = Object.entries(result)
22
- .filter(([key]) => key !== "kind" && key !== "command")
23
- .flatMap(([key, value]) => namedValueLines(key, value, " "));
24
- return [`observation ${safeText(result.command)}`, ...facts].join("\n");
25
- }
@@ -1,5 +0,0 @@
1
- import type { InvocationResult } from "../result.js";
2
- import type { TextRenderContext } from "./terminal.js";
3
- export declare function renderStatusSetText(result: Extract<InvocationResult, {
4
- kind: "status-set";
5
- }>, context?: TextRenderContext): string;
@@ -1,19 +0,0 @@
1
- import { renderAkumaText } from "./akuma.js";
2
- import { renderKanshiText } from "./kanshi.js";
3
- export function renderStatusSetText(result, context) {
4
- if (result.entries.length === 0)
5
- return "status none";
6
- return result.entries
7
- .map((entry) => {
8
- const body = entry.kind === "contract"
9
- ? renderKanshiText(entry.report, context, "contract")
10
- : renderAkumaText({ command: "status", contract: entry.selector, akuma: true, output: "text" }, {
11
- kind: "akuma",
12
- action: "status",
13
- status: entry.status,
14
- ...(entry.alias === undefined ? {} : { alias: entry.alias }),
15
- }, context);
16
- return body;
17
- })
18
- .join("\n\n");
19
- }
@@ -1,3 +0,0 @@
1
- import type { InvocationResult } from "../result.js";
2
- import type { TextRenderContext } from "./terminal.js";
3
- export declare function renderText(result: InvocationResult, context?: TextRenderContext): string;
@@ -1,33 +0,0 @@
1
- import { renderObservation } from "./board.js";
2
- import { renderAccepted, renderContractHistory, renderRetry } from "./contract.js";
3
- import { renderKanshiText } from "./kanshi.js";
4
- import { renderConflictMaterialized, renderRefusal } from "./refusal.js";
5
- import { renderCatalogText } from "./catalog.js";
6
- import { renderNukeText } from "./nuke.js";
7
- import { renderRegionText } from "./region.js";
8
- import { renderStatusSetText } from "./status-set.js";
9
- export function renderText(result, context) {
10
- if (result.kind === "guidance")
11
- return result.guidance;
12
- if (result.kind === "status")
13
- return renderKanshiText(result.report, context, result.selection);
14
- if (result.kind === "status-set")
15
- return renderStatusSetText(result, context);
16
- if (result.kind === "catalog")
17
- return renderCatalogText(result.catalog);
18
- if (result.kind === "contract-history")
19
- return renderContractHistory(result.history);
20
- if (result.kind === "region")
21
- return renderRegionText(result.region);
22
- if (result.kind === "nuke")
23
- return renderNukeText(result.result);
24
- if (result.kind === "accepted")
25
- return renderAccepted(result, context);
26
- if (result.kind === "refused")
27
- return renderRefusal(result, context);
28
- if (result.kind === "retry")
29
- return renderRetry(result, context);
30
- if (result.kind === "integration-conflict-materialized")
31
- return renderConflictMaterialized(result, context);
32
- return renderObservation(result);
33
- }