@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,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
- }