@astrosheep/keiyaku 2.9.13 → 4.0.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 (730) hide show
  1. package/README.md +5 -132
  2. package/build/integrations/marketplace/.agents/plugins/marketplace.json +12 -0
  3. package/build/integrations/marketplace/.claude-plugin/marketplace.json +5 -0
  4. package/build/integrations/marketplace/plugins/keiyaku/.claude-plugin/plugin.json +7 -0
  5. package/build/integrations/marketplace/plugins/keiyaku/.codex-plugin/plugin.json +18 -0
  6. package/build/integrations/marketplace/plugins/keiyaku/opencode.js +16 -0
  7. package/build/integrations/marketplace/plugins/keiyaku/package.json +8 -0
  8. package/build/integrations/marketplace/plugins/keiyaku/skills/keiyaku/SKILL.md +42 -0
  9. package/build/integrations/marketplace/plugins/keiyaku/skills/keiyaku-akuma/SKILL.md +53 -0
  10. package/build/integrations/marketplace/plugins/keiyaku/skills/keiyaku-bind/SKILL.md +94 -0
  11. package/build/integrations/marketplace/plugins/keiyaku/skills/keiyaku-bind/agents/openai.yaml +4 -0
  12. package/build/integrations/marketplace/plugins/keiyaku/skills/keiyaku-task/SKILL.md +97 -0
  13. package/build/integrations/marketplace/plugins/keiyaku/skills/keiyaku-workflow/SKILL.md +189 -0
  14. package/build/src/akuma/akuma.d.ts +124 -0
  15. package/build/src/akuma/akuma.js +414 -0
  16. package/build/src/akuma/archetype.d.ts +39 -0
  17. package/build/src/akuma/archetype.js +207 -0
  18. package/build/src/akuma/body.d.ts +20 -0
  19. package/build/src/akuma/body.js +417 -0
  20. package/build/src/akuma/coordinate.d.ts +9 -0
  21. package/build/src/akuma/coordinate.js +22 -0
  22. package/build/src/akuma/heart/facts.d.ts +202 -0
  23. package/build/src/akuma/heart/facts.js +9 -0
  24. package/build/src/akuma/heart/index.d.ts +90 -0
  25. package/build/src/akuma/heart/index.js +240 -0
  26. package/build/src/akuma/heart/rows.d.ts +166 -0
  27. package/build/src/akuma/heart/rows.js +299 -0
  28. package/build/src/akuma/heart/schema.d.ts +5 -0
  29. package/build/src/akuma/heart/schema.js +160 -0
  30. package/build/src/akuma/heart/storage.d.ts +33 -0
  31. package/build/src/akuma/heart/storage.js +164 -0
  32. package/build/src/akuma/heart/tells.d.ts +12 -0
  33. package/build/src/akuma/heart/tells.js +79 -0
  34. package/build/src/akuma/heart/timeline.d.ts +15 -0
  35. package/build/src/akuma/heart/timeline.js +86 -0
  36. package/build/src/akuma/identity.d.ts +46 -0
  37. package/build/src/akuma/identity.js +89 -0
  38. package/build/src/akuma/index.d.ts +9 -0
  39. package/build/src/akuma/index.js +3 -0
  40. package/build/src/akuma/projection.d.ts +97 -0
  41. package/build/src/akuma/projection.js +145 -0
  42. package/build/src/akuma/provider.d.ts +169 -0
  43. package/build/src/akuma/provider.js +255 -0
  44. package/build/src/akuma/providers/claude/events.d.ts +52 -0
  45. package/build/src/akuma/providers/claude/events.js +185 -0
  46. package/build/src/akuma/providers/claude/index.d.ts +46 -0
  47. package/build/src/akuma/providers/claude/index.js +265 -0
  48. package/build/src/akuma/providers/claude/input.d.ts +13 -0
  49. package/build/src/akuma/providers/claude/input.js +109 -0
  50. package/build/src/akuma/providers/codex-app-server/events.d.ts +110 -0
  51. package/build/src/akuma/providers/codex-app-server/events.js +337 -0
  52. package/build/src/akuma/providers/codex-app-server/index.d.ts +29 -0
  53. package/build/src/akuma/providers/codex-app-server/index.js +213 -0
  54. package/build/src/akuma/providers/index.d.ts +4 -0
  55. package/build/src/akuma/providers/index.js +85 -0
  56. package/build/src/akuma/providers/opencode-sdk/events.d.ts +48 -0
  57. package/build/src/akuma/providers/opencode-sdk/events.js +116 -0
  58. package/build/src/akuma/providers/opencode-sdk/index.d.ts +32 -0
  59. package/build/src/akuma/providers/opencode-sdk/index.js +203 -0
  60. package/build/src/akuma/providers/opencode-sdk/session.d.ts +41 -0
  61. package/build/src/akuma/providers/opencode-sdk/session.js +62 -0
  62. package/build/src/akuma/providers/pi/events.d.ts +33 -0
  63. package/build/src/akuma/providers/pi/events.js +128 -0
  64. package/build/src/akuma/providers/pi/index.d.ts +11 -0
  65. package/build/src/akuma/providers/pi/index.js +162 -0
  66. package/build/src/akuma/publication.d.ts +10 -0
  67. package/build/src/akuma/publication.js +107 -0
  68. package/build/src/akuma/requests.d.ts +47 -0
  69. package/build/src/akuma/requests.js +391 -0
  70. package/build/src/alias/index.d.ts +18 -0
  71. package/build/src/alias/index.js +103 -0
  72. package/build/src/body/amend.d.ts +2 -0
  73. package/build/src/body/amend.js +289 -0
  74. package/build/src/body/arc.d.ts +2 -0
  75. package/build/src/body/arc.js +54 -0
  76. package/build/src/body/decode.d.ts +4 -0
  77. package/build/src/body/decode.js +146 -0
  78. package/build/src/body/keys.d.ts +4 -0
  79. package/build/src/body/keys.js +11 -0
  80. package/build/src/body/region.d.ts +6 -0
  81. package/build/src/body/region.js +139 -0
  82. package/build/src/body/render.d.ts +4 -0
  83. package/build/src/body/render.js +74 -0
  84. package/build/src/body/shape.d.ts +29 -0
  85. package/build/src/body/shape.js +22 -0
  86. package/build/src/body/types.d.ts +28 -0
  87. package/build/src/body/verification.d.ts +7 -0
  88. package/build/src/body/verification.js +40 -0
  89. package/build/src/cli/accepted.d.ts +18 -0
  90. package/build/src/cli/accepted.js +66 -0
  91. package/build/src/cli/actor.d.ts +8 -0
  92. package/build/src/cli/actor.js +11 -0
  93. package/build/src/cli/commands/akuma-invoke.d.ts +77 -0
  94. package/build/src/cli/commands/akuma-invoke.js +112 -0
  95. package/build/src/cli/commands/akuma.d.ts +50 -0
  96. package/build/src/cli/commands/akuma.js +262 -0
  97. package/build/src/cli/commands/amend.d.ts +13 -0
  98. package/build/src/cli/commands/amend.js +13 -0
  99. package/build/src/cli/commands/bind.d.ts +12 -0
  100. package/build/src/cli/commands/bind.js +17 -0
  101. package/build/src/cli/commands/contract.d.ts +142 -0
  102. package/build/src/cli/commands/contract.js +14 -0
  103. package/build/src/cli/commands/install.d.ts +25 -0
  104. package/build/src/cli/commands/install.js +105 -0
  105. package/build/src/cli/commands/task-invoke.d.ts +11 -0
  106. package/build/src/cli/commands/task-invoke.js +117 -0
  107. package/build/src/cli/commands/task.d.ts +16 -0
  108. package/build/src/cli/commands/task.js +144 -0
  109. package/build/src/cli/index.d.ts +2 -0
  110. package/build/src/cli/index.js +3 -0
  111. package/build/src/cli/invoke.d.ts +22 -0
  112. package/build/src/cli/invoke.js +463 -0
  113. package/build/src/cli/main.d.ts +1 -0
  114. package/build/src/cli/main.js +98 -0
  115. package/build/src/cli/parse.d.ts +107 -0
  116. package/build/src/cli/parse.js +348 -0
  117. package/build/src/cli/render/akuma-tool.d.ts +13 -0
  118. package/build/src/cli/render/akuma-tool.js +72 -0
  119. package/build/src/cli/render/akuma.d.ts +7 -0
  120. package/build/src/cli/render/akuma.js +194 -0
  121. package/build/src/cli/render/board.d.ts +2 -0
  122. package/build/src/cli/render/board.js +4 -0
  123. package/build/src/cli/render/catalog.d.ts +2 -0
  124. package/build/src/cli/render/catalog.js +16 -0
  125. package/build/src/cli/render/contract.d.ts +4 -0
  126. package/build/src/cli/render/contract.js +102 -0
  127. package/build/src/cli/render/kanshi.d.ts +3 -0
  128. package/build/src/cli/render/kanshi.js +252 -0
  129. package/build/src/cli/render/refusal.d.ts +2 -0
  130. package/build/src/cli/render/refusal.js +21 -0
  131. package/build/src/cli/render/settings.d.ts +3 -0
  132. package/build/src/cli/render/settings.js +30 -0
  133. package/build/src/cli/render/task.d.ts +6 -0
  134. package/build/src/cli/render/task.js +105 -0
  135. package/build/src/cli/render/terminal.d.ts +23 -0
  136. package/build/src/cli/render/terminal.js +151 -0
  137. package/build/src/cli/render/text.d.ts +3 -0
  138. package/build/src/cli/render/text.js +20 -0
  139. package/build/src/cli/result.d.ts +67 -0
  140. package/build/src/cli/selectors.d.ts +9 -0
  141. package/build/src/cli/selectors.js +66 -0
  142. package/build/src/cli/usage.d.ts +6 -0
  143. package/build/src/cli/usage.js +19 -0
  144. package/build/src/contract-worktree.d.ts +43 -0
  145. package/build/src/contract-worktree.js +213 -0
  146. package/build/src/coordination/durable-file.d.ts +4 -0
  147. package/build/src/coordination/durable-file.js +79 -0
  148. package/build/src/coordination/sqlite-transaction-lock.d.ts +14 -0
  149. package/build/src/coordination/sqlite-transaction-lock.js +119 -0
  150. package/build/src/core/decide.d.ts +45 -0
  151. package/build/src/core/facts/codec.d.ts +3 -0
  152. package/build/src/core/facts/codec.js +277 -0
  153. package/build/src/core/facts/eligibility.d.ts +7 -0
  154. package/build/src/core/facts/eligibility.js +26 -0
  155. package/build/src/core/facts/errors.d.ts +3 -0
  156. package/build/src/core/facts/errors.js +6 -0
  157. package/build/src/core/facts/fold.d.ts +2 -0
  158. package/build/src/core/facts/fold.js +97 -0
  159. package/build/src/core/facts/gate.d.ts +24 -0
  160. package/build/src/core/facts/gate.js +52 -0
  161. package/build/src/core/facts/observation.d.ts +15 -0
  162. package/build/src/core/facts/observation.js +35 -0
  163. package/build/src/core/facts/offer.d.ts +21 -0
  164. package/build/src/core/facts/types.d.ts +137 -0
  165. package/build/src/core/facts/types.js +66 -0
  166. package/build/src/core/subject.d.ts +21 -0
  167. package/build/src/core/subject.js +89 -0
  168. package/build/src/core/verbs/abandon.d.ts +13 -0
  169. package/build/src/core/verbs/abandon.js +17 -0
  170. package/build/src/core/verbs/amend.d.ts +14 -0
  171. package/build/src/core/verbs/amend.js +52 -0
  172. package/build/src/core/verbs/arc.d.ts +13 -0
  173. package/build/src/core/verbs/arc.js +25 -0
  174. package/build/src/core/verbs/attestation.d.ts +13 -0
  175. package/build/src/core/verbs/attestation.js +21 -0
  176. package/build/src/core/verbs/bind.d.ts +13 -0
  177. package/build/src/core/verbs/bind.js +26 -0
  178. package/build/src/core/verbs/deliver.d.ts +13 -0
  179. package/build/src/core/verbs/deliver.js +42 -0
  180. package/build/src/core/verbs/placement.d.ts +13 -0
  181. package/build/src/core/verbs/placement.js +37 -0
  182. package/build/src/dispatch/index.d.ts +33 -0
  183. package/build/src/dispatch/index.js +168 -0
  184. package/build/src/duration.d.ts +10 -0
  185. package/build/src/duration.js +22 -0
  186. package/build/src/git/admission.d.ts +18 -0
  187. package/build/src/git/admission.js +126 -0
  188. package/build/src/git/hooks.d.ts +49 -0
  189. package/build/src/git/hooks.js +310 -0
  190. package/build/src/git/identity.d.ts +17 -0
  191. package/build/src/git/identity.js +47 -0
  192. package/build/src/git/integration.d.ts +49 -0
  193. package/build/src/git/integration.js +214 -0
  194. package/build/src/git/observe.d.ts +50 -0
  195. package/build/src/git/observe.js +330 -0
  196. package/build/src/git/read-observation.d.ts +41 -0
  197. package/build/src/git/read-observation.js +361 -0
  198. package/build/src/git/reconcile.d.ts +59 -0
  199. package/build/src/git/reconcile.js +376 -0
  200. package/build/src/git/repository.d.ts +95 -0
  201. package/build/src/git/repository.js +490 -0
  202. package/build/src/git/scratch.d.ts +13 -0
  203. package/build/src/git/scratch.js +66 -0
  204. package/build/src/git/target-placement.d.ts +56 -0
  205. package/build/src/git/target-placement.js +255 -0
  206. package/build/src/git/tender.d.ts +48 -0
  207. package/build/src/git/tender.js +82 -0
  208. package/build/src/git/terminal-seal.d.ts +24 -0
  209. package/build/src/git/terminal-seal.js +87 -0
  210. package/build/src/git/tree.d.ts +34 -0
  211. package/build/src/git/tree.js +116 -0
  212. package/build/src/git/workspace.d.ts +21 -0
  213. package/build/src/git/workspace.js +104 -0
  214. package/build/src/identity/coordinates.d.ts +9 -0
  215. package/build/src/identity/coordinates.js +20 -0
  216. package/build/src/identity/normalize.d.ts +8 -0
  217. package/build/src/identity/normalize.js +45 -0
  218. package/build/src/identity/selector.d.ts +12 -0
  219. package/build/src/identity/selector.js +26 -0
  220. package/build/src/index.d.ts +6 -0
  221. package/build/src/index.js +3 -0
  222. package/build/src/kanshi/index.d.ts +5 -0
  223. package/build/src/kanshi/index.js +2 -0
  224. package/build/src/kanshi/read.d.ts +8 -0
  225. package/build/src/kanshi/read.js +209 -0
  226. package/build/src/kanshi/report.d.ts +60 -0
  227. package/build/src/kanshi/select.d.ts +8 -0
  228. package/build/src/kanshi/select.js +21 -0
  229. package/build/src/library/address.d.ts +48 -0
  230. package/build/src/library/address.js +134 -0
  231. package/build/src/library/akuma-creation.d.ts +83 -0
  232. package/build/src/library/akuma-creation.js +152 -0
  233. package/build/src/library/bind.d.ts +21 -0
  234. package/build/src/library/bind.js +56 -0
  235. package/build/src/library/catalog.d.ts +58 -0
  236. package/build/src/library/catalog.js +72 -0
  237. package/build/src/library/configuration.d.ts +17 -0
  238. package/build/src/library/configuration.js +97 -0
  239. package/build/src/library/contract.d.ts +120 -0
  240. package/build/src/library/contract.js +335 -0
  241. package/build/src/library/delivery.d.ts +23 -0
  242. package/build/src/library/delivery.js +21 -0
  243. package/build/src/library/fleet.d.ts +65 -0
  244. package/build/src/library/fleet.js +189 -0
  245. package/build/src/library/input.d.ts +16 -0
  246. package/build/src/library/input.js +101 -0
  247. package/build/src/library/keiyaku.d.ts +42 -0
  248. package/build/src/library/keiyaku.js +26 -0
  249. package/build/src/library/mutation.d.ts +38 -0
  250. package/build/src/library/mutation.js +39 -0
  251. package/build/src/library/refusal.d.ts +21 -0
  252. package/build/src/library/refusal.js +29 -0
  253. package/build/src/library/region.d.ts +18 -0
  254. package/build/src/library/region.js +30 -0
  255. package/build/src/library/repo.d.ts +36 -0
  256. package/build/src/library/repo.js +76 -0
  257. package/build/src/markdown/diff.d.ts +1 -0
  258. package/build/src/markdown/diff.js +4 -0
  259. package/build/src/markdown/lex.d.ts +3 -0
  260. package/build/src/markdown/lex.js +221 -0
  261. package/build/src/markdown/parse.d.ts +2 -0
  262. package/build/src/markdown/parse.js +221 -0
  263. package/build/src/markdown/query.d.ts +21 -0
  264. package/build/src/markdown/query.js +51 -0
  265. package/build/src/markdown/types.d.ts +118 -0
  266. package/build/src/markdown/types.js +6 -0
  267. package/build/src/protocol/attempt.d.ts +49 -0
  268. package/build/src/protocol/attempt.js +150 -0
  269. package/build/src/protocol/bind.d.ts +32 -0
  270. package/build/src/protocol/bind.js +70 -0
  271. package/build/src/protocol/intent.d.ts +76 -0
  272. package/build/src/protocol/intent.js +90 -0
  273. package/build/src/protocol/operations.d.ts +198 -0
  274. package/build/src/protocol/operations.js +485 -0
  275. package/build/src/protocol/outcome.d.ts +23 -0
  276. package/build/src/protocol/outcome.js +21 -0
  277. package/build/src/protocol/placement.d.ts +30 -0
  278. package/build/src/protocol/placement.js +114 -0
  279. package/build/src/protocol/read/audit.d.ts +31 -0
  280. package/build/src/protocol/read/audit.js +55 -0
  281. package/build/src/protocol/read/documents.d.ts +8 -0
  282. package/build/src/protocol/read/documents.js +16 -0
  283. package/build/src/protocol/read/status.d.ts +44 -0
  284. package/build/src/protocol/read/status.js +60 -0
  285. package/build/src/protocol/run.d.ts +81 -0
  286. package/build/src/protocol/run.js +64 -0
  287. package/build/src/runtime/proc/line-rpc.d.ts +38 -0
  288. package/build/src/runtime/proc/line-rpc.js +145 -0
  289. package/build/src/runtime/proc/run.d.ts +70 -0
  290. package/build/src/runtime/proc/run.js +226 -0
  291. package/build/src/settings.d.ts +51 -0
  292. package/build/src/settings.js +114 -0
  293. package/build/src/settlement/fence.d.ts +9 -0
  294. package/build/src/settlement/fence.js +23 -0
  295. package/build/src/settlement/holder.d.ts +36 -0
  296. package/build/src/settlement/holder.js +187 -0
  297. package/build/src/settlement/settle.d.ts +44 -0
  298. package/build/src/settlement/settle.js +165 -0
  299. package/build/src/task/board.d.ts +83 -0
  300. package/build/src/task/board.js +165 -0
  301. package/build/src/task/compose.d.ts +25 -0
  302. package/build/src/task/compose.js +232 -0
  303. package/build/src/task/context.d.ts +4 -0
  304. package/build/src/task/context.js +51 -0
  305. package/build/src/task/document.d.ts +24 -0
  306. package/build/src/task/document.js +118 -0
  307. package/build/src/task/identity.d.ts +12 -0
  308. package/build/src/task/identity.js +47 -0
  309. package/build/src/task/index.d.ts +90 -0
  310. package/build/src/task/index.js +182 -0
  311. package/build/src/task/operations.d.ts +134 -0
  312. package/build/src/task/operations.js +198 -0
  313. package/build/src/task/store.d.ts +20 -0
  314. package/build/src/task/store.js +114 -0
  315. package/build/src/verification/declaration.d.ts +23 -0
  316. package/build/src/verification/declaration.js +14 -0
  317. package/build/src/verification/execution.d.ts +49 -0
  318. package/build/src/verification/execution.js +104 -0
  319. package/build/src/world.d.ts +13 -0
  320. package/build/src/world.js +103 -0
  321. package/package.json +65 -44
  322. package/build/.tsbuildinfo +0 -1
  323. package/build/agents/call-terms.js +0 -32
  324. package/build/agents/harness/activity-values.js +0 -70
  325. package/build/agents/harness/control-types.js +0 -18
  326. package/build/agents/harness/event-channel.js +0 -213
  327. package/build/agents/harness/event-persistence.js +0 -220
  328. package/build/agents/harness/events.js +0 -48
  329. package/build/agents/harness/execution-handle.js +0 -172
  330. package/build/agents/harness/index.js +0 -11
  331. package/build/agents/harness/outcome-error.js +0 -81
  332. package/build/agents/harness/outcome.js +0 -220
  333. package/build/agents/harness/projection.js +0 -369
  334. package/build/agents/harness/provider-adapter.js +0 -58
  335. package/build/agents/harness/router.js +0 -30
  336. package/build/agents/harness/runtime.js +0 -85
  337. package/build/agents/harness/session.js +0 -15
  338. package/build/agents/launch-snapshot/model.js +0 -127
  339. package/build/agents/launch-snapshot/parse-helpers.js +0 -114
  340. package/build/agents/launch-snapshot/resolve.js +0 -46
  341. package/build/agents/opencode-sdk.js +0 -159
  342. package/build/agents/providers/claude-agent-sdk/adapter.js +0 -396
  343. package/build/agents/providers/claude-agent-sdk/events.js +0 -218
  344. package/build/agents/providers/claude-agent-sdk/registration.js +0 -225
  345. package/build/agents/providers/claude-agent-sdk/session-schema.js +0 -2
  346. package/build/agents/providers/claude-agent-sdk/session.js +0 -172
  347. package/build/agents/providers/codex-app-server/adapter.js +0 -387
  348. package/build/agents/providers/codex-app-server/events.js +0 -492
  349. package/build/agents/providers/codex-app-server/identity.js +0 -1
  350. package/build/agents/providers/codex-app-server/policy.js +0 -29
  351. package/build/agents/providers/codex-app-server/registration.js +0 -259
  352. package/build/agents/providers/codex-app-server/session-schema.js +0 -6
  353. package/build/agents/providers/codex-app-server/session.js +0 -273
  354. package/build/agents/providers/event-type-tail.js +0 -16
  355. package/build/agents/providers/opencode-sdk/adapter.js +0 -402
  356. package/build/agents/providers/opencode-sdk/events.js +0 -380
  357. package/build/agents/providers/opencode-sdk/registration.js +0 -146
  358. package/build/agents/providers/opencode-sdk/session-schema.js +0 -2
  359. package/build/agents/providers/opencode-sdk/session.js +0 -187
  360. package/build/agents/providers/pi/adapter.js +0 -285
  361. package/build/agents/providers/pi/checkpoint.js +0 -49
  362. package/build/agents/providers/pi/events.js +0 -285
  363. package/build/agents/providers/pi/registration.js +0 -160
  364. package/build/agents/providers/pi/session-schema.js +0 -6
  365. package/build/agents/providers/registration.js +0 -7
  366. package/build/agents/providers/registry.js +0 -76
  367. package/build/agents/selector.js +0 -120
  368. package/build/agents/session.js +0 -29
  369. package/build/agents/string-tail-buffer.js +0 -44
  370. package/build/agents/types.js +0 -30
  371. package/build/artifact-directories.js +0 -22
  372. package/build/cli/commands/akuma/akuma/handler.js +0 -5
  373. package/build/cli/commands/akuma/akuma/meta.js +0 -17
  374. package/build/cli/commands/akuma/catalog.js +0 -10
  375. package/build/cli/commands/akuma/list/handler.js +0 -15
  376. package/build/cli/commands/akuma/list/meta-list.js +0 -12
  377. package/build/cli/commands/akuma/list/meta-ls.js +0 -9
  378. package/build/cli/commands/akuma/show/handler.js +0 -27
  379. package/build/cli/commands/akuma/show/meta.js +0 -8
  380. package/build/cli/commands/akuma.js +0 -186
  381. package/build/cli/commands/contract/amend/handler.js +0 -17
  382. package/build/cli/commands/contract/amend/meta.js +0 -13
  383. package/build/cli/commands/contract/arc/handler.js +0 -16
  384. package/build/cli/commands/contract/arc/meta.js +0 -28
  385. package/build/cli/commands/contract/audit/handler.js +0 -42
  386. package/build/cli/commands/contract/audit/meta.js +0 -17
  387. package/build/cli/commands/contract/bind/handler.js +0 -39
  388. package/build/cli/commands/contract/bind/meta.js +0 -96
  389. package/build/cli/commands/contract/catalog.js +0 -18
  390. package/build/cli/commands/contract/forfeit/handler.js +0 -17
  391. package/build/cli/commands/contract/forfeit/meta.js +0 -12
  392. package/build/cli/commands/contract/log/handler.js +0 -12
  393. package/build/cli/commands/contract/log/meta.js +0 -12
  394. package/build/cli/commands/contract/petition/handler.js +0 -64
  395. package/build/cli/commands/contract/petition/meta.js +0 -23
  396. package/build/cli/commands/contract/renew/handler.js +0 -65
  397. package/build/cli/commands/contract/renew/meta.js +0 -19
  398. package/build/cli/commands/metadata.js +0 -68
  399. package/build/cli/commands/projection/call/handler.js +0 -43
  400. package/build/cli/commands/projection/call/meta.js +0 -12
  401. package/build/cli/commands/projection/catalog.js +0 -16
  402. package/build/cli/commands/projection/fork/handler.js +0 -61
  403. package/build/cli/commands/projection/fork/meta.js +0 -12
  404. package/build/cli/commands/projection/history/handler.js +0 -65
  405. package/build/cli/commands/projection/history/meta.js +0 -9
  406. package/build/cli/commands/projection/kill/handler.js +0 -20
  407. package/build/cli/commands/projection/kill/meta.js +0 -11
  408. package/build/cli/commands/projection/shared.js +0 -27
  409. package/build/cli/commands/projection/status/handler.js +0 -42
  410. package/build/cli/commands/projection/status/meta.js +0 -20
  411. package/build/cli/commands/projection/tell/handler.js +0 -32
  412. package/build/cli/commands/projection/tell/meta.js +0 -12
  413. package/build/cli/commands/projection/wait/handler.js +0 -80
  414. package/build/cli/commands/projection/wait/meta.js +0 -16
  415. package/build/cli/commands/registry.js +0 -48
  416. package/build/cli/commands/shared.js +0 -74
  417. package/build/cli/commands/skills/catalog.js +0 -6
  418. package/build/cli/commands/skills/install/handler.js +0 -7
  419. package/build/cli/commands/skills/install/meta.js +0 -9
  420. package/build/cli/commands/skills/skills/handler.js +0 -4
  421. package/build/cli/commands/skills/skills/meta.js +0 -10
  422. package/build/cli/commands/system/catalog.js +0 -10
  423. package/build/cli/commands/system/completion/handler.js +0 -10
  424. package/build/cli/commands/system/completion/meta.js +0 -9
  425. package/build/cli/commands/system/dump-env/handler.js +0 -3
  426. package/build/cli/commands/system/dump-env/meta.js +0 -10
  427. package/build/cli/commands/system/guide/handler.js +0 -4
  428. package/build/cli/commands/system/guide/meta.js +0 -9
  429. package/build/cli/commands/task/add/handler.js +0 -38
  430. package/build/cli/commands/task/add/meta.js +0 -31
  431. package/build/cli/commands/task/catalog.js +0 -32
  432. package/build/cli/commands/task/compose/handler.js +0 -18
  433. package/build/cli/commands/task/compose/meta.js +0 -10
  434. package/build/cli/commands/task/doctor/handler.js +0 -3
  435. package/build/cli/commands/task/doctor/meta.js +0 -8
  436. package/build/cli/commands/task/done/handler.js +0 -10
  437. package/build/cli/commands/task/done/meta.js +0 -8
  438. package/build/cli/commands/task/drop/handler.js +0 -8
  439. package/build/cli/commands/task/drop/meta.js +0 -11
  440. package/build/cli/commands/task/hold/handler.js +0 -3
  441. package/build/cli/commands/task/hold/meta.js +0 -8
  442. package/build/cli/commands/task/log/handler.js +0 -12
  443. package/build/cli/commands/task/log/meta.js +0 -8
  444. package/build/cli/commands/task/ls/handler.js +0 -17
  445. package/build/cli/commands/task/ls/meta.js +0 -8
  446. package/build/cli/commands/task/note/handler.js +0 -6
  447. package/build/cli/commands/task/note/meta.js +0 -11
  448. package/build/cli/commands/task/resume/handler.js +0 -3
  449. package/build/cli/commands/task/resume/meta.js +0 -8
  450. package/build/cli/commands/task/shared.js +0 -181
  451. package/build/cli/commands/task/show/handler.js +0 -13
  452. package/build/cli/commands/task/show/meta.js +0 -8
  453. package/build/cli/commands/task/start/handler.js +0 -3
  454. package/build/cli/commands/task/start/meta.js +0 -8
  455. package/build/cli/commands/task/stop/handler.js +0 -10
  456. package/build/cli/commands/task/stop/meta.js +0 -8
  457. package/build/cli/commands/task/task/handler.js +0 -5
  458. package/build/cli/commands/task/task/meta.js +0 -11
  459. package/build/cli/commands/task/update/handler.js +0 -21
  460. package/build/cli/commands/task/update/meta.js +0 -12
  461. package/build/cli/commands/verification/handler.js +0 -43
  462. package/build/cli/commands/verification/meta.js +0 -13
  463. package/build/cli/completion.js +0 -91
  464. package/build/cli/draft-artifact.js +0 -50
  465. package/build/cli/flags.js +0 -321
  466. package/build/cli/help.js +0 -99
  467. package/build/cli/index.js +0 -333
  468. package/build/cli/missing-subcommand.js +0 -7
  469. package/build/cli/output-stream-error-policy.js +0 -31
  470. package/build/cli/parse-flags.js +0 -301
  471. package/build/cli/parse-metadata.js +0 -132
  472. package/build/cli/parse-selectors.js +0 -83
  473. package/build/cli/parse.js +0 -250
  474. package/build/cli/projection-address.js +0 -105
  475. package/build/cli/render/address.js +0 -101
  476. package/build/cli/render/amendment-warning.js +0 -8
  477. package/build/cli/render/arc.js +0 -88
  478. package/build/cli/render/audit.js +0 -440
  479. package/build/cli/render/call.js +0 -70
  480. package/build/cli/render/compact-text.js +0 -3
  481. package/build/cli/render/errors.js +0 -101
  482. package/build/cli/render/format.js +0 -226
  483. package/build/cli/render/kanshi.js +0 -300
  484. package/build/cli/render/kill.js +0 -9
  485. package/build/cli/render/lifecycle.js +0 -56
  486. package/build/cli/render/line-width.js +0 -103
  487. package/build/cli/render/misc.js +0 -84
  488. package/build/cli/render/path-prefix-compaction.js +0 -131
  489. package/build/cli/render/petition.js +0 -85
  490. package/build/cli/render/projection-activity.js +0 -332
  491. package/build/cli/render/projection-history.js +0 -77
  492. package/build/cli/render/response-style.js +0 -27
  493. package/build/cli/render/shared.js +0 -232
  494. package/build/cli/render/skills.js +0 -10
  495. package/build/cli/render/status-indicator.js +0 -47
  496. package/build/cli/render/status.js +0 -243
  497. package/build/cli/render/success-response.js +0 -95
  498. package/build/cli/render/task.js +0 -175
  499. package/build/cli/render/tell.js +0 -11
  500. package/build/cli/render/terminal-failure.js +0 -65
  501. package/build/cli/render/tool-command-normalization.js +0 -137
  502. package/build/cli/render/tool-ledger-rollup.js +0 -74
  503. package/build/cli/render/tool-presentation.js +0 -98
  504. package/build/cli/render/types.js +0 -2
  505. package/build/cli/render/verification.js +0 -23
  506. package/build/cli/render/wait.js +0 -343
  507. package/build/cli/skills-install.js +0 -348
  508. package/build/cli/subagent-guard.js +0 -25
  509. package/build/cli/types.js +0 -2
  510. package/build/config/akuma-loader.js +0 -240
  511. package/build/config/env-keys.js +0 -57
  512. package/build/config/env.js +0 -304
  513. package/build/config/provider-policy-ownership.js +0 -10
  514. package/build/config/settings/disease.js +0 -33
  515. package/build/config/settings/knobs.js +0 -14
  516. package/build/config/settings/loader.js +0 -275
  517. package/build/config/settings/provider-instance-fields.js +0 -51
  518. package/build/config/settings/schema.js +0 -113
  519. package/build/core/address-carrier.js +0 -89
  520. package/build/core/addressing.js +0 -407
  521. package/build/core/amend.js +0 -321
  522. package/build/core/amendment-criteria.js +0 -17
  523. package/build/core/amendment-warning.js +0 -10
  524. package/build/core/arc.js +0 -293
  525. package/build/core/atomic-publish.js +0 -64
  526. package/build/core/audit/candidate.js +0 -141
  527. package/build/core/audit/coordinates.js +0 -230
  528. package/build/core/audit/evidence.js +0 -156
  529. package/build/core/audit/facade.js +0 -65
  530. package/build/core/audit/readiness.js +0 -4
  531. package/build/core/audit/report.js +0 -38
  532. package/build/core/audit.js +0 -1
  533. package/build/core/bind-reconciliation.js +0 -409
  534. package/build/core/bind-workspace.js +0 -115
  535. package/build/core/bind.js +0 -503
  536. package/build/core/call/call.js +0 -235
  537. package/build/core/call/context.js +0 -210
  538. package/build/core/call/execution.js +0 -255
  539. package/build/core/call/prompt.js +0 -27
  540. package/build/core/call/reference.js +0 -24
  541. package/build/core/call-persist.js +0 -76
  542. package/build/core/command-markdown.js +0 -45
  543. package/build/core/context.js +0 -104
  544. package/build/core/contract-carrier-runtime.js +0 -512
  545. package/build/core/contract-carrier.js +0 -353
  546. package/build/core/contract-view.js +0 -319
  547. package/build/core/contract.js +0 -19
  548. package/build/core/derived-replay.js +0 -340
  549. package/build/core/draft.js +0 -400
  550. package/build/core/execution-coordinate.js +0 -46
  551. package/build/core/execution-pact.js +0 -126
  552. package/build/core/forfeit.js +0 -132
  553. package/build/core/hints.js +0 -34
  554. package/build/core/identifier-slug.js +0 -116
  555. package/build/core/ids.js +0 -90
  556. package/build/core/lifecycle-history.js +0 -48
  557. package/build/core/lifecycle-recovery.js +0 -122
  558. package/build/core/lifecycle-runner.js +0 -377
  559. package/build/core/log.js +0 -50
  560. package/build/core/markdown/lex.js +0 -274
  561. package/build/core/markdown/parser.js +0 -260
  562. package/build/core/markdown/render.js +0 -68
  563. package/build/core/markdown/sections.js +0 -80
  564. package/build/core/markdown/titles.js +0 -9
  565. package/build/core/markdown/types.js +0 -6
  566. package/build/core/outcome-base.js +0 -185
  567. package/build/core/places.js +0 -175
  568. package/build/core/projection/akuma-name.js +0 -43
  569. package/build/core/projection/generation/database.js +0 -473
  570. package/build/core/projection/generation/identity.js +0 -84
  571. package/build/core/projection/generation/ledger.js +0 -91
  572. package/build/core/projection/generation/model.js +0 -261
  573. package/build/core/projection/generation/projection-generation-continuation.js +0 -84
  574. package/build/core/projection/generation/projection-generation-doorbell.js +0 -88
  575. package/build/core/projection/generation/projection-generation-execution.js +0 -241
  576. package/build/core/projection/generation/projection-generation-identity.js +0 -21
  577. package/build/core/projection/generation/projection-generation-launcher.js +0 -154
  578. package/build/core/projection/generation/projection-generation-process.js +0 -47
  579. package/build/core/projection/generation/projection-generation-runner.js +0 -489
  580. package/build/core/projection/generation/projection-generation-runtime.js +0 -46
  581. package/build/core/projection/generation/protocol.js +0 -68
  582. package/build/core/projection/generation/store.js +0 -108
  583. package/build/core/projection/generation/transitions.js +0 -463
  584. package/build/core/projection/heart.js +0 -9
  585. package/build/core/projection/index.js +0 -28
  586. package/build/core/projection/projection-activity.js +0 -273
  587. package/build/core/projection/projection-alias.js +0 -131
  588. package/build/core/projection/projection-coordinate.js +0 -61
  589. package/build/core/projection/projection-core.js +0 -127
  590. package/build/core/projection/projection-execution-observer.js +0 -270
  591. package/build/core/projection/projection-history.js +0 -474
  592. package/build/core/projection/projection-identity.js +0 -11
  593. package/build/core/projection/projection-kill.js +0 -112
  594. package/build/core/projection/projection-life-observer.js +0 -101
  595. package/build/core/projection/projection-mint.js +0 -170
  596. package/build/core/projection/projection-status-observation.js +0 -434
  597. package/build/core/projection/projection-status.js +0 -442
  598. package/build/core/projection/projection-terminal-failure.js +0 -111
  599. package/build/core/projection/projection-wait.js +0 -337
  600. package/build/core/projection/projection-wake.js +0 -298
  601. package/build/core/projection/tell/launch-store.js +0 -244
  602. package/build/core/projection/tell/model.js +0 -98
  603. package/build/core/projection/tell/store.js +0 -245
  604. package/build/core/provider-loader-ports.js +0 -4
  605. package/build/core/registry.js +0 -100
  606. package/build/core/renew-build.js +0 -554
  607. package/build/core/renew-plan.js +0 -264
  608. package/build/core/renew-rewrite.js +0 -118
  609. package/build/core/renew.js +0 -345
  610. package/build/core/repository-ledger/accepted-fold-read.js +0 -22
  611. package/build/core/repository-ledger/accepted-tail.js +0 -116
  612. package/build/core/repository-ledger/admission.js +0 -38
  613. package/build/core/repository-ledger/authoritative-transaction.js +0 -1
  614. package/build/core/repository-ledger/claim-evidence.js +0 -147
  615. package/build/core/repository-ledger/codec.js +0 -303
  616. package/build/core/repository-ledger/current-state-store.js +0 -968
  617. package/build/core/repository-ledger/fold-repository.js +0 -374
  618. package/build/core/repository-ledger/fold.js +0 -248
  619. package/build/core/repository-ledger/git-object-store.js +0 -243
  620. package/build/core/repository-ledger/history-read.js +0 -15
  621. package/build/core/repository-ledger/identity.js +0 -60
  622. package/build/core/repository-ledger/incremental-read.js +0 -153
  623. package/build/core/repository-ledger/index.js +0 -15
  624. package/build/core/repository-ledger/inventory-plan.js +0 -75
  625. package/build/core/repository-ledger/inventory.js +0 -310
  626. package/build/core/repository-ledger/publication-admission.js +0 -125
  627. package/build/core/repository-ledger/publication.js +0 -353
  628. package/build/core/repository-ledger/read-model.js +0 -517
  629. package/build/core/repository-ledger/transaction-membership.js +0 -78
  630. package/build/core/repository-ledger/traversal.js +0 -404
  631. package/build/core/repository-ledger/write-transaction.js +0 -346
  632. package/build/core/response-artifact-catalog-sqlite.js +0 -112
  633. package/build/core/response-artifact-catalog.js +0 -7
  634. package/build/core/response-artifact-id.js +0 -5
  635. package/build/core/run-control/connection-bound-close.js +0 -41
  636. package/build/core/run-control/detached-lease-bootstrap.js +0 -208
  637. package/build/core/run-control/detached-process.js +0 -14
  638. package/build/core/run-control/index.js +0 -6
  639. package/build/core/run-control/process-tree.js +0 -139
  640. package/build/core/run-control/runner-lease.js +0 -172
  641. package/build/core/run-control/sqlite-process-lifetime-lock.js +0 -174
  642. package/build/core/scope.js +0 -416
  643. package/build/core/seal.js +0 -364
  644. package/build/core/settlement/claim-delivery.js +0 -82
  645. package/build/core/settlement/claim.js +0 -258
  646. package/build/core/settlement/index.js +0 -19
  647. package/build/core/settlement/petition-claim-gates.js +0 -247
  648. package/build/core/settlement/petition-forfeit.js +0 -46
  649. package/build/core/settlement/petition-head-guard.js +0 -12
  650. package/build/core/settlement/petition-io.js +0 -1
  651. package/build/core/settlement/petition-preview.js +0 -125
  652. package/build/core/settlement/petition-window.js +0 -50
  653. package/build/core/settlement/petition.js +0 -315
  654. package/build/core/settlement/queue-read-model.js +0 -120
  655. package/build/core/settlement/queue-seat-allocation.js +0 -65
  656. package/build/core/settlement/queue.js +0 -6
  657. package/build/core/settlement/settlement.js +0 -385
  658. package/build/core/settlement/verdict.js +0 -126
  659. package/build/core/settlement/verification.js +0 -554
  660. package/build/core/status/board.js +0 -455
  661. package/build/core/status/drift.js +0 -113
  662. package/build/core/status/lifecycle.js +0 -11
  663. package/build/core/stored-agent-event.js +0 -129
  664. package/build/core/structured-query.js +0 -23
  665. package/build/core/target-ref.js +0 -10
  666. package/build/core/task/board.js +0 -248
  667. package/build/core/task/commands.js +0 -401
  668. package/build/core/task/compose.js +0 -328
  669. package/build/core/task/coordinate.js +0 -56
  670. package/build/core/task/document.js +0 -273
  671. package/build/core/task/index.js +0 -16
  672. package/build/core/task/model.js +0 -8
  673. package/build/core/task/query.js +0 -204
  674. package/build/core/task/settlement-git.js +0 -423
  675. package/build/core/task/settlement-policy.js +0 -137
  676. package/build/core/task/source-board.js +0 -104
  677. package/build/core/task/source-model.js +0 -1
  678. package/build/core/task/task-bind-preparation.js +0 -243
  679. package/build/core/task/task-contract.js +0 -371
  680. package/build/core/task/task-doctor.js +0 -14
  681. package/build/core/task/task-file-transaction.js +0 -171
  682. package/build/core/task/task-git-actor.js +0 -33
  683. package/build/core/task/task-git-runtime.js +0 -97
  684. package/build/core/task/task-git-store.js +0 -400
  685. package/build/core/task/task-repository.js +0 -1
  686. package/build/core/task/task-store-repository.js +0 -97
  687. package/build/core/task/task-store.js +0 -1
  688. package/build/core/task/task-worktree.js +0 -25
  689. package/build/core/task/task.js +0 -7
  690. package/build/core/task/tree.js +0 -37
  691. package/build/core/task/validation.js +0 -48
  692. package/build/core/transcripts.js +0 -485
  693. package/build/core/validation.js +0 -17
  694. package/build/core/verification-declaration.js +0 -95
  695. package/build/core/worktree-bootstrap.js +0 -195
  696. package/build/core/worktree-path.js +0 -371
  697. package/build/errno.js +0 -3
  698. package/build/flow-error.js +0 -191
  699. package/build/fs/durability.js +0 -27
  700. package/build/fs/path-coordinate.js +0 -16
  701. package/build/generated/version.js +0 -3
  702. package/build/git/branches.js +0 -84
  703. package/build/git/commits.js +0 -151
  704. package/build/git/core.js +0 -86
  705. package/build/git/diff/parsers.js +0 -181
  706. package/build/git/diff/pathspec.js +0 -3
  707. package/build/git/diff/preview.js +0 -38
  708. package/build/git/diff/read.js +0 -105
  709. package/build/git/diff/structured.js +0 -127
  710. package/build/git/diff/types.js +0 -1
  711. package/build/git/path-coordinate.js +0 -17
  712. package/build/git/process.js +0 -229
  713. package/build/git/refs.js +0 -250
  714. package/build/git/staging.js +0 -79
  715. package/build/git/streaming-batch.js +0 -354
  716. package/build/git/worktree.js +0 -175
  717. package/build/index.js +0 -67
  718. package/build/keiyaku-constants.js +0 -2
  719. package/build/keiyaku.js +0 -30
  720. package/build/telemetry/debug-log.js +0 -40
  721. package/build/telemetry/logger.js +0 -48
  722. package/skills/keiyaku/SKILL.md +0 -46
  723. package/skills/keiyaku-akuma/SKILL.md +0 -97
  724. package/skills/keiyaku-task/SKILL.md +0 -118
  725. package/skills/keiyaku-workflow/SKILL.md +0 -191
  726. /package/build/{agents/launch-snapshot → src/body}/types.js +0 -0
  727. /package/build/{agents/providers/claude-agent-sdk/terms.js → src/cli/result.js} +0 -0
  728. /package/build/{agents/providers/codex-app-server/terms.js → src/core/decide.js} +0 -0
  729. /package/build/{agents/providers/opencode-sdk/terms.js → src/core/facts/offer.js} +0 -0
  730. /package/build/{agents/providers/pi/terms.js → src/kanshi/report.js} +0 -0
@@ -1,489 +0,0 @@
1
- import { openProjectionGenerationStore, } from "./store.js";
2
- import { acquireRunnerLease, observeRunnerLease, } from "../../run-control/runner-lease.js";
3
- import { beginConnectionBoundRunnerClose } from "../../run-control/connection-bound-close.js";
4
- import { createProjectionExecutionId, projectionRunnerLeasePath } from "./projection-generation-identity.js";
5
- import { applyContinuationEffort, } from "./projection-generation-continuation.js";
6
- import { openProjectionTellObserver } from "./database.js";
7
- import { OUTCOME_ERROR_VERSION } from "../../../agents/types.js";
8
- import { openProjectionGenerationDoorbell, } from "./projection-generation-doorbell.js";
9
- /** Private runner-side kill grace. Not a setting, env, parameter, or export. */
10
- const KILL_GRACE_MS = 5000;
11
- function successorLaunchFacts(launch, completionFacts, effort, now) {
12
- const { tellFence: _tellFence, ...inherited } = launch.facts;
13
- const rawInputs = launch.facts.inputs;
14
- const inputs = rawInputs
15
- && typeof rawInputs === "object"
16
- && !Array.isArray(rawInputs)
17
- ? rawInputs
18
- : {};
19
- // Revive source identity is launch-local; never inherit it onto a tell handoff successor.
20
- const { sourceArtifactId: _sourceArtifactId, ...inheritedInputs } = inputs;
21
- return {
22
- ...inherited,
23
- createdAt: new Date(now()).toISOString(),
24
- launchedBy: "sweep-wake",
25
- parentExecutionId: launch.executionId,
26
- inputs: applyContinuationEffort({
27
- ...inheritedInputs,
28
- ...(completionFacts.session ? { session: completionFacts.session } : {}),
29
- ...(typeof completionFacts.responsePath === "string"
30
- ? { resumePath: completionFacts.responsePath }
31
- : {}),
32
- }, effort),
33
- };
34
- }
35
- function normalizeTellFence(tellIds) {
36
- return [...new Set(tellIds)].sort();
37
- }
38
- function errorDetail(error) {
39
- return error instanceof Error ? error.message : String(error);
40
- }
41
- function nonReservedRunnerKillFacts(facts) {
42
- const { state: _state, killIntentSeq: _killIntentSeq, killedAt: _killedAt, ...rest } = facts;
43
- return rest;
44
- }
45
- function readOutcomeState(state) {
46
- if (state.status === "fulfilled") {
47
- return { status: "fulfilled", execution: state.execution };
48
- }
49
- if (state.status === "rejected") {
50
- return { status: "rejected", error: state.error };
51
- }
52
- return { status: "pending" };
53
- }
54
- function acquireRunnerLockOrObserveDuplicate(projectionDirectory) {
55
- try {
56
- return acquireRunnerLease(projectionRunnerLeasePath(projectionDirectory));
57
- }
58
- catch (error) {
59
- if (observeRunnerLease(projectionRunnerLeasePath(projectionDirectory)).state === "held") {
60
- return undefined;
61
- }
62
- throw error;
63
- }
64
- }
65
- function observeAbandoned(promise) {
66
- void promise.then(() => { }, () => { });
67
- }
68
- /**
69
- * Own one exact generation from kernel-lock acquisition through its terminal
70
- * transaction. Provider execution is injected so this actor never depends on
71
- * harness, catalog, renderer, or mailbox storage details.
72
- */
73
- export async function runProjectionGeneration(input) {
74
- const now = input.now ?? Date.now;
75
- const store = openProjectionGenerationStore(input.projectionDirectory);
76
- let runnerLock;
77
- let adopted = false;
78
- let settled = false;
79
- let tellObserver;
80
- let doorbell;
81
- let graceTimer;
82
- let handle;
83
- let gracefulAbortInvoked = false;
84
- let forceAbortInvoked = false;
85
- let sawKillIntent = false;
86
- let sawInterruptIntent = false;
87
- let wakeAfterLockRelease = false;
88
- let pullStopIntent;
89
- let notifyMainWait;
90
- const commitTerminal = (stage) => {
91
- if (!runnerLock)
92
- throw new Error("runner lease is not held");
93
- const close = beginConnectionBoundRunnerClose(store.connectionForRunnerClose(), runnerLock);
94
- try {
95
- const transition = stage();
96
- if (transition.status !== "committed") {
97
- close.rollback();
98
- return transition;
99
- }
100
- close.commit();
101
- runnerLock = undefined;
102
- return transition;
103
- }
104
- catch (error) {
105
- if (close.leaseOwnership === "retained")
106
- close.rollback();
107
- else
108
- runnerLock = undefined;
109
- throw error;
110
- }
111
- };
112
- const clearGraceTimer = () => {
113
- if (graceTimer === undefined)
114
- return;
115
- clearTimeout(graceTimer);
116
- graceTimer = undefined;
117
- };
118
- try {
119
- runnerLock = input.runnerLock
120
- ?? acquireRunnerLockOrObserveDuplicate(input.projectionDirectory);
121
- if (!runnerLock)
122
- return { status: "duplicate" };
123
- tellObserver = openProjectionTellObserver(input.projectionDirectory);
124
- // Establish the version fence before the listener becomes reachable. The
125
- // forced pull below still sees intent committed before listener startup.
126
- tellObserver.hasDataVersionChanged();
127
- pullStopIntent = (force = false) => {
128
- try {
129
- if (!force && !tellObserver.hasDataVersionChanged())
130
- return undefined;
131
- const live = store.readCurrentGeneration();
132
- if (live?.launch.executionId !== input.executionId || live?.verdict)
133
- return live;
134
- sawKillIntent = live.killIntent !== undefined;
135
- sawInterruptIntent = live.interruptIntent !== undefined;
136
- if (!sawKillIntent && !sawInterruptIntent)
137
- return live;
138
- if (gracefulAbortInvoked || !handle)
139
- return live;
140
- gracefulAbortInvoked = true;
141
- void handle.abort("graceful").catch(() => {
142
- // A failed native stop does not alter durable intent truth.
143
- });
144
- return live;
145
- }
146
- catch {
147
- // Observation failure is unknown, never evidence about the provider.
148
- return undefined;
149
- }
150
- };
151
- doorbell = await openProjectionGenerationDoorbell({
152
- identity: store.readIdentity(),
153
- executionId: input.executionId,
154
- onRing: () => {
155
- pullStopIntent?.(true);
156
- notifyMainWait?.();
157
- },
158
- });
159
- // This is the one baseline heart pull after listener registration. It
160
- // covers intent committed while the listener did not yet exist.
161
- const initial = pullStopIntent(true);
162
- if (initial?.launch.executionId !== input.executionId
163
- || initial.adoption
164
- || initial.verdict) {
165
- return { status: "rejected" };
166
- }
167
- const adoption = store.adoptionIfCurrent({
168
- executionId: input.executionId,
169
- facts: { adoptedAt: new Date(now()).toISOString() },
170
- });
171
- if (adoption.status !== "committed")
172
- return { status: "rejected" };
173
- adopted = true;
174
- let current = store.readCurrentGeneration();
175
- if (current?.launch.executionId !== input.executionId) {
176
- throw new Error("adopted generation stopped being current");
177
- }
178
- // Adoption is the provider-admission boundary. A kill that committed first
179
- // settles without constructing a provider execution.
180
- if (current.killIntent) {
181
- const killed = commitTerminal(() => store.runnerKilledIfRequested({
182
- executionId: input.executionId,
183
- terminalAt: new Date(now()).toISOString(),
184
- }));
185
- if (killed.status !== "committed")
186
- return { status: "rejected" };
187
- settled = true;
188
- return { status: "completed" };
189
- }
190
- const prepared = await input.prepareExecution(current.launch);
191
- current = store.readCurrentGeneration();
192
- if (current?.launch.executionId !== input.executionId) {
193
- await prepared.dispose();
194
- throw new Error("prepared generation stopped being current");
195
- }
196
- if (current.killIntent) {
197
- await prepared.dispose();
198
- const killed = commitTerminal(() => store.runnerKilledIfRequested({
199
- executionId: input.executionId,
200
- terminalAt: new Date(now()).toISOString(),
201
- }));
202
- if (killed.status !== "committed")
203
- return { status: "rejected" };
204
- settled = true;
205
- return { status: "completed" };
206
- }
207
- handle = prepared.start();
208
- const settleInterrupted = (facts = {}) => {
209
- pullStopIntent?.(true);
210
- const transition = commitTerminal(() => store.runnerInterruptedIfRequested({
211
- executionId: input.executionId,
212
- facts,
213
- terminalAt: new Date(now()).toISOString(),
214
- }));
215
- if (transition.status !== "committed")
216
- return { status: "rejected" };
217
- settled = true;
218
- wakeAfterLockRelease = true;
219
- return { status: "completed" };
220
- };
221
- const settleRunnerOutcome = (execution) => {
222
- pullStopIntent?.(true);
223
- const transition = commitTerminal(() => store.runnerVerdictIfOpen({
224
- executionId: input.executionId,
225
- verdict: execution.verdict,
226
- facts: execution.facts,
227
- terminalAt: new Date(now()).toISOString(),
228
- }));
229
- if (transition.status !== "committed")
230
- return { status: "rejected" };
231
- settled = true;
232
- if (transition.records[0]?.facts.state === "interrupted") {
233
- wakeAfterLockRelease = true;
234
- }
235
- return { status: "completed" };
236
- };
237
- const observeStopBoundary = () => { pullStopIntent?.(); };
238
- // Mutable box so async settlement is readable without control-flow narrowing traps.
239
- const outcomeBox = { status: "pending" };
240
- let resolveActivity;
241
- const activityChanged = () => new Promise((resolve) => {
242
- resolveActivity = resolve;
243
- });
244
- const bumpActivity = () => {
245
- const resolve = resolveActivity;
246
- resolveActivity = undefined;
247
- resolve?.();
248
- };
249
- notifyMainWait = bumpActivity;
250
- const outcomeWatch = handle.outcome.then((execution) => {
251
- outcomeBox.status = "fulfilled";
252
- outcomeBox.execution = execution;
253
- observeStopBoundary();
254
- bumpActivity();
255
- }, (error) => {
256
- outcomeBox.status = "rejected";
257
- outcomeBox.error = error;
258
- observeStopBoundary();
259
- bumpActivity();
260
- });
261
- // Always rejection-observe so abandon paths never surface unhandled rejections.
262
- observeAbandoned(outcomeWatch);
263
- const eventDrainState = { closed: false };
264
- const eventDrain = (async () => {
265
- try {
266
- for await (const _event of handle.events) {
267
- if (forceAbortInvoked)
268
- return;
269
- observeStopBoundary();
270
- bumpActivity();
271
- }
272
- }
273
- catch {
274
- // Public event delivery is observation-only; outcome owns terminal truth.
275
- }
276
- finally {
277
- eventDrainState.closed = true;
278
- bumpActivity();
279
- }
280
- })();
281
- observeAbandoned(eventDrain);
282
- while (outcomeBox.status === "pending" && !sawKillIntent && !sawInterruptIntent) {
283
- const wakeSources = [outcomeWatch, activityChanged()];
284
- if (!eventDrainState.closed)
285
- wakeSources.push(eventDrain);
286
- await Promise.race(wakeSources);
287
- observeStopBoundary();
288
- }
289
- if (sawKillIntent || sawInterruptIntent) {
290
- // Grace race: outcome settlement inside the window is stop proof.
291
- if (outcomeBox.status === "pending") {
292
- const graceExpired = new Promise((resolve) => {
293
- graceTimer = setTimeout(() => {
294
- graceTimer = undefined;
295
- resolve("timeout");
296
- }, KILL_GRACE_MS);
297
- });
298
- await Promise.race([
299
- outcomeWatch.then(() => "outcome"),
300
- graceExpired,
301
- ]);
302
- clearGraceTimer();
303
- }
304
- const killOutcome = readOutcomeState(outcomeBox);
305
- if (killOutcome.status !== "pending") {
306
- const facts = killOutcome.status === "fulfilled"
307
- ? nonReservedRunnerKillFacts(killOutcome.execution.facts)
308
- : undefined;
309
- if (sawInterruptIntent && killOutcome.status === "fulfilled" && killOutcome.execution.verdict === "interrupted") {
310
- return settleInterrupted(facts);
311
- }
312
- if (sawInterruptIntent) {
313
- if (killOutcome.status === "fulfilled")
314
- return settleRunnerOutcome(killOutcome.execution);
315
- if (killOutcome.status === "rejected")
316
- throw killOutcome.error;
317
- throw new Error("interrupt outcome did not establish provider stop");
318
- }
319
- const killed = commitTerminal(() => store.runnerKilledIfRequested({
320
- executionId: input.executionId,
321
- ...(facts && Object.keys(facts).length > 0 ? { facts } : {}),
322
- terminalAt: new Date(now()).toISOString(),
323
- }));
324
- if (killed.status !== "committed")
325
- return { status: "rejected" };
326
- settled = true;
327
- return { status: "completed" };
328
- }
329
- // Force escalation: resolution is stop proof; rejection is kill failure.
330
- forceAbortInvoked = true;
331
- try {
332
- await handle.abort("force");
333
- if (sawInterruptIntent)
334
- return settleInterrupted();
335
- const killed = commitTerminal(() => store.runnerKilledIfRequested({
336
- executionId: input.executionId,
337
- terminalAt: new Date(now()).toISOString(),
338
- }));
339
- if (killed.status !== "committed")
340
- return { status: "rejected" };
341
- settled = true;
342
- return { status: "completed" };
343
- }
344
- catch (error) {
345
- const failed = commitTerminal(() => store.verdictIfOpen({
346
- executionId: input.executionId,
347
- verdict: "failed",
348
- facts: {
349
- ...(sawKillIntent ? { operatorAction: "kill" } : {}),
350
- diagnostic: "escalation-failed",
351
- detail: errorDetail(error),
352
- failedAt: new Date(now()).toISOString(),
353
- error: {
354
- version: OUTCOME_ERROR_VERSION,
355
- code: "SUBAGENT_EXEC_ERROR",
356
- message: errorDetail(error),
357
- timeoutMs: null,
358
- exitCode: null,
359
- },
360
- },
361
- }));
362
- // Durably completed after the failed verdict; outer catch must not overwrite.
363
- settled = true;
364
- if (failed.status !== "committed")
365
- return { status: "rejected" };
366
- return { status: "completed" };
367
- }
368
- }
369
- // No kill intent: ordinary outcome, then pending-tell handoff or verdict.
370
- await outcomeWatch;
371
- const ordinaryOutcome = readOutcomeState(outcomeBox);
372
- if (ordinaryOutcome.status === "rejected") {
373
- throw ordinaryOutcome.error;
374
- }
375
- if (ordinaryOutcome.status !== "fulfilled") {
376
- throw new Error("projection generation outcome did not settle");
377
- }
378
- const execution = ordinaryOutcome.execution;
379
- const pending = execution.verdict === "completed"
380
- ? input.snapshotPendingTells()
381
- : { tellIds: [] };
382
- const tellFence = normalizeTellFence(pending.tellIds);
383
- if (tellFence.length > 0) {
384
- const successorExecutionId = createProjectionExecutionId(now());
385
- const successorFacts = successorLaunchFacts(current.launch, execution.facts, pending.effort, now);
386
- let transitionReason;
387
- if (!input.startSuccessor)
388
- return { status: "rejected" };
389
- try {
390
- const successorOwnership = runnerLock;
391
- await input.startSuccessor(successorExecutionId, () => {
392
- pullStopIntent?.(true);
393
- const transition = store.handoff({
394
- executionId: input.executionId,
395
- completionFacts: execution.facts,
396
- successorExecutionId,
397
- successorFacts,
398
- tellFence,
399
- });
400
- if (transition.status !== "committed") {
401
- transitionReason = transition.reason;
402
- return false;
403
- }
404
- settled = true;
405
- return true;
406
- }, successorOwnership);
407
- runnerLock = undefined;
408
- }
409
- catch {
410
- if (settled)
411
- return { status: "handed-off", successorExecutionId };
412
- return settleRunnerOutcome(execution);
413
- }
414
- if (!settled) {
415
- if (transitionReason !== "kill-requested" && transitionReason !== "interrupt-requested") {
416
- return { status: "rejected" };
417
- }
418
- }
419
- else {
420
- return { status: "handed-off", successorExecutionId };
421
- }
422
- }
423
- return settleRunnerOutcome(execution);
424
- }
425
- catch (error) {
426
- if (adopted && !settled && runnerLock) {
427
- let cleanupError;
428
- if (handle) {
429
- try {
430
- await handle.abort("force");
431
- }
432
- catch (failure) {
433
- cleanupError = failure;
434
- }
435
- }
436
- pullStopIntent?.(true);
437
- const live = store.readCurrentGeneration();
438
- const detail = error instanceof Error ? error.message : String(error);
439
- const failed = commitTerminal(() => store.runnerVerdictIfOpen({
440
- executionId: input.executionId,
441
- verdict: "failed",
442
- facts: {
443
- failedAt: new Date(now()).toISOString(),
444
- detail,
445
- ...(cleanupError ? {
446
- ...(live?.killIntent ? { operatorAction: "kill" } : {}),
447
- diagnostic: "cleanup-escalation-failed",
448
- cleanupDetail: errorDetail(cleanupError),
449
- } : {}),
450
- error: {
451
- version: OUTCOME_ERROR_VERSION,
452
- code: "SUBAGENT_EXEC_ERROR",
453
- message: detail,
454
- timeoutMs: null,
455
- exitCode: null,
456
- },
457
- },
458
- terminalAt: new Date(now()).toISOString(),
459
- }));
460
- settled = failed.status === "committed";
461
- }
462
- throw error;
463
- }
464
- finally {
465
- clearGraceTimer();
466
- try {
467
- tellObserver?.close();
468
- }
469
- catch {
470
- // Observer cleanup cannot reopen life or product authority.
471
- }
472
- try {
473
- await doorbell?.close();
474
- }
475
- finally {
476
- try {
477
- runnerLock?.close();
478
- }
479
- finally {
480
- store.close();
481
- }
482
- }
483
- if (wakeAfterLockRelease) {
484
- void input.wakeAfterInterrupt?.().catch(() => {
485
- // A later tell retries the ordinary wake path after its durable failure.
486
- });
487
- }
488
- }
489
- }
@@ -1,46 +0,0 @@
1
- import { prepareProjectionGenerationExecution } from "./projection-generation-execution.js";
2
- import { receiveDetachedLease, } from "../../run-control/index.js";
3
- import { runProjectionGeneration } from "./projection-generation-runner.js";
4
- import { startProjectionGeneration } from "./projection-generation-launcher.js";
5
- import { snapshotPendingTells } from "./projection-generation-continuation.js";
6
- import { persistInterruptWakeFailure, tellProjection } from "../projection-wake.js";
7
- import { readProjectionIdentity } from "../projection-identity.js";
8
- import * as path from "node:path";
9
- import { projectionRunnerLeasePath } from "./projection-generation-identity.js";
10
- export async function wakeProjectionAfterInterrupt(projectionDirectory, wake = tellProjection) {
11
- const pact = readProjectionIdentity(projectionDirectory);
12
- try {
13
- await wake(projectionDirectory, `${pact.akuma}/${path.basename(projectionDirectory)}`, undefined);
14
- }
15
- catch (error) {
16
- persistInterruptWakeFailure(projectionDirectory, error);
17
- throw error;
18
- }
19
- }
20
- export async function runProjectionGenerationRuntime(projectionDirectory, executionId) {
21
- const transfer = await receiveDetachedLease({
22
- coordinate: executionId,
23
- leasePath: projectionRunnerLeasePath(projectionDirectory),
24
- });
25
- if (transfer.status === "rejected")
26
- return;
27
- try {
28
- await runProjectionGeneration({
29
- projectionDirectory,
30
- executionId,
31
- runnerLock: transfer.lease,
32
- prepareExecution: (launch) => prepareProjectionGenerationExecution(projectionDirectory, launch),
33
- snapshotPendingTells: () => snapshotPendingTells(projectionDirectory),
34
- startSuccessor: async (successorExecutionId, commitLaunch, launchOwnership) => {
35
- const started = await startProjectionGeneration(projectionDirectory, successorExecutionId, {
36
- commitLaunch,
37
- launchOwnership,
38
- });
39
- if (started.status === "failed")
40
- throw new Error(started.detail);
41
- },
42
- wakeAfterInterrupt: () => wakeProjectionAfterInterrupt(projectionDirectory),
43
- });
44
- }
45
- finally { /* execution owns and closes the transferred lease */ }
46
- }
@@ -1,68 +0,0 @@
1
- import { GENERATION_VERDICT_STATES, } from "./model.js";
2
- function recordOfKind(record, kind) {
3
- return record.kind === kind ? record : undefined;
4
- }
5
- /** Select the newest generation by its Projection ledger sequence. */
6
- export function selectCurrentGeneration(records) {
7
- let launch;
8
- for (const record of records)
9
- launch = recordOfKind(record, "launch") ?? launch;
10
- if (!launch)
11
- return null;
12
- let adoption;
13
- let killIntent;
14
- let interruptIntent;
15
- let verdict;
16
- for (const record of records) {
17
- if (record.seq <= launch.seq || record.executionId !== launch.executionId)
18
- continue;
19
- adoption ??= recordOfKind(record, "adoption");
20
- killIntent ??= recordOfKind(record, "kill-intent");
21
- interruptIntent ??= recordOfKind(record, "interrupt-intent");
22
- verdict ??= recordOfKind(record, "verdict");
23
- }
24
- return { launch, ...(adoption ? { adoption } : {}), ...(killIntent ? { killIntent } : {}), ...(interruptIntent ? { interruptIntent } : {}), ...(verdict ? { verdict } : {}) };
25
- }
26
- function verdictState(record) {
27
- const state = record?.facts.state;
28
- return typeof state === "string" && GENERATION_VERDICT_STATES.includes(state)
29
- ? state
30
- : undefined;
31
- }
32
- function phaseForVerdict(state) {
33
- switch (state) {
34
- case "completed": return "done";
35
- case "dismissed": return "dismissed";
36
- case "interrupted": return "done";
37
- case "killed": return "killed";
38
- case "lost-runner": return "lost";
39
- case "failed":
40
- case "launch-failed": return "failed";
41
- }
42
- }
43
- export function deriveProjectionLife(input) {
44
- const chain = selectCurrentGeneration(input.records);
45
- if (!chain)
46
- return { phase: "quiescent" };
47
- const executionId = chain.launch.executionId;
48
- if (chain.verdict) {
49
- const state = verdictState(chain.verdict);
50
- return state
51
- ? { phase: phaseForVerdict(state), executionId, verdict: state }
52
- : { phase: "unknown", executionId, diagnostic: "current generation has an invalid verdict" };
53
- }
54
- if (!chain.adoption) {
55
- switch (input.runnerLease) {
56
- case "held": return { phase: "minting", executionId };
57
- case "released": return { phase: "lost", executionId, diagnostic: "startup owner died before adoption" };
58
- case "unknown":
59
- case undefined: return { phase: "unknown", executionId, diagnostic: "runner lease could not be determined" };
60
- }
61
- }
62
- switch (input.runnerLease) {
63
- case "held": return { phase: "active", executionId };
64
- case "released": return { phase: "lost", executionId };
65
- case "unknown":
66
- case undefined: return { phase: "unknown", executionId, diagnostic: "runner lease could not be determined" };
67
- }
68
- }