@astrosheep/keiyaku 2.9.13 → 4.0.1

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 (730) hide show
  1. package/README.md +5 -132
  2. package/build/integrations/marketplace/.agents/plugins/marketplace.json +12 -0
  3. package/build/integrations/marketplace/.claude-plugin/marketplace.json +5 -0
  4. package/build/integrations/marketplace/plugins/keiyaku/.claude-plugin/plugin.json +7 -0
  5. package/build/integrations/marketplace/plugins/keiyaku/.codex-plugin/plugin.json +18 -0
  6. package/build/integrations/marketplace/plugins/keiyaku/opencode.js +16 -0
  7. package/build/integrations/marketplace/plugins/keiyaku/package.json +8 -0
  8. package/build/integrations/marketplace/plugins/keiyaku/skills/keiyaku/SKILL.md +42 -0
  9. package/build/integrations/marketplace/plugins/keiyaku/skills/keiyaku-akuma/SKILL.md +53 -0
  10. package/build/integrations/marketplace/plugins/keiyaku/skills/keiyaku-bind/SKILL.md +94 -0
  11. package/build/integrations/marketplace/plugins/keiyaku/skills/keiyaku-bind/agents/openai.yaml +4 -0
  12. package/build/integrations/marketplace/plugins/keiyaku/skills/keiyaku-task/SKILL.md +97 -0
  13. package/build/integrations/marketplace/plugins/keiyaku/skills/keiyaku-workflow/SKILL.md +189 -0
  14. package/build/src/akuma/akuma.d.ts +124 -0
  15. package/build/src/akuma/akuma.js +414 -0
  16. package/build/src/akuma/archetype.d.ts +39 -0
  17. package/build/src/akuma/archetype.js +207 -0
  18. package/build/src/akuma/body.d.ts +20 -0
  19. package/build/src/akuma/body.js +417 -0
  20. package/build/src/akuma/coordinate.d.ts +9 -0
  21. package/build/src/akuma/coordinate.js +22 -0
  22. package/build/src/akuma/heart/facts.d.ts +202 -0
  23. package/build/src/akuma/heart/facts.js +9 -0
  24. package/build/src/akuma/heart/index.d.ts +90 -0
  25. package/build/src/akuma/heart/index.js +240 -0
  26. package/build/src/akuma/heart/rows.d.ts +166 -0
  27. package/build/src/akuma/heart/rows.js +299 -0
  28. package/build/src/akuma/heart/schema.d.ts +5 -0
  29. package/build/src/akuma/heart/schema.js +160 -0
  30. package/build/src/akuma/heart/storage.d.ts +33 -0
  31. package/build/src/akuma/heart/storage.js +164 -0
  32. package/build/src/akuma/heart/tells.d.ts +12 -0
  33. package/build/src/akuma/heart/tells.js +79 -0
  34. package/build/src/akuma/heart/timeline.d.ts +15 -0
  35. package/build/src/akuma/heart/timeline.js +86 -0
  36. package/build/src/akuma/identity.d.ts +46 -0
  37. package/build/src/akuma/identity.js +89 -0
  38. package/build/src/akuma/index.d.ts +9 -0
  39. package/build/src/akuma/index.js +3 -0
  40. package/build/src/akuma/projection.d.ts +97 -0
  41. package/build/src/akuma/projection.js +145 -0
  42. package/build/src/akuma/provider.d.ts +169 -0
  43. package/build/src/akuma/provider.js +255 -0
  44. package/build/src/akuma/providers/claude/events.d.ts +52 -0
  45. package/build/src/akuma/providers/claude/events.js +185 -0
  46. package/build/src/akuma/providers/claude/index.d.ts +46 -0
  47. package/build/src/akuma/providers/claude/index.js +265 -0
  48. package/build/src/akuma/providers/claude/input.d.ts +13 -0
  49. package/build/src/akuma/providers/claude/input.js +109 -0
  50. package/build/src/akuma/providers/codex-app-server/events.d.ts +110 -0
  51. package/build/src/akuma/providers/codex-app-server/events.js +337 -0
  52. package/build/src/akuma/providers/codex-app-server/index.d.ts +29 -0
  53. package/build/src/akuma/providers/codex-app-server/index.js +213 -0
  54. package/build/src/akuma/providers/index.d.ts +4 -0
  55. package/build/src/akuma/providers/index.js +85 -0
  56. package/build/src/akuma/providers/opencode-sdk/events.d.ts +48 -0
  57. package/build/src/akuma/providers/opencode-sdk/events.js +116 -0
  58. package/build/src/akuma/providers/opencode-sdk/index.d.ts +32 -0
  59. package/build/src/akuma/providers/opencode-sdk/index.js +203 -0
  60. package/build/src/akuma/providers/opencode-sdk/session.d.ts +41 -0
  61. package/build/src/akuma/providers/opencode-sdk/session.js +62 -0
  62. package/build/src/akuma/providers/pi/events.d.ts +33 -0
  63. package/build/src/akuma/providers/pi/events.js +128 -0
  64. package/build/src/akuma/providers/pi/index.d.ts +11 -0
  65. package/build/src/akuma/providers/pi/index.js +162 -0
  66. package/build/src/akuma/publication.d.ts +10 -0
  67. package/build/src/akuma/publication.js +107 -0
  68. package/build/src/akuma/requests.d.ts +47 -0
  69. package/build/src/akuma/requests.js +391 -0
  70. package/build/src/alias/index.d.ts +18 -0
  71. package/build/src/alias/index.js +103 -0
  72. package/build/src/body/amend.d.ts +2 -0
  73. package/build/src/body/amend.js +289 -0
  74. package/build/src/body/arc.d.ts +2 -0
  75. package/build/src/body/arc.js +54 -0
  76. package/build/src/body/decode.d.ts +4 -0
  77. package/build/src/body/decode.js +146 -0
  78. package/build/src/body/keys.d.ts +4 -0
  79. package/build/src/body/keys.js +11 -0
  80. package/build/src/body/region.d.ts +6 -0
  81. package/build/src/body/region.js +139 -0
  82. package/build/src/body/render.d.ts +4 -0
  83. package/build/src/body/render.js +74 -0
  84. package/build/src/body/shape.d.ts +29 -0
  85. package/build/src/body/shape.js +22 -0
  86. package/build/src/body/types.d.ts +28 -0
  87. package/build/src/body/verification.d.ts +7 -0
  88. package/build/src/body/verification.js +40 -0
  89. package/build/src/cli/accepted.d.ts +18 -0
  90. package/build/src/cli/accepted.js +66 -0
  91. package/build/src/cli/actor.d.ts +8 -0
  92. package/build/src/cli/actor.js +11 -0
  93. package/build/src/cli/commands/akuma-invoke.d.ts +77 -0
  94. package/build/src/cli/commands/akuma-invoke.js +112 -0
  95. package/build/src/cli/commands/akuma.d.ts +50 -0
  96. package/build/src/cli/commands/akuma.js +262 -0
  97. package/build/src/cli/commands/amend.d.ts +13 -0
  98. package/build/src/cli/commands/amend.js +13 -0
  99. package/build/src/cli/commands/bind.d.ts +12 -0
  100. package/build/src/cli/commands/bind.js +17 -0
  101. package/build/src/cli/commands/contract.d.ts +142 -0
  102. package/build/src/cli/commands/contract.js +14 -0
  103. package/build/src/cli/commands/install.d.ts +25 -0
  104. package/build/src/cli/commands/install.js +105 -0
  105. package/build/src/cli/commands/task-invoke.d.ts +11 -0
  106. package/build/src/cli/commands/task-invoke.js +117 -0
  107. package/build/src/cli/commands/task.d.ts +16 -0
  108. package/build/src/cli/commands/task.js +144 -0
  109. package/build/src/cli/index.d.ts +2 -0
  110. package/build/src/cli/index.js +3 -0
  111. package/build/src/cli/invoke.d.ts +22 -0
  112. package/build/src/cli/invoke.js +463 -0
  113. package/build/src/cli/main.d.ts +1 -0
  114. package/build/src/cli/main.js +98 -0
  115. package/build/src/cli/parse.d.ts +107 -0
  116. package/build/src/cli/parse.js +348 -0
  117. package/build/src/cli/render/akuma-tool.d.ts +13 -0
  118. package/build/src/cli/render/akuma-tool.js +72 -0
  119. package/build/src/cli/render/akuma.d.ts +7 -0
  120. package/build/src/cli/render/akuma.js +194 -0
  121. package/build/src/cli/render/board.d.ts +2 -0
  122. package/build/src/cli/render/board.js +4 -0
  123. package/build/src/cli/render/catalog.d.ts +2 -0
  124. package/build/src/cli/render/catalog.js +16 -0
  125. package/build/src/cli/render/contract.d.ts +4 -0
  126. package/build/src/cli/render/contract.js +102 -0
  127. package/build/src/cli/render/kanshi.d.ts +3 -0
  128. package/build/src/cli/render/kanshi.js +252 -0
  129. package/build/src/cli/render/refusal.d.ts +2 -0
  130. package/build/src/cli/render/refusal.js +21 -0
  131. package/build/src/cli/render/settings.d.ts +3 -0
  132. package/build/src/cli/render/settings.js +30 -0
  133. package/build/src/cli/render/task.d.ts +6 -0
  134. package/build/src/cli/render/task.js +105 -0
  135. package/build/src/cli/render/terminal.d.ts +23 -0
  136. package/build/src/cli/render/terminal.js +151 -0
  137. package/build/src/cli/render/text.d.ts +3 -0
  138. package/build/src/cli/render/text.js +20 -0
  139. package/build/src/cli/result.d.ts +67 -0
  140. package/build/src/cli/selectors.d.ts +9 -0
  141. package/build/src/cli/selectors.js +66 -0
  142. package/build/src/cli/usage.d.ts +6 -0
  143. package/build/src/cli/usage.js +19 -0
  144. package/build/src/contract-worktree.d.ts +43 -0
  145. package/build/src/contract-worktree.js +213 -0
  146. package/build/src/coordination/durable-file.d.ts +4 -0
  147. package/build/src/coordination/durable-file.js +79 -0
  148. package/build/src/coordination/sqlite-transaction-lock.d.ts +14 -0
  149. package/build/src/coordination/sqlite-transaction-lock.js +119 -0
  150. package/build/src/core/decide.d.ts +45 -0
  151. package/build/src/core/facts/codec.d.ts +3 -0
  152. package/build/src/core/facts/codec.js +277 -0
  153. package/build/src/core/facts/eligibility.d.ts +7 -0
  154. package/build/src/core/facts/eligibility.js +26 -0
  155. package/build/src/core/facts/errors.d.ts +3 -0
  156. package/build/src/core/facts/errors.js +6 -0
  157. package/build/src/core/facts/fold.d.ts +2 -0
  158. package/build/src/core/facts/fold.js +97 -0
  159. package/build/src/core/facts/gate.d.ts +24 -0
  160. package/build/src/core/facts/gate.js +52 -0
  161. package/build/src/core/facts/observation.d.ts +15 -0
  162. package/build/src/core/facts/observation.js +35 -0
  163. package/build/src/core/facts/offer.d.ts +21 -0
  164. package/build/src/core/facts/types.d.ts +137 -0
  165. package/build/src/core/facts/types.js +66 -0
  166. package/build/src/core/subject.d.ts +21 -0
  167. package/build/src/core/subject.js +89 -0
  168. package/build/src/core/verbs/abandon.d.ts +13 -0
  169. package/build/src/core/verbs/abandon.js +17 -0
  170. package/build/src/core/verbs/amend.d.ts +14 -0
  171. package/build/src/core/verbs/amend.js +52 -0
  172. package/build/src/core/verbs/arc.d.ts +13 -0
  173. package/build/src/core/verbs/arc.js +25 -0
  174. package/build/src/core/verbs/attestation.d.ts +13 -0
  175. package/build/src/core/verbs/attestation.js +21 -0
  176. package/build/src/core/verbs/bind.d.ts +13 -0
  177. package/build/src/core/verbs/bind.js +26 -0
  178. package/build/src/core/verbs/deliver.d.ts +13 -0
  179. package/build/src/core/verbs/deliver.js +42 -0
  180. package/build/src/core/verbs/placement.d.ts +13 -0
  181. package/build/src/core/verbs/placement.js +37 -0
  182. package/build/src/dispatch/index.d.ts +33 -0
  183. package/build/src/dispatch/index.js +168 -0
  184. package/build/src/duration.d.ts +10 -0
  185. package/build/src/duration.js +22 -0
  186. package/build/src/git/admission.d.ts +18 -0
  187. package/build/src/git/admission.js +126 -0
  188. package/build/src/git/hooks.d.ts +49 -0
  189. package/build/src/git/hooks.js +310 -0
  190. package/build/src/git/identity.d.ts +17 -0
  191. package/build/src/git/identity.js +47 -0
  192. package/build/src/git/integration.d.ts +49 -0
  193. package/build/src/git/integration.js +214 -0
  194. package/build/src/git/observe.d.ts +50 -0
  195. package/build/src/git/observe.js +330 -0
  196. package/build/src/git/read-observation.d.ts +41 -0
  197. package/build/src/git/read-observation.js +361 -0
  198. package/build/src/git/reconcile.d.ts +59 -0
  199. package/build/src/git/reconcile.js +376 -0
  200. package/build/src/git/repository.d.ts +95 -0
  201. package/build/src/git/repository.js +490 -0
  202. package/build/src/git/scratch.d.ts +13 -0
  203. package/build/src/git/scratch.js +66 -0
  204. package/build/src/git/target-placement.d.ts +56 -0
  205. package/build/src/git/target-placement.js +255 -0
  206. package/build/src/git/tender.d.ts +48 -0
  207. package/build/src/git/tender.js +82 -0
  208. package/build/src/git/terminal-seal.d.ts +24 -0
  209. package/build/src/git/terminal-seal.js +87 -0
  210. package/build/src/git/tree.d.ts +34 -0
  211. package/build/src/git/tree.js +116 -0
  212. package/build/src/git/workspace.d.ts +21 -0
  213. package/build/src/git/workspace.js +104 -0
  214. package/build/src/identity/coordinates.d.ts +9 -0
  215. package/build/src/identity/coordinates.js +20 -0
  216. package/build/src/identity/normalize.d.ts +8 -0
  217. package/build/src/identity/normalize.js +45 -0
  218. package/build/src/identity/selector.d.ts +12 -0
  219. package/build/src/identity/selector.js +26 -0
  220. package/build/src/index.d.ts +6 -0
  221. package/build/src/index.js +3 -0
  222. package/build/src/kanshi/index.d.ts +5 -0
  223. package/build/src/kanshi/index.js +2 -0
  224. package/build/src/kanshi/read.d.ts +8 -0
  225. package/build/src/kanshi/read.js +209 -0
  226. package/build/src/kanshi/report.d.ts +60 -0
  227. package/build/src/kanshi/select.d.ts +8 -0
  228. package/build/src/kanshi/select.js +21 -0
  229. package/build/src/library/address.d.ts +48 -0
  230. package/build/src/library/address.js +134 -0
  231. package/build/src/library/akuma-creation.d.ts +83 -0
  232. package/build/src/library/akuma-creation.js +152 -0
  233. package/build/src/library/bind.d.ts +21 -0
  234. package/build/src/library/bind.js +56 -0
  235. package/build/src/library/catalog.d.ts +58 -0
  236. package/build/src/library/catalog.js +72 -0
  237. package/build/src/library/configuration.d.ts +17 -0
  238. package/build/src/library/configuration.js +97 -0
  239. package/build/src/library/contract.d.ts +120 -0
  240. package/build/src/library/contract.js +335 -0
  241. package/build/src/library/delivery.d.ts +23 -0
  242. package/build/src/library/delivery.js +21 -0
  243. package/build/src/library/fleet.d.ts +65 -0
  244. package/build/src/library/fleet.js +189 -0
  245. package/build/src/library/input.d.ts +16 -0
  246. package/build/src/library/input.js +101 -0
  247. package/build/src/library/keiyaku.d.ts +42 -0
  248. package/build/src/library/keiyaku.js +26 -0
  249. package/build/src/library/mutation.d.ts +38 -0
  250. package/build/src/library/mutation.js +39 -0
  251. package/build/src/library/refusal.d.ts +21 -0
  252. package/build/src/library/refusal.js +29 -0
  253. package/build/src/library/region.d.ts +18 -0
  254. package/build/src/library/region.js +30 -0
  255. package/build/src/library/repo.d.ts +36 -0
  256. package/build/src/library/repo.js +76 -0
  257. package/build/src/markdown/diff.d.ts +1 -0
  258. package/build/src/markdown/diff.js +4 -0
  259. package/build/src/markdown/lex.d.ts +3 -0
  260. package/build/src/markdown/lex.js +221 -0
  261. package/build/src/markdown/parse.d.ts +2 -0
  262. package/build/src/markdown/parse.js +221 -0
  263. package/build/src/markdown/query.d.ts +21 -0
  264. package/build/src/markdown/query.js +51 -0
  265. package/build/src/markdown/types.d.ts +118 -0
  266. package/build/src/markdown/types.js +6 -0
  267. package/build/src/protocol/attempt.d.ts +49 -0
  268. package/build/src/protocol/attempt.js +150 -0
  269. package/build/src/protocol/bind.d.ts +32 -0
  270. package/build/src/protocol/bind.js +70 -0
  271. package/build/src/protocol/intent.d.ts +76 -0
  272. package/build/src/protocol/intent.js +90 -0
  273. package/build/src/protocol/operations.d.ts +198 -0
  274. package/build/src/protocol/operations.js +485 -0
  275. package/build/src/protocol/outcome.d.ts +23 -0
  276. package/build/src/protocol/outcome.js +21 -0
  277. package/build/src/protocol/placement.d.ts +30 -0
  278. package/build/src/protocol/placement.js +114 -0
  279. package/build/src/protocol/read/audit.d.ts +31 -0
  280. package/build/src/protocol/read/audit.js +55 -0
  281. package/build/src/protocol/read/documents.d.ts +8 -0
  282. package/build/src/protocol/read/documents.js +16 -0
  283. package/build/src/protocol/read/status.d.ts +44 -0
  284. package/build/src/protocol/read/status.js +60 -0
  285. package/build/src/protocol/run.d.ts +81 -0
  286. package/build/src/protocol/run.js +64 -0
  287. package/build/src/runtime/proc/line-rpc.d.ts +38 -0
  288. package/build/src/runtime/proc/line-rpc.js +145 -0
  289. package/build/src/runtime/proc/run.d.ts +70 -0
  290. package/build/src/runtime/proc/run.js +226 -0
  291. package/build/src/settings.d.ts +51 -0
  292. package/build/src/settings.js +114 -0
  293. package/build/src/settlement/fence.d.ts +9 -0
  294. package/build/src/settlement/fence.js +23 -0
  295. package/build/src/settlement/holder.d.ts +36 -0
  296. package/build/src/settlement/holder.js +187 -0
  297. package/build/src/settlement/settle.d.ts +44 -0
  298. package/build/src/settlement/settle.js +165 -0
  299. package/build/src/task/board.d.ts +83 -0
  300. package/build/src/task/board.js +165 -0
  301. package/build/src/task/compose.d.ts +25 -0
  302. package/build/src/task/compose.js +232 -0
  303. package/build/src/task/context.d.ts +4 -0
  304. package/build/src/task/context.js +51 -0
  305. package/build/src/task/document.d.ts +24 -0
  306. package/build/src/task/document.js +118 -0
  307. package/build/src/task/identity.d.ts +12 -0
  308. package/build/src/task/identity.js +47 -0
  309. package/build/src/task/index.d.ts +90 -0
  310. package/build/src/task/index.js +182 -0
  311. package/build/src/task/operations.d.ts +134 -0
  312. package/build/src/task/operations.js +198 -0
  313. package/build/src/task/store.d.ts +20 -0
  314. package/build/src/task/store.js +114 -0
  315. package/build/src/verification/declaration.d.ts +23 -0
  316. package/build/src/verification/declaration.js +14 -0
  317. package/build/src/verification/execution.d.ts +49 -0
  318. package/build/src/verification/execution.js +104 -0
  319. package/build/src/world.d.ts +13 -0
  320. package/build/src/world.js +103 -0
  321. package/package.json +65 -44
  322. package/build/.tsbuildinfo +0 -1
  323. package/build/agents/call-terms.js +0 -32
  324. package/build/agents/harness/activity-values.js +0 -70
  325. package/build/agents/harness/control-types.js +0 -18
  326. package/build/agents/harness/event-channel.js +0 -213
  327. package/build/agents/harness/event-persistence.js +0 -220
  328. package/build/agents/harness/events.js +0 -48
  329. package/build/agents/harness/execution-handle.js +0 -172
  330. package/build/agents/harness/index.js +0 -11
  331. package/build/agents/harness/outcome-error.js +0 -81
  332. package/build/agents/harness/outcome.js +0 -220
  333. package/build/agents/harness/projection.js +0 -369
  334. package/build/agents/harness/provider-adapter.js +0 -58
  335. package/build/agents/harness/router.js +0 -30
  336. package/build/agents/harness/runtime.js +0 -85
  337. package/build/agents/harness/session.js +0 -15
  338. package/build/agents/launch-snapshot/model.js +0 -127
  339. package/build/agents/launch-snapshot/parse-helpers.js +0 -114
  340. package/build/agents/launch-snapshot/resolve.js +0 -46
  341. package/build/agents/opencode-sdk.js +0 -159
  342. package/build/agents/providers/claude-agent-sdk/adapter.js +0 -396
  343. package/build/agents/providers/claude-agent-sdk/events.js +0 -218
  344. package/build/agents/providers/claude-agent-sdk/registration.js +0 -225
  345. package/build/agents/providers/claude-agent-sdk/session-schema.js +0 -2
  346. package/build/agents/providers/claude-agent-sdk/session.js +0 -172
  347. package/build/agents/providers/codex-app-server/adapter.js +0 -387
  348. package/build/agents/providers/codex-app-server/events.js +0 -492
  349. package/build/agents/providers/codex-app-server/identity.js +0 -1
  350. package/build/agents/providers/codex-app-server/policy.js +0 -29
  351. package/build/agents/providers/codex-app-server/registration.js +0 -259
  352. package/build/agents/providers/codex-app-server/session-schema.js +0 -6
  353. package/build/agents/providers/codex-app-server/session.js +0 -273
  354. package/build/agents/providers/event-type-tail.js +0 -16
  355. package/build/agents/providers/opencode-sdk/adapter.js +0 -402
  356. package/build/agents/providers/opencode-sdk/events.js +0 -380
  357. package/build/agents/providers/opencode-sdk/registration.js +0 -146
  358. package/build/agents/providers/opencode-sdk/session-schema.js +0 -2
  359. package/build/agents/providers/opencode-sdk/session.js +0 -187
  360. package/build/agents/providers/pi/adapter.js +0 -285
  361. package/build/agents/providers/pi/checkpoint.js +0 -49
  362. package/build/agents/providers/pi/events.js +0 -285
  363. package/build/agents/providers/pi/registration.js +0 -160
  364. package/build/agents/providers/pi/session-schema.js +0 -6
  365. package/build/agents/providers/registration.js +0 -7
  366. package/build/agents/providers/registry.js +0 -76
  367. package/build/agents/selector.js +0 -120
  368. package/build/agents/session.js +0 -29
  369. package/build/agents/string-tail-buffer.js +0 -44
  370. package/build/agents/types.js +0 -30
  371. package/build/artifact-directories.js +0 -22
  372. package/build/cli/commands/akuma/akuma/handler.js +0 -5
  373. package/build/cli/commands/akuma/akuma/meta.js +0 -17
  374. package/build/cli/commands/akuma/catalog.js +0 -10
  375. package/build/cli/commands/akuma/list/handler.js +0 -15
  376. package/build/cli/commands/akuma/list/meta-list.js +0 -12
  377. package/build/cli/commands/akuma/list/meta-ls.js +0 -9
  378. package/build/cli/commands/akuma/show/handler.js +0 -27
  379. package/build/cli/commands/akuma/show/meta.js +0 -8
  380. package/build/cli/commands/akuma.js +0 -186
  381. package/build/cli/commands/contract/amend/handler.js +0 -17
  382. package/build/cli/commands/contract/amend/meta.js +0 -13
  383. package/build/cli/commands/contract/arc/handler.js +0 -16
  384. package/build/cli/commands/contract/arc/meta.js +0 -28
  385. package/build/cli/commands/contract/audit/handler.js +0 -42
  386. package/build/cli/commands/contract/audit/meta.js +0 -17
  387. package/build/cli/commands/contract/bind/handler.js +0 -39
  388. package/build/cli/commands/contract/bind/meta.js +0 -96
  389. package/build/cli/commands/contract/catalog.js +0 -18
  390. package/build/cli/commands/contract/forfeit/handler.js +0 -17
  391. package/build/cli/commands/contract/forfeit/meta.js +0 -12
  392. package/build/cli/commands/contract/log/handler.js +0 -12
  393. package/build/cli/commands/contract/log/meta.js +0 -12
  394. package/build/cli/commands/contract/petition/handler.js +0 -64
  395. package/build/cli/commands/contract/petition/meta.js +0 -23
  396. package/build/cli/commands/contract/renew/handler.js +0 -65
  397. package/build/cli/commands/contract/renew/meta.js +0 -19
  398. package/build/cli/commands/metadata.js +0 -68
  399. package/build/cli/commands/projection/call/handler.js +0 -43
  400. package/build/cli/commands/projection/call/meta.js +0 -12
  401. package/build/cli/commands/projection/catalog.js +0 -16
  402. package/build/cli/commands/projection/fork/handler.js +0 -61
  403. package/build/cli/commands/projection/fork/meta.js +0 -12
  404. package/build/cli/commands/projection/history/handler.js +0 -65
  405. package/build/cli/commands/projection/history/meta.js +0 -9
  406. package/build/cli/commands/projection/kill/handler.js +0 -20
  407. package/build/cli/commands/projection/kill/meta.js +0 -11
  408. package/build/cli/commands/projection/shared.js +0 -27
  409. package/build/cli/commands/projection/status/handler.js +0 -42
  410. package/build/cli/commands/projection/status/meta.js +0 -20
  411. package/build/cli/commands/projection/tell/handler.js +0 -32
  412. package/build/cli/commands/projection/tell/meta.js +0 -12
  413. package/build/cli/commands/projection/wait/handler.js +0 -80
  414. package/build/cli/commands/projection/wait/meta.js +0 -16
  415. package/build/cli/commands/registry.js +0 -48
  416. package/build/cli/commands/shared.js +0 -74
  417. package/build/cli/commands/skills/catalog.js +0 -6
  418. package/build/cli/commands/skills/install/handler.js +0 -7
  419. package/build/cli/commands/skills/install/meta.js +0 -9
  420. package/build/cli/commands/skills/skills/handler.js +0 -4
  421. package/build/cli/commands/skills/skills/meta.js +0 -10
  422. package/build/cli/commands/system/catalog.js +0 -10
  423. package/build/cli/commands/system/completion/handler.js +0 -10
  424. package/build/cli/commands/system/completion/meta.js +0 -9
  425. package/build/cli/commands/system/dump-env/handler.js +0 -3
  426. package/build/cli/commands/system/dump-env/meta.js +0 -10
  427. package/build/cli/commands/system/guide/handler.js +0 -4
  428. package/build/cli/commands/system/guide/meta.js +0 -9
  429. package/build/cli/commands/task/add/handler.js +0 -38
  430. package/build/cli/commands/task/add/meta.js +0 -31
  431. package/build/cli/commands/task/catalog.js +0 -32
  432. package/build/cli/commands/task/compose/handler.js +0 -18
  433. package/build/cli/commands/task/compose/meta.js +0 -10
  434. package/build/cli/commands/task/doctor/handler.js +0 -3
  435. package/build/cli/commands/task/doctor/meta.js +0 -8
  436. package/build/cli/commands/task/done/handler.js +0 -10
  437. package/build/cli/commands/task/done/meta.js +0 -8
  438. package/build/cli/commands/task/drop/handler.js +0 -8
  439. package/build/cli/commands/task/drop/meta.js +0 -11
  440. package/build/cli/commands/task/hold/handler.js +0 -3
  441. package/build/cli/commands/task/hold/meta.js +0 -8
  442. package/build/cli/commands/task/log/handler.js +0 -12
  443. package/build/cli/commands/task/log/meta.js +0 -8
  444. package/build/cli/commands/task/ls/handler.js +0 -17
  445. package/build/cli/commands/task/ls/meta.js +0 -8
  446. package/build/cli/commands/task/note/handler.js +0 -6
  447. package/build/cli/commands/task/note/meta.js +0 -11
  448. package/build/cli/commands/task/resume/handler.js +0 -3
  449. package/build/cli/commands/task/resume/meta.js +0 -8
  450. package/build/cli/commands/task/shared.js +0 -181
  451. package/build/cli/commands/task/show/handler.js +0 -13
  452. package/build/cli/commands/task/show/meta.js +0 -8
  453. package/build/cli/commands/task/start/handler.js +0 -3
  454. package/build/cli/commands/task/start/meta.js +0 -8
  455. package/build/cli/commands/task/stop/handler.js +0 -10
  456. package/build/cli/commands/task/stop/meta.js +0 -8
  457. package/build/cli/commands/task/task/handler.js +0 -5
  458. package/build/cli/commands/task/task/meta.js +0 -11
  459. package/build/cli/commands/task/update/handler.js +0 -21
  460. package/build/cli/commands/task/update/meta.js +0 -12
  461. package/build/cli/commands/verification/handler.js +0 -43
  462. package/build/cli/commands/verification/meta.js +0 -13
  463. package/build/cli/completion.js +0 -91
  464. package/build/cli/draft-artifact.js +0 -50
  465. package/build/cli/flags.js +0 -321
  466. package/build/cli/help.js +0 -99
  467. package/build/cli/index.js +0 -333
  468. package/build/cli/missing-subcommand.js +0 -7
  469. package/build/cli/output-stream-error-policy.js +0 -31
  470. package/build/cli/parse-flags.js +0 -301
  471. package/build/cli/parse-metadata.js +0 -132
  472. package/build/cli/parse-selectors.js +0 -83
  473. package/build/cli/parse.js +0 -250
  474. package/build/cli/projection-address.js +0 -105
  475. package/build/cli/render/address.js +0 -101
  476. package/build/cli/render/amendment-warning.js +0 -8
  477. package/build/cli/render/arc.js +0 -88
  478. package/build/cli/render/audit.js +0 -440
  479. package/build/cli/render/call.js +0 -70
  480. package/build/cli/render/compact-text.js +0 -3
  481. package/build/cli/render/errors.js +0 -101
  482. package/build/cli/render/format.js +0 -226
  483. package/build/cli/render/kanshi.js +0 -300
  484. package/build/cli/render/kill.js +0 -9
  485. package/build/cli/render/lifecycle.js +0 -56
  486. package/build/cli/render/line-width.js +0 -103
  487. package/build/cli/render/misc.js +0 -84
  488. package/build/cli/render/path-prefix-compaction.js +0 -131
  489. package/build/cli/render/petition.js +0 -85
  490. package/build/cli/render/projection-activity.js +0 -332
  491. package/build/cli/render/projection-history.js +0 -77
  492. package/build/cli/render/response-style.js +0 -27
  493. package/build/cli/render/shared.js +0 -232
  494. package/build/cli/render/skills.js +0 -10
  495. package/build/cli/render/status-indicator.js +0 -47
  496. package/build/cli/render/status.js +0 -243
  497. package/build/cli/render/success-response.js +0 -95
  498. package/build/cli/render/task.js +0 -175
  499. package/build/cli/render/tell.js +0 -11
  500. package/build/cli/render/terminal-failure.js +0 -65
  501. package/build/cli/render/tool-command-normalization.js +0 -137
  502. package/build/cli/render/tool-ledger-rollup.js +0 -74
  503. package/build/cli/render/tool-presentation.js +0 -98
  504. package/build/cli/render/types.js +0 -2
  505. package/build/cli/render/verification.js +0 -23
  506. package/build/cli/render/wait.js +0 -343
  507. package/build/cli/skills-install.js +0 -348
  508. package/build/cli/subagent-guard.js +0 -25
  509. package/build/cli/types.js +0 -2
  510. package/build/config/akuma-loader.js +0 -240
  511. package/build/config/env-keys.js +0 -57
  512. package/build/config/env.js +0 -304
  513. package/build/config/provider-policy-ownership.js +0 -10
  514. package/build/config/settings/disease.js +0 -33
  515. package/build/config/settings/knobs.js +0 -14
  516. package/build/config/settings/loader.js +0 -275
  517. package/build/config/settings/provider-instance-fields.js +0 -51
  518. package/build/config/settings/schema.js +0 -113
  519. package/build/core/address-carrier.js +0 -89
  520. package/build/core/addressing.js +0 -407
  521. package/build/core/amend.js +0 -321
  522. package/build/core/amendment-criteria.js +0 -17
  523. package/build/core/amendment-warning.js +0 -10
  524. package/build/core/arc.js +0 -293
  525. package/build/core/atomic-publish.js +0 -64
  526. package/build/core/audit/candidate.js +0 -141
  527. package/build/core/audit/coordinates.js +0 -230
  528. package/build/core/audit/evidence.js +0 -156
  529. package/build/core/audit/facade.js +0 -65
  530. package/build/core/audit/readiness.js +0 -4
  531. package/build/core/audit/report.js +0 -38
  532. package/build/core/audit.js +0 -1
  533. package/build/core/bind-reconciliation.js +0 -409
  534. package/build/core/bind-workspace.js +0 -115
  535. package/build/core/bind.js +0 -503
  536. package/build/core/call/call.js +0 -235
  537. package/build/core/call/context.js +0 -210
  538. package/build/core/call/execution.js +0 -255
  539. package/build/core/call/prompt.js +0 -27
  540. package/build/core/call/reference.js +0 -24
  541. package/build/core/call-persist.js +0 -76
  542. package/build/core/command-markdown.js +0 -45
  543. package/build/core/context.js +0 -104
  544. package/build/core/contract-carrier-runtime.js +0 -512
  545. package/build/core/contract-carrier.js +0 -353
  546. package/build/core/contract-view.js +0 -319
  547. package/build/core/contract.js +0 -19
  548. package/build/core/derived-replay.js +0 -340
  549. package/build/core/draft.js +0 -400
  550. package/build/core/execution-coordinate.js +0 -46
  551. package/build/core/execution-pact.js +0 -126
  552. package/build/core/forfeit.js +0 -132
  553. package/build/core/hints.js +0 -34
  554. package/build/core/identifier-slug.js +0 -116
  555. package/build/core/ids.js +0 -90
  556. package/build/core/lifecycle-history.js +0 -48
  557. package/build/core/lifecycle-recovery.js +0 -122
  558. package/build/core/lifecycle-runner.js +0 -377
  559. package/build/core/log.js +0 -50
  560. package/build/core/markdown/lex.js +0 -274
  561. package/build/core/markdown/parser.js +0 -260
  562. package/build/core/markdown/render.js +0 -68
  563. package/build/core/markdown/sections.js +0 -80
  564. package/build/core/markdown/titles.js +0 -9
  565. package/build/core/markdown/types.js +0 -6
  566. package/build/core/outcome-base.js +0 -185
  567. package/build/core/places.js +0 -175
  568. package/build/core/projection/akuma-name.js +0 -43
  569. package/build/core/projection/generation/database.js +0 -473
  570. package/build/core/projection/generation/identity.js +0 -84
  571. package/build/core/projection/generation/ledger.js +0 -91
  572. package/build/core/projection/generation/model.js +0 -261
  573. package/build/core/projection/generation/projection-generation-continuation.js +0 -84
  574. package/build/core/projection/generation/projection-generation-doorbell.js +0 -88
  575. package/build/core/projection/generation/projection-generation-execution.js +0 -241
  576. package/build/core/projection/generation/projection-generation-identity.js +0 -21
  577. package/build/core/projection/generation/projection-generation-launcher.js +0 -154
  578. package/build/core/projection/generation/projection-generation-process.js +0 -47
  579. package/build/core/projection/generation/projection-generation-runner.js +0 -489
  580. package/build/core/projection/generation/projection-generation-runtime.js +0 -46
  581. package/build/core/projection/generation/protocol.js +0 -68
  582. package/build/core/projection/generation/store.js +0 -108
  583. package/build/core/projection/generation/transitions.js +0 -463
  584. package/build/core/projection/heart.js +0 -9
  585. package/build/core/projection/index.js +0 -28
  586. package/build/core/projection/projection-activity.js +0 -273
  587. package/build/core/projection/projection-alias.js +0 -131
  588. package/build/core/projection/projection-coordinate.js +0 -61
  589. package/build/core/projection/projection-core.js +0 -127
  590. package/build/core/projection/projection-execution-observer.js +0 -270
  591. package/build/core/projection/projection-history.js +0 -474
  592. package/build/core/projection/projection-identity.js +0 -11
  593. package/build/core/projection/projection-kill.js +0 -112
  594. package/build/core/projection/projection-life-observer.js +0 -101
  595. package/build/core/projection/projection-mint.js +0 -170
  596. package/build/core/projection/projection-status-observation.js +0 -434
  597. package/build/core/projection/projection-status.js +0 -442
  598. package/build/core/projection/projection-terminal-failure.js +0 -111
  599. package/build/core/projection/projection-wait.js +0 -337
  600. package/build/core/projection/projection-wake.js +0 -298
  601. package/build/core/projection/tell/launch-store.js +0 -244
  602. package/build/core/projection/tell/model.js +0 -98
  603. package/build/core/projection/tell/store.js +0 -245
  604. package/build/core/provider-loader-ports.js +0 -4
  605. package/build/core/registry.js +0 -100
  606. package/build/core/renew-build.js +0 -554
  607. package/build/core/renew-plan.js +0 -264
  608. package/build/core/renew-rewrite.js +0 -118
  609. package/build/core/renew.js +0 -345
  610. package/build/core/repository-ledger/accepted-fold-read.js +0 -22
  611. package/build/core/repository-ledger/accepted-tail.js +0 -116
  612. package/build/core/repository-ledger/admission.js +0 -38
  613. package/build/core/repository-ledger/authoritative-transaction.js +0 -1
  614. package/build/core/repository-ledger/claim-evidence.js +0 -147
  615. package/build/core/repository-ledger/codec.js +0 -303
  616. package/build/core/repository-ledger/current-state-store.js +0 -968
  617. package/build/core/repository-ledger/fold-repository.js +0 -374
  618. package/build/core/repository-ledger/fold.js +0 -248
  619. package/build/core/repository-ledger/git-object-store.js +0 -243
  620. package/build/core/repository-ledger/history-read.js +0 -15
  621. package/build/core/repository-ledger/identity.js +0 -60
  622. package/build/core/repository-ledger/incremental-read.js +0 -153
  623. package/build/core/repository-ledger/index.js +0 -15
  624. package/build/core/repository-ledger/inventory-plan.js +0 -75
  625. package/build/core/repository-ledger/inventory.js +0 -310
  626. package/build/core/repository-ledger/publication-admission.js +0 -125
  627. package/build/core/repository-ledger/publication.js +0 -353
  628. package/build/core/repository-ledger/read-model.js +0 -517
  629. package/build/core/repository-ledger/transaction-membership.js +0 -78
  630. package/build/core/repository-ledger/traversal.js +0 -404
  631. package/build/core/repository-ledger/write-transaction.js +0 -346
  632. package/build/core/response-artifact-catalog-sqlite.js +0 -112
  633. package/build/core/response-artifact-catalog.js +0 -7
  634. package/build/core/response-artifact-id.js +0 -5
  635. package/build/core/run-control/connection-bound-close.js +0 -41
  636. package/build/core/run-control/detached-lease-bootstrap.js +0 -208
  637. package/build/core/run-control/detached-process.js +0 -14
  638. package/build/core/run-control/index.js +0 -6
  639. package/build/core/run-control/process-tree.js +0 -139
  640. package/build/core/run-control/runner-lease.js +0 -172
  641. package/build/core/run-control/sqlite-process-lifetime-lock.js +0 -174
  642. package/build/core/scope.js +0 -416
  643. package/build/core/seal.js +0 -364
  644. package/build/core/settlement/claim-delivery.js +0 -82
  645. package/build/core/settlement/claim.js +0 -258
  646. package/build/core/settlement/index.js +0 -19
  647. package/build/core/settlement/petition-claim-gates.js +0 -247
  648. package/build/core/settlement/petition-forfeit.js +0 -46
  649. package/build/core/settlement/petition-head-guard.js +0 -12
  650. package/build/core/settlement/petition-io.js +0 -1
  651. package/build/core/settlement/petition-preview.js +0 -125
  652. package/build/core/settlement/petition-window.js +0 -50
  653. package/build/core/settlement/petition.js +0 -315
  654. package/build/core/settlement/queue-read-model.js +0 -120
  655. package/build/core/settlement/queue-seat-allocation.js +0 -65
  656. package/build/core/settlement/queue.js +0 -6
  657. package/build/core/settlement/settlement.js +0 -385
  658. package/build/core/settlement/verdict.js +0 -126
  659. package/build/core/settlement/verification.js +0 -554
  660. package/build/core/status/board.js +0 -455
  661. package/build/core/status/drift.js +0 -113
  662. package/build/core/status/lifecycle.js +0 -11
  663. package/build/core/stored-agent-event.js +0 -129
  664. package/build/core/structured-query.js +0 -23
  665. package/build/core/target-ref.js +0 -10
  666. package/build/core/task/board.js +0 -248
  667. package/build/core/task/commands.js +0 -401
  668. package/build/core/task/compose.js +0 -328
  669. package/build/core/task/coordinate.js +0 -56
  670. package/build/core/task/document.js +0 -273
  671. package/build/core/task/index.js +0 -16
  672. package/build/core/task/model.js +0 -8
  673. package/build/core/task/query.js +0 -204
  674. package/build/core/task/settlement-git.js +0 -423
  675. package/build/core/task/settlement-policy.js +0 -137
  676. package/build/core/task/source-board.js +0 -104
  677. package/build/core/task/source-model.js +0 -1
  678. package/build/core/task/task-bind-preparation.js +0 -243
  679. package/build/core/task/task-contract.js +0 -371
  680. package/build/core/task/task-doctor.js +0 -14
  681. package/build/core/task/task-file-transaction.js +0 -171
  682. package/build/core/task/task-git-actor.js +0 -33
  683. package/build/core/task/task-git-runtime.js +0 -97
  684. package/build/core/task/task-git-store.js +0 -400
  685. package/build/core/task/task-repository.js +0 -1
  686. package/build/core/task/task-store-repository.js +0 -97
  687. package/build/core/task/task-store.js +0 -1
  688. package/build/core/task/task-worktree.js +0 -25
  689. package/build/core/task/task.js +0 -7
  690. package/build/core/task/tree.js +0 -37
  691. package/build/core/task/validation.js +0 -48
  692. package/build/core/transcripts.js +0 -485
  693. package/build/core/validation.js +0 -17
  694. package/build/core/verification-declaration.js +0 -95
  695. package/build/core/worktree-bootstrap.js +0 -195
  696. package/build/core/worktree-path.js +0 -371
  697. package/build/errno.js +0 -3
  698. package/build/flow-error.js +0 -191
  699. package/build/fs/durability.js +0 -27
  700. package/build/fs/path-coordinate.js +0 -16
  701. package/build/generated/version.js +0 -3
  702. package/build/git/branches.js +0 -84
  703. package/build/git/commits.js +0 -151
  704. package/build/git/core.js +0 -86
  705. package/build/git/diff/parsers.js +0 -181
  706. package/build/git/diff/pathspec.js +0 -3
  707. package/build/git/diff/preview.js +0 -38
  708. package/build/git/diff/read.js +0 -105
  709. package/build/git/diff/structured.js +0 -127
  710. package/build/git/diff/types.js +0 -1
  711. package/build/git/path-coordinate.js +0 -17
  712. package/build/git/process.js +0 -229
  713. package/build/git/refs.js +0 -250
  714. package/build/git/staging.js +0 -79
  715. package/build/git/streaming-batch.js +0 -354
  716. package/build/git/worktree.js +0 -175
  717. package/build/index.js +0 -67
  718. package/build/keiyaku-constants.js +0 -2
  719. package/build/keiyaku.js +0 -30
  720. package/build/telemetry/debug-log.js +0 -40
  721. package/build/telemetry/logger.js +0 -48
  722. package/skills/keiyaku/SKILL.md +0 -46
  723. package/skills/keiyaku-akuma/SKILL.md +0 -97
  724. package/skills/keiyaku-task/SKILL.md +0 -118
  725. package/skills/keiyaku-workflow/SKILL.md +0 -191
  726. /package/build/{agents/launch-snapshot → src/body}/types.js +0 -0
  727. /package/build/{agents/providers/claude-agent-sdk/terms.js → src/cli/result.js} +0 -0
  728. /package/build/{agents/providers/codex-app-server/terms.js → src/core/decide.js} +0 -0
  729. /package/build/{agents/providers/opencode-sdk/terms.js → src/core/facts/offer.js} +0 -0
  730. /package/build/{agents/providers/pi/terms.js → src/kanshi/report.js} +0 -0
@@ -1,8 +0,0 @@
1
- export function renderAmendmentWarning(warning) {
2
- return [
3
- `You have amended this contract ${warning.amendmentCount} times. Consider whether its intent has drifted.`,
4
- "If the original intent is complete, move the remaining work to a task and start a new Keiyaku.",
5
- "If this contract no longer fits the work, forfeit it and bind a new one.",
6
- "If the amendments are intentional and the contract still fits, continue.",
7
- ].join(" ");
8
- }
@@ -1,88 +0,0 @@
1
- import { renderSealDiffSection } from "../../core/transcripts.js";
2
- import { shortCommitHash } from "../../git/commits.js";
3
- import { assembleResponse, buildPayload, buildSection, formatHints, formatList, formatMaybe, formatWarnings, } from "./format.js";
4
- import { DIFF_OVERVIEW_SECTION_TITLE, RESPONSE_MARKERS, WARNING_SECTION_TITLE } from "./response-style.js";
5
- import { appendPersistenceSummary, CONTENT_SECTION_TITLE, HINTS_LIST_MAX_ITEMS, HINTS_SECTION_TITLE, INFO_COMMIT_MAX_CHARS, INFO_PLEA_MAX_CHARS, INFO_SECTION_TITLE, } from "./shared.js";
6
- import { prependAddressReceipt } from "./address.js";
7
- import { renderAmendmentWarning } from "./amendment-warning.js";
8
- function sealLines(result) {
9
- if (!result.sealed)
10
- return ["nothing sealed"];
11
- return [
12
- `a${result.sealed.arc} sealed`,
13
- `receipts +${result.sealed.receipts.length}`,
14
- `+${result.sealed.diffstat.insertions} -${result.sealed.diffstat.deletions}`,
15
- `fence ${result.sealed.oldFence.slice(0, 7)}▸${result.sealed.newFence.slice(0, 7)}`,
16
- ];
17
- }
18
- function scopeWarnings(sealed) {
19
- const violations = sealed?.scopeAudit.violations ?? [];
20
- return violations.length === 0 ? [] : [`Scope warning: ${violations.join(", ")}`];
21
- }
22
- export function buildArcResponse(result) {
23
- const { status: _status, address: _address, ...resultData } = result;
24
- const diff = renderSealDiffSection(result.sealed, "working tree untouched");
25
- const payload = { ...resultData, diff };
26
- const summarySection = buildSection(CONTENT_SECTION_TITLE, sealLines(result));
27
- const warningSection = buildSection(WARNING_SECTION_TITLE, [
28
- ...scopeWarnings(result.sealed),
29
- ...formatWarnings(result.meta?.warnings ?? []),
30
- ]);
31
- const hintsSection = buildSection(HINTS_SECTION_TITLE, formatHints(result.meta?.hints ?? [], { maxItems: HINTS_LIST_MAX_ITEMS }));
32
- const infoSection = buildSection(INFO_SECTION_TITLE, [
33
- ...formatMaybe("Title", result.title),
34
- ...formatMaybe("Objective", result.objective, INFO_PLEA_MAX_CHARS),
35
- ...formatMaybe("Brief", result.brief, INFO_PLEA_MAX_CHARS),
36
- ...formatMaybe("Ledger Commit", result.ledgerCommit, INFO_COMMIT_MAX_CHARS),
37
- ]);
38
- const summaryLine = appendPersistenceSummary(result.summary, result.responsePath);
39
- return prependAddressReceipt({
40
- text: assembleResponse(`${RESPONSE_MARKERS.arc} Arc Opened (a${result.arc})`, summaryLine, [summarySection, infoSection, buildSection(DIFF_OVERVIEW_SECTION_TITLE, diff), warningSection, hintsSection].filter((section) => section !== null)),
41
- payload: buildPayload(payload, result.responsePath),
42
- }, result.address);
43
- }
44
- export function buildRenewResponse(result) {
45
- const { status: _status, address: _address, ...resultData } = result;
46
- const diff = renderSealDiffSection(result.sealed, "nothing sealed");
47
- const payload = { ...resultData, diff };
48
- const infoSection = buildSection(INFO_SECTION_TITLE, [
49
- ...formatMaybe("Old Base", result.oldBase, INFO_COMMIT_MAX_CHARS),
50
- ...formatMaybe("New Base", result.newBase, INFO_COMMIT_MAX_CHARS),
51
- ...formatMaybe("Old Head", result.oldHead, INFO_COMMIT_MAX_CHARS),
52
- ...formatMaybe("New Head", result.newHead, INFO_COMMIT_MAX_CHARS),
53
- ...formatMaybe("Ledger Head", result.ledgerHead, INFO_COMMIT_MAX_CHARS),
54
- ...formatList("Seal", sealLines(result)),
55
- ]);
56
- const warningSection = buildSection(WARNING_SECTION_TITLE, [
57
- ...scopeWarnings(result.sealed),
58
- ...formatWarnings(result.meta?.warnings ?? []),
59
- ]);
60
- return prependAddressReceipt({
61
- text: assembleResponse(`${RESPONSE_MARKERS.arc} Renewed`, appendPersistenceSummary(result.summary, result.responsePath), [buildSection(CONTENT_SECTION_TITLE, diff), infoSection, warningSection].filter((section) => section !== null)),
62
- payload: buildPayload(payload, result.responsePath),
63
- }, result.address);
64
- }
65
- export function buildRenewAbortResponse(result) {
66
- const payload = {
67
- contractId: result.contractId,
68
- scratchName: result.scratchName,
69
- summary: result.summary,
70
- };
71
- return prependAddressReceipt({ text: result.summary, payload }, result.address);
72
- }
73
- export function buildAmendResponse(result) {
74
- const { status: _status, address: _address, ...resultData } = result;
75
- const payload = resultData;
76
- const renderedLedgerCommit = shortCommitHash(result.ledgerCommit);
77
- const infoSection = buildSection(INFO_SECTION_TITLE, [
78
- ...formatMaybe("Amendment", String(result.amendmentNumber), INFO_COMMIT_MAX_CHARS),
79
- ...formatMaybe("Ledger Commit", renderedLedgerCommit, INFO_COMMIT_MAX_CHARS),
80
- ]);
81
- const warningSection = result.amendmentWarning
82
- ? buildSection(WARNING_SECTION_TITLE, renderAmendmentWarning(result.amendmentWarning))
83
- : null;
84
- return prependAddressReceipt({
85
- text: assembleResponse(`${RESPONSE_MARKERS.arc} Amended`, `Amended contract ledger with Amendment ${result.amendmentNumber} [${renderedLedgerCommit}].`, [buildSection(CONTENT_SECTION_TITLE, result.summary), infoSection, warningSection].filter((section) => section !== null)),
86
- payload: buildPayload(payload),
87
- }, result.address);
88
- }
@@ -1,440 +0,0 @@
1
- import { asMessage, FlowError } from "../../flow-error.js";
2
- import { shortCommitHash } from "../../git/commits.js";
3
- function shortRef(ref) {
4
- return ref.replace(/^refs\/heads\//, "");
5
- }
6
- function formatDuration(ms) {
7
- if (ms < 1000)
8
- return `${ms}ms`;
9
- const seconds = ms / 1000;
10
- if (seconds < 60)
11
- return `${seconds.toFixed(seconds < 10 ? 1 : 0)}s`;
12
- const minutes = Math.floor(seconds / 60);
13
- const rem = Math.round(seconds % 60);
14
- return `${minutes}m${rem.toString().padStart(2, "0")}s`;
15
- }
16
- function formatBytes(bytes) {
17
- if (bytes < 1024)
18
- return `${bytes} bytes`;
19
- const kib = bytes / 1024;
20
- if (kib < 1024)
21
- return `${kib < 10 ? kib.toFixed(1) : Math.round(kib)} KiB`;
22
- const mib = kib / 1024;
23
- return `${mib < 10 ? mib.toFixed(1) : Math.round(mib)} MiB`;
24
- }
25
- function padLabel(label, width) {
26
- return label.length >= width ? label : `${label}${" ".repeat(width - label.length)}`;
27
- }
28
- function scopeMatchLabel(file) {
29
- if (file.matcher.decisivePattern) {
30
- const effect = file.matcher.decisivePattern.effect === "exclude" ? "excluded by" : "matched";
31
- return `${effect}: ${file.matcher.decisivePattern.pattern}`;
32
- }
33
- if (file.class === "downgraded")
34
- return "no declared term · explained companions only";
35
- return "no declared term";
36
- }
37
- function explanationLine(item) {
38
- if (item.kind === "file-rename")
39
- return `rename ${item.from} -> ${item.to} (${item.similarity}%)`;
40
- if (item.kind === "symbol-rename") {
41
- return `symbol rename ${item.from} -> ${item.to} · h${item.hunk} old:${item.oldLine ?? "-"} new:${item.newLine ?? "-"}`;
42
- }
43
- return `import · h${item.hunk} old:${item.oldLine ?? "-"} new:${item.newLine ?? "-"}`;
44
- }
45
- function residueSummary(file) {
46
- if (file.class !== "violated" || file.residue.length === 0)
47
- return null;
48
- const hunks = [...new Set(file.residue.map((item) => item.hunk).filter((hunk) => hunk >= 0))].sort((a, b) => a - b);
49
- if (file.residue.some((item) => item.kind === "binary")) {
50
- return `unexplained: binary content changed`;
51
- }
52
- if (hunks.length === 0)
53
- return `unexplained: ${file.residue.length} changes`;
54
- return `unexplained: ${file.residue.length} lines across hunk ${hunks.join(", ")}`;
55
- }
56
- function indentBlock(text, prefix = " ") {
57
- return text.split("\n").map((line) => `${prefix}${line}`);
58
- }
59
- function selectedFor(file, report) {
60
- return report.presentation?.selected.filter((item) => item.path === file.path) ?? [];
61
- }
62
- function omissionsFor(file, report) {
63
- return report.presentation?.omissions.filter((item) => item.path === file.path) ?? [];
64
- }
65
- function renderFileBlock(file, report) {
66
- const rename = file.oldPath ? `${file.oldPath} -> ` : "";
67
- const header = ` ${file.status} ${rename}${file.path}`.padEnd(62) + `+${file.stats.insertions} -${file.stats.deletions}`;
68
- const lines = [header, ` ${scopeMatchLabel(file)}`];
69
- for (const explanation of file.explanations)
70
- lines.push(` ${explanationLine(explanation)}`);
71
- const residue = residueSummary(file);
72
- if (residue)
73
- lines.push(` ${residue}`);
74
- const selected = selectedFor(file, report);
75
- const omissions = omissionsFor(file, report);
76
- for (const item of selected) {
77
- if (item.hunk === null)
78
- continue;
79
- lines.push("");
80
- lines.push(...indentBlock(item.content));
81
- }
82
- if (omissions.length > 0) {
83
- const omittedHunks = omissions.filter((item) => item.hunk !== null).length;
84
- const omittedBytes = omissions.reduce((sum, item) => sum + item.bytes, 0);
85
- const subject = omissions.every((item) => item.hunk === null)
86
- ? "file content omitted"
87
- : `${omittedHunks} hunk${omittedHunks === 1 ? "" : "s"} omitted`;
88
- lines.push("");
89
- lines.push(` [${subject} · ${formatBytes(omittedBytes)}]`);
90
- }
91
- return lines;
92
- }
93
- function classRank(value) {
94
- if (value === "violated")
95
- return 0;
96
- if (value === "downgraded")
97
- return 1;
98
- return 2;
99
- }
100
- function orderedFiles(report) {
101
- return [...(report.files ?? [])].sort((left, right) => {
102
- const rank = classRank(left.class) - classRank(right.class);
103
- return rank || left.path.localeCompare(right.path);
104
- });
105
- }
106
- function hasCoordinateRace(report) {
107
- return report.findings.some((finding) => finding.code === "COORDINATE_RACE");
108
- }
109
- function isMatchedScope(file) {
110
- return file.class === "in-scope" || file.matcher.matched;
111
- }
112
- function renderChanges(report) {
113
- if (!report.diff || !report.presentation || !report.files) {
114
- return [hasCoordinateRace(report) || report.rehearsal.status === "conflict" || report.rehearsal.status === "unknown" ? "—" : "not evaluated"];
115
- }
116
- const files = orderedFiles(report);
117
- const outside = files.filter((file) => !isMatchedScope(file));
118
- const declared = files.filter((file) => isMatchedScope(file));
119
- const lines = [
120
- `${report.diff.stat.filesChanged} files · +${report.diff.stat.insertions} -${report.diff.stat.deletions}`,
121
- ];
122
- if (outside.length > 0) {
123
- lines.push("", "Scope warning · Outside declared write set", "");
124
- for (const file of outside) {
125
- lines.push(...renderFileBlock(file, report), "");
126
- }
127
- }
128
- if (declared.length > 0) {
129
- lines.push("", "Declared changes", "");
130
- for (const file of declared) {
131
- lines.push(...renderFileBlock(file, report), "");
132
- }
133
- }
134
- const selectedCount = report.presentation.selected.filter((item) => item.hunk !== null).length;
135
- const omittedCount = report.presentation.omissions.filter((item) => item.hunk !== null).length;
136
- const totalHunks = selectedCount + omittedCount;
137
- if (totalHunks > 0 || report.presentation.budget.limit === 0) {
138
- lines.push(`Shown ${selectedCount} of ${totalHunks || selectedCount} hunks · ${formatBytes(report.presentation.budget.limit)} presentation limit`);
139
- }
140
- while (lines.at(-1) === "")
141
- lines.pop();
142
- return lines;
143
- }
144
- function shouldExpandResult(result) {
145
- if (result.status === "runner_failed")
146
- return true;
147
- if (result.status === "executed" && result.exitCode !== 0)
148
- return true;
149
- return [result.stdout, result.stderr].some((stream) => stream.truncated || stream.tail.length > 0);
150
- }
151
- function streamDetail(name, result, forceEmpty) {
152
- const stream = result[name];
153
- if (!forceEmpty && !stream.truncated && stream.tail.length === 0)
154
- return [];
155
- const mark = stream.truncated ? `truncated · ${formatBytes(stream.omittedBytes)} omitted` : "complete";
156
- return [` ${name} (${mark})`, ...indentBlock(stream.tail || "(empty)", " ")];
157
- }
158
- function verificationStatus(result) {
159
- if (result.status === "runner_failed")
160
- return "unknown";
161
- return result.exitCode === 0 ? "passed" : "failed";
162
- }
163
- function sourceHeading(source) {
164
- return source === "contract" ? "contract" : "repository gate";
165
- }
166
- function preparationReason(reason) {
167
- if (reason === "verification_not_configured")
168
- return "no verification plan";
169
- if (reason === "verification_plan_unavailable")
170
- return "verification plan unavailable";
171
- if (reason === "coordinate_race")
172
- return "coordinate change";
173
- return "candidate unavailable";
174
- }
175
- function preparationResult(result) {
176
- if (result.kind === "exit")
177
- return `exit ${result.code}`;
178
- if (result.kind === "signal")
179
- return `signal ${result.signal}`;
180
- if (result.kind === "timeout")
181
- return "timeout";
182
- return `spawn · ${result.message}`;
183
- }
184
- function preparationStreams(preparation) {
185
- const lines = [];
186
- for (const stream of ["stdout", "stderr"]) {
187
- const tail = preparation[`${stream}Tail`];
188
- const truncated = preparation[`${stream}Truncated`];
189
- if (tail === undefined && !truncated)
190
- continue;
191
- lines.push(` ${stream} (${truncated ? "truncated" : "complete"})`);
192
- lines.push(...indentBlock(tail || "(empty)", " "));
193
- }
194
- return lines;
195
- }
196
- function renderCandidatePreparation(report) {
197
- const preparation = report.candidatePreparation;
198
- if (preparation.status === "not-required")
199
- return [` preparation not required · ${preparationReason(preparation.reason)}`];
200
- if (preparation.status === "not-configured")
201
- return [" preparation not configured · no bind bootstrap plan"];
202
- const command = JSON.stringify(preparation.plan.command);
203
- if (preparation.status === "succeeded") {
204
- return [
205
- ` preparation passed ${padLabel(formatDuration(preparation.durationMs), 6)} ${command}`,
206
- ...preparationStreams(preparation),
207
- ];
208
- }
209
- const lines = [
210
- ` preparation failed ${padLabel(formatDuration(preparation.durationMs), 6)} ${preparationResult(preparation.result)}`,
211
- ` ${preparation.cause.code}: ${preparation.cause.message}`,
212
- ` argv ${command} · timeout ${preparation.plan.timeoutMs}ms`,
213
- ];
214
- if (preparation.integrity) {
215
- lines.push(` integrity head=${preparation.integrity.head ?? "unknown"} · tree=${preparation.integrity.tree ?? "unknown"} · tracked=${preparation.integrity.trackedChanges.length}`);
216
- }
217
- lines.push(...preparationStreams(preparation));
218
- return lines;
219
- }
220
- function renderVerificationResults(report) {
221
- if (report.verification.status === "not_configured")
222
- return ["not configured"];
223
- if (report.verification.status === "not_evaluated") {
224
- if (hasCoordinateRace(report) || report.verification.reason === "renew_conflict" || report.verification.reason === "renew_unknown") {
225
- return ["—"];
226
- }
227
- return [`not evaluated · ${report.verification.reason.replaceAll("_", " ")}`];
228
- }
229
- if (report.verification.status === "unknown") {
230
- return [`unknown · ${report.verification.cause.code}: ${report.verification.cause.message}`];
231
- }
232
- const labels = report.verification.results.map((result) => result.label);
233
- const width = Math.max(8, ...labels.map((label) => label.length));
234
- const lines = [` run ${report.verification.runId}`];
235
- const groups = ["contract", "repository-gate"];
236
- for (const source of groups) {
237
- const results = report.verification.results.filter((result) => result.source === source);
238
- if (results.length === 0)
239
- continue;
240
- lines.push(` ${sourceHeading(source)}`);
241
- for (const result of results) {
242
- const status = padLabel(verificationStatus(result), 7);
243
- const duration = formatDuration(result.durationMs);
244
- lines.push(` ${padLabel(result.label, width)} ${status} ${padLabel(duration, 6)} ${result.declaration}`);
245
- if (result.status === "runner_failed") {
246
- lines.push(` ${result.cause.code}: ${result.cause.message}`);
247
- }
248
- if (shouldExpandResult(result)) {
249
- const forceEmpty = result.status === "runner_failed" || (result.status === "executed" && result.exitCode !== 0);
250
- lines.push(...streamDetail("stdout", result, forceEmpty), ...streamDetail("stderr", result, forceEmpty));
251
- }
252
- }
253
- }
254
- return lines;
255
- }
256
- function renderVerification(report) {
257
- const preparation = renderCandidatePreparation(report);
258
- const results = renderVerificationResults(report);
259
- return [...preparation, "", ...results];
260
- }
261
- function residueParts(readiness) {
262
- const residue = readiness.deliveryResidue;
263
- const parts = [];
264
- if (residue.staged.length > 0)
265
- parts.push(`${residue.staged.length} staged`);
266
- if (residue.unstaged.length > 0)
267
- parts.push(`${residue.unstaged.length} unstaged`);
268
- if (residue.untracked.length > 0)
269
- parts.push(`${residue.untracked.length} untracked`);
270
- if (parts.length === 0 && residue.tracked.length > 0)
271
- parts.push(`${residue.tracked.length} tracked dirty`);
272
- return parts.join(" · ");
273
- }
274
- function renderDeliveryContext(report) {
275
- const race = report.findings.find((finding) => finding.code === "COORDINATE_RACE");
276
- if (race)
277
- return renderCoordinateRace(race);
278
- const readiness = report.readiness;
279
- if (!readiness)
280
- return ["not evaluated"];
281
- const lines = [];
282
- const residue = residueParts(readiness);
283
- lines.push(` worktree ${residue || "clean"}`);
284
- const arcBits = [`max ${readiness.arc.max}`];
285
- if (readiness.arc.open !== null)
286
- arcBits.unshift(`open ${readiness.arc.open}`);
287
- if (readiness.arc.fence)
288
- arcBits.push(`fence ${shortCommitHash(readiness.arc.fence)}`);
289
- if (readiness.arc.looseCommits.length > 0)
290
- arcBits.push(`${readiness.arc.looseCommits.length} loose`);
291
- lines.push(` arc ${arcBits.join(" · ")}`);
292
- lines.push(` projection ${readiness.rewriteGuard.liveProjection ? "active" : "none"}`);
293
- if (readiness.dependencies.length === 0) {
294
- lines.push(" dependencies none");
295
- }
296
- else {
297
- const deps = readiness.dependencies
298
- .map((item) => `${item.id} ${item.satisfied ? "settled" : item.state}`)
299
- .join(" · ");
300
- lines.push(` dependencies ${deps}`);
301
- }
302
- if (readiness.petition.queue) {
303
- const position = readiness.petition.queue.position ?? "?";
304
- lines.push(` petition ${readiness.petition.state} · queue ${position}/${readiness.petition.queue.length}`);
305
- }
306
- else {
307
- lines.push(` petition ${readiness.petition.state}`);
308
- }
309
- return lines;
310
- }
311
- function formatRaceValue(value) {
312
- if (typeof value === "string") {
313
- return /^[0-9a-f]{40}$/i.test(value) ? shortCommitHash(value) : value;
314
- }
315
- if (value === null || value === undefined)
316
- return String(value);
317
- if (typeof value !== "object" || Array.isArray(value))
318
- return JSON.stringify(value);
319
- const record = value;
320
- const preferred = ["cwd", "ref", "head", "tree", "residueFingerprint"];
321
- const parts = [];
322
- for (const key of preferred) {
323
- if (!(key in record))
324
- continue;
325
- const raw = record[key];
326
- if (raw === undefined)
327
- continue;
328
- if (key === "head" || key === "tree" || key === "residueFingerprint") {
329
- parts.push(`${key}=${typeof raw === "string" ? (key === "residueFingerprint" ? raw.slice(0, 12) : formatRaceValue(raw)) : JSON.stringify(raw)}`);
330
- continue;
331
- }
332
- if (key === "ref" && typeof raw === "string") {
333
- parts.push(`${key}=${shortRef(raw)}`);
334
- continue;
335
- }
336
- parts.push(`${key}=${typeof raw === "string" ? raw : JSON.stringify(raw)}`);
337
- }
338
- if (parts.length === 0)
339
- return JSON.stringify(value);
340
- return parts.join(" · ");
341
- }
342
- function renderCoordinateRace(finding) {
343
- const lines = [` coordinate change observed`, ` ${finding.detail}`];
344
- const race = finding.race;
345
- if (!race)
346
- return lines;
347
- lines.push(` which ${race.which}`);
348
- lines.push(` pinned ${formatRaceValue(race.pinned)}`);
349
- lines.push(` observed ${formatRaceValue(race.observed)}`);
350
- return lines;
351
- }
352
- function renderRehearsal(report) {
353
- const rehearsal = report.rehearsal;
354
- if (rehearsal.status === "fresh")
355
- return "fresh";
356
- if (rehearsal.status === "clean") {
357
- return `clean onto ${shortRef(report.coordinates.target.ref)}@${shortCommitHash(rehearsal.newBase)}`;
358
- }
359
- if (rehearsal.status === "conflict") {
360
- const paths = rehearsal.paths.length > 0 ? rehearsal.paths.join(", ") : "paths unavailable";
361
- return `conflict · ${paths}`;
362
- }
363
- return `unknown · ${rehearsal.cause.code}: ${rehearsal.cause.message}`;
364
- }
365
- function renderCandidate(report) {
366
- const target = `${shortRef(report.coordinates.target.ref)}@${shortCommitHash(report.coordinates.target.head)}`;
367
- const delivery = `${shortRef(report.coordinates.delivery.ref)}@${shortCommitHash(report.coordinates.delivery.head)}`;
368
- const lines = [];
369
- if (report.candidate) {
370
- const candidateHead = shortCommitHash(report.candidate.head);
371
- const candidateBase = shortCommitHash(report.candidate.base);
372
- if (report.candidate.kind === "renew-rehearsal") {
373
- lines.push(` ${candidateBase}..${candidateHead} · renew rehearsal`);
374
- lines.push(` delivery ${delivery}`);
375
- lines.push(` target ${target}`);
376
- }
377
- else {
378
- lines.push(` ${target}..${candidateHead}`);
379
- if (report.candidate.head !== report.coordinates.delivery.head) {
380
- lines.push(` delivery ${delivery}`);
381
- }
382
- }
383
- }
384
- else {
385
- lines.push(` ${target}..${delivery}`);
386
- }
387
- if (report.diff) {
388
- lines.push(` ${report.diff.stat.filesChanged} files · +${report.diff.stat.insertions} -${report.diff.stat.deletions}`);
389
- }
390
- else if (report.findings.some((finding) => finding.code === "COORDINATE_RACE")) {
391
- lines.push(" evidence not evaluated · coordinate change");
392
- }
393
- else if (report.rehearsal.status === "conflict") {
394
- lines.push(" evidence not evaluated · renew conflict");
395
- }
396
- else if (report.rehearsal.status === "unknown") {
397
- lines.push(" evidence not evaluated · renew unknown");
398
- }
399
- lines.push(` rehearsal: ${renderRehearsal(report)}`);
400
- lines.push(` ledger ${shortCommitHash(report.coordinates.ledger.head)}`);
401
- return lines;
402
- }
403
- function renderAcceptance(report) {
404
- if (report.terms.criteria.length === 0)
405
- return [" (none)"];
406
- return report.terms.criteria.map((term, index) => ` ${index + 1}. ${term}`);
407
- }
408
- export function buildAuditResponse(report, json) {
409
- const payload = report;
410
- if (json)
411
- return { text: JSON.stringify(report), payload };
412
- const sections = [
413
- `Audit ${report.contract}`,
414
- "",
415
- "Candidate",
416
- ...renderCandidate(report),
417
- "",
418
- "Acceptance",
419
- ...renderAcceptance(report),
420
- "",
421
- "Changes",
422
- ...renderChanges(report),
423
- "",
424
- "Verification",
425
- ...renderVerification(report),
426
- "",
427
- "Delivery Context",
428
- ...renderDeliveryContext(report),
429
- ];
430
- return { text: sections.join("\n"), payload };
431
- }
432
- export function buildAuditConstructionFailure(error, json) {
433
- const cause = { code: error instanceof FlowError ? error.code : "INTERNAL_STATE", message: asMessage(error) };
434
- const payload = { audit: { status: "construction_failed", cause } };
435
- return {
436
- text: json ? JSON.stringify(payload) : `Audit construction failure\n${cause.code}: ${cause.message}`,
437
- payload,
438
- exitCode: 1,
439
- };
440
- }
@@ -1,70 +0,0 @@
1
- import { assembleResponse, buildPayload, buildSection, formatMaybe, formatWarnings } from "./format.js";
2
- import { WARNING_SECTION_TITLE } from "./response-style.js";
3
- import { CONTENT_SECTION_TITLE, formatPersistenceSummary, formatCallCompletionHeading, formatCallNextAction, INFO_AKUMA_MAX_CHARS, projectionRejoinHintLines, } from "./shared.js";
4
- import { carryAddress, prependAddressReceipt, renderResolvedAddressReceipt } from "./address.js";
5
- export function renderAdoptedLaunchReceipt(address, projectionId, alias, previousAliasTarget, akumaName) {
6
- return [
7
- renderResolvedAddressReceipt(address, {
8
- projectionId,
9
- ...(alias ? { projectionAlias: alias } : {}),
10
- ...(akumaName ? { akumaName } : {}),
11
- }),
12
- `${projectionId}${alias ? ` (${alias})` : ""} launched.`,
13
- ...(alias && previousAliasTarget ? [`(moved from ${previousAliasTarget}, still running)`] : []),
14
- ...projectionRejoinHintLines(projectionId),
15
- ].join("\n");
16
- }
17
- export function buildCallResponse(result, input) {
18
- if (result.state === "launched") {
19
- if (!result.projection)
20
- throw new Error("launched call response requires projection facts");
21
- const { session: _session, evidenceCwd: _evidenceCwd, address: _address, foregroundWait: _foregroundWait, ...responseData } = result;
22
- const payload = responseData;
23
- const output = {
24
- text: input.addressPlacement === "stdout"
25
- ? renderAdoptedLaunchReceipt(result.address, result.projection.id, result.projection.alias, result.projection.previousAliasTarget, result.agent ?? input.agent)
26
- : [
27
- `${result.projection.id}${result.projection.alias ? ` (${result.projection.alias})` : ""} launched.`,
28
- ...projectionRejoinHintLines(result.projection.id),
29
- ].join("\n"),
30
- payload: buildPayload(payload),
31
- };
32
- switch (input.addressPlacement) {
33
- case "stdout":
34
- return { ...output, address: result.address };
35
- case "footer":
36
- return carryAddress(output, result.address);
37
- case "none":
38
- return output;
39
- }
40
- }
41
- const infoLines = [
42
- ...formatMaybe("Akuma", result.agent ?? input.agent, INFO_AKUMA_MAX_CHARS),
43
- ];
44
- const summarySection = buildSection(CONTENT_SECTION_TITLE, result.summary);
45
- const warningSection = buildSection(WARNING_SECTION_TITLE, formatWarnings(result.meta?.warnings ?? []));
46
- const persistedSummary = formatPersistenceSummary(input.responsePath);
47
- const response = assembleResponse(formatCallCompletionHeading(result.projection) ?? "", persistedSummary, [summarySection, warningSection].filter((s) => s !== null), infoLines);
48
- const repositoryCoordinate = result.address.repo.kind === "repository"
49
- ? result.address.repo.stableRoot
50
- : undefined;
51
- const text = `${response.trimStart()}\n\n${formatCallNextAction({
52
- projection: result.projection,
53
- artifactId: input.artifactId,
54
- repositoryCoordinate,
55
- })}`;
56
- const { session: _session, evidenceCwd: _evidenceCwd, address: _address, foregroundWait: _foregroundWait, ...responseData } = result;
57
- const payload = responseData;
58
- const output = {
59
- text,
60
- payload: buildPayload(payload, input.responsePath),
61
- };
62
- switch (input.addressPlacement) {
63
- case "stdout":
64
- return prependAddressReceipt(output, result.address, { artifactId: result.artifactId, projectionId: result.projection?.id });
65
- case "footer":
66
- return carryAddress(output, result.address);
67
- case "none":
68
- return output;
69
- }
70
- }
@@ -1,3 +0,0 @@
1
- export function compactText(value) {
2
- return value.replace(/\s+/g, " ").trim();
3
- }