@calliopelabs/cli 3.0.0 → 3.2.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 (904) hide show
  1. package/README.md +54 -7
  2. package/dist/acp.d.ts +1 -4
  3. package/dist/acp.d.ts.map +1 -1
  4. package/dist/acp.js +118 -217
  5. package/dist/acp.js.map +1 -1
  6. package/dist/approvals/commands.d.ts +35 -0
  7. package/dist/approvals/commands.d.ts.map +1 -0
  8. package/dist/approvals/commands.js +51 -0
  9. package/dist/approvals/commands.js.map +1 -0
  10. package/dist/approvals/index.d.ts +6 -0
  11. package/dist/approvals/index.d.ts.map +1 -0
  12. package/dist/approvals/index.js +6 -0
  13. package/dist/approvals/index.js.map +1 -0
  14. package/dist/approvals/queue.d.ts +18 -0
  15. package/dist/approvals/queue.d.ts.map +1 -0
  16. package/dist/approvals/queue.js +46 -0
  17. package/dist/approvals/queue.js.map +1 -0
  18. package/dist/approvals/request.d.ts +13 -0
  19. package/dist/approvals/request.d.ts.map +1 -0
  20. package/dist/approvals/request.js +102 -0
  21. package/dist/approvals/request.js.map +1 -0
  22. package/dist/approvals/store.d.ts +24 -0
  23. package/dist/approvals/store.d.ts.map +1 -0
  24. package/dist/approvals/store.js +229 -0
  25. package/dist/approvals/store.js.map +1 -0
  26. package/dist/approvals/types.d.ts +27 -0
  27. package/dist/approvals/types.d.ts.map +1 -0
  28. package/dist/approvals/types.js +4 -0
  29. package/dist/approvals/types.js.map +1 -0
  30. package/dist/auto-compressor.d.ts +3 -2
  31. package/dist/auto-compressor.d.ts.map +1 -1
  32. package/dist/auto-compressor.js +9 -9
  33. package/dist/auto-compressor.js.map +1 -1
  34. package/dist/bin.d.ts.map +1 -1
  35. package/dist/bin.js +125 -22
  36. package/dist/bin.js.map +1 -1
  37. package/dist/brain/access.d.ts +65 -0
  38. package/dist/brain/access.d.ts.map +1 -0
  39. package/dist/brain/access.js +216 -0
  40. package/dist/brain/access.js.map +1 -0
  41. package/dist/brain/actions.d.ts +120 -0
  42. package/dist/brain/actions.d.ts.map +1 -0
  43. package/dist/brain/actions.js +270 -0
  44. package/dist/brain/actions.js.map +1 -0
  45. package/dist/brain/cli.d.ts +17 -0
  46. package/dist/brain/cli.d.ts.map +1 -0
  47. package/dist/brain/cli.js +206 -0
  48. package/dist/brain/cli.js.map +1 -0
  49. package/dist/brain/index.d.ts +16 -0
  50. package/dist/brain/index.d.ts.map +1 -0
  51. package/dist/brain/index.js +16 -0
  52. package/dist/brain/index.js.map +1 -0
  53. package/dist/brain/journal.d.ts +17 -0
  54. package/dist/brain/journal.d.ts.map +1 -0
  55. package/dist/brain/journal.js +189 -0
  56. package/dist/brain/journal.js.map +1 -0
  57. package/dist/brain/kg.d.ts +23 -0
  58. package/dist/brain/kg.d.ts.map +1 -0
  59. package/dist/brain/kg.js +36 -0
  60. package/dist/brain/kg.js.map +1 -0
  61. package/dist/brain/presentation.d.ts +3 -0
  62. package/dist/brain/presentation.d.ts.map +1 -0
  63. package/dist/brain/presentation.js +48 -0
  64. package/dist/brain/presentation.js.map +1 -0
  65. package/dist/brain/queries.d.ts +179 -0
  66. package/dist/brain/queries.d.ts.map +1 -0
  67. package/dist/brain/queries.js +210 -0
  68. package/dist/brain/queries.js.map +1 -0
  69. package/dist/brain/run-ingest.d.ts +29 -0
  70. package/dist/brain/run-ingest.d.ts.map +1 -0
  71. package/dist/brain/run-ingest.js +200 -0
  72. package/dist/brain/run-ingest.js.map +1 -0
  73. package/dist/brain/sqlite.d.ts +19 -0
  74. package/dist/brain/sqlite.d.ts.map +1 -0
  75. package/dist/brain/sqlite.js +252 -0
  76. package/dist/brain/sqlite.js.map +1 -0
  77. package/dist/brain/store.d.ts +31 -0
  78. package/dist/brain/store.d.ts.map +1 -0
  79. package/dist/brain/store.js +324 -0
  80. package/dist/brain/store.js.map +1 -0
  81. package/dist/brain/tool-query.d.ts +6 -0
  82. package/dist/brain/tool-query.d.ts.map +1 -0
  83. package/dist/brain/tool-query.js +42 -0
  84. package/dist/brain/tool-query.js.map +1 -0
  85. package/dist/brain/tools.d.ts +13 -0
  86. package/dist/brain/tools.d.ts.map +1 -0
  87. package/dist/brain/tools.js +20 -0
  88. package/dist/brain/tools.js.map +1 -0
  89. package/dist/brain/transfer.d.ts +57 -0
  90. package/dist/brain/transfer.d.ts.map +1 -0
  91. package/dist/brain/transfer.js +266 -0
  92. package/dist/brain/transfer.js.map +1 -0
  93. package/dist/brain/types.d.ts +145 -0
  94. package/dist/brain/types.d.ts.map +1 -0
  95. package/dist/brain/types.js +38 -0
  96. package/dist/brain/types.js.map +1 -0
  97. package/dist/brain/validation.d.ts +15 -0
  98. package/dist/brain/validation.d.ts.map +1 -0
  99. package/dist/brain/validation.js +163 -0
  100. package/dist/brain/validation.js.map +1 -0
  101. package/dist/budget.d.ts +5 -4
  102. package/dist/budget.d.ts.map +1 -1
  103. package/dist/budget.js +16 -38
  104. package/dist/budget.js.map +1 -1
  105. package/dist/cancellation.d.ts +8 -0
  106. package/dist/cancellation.d.ts.map +1 -0
  107. package/dist/cancellation.js +42 -0
  108. package/dist/cancellation.js.map +1 -0
  109. package/dist/checkpoint.d.ts +2 -2
  110. package/dist/checkpoint.d.ts.map +1 -1
  111. package/dist/checkpoint.js +5 -5
  112. package/dist/checkpoint.js.map +1 -1
  113. package/dist/circuit-breaker/breaker.d.ts.map +1 -1
  114. package/dist/config.d.ts +13 -0
  115. package/dist/config.d.ts.map +1 -1
  116. package/dist/config.js +32 -8
  117. package/dist/config.js.map +1 -1
  118. package/dist/cost.js.map +1 -1
  119. package/dist/diff.js.map +1 -1
  120. package/dist/doctor.d.ts +30 -0
  121. package/dist/doctor.d.ts.map +1 -0
  122. package/dist/doctor.js +124 -0
  123. package/dist/doctor.js.map +1 -0
  124. package/dist/env-expansion.js.map +1 -1
  125. package/dist/errors.d.ts +15 -0
  126. package/dist/errors.d.ts.map +1 -1
  127. package/dist/errors.js +33 -9
  128. package/dist/errors.js.map +1 -1
  129. package/dist/execution/attribution.d.ts +17 -0
  130. package/dist/execution/attribution.d.ts.map +1 -0
  131. package/dist/execution/attribution.js +21 -0
  132. package/dist/execution/attribution.js.map +1 -0
  133. package/dist/execution/authority.d.ts +22 -0
  134. package/dist/execution/authority.d.ts.map +1 -0
  135. package/dist/execution/authority.js +134 -0
  136. package/dist/execution/authority.js.map +1 -0
  137. package/dist/execution/billing.d.ts +100 -0
  138. package/dist/execution/billing.d.ts.map +1 -0
  139. package/dist/execution/billing.js +166 -0
  140. package/dist/execution/billing.js.map +1 -0
  141. package/dist/execution/child-grants.d.ts +9 -0
  142. package/dist/execution/child-grants.d.ts.map +1 -0
  143. package/dist/execution/child-grants.js +55 -0
  144. package/dist/execution/child-grants.js.map +1 -0
  145. package/dist/execution/files.d.ts +6 -0
  146. package/dist/execution/files.d.ts.map +1 -0
  147. package/dist/execution/files.js +159 -0
  148. package/dist/execution/files.js.map +1 -0
  149. package/dist/execution/guard.d.ts +50 -0
  150. package/dist/execution/guard.d.ts.map +1 -0
  151. package/dist/execution/guard.js +158 -0
  152. package/dist/execution/guard.js.map +1 -0
  153. package/dist/execution/index.d.ts +12 -0
  154. package/dist/execution/index.d.ts.map +1 -0
  155. package/dist/execution/index.js +12 -0
  156. package/dist/execution/index.js.map +1 -0
  157. package/dist/execution/ledger.d.ts +23 -0
  158. package/dist/execution/ledger.d.ts.map +1 -0
  159. package/dist/execution/ledger.js +379 -0
  160. package/dist/execution/ledger.js.map +1 -0
  161. package/dist/execution/project-spend.d.ts +45 -0
  162. package/dist/execution/project-spend.d.ts.map +1 -0
  163. package/dist/execution/project-spend.js +274 -0
  164. package/dist/execution/project-spend.js.map +1 -0
  165. package/dist/execution/quote.d.ts +19 -0
  166. package/dist/execution/quote.d.ts.map +1 -0
  167. package/dist/execution/quote.js +116 -0
  168. package/dist/execution/quote.js.map +1 -0
  169. package/dist/execution/types.d.ts +113 -0
  170. package/dist/execution/types.d.ts.map +1 -0
  171. package/dist/execution/types.js +9 -0
  172. package/dist/execution/types.js.map +1 -0
  173. package/dist/execution/writer-recovery.d.ts +3 -0
  174. package/dist/execution/writer-recovery.d.ts.map +1 -0
  175. package/dist/execution/writer-recovery.js +85 -0
  176. package/dist/execution/writer-recovery.js.map +1 -0
  177. package/dist/fuzzy-search.js.map +1 -1
  178. package/dist/goals/accounting.d.ts +69 -0
  179. package/dist/goals/accounting.d.ts.map +1 -0
  180. package/dist/goals/accounting.js +100 -0
  181. package/dist/goals/accounting.js.map +1 -0
  182. package/dist/goals/actions.d.ts +33 -0
  183. package/dist/goals/actions.d.ts.map +1 -0
  184. package/dist/goals/actions.js +261 -0
  185. package/dist/goals/actions.js.map +1 -0
  186. package/dist/goals/authority.d.ts +9 -0
  187. package/dist/goals/authority.d.ts.map +1 -0
  188. package/dist/goals/authority.js +47 -0
  189. package/dist/goals/authority.js.map +1 -0
  190. package/dist/goals/cli.d.ts +10 -0
  191. package/dist/goals/cli.d.ts.map +1 -0
  192. package/dist/goals/cli.js +169 -0
  193. package/dist/goals/cli.js.map +1 -0
  194. package/dist/goals/contracts.d.ts +18 -0
  195. package/dist/goals/contracts.d.ts.map +1 -0
  196. package/dist/goals/contracts.js +127 -0
  197. package/dist/goals/contracts.js.map +1 -0
  198. package/dist/goals/index.d.ts +17 -0
  199. package/dist/goals/index.d.ts.map +1 -0
  200. package/dist/goals/index.js +16 -0
  201. package/dist/goals/index.js.map +1 -0
  202. package/dist/goals/journal.d.ts +5 -0
  203. package/dist/goals/journal.d.ts.map +1 -0
  204. package/dist/goals/journal.js +142 -0
  205. package/dist/goals/journal.js.map +1 -0
  206. package/dist/goals/metrics.d.ts +53 -0
  207. package/dist/goals/metrics.d.ts.map +1 -0
  208. package/dist/goals/metrics.js +141 -0
  209. package/dist/goals/metrics.js.map +1 -0
  210. package/dist/goals/repair.d.ts +10 -0
  211. package/dist/goals/repair.d.ts.map +1 -0
  212. package/dist/goals/repair.js +50 -0
  213. package/dist/goals/repair.js.map +1 -0
  214. package/dist/goals/routing.d.ts +18 -0
  215. package/dist/goals/routing.d.ts.map +1 -0
  216. package/dist/goals/routing.js +60 -0
  217. package/dist/goals/routing.js.map +1 -0
  218. package/dist/goals/store.d.ts +30 -0
  219. package/dist/goals/store.d.ts.map +1 -0
  220. package/dist/goals/store.js +314 -0
  221. package/dist/goals/store.js.map +1 -0
  222. package/dist/goals/supervised-cli.d.ts +5 -0
  223. package/dist/goals/supervised-cli.d.ts.map +1 -0
  224. package/dist/goals/supervised-cli.js +44 -0
  225. package/dist/goals/supervised-cli.js.map +1 -0
  226. package/dist/goals/supervised.d.ts +8 -0
  227. package/dist/goals/supervised.d.ts.map +1 -0
  228. package/dist/goals/supervised.js +65 -0
  229. package/dist/goals/supervised.js.map +1 -0
  230. package/dist/goals/team.d.ts +8 -0
  231. package/dist/goals/team.d.ts.map +1 -0
  232. package/dist/goals/team.js +64 -0
  233. package/dist/goals/team.js.map +1 -0
  234. package/dist/goals/types.d.ts +174 -0
  235. package/dist/goals/types.d.ts.map +1 -0
  236. package/dist/goals/types.js +2 -0
  237. package/dist/goals/types.js.map +1 -0
  238. package/dist/goals/validation.d.ts +17 -0
  239. package/dist/goals/validation.d.ts.map +1 -0
  240. package/dist/goals/validation.js +172 -0
  241. package/dist/goals/validation.js.map +1 -0
  242. package/dist/headless.d.ts +1 -0
  243. package/dist/headless.d.ts.map +1 -1
  244. package/dist/headless.js +98 -275
  245. package/dist/headless.js.map +1 -1
  246. package/dist/health/index.d.ts +5 -0
  247. package/dist/health/index.d.ts.map +1 -0
  248. package/dist/health/index.js +5 -0
  249. package/dist/health/index.js.map +1 -0
  250. package/dist/health/store.d.ts +24 -0
  251. package/dist/health/store.d.ts.map +1 -0
  252. package/dist/health/store.js +190 -0
  253. package/dist/health/store.js.map +1 -0
  254. package/dist/health/summary.d.ts +10 -0
  255. package/dist/health/summary.d.ts.map +1 -0
  256. package/dist/health/summary.js +95 -0
  257. package/dist/health/summary.js.map +1 -0
  258. package/dist/health/target.d.ts +3 -0
  259. package/dist/health/target.d.ts.map +1 -0
  260. package/dist/health/target.js +53 -0
  261. package/dist/health/target.js.map +1 -0
  262. package/dist/health/types.d.ts +72 -0
  263. package/dist/health/types.d.ts.map +1 -0
  264. package/dist/health/types.js +2 -0
  265. package/dist/health/types.js.map +1 -0
  266. package/dist/hooks.d.ts +7 -2
  267. package/dist/hooks.d.ts.map +1 -1
  268. package/dist/hooks.js +35 -17
  269. package/dist/hooks.js.map +1 -1
  270. package/dist/improvement/actions.d.ts +27 -0
  271. package/dist/improvement/actions.d.ts.map +1 -0
  272. package/dist/improvement/actions.js +116 -0
  273. package/dist/improvement/actions.js.map +1 -0
  274. package/dist/improvement/cli.d.ts +9 -0
  275. package/dist/improvement/cli.d.ts.map +1 -0
  276. package/dist/improvement/cli.js +58 -0
  277. package/dist/improvement/cli.js.map +1 -0
  278. package/dist/improvement/feedback.d.ts +30 -0
  279. package/dist/improvement/feedback.d.ts.map +1 -0
  280. package/dist/improvement/feedback.js +7 -0
  281. package/dist/improvement/feedback.js.map +1 -0
  282. package/dist/improvement/index.d.ts +7 -0
  283. package/dist/improvement/index.d.ts.map +1 -0
  284. package/dist/improvement/index.js +7 -0
  285. package/dist/improvement/index.js.map +1 -0
  286. package/dist/improvement/metrics.d.ts +4 -0
  287. package/dist/improvement/metrics.d.ts.map +1 -0
  288. package/dist/improvement/metrics.js +38 -0
  289. package/dist/improvement/metrics.js.map +1 -0
  290. package/dist/improvement/projection.d.ts +7 -0
  291. package/dist/improvement/projection.d.ts.map +1 -0
  292. package/dist/improvement/projection.js +135 -0
  293. package/dist/improvement/projection.js.map +1 -0
  294. package/dist/improvement/types.d.ts +115 -0
  295. package/dist/improvement/types.d.ts.map +1 -0
  296. package/dist/improvement/types.js +2 -0
  297. package/dist/improvement/types.js.map +1 -0
  298. package/dist/index.d.ts +3 -0
  299. package/dist/index.d.ts.map +1 -1
  300. package/dist/index.js +3 -0
  301. package/dist/index.js.map +1 -1
  302. package/dist/instructions.d.ts +10 -0
  303. package/dist/instructions.d.ts.map +1 -0
  304. package/dist/instructions.js +93 -0
  305. package/dist/instructions.js.map +1 -0
  306. package/dist/isolation/contracts.d.ts +42 -0
  307. package/dist/isolation/contracts.d.ts.map +1 -0
  308. package/dist/isolation/contracts.js +33 -0
  309. package/dist/isolation/contracts.js.map +1 -0
  310. package/dist/isolation/coordinator.d.ts +10 -0
  311. package/dist/isolation/coordinator.d.ts.map +1 -0
  312. package/dist/isolation/coordinator.js +79 -0
  313. package/dist/isolation/coordinator.js.map +1 -0
  314. package/dist/isolation/index.d.ts +5 -0
  315. package/dist/isolation/index.d.ts.map +1 -0
  316. package/dist/isolation/index.js +5 -0
  317. package/dist/isolation/index.js.map +1 -0
  318. package/dist/isolation/process.d.ts +11 -0
  319. package/dist/isolation/process.d.ts.map +1 -0
  320. package/dist/isolation/process.js +131 -0
  321. package/dist/isolation/process.js.map +1 -0
  322. package/dist/isolation/worktree.d.ts +25 -0
  323. package/dist/isolation/worktree.d.ts.map +1 -0
  324. package/dist/isolation/worktree.js +282 -0
  325. package/dist/isolation/worktree.js.map +1 -0
  326. package/dist/iteration-ledger.d.ts.map +1 -1
  327. package/dist/iteration-ledger.js.map +1 -1
  328. package/dist/local-model.d.ts +2 -2
  329. package/dist/local-model.d.ts.map +1 -1
  330. package/dist/mcp.js.map +1 -1
  331. package/dist/memory.d.ts.map +1 -1
  332. package/dist/memory.js +5 -1
  333. package/dist/memory.js.map +1 -1
  334. package/dist/model-detection.d.ts +14 -18
  335. package/dist/model-detection.d.ts.map +1 -1
  336. package/dist/model-detection.js +287 -149
  337. package/dist/model-detection.js.map +1 -1
  338. package/dist/models/index.d.ts +3 -0
  339. package/dist/models/index.d.ts.map +1 -0
  340. package/dist/models/index.js +3 -0
  341. package/dist/models/index.js.map +1 -0
  342. package/dist/models/metadata.d.ts +43 -0
  343. package/dist/models/metadata.d.ts.map +1 -0
  344. package/dist/models/metadata.js +72 -0
  345. package/dist/models/metadata.js.map +1 -0
  346. package/dist/models/openrouter.d.ts +6 -0
  347. package/dist/models/openrouter.d.ts.map +1 -0
  348. package/dist/models/openrouter.js +38 -0
  349. package/dist/models/openrouter.js.map +1 -0
  350. package/dist/orchestration/accounting.d.ts +35 -0
  351. package/dist/orchestration/accounting.d.ts.map +1 -0
  352. package/dist/orchestration/accounting.js +27 -0
  353. package/dist/orchestration/accounting.js.map +1 -0
  354. package/dist/orchestration/actions.d.ts +23 -0
  355. package/dist/orchestration/actions.d.ts.map +1 -0
  356. package/dist/orchestration/actions.js +65 -0
  357. package/dist/orchestration/actions.js.map +1 -0
  358. package/dist/orchestration/cli.d.ts +28 -0
  359. package/dist/orchestration/cli.d.ts.map +1 -0
  360. package/dist/orchestration/cli.js +178 -0
  361. package/dist/orchestration/cli.js.map +1 -0
  362. package/dist/orchestration/coordinator-actions.d.ts +15 -0
  363. package/dist/orchestration/coordinator-actions.d.ts.map +1 -0
  364. package/dist/orchestration/coordinator-actions.js +79 -0
  365. package/dist/orchestration/coordinator-actions.js.map +1 -0
  366. package/dist/orchestration/coordinator-types.d.ts +193 -0
  367. package/dist/orchestration/coordinator-types.d.ts.map +1 -0
  368. package/dist/orchestration/coordinator-types.js +2 -0
  369. package/dist/orchestration/coordinator-types.js.map +1 -0
  370. package/dist/orchestration/coordinator.d.ts +32 -0
  371. package/dist/orchestration/coordinator.d.ts.map +1 -0
  372. package/dist/orchestration/coordinator.js +405 -0
  373. package/dist/orchestration/coordinator.js.map +1 -0
  374. package/dist/orchestration/execution-cli.d.ts +11 -0
  375. package/dist/orchestration/execution-cli.d.ts.map +1 -0
  376. package/dist/orchestration/execution-cli.js +183 -0
  377. package/dist/orchestration/execution-cli.js.map +1 -0
  378. package/dist/orchestration/execution-journal.d.ts +15 -0
  379. package/dist/orchestration/execution-journal.d.ts.map +1 -0
  380. package/dist/orchestration/execution-journal.js +477 -0
  381. package/dist/orchestration/execution-journal.js.map +1 -0
  382. package/dist/orchestration/execution-store.d.ts +39 -0
  383. package/dist/orchestration/execution-store.d.ts.map +1 -0
  384. package/dist/orchestration/execution-store.js +325 -0
  385. package/dist/orchestration/execution-store.js.map +1 -0
  386. package/dist/orchestration/execution.d.ts +8 -0
  387. package/dist/orchestration/execution.d.ts.map +1 -0
  388. package/dist/orchestration/execution.js +47 -0
  389. package/dist/orchestration/execution.js.map +1 -0
  390. package/dist/orchestration/index.d.ts +20 -0
  391. package/dist/orchestration/index.d.ts.map +1 -0
  392. package/dist/orchestration/index.js +17 -0
  393. package/dist/orchestration/index.js.map +1 -0
  394. package/dist/orchestration/progress.d.ts +19 -0
  395. package/dist/orchestration/progress.d.ts.map +1 -0
  396. package/dist/orchestration/progress.js +20 -0
  397. package/dist/orchestration/progress.js.map +1 -0
  398. package/dist/orchestration/recovery.d.ts +4 -0
  399. package/dist/orchestration/recovery.d.ts.map +1 -0
  400. package/dist/orchestration/recovery.js +121 -0
  401. package/dist/orchestration/recovery.js.map +1 -0
  402. package/dist/orchestration/request-accounting.d.ts +35 -0
  403. package/dist/orchestration/request-accounting.d.ts.map +1 -0
  404. package/dist/orchestration/request-accounting.js +71 -0
  405. package/dist/orchestration/request-accounting.js.map +1 -0
  406. package/dist/orchestration/routing.d.ts +20 -0
  407. package/dist/orchestration/routing.d.ts.map +1 -0
  408. package/dist/orchestration/routing.js +38 -0
  409. package/dist/orchestration/routing.js.map +1 -0
  410. package/dist/orchestration/store.d.ts +26 -0
  411. package/dist/orchestration/store.d.ts.map +1 -0
  412. package/dist/orchestration/store.js +381 -0
  413. package/dist/orchestration/store.js.map +1 -0
  414. package/dist/orchestration/types.d.ts +201 -0
  415. package/dist/orchestration/types.d.ts.map +1 -0
  416. package/dist/orchestration/types.js +11 -0
  417. package/dist/orchestration/types.js.map +1 -0
  418. package/dist/orchestration/validation.d.ts +29 -0
  419. package/dist/orchestration/validation.d.ts.map +1 -0
  420. package/dist/orchestration/validation.js +440 -0
  421. package/dist/orchestration/validation.js.map +1 -0
  422. package/dist/orchestration/verification.d.ts +30 -0
  423. package/dist/orchestration/verification.d.ts.map +1 -0
  424. package/dist/orchestration/verification.js +204 -0
  425. package/dist/orchestration/verification.js.map +1 -0
  426. package/dist/orchestration/worker-context.d.ts +33 -0
  427. package/dist/orchestration/worker-context.d.ts.map +1 -0
  428. package/dist/orchestration/worker-context.js +31 -0
  429. package/dist/orchestration/worker-context.js.map +1 -0
  430. package/dist/parallel-tools.js.map +1 -1
  431. package/dist/plugins.d.ts.map +1 -1
  432. package/dist/policy.d.ts +1 -0
  433. package/dist/policy.d.ts.map +1 -1
  434. package/dist/policy.js +25 -5
  435. package/dist/policy.js.map +1 -1
  436. package/dist/preferences/controls.d.ts +21 -0
  437. package/dist/preferences/controls.d.ts.map +1 -0
  438. package/dist/preferences/controls.js +36 -0
  439. package/dist/preferences/controls.js.map +1 -0
  440. package/dist/preferences/flags.d.ts +8 -0
  441. package/dist/preferences/flags.d.ts.map +1 -0
  442. package/dist/preferences/flags.js +27 -0
  443. package/dist/preferences/flags.js.map +1 -0
  444. package/dist/preferences/index.d.ts +9 -0
  445. package/dist/preferences/index.d.ts.map +1 -0
  446. package/dist/preferences/index.js +9 -0
  447. package/dist/preferences/index.js.map +1 -0
  448. package/dist/preferences/once.d.ts +8 -0
  449. package/dist/preferences/once.d.ts.map +1 -0
  450. package/dist/preferences/once.js +28 -0
  451. package/dist/preferences/once.js.map +1 -0
  452. package/dist/preferences/resolve.d.ts +14 -0
  453. package/dist/preferences/resolve.d.ts.map +1 -0
  454. package/dist/preferences/resolve.js +58 -0
  455. package/dist/preferences/resolve.js.map +1 -0
  456. package/dist/preferences/store.d.ts +19 -0
  457. package/dist/preferences/store.d.ts.map +1 -0
  458. package/dist/preferences/store.js +147 -0
  459. package/dist/preferences/store.js.map +1 -0
  460. package/dist/preferences/submission.d.ts +16 -0
  461. package/dist/preferences/submission.d.ts.map +1 -0
  462. package/dist/preferences/submission.js +29 -0
  463. package/dist/preferences/submission.js.map +1 -0
  464. package/dist/preferences/types.d.ts +23 -0
  465. package/dist/preferences/types.d.ts.map +1 -0
  466. package/dist/preferences/types.js +2 -0
  467. package/dist/preferences/types.js.map +1 -0
  468. package/dist/preferences/validate.d.ts +3 -0
  469. package/dist/preferences/validate.d.ts.map +1 -0
  470. package/dist/preferences/validate.js +15 -0
  471. package/dist/preferences/validate.js.map +1 -0
  472. package/dist/process-cancellation.d.ts +6 -0
  473. package/dist/process-cancellation.d.ts.map +1 -0
  474. package/dist/process-cancellation.js +39 -0
  475. package/dist/process-cancellation.js.map +1 -0
  476. package/dist/providers/anthropic.d.ts +7 -2
  477. package/dist/providers/anthropic.d.ts.map +1 -1
  478. package/dist/providers/anthropic.js +72 -41
  479. package/dist/providers/anthropic.js.map +1 -1
  480. package/dist/providers/bedrock.d.ts +1 -1
  481. package/dist/providers/bedrock.d.ts.map +1 -1
  482. package/dist/providers/bedrock.js +39 -23
  483. package/dist/providers/bedrock.js.map +1 -1
  484. package/dist/providers/compat.d.ts +4 -3
  485. package/dist/providers/compat.d.ts.map +1 -1
  486. package/dist/providers/compat.js +49 -31
  487. package/dist/providers/compat.js.map +1 -1
  488. package/dist/providers/deepseek-reasoning.d.ts +64 -0
  489. package/dist/providers/deepseek-reasoning.d.ts.map +1 -0
  490. package/dist/providers/deepseek-reasoning.js +28 -0
  491. package/dist/providers/deepseek-reasoning.js.map +1 -0
  492. package/dist/providers/google.d.ts +4 -3
  493. package/dist/providers/google.d.ts.map +1 -1
  494. package/dist/providers/google.js +128 -19
  495. package/dist/providers/google.js.map +1 -1
  496. package/dist/providers/index.d.ts +2 -0
  497. package/dist/providers/index.d.ts.map +1 -1
  498. package/dist/providers/index.js +216 -36
  499. package/dist/providers/index.js.map +1 -1
  500. package/dist/providers/ollama.d.ts.map +1 -1
  501. package/dist/providers/ollama.js +79 -43
  502. package/dist/providers/ollama.js.map +1 -1
  503. package/dist/providers/openai.d.ts +12 -12
  504. package/dist/providers/openai.d.ts.map +1 -1
  505. package/dist/providers/openai.js +54 -46
  506. package/dist/providers/openai.js.map +1 -1
  507. package/dist/providers/openrouter-bounds.d.ts +22 -0
  508. package/dist/providers/openrouter-bounds.d.ts.map +1 -0
  509. package/dist/providers/openrouter-bounds.js +16 -0
  510. package/dist/providers/openrouter-bounds.js.map +1 -0
  511. package/dist/providers/stream-attempt.d.ts +29 -0
  512. package/dist/providers/stream-attempt.d.ts.map +1 -0
  513. package/dist/providers/stream-attempt.js +63 -0
  514. package/dist/providers/stream-attempt.js.map +1 -0
  515. package/dist/providers/types.d.ts +40 -4
  516. package/dist/providers/types.d.ts.map +1 -1
  517. package/dist/providers/types.js +19 -0
  518. package/dist/providers/types.js.map +1 -1
  519. package/dist/replay.d.ts.map +1 -1
  520. package/dist/replay.js +16 -0
  521. package/dist/replay.js.map +1 -1
  522. package/dist/risk.d.ts.map +1 -1
  523. package/dist/risk.js +5 -0
  524. package/dist/risk.js.map +1 -1
  525. package/dist/router.d.ts +7 -110
  526. package/dist/router.d.ts.map +1 -1
  527. package/dist/router.js +0 -451
  528. package/dist/router.js.map +1 -1
  529. package/dist/routing/index.d.ts +6 -0
  530. package/dist/routing/index.d.ts.map +1 -0
  531. package/dist/routing/index.js +5 -0
  532. package/dist/routing/index.js.map +1 -0
  533. package/dist/routing/prompt.d.ts +4 -0
  534. package/dist/routing/prompt.d.ts.map +1 -0
  535. package/dist/routing/prompt.js +14 -0
  536. package/dist/routing/prompt.js.map +1 -0
  537. package/dist/routing/select.d.ts +9 -0
  538. package/dist/routing/select.d.ts.map +1 -0
  539. package/dist/routing/select.js +279 -0
  540. package/dist/routing/select.js.map +1 -0
  541. package/dist/routing/smart.d.ts +31 -0
  542. package/dist/routing/smart.d.ts.map +1 -0
  543. package/dist/routing/smart.js +46 -0
  544. package/dist/routing/smart.js.map +1 -0
  545. package/dist/routing/types.d.ts +79 -0
  546. package/dist/routing/types.d.ts.map +1 -0
  547. package/dist/routing/types.js +2 -0
  548. package/dist/routing/types.js.map +1 -0
  549. package/dist/runlog.d.ts +32 -4
  550. package/dist/runlog.d.ts.map +1 -1
  551. package/dist/runlog.js +22 -6
  552. package/dist/runlog.js.map +1 -1
  553. package/dist/runtime/index.d.ts +6 -0
  554. package/dist/runtime/index.d.ts.map +1 -0
  555. package/dist/runtime/index.js +6 -0
  556. package/dist/runtime/index.js.map +1 -0
  557. package/dist/runtime/permissions.d.ts +21 -0
  558. package/dist/runtime/permissions.d.ts.map +1 -0
  559. package/dist/runtime/permissions.js +110 -0
  560. package/dist/runtime/permissions.js.map +1 -0
  561. package/dist/runtime/repair.d.ts +20 -0
  562. package/dist/runtime/repair.d.ts.map +1 -0
  563. package/dist/runtime/repair.js +50 -0
  564. package/dist/runtime/repair.js.map +1 -0
  565. package/dist/runtime/tool-retry.d.ts +3 -0
  566. package/dist/runtime/tool-retry.d.ts.map +1 -0
  567. package/dist/runtime/tool-retry.js +12 -0
  568. package/dist/runtime/tool-retry.js.map +1 -0
  569. package/dist/runtime/turn.d.ts +97 -0
  570. package/dist/runtime/turn.d.ts.map +1 -0
  571. package/dist/runtime/turn.js +437 -0
  572. package/dist/runtime/turn.js.map +1 -0
  573. package/dist/runtime/types.d.ts +11 -0
  574. package/dist/runtime/types.d.ts.map +1 -0
  575. package/dist/runtime/types.js +5 -0
  576. package/dist/runtime/types.js.map +1 -0
  577. package/dist/sandbox/docker.d.ts +4 -4
  578. package/dist/sandbox/docker.d.ts.map +1 -1
  579. package/dist/sandbox/docker.js +55 -16
  580. package/dist/sandbox/docker.js.map +1 -1
  581. package/dist/sandbox/native.d.ts +1 -0
  582. package/dist/sandbox/native.d.ts.map +1 -1
  583. package/dist/sandbox/native.js +11 -2
  584. package/dist/sandbox/native.js.map +1 -1
  585. package/dist/scope.d.ts +5 -9
  586. package/dist/scope.d.ts.map +1 -1
  587. package/dist/scope.js +43 -20
  588. package/dist/scope.js.map +1 -1
  589. package/dist/scuttlebot/client.d.ts.map +1 -1
  590. package/dist/scuttlebot/client.js.map +1 -1
  591. package/dist/scuttlebot/http-client.d.ts.map +1 -1
  592. package/dist/scuttlebot/irc-client.d.ts +5 -5
  593. package/dist/scuttlebot/irc-client.d.ts.map +1 -1
  594. package/dist/scuttlebot/irc-client.js.map +1 -1
  595. package/dist/session-management/actions.d.ts +28 -0
  596. package/dist/session-management/actions.d.ts.map +1 -0
  597. package/dist/session-management/actions.js +78 -0
  598. package/dist/session-management/actions.js.map +1 -0
  599. package/dist/session-management/cli.d.ts +24 -0
  600. package/dist/session-management/cli.d.ts.map +1 -0
  601. package/dist/session-management/cli.js +92 -0
  602. package/dist/session-management/cli.js.map +1 -0
  603. package/dist/session-management/files.d.ts +5 -0
  604. package/dist/session-management/files.d.ts.map +1 -0
  605. package/dist/session-management/files.js +92 -0
  606. package/dist/session-management/files.js.map +1 -0
  607. package/dist/session-management/index.d.ts +7 -0
  608. package/dist/session-management/index.d.ts.map +1 -0
  609. package/dist/session-management/index.js +7 -0
  610. package/dist/session-management/index.js.map +1 -0
  611. package/dist/session-management/permissions.d.ts +12 -0
  612. package/dist/session-management/permissions.d.ts.map +1 -0
  613. package/dist/session-management/permissions.js +33 -0
  614. package/dist/session-management/permissions.js.map +1 -0
  615. package/dist/session-management/presentation.d.ts +5 -0
  616. package/dist/session-management/presentation.d.ts.map +1 -0
  617. package/dist/session-management/presentation.js +10 -0
  618. package/dist/session-management/presentation.js.map +1 -0
  619. package/dist/session-management/transfer.d.ts +9 -0
  620. package/dist/session-management/transfer.d.ts.map +1 -0
  621. package/dist/session-management/transfer.js +39 -0
  622. package/dist/session-management/transfer.js.map +1 -0
  623. package/dist/sessions/context.d.ts +4 -0
  624. package/dist/sessions/context.d.ts.map +1 -0
  625. package/dist/sessions/context.js +6 -0
  626. package/dist/sessions/context.js.map +1 -0
  627. package/dist/sessions/format.d.ts +38 -0
  628. package/dist/sessions/format.d.ts.map +1 -0
  629. package/dist/sessions/format.js +116 -0
  630. package/dist/sessions/format.js.map +1 -0
  631. package/dist/sessions/history.d.ts +37 -0
  632. package/dist/sessions/history.d.ts.map +1 -0
  633. package/dist/sessions/history.js +197 -0
  634. package/dist/sessions/history.js.map +1 -0
  635. package/dist/sessions/index.d.ts +8 -0
  636. package/dist/sessions/index.d.ts.map +1 -0
  637. package/dist/sessions/index.js +8 -0
  638. package/dist/sessions/index.js.map +1 -0
  639. package/dist/sessions/output.d.ts +31 -0
  640. package/dist/sessions/output.d.ts.map +1 -0
  641. package/dist/sessions/output.js +115 -0
  642. package/dist/sessions/output.js.map +1 -0
  643. package/dist/sessions/portable.d.ts +26 -0
  644. package/dist/sessions/portable.d.ts.map +1 -0
  645. package/dist/sessions/portable.js +105 -0
  646. package/dist/sessions/portable.js.map +1 -0
  647. package/dist/sessions/snapshot.d.ts +11 -0
  648. package/dist/sessions/snapshot.d.ts.map +1 -0
  649. package/dist/sessions/snapshot.js +118 -0
  650. package/dist/sessions/snapshot.js.map +1 -0
  651. package/dist/sessions/tool-state.d.ts +11 -0
  652. package/dist/sessions/tool-state.d.ts.map +1 -0
  653. package/dist/sessions/tool-state.js +152 -0
  654. package/dist/sessions/tool-state.js.map +1 -0
  655. package/dist/setup.d.ts.map +1 -1
  656. package/dist/setup.js +16 -5
  657. package/dist/setup.js.map +1 -1
  658. package/dist/spawning/actions.d.ts +23 -0
  659. package/dist/spawning/actions.d.ts.map +1 -0
  660. package/dist/spawning/actions.js +120 -0
  661. package/dist/spawning/actions.js.map +1 -0
  662. package/dist/spawning/authority.d.ts +15 -0
  663. package/dist/spawning/authority.d.ts.map +1 -0
  664. package/dist/spawning/authority.js +16 -0
  665. package/dist/spawning/authority.js.map +1 -0
  666. package/dist/spawning/cli.d.ts +4 -0
  667. package/dist/spawning/cli.d.ts.map +1 -0
  668. package/dist/spawning/cli.js +46 -0
  669. package/dist/spawning/cli.js.map +1 -0
  670. package/dist/spawning/execution.d.ts +13 -0
  671. package/dist/spawning/execution.d.ts.map +1 -0
  672. package/dist/spawning/execution.js +59 -0
  673. package/dist/spawning/execution.js.map +1 -0
  674. package/dist/spawning/index.d.ts +8 -0
  675. package/dist/spawning/index.d.ts.map +1 -0
  676. package/dist/spawning/index.js +8 -0
  677. package/dist/spawning/index.js.map +1 -0
  678. package/dist/spawning/store.d.ts +12 -0
  679. package/dist/spawning/store.d.ts.map +1 -0
  680. package/dist/spawning/store.js +93 -0
  681. package/dist/spawning/store.js.map +1 -0
  682. package/dist/spawning/types.d.ts +34 -0
  683. package/dist/spawning/types.d.ts.map +1 -0
  684. package/dist/spawning/types.js +2 -0
  685. package/dist/spawning/types.js.map +1 -0
  686. package/dist/spawning/validation.d.ts +14 -0
  687. package/dist/spawning/validation.d.ts.map +1 -0
  688. package/dist/spawning/validation.js +95 -0
  689. package/dist/spawning/validation.js.map +1 -0
  690. package/dist/storage.d.ts +29 -1
  691. package/dist/storage.d.ts.map +1 -1
  692. package/dist/storage.js +112 -40
  693. package/dist/storage.js.map +1 -1
  694. package/dist/streaming.d.ts.map +1 -1
  695. package/dist/streaming.js.map +1 -1
  696. package/dist/styles.d.ts +56 -56
  697. package/dist/styles.d.ts.map +1 -1
  698. package/dist/styles.js.map +1 -1
  699. package/dist/summarization.d.ts.map +1 -1
  700. package/dist/summarization.js.map +1 -1
  701. package/dist/supervision/approval.d.ts +4 -0
  702. package/dist/supervision/approval.d.ts.map +1 -0
  703. package/dist/supervision/approval.js +7 -0
  704. package/dist/supervision/approval.js.map +1 -0
  705. package/dist/supervision/availability.d.ts +34 -0
  706. package/dist/supervision/availability.d.ts.map +1 -0
  707. package/dist/supervision/availability.js +44 -0
  708. package/dist/supervision/availability.js.map +1 -0
  709. package/dist/supervision/context.d.ts +36 -0
  710. package/dist/supervision/context.d.ts.map +1 -0
  711. package/dist/supervision/context.js +52 -0
  712. package/dist/supervision/context.js.map +1 -0
  713. package/dist/supervision/contracts.d.ts +7 -0
  714. package/dist/supervision/contracts.d.ts.map +1 -0
  715. package/dist/supervision/contracts.js +86 -0
  716. package/dist/supervision/contracts.js.map +1 -0
  717. package/dist/supervision/effects.d.ts +15 -0
  718. package/dist/supervision/effects.d.ts.map +1 -0
  719. package/dist/supervision/effects.js +19 -0
  720. package/dist/supervision/effects.js.map +1 -0
  721. package/dist/supervision/evidence.d.ts +32 -0
  722. package/dist/supervision/evidence.d.ts.map +1 -0
  723. package/dist/supervision/evidence.js +68 -0
  724. package/dist/supervision/evidence.js.map +1 -0
  725. package/dist/supervision/health.d.ts +16 -0
  726. package/dist/supervision/health.d.ts.map +1 -0
  727. package/dist/supervision/health.js +86 -0
  728. package/dist/supervision/health.js.map +1 -0
  729. package/dist/supervision/index.d.ts +13 -0
  730. package/dist/supervision/index.d.ts.map +1 -0
  731. package/dist/supervision/index.js +13 -0
  732. package/dist/supervision/index.js.map +1 -0
  733. package/dist/supervision/journal.d.ts +16 -0
  734. package/dist/supervision/journal.d.ts.map +1 -0
  735. package/dist/supervision/journal.js +311 -0
  736. package/dist/supervision/journal.js.map +1 -0
  737. package/dist/supervision/receipts.d.ts +4 -0
  738. package/dist/supervision/receipts.d.ts.map +1 -0
  739. package/dist/supervision/receipts.js +21 -0
  740. package/dist/supervision/receipts.js.map +1 -0
  741. package/dist/supervision/reply.d.ts +12 -0
  742. package/dist/supervision/reply.d.ts.map +1 -0
  743. package/dist/supervision/reply.js +50 -0
  744. package/dist/supervision/reply.js.map +1 -0
  745. package/dist/supervision/runtime.d.ts +8 -0
  746. package/dist/supervision/runtime.d.ts.map +1 -0
  747. package/dist/supervision/runtime.js +188 -0
  748. package/dist/supervision/runtime.js.map +1 -0
  749. package/dist/supervision/types.d.ts +174 -0
  750. package/dist/supervision/types.d.ts.map +1 -0
  751. package/dist/supervision/types.js +2 -0
  752. package/dist/supervision/types.js.map +1 -0
  753. package/dist/terminal-image.js.map +1 -1
  754. package/dist/tools.d.ts +12 -0
  755. package/dist/tools.d.ts.map +1 -1
  756. package/dist/tools.js +131 -23
  757. package/dist/tools.js.map +1 -1
  758. package/dist/trust.js.map +1 -1
  759. package/dist/turn-controller.d.ts +12 -0
  760. package/dist/turn-controller.d.ts.map +1 -0
  761. package/dist/turn-controller.js +51 -0
  762. package/dist/turn-controller.js.map +1 -0
  763. package/dist/types.d.ts +7 -1
  764. package/dist/types.d.ts.map +1 -1
  765. package/dist/types.js +3 -0
  766. package/dist/types.js.map +1 -1
  767. package/dist/ui/agent.d.ts +11 -10
  768. package/dist/ui/agent.d.ts.map +1 -1
  769. package/dist/ui/agent.js +293 -897
  770. package/dist/ui/agent.js.map +1 -1
  771. package/dist/ui/chat-input.d.ts +2 -1
  772. package/dist/ui/chat-input.d.ts.map +1 -1
  773. package/dist/ui/commands.d.ts +20 -2
  774. package/dist/ui/commands.d.ts.map +1 -1
  775. package/dist/ui/commands.js +208 -155
  776. package/dist/ui/commands.js.map +1 -1
  777. package/dist/ui/completions.d.ts.map +1 -1
  778. package/dist/ui/completions.js +16 -5
  779. package/dist/ui/completions.js.map +1 -1
  780. package/dist/ui/components.d.ts +6 -6
  781. package/dist/ui/components.d.ts.map +1 -1
  782. package/dist/ui/debug-log.d.ts.map +1 -1
  783. package/dist/ui/error-boundary.d.ts +1 -1
  784. package/dist/ui/error-boundary.d.ts.map +1 -1
  785. package/dist/ui/frame.d.ts +1 -1
  786. package/dist/ui/frame.d.ts.map +1 -1
  787. package/dist/ui/index.d.ts +7 -3
  788. package/dist/ui/index.d.ts.map +1 -1
  789. package/dist/ui/index.js +13 -11
  790. package/dist/ui/index.js.map +1 -1
  791. package/dist/ui/messages.d.ts +1 -1
  792. package/dist/ui/messages.d.ts.map +1 -1
  793. package/dist/ui/messages.js +5 -0
  794. package/dist/ui/messages.js.map +1 -1
  795. package/dist/ui/modals/index.d.ts +1 -0
  796. package/dist/ui/modals/index.d.ts.map +1 -1
  797. package/dist/ui/modals/index.js +1 -0
  798. package/dist/ui/modals/index.js.map +1 -1
  799. package/dist/ui/modals/prompts.d.ts +9 -11
  800. package/dist/ui/modals/prompts.d.ts.map +1 -1
  801. package/dist/ui/modals/prompts.js +15 -11
  802. package/dist/ui/modals/prompts.js.map +1 -1
  803. package/dist/ui/modals/selectors.d.ts +5 -3
  804. package/dist/ui/modals/selectors.d.ts.map +1 -1
  805. package/dist/ui/modals/selectors.js +3 -2
  806. package/dist/ui/modals/selectors.js.map +1 -1
  807. package/dist/ui/modals/setup.d.ts +3 -2
  808. package/dist/ui/modals/setup.d.ts.map +1 -1
  809. package/dist/ui/modals/setup.js +1 -1
  810. package/dist/ui/modals/tool-output.d.ts +8 -0
  811. package/dist/ui/modals/tool-output.d.ts.map +1 -0
  812. package/dist/ui/modals/tool-output.js +26 -0
  813. package/dist/ui/modals/tool-output.js.map +1 -0
  814. package/dist/ui/model-commands.d.ts +4 -0
  815. package/dist/ui/model-commands.d.ts.map +1 -0
  816. package/dist/ui/model-commands.js +69 -0
  817. package/dist/ui/model-commands.js.map +1 -0
  818. package/dist/ui/regions/input-region.d.ts +1 -1
  819. package/dist/ui/regions/input-region.d.ts.map +1 -1
  820. package/dist/ui/regions/modal-host.d.ts +4 -1
  821. package/dist/ui/regions/modal-host.d.ts.map +1 -1
  822. package/dist/ui/regions/modal-host.js +7 -1
  823. package/dist/ui/regions/modal-host.js.map +1 -1
  824. package/dist/ui/regions/static-scrollback.d.ts +1 -1
  825. package/dist/ui/regions/static-scrollback.d.ts.map +1 -1
  826. package/dist/ui/regions/status-region.d.ts +2 -1
  827. package/dist/ui/regions/status-region.d.ts.map +1 -1
  828. package/dist/ui/regions/status-region.js +2 -2
  829. package/dist/ui/regions/status-region.js.map +1 -1
  830. package/dist/ui/regions/tool-activity.d.ts +6 -0
  831. package/dist/ui/regions/tool-activity.d.ts.map +1 -0
  832. package/dist/ui/regions/tool-activity.js +9 -0
  833. package/dist/ui/regions/tool-activity.js.map +1 -0
  834. package/dist/ui/regions/transcript-region.d.ts +1 -1
  835. package/dist/ui/regions/transcript-region.d.ts.map +1 -1
  836. package/dist/ui/regions/transcript-region.js +3 -2
  837. package/dist/ui/regions/transcript-region.js.map +1 -1
  838. package/dist/ui/regions/workflow-region.d.ts +9 -0
  839. package/dist/ui/regions/workflow-region.d.ts.map +1 -0
  840. package/dist/ui/regions/workflow-region.js +11 -0
  841. package/dist/ui/regions/workflow-region.js.map +1 -0
  842. package/dist/ui/self-restart.js.map +1 -1
  843. package/dist/ui/session-commands.d.ts +3 -0
  844. package/dist/ui/session-commands.d.ts.map +1 -0
  845. package/dist/ui/session-commands.js +141 -0
  846. package/dist/ui/session-commands.js.map +1 -0
  847. package/dist/ui/state/use-approval-state.d.ts +9 -0
  848. package/dist/ui/state/use-approval-state.d.ts.map +1 -0
  849. package/dist/ui/state/use-approval-state.js +18 -0
  850. package/dist/ui/state/use-approval-state.js.map +1 -0
  851. package/dist/ui/state/use-chat-controller.d.ts +4 -1
  852. package/dist/ui/state/use-chat-controller.d.ts.map +1 -1
  853. package/dist/ui/state/use-chat-controller.js +256 -180
  854. package/dist/ui/state/use-chat-controller.js.map +1 -1
  855. package/dist/ui/state/use-modal-state.d.ts +6 -8
  856. package/dist/ui/state/use-modal-state.d.ts.map +1 -1
  857. package/dist/ui/state/use-modal-state.js +3 -4
  858. package/dist/ui/state/use-modal-state.js.map +1 -1
  859. package/dist/ui/state/use-model-state.d.ts +7 -3
  860. package/dist/ui/state/use-model-state.d.ts.map +1 -1
  861. package/dist/ui/state/use-model-state.js +24 -17
  862. package/dist/ui/state/use-model-state.js.map +1 -1
  863. package/dist/ui/state/use-processing-state.js.map +1 -1
  864. package/dist/ui/state/use-queue-state.d.ts +4 -3
  865. package/dist/ui/state/use-queue-state.d.ts.map +1 -1
  866. package/dist/ui/state/use-queue-state.js +11 -8
  867. package/dist/ui/state/use-queue-state.js.map +1 -1
  868. package/dist/ui/state/use-session-init.d.ts +4 -0
  869. package/dist/ui/state/use-session-init.d.ts.map +1 -1
  870. package/dist/ui/state/use-session-init.js +19 -3
  871. package/dist/ui/state/use-session-init.js.map +1 -1
  872. package/dist/ui/state/use-transcript-state.d.ts +6 -3
  873. package/dist/ui/state/use-transcript-state.d.ts.map +1 -1
  874. package/dist/ui/state/use-transcript-state.js +27 -15
  875. package/dist/ui/state/use-transcript-state.js.map +1 -1
  876. package/dist/ui/status-bar.d.ts +3 -2
  877. package/dist/ui/status-bar.d.ts.map +1 -1
  878. package/dist/ui/status-bar.js +3 -3
  879. package/dist/ui/status-bar.js.map +1 -1
  880. package/dist/ui/tool-output-cache.d.ts +12 -0
  881. package/dist/ui/tool-output-cache.d.ts.map +1 -0
  882. package/dist/ui/tool-output-cache.js +27 -0
  883. package/dist/ui/tool-output-cache.js.map +1 -0
  884. package/dist/ui/tool-output-commands.d.ts +3 -0
  885. package/dist/ui/tool-output-commands.d.ts.map +1 -0
  886. package/dist/ui/tool-output-commands.js +37 -0
  887. package/dist/ui/tool-output-commands.js.map +1 -0
  888. package/dist/ui/tool-output-wrap.d.ts +3 -0
  889. package/dist/ui/tool-output-wrap.d.ts.map +1 -0
  890. package/dist/ui/tool-output-wrap.js +24 -0
  891. package/dist/ui/tool-output-wrap.js.map +1 -0
  892. package/dist/ui/tool-progress.d.ts +23 -0
  893. package/dist/ui/tool-progress.d.ts.map +1 -0
  894. package/dist/ui/tool-progress.js +42 -0
  895. package/dist/ui/tool-progress.js.map +1 -0
  896. package/dist/ui/types.d.ts +8 -0
  897. package/dist/ui/types.d.ts.map +1 -1
  898. package/dist/ui/workflow-progress.d.ts +21 -0
  899. package/dist/ui/workflow-progress.d.ts.map +1 -0
  900. package/dist/ui/workflow-progress.js +107 -0
  901. package/dist/ui/workflow-progress.js.map +1 -0
  902. package/dist/version-check.js.map +1 -1
  903. package/package.json +21 -12
  904. package/scripts/verify-runlog.mjs +208 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ledger.js","sourceRoot":"","sources":["../../src/execution/ledger.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,45 @@
1
+ type Change = {
2
+ type: 'import' | 'charge';
3
+ costNanos: number;
4
+ } | {
5
+ type: 'reserve';
6
+ requestId: string;
7
+ runId: string;
8
+ costNanos: number;
9
+ capNanos: number;
10
+ } | {
11
+ type: 'settle';
12
+ requestId: string;
13
+ costNanos: number | null;
14
+ invalid?: true;
15
+ } | {
16
+ type: 'reset';
17
+ };
18
+ interface Event {
19
+ version: 1;
20
+ id: string;
21
+ at: string;
22
+ previous: string | null;
23
+ change: Change;
24
+ hash: string;
25
+ }
26
+ export declare function dollarsToNanos(value: number): number;
27
+ export declare class ProjectSpendLedger {
28
+ readonly file: string;
29
+ constructor(file: string);
30
+ read(): {
31
+ spentUsd: number;
32
+ updatedAt: string;
33
+ blocked: boolean;
34
+ events: Event[];
35
+ };
36
+ reserve(requestId: string, runId: string, costNanos: number, capNanos: number, signal?: AbortSignal): Promise<void>;
37
+ settle(requestId: string, costNanos: number | null, invalid?: boolean): Promise<void>;
38
+ charge(cost: number): number;
39
+ reset(): void;
40
+ private updateAsync;
41
+ private updateSync;
42
+ private update;
43
+ }
44
+ export {};
45
+ //# sourceMappingURL=project-spend.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"project-spend.d.ts","sourceRoot":"","sources":["../../src/execution/project-spend.ts"],"names":[],"mappings":"AASA,KAAK,MAAM,GAAC;IAAC,IAAI,EAAC,QAAQ,GAAC,QAAQ,CAAC;IAAA,SAAS,EAAC,MAAM,CAAA;CAAC,GAAC;IAAC,IAAI,EAAC,SAAS,CAAC;IAAA,SAAS,EAAC,MAAM,CAAC;IAAA,KAAK,EAAC,MAAM,CAAC;IAAA,SAAS,EAAC,MAAM,CAAC;IAAA,QAAQ,EAAC,MAAM,CAAA;CAAC,GAAC;IAAC,IAAI,EAAC,QAAQ,CAAC;IAAA,SAAS,EAAC,MAAM,CAAC;IAAA,SAAS,EAAC,MAAM,GAAC,IAAI,CAAC;IAAA,OAAO,CAAC,EAAC,IAAI,CAAA;CAAC,GAAC;IAAC,IAAI,EAAC,OAAO,CAAA;CAAC,CAAC;AAC1N,UAAU,KAAK;IAAE,OAAO,EAAC,CAAC,CAAC;IAAA,EAAE,EAAC,MAAM,CAAC;IAAA,EAAE,EAAC,MAAM,CAAC;IAAA,QAAQ,EAAC,MAAM,GAAC,IAAI,CAAC;IAAA,MAAM,EAAC,MAAM,CAAC;IAAA,IAAI,EAAC,MAAM,CAAA;CAAC;AAI9F,wBAAgB,cAAc,CAAC,KAAK,EAAC,MAAM,GAAE,MAAM,CAAwG;AAkD3J,qBAAa,kBAAkB;IAC7B,QAAQ,CAAC,IAAI,EAAC,MAAM,CAAC;IACrB,YAAY,IAAI,EAAC,MAAM,EAA2B;IAClD,IAAI,IAAG;QAAC,QAAQ,EAAC,MAAM,CAAC;QAAA,SAAS,EAAC,MAAM,CAAC;QAAA,OAAO,EAAC,OAAO,CAAC;QAAA,MAAM,EAAC,KAAK,EAAE,CAAA;KAAC,CAIvE;IACK,OAAO,CAAC,SAAS,EAAC,MAAM,EAAC,KAAK,EAAC,MAAM,EAAC,SAAS,EAAC,MAAM,EAAC,QAAQ,EAAC,MAAM,EAAC,MAAM,CAAC,EAAC,WAAW,GAAE,OAAO,CAAC,IAAI,CAAC,CAAqF;IAC9L,MAAM,CAAC,SAAS,EAAC,MAAM,EAAC,SAAS,EAAC,MAAM,GAAC,IAAI,EAAC,OAAO,UAAM,GAAE,OAAO,CAAC,IAAI,CAAC,CAAsG;IACtL,MAAM,CAAC,IAAI,EAAC,MAAM,GAAE,MAAM,CAAyF;IACnH,KAAK,IAAG,IAAI,CAAmC;YACjC,WAAW;IACzB,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,MAAM;CAcf"}
@@ -0,0 +1,274 @@
1
+ /** Shared project accounting at the existing budget path; all writers retain history. */
2
+ import * as fs from 'node:fs';
3
+ import { dirname, join, resolve } from 'node:path';
4
+ import { randomUUID } from 'node:crypto';
5
+ import { canonicalJson, canonicalPath, digest } from '../approvals/index.js';
6
+ import { cancellableDelay, throwIfCancelled } from '../cancellation.js';
7
+ import { ExecutionLimitError } from './types.js';
8
+ import { hex, integer, shape, uuid } from './authority.js';
9
+ const MAX_EVENTS = 10000, MAX_BYTES = 8 * 1024 * 1024;
10
+ const damaged = () => new ExecutionLimitError('unavailable', 'Project budget history is damaged or unavailable; no further request is authorized. Preserve it for recovery.');
11
+ export function dollarsToNanos(value) { if (!Number.isFinite(value) || value < 0)
12
+ throw damaged(); const n = Math.ceil(value * 1e9); integer(n); return n; }
13
+ function replay(events) {
14
+ if (events.length > MAX_EVENTS)
15
+ throw damaged();
16
+ const state = { spentNanos: 0, blocked: false, requests: new Map(), events };
17
+ let previous = null, lastAt = '';
18
+ const ids = new Set();
19
+ for (const event of events) {
20
+ shape(event, ['version', 'id', 'at', 'previous', 'change', 'hash']);
21
+ if (event.version !== 1 || !uuid(event.id) || ids.has(event.id) || typeof event.at !== 'string' || !Number.isFinite(Date.parse(event.at)) || event.at < lastAt || event.previous !== previous || !hex(event.hash))
22
+ throw damaged();
23
+ const { hash, ...body } = event;
24
+ if (digest(canonicalJson(body)) !== hash)
25
+ throw damaged();
26
+ ids.add(event.id);
27
+ previous = hash;
28
+ lastAt = event.at;
29
+ const change = event.change;
30
+ shape(change, ['type'], ['costNanos', 'requestId', 'runId', 'capNanos', 'invalid']);
31
+ if (change.type === 'import' || change.type === 'charge') {
32
+ shape(change, ['type', 'costNanos']);
33
+ integer(change.costNanos);
34
+ if (change.type === 'import' && state.events[0] !== event)
35
+ throw damaged();
36
+ state.spentNanos += change.costNanos;
37
+ }
38
+ else if (change.type === 'reserve') {
39
+ shape(change, ['type', 'requestId', 'runId', 'costNanos', 'capNanos']);
40
+ if (!uuid(change.requestId) || !uuid(change.runId) || state.requests.has(change.requestId))
41
+ throw damaged();
42
+ integer(change.costNanos);
43
+ integer(change.capNanos);
44
+ if (state.blocked || state.spentNanos + change.costNanos > change.capNanos)
45
+ throw new ExecutionLimitError('budget', 'Request reservation exceeds the shared project cost budget.');
46
+ state.spentNanos += change.costNanos;
47
+ state.requests.set(change.requestId, { costNanos: change.costNanos, settled: false });
48
+ }
49
+ else if (change.type === 'settle') {
50
+ shape(change, ['type', 'requestId', 'costNanos'], ['invalid']);
51
+ if (change.invalid !== undefined && change.invalid !== true)
52
+ throw damaged();
53
+ if (!uuid(change.requestId))
54
+ throw damaged();
55
+ if (change.costNanos !== null)
56
+ integer(change.costNanos);
57
+ const request = state.requests.get(change.requestId);
58
+ if (!request || request.settled)
59
+ throw new ExecutionLimitError('conflict', 'Project reservation is unknown or already settled.');
60
+ request.settled = true;
61
+ if (change.invalid)
62
+ state.blocked = true;
63
+ if (change.costNanos !== null) {
64
+ state.spentNanos += (change.invalid ? Math.max(change.costNanos, request.costNanos) : change.costNanos) - request.costNanos;
65
+ if (change.costNanos > request.costNanos)
66
+ state.blocked = true;
67
+ }
68
+ }
69
+ else if (change.type === 'reset') {
70
+ shape(change, ['type']);
71
+ if ([...state.requests.values()].some(r => !r.settled))
72
+ throw new ExecutionLimitError('conflict', 'Pending project reservations cannot be reset.');
73
+ state.spentNanos = 0;
74
+ state.blocked = false;
75
+ }
76
+ else
77
+ throw damaged();
78
+ integer(state.spentNanos);
79
+ }
80
+ return state;
81
+ }
82
+ function readRaw(file) {
83
+ let fd;
84
+ try {
85
+ fd = fs.openSync(file, fs.constants.O_RDONLY | fs.constants.O_NOFOLLOW | fs.constants.O_NONBLOCK);
86
+ }
87
+ catch (error) {
88
+ if (error.code === 'ENOENT')
89
+ return null;
90
+ throw damaged();
91
+ }
92
+ try {
93
+ const stat = fs.fstatSync(fd);
94
+ if (!stat.isFile() || stat.mode & 0o022 || stat.size > MAX_BYTES)
95
+ throw damaged();
96
+ const buf = Buffer.alloc(stat.size + 1);
97
+ let size = 0, n;
98
+ while (size < buf.length && (n = fs.readSync(fd, buf, size, buf.length - size, null)) > 0)
99
+ size += n;
100
+ if (size !== stat.size)
101
+ throw damaged();
102
+ return buf.subarray(0, size).toString('utf8');
103
+ }
104
+ finally {
105
+ fs.closeSync(fd);
106
+ }
107
+ }
108
+ function parse(raw) {
109
+ if (raw === null)
110
+ return { state: replay([]), legacy: false };
111
+ let value;
112
+ try {
113
+ value = JSON.parse(raw);
114
+ }
115
+ catch {
116
+ throw damaged();
117
+ }
118
+ if (!value || typeof value !== 'object')
119
+ throw damaged();
120
+ if (!('version' in value)) {
121
+ shape(value, ['spentUsd', 'updatedAt']);
122
+ if (typeof value.spentUsd !== 'number' || typeof value.updatedAt !== 'string' || !Number.isFinite(Date.parse(value.updatedAt)))
123
+ throw damaged();
124
+ const costNanos = dollarsToNanos(value.spentUsd);
125
+ return { state: { spentNanos: costNanos, blocked: false, requests: new Map(), events: [], legacyUpdatedAt: value.updatedAt }, legacy: true };
126
+ }
127
+ const record = value;
128
+ shape(record, ['version', 'events', 'spentUsd', 'updatedAt']);
129
+ if (record.version !== 2 || !Array.isArray(record.events))
130
+ throw damaged();
131
+ const state = replay(record.events);
132
+ if (record.spentUsd !== state.spentNanos / 1e9 || record.updatedAt !== (state.events.at(-1)?.at ?? new Date(0).toISOString()))
133
+ throw damaged();
134
+ return { state, legacy: false };
135
+ }
136
+ function encode(state) {
137
+ const raw = JSON.stringify({ version: 2, events: state.events, spentUsd: state.spentNanos / 1e9, updatedAt: state.events.at(-1)?.at ?? new Date(0).toISOString() });
138
+ if (Buffer.byteLength(raw) > MAX_BYTES)
139
+ throw new ExecutionLimitError('limit', 'Project budget history reached its byte limit; preserve the history.');
140
+ return raw;
141
+ }
142
+ function event(events, change) { const body = { version: 1, id: randomUUID(), at: [new Date().toISOString(), events.at(-1)?.at ?? ''].sort().at(-1), previous: events.at(-1)?.hash ?? null, change }; return { ...body, hash: digest(canonicalJson(body)) }; }
143
+ function directory(dir, create = false) {
144
+ if (canonicalPath(dir) !== dir)
145
+ throw damaged();
146
+ if (create)
147
+ fs.mkdirSync(dir, { recursive: true, mode: 0o700 });
148
+ const stat = fs.lstatSync(dir);
149
+ if (!stat.isDirectory() || stat.isSymbolicLink() || stat.mode & 0o022)
150
+ throw damaged();
151
+ return stat;
152
+ }
153
+ function writeNew(file, raw) { const fd = fs.openSync(file, 'wx', 0o600); try {
154
+ fs.writeFileSync(fd, raw);
155
+ fs.fsyncSync(fd);
156
+ }
157
+ finally {
158
+ fs.closeSync(fd);
159
+ } }
160
+ function initialized(file) {
161
+ try {
162
+ const stat = fs.lstatSync(file);
163
+ if (!stat.isFile() || stat.isSymbolicLink() || stat.size !== 9)
164
+ throw damaged();
165
+ }
166
+ catch (error) {
167
+ if (error.code === 'ENOENT')
168
+ return false;
169
+ throw damaged();
170
+ }
171
+ if (readRaw(file) !== 'version=2')
172
+ throw damaged();
173
+ return true;
174
+ }
175
+ export class ProjectSpendLedger {
176
+ file;
177
+ constructor(file) { this.file = resolve(file); }
178
+ read() {
179
+ const dir = dirname(this.file);
180
+ if (canonicalPath(dir) !== dir)
181
+ throw damaged();
182
+ if (fs.existsSync(dir))
183
+ directory(dir);
184
+ const raw = readRaw(this.file), marked = initialized(this.file + '.initialized');
185
+ if (raw === null && marked)
186
+ throw damaged();
187
+ const { state } = parse(raw);
188
+ return { spentUsd: state.spentNanos / 1e9, updatedAt: state.events.at(-1)?.at ?? state.legacyUpdatedAt ?? new Date(0).toISOString(), blocked: state.blocked, events: state.events };
189
+ }
190
+ async reserve(requestId, runId, costNanos, capNanos, signal) { await this.updateAsync({ type: 'reserve', requestId, runId, costNanos, capNanos }, signal); }
191
+ async settle(requestId, costNanos, invalid = false) { await this.updateAsync({ type: 'settle', requestId, costNanos, ...(invalid ? { invalid: true } : {}) }); }
192
+ charge(cost) { return this.updateSync({ type: 'charge', costNanos: dollarsToNanos(cost) }).spentNanos / 1e9; }
193
+ reset() { this.updateSync({ type: 'reset' }); }
194
+ async updateAsync(change, signal) { for (let n = 0;; n++) {
195
+ throwIfCancelled(signal);
196
+ try {
197
+ this.update(change, signal);
198
+ return;
199
+ }
200
+ catch (error) {
201
+ if (!(error instanceof ExecutionLimitError) || error.code !== 'locked' || n >= 50)
202
+ throw error;
203
+ await cancellableDelay(10, signal);
204
+ }
205
+ } }
206
+ updateSync(change) { for (let n = 0;; n++) {
207
+ try {
208
+ return this.update(change);
209
+ }
210
+ catch (error) {
211
+ if (!(error instanceof ExecutionLimitError) || error.code !== 'locked' || n >= 50)
212
+ throw error;
213
+ Atomics.wait(new Int32Array(new SharedArrayBuffer(4)), 0, 0, 10);
214
+ }
215
+ } }
216
+ update(change, signal) {
217
+ throwIfCancelled(signal);
218
+ const dir = dirname(this.file), before = directory(dir, true), lock = this.file + '.lock', marker = this.file + '.initialized';
219
+ let fd;
220
+ try {
221
+ fd = fs.openSync(lock, 'wx', 0o600);
222
+ }
223
+ catch (error) {
224
+ if (error.code === 'EEXIST')
225
+ throw new ExecutionLimitError('locked', 'Project budget has another writer.');
226
+ throw damaged();
227
+ }
228
+ const identity = fs.fstatSync(fd), temp = join(dir, `${randomUUID()}.tmp`);
229
+ try {
230
+ fs.writeFileSync(fd, String(process.pid));
231
+ const raw = readRaw(this.file), marked = initialized(marker);
232
+ if (raw === null && marked)
233
+ throw damaged();
234
+ const prior = parse(raw);
235
+ let events = prior.state.events;
236
+ if (prior.legacy)
237
+ events = [event([], { type: 'import', costNanos: prior.state.spentNanos })];
238
+ const pending = [...prior.state.requests.values()].filter(r => !r.settled).length;
239
+ if (events.length + (change.type === 'reserve' ? pending + 2 : 1) > MAX_EVENTS)
240
+ throw new ExecutionLimitError('limit', 'Project budget history reached its event limit; pending reservations remain charged.');
241
+ const next = replay([...events, event(events, change)]), output = encode(next);
242
+ writeNew(temp, output);
243
+ throwIfCancelled(signal);
244
+ const after = directory(dir);
245
+ if (before.dev !== after.dev || before.ino !== after.ino || readRaw(this.file) !== raw)
246
+ throw new ExecutionLimitError('conflict', 'Project budget changed before commit.');
247
+ if (!marked)
248
+ writeNew(marker, 'version=2');
249
+ fs.renameSync(temp, this.file);
250
+ const directoryFd = fs.openSync(dir, 'r');
251
+ try {
252
+ fs.fsyncSync(directoryFd);
253
+ }
254
+ finally {
255
+ fs.closeSync(directoryFd);
256
+ }
257
+ return next;
258
+ }
259
+ finally {
260
+ fs.closeSync(fd);
261
+ try {
262
+ const after = directory(dir);
263
+ if (before.dev === after.dev && before.ino === after.ino) {
264
+ fs.rmSync(temp, { force: true });
265
+ const lockStat = fs.lstatSync(lock);
266
+ if (lockStat.dev === identity.dev && lockStat.ino === identity.ino)
267
+ fs.unlinkSync(lock);
268
+ }
269
+ }
270
+ catch { /* Preserve foreign or damaged directories. */ }
271
+ }
272
+ }
273
+ }
274
+ //# sourceMappingURL=project-spend.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"project-spend.js","sourceRoot":"","sources":["../../src/execution/project-spend.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ import type { Message, Tool } from '../types.js';
2
+ import type { RouteCandidate } from '../routing/index.js';
3
+ import type { ProviderAttemptBudget } from '../providers/types.js';
4
+ import { type BillingEvidence, type InputCount, type QuoteEvidence } from './billing.js';
5
+ export declare function costCapNanos(value: number): number;
6
+ export declare function providerQuote(route: RouteCandidate | undefined, messages: Message[], tools: Tool[], streaming: boolean, maxOutputTokens: number, billing?: BillingEvidence, count?: InputCount, measuredInput?: boolean): {
7
+ provider: import("../health/types.js").HealthProvider;
8
+ model: string;
9
+ target: string;
10
+ inputTokens: number;
11
+ outputTokens: number;
12
+ inputPrice: number;
13
+ outputPrice: number;
14
+ costNanos: number;
15
+ quoteEvidence?: QuoteEvidence | undefined;
16
+ };
17
+ /** Project-capped ordinary turns use the same pre-dispatch accounting as child turns. */
18
+ export declare function projectAttemptBudget(cwd: string, runId: string, route: RouteCandidate | undefined, messages: Message[], tools: Tool[], streaming: boolean, maxOutputTokens: number, signal?: AbortSignal, onEvent?: (id: string, stage: string, evidence?: QuoteEvidence) => void, measuredInput?: boolean): ProviderAttemptBudget;
19
+ //# sourceMappingURL=quote.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"quote.d.ts","sourceRoot":"","sources":["../../src/execution/quote.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,OAAO,EAAC,IAAI,EAAC,MAAM,aAAa,CAAC;AAC9C,OAAO,KAAK,EAAC,cAAc,EAAC,MAAM,qBAAqB,CAAC;AAExD,OAAO,KAAK,EAAC,qBAAqB,EAAC,MAAM,uBAAuB,CAAC;AAOjE,OAAO,EAAoG,KAAK,eAAe,EAAC,KAAK,UAAU,EAAC,KAAK,aAAa,EAAC,MAAM,cAAc,CAAC;AAGxL,wBAAgB,YAAY,CAAC,KAAK,EAAC,MAAM,GAAE,MAAM,CAGhD;AACD,wBAAgB,aAAa,CAAC,KAAK,EAAC,cAAc,GAAC,SAAS,EAAC,QAAQ,EAAC,OAAO,EAAE,EAAC,KAAK,EAAC,IAAI,EAAE,EAAC,SAAS,EAAC,OAAO,EAAC,eAAe,EAAC,MAAM,EAAC,OAAO,CAAC,EAAC,eAAe,EAAC,KAAK,CAAC,EAAC,UAAU,EAAC,aAAa,UAAM;;;;;;;;;;EAoDnM;AAED,yFAAyF;AACzF,wBAAgB,oBAAoB,CAAC,GAAG,EAAC,MAAM,EAAC,KAAK,EAAC,MAAM,EAAC,KAAK,EAAC,cAAc,GAAC,SAAS,EAAC,QAAQ,EAAC,OAAO,EAAE,EAAC,KAAK,EAAC,IAAI,EAAE,EAAC,SAAS,EAAC,OAAO,EAAC,eAAe,EAAC,MAAM,EAAC,MAAM,CAAC,EAAC,WAAW,EAAC,OAAO,CAAC,EAAC,CAAC,EAAE,EAAC,MAAM,EAAC,KAAK,EAAC,MAAM,EAAC,QAAQ,CAAC,EAAC,aAAa,KAAG,IAAI,EAAC,aAAa,UAAM,GAAE,qBAAqB,CA4BlS"}
@@ -0,0 +1,116 @@
1
+ import { randomUUID } from 'node:crypto';
2
+ import { projectIdentity } from '../approvals/index.js';
3
+ import { getBudgetCaps, projectBudgetPath } from '../budget.js';
4
+ import { throwIfCancelled } from '../cancellation.js';
5
+ import { ExecutionLimitError } from './types.js';
6
+ import { integer } from './authority.js';
7
+ import { requestCostNanos } from './ledger.js';
8
+ import { ProjectSpendLedger } from './project-spend.js';
9
+ import { readBillingEvidence, assertBillingCurrent, validateInputCount, validateQuoteEvidence, fullContextTerms } from './billing.js';
10
+ import { estimateTotalTokens } from '../summarization.js';
11
+ export function costCapNanos(value) {
12
+ if (!Number.isFinite(value) || value < 0)
13
+ throw new ExecutionLimitError('budget', 'Configured cost cap is invalid.');
14
+ const cap = Math.floor(value * 1e9);
15
+ integer(cap);
16
+ return cap;
17
+ }
18
+ export function providerQuote(route, messages, tools, streaming, maxOutputTokens, billing, count, measuredInput = false) {
19
+ integer(maxOutputTokens, 1, 100000000);
20
+ if (!route || route.evidence !== 'live' || !route.discoveredAt || !Number.isFinite(Date.parse(route.discoveredAt)) || Date.now() - Date.parse(route.discoveredAt) > 300000 || Date.parse(route.discoveredAt) > Date.now() + 1000)
21
+ throw new ExecutionLimitError('authority', 'Bounded execution requires recent live model discovery.');
22
+ if (billing)
23
+ assertBillingCurrent(billing, route);
24
+ if (messages.some(m => typeof m.content !== 'string' && m.content.some(p => p.type !== 'text')))
25
+ throw new ExecutionLimitError('budget', 'Multimodal requests require a separate verified billing bound.');
26
+ if (billing?.profile.admission === 'reviewed-full-context-v1') {
27
+ if (count)
28
+ throw new ExecutionLimitError('authority', 'Full-context admission does not accept an unverified input count.');
29
+ const quoteEvidence = validateQuoteEvidence({ version: 2, profileHash: billing.hash, profile: billing.profile, quotedAt: Date.now(), live: { discoveredAt: Date.parse(route.discoveredAt), contextLength: route.contextLength, maxOutputTokens: route.maxOutputTokens, capabilities: Object.fromEntries(['chat', 'tools', 'streaming'].filter(k => route.capabilities[k] !== undefined).map(k => [k, route.capabilities[k]])), prices: { input: route.price?.input ?? null, output: route.price?.output ?? null } }, requirements: { tools: tools.length > 0, streaming }, ...(measuredInput ? { measuredInput: true } : {}) });
30
+ if (quoteEvidence.version !== 2)
31
+ throw new ExecutionLimitError('authority', 'Wrong reviewed admission evidence.');
32
+ // Provider wrappers and protocol metadata can exceed the local estimator;
33
+ // keep a bounded cushion while settlement remains authoritative.
34
+ const terms = fullContextTerms(quoteEvidence), measured = estimateTotalTokens(messages) + Math.ceil(JSON.stringify(tools).length / 4), inputTokens = measuredInput ? Math.min(terms.inputTokens, Math.max(1, measured)) : terms.inputTokens;
35
+ const { maxOutputTokens: outputLimit, inputPrice, outputPrice } = terms;
36
+ if (maxOutputTokens > outputLimit)
37
+ throw new ExecutionLimitError('budget', 'Requested output exceeds live or reviewed model limits.');
38
+ // Keep the signed live quote alongside measured input reservations. The
39
+ // measured size changes accounting, while the quote remains the
40
+ // replayable admission evidence for provider limits and pricing.
41
+ return { provider: route.provider, model: route.model, target: route.target, inputTokens, outputTokens: maxOutputTokens, inputPrice, outputPrice, costNanos: requestCostNanos(inputTokens, maxOutputTokens, inputPrice, outputPrice), quoteEvidence };
42
+ }
43
+ const capabilities = { ...billing?.profile.capabilities, ...Object.fromEntries(Object.entries(route.capabilities).filter(([, v]) => v !== undefined)) };
44
+ if (capabilities.chat !== true || tools.length && capabilities.tools !== true || streaming && capabilities.streaming !== true)
45
+ throw new ExecutionLimitError('authority', 'Live discovery did not confirm the required model capabilities.');
46
+ // The full discovered input capacity is a conservative bound, not a tokenizer estimate.
47
+ const local = route.provider === 'ollama' || route.provider === 'litellm' || route.provider === 'openai-compat';
48
+ // Local servers expose a context window but no billable input reservation;
49
+ // reserve the measured request size so token budgets remain meaningful.
50
+ const contextLimit = route.contextLength ?? 0;
51
+ const measured = Math.max(1, estimateTotalTokens(messages) + Math.ceil(JSON.stringify(tools).length / 4));
52
+ // When measured reservations are enabled, reserve the serialized request
53
+ // rather than the model's entire context window. Keep the live context as
54
+ // the hard ceiling so oversized prompts still fail closed.
55
+ const useMeasured = measuredInput && contextLimit > 100000;
56
+ let inputTokens = useMeasured ? Math.min(contextLimit, measured) : local ? Math.min(contextLimit, measured) : contextLimit;
57
+ const outputTokens = maxOutputTokens;
58
+ if (!Number.isSafeInteger(inputTokens) || inputTokens < 1 || inputTokens > 100000000 || !Number.isSafeInteger(route.maxOutputTokens) || route.maxOutputTokens < outputTokens)
59
+ throw new ExecutionLimitError('budget', 'Bounded execution requires discovered input/output limits that cover the requested output.');
60
+ let quoteEvidence;
61
+ if (count) {
62
+ validateInputCount(count);
63
+ if (!billing || billing.profile.admission !== 'provider-count-v1' || route.provider !== 'anthropic' || count.at > Date.now() + 1000 || Date.now() - count.at > 60000)
64
+ throw new ExecutionLimitError('authority', 'Provider input count requires current matching billing evidence.');
65
+ if (count.inputTokens > inputTokens)
66
+ throw new ExecutionLimitError('budget', 'Counted request exceeds the discovered input capacity.');
67
+ inputTokens = Math.min(inputTokens, count.inputTokens * 2 + 1024);
68
+ quoteEvidence = { version: 1, profileHash: billing.hash, profile: structuredClone(billing.profile), count: structuredClone(count), multiplier: 2, slackTokens: 1024 };
69
+ }
70
+ const inputPrice = billing ? Math.max(billing.profile.prices.input, route.price?.input ?? 0) : route.price?.input ?? (local ? 0 : undefined);
71
+ const outputPrice = billing ? Math.max(billing.profile.prices.output, route.price?.output ?? 0) : route.price?.output ?? (local ? 0 : undefined);
72
+ if (inputPrice === undefined || outputPrice === undefined || !Number.isFinite(inputPrice) || !Number.isFinite(outputPrice) || inputPrice < 0 || outputPrice < 0)
73
+ throw new ExecutionLimitError('budget', 'Live discovery did not provide bounded input/output prices; configure verified provider metadata before execution.');
74
+ return { provider: route.provider, model: route.model, target: route.target, inputTokens: inputTokens, outputTokens, inputPrice, outputPrice, costNanos: requestCostNanos(inputTokens, outputTokens, inputPrice, outputPrice), ...(quoteEvidence ? { quoteEvidence } : {}) };
75
+ }
76
+ /** Project-capped ordinary turns use the same pre-dispatch accounting as child turns. */
77
+ export function projectAttemptBudget(cwd, runId, route, messages, tools, streaming, maxOutputTokens, signal, onEvent, measuredInput = false) {
78
+ route = structuredClone(route);
79
+ const project = projectIdentity(cwd).project, billing = readBillingEvidence(route, project);
80
+ const base = providerQuote(route, messages, tools, streaming, maxOutputTokens, billing, undefined, measuredInput), ledger = new ProjectSpendLedger(projectBudgetPath(cwd));
81
+ const quotes = new Map();
82
+ return {
83
+ ...(base.provider === 'openrouter' ? { priceCeiling: Object.freeze({ input: base.inputPrice, output: base.outputPrice }) } : {}),
84
+ ...(billing?.profile.admission === 'provider-count-v1' ? { inputCounting: 'anthropic-count-tokens' } : {}),
85
+ reserve: async (actual) => {
86
+ throwIfCancelled(signal);
87
+ if (actual.provider !== base.provider || actual.model !== base.model || actual.target !== base.target || actual.maxOutputTokens !== base.outputTokens)
88
+ throw new ExecutionLimitError('authority', 'Provider attempt changed after project budget admission.');
89
+ if (base.provider === 'openrouter' && (actual.priceCeiling?.input !== base.inputPrice || actual.priceCeiling?.output !== base.outputPrice))
90
+ throw new ExecutionLimitError('authority', 'Provider price ceiling changed after project budget admission.');
91
+ if (billing && ((billing.profile.admission === 'provider-count-v1' && !actual.inputCount) || readBillingEvidence(route, project)?.hash !== billing.hash))
92
+ throw new ExecutionLimitError('authority', 'Billing admission was revoked or omitted its count.');
93
+ const quote = providerQuote(route, messages, tools, streaming, maxOutputTokens, billing, actual.inputCount, measuredInput);
94
+ const id = randomUUID(), cap = getBudgetCaps().maxCostPerProject;
95
+ await ledger.reserve(id, runId, quote.costNanos, cap === undefined ? Number.MAX_SAFE_INTEGER : costCapNanos(cap), signal);
96
+ quotes.set(id, quote);
97
+ onEvent?.(id, 'reserved', quote.quoteEvidence);
98
+ throwIfCancelled(signal);
99
+ if (billing && readBillingEvidence(route, project)?.hash !== billing.hash)
100
+ throw new ExecutionLimitError('authority', 'Billing admission was revoked while committing its reservation.');
101
+ return id;
102
+ },
103
+ settle: async (id, outcome, usage) => {
104
+ const quote = quotes.get(id);
105
+ if (!quote)
106
+ throw new ExecutionLimitError('authority', 'Unknown project request reservation.');
107
+ const valid = !usage || [usage.inputTokens, usage.outputTokens].every(n => Number.isSafeInteger(n) && n >= 0 && n <= 100000000);
108
+ const exceeded = !valid || !!usage && (usage.inputTokens > quote.inputTokens || usage.outputTokens > quote.outputTokens);
109
+ await ledger.settle(id, outcome === 'success' && valid && usage ? requestCostNanos(usage.inputTokens, usage.outputTokens, quote.inputPrice, quote.outputPrice) : null, exceeded);
110
+ onEvent?.(id, exceeded ? 'exceeded' : outcome === 'success' && usage ? 'settled' : 'unknown');
111
+ if (exceeded)
112
+ throw new ExecutionLimitError('budget', 'Provider usage exceeded the project reservation; further requests are stopped.');
113
+ },
114
+ };
115
+ }
116
+ //# sourceMappingURL=quote.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"quote.js","sourceRoot":"","sources":["../../src/execution/quote.ts"],"names":[],"mappings":"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"}