@astrosheep/keiyaku 4.5.28 → 4.6.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (425) 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 -19
  10. package/build/src/akuma/akuma-instance.js +65 -177
  11. package/build/src/akuma/akuma-observe.d.ts +3 -21
  12. package/build/src/akuma/akuma-observe.js +7 -25
  13. package/build/src/akuma/{akuma-handle.d.ts → akuma-owner.d.ts} +60 -25
  14. package/build/src/akuma/{akuma-handle.js → akuma-owner.js} +43 -29
  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 -32
  18. package/build/src/akuma/akuma-wait.js +113 -0
  19. package/build/src/akuma/akuma.d.ts +35 -97
  20. package/build/src/akuma/akuma.js +148 -35
  21. package/build/src/akuma/archetype.d.ts +18 -6
  22. package/build/src/akuma/archetype.js +52 -34
  23. package/build/src/akuma/body.d.ts +79 -61
  24. package/build/src/akuma/body.js +101 -50
  25. package/build/src/akuma/call-initial-tell.d.ts +164 -0
  26. package/build/src/akuma/call-initial-tell.js +62 -0
  27. package/build/src/akuma/call-input.d.ts +0 -3
  28. package/build/src/akuma/call-input.js +0 -7
  29. package/build/src/akuma/call-request.d.ts +247 -38
  30. package/build/src/akuma/call-request.js +77 -92
  31. package/build/src/akuma/coordinate.d.ts +15 -5
  32. package/build/src/akuma/coordinate.js +12 -22
  33. package/build/src/akuma/dispatch-association.d.ts +1 -1
  34. package/build/src/akuma/dispatch-association.js +1 -10
  35. package/build/src/akuma/heart/activity-schema.d.ts +325 -0
  36. package/build/src/akuma/heart/activity-schema.js +53 -0
  37. package/build/src/akuma/heart/facts.d.ts +3 -9
  38. package/build/src/akuma/heart/index.d.ts +3 -1
  39. package/build/src/akuma/heart/index.js +4 -1
  40. package/build/src/akuma/heart/rows.d.ts +49 -2
  41. package/build/src/akuma/heart/rows.js +16 -2
  42. package/build/src/akuma/heart/soul.d.ts +1 -0
  43. package/build/src/akuma/heart/soul.js +7 -10
  44. package/build/src/akuma/heart/tells.d.ts +1 -0
  45. package/build/src/akuma/heart/tells.js +18 -0
  46. package/build/src/akuma/identity.d.ts +10 -7
  47. package/build/src/akuma/identity.js +23 -0
  48. package/build/src/akuma/index.d.ts +10 -8
  49. package/build/src/akuma/index.js +2 -2
  50. package/build/src/akuma/nuke.d.ts +3 -0
  51. package/build/src/akuma/nuke.js +13 -7
  52. package/build/src/akuma/projection-read.js +1 -2
  53. package/build/src/akuma/projection.d.ts +0 -5
  54. package/build/src/akuma/projection.js +22 -43
  55. package/build/src/akuma/provider-recipe.d.ts +58 -23
  56. package/build/src/akuma/provider-recipe.js +62 -103
  57. package/build/src/akuma/provider.d.ts +7 -78
  58. package/build/src/akuma/provider.js +11 -219
  59. package/build/src/akuma/providers/acp/config.d.ts +2 -0
  60. package/build/src/akuma/providers/acp/config.js +26 -1
  61. package/build/src/akuma/providers/acp/core.d.ts +7 -0
  62. package/build/src/akuma/providers/acp/core.js +49 -18
  63. package/build/src/akuma/providers/acp/index.js +14 -17
  64. package/build/src/akuma/providers/claude/index.js +2 -14
  65. package/build/src/akuma/providers/codex-app-server/index.js +0 -22
  66. package/build/src/akuma/providers/grok-build/index.js +44 -24
  67. package/build/src/akuma/providers/index.d.ts +3 -3
  68. package/build/src/akuma/providers/index.js +2 -13
  69. package/build/src/akuma/providers/opencode-sdk/event-stream.d.ts +28 -0
  70. package/build/src/akuma/providers/opencode-sdk/event-stream.js +92 -0
  71. package/build/src/akuma/providers/opencode-sdk/events.d.ts +0 -1
  72. package/build/src/akuma/providers/opencode-sdk/index.js +200 -74
  73. package/build/src/akuma/providers/opencode-sdk/session.d.ts +41 -1
  74. package/build/src/akuma/providers/opencode-sdk/session.js +69 -2
  75. package/build/src/akuma/providers/pi/events.js +5 -2
  76. package/build/src/akuma/providers/pi/index.js +70 -24
  77. package/build/src/akuma/publication.d.ts +84 -3
  78. package/build/src/akuma/publication.js +145 -2
  79. package/build/src/akuma/read-pool.d.ts +2 -0
  80. package/build/src/akuma/read-pool.js +15 -0
  81. package/build/src/akuma/request-rendezvous.js +10 -0
  82. package/build/src/akuma/request-serve.js +7 -0
  83. package/build/src/akuma/request-wire.d.ts +14 -26
  84. package/build/src/akuma/request-wire.js +4 -0
  85. package/build/src/akuma/requests.d.ts +0 -3
  86. package/build/src/akuma/requests.js +0 -24
  87. package/build/src/akuma/{fleet-observation.d.ts → selection-observation.d.ts} +61 -52
  88. package/build/src/akuma/selection-observation.js +65 -0
  89. package/build/src/akuma/{fleet-owner-port.d.ts → selection-owner-port.d.ts} +3 -3
  90. package/build/src/akuma/{fleet-owner-port.js → selection-owner-port.js} +11 -17
  91. package/build/src/akuma/{fleet-request.d.ts → selection-request.d.ts} +42 -82
  92. package/build/src/akuma/{fleet-request.js → selection-request.js} +92 -136
  93. package/build/src/akuma/turn-drive.d.ts +3 -0
  94. package/build/src/akuma/turn-drive.js +75 -16
  95. package/build/src/akuma-body.js +91 -56
  96. package/build/src/body/amend.d.ts +5 -0
  97. package/build/src/body/amend.js +26 -50
  98. package/build/src/body/arc.d.ts +4 -2
  99. package/build/src/body/arc.js +19 -26
  100. package/build/src/body/criteria.d.ts +6 -0
  101. package/build/src/body/criteria.js +37 -0
  102. package/build/src/body/decode.js +5 -42
  103. package/build/src/body/region.d.ts +5 -0
  104. package/build/src/body/region.js +45 -2
  105. package/build/src/body/render.js +2 -4
  106. package/build/src/cli/activity.d.ts +26 -0
  107. package/build/src/cli/activity.js +75 -0
  108. package/build/src/cli/actor.d.ts +3 -1
  109. package/build/src/cli/actor.js +15 -2
  110. package/build/src/cli/commands/akuma-grammar.d.ts +75 -0
  111. package/build/src/cli/commands/akuma-grammar.js +414 -0
  112. package/build/src/cli/commands/akuma.d.ts +5 -69
  113. package/build/src/cli/commands/akuma.js +352 -312
  114. package/build/src/cli/commands/amend.d.ts +4 -5
  115. package/build/src/cli/commands/amend.js +1 -2
  116. package/build/src/cli/commands/bind.d.ts +4 -5
  117. package/build/src/cli/commands/bind.js +5 -9
  118. package/build/src/cli/commands/contract-grammar.d.ts +112 -0
  119. package/build/src/cli/commands/contract-grammar.js +282 -0
  120. package/build/src/cli/commands/contract-help.d.ts +28 -30
  121. package/build/src/cli/commands/contract-help.js +69 -96
  122. package/build/src/cli/commands/contract.d.ts +18 -97
  123. package/build/src/cli/commands/contract.js +620 -237
  124. package/build/src/cli/commands/install.d.ts +1 -1
  125. package/build/src/cli/commands/install.js +2 -2
  126. package/build/src/cli/commands/task-grammar.d.ts +19 -0
  127. package/build/src/cli/commands/task-grammar.js +438 -0
  128. package/build/src/cli/commands/task-query.js +23 -104
  129. package/build/src/cli/commands/task.d.ts +5 -20
  130. package/build/src/cli/commands/task.js +415 -333
  131. package/build/src/cli/coordinates.d.ts +10 -0
  132. package/build/src/cli/coordinates.js +20 -0
  133. package/build/src/cli/draft.d.ts +7 -1
  134. package/build/src/cli/main.js +10 -1
  135. package/build/src/cli/parse.d.ts +8 -9
  136. package/build/src/cli/parse.js +63 -61
  137. package/build/src/cli/render/akuma-activity.d.ts +88 -39
  138. package/build/src/cli/render/akuma-activity.js +465 -263
  139. package/build/src/cli/render/akuma-tool.d.ts +15 -5
  140. package/build/src/cli/render/akuma-tool.js +40 -27
  141. package/build/src/cli/render/akuma.d.ts +40 -24
  142. package/build/src/cli/render/akuma.js +108 -205
  143. package/build/src/cli/render/audit.d.ts +6 -2
  144. package/build/src/cli/render/audit.js +61 -30
  145. package/build/src/cli/render/catalog.d.ts +11 -2
  146. package/build/src/cli/render/catalog.js +75 -94
  147. package/build/src/cli/render/contract-history.d.ts +3 -1
  148. package/build/src/cli/render/contract-history.js +215 -22
  149. package/build/src/cli/render/contract-observation.d.ts +10 -5
  150. package/build/src/cli/render/contract-observation.js +29 -46
  151. package/build/src/cli/render/contract.d.ts +10 -3
  152. package/build/src/cli/render/contract.js +255 -106
  153. package/build/src/cli/render/effects.d.ts +26 -0
  154. package/build/src/cli/render/effects.js +41 -0
  155. package/build/src/cli/render/execution-progress.d.ts +18 -6
  156. package/build/src/cli/render/execution-progress.js +34 -31
  157. package/build/src/cli/render/kanshi-akuma.d.ts +1 -2
  158. package/build/src/cli/render/kanshi-akuma.js +5 -26
  159. package/build/src/cli/render/kanshi.js +108 -129
  160. package/build/src/cli/render/marks.d.ts +13 -0
  161. package/build/src/cli/render/marks.js +74 -0
  162. package/build/src/cli/render/nuke.js +18 -7
  163. package/build/src/cli/render/receipt.d.ts +10 -4
  164. package/build/src/cli/render/receipt.js +126 -46
  165. package/build/src/cli/render/reconcile.d.ts +5 -0
  166. package/build/src/cli/render/reconcile.js +152 -0
  167. package/build/src/cli/render/refusal.d.ts +21 -4
  168. package/build/src/cli/render/refusal.js +61 -34
  169. package/build/src/cli/render/region.js +3 -2
  170. package/build/src/cli/render/settings.js +4 -14
  171. package/build/src/cli/render/task.d.ts +37 -6
  172. package/build/src/cli/render/task.js +162 -158
  173. package/build/src/cli/render/terminal.d.ts +25 -1
  174. package/build/src/cli/render/terminal.js +105 -18
  175. package/build/src/cli/runtime.d.ts +32 -8
  176. package/build/src/cli/runtime.js +161 -163
  177. package/build/src/cli/selectors.d.ts +5 -2
  178. package/build/src/cli/selectors.js +11 -3
  179. package/build/src/cli/streams.d.ts +11 -0
  180. package/build/src/cli/streams.js +32 -0
  181. package/build/src/cli/usage.d.ts +2 -0
  182. package/build/src/cli/usage.js +12 -8
  183. package/build/src/contract-guidance.js +3 -7
  184. package/build/src/contract-worktree.d.ts +20 -28
  185. package/build/src/contract-worktree.js +18 -70
  186. package/build/src/coordination/durable-file.d.ts +2 -2
  187. package/build/src/coordination/durable-file.js +0 -27
  188. package/build/src/core/facts/codec.d.ts +1 -2
  189. package/build/src/core/facts/codec.js +6 -7
  190. package/build/src/core/facts/gate.d.ts +0 -1
  191. package/build/src/core/facts/gate.js +0 -82
  192. package/build/src/core/facts/types.d.ts +1 -2
  193. package/build/src/core/verbs/abandon.d.ts +2 -6
  194. package/build/src/core/verbs/abandon.js +0 -16
  195. package/build/src/core/verbs/amend.d.ts +0 -1
  196. package/build/src/core/verbs/amend.js +0 -20
  197. package/build/src/core/verbs/arc.d.ts +7 -8
  198. package/build/src/core/verbs/arc.js +2 -19
  199. package/build/src/core/verbs/attestation.d.ts +2 -6
  200. package/build/src/core/verbs/attestation.js +0 -16
  201. package/build/src/core/verbs/bind.d.ts +0 -1
  202. package/build/src/core/verbs/bind.js +0 -16
  203. package/build/src/core/verbs/deliver.d.ts +0 -1
  204. package/build/src/core/verbs/deliver.js +0 -16
  205. package/build/src/core/verbs/placement.d.ts +2 -1
  206. package/build/src/core/verbs/placement.js +10 -59
  207. package/build/src/git/admission.d.ts +6 -4
  208. package/build/src/git/admission.js +4 -0
  209. package/build/src/git/hooks.d.ts +55 -30
  210. package/build/src/git/hooks.js +30 -3
  211. package/build/src/git/identity.d.ts +6 -0
  212. package/build/src/git/identity.js +47 -0
  213. package/build/src/git/integration.d.ts +31 -13
  214. package/build/src/git/integration.js +32 -1
  215. package/build/src/git/nuke.d.ts +10 -1
  216. package/build/src/git/nuke.js +31 -11
  217. package/build/src/git/observe.js +2 -15
  218. package/build/src/git/private-state-seat.d.ts +6 -7
  219. package/build/src/git/private-state-seat.js +8 -6
  220. package/build/src/git/read-observation.d.ts +6 -1
  221. package/build/src/git/read-observation.js +81 -46
  222. package/build/src/git/reconcile.d.ts +117 -40
  223. package/build/src/git/reconcile.js +169 -40
  224. package/build/src/git/scratch.d.ts +7 -4
  225. package/build/src/git/scratch.js +28 -6
  226. package/build/src/git/target-placement.d.ts +53 -38
  227. package/build/src/git/target-placement.js +69 -54
  228. package/build/src/git/tender.d.ts +37 -28
  229. package/build/src/git/tender.js +39 -0
  230. package/build/src/git/terminal-reconcile.js +21 -23
  231. package/build/src/git/terminal-seal.d.ts +8 -6
  232. package/build/src/git/terminal-seal.js +10 -0
  233. package/build/src/git/workspace.d.ts +29 -15
  234. package/build/src/git/workspace.js +28 -2
  235. package/build/src/identity/normalize.js +19 -6
  236. package/build/src/index.d.ts +78 -6
  237. package/build/src/index.js +52 -3
  238. package/build/src/kanshi/read.d.ts +3 -3
  239. package/build/src/kanshi/read.js +21 -21
  240. package/build/src/kanshi/report.d.ts +9 -8
  241. package/build/src/kanshi/roster.d.ts +2 -0
  242. package/build/src/kanshi/roster.js +2 -0
  243. package/build/src/kanshi/select.js +7 -3
  244. package/build/src/library/address.d.ts +3 -7
  245. package/build/src/library/address.js +7 -7
  246. package/build/src/library/akuma-creation.d.ts +35 -33
  247. package/build/src/library/akuma-creation.js +184 -167
  248. package/build/src/library/akumas.d.ts +40 -0
  249. package/build/src/library/akumas.js +84 -0
  250. package/build/src/library/bind.d.ts +107 -13
  251. package/build/src/library/bind.js +29 -23
  252. package/build/src/library/continuation.d.ts +556 -28
  253. package/build/src/library/continuation.js +29 -54
  254. package/build/src/library/contract-composition.d.ts +40 -0
  255. package/build/src/library/contract-composition.js +105 -0
  256. package/build/src/library/contract-creation.d.ts +7 -0
  257. package/build/src/library/contract-creation.js +192 -0
  258. package/build/src/library/contract-execution.d.ts +29 -40
  259. package/build/src/library/contract-execution.js +503 -128
  260. package/build/src/library/contract-operations.d.ts +275 -134
  261. package/build/src/library/contract-operations.js +83 -92
  262. package/build/src/library/contract-outcomes.d.ts +71 -0
  263. package/build/src/library/contract-outcomes.js +32 -0
  264. package/build/src/library/contract-settings.d.ts +25 -0
  265. package/build/src/library/contract-settings.js +135 -0
  266. package/build/src/library/contract-types.d.ts +24 -38
  267. package/build/src/library/delivery.d.ts +530 -10
  268. package/build/src/library/delivery.js +20 -45
  269. package/build/src/library/input.d.ts +3 -1
  270. package/build/src/library/input.js +11 -16
  271. package/build/src/library/invocation.d.ts +87 -0
  272. package/build/src/library/invocation.js +290 -0
  273. package/build/src/library/keiyaku.d.ts +44 -437
  274. package/build/src/library/keiyaku.js +132 -20
  275. package/build/src/library/nuke.d.ts +2 -11
  276. package/build/src/library/nuke.js +70 -57
  277. package/build/src/library/outcome.d.ts +13196 -0
  278. package/build/src/library/outcome.js +487 -0
  279. package/build/src/library/reconcile.d.ts +96 -24
  280. package/build/src/library/reconcile.js +102 -42
  281. package/build/src/library/refusal.d.ts +470 -42
  282. package/build/src/library/refusal.js +55 -143
  283. package/build/src/library/region.d.ts +15 -7
  284. package/build/src/library/region.js +23 -3
  285. package/build/src/library/repo.d.ts +2 -12
  286. package/build/src/library/repo.js +1 -22
  287. package/build/src/library/selection.d.ts +121 -0
  288. package/build/src/library/{fleet.js → selection.js} +177 -160
  289. package/build/src/plugin/public.d.ts +2 -0
  290. package/build/src/protocol/abandon.d.ts +2 -2
  291. package/build/src/protocol/abandon.js +1 -0
  292. package/build/src/protocol/amend.js +1 -0
  293. package/build/src/protocol/arc.d.ts +6 -4
  294. package/build/src/protocol/attempt.d.ts +4 -2
  295. package/build/src/protocol/attempt.js +10 -0
  296. package/build/src/protocol/audit.d.ts +255 -52
  297. package/build/src/protocol/audit.js +63 -5
  298. package/build/src/protocol/bind.d.ts +18 -17
  299. package/build/src/protocol/bind.js +9 -28
  300. package/build/src/protocol/completion.d.ts +256 -22
  301. package/build/src/protocol/completion.js +100 -12
  302. package/build/src/protocol/deliver.d.ts +34 -23
  303. package/build/src/protocol/deliver.js +39 -25
  304. package/build/src/protocol/execution-observation.d.ts +36 -37
  305. package/build/src/protocol/execution-observation.js +7 -9
  306. package/build/src/protocol/intent.d.ts +101 -30
  307. package/build/src/protocol/intent.js +74 -1
  308. package/build/src/protocol/operations.d.ts +570 -64
  309. package/build/src/protocol/operations.js +189 -9
  310. package/build/src/protocol/outcome.d.ts +2 -1
  311. package/build/src/protocol/placement.d.ts +2 -2
  312. package/build/src/protocol/placement.js +3 -1
  313. package/build/src/protocol/progress.d.ts +108 -65
  314. package/build/src/protocol/progress.js +82 -132
  315. package/build/src/protocol/read/status.d.ts +4 -3
  316. package/build/src/protocol/read/status.js +6 -5
  317. package/build/src/protocol/reconcile.d.ts +3 -3
  318. package/build/src/protocol/reconcile.js +4 -0
  319. package/build/src/protocol/reintegrate.d.ts +2 -2
  320. package/build/src/protocol/review.d.ts +30 -12
  321. package/build/src/protocol/review.js +15 -24
  322. package/build/src/protocol/run.d.ts +34 -5
  323. package/build/src/protocol/run.js +24 -12
  324. package/build/src/runtime/proc/windows-launch.exe +0 -0
  325. package/build/src/settings.d.ts +0 -10
  326. package/build/src/settings.js +0 -76
  327. package/build/src/settlement/holder.d.ts +1 -1
  328. package/build/src/settlement/settle.d.ts +25 -16
  329. package/build/src/settlement/settle.js +80 -20
  330. package/build/src/task/board.d.ts +3 -1
  331. package/build/src/task/board.js +13 -17
  332. package/build/src/task/catalog.d.ts +0 -4
  333. package/build/src/task/catalog.js +0 -15
  334. package/build/src/task/compose-language.d.ts +19 -9
  335. package/build/src/task/compose-language.js +30 -20
  336. package/build/src/task/compose.d.ts +7 -37
  337. package/build/src/task/compose.js +20 -2
  338. package/build/src/task/created-observation.d.ts +0 -1
  339. package/build/src/task/created-observation.js +1 -4
  340. package/build/src/task/document.d.ts +12 -2
  341. package/build/src/task/document.js +4 -0
  342. package/build/src/task/identity.d.ts +4 -1
  343. package/build/src/task/identity.js +21 -17
  344. package/build/src/task/index.d.ts +36 -16
  345. package/build/src/task/index.js +103 -96
  346. package/build/src/task/lifecycle-operations.d.ts +1 -1
  347. package/build/src/task/mutation-result.d.ts +647 -586
  348. package/build/src/task/mutation-result.js +79 -46
  349. package/build/src/task/mutation.d.ts +298 -270
  350. package/build/src/task/mutation.js +93 -110
  351. package/build/src/task/operation-types.d.ts +6 -49
  352. package/build/src/task/operations.d.ts +2 -1
  353. package/build/src/task/operations.js +35 -12
  354. package/build/src/task/query.d.ts +9 -3
  355. package/build/src/task/query.js +42 -16
  356. package/build/src/task/store.d.ts +2 -1
  357. package/build/src/task/store.js +10 -14
  358. package/build/src/verification/declaration.d.ts +0 -1
  359. package/build/src/verification/declaration.js +1 -18
  360. package/build/src/verification/execution.d.ts +6 -2
  361. package/build/src/verification/observation.d.ts +1 -1
  362. package/package.json +2 -14
  363. package/build/src/akuma/akuma-product-symbols.d.ts +0 -1
  364. package/build/src/akuma/akuma-product-symbols.js +0 -1
  365. package/build/src/akuma/akuma-product.d.ts +0 -62
  366. package/build/src/akuma/akuma-product.js +0 -293
  367. package/build/src/akuma/fleet-execution.js +0 -181
  368. package/build/src/akuma/fleet-observation.js +0 -91
  369. package/build/src/cli/accepted.d.ts +0 -24
  370. package/build/src/cli/accepted.js +0 -167
  371. package/build/src/cli/commands/akuma-invoke.d.ts +0 -114
  372. package/build/src/cli/commands/akuma-invoke.js +0 -402
  373. package/build/src/cli/commands/contract-invoke.d.ts +0 -34
  374. package/build/src/cli/commands/contract-invoke.js +0 -259
  375. package/build/src/cli/commands/nuke.d.ts +0 -10
  376. package/build/src/cli/commands/nuke.js +0 -20
  377. package/build/src/cli/commands/status-set.d.ts +0 -4
  378. package/build/src/cli/commands/status-set.js +0 -52
  379. package/build/src/cli/commands/task-invoke.d.ts +0 -49
  380. package/build/src/cli/commands/task-invoke.js +0 -306
  381. package/build/src/cli/invoke.d.ts +0 -27
  382. package/build/src/cli/invoke.js +0 -484
  383. package/build/src/cli/render/board.d.ts +0 -3
  384. package/build/src/cli/render/board.js +0 -25
  385. package/build/src/cli/render/status-set.d.ts +0 -5
  386. package/build/src/cli/render/status-set.js +0 -19
  387. package/build/src/cli/render/text.d.ts +0 -3
  388. package/build/src/cli/render/text.js +0 -33
  389. package/build/src/cli/result.d.ts +0 -240
  390. package/build/src/cli/result.js +0 -1
  391. package/build/src/git/result-codec.d.ts +0 -29
  392. package/build/src/git/result-codec.js +0 -309
  393. package/build/src/kanshi/fleet.d.ts +0 -6
  394. package/build/src/kanshi/fleet.js +0 -27
  395. package/build/src/library/audit.d.ts +0 -29
  396. package/build/src/library/audit.js +0 -41
  397. package/build/src/library/catalog.d.ts +0 -68
  398. package/build/src/library/catalog.js +0 -130
  399. package/build/src/library/composition.d.ts +0 -403
  400. package/build/src/library/composition.js +0 -29
  401. package/build/src/library/configuration.d.ts +0 -4
  402. package/build/src/library/configuration.js +0 -2
  403. package/build/src/library/contract-bind.d.ts +0 -31
  404. package/build/src/library/contract-bind.js +0 -140
  405. package/build/src/library/contract-forwarding.d.ts +0 -55
  406. package/build/src/library/contract-forwarding.js +0 -67
  407. package/build/src/library/contract-handle.d.ts +0 -45
  408. package/build/src/library/contract-handle.js +0 -373
  409. package/build/src/library/contract.d.ts +0 -53
  410. package/build/src/library/contract.js +0 -91
  411. package/build/src/library/execution-result.d.ts +0 -243
  412. package/build/src/library/execution-result.js +0 -101
  413. package/build/src/library/execution.d.ts +0 -8
  414. package/build/src/library/execution.js +0 -102
  415. package/build/src/library/fleet.d.ts +0 -83
  416. package/build/src/library/mutation.d.ts +0 -501
  417. package/build/src/library/mutation.js +0 -248
  418. package/build/src/library/result-codec.d.ts +0 -2
  419. package/build/src/library/result-codec.js +0 -12
  420. package/build/src/protocol/result-codec.d.ts +0 -23
  421. package/build/src/protocol/result-codec.js +0 -488
  422. package/build/src/settlement/result-codec.d.ts +0 -2
  423. package/build/src/settlement/result-codec.js +0 -56
  424. package/build/src/task/public.d.ts +0 -2
  425. package/build/src/task/public.js +0 -1
@@ -0,0 +1,325 @@
1
+ import { z } from "zod";
2
+ declare const searchScopeSchema: z.ZodEnum<{
3
+ content: "content";
4
+ files: "files";
5
+ web: "web";
6
+ }>;
7
+ export declare const toolInputSchema: z.ZodObject<{
8
+ json: z.ZodString;
9
+ truncated: z.ZodBoolean;
10
+ }, z.core.$strip>;
11
+ export declare const diffstatSchema: z.ZodObject<{
12
+ added: z.ZodNumber;
13
+ removed: z.ZodNumber;
14
+ }, z.core.$strip>;
15
+ export declare const fileChangeSchema: z.ZodObject<{
16
+ op: z.ZodEnum<{
17
+ add: "add";
18
+ update: "update";
19
+ delete: "delete";
20
+ unspecified: "unspecified";
21
+ }>;
22
+ path: z.ZodString;
23
+ diffstat: z.ZodOptional<z.ZodObject<{
24
+ added: z.ZodNumber;
25
+ removed: z.ZodNumber;
26
+ }, z.core.$strip>>;
27
+ }, z.core.$strip>;
28
+ export declare const toolCallSchema: z.ZodUnion<readonly [z.ZodObject<{
29
+ kind: z.ZodLiteral<"run">;
30
+ command: z.ZodString;
31
+ }, z.core.$strip>, z.ZodObject<{
32
+ kind: z.ZodLiteral<"read">;
33
+ path: z.ZodString;
34
+ offset: z.ZodOptional<z.ZodNumber>;
35
+ limit: z.ZodOptional<z.ZodNumber>;
36
+ }, z.core.$strip>, z.ZodObject<{
37
+ kind: z.ZodLiteral<"search">;
38
+ query: z.ZodString;
39
+ scope: z.ZodOptional<z.ZodEnum<{
40
+ content: "content";
41
+ files: "files";
42
+ web: "web";
43
+ }>>;
44
+ path: z.ZodOptional<z.ZodString>;
45
+ glob: z.ZodOptional<z.ZodString>;
46
+ }, z.core.$strip>, z.ZodObject<{
47
+ kind: z.ZodLiteral<"fileChange">;
48
+ changes: z.ZodReadonly<z.ZodArray<z.ZodObject<{
49
+ op: z.ZodEnum<{
50
+ add: "add";
51
+ update: "update";
52
+ delete: "delete";
53
+ unspecified: "unspecified";
54
+ }>;
55
+ path: z.ZodString;
56
+ diffstat: z.ZodOptional<z.ZodObject<{
57
+ added: z.ZodNumber;
58
+ removed: z.ZodNumber;
59
+ }, z.core.$strip>>;
60
+ }, z.core.$strip>>>;
61
+ }, z.core.$strip>, z.ZodObject<{
62
+ kind: z.ZodLiteral<"other">;
63
+ display: z.ZodString;
64
+ input: z.ZodOptional<z.ZodObject<{
65
+ json: z.ZodString;
66
+ truncated: z.ZodBoolean;
67
+ }, z.core.$strip>>;
68
+ }, z.core.$strip>]>;
69
+ export declare const toolResultSchema: z.ZodObject<{
70
+ status: z.ZodEnum<{
71
+ error: "error";
72
+ ok: "ok";
73
+ }>;
74
+ message: z.ZodOptional<z.ZodString>;
75
+ exitCode: z.ZodOptional<z.ZodNumber>;
76
+ }, z.core.$strip>;
77
+ declare const toolEventSchema: z.ZodUnion<readonly [z.ZodObject<{
78
+ phase: z.ZodLiteral<"started">;
79
+ result: z.ZodOptional<z.ZodNever>;
80
+ type: z.ZodLiteral<"tool">;
81
+ id: z.ZodString;
82
+ name: z.ZodString;
83
+ call: z.ZodUnion<readonly [z.ZodObject<{
84
+ kind: z.ZodLiteral<"run">;
85
+ command: z.ZodString;
86
+ }, z.core.$strip>, z.ZodObject<{
87
+ kind: z.ZodLiteral<"read">;
88
+ path: z.ZodString;
89
+ offset: z.ZodOptional<z.ZodNumber>;
90
+ limit: z.ZodOptional<z.ZodNumber>;
91
+ }, z.core.$strip>, z.ZodObject<{
92
+ kind: z.ZodLiteral<"search">;
93
+ query: z.ZodString;
94
+ scope: z.ZodOptional<z.ZodEnum<{
95
+ content: "content";
96
+ files: "files";
97
+ web: "web";
98
+ }>>;
99
+ path: z.ZodOptional<z.ZodString>;
100
+ glob: z.ZodOptional<z.ZodString>;
101
+ }, z.core.$strip>, z.ZodObject<{
102
+ kind: z.ZodLiteral<"fileChange">;
103
+ changes: z.ZodReadonly<z.ZodArray<z.ZodObject<{
104
+ op: z.ZodEnum<{
105
+ add: "add";
106
+ update: "update";
107
+ delete: "delete";
108
+ unspecified: "unspecified";
109
+ }>;
110
+ path: z.ZodString;
111
+ diffstat: z.ZodOptional<z.ZodObject<{
112
+ added: z.ZodNumber;
113
+ removed: z.ZodNumber;
114
+ }, z.core.$strip>>;
115
+ }, z.core.$strip>>>;
116
+ }, z.core.$strip>, z.ZodObject<{
117
+ kind: z.ZodLiteral<"other">;
118
+ display: z.ZodString;
119
+ input: z.ZodOptional<z.ZodObject<{
120
+ json: z.ZodString;
121
+ truncated: z.ZodBoolean;
122
+ }, z.core.$strip>>;
123
+ }, z.core.$strip>]>;
124
+ truncated: z.ZodOptional<z.ZodLiteral<true>>;
125
+ }, z.core.$strip>, z.ZodObject<{
126
+ phase: z.ZodLiteral<"completed">;
127
+ result: z.ZodObject<{
128
+ status: z.ZodEnum<{
129
+ error: "error";
130
+ ok: "ok";
131
+ }>;
132
+ message: z.ZodOptional<z.ZodString>;
133
+ exitCode: z.ZodOptional<z.ZodNumber>;
134
+ }, z.core.$strip>;
135
+ type: z.ZodLiteral<"tool">;
136
+ id: z.ZodString;
137
+ name: z.ZodString;
138
+ call: z.ZodUnion<readonly [z.ZodObject<{
139
+ kind: z.ZodLiteral<"run">;
140
+ command: z.ZodString;
141
+ }, z.core.$strip>, z.ZodObject<{
142
+ kind: z.ZodLiteral<"read">;
143
+ path: z.ZodString;
144
+ offset: z.ZodOptional<z.ZodNumber>;
145
+ limit: z.ZodOptional<z.ZodNumber>;
146
+ }, z.core.$strip>, z.ZodObject<{
147
+ kind: z.ZodLiteral<"search">;
148
+ query: z.ZodString;
149
+ scope: z.ZodOptional<z.ZodEnum<{
150
+ content: "content";
151
+ files: "files";
152
+ web: "web";
153
+ }>>;
154
+ path: z.ZodOptional<z.ZodString>;
155
+ glob: z.ZodOptional<z.ZodString>;
156
+ }, z.core.$strip>, z.ZodObject<{
157
+ kind: z.ZodLiteral<"fileChange">;
158
+ changes: z.ZodReadonly<z.ZodArray<z.ZodObject<{
159
+ op: z.ZodEnum<{
160
+ add: "add";
161
+ update: "update";
162
+ delete: "delete";
163
+ unspecified: "unspecified";
164
+ }>;
165
+ path: z.ZodString;
166
+ diffstat: z.ZodOptional<z.ZodObject<{
167
+ added: z.ZodNumber;
168
+ removed: z.ZodNumber;
169
+ }, z.core.$strip>>;
170
+ }, z.core.$strip>>>;
171
+ }, z.core.$strip>, z.ZodObject<{
172
+ kind: z.ZodLiteral<"other">;
173
+ display: z.ZodString;
174
+ input: z.ZodOptional<z.ZodObject<{
175
+ json: z.ZodString;
176
+ truncated: z.ZodBoolean;
177
+ }, z.core.$strip>>;
178
+ }, z.core.$strip>]>;
179
+ truncated: z.ZodOptional<z.ZodLiteral<true>>;
180
+ }, z.core.$strip>]>;
181
+ export declare const agentEventSchema: z.ZodUnion<readonly [z.ZodObject<{
182
+ type: z.ZodLiteral<"session">;
183
+ coordinate: z.ZodUnion<readonly [z.ZodPipe<z.ZodObject<{
184
+ sessionFile: z.ZodString;
185
+ sessionId: z.ZodOptional<z.ZodString>;
186
+ }, z.core.$strict>, z.ZodTransform<{
187
+ sessionFile: string;
188
+ sessionId?: never;
189
+ } | {
190
+ sessionFile: string;
191
+ sessionId: string;
192
+ }, {
193
+ sessionFile: string;
194
+ sessionId?: string | undefined;
195
+ }>>, z.ZodObject<{
196
+ sessionId: z.ZodString;
197
+ }, z.core.$strict>]>;
198
+ }, z.core.$strip>, z.ZodObject<{
199
+ type: z.ZodLiteral<"assistant">;
200
+ text: z.ZodString;
201
+ truncated: z.ZodOptional<z.ZodLiteral<true>>;
202
+ }, z.core.$strip>, z.ZodObject<{
203
+ type: z.ZodLiteral<"thought">;
204
+ text: z.ZodString;
205
+ truncated: z.ZodOptional<z.ZodLiteral<true>>;
206
+ }, z.core.$strip>, z.ZodUnion<readonly [z.ZodObject<{
207
+ phase: z.ZodLiteral<"started">;
208
+ result: z.ZodOptional<z.ZodNever>;
209
+ type: z.ZodLiteral<"tool">;
210
+ id: z.ZodString;
211
+ name: z.ZodString;
212
+ call: z.ZodUnion<readonly [z.ZodObject<{
213
+ kind: z.ZodLiteral<"run">;
214
+ command: z.ZodString;
215
+ }, z.core.$strip>, z.ZodObject<{
216
+ kind: z.ZodLiteral<"read">;
217
+ path: z.ZodString;
218
+ offset: z.ZodOptional<z.ZodNumber>;
219
+ limit: z.ZodOptional<z.ZodNumber>;
220
+ }, z.core.$strip>, z.ZodObject<{
221
+ kind: z.ZodLiteral<"search">;
222
+ query: z.ZodString;
223
+ scope: z.ZodOptional<z.ZodEnum<{
224
+ content: "content";
225
+ files: "files";
226
+ web: "web";
227
+ }>>;
228
+ path: z.ZodOptional<z.ZodString>;
229
+ glob: z.ZodOptional<z.ZodString>;
230
+ }, z.core.$strip>, z.ZodObject<{
231
+ kind: z.ZodLiteral<"fileChange">;
232
+ changes: z.ZodReadonly<z.ZodArray<z.ZodObject<{
233
+ op: z.ZodEnum<{
234
+ add: "add";
235
+ update: "update";
236
+ delete: "delete";
237
+ unspecified: "unspecified";
238
+ }>;
239
+ path: z.ZodString;
240
+ diffstat: z.ZodOptional<z.ZodObject<{
241
+ added: z.ZodNumber;
242
+ removed: z.ZodNumber;
243
+ }, z.core.$strip>>;
244
+ }, z.core.$strip>>>;
245
+ }, z.core.$strip>, z.ZodObject<{
246
+ kind: z.ZodLiteral<"other">;
247
+ display: z.ZodString;
248
+ input: z.ZodOptional<z.ZodObject<{
249
+ json: z.ZodString;
250
+ truncated: z.ZodBoolean;
251
+ }, z.core.$strip>>;
252
+ }, z.core.$strip>]>;
253
+ truncated: z.ZodOptional<z.ZodLiteral<true>>;
254
+ }, z.core.$strip>, z.ZodObject<{
255
+ phase: z.ZodLiteral<"completed">;
256
+ result: z.ZodObject<{
257
+ status: z.ZodEnum<{
258
+ error: "error";
259
+ ok: "ok";
260
+ }>;
261
+ message: z.ZodOptional<z.ZodString>;
262
+ exitCode: z.ZodOptional<z.ZodNumber>;
263
+ }, z.core.$strip>;
264
+ type: z.ZodLiteral<"tool">;
265
+ id: z.ZodString;
266
+ name: z.ZodString;
267
+ call: z.ZodUnion<readonly [z.ZodObject<{
268
+ kind: z.ZodLiteral<"run">;
269
+ command: z.ZodString;
270
+ }, z.core.$strip>, z.ZodObject<{
271
+ kind: z.ZodLiteral<"read">;
272
+ path: z.ZodString;
273
+ offset: z.ZodOptional<z.ZodNumber>;
274
+ limit: z.ZodOptional<z.ZodNumber>;
275
+ }, z.core.$strip>, z.ZodObject<{
276
+ kind: z.ZodLiteral<"search">;
277
+ query: z.ZodString;
278
+ scope: z.ZodOptional<z.ZodEnum<{
279
+ content: "content";
280
+ files: "files";
281
+ web: "web";
282
+ }>>;
283
+ path: z.ZodOptional<z.ZodString>;
284
+ glob: z.ZodOptional<z.ZodString>;
285
+ }, z.core.$strip>, z.ZodObject<{
286
+ kind: z.ZodLiteral<"fileChange">;
287
+ changes: z.ZodReadonly<z.ZodArray<z.ZodObject<{
288
+ op: z.ZodEnum<{
289
+ add: "add";
290
+ update: "update";
291
+ delete: "delete";
292
+ unspecified: "unspecified";
293
+ }>;
294
+ path: z.ZodString;
295
+ diffstat: z.ZodOptional<z.ZodObject<{
296
+ added: z.ZodNumber;
297
+ removed: z.ZodNumber;
298
+ }, z.core.$strip>>;
299
+ }, z.core.$strip>>>;
300
+ }, z.core.$strip>, z.ZodObject<{
301
+ kind: z.ZodLiteral<"other">;
302
+ display: z.ZodString;
303
+ input: z.ZodOptional<z.ZodObject<{
304
+ json: z.ZodString;
305
+ truncated: z.ZodBoolean;
306
+ }, z.core.$strip>>;
307
+ }, z.core.$strip>]>;
308
+ truncated: z.ZodOptional<z.ZodLiteral<true>>;
309
+ }, z.core.$strip>]>, z.ZodObject<{
310
+ type: z.ZodLiteral<"note">;
311
+ text: z.ZodString;
312
+ truncated: z.ZodOptional<z.ZodLiteral<true>>;
313
+ }, z.core.$strip>, z.ZodObject<{
314
+ type: z.ZodLiteral<"unknown">;
315
+ kind: z.ZodString;
316
+ truncated: z.ZodOptional<z.ZodLiteral<true>>;
317
+ }, z.core.$strip>]>;
318
+ export type SearchScope = z.infer<typeof searchScopeSchema>;
319
+ export type ToolInput = z.infer<typeof toolInputSchema>;
320
+ export type ToolCall = z.infer<typeof toolCallSchema>;
321
+ export type ToolResult = z.infer<typeof toolResultSchema>;
322
+ export type ToolEvent = z.infer<typeof toolEventSchema>;
323
+ export type AgentEvent = z.infer<typeof agentEventSchema>;
324
+ export declare function decodeAgentEvent(value: unknown): AgentEvent;
325
+ export {};
@@ -0,0 +1,53 @@
1
+ import { z } from "zod";
2
+ import { resumeCoordinateSchema } from "../coordinate.js";
3
+ const nonnegativeInteger = z.number().int().safe().nonnegative();
4
+ const positiveInteger = z.number().int().safe().positive();
5
+ const text = z.string();
6
+ const truncated = z.literal(true).optional();
7
+ const searchScopeSchema = z.enum(["content", "files", "web"]);
8
+ export const toolInputSchema = z.object({ json: text, truncated: z.boolean() });
9
+ export const diffstatSchema = z.object({ added: nonnegativeInteger, removed: nonnegativeInteger });
10
+ export const fileChangeSchema = z.object({
11
+ op: z.enum(["add", "update", "delete", "unspecified"]),
12
+ path: text,
13
+ diffstat: diffstatSchema.optional(),
14
+ });
15
+ export const toolCallSchema = z.union([
16
+ z.object({ kind: z.literal("run"), command: text }),
17
+ z.object({
18
+ kind: z.literal("read"),
19
+ path: text,
20
+ offset: positiveInteger.optional(),
21
+ limit: positiveInteger.optional(),
22
+ }),
23
+ z.object({
24
+ kind: z.literal("search"),
25
+ query: text,
26
+ scope: searchScopeSchema.optional(),
27
+ path: text.optional(),
28
+ glob: text.optional(),
29
+ }),
30
+ z.object({ kind: z.literal("fileChange"), changes: z.array(fileChangeSchema).readonly() }),
31
+ z.object({ kind: z.literal("other"), display: text, input: toolInputSchema.optional() }),
32
+ ]);
33
+ export const toolResultSchema = z.object({
34
+ status: z.enum(["ok", "error"]),
35
+ message: text.optional(),
36
+ exitCode: z.number().int().safe().optional(),
37
+ });
38
+ const toolFields = { type: z.literal("tool"), id: text, name: text, call: toolCallSchema, truncated };
39
+ const toolEventSchema = z.union([
40
+ z.object({ ...toolFields, phase: z.literal("started"), result: z.never().optional() }),
41
+ z.object({ ...toolFields, phase: z.literal("completed"), result: toolResultSchema }),
42
+ ]);
43
+ export const agentEventSchema = z.union([
44
+ z.object({ type: z.literal("session"), coordinate: resumeCoordinateSchema }),
45
+ z.object({ type: z.literal("assistant"), text, truncated }),
46
+ z.object({ type: z.literal("thought"), text, truncated }),
47
+ toolEventSchema,
48
+ z.object({ type: z.literal("note"), text, truncated }),
49
+ z.object({ type: z.literal("unknown"), kind: text, truncated }),
50
+ ]);
51
+ export function decodeAgentEvent(value) {
52
+ return agentEventSchema.parse(value);
53
+ }
@@ -1,6 +1,6 @@
1
1
  import type { AkuId } from "../identity.js";
2
2
  import type { ResumeCoordinate } from "../coordinate.js";
3
- import type { ProviderExecution, ProviderOptions, ReadonlyRestraint } from "../provider-recipe.js";
3
+ import type { ProviderExecution, ProviderOptions } from "../provider-recipe.js";
4
4
  import type { AllowedActions } from "../allowed.js";
5
5
  export type { ResumeCoordinate } from "../coordinate.js";
6
6
  export declare class HeartAuthorityCorruptionError extends Error {
@@ -23,13 +23,12 @@ export type Soul = Readonly<{
23
23
  description?: string;
24
24
  provider: ProviderExecution;
25
25
  options: ProviderOptions;
26
- readonly?: ReadonlyRestraint;
27
26
  cwd: string;
28
27
  origin: AkumaOrigin;
29
28
  allowed: AllowedActions;
30
29
  createdAt: string;
31
30
  }>;
32
- export type RequestRecipe = Pick<Soul, "description" | "provider" | "options" | "readonly" | "allowed">;
31
+ export type RequestRecipe = Pick<Soul, "description" | "provider" | "options" | "allowed">;
33
32
  export type BodyEnd = "exited" | "broke-off" | "put-down";
34
33
  export type BodyFact = Readonly<{
35
34
  sequence: number;
@@ -41,13 +40,8 @@ export type BodyFact = Readonly<{
41
40
  end?: BodyEnd;
42
41
  endedAt?: string;
43
42
  }>;
44
- export type SessionFact = Readonly<{
43
+ export type SessionFact = import("zod").infer<typeof import("./rows.js").sessionAdmissionSchema> & Readonly<{
45
44
  sequence: number;
46
- provider: string;
47
- coordinate: ResumeCoordinate;
48
- cwd: string;
49
- options: ProviderOptions;
50
- admittedAt: string;
51
45
  }>;
52
46
  export type ForkPoint = Readonly<{
53
47
  historyId: string;
@@ -2,6 +2,7 @@ import type { AkumaPaths } from "../identity.js";
2
2
  import type { BodyEnd, BodyFact, ForkPoint, HeartSnapshot, KillFact, SealFact, SessionFact, Soul, TellDeliveryInput, TellFact, TellReceiptInput, TurnEndFact, TurnFact, TurnOutcome, TurnStartFact } from "./facts.js";
3
3
  export type { CallFact } from "./facts.js";
4
4
  import type { ActivityFact } from "./rows.js";
5
+ import type { AgentEvent } from "./activity-schema.js";
5
6
  import { type StatusFactInput, type ActivityFactSlice } from "./timeline.js";
6
7
  export { HeartAbsentError, HeldAkumaLeash, classifyHeartSchema, initializeHeart, isHeartAbsent, probeLeash, } from "./storage.js";
7
8
  export { admitRequest, beginRequest, isRequestInputConflict, readNonterminalRequests, readRequest, refuseRequest, reserveRequest, serveRequest, serveUpstreamRequest, unproveRequest, voidRequest, } from "./request-authority.js";
@@ -15,7 +16,7 @@ export declare function readSeal(paths: AkumaPaths): Promise<SealFact | null>;
15
16
  export declare function recordSession(paths: AkumaPaths, input: Omit<SessionFact, "sequence">): Promise<SessionFact>;
16
17
  export declare function appendActivity(paths: AkumaPaths, input: Readonly<{
17
18
  turnSequence: number;
18
- event: unknown;
19
+ event: AgentEvent;
19
20
  at: string;
20
21
  }>): Promise<number>;
21
22
  export type ActivitySlice = ActivityFactSlice;
@@ -94,6 +95,7 @@ export declare function failOpenBoundTurns(paths: AkumaPaths, input: Readonly<{
94
95
  completedAt: string;
95
96
  }>): Promise<readonly number[]>;
96
97
  export declare function readTurn(paths: AkumaPaths, sequence: number): Promise<TurnFact | null>;
98
+ export declare function readTurnParticipants(paths: AkumaPaths, sequence: number): Promise<readonly string[]>;
97
99
  export declare function readLatestTurnForBody(paths: AkumaPaths, bodySequence: number): Promise<TurnFact | null>;
98
100
  export declare function endTurn(paths: AkumaPaths, input: Readonly<{
99
101
  turnSequence: number;
@@ -1,6 +1,6 @@
1
1
  import { parsePublicHistoryId } from "../identity.js";
2
2
  import { answeredTurnFact, endBodyFact, finishBodyFact, deleteStopControl, insertActivityFact, insertTurnEndFact, insertTurnStartFact, insertPauseControl, insertKillFact, insertSessionFact, insertStopControl, killFactForBody, latestBodyFact, latestKillFact, latestSessionFact, latestTurnFactForBody, lastAnsweredTurnFact, pauseFact, sessionFactForCoordinate, stopFact, turnFact, } from "./rows.js";
3
- import { insertTellDeliveryFact, dispositionSnapshotProven, insertTellBindingFact, insertTellDispositionSnapshot, insertTellFact, insertTellReceiptFact, insertUndeliveredTellReceipts, latestOpenTellDisposition, openBoundTurns, openTellDispositionIds, pendingTellFacts, hasPendingTell, resolveTellDispositionSnapshot, tellDispositionResolved, tellFact, tellIdsForFence, } from "./tells.js";
3
+ import { insertTellDeliveryFact, dispositionSnapshotProven, insertTellBindingFact, insertTellDispositionSnapshot, insertTellFact, insertTellReceiptFact, insertUndeliveredTellReceipts, latestOpenTellDisposition, openBoundTurns, openTellDispositionIds, pendingTellFacts, hasPendingTell, resolveTellDispositionSnapshot, tellDispositionResolved, tellFact, tellIdsForFence, turnParticipants, } from "./tells.js";
4
4
  import { activityFactSlice, statusFacts, lastActivityAt as readLastActivityAt, pruneActivityFacts, } from "./timeline.js";
5
5
  import { isHeartAbsent, readSealFromLeash, withHeartTransaction, withReadOnlyHeart } from "./storage.js";
6
6
  import { soulFact } from "./soul.js";
@@ -264,6 +264,9 @@ export async function failOpenBoundTurns(paths, input) {
264
264
  export async function readTurn(paths, sequence) {
265
265
  return await withReadOnlyHeart(paths, (heart) => turnFact(heart, sequence));
266
266
  }
267
+ export async function readTurnParticipants(paths, sequence) {
268
+ return await withReadOnlyHeart(paths, (heart) => turnParticipants(heart, sequence));
269
+ }
267
270
  export async function readLatestTurnForBody(paths, bodySequence) {
268
271
  return await withReadOnlyHeart(paths, (heart) => latestTurnFactForBody(heart, bodySequence));
269
272
  }
@@ -1,5 +1,7 @@
1
+ import { z } from "zod";
1
2
  import type { DatabaseSync } from "node:sqlite";
2
3
  import type { BodyEnd, BodyFact, CallFact, KillFact, PauseFact, ResumeCoordinate, SessionFact, StopFact, TurnFact, TurnStartFact, TurnEndFact } from "./facts.js";
4
+ import { type AgentEvent } from "./activity-schema.js";
3
5
  export type SealRow = Readonly<{
4
6
  evidence: string;
5
7
  at: string;
@@ -12,6 +14,51 @@ export type BodyRow = Readonly<{
12
14
  end: BodyEnd | null;
13
15
  ended_at: string | null;
14
16
  }>;
17
+ export declare const sessionAdmissionSchema: z.ZodObject<{
18
+ provider: z.ZodString;
19
+ coordinate: z.ZodUnion<readonly [z.ZodPipe<z.ZodObject<{
20
+ sessionFile: z.ZodString;
21
+ sessionId: z.ZodOptional<z.ZodString>;
22
+ }, z.core.$strict>, z.ZodTransform<{
23
+ sessionFile: string;
24
+ sessionId?: never;
25
+ } | {
26
+ sessionFile: string;
27
+ sessionId: string;
28
+ }, {
29
+ sessionFile: string;
30
+ sessionId?: string | undefined;
31
+ }>>, z.ZodObject<{
32
+ sessionId: z.ZodString;
33
+ }, z.core.$strict>]>;
34
+ cwd: z.ZodString;
35
+ options: z.ZodPipe<z.ZodObject<{
36
+ model: z.ZodOptional<z.ZodString>;
37
+ effort: z.ZodOptional<z.ZodString>;
38
+ network: z.ZodOptional<z.ZodEnum<{
39
+ disabled: "disabled";
40
+ enabled: "enabled";
41
+ }>>;
42
+ systemPrompt: z.ZodOptional<z.ZodString>;
43
+ systemPromptMode: z.ZodOptional<z.ZodEnum<{
44
+ append: "append";
45
+ replace: "replace";
46
+ }>>;
47
+ }, z.core.$strip>, z.ZodTransform<Readonly<{
48
+ systemPromptMode?: "append" | "replace";
49
+ systemPrompt?: string;
50
+ network?: "disabled" | "enabled";
51
+ effort?: string;
52
+ model?: string;
53
+ }>, {
54
+ model?: string | undefined;
55
+ effort?: string | undefined;
56
+ network?: "disabled" | "enabled" | undefined;
57
+ systemPrompt?: string | undefined;
58
+ systemPromptMode?: "append" | "replace" | undefined;
59
+ }>>;
60
+ admittedAt: z.ZodString;
61
+ }, z.core.$strict>;
15
62
  export type SessionRow = Readonly<{
16
63
  sequence: number;
17
64
  provider: string;
@@ -51,7 +98,7 @@ export type ActivityFact = Readonly<{
51
98
  kind: "activity";
52
99
  sequence: number;
53
100
  turnSequence: number;
54
- event: unknown;
101
+ event: AgentEvent;
55
102
  at: string;
56
103
  }>;
57
104
  export type KillRow = Readonly<{
@@ -85,7 +132,7 @@ export declare function insertBodyFact(database: DatabaseSync, input: Readonly<{
85
132
  export declare function insertSessionFact(database: DatabaseSync, input: Omit<SessionFact, "sequence">): number;
86
133
  export declare function insertActivityFact(database: DatabaseSync, input: Readonly<{
87
134
  turnSequence: number;
88
- event: unknown;
135
+ event: AgentEvent;
89
136
  at: string;
90
137
  }>): number;
91
138
  export declare function insertStopControl(database: DatabaseSync, bodySequence: number, at: string): void;
@@ -1,4 +1,18 @@
1
+ import { z } from "zod";
2
+ import { providerOptionsSchema } from "../provider-recipe.js";
3
+ import { resumeCoordinateSchema } from "../coordinate.js";
1
4
  import { decodeResumeCoordinate, encodeResumeCoordinate as encodeCoordinate } from "../coordinate.js";
5
+ import { agentEventSchema } from "./activity-schema.js";
6
+ const sessionText = z.string().refine((value) => value.trim() !== "");
7
+ export const sessionAdmissionSchema = z
8
+ .object({
9
+ provider: sessionText,
10
+ coordinate: resumeCoordinateSchema,
11
+ cwd: sessionText,
12
+ options: providerOptionsSchema,
13
+ admittedAt: sessionText,
14
+ })
15
+ .strict();
2
16
  function json(value) {
3
17
  return JSON.stringify(value);
4
18
  }
@@ -89,14 +103,14 @@ export function decodeCallRow(row) {
89
103
  return { kind: "call", sequence: row.sequence, turnSequence: row.turn_sequence, body: row.body, at: row.at };
90
104
  }
91
105
  export function encodeActivityEvent(event) {
92
- return json(event);
106
+ return json(agentEventSchema.parse(event));
93
107
  }
94
108
  export function decodeActivityRow(row) {
95
109
  return {
96
110
  kind: "activity",
97
111
  sequence: row.sequence,
98
112
  turnSequence: row.turn_sequence,
99
- event: parsed(row.event_json),
113
+ event: agentEventSchema.parse(parsed(row.event_json)),
100
114
  at: row.at,
101
115
  };
102
116
  }
@@ -1,5 +1,6 @@
1
1
  import type { DatabaseSync } from "node:sqlite";
2
2
  import type { Soul, SoulRow } from "./facts.js";
3
+ export declare function decodeSoulSeed(value: unknown): Omit<Soul, "createdAt">;
3
4
  export declare function decodeSoul(value: unknown): Soul;
4
5
  export declare function encodeSoul(soul: Soul): string;
5
6
  export declare function encodeSoulRow(soul: Soul): readonly [string];
@@ -1,5 +1,5 @@
1
1
  import { parseAkuId } from "../identity.js";
2
- import { decodeProviderOptions, decodeProviderRecipe, decodeReadonlyRestraint } from "../provider-recipe.js";
2
+ import { decodeProviderOptions, decodeProviderRecipe } from "../provider-recipe.js";
3
3
  import { historicalAllowedActions } from "../allowed.js";
4
4
  function record(value) {
5
5
  return value !== null && typeof value === "object" && !Array.isArray(value)
@@ -43,7 +43,7 @@ function decodeOrigin(value) {
43
43
  }
44
44
  throw new Error("Akuma soul origin must be direct, request, or fork");
45
45
  }
46
- function validateSoul(value) {
46
+ export function decodeSoulSeed(value) {
47
47
  const soul = record(value);
48
48
  if (soul === null)
49
49
  throw new Error("Akuma soul must be an object");
@@ -55,21 +55,15 @@ function validateSoul(value) {
55
55
  const description = soul.description === undefined ? undefined : nonblank(soul.description, "description");
56
56
  const provider = decodeProviderRecipe(soul.provider);
57
57
  const options = decodeProviderOptions(soul.options);
58
- const restraint = soul.readonly === undefined ? undefined : decodeReadonlyRestraint(soul.readonly);
59
- if ((options.readonly === true) !== (restraint !== undefined)) {
60
- throw new Error("Akuma soul readonly option and restraint must agree");
61
- }
62
58
  return {
63
59
  id,
64
60
  archetype,
65
61
  ...(description === undefined ? {} : { description }),
66
62
  provider,
67
63
  options,
68
- ...(restraint === undefined ? {} : { readonly: restraint }),
69
64
  cwd: nonblank(soul.cwd, "cwd"),
70
65
  origin: decodeOrigin(soul.origin),
71
66
  allowed: historicalAllowedActions(soul.allowed),
72
- createdAt: nonblank(soul.createdAt, "createdAt"),
73
67
  };
74
68
  }
75
69
  function deepFreeze(value) {
@@ -82,10 +76,13 @@ function deepFreeze(value) {
82
76
  return value;
83
77
  }
84
78
  export function decodeSoul(value) {
85
- return deepFreeze(validateSoul(value));
79
+ const soul = record(value);
80
+ if (soul === null)
81
+ throw new Error("Akuma soul must be an object");
82
+ return deepFreeze({ ...decodeSoulSeed(soul), createdAt: nonblank(soul.createdAt, "createdAt") });
86
83
  }
87
84
  export function encodeSoul(soul) {
88
- return JSON.stringify(validateSoul(soul));
85
+ return JSON.stringify(decodeSoul(soul));
89
86
  }
90
87
  export function encodeSoulRow(soul) {
91
88
  return [encodeSoul(soul)];
@@ -27,5 +27,6 @@ export declare function insertTellBindingFact(database: DatabaseSync, input: Rea
27
27
  turnSequence: number;
28
28
  boundAt: string;
29
29
  }>): void;
30
+ export declare function turnParticipants(database: DatabaseSync, turnSequence: number): readonly string[];
30
31
  export declare function drainPendingTells(pending: readonly TellFact[], activeTurnSequences?: readonly number[]): readonly TellFact[];
31
32
  export declare function openBoundTurns(database: DatabaseSync, bodySequence: number): readonly number[];
@@ -204,6 +204,24 @@ export function insertTellBindingFact(database, input) {
204
204
  throw new Error(`tell ${input.tellId} binding was not retained`);
205
205
  }
206
206
  }
207
+ export function turnParticipants(database, turnSequence) {
208
+ const rows = database
209
+ .prepare(`SELECT turns.initiator AS owner, tells.initiator AS teller
210
+ FROM turns
211
+ LEFT JOIN tell_bindings ON tell_bindings.turn_sequence = turns.sequence
212
+ LEFT JOIN tells ON tells.id = tell_bindings.tell_id
213
+ WHERE turns.sequence = ?
214
+ ORDER BY tell_bindings.sequence`)
215
+ .all(turnSequence);
216
+ const participants = new Set();
217
+ for (const row of rows) {
218
+ if (row.owner)
219
+ participants.add(row.owner);
220
+ if (row.teller)
221
+ participants.add(row.teller);
222
+ }
223
+ return [...participants];
224
+ }
207
225
  export function drainPendingTells(pending, activeTurnSequences = []) {
208
226
  const eligible = pending.filter((tell) => tell.binding === undefined || !activeTurnSequences.includes(tell.binding.turnSequence));
209
227
  if (eligible.length === 0)