@astrosheep/keiyaku 2.9.13 → 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 (670) hide show
  1. package/README.md +10 -130
  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 -32
  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 -5
  313. package/build/cli/commands/akuma/akuma/meta.js +0 -17
  314. package/build/cli/commands/akuma/catalog.js +0 -10
  315. package/build/cli/commands/akuma/list/handler.js +0 -15
  316. package/build/cli/commands/akuma/list/meta-list.js +0 -12
  317. package/build/cli/commands/akuma/list/meta-ls.js +0 -9
  318. package/build/cli/commands/akuma/show/handler.js +0 -27
  319. package/build/cli/commands/akuma/show/meta.js +0 -8
  320. package/build/cli/commands/akuma.js +0 -186
  321. package/build/cli/commands/contract/amend/handler.js +0 -17
  322. package/build/cli/commands/contract/amend/meta.js +0 -13
  323. package/build/cli/commands/contract/arc/handler.js +0 -16
  324. package/build/cli/commands/contract/arc/meta.js +0 -28
  325. package/build/cli/commands/contract/audit/handler.js +0 -42
  326. package/build/cli/commands/contract/audit/meta.js +0 -17
  327. package/build/cli/commands/contract/bind/handler.js +0 -39
  328. package/build/cli/commands/contract/bind/meta.js +0 -96
  329. package/build/cli/commands/contract/catalog.js +0 -18
  330. package/build/cli/commands/contract/forfeit/handler.js +0 -17
  331. package/build/cli/commands/contract/forfeit/meta.js +0 -12
  332. package/build/cli/commands/contract/log/handler.js +0 -12
  333. package/build/cli/commands/contract/log/meta.js +0 -12
  334. package/build/cli/commands/contract/petition/handler.js +0 -64
  335. package/build/cli/commands/contract/petition/meta.js +0 -23
  336. package/build/cli/commands/contract/renew/handler.js +0 -65
  337. package/build/cli/commands/contract/renew/meta.js +0 -19
  338. package/build/cli/commands/metadata.js +0 -68
  339. package/build/cli/commands/projection/call/handler.js +0 -43
  340. package/build/cli/commands/projection/call/meta.js +0 -12
  341. package/build/cli/commands/projection/catalog.js +0 -16
  342. package/build/cli/commands/projection/fork/handler.js +0 -61
  343. package/build/cli/commands/projection/fork/meta.js +0 -12
  344. package/build/cli/commands/projection/history/handler.js +0 -65
  345. package/build/cli/commands/projection/history/meta.js +0 -9
  346. package/build/cli/commands/projection/kill/handler.js +0 -20
  347. package/build/cli/commands/projection/kill/meta.js +0 -11
  348. package/build/cli/commands/projection/shared.js +0 -27
  349. package/build/cli/commands/projection/status/handler.js +0 -42
  350. package/build/cli/commands/projection/status/meta.js +0 -20
  351. package/build/cli/commands/projection/tell/handler.js +0 -32
  352. package/build/cli/commands/projection/tell/meta.js +0 -12
  353. package/build/cli/commands/projection/wait/handler.js +0 -80
  354. package/build/cli/commands/projection/wait/meta.js +0 -16
  355. package/build/cli/commands/registry.js +0 -48
  356. package/build/cli/commands/shared.js +0 -74
  357. package/build/cli/commands/skills/catalog.js +0 -6
  358. package/build/cli/commands/skills/install/handler.js +0 -7
  359. package/build/cli/commands/skills/install/meta.js +0 -9
  360. package/build/cli/commands/skills/skills/handler.js +0 -4
  361. package/build/cli/commands/skills/skills/meta.js +0 -10
  362. package/build/cli/commands/system/catalog.js +0 -10
  363. package/build/cli/commands/system/completion/handler.js +0 -10
  364. package/build/cli/commands/system/completion/meta.js +0 -9
  365. package/build/cli/commands/system/dump-env/handler.js +0 -3
  366. package/build/cli/commands/system/dump-env/meta.js +0 -10
  367. package/build/cli/commands/system/guide/handler.js +0 -4
  368. package/build/cli/commands/system/guide/meta.js +0 -9
  369. package/build/cli/commands/task/add/handler.js +0 -38
  370. package/build/cli/commands/task/add/meta.js +0 -31
  371. package/build/cli/commands/task/catalog.js +0 -32
  372. package/build/cli/commands/task/compose/handler.js +0 -18
  373. package/build/cli/commands/task/compose/meta.js +0 -10
  374. package/build/cli/commands/task/doctor/handler.js +0 -3
  375. package/build/cli/commands/task/doctor/meta.js +0 -8
  376. package/build/cli/commands/task/done/handler.js +0 -10
  377. package/build/cli/commands/task/done/meta.js +0 -8
  378. package/build/cli/commands/task/drop/handler.js +0 -8
  379. package/build/cli/commands/task/drop/meta.js +0 -11
  380. package/build/cli/commands/task/hold/handler.js +0 -3
  381. package/build/cli/commands/task/hold/meta.js +0 -8
  382. package/build/cli/commands/task/log/handler.js +0 -12
  383. package/build/cli/commands/task/log/meta.js +0 -8
  384. package/build/cli/commands/task/ls/handler.js +0 -17
  385. package/build/cli/commands/task/ls/meta.js +0 -8
  386. package/build/cli/commands/task/note/handler.js +0 -6
  387. package/build/cli/commands/task/note/meta.js +0 -11
  388. package/build/cli/commands/task/resume/handler.js +0 -3
  389. package/build/cli/commands/task/resume/meta.js +0 -8
  390. package/build/cli/commands/task/shared.js +0 -181
  391. package/build/cli/commands/task/show/handler.js +0 -13
  392. package/build/cli/commands/task/show/meta.js +0 -8
  393. package/build/cli/commands/task/start/handler.js +0 -3
  394. package/build/cli/commands/task/start/meta.js +0 -8
  395. package/build/cli/commands/task/stop/handler.js +0 -10
  396. package/build/cli/commands/task/stop/meta.js +0 -8
  397. package/build/cli/commands/task/task/handler.js +0 -5
  398. package/build/cli/commands/task/task/meta.js +0 -11
  399. package/build/cli/commands/task/update/handler.js +0 -21
  400. package/build/cli/commands/task/update/meta.js +0 -12
  401. package/build/cli/commands/verification/handler.js +0 -43
  402. package/build/cli/commands/verification/meta.js +0 -13
  403. package/build/cli/completion.js +0 -91
  404. package/build/cli/draft-artifact.js +0 -50
  405. package/build/cli/flags.js +0 -321
  406. package/build/cli/help.js +0 -99
  407. package/build/cli/index.js +0 -333
  408. package/build/cli/missing-subcommand.js +0 -7
  409. package/build/cli/output-stream-error-policy.js +0 -31
  410. package/build/cli/parse-flags.js +0 -301
  411. package/build/cli/parse-metadata.js +0 -132
  412. package/build/cli/parse-selectors.js +0 -83
  413. package/build/cli/parse.js +0 -250
  414. package/build/cli/projection-address.js +0 -105
  415. package/build/cli/render/address.js +0 -101
  416. package/build/cli/render/amendment-warning.js +0 -8
  417. package/build/cli/render/arc.js +0 -88
  418. package/build/cli/render/audit.js +0 -440
  419. package/build/cli/render/call.js +0 -70
  420. package/build/cli/render/compact-text.js +0 -3
  421. package/build/cli/render/errors.js +0 -101
  422. package/build/cli/render/format.js +0 -226
  423. package/build/cli/render/kanshi.js +0 -300
  424. package/build/cli/render/kill.js +0 -9
  425. package/build/cli/render/lifecycle.js +0 -56
  426. package/build/cli/render/line-width.js +0 -103
  427. package/build/cli/render/misc.js +0 -84
  428. package/build/cli/render/path-prefix-compaction.js +0 -131
  429. package/build/cli/render/petition.js +0 -85
  430. package/build/cli/render/projection-activity.js +0 -332
  431. package/build/cli/render/projection-history.js +0 -77
  432. package/build/cli/render/response-style.js +0 -27
  433. package/build/cli/render/shared.js +0 -232
  434. package/build/cli/render/skills.js +0 -10
  435. package/build/cli/render/status-indicator.js +0 -47
  436. package/build/cli/render/status.js +0 -243
  437. package/build/cli/render/success-response.js +0 -95
  438. package/build/cli/render/task.js +0 -175
  439. package/build/cli/render/tell.js +0 -11
  440. package/build/cli/render/terminal-failure.js +0 -65
  441. package/build/cli/render/tool-command-normalization.js +0 -137
  442. package/build/cli/render/tool-ledger-rollup.js +0 -74
  443. package/build/cli/render/tool-presentation.js +0 -98
  444. package/build/cli/render/types.js +0 -2
  445. package/build/cli/render/verification.js +0 -23
  446. package/build/cli/render/wait.js +0 -343
  447. package/build/cli/skills-install.js +0 -348
  448. package/build/cli/subagent-guard.js +0 -25
  449. package/build/cli/types.js +0 -2
  450. package/build/config/akuma-loader.js +0 -240
  451. package/build/config/env-keys.js +0 -57
  452. package/build/config/env.js +0 -304
  453. package/build/config/provider-policy-ownership.js +0 -10
  454. package/build/config/settings/disease.js +0 -33
  455. package/build/config/settings/knobs.js +0 -14
  456. package/build/config/settings/loader.js +0 -275
  457. package/build/config/settings/provider-instance-fields.js +0 -51
  458. package/build/config/settings/schema.js +0 -113
  459. package/build/core/address-carrier.js +0 -89
  460. package/build/core/addressing.js +0 -407
  461. package/build/core/amend.js +0 -321
  462. package/build/core/amendment-criteria.js +0 -17
  463. package/build/core/amendment-warning.js +0 -10
  464. package/build/core/arc.js +0 -293
  465. package/build/core/atomic-publish.js +0 -64
  466. package/build/core/audit/candidate.js +0 -141
  467. package/build/core/audit/coordinates.js +0 -230
  468. package/build/core/audit/evidence.js +0 -156
  469. package/build/core/audit/facade.js +0 -65
  470. package/build/core/audit/readiness.js +0 -4
  471. package/build/core/audit/report.js +0 -38
  472. package/build/core/audit.js +0 -1
  473. package/build/core/bind-reconciliation.js +0 -409
  474. package/build/core/bind-workspace.js +0 -115
  475. package/build/core/bind.js +0 -503
  476. package/build/core/call/call.js +0 -235
  477. package/build/core/call/context.js +0 -210
  478. package/build/core/call/execution.js +0 -255
  479. package/build/core/call/prompt.js +0 -27
  480. package/build/core/call/reference.js +0 -24
  481. package/build/core/call-persist.js +0 -76
  482. package/build/core/command-markdown.js +0 -45
  483. package/build/core/context.js +0 -104
  484. package/build/core/contract-carrier-runtime.js +0 -512
  485. package/build/core/contract-carrier.js +0 -353
  486. package/build/core/contract-view.js +0 -319
  487. package/build/core/contract.js +0 -19
  488. package/build/core/derived-replay.js +0 -340
  489. package/build/core/draft.js +0 -400
  490. package/build/core/execution-coordinate.js +0 -46
  491. package/build/core/execution-pact.js +0 -126
  492. package/build/core/forfeit.js +0 -132
  493. package/build/core/hints.js +0 -34
  494. package/build/core/identifier-slug.js +0 -116
  495. package/build/core/ids.js +0 -90
  496. package/build/core/lifecycle-history.js +0 -48
  497. package/build/core/lifecycle-recovery.js +0 -122
  498. package/build/core/lifecycle-runner.js +0 -377
  499. package/build/core/log.js +0 -50
  500. package/build/core/markdown/lex.js +0 -274
  501. package/build/core/markdown/parser.js +0 -260
  502. package/build/core/markdown/render.js +0 -68
  503. package/build/core/markdown/sections.js +0 -80
  504. package/build/core/markdown/titles.js +0 -9
  505. package/build/core/markdown/types.js +0 -6
  506. package/build/core/outcome-base.js +0 -185
  507. package/build/core/places.js +0 -175
  508. package/build/core/projection/akuma-name.js +0 -43
  509. package/build/core/projection/generation/database.js +0 -473
  510. package/build/core/projection/generation/identity.js +0 -84
  511. package/build/core/projection/generation/ledger.js +0 -91
  512. package/build/core/projection/generation/model.js +0 -261
  513. package/build/core/projection/generation/projection-generation-continuation.js +0 -84
  514. package/build/core/projection/generation/projection-generation-doorbell.js +0 -88
  515. package/build/core/projection/generation/projection-generation-execution.js +0 -241
  516. package/build/core/projection/generation/projection-generation-identity.js +0 -21
  517. package/build/core/projection/generation/projection-generation-launcher.js +0 -154
  518. package/build/core/projection/generation/projection-generation-process.js +0 -47
  519. package/build/core/projection/generation/projection-generation-runner.js +0 -489
  520. package/build/core/projection/generation/projection-generation-runtime.js +0 -46
  521. package/build/core/projection/generation/protocol.js +0 -68
  522. package/build/core/projection/generation/store.js +0 -108
  523. package/build/core/projection/generation/transitions.js +0 -463
  524. package/build/core/projection/heart.js +0 -9
  525. package/build/core/projection/index.js +0 -28
  526. package/build/core/projection/projection-activity.js +0 -273
  527. package/build/core/projection/projection-alias.js +0 -131
  528. package/build/core/projection/projection-coordinate.js +0 -61
  529. package/build/core/projection/projection-core.js +0 -127
  530. package/build/core/projection/projection-execution-observer.js +0 -270
  531. package/build/core/projection/projection-history.js +0 -474
  532. package/build/core/projection/projection-identity.js +0 -11
  533. package/build/core/projection/projection-kill.js +0 -112
  534. package/build/core/projection/projection-life-observer.js +0 -101
  535. package/build/core/projection/projection-mint.js +0 -170
  536. package/build/core/projection/projection-status-observation.js +0 -434
  537. package/build/core/projection/projection-status.js +0 -442
  538. package/build/core/projection/projection-terminal-failure.js +0 -111
  539. package/build/core/projection/projection-wait.js +0 -337
  540. package/build/core/projection/projection-wake.js +0 -298
  541. package/build/core/projection/tell/launch-store.js +0 -244
  542. package/build/core/projection/tell/model.js +0 -98
  543. package/build/core/projection/tell/store.js +0 -245
  544. package/build/core/provider-loader-ports.js +0 -4
  545. package/build/core/registry.js +0 -100
  546. package/build/core/renew-build.js +0 -554
  547. package/build/core/renew-plan.js +0 -264
  548. package/build/core/renew-rewrite.js +0 -118
  549. package/build/core/renew.js +0 -345
  550. package/build/core/repository-ledger/accepted-fold-read.js +0 -22
  551. package/build/core/repository-ledger/accepted-tail.js +0 -116
  552. package/build/core/repository-ledger/admission.js +0 -38
  553. package/build/core/repository-ledger/authoritative-transaction.js +0 -1
  554. package/build/core/repository-ledger/claim-evidence.js +0 -147
  555. package/build/core/repository-ledger/codec.js +0 -303
  556. package/build/core/repository-ledger/current-state-store.js +0 -968
  557. package/build/core/repository-ledger/fold-repository.js +0 -374
  558. package/build/core/repository-ledger/fold.js +0 -248
  559. package/build/core/repository-ledger/git-object-store.js +0 -243
  560. package/build/core/repository-ledger/history-read.js +0 -15
  561. package/build/core/repository-ledger/identity.js +0 -60
  562. package/build/core/repository-ledger/incremental-read.js +0 -153
  563. package/build/core/repository-ledger/index.js +0 -15
  564. package/build/core/repository-ledger/inventory-plan.js +0 -75
  565. package/build/core/repository-ledger/inventory.js +0 -310
  566. package/build/core/repository-ledger/publication-admission.js +0 -125
  567. package/build/core/repository-ledger/publication.js +0 -353
  568. package/build/core/repository-ledger/read-model.js +0 -517
  569. package/build/core/repository-ledger/transaction-membership.js +0 -78
  570. package/build/core/repository-ledger/traversal.js +0 -404
  571. package/build/core/repository-ledger/write-transaction.js +0 -346
  572. package/build/core/response-artifact-catalog-sqlite.js +0 -112
  573. package/build/core/response-artifact-catalog.js +0 -7
  574. package/build/core/response-artifact-id.js +0 -5
  575. package/build/core/run-control/connection-bound-close.js +0 -41
  576. package/build/core/run-control/detached-lease-bootstrap.js +0 -208
  577. package/build/core/run-control/detached-process.js +0 -14
  578. package/build/core/run-control/index.js +0 -6
  579. package/build/core/run-control/process-tree.js +0 -139
  580. package/build/core/run-control/runner-lease.js +0 -172
  581. package/build/core/run-control/sqlite-process-lifetime-lock.js +0 -174
  582. package/build/core/scope.js +0 -416
  583. package/build/core/seal.js +0 -364
  584. package/build/core/settlement/claim-delivery.js +0 -82
  585. package/build/core/settlement/claim.js +0 -258
  586. package/build/core/settlement/index.js +0 -19
  587. package/build/core/settlement/petition-claim-gates.js +0 -247
  588. package/build/core/settlement/petition-forfeit.js +0 -46
  589. package/build/core/settlement/petition-head-guard.js +0 -12
  590. package/build/core/settlement/petition-io.js +0 -1
  591. package/build/core/settlement/petition-preview.js +0 -125
  592. package/build/core/settlement/petition-window.js +0 -50
  593. package/build/core/settlement/petition.js +0 -315
  594. package/build/core/settlement/queue-read-model.js +0 -120
  595. package/build/core/settlement/queue-seat-allocation.js +0 -65
  596. package/build/core/settlement/queue.js +0 -6
  597. package/build/core/settlement/settlement.js +0 -385
  598. package/build/core/settlement/verdict.js +0 -126
  599. package/build/core/settlement/verification.js +0 -554
  600. package/build/core/status/board.js +0 -455
  601. package/build/core/status/drift.js +0 -113
  602. package/build/core/status/lifecycle.js +0 -11
  603. package/build/core/stored-agent-event.js +0 -129
  604. package/build/core/structured-query.js +0 -23
  605. package/build/core/target-ref.js +0 -10
  606. package/build/core/task/board.js +0 -248
  607. package/build/core/task/commands.js +0 -401
  608. package/build/core/task/compose.js +0 -328
  609. package/build/core/task/coordinate.js +0 -56
  610. package/build/core/task/document.js +0 -273
  611. package/build/core/task/index.js +0 -16
  612. package/build/core/task/model.js +0 -8
  613. package/build/core/task/query.js +0 -204
  614. package/build/core/task/settlement-git.js +0 -423
  615. package/build/core/task/settlement-policy.js +0 -137
  616. package/build/core/task/source-board.js +0 -104
  617. package/build/core/task/source-model.js +0 -1
  618. package/build/core/task/task-bind-preparation.js +0 -243
  619. package/build/core/task/task-contract.js +0 -371
  620. package/build/core/task/task-doctor.js +0 -14
  621. package/build/core/task/task-file-transaction.js +0 -171
  622. package/build/core/task/task-git-actor.js +0 -33
  623. package/build/core/task/task-git-runtime.js +0 -97
  624. package/build/core/task/task-git-store.js +0 -400
  625. package/build/core/task/task-repository.js +0 -1
  626. package/build/core/task/task-store-repository.js +0 -97
  627. package/build/core/task/task-store.js +0 -1
  628. package/build/core/task/task-worktree.js +0 -25
  629. package/build/core/task/task.js +0 -7
  630. package/build/core/task/tree.js +0 -37
  631. package/build/core/task/validation.js +0 -48
  632. package/build/core/transcripts.js +0 -485
  633. package/build/core/validation.js +0 -17
  634. package/build/core/verification-declaration.js +0 -95
  635. package/build/core/worktree-bootstrap.js +0 -195
  636. package/build/core/worktree-path.js +0 -371
  637. package/build/errno.js +0 -3
  638. package/build/flow-error.js +0 -191
  639. package/build/fs/durability.js +0 -27
  640. package/build/fs/path-coordinate.js +0 -16
  641. package/build/generated/version.js +0 -3
  642. package/build/git/branches.js +0 -84
  643. package/build/git/commits.js +0 -151
  644. package/build/git/core.js +0 -86
  645. package/build/git/diff/parsers.js +0 -181
  646. package/build/git/diff/pathspec.js +0 -3
  647. package/build/git/diff/preview.js +0 -38
  648. package/build/git/diff/read.js +0 -105
  649. package/build/git/diff/structured.js +0 -127
  650. package/build/git/diff/types.js +0 -1
  651. package/build/git/path-coordinate.js +0 -17
  652. package/build/git/process.js +0 -229
  653. package/build/git/refs.js +0 -250
  654. package/build/git/staging.js +0 -79
  655. package/build/git/streaming-batch.js +0 -354
  656. package/build/git/worktree.js +0 -175
  657. package/build/index.js +0 -67
  658. package/build/keiyaku-constants.js +0 -2
  659. package/build/keiyaku.js +0 -30
  660. package/build/telemetry/debug-log.js +0 -40
  661. package/build/telemetry/logger.js +0 -48
  662. package/skills/keiyaku/SKILL.md +0 -46
  663. package/skills/keiyaku-akuma/SKILL.md +0 -97
  664. package/skills/keiyaku-task/SKILL.md +0 -118
  665. package/skills/keiyaku-workflow/SKILL.md +0 -191
  666. /package/build/{agents/launch-snapshot → src/body}/types.js +0 -0
  667. /package/build/{agents/providers/claude-agent-sdk/terms.js → src/cli/result.js} +0 -0
  668. /package/build/{agents/providers/codex-app-server/terms.js → src/core/decide.js} +0 -0
  669. /package/build/{agents/providers/opencode-sdk/terms.js → src/core/facts/offer.js} +0 -0
  670. /package/build/{agents/providers/pi/terms.js → src/kanshi/report.js} +0 -0
@@ -1,304 +0,0 @@
1
- import * as fs from "node:fs";
2
- import * as os from "node:os";
3
- import * as path from "node:path";
4
- import { z } from "zod";
5
- import { isErrnoException } from "../errno.js";
6
- import { ENV_KEYS, getEnvDefaultValue } from "./env-keys.js";
7
- import { configureResponseArtifactCatalog } from "../core/response-artifact-catalog.js";
8
- import { createSqliteResponseArtifactCatalog } from "../core/response-artifact-catalog-sqlite.js";
9
- function readEnvHome(env = process.env) {
10
- const value = env.KEIYAKU_HOME?.trim();
11
- return value && value.length > 0 ? value : undefined;
12
- }
13
- export function getKeiyakuHome(env = process.env) {
14
- return readEnvHome(env) ?? path.join(os.homedir(), ".keiyaku");
15
- }
16
- const DOTENV_FILE = ".env";
17
- function decodeQuotedValue(raw) {
18
- if (raw.length < 2)
19
- return raw;
20
- const quote = raw[0];
21
- if ((quote !== "\"" && quote !== "'") || raw[raw.length - 1] !== quote)
22
- return raw;
23
- const inner = raw.slice(1, -1);
24
- if (quote === "'")
25
- return inner;
26
- return inner.replace(/\\([\\nrt"])/g, (_match, ch) => {
27
- if (ch === "n")
28
- return "\n";
29
- if (ch === "r")
30
- return "\r";
31
- if (ch === "t")
32
- return "\t";
33
- if (ch === "\"")
34
- return "\"";
35
- return "\\";
36
- });
37
- }
38
- function parseDotenv(text) {
39
- const env = {};
40
- for (const rawLine of text.split(/\r?\n/)) {
41
- const line = rawLine.trim();
42
- if (!line || line.startsWith("#"))
43
- continue;
44
- const cleaned = line.startsWith("export ") ? line.slice("export ".length).trim() : line;
45
- const eq = cleaned.indexOf("=");
46
- if (eq <= 0)
47
- continue;
48
- const key = cleaned.slice(0, eq).trim();
49
- const value = cleaned.slice(eq + 1).trim();
50
- if (!key)
51
- continue;
52
- env[key] = decodeQuotedValue(value);
53
- }
54
- return env;
55
- }
56
- function readOptionalDotenv(filePath) {
57
- try {
58
- return parseDotenv(fs.readFileSync(filePath, "utf8"));
59
- }
60
- catch (error) {
61
- if (isErrnoException(error) && error.code === "ENOENT") {
62
- return {};
63
- }
64
- throw error;
65
- }
66
- }
67
- function loadKeiyakuDotenv(cwd = process.cwd()) {
68
- return Object.freeze({
69
- ...readOptionalDotenv(path.join(getKeiyakuHome(), DOTENV_FILE)),
70
- ...readOptionalDotenv(path.join(cwd, ".keiyaku", DOTENV_FILE)),
71
- });
72
- }
73
- function parsePositiveInt(value, key) {
74
- const trimmed = value.trim();
75
- const parsed = Number.parseInt(trimmed, 10);
76
- if (!Number.isFinite(parsed) || parsed <= 0) {
77
- throw new Error(`${key} must be a positive integer, received '${value}'.`);
78
- }
79
- return parsed;
80
- }
81
- function positiveIntEnv(key) {
82
- return z
83
- .string()
84
- .default(getEnvDefaultValue(key))
85
- .transform((value, ctx) => {
86
- try {
87
- return parsePositiveInt(value, key);
88
- }
89
- catch (error) {
90
- ctx.addIssue({
91
- code: z.ZodIssueCode.custom,
92
- message: error instanceof Error ? error.message : `Invalid ${key}`,
93
- });
94
- return z.NEVER;
95
- }
96
- });
97
- }
98
- function strictPositiveIntEnv(key) {
99
- return z
100
- .string()
101
- .default(getEnvDefaultValue(key))
102
- .transform((value, ctx) => {
103
- const trimmed = value.trim();
104
- const parsed = Number(trimmed);
105
- if (/^\d+$/.test(trimmed) && Number.isSafeInteger(parsed) && parsed > 0)
106
- return parsed;
107
- ctx.addIssue({
108
- code: z.ZodIssueCode.custom,
109
- message: `${key} must be a positive integer, received '${value}'.`,
110
- });
111
- return z.NEVER;
112
- });
113
- }
114
- function parseNonNegativeInt(value, key) {
115
- const trimmed = value.trim();
116
- const parsed = Number.parseInt(trimmed, 10);
117
- if (!Number.isFinite(parsed) || parsed < 0) {
118
- throw new Error(`${key} must be a non-negative integer, received '${value}'.`);
119
- }
120
- return parsed;
121
- }
122
- function nonNegativeIntEnv(key) {
123
- return z
124
- .string()
125
- .default(getEnvDefaultValue(key))
126
- .transform((value, ctx) => {
127
- try {
128
- return parseNonNegativeInt(value, key);
129
- }
130
- catch (error) {
131
- ctx.addIssue({
132
- code: z.ZodIssueCode.custom,
133
- message: error instanceof Error ? error.message : `Invalid ${key}`,
134
- });
135
- return z.NEVER;
136
- }
137
- });
138
- }
139
- function booleanFlagEnv(key) {
140
- return z
141
- .string()
142
- .default(getEnvDefaultValue(key))
143
- .transform((value, ctx) => {
144
- const normalized = value.trim().toLowerCase();
145
- if (["1", "true", "yes", "on"].includes(normalized))
146
- return true;
147
- if (["0", "false", "no", "off"].includes(normalized))
148
- return false;
149
- ctx.addIssue({
150
- code: z.ZodIssueCode.custom,
151
- message: `${key} must be one of 1/0, true/false, yes/no, on/off. Received '${value}'.`,
152
- });
153
- return z.NEVER;
154
- });
155
- }
156
- const subagentSchema = z.object({
157
- nameOverride: z.string().default(getEnvDefaultValue(ENV_KEYS.AGENT_OVERRIDE)).transform((value) => value.trim()),
158
- disableSpawn: booleanFlagEnv(ENV_KEYS.DISABLE_SUBAGENT_SPAWN),
159
- execIdleTimeoutMs: positiveIntEnv(ENV_KEYS.SUBAGENT_EXEC_IDLE_TIMEOUT_MS),
160
- execMaxDurationMs: nonNegativeIntEnv(ENV_KEYS.SUBAGENT_EXEC_MAX_DURATION_MS),
161
- });
162
- const codexSchema = z.object({
163
- execMaxCaptureChars: positiveIntEnv(ENV_KEYS.CODEX_EXEC_MAX_CAPTURE_CHARS),
164
- });
165
- const claudeSchema = z.object({
166
- execMaxCaptureChars: positiveIntEnv(ENV_KEYS.CLAUDE_EXEC_MAX_CAPTURE_CHARS),
167
- });
168
- const opencodeSchema = z.object({
169
- execMaxCaptureChars: positiveIntEnv(ENV_KEYS.OPENCODE_EXEC_MAX_CAPTURE_CHARS),
170
- });
171
- const debugSchema = z.object({
172
- logPath: z.string().default(getEnvDefaultValue(ENV_KEYS.DEBUG_LOG_PATH)).transform((value) => value.trim()),
173
- testSilent: booleanFlagEnv(ENV_KEYS.TEST_SILENT),
174
- });
175
- const gitSchema = z.object({
176
- timeoutMs: positiveIntEnv(ENV_KEYS.GIT_TIMEOUT_MS),
177
- noVerify: booleanFlagEnv(ENV_KEYS.GIT_NO_VERIFY),
178
- noGpgSign: booleanFlagEnv(ENV_KEYS.GIT_NO_GPG_SIGN),
179
- });
180
- const reviewSchema = z.object({
181
- enabled: booleanFlagEnv(ENV_KEYS.REVIEW_ENABLED),
182
- minLines: nonNegativeIntEnv(ENV_KEYS.REVIEW_MIN_LINES),
183
- resumeSession: booleanFlagEnv(ENV_KEYS.REVIEW_RESUME_SESSION),
184
- });
185
- const amendmentWarningSchema = z.object({
186
- threshold: strictPositiveIntEnv(ENV_KEYS.AMENDMENT_WARNING_THRESHOLD),
187
- });
188
- const terminalSchema = z.object({
189
- noColor: z.string().optional(),
190
- forceColor: z.string().optional(),
191
- term: z.string().optional(),
192
- });
193
- const envSchema = z
194
- .object({
195
- [ENV_KEYS.AGENT_OVERRIDE]: z.string().optional(),
196
- [ENV_KEYS.DISABLE_SUBAGENT_SPAWN]: z.string().optional(),
197
- [ENV_KEYS.SUBAGENT_EXEC_IDLE_TIMEOUT_MS]: z.string().optional(),
198
- [ENV_KEYS.SUBAGENT_EXEC_MAX_DURATION_MS]: z.string().optional(),
199
- [ENV_KEYS.CODEX_EXEC_MAX_CAPTURE_CHARS]: z.string().optional(),
200
- [ENV_KEYS.CLAUDE_EXEC_MAX_CAPTURE_CHARS]: z.string().optional(),
201
- [ENV_KEYS.OPENCODE_EXEC_MAX_CAPTURE_CHARS]: z.string().optional(),
202
- [ENV_KEYS.DEBUG_LOG_PATH]: z.string().optional(),
203
- [ENV_KEYS.TEST_SILENT]: z.string().optional(),
204
- [ENV_KEYS.GIT_TIMEOUT_MS]: z.string().optional(),
205
- [ENV_KEYS.GIT_NO_VERIFY]: z.string().optional(),
206
- [ENV_KEYS.GIT_NO_GPG_SIGN]: z.string().optional(),
207
- [ENV_KEYS.REVIEW_ENABLED]: z.string().optional(),
208
- [ENV_KEYS.REVIEW_MIN_LINES]: z.string().optional(),
209
- [ENV_KEYS.REVIEW_RESUME_SESSION]: z.string().optional(),
210
- [ENV_KEYS.AMENDMENT_WARNING_THRESHOLD]: z.string().optional(),
211
- NO_COLOR: z.string().optional(),
212
- FORCE_COLOR: z.string().optional(),
213
- TERM: z.string().optional(),
214
- })
215
- .transform((rawEnv) => ({
216
- subagent: subagentSchema.parse({
217
- nameOverride: rawEnv[ENV_KEYS.AGENT_OVERRIDE],
218
- disableSpawn: rawEnv[ENV_KEYS.DISABLE_SUBAGENT_SPAWN],
219
- execIdleTimeoutMs: rawEnv[ENV_KEYS.SUBAGENT_EXEC_IDLE_TIMEOUT_MS],
220
- execMaxDurationMs: rawEnv[ENV_KEYS.SUBAGENT_EXEC_MAX_DURATION_MS],
221
- }),
222
- codex: codexSchema.parse({
223
- execMaxCaptureChars: rawEnv[ENV_KEYS.CODEX_EXEC_MAX_CAPTURE_CHARS],
224
- }),
225
- claude: claudeSchema.parse({
226
- execMaxCaptureChars: rawEnv[ENV_KEYS.CLAUDE_EXEC_MAX_CAPTURE_CHARS],
227
- }),
228
- opencode: opencodeSchema.parse({
229
- execMaxCaptureChars: rawEnv[ENV_KEYS.OPENCODE_EXEC_MAX_CAPTURE_CHARS],
230
- }),
231
- debug: debugSchema.parse({
232
- logPath: rawEnv[ENV_KEYS.DEBUG_LOG_PATH],
233
- testSilent: rawEnv[ENV_KEYS.TEST_SILENT],
234
- }),
235
- git: gitSchema.parse({
236
- timeoutMs: rawEnv[ENV_KEYS.GIT_TIMEOUT_MS],
237
- noVerify: rawEnv[ENV_KEYS.GIT_NO_VERIFY],
238
- noGpgSign: rawEnv[ENV_KEYS.GIT_NO_GPG_SIGN],
239
- }),
240
- review: reviewSchema.parse({
241
- enabled: rawEnv[ENV_KEYS.REVIEW_ENABLED],
242
- minLines: rawEnv[ENV_KEYS.REVIEW_MIN_LINES],
243
- resumeSession: rawEnv[ENV_KEYS.REVIEW_RESUME_SESSION],
244
- }),
245
- amendmentWarning: amendmentWarningSchema.parse({
246
- threshold: rawEnv[ENV_KEYS.AMENDMENT_WARNING_THRESHOLD],
247
- }),
248
- terminal: terminalSchema.parse({
249
- noColor: rawEnv.NO_COLOR,
250
- forceColor: rawEnv.FORCE_COLOR,
251
- term: rawEnv.TERM,
252
- }),
253
- }));
254
- function deepFreeze(value) {
255
- if (Array.isArray(value)) {
256
- for (const item of value) {
257
- if (item && typeof item === "object") {
258
- deepFreeze(item);
259
- }
260
- }
261
- }
262
- else if (value && typeof value === "object") {
263
- for (const child of Object.values(value)) {
264
- if (child && typeof child === "object") {
265
- deepFreeze(child);
266
- }
267
- }
268
- }
269
- return Object.freeze(value);
270
- }
271
- function snapshotEnv(env) {
272
- const snapshot = {};
273
- for (const [key, value] of Object.entries(env)) {
274
- if (typeof value === "string") {
275
- snapshot[key] = value;
276
- }
277
- }
278
- return Object.freeze(snapshot);
279
- }
280
- let activeConfig;
281
- export function initializeConfig(env = process.env, cwd = process.cwd()) {
282
- const dotenvEnv = loadKeiyakuDotenv(cwd);
283
- // `.keiyaku/.env` provides local defaults; real process env always wins.
284
- const parsed = envSchema.parse({ ...dotenvEnv, ...env });
285
- const frozen = deepFreeze(parsed);
286
- const runtimeConfig = Object.freeze({
287
- ...frozen,
288
- runtimeEnv: snapshotEnv({ ...dotenvEnv, ...env }),
289
- });
290
- activeConfig = runtimeConfig;
291
- const homeEnv = { ...process.env, ...env };
292
- configureResponseArtifactCatalog(createSqliteResponseArtifactCatalog({ keiyakuHome: getKeiyakuHome(homeEnv) }));
293
- return runtimeConfig;
294
- }
295
- export function getConfig() {
296
- if (!activeConfig) {
297
- throw new Error("Config has not been initialized. Call initializeConfig() before using getConfig().");
298
- }
299
- return activeConfig;
300
- }
301
- export function resetConfigForTests() {
302
- activeConfig = undefined;
303
- configureResponseArtifactCatalog(undefined);
304
- }
@@ -1,10 +0,0 @@
1
- import { getProviderRegistration } from "../agents/providers/registry.js";
2
- const EMPTY_OWNERSHIP = Object.freeze({
3
- access: Object.freeze([]),
4
- network: Object.freeze([]),
5
- webSearch: Object.freeze([]),
6
- });
7
- export function nativePolicyOwnership(instanceName, instance) {
8
- const owned = getProviderRegistration(instance.kind).nativePolicyOwnership(instanceName, instance);
9
- return owned ?? EMPTY_OWNERSHIP;
10
- }
@@ -1,33 +0,0 @@
1
- import { FlowError } from "../../flow-error.js";
2
- export function findSettingsDiseasesForKnob(diseases, knob) {
3
- return diseases.filter((disease) => disease.knob === knob || disease.knob === undefined);
4
- }
5
- export function formatSettingsDiseases(diseases) {
6
- return diseases.map((disease) => {
7
- const where = disease.knob ? `${disease.coordinate}:${disease.knob}` : `${disease.coordinate}:(root)`;
8
- return `${where}: ${disease.reason}`;
9
- });
10
- }
11
- /**
12
- * Reject when a named knob is diseased and was not admitted into knobs.
13
- * A healthy value from another source still wins; only failed-and-unset knobs reject.
14
- */
15
- export function assertSettingsKnobUsable(loaded, knob) {
16
- const knobs = loaded.knobs;
17
- if (knobs !== null && knobs[knob] !== undefined)
18
- return;
19
- const hits = findSettingsDiseasesForKnob(loaded.diseases, knob);
20
- if (hits.length === 0)
21
- return;
22
- throw new FlowError("INVALID_SETTINGS", `Invalid settings for diseased knob '${knob}'.`, {
23
- facts: {
24
- kind: "invalid_settings",
25
- diseases: hits.map((disease) => ({
26
- source: disease.source,
27
- coordinate: disease.coordinate,
28
- ...(disease.knob !== undefined ? { knob: disease.knob } : {}),
29
- reason: disease.reason,
30
- })),
31
- },
32
- });
33
- }
@@ -1,14 +0,0 @@
1
- export const PROJECTION_ADOPTION_TIMEOUT_DEFAULT_MS = 30_000;
2
- export const PROJECTION_ADOPTION_TIMEOUT_MIN_MS = 1_000;
3
- export const PROJECTION_ADOPTION_TIMEOUT_MAX_MS = 600_000;
4
- export const KNOWN_SETTINGS_KNOBS = ["default", "reviewer", "gate", "defaultBranch", "worktreeBootstrap", "projectionAdoptionTimeoutMs"];
5
- export const KNOWN_SETTINGS_ROOT_KEYS = [...KNOWN_SETTINGS_KNOBS, "providers"];
6
- export function resolveProjectionAdoptionTimeoutMs(settings) {
7
- return settings?.projectionAdoptionTimeoutMs ?? PROJECTION_ADOPTION_TIMEOUT_DEFAULT_MS;
8
- }
9
- export function resolveDefaultAgentName(settings) {
10
- return settings?.default ?? "akuma-codex";
11
- }
12
- export function resolveReviewerAgentName(settings) {
13
- return settings?.reviewer ?? resolveDefaultAgentName(settings);
14
- }
@@ -1,275 +0,0 @@
1
- import * as fs from "node:fs/promises";
2
- import * as path from "node:path";
3
- import { getProviderRegistration } from "../../agents/providers/registry.js";
4
- import { isErrnoException } from "../../errno.js";
5
- import { SETTINGS_FILE } from "../../keiyaku.js";
6
- import { getKeiyakuHome } from "../env.js";
7
- import { KNOWN_SETTINGS_KNOBS, KNOWN_SETTINGS_ROOT_KEYS } from "./knobs.js";
8
- import { BUILTIN_PROVIDER_INSTANCE_CANDIDATES, knobSchemas, providerInstanceNameSchema, providerInstanceSchema, } from "./schema.js";
9
- function isPlainObject(value) {
10
- return typeof value === "object" && value !== null && !Array.isArray(value);
11
- }
12
- function deepMerge(base, override) {
13
- if (!isPlainObject(base) || !isPlainObject(override)) {
14
- return override;
15
- }
16
- const merged = { ...base };
17
- for (const [key, value] of Object.entries(override)) {
18
- merged[key] = key in merged ? deepMerge(merged[key], value) : value;
19
- }
20
- return merged;
21
- }
22
- function formatZodIssues(error) {
23
- return error.issues
24
- .map((issue) => `${issue.path.join(".") || "(root)"}: ${issue.message}`)
25
- .join("; ");
26
- }
27
- async function readSettingsSource(filePath) {
28
- try {
29
- const text = await fs.readFile(filePath, "utf-8");
30
- try {
31
- return { found: true, raw: JSON.parse(text) };
32
- }
33
- catch (error) {
34
- const reason = error instanceof SyntaxError
35
- ? `invalid JSON: ${error.message}`
36
- : error instanceof Error
37
- ? error.message
38
- : String(error);
39
- return { found: true, raw: undefined, parseError: reason };
40
- }
41
- }
42
- catch (error) {
43
- if (isErrnoException(error) && error.code === "ENOENT") {
44
- return { found: false };
45
- }
46
- const reason = error instanceof Error ? error.message : String(error);
47
- return { found: true, raw: undefined, parseError: reason };
48
- }
49
- }
50
- function builtinProviderInstanceCatalog() {
51
- return { selected: { ...BUILTIN_PROVIDER_INSTANCE_CANDIDATES }, shadows: [] };
52
- }
53
- function formatProviderInstanceIssues(name, error) {
54
- return error.issues
55
- .map((issue) => {
56
- const suffix = issue.path.length === 0 ? "" : `.${issue.path.join(".")}`;
57
- return `providers.${name}${suffix}: ${issue.message}`;
58
- })
59
- .join("; ");
60
- }
61
- function collectProviderCandidates(settingsSource, providerSource, rawProviders) {
62
- if (!isPlainObject(rawProviders)) {
63
- return {
64
- candidates: [],
65
- disease: { ...settingsSource, knob: "providers", reason: "providers: must be a JSON object" },
66
- };
67
- }
68
- const candidates = [];
69
- for (const [name, rawInstance] of Object.entries(rawProviders)) {
70
- const nameResult = providerInstanceNameSchema.safeParse(name);
71
- if (!nameResult.success) {
72
- candidates.push({
73
- name,
74
- source: providerSource,
75
- coordinate: settingsSource.coordinate,
76
- reason: formatProviderInstanceIssues(name, nameResult.error),
77
- });
78
- continue;
79
- }
80
- const instanceResult = providerInstanceSchema.safeParse(rawInstance);
81
- if (!instanceResult.success) {
82
- candidates.push({
83
- name,
84
- source: providerSource,
85
- coordinate: settingsSource.coordinate,
86
- reason: formatProviderInstanceIssues(name, instanceResult.error),
87
- });
88
- continue;
89
- }
90
- const instance = instanceResult.data;
91
- const registration = getProviderRegistration(instance.kind);
92
- const writableRoots = registration.rejectsGlobalWritableRoots &&
93
- instance &&
94
- typeof instance === "object" &&
95
- "writableRoots" in instance
96
- ? instance.writableRoots
97
- : undefined;
98
- if (writableRoots !== undefined && providerSource === "global") {
99
- let relativeIndex;
100
- for (let i = 0; i < writableRoots.length; i++) {
101
- if (!path.posix.isAbsolute(writableRoots[i])) {
102
- relativeIndex = i;
103
- break;
104
- }
105
- }
106
- if (relativeIndex !== undefined) {
107
- candidates.push({
108
- name,
109
- source: providerSource,
110
- coordinate: settingsSource.coordinate,
111
- reason: `providers.${name}.writableRoots.${relativeIndex}: writableRoots item must be an absolute path for global provider instances`,
112
- });
113
- continue;
114
- }
115
- }
116
- candidates.push({ name, source: providerSource, coordinate: settingsSource.coordinate, instance: instanceResult.data });
117
- }
118
- return { candidates };
119
- }
120
- function mergeProviderCandidates(catalog, candidates) {
121
- const selected = { ...catalog.selected };
122
- const shadows = [...catalog.shadows];
123
- for (const candidate of candidates) {
124
- const prior = selected[candidate.name];
125
- if (prior !== undefined) {
126
- shadows.push({ name: candidate.name, source: prior.source, shadowedBy: candidate.source });
127
- }
128
- selected[candidate.name] = candidate;
129
- }
130
- return { selected, shadows };
131
- }
132
- function collectSourceDiseases(settingsSource, providerSource, read) {
133
- if (!read.found) {
134
- return { settingsSource, partial: {}, diseases: [], providerCandidates: [] };
135
- }
136
- if (read.parseError !== undefined) {
137
- return {
138
- settingsSource,
139
- partial: {},
140
- diseases: [{ ...settingsSource, reason: `settings root is unreadable (${read.parseError})` }],
141
- providerCandidates: [],
142
- };
143
- }
144
- if (!isPlainObject(read.raw)) {
145
- return {
146
- settingsSource,
147
- partial: {},
148
- diseases: [{ ...settingsSource, reason: "settings root must be a JSON object" }],
149
- providerCandidates: [],
150
- };
151
- }
152
- const diseases = [];
153
- const partial = {};
154
- let providerCandidates = [];
155
- const raw = read.raw;
156
- for (const key of Object.keys(raw)) {
157
- if (!KNOWN_SETTINGS_ROOT_KEYS.includes(key)) {
158
- diseases.push({
159
- ...settingsSource,
160
- knob: key,
161
- reason: key === "agents"
162
- ? 'settings key "agents" has been removed; define profiles in .keiyaku/akuma/<name>.md'
163
- : `unknown settings key "${key}"`,
164
- });
165
- }
166
- }
167
- if ("providers" in raw) {
168
- const collectedProviders = collectProviderCandidates(settingsSource, providerSource, raw.providers);
169
- providerCandidates = collectedProviders.candidates;
170
- if (collectedProviders.disease !== undefined)
171
- diseases.push(collectedProviders.disease);
172
- }
173
- for (const knob of KNOWN_SETTINGS_KNOBS) {
174
- if (!(knob in raw))
175
- continue;
176
- // worktreeBootstrap is project-layer only. Global/user presence is a named
177
- // disease and never contributes execution authority.
178
- if (knob === "worktreeBootstrap" && settingsSource.source === "global") {
179
- diseases.push({
180
- ...settingsSource,
181
- knob,
182
- reason: "worktreeBootstrap is project-only and never supplies a value from global settings",
183
- });
184
- continue;
185
- }
186
- const schema = knobSchemas[knob];
187
- const result = schema.safeParse(raw[knob]);
188
- if (!result.success) {
189
- diseases.push({
190
- ...settingsSource,
191
- knob,
192
- reason: formatZodIssues(result.error),
193
- });
194
- continue;
195
- }
196
- if (result.data === undefined)
197
- continue;
198
- partial[knob] = result.data;
199
- }
200
- return { settingsSource, partial, diseases, providerCandidates };
201
- }
202
- function mergeSettingsKnobs(base, override) {
203
- // worktreeBootstrap is whole-value project authority; never field-merge it.
204
- const { worktreeBootstrap: baseBootstrap, ...baseRest } = base;
205
- const { worktreeBootstrap: overrideBootstrap, ...overrideRest } = override;
206
- const mergedRaw = deepMerge(baseRest, overrideRest);
207
- if (!isPlainObject(mergedRaw)) {
208
- return overrideBootstrap !== undefined
209
- ? { ...override, worktreeBootstrap: overrideBootstrap }
210
- : { ...override };
211
- }
212
- const merged = {};
213
- for (const knob of KNOWN_SETTINGS_KNOBS) {
214
- if (knob === "worktreeBootstrap")
215
- continue;
216
- if (knob in mergedRaw) {
217
- merged[knob] = mergedRaw[knob];
218
- }
219
- }
220
- const bootstrap = overrideBootstrap ?? baseBootstrap;
221
- if (bootstrap !== undefined)
222
- merged.worktreeBootstrap = bootstrap;
223
- return merged;
224
- }
225
- function collectKnobSources(global, local) {
226
- const sources = {};
227
- for (const knob of KNOWN_SETTINGS_KNOBS) {
228
- if (global.partial[knob] !== undefined)
229
- sources[knob] = global.settingsSource;
230
- if (local.partial[knob] !== undefined)
231
- sources[knob] = local.settingsSource;
232
- }
233
- return sources;
234
- }
235
- export async function loadKeiyakuSettings(cwd) {
236
- const localSettingsPath = path.join(cwd, SETTINGS_FILE);
237
- const globalSettingsPath = path.join(getKeiyakuHome(), path.basename(SETTINGS_FILE));
238
- const globalSource = { source: "global", coordinate: globalSettingsPath };
239
- const localSource = { source: "local", coordinate: localSettingsPath };
240
- let globalRead;
241
- let localRead;
242
- try {
243
- [globalRead, localRead] = await Promise.all([
244
- readSettingsSource(globalSettingsPath),
245
- readSettingsSource(localSettingsPath),
246
- ]);
247
- }
248
- catch (error) {
249
- // loadKeiyakuSettings never throws; unexpected I/O becomes a local root disease.
250
- const reason = error instanceof Error ? error.message : String(error);
251
- return {
252
- knobs: null,
253
- diseases: [{ ...localSource, reason: `settings root is unreadable (${reason})` }],
254
- knobSources: {},
255
- providerInstances: builtinProviderInstanceCatalog(),
256
- };
257
- }
258
- const globalCollected = collectSourceDiseases(globalSource, "global", globalRead);
259
- const localCollected = collectSourceDiseases(localSource, "project", localRead);
260
- const diseases = [...globalCollected.diseases, ...localCollected.diseases];
261
- let providerInstances = builtinProviderInstanceCatalog();
262
- providerInstances = mergeProviderCandidates(providerInstances, globalCollected.providerCandidates);
263
- providerInstances = mergeProviderCandidates(providerInstances, localCollected.providerCandidates);
264
- let knobs = null;
265
- if (globalRead.found || localRead.found) {
266
- knobs = mergeSettingsKnobs(globalCollected.partial, localCollected.partial);
267
- }
268
- // Empty object still means "settings files were present"; callers treat null as absent files.
269
- return {
270
- knobs,
271
- diseases,
272
- knobSources: collectKnobSources(globalCollected, localCollected),
273
- providerInstances,
274
- };
275
- }
@@ -1,51 +0,0 @@
1
- import { z } from "zod";
2
- // Local leaf copy of the Claude setting-source vocabulary so this module never
3
- // imports keiyaku.js (which re-exports the provider registry and would cycle).
4
- const CLAUDE_SETTING_SOURCES = ["project", "user", "local"];
5
- export const tomlValueSchema = z.lazy(() => z.union([
6
- z.string(),
7
- z.number(),
8
- z.boolean(),
9
- z.array(tomlValueSchema),
10
- z.record(z.string(), tomlValueSchema),
11
- ]));
12
- export const structuredTomlValueSchema = z.record(z.string(), tomlValueSchema);
13
- export const executableSchema = z.string().superRefine((value, ctx) => {
14
- if (value.length === 0 || /\s/.test(value) || value.includes("\"") || value.includes("'")) {
15
- ctx.addIssue({
16
- code: z.ZodIssueCode.custom,
17
- message: "must be a single program name token with no spaces or quotes.",
18
- });
19
- }
20
- });
21
- export const nonblankOptionalString = z
22
- .string()
23
- .refine((value) => value.trim().length > 0, { message: "must not be blank." })
24
- .optional();
25
- export const providerCommonFields = {
26
- description: nonblankOptionalString,
27
- };
28
- export const providerEnvSchema = z.record(z.string(), z.string()).optional();
29
- export const FORBIDDEN_CONFIG_KEYS = ["model", "model_reasoning_effort"];
30
- export function isConfigKeyForbidden(key) {
31
- return FORBIDDEN_CONFIG_KEYS.includes(key);
32
- }
33
- export const claudeSettingSourceSchema = z.enum(CLAUDE_SETTING_SOURCES);
34
- export const writableRootItemSchema = z.string().superRefine((value, ctx) => {
35
- if (value.length === 0) {
36
- ctx.addIssue({ code: z.ZodIssueCode.custom, message: "must not be empty." });
37
- return;
38
- }
39
- if (value.startsWith("~")) {
40
- ctx.addIssue({ code: z.ZodIssueCode.custom, message: "must not begin with tilde." });
41
- return;
42
- }
43
- if (value.includes("\0")) {
44
- ctx.addIssue({ code: z.ZodIssueCode.custom, message: "must not contain NUL byte." });
45
- return;
46
- }
47
- if (/\$[A-Za-z_]/.test(value) || /\$\{/.test(value)) {
48
- ctx.addIssue({ code: z.ZodIssueCode.custom, message: "must not contain environment variable references." });
49
- return;
50
- }
51
- });