@astrosheep/keiyaku 2.9.12 → 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 (655) hide show
  1. package/README.md +10 -126
  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 -31
  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 -4
  313. package/build/cli/commands/akuma/akuma/meta.js +0 -16
  314. package/build/cli/commands/akuma/catalog.js +0 -8
  315. package/build/cli/commands/akuma/list/handler.js +0 -15
  316. package/build/cli/commands/akuma/list/meta-ls.js +0 -9
  317. package/build/cli/commands/akuma/show/handler.js +0 -27
  318. package/build/cli/commands/akuma/show/meta.js +0 -8
  319. package/build/cli/commands/akuma.js +0 -181
  320. package/build/cli/commands/contract/amend/handler.js +0 -17
  321. package/build/cli/commands/contract/amend/meta.js +0 -12
  322. package/build/cli/commands/contract/arc/handler.js +0 -16
  323. package/build/cli/commands/contract/arc/meta.js +0 -26
  324. package/build/cli/commands/contract/audit/handler.js +0 -16
  325. package/build/cli/commands/contract/audit/meta.js +0 -16
  326. package/build/cli/commands/contract/bind/handler.js +0 -39
  327. package/build/cli/commands/contract/bind/meta.js +0 -96
  328. package/build/cli/commands/contract/catalog.js +0 -18
  329. package/build/cli/commands/contract/forfeit/handler.js +0 -17
  330. package/build/cli/commands/contract/forfeit/meta.js +0 -12
  331. package/build/cli/commands/contract/log/handler.js +0 -12
  332. package/build/cli/commands/contract/log/meta.js +0 -12
  333. package/build/cli/commands/contract/petition/handler.js +0 -63
  334. package/build/cli/commands/contract/petition/meta.js +0 -23
  335. package/build/cli/commands/contract/renew/handler.js +0 -24
  336. package/build/cli/commands/contract/renew/meta.js +0 -18
  337. package/build/cli/commands/metadata.js +0 -65
  338. package/build/cli/commands/projection/call/handler.js +0 -43
  339. package/build/cli/commands/projection/call/meta.js +0 -12
  340. package/build/cli/commands/projection/catalog.js +0 -16
  341. package/build/cli/commands/projection/history/handler.js +0 -21
  342. package/build/cli/commands/projection/history/meta.js +0 -9
  343. package/build/cli/commands/projection/kill/handler.js +0 -20
  344. package/build/cli/commands/projection/kill/meta.js +0 -11
  345. package/build/cli/commands/projection/revive/handler.js +0 -56
  346. package/build/cli/commands/projection/revive/meta.js +0 -12
  347. package/build/cli/commands/projection/shared.js +0 -27
  348. package/build/cli/commands/projection/status/handler.js +0 -26
  349. package/build/cli/commands/projection/status/meta.js +0 -9
  350. package/build/cli/commands/projection/tell/handler.js +0 -28
  351. package/build/cli/commands/projection/tell/meta.js +0 -12
  352. package/build/cli/commands/projection/wait/handler.js +0 -55
  353. package/build/cli/commands/projection/wait/meta.js +0 -16
  354. package/build/cli/commands/registry.js +0 -48
  355. package/build/cli/commands/shared.js +0 -74
  356. package/build/cli/commands/skills/catalog.js +0 -6
  357. package/build/cli/commands/skills/install/handler.js +0 -7
  358. package/build/cli/commands/skills/install/meta.js +0 -9
  359. package/build/cli/commands/skills/skills/handler.js +0 -4
  360. package/build/cli/commands/skills/skills/meta.js +0 -10
  361. package/build/cli/commands/system/catalog.js +0 -8
  362. package/build/cli/commands/system/completion/handler.js +0 -10
  363. package/build/cli/commands/system/completion/meta.js +0 -9
  364. package/build/cli/commands/system/dump-env/handler.js +0 -3
  365. package/build/cli/commands/system/dump-env/meta.js +0 -10
  366. package/build/cli/commands/system/guide/handler.js +0 -4
  367. package/build/cli/commands/system/guide/meta.js +0 -9
  368. package/build/cli/commands/task/add/handler.js +0 -22
  369. package/build/cli/commands/task/add/meta.js +0 -19
  370. package/build/cli/commands/task/catalog.js +0 -30
  371. package/build/cli/commands/task/compose/handler.js +0 -18
  372. package/build/cli/commands/task/compose/meta.js +0 -10
  373. package/build/cli/commands/task/doctor/handler.js +0 -4
  374. package/build/cli/commands/task/doctor/meta.js +0 -8
  375. package/build/cli/commands/task/done/handler.js +0 -10
  376. package/build/cli/commands/task/done/meta.js +0 -8
  377. package/build/cli/commands/task/drop/handler.js +0 -3
  378. package/build/cli/commands/task/drop/meta.js +0 -8
  379. package/build/cli/commands/task/hold/handler.js +0 -3
  380. package/build/cli/commands/task/hold/meta.js +0 -8
  381. package/build/cli/commands/task/log/handler.js +0 -12
  382. package/build/cli/commands/task/log/meta.js +0 -8
  383. package/build/cli/commands/task/ls/handler.js +0 -17
  384. package/build/cli/commands/task/ls/meta.js +0 -8
  385. package/build/cli/commands/task/resume/handler.js +0 -3
  386. package/build/cli/commands/task/resume/meta.js +0 -8
  387. package/build/cli/commands/task/shared.js +0 -167
  388. package/build/cli/commands/task/show/handler.js +0 -13
  389. package/build/cli/commands/task/show/meta.js +0 -8
  390. package/build/cli/commands/task/start/handler.js +0 -3
  391. package/build/cli/commands/task/start/meta.js +0 -8
  392. package/build/cli/commands/task/stop/handler.js +0 -10
  393. package/build/cli/commands/task/stop/meta.js +0 -8
  394. package/build/cli/commands/task/task/handler.js +0 -5
  395. package/build/cli/commands/task/task/meta.js +0 -11
  396. package/build/cli/commands/task/update/handler.js +0 -21
  397. package/build/cli/commands/task/update/meta.js +0 -11
  398. package/build/cli/completion.js +0 -88
  399. package/build/cli/draft-artifact.js +0 -50
  400. package/build/cli/flags.js +0 -289
  401. package/build/cli/help.js +0 -100
  402. package/build/cli/index.js +0 -332
  403. package/build/cli/missing-subcommand.js +0 -7
  404. package/build/cli/output-stream-error-policy.js +0 -31
  405. package/build/cli/parse-flags.js +0 -262
  406. package/build/cli/parse-metadata.js +0 -129
  407. package/build/cli/parse-selectors.js +0 -65
  408. package/build/cli/parse.js +0 -237
  409. package/build/cli/projection-address.js +0 -105
  410. package/build/cli/render/address.js +0 -101
  411. package/build/cli/render/amendment-warning.js +0 -8
  412. package/build/cli/render/arc.js +0 -79
  413. package/build/cli/render/audit.js +0 -440
  414. package/build/cli/render/call.js +0 -70
  415. package/build/cli/render/compact-text.js +0 -3
  416. package/build/cli/render/errors.js +0 -101
  417. package/build/cli/render/format.js +0 -226
  418. package/build/cli/render/kanshi.js +0 -263
  419. package/build/cli/render/kill.js +0 -9
  420. package/build/cli/render/lifecycle.js +0 -56
  421. package/build/cli/render/line-width.js +0 -103
  422. package/build/cli/render/misc.js +0 -84
  423. package/build/cli/render/path-prefix-compaction.js +0 -131
  424. package/build/cli/render/petition.js +0 -70
  425. package/build/cli/render/projection-activity.js +0 -332
  426. package/build/cli/render/projection-history.js +0 -64
  427. package/build/cli/render/response-style.js +0 -27
  428. package/build/cli/render/shared.js +0 -232
  429. package/build/cli/render/skills.js +0 -10
  430. package/build/cli/render/status.js +0 -213
  431. package/build/cli/render/success-response.js +0 -80
  432. package/build/cli/render/task.js +0 -174
  433. package/build/cli/render/tell.js +0 -5
  434. package/build/cli/render/terminal-failure.js +0 -65
  435. package/build/cli/render/tool-ledger-rollup.js +0 -74
  436. package/build/cli/render/tool-presentation.js +0 -97
  437. package/build/cli/render/types.js +0 -2
  438. package/build/cli/render/wait.js +0 -275
  439. package/build/cli/skills-install.js +0 -348
  440. package/build/cli/subagent-guard.js +0 -25
  441. package/build/cli/types.js +0 -1
  442. package/build/config/akuma-loader.js +0 -220
  443. package/build/config/env-keys.js +0 -57
  444. package/build/config/env.js +0 -304
  445. package/build/config/provider-policy-ownership.js +0 -10
  446. package/build/config/settings/disease.js +0 -33
  447. package/build/config/settings/knobs.js +0 -8
  448. package/build/config/settings/loader.js +0 -275
  449. package/build/config/settings/provider-instance-fields.js +0 -51
  450. package/build/config/settings/schema.js +0 -108
  451. package/build/core/address-carrier.js +0 -89
  452. package/build/core/addressing.js +0 -407
  453. package/build/core/amend.js +0 -236
  454. package/build/core/amendment-criteria.js +0 -17
  455. package/build/core/amendment-warning.js +0 -10
  456. package/build/core/arc.js +0 -293
  457. package/build/core/atomic-publish.js +0 -64
  458. package/build/core/audit/candidate.js +0 -149
  459. package/build/core/audit/coordinates.js +0 -235
  460. package/build/core/audit/evidence.js +0 -154
  461. package/build/core/audit/facade.js +0 -65
  462. package/build/core/audit/readiness.js +0 -4
  463. package/build/core/audit/report.js +0 -38
  464. package/build/core/audit.js +0 -1
  465. package/build/core/bind-reconciliation.js +0 -390
  466. package/build/core/bind-workspace.js +0 -115
  467. package/build/core/bind.js +0 -402
  468. package/build/core/call/call.js +0 -236
  469. package/build/core/call/context.js +0 -197
  470. package/build/core/call/execution.js +0 -240
  471. package/build/core/call/prompt.js +0 -58
  472. package/build/core/call/reference.js +0 -24
  473. package/build/core/call-persist.js +0 -76
  474. package/build/core/command-markdown.js +0 -45
  475. package/build/core/context.js +0 -104
  476. package/build/core/contract-carrier-runtime.js +0 -408
  477. package/build/core/contract-carrier.js +0 -270
  478. package/build/core/contract-view.js +0 -282
  479. package/build/core/contract.js +0 -18
  480. package/build/core/derived-replay.js +0 -207
  481. package/build/core/draft.js +0 -396
  482. package/build/core/execution-coordinate.js +0 -46
  483. package/build/core/execution-pact.js +0 -126
  484. package/build/core/forfeit.js +0 -132
  485. package/build/core/hints.js +0 -34
  486. package/build/core/identifier-slug.js +0 -116
  487. package/build/core/ids.js +0 -90
  488. package/build/core/lifecycle-history.js +0 -35
  489. package/build/core/lifecycle-recovery.js +0 -117
  490. package/build/core/lifecycle-runner.js +0 -377
  491. package/build/core/log.js +0 -50
  492. package/build/core/markdown/lex.js +0 -274
  493. package/build/core/markdown/parser.js +0 -260
  494. package/build/core/markdown/render.js +0 -68
  495. package/build/core/markdown/sections.js +0 -80
  496. package/build/core/markdown/titles.js +0 -9
  497. package/build/core/markdown/types.js +0 -6
  498. package/build/core/outcome-base.js +0 -185
  499. package/build/core/places.js +0 -175
  500. package/build/core/process-group.js +0 -139
  501. package/build/core/projection/generation/database.js +0 -411
  502. package/build/core/projection/generation/identity.js +0 -84
  503. package/build/core/projection/generation/model.js +0 -256
  504. package/build/core/projection/generation/projection-generation-continuation.js +0 -84
  505. package/build/core/projection/generation/projection-generation-execution.js +0 -217
  506. package/build/core/projection/generation/projection-generation-identity.js +0 -17
  507. package/build/core/projection/generation/projection-generation-launcher.js +0 -220
  508. package/build/core/projection/generation/projection-generation-process.js +0 -46
  509. package/build/core/projection/generation/projection-generation-runner.js +0 -443
  510. package/build/core/projection/generation/projection-generation-runtime.js +0 -97
  511. package/build/core/projection/generation/store.js +0 -98
  512. package/build/core/projection/generation/transitions.js +0 -463
  513. package/build/core/projection/heart.js +0 -9
  514. package/build/core/projection/index.js +0 -28
  515. package/build/core/projection/projection-activity.js +0 -273
  516. package/build/core/projection/projection-alias.js +0 -131
  517. package/build/core/projection/projection-coordinate.js +0 -61
  518. package/build/core/projection/projection-core.js +0 -123
  519. package/build/core/projection/projection-execution-observer.js +0 -270
  520. package/build/core/projection/projection-history.js +0 -474
  521. package/build/core/projection/projection-identity.js +0 -11
  522. package/build/core/projection/projection-kill.js +0 -103
  523. package/build/core/projection/projection-life-observer.js +0 -101
  524. package/build/core/projection/projection-life-protocol.js +0 -115
  525. package/build/core/projection/projection-mint.js +0 -172
  526. package/build/core/projection/projection-runner-lock.js +0 -211
  527. package/build/core/projection/projection-status-observation.js +0 -365
  528. package/build/core/projection/projection-status.js +0 -295
  529. package/build/core/projection/projection-terminal-failure.js +0 -111
  530. package/build/core/projection/projection-wait.js +0 -318
  531. package/build/core/projection/projection-wake.js +0 -360
  532. package/build/core/projection/tell/database.js +0 -127
  533. package/build/core/projection/tell/launch-store.js +0 -244
  534. package/build/core/projection/tell/model.js +0 -98
  535. package/build/core/projection/tell/store.js +0 -245
  536. package/build/core/provider-loader-ports.js +0 -4
  537. package/build/core/registry.js +0 -100
  538. package/build/core/renew-build.js +0 -424
  539. package/build/core/renew-plan.js +0 -239
  540. package/build/core/renew-rewrite.js +0 -77
  541. package/build/core/renew.js +0 -341
  542. package/build/core/repository-ledger/accepted-fold-read.js +0 -19
  543. package/build/core/repository-ledger/accepted-tail.js +0 -116
  544. package/build/core/repository-ledger/admission.js +0 -38
  545. package/build/core/repository-ledger/authoritative-transaction.js +0 -1
  546. package/build/core/repository-ledger/claim-evidence.js +0 -147
  547. package/build/core/repository-ledger/codec.js +0 -297
  548. package/build/core/repository-ledger/current-state-store.js +0 -971
  549. package/build/core/repository-ledger/fold-repository.js +0 -375
  550. package/build/core/repository-ledger/fold.js +0 -248
  551. package/build/core/repository-ledger/git-object-store.js +0 -243
  552. package/build/core/repository-ledger/history-read.js +0 -15
  553. package/build/core/repository-ledger/incremental-read.js +0 -153
  554. package/build/core/repository-ledger/index.js +0 -15
  555. package/build/core/repository-ledger/inventory-plan.js +0 -75
  556. package/build/core/repository-ledger/inventory.js +0 -310
  557. package/build/core/repository-ledger/publication-admission.js +0 -125
  558. package/build/core/repository-ledger/publication.js +0 -353
  559. package/build/core/repository-ledger/read-model.js +0 -469
  560. package/build/core/repository-ledger/transaction-membership.js +0 -78
  561. package/build/core/repository-ledger/traversal.js +0 -404
  562. package/build/core/repository-ledger/write-transaction.js +0 -341
  563. package/build/core/response-artifact-catalog-sqlite.js +0 -112
  564. package/build/core/response-artifact-catalog.js +0 -7
  565. package/build/core/response-artifact-id.js +0 -5
  566. package/build/core/scope.js +0 -416
  567. package/build/core/seal.js +0 -352
  568. package/build/core/settlement/claim-delivery.js +0 -69
  569. package/build/core/settlement/claim.js +0 -256
  570. package/build/core/settlement/index.js +0 -19
  571. package/build/core/settlement/petition-claim-gates.js +0 -246
  572. package/build/core/settlement/petition-forfeit.js +0 -46
  573. package/build/core/settlement/petition-head-guard.js +0 -13
  574. package/build/core/settlement/petition-io.js +0 -1
  575. package/build/core/settlement/petition-preview.js +0 -109
  576. package/build/core/settlement/petition-window.js +0 -50
  577. package/build/core/settlement/petition.js +0 -281
  578. package/build/core/settlement/queue-read-model.js +0 -120
  579. package/build/core/settlement/queue-seat-allocation.js +0 -65
  580. package/build/core/settlement/queue.js +0 -6
  581. package/build/core/settlement/settlement.js +0 -380
  582. package/build/core/settlement/verdict.js +0 -126
  583. package/build/core/settlement/verification-coordination.js +0 -305
  584. package/build/core/settlement/verification-supervisor.js +0 -275
  585. package/build/core/settlement/verification.js +0 -426
  586. package/build/core/sqlite-process-lifetime-lock.js +0 -194
  587. package/build/core/status/board.js +0 -346
  588. package/build/core/status/drift.js +0 -115
  589. package/build/core/status/lifecycle.js +0 -11
  590. package/build/core/stored-agent-event.js +0 -129
  591. package/build/core/structured-query.js +0 -23
  592. package/build/core/target-ref.js +0 -10
  593. package/build/core/task/board.js +0 -247
  594. package/build/core/task/commands.js +0 -376
  595. package/build/core/task/compose.js +0 -327
  596. package/build/core/task/coordinate.js +0 -56
  597. package/build/core/task/document.js +0 -210
  598. package/build/core/task/index.js +0 -16
  599. package/build/core/task/model.js +0 -8
  600. package/build/core/task/query.js +0 -204
  601. package/build/core/task/settlement-git.js +0 -426
  602. package/build/core/task/settlement-policy.js +0 -124
  603. package/build/core/task/source-board.js +0 -103
  604. package/build/core/task/source-model.js +0 -1
  605. package/build/core/task/task-bind-preparation.js +0 -193
  606. package/build/core/task/task-contract.js +0 -371
  607. package/build/core/task/task-doctor.js +0 -14
  608. package/build/core/task/task-file-transaction.js +0 -171
  609. package/build/core/task/task-git-actor.js +0 -33
  610. package/build/core/task/task-git-runtime.js +0 -97
  611. package/build/core/task/task-git-store.js +0 -400
  612. package/build/core/task/task-repository.js +0 -1
  613. package/build/core/task/task-store-repository.js +0 -96
  614. package/build/core/task/task-store.js +0 -1
  615. package/build/core/task/task-worktree.js +0 -25
  616. package/build/core/task/task.js +0 -7
  617. package/build/core/task/tree.js +0 -37
  618. package/build/core/task/validation.js +0 -48
  619. package/build/core/transcripts.js +0 -485
  620. package/build/core/validation.js +0 -17
  621. package/build/core/worktree-bootstrap.js +0 -195
  622. package/build/core/worktree-path.js +0 -375
  623. package/build/errno.js +0 -3
  624. package/build/flow-error.js +0 -183
  625. package/build/fs/durability.js +0 -27
  626. package/build/fs/path-coordinate.js +0 -16
  627. package/build/generated/version.js +0 -3
  628. package/build/git/branches.js +0 -113
  629. package/build/git/commits.js +0 -80
  630. package/build/git/core.js +0 -238
  631. package/build/git/diff/parsers.js +0 -181
  632. package/build/git/diff/pathspec.js +0 -3
  633. package/build/git/diff/preview.js +0 -38
  634. package/build/git/diff/read.js +0 -105
  635. package/build/git/diff/structured.js +0 -127
  636. package/build/git/diff/types.js +0 -1
  637. package/build/git/path-coordinate.js +0 -17
  638. package/build/git/refs.js +0 -225
  639. package/build/git/staging.js +0 -155
  640. package/build/git/streaming-batch.js +0 -361
  641. package/build/git/worktree.js +0 -162
  642. package/build/index.js +0 -60
  643. package/build/keiyaku-constants.js +0 -2
  644. package/build/keiyaku.js +0 -30
  645. package/build/telemetry/debug-log.js +0 -40
  646. package/build/telemetry/logger.js +0 -48
  647. package/skills/keiyaku/SKILL.md +0 -46
  648. package/skills/keiyaku-akuma/SKILL.md +0 -96
  649. package/skills/keiyaku-task/SKILL.md +0 -84
  650. package/skills/keiyaku-workflow/SKILL.md +0 -151
  651. /package/build/{agents/launch-snapshot → src/body}/types.js +0 -0
  652. /package/build/{agents/providers/claude-agent-sdk/terms.js → src/cli/result.js} +0 -0
  653. /package/build/{agents/providers/codex-app-server/terms.js → src/core/decide.js} +0 -0
  654. /package/build/{agents/providers/opencode-sdk/terms.js → src/core/facts/offer.js} +0 -0
  655. /package/build/{agents/providers/pi/terms.js → src/kanshi/report.js} +0 -0
@@ -0,0 +1,78 @@
1
+ import type { AkuId, AkumaPaths } from "../identity.js";
2
+ import type { BodyEnd, BodyFact, Collar, DeathFact, ForkPoint, HeartSnapshot, LeashProbe, RequestFact, RequestInput, SealFact, SessionFact, Soul, TellFact, TellState, TurnFact } from "./facts.js";
3
+ import type { ActivityFact, ActivityFactSlice } from "./rows.js";
4
+ export { life } from "./facts.js";
5
+ export type { AkumaLife, AkumaOrigin, BodyEnd, BodyFact, Collar, CollarProbe, Confinement, DeathFact, HeartSnapshot, ForkPoint, KillEvidence, LeashProbe, ProviderOptions, ProviderExecution, RequestFact, RequestInput, RequestRecipe, ResumeCoordinate, SealFact, SessionFact, Soul, TellFact, TellState, TurnFact, TurnOutcome, } from "./facts.js";
6
+ export declare function initializeHeart(paths: AkumaPaths): void;
7
+ export declare class HeldAkumaLeash {
8
+ private readonly database;
9
+ private closed;
10
+ private constructor();
11
+ static try(paths: AkumaPaths): HeldAkumaLeash | null;
12
+ birth(paths: AkumaPaths, soul: Soul, session?: Omit<SessionFact, "sequence">): "born" | "already-born" | "sealed";
13
+ sealIfUnborn(paths: AkumaPaths, input: Readonly<{
14
+ evidence: string;
15
+ at: string;
16
+ }>): "born" | "sealed";
17
+ clearPause(paths: AkumaPaths): void;
18
+ release(): void;
19
+ }
20
+ export declare function probeLeash(paths: AkumaPaths): LeashProbe;
21
+ export declare function readSoul(paths: AkumaPaths): Soul | null;
22
+ export declare function heartExists(paths: AkumaPaths): boolean;
23
+ export declare function readSeal(paths: AkumaPaths): SealFact | null;
24
+ export declare function recordBody(paths: AkumaPaths, input: Readonly<{
25
+ collar: Collar;
26
+ leashTakenAt: string;
27
+ }>): BodyFact;
28
+ export declare function recordSession(paths: AkumaPaths, input: Omit<SessionFact, "sequence">): SessionFact;
29
+ export declare function appendActivity(paths: AkumaPaths, input: Readonly<{
30
+ bodySequence: number;
31
+ event: unknown;
32
+ at: string;
33
+ }>): number;
34
+ export type ActivitySliceInput = Readonly<{
35
+ before?: number;
36
+ since?: number;
37
+ limit?: number;
38
+ }>;
39
+ export type ActivitySlice = ActivityFactSlice;
40
+ export type { ActivityFact };
41
+ export declare function activitySlice(paths: AkumaPaths, input?: ActivitySliceInput): ActivitySlice;
42
+ export declare function recordTell(paths: AkumaPaths, tell: Omit<TellFact, "state">): "recorded" | "dead";
43
+ export declare function advanceTell(paths: AkumaPaths, id: string, state: Exclude<TellState, "recorded" | "voided-by-death">): void;
44
+ export declare function admitRequest(paths: AkumaPaths, input: RequestInput & Readonly<{
45
+ admittedAt: string;
46
+ }>): RequestFact;
47
+ export declare function reserveRequest(paths: AkumaPaths, id: string, child: AkuId): RequestFact;
48
+ export declare function serveRequest(paths: AkumaPaths, id: string, child: AkuId): RequestFact;
49
+ export declare function refuseRequest(paths: AkumaPaths, id: string, diagnostic: string): RequestFact;
50
+ export declare function voidRequest(paths: AkumaPaths, id: string, evidence: string): RequestFact;
51
+ export declare function readRequest(paths: AkumaPaths, id: string): RequestFact | null;
52
+ export declare function readNonterminalRequests(paths: AkumaPaths): readonly RequestFact[];
53
+ export declare function requestStop(paths: AkumaPaths, at: string): "requested" | "dead";
54
+ export declare function requestPause(paths: AkumaPaths, at: string): "requested" | "dead";
55
+ export declare function stopRequested(paths: AkumaPaths): boolean;
56
+ export declare function pauseRequested(paths: AkumaPaths): boolean;
57
+ export declare function clearAbandonedControl(paths: AkumaPaths): void;
58
+ export declare function recordDeath(paths: AkumaPaths, death: DeathFact): "recorded" | "already-dead";
59
+ export declare function breakBody(paths: AkumaPaths, input: Readonly<{
60
+ sequence: number;
61
+ end: Exclude<BodyEnd, "exited">;
62
+ at: string;
63
+ }>): void;
64
+ export declare function recordTurn(paths: AkumaPaths, input: Omit<TurnFact, "sequence">): TurnFact;
65
+ export declare function finishBodyIfIdle(paths: AkumaPaths, input: Readonly<{
66
+ sequence: number;
67
+ at: string;
68
+ }>): Readonly<{
69
+ kind: "finished";
70
+ } | {
71
+ kind: "pending";
72
+ tells: readonly string[];
73
+ }>;
74
+ export declare function readHeart(paths: AkumaPaths): HeartSnapshot;
75
+ export declare function readTurns(paths: AkumaPaths): readonly TurnFact[];
76
+ export declare function readLastAnsweredTurn(paths: AkumaPaths): TurnFact | null;
77
+ export declare function readCurrentTurn(paths: AkumaPaths): TurnFact | null;
78
+ export declare function readForkPoint(paths: AkumaPaths, historyId: string): ForkPoint | null;
@@ -0,0 +1,361 @@
1
+ import { existsSync } from "node:fs";
2
+ import { DatabaseSync } from "node:sqlite";
3
+ import { HEART_SCHEMA, LEASH_SCHEMA, assertHeartSchemaVersion, assertLeashSchemaVersion, } from "./schema.js";
4
+ import { activityFactSlice, answeredTurnFact, deathExists, deathFact, deleteAbandonedControls, deletePauseControl, endBodyFact, finishBodyFact, historyFacts, insertActivityFact, insertAnsweredTurnFact, insertBodyFact, insertDeathFact, insertFailedTurnFact, insertPauseControl, insertRequestFact, insertSealFact, insertSessionFact, insertSoulFact, insertStopControl, insertTellFact, latestBodyFact, latestSessionFact, latestTurnFact, lastAnsweredTurnFact, nonterminalRequestFacts, pauseExists, pendingTellFacts, pruneActivityFacts, requestFact, sealExists, sealFact, sessionFactForCoordinate, soulFact, stopExists, tellState, updateRequestRefused, updateRequestReserved, updateRequestServed, updateRequestVoided, updateTellState, voidRequestsByDeath, voidTellsByDeath, } from "./rows.js";
5
+ export { life } from "./facts.js";
6
+ const ACTIVITY_LIMIT = 5_000;
7
+ function isBusy(error) {
8
+ const value = error;
9
+ const message = String(value?.message ?? "").toLowerCase();
10
+ return value?.code === "ERR_SQLITE_BUSY" || value?.code === "ERR_SQLITE_LOCKED"
11
+ || value?.errcode === 5 || message.includes("database is locked") || message.includes("database is busy");
12
+ }
13
+ function openHeart(path, verify = true) {
14
+ const database = new DatabaseSync(path);
15
+ database.exec("PRAGMA foreign_keys=ON; PRAGMA busy_timeout=5000; PRAGMA journal_mode=WAL");
16
+ if (verify)
17
+ assertHeartSchemaVersion(database);
18
+ return database;
19
+ }
20
+ function withHeart(paths, body) {
21
+ const database = openHeart(paths.heart);
22
+ try {
23
+ return body(database);
24
+ }
25
+ finally {
26
+ database.close();
27
+ }
28
+ }
29
+ function transaction(database, body) {
30
+ database.exec("BEGIN IMMEDIATE");
31
+ try {
32
+ const result = body();
33
+ database.exec("COMMIT");
34
+ return result;
35
+ }
36
+ catch (error) {
37
+ try {
38
+ database.exec("ROLLBACK");
39
+ }
40
+ catch { /* preserve the adjudication failure */ }
41
+ throw error;
42
+ }
43
+ }
44
+ export function initializeHeart(paths) {
45
+ const heart = openHeart(paths.heart, false);
46
+ try {
47
+ heart.exec(HEART_SCHEMA);
48
+ assertHeartSchemaVersion(heart);
49
+ }
50
+ finally {
51
+ heart.close();
52
+ }
53
+ const leash = new DatabaseSync(paths.leash);
54
+ try {
55
+ leash.exec(LEASH_SCHEMA);
56
+ assertLeashSchemaVersion(leash);
57
+ }
58
+ finally {
59
+ leash.close();
60
+ }
61
+ }
62
+ export class HeldAkumaLeash {
63
+ database;
64
+ closed = false;
65
+ constructor(database) {
66
+ this.database = database;
67
+ }
68
+ static try(paths) {
69
+ const database = new DatabaseSync(paths.leash, { timeout: 0 });
70
+ try {
71
+ assertLeashSchemaVersion(database);
72
+ database.exec("PRAGMA busy_timeout=0; BEGIN EXCLUSIVE");
73
+ return new HeldAkumaLeash(database);
74
+ }
75
+ catch (error) {
76
+ database.close();
77
+ if (isBusy(error))
78
+ return null;
79
+ throw error;
80
+ }
81
+ }
82
+ birth(paths, soul, session) {
83
+ if (sealExists(this.database))
84
+ return "sealed";
85
+ return withHeart(paths, (heart) => transaction(heart, () => {
86
+ if (soulFact(heart) !== null)
87
+ return "already-born";
88
+ insertSoulFact(heart, soul);
89
+ if (session !== undefined)
90
+ insertSessionFact(heart, session);
91
+ return "born";
92
+ }));
93
+ }
94
+ sealIfUnborn(paths, input) {
95
+ if (withHeart(paths, (heart) => soulFact(heart)) !== null)
96
+ return "born";
97
+ insertSealFact(this.database, input);
98
+ this.database.exec("COMMIT");
99
+ this.closed = true;
100
+ this.database.close();
101
+ return "sealed";
102
+ }
103
+ clearPause(paths) { withHeart(paths, deletePauseControl); }
104
+ release() {
105
+ if (this.closed)
106
+ return;
107
+ this.closed = true;
108
+ try {
109
+ this.database.exec("ROLLBACK");
110
+ }
111
+ finally {
112
+ this.database.close();
113
+ }
114
+ }
115
+ }
116
+ export function probeLeash(paths) {
117
+ const claim = HeldAkumaLeash.try(paths);
118
+ if (claim === null)
119
+ return "held";
120
+ claim.release();
121
+ return "free";
122
+ }
123
+ export function readSoul(paths) {
124
+ if (!existsSync(paths.heart))
125
+ return null;
126
+ return withHeart(paths, soulFact);
127
+ }
128
+ export function heartExists(paths) { return existsSync(paths.heart); }
129
+ export function readSeal(paths) {
130
+ if (!existsSync(paths.leash))
131
+ return null;
132
+ const leash = new DatabaseSync(paths.leash);
133
+ try {
134
+ assertLeashSchemaVersion(leash);
135
+ return sealFact(leash);
136
+ }
137
+ finally {
138
+ leash.close();
139
+ }
140
+ }
141
+ export function recordBody(paths, input) {
142
+ return withHeart(paths, (heart) => {
143
+ return { sequence: insertBodyFact(heart, input), collar: input.collar, leashTakenAt: input.leashTakenAt };
144
+ });
145
+ }
146
+ export function recordSession(paths, input) {
147
+ return withHeart(paths, (heart) => ({ sequence: insertSessionFact(heart, input), ...input }));
148
+ }
149
+ export function appendActivity(paths, input) {
150
+ return withHeart(paths, (heart) => transaction(heart, () => {
151
+ const sequence = insertActivityFact(heart, input);
152
+ pruneActivityFacts(heart, ACTIVITY_LIMIT);
153
+ return sequence;
154
+ }));
155
+ }
156
+ export function activitySlice(paths, input = {}) {
157
+ const limit = input.limit ?? ACTIVITY_LIMIT;
158
+ return withHeart(paths, (heart) => activityFactSlice(heart, { ...input, limit }));
159
+ }
160
+ export function recordTell(paths, tell) {
161
+ return withHeart(paths, (heart) => transaction(heart, () => {
162
+ if (deathExists(heart))
163
+ return "dead";
164
+ insertTellFact(heart, tell);
165
+ return "recorded";
166
+ }));
167
+ }
168
+ const TELL_ORDER = {
169
+ recorded: 0,
170
+ delivered: 1,
171
+ seen: 2,
172
+ consumed: 3,
173
+ "voided-by-death": 3,
174
+ };
175
+ export function advanceTell(paths, id, state) {
176
+ withHeart(paths, (heart) => transaction(heart, () => {
177
+ const current = tellState(heart, id);
178
+ if (current === null)
179
+ throw new Error(`unknown tell ${id}`);
180
+ if (TELL_ORDER[state] < TELL_ORDER[current] || current === "voided-by-death")
181
+ return;
182
+ updateTellState(heart, id, state);
183
+ }));
184
+ }
185
+ function sameRequestInput(fact, input) {
186
+ return fact.id === input.id
187
+ && fact.archetype === input.archetype
188
+ && fact.body === input.body
189
+ && fact.cwd === input.cwd
190
+ && fact.world === input.world
191
+ && JSON.stringify(fact.recipe) === JSON.stringify(input.recipe);
192
+ }
193
+ export function admitRequest(paths, input) {
194
+ return withHeart(paths, (heart) => transaction(heart, () => {
195
+ insertRequestFact(heart, input);
196
+ const fact = requestFact(heart, input.id);
197
+ if (fact === null)
198
+ throw new Error(`Akuma request ${input.id} was not admitted`);
199
+ if (!sameRequestInput(fact, input))
200
+ throw new Error(`Akuma request ${input.id} reused different input`);
201
+ return fact;
202
+ }));
203
+ }
204
+ export function reserveRequest(paths, id, child) {
205
+ return withHeart(paths, (heart) => transaction(heart, () => {
206
+ const before = requestFact(heart, id);
207
+ if (before === null)
208
+ throw new Error(`unknown Akuma request ${id}`);
209
+ if (before.state === "admitted")
210
+ updateRequestReserved(heart, id, child);
211
+ else if ((before.state !== "reserved" && before.state !== "served") || before.child !== child) {
212
+ throw new Error(`Akuma request ${id} cannot reserve ${child}`);
213
+ }
214
+ return requestFact(heart, id);
215
+ }));
216
+ }
217
+ export function serveRequest(paths, id, child) {
218
+ return withHeart(paths, (heart) => transaction(heart, () => {
219
+ const before = requestFact(heart, id);
220
+ if (before === null)
221
+ throw new Error(`unknown Akuma request ${id}`);
222
+ if (before.state === "reserved" && before.child === child)
223
+ updateRequestServed(heart, id, child);
224
+ else if (before.state !== "served" || before.child !== child) {
225
+ throw new Error(`Akuma request ${id} cannot serve ${child}`);
226
+ }
227
+ return requestFact(heart, id);
228
+ }));
229
+ }
230
+ export function refuseRequest(paths, id, diagnostic) {
231
+ return withHeart(paths, (heart) => transaction(heart, () => {
232
+ const before = requestFact(heart, id);
233
+ if (before === null)
234
+ throw new Error(`unknown Akuma request ${id}`);
235
+ if (before.state === "admitted")
236
+ updateRequestRefused(heart, id, diagnostic);
237
+ else if (before.state !== "refused" || before.diagnostic !== diagnostic) {
238
+ throw new Error(`Akuma request ${id} cannot be refused`);
239
+ }
240
+ return requestFact(heart, id);
241
+ }));
242
+ }
243
+ export function voidRequest(paths, id, evidence) {
244
+ return withHeart(paths, (heart) => transaction(heart, () => {
245
+ const before = requestFact(heart, id);
246
+ if (before === null)
247
+ throw new Error(`unknown Akuma request ${id}`);
248
+ if (before.state === "admitted" || before.state === "reserved")
249
+ updateRequestVoided(heart, id, evidence);
250
+ else if (before.state !== "voided" || before.evidence !== evidence) {
251
+ throw new Error(`Akuma request ${id} cannot be voided`);
252
+ }
253
+ return requestFact(heart, id);
254
+ }));
255
+ }
256
+ export function readRequest(paths, id) {
257
+ return withHeart(paths, (heart) => requestFact(heart, id));
258
+ }
259
+ export function readNonterminalRequests(paths) {
260
+ return withHeart(paths, nonterminalRequestFacts);
261
+ }
262
+ export function requestStop(paths, at) {
263
+ return withHeart(paths, (heart) => transaction(heart, () => {
264
+ if (deathExists(heart))
265
+ return "dead";
266
+ insertStopControl(heart, at);
267
+ return "requested";
268
+ }));
269
+ }
270
+ export function requestPause(paths, at) {
271
+ return withHeart(paths, (heart) => transaction(heart, () => {
272
+ if (deathExists(heart))
273
+ return "dead";
274
+ insertPauseControl(heart, at);
275
+ return "requested";
276
+ }));
277
+ }
278
+ export function stopRequested(paths) { return withHeart(paths, stopExists); }
279
+ export function pauseRequested(paths) { return withHeart(paths, pauseExists); }
280
+ export function clearAbandonedControl(paths) {
281
+ // A control row without settlement belongs to a vanished caller; the next leash holder revokes it.
282
+ withHeart(paths, deleteAbandonedControls);
283
+ }
284
+ export function recordDeath(paths, death) {
285
+ return withHeart(paths, (heart) => transaction(heart, () => {
286
+ if (deathExists(heart))
287
+ return "already-dead";
288
+ insertDeathFact(heart, death);
289
+ voidTellsByDeath(heart);
290
+ voidRequestsByDeath(heart, `death:${death.evidence}`);
291
+ return "recorded";
292
+ }));
293
+ }
294
+ export function breakBody(paths, input) {
295
+ withHeart(paths, (heart) => endBodyFact(heart, input));
296
+ }
297
+ export function recordTurn(paths, input) {
298
+ return withHeart(paths, (heart) => {
299
+ const sequence = input.outcome.kind === "answered"
300
+ ? insertAnsweredTurnFact(heart, {
301
+ bodySequence: input.bodySequence,
302
+ outcome: input.outcome,
303
+ completedAt: input.completedAt,
304
+ })
305
+ : insertFailedTurnFact(heart, {
306
+ bodySequence: input.bodySequence,
307
+ outcome: input.outcome,
308
+ completedAt: input.completedAt,
309
+ });
310
+ return { sequence, ...input };
311
+ });
312
+ }
313
+ export function finishBodyIfIdle(paths, input) {
314
+ return withHeart(paths, (heart) => transaction(heart, () => {
315
+ const pending = pendingTellFacts(heart);
316
+ if (pending.length > 0)
317
+ return { kind: "pending", tells: pending.map((tell) => tell.id) };
318
+ finishBodyFact(heart, input);
319
+ return { kind: "finished" };
320
+ }));
321
+ }
322
+ export function readHeart(paths) {
323
+ if (!existsSync(paths.heart)) {
324
+ return { soul: null, latestBody: null, latestSession: null, pending: [], death: null };
325
+ }
326
+ return withHeart(paths, (heart) => ({
327
+ soul: soulFact(heart),
328
+ latestBody: latestBodyFact(heart),
329
+ latestSession: latestSessionFact(heart),
330
+ pending: pendingTellFacts(heart),
331
+ death: deathFact(heart),
332
+ }));
333
+ }
334
+ export function readTurns(paths) {
335
+ return withHeart(paths, historyFacts);
336
+ }
337
+ export function readLastAnsweredTurn(paths) {
338
+ return withHeart(paths, lastAnsweredTurnFact);
339
+ }
340
+ export function readCurrentTurn(paths) {
341
+ return withHeart(paths, latestTurnFact);
342
+ }
343
+ export function readForkPoint(paths, historyId) {
344
+ if (!existsSync(paths.heart))
345
+ return null;
346
+ return withHeart(paths, (heart) => {
347
+ const turn = answeredTurnFact(heart, historyId);
348
+ if (turn?.outcome.kind !== "answered")
349
+ return null;
350
+ const recipe = sessionFactForCoordinate(heart, turn.outcome.session);
351
+ if (recipe === null)
352
+ throw new Error(`Akuma fork point ${historyId} has no session recipe`);
353
+ return {
354
+ historyId: turn.outcome.historyId,
355
+ session: turn.outcome.session,
356
+ provider: recipe.provider,
357
+ cwd: recipe.cwd,
358
+ options: recipe.options,
359
+ };
360
+ });
361
+ }
@@ -0,0 +1,189 @@
1
+ import type { DatabaseSync } from "node:sqlite";
2
+ import type { AkuId } from "../identity.js";
3
+ import type { BodyEnd, BodyFact, Collar, DeathFact, RequestFact, RequestInput, ResumeCoordinate, SessionFact, Soul, TellFact, TellState, TurnFact } from "./facts.js";
4
+ export type SoulRow = Readonly<{
5
+ id: string;
6
+ archetype: string;
7
+ description: string | null;
8
+ provider_json: string;
9
+ options_json: string;
10
+ cwd: string;
11
+ origin_json: string;
12
+ confinement_json: string;
13
+ created_at: string;
14
+ }>;
15
+ export type SealRow = Readonly<{
16
+ evidence: string;
17
+ at: string;
18
+ }>;
19
+ export type BodyRow = Readonly<{
20
+ sequence: number;
21
+ pid: number;
22
+ process_group: number;
23
+ spawned_at: string;
24
+ leash_taken_at: string;
25
+ end: BodyEnd | null;
26
+ ended_at: string | null;
27
+ }>;
28
+ export type SessionRow = Readonly<{
29
+ sequence: number;
30
+ provider: string;
31
+ coordinate_json: string;
32
+ cwd: string;
33
+ options_json: string;
34
+ admitted_at: string;
35
+ }>;
36
+ export type TurnRow = Readonly<{
37
+ sequence: number;
38
+ body_sequence: number;
39
+ outcome: "answered" | "failed";
40
+ history_id: string | null;
41
+ session_json: string | null;
42
+ answer: string | null;
43
+ diagnostic: string | null;
44
+ completed_at: string;
45
+ }>;
46
+ export type TellRow = Readonly<{
47
+ id: string;
48
+ body: string;
49
+ state: TellState;
50
+ recorded_at: string;
51
+ }>;
52
+ export type RequestRow = Readonly<{
53
+ sequence: number;
54
+ id: string;
55
+ archetype: string;
56
+ body: string;
57
+ cwd: string | null;
58
+ world: string;
59
+ recipe_json: string;
60
+ admitted_at: string;
61
+ state: RequestFact["state"];
62
+ child: string | null;
63
+ diagnostic: string | null;
64
+ evidence: string | null;
65
+ }>;
66
+ export type ActivityRow = Readonly<{
67
+ sequence: number;
68
+ body_sequence: number;
69
+ event_json: string;
70
+ at: string;
71
+ }>;
72
+ export type ActivityFact = Readonly<{
73
+ sequence: number;
74
+ bodySequence: number;
75
+ event: unknown;
76
+ at: string;
77
+ }>;
78
+ export type ActivityFactSlice = Readonly<{
79
+ rows: readonly ActivityFact[];
80
+ lowestRetained: number | null;
81
+ highest: number | null;
82
+ }>;
83
+ export type DeathRow = Readonly<{
84
+ value_json: string;
85
+ at: string;
86
+ }>;
87
+ export declare function encodeSoulRow(soul: Soul): readonly [
88
+ AkuId,
89
+ string,
90
+ string | null,
91
+ string,
92
+ string,
93
+ string,
94
+ string,
95
+ string,
96
+ string
97
+ ];
98
+ export declare function decodeSoulRow(row: SoulRow): Soul;
99
+ export declare function encodeSessionRow(session: Omit<SessionFact, "sequence">): readonly [string, string, string, string, string];
100
+ export declare function encodeResumeCoordinate(coordinate: ResumeCoordinate): string;
101
+ export declare function decodeSessionRow(row: SessionRow): SessionFact;
102
+ export declare function decodeBodyRow(row: BodyRow): BodyFact;
103
+ export declare function decodeTurnRow(row: TurnRow): TurnFact;
104
+ export declare function decodeTellRow(row: TellRow): TellFact;
105
+ export declare function decodeRequestRow(row: RequestRow): RequestFact;
106
+ export declare function encodeActivityEvent(event: unknown): string;
107
+ export declare function decodeActivityRow(row: ActivityRow): ActivityFact;
108
+ export declare function encodeDeathRow(death: DeathFact): string;
109
+ export declare function decodeDeathRow(row: DeathRow): DeathFact;
110
+ export declare function soulFact(database: DatabaseSync): Soul | null;
111
+ export declare function sealExists(database: DatabaseSync): boolean;
112
+ export declare function insertSoulFact(database: DatabaseSync, soul: Soul): void;
113
+ export declare function insertSealFact(database: DatabaseSync, input: Readonly<{
114
+ evidence: string;
115
+ at: string;
116
+ }>): void;
117
+ export declare function deletePauseControl(database: DatabaseSync): void;
118
+ export declare function sealFact(database: DatabaseSync): Readonly<{
119
+ evidence: string;
120
+ at: string;
121
+ }> | null;
122
+ export declare function insertBodyFact(database: DatabaseSync, input: Readonly<{
123
+ collar: Collar;
124
+ leashTakenAt: string;
125
+ }>): number;
126
+ export declare function insertSessionFact(database: DatabaseSync, input: Omit<SessionFact, "sequence">): number;
127
+ export declare function insertActivityFact(database: DatabaseSync, input: Readonly<{
128
+ bodySequence: number;
129
+ event: unknown;
130
+ at: string;
131
+ }>): number;
132
+ export declare function pruneActivityFacts(database: DatabaseSync, limit: number): void;
133
+ export declare function activityFactSlice(database: DatabaseSync, input: Readonly<{
134
+ before?: number;
135
+ since?: number;
136
+ limit: number;
137
+ }>): ActivityFactSlice;
138
+ export declare function deathExists(database: DatabaseSync): boolean;
139
+ export declare function insertTellFact(database: DatabaseSync, tell: Omit<TellFact, "state">): void;
140
+ export declare function tellState(database: DatabaseSync, id: string): TellState | null;
141
+ export declare function updateTellState(database: DatabaseSync, id: string, state: TellState): void;
142
+ export declare function insertRequestFact(database: DatabaseSync, input: RequestInput & Readonly<{
143
+ admittedAt: string;
144
+ }>): void;
145
+ export declare function requestFact(database: DatabaseSync, id: string): RequestFact | null;
146
+ export declare function nonterminalRequestFacts(database: DatabaseSync): readonly RequestFact[];
147
+ export declare function updateRequestReserved(database: DatabaseSync, id: string, child: AkuId): void;
148
+ export declare function updateRequestServed(database: DatabaseSync, id: string, child: AkuId): void;
149
+ export declare function updateRequestRefused(database: DatabaseSync, id: string, diagnostic: string): void;
150
+ export declare function updateRequestVoided(database: DatabaseSync, id: string, evidence: string): void;
151
+ export declare function insertStopControl(database: DatabaseSync, at: string): void;
152
+ export declare function insertPauseControl(database: DatabaseSync, at: string): void;
153
+ export declare function stopExists(database: DatabaseSync): boolean;
154
+ export declare function pauseExists(database: DatabaseSync): boolean;
155
+ export declare function deleteAbandonedControls(database: DatabaseSync): void;
156
+ export declare function insertDeathFact(database: DatabaseSync, death: DeathFact): void;
157
+ export declare function voidTellsByDeath(database: DatabaseSync): void;
158
+ export declare function voidRequestsByDeath(database: DatabaseSync, evidence: string): void;
159
+ export declare function endBodyFact(database: DatabaseSync, input: Readonly<{
160
+ sequence: number;
161
+ end: BodyEnd;
162
+ at: string;
163
+ }>): void;
164
+ type AnsweredTurn = Omit<TurnFact, "sequence" | "outcome"> & Readonly<{
165
+ outcome: Extract<TurnFact["outcome"], {
166
+ kind: "answered";
167
+ }>;
168
+ }>;
169
+ export declare function insertAnsweredTurnFact(database: DatabaseSync, input: AnsweredTurn): number;
170
+ type FailedTurn = Omit<TurnFact, "sequence" | "outcome"> & Readonly<{
171
+ outcome: Extract<TurnFact["outcome"], {
172
+ kind: "failed";
173
+ }>;
174
+ }>;
175
+ export declare function insertFailedTurnFact(database: DatabaseSync, input: FailedTurn): number;
176
+ export declare function finishBodyFact(database: DatabaseSync, input: Readonly<{
177
+ sequence: number;
178
+ at: string;
179
+ }>): void;
180
+ export declare function latestBodyFact(database: DatabaseSync): BodyFact | null;
181
+ export declare function latestSessionFact(database: DatabaseSync): SessionFact | null;
182
+ export declare function sessionFactForCoordinate(database: DatabaseSync, coordinate: ResumeCoordinate): SessionFact | null;
183
+ export declare function pendingTellFacts(database: DatabaseSync): readonly TellFact[];
184
+ export declare function deathFact(database: DatabaseSync): DeathFact | null;
185
+ export declare function historyFacts(database: DatabaseSync): readonly TurnFact[];
186
+ export declare function lastAnsweredTurnFact(database: DatabaseSync): TurnFact | null;
187
+ export declare function latestTurnFact(database: DatabaseSync): TurnFact | null;
188
+ export declare function answeredTurnFact(database: DatabaseSync, historyId: string): TurnFact | null;
189
+ export {};