@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
@@ -3,21 +3,11 @@ import { closeSync, fsyncSync, openSync, renameSync, writeFileSync } from "node:
3
3
  import { lstat, mkdir, readFile, readdir, rmdir, unlink } from "node:fs/promises";
4
4
  import { dirname, relative, resolve, sep } from "node:path";
5
5
  import { acquireSqliteTransactionLock, SqliteTransactionLockError, } from "../coordination/sqlite-transaction-lock.js";
6
+ import { syncDirectory } from "../coordination/durable-file.js";
6
7
  import { boundedListLimit, projectBoundedList } from "../bounded-list.js";
7
8
  import { parseTaskDocument } from "./document.js";
8
9
  import { formatTaskId, parseTaskId, physicalTaskSegment, TASK_LOCAL_ID_BYTES, sameNamespace, taskAuthorityPath, } from "./identity.js";
9
10
  export const DEFAULT_TASK_LOCK_TIMEOUT_MS = 3_000;
10
- function syncTaskDirectory(path) {
11
- if (process.platform === "win32")
12
- return;
13
- const directory = openSync(path, "r");
14
- try {
15
- fsyncSync(directory);
16
- }
17
- finally {
18
- closeSync(directory);
19
- }
20
- }
21
11
  function tasksDirectory(world) {
22
12
  return resolve(world, ".keiyaku", "tasks");
23
13
  }
@@ -41,7 +31,7 @@ async function requireDirectory(path, mode) {
41
31
  return false;
42
32
  try {
43
33
  await mkdir(path);
44
- syncTaskDirectory(dirname(path));
34
+ syncDirectory(dirname(path));
45
35
  }
46
36
  catch (mkdirError) {
47
37
  if (mkdirError.code !== "EEXIST")
@@ -202,7 +192,7 @@ export async function replaceAuthority(input) {
202
192
  if (!equal(await currentBytes(input.world, input.id), input.expected))
203
193
  return "concurrent-modification";
204
194
  renameSync(temporary, resolved.path);
205
- syncTaskDirectory(parent);
195
+ syncDirectory(parent);
206
196
  return "replaced";
207
197
  }
208
198
  finally {
@@ -249,11 +239,15 @@ export async function nukeTaskAuthority(world, options) {
249
239
  const candidates = await ownedAuthorityCandidates(directory);
250
240
  const ids = [...new Set(candidates.map((candidate) => candidate.id))].sort((left, right) => Buffer.compare(Buffer.from(left), Buffer.from(right)));
251
241
  return await withTaskLocks({ world, allocation: false, ids, ...lockOptions }, async () => {
242
+ let removed = 0;
252
243
  for (const candidate of candidates) {
253
244
  try {
254
245
  const resolved = await resolveAuthority(world, candidate.id, "read");
255
- if (resolved.exists)
246
+ if (resolved.exists) {
256
247
  await unlink(resolved.path);
248
+ removed += 1;
249
+ options?.onRemoved?.(1);
250
+ }
257
251
  }
258
252
  catch (error) {
259
253
  if (error.code !== "ENOENT")
@@ -261,10 +255,12 @@ export async function nukeTaskAuthority(world, options) {
261
255
  }
262
256
  }
263
257
  await removeEmptyTaskDirectories(directory, false);
258
+ return removed;
264
259
  });
265
260
  });
266
261
  if (result === "busy")
267
262
  return "busy";
263
+ return result;
268
264
  }
269
265
  export async function withTaskLocks(input, action) {
270
266
  const paths = [
@@ -14,7 +14,6 @@ export type VerificationDeclarationRefusal = Readonly<{
14
14
  kind: "verification-declaration-invalid";
15
15
  contractId?: ContractId;
16
16
  }>;
17
- export declare function decodeVerificationDeclarationRefusal(value: unknown): VerificationDeclarationRefusal;
18
17
  export type VerificationDeclarationPreparation = Preparation<VerificationDefinition | null, VerificationDeclarationRefusal>;
19
18
  export declare const VERIFIED: Gate;
20
19
  export declare function prepareVerificationDeclaration(input: Readonly<{
@@ -1,21 +1,4 @@
1
- import { contractId, gate } from "../core/facts/types.js";
2
- export function decodeVerificationDeclarationRefusal(value) {
3
- if (value === null || typeof value !== "object" || Array.isArray(value))
4
- throw new Error("malformed verification declaration refusal");
5
- const object = value;
6
- if (object.kind !== "verification-declaration-invalid")
7
- throw new Error("malformed verification declaration refusal");
8
- if (Object.keys(object).some((key) => key !== "kind" && key !== "contractId"))
9
- throw new Error("malformed verification declaration refusal");
10
- if (object.contractId === undefined)
11
- return { kind: "verification-declaration-invalid" };
12
- try {
13
- return { kind: "verification-declaration-invalid", contractId: contractId(String(object.contractId)) };
14
- }
15
- catch {
16
- throw new Error("malformed verification declaration refusal");
17
- }
18
- }
1
+ import { gate } from "../core/facts/types.js";
19
2
  export const VERIFIED = gate("verified");
20
3
  export function prepareVerificationDeclaration(input) {
21
4
  if (input.definition !== null || !input.gates.includes(VERIFIED)) {
@@ -13,7 +13,7 @@ export type VerificationTerminalOutcome = Readonly<{
13
13
  total: number;
14
14
  summary?: string;
15
15
  }>;
16
- export type CapturedOutput = Readonly<{
16
+ type CapturedOutput = Readonly<{
17
17
  stdout?: string;
18
18
  stderr?: string;
19
19
  truncated?: boolean;
@@ -26,7 +26,11 @@ export type VerificationNonterminalOutcome = CapturedOutput & (Readonly<{
26
26
  kind: "spawn-error";
27
27
  diagnostic: string;
28
28
  }>);
29
- export declare function capturedOutput(value: CapturedOutput): CapturedOutput;
29
+ export declare function capturedOutput(value: CapturedOutput): Readonly<{
30
+ stdout?: string;
31
+ stderr?: string;
32
+ truncated?: true;
33
+ }>;
30
34
  export type VerificationExecutionStop = VerificationNonterminalOutcome | Readonly<{
31
35
  kind: "candidate-unavailable" | "environment-failure";
32
36
  diagnostic: string;
@@ -1,8 +1,8 @@
1
1
  import { z } from "zod";
2
2
  export declare const verificationObservationSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
3
3
  state: z.ZodEnum<{
4
- finished: "finished";
5
4
  started: "started";
5
+ finished: "finished";
6
6
  }>;
7
7
  outcome: z.ZodOptional<z.ZodString>;
8
8
  elapsedMs: z.ZodOptional<z.ZodNumber>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@astrosheep/keiyaku",
3
- "version": "4.5.29",
3
+ "version": "4.6.2",
4
4
  "workspaces": [
5
5
  "plugins/*"
6
6
  ],
@@ -14,22 +14,6 @@
14
14
  "types": "./build/src/index.d.ts",
15
15
  "import": "./build/src/index.js"
16
16
  },
17
- "./task": {
18
- "types": "./build/src/task/public.d.ts",
19
- "import": "./build/src/task/public.js"
20
- },
21
- "./kanshi": {
22
- "types": "./build/src/kanshi/index.d.ts",
23
- "import": "./build/src/kanshi/index.js"
24
- },
25
- "./akuma": {
26
- "types": "./build/src/akuma/index.d.ts",
27
- "import": "./build/src/akuma/index.js"
28
- },
29
- "./akumas": {
30
- "types": "./build/src/library/akumas.d.ts",
31
- "import": "./build/src/library/akumas.js"
32
- },
33
17
  "./plugin": {
34
18
  "types": "./build/src/plugin/public.d.ts",
35
19
  "import": "./build/src/plugin/public.js"
@@ -86,7 +70,7 @@
86
70
  "@anthropic-ai/claude-agent-sdk": "^0.3.226",
87
71
  "@astrosheep/keiyaku-plugin-square": "0.1.6",
88
72
  "@astrosheep/square": "^0.3.57",
89
- "@earendil-works/pi-coding-agent": "0.85.1",
73
+ "@earendil-works/pi-coding-agent": "^1.0.0",
90
74
  "@opencode-ai/sdk": "1.18.3",
91
75
  "cross-spawn": "^7.0.6",
92
76
  "diff": "^8.0.4",
@@ -1,58 +0,0 @@
1
- import { AkumaHandle } from "./akuma-handle.js";
2
- import type { AkumaCallContext, AkumaCallInput, AkumaCompleteList, AkumaConfiguration, AkumaList, AkumaListInput } from "./akuma.js";
3
- import type { CallInitialTell } from "./call-initial-tell.js";
4
- import type { WorldRoot } from "../world.js";
5
- import type { BodyLaunch } from "./body.js";
6
- import type { AllocatedAkuma } from "./identity.js";
7
- type AkumaCallRecipe = Omit<NonNullable<BodyLaunch["seed"]>, "id" | "archetype" | "cwd" | "origin">;
8
- type BornExecution = Readonly<{
9
- cwd: string;
10
- source: "input" | "caller" | "process" | "world";
11
- }>;
12
- export type InitialCallTell = CallInitialTell;
13
- export type BornAkumaCall = Readonly<{
14
- kind: "born";
15
- allocated: AllocatedAkuma;
16
- seed: AkumaCallRecipe & Readonly<{
17
- id: AllocatedAkuma["id"];
18
- archetype: string;
19
- cwd: string;
20
- origin: {
21
- kind: "direct";
22
- };
23
- }>;
24
- execution: BornExecution;
25
- }>;
26
- export type RequestedAkumaCall = Readonly<{
27
- kind: "requested";
28
- id: AllocatedAkuma["id"];
29
- cwd: string;
30
- execution: BornExecution;
31
- }>;
32
- export type AkumaBornCall = BornAkumaCall | RequestedAkumaCall;
33
- type AkumaCallLaunchInput = Omit<AkumaCallInput, "body" | "schema"> & Readonly<{
34
- initialTell: InitialCallTell;
35
- }>;
36
- export declare const PAGE_POOL_SIZE = 16;
37
- export declare function boundedMap<Value, Result>(values: readonly Value[], mapper: (value: Value) => Promise<Result>): Promise<readonly Result[]>;
38
- declare class AkumaProduct {
39
- private readonly path;
40
- private readonly configuration;
41
- private constructor();
42
- static create(root: WorldRoot, input?: AkumaConfiguration): AkumaProduct;
43
- selectHandle(input: Readonly<{
44
- id: string;
45
- }>): AkumaHandle;
46
- listArchetypes(): Promise<readonly string[]>;
47
- admit(input: AkumaCallLaunchInput, context: AkumaCallContext): Promise<AkumaBornCall>;
48
- publish(born: AkumaBornCall, completion?: Readonly<{
49
- contractId?: string;
50
- }>, signal?: AbortSignal): Promise<AkumaHandle>;
51
- listComplete(input?: Readonly<{
52
- archetype?: string;
53
- }>): Promise<AkumaCompleteList>;
54
- list(input?: AkumaListInput): Promise<AkumaList>;
55
- }
56
- /** Internal composition product; the package exposes the smaller Akuma instance instead. */
57
- export declare function createAkumaProduct(root: WorldRoot, input?: AkumaConfiguration): AkumaProduct;
58
- export {};
@@ -1,276 +0,0 @@
1
- import { randomUUID } from "node:crypto";
2
- import { readdir, stat } from "node:fs/promises";
3
- import { boundedListLimit, projectBoundedList } from "../bounded-list.js";
4
- import { AkumaHandle } from "./akuma-handle.js";
5
- import { canonicalBirthCwd } from "./call-input.js";
6
- import { fleetListRow, readAkumaBirthCwd } from "./akuma-observe.js";
7
- import { akuIdFromDirectoryName, akumaPaths, akumaRunRoot, archetypeName, parseAkuId } from "./identity.js";
8
- import { loadArchetype, listArchetypes as readArchetypes } from "./archetype.js";
9
- import { birthAkuma, launchAkuma } from "./publication.js";
10
- import { spawnAkumaBody } from "./body.js";
11
- import { requestForwardedAkumaCall } from "./call-request.js";
12
- import { executionChannel } from "./requests.js";
13
- import { decodeAllowedActions, unionAllowedActions } from "./allowed.js";
14
- import { settings as readSettings } from "../settings.js";
15
- async function admitBodyRequest(input) {
16
- const cwd = input.call.cwd === undefined
17
- ? undefined
18
- : input.context.cwdCanonical === true
19
- ? input.call.cwd
20
- : await canonicalBirthCwd(input.call.cwd);
21
- const child = await requestForwardedAkumaCall({
22
- directory: input.execution.directory,
23
- id: randomUUID(),
24
- world: input.path,
25
- archetype: input.name,
26
- initialTell: input.call.initialTell,
27
- ...(cwd === undefined ? {} : { cwd }),
28
- recipe: input.recipe,
29
- ...(input.call.signal === undefined ? {} : { signal: input.call.signal }),
30
- });
31
- const bornCwd = await readAkumaBirthCwd(input.path, child);
32
- return {
33
- kind: "requested",
34
- id: child,
35
- cwd: bornCwd,
36
- execution: { cwd: bornCwd, source: cwd === undefined ? "caller" : "input" },
37
- };
38
- }
39
- async function admitDirect(input) {
40
- const initiatorCwd = input.context.initiatorCwd;
41
- const selectedCwd = input.call.cwd ?? initiatorCwd ?? input.path;
42
- const cwd = input.call.cwd !== undefined && input.context.cwdCanonical === true
43
- ? input.call.cwd
44
- : await canonicalBirthCwd(selectedCwd);
45
- const allocated = await birthAkuma({
46
- worldPath: input.path,
47
- archetype: input.archetype.name,
48
- ...(input.call.signal === undefined ? {} : { signal: input.call.signal }),
49
- });
50
- return {
51
- kind: "born",
52
- allocated,
53
- seed: {
54
- id: allocated.id,
55
- archetype: allocated.archetype,
56
- ...input.recipe,
57
- cwd,
58
- origin: { kind: "direct" },
59
- },
60
- execution: {
61
- cwd,
62
- source: input.call.cwd !== undefined ? "input" : initiatorCwd === undefined ? "world" : "process",
63
- },
64
- };
65
- }
66
- export const PAGE_POOL_SIZE = 16;
67
- function activityAt(row) {
68
- if (!("lifeAt" in row))
69
- return null;
70
- if (row.lifeAt === null)
71
- return row.lastActivityAt;
72
- if (row.lastActivityAt === null)
73
- return row.lifeAt;
74
- return row.lifeAt > row.lastActivityAt ? row.lifeAt : row.lastActivityAt;
75
- }
76
- function compareActivity(left, right) {
77
- if (left === right)
78
- return 0;
79
- if (left === null)
80
- return 1;
81
- if (right === null)
82
- return -1;
83
- return left > right ? -1 : 1;
84
- }
85
- function compareRows(left, right) {
86
- const activity = compareActivity(activityAt(left), activityAt(right));
87
- if (activity !== 0)
88
- return activity;
89
- return left.id < right.id ? -1 : left.id > right.id ? 1 : 0;
90
- }
91
- export async function boundedMap(values, mapper) {
92
- const results = [];
93
- let index = 0;
94
- const worker = async () => {
95
- for (;;) {
96
- const selected = index++;
97
- if (selected >= values.length)
98
- return;
99
- results[selected] = await mapper(values[selected]);
100
- }
101
- };
102
- await Promise.all(Array.from({ length: Math.min(PAGE_POOL_SIZE, values.length) }, worker));
103
- return results;
104
- }
105
- async function mtimeBound(paths) {
106
- const read = async (path) => {
107
- try {
108
- return (await stat(path)).mtimeMs;
109
- }
110
- catch (error) {
111
- return error.code === "ENOENT" ? 0 : Number.POSITIVE_INFINITY;
112
- }
113
- };
114
- return Math.max(await read(paths.heart), await read(`${paths.heart}-wal`));
115
- }
116
- async function knownAkuma(path, selected) {
117
- const runRoot = akumaRunRoot(path);
118
- let names;
119
- try {
120
- names = (await readdir(runRoot, { withFileTypes: true }))
121
- .filter((entry) => entry.isDirectory())
122
- .map((entry) => entry.name)
123
- .sort();
124
- }
125
- catch (error) {
126
- if (error.code === "ENOENT")
127
- return { runRoot, rows: [] };
128
- throw error;
129
- }
130
- const rows = [];
131
- for (const name of names) {
132
- let physical;
133
- try {
134
- physical = akuIdFromDirectoryName(name);
135
- }
136
- catch {
137
- continue;
138
- }
139
- if (selected !== undefined && physical.archetype !== selected)
140
- continue;
141
- rows.push({
142
- id: physical.id,
143
- paths: akumaPaths({ runRoot, archetype: physical.archetype, suffix: physical.suffix }),
144
- });
145
- }
146
- return { runRoot, rows };
147
- }
148
- async function readableRows(rows) {
149
- const loaded = await boundedMap(rows, async ({ id, paths }) => {
150
- try {
151
- return await fleetListRow(paths, id);
152
- }
153
- catch {
154
- return null;
155
- }
156
- });
157
- return [...loaded].filter((row) => row !== null);
158
- }
159
- class AkumaProduct {
160
- path;
161
- configuration;
162
- constructor(path, configuration) {
163
- this.path = path;
164
- this.configuration = configuration;
165
- }
166
- static create(root, input = {}) {
167
- if (typeof root !== "string")
168
- throw new TypeError("Akuma product root must be a WorldRoot");
169
- return new AkumaProduct(root, input);
170
- }
171
- selectHandle(input) {
172
- return new AkumaHandle(parseAkuId(input.id).id, this.path);
173
- }
174
- async listArchetypes() {
175
- return readArchetypes({
176
- project: this.path,
177
- ...(this.configuration.home === undefined ? {} : { home: this.configuration.home }),
178
- });
179
- }
180
- async admit(input, context) {
181
- const name = archetypeName(input.archetype);
182
- const home = this.configuration.home === undefined ? {} : { home: this.configuration.home };
183
- const settings = this.configuration.settings ?? (await readSettings({ root: this.path, ...home }));
184
- const archetype = await loadArchetype({ name, project: this.path, ...home, settings });
185
- const allowed = input.allowed === undefined
186
- ? archetype.allowed
187
- : unionAllowedActions(archetype.allowed, decodeAllowedActions(input.allowed, "Akuma call allowed"));
188
- const execution = executionChannel(this.configuration.execution);
189
- const requestRecipe = Object.freeze({
190
- ...(archetype.description === undefined ? {} : { description: archetype.description }),
191
- provider: archetype.provider,
192
- options: archetype.options,
193
- allowed,
194
- });
195
- if (execution.kind === "body-request")
196
- return await admitBodyRequest({ call: input, context, path: this.path, name, recipe: requestRecipe, execution });
197
- return await admitDirect({ call: input, context, path: this.path, archetype, recipe: requestRecipe });
198
- }
199
- async publish(born, completion = {}, signal) {
200
- if (born.kind === "requested") {
201
- return new AkumaHandle(born.id, this.path, { cwd: born.cwd, source: born.execution.source });
202
- }
203
- const published = await launchAkuma({
204
- allocated: born.allocated,
205
- ...(signal === undefined ? {} : { signal }),
206
- launch: async (allocated) => await spawnAkumaBody({
207
- paths: allocated.paths,
208
- seed: born.seed,
209
- ...(Object.keys(completion).length === 0 ? {} : { completion }),
210
- }),
211
- });
212
- return new AkumaHandle(published.id, this.path, {
213
- cwd: born.execution.cwd,
214
- source: born.execution.source,
215
- });
216
- }
217
- async listComplete(input = {}) {
218
- if (typeof input !== "object" || input === null || Array.isArray(input))
219
- throw new TypeError("Akuma complete list input must be an object");
220
- const unknown = Object.keys(input).find((key) => key !== "archetype");
221
- if (unknown !== undefined)
222
- throw new TypeError(`Akuma complete list input has unknown field: ${unknown}`);
223
- const selected = input.archetype === undefined ? undefined : archetypeName(input.archetype);
224
- const known = await knownAkuma(this.path, selected);
225
- return {
226
- observedAt: new Date().toISOString(),
227
- rows: [...(await readableRows(known.rows))].sort(compareRows),
228
- searched: [known.runRoot],
229
- };
230
- }
231
- async list(input = {}) {
232
- if (typeof input !== "object" || input === null || Array.isArray(input))
233
- throw new TypeError("Akuma list input must be an object");
234
- const unknown = Object.keys(input).find((key) => key !== "archetype" && key !== "limit");
235
- if (unknown !== undefined)
236
- throw new TypeError(`Akuma list input has unknown field: ${unknown}`);
237
- const selected = input.archetype === undefined ? undefined : archetypeName(input.archetype);
238
- const limit = boundedListLimit(input.limit);
239
- const observedAt = new Date().toISOString();
240
- const known = await knownAkuma(this.path, selected);
241
- const candidatesWithBounds = await boundedMap(known.rows, async (row) => ({
242
- ...row,
243
- bound: await mtimeBound(row.paths),
244
- }));
245
- const candidates = [...candidatesWithBounds].sort((left, right) => right.bound - left.bound);
246
- const readable = [];
247
- let cursor = 0;
248
- while (cursor < candidates.length) {
249
- const batch = candidates.slice(cursor, cursor + PAGE_POOL_SIZE);
250
- readable.push(...(await readableRows(batch)));
251
- cursor += batch.length;
252
- const ranked = readable.sort(compareRows);
253
- const lookahead = ranked[limit];
254
- const activity = lookahead === undefined ? null : activityAt(lookahead);
255
- const unreadBound = candidates[cursor]?.bound;
256
- if (lookahead !== undefined &&
257
- activity !== null &&
258
- unreadBound !== undefined &&
259
- Number.isFinite(unreadBound) &&
260
- Number.isFinite(Date.parse(activity)) &&
261
- unreadBound < Date.parse(activity)) {
262
- break;
263
- }
264
- }
265
- const ranked = readable.sort(compareRows);
266
- return {
267
- observedAt,
268
- searched: [known.runRoot],
269
- ...projectBoundedList(ranked, limit),
270
- };
271
- }
272
- }
273
- /** Internal composition product; the package exposes the smaller Akuma instance instead. */
274
- export function createAkumaProduct(root, input = {}) {
275
- return AkumaProduct.create(root, input);
276
- }