@astrosheep/keiyaku 4.5.29 → 4.6.2

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 (418) hide show
  1. package/build/integrations/marketplace/plugins/keiyaku/skills/keiyaku/SKILL.md +0 -13
  2. package/build/integrations/marketplace/plugins/keiyaku/skills/keiyaku-akuma/SKILL.md +47 -78
  3. package/build/integrations/marketplace/plugins/keiyaku/skills/keiyaku-akuma/references/automation.md +54 -41
  4. package/build/integrations/marketplace/plugins/keiyaku/skills/keiyaku-babysit/SKILL.md +10 -0
  5. package/build/integrations/marketplace/plugins/keiyaku/skills/keiyaku-bind/SKILL.md +27 -9
  6. package/build/integrations/marketplace/plugins/keiyaku/skills/keiyaku-workflow/SKILL.md +68 -71
  7. package/build/src/akuma/akuma-call.d.ts +53 -0
  8. package/build/src/akuma/akuma-call.js +113 -0
  9. package/build/src/akuma/akuma-instance.d.ts +20 -18
  10. package/build/src/akuma/akuma-instance.js +65 -175
  11. package/build/src/akuma/akuma-observe.d.ts +3 -21
  12. package/build/src/akuma/akuma-observe.js +7 -24
  13. package/build/src/akuma/{akuma-handle.d.ts → akuma-owner.d.ts} +55 -27
  14. package/build/src/akuma/{akuma-handle.js → akuma-owner.js} +24 -23
  15. package/build/src/akuma/akuma-selection-execution.d.ts +51 -0
  16. package/build/src/akuma/akuma-selection-execution.js +134 -0
  17. package/build/src/akuma/{fleet-execution.d.ts → akuma-wait.d.ts} +24 -44
  18. package/build/src/akuma/akuma-wait.js +113 -0
  19. package/build/src/akuma/akuma.d.ts +35 -89
  20. package/build/src/akuma/akuma.js +148 -30
  21. package/build/src/akuma/archetype.d.ts +12 -0
  22. package/build/src/akuma/archetype.js +47 -19
  23. package/build/src/akuma/body.d.ts +76 -36
  24. package/build/src/akuma/body.js +84 -49
  25. package/build/src/akuma/call-initial-tell.d.ts +131 -22
  26. package/build/src/akuma/call-initial-tell.js +31 -1
  27. package/build/src/akuma/call-request.d.ts +237 -31
  28. package/build/src/akuma/call-request.js +67 -94
  29. package/build/src/akuma/coordinate.d.ts +15 -5
  30. package/build/src/akuma/coordinate.js +12 -22
  31. package/build/src/akuma/dispatch-association.d.ts +1 -1
  32. package/build/src/akuma/dispatch-association.js +1 -10
  33. package/build/src/akuma/heart/activity-schema.d.ts +325 -0
  34. package/build/src/akuma/heart/activity-schema.js +53 -0
  35. package/build/src/akuma/heart/facts.d.ts +1 -6
  36. package/build/src/akuma/heart/index.d.ts +3 -1
  37. package/build/src/akuma/heart/index.js +4 -1
  38. package/build/src/akuma/heart/rows.d.ts +49 -2
  39. package/build/src/akuma/heart/rows.js +16 -2
  40. package/build/src/akuma/heart/soul.d.ts +1 -0
  41. package/build/src/akuma/heart/soul.js +6 -4
  42. package/build/src/akuma/heart/tells.d.ts +1 -0
  43. package/build/src/akuma/heart/tells.js +18 -0
  44. package/build/src/akuma/identity.d.ts +10 -7
  45. package/build/src/akuma/identity.js +23 -0
  46. package/build/src/akuma/index.d.ts +10 -8
  47. package/build/src/akuma/index.js +2 -2
  48. package/build/src/akuma/nuke.d.ts +3 -0
  49. package/build/src/akuma/nuke.js +13 -7
  50. package/build/src/akuma/projection.d.ts +0 -5
  51. package/build/src/akuma/projection.js +22 -43
  52. package/build/src/akuma/provider-recipe.d.ts +58 -13
  53. package/build/src/akuma/provider-recipe.js +62 -80
  54. package/build/src/akuma/provider.d.ts +6 -76
  55. package/build/src/akuma/provider.js +11 -219
  56. package/build/src/akuma/providers/acp/config.d.ts +2 -0
  57. package/build/src/akuma/providers/acp/config.js +26 -1
  58. package/build/src/akuma/providers/acp/core.d.ts +7 -0
  59. package/build/src/akuma/providers/acp/core.js +49 -18
  60. package/build/src/akuma/providers/acp/index.js +14 -6
  61. package/build/src/akuma/providers/grok-build/index.js +44 -13
  62. package/build/src/akuma/providers/index.d.ts +3 -3
  63. package/build/src/akuma/providers/index.js +2 -13
  64. package/build/src/akuma/providers/opencode-sdk/event-stream.d.ts +28 -0
  65. package/build/src/akuma/providers/opencode-sdk/event-stream.js +92 -0
  66. package/build/src/akuma/providers/opencode-sdk/events.d.ts +0 -1
  67. package/build/src/akuma/providers/opencode-sdk/index.js +200 -64
  68. package/build/src/akuma/providers/opencode-sdk/session.d.ts +41 -1
  69. package/build/src/akuma/providers/opencode-sdk/session.js +69 -2
  70. package/build/src/akuma/providers/pi/events.js +5 -2
  71. package/build/src/akuma/providers/pi/index.d.ts +3 -4
  72. package/build/src/akuma/providers/pi/index.js +99 -45
  73. package/build/src/akuma/publication.d.ts +84 -3
  74. package/build/src/akuma/publication.js +145 -2
  75. package/build/src/akuma/read-pool.d.ts +2 -0
  76. package/build/src/akuma/read-pool.js +15 -0
  77. package/build/src/akuma/request-rendezvous.js +10 -0
  78. package/build/src/akuma/request-serve.js +7 -0
  79. package/build/src/akuma/request-wire.d.ts +14 -26
  80. package/build/src/akuma/request-wire.js +4 -0
  81. package/build/src/akuma/requests.d.ts +0 -2
  82. package/build/src/akuma/requests.js +0 -17
  83. package/build/src/akuma/{fleet-observation.d.ts → selection-observation.d.ts} +37 -36
  84. package/build/src/akuma/selection-observation.js +65 -0
  85. package/build/src/akuma/{fleet-owner-port.d.ts → selection-owner-port.d.ts} +3 -3
  86. package/build/src/akuma/{fleet-owner-port.js → selection-owner-port.js} +11 -17
  87. package/build/src/akuma/{fleet-request.d.ts → selection-request.d.ts} +42 -82
  88. package/build/src/akuma/{fleet-request.js → selection-request.js} +92 -136
  89. package/build/src/akuma/turn-drive.js +73 -14
  90. package/build/src/akuma-body.js +91 -56
  91. package/build/src/body/amend.d.ts +5 -0
  92. package/build/src/body/amend.js +26 -50
  93. package/build/src/body/arc.d.ts +4 -2
  94. package/build/src/body/arc.js +19 -26
  95. package/build/src/body/criteria.d.ts +6 -0
  96. package/build/src/body/criteria.js +37 -0
  97. package/build/src/body/decode.js +5 -42
  98. package/build/src/body/region.d.ts +5 -0
  99. package/build/src/body/region.js +45 -2
  100. package/build/src/body/render.js +2 -4
  101. package/build/src/cli/activity.d.ts +26 -0
  102. package/build/src/cli/activity.js +75 -0
  103. package/build/src/cli/actor.d.ts +3 -1
  104. package/build/src/cli/actor.js +15 -2
  105. package/build/src/cli/commands/akuma-grammar.d.ts +75 -0
  106. package/build/src/cli/commands/akuma-grammar.js +414 -0
  107. package/build/src/cli/commands/akuma.d.ts +5 -69
  108. package/build/src/cli/commands/akuma.js +352 -319
  109. package/build/src/cli/commands/amend.d.ts +4 -5
  110. package/build/src/cli/commands/amend.js +1 -2
  111. package/build/src/cli/commands/bind.d.ts +4 -5
  112. package/build/src/cli/commands/bind.js +7 -10
  113. package/build/src/cli/commands/contract-grammar.d.ts +112 -0
  114. package/build/src/cli/commands/contract-grammar.js +282 -0
  115. package/build/src/cli/commands/contract-help.d.ts +17 -22
  116. package/build/src/cli/commands/contract-help.js +37 -24
  117. package/build/src/cli/commands/contract.d.ts +18 -97
  118. package/build/src/cli/commands/contract.js +621 -233
  119. package/build/src/cli/commands/install.d.ts +1 -1
  120. package/build/src/cli/commands/install.js +2 -2
  121. package/build/src/cli/commands/task-grammar.d.ts +19 -0
  122. package/build/src/cli/commands/task-grammar.js +438 -0
  123. package/build/src/cli/commands/task-query.js +23 -104
  124. package/build/src/cli/commands/task.d.ts +5 -20
  125. package/build/src/cli/commands/task.js +414 -364
  126. package/build/src/cli/coordinates.d.ts +10 -0
  127. package/build/src/cli/coordinates.js +20 -0
  128. package/build/src/cli/draft.d.ts +7 -1
  129. package/build/src/cli/main.js +10 -1
  130. package/build/src/cli/parse.d.ts +8 -9
  131. package/build/src/cli/parse.js +62 -62
  132. package/build/src/cli/render/akuma-activity.d.ts +54 -36
  133. package/build/src/cli/render/akuma-activity.js +262 -242
  134. package/build/src/cli/render/akuma-tool.d.ts +8 -4
  135. package/build/src/cli/render/akuma-tool.js +6 -5
  136. package/build/src/cli/render/akuma.d.ts +36 -16
  137. package/build/src/cli/render/akuma.js +65 -132
  138. package/build/src/cli/render/audit.d.ts +6 -2
  139. package/build/src/cli/render/audit.js +59 -28
  140. package/build/src/cli/render/catalog.d.ts +11 -2
  141. package/build/src/cli/render/catalog.js +75 -95
  142. package/build/src/cli/render/contract-history.d.ts +3 -1
  143. package/build/src/cli/render/contract-history.js +215 -22
  144. package/build/src/cli/render/contract-observation.d.ts +10 -5
  145. package/build/src/cli/render/contract-observation.js +29 -46
  146. package/build/src/cli/render/contract.d.ts +10 -3
  147. package/build/src/cli/render/contract.js +252 -103
  148. package/build/src/cli/render/effects.d.ts +26 -0
  149. package/build/src/cli/render/effects.js +41 -0
  150. package/build/src/cli/render/execution-progress.d.ts +18 -6
  151. package/build/src/cli/render/execution-progress.js +34 -31
  152. package/build/src/cli/render/kanshi-akuma.d.ts +1 -2
  153. package/build/src/cli/render/kanshi-akuma.js +5 -26
  154. package/build/src/cli/render/kanshi.js +107 -128
  155. package/build/src/cli/render/marks.d.ts +13 -0
  156. package/build/src/cli/render/marks.js +74 -0
  157. package/build/src/cli/render/nuke.js +18 -7
  158. package/build/src/cli/render/receipt.d.ts +10 -4
  159. package/build/src/cli/render/receipt.js +124 -44
  160. package/build/src/cli/render/reconcile.d.ts +5 -0
  161. package/build/src/cli/render/reconcile.js +152 -0
  162. package/build/src/cli/render/refusal.d.ts +21 -4
  163. package/build/src/cli/render/refusal.js +60 -33
  164. package/build/src/cli/render/region.js +3 -2
  165. package/build/src/cli/render/settings.js +2 -12
  166. package/build/src/cli/render/task.d.ts +37 -6
  167. package/build/src/cli/render/task.js +161 -157
  168. package/build/src/cli/render/terminal.d.ts +20 -1
  169. package/build/src/cli/render/terminal.js +92 -18
  170. package/build/src/cli/runtime.d.ts +32 -8
  171. package/build/src/cli/runtime.js +157 -165
  172. package/build/src/cli/selectors.d.ts +5 -2
  173. package/build/src/cli/selectors.js +11 -3
  174. package/build/src/cli/streams.d.ts +11 -0
  175. package/build/src/cli/streams.js +32 -0
  176. package/build/src/cli/usage.d.ts +2 -0
  177. package/build/src/cli/usage.js +12 -8
  178. package/build/src/contract-guidance.js +3 -7
  179. package/build/src/contract-worktree.d.ts +20 -28
  180. package/build/src/contract-worktree.js +18 -70
  181. package/build/src/coordination/durable-file.d.ts +2 -2
  182. package/build/src/coordination/durable-file.js +0 -27
  183. package/build/src/core/facts/codec.d.ts +1 -2
  184. package/build/src/core/facts/codec.js +6 -7
  185. package/build/src/core/facts/gate.d.ts +0 -1
  186. package/build/src/core/facts/gate.js +0 -82
  187. package/build/src/core/facts/types.d.ts +1 -2
  188. package/build/src/core/verbs/abandon.d.ts +2 -6
  189. package/build/src/core/verbs/abandon.js +0 -16
  190. package/build/src/core/verbs/amend.d.ts +0 -1
  191. package/build/src/core/verbs/amend.js +0 -20
  192. package/build/src/core/verbs/arc.d.ts +7 -8
  193. package/build/src/core/verbs/arc.js +2 -19
  194. package/build/src/core/verbs/attestation.d.ts +2 -6
  195. package/build/src/core/verbs/attestation.js +0 -16
  196. package/build/src/core/verbs/bind.d.ts +0 -1
  197. package/build/src/core/verbs/bind.js +0 -16
  198. package/build/src/core/verbs/deliver.d.ts +0 -1
  199. package/build/src/core/verbs/deliver.js +0 -16
  200. package/build/src/core/verbs/placement.d.ts +2 -1
  201. package/build/src/core/verbs/placement.js +10 -59
  202. package/build/src/git/admission.d.ts +6 -4
  203. package/build/src/git/admission.js +4 -0
  204. package/build/src/git/hooks.d.ts +55 -30
  205. package/build/src/git/hooks.js +30 -3
  206. package/build/src/git/identity.d.ts +6 -0
  207. package/build/src/git/identity.js +47 -0
  208. package/build/src/git/integration.d.ts +31 -13
  209. package/build/src/git/integration.js +32 -1
  210. package/build/src/git/nuke.d.ts +10 -1
  211. package/build/src/git/nuke.js +31 -11
  212. package/build/src/git/observe.js +2 -15
  213. package/build/src/git/private-state-seat.d.ts +6 -7
  214. package/build/src/git/private-state-seat.js +8 -6
  215. package/build/src/git/read-observation.d.ts +6 -1
  216. package/build/src/git/read-observation.js +81 -46
  217. package/build/src/git/reconcile.d.ts +117 -40
  218. package/build/src/git/reconcile.js +169 -40
  219. package/build/src/git/scratch.d.ts +7 -4
  220. package/build/src/git/scratch.js +28 -6
  221. package/build/src/git/target-placement.d.ts +53 -38
  222. package/build/src/git/target-placement.js +69 -54
  223. package/build/src/git/tender.d.ts +37 -28
  224. package/build/src/git/tender.js +39 -0
  225. package/build/src/git/terminal-reconcile.js +21 -23
  226. package/build/src/git/terminal-seal.d.ts +8 -6
  227. package/build/src/git/terminal-seal.js +10 -0
  228. package/build/src/git/workspace.d.ts +29 -15
  229. package/build/src/git/workspace.js +28 -2
  230. package/build/src/identity/normalize.js +19 -6
  231. package/build/src/index.d.ts +78 -7
  232. package/build/src/index.js +52 -4
  233. package/build/src/kanshi/read.d.ts +3 -3
  234. package/build/src/kanshi/read.js +21 -21
  235. package/build/src/kanshi/report.d.ts +9 -8
  236. package/build/src/kanshi/roster.d.ts +2 -0
  237. package/build/src/kanshi/roster.js +2 -0
  238. package/build/src/kanshi/select.js +7 -3
  239. package/build/src/library/address.d.ts +3 -7
  240. package/build/src/library/address.js +7 -7
  241. package/build/src/library/akuma-creation.d.ts +21 -32
  242. package/build/src/library/akuma-creation.js +148 -165
  243. package/build/src/library/akumas.d.ts +20 -22
  244. package/build/src/library/akumas.js +43 -20
  245. package/build/src/library/bind.d.ts +107 -13
  246. package/build/src/library/bind.js +29 -23
  247. package/build/src/library/continuation.d.ts +556 -28
  248. package/build/src/library/continuation.js +29 -54
  249. package/build/src/library/contract-composition.d.ts +40 -0
  250. package/build/src/library/contract-composition.js +105 -0
  251. package/build/src/library/contract-creation.d.ts +7 -0
  252. package/build/src/library/contract-creation.js +192 -0
  253. package/build/src/library/contract-execution.d.ts +29 -40
  254. package/build/src/library/contract-execution.js +503 -128
  255. package/build/src/library/contract-operations.d.ts +275 -134
  256. package/build/src/library/contract-operations.js +83 -92
  257. package/build/src/library/contract-outcomes.d.ts +71 -0
  258. package/build/src/library/contract-outcomes.js +32 -0
  259. package/build/src/library/contract-settings.d.ts +25 -0
  260. package/build/src/library/contract-settings.js +135 -0
  261. package/build/src/library/contract-types.d.ts +17 -38
  262. package/build/src/library/delivery.d.ts +530 -10
  263. package/build/src/library/delivery.js +20 -45
  264. package/build/src/library/input.d.ts +3 -1
  265. package/build/src/library/input.js +11 -16
  266. package/build/src/library/invocation.d.ts +87 -0
  267. package/build/src/library/invocation.js +290 -0
  268. package/build/src/library/keiyaku.d.ts +45 -22
  269. package/build/src/library/keiyaku.js +134 -8
  270. package/build/src/library/nuke.d.ts +2 -11
  271. package/build/src/library/nuke.js +70 -57
  272. package/build/src/library/outcome.d.ts +13196 -0
  273. package/build/src/library/outcome.js +487 -0
  274. package/build/src/library/reconcile.d.ts +96 -24
  275. package/build/src/library/reconcile.js +102 -42
  276. package/build/src/library/refusal.d.ts +470 -42
  277. package/build/src/library/refusal.js +55 -143
  278. package/build/src/library/region.d.ts +15 -7
  279. package/build/src/library/region.js +23 -3
  280. package/build/src/library/repo.d.ts +2 -12
  281. package/build/src/library/repo.js +1 -22
  282. package/build/src/library/selection.d.ts +121 -0
  283. package/build/src/library/{fleet.js → selection.js} +169 -152
  284. package/build/src/plugin/public.d.ts +2 -0
  285. package/build/src/protocol/abandon.d.ts +2 -2
  286. package/build/src/protocol/abandon.js +1 -0
  287. package/build/src/protocol/amend.js +1 -0
  288. package/build/src/protocol/arc.d.ts +6 -4
  289. package/build/src/protocol/attempt.d.ts +4 -2
  290. package/build/src/protocol/attempt.js +10 -0
  291. package/build/src/protocol/audit.d.ts +255 -52
  292. package/build/src/protocol/audit.js +63 -5
  293. package/build/src/protocol/bind.d.ts +18 -17
  294. package/build/src/protocol/bind.js +9 -28
  295. package/build/src/protocol/completion.d.ts +256 -22
  296. package/build/src/protocol/completion.js +100 -12
  297. package/build/src/protocol/deliver.d.ts +34 -23
  298. package/build/src/protocol/deliver.js +39 -25
  299. package/build/src/protocol/execution-observation.d.ts +36 -37
  300. package/build/src/protocol/execution-observation.js +7 -9
  301. package/build/src/protocol/intent.d.ts +101 -30
  302. package/build/src/protocol/intent.js +74 -1
  303. package/build/src/protocol/operations.d.ts +570 -64
  304. package/build/src/protocol/operations.js +189 -9
  305. package/build/src/protocol/outcome.d.ts +2 -1
  306. package/build/src/protocol/placement.d.ts +2 -2
  307. package/build/src/protocol/placement.js +3 -1
  308. package/build/src/protocol/progress.d.ts +108 -65
  309. package/build/src/protocol/progress.js +82 -132
  310. package/build/src/protocol/read/status.d.ts +4 -3
  311. package/build/src/protocol/read/status.js +6 -5
  312. package/build/src/protocol/reconcile.d.ts +3 -3
  313. package/build/src/protocol/reconcile.js +4 -0
  314. package/build/src/protocol/reintegrate.d.ts +2 -2
  315. package/build/src/protocol/review.d.ts +30 -12
  316. package/build/src/protocol/review.js +15 -24
  317. package/build/src/protocol/run.d.ts +34 -5
  318. package/build/src/protocol/run.js +24 -12
  319. package/build/src/runtime/proc/windows-launch.exe +0 -0
  320. package/build/src/settings.d.ts +0 -10
  321. package/build/src/settings.js +0 -76
  322. package/build/src/settlement/holder.d.ts +1 -1
  323. package/build/src/settlement/settle.d.ts +25 -16
  324. package/build/src/settlement/settle.js +80 -20
  325. package/build/src/task/board.d.ts +3 -1
  326. package/build/src/task/board.js +13 -17
  327. package/build/src/task/catalog.d.ts +0 -4
  328. package/build/src/task/catalog.js +0 -15
  329. package/build/src/task/compose-language.d.ts +19 -9
  330. package/build/src/task/compose-language.js +30 -20
  331. package/build/src/task/compose.d.ts +7 -37
  332. package/build/src/task/compose.js +20 -2
  333. package/build/src/task/created-observation.d.ts +0 -1
  334. package/build/src/task/created-observation.js +1 -4
  335. package/build/src/task/document.d.ts +12 -2
  336. package/build/src/task/document.js +4 -0
  337. package/build/src/task/identity.d.ts +4 -1
  338. package/build/src/task/identity.js +21 -17
  339. package/build/src/task/index.d.ts +36 -16
  340. package/build/src/task/index.js +103 -96
  341. package/build/src/task/lifecycle-operations.d.ts +1 -1
  342. package/build/src/task/mutation-result.d.ts +647 -586
  343. package/build/src/task/mutation-result.js +79 -46
  344. package/build/src/task/mutation.d.ts +298 -270
  345. package/build/src/task/mutation.js +93 -110
  346. package/build/src/task/operation-types.d.ts +6 -49
  347. package/build/src/task/operations.d.ts +2 -1
  348. package/build/src/task/operations.js +35 -12
  349. package/build/src/task/query.d.ts +9 -3
  350. package/build/src/task/query.js +42 -16
  351. package/build/src/task/store.d.ts +2 -1
  352. package/build/src/task/store.js +10 -14
  353. package/build/src/verification/declaration.d.ts +0 -1
  354. package/build/src/verification/declaration.js +1 -18
  355. package/build/src/verification/execution.d.ts +6 -2
  356. package/build/src/verification/observation.d.ts +1 -1
  357. package/package.json +2 -18
  358. package/build/src/akuma/akuma-product.d.ts +0 -58
  359. package/build/src/akuma/akuma-product.js +0 -276
  360. package/build/src/akuma/fleet-execution.js +0 -234
  361. package/build/src/akuma/fleet-observation.js +0 -97
  362. package/build/src/cli/accepted.d.ts +0 -24
  363. package/build/src/cli/accepted.js +0 -167
  364. package/build/src/cli/catalog.d.ts +0 -45
  365. package/build/src/cli/catalog.js +0 -1
  366. package/build/src/cli/commands/akuma-invoke.d.ts +0 -114
  367. package/build/src/cli/commands/akuma-invoke.js +0 -375
  368. package/build/src/cli/commands/contract-invoke.d.ts +0 -34
  369. package/build/src/cli/commands/contract-invoke.js +0 -259
  370. package/build/src/cli/commands/nuke.d.ts +0 -10
  371. package/build/src/cli/commands/nuke.js +0 -20
  372. package/build/src/cli/commands/status-set.d.ts +0 -4
  373. package/build/src/cli/commands/status-set.js +0 -52
  374. package/build/src/cli/commands/task-invoke.d.ts +0 -49
  375. package/build/src/cli/commands/task-invoke.js +0 -306
  376. package/build/src/cli/invoke.d.ts +0 -27
  377. package/build/src/cli/invoke.js +0 -521
  378. package/build/src/cli/render/board.d.ts +0 -3
  379. package/build/src/cli/render/board.js +0 -25
  380. package/build/src/cli/render/status-set.d.ts +0 -5
  381. package/build/src/cli/render/status-set.js +0 -19
  382. package/build/src/cli/render/text.d.ts +0 -3
  383. package/build/src/cli/render/text.js +0 -33
  384. package/build/src/cli/result.d.ts +0 -240
  385. package/build/src/cli/result.js +0 -1
  386. package/build/src/git/result-codec.d.ts +0 -29
  387. package/build/src/git/result-codec.js +0 -309
  388. package/build/src/kanshi/fleet.d.ts +0 -6
  389. package/build/src/kanshi/fleet.js +0 -27
  390. package/build/src/library/audit.d.ts +0 -29
  391. package/build/src/library/audit.js +0 -41
  392. package/build/src/library/composition.d.ts +0 -15
  393. package/build/src/library/composition.js +0 -28
  394. package/build/src/library/configuration.d.ts +0 -4
  395. package/build/src/library/configuration.js +0 -2
  396. package/build/src/library/contract-bind.d.ts +0 -31
  397. package/build/src/library/contract-bind.js +0 -140
  398. package/build/src/library/contract-forwarding.d.ts +0 -55
  399. package/build/src/library/contract-forwarding.js +0 -67
  400. package/build/src/library/contract-handle.d.ts +0 -50
  401. package/build/src/library/contract-handle.js +0 -385
  402. package/build/src/library/contract.d.ts +0 -46
  403. package/build/src/library/contract.js +0 -73
  404. package/build/src/library/execution-result.d.ts +0 -243
  405. package/build/src/library/execution-result.js +0 -101
  406. package/build/src/library/execution.d.ts +0 -8
  407. package/build/src/library/execution.js +0 -102
  408. package/build/src/library/fleet.d.ts +0 -83
  409. package/build/src/library/mutation.d.ts +0 -501
  410. package/build/src/library/mutation.js +0 -248
  411. package/build/src/library/result-codec.d.ts +0 -2
  412. package/build/src/library/result-codec.js +0 -12
  413. package/build/src/protocol/result-codec.d.ts +0 -23
  414. package/build/src/protocol/result-codec.js +0 -488
  415. package/build/src/settlement/result-codec.d.ts +0 -2
  416. package/build/src/settlement/result-codec.js +0 -56
  417. package/build/src/task/public.d.ts +0 -2
  418. package/build/src/task/public.js +0 -1
@@ -1,17 +1,9 @@
1
- import { type AkumaLife, type KillEvidence, type ResumeCoordinate } from "./heart/index.js";
2
- export type { KillEvidence };
3
- import { type AkuId } from "./identity.js";
4
- import type { Settings } from "../settings.js";
5
- import type { WorldRoot } from "../world.js";
6
- import { type AllowedAction } from "./allowed.js";
7
- import type { ExecutionContext } from "./requests.js";
8
1
  import { z } from "zod";
9
- import type { BoundedList } from "../bounded-list.js";
10
- import type { Schema } from "./schema.js";
11
- import { killAkumaWithRecovery } from "./akuma-handle.js";
12
- import type { TellResult } from "./body.js";
13
- export { killAkumaWithRecovery };
14
- export declare const POLL_MS = 100;
2
+ import { type BoundedList } from "../bounded-list.js";
3
+ import type { AkumaAlias } from "../identity/selector.js";
4
+ import type { WorldRoot } from "../world.js";
5
+ import type { AkumaLife } from "./heart/index.js";
6
+ import { type AkuId } from "./identity.js";
15
7
  export type AkumaListRow = Readonly<{
16
8
  id: AkuId;
17
9
  archetype: string;
@@ -20,8 +12,26 @@ export type AkumaListRow = Readonly<{
20
12
  lifeAt: string | null;
21
13
  lastActivityAt: string | null;
22
14
  pending: readonly string[];
15
+ aliases: readonly AkumaAlias[];
16
+ }>;
17
+ export type UnbornAkumaListRow = Readonly<{
18
+ id: AkuId;
19
+ life: "unborn" | "stillborn";
20
+ aliases: readonly AkumaAlias[];
21
+ seal?: Readonly<{
22
+ evidence: string;
23
+ at: string;
24
+ }>;
25
+ }>;
26
+ export type AkumaList = BoundedList<AkumaListRow | UnbornAkumaListRow> & Readonly<{
27
+ observedAt: string;
28
+ searched: readonly string[];
29
+ }>;
30
+ export type AkumaCompleteList = Omit<AkumaList, "hasMore">;
31
+ export type AkumaListInput = Readonly<{
32
+ archetype?: string;
33
+ limit?: number;
23
34
  }>;
24
- export declare const akumaIdSchema: z.ZodPipe<z.ZodString, z.ZodTransform<AkuId, string>>;
25
35
  export declare const akumaStatusSchema: z.ZodObject<{
26
36
  id: z.ZodPipe<z.ZodString, z.ZodTransform<AkuId, string>>;
27
37
  life: z.ZodEnum<{
@@ -214,7 +224,6 @@ export declare const akumaStatusSchema: z.ZodObject<{
214
224
  sequence: z.ZodNumber;
215
225
  turnSequence: z.ZodNumber;
216
226
  at: z.ZodString;
217
- completedAt: z.ZodOptional<z.ZodString>;
218
227
  durationMs: z.ZodOptional<z.ZodNumber>;
219
228
  name: z.ZodString;
220
229
  call: z.ZodUnion<readonly [z.ZodObject<{
@@ -373,7 +382,6 @@ export declare const akumaStatusSchema: z.ZodObject<{
373
382
  sequence: z.ZodNumber;
374
383
  turnSequence: z.ZodNumber;
375
384
  at: z.ZodString;
376
- completedAt: z.ZodOptional<z.ZodString>;
377
385
  durationMs: z.ZodOptional<z.ZodNumber>;
378
386
  name: z.ZodString;
379
387
  call: z.ZodUnion<readonly [z.ZodObject<{
@@ -434,79 +442,17 @@ export declare const akumaStatusSchema: z.ZodObject<{
434
442
  }, z.core.$strict>;
435
443
  export type AkumaStatus = z.infer<typeof akumaStatusSchema>;
436
444
  export declare function parseAkumaStatus(value: unknown): AkumaStatus;
437
- export { defaultWaitComplete } from "./akuma-observe.js";
438
- export { withoutReportedChanges } from "./projection.js";
439
- export type * from "./projection.js";
440
- export type UnbornAkumaListRow = Readonly<{
441
- id: AkuId;
442
- life: "unborn" | "stillborn";
443
- seal?: Readonly<{
444
- evidence: string;
445
- at: string;
446
- }>;
447
- }>;
448
- export type AkumaList = BoundedList<AkumaListRow | UnbornAkumaListRow> & Readonly<{
449
- observedAt: string;
450
- searched: readonly string[];
451
- }>;
452
- export type AkumaCompleteList = Omit<AkumaList, "hasMore">;
453
- export type AkumaListInput = Readonly<{
454
- archetype?: string;
455
- limit?: number;
456
- }>;
457
- export type AkumaCallExecution = Readonly<{
458
- cwd: string;
459
- source: "input" | "caller" | "process" | "world";
460
- }>;
461
- export type AkumaCallInput = Readonly<{
462
- archetype: string;
463
- body: string;
464
- cwd?: string;
465
- allowed?: readonly AllowedAction[];
466
- schema?: Schema<unknown>;
467
- initiator?: string;
468
- signal?: AbortSignal;
469
- }>;
470
- export type AkumaCallContext = Readonly<{
471
- initiatorCwd?: string;
472
- cwdCanonical?: true;
473
- }>;
474
- export type { TellResult, TellWake } from "./body.js";
475
- export type InterruptReceipt = Readonly<{
476
- kind: "unavailable";
477
- evidence: "hung" | "untidy" | "unavailable";
478
- }> | Readonly<{
479
- kind: "interrupted";
480
- putDown: "was-idle" | "self-aborted";
481
- tell: TellResult;
482
- }>;
483
- export type ForkReceipt = Readonly<{
484
- kind: "forked";
485
- child: AkuId;
486
- }> | Readonly<{
487
- kind: "provider-cannot-fork";
488
- provider: string;
489
- }> | Readonly<{
490
- kind: "unknown-history";
491
- at: string;
492
- }> | Readonly<{
493
- kind: "fork-failed";
494
- diagnostic: string;
495
- }> | Readonly<{
496
- kind: "upstream-forked";
497
- childSession: ResumeCoordinate;
498
- diagnostic: string;
499
- }>;
500
- export { AkumaNotBornError } from "./akuma-errors.js";
501
- export declare function wait(milliseconds: number): Promise<void>;
502
- export { bornStatus, fleetListRow, readAkumaBirthCwd, readBudgetedStatus, type BudgetedStatusObservation, } from "./akuma-observe.js";
503
- export type AkumaConfiguration = Readonly<{
445
+ export declare function listAkumaArchetypes(path: WorldRoot, input?: Readonly<{
504
446
  home?: string;
505
- settings?: Settings;
506
- execution?: ExecutionContext;
507
- }>;
508
- /** Internal catalog observation for composition owners. */
509
- export declare function readAkumaCatalog(path: WorldRoot, input?: AkumaListInput): Promise<AkumaList>;
447
+ }>): Promise<readonly string[]>;
448
+ /**
449
+ * The bounded recent-activity roster: native membership, semantic order and
450
+ * observed extent. World Alias context is attached by the upper composition.
451
+ */
452
+ export declare function readAkumaRoster(path: WorldRoot, input?: AkumaListInput): Promise<AkumaList>;
453
+ /** The complete native roster for callers whose semantics require a frozen set. */
454
+ export declare function readAkumaCompleteRoster(path: WorldRoot, input?: Readonly<{
455
+ archetype?: string;
456
+ }>): Promise<AkumaCompleteList>;
510
457
  /** Internal timeline observation for composition owners. */
511
458
  export declare function readAkumaTimeline(path: WorldRoot, id: AkuId): Promise<AkumaStatus["timeline"]>;
512
- export { AkumaBusyError, AkumaDecodeError, AkumaProviderError } from "./akuma-errors.js";
@@ -1,23 +1,13 @@
1
- import { parseAkuId } from "./identity.js";
2
- import { activitySnapshotSchema } from "./projection.js";
3
- import { allowedActionsSchema } from "./allowed.js";
1
+ import { readdir, stat } from "node:fs/promises";
4
2
  import { z } from "zod";
5
- import { createAkumaProduct } from "./akuma-product.js";
6
- import { killAkumaWithRecovery } from "./akuma-handle.js";
7
- export { killAkumaWithRecovery };
8
- export const POLL_MS = 100;
9
- export const akumaIdSchema = z.string().transform((value, context) => {
10
- try {
11
- const id = parseAkuId(value).id;
12
- if (id !== value)
13
- throw new Error("not canonical");
14
- return id;
15
- }
16
- catch {
17
- context.addIssue({ code: "custom", message: "expected canonical AkuId" });
18
- return z.NEVER;
19
- }
20
- });
3
+ import { boundedListLimit, projectBoundedList } from "../bounded-list.js";
4
+ import { rosterListRow } from "./akuma-observe.js";
5
+ import { AkumaOwner } from "./akuma-owner.js";
6
+ import { allowedActionsSchema } from "./allowed.js";
7
+ import { listArchetypes as readArchetypes } from "./archetype.js";
8
+ import { akuIdFromDirectoryName, akumaIdSchema, akumaPaths, akumaRunRoot, archetypeName, } from "./identity.js";
9
+ import { activitySnapshotSchema } from "./projection.js";
10
+ import { PAGE_POOL_SIZE, boundedMap } from "./read-pool.js";
21
11
  export const akumaStatusSchema = z
22
12
  .object({
23
13
  id: akumaIdSchema,
@@ -31,19 +21,147 @@ export const akumaStatusSchema = z
31
21
  export function parseAkumaStatus(value) {
32
22
  return akumaStatusSchema.parse(value);
33
23
  }
34
- export { defaultWaitComplete } from "./akuma-observe.js";
35
- export { withoutReportedChanges } from "./projection.js";
36
- export { AkumaNotBornError } from "./akuma-errors.js";
37
- export function wait(milliseconds) {
38
- return new Promise((resolve) => setTimeout(resolve, milliseconds));
24
+ export async function listAkumaArchetypes(path, input = {}) {
25
+ return readArchetypes({ project: path, ...(input.home === undefined ? {} : { home: input.home }) });
26
+ }
27
+ function activityAt(row) {
28
+ if (!("lifeAt" in row))
29
+ return null;
30
+ if (row.lifeAt === null)
31
+ return row.lastActivityAt;
32
+ if (row.lastActivityAt === null)
33
+ return row.lifeAt;
34
+ return row.lifeAt > row.lastActivityAt ? row.lifeAt : row.lastActivityAt;
35
+ }
36
+ function compareActivity(left, right) {
37
+ if (left === right)
38
+ return 0;
39
+ if (left === null)
40
+ return 1;
41
+ if (right === null)
42
+ return -1;
43
+ return left > right ? -1 : 1;
44
+ }
45
+ function compareRows(left, right) {
46
+ const activity = compareActivity(activityAt(left), activityAt(right));
47
+ if (activity !== 0)
48
+ return activity;
49
+ return left.id < right.id ? -1 : left.id > right.id ? 1 : 0;
50
+ }
51
+ async function mtimeBound(paths) {
52
+ const read = async (path) => {
53
+ try {
54
+ return (await stat(path)).mtimeMs;
55
+ }
56
+ catch (error) {
57
+ return error.code === "ENOENT" ? 0 : Number.POSITIVE_INFINITY;
58
+ }
59
+ };
60
+ return Math.max(await read(paths.heart), await read(`${paths.heart}-wal`));
61
+ }
62
+ async function knownAkuma(path, selected) {
63
+ const runRoot = akumaRunRoot(path);
64
+ let names;
65
+ try {
66
+ names = (await readdir(runRoot, { withFileTypes: true }))
67
+ .filter((entry) => entry.isDirectory())
68
+ .map((entry) => entry.name)
69
+ .sort();
70
+ }
71
+ catch (error) {
72
+ if (error.code === "ENOENT")
73
+ return { runRoot, rows: [] };
74
+ throw error;
75
+ }
76
+ const rows = [];
77
+ for (const name of names) {
78
+ let physical;
79
+ try {
80
+ physical = akuIdFromDirectoryName(name);
81
+ }
82
+ catch {
83
+ continue;
84
+ }
85
+ if (selected !== undefined && physical.archetype !== selected)
86
+ continue;
87
+ rows.push({
88
+ id: physical.id,
89
+ paths: akumaPaths({ runRoot, archetype: physical.archetype, suffix: physical.suffix }),
90
+ });
91
+ }
92
+ return { runRoot, rows };
93
+ }
94
+ async function readableRows(rows) {
95
+ const loaded = await boundedMap(rows, async ({ id, paths }) => {
96
+ try {
97
+ return await rosterListRow(paths, id);
98
+ }
99
+ catch {
100
+ return null;
101
+ }
102
+ });
103
+ return [...loaded].filter((row) => row !== null);
104
+ }
105
+ function rosterArchetype(input, allowLimit) {
106
+ if (typeof input !== "object" || input === null || Array.isArray(input))
107
+ throw new TypeError("Akuma list input must be an object");
108
+ const allowed = allowLimit ? ["archetype", "limit"] : ["archetype"];
109
+ const unknown = Object.keys(input).find((key) => !allowed.includes(key));
110
+ if (unknown !== undefined)
111
+ throw new TypeError(`Akuma list input has unknown field: ${unknown}`);
112
+ return input.archetype === undefined ? undefined : archetypeName(input.archetype);
113
+ }
114
+ /**
115
+ * The bounded recent-activity roster: native membership, semantic order and
116
+ * observed extent. World Alias context is attached by the upper composition.
117
+ */
118
+ export async function readAkumaRoster(path, input = {}) {
119
+ const selected = rosterArchetype(input, true);
120
+ const limit = boundedListLimit(input.limit);
121
+ const observedAt = new Date().toISOString();
122
+ const known = await knownAkuma(path, selected);
123
+ const candidatesWithBounds = await boundedMap(known.rows, async (row) => ({
124
+ ...row,
125
+ bound: await mtimeBound(row.paths),
126
+ }));
127
+ const candidates = [...candidatesWithBounds].sort((left, right) => right.bound - left.bound);
128
+ const readable = [];
129
+ let cursor = 0;
130
+ while (cursor < candidates.length) {
131
+ const batch = candidates.slice(cursor, cursor + PAGE_POOL_SIZE);
132
+ readable.push(...(await readableRows(batch)));
133
+ cursor += batch.length;
134
+ const ranked = readable.sort(compareRows);
135
+ const lookahead = ranked[limit];
136
+ const activity = lookahead === undefined ? null : activityAt(lookahead);
137
+ const unreadBound = candidates[cursor]?.bound;
138
+ if (lookahead !== undefined &&
139
+ activity !== null &&
140
+ unreadBound !== undefined &&
141
+ Number.isFinite(unreadBound) &&
142
+ Number.isFinite(Date.parse(activity)) &&
143
+ unreadBound < Date.parse(activity)) {
144
+ break;
145
+ }
146
+ }
147
+ const ranked = readable.sort(compareRows);
148
+ return {
149
+ observedAt,
150
+ searched: [known.runRoot],
151
+ ...projectBoundedList(ranked, limit),
152
+ };
39
153
  }
40
- export { bornStatus, fleetListRow, readAkumaBirthCwd, readBudgetedStatus, } from "./akuma-observe.js";
41
- /** Internal catalog observation for composition owners. */
42
- export async function readAkumaCatalog(path, input = {}) {
43
- return await createAkumaProduct(path).list(input);
154
+ /** The complete native roster for callers whose semantics require a frozen set. */
155
+ export async function readAkumaCompleteRoster(path, input = {}) {
156
+ const selected = rosterArchetype(input, false);
157
+ const known = await knownAkuma(path, selected);
158
+ return {
159
+ observedAt: new Date().toISOString(),
160
+ rows: [...(await readableRows(known.rows))].sort(compareRows),
161
+ searched: [known.runRoot],
162
+ };
44
163
  }
45
164
  /** Internal timeline observation for composition owners. */
46
165
  export async function readAkumaTimeline(path, id) {
47
- return (await createAkumaProduct(path).selectHandle({ id }).status()).timeline;
166
+ return (await new AkumaOwner(id, path).status()).timeline;
48
167
  }
49
- export { AkumaBusyError, AkumaDecodeError, AkumaProviderError } from "./akuma-errors.js";
@@ -8,6 +8,7 @@ type DecodedArchetype = Readonly<{
8
8
  path: string;
9
9
  provider: string;
10
10
  description?: string;
11
+ hidden?: boolean;
11
12
  options: ProviderOptions;
12
13
  allowed: AllowedActions;
13
14
  }>;
@@ -22,6 +23,10 @@ type ArchetypeDefinition = DecodedArchetype & Readonly<{
22
23
  type AdmittedArchetype = Omit<ArchetypeDefinition, "provider"> & Readonly<{
23
24
  provider: ProviderExecution;
24
25
  }>;
26
+ /** One loaded archetype whose provider owner has decoded its execution but not yet admitted its options. */
27
+ type PreparedArchetype = Omit<DecodedArchetype, "provider"> & Readonly<{
28
+ provider: ProviderExecution;
29
+ }>;
25
30
  export declare class AkumaArchetypeError extends Error {
26
31
  readonly archetype: string;
27
32
  readonly searched: readonly string[];
@@ -37,6 +42,13 @@ export declare function listArchetypes(input?: ArchetypeCoordinates): Promise<re
37
42
  export declare function listArchetypeDefinitions(input?: ArchetypeCoordinates & Readonly<{
38
43
  limit?: number;
39
44
  }>): Promise<BoundedList<ArchetypeCatalogRow>>;
45
+ /** Resolve one archetype and decode its provider execution, leaving option admission to the caller. */
46
+ export declare function loadPreparedArchetype(input: Readonly<{
47
+ name: string;
48
+ project?: string;
49
+ home?: string;
50
+ settings: Settings;
51
+ }>): Promise<PreparedArchetype>;
40
52
  export declare function loadArchetype(input: Readonly<{
41
53
  name: string;
42
54
  project?: string;
@@ -100,6 +100,14 @@ function archetypeEnum(values, key, allowed) {
100
100
  throw new TypeError(`Akuma ${key} must be one of ${allowed.join(", ")}`);
101
101
  return value;
102
102
  }
103
+ function archetypeBoolean(values, key) {
104
+ const value = values[key];
105
+ if (value === undefined)
106
+ return undefined;
107
+ if (typeof value !== "boolean")
108
+ throw new TypeError(`Akuma ${key} must be a boolean`);
109
+ return value;
110
+ }
103
111
  function parseArchetypeFrontmatter(markdown) {
104
112
  const lines = markdown.split(/\r?\n/u);
105
113
  if (lines[0]?.trim() !== "---")
@@ -124,6 +132,7 @@ function decodeArchetypeFields(values) {
124
132
  const effort = archetypeField(values, "effort");
125
133
  const network = archetypeEnum(values, "network", ["disabled", "enabled"]);
126
134
  const description = archetypeField(values, "description");
135
+ const hidden = archetypeBoolean(values, "hidden");
127
136
  const allowedPresent = "allowed" in values;
128
137
  const allowed = allowedPresent ? decodeAllowedActions(values.allowed) : undefined;
129
138
  const systemPromptMode = archetypeEnum(values, "systemPromptMode", ["append", "replace"]);
@@ -134,6 +143,7 @@ function decodeArchetypeFields(values) {
134
143
  ...(effort === undefined ? {} : { effort }),
135
144
  ...(network === undefined ? {} : { network }),
136
145
  ...(description === undefined ? {} : { description }),
146
+ ...(hidden === undefined ? {} : { hidden }),
137
147
  ...(allowed === undefined ? {} : { allowed }),
138
148
  allowedPresent,
139
149
  ...(systemPromptMode === undefined ? {} : { systemPromptMode }),
@@ -152,6 +162,7 @@ function decodeArchetype(name, path, markdown) {
152
162
  ...(fields.base === undefined ? {} : { base: fields.base }),
153
163
  ...(fields.provider === undefined ? {} : { provider: fields.provider }),
154
164
  ...(fields.description === undefined ? {} : { description: fields.description }),
165
+ ...(fields.hidden === undefined ? {} : { hidden: fields.hidden }),
155
166
  options: decodeProviderOptions({
156
167
  ...(fields.model === undefined ? {} : { model: fields.model }),
157
168
  ...(fields.effort === undefined ? {} : { effort: fields.effort }),
@@ -182,6 +193,8 @@ function mergeArchetype(base, local) {
182
193
  ? {}
183
194
  : { description: base.description }
184
195
  : { description: local.description }),
196
+ // Hiddenness is the file's own catalogue visibility; it never flows through base.
197
+ ...(local.hidden === true ? { hidden: true } : {}),
185
198
  options,
186
199
  allowed,
187
200
  });
@@ -229,20 +242,9 @@ export async function listArchetypeDefinitions(input = {}) {
229
242
  // definition in catalog byte order, not whichever read happened to finish first.
230
243
  const limit = input.limit === undefined ? undefined : boundedListLimit(input.limit);
231
244
  const all = await archetypePaths(input);
232
- const selected = limit === undefined
233
- ? { paths: all, hasMore: false }
234
- : (() => {
235
- const paths = all.slice(0, limit + 1);
236
- return { paths: paths.slice(0, limit), hasMore: paths.length > limit };
237
- })();
238
- const settled = await Promise.allSettled(selected.paths.map(async ({ name, path }) => {
245
+ const settled = await Promise.allSettled(all.map(async ({ name, path }) => {
239
246
  try {
240
- const definition = await resolveArchetype(name, input, undefined);
241
- return Object.freeze({
242
- name: definition.name,
243
- ...(definition.options.model === undefined ? {} : { model: definition.options.model }),
244
- ...(definition.description === undefined ? {} : { description: definition.description }),
245
- });
247
+ return await resolveArchetype(name, input, undefined);
246
248
  }
247
249
  catch (error) {
248
250
  if (error instanceof AkumaArchetypeError)
@@ -253,9 +255,17 @@ export async function listArchetypeDefinitions(input = {}) {
253
255
  const firstInvalid = settled.find((result) => result.status === "rejected");
254
256
  if (firstInvalid !== undefined)
255
257
  throw firstInvalid.reason;
258
+ const visible = settled
259
+ .map((result) => result.value)
260
+ .filter((definition) => definition.hidden !== true)
261
+ .map((definition) => Object.freeze({
262
+ name: definition.name,
263
+ ...(definition.options.model === undefined ? {} : { model: definition.options.model }),
264
+ ...(definition.description === undefined ? {} : { description: definition.description }),
265
+ }));
256
266
  return {
257
- rows: settled.map((result) => result.value),
258
- hasMore: selected.hasMore,
267
+ rows: limit === undefined ? visible : visible.slice(0, limit),
268
+ hasMore: limit === undefined ? false : visible.length > limit,
259
269
  };
260
270
  }
261
271
  function record(value) {
@@ -292,6 +302,11 @@ const BUILTIN_EXECUTIONS = {
292
302
  claude: { kind: "claude-agent-sdk" },
293
303
  "codex-app-server": { kind: "codex-app-server" },
294
304
  "opencode-sdk": { kind: "opencode-sdk" },
305
+ kimi: {
306
+ kind: "acp",
307
+ executable: "kimi",
308
+ config: { argvBefore: ["acp"], argvAfter: [], modelConfigId: "model", effortConfigId: "thinking" },
309
+ },
295
310
  pi: { kind: "pi" },
296
311
  "grok-build": {
297
312
  kind: "grok-build",
@@ -310,10 +325,10 @@ function providerExecution(settings, name) {
310
325
  return decodeProviderRecipe({ name, ...builtin });
311
326
  throw new TypeError(`unknown provider ${name}`);
312
327
  }
313
- async function admitArchetype(archetype, settings) {
328
+ async function admitArchetype(archetype) {
314
329
  let selected;
315
330
  try {
316
- selected = await resolveProviderExecution(providerExecution(settings, archetype.provider));
331
+ selected = await resolveProviderExecution(archetype.provider);
317
332
  }
318
333
  catch (error) {
319
334
  if (error instanceof TypeError)
@@ -333,8 +348,21 @@ async function admitArchetype(archetype, settings) {
333
348
  options: admission.options,
334
349
  });
335
350
  }
336
- export async function loadArchetype(input) {
351
+ /** Resolve one archetype and decode its provider execution, leaving option admission to the caller. */
352
+ export async function loadPreparedArchetype(input) {
337
353
  const name = archetypeName(input.name);
338
354
  const definition = await resolveArchetype(name, input, undefined);
339
- return await admitArchetype(definition, input.settings);
355
+ let provider;
356
+ try {
357
+ provider = providerExecution(input.settings, definition.provider);
358
+ }
359
+ catch (error) {
360
+ if (error instanceof TypeError)
361
+ throw new AkumaArchetypeError(definition.name, [definition.path], `uses ${error.message}`);
362
+ throw error;
363
+ }
364
+ return Object.freeze({ ...definition, provider });
365
+ }
366
+ export async function loadArchetype(input) {
367
+ return await admitArchetype(await loadPreparedArchetype(input));
340
368
  }
@@ -1,5 +1,5 @@
1
+ import { z } from "zod";
1
2
  import type { AkumaCallRequestChildLaunch } from "./call-request.js";
2
- import { type SessionFact, type Soul } from "./heart/index.js";
3
3
  import { type AkumaPaths } from "./identity.js";
4
4
  import { type TellResult } from "./call-initial-tell.js";
5
5
  export type { TellResult, TellWake } from "./call-initial-tell.js";
@@ -9,18 +9,79 @@ import type { ErasedRequestCommand } from "./request-wire.js";
9
9
  import { type OwnedProcess } from "../runtime/proc/run.js";
10
10
  export declare const LEASH_HELD_EXIT = 75;
11
11
  export { CONTROL_RESPONSE_MS } from "./body-supervisor.js";
12
- export type BodyLaunch = Readonly<{
13
- paths: AkumaPaths;
14
- seed?: Omit<Soul, "createdAt">;
15
- birthSession?: Omit<SessionFact, "sequence">;
16
- initialBody?: string;
17
- initiator?: string;
18
- initialSchemaJson?: string;
19
- refuseIfHeld?: boolean;
20
- completion?: Readonly<{
21
- contractId?: string;
22
- }>;
23
- }>;
12
+ export declare const bodyLaunchSchema: z.ZodObject<{
13
+ paths: z.ZodObject<{
14
+ directory: z.ZodString;
15
+ heart: z.ZodString;
16
+ leash: z.ZodString;
17
+ log: z.ZodString;
18
+ requests: z.ZodString;
19
+ }, z.core.$strict>;
20
+ seed: z.ZodOptional<z.ZodPipe<z.ZodUnknown, z.ZodTransform<Omit<Readonly<{
21
+ id: import("./identity.js").AkuId;
22
+ archetype: string;
23
+ description?: string;
24
+ provider: import("./provider-recipe.js").ProviderExecution;
25
+ options: import("./provider-recipe.js").ProviderOptions;
26
+ cwd: string;
27
+ origin: import("./heart/facts.js").AkumaOrigin;
28
+ allowed: import("./allowed.js").AllowedActions;
29
+ createdAt: string;
30
+ }>, "createdAt">, unknown>>>;
31
+ birthSession: z.ZodOptional<z.ZodObject<{
32
+ provider: z.ZodString;
33
+ coordinate: z.ZodUnion<readonly [z.ZodPipe<z.ZodObject<{
34
+ sessionFile: z.ZodString;
35
+ sessionId: z.ZodOptional<z.ZodString>;
36
+ }, z.core.$strict>, z.ZodTransform<{
37
+ sessionFile: string;
38
+ sessionId?: never;
39
+ } | {
40
+ sessionFile: string;
41
+ sessionId: string;
42
+ }, {
43
+ sessionFile: string;
44
+ sessionId?: string | undefined;
45
+ }>>, z.ZodObject<{
46
+ sessionId: z.ZodString;
47
+ }, z.core.$strict>]>;
48
+ cwd: z.ZodString;
49
+ options: z.ZodPipe<z.ZodObject<{
50
+ model: z.ZodOptional<z.ZodString>;
51
+ effort: z.ZodOptional<z.ZodString>;
52
+ network: z.ZodOptional<z.ZodEnum<{
53
+ disabled: "disabled";
54
+ enabled: "enabled";
55
+ }>>;
56
+ systemPrompt: z.ZodOptional<z.ZodString>;
57
+ systemPromptMode: z.ZodOptional<z.ZodEnum<{
58
+ append: "append";
59
+ replace: "replace";
60
+ }>>;
61
+ }, z.core.$strip>, z.ZodTransform<Readonly<{
62
+ systemPromptMode?: "append" | "replace";
63
+ systemPrompt?: string;
64
+ network?: "disabled" | "enabled";
65
+ effort?: string;
66
+ model?: string;
67
+ }>, {
68
+ model?: string | undefined;
69
+ effort?: string | undefined;
70
+ network?: "disabled" | "enabled" | undefined;
71
+ systemPrompt?: string | undefined;
72
+ systemPromptMode?: "append" | "replace" | undefined;
73
+ }>>;
74
+ admittedAt: z.ZodString;
75
+ }, z.core.$strict>>;
76
+ initialBody: z.ZodOptional<z.ZodString>;
77
+ initiator: z.ZodOptional<z.ZodString>;
78
+ initialSchemaJson: z.ZodOptional<z.ZodString>;
79
+ refuseIfHeld: z.ZodOptional<z.ZodBoolean>;
80
+ completion: z.ZodOptional<z.ZodObject<{
81
+ contractId: z.ZodOptional<z.ZodString>;
82
+ }, z.core.$strict>>;
83
+ }, z.core.$strict>;
84
+ export type BodyLaunch = z.infer<typeof bodyLaunchSchema>;
24
85
  export type TellWakeRuntime = Readonly<{
25
86
  spawn(paths: AkumaPaths): Promise<OwnedProcess>;
26
87
  schedule?(milliseconds: number, signal: AbortSignal): Promise<void>;
@@ -32,28 +93,7 @@ type BodyRuntime = Readonly<{
32
93
  world: WorldRoot;
33
94
  externalCommands: Readonly<Record<string, ErasedRequestCommand>>;
34
95
  }>;
35
- type RuntimeEnvironment = Readonly<{
36
- /** The current process executable, preferred only while it is a different live value. */
37
- current?: string;
38
- /** The present PATH used to resolve the recorded executable basename. */
39
- path?: string | undefined;
40
- exists?: (path: string) => boolean | Promise<boolean>;
41
- }>;
42
- /** One Body launch's runtime input: the runtime recorded for it and its resolution environment. */
43
- export type BodyLaunchRuntime = Readonly<{
44
- recorded?: string;
45
- environment?: RuntimeEnvironment;
46
- }>;
47
- /**
48
- * Resolve the runtime executable a Body spawn will use. The path recorded for
49
- * this process's birth wins while it exists. Once it is gone, wake re-resolves
50
- * the runtime before any spawn can fail: the current process executable while
51
- * that is a different live value, then the recorded executable basename on the
52
- * present PATH. An unresolvable runtime refuses with the stale record, the
53
- * failed re-resolution, and the kill-and-call-fresh remedy.
54
- */
55
- export declare function resolveRuntimeExecutable(recorded?: string, environment?: RuntimeEnvironment): Promise<string>;
56
- export declare function bodyProcessInput(launch: BodyLaunch, bodyModuleUrl?: string, runtime?: BodyLaunchRuntime): Promise<{
96
+ export declare function bodyProcessInput(launch: BodyLaunch, bodyModuleUrl?: string): Promise<{
57
97
  argv: string[];
58
98
  cwd: string;
59
99
  env: Record<string, string>;
@@ -61,6 +101,6 @@ export declare function bodyProcessInput(launch: BodyLaunch, bodyModuleUrl?: str
61
101
  }>;
62
102
  export declare function handoffPendingTells(paths: AkumaPaths, spawn?: (launch: BodyLaunch) => Promise<OwnedProcess>): Promise<void>;
63
103
  export declare function driveAkumaBody(launch: BodyLaunch, adapter?: ProviderAdapter, runtimeInput?: Partial<BodyRuntime>): Promise<"held" | void>;
64
- export declare function spawnAkumaBody(launch: BodyLaunch, runtime?: BodyLaunchRuntime): Promise<OwnedProcess>;
104
+ export declare function spawnAkumaBody(launch: BodyLaunch): Promise<OwnedProcess>;
65
105
  export declare function runAkumaBody(launch: BodyLaunch, world: WorldRoot, externalCommands: Readonly<Record<string, ErasedRequestCommand>>): Promise<"held" | void>;
66
106
  export declare function wakeRecordedTell(paths: AkumaPaths, tellId: string, runtime?: TellWakeRuntime, signal?: AbortSignal): Promise<TellResult>;