@astrosheep/keiyaku 2.9.13 → 4.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (670) hide show
  1. package/README.md +10 -130
  2. package/build/integrations/marketplace/.agents/plugins/marketplace.json +12 -0
  3. package/build/integrations/marketplace/.claude-plugin/marketplace.json +5 -0
  4. package/build/integrations/marketplace/plugins/keiyaku/.claude-plugin/plugin.json +7 -0
  5. package/build/integrations/marketplace/plugins/keiyaku/.codex-plugin/plugin.json +18 -0
  6. package/build/integrations/marketplace/plugins/keiyaku/opencode.js +16 -0
  7. package/build/integrations/marketplace/plugins/keiyaku/package.json +8 -0
  8. package/build/integrations/marketplace/plugins/keiyaku/skills/keiyaku/SKILL.md +34 -0
  9. package/build/integrations/marketplace/plugins/keiyaku/skills/keiyaku-akuma/SKILL.md +50 -0
  10. package/build/integrations/marketplace/plugins/keiyaku/skills/keiyaku-task/SKILL.md +62 -0
  11. package/build/integrations/marketplace/plugins/keiyaku/skills/keiyaku-workflow/SKILL.md +72 -0
  12. package/build/src/akuma/activity.d.ts +66 -0
  13. package/build/src/akuma/activity.js +139 -0
  14. package/build/src/akuma/akuma.d.ts +116 -0
  15. package/build/src/akuma/akuma.js +382 -0
  16. package/build/src/akuma/archetype.d.ts +31 -0
  17. package/build/src/akuma/archetype.js +188 -0
  18. package/build/src/akuma/body.d.ts +20 -0
  19. package/build/src/akuma/body.js +305 -0
  20. package/build/src/akuma/heart/facts.d.ts +150 -0
  21. package/build/src/akuma/heart/facts.js +9 -0
  22. package/build/src/akuma/heart/index.d.ts +78 -0
  23. package/build/src/akuma/heart/index.js +361 -0
  24. package/build/src/akuma/heart/rows.d.ts +189 -0
  25. package/build/src/akuma/heart/rows.js +319 -0
  26. package/build/src/akuma/heart/schema.d.ts +5 -0
  27. package/build/src/akuma/heart/schema.js +113 -0
  28. package/build/src/akuma/identity.d.ts +46 -0
  29. package/build/src/akuma/identity.js +89 -0
  30. package/build/src/akuma/index.d.ts +7 -0
  31. package/build/src/akuma/index.js +3 -0
  32. package/build/src/akuma/provider.d.ts +123 -0
  33. package/build/src/akuma/provider.js +235 -0
  34. package/build/src/akuma/providers/claude.d.ts +84 -0
  35. package/build/src/akuma/providers/claude.js +305 -0
  36. package/build/src/akuma/providers/codex-app-server/events.d.ts +110 -0
  37. package/build/src/akuma/providers/codex-app-server/events.js +337 -0
  38. package/build/src/akuma/providers/codex-app-server/index.d.ts +27 -0
  39. package/build/src/akuma/providers/codex-app-server/index.js +162 -0
  40. package/build/src/akuma/providers/index.d.ts +4 -0
  41. package/build/src/akuma/providers/index.js +71 -0
  42. package/build/src/akuma/publication.d.ts +10 -0
  43. package/build/src/akuma/publication.js +107 -0
  44. package/build/src/akuma/requests.d.ts +46 -0
  45. package/build/src/akuma/requests.js +388 -0
  46. package/build/src/alias/index.d.ts +17 -0
  47. package/build/src/alias/index.js +104 -0
  48. package/build/src/body/amend.d.ts +2 -0
  49. package/build/src/body/amend.js +289 -0
  50. package/build/src/body/arc.d.ts +2 -0
  51. package/build/src/body/arc.js +54 -0
  52. package/build/src/body/decode.d.ts +4 -0
  53. package/build/src/body/decode.js +146 -0
  54. package/build/src/body/keys.d.ts +4 -0
  55. package/build/src/body/keys.js +11 -0
  56. package/build/src/body/region.d.ts +6 -0
  57. package/build/src/body/region.js +139 -0
  58. package/build/src/body/render.d.ts +4 -0
  59. package/build/src/body/render.js +73 -0
  60. package/build/src/body/shape.d.ts +29 -0
  61. package/build/src/body/shape.js +16 -0
  62. package/build/src/body/types.d.ts +28 -0
  63. package/build/src/body/verification.d.ts +7 -0
  64. package/build/src/body/verification.js +25 -0
  65. package/build/src/cli/accepted.d.ts +16 -0
  66. package/build/src/cli/accepted.js +65 -0
  67. package/build/src/cli/actor.d.ts +8 -0
  68. package/build/src/cli/actor.js +11 -0
  69. package/build/src/cli/commands/akuma-invoke.d.ts +53 -0
  70. package/build/src/cli/commands/akuma-invoke.js +68 -0
  71. package/build/src/cli/commands/akuma.d.ts +42 -0
  72. package/build/src/cli/commands/akuma.js +224 -0
  73. package/build/src/cli/commands/amend.d.ts +13 -0
  74. package/build/src/cli/commands/amend.js +13 -0
  75. package/build/src/cli/commands/bind.d.ts +12 -0
  76. package/build/src/cli/commands/bind.js +17 -0
  77. package/build/src/cli/commands/install.d.ts +25 -0
  78. package/build/src/cli/commands/install.js +103 -0
  79. package/build/src/cli/commands/task-invoke.d.ts +9 -0
  80. package/build/src/cli/commands/task-invoke.js +92 -0
  81. package/build/src/cli/commands/task.d.ts +16 -0
  82. package/build/src/cli/commands/task.js +144 -0
  83. package/build/src/cli/index.d.ts +2 -0
  84. package/build/src/cli/index.js +3 -0
  85. package/build/src/cli/invoke.d.ts +17 -0
  86. package/build/src/cli/invoke.js +265 -0
  87. package/build/src/cli/main.d.ts +1 -0
  88. package/build/src/cli/main.js +79 -0
  89. package/build/src/cli/parse.d.ts +210 -0
  90. package/build/src/cli/parse.js +375 -0
  91. package/build/src/cli/render/akuma-tool.d.ts +11 -0
  92. package/build/src/cli/render/akuma-tool.js +68 -0
  93. package/build/src/cli/render/akuma.d.ts +6 -0
  94. package/build/src/cli/render/akuma.js +254 -0
  95. package/build/src/cli/render/board.d.ts +2 -0
  96. package/build/src/cli/render/board.js +4 -0
  97. package/build/src/cli/render/contract.d.ts +4 -0
  98. package/build/src/cli/render/contract.js +69 -0
  99. package/build/src/cli/render/kanshi.d.ts +3 -0
  100. package/build/src/cli/render/kanshi.js +204 -0
  101. package/build/src/cli/render/refusal.d.ts +2 -0
  102. package/build/src/cli/render/refusal.js +4 -0
  103. package/build/src/cli/render/settings.d.ts +3 -0
  104. package/build/src/cli/render/settings.js +30 -0
  105. package/build/src/cli/render/task.d.ts +6 -0
  106. package/build/src/cli/render/task.js +105 -0
  107. package/build/src/cli/render/terminal.d.ts +10 -0
  108. package/build/src/cli/render/terminal.js +76 -0
  109. package/build/src/cli/render/text.d.ts +3 -0
  110. package/build/src/cli/render/text.js +15 -0
  111. package/build/src/cli/result.d.ts +55 -0
  112. package/build/src/cli/selectors.d.ts +9 -0
  113. package/build/src/cli/selectors.js +66 -0
  114. package/build/src/cli/usage.d.ts +6 -0
  115. package/build/src/cli/usage.js +19 -0
  116. package/build/src/context-root.d.ts +4 -0
  117. package/build/src/context-root.js +15 -0
  118. package/build/src/coordination/durable-file.d.ts +1 -0
  119. package/build/src/coordination/durable-file.js +36 -0
  120. package/build/src/coordination/sqlite-transaction-lock.d.ts +14 -0
  121. package/build/src/coordination/sqlite-transaction-lock.js +119 -0
  122. package/build/src/core/decide.d.ts +45 -0
  123. package/build/src/core/facts/codec.d.ts +3 -0
  124. package/build/src/core/facts/codec.js +258 -0
  125. package/build/src/core/facts/eligibility.d.ts +16 -0
  126. package/build/src/core/facts/eligibility.js +75 -0
  127. package/build/src/core/facts/errors.d.ts +3 -0
  128. package/build/src/core/facts/errors.js +6 -0
  129. package/build/src/core/facts/fold.d.ts +2 -0
  130. package/build/src/core/facts/fold.js +97 -0
  131. package/build/src/core/facts/gate.d.ts +24 -0
  132. package/build/src/core/facts/gate.js +52 -0
  133. package/build/src/core/facts/observation.d.ts +12 -0
  134. package/build/src/core/facts/observation.js +23 -0
  135. package/build/src/core/facts/offer.d.ts +21 -0
  136. package/build/src/core/facts/types.d.ts +130 -0
  137. package/build/src/core/facts/types.js +66 -0
  138. package/build/src/core/subject.d.ts +21 -0
  139. package/build/src/core/subject.js +89 -0
  140. package/build/src/core/verbs/abandon.d.ts +13 -0
  141. package/build/src/core/verbs/abandon.js +17 -0
  142. package/build/src/core/verbs/amend.d.ts +14 -0
  143. package/build/src/core/verbs/amend.js +56 -0
  144. package/build/src/core/verbs/arc.d.ts +13 -0
  145. package/build/src/core/verbs/arc.js +25 -0
  146. package/build/src/core/verbs/attestation.d.ts +13 -0
  147. package/build/src/core/verbs/attestation.js +21 -0
  148. package/build/src/core/verbs/bind.d.ts +13 -0
  149. package/build/src/core/verbs/bind.js +40 -0
  150. package/build/src/core/verbs/deliver.d.ts +13 -0
  151. package/build/src/core/verbs/deliver.js +26 -0
  152. package/build/src/core/verbs/placement.d.ts +13 -0
  153. package/build/src/core/verbs/placement.js +42 -0
  154. package/build/src/dispatch/index.d.ts +31 -0
  155. package/build/src/dispatch/index.js +159 -0
  156. package/build/src/git/admission.d.ts +18 -0
  157. package/build/src/git/admission.js +116 -0
  158. package/build/src/git/delivery.d.ts +20 -0
  159. package/build/src/git/delivery.js +109 -0
  160. package/build/src/git/hooks.d.ts +34 -0
  161. package/build/src/git/hooks.js +258 -0
  162. package/build/src/git/identity.d.ts +13 -0
  163. package/build/src/git/identity.js +28 -0
  164. package/build/src/git/observe.d.ts +38 -0
  165. package/build/src/git/observe.js +227 -0
  166. package/build/src/git/reconcile.d.ts +49 -0
  167. package/build/src/git/reconcile.js +223 -0
  168. package/build/src/git/repository.d.ts +80 -0
  169. package/build/src/git/repository.js +456 -0
  170. package/build/src/git/tree.d.ts +34 -0
  171. package/build/src/git/tree.js +112 -0
  172. package/build/src/git/verification.d.ts +14 -0
  173. package/build/src/git/verification.js +56 -0
  174. package/build/src/identity/coordinates.d.ts +9 -0
  175. package/build/src/identity/coordinates.js +20 -0
  176. package/build/src/identity/normalize.d.ts +8 -0
  177. package/build/src/identity/normalize.js +45 -0
  178. package/build/src/identity/selector.d.ts +6 -0
  179. package/build/src/identity/selector.js +7 -0
  180. package/build/src/index.d.ts +4 -0
  181. package/build/src/index.js +2 -0
  182. package/build/src/kanshi/index.d.ts +5 -0
  183. package/build/src/kanshi/index.js +2 -0
  184. package/build/src/kanshi/read.d.ts +5 -0
  185. package/build/src/kanshi/read.js +100 -0
  186. package/build/src/kanshi/report.d.ts +35 -0
  187. package/build/src/kanshi/select.d.ts +8 -0
  188. package/build/src/kanshi/select.js +21 -0
  189. package/build/src/library/akuma-creation.d.ts +79 -0
  190. package/build/src/library/akuma-creation.js +151 -0
  191. package/build/src/library/configuration.d.ts +26 -0
  192. package/build/src/library/configuration.js +100 -0
  193. package/build/src/library/contract.d.ts +145 -0
  194. package/build/src/library/contract.js +325 -0
  195. package/build/src/library/input.d.ts +13 -0
  196. package/build/src/library/input.js +82 -0
  197. package/build/src/library/keiyaku.d.ts +28 -0
  198. package/build/src/library/keiyaku.js +16 -0
  199. package/build/src/library/region.d.ts +17 -0
  200. package/build/src/library/region.js +30 -0
  201. package/build/src/library/repo.d.ts +33 -0
  202. package/build/src/library/repo.js +61 -0
  203. package/build/src/markdown/diff.d.ts +1 -0
  204. package/build/src/markdown/diff.js +4 -0
  205. package/build/src/markdown/lex.d.ts +3 -0
  206. package/build/src/markdown/lex.js +221 -0
  207. package/build/src/markdown/parse.d.ts +2 -0
  208. package/build/src/markdown/parse.js +221 -0
  209. package/build/src/markdown/query.d.ts +21 -0
  210. package/build/src/markdown/query.js +51 -0
  211. package/build/src/markdown/types.d.ts +118 -0
  212. package/build/src/markdown/types.js +6 -0
  213. package/build/src/protocol/attempt.d.ts +36 -0
  214. package/build/src/protocol/attempt.js +119 -0
  215. package/build/src/protocol/bind.d.ts +25 -0
  216. package/build/src/protocol/bind.js +62 -0
  217. package/build/src/protocol/intent.d.ts +52 -0
  218. package/build/src/protocol/intent.js +129 -0
  219. package/build/src/protocol/operations.d.ts +140 -0
  220. package/build/src/protocol/operations.js +373 -0
  221. package/build/src/protocol/outcome.d.ts +18 -0
  222. package/build/src/protocol/outcome.js +15 -0
  223. package/build/src/protocol/read/audit.d.ts +25 -0
  224. package/build/src/protocol/read/audit.js +39 -0
  225. package/build/src/protocol/read/documents.d.ts +8 -0
  226. package/build/src/protocol/read/documents.js +16 -0
  227. package/build/src/protocol/read/status.d.ts +38 -0
  228. package/build/src/protocol/read/status.js +47 -0
  229. package/build/src/protocol/run.d.ts +39 -0
  230. package/build/src/protocol/run.js +36 -0
  231. package/build/src/runtime/proc/line-rpc.d.ts +37 -0
  232. package/build/src/runtime/proc/line-rpc.js +124 -0
  233. package/build/src/runtime/proc/run.d.ts +54 -0
  234. package/build/src/runtime/proc/run.js +200 -0
  235. package/build/src/settings.d.ts +45 -0
  236. package/build/src/settings.js +99 -0
  237. package/build/src/settlement/holder.d.ts +15 -0
  238. package/build/src/settlement/holder.js +113 -0
  239. package/build/src/settlement/settle.d.ts +36 -0
  240. package/build/src/settlement/settle.js +91 -0
  241. package/build/src/task/board.d.ts +65 -0
  242. package/build/src/task/board.js +155 -0
  243. package/build/src/task/compose.d.ts +25 -0
  244. package/build/src/task/compose.js +232 -0
  245. package/build/src/task/context.d.ts +4 -0
  246. package/build/src/task/context.js +56 -0
  247. package/build/src/task/document.d.ts +24 -0
  248. package/build/src/task/document.js +118 -0
  249. package/build/src/task/identity.d.ts +12 -0
  250. package/build/src/task/identity.js +47 -0
  251. package/build/src/task/index.d.ts +90 -0
  252. package/build/src/task/index.js +179 -0
  253. package/build/src/task/operations.d.ts +115 -0
  254. package/build/src/task/operations.js +194 -0
  255. package/build/src/task/store.d.ts +22 -0
  256. package/build/src/task/store.js +114 -0
  257. package/build/src/verification/declaration.d.ts +22 -0
  258. package/build/src/verification/declaration.js +14 -0
  259. package/build/src/verification/producer.d.ts +23 -0
  260. package/build/src/verification/producer.js +54 -0
  261. package/package.json +62 -44
  262. package/build/.tsbuildinfo +0 -1
  263. package/build/agents/call-terms.js +0 -32
  264. package/build/agents/harness/activity-values.js +0 -70
  265. package/build/agents/harness/control-types.js +0 -18
  266. package/build/agents/harness/event-channel.js +0 -213
  267. package/build/agents/harness/event-persistence.js +0 -220
  268. package/build/agents/harness/events.js +0 -48
  269. package/build/agents/harness/execution-handle.js +0 -172
  270. package/build/agents/harness/index.js +0 -11
  271. package/build/agents/harness/outcome-error.js +0 -81
  272. package/build/agents/harness/outcome.js +0 -220
  273. package/build/agents/harness/projection.js +0 -369
  274. package/build/agents/harness/provider-adapter.js +0 -58
  275. package/build/agents/harness/router.js +0 -30
  276. package/build/agents/harness/runtime.js +0 -85
  277. package/build/agents/harness/session.js +0 -15
  278. package/build/agents/launch-snapshot/model.js +0 -127
  279. package/build/agents/launch-snapshot/parse-helpers.js +0 -114
  280. package/build/agents/launch-snapshot/resolve.js +0 -46
  281. package/build/agents/opencode-sdk.js +0 -159
  282. package/build/agents/providers/claude-agent-sdk/adapter.js +0 -396
  283. package/build/agents/providers/claude-agent-sdk/events.js +0 -218
  284. package/build/agents/providers/claude-agent-sdk/registration.js +0 -225
  285. package/build/agents/providers/claude-agent-sdk/session-schema.js +0 -2
  286. package/build/agents/providers/claude-agent-sdk/session.js +0 -172
  287. package/build/agents/providers/codex-app-server/adapter.js +0 -387
  288. package/build/agents/providers/codex-app-server/events.js +0 -492
  289. package/build/agents/providers/codex-app-server/identity.js +0 -1
  290. package/build/agents/providers/codex-app-server/policy.js +0 -29
  291. package/build/agents/providers/codex-app-server/registration.js +0 -259
  292. package/build/agents/providers/codex-app-server/session-schema.js +0 -6
  293. package/build/agents/providers/codex-app-server/session.js +0 -273
  294. package/build/agents/providers/event-type-tail.js +0 -16
  295. package/build/agents/providers/opencode-sdk/adapter.js +0 -402
  296. package/build/agents/providers/opencode-sdk/events.js +0 -380
  297. package/build/agents/providers/opencode-sdk/registration.js +0 -146
  298. package/build/agents/providers/opencode-sdk/session-schema.js +0 -2
  299. package/build/agents/providers/opencode-sdk/session.js +0 -187
  300. package/build/agents/providers/pi/adapter.js +0 -285
  301. package/build/agents/providers/pi/checkpoint.js +0 -49
  302. package/build/agents/providers/pi/events.js +0 -285
  303. package/build/agents/providers/pi/registration.js +0 -160
  304. package/build/agents/providers/pi/session-schema.js +0 -6
  305. package/build/agents/providers/registration.js +0 -7
  306. package/build/agents/providers/registry.js +0 -76
  307. package/build/agents/selector.js +0 -120
  308. package/build/agents/session.js +0 -29
  309. package/build/agents/string-tail-buffer.js +0 -44
  310. package/build/agents/types.js +0 -30
  311. package/build/artifact-directories.js +0 -22
  312. package/build/cli/commands/akuma/akuma/handler.js +0 -5
  313. package/build/cli/commands/akuma/akuma/meta.js +0 -17
  314. package/build/cli/commands/akuma/catalog.js +0 -10
  315. package/build/cli/commands/akuma/list/handler.js +0 -15
  316. package/build/cli/commands/akuma/list/meta-list.js +0 -12
  317. package/build/cli/commands/akuma/list/meta-ls.js +0 -9
  318. package/build/cli/commands/akuma/show/handler.js +0 -27
  319. package/build/cli/commands/akuma/show/meta.js +0 -8
  320. package/build/cli/commands/akuma.js +0 -186
  321. package/build/cli/commands/contract/amend/handler.js +0 -17
  322. package/build/cli/commands/contract/amend/meta.js +0 -13
  323. package/build/cli/commands/contract/arc/handler.js +0 -16
  324. package/build/cli/commands/contract/arc/meta.js +0 -28
  325. package/build/cli/commands/contract/audit/handler.js +0 -42
  326. package/build/cli/commands/contract/audit/meta.js +0 -17
  327. package/build/cli/commands/contract/bind/handler.js +0 -39
  328. package/build/cli/commands/contract/bind/meta.js +0 -96
  329. package/build/cli/commands/contract/catalog.js +0 -18
  330. package/build/cli/commands/contract/forfeit/handler.js +0 -17
  331. package/build/cli/commands/contract/forfeit/meta.js +0 -12
  332. package/build/cli/commands/contract/log/handler.js +0 -12
  333. package/build/cli/commands/contract/log/meta.js +0 -12
  334. package/build/cli/commands/contract/petition/handler.js +0 -64
  335. package/build/cli/commands/contract/petition/meta.js +0 -23
  336. package/build/cli/commands/contract/renew/handler.js +0 -65
  337. package/build/cli/commands/contract/renew/meta.js +0 -19
  338. package/build/cli/commands/metadata.js +0 -68
  339. package/build/cli/commands/projection/call/handler.js +0 -43
  340. package/build/cli/commands/projection/call/meta.js +0 -12
  341. package/build/cli/commands/projection/catalog.js +0 -16
  342. package/build/cli/commands/projection/fork/handler.js +0 -61
  343. package/build/cli/commands/projection/fork/meta.js +0 -12
  344. package/build/cli/commands/projection/history/handler.js +0 -65
  345. package/build/cli/commands/projection/history/meta.js +0 -9
  346. package/build/cli/commands/projection/kill/handler.js +0 -20
  347. package/build/cli/commands/projection/kill/meta.js +0 -11
  348. package/build/cli/commands/projection/shared.js +0 -27
  349. package/build/cli/commands/projection/status/handler.js +0 -42
  350. package/build/cli/commands/projection/status/meta.js +0 -20
  351. package/build/cli/commands/projection/tell/handler.js +0 -32
  352. package/build/cli/commands/projection/tell/meta.js +0 -12
  353. package/build/cli/commands/projection/wait/handler.js +0 -80
  354. package/build/cli/commands/projection/wait/meta.js +0 -16
  355. package/build/cli/commands/registry.js +0 -48
  356. package/build/cli/commands/shared.js +0 -74
  357. package/build/cli/commands/skills/catalog.js +0 -6
  358. package/build/cli/commands/skills/install/handler.js +0 -7
  359. package/build/cli/commands/skills/install/meta.js +0 -9
  360. package/build/cli/commands/skills/skills/handler.js +0 -4
  361. package/build/cli/commands/skills/skills/meta.js +0 -10
  362. package/build/cli/commands/system/catalog.js +0 -10
  363. package/build/cli/commands/system/completion/handler.js +0 -10
  364. package/build/cli/commands/system/completion/meta.js +0 -9
  365. package/build/cli/commands/system/dump-env/handler.js +0 -3
  366. package/build/cli/commands/system/dump-env/meta.js +0 -10
  367. package/build/cli/commands/system/guide/handler.js +0 -4
  368. package/build/cli/commands/system/guide/meta.js +0 -9
  369. package/build/cli/commands/task/add/handler.js +0 -38
  370. package/build/cli/commands/task/add/meta.js +0 -31
  371. package/build/cli/commands/task/catalog.js +0 -32
  372. package/build/cli/commands/task/compose/handler.js +0 -18
  373. package/build/cli/commands/task/compose/meta.js +0 -10
  374. package/build/cli/commands/task/doctor/handler.js +0 -3
  375. package/build/cli/commands/task/doctor/meta.js +0 -8
  376. package/build/cli/commands/task/done/handler.js +0 -10
  377. package/build/cli/commands/task/done/meta.js +0 -8
  378. package/build/cli/commands/task/drop/handler.js +0 -8
  379. package/build/cli/commands/task/drop/meta.js +0 -11
  380. package/build/cli/commands/task/hold/handler.js +0 -3
  381. package/build/cli/commands/task/hold/meta.js +0 -8
  382. package/build/cli/commands/task/log/handler.js +0 -12
  383. package/build/cli/commands/task/log/meta.js +0 -8
  384. package/build/cli/commands/task/ls/handler.js +0 -17
  385. package/build/cli/commands/task/ls/meta.js +0 -8
  386. package/build/cli/commands/task/note/handler.js +0 -6
  387. package/build/cli/commands/task/note/meta.js +0 -11
  388. package/build/cli/commands/task/resume/handler.js +0 -3
  389. package/build/cli/commands/task/resume/meta.js +0 -8
  390. package/build/cli/commands/task/shared.js +0 -181
  391. package/build/cli/commands/task/show/handler.js +0 -13
  392. package/build/cli/commands/task/show/meta.js +0 -8
  393. package/build/cli/commands/task/start/handler.js +0 -3
  394. package/build/cli/commands/task/start/meta.js +0 -8
  395. package/build/cli/commands/task/stop/handler.js +0 -10
  396. package/build/cli/commands/task/stop/meta.js +0 -8
  397. package/build/cli/commands/task/task/handler.js +0 -5
  398. package/build/cli/commands/task/task/meta.js +0 -11
  399. package/build/cli/commands/task/update/handler.js +0 -21
  400. package/build/cli/commands/task/update/meta.js +0 -12
  401. package/build/cli/commands/verification/handler.js +0 -43
  402. package/build/cli/commands/verification/meta.js +0 -13
  403. package/build/cli/completion.js +0 -91
  404. package/build/cli/draft-artifact.js +0 -50
  405. package/build/cli/flags.js +0 -321
  406. package/build/cli/help.js +0 -99
  407. package/build/cli/index.js +0 -333
  408. package/build/cli/missing-subcommand.js +0 -7
  409. package/build/cli/output-stream-error-policy.js +0 -31
  410. package/build/cli/parse-flags.js +0 -301
  411. package/build/cli/parse-metadata.js +0 -132
  412. package/build/cli/parse-selectors.js +0 -83
  413. package/build/cli/parse.js +0 -250
  414. package/build/cli/projection-address.js +0 -105
  415. package/build/cli/render/address.js +0 -101
  416. package/build/cli/render/amendment-warning.js +0 -8
  417. package/build/cli/render/arc.js +0 -88
  418. package/build/cli/render/audit.js +0 -440
  419. package/build/cli/render/call.js +0 -70
  420. package/build/cli/render/compact-text.js +0 -3
  421. package/build/cli/render/errors.js +0 -101
  422. package/build/cli/render/format.js +0 -226
  423. package/build/cli/render/kanshi.js +0 -300
  424. package/build/cli/render/kill.js +0 -9
  425. package/build/cli/render/lifecycle.js +0 -56
  426. package/build/cli/render/line-width.js +0 -103
  427. package/build/cli/render/misc.js +0 -84
  428. package/build/cli/render/path-prefix-compaction.js +0 -131
  429. package/build/cli/render/petition.js +0 -85
  430. package/build/cli/render/projection-activity.js +0 -332
  431. package/build/cli/render/projection-history.js +0 -77
  432. package/build/cli/render/response-style.js +0 -27
  433. package/build/cli/render/shared.js +0 -232
  434. package/build/cli/render/skills.js +0 -10
  435. package/build/cli/render/status-indicator.js +0 -47
  436. package/build/cli/render/status.js +0 -243
  437. package/build/cli/render/success-response.js +0 -95
  438. package/build/cli/render/task.js +0 -175
  439. package/build/cli/render/tell.js +0 -11
  440. package/build/cli/render/terminal-failure.js +0 -65
  441. package/build/cli/render/tool-command-normalization.js +0 -137
  442. package/build/cli/render/tool-ledger-rollup.js +0 -74
  443. package/build/cli/render/tool-presentation.js +0 -98
  444. package/build/cli/render/types.js +0 -2
  445. package/build/cli/render/verification.js +0 -23
  446. package/build/cli/render/wait.js +0 -343
  447. package/build/cli/skills-install.js +0 -348
  448. package/build/cli/subagent-guard.js +0 -25
  449. package/build/cli/types.js +0 -2
  450. package/build/config/akuma-loader.js +0 -240
  451. package/build/config/env-keys.js +0 -57
  452. package/build/config/env.js +0 -304
  453. package/build/config/provider-policy-ownership.js +0 -10
  454. package/build/config/settings/disease.js +0 -33
  455. package/build/config/settings/knobs.js +0 -14
  456. package/build/config/settings/loader.js +0 -275
  457. package/build/config/settings/provider-instance-fields.js +0 -51
  458. package/build/config/settings/schema.js +0 -113
  459. package/build/core/address-carrier.js +0 -89
  460. package/build/core/addressing.js +0 -407
  461. package/build/core/amend.js +0 -321
  462. package/build/core/amendment-criteria.js +0 -17
  463. package/build/core/amendment-warning.js +0 -10
  464. package/build/core/arc.js +0 -293
  465. package/build/core/atomic-publish.js +0 -64
  466. package/build/core/audit/candidate.js +0 -141
  467. package/build/core/audit/coordinates.js +0 -230
  468. package/build/core/audit/evidence.js +0 -156
  469. package/build/core/audit/facade.js +0 -65
  470. package/build/core/audit/readiness.js +0 -4
  471. package/build/core/audit/report.js +0 -38
  472. package/build/core/audit.js +0 -1
  473. package/build/core/bind-reconciliation.js +0 -409
  474. package/build/core/bind-workspace.js +0 -115
  475. package/build/core/bind.js +0 -503
  476. package/build/core/call/call.js +0 -235
  477. package/build/core/call/context.js +0 -210
  478. package/build/core/call/execution.js +0 -255
  479. package/build/core/call/prompt.js +0 -27
  480. package/build/core/call/reference.js +0 -24
  481. package/build/core/call-persist.js +0 -76
  482. package/build/core/command-markdown.js +0 -45
  483. package/build/core/context.js +0 -104
  484. package/build/core/contract-carrier-runtime.js +0 -512
  485. package/build/core/contract-carrier.js +0 -353
  486. package/build/core/contract-view.js +0 -319
  487. package/build/core/contract.js +0 -19
  488. package/build/core/derived-replay.js +0 -340
  489. package/build/core/draft.js +0 -400
  490. package/build/core/execution-coordinate.js +0 -46
  491. package/build/core/execution-pact.js +0 -126
  492. package/build/core/forfeit.js +0 -132
  493. package/build/core/hints.js +0 -34
  494. package/build/core/identifier-slug.js +0 -116
  495. package/build/core/ids.js +0 -90
  496. package/build/core/lifecycle-history.js +0 -48
  497. package/build/core/lifecycle-recovery.js +0 -122
  498. package/build/core/lifecycle-runner.js +0 -377
  499. package/build/core/log.js +0 -50
  500. package/build/core/markdown/lex.js +0 -274
  501. package/build/core/markdown/parser.js +0 -260
  502. package/build/core/markdown/render.js +0 -68
  503. package/build/core/markdown/sections.js +0 -80
  504. package/build/core/markdown/titles.js +0 -9
  505. package/build/core/markdown/types.js +0 -6
  506. package/build/core/outcome-base.js +0 -185
  507. package/build/core/places.js +0 -175
  508. package/build/core/projection/akuma-name.js +0 -43
  509. package/build/core/projection/generation/database.js +0 -473
  510. package/build/core/projection/generation/identity.js +0 -84
  511. package/build/core/projection/generation/ledger.js +0 -91
  512. package/build/core/projection/generation/model.js +0 -261
  513. package/build/core/projection/generation/projection-generation-continuation.js +0 -84
  514. package/build/core/projection/generation/projection-generation-doorbell.js +0 -88
  515. package/build/core/projection/generation/projection-generation-execution.js +0 -241
  516. package/build/core/projection/generation/projection-generation-identity.js +0 -21
  517. package/build/core/projection/generation/projection-generation-launcher.js +0 -154
  518. package/build/core/projection/generation/projection-generation-process.js +0 -47
  519. package/build/core/projection/generation/projection-generation-runner.js +0 -489
  520. package/build/core/projection/generation/projection-generation-runtime.js +0 -46
  521. package/build/core/projection/generation/protocol.js +0 -68
  522. package/build/core/projection/generation/store.js +0 -108
  523. package/build/core/projection/generation/transitions.js +0 -463
  524. package/build/core/projection/heart.js +0 -9
  525. package/build/core/projection/index.js +0 -28
  526. package/build/core/projection/projection-activity.js +0 -273
  527. package/build/core/projection/projection-alias.js +0 -131
  528. package/build/core/projection/projection-coordinate.js +0 -61
  529. package/build/core/projection/projection-core.js +0 -127
  530. package/build/core/projection/projection-execution-observer.js +0 -270
  531. package/build/core/projection/projection-history.js +0 -474
  532. package/build/core/projection/projection-identity.js +0 -11
  533. package/build/core/projection/projection-kill.js +0 -112
  534. package/build/core/projection/projection-life-observer.js +0 -101
  535. package/build/core/projection/projection-mint.js +0 -170
  536. package/build/core/projection/projection-status-observation.js +0 -434
  537. package/build/core/projection/projection-status.js +0 -442
  538. package/build/core/projection/projection-terminal-failure.js +0 -111
  539. package/build/core/projection/projection-wait.js +0 -337
  540. package/build/core/projection/projection-wake.js +0 -298
  541. package/build/core/projection/tell/launch-store.js +0 -244
  542. package/build/core/projection/tell/model.js +0 -98
  543. package/build/core/projection/tell/store.js +0 -245
  544. package/build/core/provider-loader-ports.js +0 -4
  545. package/build/core/registry.js +0 -100
  546. package/build/core/renew-build.js +0 -554
  547. package/build/core/renew-plan.js +0 -264
  548. package/build/core/renew-rewrite.js +0 -118
  549. package/build/core/renew.js +0 -345
  550. package/build/core/repository-ledger/accepted-fold-read.js +0 -22
  551. package/build/core/repository-ledger/accepted-tail.js +0 -116
  552. package/build/core/repository-ledger/admission.js +0 -38
  553. package/build/core/repository-ledger/authoritative-transaction.js +0 -1
  554. package/build/core/repository-ledger/claim-evidence.js +0 -147
  555. package/build/core/repository-ledger/codec.js +0 -303
  556. package/build/core/repository-ledger/current-state-store.js +0 -968
  557. package/build/core/repository-ledger/fold-repository.js +0 -374
  558. package/build/core/repository-ledger/fold.js +0 -248
  559. package/build/core/repository-ledger/git-object-store.js +0 -243
  560. package/build/core/repository-ledger/history-read.js +0 -15
  561. package/build/core/repository-ledger/identity.js +0 -60
  562. package/build/core/repository-ledger/incremental-read.js +0 -153
  563. package/build/core/repository-ledger/index.js +0 -15
  564. package/build/core/repository-ledger/inventory-plan.js +0 -75
  565. package/build/core/repository-ledger/inventory.js +0 -310
  566. package/build/core/repository-ledger/publication-admission.js +0 -125
  567. package/build/core/repository-ledger/publication.js +0 -353
  568. package/build/core/repository-ledger/read-model.js +0 -517
  569. package/build/core/repository-ledger/transaction-membership.js +0 -78
  570. package/build/core/repository-ledger/traversal.js +0 -404
  571. package/build/core/repository-ledger/write-transaction.js +0 -346
  572. package/build/core/response-artifact-catalog-sqlite.js +0 -112
  573. package/build/core/response-artifact-catalog.js +0 -7
  574. package/build/core/response-artifact-id.js +0 -5
  575. package/build/core/run-control/connection-bound-close.js +0 -41
  576. package/build/core/run-control/detached-lease-bootstrap.js +0 -208
  577. package/build/core/run-control/detached-process.js +0 -14
  578. package/build/core/run-control/index.js +0 -6
  579. package/build/core/run-control/process-tree.js +0 -139
  580. package/build/core/run-control/runner-lease.js +0 -172
  581. package/build/core/run-control/sqlite-process-lifetime-lock.js +0 -174
  582. package/build/core/scope.js +0 -416
  583. package/build/core/seal.js +0 -364
  584. package/build/core/settlement/claim-delivery.js +0 -82
  585. package/build/core/settlement/claim.js +0 -258
  586. package/build/core/settlement/index.js +0 -19
  587. package/build/core/settlement/petition-claim-gates.js +0 -247
  588. package/build/core/settlement/petition-forfeit.js +0 -46
  589. package/build/core/settlement/petition-head-guard.js +0 -12
  590. package/build/core/settlement/petition-io.js +0 -1
  591. package/build/core/settlement/petition-preview.js +0 -125
  592. package/build/core/settlement/petition-window.js +0 -50
  593. package/build/core/settlement/petition.js +0 -315
  594. package/build/core/settlement/queue-read-model.js +0 -120
  595. package/build/core/settlement/queue-seat-allocation.js +0 -65
  596. package/build/core/settlement/queue.js +0 -6
  597. package/build/core/settlement/settlement.js +0 -385
  598. package/build/core/settlement/verdict.js +0 -126
  599. package/build/core/settlement/verification.js +0 -554
  600. package/build/core/status/board.js +0 -455
  601. package/build/core/status/drift.js +0 -113
  602. package/build/core/status/lifecycle.js +0 -11
  603. package/build/core/stored-agent-event.js +0 -129
  604. package/build/core/structured-query.js +0 -23
  605. package/build/core/target-ref.js +0 -10
  606. package/build/core/task/board.js +0 -248
  607. package/build/core/task/commands.js +0 -401
  608. package/build/core/task/compose.js +0 -328
  609. package/build/core/task/coordinate.js +0 -56
  610. package/build/core/task/document.js +0 -273
  611. package/build/core/task/index.js +0 -16
  612. package/build/core/task/model.js +0 -8
  613. package/build/core/task/query.js +0 -204
  614. package/build/core/task/settlement-git.js +0 -423
  615. package/build/core/task/settlement-policy.js +0 -137
  616. package/build/core/task/source-board.js +0 -104
  617. package/build/core/task/source-model.js +0 -1
  618. package/build/core/task/task-bind-preparation.js +0 -243
  619. package/build/core/task/task-contract.js +0 -371
  620. package/build/core/task/task-doctor.js +0 -14
  621. package/build/core/task/task-file-transaction.js +0 -171
  622. package/build/core/task/task-git-actor.js +0 -33
  623. package/build/core/task/task-git-runtime.js +0 -97
  624. package/build/core/task/task-git-store.js +0 -400
  625. package/build/core/task/task-repository.js +0 -1
  626. package/build/core/task/task-store-repository.js +0 -97
  627. package/build/core/task/task-store.js +0 -1
  628. package/build/core/task/task-worktree.js +0 -25
  629. package/build/core/task/task.js +0 -7
  630. package/build/core/task/tree.js +0 -37
  631. package/build/core/task/validation.js +0 -48
  632. package/build/core/transcripts.js +0 -485
  633. package/build/core/validation.js +0 -17
  634. package/build/core/verification-declaration.js +0 -95
  635. package/build/core/worktree-bootstrap.js +0 -195
  636. package/build/core/worktree-path.js +0 -371
  637. package/build/errno.js +0 -3
  638. package/build/flow-error.js +0 -191
  639. package/build/fs/durability.js +0 -27
  640. package/build/fs/path-coordinate.js +0 -16
  641. package/build/generated/version.js +0 -3
  642. package/build/git/branches.js +0 -84
  643. package/build/git/commits.js +0 -151
  644. package/build/git/core.js +0 -86
  645. package/build/git/diff/parsers.js +0 -181
  646. package/build/git/diff/pathspec.js +0 -3
  647. package/build/git/diff/preview.js +0 -38
  648. package/build/git/diff/read.js +0 -105
  649. package/build/git/diff/structured.js +0 -127
  650. package/build/git/diff/types.js +0 -1
  651. package/build/git/path-coordinate.js +0 -17
  652. package/build/git/process.js +0 -229
  653. package/build/git/refs.js +0 -250
  654. package/build/git/staging.js +0 -79
  655. package/build/git/streaming-batch.js +0 -354
  656. package/build/git/worktree.js +0 -175
  657. package/build/index.js +0 -67
  658. package/build/keiyaku-constants.js +0 -2
  659. package/build/keiyaku.js +0 -30
  660. package/build/telemetry/debug-log.js +0 -40
  661. package/build/telemetry/logger.js +0 -48
  662. package/skills/keiyaku/SKILL.md +0 -46
  663. package/skills/keiyaku-akuma/SKILL.md +0 -97
  664. package/skills/keiyaku-task/SKILL.md +0 -118
  665. package/skills/keiyaku-workflow/SKILL.md +0 -191
  666. /package/build/{agents/launch-snapshot → src/body}/types.js +0 -0
  667. /package/build/{agents/providers/claude-agent-sdk/terms.js → src/cli/result.js} +0 -0
  668. /package/build/{agents/providers/codex-app-server/terms.js → src/core/decide.js} +0 -0
  669. /package/build/{agents/providers/opencode-sdk/terms.js → src/core/facts/offer.js} +0 -0
  670. /package/build/{agents/providers/pi/terms.js → src/kanshi/report.js} +0 -0
@@ -0,0 +1,116 @@
1
+ import { type AkumaLife, type CollarProbe, type KillEvidence, type ResumeCoordinate, type Soul } from "./heart/index.js";
2
+ import { type AkuId } from "./identity.js";
3
+ import { type ActivityHistory, type ActivitySnapshot } from "./activity.js";
4
+ import { type Settings } from "../settings.js";
5
+ export type AkumaListRow = Readonly<{
6
+ id: AkuId;
7
+ archetype: string;
8
+ description?: string;
9
+ life: AkumaLife;
10
+ collar: CollarProbe;
11
+ confinement: Soul["confinement"];
12
+ pending: readonly string[];
13
+ }>;
14
+ export type AkumaStatus = AkumaListRow & Readonly<{
15
+ answer?: string;
16
+ answerHistoryId?: string;
17
+ failure?: string;
18
+ outcomeAt?: string;
19
+ activity: ActivitySnapshot;
20
+ }>;
21
+ export type { ActivityHistory, ActivityRow, ActivitySnapshot } from "./activity.js";
22
+ export type UnbornAkumaListRow = Readonly<{
23
+ id: AkuId;
24
+ life: "unborn" | "stillborn";
25
+ seal?: Readonly<{
26
+ evidence: string;
27
+ at: string;
28
+ }>;
29
+ }>;
30
+ export type AkumaList = Readonly<{
31
+ rows: readonly (AkumaListRow | UnbornAkumaListRow)[];
32
+ searched: readonly string[];
33
+ }>;
34
+ export type TellReceipt = Readonly<{
35
+ id: string;
36
+ state: "recorded";
37
+ wake: "spawned" | Readonly<{
38
+ kind: "failed";
39
+ diagnostic: string;
40
+ }>;
41
+ }>;
42
+ export type InterruptReceipt = Readonly<{
43
+ kind: "dead";
44
+ }> | Readonly<{
45
+ kind: "unstoppable";
46
+ evidence: "no-collar" | "collar-unverifiable" | "unavailable" | "alive-after-sigkill" | "leash-held-after-put-down";
47
+ }> | Readonly<{
48
+ kind: "interrupted";
49
+ putDown: "was-idle" | "self-aborted" | "collar";
50
+ tell: TellReceipt | Readonly<{
51
+ kind: "refused-dead";
52
+ }>;
53
+ }>;
54
+ export type ForkReceipt = Readonly<{
55
+ kind: "forked";
56
+ child: AkuId;
57
+ }> | Readonly<{
58
+ kind: "provider-cannot-fork";
59
+ provider: string;
60
+ }> | Readonly<{
61
+ kind: "unknown-history";
62
+ at: string;
63
+ }> | Readonly<{
64
+ kind: "fork-failed";
65
+ diagnostic: string;
66
+ }> | Readonly<{
67
+ kind: "upstream-forked";
68
+ childSession: ResumeCoordinate;
69
+ diagnostic: string;
70
+ }>;
71
+ export declare class AkumaNotBornError extends Error {
72
+ readonly id: AkuId;
73
+ readonly kind = "akuma-not-born";
74
+ constructor(id: AkuId);
75
+ }
76
+ export declare class AkumaHandle {
77
+ readonly id: AkuId;
78
+ private readonly worldPath;
79
+ constructor(id: AkuId, worldPath: string);
80
+ private get paths();
81
+ status(): AkumaStatus;
82
+ history(input?: Readonly<{
83
+ before?: number;
84
+ since?: number;
85
+ limit?: number;
86
+ }>): ActivityHistory;
87
+ wait(predicate?: (status: AkumaStatus) => boolean, options?: Readonly<{
88
+ timeoutMs?: number;
89
+ }>): Promise<AkumaStatus>;
90
+ tell(body: string): Promise<TellReceipt>;
91
+ interrupt(body: string): Promise<InterruptReceipt>;
92
+ fork(input: Readonly<{
93
+ at: string;
94
+ }>): Promise<ForkReceipt>;
95
+ kill(): Promise<KillEvidence>;
96
+ lastAnswer(): string;
97
+ }
98
+ export declare class Akuma {
99
+ private readonly path;
100
+ private readonly settings;
101
+ private constructor();
102
+ static at(input: Readonly<{
103
+ path: string;
104
+ settings?: Settings;
105
+ }>): Akuma;
106
+ of(input: Readonly<{
107
+ id: string;
108
+ }>): AkumaHandle;
109
+ listArchetypes(): readonly string[];
110
+ call(input: Readonly<{
111
+ archetype: string;
112
+ body: string;
113
+ cwd?: string;
114
+ }>): Promise<AkumaHandle>;
115
+ list(): AkumaList;
116
+ }
@@ -0,0 +1,382 @@
1
+ import { randomUUID } from "node:crypto";
2
+ import { readdirSync } from "node:fs";
3
+ import { resolve } from "node:path";
4
+ import { spawnAkumaBody } from "./body.js";
5
+ import { HeldAkumaLeash, activitySlice, life, probeLeash, readCurrentTurn, readHeart, readLastAnsweredTurn, readTurns, readForkPoint, readSeal, readSoul, recordDeath, recordTell, requestPause, requestStop, } from "./heart/index.js";
6
+ import { akuIdFromDirectoryName, akumaPaths, akumaRunRoot, parseAkuId, pathsForAkuId, archetypeName, } from "./identity.js";
7
+ import { projectActivityHistory, selectActivitySnapshot, } from "./activity.js";
8
+ import { listArchetypes as readArchetypes, loadArchetype } from "./archetype.js";
9
+ import { publishAkuma } from "./publication.js";
10
+ import { providerNamed } from "./providers/index.js";
11
+ import { injectedBodyRequests, requestBodyCall } from "./requests.js";
12
+ import { probeProcessTree, putDownProcessTree } from "../runtime/proc/run.js";
13
+ import { settings as readSettings } from "../settings.js";
14
+ const POLL_MS = 25;
15
+ const KILL_GRACE_MS = 1_000;
16
+ export class AkumaNotBornError extends Error {
17
+ id;
18
+ kind = "akuma-not-born";
19
+ constructor(id) {
20
+ super(`Akuma ${id} is not born`);
21
+ this.id = id;
22
+ this.name = "AkumaNotBornError";
23
+ }
24
+ }
25
+ function wait(milliseconds) {
26
+ return new Promise((resolve) => setTimeout(resolve, milliseconds));
27
+ }
28
+ async function takeLeashUntil(paths, deadline) {
29
+ for (;;) {
30
+ const leash = HeldAkumaLeash.try(paths);
31
+ if (leash !== null)
32
+ return leash;
33
+ if (performance.now() >= deadline)
34
+ return null;
35
+ await wait(POLL_MS);
36
+ }
37
+ }
38
+ function recordTellBody(paths, body) {
39
+ const id = randomUUID();
40
+ const admitted = recordTell(paths, { id, body, recordedAt: new Date().toISOString() });
41
+ return admitted === "dead" ? { kind: "dead" } : { kind: "recorded", id };
42
+ }
43
+ async function wakeTell(paths, akuma, id) {
44
+ const soul = readSoul(paths);
45
+ if (soul === null)
46
+ throw new Error(`Akuma ${akuma} has no soul`);
47
+ try {
48
+ await spawnAkumaBody({ paths });
49
+ return { id, state: "recorded", wake: "spawned" };
50
+ }
51
+ catch (error) {
52
+ return {
53
+ id,
54
+ state: "recorded",
55
+ wake: { kind: "failed", diagnostic: error instanceof Error ? error.message : String(error) },
56
+ };
57
+ }
58
+ }
59
+ function collarProbe(snapshot) {
60
+ if (snapshot.latestBody === null)
61
+ return { kind: "gone", end: null };
62
+ const probe = probeProcessTree(snapshot.latestBody.collar);
63
+ if (probe.kind === "gone")
64
+ return { kind: "gone", end: snapshot.latestBody.end ?? null };
65
+ return probe;
66
+ }
67
+ function bornListRow(paths, expected, snapshot = readHeart(paths)) {
68
+ if (snapshot.soul === null)
69
+ throw new AkumaNotBornError(expected);
70
+ if (snapshot.soul.id !== expected)
71
+ throw new Error("Akuma soul does not match its coordinate");
72
+ const collar = collarProbe(snapshot);
73
+ return {
74
+ id: snapshot.soul.id,
75
+ archetype: snapshot.soul.archetype,
76
+ ...(snapshot.soul.description === undefined ? {} : { description: snapshot.soul.description }),
77
+ life: life(probeLeash(paths), collar, snapshot.death),
78
+ collar,
79
+ confinement: snapshot.soul.confinement,
80
+ pending: snapshot.pending.map((tell) => tell.id),
81
+ };
82
+ }
83
+ function bornStatus(paths, expected) {
84
+ const snapshot = readHeart(paths);
85
+ if (snapshot.soul === null)
86
+ throw new AkumaNotBornError(expected);
87
+ const current = bornListRow(paths, expected, snapshot);
88
+ const latest = readCurrentTurn(paths);
89
+ return {
90
+ ...current,
91
+ ...(latest === null ? {} : { outcomeAt: latest.completedAt }),
92
+ ...(latest?.outcome.kind === "answered"
93
+ ? { answer: latest.outcome.answer, answerHistoryId: latest.outcome.historyId }
94
+ : {}),
95
+ ...(latest?.outcome.kind === "failed" ? { failure: latest.outcome.diagnostic } : {}),
96
+ activity: (() => {
97
+ const slice = activitySlice(paths, { limit: 5_000 });
98
+ return selectActivitySnapshot(slice.rows, {
99
+ pending: snapshot.pending,
100
+ lowestRetained: slice.lowestRetained,
101
+ highest: slice.highest,
102
+ });
103
+ })(),
104
+ };
105
+ }
106
+ function diagnostic(error) {
107
+ return error instanceof Error ? error.message : String(error);
108
+ }
109
+ export class AkumaHandle {
110
+ id;
111
+ worldPath;
112
+ constructor(id, worldPath) {
113
+ this.id = id;
114
+ this.worldPath = worldPath;
115
+ }
116
+ get paths() {
117
+ return pathsForAkuId(this.worldPath, this.id);
118
+ }
119
+ status() {
120
+ return bornStatus(this.paths, this.id);
121
+ }
122
+ history(input = {}) {
123
+ if (input.before !== undefined && input.since !== undefined) {
124
+ throw new TypeError("Akuma history before and since are mutually exclusive");
125
+ }
126
+ for (const [name, value] of [["before", input.before], ["since", input.since]]) {
127
+ if (value !== undefined && (!Number.isSafeInteger(value) || value <= 0)) {
128
+ throw new TypeError(`Akuma history ${name} must be a positive safe integer`);
129
+ }
130
+ }
131
+ const limit = input.limit ?? 50;
132
+ if (!Number.isSafeInteger(limit) || limit <= 0 || limit > 5_000) {
133
+ throw new TypeError("Akuma history limit must be a positive safe integer no greater than 5000");
134
+ }
135
+ const slice = activitySlice(this.paths, {
136
+ ...(input.before === undefined ? {} : { before: input.before }),
137
+ ...(input.since === undefined ? {} : { since: input.since }),
138
+ limit: 5_000,
139
+ });
140
+ return projectActivityHistory(slice, readTurns(this.paths), {
141
+ since: input.since !== undefined,
142
+ limit,
143
+ });
144
+ }
145
+ async wait(predicate = (status) => status.life !== "running", options = {}) {
146
+ if (options.timeoutMs !== undefined
147
+ && (!Number.isFinite(options.timeoutMs) || options.timeoutMs < 0)) {
148
+ throw new TypeError("Akuma wait timeoutMs must be a nonnegative finite millisecond duration");
149
+ }
150
+ const deadline = options.timeoutMs === undefined ? undefined : performance.now() + options.timeoutMs;
151
+ for (;;) {
152
+ const status = this.status();
153
+ if (predicate(status) || (deadline !== undefined && performance.now() >= deadline))
154
+ return status;
155
+ await wait(deadline === undefined ? POLL_MS : Math.min(POLL_MS, Math.max(0, deadline - performance.now())));
156
+ }
157
+ }
158
+ async tell(body) {
159
+ const recorded = recordTellBody(this.paths, body);
160
+ if (recorded.kind === "dead")
161
+ throw new Error(`Akuma ${this.id} is dead`);
162
+ return await wakeTell(this.paths, this.id, recorded.id);
163
+ }
164
+ async interrupt(body) {
165
+ if (requestPause(this.paths, new Date().toISOString()) === "dead")
166
+ return { kind: "dead" };
167
+ let putDown = "was-idle";
168
+ let leash = HeldAkumaLeash.try(this.paths);
169
+ if (leash === null) {
170
+ leash = await takeLeashUntil(this.paths, performance.now() + KILL_GRACE_MS);
171
+ putDown = "self-aborted";
172
+ }
173
+ if (leash === null) {
174
+ const current = readHeart(this.paths).latestBody;
175
+ if (current === null)
176
+ return { kind: "unstoppable", evidence: "no-collar" };
177
+ if (probeProcessTree(current.collar).kind === "unverifiable") {
178
+ return { kind: "unstoppable", evidence: "collar-unverifiable" };
179
+ }
180
+ const evidence = await putDownProcessTree(current.collar);
181
+ if (evidence === "unavailable" || evidence === "alive-after-sigkill") {
182
+ return { kind: "unstoppable", evidence };
183
+ }
184
+ leash = await takeLeashUntil(this.paths, performance.now() + KILL_GRACE_MS);
185
+ if (leash === null)
186
+ return { kind: "unstoppable", evidence: "leash-held-after-put-down" };
187
+ putDown = "collar";
188
+ }
189
+ let recorded;
190
+ try {
191
+ leash.clearPause(this.paths);
192
+ recorded = recordTellBody(this.paths, body);
193
+ }
194
+ finally {
195
+ leash.release();
196
+ }
197
+ if (recorded.kind === "dead") {
198
+ return { kind: "interrupted", putDown, tell: { kind: "refused-dead" } };
199
+ }
200
+ return { kind: "interrupted", putDown, tell: await wakeTell(this.paths, this.id, recorded.id) };
201
+ }
202
+ async fork(input) {
203
+ const source = readSoul(this.paths);
204
+ if (source === null)
205
+ throw new AkumaNotBornError(this.id);
206
+ if (source.id !== this.id)
207
+ throw new Error("Akuma soul does not match its coordinate");
208
+ const adapter = providerNamed(source.provider);
209
+ if (adapter.fork === undefined)
210
+ return { kind: "provider-cannot-fork", provider: source.provider.name };
211
+ const point = readForkPoint(this.paths, input.at);
212
+ if (point === null)
213
+ return { kind: "unknown-history", at: input.at };
214
+ if (point.provider !== source.provider.name)
215
+ throw new Error(`Akuma fork point ${input.at} has a mismatched provider`);
216
+ let childSession;
217
+ try {
218
+ childSession = (await adapter.fork({ session: point.session, at: point.historyId, cwd: point.cwd })).session;
219
+ }
220
+ catch (error) {
221
+ return { kind: "fork-failed", diagnostic: diagnostic(error) };
222
+ }
223
+ const admittedAt = new Date().toISOString();
224
+ const birthSession = {
225
+ provider: point.provider,
226
+ coordinate: childSession,
227
+ cwd: point.cwd,
228
+ options: point.options,
229
+ admittedAt,
230
+ };
231
+ try {
232
+ const child = await publishAkuma({
233
+ worldPath: this.worldPath,
234
+ archetype: source.archetype,
235
+ awaitAsleep: true,
236
+ launch: async (allocated) => await spawnAkumaBody({
237
+ paths: allocated.paths,
238
+ seed: {
239
+ id: allocated.id,
240
+ archetype: source.archetype,
241
+ ...(source.description === undefined ? {} : { description: source.description }),
242
+ provider: source.provider,
243
+ options: source.options,
244
+ cwd: source.cwd,
245
+ origin: { kind: "fork", parent: this.id, at: input.at },
246
+ confinement: source.confinement,
247
+ },
248
+ birthSession,
249
+ }),
250
+ });
251
+ return { kind: "forked", child: child.id };
252
+ }
253
+ catch (error) {
254
+ return { kind: "upstream-forked", childSession, diagnostic: diagnostic(error) };
255
+ }
256
+ }
257
+ async kill() {
258
+ const at = new Date().toISOString();
259
+ if (requestStop(this.paths, at) === "dead")
260
+ return "already-dead";
261
+ const graceDeadline = performance.now() + KILL_GRACE_MS;
262
+ while (probeLeash(this.paths) === "held" && performance.now() < graceDeadline)
263
+ await wait(POLL_MS);
264
+ if (probeLeash(this.paths) === "held") {
265
+ const current = readHeart(this.paths).latestBody;
266
+ if (current === null)
267
+ return "unavailable";
268
+ const evidence = await putDownProcessTree(current.collar);
269
+ if (evidence === "unavailable" || evidence === "alive-after-sigkill")
270
+ return evidence;
271
+ }
272
+ const releaseDeadline = performance.now() + KILL_GRACE_MS;
273
+ while (probeLeash(this.paths) === "held" && performance.now() < releaseDeadline)
274
+ await wait(POLL_MS);
275
+ if (probeLeash(this.paths) === "held")
276
+ return "unavailable";
277
+ return recordDeath(this.paths, { evidence: "killed", at }) === "already-dead" ? "already-dead" : "killed";
278
+ }
279
+ lastAnswer() {
280
+ const turn = readLastAnsweredTurn(this.paths);
281
+ return turn?.outcome.kind === "answered" ? turn.outcome.answer : "";
282
+ }
283
+ }
284
+ export class Akuma {
285
+ path;
286
+ settings;
287
+ constructor(path, settings) {
288
+ this.path = path;
289
+ this.settings = settings;
290
+ }
291
+ static at(input) {
292
+ const path = resolve(input.path);
293
+ return new Akuma(path, input.settings ?? readSettings({ root: path }));
294
+ }
295
+ of(input) {
296
+ return new AkumaHandle(parseAkuId(input.id).id, this.path);
297
+ }
298
+ listArchetypes() {
299
+ return readArchetypes({ settings: this.settings });
300
+ }
301
+ async call(input) {
302
+ const name = archetypeName(input.archetype);
303
+ const archetype = loadArchetype({ name, settings: this.settings });
304
+ const provider = archetype.adapter;
305
+ const cwd = resolve(input.cwd ?? this.path);
306
+ const recipe = Object.freeze({
307
+ ...(archetype.description === undefined ? {} : { description: archetype.description }),
308
+ provider: archetype.provider,
309
+ options: archetype.options,
310
+ confinement: provider.confinement({ cwd, options: archetype.options }),
311
+ });
312
+ const requests = injectedBodyRequests();
313
+ if (requests !== null) {
314
+ const child = await requestBodyCall({
315
+ directory: requests,
316
+ id: randomUUID(),
317
+ world: this.path,
318
+ archetype: name,
319
+ body: input.body,
320
+ cwd,
321
+ recipe,
322
+ });
323
+ return new AkumaHandle(child, this.path);
324
+ }
325
+ const published = await publishAkuma({
326
+ worldPath: this.path,
327
+ archetype: archetype.name,
328
+ launch: async (allocated) => await spawnAkumaBody({
329
+ paths: allocated.paths,
330
+ seed: {
331
+ id: allocated.id,
332
+ archetype: allocated.archetype,
333
+ ...(archetype.description === undefined ? {} : { description: archetype.description }),
334
+ provider: archetype.provider,
335
+ options: archetype.options,
336
+ cwd,
337
+ origin: { kind: "direct" },
338
+ confinement: recipe.confinement,
339
+ },
340
+ initialBody: input.body,
341
+ }),
342
+ });
343
+ return new AkumaHandle(published.id, this.path);
344
+ }
345
+ list() {
346
+ const runRoot = akumaRunRoot(this.path);
347
+ let names;
348
+ try {
349
+ names = readdirSync(runRoot, { withFileTypes: true })
350
+ .filter((entry) => entry.isDirectory())
351
+ .map((entry) => entry.name)
352
+ .sort();
353
+ }
354
+ catch (error) {
355
+ if (error.code === "ENOENT")
356
+ return { rows: [], searched: [runRoot] };
357
+ throw error;
358
+ }
359
+ const rows = names.flatMap((name) => {
360
+ try {
361
+ const physical = akuIdFromDirectoryName(name);
362
+ const paths = akumaPaths({ runRoot, archetype: physical.archetype, suffix: physical.suffix });
363
+ const snapshot = readHeart(paths);
364
+ if (snapshot.soul !== null)
365
+ return [bornListRow(paths, physical.id, snapshot)];
366
+ if (probeLeash(paths) === "held")
367
+ return [{ id: physical.id, life: "unborn" }];
368
+ const seal = readSeal(paths);
369
+ return seal === null
370
+ ? [{ id: physical.id, life: "unborn" }]
371
+ : [{ id: physical.id, life: "stillborn", seal }];
372
+ }
373
+ catch {
374
+ return [];
375
+ }
376
+ });
377
+ return {
378
+ rows,
379
+ searched: [runRoot],
380
+ };
381
+ }
382
+ }
@@ -0,0 +1,31 @@
1
+ import type { Settings } from "../settings.js";
2
+ import { type ProviderAdapter, type ProviderOptions } from "./provider.js";
3
+ import type { ProviderExecution } from "./heart/index.js";
4
+ type DecodedArchetype = Readonly<{
5
+ name: string;
6
+ path: string;
7
+ provider: string;
8
+ description?: string;
9
+ options: ProviderOptions;
10
+ }>;
11
+ type ArchetypeDefinition = DecodedArchetype & Readonly<{
12
+ adapter: ProviderAdapter;
13
+ }>;
14
+ type AdmittedArchetype = Omit<ArchetypeDefinition, "provider"> & Readonly<{
15
+ provider: ProviderExecution;
16
+ }>;
17
+ export declare class AkumaArchetypeError extends Error {
18
+ readonly archetype: string;
19
+ readonly searched: readonly string[];
20
+ readonly reason: string;
21
+ readonly kind = "akuma-archetype";
22
+ constructor(archetype: string, searched: readonly string[], reason: string);
23
+ }
24
+ export declare function listArchetypes(input: Readonly<{
25
+ settings: Settings;
26
+ }>): readonly string[];
27
+ export declare function loadArchetype(input: Readonly<{
28
+ name: string;
29
+ settings: Settings;
30
+ }>): AdmittedArchetype;
31
+ export {};