@astrosheep/keiyaku 2.9.13 → 4.0.0

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 (670) hide show
  1. package/README.md +10 -130
  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 +34 -0
  9. package/build/integrations/marketplace/plugins/keiyaku/skills/keiyaku-akuma/SKILL.md +50 -0
  10. package/build/integrations/marketplace/plugins/keiyaku/skills/keiyaku-task/SKILL.md +62 -0
  11. package/build/integrations/marketplace/plugins/keiyaku/skills/keiyaku-workflow/SKILL.md +72 -0
  12. package/build/src/akuma/activity.d.ts +66 -0
  13. package/build/src/akuma/activity.js +139 -0
  14. package/build/src/akuma/akuma.d.ts +116 -0
  15. package/build/src/akuma/akuma.js +382 -0
  16. package/build/src/akuma/archetype.d.ts +31 -0
  17. package/build/src/akuma/archetype.js +188 -0
  18. package/build/src/akuma/body.d.ts +20 -0
  19. package/build/src/akuma/body.js +305 -0
  20. package/build/src/akuma/heart/facts.d.ts +150 -0
  21. package/build/src/akuma/heart/facts.js +9 -0
  22. package/build/src/akuma/heart/index.d.ts +78 -0
  23. package/build/src/akuma/heart/index.js +361 -0
  24. package/build/src/akuma/heart/rows.d.ts +189 -0
  25. package/build/src/akuma/heart/rows.js +319 -0
  26. package/build/src/akuma/heart/schema.d.ts +5 -0
  27. package/build/src/akuma/heart/schema.js +113 -0
  28. package/build/src/akuma/identity.d.ts +46 -0
  29. package/build/src/akuma/identity.js +89 -0
  30. package/build/src/akuma/index.d.ts +7 -0
  31. package/build/src/akuma/index.js +3 -0
  32. package/build/src/akuma/provider.d.ts +123 -0
  33. package/build/src/akuma/provider.js +235 -0
  34. package/build/src/akuma/providers/claude.d.ts +84 -0
  35. package/build/src/akuma/providers/claude.js +305 -0
  36. package/build/src/akuma/providers/codex-app-server/events.d.ts +110 -0
  37. package/build/src/akuma/providers/codex-app-server/events.js +337 -0
  38. package/build/src/akuma/providers/codex-app-server/index.d.ts +27 -0
  39. package/build/src/akuma/providers/codex-app-server/index.js +162 -0
  40. package/build/src/akuma/providers/index.d.ts +4 -0
  41. package/build/src/akuma/providers/index.js +71 -0
  42. package/build/src/akuma/publication.d.ts +10 -0
  43. package/build/src/akuma/publication.js +107 -0
  44. package/build/src/akuma/requests.d.ts +46 -0
  45. package/build/src/akuma/requests.js +388 -0
  46. package/build/src/alias/index.d.ts +17 -0
  47. package/build/src/alias/index.js +104 -0
  48. package/build/src/body/amend.d.ts +2 -0
  49. package/build/src/body/amend.js +289 -0
  50. package/build/src/body/arc.d.ts +2 -0
  51. package/build/src/body/arc.js +54 -0
  52. package/build/src/body/decode.d.ts +4 -0
  53. package/build/src/body/decode.js +146 -0
  54. package/build/src/body/keys.d.ts +4 -0
  55. package/build/src/body/keys.js +11 -0
  56. package/build/src/body/region.d.ts +6 -0
  57. package/build/src/body/region.js +139 -0
  58. package/build/src/body/render.d.ts +4 -0
  59. package/build/src/body/render.js +73 -0
  60. package/build/src/body/shape.d.ts +29 -0
  61. package/build/src/body/shape.js +16 -0
  62. package/build/src/body/types.d.ts +28 -0
  63. package/build/src/body/verification.d.ts +7 -0
  64. package/build/src/body/verification.js +25 -0
  65. package/build/src/cli/accepted.d.ts +16 -0
  66. package/build/src/cli/accepted.js +65 -0
  67. package/build/src/cli/actor.d.ts +8 -0
  68. package/build/src/cli/actor.js +11 -0
  69. package/build/src/cli/commands/akuma-invoke.d.ts +53 -0
  70. package/build/src/cli/commands/akuma-invoke.js +68 -0
  71. package/build/src/cli/commands/akuma.d.ts +42 -0
  72. package/build/src/cli/commands/akuma.js +224 -0
  73. package/build/src/cli/commands/amend.d.ts +13 -0
  74. package/build/src/cli/commands/amend.js +13 -0
  75. package/build/src/cli/commands/bind.d.ts +12 -0
  76. package/build/src/cli/commands/bind.js +17 -0
  77. package/build/src/cli/commands/install.d.ts +25 -0
  78. package/build/src/cli/commands/install.js +103 -0
  79. package/build/src/cli/commands/task-invoke.d.ts +9 -0
  80. package/build/src/cli/commands/task-invoke.js +92 -0
  81. package/build/src/cli/commands/task.d.ts +16 -0
  82. package/build/src/cli/commands/task.js +144 -0
  83. package/build/src/cli/index.d.ts +2 -0
  84. package/build/src/cli/index.js +3 -0
  85. package/build/src/cli/invoke.d.ts +17 -0
  86. package/build/src/cli/invoke.js +265 -0
  87. package/build/src/cli/main.d.ts +1 -0
  88. package/build/src/cli/main.js +79 -0
  89. package/build/src/cli/parse.d.ts +210 -0
  90. package/build/src/cli/parse.js +375 -0
  91. package/build/src/cli/render/akuma-tool.d.ts +11 -0
  92. package/build/src/cli/render/akuma-tool.js +68 -0
  93. package/build/src/cli/render/akuma.d.ts +6 -0
  94. package/build/src/cli/render/akuma.js +254 -0
  95. package/build/src/cli/render/board.d.ts +2 -0
  96. package/build/src/cli/render/board.js +4 -0
  97. package/build/src/cli/render/contract.d.ts +4 -0
  98. package/build/src/cli/render/contract.js +69 -0
  99. package/build/src/cli/render/kanshi.d.ts +3 -0
  100. package/build/src/cli/render/kanshi.js +204 -0
  101. package/build/src/cli/render/refusal.d.ts +2 -0
  102. package/build/src/cli/render/refusal.js +4 -0
  103. package/build/src/cli/render/settings.d.ts +3 -0
  104. package/build/src/cli/render/settings.js +30 -0
  105. package/build/src/cli/render/task.d.ts +6 -0
  106. package/build/src/cli/render/task.js +105 -0
  107. package/build/src/cli/render/terminal.d.ts +10 -0
  108. package/build/src/cli/render/terminal.js +76 -0
  109. package/build/src/cli/render/text.d.ts +3 -0
  110. package/build/src/cli/render/text.js +15 -0
  111. package/build/src/cli/result.d.ts +55 -0
  112. package/build/src/cli/selectors.d.ts +9 -0
  113. package/build/src/cli/selectors.js +66 -0
  114. package/build/src/cli/usage.d.ts +6 -0
  115. package/build/src/cli/usage.js +19 -0
  116. package/build/src/context-root.d.ts +4 -0
  117. package/build/src/context-root.js +15 -0
  118. package/build/src/coordination/durable-file.d.ts +1 -0
  119. package/build/src/coordination/durable-file.js +36 -0
  120. package/build/src/coordination/sqlite-transaction-lock.d.ts +14 -0
  121. package/build/src/coordination/sqlite-transaction-lock.js +119 -0
  122. package/build/src/core/decide.d.ts +45 -0
  123. package/build/src/core/facts/codec.d.ts +3 -0
  124. package/build/src/core/facts/codec.js +258 -0
  125. package/build/src/core/facts/eligibility.d.ts +16 -0
  126. package/build/src/core/facts/eligibility.js +75 -0
  127. package/build/src/core/facts/errors.d.ts +3 -0
  128. package/build/src/core/facts/errors.js +6 -0
  129. package/build/src/core/facts/fold.d.ts +2 -0
  130. package/build/src/core/facts/fold.js +97 -0
  131. package/build/src/core/facts/gate.d.ts +24 -0
  132. package/build/src/core/facts/gate.js +52 -0
  133. package/build/src/core/facts/observation.d.ts +12 -0
  134. package/build/src/core/facts/observation.js +23 -0
  135. package/build/src/core/facts/offer.d.ts +21 -0
  136. package/build/src/core/facts/types.d.ts +130 -0
  137. package/build/src/core/facts/types.js +66 -0
  138. package/build/src/core/subject.d.ts +21 -0
  139. package/build/src/core/subject.js +89 -0
  140. package/build/src/core/verbs/abandon.d.ts +13 -0
  141. package/build/src/core/verbs/abandon.js +17 -0
  142. package/build/src/core/verbs/amend.d.ts +14 -0
  143. package/build/src/core/verbs/amend.js +56 -0
  144. package/build/src/core/verbs/arc.d.ts +13 -0
  145. package/build/src/core/verbs/arc.js +25 -0
  146. package/build/src/core/verbs/attestation.d.ts +13 -0
  147. package/build/src/core/verbs/attestation.js +21 -0
  148. package/build/src/core/verbs/bind.d.ts +13 -0
  149. package/build/src/core/verbs/bind.js +40 -0
  150. package/build/src/core/verbs/deliver.d.ts +13 -0
  151. package/build/src/core/verbs/deliver.js +26 -0
  152. package/build/src/core/verbs/placement.d.ts +13 -0
  153. package/build/src/core/verbs/placement.js +42 -0
  154. package/build/src/dispatch/index.d.ts +31 -0
  155. package/build/src/dispatch/index.js +159 -0
  156. package/build/src/git/admission.d.ts +18 -0
  157. package/build/src/git/admission.js +116 -0
  158. package/build/src/git/delivery.d.ts +20 -0
  159. package/build/src/git/delivery.js +109 -0
  160. package/build/src/git/hooks.d.ts +34 -0
  161. package/build/src/git/hooks.js +258 -0
  162. package/build/src/git/identity.d.ts +13 -0
  163. package/build/src/git/identity.js +28 -0
  164. package/build/src/git/observe.d.ts +38 -0
  165. package/build/src/git/observe.js +227 -0
  166. package/build/src/git/reconcile.d.ts +49 -0
  167. package/build/src/git/reconcile.js +223 -0
  168. package/build/src/git/repository.d.ts +80 -0
  169. package/build/src/git/repository.js +456 -0
  170. package/build/src/git/tree.d.ts +34 -0
  171. package/build/src/git/tree.js +112 -0
  172. package/build/src/git/verification.d.ts +14 -0
  173. package/build/src/git/verification.js +56 -0
  174. package/build/src/identity/coordinates.d.ts +9 -0
  175. package/build/src/identity/coordinates.js +20 -0
  176. package/build/src/identity/normalize.d.ts +8 -0
  177. package/build/src/identity/normalize.js +45 -0
  178. package/build/src/identity/selector.d.ts +6 -0
  179. package/build/src/identity/selector.js +7 -0
  180. package/build/src/index.d.ts +4 -0
  181. package/build/src/index.js +2 -0
  182. package/build/src/kanshi/index.d.ts +5 -0
  183. package/build/src/kanshi/index.js +2 -0
  184. package/build/src/kanshi/read.d.ts +5 -0
  185. package/build/src/kanshi/read.js +100 -0
  186. package/build/src/kanshi/report.d.ts +35 -0
  187. package/build/src/kanshi/select.d.ts +8 -0
  188. package/build/src/kanshi/select.js +21 -0
  189. package/build/src/library/akuma-creation.d.ts +79 -0
  190. package/build/src/library/akuma-creation.js +151 -0
  191. package/build/src/library/configuration.d.ts +26 -0
  192. package/build/src/library/configuration.js +100 -0
  193. package/build/src/library/contract.d.ts +145 -0
  194. package/build/src/library/contract.js +325 -0
  195. package/build/src/library/input.d.ts +13 -0
  196. package/build/src/library/input.js +82 -0
  197. package/build/src/library/keiyaku.d.ts +28 -0
  198. package/build/src/library/keiyaku.js +16 -0
  199. package/build/src/library/region.d.ts +17 -0
  200. package/build/src/library/region.js +30 -0
  201. package/build/src/library/repo.d.ts +33 -0
  202. package/build/src/library/repo.js +61 -0
  203. package/build/src/markdown/diff.d.ts +1 -0
  204. package/build/src/markdown/diff.js +4 -0
  205. package/build/src/markdown/lex.d.ts +3 -0
  206. package/build/src/markdown/lex.js +221 -0
  207. package/build/src/markdown/parse.d.ts +2 -0
  208. package/build/src/markdown/parse.js +221 -0
  209. package/build/src/markdown/query.d.ts +21 -0
  210. package/build/src/markdown/query.js +51 -0
  211. package/build/src/markdown/types.d.ts +118 -0
  212. package/build/src/markdown/types.js +6 -0
  213. package/build/src/protocol/attempt.d.ts +36 -0
  214. package/build/src/protocol/attempt.js +119 -0
  215. package/build/src/protocol/bind.d.ts +25 -0
  216. package/build/src/protocol/bind.js +62 -0
  217. package/build/src/protocol/intent.d.ts +52 -0
  218. package/build/src/protocol/intent.js +129 -0
  219. package/build/src/protocol/operations.d.ts +140 -0
  220. package/build/src/protocol/operations.js +373 -0
  221. package/build/src/protocol/outcome.d.ts +18 -0
  222. package/build/src/protocol/outcome.js +15 -0
  223. package/build/src/protocol/read/audit.d.ts +25 -0
  224. package/build/src/protocol/read/audit.js +39 -0
  225. package/build/src/protocol/read/documents.d.ts +8 -0
  226. package/build/src/protocol/read/documents.js +16 -0
  227. package/build/src/protocol/read/status.d.ts +38 -0
  228. package/build/src/protocol/read/status.js +47 -0
  229. package/build/src/protocol/run.d.ts +39 -0
  230. package/build/src/protocol/run.js +36 -0
  231. package/build/src/runtime/proc/line-rpc.d.ts +37 -0
  232. package/build/src/runtime/proc/line-rpc.js +124 -0
  233. package/build/src/runtime/proc/run.d.ts +54 -0
  234. package/build/src/runtime/proc/run.js +200 -0
  235. package/build/src/settings.d.ts +45 -0
  236. package/build/src/settings.js +99 -0
  237. package/build/src/settlement/holder.d.ts +15 -0
  238. package/build/src/settlement/holder.js +113 -0
  239. package/build/src/settlement/settle.d.ts +36 -0
  240. package/build/src/settlement/settle.js +91 -0
  241. package/build/src/task/board.d.ts +65 -0
  242. package/build/src/task/board.js +155 -0
  243. package/build/src/task/compose.d.ts +25 -0
  244. package/build/src/task/compose.js +232 -0
  245. package/build/src/task/context.d.ts +4 -0
  246. package/build/src/task/context.js +56 -0
  247. package/build/src/task/document.d.ts +24 -0
  248. package/build/src/task/document.js +118 -0
  249. package/build/src/task/identity.d.ts +12 -0
  250. package/build/src/task/identity.js +47 -0
  251. package/build/src/task/index.d.ts +90 -0
  252. package/build/src/task/index.js +179 -0
  253. package/build/src/task/operations.d.ts +115 -0
  254. package/build/src/task/operations.js +194 -0
  255. package/build/src/task/store.d.ts +22 -0
  256. package/build/src/task/store.js +114 -0
  257. package/build/src/verification/declaration.d.ts +22 -0
  258. package/build/src/verification/declaration.js +14 -0
  259. package/build/src/verification/producer.d.ts +23 -0
  260. package/build/src/verification/producer.js +54 -0
  261. package/package.json +62 -44
  262. package/build/.tsbuildinfo +0 -1
  263. package/build/agents/call-terms.js +0 -32
  264. package/build/agents/harness/activity-values.js +0 -70
  265. package/build/agents/harness/control-types.js +0 -18
  266. package/build/agents/harness/event-channel.js +0 -213
  267. package/build/agents/harness/event-persistence.js +0 -220
  268. package/build/agents/harness/events.js +0 -48
  269. package/build/agents/harness/execution-handle.js +0 -172
  270. package/build/agents/harness/index.js +0 -11
  271. package/build/agents/harness/outcome-error.js +0 -81
  272. package/build/agents/harness/outcome.js +0 -220
  273. package/build/agents/harness/projection.js +0 -369
  274. package/build/agents/harness/provider-adapter.js +0 -58
  275. package/build/agents/harness/router.js +0 -30
  276. package/build/agents/harness/runtime.js +0 -85
  277. package/build/agents/harness/session.js +0 -15
  278. package/build/agents/launch-snapshot/model.js +0 -127
  279. package/build/agents/launch-snapshot/parse-helpers.js +0 -114
  280. package/build/agents/launch-snapshot/resolve.js +0 -46
  281. package/build/agents/opencode-sdk.js +0 -159
  282. package/build/agents/providers/claude-agent-sdk/adapter.js +0 -396
  283. package/build/agents/providers/claude-agent-sdk/events.js +0 -218
  284. package/build/agents/providers/claude-agent-sdk/registration.js +0 -225
  285. package/build/agents/providers/claude-agent-sdk/session-schema.js +0 -2
  286. package/build/agents/providers/claude-agent-sdk/session.js +0 -172
  287. package/build/agents/providers/codex-app-server/adapter.js +0 -387
  288. package/build/agents/providers/codex-app-server/events.js +0 -492
  289. package/build/agents/providers/codex-app-server/identity.js +0 -1
  290. package/build/agents/providers/codex-app-server/policy.js +0 -29
  291. package/build/agents/providers/codex-app-server/registration.js +0 -259
  292. package/build/agents/providers/codex-app-server/session-schema.js +0 -6
  293. package/build/agents/providers/codex-app-server/session.js +0 -273
  294. package/build/agents/providers/event-type-tail.js +0 -16
  295. package/build/agents/providers/opencode-sdk/adapter.js +0 -402
  296. package/build/agents/providers/opencode-sdk/events.js +0 -380
  297. package/build/agents/providers/opencode-sdk/registration.js +0 -146
  298. package/build/agents/providers/opencode-sdk/session-schema.js +0 -2
  299. package/build/agents/providers/opencode-sdk/session.js +0 -187
  300. package/build/agents/providers/pi/adapter.js +0 -285
  301. package/build/agents/providers/pi/checkpoint.js +0 -49
  302. package/build/agents/providers/pi/events.js +0 -285
  303. package/build/agents/providers/pi/registration.js +0 -160
  304. package/build/agents/providers/pi/session-schema.js +0 -6
  305. package/build/agents/providers/registration.js +0 -7
  306. package/build/agents/providers/registry.js +0 -76
  307. package/build/agents/selector.js +0 -120
  308. package/build/agents/session.js +0 -29
  309. package/build/agents/string-tail-buffer.js +0 -44
  310. package/build/agents/types.js +0 -30
  311. package/build/artifact-directories.js +0 -22
  312. package/build/cli/commands/akuma/akuma/handler.js +0 -5
  313. package/build/cli/commands/akuma/akuma/meta.js +0 -17
  314. package/build/cli/commands/akuma/catalog.js +0 -10
  315. package/build/cli/commands/akuma/list/handler.js +0 -15
  316. package/build/cli/commands/akuma/list/meta-list.js +0 -12
  317. package/build/cli/commands/akuma/list/meta-ls.js +0 -9
  318. package/build/cli/commands/akuma/show/handler.js +0 -27
  319. package/build/cli/commands/akuma/show/meta.js +0 -8
  320. package/build/cli/commands/akuma.js +0 -186
  321. package/build/cli/commands/contract/amend/handler.js +0 -17
  322. package/build/cli/commands/contract/amend/meta.js +0 -13
  323. package/build/cli/commands/contract/arc/handler.js +0 -16
  324. package/build/cli/commands/contract/arc/meta.js +0 -28
  325. package/build/cli/commands/contract/audit/handler.js +0 -42
  326. package/build/cli/commands/contract/audit/meta.js +0 -17
  327. package/build/cli/commands/contract/bind/handler.js +0 -39
  328. package/build/cli/commands/contract/bind/meta.js +0 -96
  329. package/build/cli/commands/contract/catalog.js +0 -18
  330. package/build/cli/commands/contract/forfeit/handler.js +0 -17
  331. package/build/cli/commands/contract/forfeit/meta.js +0 -12
  332. package/build/cli/commands/contract/log/handler.js +0 -12
  333. package/build/cli/commands/contract/log/meta.js +0 -12
  334. package/build/cli/commands/contract/petition/handler.js +0 -64
  335. package/build/cli/commands/contract/petition/meta.js +0 -23
  336. package/build/cli/commands/contract/renew/handler.js +0 -65
  337. package/build/cli/commands/contract/renew/meta.js +0 -19
  338. package/build/cli/commands/metadata.js +0 -68
  339. package/build/cli/commands/projection/call/handler.js +0 -43
  340. package/build/cli/commands/projection/call/meta.js +0 -12
  341. package/build/cli/commands/projection/catalog.js +0 -16
  342. package/build/cli/commands/projection/fork/handler.js +0 -61
  343. package/build/cli/commands/projection/fork/meta.js +0 -12
  344. package/build/cli/commands/projection/history/handler.js +0 -65
  345. package/build/cli/commands/projection/history/meta.js +0 -9
  346. package/build/cli/commands/projection/kill/handler.js +0 -20
  347. package/build/cli/commands/projection/kill/meta.js +0 -11
  348. package/build/cli/commands/projection/shared.js +0 -27
  349. package/build/cli/commands/projection/status/handler.js +0 -42
  350. package/build/cli/commands/projection/status/meta.js +0 -20
  351. package/build/cli/commands/projection/tell/handler.js +0 -32
  352. package/build/cli/commands/projection/tell/meta.js +0 -12
  353. package/build/cli/commands/projection/wait/handler.js +0 -80
  354. package/build/cli/commands/projection/wait/meta.js +0 -16
  355. package/build/cli/commands/registry.js +0 -48
  356. package/build/cli/commands/shared.js +0 -74
  357. package/build/cli/commands/skills/catalog.js +0 -6
  358. package/build/cli/commands/skills/install/handler.js +0 -7
  359. package/build/cli/commands/skills/install/meta.js +0 -9
  360. package/build/cli/commands/skills/skills/handler.js +0 -4
  361. package/build/cli/commands/skills/skills/meta.js +0 -10
  362. package/build/cli/commands/system/catalog.js +0 -10
  363. package/build/cli/commands/system/completion/handler.js +0 -10
  364. package/build/cli/commands/system/completion/meta.js +0 -9
  365. package/build/cli/commands/system/dump-env/handler.js +0 -3
  366. package/build/cli/commands/system/dump-env/meta.js +0 -10
  367. package/build/cli/commands/system/guide/handler.js +0 -4
  368. package/build/cli/commands/system/guide/meta.js +0 -9
  369. package/build/cli/commands/task/add/handler.js +0 -38
  370. package/build/cli/commands/task/add/meta.js +0 -31
  371. package/build/cli/commands/task/catalog.js +0 -32
  372. package/build/cli/commands/task/compose/handler.js +0 -18
  373. package/build/cli/commands/task/compose/meta.js +0 -10
  374. package/build/cli/commands/task/doctor/handler.js +0 -3
  375. package/build/cli/commands/task/doctor/meta.js +0 -8
  376. package/build/cli/commands/task/done/handler.js +0 -10
  377. package/build/cli/commands/task/done/meta.js +0 -8
  378. package/build/cli/commands/task/drop/handler.js +0 -8
  379. package/build/cli/commands/task/drop/meta.js +0 -11
  380. package/build/cli/commands/task/hold/handler.js +0 -3
  381. package/build/cli/commands/task/hold/meta.js +0 -8
  382. package/build/cli/commands/task/log/handler.js +0 -12
  383. package/build/cli/commands/task/log/meta.js +0 -8
  384. package/build/cli/commands/task/ls/handler.js +0 -17
  385. package/build/cli/commands/task/ls/meta.js +0 -8
  386. package/build/cli/commands/task/note/handler.js +0 -6
  387. package/build/cli/commands/task/note/meta.js +0 -11
  388. package/build/cli/commands/task/resume/handler.js +0 -3
  389. package/build/cli/commands/task/resume/meta.js +0 -8
  390. package/build/cli/commands/task/shared.js +0 -181
  391. package/build/cli/commands/task/show/handler.js +0 -13
  392. package/build/cli/commands/task/show/meta.js +0 -8
  393. package/build/cli/commands/task/start/handler.js +0 -3
  394. package/build/cli/commands/task/start/meta.js +0 -8
  395. package/build/cli/commands/task/stop/handler.js +0 -10
  396. package/build/cli/commands/task/stop/meta.js +0 -8
  397. package/build/cli/commands/task/task/handler.js +0 -5
  398. package/build/cli/commands/task/task/meta.js +0 -11
  399. package/build/cli/commands/task/update/handler.js +0 -21
  400. package/build/cli/commands/task/update/meta.js +0 -12
  401. package/build/cli/commands/verification/handler.js +0 -43
  402. package/build/cli/commands/verification/meta.js +0 -13
  403. package/build/cli/completion.js +0 -91
  404. package/build/cli/draft-artifact.js +0 -50
  405. package/build/cli/flags.js +0 -321
  406. package/build/cli/help.js +0 -99
  407. package/build/cli/index.js +0 -333
  408. package/build/cli/missing-subcommand.js +0 -7
  409. package/build/cli/output-stream-error-policy.js +0 -31
  410. package/build/cli/parse-flags.js +0 -301
  411. package/build/cli/parse-metadata.js +0 -132
  412. package/build/cli/parse-selectors.js +0 -83
  413. package/build/cli/parse.js +0 -250
  414. package/build/cli/projection-address.js +0 -105
  415. package/build/cli/render/address.js +0 -101
  416. package/build/cli/render/amendment-warning.js +0 -8
  417. package/build/cli/render/arc.js +0 -88
  418. package/build/cli/render/audit.js +0 -440
  419. package/build/cli/render/call.js +0 -70
  420. package/build/cli/render/compact-text.js +0 -3
  421. package/build/cli/render/errors.js +0 -101
  422. package/build/cli/render/format.js +0 -226
  423. package/build/cli/render/kanshi.js +0 -300
  424. package/build/cli/render/kill.js +0 -9
  425. package/build/cli/render/lifecycle.js +0 -56
  426. package/build/cli/render/line-width.js +0 -103
  427. package/build/cli/render/misc.js +0 -84
  428. package/build/cli/render/path-prefix-compaction.js +0 -131
  429. package/build/cli/render/petition.js +0 -85
  430. package/build/cli/render/projection-activity.js +0 -332
  431. package/build/cli/render/projection-history.js +0 -77
  432. package/build/cli/render/response-style.js +0 -27
  433. package/build/cli/render/shared.js +0 -232
  434. package/build/cli/render/skills.js +0 -10
  435. package/build/cli/render/status-indicator.js +0 -47
  436. package/build/cli/render/status.js +0 -243
  437. package/build/cli/render/success-response.js +0 -95
  438. package/build/cli/render/task.js +0 -175
  439. package/build/cli/render/tell.js +0 -11
  440. package/build/cli/render/terminal-failure.js +0 -65
  441. package/build/cli/render/tool-command-normalization.js +0 -137
  442. package/build/cli/render/tool-ledger-rollup.js +0 -74
  443. package/build/cli/render/tool-presentation.js +0 -98
  444. package/build/cli/render/types.js +0 -2
  445. package/build/cli/render/verification.js +0 -23
  446. package/build/cli/render/wait.js +0 -343
  447. package/build/cli/skills-install.js +0 -348
  448. package/build/cli/subagent-guard.js +0 -25
  449. package/build/cli/types.js +0 -2
  450. package/build/config/akuma-loader.js +0 -240
  451. package/build/config/env-keys.js +0 -57
  452. package/build/config/env.js +0 -304
  453. package/build/config/provider-policy-ownership.js +0 -10
  454. package/build/config/settings/disease.js +0 -33
  455. package/build/config/settings/knobs.js +0 -14
  456. package/build/config/settings/loader.js +0 -275
  457. package/build/config/settings/provider-instance-fields.js +0 -51
  458. package/build/config/settings/schema.js +0 -113
  459. package/build/core/address-carrier.js +0 -89
  460. package/build/core/addressing.js +0 -407
  461. package/build/core/amend.js +0 -321
  462. package/build/core/amendment-criteria.js +0 -17
  463. package/build/core/amendment-warning.js +0 -10
  464. package/build/core/arc.js +0 -293
  465. package/build/core/atomic-publish.js +0 -64
  466. package/build/core/audit/candidate.js +0 -141
  467. package/build/core/audit/coordinates.js +0 -230
  468. package/build/core/audit/evidence.js +0 -156
  469. package/build/core/audit/facade.js +0 -65
  470. package/build/core/audit/readiness.js +0 -4
  471. package/build/core/audit/report.js +0 -38
  472. package/build/core/audit.js +0 -1
  473. package/build/core/bind-reconciliation.js +0 -409
  474. package/build/core/bind-workspace.js +0 -115
  475. package/build/core/bind.js +0 -503
  476. package/build/core/call/call.js +0 -235
  477. package/build/core/call/context.js +0 -210
  478. package/build/core/call/execution.js +0 -255
  479. package/build/core/call/prompt.js +0 -27
  480. package/build/core/call/reference.js +0 -24
  481. package/build/core/call-persist.js +0 -76
  482. package/build/core/command-markdown.js +0 -45
  483. package/build/core/context.js +0 -104
  484. package/build/core/contract-carrier-runtime.js +0 -512
  485. package/build/core/contract-carrier.js +0 -353
  486. package/build/core/contract-view.js +0 -319
  487. package/build/core/contract.js +0 -19
  488. package/build/core/derived-replay.js +0 -340
  489. package/build/core/draft.js +0 -400
  490. package/build/core/execution-coordinate.js +0 -46
  491. package/build/core/execution-pact.js +0 -126
  492. package/build/core/forfeit.js +0 -132
  493. package/build/core/hints.js +0 -34
  494. package/build/core/identifier-slug.js +0 -116
  495. package/build/core/ids.js +0 -90
  496. package/build/core/lifecycle-history.js +0 -48
  497. package/build/core/lifecycle-recovery.js +0 -122
  498. package/build/core/lifecycle-runner.js +0 -377
  499. package/build/core/log.js +0 -50
  500. package/build/core/markdown/lex.js +0 -274
  501. package/build/core/markdown/parser.js +0 -260
  502. package/build/core/markdown/render.js +0 -68
  503. package/build/core/markdown/sections.js +0 -80
  504. package/build/core/markdown/titles.js +0 -9
  505. package/build/core/markdown/types.js +0 -6
  506. package/build/core/outcome-base.js +0 -185
  507. package/build/core/places.js +0 -175
  508. package/build/core/projection/akuma-name.js +0 -43
  509. package/build/core/projection/generation/database.js +0 -473
  510. package/build/core/projection/generation/identity.js +0 -84
  511. package/build/core/projection/generation/ledger.js +0 -91
  512. package/build/core/projection/generation/model.js +0 -261
  513. package/build/core/projection/generation/projection-generation-continuation.js +0 -84
  514. package/build/core/projection/generation/projection-generation-doorbell.js +0 -88
  515. package/build/core/projection/generation/projection-generation-execution.js +0 -241
  516. package/build/core/projection/generation/projection-generation-identity.js +0 -21
  517. package/build/core/projection/generation/projection-generation-launcher.js +0 -154
  518. package/build/core/projection/generation/projection-generation-process.js +0 -47
  519. package/build/core/projection/generation/projection-generation-runner.js +0 -489
  520. package/build/core/projection/generation/projection-generation-runtime.js +0 -46
  521. package/build/core/projection/generation/protocol.js +0 -68
  522. package/build/core/projection/generation/store.js +0 -108
  523. package/build/core/projection/generation/transitions.js +0 -463
  524. package/build/core/projection/heart.js +0 -9
  525. package/build/core/projection/index.js +0 -28
  526. package/build/core/projection/projection-activity.js +0 -273
  527. package/build/core/projection/projection-alias.js +0 -131
  528. package/build/core/projection/projection-coordinate.js +0 -61
  529. package/build/core/projection/projection-core.js +0 -127
  530. package/build/core/projection/projection-execution-observer.js +0 -270
  531. package/build/core/projection/projection-history.js +0 -474
  532. package/build/core/projection/projection-identity.js +0 -11
  533. package/build/core/projection/projection-kill.js +0 -112
  534. package/build/core/projection/projection-life-observer.js +0 -101
  535. package/build/core/projection/projection-mint.js +0 -170
  536. package/build/core/projection/projection-status-observation.js +0 -434
  537. package/build/core/projection/projection-status.js +0 -442
  538. package/build/core/projection/projection-terminal-failure.js +0 -111
  539. package/build/core/projection/projection-wait.js +0 -337
  540. package/build/core/projection/projection-wake.js +0 -298
  541. package/build/core/projection/tell/launch-store.js +0 -244
  542. package/build/core/projection/tell/model.js +0 -98
  543. package/build/core/projection/tell/store.js +0 -245
  544. package/build/core/provider-loader-ports.js +0 -4
  545. package/build/core/registry.js +0 -100
  546. package/build/core/renew-build.js +0 -554
  547. package/build/core/renew-plan.js +0 -264
  548. package/build/core/renew-rewrite.js +0 -118
  549. package/build/core/renew.js +0 -345
  550. package/build/core/repository-ledger/accepted-fold-read.js +0 -22
  551. package/build/core/repository-ledger/accepted-tail.js +0 -116
  552. package/build/core/repository-ledger/admission.js +0 -38
  553. package/build/core/repository-ledger/authoritative-transaction.js +0 -1
  554. package/build/core/repository-ledger/claim-evidence.js +0 -147
  555. package/build/core/repository-ledger/codec.js +0 -303
  556. package/build/core/repository-ledger/current-state-store.js +0 -968
  557. package/build/core/repository-ledger/fold-repository.js +0 -374
  558. package/build/core/repository-ledger/fold.js +0 -248
  559. package/build/core/repository-ledger/git-object-store.js +0 -243
  560. package/build/core/repository-ledger/history-read.js +0 -15
  561. package/build/core/repository-ledger/identity.js +0 -60
  562. package/build/core/repository-ledger/incremental-read.js +0 -153
  563. package/build/core/repository-ledger/index.js +0 -15
  564. package/build/core/repository-ledger/inventory-plan.js +0 -75
  565. package/build/core/repository-ledger/inventory.js +0 -310
  566. package/build/core/repository-ledger/publication-admission.js +0 -125
  567. package/build/core/repository-ledger/publication.js +0 -353
  568. package/build/core/repository-ledger/read-model.js +0 -517
  569. package/build/core/repository-ledger/transaction-membership.js +0 -78
  570. package/build/core/repository-ledger/traversal.js +0 -404
  571. package/build/core/repository-ledger/write-transaction.js +0 -346
  572. package/build/core/response-artifact-catalog-sqlite.js +0 -112
  573. package/build/core/response-artifact-catalog.js +0 -7
  574. package/build/core/response-artifact-id.js +0 -5
  575. package/build/core/run-control/connection-bound-close.js +0 -41
  576. package/build/core/run-control/detached-lease-bootstrap.js +0 -208
  577. package/build/core/run-control/detached-process.js +0 -14
  578. package/build/core/run-control/index.js +0 -6
  579. package/build/core/run-control/process-tree.js +0 -139
  580. package/build/core/run-control/runner-lease.js +0 -172
  581. package/build/core/run-control/sqlite-process-lifetime-lock.js +0 -174
  582. package/build/core/scope.js +0 -416
  583. package/build/core/seal.js +0 -364
  584. package/build/core/settlement/claim-delivery.js +0 -82
  585. package/build/core/settlement/claim.js +0 -258
  586. package/build/core/settlement/index.js +0 -19
  587. package/build/core/settlement/petition-claim-gates.js +0 -247
  588. package/build/core/settlement/petition-forfeit.js +0 -46
  589. package/build/core/settlement/petition-head-guard.js +0 -12
  590. package/build/core/settlement/petition-io.js +0 -1
  591. package/build/core/settlement/petition-preview.js +0 -125
  592. package/build/core/settlement/petition-window.js +0 -50
  593. package/build/core/settlement/petition.js +0 -315
  594. package/build/core/settlement/queue-read-model.js +0 -120
  595. package/build/core/settlement/queue-seat-allocation.js +0 -65
  596. package/build/core/settlement/queue.js +0 -6
  597. package/build/core/settlement/settlement.js +0 -385
  598. package/build/core/settlement/verdict.js +0 -126
  599. package/build/core/settlement/verification.js +0 -554
  600. package/build/core/status/board.js +0 -455
  601. package/build/core/status/drift.js +0 -113
  602. package/build/core/status/lifecycle.js +0 -11
  603. package/build/core/stored-agent-event.js +0 -129
  604. package/build/core/structured-query.js +0 -23
  605. package/build/core/target-ref.js +0 -10
  606. package/build/core/task/board.js +0 -248
  607. package/build/core/task/commands.js +0 -401
  608. package/build/core/task/compose.js +0 -328
  609. package/build/core/task/coordinate.js +0 -56
  610. package/build/core/task/document.js +0 -273
  611. package/build/core/task/index.js +0 -16
  612. package/build/core/task/model.js +0 -8
  613. package/build/core/task/query.js +0 -204
  614. package/build/core/task/settlement-git.js +0 -423
  615. package/build/core/task/settlement-policy.js +0 -137
  616. package/build/core/task/source-board.js +0 -104
  617. package/build/core/task/source-model.js +0 -1
  618. package/build/core/task/task-bind-preparation.js +0 -243
  619. package/build/core/task/task-contract.js +0 -371
  620. package/build/core/task/task-doctor.js +0 -14
  621. package/build/core/task/task-file-transaction.js +0 -171
  622. package/build/core/task/task-git-actor.js +0 -33
  623. package/build/core/task/task-git-runtime.js +0 -97
  624. package/build/core/task/task-git-store.js +0 -400
  625. package/build/core/task/task-repository.js +0 -1
  626. package/build/core/task/task-store-repository.js +0 -97
  627. package/build/core/task/task-store.js +0 -1
  628. package/build/core/task/task-worktree.js +0 -25
  629. package/build/core/task/task.js +0 -7
  630. package/build/core/task/tree.js +0 -37
  631. package/build/core/task/validation.js +0 -48
  632. package/build/core/transcripts.js +0 -485
  633. package/build/core/validation.js +0 -17
  634. package/build/core/verification-declaration.js +0 -95
  635. package/build/core/worktree-bootstrap.js +0 -195
  636. package/build/core/worktree-path.js +0 -371
  637. package/build/errno.js +0 -3
  638. package/build/flow-error.js +0 -191
  639. package/build/fs/durability.js +0 -27
  640. package/build/fs/path-coordinate.js +0 -16
  641. package/build/generated/version.js +0 -3
  642. package/build/git/branches.js +0 -84
  643. package/build/git/commits.js +0 -151
  644. package/build/git/core.js +0 -86
  645. package/build/git/diff/parsers.js +0 -181
  646. package/build/git/diff/pathspec.js +0 -3
  647. package/build/git/diff/preview.js +0 -38
  648. package/build/git/diff/read.js +0 -105
  649. package/build/git/diff/structured.js +0 -127
  650. package/build/git/diff/types.js +0 -1
  651. package/build/git/path-coordinate.js +0 -17
  652. package/build/git/process.js +0 -229
  653. package/build/git/refs.js +0 -250
  654. package/build/git/staging.js +0 -79
  655. package/build/git/streaming-batch.js +0 -354
  656. package/build/git/worktree.js +0 -175
  657. package/build/index.js +0 -67
  658. package/build/keiyaku-constants.js +0 -2
  659. package/build/keiyaku.js +0 -30
  660. package/build/telemetry/debug-log.js +0 -40
  661. package/build/telemetry/logger.js +0 -48
  662. package/skills/keiyaku/SKILL.md +0 -46
  663. package/skills/keiyaku-akuma/SKILL.md +0 -97
  664. package/skills/keiyaku-task/SKILL.md +0 -118
  665. package/skills/keiyaku-workflow/SKILL.md +0 -191
  666. /package/build/{agents/launch-snapshot → src/body}/types.js +0 -0
  667. /package/build/{agents/providers/claude-agent-sdk/terms.js → src/cli/result.js} +0 -0
  668. /package/build/{agents/providers/codex-app-server/terms.js → src/core/decide.js} +0 -0
  669. /package/build/{agents/providers/opencode-sdk/terms.js → src/core/facts/offer.js} +0 -0
  670. /package/build/{agents/providers/pi/terms.js → src/kanshi/report.js} +0 -0
@@ -1,65 +0,0 @@
1
- import { FlowError } from "../../flow-error.js";
2
- import { readRepositoryLifecycle } from "../repository-ledger/read-model.js";
3
- import { queueMembership, } from "./queue-read-model.js";
4
- function isPositiveSafeInteger(value) {
5
- return typeof value === "number" && Number.isSafeInteger(value) && value > 0;
6
- }
7
- export function assertClaimQueueHead(model, contractId) {
8
- const lifecycleDisease = model.diagnosticsByContract.get(contractId)?.find((diagnostic) => diagnostic.kind === "lifecycle-disease");
9
- if (lifecycleDisease?.kind === "lifecycle-disease") {
10
- throw new FlowError("INTERNAL_STATE", `contract ${contractId} is unavailable because its repository ledger history is ${lifecycleDisease.status}`, {
11
- facts: {
12
- kind: "repository_lifecycle_disease",
13
- contractId,
14
- status: lifecycleDisease.status,
15
- diagnostics: lifecycleDisease.diagnostics.map((diagnostic) => ({ ...diagnostic })),
16
- },
17
- });
18
- }
19
- const membership = queueMembership(model, contractId);
20
- if (!membership) {
21
- if (model.unattributedDiagnostics.length > 0) {
22
- throw new FlowError("INTERNAL_STATE", `contract ${contractId} queue membership is indeterminate because the repository ledger is diseased`, {
23
- facts: {
24
- kind: "repository_lifecycle_disease",
25
- contractId,
26
- status: "indeterminate",
27
- diagnostics: model.unattributedDiagnostics.map((diagnostic) => ({ ...diagnostic })),
28
- },
29
- });
30
- }
31
- throw new FlowError("INTERNAL_STATE", `contract ${contractId} is not queue head; position=not queued`);
32
- }
33
- const collision = membership.diagnostics.find((diagnostic) => diagnostic.kind === "duplicate-seat");
34
- if (collision && collision.kind === "duplicate-seat") {
35
- throw new FlowError("INTERNAL_STATE", `contract ${contractId} has duplicate settlement seat ${collision.seat} with ${collision.with}; reject its petition and petition again`);
36
- }
37
- if (membership.position !== 1) {
38
- throw new FlowError("INTERNAL_STATE", `contract ${contractId} is not queue head; position=${membership.position ?? "not queued"}`);
39
- }
40
- return membership;
41
- }
42
- async function ledgerSeatFloor(cwd, target) {
43
- const lifecycle = await readRepositoryLifecycle(cwd);
44
- let maxSeat = 0;
45
- for (const model of lifecycle.contracts) {
46
- for (const { entry } of model.history) {
47
- if (entry.kind !== "petition")
48
- continue;
49
- if (entry.data.target !== target)
50
- continue;
51
- if (entry.data.seat > maxSeat)
52
- maxSeat = entry.data.seat;
53
- }
54
- }
55
- return maxSeat;
56
- }
57
- export async function allocateSettlementSeat(cwd, input) {
58
- // The candidate is derived from one typed ledger observation. The later
59
- // repository-ledger transaction owns the only authoritative CAS and commit.
60
- const seat = (await ledgerSeatFloor(cwd, input.target)) + 1;
61
- if (!isPositiveSafeInteger(seat)) {
62
- throw new FlowError("INTERNAL_STATE", `settlement seats exhausted for ${input.target}`);
63
- }
64
- return { seat };
65
- }
@@ -1,6 +0,0 @@
1
- /**
2
- * Settlement queue surface: read-model derivation/query and seat allocation/assertion.
3
- * Implementation lives in sibling files; this module preserves the historical import path.
4
- */
5
- export { deriveQueueReadModel, queueMembership, readQueueReadModel, } from "./queue-read-model.js";
6
- export { allocateSettlementSeat, assertClaimQueueHead, } from "./queue-seat-allocation.js";
@@ -1,385 +0,0 @@
1
- import { FlowError } from "../../flow-error.js";
2
- import { readCurrentContractContext } from "../context.js";
3
- import { convergeContractCarrier, withContractCarrierSession } from "../contract-carrier.js";
4
- import { requireCommitCoordinate } from "../../git/commits.js";
5
- import { getCurrentBranch, requireGitRepository } from "../../git/branches.js";
6
- import { readContractLog } from "../log.js";
7
- import { scopePathEvidence } from "../scope.js";
8
- import { nextReviewResponseNumber } from "../transcripts.js";
9
- import { stableRepoRoot } from "../worktree-path.js";
10
- import { isCompleteLifecycleOutcome } from "../outcome-base.js";
11
- import { claimContract } from "./claim.js";
12
- import { assertClaimQueueHead, deriveQueueReadModel } from "./queue.js";
13
- import { classifyCurrentPetitionWindow } from "./petition-window.js";
14
- import { buildClaimGatePipeline, } from "./petition-claim-gates.js";
15
- import { composeVerificationPlan, contractVerificationDeclarations, resolveVerificationPolicy } from "./verification.js";
16
- import { forfeitKeiyaku } from "./petition-forfeit.js";
17
- import { assertHeadUnchanged } from "./petition-head-guard.js";
18
- import { petitionContract } from "./petition.js";
19
- import { verdictContract } from "./verdict.js";
20
- const VERDICT_DENIED_CODE = "VERDICT_DENIED";
21
- async function resolveClaimGateConfig(cwd) {
22
- const merged = {
23
- repositoryGates: [],
24
- verificationTimeoutMs: 300_000,
25
- };
26
- try {
27
- const policy = await resolveVerificationPolicy(cwd);
28
- merged.repositoryGates = policy.commands;
29
- merged.verificationTimeoutMs = policy.timeoutMs;
30
- return merged;
31
- }
32
- catch (error) {
33
- if (error instanceof FlowError && error.code === "INVALID_SETTINGS") {
34
- throw new FlowError(VERDICT_DENIED_CODE, `Configuration Error: ${error.message}`, {
35
- cause: error,
36
- facts: error.facts,
37
- });
38
- }
39
- throw error;
40
- }
41
- }
42
- async function pinnedCloseCandidate(cwd, contractId, signal) {
43
- return withContractCarrierSession({ cwd, contractId, mode: "observe-only", signal }, async (session) => {
44
- if (session.target.status !== "available" || !session.pins.delivery.head) {
45
- throw new FlowError("INTERNAL_STATE", session.target.status === "available" ? `contract ${contractId} delivery ref does not resolve` : session.target.reason);
46
- }
47
- const coordinate = await requireCommitCoordinate(session.target.root, "HEAD");
48
- if (coordinate.commit !== session.pins.delivery.head) {
49
- throw new FlowError("INTERNAL_STATE", `contract ${contractId} delivery head changed while petition was being prepared`);
50
- }
51
- const bind = session.lifecycle.history.find(({ entry }) => entry.kind === "bind")?.entry;
52
- return {
53
- deliveryCwd: session.target.root,
54
- candidate: { head: coordinate.commit, tree: coordinate.tree },
55
- contractVerification: contractVerificationDeclarations(session.lifecycle),
56
- preparation: bind?.kind === "bind" && bind.data.workspace === "worktree" ? bind.data.bootstrap ?? null : null,
57
- };
58
- });
59
- }
60
- async function loadCloseContext(cwd, requestedContractId, signal) {
61
- await requireGitRepository(cwd, "petition");
62
- if (requestedContractId) {
63
- const lifecycle = (await convergeContractCarrier({ cwd, contractId: requestedContractId, signal, mode: "observe-only" })).lifecycle;
64
- const pinned = await pinnedCloseCandidate(cwd, requestedContractId, signal);
65
- return {
66
- cwd,
67
- deliveryCwd: pinned.deliveryCwd,
68
- verificationCandidate: pinned.candidate,
69
- contractVerification: pinned.contractVerification,
70
- verificationPreparation: pinned.preparation,
71
- keiyakuBranch: `keiyaku/${requestedContractId}`,
72
- baseBranch: lifecycle.pins.target.ref.slice("refs/heads/".length),
73
- contractId: requestedContractId,
74
- };
75
- }
76
- let contractContext;
77
- try {
78
- contractContext = await readCurrentContractContext(cwd);
79
- }
80
- catch (error) {
81
- if (!(error instanceof FlowError) || error.code !== "EMPTY_PARAM") {
82
- throw error;
83
- }
84
- throw new FlowError("NOT_ACTIVE_KEIYAKU_BRANCH", "Current workspace is not addressing an active Keiyaku contract.");
85
- }
86
- const keiyakuBranch = await getCurrentBranch(cwd);
87
- const pinned = await pinnedCloseCandidate(cwd, contractContext.contractId, signal);
88
- return {
89
- cwd,
90
- deliveryCwd: pinned.deliveryCwd,
91
- verificationCandidate: pinned.candidate,
92
- contractVerification: pinned.contractVerification,
93
- verificationPreparation: pinned.preparation,
94
- keiyakuBranch,
95
- baseBranch: contractContext.baseBranch,
96
- contractId: contractContext.contractId,
97
- };
98
- }
99
- async function throwClaimGateFailure(failure, _input, context, _dependencies) {
100
- void _input;
101
- void _dependencies;
102
- void context.contractId;
103
- if (failure.reviewHeadBeforeWrite) {
104
- await assertHeadUnchanged(context.cwd, failure.reviewHeadBeforeWrite, "claim review");
105
- }
106
- throw new FlowError(failure.code, failure.message, {
107
- review: failure.review,
108
- facts: failure.facts,
109
- });
110
- }
111
- async function runClaimGatePipelineOrThrow(input, context, dependencies) {
112
- const deliveryCwd = context.deliveryCwd ?? context.cwd;
113
- const verificationCandidate = context.verificationCandidate ?? await (async () => {
114
- const coordinate = await requireCommitCoordinate(deliveryCwd, "HEAD");
115
- return { head: coordinate.commit, tree: coordinate.tree };
116
- })();
117
- const verificationPreparation = context.verificationPreparation ?? null;
118
- const gateConfig = await dependencies.resolveClaimGateConfig(context.cwd);
119
- const repositoryGates = gateConfig.repositoryGates ?? gateConfig.verificationCommands ?? [];
120
- const verificationPlan = composeVerificationPlan({ contract: context.contractVerification ?? [], repositoryGates, timeoutMs: gateConfig.verificationTimeoutMs });
121
- const repositoryRoot = await stableRepoRoot(context.cwd);
122
- let review;
123
- let reviewHeadBeforeWrite;
124
- let reviewerActor;
125
- let reviewPersistence;
126
- let verification;
127
- for (const gate of buildClaimGatePipeline()) {
128
- const result = await gate.evaluate({
129
- cwd: deliveryCwd,
130
- repositoryRoot,
131
- contractId: context.contractId,
132
- input,
133
- verificationPlan,
134
- verificationCandidate,
135
- verificationPreparation,
136
- baseBranch: dependencies.baseBranch,
137
- reviewNumber: dependencies.reviewNumber,
138
- });
139
- if (!result.pass) {
140
- await throwClaimGateFailure(result, input, context, dependencies);
141
- }
142
- if (result.review) {
143
- review = result.review;
144
- reviewHeadBeforeWrite = result.reviewHeadBeforeWrite;
145
- }
146
- if (result.reviewerActor)
147
- reviewerActor = result.reviewerActor;
148
- if (result.reviewPersistence)
149
- reviewPersistence = result.reviewPersistence;
150
- if ("verification" in result && result.verification)
151
- verification = result.verification;
152
- }
153
- await assertHeadUnchanged(deliveryCwd, verificationCandidate.head, "claim verification");
154
- return { review, reviewHeadBeforeWrite, reviewerActor, reviewPersistence, verification };
155
- }
156
- function maxArc(entries) {
157
- return entries.filter((entry) => entry.kind === "arc").length;
158
- }
159
- function cleanupWarnings(cleanup) {
160
- return [
161
- ...(cleanup.worktreeRemoveFailure
162
- ? [`Could not remove contract worktree ${cleanup.worktreeRemoveFailure.path}: ${cleanup.worktreeRemoveFailure.reason}`]
163
- : []),
164
- ...(cleanup.deliveryRef.status === "mismatch"
165
- ? [`Delivery ref ${cleanup.deliveryRef.mismatch.ref} remains present at ${cleanup.deliveryRef.mismatch.observed.head}; terminal replay preserved it as a projected-surface mismatch.`]
166
- : []),
167
- ];
168
- }
169
- /**
170
- * Crash-recovery head: petition → approved verdict → no claim.
171
- * Orchestrator resumes claim delivery only; no gates, petition, or re-judgment.
172
- */
173
- function isApprovedVerdictAwaitingClaim(lifecycle) {
174
- return lifecycle.phase === "approved"
175
- && lifecycle.petition.state === "approved"
176
- && lifecycle.petition.intent === "claim";
177
- }
178
- /** Resume the first missing stage of an existing petition settlement. */
179
- export async function reconcilePetitionRetry(input) {
180
- const observed = await withContractCarrierSession({ ...input, mode: "observe-only" }, async (session) => ({
181
- window: classifyCurrentPetitionWindow(session.lifecycle, session.pins),
182
- queue: deriveQueueReadModel(session.repository),
183
- }));
184
- if (observed.window.status === "none")
185
- return { status: "not-needed" };
186
- if (observed.window.status === "approved-awaiting-claim") {
187
- return { status: "approved-awaiting-claim" };
188
- }
189
- if (observed.window.status === "invalid") {
190
- throw new FlowError("INTERNAL_STATE", `contract ${input.contractId} petition recovery is invalid: ${observed.window.reason}`);
191
- }
192
- assertClaimQueueHead(observed.queue, input.contractId);
193
- if (observed.window.coordinates === "fresh") {
194
- return {
195
- status: "verdict",
196
- result: "approved",
197
- reason: "resume",
198
- verdict: await verdictContract({
199
- cwd: input.cwd,
200
- contractId: input.contractId,
201
- actor: "keiyaku",
202
- nowMs: Date.now(),
203
- result: "approved",
204
- summary: "Recovered passed petition at its pinned candidate.",
205
- signal: input.signal,
206
- }),
207
- };
208
- }
209
- const reason = observed.window.coordinates;
210
- return {
211
- status: "verdict",
212
- result: "rejected",
213
- reason,
214
- verdict: await verdictContract({
215
- cwd: input.cwd,
216
- contractId: input.contractId,
217
- actor: "keiyaku",
218
- nowMs: Date.now(),
219
- result: "rejected",
220
- summary: reason === "target-drift"
221
- ? "Petition target advanced before verdict."
222
- : "Petition delivery changed before verdict.",
223
- signal: input.signal,
224
- }),
225
- };
226
- }
227
- export async function recoverCurrentPetitionSeal(cwd, lifecycle) {
228
- if (lifecycle.petition.state !== "approved" || lifecycle.petition.intent !== "claim")
229
- return undefined;
230
- const petitionObjectId = lifecycle.petition.objectId;
231
- const petitionIndex = lifecycle.history.findIndex(({ objectId }) => objectId === petitionObjectId);
232
- if (petitionIndex <= 0)
233
- return undefined;
234
- const seal = lifecycle.history[petitionIndex - 1];
235
- if (seal?.entry.kind !== "seal" || seal.entry.data.sealedBy !== "petition")
236
- return undefined;
237
- const scopeViolationEvidence = await scopePathEvidence(cwd, lifecycle.effectiveScope, seal.entry.data.scopeAudit.violations);
238
- return {
239
- ...seal.entry.data,
240
- receipts: [...seal.entry.data.receipts],
241
- diffstat: { ...seal.entry.data.diffstat },
242
- scopeAudit: { violations: [...seal.entry.data.scopeAudit.violations] },
243
- scopeViolationEvidence,
244
- ledgerHead: seal.objectId,
245
- };
246
- }
247
- async function finishApprovedClaim(context, options) {
248
- const { cwd, baseBranch, contractId } = context;
249
- // Capture arc facts before claim cleanup may remove the delivery worktree cwd.
250
- const log = await readContractLog({ cwd, contractId, signal: options.signal });
251
- const claimed = await claimContract({
252
- cwd,
253
- contractId,
254
- actor: "keiyaku",
255
- nowMs: options.nowMs,
256
- signal: options.signal,
257
- });
258
- if (!isCompleteLifecycleOutcome(claimed))
259
- return claimed;
260
- if (!claimed.cleanup)
261
- throw new FlowError("INTERNAL_STATE", "complete claim has no terminal cleanup facts");
262
- const cleanup = claimed.cleanup;
263
- const warnings = [...(claimed.warnings ?? []), ...cleanupWarnings(cleanup)];
264
- return {
265
- ...claimed,
266
- status: "success",
267
- result: "merged",
268
- arc: maxArc(log.entries),
269
- currentBranch: baseBranch,
270
- baseBranch,
271
- commit: claimed.mergeCommit,
272
- mergedInto: baseBranch,
273
- cleanup,
274
- diff: `Merged contract ${contractId} with merge-tree/commit-tree CAS.`,
275
- // Prior public outcome carried sealed facts when petition sealed an open arc.
276
- ...(options.sealed ? { sealed: options.sealed } : {}),
277
- ...(warnings.length > 0 ? { meta: { warnings } } : {}),
278
- carrier: claimed.carrier,
279
- };
280
- }
281
- /**
282
- * Settlement claim path: gates → petition → pure verdict → claim delivery.
283
- * Stage modules do not call each other; this orchestrator owns the sequence.
284
- *
285
- * Atomicity equivalence: previously verdictContract appended the verdict entry
286
- * then immediately invoked claimContract. That remains two sequential append
287
- * windows (verdict then claim). Crash after approved verdict leaves state
288
- * petitioned with an approved verdict; the orchestrator detects that head and
289
- * resumes claimContract idempotently without re-running gates or judgment.
290
- */
291
- export async function claimKeiyaku(input, context, dependencies) {
292
- const { cwd, baseBranch, contractId } = context;
293
- const retry = await reconcilePetitionRetry({
294
- cwd,
295
- contractId,
296
- signal: input.signal,
297
- });
298
- if (retry.status === "verdict" && !isCompleteLifecycleOutcome(retry.verdict)) {
299
- return retry.verdict;
300
- }
301
- // Crash recovery: petition → approved verdict → no claim.
302
- // Resume claim delivery only; do not re-gate, re-petition, or re-judge.
303
- const existing = await convergeContractCarrier({ cwd, contractId, signal: input.signal, mode: "observe-only" });
304
- if (isApprovedVerdictAwaitingClaim(existing.lifecycle)) {
305
- const sealed = await recoverCurrentPetitionSeal(cwd, existing.lifecycle);
306
- return finishApprovedClaim(context, {
307
- nowMs: Date.now(),
308
- signal: input.signal,
309
- ...(sealed ? { sealed } : {}),
310
- });
311
- }
312
- const claimResult = "dangerouslyBypassGates" in input && input.dangerouslyBypassGates
313
- ? { review: undefined, reviewHeadBeforeWrite: undefined, reviewPersistence: undefined, bypassedByArchitect: true }
314
- : {
315
- ...(await runClaimGatePipelineOrThrow(input, context, {
316
- ...dependencies,
317
- baseBranch,
318
- reviewNumber: await nextReviewResponseNumber(cwd),
319
- })),
320
- bypassedByArchitect: false,
321
- };
322
- const oath = String(input.oath ?? "").trim();
323
- if (!oath) {
324
- throw new FlowError("OATH_MISSING", "Oath missing.");
325
- }
326
- // 1. Petition: seal + admit onto the target-local settlement queue.
327
- const petition = await petitionContract({
328
- cwd,
329
- contractId,
330
- actor: "keiyaku",
331
- nowMs: Date.now(),
332
- intent: "claim",
333
- oath,
334
- appendScope: input.appendScope,
335
- reviewPersistence: claimResult.reviewPersistence,
336
- signal: input.signal,
337
- });
338
- if (!isCompleteLifecycleOutcome(petition))
339
- return petition;
340
- const review = claimResult.review
341
- ? { ...claimResult.review, ...(petition.reviewHistoryPath ? { historyPath: petition.reviewHistoryPath } : {}) }
342
- : undefined;
343
- // 2. Pure verdict: judgment facts only; no claim execution.
344
- // Capture one clock for verdict + claim so ledger timestamps match the prior
345
- // verdict→claim atomic pair (verdict previously forwarded its own nowMs).
346
- const judgmentNowMs = Date.now();
347
- const verdict = await verdictContract({
348
- cwd,
349
- contractId,
350
- actor: claimResult.reviewerActor ?? "keiyaku",
351
- nowMs: judgmentNowMs,
352
- result: "approved",
353
- summary: review?.findings?.trim() || "礼成",
354
- signal: input.signal,
355
- });
356
- if (!isCompleteLifecycleOutcome(verdict))
357
- return verdict;
358
- // 3. Execution: approved → claim delivery (same sequential append window as before).
359
- // Rejected verdict publication is verdictContract itself (state returns active).
360
- if (verdict.result !== "approved") {
361
- throw new FlowError("INTERNAL_STATE", `settlement expected approved verdict for ${contractId}, got ${verdict.result}`);
362
- }
363
- const completed = await finishApprovedClaim(context, {
364
- nowMs: judgmentNowMs,
365
- signal: input.signal,
366
- ...(petition.sealed ? { sealed: petition.sealed } : {}),
367
- });
368
- if (!claimResult.verification || !isCompleteLifecycleOutcome(completed))
369
- return completed;
370
- return { ...completed, verification: claimResult.verification };
371
- }
372
- /** Public settlement entrypoint for CLI petition (claim or forfeit). */
373
- export async function petitionKeiyaku(input) {
374
- const context = await loadCloseContext(input.cwd, input.contractId, input.signal);
375
- const { intent } = input;
376
- if (intent === "FORFEIT") {
377
- return forfeitKeiyaku(context, input.signal);
378
- }
379
- if (intent === "CLAIM") {
380
- return claimKeiyaku(input, context, {
381
- resolveClaimGateConfig,
382
- });
383
- }
384
- throw new FlowError("INVALID_CLOSE_INTENT", `unsupported close intent: ${intent}`);
385
- }
@@ -1,126 +0,0 @@
1
- import { FlowError } from "../../flow-error.js";
2
- import { runLifecycle } from "../lifecycle-runner.js";
3
- import { assertClaimQueueHead } from "./queue.js";
4
- import { deriveQueueReadModel } from "./queue-read-model.js";
5
- import { currentLifecycleState } from "../repository-ledger/read-model.js";
6
- function assertFoldedPetitioned(contractId, model) {
7
- const state = currentLifecycleState(model);
8
- if (state.state !== "petitioned") {
9
- throw new FlowError("INTERNAL_STATE", `contract ${contractId} cannot verdict from state ${state.state}`);
10
- }
11
- }
12
- function assertApprovedWindow(contractId, model, pins) {
13
- if (model.petition.state !== "awaiting-verdict") {
14
- throw new FlowError("VERDICT_DENIED", `contract ${contractId} cannot approve petition without an awaiting-verdict fold`);
15
- }
16
- if (!pins.target.head || !pins.delivery.head) {
17
- throw new FlowError("VERDICT_DENIED", `contract ${contractId} cannot approve petition because current coordinates do not resolve`);
18
- }
19
- if (model.pins.base !== pins.target.head) {
20
- throw new FlowError("VERDICT_DENIED", `contract ${contractId} cannot approve petition from target-drift`);
21
- }
22
- if (model.pins.delivery !== pins.delivery.head) {
23
- throw new FlowError("VERDICT_DENIED", `contract ${contractId} cannot approve petition from delivery-drift`);
24
- }
25
- }
26
- /**
27
- * Append a verdict entry and return typed judgment facts.
28
- * Does not claim, clean up, or otherwise execute delivery.
29
- */
30
- export async function verdictContract(input) {
31
- const at = new Date(input.nowMs).toISOString();
32
- const execution = await runLifecycle({
33
- cwd: input.cwd,
34
- contractId: input.contractId,
35
- mutation: {
36
- verb: "verdict",
37
- matchesAccepted: (transaction) => {
38
- const accepted = transaction.entries.at(-1);
39
- return accepted?.kind === "verdict"
40
- && accepted.data.result === input.result
41
- && accepted.data.summary === input.summary;
42
- },
43
- },
44
- signal: input.signal,
45
- admit: async (session, replay) => {
46
- const transaction = replay.state === "verb-committed" ? replay.transaction : undefined;
47
- const accepted = transaction?.entries.at(-1);
48
- if (accepted && accepted.kind !== "verdict") {
49
- throw new FlowError("INTERNAL_STATE", `accepted transaction ${transaction.transactionObjectId} is not a verdict`);
50
- }
51
- if (!accepted)
52
- assertFoldedPetitioned(input.contractId, session.lifecycle);
53
- const queue = input.result === "approved" && !accepted ? deriveQueueReadModel(session.repository) : null;
54
- if (queue) {
55
- assertClaimQueueHead(queue, input.contractId);
56
- assertApprovedWindow(input.contractId, session.lifecycle, session.pins);
57
- }
58
- return {
59
- existing: accepted?.kind === "verdict"
60
- ? { transactionObjectId: transaction.transactionObjectId, result: accepted.data.result, summary: accepted.data.summary }
61
- : undefined,
62
- };
63
- },
64
- prepare: () => ({ entry: {
65
- v: 1,
66
- kind: "verdict",
67
- contract: input.contractId,
68
- at,
69
- actor: input.actor,
70
- data: {
71
- result: input.result,
72
- summary: input.summary,
73
- },
74
- } }),
75
- revalidate: async ({ session, admission }) => {
76
- if (admission.business.existing) {
77
- return session.repository.topology.nodes.some((node) => node.objectId === admission.business.existing.transactionObjectId)
78
- ? undefined
79
- : { code: "VERDICT_CHANGED", message: "current petition verdict changed during preparation" };
80
- }
81
- assertFoldedPetitioned(input.contractId, session.lifecycle);
82
- if (input.result === "approved") {
83
- const queue = deriveQueueReadModel(session.repository);
84
- try {
85
- assertClaimQueueHead(queue, input.contractId);
86
- assertApprovedWindow(input.contractId, session.lifecycle, session.pins);
87
- }
88
- catch (error) {
89
- return {
90
- code: "VERDICT_COORDINATES_CHANGED",
91
- message: error instanceof Error ? error.message : String(error),
92
- };
93
- }
94
- }
95
- return undefined;
96
- },
97
- effect: async ({ context, admission, prepared }) => {
98
- if (admission.business.existing) {
99
- return {
100
- kind: "committed",
101
- commit: await context.replayCommitted({ transactionObjectId: admission.business.existing.transactionObjectId }),
102
- entryKind: "verdict",
103
- value: { result: admission.business.existing.result, summary: admission.business.existing.summary },
104
- };
105
- }
106
- const committed = await context.publishAuthoritative({ verb: "verdict", admittedLedgerHead: admission.ledgerHead, acceptedLifecycleTail: context.session.lifecycle.contractHead, entries: [prepared.entry] });
107
- if (committed.status === "indeterminate") {
108
- return { kind: "precommit-effects-only", authoritativeHead: committed.currentHead ?? admission.ledgerHead };
109
- }
110
- if (committed.status !== "committed") {
111
- return { kind: "refused-before-effects", authoritativeHead: committed.currentHead ?? context.session.pins.repositoryLedgerHead, refusal: { code: "LEDGER_CAS_CONFLICT", message: `contract ${input.contractId} changed during verdict` } };
112
- }
113
- return {
114
- kind: "committed",
115
- commit: committed,
116
- entryKind: "verdict",
117
- value: { result: input.result, summary: input.summary },
118
- };
119
- },
120
- });
121
- if (execution.kind === "noncommitted")
122
- return execution.outcome;
123
- if (execution.kind === "contained")
124
- return { ...execution.outcome, contractId: input.contractId };
125
- return { ...execution.outcome, contractId: input.contractId, ...execution.payload, carrier: execution.carrier };
126
- }