@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,273 +0,0 @@
1
- export const AGENT_ACTIVITY_WINDOW_SIZE = 10;
2
- function eventTime(value) {
3
- const parsed = Date.parse(value);
4
- return Number.isFinite(parsed) ? parsed : undefined;
5
- }
6
- function duration(first, last) {
7
- if (first === undefined || last === undefined)
8
- return undefined;
9
- return Math.max(0, last - first);
10
- }
11
- function warningIdentity(warning) {
12
- if (warning.reason === "rate-limit") {
13
- return JSON.stringify(warning);
14
- }
15
- if (warning.reason === "retry") {
16
- return JSON.stringify({
17
- reason: warning.reason,
18
- attempt: warning.attempt,
19
- maxRetries: warning.maxRetries,
20
- retryDelayMs: warning.retryDelayMs,
21
- errorStatus: warning.errorStatus,
22
- });
23
- }
24
- return JSON.stringify({
25
- reason: warning.reason,
26
- originalModel: warning.originalModel,
27
- fallbackModel: warning.fallbackModel,
28
- direction: warning.direction,
29
- signerModel: warning.signerModel,
30
- });
31
- }
32
- function sortEvents(events) {
33
- return events
34
- .map((event, index) => ({
35
- event,
36
- order: Number.isFinite(event.seq) ? event.seq : index,
37
- sourceIndex: index,
38
- }))
39
- .sort((left, right) => left.order - right.order || left.sourceIndex - right.sourceIndex)
40
- .map(({ event, order }) => ({ event, order }));
41
- }
42
- /** Fold the provider-neutral event ledger once into the bounded UI activity model. */
43
- export function foldAgentActivity(events, retentionOverride) {
44
- const sorted = sortEvents(events);
45
- const latestActivity = new Map();
46
- const firstActivityCall = new Map();
47
- const activityObservations = new Map();
48
- const firstActivityAt = new Map();
49
- const latestThought = new Map();
50
- const firstThoughtAt = new Map();
51
- const thoughtEventCount = new Map();
52
- const latestMessage = new Map();
53
- const warnings = new Map();
54
- const usageByTurn = new Map();
55
- const turns = [];
56
- let latestPlan;
57
- let diagnostic;
58
- let failure;
59
- let compacted = false;
60
- for (const indexed of sorted) {
61
- const event = indexed.event;
62
- switch (event.type) {
63
- case "message":
64
- {
65
- const key = JSON.stringify([event.turn, event.id]);
66
- compacted ||= latestMessage.has(key);
67
- latestMessage.set(key, indexed);
68
- }
69
- break;
70
- case "activity": {
71
- compacted ||= latestActivity.has(event.id);
72
- latestActivity.set(event.id, indexed);
73
- if (event.phase !== "updated" && !firstActivityCall.has(event.id))
74
- firstActivityCall.set(event.id, event.call);
75
- const observations = activityObservations.get(event.id) ?? [];
76
- observations.push({
77
- order: indexed.order,
78
- at: event.at,
79
- phase: event.phase,
80
- ...(event.result === undefined ? {} : { result: event.result }),
81
- });
82
- activityObservations.set(event.id, observations);
83
- const at = eventTime(event.at);
84
- if (at !== undefined && !firstActivityAt.has(event.id))
85
- firstActivityAt.set(event.id, at);
86
- break;
87
- }
88
- case "thought": {
89
- compacted ||= latestThought.has(event.id);
90
- latestThought.set(event.id, indexed);
91
- thoughtEventCount.set(event.id, (thoughtEventCount.get(event.id) ?? 0) + 1);
92
- const at = eventTime(event.at);
93
- if (at !== undefined && !firstThoughtAt.has(event.id))
94
- firstThoughtAt.set(event.id, at);
95
- break;
96
- }
97
- case "warning": {
98
- const identity = `${event.historyExecutionId ?? ""}:${warningIdentity(event.warning)}`;
99
- const prior = warnings.get(identity);
100
- compacted ||= prior !== undefined;
101
- warnings.set(identity, { latest: indexed, count: (prior?.count ?? 0) + 1 });
102
- break;
103
- }
104
- case "usage":
105
- usageByTurn.set(event.historyTurnKey ?? String(event.turn), event);
106
- break;
107
- case "plan":
108
- latestPlan = indexed;
109
- break;
110
- case "diagnostic":
111
- diagnostic = { at: event.at, text: event.text };
112
- break;
113
- case "fail":
114
- failure = { at: event.at, message: event.message };
115
- break;
116
- }
117
- }
118
- const settled = [];
119
- const pinned = [];
120
- const ledgerActivities = [];
121
- for (const indexed of sorted) {
122
- const event = indexed.event;
123
- if (event.type === "message" && latestMessage.get(JSON.stringify([event.turn, event.id])) === indexed) {
124
- settled.push({
125
- kind: "said",
126
- order: indexed.order,
127
- at: event.at,
128
- turn: event.turn,
129
- id: event.id,
130
- text: event.text,
131
- settled: true,
132
- });
133
- continue;
134
- }
135
- if (event.type === "activity" && latestActivity.get(event.id) === indexed) {
136
- const startedAtMs = firstActivityAt.get(event.id);
137
- const observations = activityObservations.get(event.id) ?? [];
138
- const call = firstActivityCall.get(event.id) ?? event.call;
139
- const elapsed = observations.some((observation) => observation.phase === "started")
140
- && observations.some((observation) => observation.phase === "completed")
141
- ? duration(startedAtMs, eventTime(event.at))
142
- : undefined;
143
- const row = {
144
- kind: "ran",
145
- order: indexed.order,
146
- at: event.at,
147
- turn: event.turn,
148
- id: event.id,
149
- tool: event.tool,
150
- call,
151
- ...(event.result === undefined ? {} : { result: event.result }),
152
- truncated: event.truncated === true,
153
- observations,
154
- state: event.phase === "completed" ? "completed" : "running",
155
- ...(startedAtMs !== undefined ? { startedAtMs } : {}),
156
- ...(elapsed !== undefined ? { durationMs: elapsed } : {}),
157
- settled: event.phase === "completed",
158
- };
159
- ledgerActivities.push(row);
160
- (row.settled ? settled : pinned).push(row);
161
- continue;
162
- }
163
- if (event.type === "thought" && latestThought.get(event.id) === indexed) {
164
- const startedAtMs = firstThoughtAt.get(event.id);
165
- const elapsed = thoughtEventCount.get(event.id) >= 2
166
- ? duration(startedAtMs, eventTime(event.at))
167
- : undefined;
168
- const row = {
169
- kind: "thought",
170
- order: indexed.order,
171
- at: event.at,
172
- turn: event.turn,
173
- id: event.id,
174
- text: event.text,
175
- final: event.final,
176
- truncated: event.truncated === true,
177
- ...(startedAtMs !== undefined ? { startedAtMs } : {}),
178
- ...(elapsed !== undefined ? { durationMs: elapsed } : {}),
179
- settled: event.final,
180
- };
181
- (row.settled ? settled : pinned).push(row);
182
- continue;
183
- }
184
- if (event.type === "warning") {
185
- const aggregate = warnings.get(`${event.historyExecutionId ?? ""}:${warningIdentity(event.warning)}`);
186
- if (aggregate?.latest !== indexed)
187
- continue;
188
- settled.push({
189
- kind: "warning",
190
- order: indexed.order,
191
- at: event.at,
192
- turn: event.turn,
193
- warning: event.warning,
194
- count: aggregate.count,
195
- settled: true,
196
- });
197
- continue;
198
- }
199
- if (event.type === "turn" && event.phase === "completed") {
200
- const usage = usageByTurn.get(event.historyTurnKey ?? String(event.turn));
201
- turns.push({
202
- kind: "turn",
203
- order: indexed.order,
204
- at: event.at,
205
- turn: event.turn,
206
- ...(usage
207
- ? {
208
- inputTokens: usage.inputTokens,
209
- outputTokens: usage.outputTokens,
210
- ...(usage.cachedInputTokens !== undefined ? { cachedInputTokens: usage.cachedInputTokens } : {}),
211
- ...(usage.costUsd !== undefined ? { costUsd: usage.costUsd } : {}),
212
- ...(usage.model !== undefined ? { model: usage.model } : {}),
213
- }
214
- : {}),
215
- settled: true,
216
- });
217
- }
218
- }
219
- settled.sort((left, right) => left.order - right.order);
220
- pinned.sort((left, right) => left.order - right.order);
221
- const window = settled.slice(-AGENT_ACTIVITY_WINDOW_SIZE);
222
- const omittedSettledCount = Math.max(0, settled.length - window.length);
223
- const visibleOrders = [...window, ...pinned].map((row) => row.order);
224
- const relevantTurns = visibleOrders.length === 0
225
- ? turns.slice(-1)
226
- : turns.filter((row) => row.order >= Math.min(...visibleOrders));
227
- const timeline = [...window, ...relevantTurns, ...pinned].sort((left, right) => left.order - right.order);
228
- const retainedTimeline = [...settled, ...turns, ...pinned].sort((left, right) => left.order - right.order);
229
- const truncated = retainedTimeline.some((row) => (row.kind === "ran" || row.kind === "thought") && row.truncated);
230
- const bounded = sorted.some(({ event }) => event.type === "truncation");
231
- let plan;
232
- if (latestPlan?.event.type === "plan") {
233
- const event = latestPlan.event;
234
- const active = event.items.find((item) => item.active === true) ?? event.items.find((item) => !item.done);
235
- plan = {
236
- order: latestPlan.order,
237
- at: event.at,
238
- turn: event.turn,
239
- id: event.id,
240
- done: event.items.filter((item) => item.done).length,
241
- total: event.items.length,
242
- ...(active ? { activeItem: active.text } : {}),
243
- };
244
- }
245
- return {
246
- window,
247
- omittedSettledCount,
248
- pinned,
249
- timeline,
250
- retainedTimeline,
251
- retention: {
252
- state: retentionOverride ?? (bounded ? "bounded" : truncated ? "truncated" : compacted ? "compacted" : "complete"),
253
- retainedCount: retainedTimeline.length,
254
- range: retainedTimeline.length > 0
255
- ? { first: retainedTimeline[0].order, last: retainedTimeline.at(-1).order }
256
- : null,
257
- },
258
- ledgerActivities,
259
- ledgerTurns: turns,
260
- ...(plan ? { plan } : {}),
261
- ...(diagnostic ? { diagnostic } : {}),
262
- ...(failure ? { failure } : {}),
263
- };
264
- }
265
- /**
266
- * Public wait/status activity deliberately excludes provider-origin terminal
267
- * prose. Diagnostic and fail-event text remains available to artifact/internal
268
- * consumers through the full fold, but has no JSON or human projection path.
269
- */
270
- export function foldPublicProjectionActivity(events, retentionOverride) {
271
- const { diagnostic: _diagnostic, failure: _failure, ...activity } = foldAgentActivity(events, retentionOverride);
272
- return activity;
273
- }
@@ -1,131 +0,0 @@
1
- import * as fs from "node:fs";
2
- import * as path from "node:path";
3
- import { isErrnoException } from "../../errno.js";
4
- import { syncDirectorySync } from "../../fs/durability.js";
5
- import { ProjectionStateError, randomHex8 } from "../atomic-publish.js";
6
- import { resolveProjectionCoordinate } from "./projection-coordinate.js";
7
- import { isProjectionId } from "./projection-core.js";
8
- export const PROJECTION_ALIAS_PATTERN = /^[a-z0-9][a-z0-9-]{0,63}$/;
9
- const MAX_ALIAS_REF_BYTES = 1024;
10
- export function isProjectionAlias(value) {
11
- return PROJECTION_ALIAS_PATTERN.test(value);
12
- }
13
- export function assertProjectionAlias(value) {
14
- if (!isProjectionAlias(value)) {
15
- throw new ProjectionStateError("projection alias must match ^[a-z0-9][a-z0-9-]{0,63}$");
16
- }
17
- return value;
18
- }
19
- export function projectionAliasRootAtCoordinate(coordinate) {
20
- return path.join(coordinate.physicalRoot, ".keiyaku", "projection-alias");
21
- }
22
- export async function projectionAliasRoot(cwd) {
23
- return projectionAliasRootAtCoordinate(await resolveProjectionCoordinate(cwd));
24
- }
25
- function projectionAliasPathAtRoot(root, alias) {
26
- assertProjectionAlias(alias);
27
- return path.join(root, alias);
28
- }
29
- export async function projectionAliasPath(cwd, alias) {
30
- return projectionAliasPathAtRoot(await projectionAliasRoot(cwd), alias);
31
- }
32
- function invalidAliasRef(filePath) {
33
- return new ProjectionStateError(`invalid projection alias ref: ${filePath}`);
34
- }
35
- function readBoundedRegularAliasRef(filePath) {
36
- let before;
37
- try {
38
- before = fs.lstatSync(filePath);
39
- }
40
- catch (error) {
41
- if (isErrnoException(error) && error.code === "ENOENT")
42
- return undefined;
43
- throw error;
44
- }
45
- if (!before.isFile() || before.size > MAX_ALIAS_REF_BYTES)
46
- throw invalidAliasRef(filePath);
47
- let fd;
48
- try {
49
- fd = fs.openSync(filePath, fs.constants.O_RDONLY | fs.constants.O_NOFOLLOW);
50
- }
51
- catch (error) {
52
- if (isErrnoException(error) && error.code === "ELOOP")
53
- throw invalidAliasRef(filePath);
54
- throw error;
55
- }
56
- try {
57
- const opened = fs.fstatSync(fd);
58
- if (!opened.isFile() || opened.size > MAX_ALIAS_REF_BYTES)
59
- throw invalidAliasRef(filePath);
60
- const bytes = Buffer.alloc(opened.size);
61
- const count = fs.readSync(fd, bytes, 0, bytes.length, 0);
62
- if (count !== bytes.length)
63
- throw invalidAliasRef(filePath);
64
- return bytes.toString("utf8");
65
- }
66
- finally {
67
- fs.closeSync(fd);
68
- }
69
- }
70
- /** Undefined means no ref; malformed refs fail closed with their exact sidecar path. */
71
- export async function readProjectionAliasAtRoot(root, alias) {
72
- const filePath = projectionAliasPathAtRoot(root, alias);
73
- const content = readBoundedRegularAliasRef(filePath);
74
- if (content === undefined)
75
- return undefined;
76
- if (!content.endsWith("\n") || content.indexOf("\n") !== content.length - 1)
77
- throw invalidAliasRef(filePath);
78
- const id = content.slice(0, -1);
79
- if (!isProjectionId(id))
80
- throw invalidAliasRef(filePath);
81
- return id;
82
- }
83
- /** Cwd-facing compatibility entry point; multi-alias callers should reuse a resolved root. */
84
- export async function readProjectionAlias(cwd, alias) {
85
- return readProjectionAliasAtRoot(await projectionAliasRoot(cwd), alias);
86
- }
87
- /** Atomically replace one alias ref. Aliases intentionally have no multi-ref transaction. */
88
- async function moveProjectionAliasAtRoot(root, alias, id) {
89
- assertProjectionAlias(alias);
90
- if (!isProjectionId(id))
91
- throw new ProjectionStateError(`invalid projection id: ${id}`);
92
- const previous = await readProjectionAliasAtRoot(root, alias);
93
- fs.mkdirSync(root, { recursive: true });
94
- const target = projectionAliasPathAtRoot(root, alias);
95
- let temp;
96
- try {
97
- for (let attempt = 0; attempt < 16; attempt += 1) {
98
- const candidate = path.join(root, `.tmp.${randomHex8()}`);
99
- try {
100
- const fd = fs.openSync(candidate, fs.constants.O_WRONLY | fs.constants.O_CREAT | fs.constants.O_EXCL, 0o600);
101
- temp = candidate;
102
- try {
103
- fs.writeFileSync(fd, `${id}\n`, "utf8");
104
- fs.fsyncSync(fd);
105
- }
106
- finally {
107
- fs.closeSync(fd);
108
- }
109
- break;
110
- }
111
- catch (error) {
112
- if (isErrnoException(error) && error.code === "EEXIST")
113
- continue;
114
- throw error;
115
- }
116
- }
117
- if (!temp)
118
- throw new ProjectionStateError(`failed to create projection alias temp: ${target}`);
119
- fs.renameSync(temp, target);
120
- syncDirectorySync(root);
121
- }
122
- finally {
123
- if (temp)
124
- fs.rmSync(temp, { force: true });
125
- }
126
- return previous;
127
- }
128
- /** Cwd-facing compatibility entry point; writers with a resolved root avoid rediscovery. */
129
- export async function moveProjectionAlias(cwd, alias, id) {
130
- return moveProjectionAliasAtRoot(await projectionAliasRoot(cwd), alias, id);
131
- }
@@ -1,61 +0,0 @@
1
- import * as path from "node:path";
2
- import { ProjectionStateError } from "../atomic-publish.js";
3
- import { createGit, isGitExecutableUnavailable, NOT_GIT_REPOSITORY_PATTERNS, } from "../../git/core.js";
4
- import { normalizeFilesystemCoordinate } from "../../fs/path-coordinate.js";
5
- import { gitCommonRootPath, resolveGitCommonRoot } from "../../git/path-coordinate.js";
6
- /**
7
- * Resolve projection storage root and authority from one Git probe.
8
- *
9
- * A non-bare repository uses the parent of its absolute common Git directory,
10
- * so every linked worktree shares one coordinate. Repo-free callers retain the
11
- * existing cwd-local authority until its replacement is legislated.
12
- */
13
- export async function resolveProjectionCoordinate(cwd) {
14
- cwd = normalizeFilesystemCoordinate(cwd);
15
- const git = createGit(cwd);
16
- let response;
17
- try {
18
- response = await git.raw([
19
- "rev-parse",
20
- "--is-bare-repository",
21
- "--path-format=absolute",
22
- "--git-common-dir",
23
- ]);
24
- }
25
- catch (error) {
26
- if (isGitExecutableUnavailable(error)) {
27
- return { physicalRoot: cwd, authority: { kind: "user" } };
28
- }
29
- const message = error instanceof Error ? error.message : String(error);
30
- if (NOT_GIT_REPOSITORY_PATTERNS.some((pattern) => message.includes(pattern))) {
31
- return { physicalRoot: cwd, authority: { kind: "user" } };
32
- }
33
- throw new ProjectionStateError(`cannot resolve projection repository coordinate: ${message}`);
34
- }
35
- const [bare, commonDir] = response.trim().split(/\r?\n/);
36
- const stableRoot = commonDir === undefined ? undefined : gitCommonRootPath(commonDir);
37
- if (bare !== "false" || !commonDir || !stableRoot || !path.isAbsolute(stableRoot)) {
38
- return { physicalRoot: cwd, authority: { kind: "user" } };
39
- }
40
- let physicalRoot;
41
- try {
42
- physicalRoot = await resolveGitCommonRoot(commonDir);
43
- }
44
- catch (error) {
45
- throw new ProjectionStateError(`cannot resolve projection repository root ${stableRoot}`, { cause: error });
46
- }
47
- return {
48
- physicalRoot,
49
- authority: { kind: "repository", stableRoot: physicalRoot },
50
- };
51
- }
52
- /**
53
- * Select the filesystem authority for repository projection state.
54
- *
55
- * A non-bare repository uses the parent of its absolute common Git directory,
56
- * so every linked worktree shares one coordinate. Repo-free callers retain the
57
- * existing cwd-local authority until its replacement is legislated.
58
- */
59
- export async function projectionCoordinateRoot(cwd) {
60
- return (await resolveProjectionCoordinate(cwd)).physicalRoot;
61
- }
@@ -1,127 +0,0 @@
1
- import * as fs from "node:fs";
2
- import * as path from "node:path";
3
- import { isErrnoException } from "../../errno.js";
4
- import { resolveProjectionCoordinate } from "./projection-coordinate.js";
5
- import { ProjectionStateError, } from "../atomic-publish.js";
6
- import { isAkumaName } from "./akuma-name.js";
7
- export { atomicPublishFile, ProjectionStateError, randomHex8 } from "../atomic-publish.js";
8
- export { isTellCausallyConsumed, } from "./tell/model.js";
9
- export { bindTellLaunchReservation, claimAllInbox, claimAndReserveFencedTells, claimFencedTells, listTellLaunchBatch, listTellLaunchAdmissions, isTellLaunchAdmissionMember, claimTellToInflight, listTellIds, markTellSubmitted, recordTellReceiptCapabilities, recordTellReceipt, readTellReceiptCapabilities, readTellOriginal, readTellSubmitted, snapshotPendingTells, writeInboxTell, } from "./tell/store.js";
10
- /** Relative segments for `.keiyaku/projection`. */
11
- export const PROJECTION_ROOT_SEGMENTS = [".keiyaku", "projection"];
12
- const PROJECTION_HEX_PATTERN = /^[0-9a-f]{8}$/;
13
- export function isProjectionId(value) {
14
- const slash = value.indexOf("/");
15
- if (slash <= 0 || slash !== value.lastIndexOf("/"))
16
- return false;
17
- return isAkumaName(value.slice(0, slash)) && PROJECTION_HEX_PATTERN.test(value.slice(slash + 1));
18
- }
19
- /** Derive one projection storage root from already-resolved repository authority. */
20
- export function projectionRootAtCoordinate(coordinate) {
21
- return path.join(coordinate.physicalRoot, ...PROJECTION_ROOT_SEGMENTS);
22
- }
23
- export async function projectionRoot(cwd) {
24
- return projectionRootAtCoordinate(await resolveProjectionCoordinate(cwd));
25
- }
26
- /** Derive one projection directory from already-resolved repository authority. */
27
- export function projectionDirAtCoordinate(coordinate, id) {
28
- if (!isProjectionId(id))
29
- throw new ProjectionStateError(`invalid projection id: ${id}`);
30
- const [akuma, hex] = id.split("/");
31
- return path.join(projectionRootAtCoordinate(coordinate), akuma, hex);
32
- }
33
- export async function projectionDir(cwd, id) {
34
- if (!isProjectionId(id))
35
- throw new ProjectionStateError(`invalid projection id: ${id}`);
36
- return projectionDirAtCoordinate(await resolveProjectionCoordinate(cwd), id);
37
- }
38
- export function encodeProjectionJson(value) {
39
- return `${JSON.stringify(value)}\n`;
40
- }
41
- export function isoFromNowMs(nowMs) {
42
- if (!Number.isSafeInteger(nowMs) || nowMs < 0) {
43
- throw new ProjectionStateError("nowMs must be a safe non-negative integer");
44
- }
45
- return new Date(nowMs).toISOString();
46
- }
47
- /** A published projection is any visible non-dot real directory under the projection root. */
48
- export function isPublishedProjection(dir) {
49
- try {
50
- return !path.basename(dir).startsWith(".") && fs.lstatSync(dir).isDirectory();
51
- }
52
- catch {
53
- return false;
54
- }
55
- }
56
- const PROJECTION_EXECUTION_ID_PATTERN = /^[0-9A-HJKMNP-TV-Z]{26}$/;
57
- function assertProjectionExecutionId(executionId) {
58
- if (!PROJECTION_EXECUTION_ID_PATTERN.test(executionId)) {
59
- throw new ProjectionStateError(`invalid projection execution id: ${executionId}`);
60
- }
61
- }
62
- export function executionEventsPath(projectionDirectory, executionId) {
63
- assertProjectionExecutionId(executionId);
64
- return path.join(projectionDirectory, `${executionId}.events.jsonl`);
65
- }
66
- export function appendGenerationEvent(projectionDirectory, executionId, event) {
67
- const filePath = executionEventsPath(projectionDirectory, executionId);
68
- fs.appendFileSync(filePath, encodeProjectionJson(event), "utf8");
69
- }
70
- /**
71
- * Read one generation's event ledger. A writer may be interrupted while
72
- * appending its final line, so only an unterminated final residue is ignored.
73
- * Earlier complete lines remain strict ledger records.
74
- */
75
- export function readGenerationEvents(projectionDirectory, executionId) {
76
- return readGenerationEventsWithRetention(projectionDirectory, executionId).events;
77
- }
78
- /** Distinguishes a deliberately empty ledger from an absent generation ledger. */
79
- export function readGenerationEventsWithRetention(projectionDirectory, executionId) {
80
- let content;
81
- try {
82
- content = fs.readFileSync(executionEventsPath(projectionDirectory, executionId), "utf8");
83
- }
84
- catch (error) {
85
- if (isErrnoException(error) && error.code === "ENOENT")
86
- return { events: [], retention: "unavailable" };
87
- throw error;
88
- }
89
- const lines = content.split("\n");
90
- const terminated = content.endsWith("\n");
91
- const completeLines = lines.slice(0, -1);
92
- const events = [];
93
- for (const line of completeLines) {
94
- events.push(JSON.parse(line));
95
- }
96
- if (!terminated && lines.at(-1)) {
97
- try {
98
- events.push(JSON.parse(lines.at(-1)));
99
- }
100
- catch {
101
- // A concurrent append can leave only this final record incomplete.
102
- }
103
- }
104
- return { events, retention: "available" };
105
- }
106
- export function readProjectionEvents(projectionDirectory) {
107
- let entries;
108
- try {
109
- entries = fs.readdirSync(projectionDirectory, { withFileTypes: true });
110
- }
111
- catch (error) {
112
- if (isErrnoException(error) && error.code === "ENOENT")
113
- return [];
114
- throw error;
115
- }
116
- const names = entries
117
- .filter((entry) => (entry.isFile()
118
- && /^[0-9A-HJKMNP-TV-Z]{26}\.events\.jsonl$/.test(entry.name)))
119
- .map((entry) => entry.name)
120
- .sort();
121
- const events = [];
122
- for (const name of names) {
123
- const executionId = name.slice(0, -".events.jsonl".length);
124
- events.push(...readGenerationEvents(projectionDirectory, executionId));
125
- }
126
- return events;
127
- }