@astrosheep/keiyaku 2.9.12 → 4.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (655) hide show
  1. package/README.md +10 -126
  2. package/build/integrations/marketplace/.agents/plugins/marketplace.json +12 -0
  3. package/build/integrations/marketplace/.claude-plugin/marketplace.json +5 -0
  4. package/build/integrations/marketplace/plugins/keiyaku/.claude-plugin/plugin.json +7 -0
  5. package/build/integrations/marketplace/plugins/keiyaku/.codex-plugin/plugin.json +18 -0
  6. package/build/integrations/marketplace/plugins/keiyaku/opencode.js +16 -0
  7. package/build/integrations/marketplace/plugins/keiyaku/package.json +8 -0
  8. package/build/integrations/marketplace/plugins/keiyaku/skills/keiyaku/SKILL.md +34 -0
  9. package/build/integrations/marketplace/plugins/keiyaku/skills/keiyaku-akuma/SKILL.md +50 -0
  10. package/build/integrations/marketplace/plugins/keiyaku/skills/keiyaku-task/SKILL.md +62 -0
  11. package/build/integrations/marketplace/plugins/keiyaku/skills/keiyaku-workflow/SKILL.md +72 -0
  12. package/build/src/akuma/activity.d.ts +66 -0
  13. package/build/src/akuma/activity.js +139 -0
  14. package/build/src/akuma/akuma.d.ts +116 -0
  15. package/build/src/akuma/akuma.js +382 -0
  16. package/build/src/akuma/archetype.d.ts +31 -0
  17. package/build/src/akuma/archetype.js +188 -0
  18. package/build/src/akuma/body.d.ts +20 -0
  19. package/build/src/akuma/body.js +305 -0
  20. package/build/src/akuma/heart/facts.d.ts +150 -0
  21. package/build/src/akuma/heart/facts.js +9 -0
  22. package/build/src/akuma/heart/index.d.ts +78 -0
  23. package/build/src/akuma/heart/index.js +361 -0
  24. package/build/src/akuma/heart/rows.d.ts +189 -0
  25. package/build/src/akuma/heart/rows.js +319 -0
  26. package/build/src/akuma/heart/schema.d.ts +5 -0
  27. package/build/src/akuma/heart/schema.js +113 -0
  28. package/build/src/akuma/identity.d.ts +46 -0
  29. package/build/src/akuma/identity.js +89 -0
  30. package/build/src/akuma/index.d.ts +7 -0
  31. package/build/src/akuma/index.js +3 -0
  32. package/build/src/akuma/provider.d.ts +123 -0
  33. package/build/src/akuma/provider.js +235 -0
  34. package/build/src/akuma/providers/claude.d.ts +84 -0
  35. package/build/src/akuma/providers/claude.js +305 -0
  36. package/build/src/akuma/providers/codex-app-server/events.d.ts +110 -0
  37. package/build/src/akuma/providers/codex-app-server/events.js +337 -0
  38. package/build/src/akuma/providers/codex-app-server/index.d.ts +27 -0
  39. package/build/src/akuma/providers/codex-app-server/index.js +162 -0
  40. package/build/src/akuma/providers/index.d.ts +4 -0
  41. package/build/src/akuma/providers/index.js +71 -0
  42. package/build/src/akuma/publication.d.ts +10 -0
  43. package/build/src/akuma/publication.js +107 -0
  44. package/build/src/akuma/requests.d.ts +46 -0
  45. package/build/src/akuma/requests.js +388 -0
  46. package/build/src/alias/index.d.ts +17 -0
  47. package/build/src/alias/index.js +104 -0
  48. package/build/src/body/amend.d.ts +2 -0
  49. package/build/src/body/amend.js +289 -0
  50. package/build/src/body/arc.d.ts +2 -0
  51. package/build/src/body/arc.js +54 -0
  52. package/build/src/body/decode.d.ts +4 -0
  53. package/build/src/body/decode.js +146 -0
  54. package/build/src/body/keys.d.ts +4 -0
  55. package/build/src/body/keys.js +11 -0
  56. package/build/src/body/region.d.ts +6 -0
  57. package/build/src/body/region.js +139 -0
  58. package/build/src/body/render.d.ts +4 -0
  59. package/build/src/body/render.js +73 -0
  60. package/build/src/body/shape.d.ts +29 -0
  61. package/build/src/body/shape.js +16 -0
  62. package/build/src/body/types.d.ts +28 -0
  63. package/build/src/body/verification.d.ts +7 -0
  64. package/build/src/body/verification.js +25 -0
  65. package/build/src/cli/accepted.d.ts +16 -0
  66. package/build/src/cli/accepted.js +65 -0
  67. package/build/src/cli/actor.d.ts +8 -0
  68. package/build/src/cli/actor.js +11 -0
  69. package/build/src/cli/commands/akuma-invoke.d.ts +53 -0
  70. package/build/src/cli/commands/akuma-invoke.js +68 -0
  71. package/build/src/cli/commands/akuma.d.ts +42 -0
  72. package/build/src/cli/commands/akuma.js +224 -0
  73. package/build/src/cli/commands/amend.d.ts +13 -0
  74. package/build/src/cli/commands/amend.js +13 -0
  75. package/build/src/cli/commands/bind.d.ts +12 -0
  76. package/build/src/cli/commands/bind.js +17 -0
  77. package/build/src/cli/commands/install.d.ts +25 -0
  78. package/build/src/cli/commands/install.js +103 -0
  79. package/build/src/cli/commands/task-invoke.d.ts +9 -0
  80. package/build/src/cli/commands/task-invoke.js +92 -0
  81. package/build/src/cli/commands/task.d.ts +16 -0
  82. package/build/src/cli/commands/task.js +144 -0
  83. package/build/src/cli/index.d.ts +2 -0
  84. package/build/src/cli/index.js +3 -0
  85. package/build/src/cli/invoke.d.ts +17 -0
  86. package/build/src/cli/invoke.js +265 -0
  87. package/build/src/cli/main.d.ts +1 -0
  88. package/build/src/cli/main.js +79 -0
  89. package/build/src/cli/parse.d.ts +210 -0
  90. package/build/src/cli/parse.js +375 -0
  91. package/build/src/cli/render/akuma-tool.d.ts +11 -0
  92. package/build/src/cli/render/akuma-tool.js +68 -0
  93. package/build/src/cli/render/akuma.d.ts +6 -0
  94. package/build/src/cli/render/akuma.js +254 -0
  95. package/build/src/cli/render/board.d.ts +2 -0
  96. package/build/src/cli/render/board.js +4 -0
  97. package/build/src/cli/render/contract.d.ts +4 -0
  98. package/build/src/cli/render/contract.js +69 -0
  99. package/build/src/cli/render/kanshi.d.ts +3 -0
  100. package/build/src/cli/render/kanshi.js +204 -0
  101. package/build/src/cli/render/refusal.d.ts +2 -0
  102. package/build/src/cli/render/refusal.js +4 -0
  103. package/build/src/cli/render/settings.d.ts +3 -0
  104. package/build/src/cli/render/settings.js +30 -0
  105. package/build/src/cli/render/task.d.ts +6 -0
  106. package/build/src/cli/render/task.js +105 -0
  107. package/build/src/cli/render/terminal.d.ts +10 -0
  108. package/build/src/cli/render/terminal.js +76 -0
  109. package/build/src/cli/render/text.d.ts +3 -0
  110. package/build/src/cli/render/text.js +15 -0
  111. package/build/src/cli/result.d.ts +55 -0
  112. package/build/src/cli/selectors.d.ts +9 -0
  113. package/build/src/cli/selectors.js +66 -0
  114. package/build/src/cli/usage.d.ts +6 -0
  115. package/build/src/cli/usage.js +19 -0
  116. package/build/src/context-root.d.ts +4 -0
  117. package/build/src/context-root.js +15 -0
  118. package/build/src/coordination/durable-file.d.ts +1 -0
  119. package/build/src/coordination/durable-file.js +36 -0
  120. package/build/src/coordination/sqlite-transaction-lock.d.ts +14 -0
  121. package/build/src/coordination/sqlite-transaction-lock.js +119 -0
  122. package/build/src/core/decide.d.ts +45 -0
  123. package/build/src/core/facts/codec.d.ts +3 -0
  124. package/build/src/core/facts/codec.js +258 -0
  125. package/build/src/core/facts/eligibility.d.ts +16 -0
  126. package/build/src/core/facts/eligibility.js +75 -0
  127. package/build/src/core/facts/errors.d.ts +3 -0
  128. package/build/src/core/facts/errors.js +6 -0
  129. package/build/src/core/facts/fold.d.ts +2 -0
  130. package/build/src/core/facts/fold.js +97 -0
  131. package/build/src/core/facts/gate.d.ts +24 -0
  132. package/build/src/core/facts/gate.js +52 -0
  133. package/build/src/core/facts/observation.d.ts +12 -0
  134. package/build/src/core/facts/observation.js +23 -0
  135. package/build/src/core/facts/offer.d.ts +21 -0
  136. package/build/src/core/facts/types.d.ts +130 -0
  137. package/build/src/core/facts/types.js +66 -0
  138. package/build/src/core/subject.d.ts +21 -0
  139. package/build/src/core/subject.js +89 -0
  140. package/build/src/core/verbs/abandon.d.ts +13 -0
  141. package/build/src/core/verbs/abandon.js +17 -0
  142. package/build/src/core/verbs/amend.d.ts +14 -0
  143. package/build/src/core/verbs/amend.js +56 -0
  144. package/build/src/core/verbs/arc.d.ts +13 -0
  145. package/build/src/core/verbs/arc.js +25 -0
  146. package/build/src/core/verbs/attestation.d.ts +13 -0
  147. package/build/src/core/verbs/attestation.js +21 -0
  148. package/build/src/core/verbs/bind.d.ts +13 -0
  149. package/build/src/core/verbs/bind.js +40 -0
  150. package/build/src/core/verbs/deliver.d.ts +13 -0
  151. package/build/src/core/verbs/deliver.js +26 -0
  152. package/build/src/core/verbs/placement.d.ts +13 -0
  153. package/build/src/core/verbs/placement.js +42 -0
  154. package/build/src/dispatch/index.d.ts +31 -0
  155. package/build/src/dispatch/index.js +159 -0
  156. package/build/src/git/admission.d.ts +18 -0
  157. package/build/src/git/admission.js +116 -0
  158. package/build/src/git/delivery.d.ts +20 -0
  159. package/build/src/git/delivery.js +109 -0
  160. package/build/src/git/hooks.d.ts +34 -0
  161. package/build/src/git/hooks.js +258 -0
  162. package/build/src/git/identity.d.ts +13 -0
  163. package/build/src/git/identity.js +28 -0
  164. package/build/src/git/observe.d.ts +38 -0
  165. package/build/src/git/observe.js +227 -0
  166. package/build/src/git/reconcile.d.ts +49 -0
  167. package/build/src/git/reconcile.js +223 -0
  168. package/build/src/git/repository.d.ts +80 -0
  169. package/build/src/git/repository.js +456 -0
  170. package/build/src/git/tree.d.ts +34 -0
  171. package/build/src/git/tree.js +112 -0
  172. package/build/src/git/verification.d.ts +14 -0
  173. package/build/src/git/verification.js +56 -0
  174. package/build/src/identity/coordinates.d.ts +9 -0
  175. package/build/src/identity/coordinates.js +20 -0
  176. package/build/src/identity/normalize.d.ts +8 -0
  177. package/build/src/identity/normalize.js +45 -0
  178. package/build/src/identity/selector.d.ts +6 -0
  179. package/build/src/identity/selector.js +7 -0
  180. package/build/src/index.d.ts +4 -0
  181. package/build/src/index.js +2 -0
  182. package/build/src/kanshi/index.d.ts +5 -0
  183. package/build/src/kanshi/index.js +2 -0
  184. package/build/src/kanshi/read.d.ts +5 -0
  185. package/build/src/kanshi/read.js +100 -0
  186. package/build/src/kanshi/report.d.ts +35 -0
  187. package/build/src/kanshi/select.d.ts +8 -0
  188. package/build/src/kanshi/select.js +21 -0
  189. package/build/src/library/akuma-creation.d.ts +79 -0
  190. package/build/src/library/akuma-creation.js +151 -0
  191. package/build/src/library/configuration.d.ts +26 -0
  192. package/build/src/library/configuration.js +100 -0
  193. package/build/src/library/contract.d.ts +145 -0
  194. package/build/src/library/contract.js +325 -0
  195. package/build/src/library/input.d.ts +13 -0
  196. package/build/src/library/input.js +82 -0
  197. package/build/src/library/keiyaku.d.ts +28 -0
  198. package/build/src/library/keiyaku.js +16 -0
  199. package/build/src/library/region.d.ts +17 -0
  200. package/build/src/library/region.js +30 -0
  201. package/build/src/library/repo.d.ts +33 -0
  202. package/build/src/library/repo.js +61 -0
  203. package/build/src/markdown/diff.d.ts +1 -0
  204. package/build/src/markdown/diff.js +4 -0
  205. package/build/src/markdown/lex.d.ts +3 -0
  206. package/build/src/markdown/lex.js +221 -0
  207. package/build/src/markdown/parse.d.ts +2 -0
  208. package/build/src/markdown/parse.js +221 -0
  209. package/build/src/markdown/query.d.ts +21 -0
  210. package/build/src/markdown/query.js +51 -0
  211. package/build/src/markdown/types.d.ts +118 -0
  212. package/build/src/markdown/types.js +6 -0
  213. package/build/src/protocol/attempt.d.ts +36 -0
  214. package/build/src/protocol/attempt.js +119 -0
  215. package/build/src/protocol/bind.d.ts +25 -0
  216. package/build/src/protocol/bind.js +62 -0
  217. package/build/src/protocol/intent.d.ts +52 -0
  218. package/build/src/protocol/intent.js +129 -0
  219. package/build/src/protocol/operations.d.ts +140 -0
  220. package/build/src/protocol/operations.js +373 -0
  221. package/build/src/protocol/outcome.d.ts +18 -0
  222. package/build/src/protocol/outcome.js +15 -0
  223. package/build/src/protocol/read/audit.d.ts +25 -0
  224. package/build/src/protocol/read/audit.js +39 -0
  225. package/build/src/protocol/read/documents.d.ts +8 -0
  226. package/build/src/protocol/read/documents.js +16 -0
  227. package/build/src/protocol/read/status.d.ts +38 -0
  228. package/build/src/protocol/read/status.js +47 -0
  229. package/build/src/protocol/run.d.ts +39 -0
  230. package/build/src/protocol/run.js +36 -0
  231. package/build/src/runtime/proc/line-rpc.d.ts +37 -0
  232. package/build/src/runtime/proc/line-rpc.js +124 -0
  233. package/build/src/runtime/proc/run.d.ts +54 -0
  234. package/build/src/runtime/proc/run.js +200 -0
  235. package/build/src/settings.d.ts +45 -0
  236. package/build/src/settings.js +99 -0
  237. package/build/src/settlement/holder.d.ts +15 -0
  238. package/build/src/settlement/holder.js +113 -0
  239. package/build/src/settlement/settle.d.ts +36 -0
  240. package/build/src/settlement/settle.js +91 -0
  241. package/build/src/task/board.d.ts +65 -0
  242. package/build/src/task/board.js +155 -0
  243. package/build/src/task/compose.d.ts +25 -0
  244. package/build/src/task/compose.js +232 -0
  245. package/build/src/task/context.d.ts +4 -0
  246. package/build/src/task/context.js +56 -0
  247. package/build/src/task/document.d.ts +24 -0
  248. package/build/src/task/document.js +118 -0
  249. package/build/src/task/identity.d.ts +12 -0
  250. package/build/src/task/identity.js +47 -0
  251. package/build/src/task/index.d.ts +90 -0
  252. package/build/src/task/index.js +179 -0
  253. package/build/src/task/operations.d.ts +115 -0
  254. package/build/src/task/operations.js +194 -0
  255. package/build/src/task/store.d.ts +22 -0
  256. package/build/src/task/store.js +114 -0
  257. package/build/src/verification/declaration.d.ts +22 -0
  258. package/build/src/verification/declaration.js +14 -0
  259. package/build/src/verification/producer.d.ts +23 -0
  260. package/build/src/verification/producer.js +54 -0
  261. package/package.json +62 -44
  262. package/build/.tsbuildinfo +0 -1
  263. package/build/agents/call-terms.js +0 -31
  264. package/build/agents/harness/activity-values.js +0 -70
  265. package/build/agents/harness/control-types.js +0 -18
  266. package/build/agents/harness/event-channel.js +0 -213
  267. package/build/agents/harness/event-persistence.js +0 -220
  268. package/build/agents/harness/events.js +0 -48
  269. package/build/agents/harness/execution-handle.js +0 -172
  270. package/build/agents/harness/index.js +0 -11
  271. package/build/agents/harness/outcome-error.js +0 -81
  272. package/build/agents/harness/outcome.js +0 -220
  273. package/build/agents/harness/projection.js +0 -369
  274. package/build/agents/harness/provider-adapter.js +0 -58
  275. package/build/agents/harness/router.js +0 -30
  276. package/build/agents/harness/runtime.js +0 -85
  277. package/build/agents/harness/session.js +0 -15
  278. package/build/agents/launch-snapshot/model.js +0 -127
  279. package/build/agents/launch-snapshot/parse-helpers.js +0 -114
  280. package/build/agents/launch-snapshot/resolve.js +0 -46
  281. package/build/agents/opencode-sdk.js +0 -159
  282. package/build/agents/providers/claude-agent-sdk/adapter.js +0 -396
  283. package/build/agents/providers/claude-agent-sdk/events.js +0 -218
  284. package/build/agents/providers/claude-agent-sdk/registration.js +0 -225
  285. package/build/agents/providers/claude-agent-sdk/session-schema.js +0 -2
  286. package/build/agents/providers/claude-agent-sdk/session.js +0 -172
  287. package/build/agents/providers/codex-app-server/adapter.js +0 -387
  288. package/build/agents/providers/codex-app-server/events.js +0 -492
  289. package/build/agents/providers/codex-app-server/identity.js +0 -1
  290. package/build/agents/providers/codex-app-server/policy.js +0 -29
  291. package/build/agents/providers/codex-app-server/registration.js +0 -259
  292. package/build/agents/providers/codex-app-server/session-schema.js +0 -6
  293. package/build/agents/providers/codex-app-server/session.js +0 -273
  294. package/build/agents/providers/event-type-tail.js +0 -16
  295. package/build/agents/providers/opencode-sdk/adapter.js +0 -402
  296. package/build/agents/providers/opencode-sdk/events.js +0 -380
  297. package/build/agents/providers/opencode-sdk/registration.js +0 -146
  298. package/build/agents/providers/opencode-sdk/session-schema.js +0 -2
  299. package/build/agents/providers/opencode-sdk/session.js +0 -187
  300. package/build/agents/providers/pi/adapter.js +0 -285
  301. package/build/agents/providers/pi/checkpoint.js +0 -49
  302. package/build/agents/providers/pi/events.js +0 -285
  303. package/build/agents/providers/pi/registration.js +0 -160
  304. package/build/agents/providers/pi/session-schema.js +0 -6
  305. package/build/agents/providers/registration.js +0 -7
  306. package/build/agents/providers/registry.js +0 -76
  307. package/build/agents/selector.js +0 -120
  308. package/build/agents/session.js +0 -29
  309. package/build/agents/string-tail-buffer.js +0 -44
  310. package/build/agents/types.js +0 -30
  311. package/build/artifact-directories.js +0 -22
  312. package/build/cli/commands/akuma/akuma/handler.js +0 -4
  313. package/build/cli/commands/akuma/akuma/meta.js +0 -16
  314. package/build/cli/commands/akuma/catalog.js +0 -8
  315. package/build/cli/commands/akuma/list/handler.js +0 -15
  316. package/build/cli/commands/akuma/list/meta-ls.js +0 -9
  317. package/build/cli/commands/akuma/show/handler.js +0 -27
  318. package/build/cli/commands/akuma/show/meta.js +0 -8
  319. package/build/cli/commands/akuma.js +0 -181
  320. package/build/cli/commands/contract/amend/handler.js +0 -17
  321. package/build/cli/commands/contract/amend/meta.js +0 -12
  322. package/build/cli/commands/contract/arc/handler.js +0 -16
  323. package/build/cli/commands/contract/arc/meta.js +0 -26
  324. package/build/cli/commands/contract/audit/handler.js +0 -16
  325. package/build/cli/commands/contract/audit/meta.js +0 -16
  326. package/build/cli/commands/contract/bind/handler.js +0 -39
  327. package/build/cli/commands/contract/bind/meta.js +0 -96
  328. package/build/cli/commands/contract/catalog.js +0 -18
  329. package/build/cli/commands/contract/forfeit/handler.js +0 -17
  330. package/build/cli/commands/contract/forfeit/meta.js +0 -12
  331. package/build/cli/commands/contract/log/handler.js +0 -12
  332. package/build/cli/commands/contract/log/meta.js +0 -12
  333. package/build/cli/commands/contract/petition/handler.js +0 -63
  334. package/build/cli/commands/contract/petition/meta.js +0 -23
  335. package/build/cli/commands/contract/renew/handler.js +0 -24
  336. package/build/cli/commands/contract/renew/meta.js +0 -18
  337. package/build/cli/commands/metadata.js +0 -65
  338. package/build/cli/commands/projection/call/handler.js +0 -43
  339. package/build/cli/commands/projection/call/meta.js +0 -12
  340. package/build/cli/commands/projection/catalog.js +0 -16
  341. package/build/cli/commands/projection/history/handler.js +0 -21
  342. package/build/cli/commands/projection/history/meta.js +0 -9
  343. package/build/cli/commands/projection/kill/handler.js +0 -20
  344. package/build/cli/commands/projection/kill/meta.js +0 -11
  345. package/build/cli/commands/projection/revive/handler.js +0 -56
  346. package/build/cli/commands/projection/revive/meta.js +0 -12
  347. package/build/cli/commands/projection/shared.js +0 -27
  348. package/build/cli/commands/projection/status/handler.js +0 -26
  349. package/build/cli/commands/projection/status/meta.js +0 -9
  350. package/build/cli/commands/projection/tell/handler.js +0 -28
  351. package/build/cli/commands/projection/tell/meta.js +0 -12
  352. package/build/cli/commands/projection/wait/handler.js +0 -55
  353. package/build/cli/commands/projection/wait/meta.js +0 -16
  354. package/build/cli/commands/registry.js +0 -48
  355. package/build/cli/commands/shared.js +0 -74
  356. package/build/cli/commands/skills/catalog.js +0 -6
  357. package/build/cli/commands/skills/install/handler.js +0 -7
  358. package/build/cli/commands/skills/install/meta.js +0 -9
  359. package/build/cli/commands/skills/skills/handler.js +0 -4
  360. package/build/cli/commands/skills/skills/meta.js +0 -10
  361. package/build/cli/commands/system/catalog.js +0 -8
  362. package/build/cli/commands/system/completion/handler.js +0 -10
  363. package/build/cli/commands/system/completion/meta.js +0 -9
  364. package/build/cli/commands/system/dump-env/handler.js +0 -3
  365. package/build/cli/commands/system/dump-env/meta.js +0 -10
  366. package/build/cli/commands/system/guide/handler.js +0 -4
  367. package/build/cli/commands/system/guide/meta.js +0 -9
  368. package/build/cli/commands/task/add/handler.js +0 -22
  369. package/build/cli/commands/task/add/meta.js +0 -19
  370. package/build/cli/commands/task/catalog.js +0 -30
  371. package/build/cli/commands/task/compose/handler.js +0 -18
  372. package/build/cli/commands/task/compose/meta.js +0 -10
  373. package/build/cli/commands/task/doctor/handler.js +0 -4
  374. package/build/cli/commands/task/doctor/meta.js +0 -8
  375. package/build/cli/commands/task/done/handler.js +0 -10
  376. package/build/cli/commands/task/done/meta.js +0 -8
  377. package/build/cli/commands/task/drop/handler.js +0 -3
  378. package/build/cli/commands/task/drop/meta.js +0 -8
  379. package/build/cli/commands/task/hold/handler.js +0 -3
  380. package/build/cli/commands/task/hold/meta.js +0 -8
  381. package/build/cli/commands/task/log/handler.js +0 -12
  382. package/build/cli/commands/task/log/meta.js +0 -8
  383. package/build/cli/commands/task/ls/handler.js +0 -17
  384. package/build/cli/commands/task/ls/meta.js +0 -8
  385. package/build/cli/commands/task/resume/handler.js +0 -3
  386. package/build/cli/commands/task/resume/meta.js +0 -8
  387. package/build/cli/commands/task/shared.js +0 -167
  388. package/build/cli/commands/task/show/handler.js +0 -13
  389. package/build/cli/commands/task/show/meta.js +0 -8
  390. package/build/cli/commands/task/start/handler.js +0 -3
  391. package/build/cli/commands/task/start/meta.js +0 -8
  392. package/build/cli/commands/task/stop/handler.js +0 -10
  393. package/build/cli/commands/task/stop/meta.js +0 -8
  394. package/build/cli/commands/task/task/handler.js +0 -5
  395. package/build/cli/commands/task/task/meta.js +0 -11
  396. package/build/cli/commands/task/update/handler.js +0 -21
  397. package/build/cli/commands/task/update/meta.js +0 -11
  398. package/build/cli/completion.js +0 -88
  399. package/build/cli/draft-artifact.js +0 -50
  400. package/build/cli/flags.js +0 -289
  401. package/build/cli/help.js +0 -100
  402. package/build/cli/index.js +0 -332
  403. package/build/cli/missing-subcommand.js +0 -7
  404. package/build/cli/output-stream-error-policy.js +0 -31
  405. package/build/cli/parse-flags.js +0 -262
  406. package/build/cli/parse-metadata.js +0 -129
  407. package/build/cli/parse-selectors.js +0 -65
  408. package/build/cli/parse.js +0 -237
  409. package/build/cli/projection-address.js +0 -105
  410. package/build/cli/render/address.js +0 -101
  411. package/build/cli/render/amendment-warning.js +0 -8
  412. package/build/cli/render/arc.js +0 -79
  413. package/build/cli/render/audit.js +0 -440
  414. package/build/cli/render/call.js +0 -70
  415. package/build/cli/render/compact-text.js +0 -3
  416. package/build/cli/render/errors.js +0 -101
  417. package/build/cli/render/format.js +0 -226
  418. package/build/cli/render/kanshi.js +0 -263
  419. package/build/cli/render/kill.js +0 -9
  420. package/build/cli/render/lifecycle.js +0 -56
  421. package/build/cli/render/line-width.js +0 -103
  422. package/build/cli/render/misc.js +0 -84
  423. package/build/cli/render/path-prefix-compaction.js +0 -131
  424. package/build/cli/render/petition.js +0 -70
  425. package/build/cli/render/projection-activity.js +0 -332
  426. package/build/cli/render/projection-history.js +0 -64
  427. package/build/cli/render/response-style.js +0 -27
  428. package/build/cli/render/shared.js +0 -232
  429. package/build/cli/render/skills.js +0 -10
  430. package/build/cli/render/status.js +0 -213
  431. package/build/cli/render/success-response.js +0 -80
  432. package/build/cli/render/task.js +0 -174
  433. package/build/cli/render/tell.js +0 -5
  434. package/build/cli/render/terminal-failure.js +0 -65
  435. package/build/cli/render/tool-ledger-rollup.js +0 -74
  436. package/build/cli/render/tool-presentation.js +0 -97
  437. package/build/cli/render/types.js +0 -2
  438. package/build/cli/render/wait.js +0 -275
  439. package/build/cli/skills-install.js +0 -348
  440. package/build/cli/subagent-guard.js +0 -25
  441. package/build/cli/types.js +0 -1
  442. package/build/config/akuma-loader.js +0 -220
  443. package/build/config/env-keys.js +0 -57
  444. package/build/config/env.js +0 -304
  445. package/build/config/provider-policy-ownership.js +0 -10
  446. package/build/config/settings/disease.js +0 -33
  447. package/build/config/settings/knobs.js +0 -8
  448. package/build/config/settings/loader.js +0 -275
  449. package/build/config/settings/provider-instance-fields.js +0 -51
  450. package/build/config/settings/schema.js +0 -108
  451. package/build/core/address-carrier.js +0 -89
  452. package/build/core/addressing.js +0 -407
  453. package/build/core/amend.js +0 -236
  454. package/build/core/amendment-criteria.js +0 -17
  455. package/build/core/amendment-warning.js +0 -10
  456. package/build/core/arc.js +0 -293
  457. package/build/core/atomic-publish.js +0 -64
  458. package/build/core/audit/candidate.js +0 -149
  459. package/build/core/audit/coordinates.js +0 -235
  460. package/build/core/audit/evidence.js +0 -154
  461. package/build/core/audit/facade.js +0 -65
  462. package/build/core/audit/readiness.js +0 -4
  463. package/build/core/audit/report.js +0 -38
  464. package/build/core/audit.js +0 -1
  465. package/build/core/bind-reconciliation.js +0 -390
  466. package/build/core/bind-workspace.js +0 -115
  467. package/build/core/bind.js +0 -402
  468. package/build/core/call/call.js +0 -236
  469. package/build/core/call/context.js +0 -197
  470. package/build/core/call/execution.js +0 -240
  471. package/build/core/call/prompt.js +0 -58
  472. package/build/core/call/reference.js +0 -24
  473. package/build/core/call-persist.js +0 -76
  474. package/build/core/command-markdown.js +0 -45
  475. package/build/core/context.js +0 -104
  476. package/build/core/contract-carrier-runtime.js +0 -408
  477. package/build/core/contract-carrier.js +0 -270
  478. package/build/core/contract-view.js +0 -282
  479. package/build/core/contract.js +0 -18
  480. package/build/core/derived-replay.js +0 -207
  481. package/build/core/draft.js +0 -396
  482. package/build/core/execution-coordinate.js +0 -46
  483. package/build/core/execution-pact.js +0 -126
  484. package/build/core/forfeit.js +0 -132
  485. package/build/core/hints.js +0 -34
  486. package/build/core/identifier-slug.js +0 -116
  487. package/build/core/ids.js +0 -90
  488. package/build/core/lifecycle-history.js +0 -35
  489. package/build/core/lifecycle-recovery.js +0 -117
  490. package/build/core/lifecycle-runner.js +0 -377
  491. package/build/core/log.js +0 -50
  492. package/build/core/markdown/lex.js +0 -274
  493. package/build/core/markdown/parser.js +0 -260
  494. package/build/core/markdown/render.js +0 -68
  495. package/build/core/markdown/sections.js +0 -80
  496. package/build/core/markdown/titles.js +0 -9
  497. package/build/core/markdown/types.js +0 -6
  498. package/build/core/outcome-base.js +0 -185
  499. package/build/core/places.js +0 -175
  500. package/build/core/process-group.js +0 -139
  501. package/build/core/projection/generation/database.js +0 -411
  502. package/build/core/projection/generation/identity.js +0 -84
  503. package/build/core/projection/generation/model.js +0 -256
  504. package/build/core/projection/generation/projection-generation-continuation.js +0 -84
  505. package/build/core/projection/generation/projection-generation-execution.js +0 -217
  506. package/build/core/projection/generation/projection-generation-identity.js +0 -17
  507. package/build/core/projection/generation/projection-generation-launcher.js +0 -220
  508. package/build/core/projection/generation/projection-generation-process.js +0 -46
  509. package/build/core/projection/generation/projection-generation-runner.js +0 -443
  510. package/build/core/projection/generation/projection-generation-runtime.js +0 -97
  511. package/build/core/projection/generation/store.js +0 -98
  512. package/build/core/projection/generation/transitions.js +0 -463
  513. package/build/core/projection/heart.js +0 -9
  514. package/build/core/projection/index.js +0 -28
  515. package/build/core/projection/projection-activity.js +0 -273
  516. package/build/core/projection/projection-alias.js +0 -131
  517. package/build/core/projection/projection-coordinate.js +0 -61
  518. package/build/core/projection/projection-core.js +0 -123
  519. package/build/core/projection/projection-execution-observer.js +0 -270
  520. package/build/core/projection/projection-history.js +0 -474
  521. package/build/core/projection/projection-identity.js +0 -11
  522. package/build/core/projection/projection-kill.js +0 -103
  523. package/build/core/projection/projection-life-observer.js +0 -101
  524. package/build/core/projection/projection-life-protocol.js +0 -115
  525. package/build/core/projection/projection-mint.js +0 -172
  526. package/build/core/projection/projection-runner-lock.js +0 -211
  527. package/build/core/projection/projection-status-observation.js +0 -365
  528. package/build/core/projection/projection-status.js +0 -295
  529. package/build/core/projection/projection-terminal-failure.js +0 -111
  530. package/build/core/projection/projection-wait.js +0 -318
  531. package/build/core/projection/projection-wake.js +0 -360
  532. package/build/core/projection/tell/database.js +0 -127
  533. package/build/core/projection/tell/launch-store.js +0 -244
  534. package/build/core/projection/tell/model.js +0 -98
  535. package/build/core/projection/tell/store.js +0 -245
  536. package/build/core/provider-loader-ports.js +0 -4
  537. package/build/core/registry.js +0 -100
  538. package/build/core/renew-build.js +0 -424
  539. package/build/core/renew-plan.js +0 -239
  540. package/build/core/renew-rewrite.js +0 -77
  541. package/build/core/renew.js +0 -341
  542. package/build/core/repository-ledger/accepted-fold-read.js +0 -19
  543. package/build/core/repository-ledger/accepted-tail.js +0 -116
  544. package/build/core/repository-ledger/admission.js +0 -38
  545. package/build/core/repository-ledger/authoritative-transaction.js +0 -1
  546. package/build/core/repository-ledger/claim-evidence.js +0 -147
  547. package/build/core/repository-ledger/codec.js +0 -297
  548. package/build/core/repository-ledger/current-state-store.js +0 -971
  549. package/build/core/repository-ledger/fold-repository.js +0 -375
  550. package/build/core/repository-ledger/fold.js +0 -248
  551. package/build/core/repository-ledger/git-object-store.js +0 -243
  552. package/build/core/repository-ledger/history-read.js +0 -15
  553. package/build/core/repository-ledger/incremental-read.js +0 -153
  554. package/build/core/repository-ledger/index.js +0 -15
  555. package/build/core/repository-ledger/inventory-plan.js +0 -75
  556. package/build/core/repository-ledger/inventory.js +0 -310
  557. package/build/core/repository-ledger/publication-admission.js +0 -125
  558. package/build/core/repository-ledger/publication.js +0 -353
  559. package/build/core/repository-ledger/read-model.js +0 -469
  560. package/build/core/repository-ledger/transaction-membership.js +0 -78
  561. package/build/core/repository-ledger/traversal.js +0 -404
  562. package/build/core/repository-ledger/write-transaction.js +0 -341
  563. package/build/core/response-artifact-catalog-sqlite.js +0 -112
  564. package/build/core/response-artifact-catalog.js +0 -7
  565. package/build/core/response-artifact-id.js +0 -5
  566. package/build/core/scope.js +0 -416
  567. package/build/core/seal.js +0 -352
  568. package/build/core/settlement/claim-delivery.js +0 -69
  569. package/build/core/settlement/claim.js +0 -256
  570. package/build/core/settlement/index.js +0 -19
  571. package/build/core/settlement/petition-claim-gates.js +0 -246
  572. package/build/core/settlement/petition-forfeit.js +0 -46
  573. package/build/core/settlement/petition-head-guard.js +0 -13
  574. package/build/core/settlement/petition-io.js +0 -1
  575. package/build/core/settlement/petition-preview.js +0 -109
  576. package/build/core/settlement/petition-window.js +0 -50
  577. package/build/core/settlement/petition.js +0 -281
  578. package/build/core/settlement/queue-read-model.js +0 -120
  579. package/build/core/settlement/queue-seat-allocation.js +0 -65
  580. package/build/core/settlement/queue.js +0 -6
  581. package/build/core/settlement/settlement.js +0 -380
  582. package/build/core/settlement/verdict.js +0 -126
  583. package/build/core/settlement/verification-coordination.js +0 -305
  584. package/build/core/settlement/verification-supervisor.js +0 -275
  585. package/build/core/settlement/verification.js +0 -426
  586. package/build/core/sqlite-process-lifetime-lock.js +0 -194
  587. package/build/core/status/board.js +0 -346
  588. package/build/core/status/drift.js +0 -115
  589. package/build/core/status/lifecycle.js +0 -11
  590. package/build/core/stored-agent-event.js +0 -129
  591. package/build/core/structured-query.js +0 -23
  592. package/build/core/target-ref.js +0 -10
  593. package/build/core/task/board.js +0 -247
  594. package/build/core/task/commands.js +0 -376
  595. package/build/core/task/compose.js +0 -327
  596. package/build/core/task/coordinate.js +0 -56
  597. package/build/core/task/document.js +0 -210
  598. package/build/core/task/index.js +0 -16
  599. package/build/core/task/model.js +0 -8
  600. package/build/core/task/query.js +0 -204
  601. package/build/core/task/settlement-git.js +0 -426
  602. package/build/core/task/settlement-policy.js +0 -124
  603. package/build/core/task/source-board.js +0 -103
  604. package/build/core/task/source-model.js +0 -1
  605. package/build/core/task/task-bind-preparation.js +0 -193
  606. package/build/core/task/task-contract.js +0 -371
  607. package/build/core/task/task-doctor.js +0 -14
  608. package/build/core/task/task-file-transaction.js +0 -171
  609. package/build/core/task/task-git-actor.js +0 -33
  610. package/build/core/task/task-git-runtime.js +0 -97
  611. package/build/core/task/task-git-store.js +0 -400
  612. package/build/core/task/task-repository.js +0 -1
  613. package/build/core/task/task-store-repository.js +0 -96
  614. package/build/core/task/task-store.js +0 -1
  615. package/build/core/task/task-worktree.js +0 -25
  616. package/build/core/task/task.js +0 -7
  617. package/build/core/task/tree.js +0 -37
  618. package/build/core/task/validation.js +0 -48
  619. package/build/core/transcripts.js +0 -485
  620. package/build/core/validation.js +0 -17
  621. package/build/core/worktree-bootstrap.js +0 -195
  622. package/build/core/worktree-path.js +0 -375
  623. package/build/errno.js +0 -3
  624. package/build/flow-error.js +0 -183
  625. package/build/fs/durability.js +0 -27
  626. package/build/fs/path-coordinate.js +0 -16
  627. package/build/generated/version.js +0 -3
  628. package/build/git/branches.js +0 -113
  629. package/build/git/commits.js +0 -80
  630. package/build/git/core.js +0 -238
  631. package/build/git/diff/parsers.js +0 -181
  632. package/build/git/diff/pathspec.js +0 -3
  633. package/build/git/diff/preview.js +0 -38
  634. package/build/git/diff/read.js +0 -105
  635. package/build/git/diff/structured.js +0 -127
  636. package/build/git/diff/types.js +0 -1
  637. package/build/git/path-coordinate.js +0 -17
  638. package/build/git/refs.js +0 -225
  639. package/build/git/staging.js +0 -155
  640. package/build/git/streaming-batch.js +0 -361
  641. package/build/git/worktree.js +0 -162
  642. package/build/index.js +0 -60
  643. package/build/keiyaku-constants.js +0 -2
  644. package/build/keiyaku.js +0 -30
  645. package/build/telemetry/debug-log.js +0 -40
  646. package/build/telemetry/logger.js +0 -48
  647. package/skills/keiyaku/SKILL.md +0 -46
  648. package/skills/keiyaku-akuma/SKILL.md +0 -96
  649. package/skills/keiyaku-task/SKILL.md +0 -84
  650. package/skills/keiyaku-workflow/SKILL.md +0 -151
  651. /package/build/{agents/launch-snapshot → src/body}/types.js +0 -0
  652. /package/build/{agents/providers/claude-agent-sdk/terms.js → src/cli/result.js} +0 -0
  653. /package/build/{agents/providers/codex-app-server/terms.js → src/core/decide.js} +0 -0
  654. /package/build/{agents/providers/opencode-sdk/terms.js → src/core/facts/offer.js} +0 -0
  655. /package/build/{agents/providers/pi/terms.js → src/kanshi/report.js} +0 -0
@@ -1,285 +0,0 @@
1
- import { SUBAGENT_SESSION_VERSION } from "../../session.js";
2
- import { activityCallFromNamedTool, boundActivityExcerpt, diffstatFromUnifiedPatch } from "../../harness/activity-values.js";
3
- import { AGENT_THOUGHT_TEXT_MAX_CHARS } from "../../harness/events.js";
4
- import { createAbortError } from "../../harness/runtime.js";
5
- import { SubagentFailure } from "../../types.js";
6
- import { PI_PROVIDER } from "./checkpoint.js";
7
- const PI_ACKNOWLEDGED_UNPERSISTED = new Set(["message_update", "queue_update"]);
8
- const PI_MAPPED = new Set(["agent_start", "agent_end", "turn_start", "turn_end", "message_start", "message_end", "tool_execution_start", "tool_execution_update", "tool_execution_end", "compaction_start", "compaction_end", "session_info_changed", "thinking_level_changed", "auto_retry_start", "auto_retry_end"]);
9
- function piIngressDisposition(type) {
10
- if (PI_ACKNOWLEDGED_UNPERSISTED.has(type))
11
- return "acknowledged-unpersisted";
12
- if (PI_MAPPED.has(type))
13
- return "mapped";
14
- return "unknown";
15
- }
16
- function extractAssistantText(event) {
17
- if (event.type === "message_end") {
18
- const message = event.message;
19
- if (message?.role !== "assistant")
20
- return undefined;
21
- return extractContentText(message.content);
22
- }
23
- return undefined;
24
- }
25
- function extractContentText(content) {
26
- if (typeof content === "string") {
27
- const trimmed = content.trim();
28
- return trimmed || undefined;
29
- }
30
- if (!Array.isArray(content))
31
- return undefined;
32
- const text = content
33
- .map((block) => {
34
- if (typeof block === "string")
35
- return block;
36
- if (block &&
37
- typeof block === "object" &&
38
- block.type === "text") {
39
- const candidate = block.text;
40
- return typeof candidate === "string" ? candidate : "";
41
- }
42
- return "";
43
- })
44
- .join("")
45
- .trim();
46
- return text || undefined;
47
- }
48
- function emitPiThoughts(builder, event, turnOrdinal, messageOrdinal) {
49
- if (event.type !== "message_end")
50
- return;
51
- const message = event.message;
52
- if (message?.role !== "assistant" || !Array.isArray(message.content))
53
- return;
54
- message.content.forEach((block, blockIndex) => {
55
- if (!block || typeof block !== "object")
56
- return;
57
- const record = block;
58
- if (record.type !== "thinking" || record.redacted === true)
59
- return;
60
- if (typeof record.thinking !== "string" || record.thinking.trim().length === 0)
61
- return;
62
- const truncated = record.thinking.length > AGENT_THOUGHT_TEXT_MAX_CHARS;
63
- builder.emit({
64
- type: "thought",
65
- id: `t${turnOrdinal}:m${messageOrdinal}:b${blockIndex}`,
66
- text: record.thinking.slice(0, AGENT_THOUGHT_TEXT_MAX_CHARS),
67
- final: true,
68
- ...(truncated ? { truncated: true } : {}),
69
- });
70
- });
71
- }
72
- function piRecord(value) {
73
- return value !== null && typeof value === "object" && !Array.isArray(value)
74
- ? value
75
- : undefined;
76
- }
77
- function piCallFacts(args) {
78
- const value = piRecord(args);
79
- if (!value)
80
- return {};
81
- return {
82
- ...(typeof value.command === "string" ? { command: value.command } : {}),
83
- ...(typeof value.description === "string" ? { description: value.description } : {}),
84
- ...(typeof value.path === "string" ? { path: value.path } : {}),
85
- ...(typeof value.offset === "number" && Number.isFinite(value.offset) ? { offset: value.offset } : {}),
86
- ...(typeof value.limit === "number" && Number.isFinite(value.limit) ? { limit: value.limit } : {}),
87
- ...(typeof value.query === "string" ? { query: value.query } : {}),
88
- };
89
- }
90
- function piResult(value, isError) {
91
- const payload = piRecord(value);
92
- const content = Array.isArray(payload?.content)
93
- ? payload.content.flatMap((entry) => {
94
- const block = piRecord(entry);
95
- return block?.type === "text" && typeof block.text === "string" ? [block.text] : [];
96
- }).join("\n")
97
- : undefined;
98
- const details = piRecord(payload?.details);
99
- const diffstat = typeof details?.patch === "string" ? diffstatFromUnifiedPatch(details.patch) : undefined;
100
- return {
101
- status: isError ? "error" : "ok",
102
- ...(content ? { message: boundActivityExcerpt(content) } : {}),
103
- ...(diffstat ? { diffstat } : {}),
104
- };
105
- }
106
- function piActivityBody(event, calls) {
107
- if (event.type !== "tool_execution_start" &&
108
- event.type !== "tool_execution_update" &&
109
- event.type !== "tool_execution_end") {
110
- return undefined;
111
- }
112
- if (typeof event.toolCallId !== "string" || typeof event.toolName !== "string")
113
- return undefined;
114
- const phase = event.type === "tool_execution_start"
115
- ? "started"
116
- : event.type === "tool_execution_update"
117
- ? "updated"
118
- : "completed";
119
- if (event.type === "tool_execution_start") {
120
- calls.set(event.toolCallId, activityCallFromNamedTool(event.toolName, piCallFacts(event.args)));
121
- }
122
- const call = calls.get(event.toolCallId) ?? (event.type === "tool_execution_end"
123
- ? { kind: "other", display: event.toolName }
124
- : activityCallFromNamedTool(event.toolName, piCallFacts(event.args)));
125
- if (event.type === "tool_execution_end")
126
- calls.delete(event.toolCallId);
127
- return {
128
- type: "activity",
129
- phase,
130
- id: event.toolCallId,
131
- tool: event.toolName,
132
- call,
133
- ...(event.type === "tool_execution_start"
134
- ? {}
135
- : { result: piResult(event.type === "tool_execution_update" ? event.partialResult : event.result, event.type === "tool_execution_end" && event.isError) }),
136
- };
137
- }
138
- function piUsageBody(event) {
139
- if (event.type !== "message_end")
140
- return undefined;
141
- const message = event.message;
142
- if (message?.role !== "assistant")
143
- return undefined;
144
- const usage = message.usage;
145
- if (!usage || typeof usage.input !== "number" || !Number.isFinite(usage.input)
146
- || typeof usage.output !== "number" || !Number.isFinite(usage.output))
147
- return undefined;
148
- return {
149
- type: "usage",
150
- inputTokens: usage.input,
151
- outputTokens: usage.output,
152
- ...(typeof usage.cacheRead === "number" && Number.isFinite(usage.cacheRead) ? { cachedInputTokens: usage.cacheRead } : {}),
153
- ...(typeof usage.cost?.total === "number" && Number.isFinite(usage.cost.total) ? { costUsd: usage.cost.total } : {}),
154
- ...(typeof message.responseModel === "string"
155
- ? { model: message.responseModel }
156
- : typeof message.model === "string"
157
- ? { model: message.model }
158
- : {}),
159
- };
160
- }
161
- /** True when native messages prove the run stopped via abort (stopReason aborted). */
162
- function agentEndLooksAborted(event) {
163
- if (event.type !== "agent_end")
164
- return false;
165
- const messages = event.messages;
166
- for (let i = messages.length - 1; i >= 0; i -= 1) {
167
- const message = messages[i];
168
- if (!message || message.role !== "assistant")
169
- continue;
170
- if (message.stopReason === "aborted")
171
- return true;
172
- // Last assistant message is the terminal one for this run.
173
- break;
174
- }
175
- return false;
176
- }
177
- /** Returns the terminal Pi provider error, if the final assistant message ended in error. */
178
- function agentEndProviderError(event) {
179
- if (event.type !== "agent_end")
180
- return undefined;
181
- const messages = event.messages;
182
- for (let i = messages.length - 1; i >= 0; i -= 1) {
183
- const message = messages[i];
184
- if (!message || message.role !== "assistant")
185
- continue;
186
- if (message.stopReason !== "error")
187
- return undefined;
188
- if (typeof message.errorMessage === "string" && message.errorMessage.trim()) {
189
- return message.errorMessage;
190
- }
191
- return `${PI_PROVIDER} provider error (stopReason error)`;
192
- }
193
- return undefined;
194
- }
195
- function buildPiSessionOutcome(session, finalMessage) {
196
- const sessionFile = session.sessionFile;
197
- if (!sessionFile) {
198
- return new SubagentFailure("SUBAGENT_EXEC_ERROR", `${PI_PROVIDER} exec ended without a session file`);
199
- }
200
- return {
201
- finalMessage,
202
- session: {
203
- provider: "pi",
204
- version: SUBAGENT_SESSION_VERSION,
205
- handle: {
206
- sessionFile,
207
- sessionId: session.sessionId,
208
- },
209
- },
210
- };
211
- }
212
- export function bindPiSessionEvents(session, builder, controller, state, settle) {
213
- return session.subscribe((event) => {
214
- builder.ingress(PI_PROVIDER, event.type, event, piIngressDisposition(event.type), () => {
215
- if (event.type === "agent_start") {
216
- builder.emit({ type: "turn", phase: "started" });
217
- }
218
- if (event.type === "turn_start") {
219
- state.thoughtTurnOrdinal += 1;
220
- state.assistantMessageOrdinal = -1;
221
- state.activeAssistantMessageOrdinal = undefined;
222
- controller.beginTurn();
223
- }
224
- if (event.type === "message_start") {
225
- const message = event.message;
226
- if (message?.role === "assistant") {
227
- controller.modelInputVisible();
228
- state.assistantMessageOrdinal += 1;
229
- state.activeAssistantMessageOrdinal = state.assistantMessageOrdinal;
230
- }
231
- }
232
- const activity = piActivityBody(event, state.activityCalls);
233
- if (activity)
234
- builder.emit(activity);
235
- if (event.type === "message_end") {
236
- const message = event.message;
237
- if (message?.role === "assistant") {
238
- if (state.activeAssistantMessageOrdinal === undefined) {
239
- state.assistantMessageOrdinal += 1;
240
- state.activeAssistantMessageOrdinal = state.assistantMessageOrdinal;
241
- }
242
- const messageId = `pi-assistant-${state.activeAssistantMessageOrdinal}`;
243
- emitPiThoughts(builder, event, state.thoughtTurnOrdinal, state.activeAssistantMessageOrdinal);
244
- const assistantText = extractAssistantText(event);
245
- if (assistantText) {
246
- state.lastAssistantMessage = assistantText;
247
- builder.emit({ type: "message", id: messageId, text: assistantText });
248
- }
249
- state.activeAssistantMessageOrdinal = undefined;
250
- }
251
- }
252
- const usage = piUsageBody(event);
253
- if (usage)
254
- builder.emit(usage);
255
- if (event.type === "turn_end" && !state.abortIntent)
256
- controller.completeTurn();
257
- if (event.type !== "agent_end" || state.settled) {
258
- return;
259
- }
260
- if (state.abortIntent || agentEndLooksAborted(event)) {
261
- settle.reject(createAbortError(`${PI_PROVIDER} exec cancelled by client`));
262
- return;
263
- }
264
- if (event.willRetry) {
265
- return;
266
- }
267
- const providerError = agentEndProviderError(event);
268
- if (providerError) {
269
- const failure = new SubagentFailure("SUBAGENT_EXEC_ERROR", providerError);
270
- builder.emit({ type: "fail", message: failure.message });
271
- settle.reject(failure);
272
- return;
273
- }
274
- const outcome = buildPiSessionOutcome(session, state.lastAssistantMessage);
275
- if (outcome instanceof SubagentFailure) {
276
- builder.emit({ type: "fail", message: outcome.message });
277
- settle.reject(outcome);
278
- return;
279
- }
280
- builder.emit({ type: "turn", phase: "completed" });
281
- builder.emit({ type: "done", finalMessage: outcome.finalMessage, session: outcome.session });
282
- settle.resolve(outcome);
283
- });
284
- });
285
- }
@@ -1,160 +0,0 @@
1
- import { z } from "zod";
2
- import { providerCommonFields, providerEnvSchema, } from "../../../config/settings/provider-instance-fields.js";
3
- import { FlowError } from "../../../flow-error.js";
4
- import { exactKeys, optionalString, optionalStringRecord, } from "../../launch-snapshot/parse-helpers.js";
5
- import { SUBAGENT_SESSION_VERSION, subagentSessionEnvelopeSchema, } from "../../session.js";
6
- import { PI_PROVIDER } from "./checkpoint.js";
7
- import { piSessionSchema } from "./session-schema.js";
8
- const startPi = async (prompt, cwd, options) => {
9
- const { startPi: start } = await import("./adapter.js");
10
- return start(prompt, cwd, options);
11
- };
12
- function admitResumeShape(schema, session, resumePath) {
13
- const envelopeResult = subagentSessionEnvelopeSchema.safeParse(session);
14
- if (!envelopeResult.success) {
15
- throw new FlowError("INVALID_RESPONSE_PATH", `Resume path file '${resumePath}' includes an invalid session envelope.`);
16
- }
17
- if (session.provider !== PI_PROVIDER) {
18
- throw new FlowError("INVALID_RESPONSE_PATH", `Resume path file '${resumePath}' was created with provider '${session.provider}', but the selected subagent resolves to '${PI_PROVIDER}'. Cross-provider resume is not supported.`);
19
- }
20
- if (session.version !== SUBAGENT_SESSION_VERSION) {
21
- throw new FlowError("INVALID_RESPONSE_PATH", `Resume path file '${resumePath}' uses unsupported session version '${session.version}' for provider '${session.provider}'.`);
22
- }
23
- const shapeResult = schema.safeParse(session.handle);
24
- if (!shapeResult.success) {
25
- throw new FlowError("INVALID_RESPONSE_PATH", `Resume path file '${resumePath}' includes an invalid session handle for provider '${session.provider}'.`);
26
- }
27
- return shapeResult.data;
28
- }
29
- export const piRegistration = {
30
- name: PI_PROVIDER,
31
- start: startPi,
32
- sessionSchema: piSessionSchema,
33
- effortField: "thinkingLevel",
34
- instanceSchema: z
35
- .object({
36
- kind: z.literal(PI_PROVIDER),
37
- ...providerCommonFields,
38
- env: providerEnvSchema,
39
- })
40
- .strict()
41
- .superRefine((data, ctx) => {
42
- if (data.env === undefined)
43
- return;
44
- if (Object.keys(data.env).length === 0)
45
- return;
46
- ctx.addIssue({
47
- code: z.ZodIssueCode.custom,
48
- path: ["env"],
49
- message: `env injection not supported for provider ${PI_PROVIDER}`,
50
- });
51
- }),
52
- builtinInstance: {
53
- name: PI_PROVIDER,
54
- source: "builtin",
55
- instance: { kind: PI_PROVIDER },
56
- },
57
- portablePolicy: {
58
- access: new Set(),
59
- network: new Set(),
60
- webSearch: new Set(),
61
- },
62
- maxCaptureChars: (config) => config.codex.execMaxCaptureChars,
63
- buildCallTerms: ({ snapshot, baseTerms, body }) => {
64
- const provider = snapshot.provider;
65
- return {
66
- ...baseTerms,
67
- provider: PI_PROVIDER,
68
- ...(provider.model !== undefined ? { model: provider.model } : {}),
69
- ...(provider.thinkingLevel !== undefined ? { thinkingLevel: provider.thinkingLevel } : {}),
70
- appendSystemPromptOverride: body ? () => [body] : undefined,
71
- onCheckpoint() { },
72
- };
73
- },
74
- resolveLaunchProvider: ({ common, instance, model, effort }) => {
75
- if (instance.kind !== PI_PROVIDER) {
76
- throw new Error(`resolveLaunchProvider expected ${PI_PROVIDER}`);
77
- }
78
- const piInstance = instance;
79
- return Object.freeze({
80
- ...common,
81
- kind: PI_PROVIDER,
82
- ...(model !== undefined ? { model } : {}),
83
- ...(effort !== undefined ? { thinkingLevel: effort } : {}),
84
- ...(piInstance.env !== undefined ? { env: piInstance.env } : {}),
85
- });
86
- },
87
- parseLaunchProvider: (provider, common) => {
88
- exactKeys(provider, ["name", "source", "kind", "model", "thinkingLevel", "env"], "provider");
89
- const model = optionalString(provider, "model", "provider");
90
- const thinkingLevel = optionalString(provider, "thinkingLevel", "provider");
91
- const env = optionalStringRecord(provider, "env");
92
- return Object.freeze({
93
- ...common,
94
- kind: PI_PROVIDER,
95
- ...(model !== undefined ? { model } : {}),
96
- ...(thinkingLevel !== undefined ? { thinkingLevel } : {}),
97
- ...(env !== undefined ? { env } : {}),
98
- });
99
- },
100
- applyEffort: (provider, effort) => Object.freeze({ ...provider, thinkingLevel: effort }),
101
- providerEffortAndModel: (provider) => {
102
- const resolved = provider;
103
- return { model: resolved.model, effort: resolved.thinkingLevel };
104
- },
105
- attachLoader: (terms, ports) => {
106
- if (terms.provider !== PI_PROVIDER)
107
- return terms;
108
- const loader = ports.pi;
109
- return loader ? { ...terms, loader } : terms;
110
- },
111
- nativePolicyOwnership: () => null,
112
- tellReceiptCapabilities: { seen: "unavailable", consumed: "unavailable" },
113
- startLive: async ({ terms, signal, reviveTerms, onSyncCheckpoint, onSessionAdmission, onIngress, observer }) => {
114
- if (terms.provider !== PI_PROVIDER) {
115
- throw new Error(`startLive expected ${PI_PROVIDER}`);
116
- }
117
- const piTerms = terms;
118
- const { startPi: start } = await import("./adapter.js");
119
- if (reviveTerms) {
120
- const session = admitResumeShape(piSessionSchema, reviveTerms.session, reviveTerms.resumePath);
121
- return start(piTerms.prompt, piTerms.workdir, {
122
- model: piTerms.model,
123
- thinkingLevel: piTerms.thinkingLevel,
124
- signal,
125
- sessionFile: session.sessionFile,
126
- appendSystemPromptOverride: piTerms.appendSystemPromptOverride,
127
- onSyncCheckpoint,
128
- onTellReceipt: observer ? (receipt) => {
129
- try {
130
- observer.onTellReceipt(receipt);
131
- }
132
- catch { /* Receipt persistence cannot alter provider control. */ }
133
- } : undefined,
134
- onEvidence: piTerms.onEvidence,
135
- onSessionAdmission,
136
- onIngress,
137
- initialTurn: piTerms.initialTurn,
138
- loader: piTerms.loader,
139
- });
140
- }
141
- return start(piTerms.prompt, piTerms.workdir, {
142
- model: piTerms.model,
143
- thinkingLevel: piTerms.thinkingLevel,
144
- signal,
145
- appendSystemPromptOverride: piTerms.appendSystemPromptOverride,
146
- onSyncCheckpoint,
147
- onTellReceipt: observer ? (receipt) => {
148
- try {
149
- observer.onTellReceipt(receipt);
150
- }
151
- catch { /* Receipt persistence cannot alter provider control. */ }
152
- } : undefined,
153
- onEvidence: piTerms.onEvidence,
154
- onSessionAdmission,
155
- onIngress,
156
- initialTurn: piTerms.initialTurn,
157
- loader: piTerms.loader,
158
- });
159
- },
160
- };
@@ -1,6 +0,0 @@
1
- import { z } from "zod";
2
- /** Opaque Pi resume handle: exact session file path (UUID alone is ambiguous). */
3
- export const piSessionSchema = z.object({
4
- sessionFile: z.string().trim().min(1),
5
- sessionId: z.string().trim().min(1).optional(),
6
- });
@@ -1,7 +0,0 @@
1
- /**
2
- * Identity helper that locks `Name` across name / instanceSchema / builtinInstance.
3
- * `const Name` keeps the literal; a schema whose kind is not exactly that literal fails here.
4
- */
5
- export function defineProviderRegistration(registration) {
6
- return registration;
7
- }
@@ -1,76 +0,0 @@
1
- import { z } from "zod";
2
- import { claudeAgentSdkRegistration } from "./claude-agent-sdk/registration.js";
3
- import { codexAppServerRegistration } from "./codex-app-server/registration.js";
4
- import { opencodeSdkRegistration } from "./opencode-sdk/registration.js";
5
- import { piRegistration } from "./pi/registration.js";
6
- /**
7
- * Sole provider-vocabulary registration surface.
8
- * Add/remove a live provider by editing that provider's directory and this list.
9
- * Runtime tables, schemas, and builtin Akuma profiles are derived from the list.
10
- */
11
- export const PROVIDER_REGISTRATIONS = [
12
- codexAppServerRegistration,
13
- claudeAgentSdkRegistration,
14
- opencodeSdkRegistration,
15
- piRegistration,
16
- ];
17
- function nonEmptyProviderNames(registrations) {
18
- if (registrations.length === 0) {
19
- throw new Error("PROVIDER_REGISTRATIONS must not be empty");
20
- }
21
- return registrations.map((registration) => registration.name);
22
- }
23
- export const SUBAGENT_PROVIDERS = nonEmptyProviderNames(PROVIDER_REGISTRATIONS);
24
- const providerNameSet = new Set(SUBAGENT_PROVIDERS);
25
- export function isSubagentProvider(value) {
26
- return providerNameSet.has(value);
27
- }
28
- function indexByProviderName(pick) {
29
- const out = {};
30
- for (const registration of PROVIDER_REGISTRATIONS) {
31
- out[registration.name] = pick(registration);
32
- }
33
- return Object.freeze(out);
34
- }
35
- const registrationByName = new Map(PROVIDER_REGISTRATIONS.map((registration) => [registration.name, registration]));
36
- export function getProviderRegistration(name) {
37
- const registration = registrationByName.get(name);
38
- if (!registration) {
39
- throw new Error(`Unknown provider '${name}'`);
40
- }
41
- return registration;
42
- }
43
- export const PROVIDER_REGISTRATION_BY_NAME = indexByProviderName((registration) => registration);
44
- export const BUILTIN_PROVIDER_INSTANCE_CANDIDATES = indexByProviderName((registration) => ({
45
- name: registration.name,
46
- source: "builtin",
47
- instance: registration.builtinInstance.instance,
48
- }));
49
- export const PROVIDER_PORTABLE_POLICY = indexByProviderName((registration) => registration.portablePolicy);
50
- /**
51
- * Closed provider-instance schema derived solely from PROVIDER_REGISTRATIONS.
52
- * Each contribution's instanceSchema is a kind-literal object schema (possibly
53
- * refined); Zod's discriminable marker is erased by ProviderInstanceSchema, so
54
- * the non-empty tuple assertion restores only that structural requirement.
55
- */
56
- export const providerInstanceSchema = z.discriminatedUnion("kind", (() => {
57
- const schemas = PROVIDER_REGISTRATIONS.map((registration) => registration.instanceSchema);
58
- if (schemas.length === 0) {
59
- throw new Error("PROVIDER_REGISTRATIONS must not be empty");
60
- }
61
- return schemas;
62
- })());
63
- /** Product builtin Akuma profiles contributed by registrations. */
64
- export const BUILTIN_AGENT_PROFILES = Object.freeze(Object.fromEntries(PROVIDER_REGISTRATIONS.flatMap((registration) => {
65
- const open = registration;
66
- const profiles = open.builtinAkumaProfiles ?? [];
67
- return profiles.map((profile) => [
68
- profile.name,
69
- Object.freeze({
70
- provider: registration.name,
71
- description: profile.description,
72
- }),
73
- ]);
74
- })));
75
- export const BUILTIN_AGENT_NAMES = Object.freeze(Object.keys(BUILTIN_AGENT_PROFILES));
76
- export { defineProviderRegistration } from "./registration.js";
@@ -1,120 +0,0 @@
1
- import { getConfig } from "../config/env.js";
2
- import { loadAkumaCatalog, } from "../config/akuma-loader.js";
3
- import { assertSettingsKnobUsable } from "../config/settings/disease.js";
4
- import { resolveDefaultAgentName } from "../config/settings/knobs.js";
5
- import { loadKeiyakuSettings } from "../config/settings/loader.js";
6
- import { nativePolicyOwnership } from "../config/provider-policy-ownership.js";
7
- import { FlowError } from "../flow-error.js";
8
- import { PROVIDER_PORTABLE_POLICY } from "./providers/registry.js";
9
- const SUPPORTED_EXPLICIT = PROVIDER_PORTABLE_POLICY;
10
- export function formatAvailableAgentNames(names) {
11
- if (names.length === 0)
12
- return "(none configured)";
13
- return [...names].sort().join(", ");
14
- }
15
- /**
16
- * Reject the first present portable-policy axis that the adapter kind does not
17
- * support. Omitted axes are always legal and are never filled with defaults.
18
- */
19
- export function assertPortablePolicySupported(adapter, policy) {
20
- const supported = SUPPORTED_EXPLICIT[adapter];
21
- const checks = [
22
- ["access", policy.access],
23
- ["network", policy.network],
24
- ["webSearch", policy.webSearch],
25
- ];
26
- for (const [knob, value] of checks) {
27
- if (value === undefined)
28
- continue;
29
- const allowed = supported[knob];
30
- if (!allowed.has(value)) {
31
- throw new FlowError("UNSUPPORTED_POLICY", `Provider kind '${adapter}' does not support ${knob} '${value}'.`);
32
- }
33
- }
34
- }
35
- function assertPortablePolicyOwnership(akumaName, instanceName, instance, policy) {
36
- const ownership = nativePolicyOwnership(instanceName, instance);
37
- for (const axis of ["access", "network", "webSearch"]) {
38
- if (policy[axis] === undefined || ownership[axis].length === 0)
39
- continue;
40
- const settingsPaths = ownership[axis].map((owner) => `settings.${owner.path}`).join(", ");
41
- throw new FlowError("INVALID_SETTINGS", `Akuma '${akumaName}' declares frontmatter.${axis}, but provider instance '${instanceName}' also owns that policy at ${settingsPaths}. Remove one declaration.`);
42
- }
43
- }
44
- function isValidAkumaCandidate(candidate) {
45
- return !("reason" in candidate && candidate.reason !== undefined) && candidate.profile !== undefined && candidate.body !== undefined;
46
- }
47
- function freezeResolvedProfile(profile) {
48
- if (profile.effortOptions === undefined) {
49
- return Object.freeze({ ...profile });
50
- }
51
- return Object.freeze({
52
- ...profile,
53
- effortOptions: Object.freeze([...profile.effortOptions]),
54
- });
55
- }
56
- export async function selectSubagent(agentName, cwd) {
57
- const loaded = await loadKeiyakuSettings(cwd);
58
- assertSettingsKnobUsable(loaded, "agents");
59
- const settings = loaded.knobs;
60
- const requested = agentName?.trim();
61
- if (!requested && !getConfig().subagent.nameOverride) {
62
- assertSettingsKnobUsable(loaded, "default");
63
- }
64
- const selected = requested || getConfig().subagent.nameOverride || resolveDefaultAgentName(settings);
65
- const catalog = await loadAkumaCatalog(cwd);
66
- const availableNames = Object.keys(catalog.selected);
67
- const candidate = catalog.selected[selected];
68
- if (candidate === undefined) {
69
- throw new FlowError("UNKNOWN_SUBAGENT", `Unknown agent '${selected}'. Expected one of: ${formatAvailableAgentNames(availableNames)}`);
70
- }
71
- if (!isValidAkumaCandidate(candidate)) {
72
- throw new FlowError("INVALID_SETTINGS", `Akuma '${selected}' is invalid: ${candidate.reason}`);
73
- }
74
- const instanceName = candidate.profile.provider;
75
- const providerCandidate = loaded.providerInstances.selected[instanceName];
76
- if (providerCandidate === undefined) {
77
- throw new FlowError("INVALID_SETTINGS", `Akuma '${selected}' references missing provider instance '${instanceName}'.`);
78
- }
79
- if (!("instance" in providerCandidate) || providerCandidate.instance === undefined) {
80
- const source = providerCandidate.source === "global" ? "global" : "local";
81
- throw new FlowError("INVALID_SETTINGS", `Akuma '${selected}' references invalid provider instance '${instanceName}': ${providerCandidate.reason}`, {
82
- facts: {
83
- kind: "invalid_settings",
84
- diseases: [{
85
- source,
86
- coordinate: providerCandidate.coordinate,
87
- knob: "providers",
88
- reason: providerCandidate.reason,
89
- }],
90
- },
91
- });
92
- }
93
- const providerInstance = providerCandidate.instance;
94
- const adapter = providerInstance.kind;
95
- const portablePolicy = {
96
- ...(candidate.profile.access !== undefined ? { access: candidate.profile.access } : {}),
97
- ...(candidate.profile.network !== undefined ? { network: candidate.profile.network } : {}),
98
- ...(candidate.profile.webSearch !== undefined ? { webSearch: candidate.profile.webSearch } : {}),
99
- };
100
- assertPortablePolicyOwnership(selected, instanceName, providerInstance, portablePolicy);
101
- assertPortablePolicySupported(adapter, portablePolicy);
102
- const profile = freezeResolvedProfile({
103
- provider: instanceName,
104
- adapter,
105
- providerSource: providerCandidate.source,
106
- providerInstance,
107
- ...(candidate.profile.description !== undefined ? { description: candidate.profile.description } : {}),
108
- ...(candidate.profile.model !== undefined ? { model: candidate.profile.model } : {}),
109
- ...(candidate.profile.effort !== undefined ? { effort: candidate.profile.effort } : {}),
110
- ...(candidate.profile.effortOptions !== undefined ? { effortOptions: candidate.profile.effortOptions } : {}),
111
- ...(candidate.profile.access !== undefined ? { access: candidate.profile.access } : {}),
112
- ...(candidate.profile.network !== undefined ? { network: candidate.profile.network } : {}),
113
- ...(candidate.profile.webSearch !== undefined ? { webSearch: candidate.profile.webSearch } : {}),
114
- });
115
- return Object.freeze({
116
- name: selected,
117
- definition: candidate,
118
- profile,
119
- });
120
- }