@calliopelabs/cli 3.5.3 → 3.6.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 (327) hide show
  1. package/README.md +8 -0
  2. package/dist/acp.d.ts +10 -3
  3. package/dist/acp.d.ts.map +1 -1
  4. package/dist/acp.js +27 -7
  5. package/dist/acp.js.map +1 -1
  6. package/dist/bin.d.ts.map +1 -1
  7. package/dist/bin.js +28 -11
  8. package/dist/bin.js.map +1 -1
  9. package/dist/brain/access.d.ts.map +1 -1
  10. package/dist/brain/access.js +2 -1
  11. package/dist/brain/access.js.map +1 -1
  12. package/dist/config.d.ts +2 -2
  13. package/dist/config.d.ts.map +1 -1
  14. package/dist/config.js +7 -6
  15. package/dist/config.js.map +1 -1
  16. package/dist/execution/authority.d.ts +4 -1
  17. package/dist/execution/authority.d.ts.map +1 -1
  18. package/dist/execution/authority.js +23 -7
  19. package/dist/execution/authority.js.map +1 -1
  20. package/dist/execution/child-grants.d.ts +2 -0
  21. package/dist/execution/child-grants.d.ts.map +1 -1
  22. package/dist/execution/child-grants.js +19 -4
  23. package/dist/execution/child-grants.js.map +1 -1
  24. package/dist/execution/delegated.d.ts +14 -0
  25. package/dist/execution/delegated.d.ts.map +1 -0
  26. package/dist/execution/delegated.js +66 -0
  27. package/dist/execution/delegated.js.map +1 -0
  28. package/dist/execution/files.js +6 -6
  29. package/dist/execution/files.js.map +1 -1
  30. package/dist/execution/guard.d.ts +5 -0
  31. package/dist/execution/guard.d.ts.map +1 -1
  32. package/dist/execution/guard.js +31 -16
  33. package/dist/execution/guard.js.map +1 -1
  34. package/dist/execution/index.d.ts +4 -0
  35. package/dist/execution/index.d.ts.map +1 -1
  36. package/dist/execution/index.js +4 -0
  37. package/dist/execution/index.js.map +1 -1
  38. package/dist/execution/ledger-cli.d.ts +2 -1
  39. package/dist/execution/ledger-cli.d.ts.map +1 -1
  40. package/dist/execution/ledger-cli.js +51 -14
  41. package/dist/execution/ledger-cli.js.map +1 -1
  42. package/dist/execution/ledger-protocol.d.ts +6 -2
  43. package/dist/execution/ledger-protocol.d.ts.map +1 -1
  44. package/dist/execution/ledger-protocol.js +110 -24
  45. package/dist/execution/ledger-protocol.js.map +1 -1
  46. package/dist/execution/ledger-server.d.ts +13 -0
  47. package/dist/execution/ledger-server.d.ts.map +1 -1
  48. package/dist/execution/ledger-server.js +57 -13
  49. package/dist/execution/ledger-server.js.map +1 -1
  50. package/dist/execution/ledger-tunnel.d.ts +50 -0
  51. package/dist/execution/ledger-tunnel.d.ts.map +1 -0
  52. package/dist/execution/ledger-tunnel.js +307 -0
  53. package/dist/execution/ledger-tunnel.js.map +1 -0
  54. package/dist/execution/ledger.d.ts +4 -0
  55. package/dist/execution/ledger.d.ts.map +1 -1
  56. package/dist/execution/ledger.js +30 -4
  57. package/dist/execution/ledger.js.map +1 -1
  58. package/dist/execution/parent-accounting.d.ts +41 -0
  59. package/dist/execution/parent-accounting.d.ts.map +1 -0
  60. package/dist/execution/parent-accounting.js +52 -0
  61. package/dist/execution/parent-accounting.js.map +1 -0
  62. package/dist/execution/parent-budget.d.ts +25 -0
  63. package/dist/execution/parent-budget.d.ts.map +1 -0
  64. package/dist/execution/parent-budget.js +102 -0
  65. package/dist/execution/parent-budget.js.map +1 -0
  66. package/dist/execution/project-spend.d.ts.map +1 -1
  67. package/dist/execution/project-spend.js +35 -5
  68. package/dist/execution/project-spend.js.map +1 -1
  69. package/dist/execution/quote.js +1 -1
  70. package/dist/execution/quote.js.map +1 -1
  71. package/dist/execution/remote-checkpoint.d.ts +15 -0
  72. package/dist/execution/remote-checkpoint.d.ts.map +1 -0
  73. package/dist/execution/remote-checkpoint.js +165 -0
  74. package/dist/execution/remote-checkpoint.js.map +1 -0
  75. package/dist/execution/remote-ledger.d.ts +12 -2
  76. package/dist/execution/remote-ledger.d.ts.map +1 -1
  77. package/dist/execution/remote-ledger.js +53 -21
  78. package/dist/execution/remote-ledger.js.map +1 -1
  79. package/dist/execution/types.d.ts +23 -5
  80. package/dist/execution/types.d.ts.map +1 -1
  81. package/dist/execution/types.js.map +1 -1
  82. package/dist/goals/supervised.js +2 -2
  83. package/dist/goals/supervised.js.map +1 -1
  84. package/dist/headless.d.ts +2 -6
  85. package/dist/headless.d.ts.map +1 -1
  86. package/dist/headless.js +17 -21
  87. package/dist/headless.js.map +1 -1
  88. package/dist/health/target.js +1 -1
  89. package/dist/health/target.js.map +1 -1
  90. package/dist/improvement/actions.d.ts +3 -4
  91. package/dist/improvement/actions.d.ts.map +1 -1
  92. package/dist/improvement/actions.js +10 -7
  93. package/dist/improvement/actions.js.map +1 -1
  94. package/dist/improvement/capabilities.d.ts +54 -0
  95. package/dist/improvement/capabilities.d.ts.map +1 -0
  96. package/dist/improvement/capabilities.js +44 -0
  97. package/dist/improvement/capabilities.js.map +1 -0
  98. package/dist/improvement/cli.d.ts +1 -1
  99. package/dist/improvement/cli.d.ts.map +1 -1
  100. package/dist/improvement/cli.js +14 -2
  101. package/dist/improvement/cli.js.map +1 -1
  102. package/dist/improvement/index.d.ts +5 -0
  103. package/dist/improvement/index.d.ts.map +1 -1
  104. package/dist/improvement/index.js +5 -0
  105. package/dist/improvement/index.js.map +1 -1
  106. package/dist/improvement/proposal-hash.d.ts +3 -0
  107. package/dist/improvement/proposal-hash.d.ts.map +1 -0
  108. package/dist/improvement/proposal-hash.js +5 -0
  109. package/dist/improvement/proposal-hash.js.map +1 -0
  110. package/dist/improvement/review-contract.d.ts +32 -0
  111. package/dist/improvement/review-contract.d.ts.map +1 -0
  112. package/dist/improvement/review-contract.js +62 -0
  113. package/dist/improvement/review-contract.js.map +1 -0
  114. package/dist/improvement/review-requests.d.ts +72 -0
  115. package/dist/improvement/review-requests.d.ts.map +1 -0
  116. package/dist/improvement/review-requests.js +63 -0
  117. package/dist/improvement/review-requests.js.map +1 -0
  118. package/dist/improvement/source-changes.d.ts +78 -0
  119. package/dist/improvement/source-changes.d.ts.map +1 -0
  120. package/dist/improvement/source-changes.js +91 -0
  121. package/dist/improvement/source-changes.js.map +1 -0
  122. package/dist/improvement/task-outcomes.d.ts +82 -0
  123. package/dist/improvement/task-outcomes.d.ts.map +1 -0
  124. package/dist/improvement/task-outcomes.js +72 -0
  125. package/dist/improvement/task-outcomes.js.map +1 -0
  126. package/dist/index.d.ts +10 -0
  127. package/dist/index.d.ts.map +1 -1
  128. package/dist/index.js +6 -0
  129. package/dist/index.js.map +1 -1
  130. package/dist/isolation/contracts.d.ts +13 -0
  131. package/dist/isolation/contracts.d.ts.map +1 -1
  132. package/dist/isolation/contracts.js +9 -1
  133. package/dist/isolation/contracts.js.map +1 -1
  134. package/dist/isolation/coordinator.d.ts.map +1 -1
  135. package/dist/isolation/coordinator.js +4 -0
  136. package/dist/isolation/coordinator.js.map +1 -1
  137. package/dist/isolation/process.d.ts.map +1 -1
  138. package/dist/isolation/process.js +3 -1
  139. package/dist/isolation/process.js.map +1 -1
  140. package/dist/isolation/worktree.d.ts +9 -1
  141. package/dist/isolation/worktree.d.ts.map +1 -1
  142. package/dist/isolation/worktree.js +8 -3
  143. package/dist/isolation/worktree.js.map +1 -1
  144. package/dist/local-model.d.ts +4 -4
  145. package/dist/local-model.js +5 -5
  146. package/dist/local-model.js.map +1 -1
  147. package/dist/memory.d.ts +5 -3
  148. package/dist/memory.d.ts.map +1 -1
  149. package/dist/memory.js +8 -6
  150. package/dist/memory.js.map +1 -1
  151. package/dist/migration/assessment-contract.d.ts +60 -0
  152. package/dist/migration/assessment-contract.d.ts.map +1 -0
  153. package/dist/migration/assessment-contract.js +132 -0
  154. package/dist/migration/assessment-contract.js.map +1 -0
  155. package/dist/migration/assessment-schema.d.ts +19 -0
  156. package/dist/migration/assessment-schema.d.ts.map +1 -0
  157. package/dist/migration/assessment-schema.js +43 -0
  158. package/dist/migration/assessment-schema.js.map +1 -0
  159. package/dist/migration/assessment.d.ts +159 -0
  160. package/dist/migration/assessment.d.ts.map +1 -0
  161. package/dist/migration/assessment.js +219 -0
  162. package/dist/migration/assessment.js.map +1 -0
  163. package/dist/migration/cli.d.ts +6 -0
  164. package/dist/migration/cli.d.ts.map +1 -0
  165. package/dist/migration/cli.js +101 -0
  166. package/dist/migration/cli.js.map +1 -0
  167. package/dist/migration/evidence.d.ts +27 -0
  168. package/dist/migration/evidence.d.ts.map +1 -0
  169. package/dist/migration/evidence.js +124 -0
  170. package/dist/migration/evidence.js.map +1 -0
  171. package/dist/migration/example.d.ts +33 -0
  172. package/dist/migration/example.d.ts.map +1 -0
  173. package/dist/migration/example.js +28 -0
  174. package/dist/migration/example.js.map +1 -0
  175. package/dist/migration/index.d.ts +21 -0
  176. package/dist/migration/index.d.ts.map +1 -0
  177. package/dist/migration/index.js +15 -0
  178. package/dist/migration/index.js.map +1 -0
  179. package/dist/migration/inventory.d.ts +70 -0
  180. package/dist/migration/inventory.d.ts.map +1 -0
  181. package/dist/migration/inventory.js +233 -0
  182. package/dist/migration/inventory.js.map +1 -0
  183. package/dist/migration/schema.d.ts +61 -0
  184. package/dist/migration/schema.d.ts.map +1 -0
  185. package/dist/migration/schema.js +76 -0
  186. package/dist/migration/schema.js.map +1 -0
  187. package/dist/migration/verification.d.ts +146 -0
  188. package/dist/migration/verification.d.ts.map +1 -0
  189. package/dist/migration/verification.js +260 -0
  190. package/dist/migration/verification.js.map +1 -0
  191. package/dist/model-detection.d.ts.map +1 -1
  192. package/dist/model-detection.js +2 -39
  193. package/dist/model-detection.js.map +1 -1
  194. package/dist/orchestration/actions.d.ts +2 -0
  195. package/dist/orchestration/actions.d.ts.map +1 -1
  196. package/dist/orchestration/actions.js.map +1 -1
  197. package/dist/orchestration/artifact-host.d.ts +46 -0
  198. package/dist/orchestration/artifact-host.d.ts.map +1 -0
  199. package/dist/orchestration/artifact-host.js +64 -0
  200. package/dist/orchestration/artifact-host.js.map +1 -0
  201. package/dist/orchestration/coordinator-actions.d.ts +1 -1
  202. package/dist/orchestration/coordinator-actions.d.ts.map +1 -1
  203. package/dist/orchestration/coordinator-actions.js +5 -3
  204. package/dist/orchestration/coordinator-actions.js.map +1 -1
  205. package/dist/orchestration/coordinator-types.d.ts +23 -2
  206. package/dist/orchestration/coordinator-types.d.ts.map +1 -1
  207. package/dist/orchestration/coordinator.d.ts +5 -0
  208. package/dist/orchestration/coordinator.d.ts.map +1 -1
  209. package/dist/orchestration/coordinator.js +30 -13
  210. package/dist/orchestration/coordinator.js.map +1 -1
  211. package/dist/orchestration/execution-cli.d.ts +1 -1
  212. package/dist/orchestration/execution-cli.d.ts.map +1 -1
  213. package/dist/orchestration/execution-cli.js +29 -6
  214. package/dist/orchestration/execution-cli.js.map +1 -1
  215. package/dist/orchestration/execution-journal.d.ts.map +1 -1
  216. package/dist/orchestration/execution-journal.js +79 -6
  217. package/dist/orchestration/execution-journal.js.map +1 -1
  218. package/dist/orchestration/execution-store.d.ts +5 -1
  219. package/dist/orchestration/execution-store.d.ts.map +1 -1
  220. package/dist/orchestration/execution-store.js +66 -5
  221. package/dist/orchestration/execution-store.js.map +1 -1
  222. package/dist/orchestration/execution.d.ts.map +1 -1
  223. package/dist/orchestration/execution.js +37 -10
  224. package/dist/orchestration/execution.js.map +1 -1
  225. package/dist/orchestration/index.d.ts +6 -0
  226. package/dist/orchestration/index.d.ts.map +1 -1
  227. package/dist/orchestration/index.js +6 -0
  228. package/dist/orchestration/index.js.map +1 -1
  229. package/dist/orchestration/interruption.d.ts +10 -0
  230. package/dist/orchestration/interruption.d.ts.map +1 -0
  231. package/dist/orchestration/interruption.js +38 -0
  232. package/dist/orchestration/interruption.js.map +1 -0
  233. package/dist/orchestration/question-contract.d.ts +19 -0
  234. package/dist/orchestration/question-contract.d.ts.map +1 -0
  235. package/dist/orchestration/question-contract.js +21 -0
  236. package/dist/orchestration/question-contract.js.map +1 -0
  237. package/dist/orchestration/questions.d.ts +9 -0
  238. package/dist/orchestration/questions.d.ts.map +1 -0
  239. package/dist/orchestration/questions.js +75 -0
  240. package/dist/orchestration/questions.js.map +1 -0
  241. package/dist/orchestration/reviewed-ledger.d.ts +23 -0
  242. package/dist/orchestration/reviewed-ledger.d.ts.map +1 -0
  243. package/dist/orchestration/reviewed-ledger.js +49 -0
  244. package/dist/orchestration/reviewed-ledger.js.map +1 -0
  245. package/dist/orchestration/source-candidates.d.ts +64 -0
  246. package/dist/orchestration/source-candidates.d.ts.map +1 -0
  247. package/dist/orchestration/source-candidates.js +95 -0
  248. package/dist/orchestration/source-candidates.js.map +1 -0
  249. package/dist/orchestration/validation.js +1 -1
  250. package/dist/orchestration/validation.js.map +1 -1
  251. package/dist/providers/compat.d.ts +1 -1
  252. package/dist/providers/compat.d.ts.map +1 -1
  253. package/dist/providers/compat.js +4 -8
  254. package/dist/providers/compat.js.map +1 -1
  255. package/dist/providers/index.d.ts.map +1 -1
  256. package/dist/providers/index.js +6 -7
  257. package/dist/providers/index.js.map +1 -1
  258. package/dist/runlog.js +2 -2
  259. package/dist/runlog.js.map +1 -1
  260. package/dist/runtime/permissions.d.ts.map +1 -1
  261. package/dist/runtime/permissions.js +3 -2
  262. package/dist/runtime/permissions.js.map +1 -1
  263. package/dist/runtime/turn.d.ts +2 -0
  264. package/dist/runtime/turn.d.ts.map +1 -1
  265. package/dist/runtime/turn.js +21 -7
  266. package/dist/runtime/turn.js.map +1 -1
  267. package/dist/session-management/actions.js +1 -1
  268. package/dist/session-management/actions.js.map +1 -1
  269. package/dist/sessions/execution-binding.d.ts +8 -0
  270. package/dist/sessions/execution-binding.d.ts.map +1 -0
  271. package/dist/sessions/execution-binding.js +9 -0
  272. package/dist/sessions/execution-binding.js.map +1 -0
  273. package/dist/sessions/index.d.ts +1 -0
  274. package/dist/sessions/index.d.ts.map +1 -1
  275. package/dist/sessions/index.js +1 -0
  276. package/dist/sessions/index.js.map +1 -1
  277. package/dist/setup.d.ts.map +1 -1
  278. package/dist/setup.js +1 -26
  279. package/dist/setup.js.map +1 -1
  280. package/dist/source-changes/writer.d.ts +77 -0
  281. package/dist/source-changes/writer.d.ts.map +1 -0
  282. package/dist/source-changes/writer.js +189 -0
  283. package/dist/source-changes/writer.js.map +1 -0
  284. package/dist/spawning/actions.d.ts +10 -1
  285. package/dist/spawning/actions.d.ts.map +1 -1
  286. package/dist/spawning/actions.js +26 -7
  287. package/dist/spawning/actions.js.map +1 -1
  288. package/dist/spawning/cli.js +1 -1
  289. package/dist/spawning/cli.js.map +1 -1
  290. package/dist/spawning/execution.d.ts.map +1 -1
  291. package/dist/spawning/execution.js +2 -0
  292. package/dist/spawning/execution.js.map +1 -1
  293. package/dist/spawning/types.d.ts +19 -6
  294. package/dist/spawning/types.d.ts.map +1 -1
  295. package/dist/spawning/validation.d.ts +16 -0
  296. package/dist/spawning/validation.d.ts.map +1 -1
  297. package/dist/spawning/validation.js +44 -8
  298. package/dist/spawning/validation.js.map +1 -1
  299. package/dist/storage.d.ts +3 -0
  300. package/dist/storage.d.ts.map +1 -1
  301. package/dist/storage.js +6 -1
  302. package/dist/storage.js.map +1 -1
  303. package/dist/supervision/contracts.js +4 -1
  304. package/dist/supervision/contracts.js.map +1 -1
  305. package/dist/tools.d.ts +1 -0
  306. package/dist/tools.d.ts.map +1 -1
  307. package/dist/tools.js +7 -2
  308. package/dist/tools.js.map +1 -1
  309. package/dist/types.d.ts +1 -1
  310. package/dist/types.d.ts.map +1 -1
  311. package/dist/types.js +0 -1
  312. package/dist/types.js.map +1 -1
  313. package/dist/ui/regions/modal-host.d.ts.map +1 -1
  314. package/dist/ui/regions/modal-host.js +1 -3
  315. package/dist/ui/regions/modal-host.js.map +1 -1
  316. package/dist/ui/state/use-chat-controller.js +2 -2
  317. package/dist/ui/state/use-chat-controller.js.map +1 -1
  318. package/docs/README.md +66 -0
  319. package/docs/delegation-ledger.md +329 -0
  320. package/docs/migration-assessment.md +113 -0
  321. package/docs/migration-example-plan.json +88 -0
  322. package/docs/migration-example-report.json +511 -0
  323. package/docs/migration-inventory.md +63 -0
  324. package/docs/migration-playbook.md +152 -0
  325. package/docs/migration-verification.md +177 -0
  326. package/docs/releases/3.6.0.md +43 -0
  327. package/package.json +7 -2
@@ -69,7 +69,7 @@ function settlement(value) {
69
69
  }
70
70
  function validateEvent(value) {
71
71
  shape(value, ['version', 'id', 'at', 'previous', 'change', 'hash']);
72
- if (![1, 2, 3, 4].includes(value.version) || !uuid(value.id) || !hex(value.previous) || !hex(value.hash))
72
+ if (![1, 2, 3, 4, 5].includes(value.version) || !uuid(value.id) || !hex(value.previous) || !hex(value.hash))
73
73
  invalid();
74
74
  integer(value.at, 1, 8640000000000000);
75
75
  shape(value.change, ['type'], ['reservation', 'settlement', 'grant']);
@@ -136,7 +136,7 @@ export function replayReservations(input, events) {
136
136
  assertChildCapacity(manifest, state, next.agentId, tokens, next.costNanos);
137
137
  apply(next.agentId, tokens, next.costNanos);
138
138
  state.requests[next.id] = { reservation: structuredClone(next), state: 'pending', ...(next.attribution ? { accounted: { tokens, costNanos: next.costNanos } } : {}) };
139
- if (next.attribution)
139
+ if (next.attribution && state.version < 3)
140
140
  state.version = 3;
141
141
  }
142
142
  else {
@@ -171,7 +171,7 @@ export function replayReservations(input, events) {
171
171
  return state;
172
172
  }
173
173
  function reservationVersion(change) {
174
- return change.type === 'reserve' && change.reservation.quoteEvidence?.version === 2 ? 4 : change.type === 'reserve' && change.reservation.attribution ? 3 : change.type === 'child_grant' ? 2 : 1;
174
+ return change.type === 'child_grant' && change.grant.version === 2 ? 5 : change.type === 'reserve' && change.reservation.quoteEvidence?.version === 2 ? 4 : change.type === 'reserve' && change.reservation.attribution ? 3 : change.type === 'child_grant' ? 2 : 1;
175
175
  }
176
176
  function decode(raw) {
177
177
  let value;
@@ -298,7 +298,25 @@ export class ReservationLedger {
298
298
  /** Settlement is allowed after cancellation/deadline so known spend can still be recorded. */
299
299
  async settle(cwd, expectedManifest, value) {
300
300
  settlement(value);
301
- return this.append(cwd, expectedManifest, { type: 'settle', settlement: structuredClone(value) });
301
+ const saved = this.read(cwd);
302
+ if (saved.projection.manifestHash !== expectedManifest)
303
+ throw new ExecutionLimitError('conflict', 'Execution contract changed; settlement denied.');
304
+ let result;
305
+ const entry = saved.projection.requests[value.requestId];
306
+ if (saved.manifest.parent && entry && entry.state !== 'pending') {
307
+ const event = saved.events.find(event => event.change.type === 'settle' && event.change.settlement.requestId === value.requestId);
308
+ if (!event || event.change.type !== 'settle' || canonicalJson(event.change.settlement) !== canonicalJson(value))
309
+ throw new ExecutionLimitError('conflict', 'Request was already settled differently.');
310
+ result = saved.projection;
311
+ }
312
+ else
313
+ result = await this.append(cwd, expectedManifest, { type: 'settle', settlement: structuredClone(value) });
314
+ if (saved.manifest.parent) {
315
+ const { parentBudgetAuthority, settleParent } = await import('./parent-budget.js');
316
+ const parent = await parentBudgetAuthority(saved.manifest, cwd, false);
317
+ await settleParent(parent, cwd, parent.settlement(value));
318
+ }
319
+ return result;
302
320
  }
303
321
  async append(cwd, expectedManifest, change, signal, beforeCommit) {
304
322
  throwIfCancelled(signal);
@@ -331,11 +349,14 @@ export class ReservationLedger {
331
349
  checkExecutionIdentity(journal.manifest, cwd);
332
350
  if (current.manifestHash !== expectedManifest)
333
351
  throw new ExecutionLimitError('conflict', 'Execution contract changed; request denied.');
352
+ const funding = journal.manifest.parent && change.type !== 'settle'
353
+ ? await (await import('./parent-budget.js')).parentBudgetAuthority(journal.manifest, cwd, true, signal) : undefined;
334
354
  if (change.type === 'child_grant') {
335
355
  const prior = current.childGrants?.find(r => r.grant.id === change.grant.id);
336
356
  if (prior) {
337
357
  if (canonicalJson(prior.grant) !== canonicalJson(change.grant))
338
358
  throw new ExecutionLimitError('conflict', 'Child grant identity already belongs to another proposal.');
359
+ funding?.assertActive();
339
360
  beforeCommit?.();
340
361
  throwIfCancelled(signal);
341
362
  return current;
@@ -347,6 +368,10 @@ export class ReservationLedger {
347
368
  throw new ExecutionLimitError('limit', 'Budget history reached its event limit; pending reservations remain charged.');
348
369
  const body = { version: reservationVersion(change), id: randomUUID(), at: Math.max(this.now(), journal.events.at(-1)?.at ?? journal.manifest.createdAt), previous: current.revision, change };
349
370
  const event = { ...body, hash: digest(canonicalJson(body)) }, events = [...journal.events, event], next = replayReservations(journal.manifest, events), output = encode(journal.manifest, events);
371
+ if (funding && change.type === 'reserve') {
372
+ const { reserveParent } = await import('./parent-budget.js');
373
+ await reserveParent(funding, cwd, funding.reservation(change.reservation), signal, beforeCommit);
374
+ }
350
375
  temp = join(this.root, `${randomUUID()}.tmp`);
351
376
  writeNew(temp, output);
352
377
  throwIfCancelled(signal);
@@ -357,6 +382,7 @@ export class ReservationLedger {
357
382
  throw new ExecutionLimitError('deadline', 'Agent deadline expired before reservation or grant commit.');
358
383
  if (read(file) !== raw)
359
384
  throw new ExecutionLimitError('conflict', 'Budget history changed before commit.');
385
+ funding?.assertActive();
360
386
  beforeCommit?.();
361
387
  throwIfCancelled(signal);
362
388
  fs.renameSync(temp, file);
@@ -1 +1 @@
1
- {"version":3,"file":"ledger.js","sourceRoot":"","sources":["../../src/execution/ledger.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ledger.js","sourceRoot":"","sources":["../../src/execution/ledger.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,41 @@
1
+ import type { ExecutionManifest } from './types.js';
2
+ export interface ParentAccountBalance {
3
+ runId: string;
4
+ agentId: string;
5
+ manifestHash: string;
6
+ revision: string;
7
+ deadline: number;
8
+ authority: 'active' | 'inactive' | 'expired' | 'exceeded';
9
+ tokens: {
10
+ limit: number;
11
+ accounted: number;
12
+ remaining: number;
13
+ };
14
+ costNanos: {
15
+ limit: number;
16
+ accounted: number;
17
+ remaining: number;
18
+ };
19
+ requests: {
20
+ pending: number;
21
+ settled: number;
22
+ unknown: number;
23
+ exceeded: number;
24
+ };
25
+ }
26
+ export type ParentBudgetAccounting = {
27
+ version: 1;
28
+ status: 'unlinked';
29
+ } | {
30
+ version: 1;
31
+ status: 'available';
32
+ basis: 'reservations-and-settlements';
33
+ parents: ParentAccountBalance[];
34
+ } | {
35
+ version: 1;
36
+ status: 'unavailable';
37
+ };
38
+ /** Read-only account balances, never an admission promise or a sum of expenses.
39
+ * A request must still fit every run/account, grant allocation and provider quote. */
40
+ export declare function readParentBudgetAccounting(input: ExecutionManifest, cwd: string, signal?: AbortSignal): Promise<ParentBudgetAccounting>;
41
+ //# sourceMappingURL=parent-accounting.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parent-accounting.d.ts","sourceRoot":"","sources":["../../src/execution/parent-accounting.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAC,iBAAiB,EAAC,MAAM,YAAY,CAAC;AAElD,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAC,MAAM,CAAC;IAAA,OAAO,EAAC,MAAM,CAAC;IAAA,YAAY,EAAC,MAAM,CAAC;IAAA,QAAQ,EAAC,MAAM,CAAC;IAAA,QAAQ,EAAC,MAAM,CAAC;IAChF,SAAS,EAAC,QAAQ,GAAC,UAAU,GAAC,SAAS,GAAC,UAAU,CAAC;IACnD,MAAM,EAAC;QAAC,KAAK,EAAC,MAAM,CAAC;QAAA,SAAS,EAAC,MAAM,CAAC;QAAA,SAAS,EAAC,MAAM,CAAA;KAAC,CAAC;IACxD,SAAS,EAAC;QAAC,KAAK,EAAC,MAAM,CAAC;QAAA,SAAS,EAAC,MAAM,CAAC;QAAA,SAAS,EAAC,MAAM,CAAA;KAAC,CAAC;IAC3D,QAAQ,EAAC;QAAC,OAAO,EAAC,MAAM,CAAC;QAAA,OAAO,EAAC,MAAM,CAAC;QAAA,OAAO,EAAC,MAAM,CAAC;QAAA,QAAQ,EAAC,MAAM,CAAA;KAAC,CAAC;CACzE;AACD,MAAM,MAAM,sBAAsB,GAAG;IAAC,OAAO,EAAC,CAAC,CAAC;IAAA,MAAM,EAAC,UAAU,CAAA;CAAC,GAC/D;IAAC,OAAO,EAAC,CAAC,CAAC;IAAA,MAAM,EAAC,WAAW,CAAC;IAAA,KAAK,EAAC,8BAA8B,CAAC;IAAA,OAAO,EAAC,oBAAoB,EAAE,CAAA;CAAC,GAClG;IAAC,OAAO,EAAC,CAAC,CAAC;IAAA,MAAM,EAAC,aAAa,CAAA;CAAC,CAAC;AAEpC;sFACsF;AACtF,wBAAsB,0BAA0B,CAAC,KAAK,EAAC,iBAAiB,EAAC,GAAG,EAAC,MAAM,EAAC,MAAM,CAAC,EAAC,WAAW,GAAE,OAAO,CAAC,sBAAsB,CAAC,CAgCvI"}
@@ -0,0 +1,52 @@
1
+ import { accountLineage, validateExecutionManifest } from './authority.js';
2
+ import { effectiveExecutionManifest } from './child-grants.js';
3
+ import { parentBudgetAuthority } from './parent-budget.js';
4
+ /** Read-only account balances, never an admission promise or a sum of expenses.
5
+ * A request must still fit every run/account, grant allocation and provider quote. */
6
+ export async function readParentBudgetAccounting(input, cwd, signal) {
7
+ try {
8
+ let child = validateExecutionManifest(input);
9
+ if (!child.parent)
10
+ return { version: 1, status: 'unlinked' };
11
+ const parents = [], checks = [];
12
+ // The native authority reader validates the whole bounded, acyclic lineage.
13
+ while (child.parent) {
14
+ const authority = await parentBudgetAuthority(child, cwd, false, signal);
15
+ const saved = authority.ledger.read(cwd), manifest = effectiveExecutionManifest(saved.manifest, saved.projection);
16
+ const selected = child.parent.agentId, account = accountLineage(manifest, selected)[0], spent = saved.projection.accounts[selected];
17
+ let state = 'active';
18
+ try {
19
+ await parentBudgetAuthority(child, cwd, true, signal);
20
+ }
21
+ catch (error) {
22
+ const code = error.code;
23
+ if (code === 'authority' || code === 'policy-denied')
24
+ state = 'inactive';
25
+ else if (code === 'deadline')
26
+ state = 'expired';
27
+ else if (code === 'budget')
28
+ state = 'exceeded';
29
+ else
30
+ throw error;
31
+ }
32
+ const balance = (limit, accounted) => ({ limit, accounted, remaining: Math.max(0, limit - accounted) });
33
+ const requests = { pending: 0, settled: 0, unknown: 0, exceeded: 0 };
34
+ for (const entry of Object.values(saved.projection.requests)) {
35
+ if (accountLineage(manifest, entry.reservation.agentId).some(a => a.id === selected))
36
+ requests[entry.state]++;
37
+ }
38
+ parents.push({ runId: manifest.runId, agentId: selected, manifestHash: saved.projection.manifestHash, revision: saved.projection.revision,
39
+ deadline: account.deadline, authority: state, tokens: balance(account.tokenBudget, spent.tokens),
40
+ costNanos: balance(account.costBudgetNanos, spent.costNanos), requests });
41
+ checks.push(() => authority.ledger.read(cwd).projection.revision === saved.projection.revision);
42
+ child = saved.manifest;
43
+ }
44
+ if (!checks.every(check => check()))
45
+ return { version: 1, status: 'unavailable' };
46
+ return { version: 1, status: 'available', basis: 'reservations-and-settlements', parents };
47
+ }
48
+ catch {
49
+ return { version: 1, status: 'unavailable' };
50
+ }
51
+ }
52
+ //# sourceMappingURL=parent-accounting.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parent-accounting.js","sourceRoot":"","sources":["../../src/execution/parent-accounting.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ import { ReservationLedger } from './ledger.js';
2
+ import { type ExecutionManifest, type RequestReservation, type RequestSettlement } from './types.js';
3
+ export declare const parentBudgetCapabilities: () => {
4
+ version: 1;
5
+ manifestVersion: 2;
6
+ owner: 'calliope-cli';
7
+ semantics: 'charge-native-parent-before-child';
8
+ maxLinks: number;
9
+ placement: 'same-project-local';
10
+ };
11
+ /** Deterministic per-child identity lets an interrupted admission reconcile its
12
+ * existing parent charge; identical caller UUIDs in sibling runs cannot collide. */
13
+ export declare function parentRequestId(child: ExecutionManifest, requestId: string): string;
14
+ export interface ParentBudgetAuthority {
15
+ ledger: ReservationLedger;
16
+ hash: string;
17
+ assertActive: () => void;
18
+ reservation: (request: RequestReservation) => RequestReservation;
19
+ settlement: (settlement: RequestSettlement) => RequestSettlement;
20
+ }
21
+ export declare function parentBudgetAuthority(input: ExecutionManifest, cwd: string, admission?: boolean, signal?: AbortSignal, seen?: string[]): Promise<ParentBudgetAuthority | undefined>;
22
+ /** Only an identical recorded reservation can recover an interrupted parent admission. */
23
+ export declare function reserveParent(authority: NonNullable<Awaited<ReturnType<typeof parentBudgetAuthority>>>, cwd: string, request: RequestReservation, signal?: AbortSignal, beforeCommit?: () => void): Promise<void>;
24
+ export declare function settleParent(authority: NonNullable<Awaited<ReturnType<typeof parentBudgetAuthority>>>, cwd: string, settlement: RequestSettlement): Promise<void>;
25
+ //# sourceMappingURL=parent-budget.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parent-budget.d.ts","sourceRoot":"","sources":["../../src/execution/parent-budget.ts"],"names":[],"mappings":"AAMA,OAAO,EAAC,iBAAiB,EAAC,MAAM,aAAa,CAAC;AAG9C,OAAO,EAAqB,KAAK,iBAAiB,EAAC,KAAK,kBAAkB,EAAC,KAAK,iBAAiB,EAAC,MAAM,YAAY,CAAC;AAGrH,eAAO,MAAM,wBAAwB;IAAO,OAAO,EAAC,CAAC;IAAU,eAAe,EAAC,CAAC;IAAU,KAAK,EAAC,cAAc;IAAU,SAAS,EAAC,mCAAmC;IAAU,QAAQ;IAAG,SAAS,EAAC,oBAAoB;CAAW,CAAC;AACpO;oFACoF;AACpF,wBAAgB,eAAe,CAAC,KAAK,EAAC,iBAAiB,EAAC,SAAS,EAAC,MAAM,GAAE,MAAM,CAI/E;AAED,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAC,iBAAiB,CAAC;IAAA,IAAI,EAAC,MAAM,CAAC;IAAA,YAAY,EAAC,MAAI,IAAI,CAAC;IAC3D,WAAW,EAAC,CAAC,OAAO,EAAC,kBAAkB,KAAG,kBAAkB,CAAC;IAC7D,UAAU,EAAC,CAAC,UAAU,EAAC,iBAAiB,KAAG,iBAAiB,CAAC;CAC9D;AACD,wBAAsB,qBAAqB,CAAC,KAAK,EAAC,iBAAiB,EAAC,GAAG,EAAC,MAAM,EAAC,SAAS,UAAK,EAAC,MAAM,CAAC,EAAC,WAAW,EAAC,IAAI,GAAC,MAAM,EAAK,GAAE,OAAO,CAAC,qBAAqB,GAAC,SAAS,CAAC,CAmC3K;AAED,0FAA0F;AAC1F,wBAAsB,aAAa,CAAC,SAAS,EAAC,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,qBAAqB,CAAC,CAAC,CAAC,EAAC,GAAG,EAAC,MAAM,EAAC,OAAO,EAAC,kBAAkB,EAAC,MAAM,CAAC,EAAC,WAAW,EAAC,YAAY,CAAC,EAAC,MAAI,IAAI,GAAE,OAAO,CAAC,IAAI,CAAC,CAQ3M;AAED,wBAAsB,YAAY,CAAC,SAAS,EAAC,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,qBAAqB,CAAC,CAAC,CAAC,EAAC,GAAG,EAAC,MAAM,EAAC,UAAU,EAAC,iBAAiB,GAAE,OAAO,CAAC,IAAI,CAAC,CAUjK"}
@@ -0,0 +1,102 @@
1
+ /** A native run may draw from another reviewed run's account. No synthetic usage or
2
+ * second accounting store: the same provider request is reserved in both ledgers. */
3
+ import { join } from 'node:path';
4
+ import { createHash } from 'node:crypto';
5
+ import { canonicalJson } from '../approvals/index.js';
6
+ import { throwIfCancelled } from '../cancellation.js';
7
+ import { ReservationLedger } from './ledger.js';
8
+ import { accountLineage, assertExecutionStoreOutsideProject, manifestHash, permits, validateExecutionManifest } from './authority.js';
9
+ import { effectiveExecutionManifest } from './child-grants.js';
10
+ import { ExecutionLimitError } from './types.js';
11
+ const denied = (message) => new ExecutionLimitError('authority', message);
12
+ export const parentBudgetCapabilities = () => ({ version: 1, manifestVersion: 2, owner: 'calliope-cli', semantics: 'charge-native-parent-before-child', maxLinks: 8, placement: 'same-project-local' });
13
+ /** Deterministic per-child identity lets an interrupted admission reconcile its
14
+ * existing parent charge; identical caller UUIDs in sibling runs cannot collide. */
15
+ export function parentRequestId(child, requestId) {
16
+ const bytes = createHash('sha256').update(canonicalJson({ child: manifestHash(child), requestId })).digest().subarray(0, 16);
17
+ bytes[6] = (bytes[6] & 0x0f) | 0x40;
18
+ bytes[8] = (bytes[8] & 0x3f) | 0x80;
19
+ const h = bytes.toString('hex');
20
+ return `${h.slice(0, 8)}-${h.slice(8, 12)}-${h.slice(12, 16)}-${h.slice(16, 20)}-${h.slice(20)}`;
21
+ }
22
+ export async function parentBudgetAuthority(input, cwd, admission = true, signal, seen = []) {
23
+ const child = validateExecutionManifest(input), link = child.parent;
24
+ if (!link)
25
+ return undefined;
26
+ throwIfCancelled(signal);
27
+ if (seen.includes(child.runId) || seen.length >= 8 || link.runId === child.runId)
28
+ throw denied('Parent budget lineage is cyclic or exceeds eight links.');
29
+ assertExecutionStoreOutsideProject(child.project.root, link.runsRoot);
30
+ const { RunStore } = await import('../orchestration/store.js');
31
+ const { ExecutionStore } = await import('../orchestration/execution-store.js');
32
+ const { inspectSpawnAuthority } = await import('../spawning/authority.js');
33
+ const { agentStopped } = await import('../orchestration/execution-journal.js');
34
+ const runs = new RunStore(link.runsRoot), view = await runs.read(link.runId, cwd, signal);
35
+ if (view.manifest.hash !== link.runManifestHash || !view.events.some(event => event.id === link.approvalRevision && event.change.type === 'approved'))
36
+ throw denied('Parent budget does not match its reviewed native run.');
37
+ const ledger = new ReservationLedger(join(runs.root, link.runId, 'budget')), saved = ledger.read(cwd);
38
+ if (saved.projection.manifestHash !== link.budgetManifestHash || saved.manifest.runId !== link.runId || saved.manifest.planHash !== view.manifest.planHash)
39
+ throw denied('Parent budget identity changed.');
40
+ const parent = effectiveExecutionManifest(saved.manifest, saved.projection), account = accountLineage(parent, link.agentId)[0];
41
+ if (child.project.key !== parent.project.key || child.project.root !== parent.project.root || child.tokenBudget > account.tokenBudget || child.costBudgetNanos > account.costBudgetNanos || child.deadline > account.deadline || child.accounts.some(a => a.allowedTools.some(tool => !account.allowedTools.includes(tool)) || a.allowedPaths.some(path => !permits(account.allowedPaths, path.path, path.access))))
42
+ throw denied('Child budget, clock or scope exceeds its parent account.');
43
+ const store = new ExecutionStore(join(runs.root, link.runId), view.manifest);
44
+ // Reconcile settled work even after cancellation; never require fresh execution authority to record usage.
45
+ const goal = admission ? (await import('../goals/index.js')).goalRunAuthority(view.manifest, runs.root) : undefined;
46
+ const ancestor = await parentBudgetAuthority(saved.manifest, cwd, admission, signal, [...seen, child.runId]);
47
+ const assertActive = () => {
48
+ throwIfCancelled(signal);
49
+ store.assertApproval({ approvalRevision: link.approvalRevision });
50
+ goal?.assertActive();
51
+ ancestor?.assertActive();
52
+ const current = ledger.read(cwd);
53
+ if (current.projection.manifestHash !== link.budgetManifestHash)
54
+ throw denied('Parent budget identity changed.');
55
+ if (current.projection.exceeded)
56
+ throw new ExecutionLimitError('budget', 'Parent usage exceeded its reservation; further admission is stopped.');
57
+ if (Date.now() >= account.deadline)
58
+ throw new ExecutionLimitError('deadline', 'Parent allowance expired.');
59
+ if (store.exists()) {
60
+ const authority = inspectSpawnAuthority(store, ledger);
61
+ store.assertApproval(authority.view.header);
62
+ if (authority.view.state.status === 'completed' || !authority.context.plan.agents.some(agent => agent.id === link.agentId) || agentStopped(authority.view.state, authority.context, link.agentId))
63
+ throw denied('Parent account is completed, stopped or not admitted.');
64
+ }
65
+ else if (!view.manifest.plan.agents.some(agent => agent.id === link.agentId))
66
+ throw denied('Parent account is not admitted to the native plan.');
67
+ };
68
+ if (admission)
69
+ assertActive();
70
+ return { ledger, hash: link.budgetManifestHash, assertActive,
71
+ reservation: (request) => {
72
+ return { ...request, id: parentRequestId(child, request.id), agentId: link.agentId };
73
+ },
74
+ settlement: (settlement) => ({ ...settlement, requestId: parentRequestId(child, settlement.requestId) }) };
75
+ }
76
+ /** Only an identical recorded reservation can recover an interrupted parent admission. */
77
+ export async function reserveParent(authority, cwd, request, signal, beforeCommit) {
78
+ const check = () => { authority.assertActive(); beforeCommit?.(); };
79
+ check();
80
+ const existing = authority.ledger.read(cwd).projection.requests[request.id];
81
+ if (existing) {
82
+ if (existing.state !== 'pending' || canonicalJson(existing.reservation) !== canonicalJson(request))
83
+ throw denied('Parent reservation was settled or belongs to another request.');
84
+ return;
85
+ }
86
+ await authority.ledger.reserve(cwd, authority.hash, request, signal, check);
87
+ check();
88
+ }
89
+ export async function settleParent(authority, cwd, settlement) {
90
+ const saved = authority.ledger.read(cwd), entry = saved.projection.requests[settlement.requestId];
91
+ if (entry && entry.state !== 'pending') {
92
+ const event = saved.events.find(event => event.change.type === 'settle' && event.change.settlement.requestId === settlement.requestId);
93
+ if (!event || event.change.type !== 'settle' || canonicalJson(event.change.settlement) !== canonicalJson(settlement))
94
+ throw denied('Parent request was settled with different usage.');
95
+ // A linked parent may itself have an interrupted settlement to reconcile.
96
+ if (saved.manifest.parent)
97
+ await authority.ledger.settle(cwd, authority.hash, settlement);
98
+ return;
99
+ }
100
+ await authority.ledger.settle(cwd, authority.hash, settlement);
101
+ }
102
+ //# sourceMappingURL=parent-budget.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parent-budget.js","sourceRoot":"","sources":["../../src/execution/parent-budget.ts"],"names":[],"mappings":"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"}
@@ -1 +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;CAgBf"}
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,CAyBvE;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;CAgBf"}
@@ -181,11 +181,41 @@ export class ProjectSpendLedger {
181
181
  throw damaged();
182
182
  if (fs.existsSync(dir))
183
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 };
184
+ const lock = this.file + '.lock';
185
+ let retriedUnstable = false;
186
+ for (let attempt = 0; attempt <= 50; attempt++) {
187
+ if (fs.existsSync(lock)) {
188
+ if (attempt === 50)
189
+ break;
190
+ Atomics.wait(new Int32Array(new SharedArrayBuffer(4)), 0, 0, 10);
191
+ continue;
192
+ }
193
+ try {
194
+ const raw = readRaw(this.file), marked = initialized(this.file + '.initialized');
195
+ // Initial writers commit the marker before the atomic journal rename.
196
+ // Never combine observations from opposite sides of that transaction.
197
+ if (fs.existsSync(lock) || readRaw(this.file) !== raw)
198
+ continue;
199
+ if (raw === null && marked)
200
+ throw damaged();
201
+ const { state } = parse(raw);
202
+ if (fs.existsSync(lock))
203
+ continue;
204
+ return { spentUsd: state.spentNanos / 1e9, updatedAt: state.events.at(-1)?.at ?? state.legacyUpdatedAt ?? new Date(0).toISOString(), blocked: state.blocked, events: state.events };
205
+ }
206
+ catch (error) {
207
+ // A writer may finish between a partial marker read and this catch.
208
+ // Retry that observation once; persistent damage remains an error.
209
+ if (fs.existsSync(lock))
210
+ continue;
211
+ if (!retriedUnstable) {
212
+ retriedUnstable = true;
213
+ continue;
214
+ }
215
+ throw error;
216
+ }
217
+ }
218
+ throw new ExecutionLimitError('locked', 'Project budget has another writer.');
189
219
  }
190
220
  async reserve(requestId, runId, costNanos, capNanos, signal) { await this.updateAsync({ type: 'reserve', requestId, runId, costNanos, capNanos }, signal); }
191
221
  async settle(requestId, costNanos, invalid = false) { await this.updateAsync({ type: 'settle', requestId, costNanos, ...(invalid ? { invalid: true } : {}) }); }
@@ -1 +1 @@
1
- {"version":3,"file":"project-spend.js","sourceRoot":"","sources":["../../src/execution/project-spend.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"project-spend.js","sourceRoot":"","sources":["../../src/execution/project-spend.ts"],"names":[],"mappings":"AAAA,yFAAyF;AACzF,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,EAAC,OAAO,EAAC,IAAI,EAAC,OAAO,EAAC,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAC,UAAU,EAAC,MAAM,aAAa,CAAC;AACvC,OAAO,EAAC,aAAa,EAAC,aAAa,EAAC,MAAM,EAAC,MAAM,uBAAuB,CAAC;AACzE,OAAO,EAAC,gBAAgB,EAAC,gBAAgB,EAAC,MAAM,oBAAoB,CAAC;AACrE,OAAO,EAAC,mBAAmB,EAAC,MAAM,YAAY,CAAC;AAC/C,OAAO,EAAC,GAAG,EAAC,OAAO,EAAC,KAAK,EAAC,IAAI,EAAC,MAAM,gBAAgB,CAAC;AAKtD,MAAM,UAAU,GAAC,KAAK,EAAC,SAAS,GAAC,CAAC,GAAC,IAAI,GAAC,IAAI,CAAC;AAC7C,MAAM,OAAO,GAAC,GAAE,EAAE,CAAA,IAAI,mBAAmB,CAAC,aAAa,EAAC,+GAA+G,CAAC,CAAC;AACzK,MAAM,UAAU,cAAc,CAAC,KAAY,IAAU,IAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAE,KAAK,GAAC,CAAC;IAAC,MAAM,OAAO,EAAE,CAAC,CAAA,MAAM,CAAC,GAAC,IAAI,CAAC,IAAI,CAAC,KAAK,GAAC,GAAG,CAAC,CAAC,CAAA,OAAO,CAAC,CAAC,CAAC,CAAC,CAAA,OAAO,CAAC,CAAC,CAAA,CAAC;AAC3J,SAAS,MAAM,CAAC,MAAc;IAC5B,IAAG,MAAM,CAAC,MAAM,GAAC,UAAU;QAAC,MAAM,OAAO,EAAE,CAAC;IAAA,MAAM,KAAK,GAAO,EAAC,UAAU,EAAC,CAAC,EAAC,OAAO,EAAC,KAAK,EAAC,QAAQ,EAAC,IAAI,GAAG,EAAE,EAAC,MAAM,EAAC,CAAC;IAAA,IAAI,QAAQ,GAAa,IAAI,EAAC,MAAM,GAAC,EAAE,CAAC;IAAA,MAAM,GAAG,GAAC,IAAI,GAAG,EAAU,CAAC;IACzL,KAAI,MAAM,KAAK,IAAI,MAAM,EAAC,CAAC;QACzB,KAAK,CAAC,KAAK,EAAC,CAAC,SAAS,EAAC,IAAI,EAAC,IAAI,EAAC,UAAU,EAAC,QAAQ,EAAC,MAAM,CAAC,CAAC,CAAC;QAAA,IAAG,KAAK,CAAC,OAAO,KAAG,CAAC,IAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,IAAE,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,IAAE,OAAO,KAAK,CAAC,EAAE,KAAG,QAAQ,IAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,IAAE,KAAK,CAAC,EAAE,GAAC,MAAM,IAAE,KAAK,CAAC,QAAQ,KAAG,QAAQ,IAAE,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC;YAAC,MAAM,OAAO,EAAE,CAAC;QACzQ,MAAM,EAAC,IAAI,EAAC,GAAG,IAAI,EAAC,GAAC,KAAK,CAAC;QAAA,IAAG,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,KAAG,IAAI;YAAC,MAAM,OAAO,EAAE,CAAC;QAAA,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAAA,QAAQ,GAAC,IAAI,CAAC;QAAA,MAAM,GAAC,KAAK,CAAC,EAAE,CAAC;QACjI,MAAM,MAAM,GAAC,KAAK,CAAC,MAAM,CAAC;QAAA,KAAK,CAAC,MAAM,EAAC,CAAC,MAAM,CAAC,EAAC,CAAC,WAAW,EAAC,WAAW,EAAC,OAAO,EAAC,UAAU,EAAC,SAAS,CAAC,CAAC,CAAC;QACxG,IAAG,MAAM,CAAC,IAAI,KAAG,QAAQ,IAAE,MAAM,CAAC,IAAI,KAAG,QAAQ,EAAC,CAAC;YACjD,KAAK,CAAC,MAAM,EAAC,CAAC,MAAM,EAAC,WAAW,CAAC,CAAC,CAAC;YAAA,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YAAA,IAAG,MAAM,CAAC,IAAI,KAAG,QAAQ,IAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAG,KAAK;gBAAC,MAAM,OAAO,EAAE,CAAC;YAAA,KAAK,CAAC,UAAU,IAAE,MAAM,CAAC,SAAS,CAAC;QACrK,CAAC;aAAK,IAAG,MAAM,CAAC,IAAI,KAAG,SAAS,EAAC,CAAC;YAChC,KAAK,CAAC,MAAM,EAAC,CAAC,MAAM,EAAC,WAAW,EAAC,OAAO,EAAC,WAAW,EAAC,UAAU,CAAC,CAAC,CAAC;YAAA,IAAG,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAE,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAE,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC;gBAAC,MAAM,OAAO,EAAE,CAAC;YAAA,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YAAA,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAC3N,IAAG,KAAK,CAAC,OAAO,IAAE,KAAK,CAAC,UAAU,GAAC,MAAM,CAAC,SAAS,GAAC,MAAM,CAAC,QAAQ;gBAAC,MAAM,IAAI,mBAAmB,CAAC,QAAQ,EAAC,6DAA6D,CAAC,CAAC;YAC1K,KAAK,CAAC,UAAU,IAAE,MAAM,CAAC,SAAS,CAAC;YAAA,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,EAAC,EAAC,SAAS,EAAC,MAAM,CAAC,SAAS,EAAC,OAAO,EAAC,KAAK,EAAC,CAAC,CAAC;QACrH,CAAC;aAAK,IAAG,MAAM,CAAC,IAAI,KAAG,QAAQ,EAAC,CAAC;YAC/B,KAAK,CAAC,MAAM,EAAC,CAAC,MAAM,EAAC,WAAW,EAAC,WAAW,CAAC,EAAC,CAAC,SAAS,CAAC,CAAC,CAAC;YAAA,IAAG,MAAM,CAAC,OAAO,KAAG,SAAS,IAAE,MAAM,CAAC,OAAO,KAAG,IAAI;gBAAC,MAAM,OAAO,EAAE,CAAC;YAAA,IAAG,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC;gBAAC,MAAM,OAAO,EAAE,CAAC;YAAA,IAAG,MAAM,CAAC,SAAS,KAAG,IAAI;gBAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YAChO,MAAM,OAAO,GAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YAAA,IAAG,CAAC,OAAO,IAAE,OAAO,CAAC,OAAO;gBAAC,MAAM,IAAI,mBAAmB,CAAC,UAAU,EAAC,oDAAoD,CAAC,CAAC;YAC/K,OAAO,CAAC,OAAO,GAAC,IAAI,CAAC;YAAA,IAAG,MAAM,CAAC,OAAO;gBAAC,KAAK,CAAC,OAAO,GAAC,IAAI,CAAC;YAAA,IAAG,MAAM,CAAC,SAAS,KAAG,IAAI,EAAC,CAAC;gBAAA,KAAK,CAAC,UAAU,IAAE,CAAC,MAAM,CAAC,OAAO,CAAA,CAAC,CAAA,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,EAAC,OAAO,CAAC,SAAS,CAAC,CAAA,CAAC,CAAA,MAAM,CAAC,SAAS,CAAC,GAAC,OAAO,CAAC,SAAS,CAAC;gBAAA,IAAG,MAAM,CAAC,SAAS,GAAC,OAAO,CAAC,SAAS;oBAAC,KAAK,CAAC,OAAO,GAAC,IAAI,CAAC;YAAA,CAAC;QACrQ,CAAC;aAAK,IAAG,MAAM,CAAC,IAAI,KAAG,OAAO,EAAC,CAAC;YAC9B,KAAK,CAAC,MAAM,EAAC,CAAC,MAAM,CAAC,CAAC,CAAC;YAAA,IAAG,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAA,EAAE,CAAA,CAAC,CAAC,CAAC,OAAO,CAAC;gBAAC,MAAM,IAAI,mBAAmB,CAAC,UAAU,EAAC,+CAA+C,CAAC,CAAC;YAAA,KAAK,CAAC,UAAU,GAAC,CAAC,CAAC;YAAA,KAAK,CAAC,OAAO,GAAC,KAAK,CAAC;QAC9M,CAAC;;YAAK,MAAM,OAAO,EAAE,CAAC;QAAA,OAAO,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IAClD,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AACD,SAAS,OAAO,CAAC,IAAW;IAC1B,IAAI,EAAS,CAAC;IAAA,IAAG,CAAC;QAAA,EAAE,GAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAC,EAAE,CAAC,SAAS,CAAC,QAAQ,GAAC,EAAE,CAAC,SAAS,CAAC,UAAU,GAAC,EAAE,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;IAAA,CAAC;IAAA,OAAM,KAAK,EAAC,CAAC;QAAA,IAAI,KAA+B,CAAC,IAAI,KAAG,QAAQ;YAAC,OAAO,IAAI,CAAC;QAAA,MAAM,OAAO,EAAE,CAAC;IAAA,CAAC;IAC5M,IAAG,CAAC;QAAA,MAAM,IAAI,GAAC,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QAAA,IAAG,CAAC,IAAI,CAAC,MAAM,EAAE,IAAE,IAAI,CAAC,IAAI,GAAC,KAAK,IAAE,IAAI,CAAC,IAAI,GAAC,SAAS;YAAC,MAAM,OAAO,EAAE,CAAC;QAAA,MAAM,GAAG,GAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,GAAC,CAAC,CAAC,CAAC;QAAA,IAAI,IAAI,GAAC,CAAC,EAAC,CAAQ,CAAC;QAAA,OAAM,IAAI,GAAC,GAAG,CAAC,MAAM,IAAE,CAAC,CAAC,GAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,EAAC,GAAG,EAAC,IAAI,EAAC,GAAG,CAAC,MAAM,GAAC,IAAI,EAAC,IAAI,CAAC,CAAC,GAAC,CAAC;YAAC,IAAI,IAAE,CAAC,CAAC;QAAA,IAAG,IAAI,KAAG,IAAI,CAAC,IAAI;YAAC,MAAM,OAAO,EAAE,CAAC;QAAA,OAAO,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAAA,CAAC;YAAO,CAAC;QAAA,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;IAAA,CAAC;AACjW,CAAC;AACD,SAAS,KAAK,CAAC,GAAe;IAC5B,IAAG,GAAG,KAAG,IAAI;QAAC,OAAM,EAAC,KAAK,EAAC,MAAM,CAAC,EAAE,CAAC,EAAC,MAAM,EAAC,KAAK,EAAC,CAAC;IAAA,IAAI,KAAa,CAAC;IAAA,IAAG,CAAC;QAAA,KAAK,GAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAAA,CAAC;IAAA,MAAK,CAAC;QAAA,MAAM,OAAO,EAAE,CAAC;IAAA,CAAC;IACxH,IAAG,CAAC,KAAK,IAAE,OAAO,KAAK,KAAG,QAAQ;QAAC,MAAM,OAAO,EAAE,CAAC;IACnD,IAAG,CAAC,CAAC,SAAS,IAAI,KAAK,CAAC,EAAC,CAAC;QACxB,KAAK,CAAC,KAAK,EAAC,CAAC,UAAU,EAAC,WAAW,CAAC,CAAC,CAAC;QAAA,IAAG,OAAO,KAAK,CAAC,QAAQ,KAAG,QAAQ,IAAE,OAAO,KAAK,CAAC,SAAS,KAAG,QAAQ,IAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;YAAC,MAAM,OAAO,EAAE,CAAC;QAAA,MAAM,SAAS,GAAC,cAAc,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAC3N,OAAM,EAAC,KAAK,EAAC,EAAC,UAAU,EAAC,SAAS,EAAC,OAAO,EAAC,KAAK,EAAC,QAAQ,EAAC,IAAI,GAAG,EAAE,EAAC,MAAM,EAAC,EAAE,EAAC,eAAe,EAAC,KAAK,CAAC,SAAS,EAAC,EAAC,MAAM,EAAC,IAAI,EAAC,CAAC;IAC9H,CAAC;IACD,MAAM,MAAM,GAAS,KAAK,CAAC;IAAA,KAAK,CAAC,MAAM,EAAC,CAAC,SAAS,EAAC,QAAQ,EAAC,UAAU,EAAC,WAAW,CAAC,CAAC,CAAC;IAAA,IAAG,MAAM,CAAC,OAAO,KAAG,CAAC,IAAE,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC;QAAC,MAAM,OAAO,EAAE,CAAC;IAC1J,MAAM,KAAK,GAAC,MAAM,CAAC,MAAM,CAAC,MAAiB,CAAC,CAAC;IAAA,IAAG,MAAM,CAAC,QAAQ,KAAG,KAAK,CAAC,UAAU,GAAC,GAAG,IAAE,MAAM,CAAC,SAAS,KAAG,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,IAAE,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;QAAC,MAAM,OAAO,EAAE,CAAC;IAAA,OAAM,EAAC,KAAK,EAAC,MAAM,EAAC,KAAK,EAAC,CAAC;AAC7M,CAAC;AACD,SAAS,MAAM,CAAC,KAAW;IACzB,MAAM,GAAG,GAAC,IAAI,CAAC,SAAS,CAAC,EAAC,OAAO,EAAC,CAAC,EAAC,MAAM,EAAC,KAAK,CAAC,MAAM,EAAC,QAAQ,EAAC,KAAK,CAAC,UAAU,GAAC,GAAG,EAAC,SAAS,EAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,IAAE,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,EAAC,CAAC,CAAC;IAAA,IAAG,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,GAAC,SAAS;QAAC,MAAM,IAAI,mBAAmB,CAAC,OAAO,EAAC,sEAAsE,CAAC,CAAC;IAAA,OAAO,GAAG,CAAC;AACpT,CAAC;AACD,SAAS,KAAK,CAAC,MAAc,EAAC,MAAa,IAAS,MAAM,IAAI,GAAC,EAAC,OAAO,EAAC,CAAU,EAAC,EAAE,EAAC,UAAU,EAAE,EAAC,EAAE,EAAC,CAAC,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,EAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,IAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAE,EAAC,QAAQ,EAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,IAAE,IAAI,EAAC,MAAM,EAAC,CAAC,CAAA,OAAM,EAAC,GAAG,IAAI,EAAC,IAAI,EAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,EAAC,CAAC,CAAA,CAAC;AACnQ,SAAS,SAAS,CAAC,GAAU,EAAC,MAAM,GAAC,KAAK;IACxC,IAAG,aAAa,CAAC,GAAG,CAAC,KAAG,GAAG;QAAC,MAAM,OAAO,EAAE,CAAC;IAAA,IAAG,MAAM;QAAC,EAAE,CAAC,SAAS,CAAC,GAAG,EAAC,EAAC,SAAS,EAAC,IAAI,EAAC,IAAI,EAAC,KAAK,EAAC,CAAC,CAAC;IAAA,MAAM,IAAI,GAAC,EAAE,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IAAA,IAAG,CAAC,IAAI,CAAC,WAAW,EAAE,IAAE,IAAI,CAAC,cAAc,EAAE,IAAE,IAAI,CAAC,IAAI,GAAC,KAAK;QAAC,MAAM,OAAO,EAAE,CAAC;IAAA,OAAO,IAAI,CAAC;AAC9N,CAAC;AACD,SAAS,QAAQ,CAAC,IAAW,EAAC,GAAU,IAAQ,MAAM,EAAE,GAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAC,IAAI,EAAC,KAAK,CAAC,CAAC,CAAA,IAAG,CAAC;IAAA,EAAE,CAAC,aAAa,CAAC,EAAE,EAAC,GAAG,CAAC,CAAC;IAAA,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;AAAA,CAAC;QAAO,CAAC;IAAA,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;AAAA,CAAC,CAAA,CAAC;AAChK,SAAS,WAAW,CAAC,IAAW;IAC9B,IAAI,CAAC;QAAC,MAAM,IAAI,GAAC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAAA,IAAG,CAAC,IAAI,CAAC,MAAM,EAAE,IAAE,IAAI,CAAC,cAAc,EAAE,IAAE,IAAI,CAAC,IAAI,KAAG,CAAC;YAAC,MAAM,OAAO,EAAE,CAAC;IAAC,CAAC;IAC9G,OAAM,KAAK,EAAC,CAAC;QAAA,IAAI,KAA+B,CAAC,IAAI,KAAG,QAAQ;YAAC,OAAO,KAAK,CAAC;QAAA,MAAM,OAAO,EAAE,CAAC;IAAA,CAAC;IAC/F,IAAG,OAAO,CAAC,IAAI,CAAC,KAAG,WAAW;QAAC,MAAM,OAAO,EAAE,CAAC;IAAA,OAAO,IAAI,CAAC;AAC7D,CAAC;AACD,MAAM,OAAO,kBAAkB;IACpB,IAAI,CAAQ;IACrB,YAAY,IAAW,IAAE,IAAI,CAAC,IAAI,GAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAA,CAAC;IAClD,IAAI;QACF,MAAM,GAAG,GAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAAA,IAAG,aAAa,CAAC,GAAG,CAAC,KAAG,GAAG;YAAC,MAAM,OAAO,EAAE,CAAC;QAAA,IAAG,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC;YAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QAC9G,MAAM,IAAI,GAAC,IAAI,CAAC,IAAI,GAAC,OAAO,CAAC;QAAA,IAAI,eAAe,GAAC,KAAK,CAAC;QACvD,KAAI,IAAI,OAAO,GAAC,CAAC,EAAC,OAAO,IAAE,EAAE,EAAC,OAAO,EAAE,EAAC,CAAC;YACvC,IAAG,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,EAAC,CAAC;gBACtB,IAAG,OAAO,KAAG,EAAE;oBAAC,MAAM;gBACtB,OAAO,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,IAAI,iBAAiB,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,CAAC,CAAC;gBAAA,SAAS;YACzE,CAAC;YACD,IAAG,CAAC;gBACF,MAAM,GAAG,GAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAC,MAAM,GAAC,WAAW,CAAC,IAAI,CAAC,IAAI,GAAC,cAAc,CAAC,CAAC;gBAC1E,sEAAsE;gBACtE,sEAAsE;gBACtE,IAAG,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,KAAG,GAAG;oBAAC,SAAS;gBAC1D,IAAG,GAAG,KAAG,IAAI,IAAE,MAAM;oBAAC,MAAM,OAAO,EAAE,CAAC;gBAAA,MAAM,EAAC,KAAK,EAAC,GAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBAC/D,IAAG,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC;oBAAC,SAAS;gBAChC,OAAM,EAAC,QAAQ,EAAC,KAAK,CAAC,UAAU,GAAC,GAAG,EAAC,SAAS,EAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,IAAE,KAAK,CAAC,eAAe,IAAE,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,EAAC,OAAO,EAAC,KAAK,CAAC,OAAO,EAAC,MAAM,EAAC,KAAK,CAAC,MAAM,EAAC,CAAC;YACtK,CAAC;YAAA,OAAM,KAAK,EAAC,CAAC;gBACZ,oEAAoE;gBACpE,mEAAmE;gBACnE,IAAG,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC;oBAAC,SAAS;gBAChC,IAAG,CAAC,eAAe,EAAC,CAAC;oBAAA,eAAe,GAAC,IAAI,CAAC;oBAAA,SAAS;gBAAA,CAAC;gBACpD,MAAM,KAAK,CAAC;YACd,CAAC;QACH,CAAC;QACD,MAAM,IAAI,mBAAmB,CAAC,QAAQ,EAAC,oCAAoC,CAAC,CAAC;IAC/E,CAAC;IACD,KAAK,CAAC,OAAO,CAAC,SAAgB,EAAC,KAAY,EAAC,SAAgB,EAAC,QAAe,EAAC,MAAmB,IAAgB,MAAM,IAAI,CAAC,WAAW,CAAC,EAAC,IAAI,EAAC,SAAS,EAAC,SAAS,EAAC,KAAK,EAAC,SAAS,EAAC,QAAQ,EAAC,EAAC,MAAM,CAAC,CAAC,CAAA,CAAC;IACpM,KAAK,CAAC,MAAM,CAAC,SAAgB,EAAC,SAAqB,EAAC,OAAO,GAAC,KAAK,IAAgB,MAAM,IAAI,CAAC,WAAW,CAAC,EAAC,IAAI,EAAC,QAAQ,EAAC,SAAS,EAAC,SAAS,EAAC,GAAG,CAAC,OAAO,CAAA,CAAC,CAAA,EAAC,OAAO,EAAC,IAAa,EAAC,CAAA,CAAC,CAAA,EAAE,CAAC,EAAC,CAAC,CAAC,CAAA,CAAC;IACtL,MAAM,CAAC,IAAW,IAAU,OAAO,IAAI,CAAC,UAAU,CAAC,EAAC,IAAI,EAAC,QAAQ,EAAC,SAAS,EAAC,cAAc,CAAC,IAAI,CAAC,EAAC,CAAC,CAAC,UAAU,GAAC,GAAG,CAAC,CAAA,CAAC;IACnH,KAAK,KAAS,IAAI,CAAC,UAAU,CAAC,EAAC,IAAI,EAAC,OAAO,EAAC,CAAC,CAAC,CAAA,CAAC;IACvC,KAAK,CAAC,WAAW,CAAC,MAAa,EAAC,MAAmB,IAAgB,KAAI,IAAI,CAAC,GAAC,CAAC,GAAE,CAAC,EAAE,EAAC,CAAC;QAAA,gBAAgB,CAAC,MAAM,CAAC,CAAC;QAAA,IAAG,CAAC;YAAA,IAAI,CAAC,MAAM,CAAC,MAAM,EAAC,MAAM,CAAC,CAAC;YAAA,OAAO;QAAA,CAAC;QAAA,OAAM,KAAK,EAAC,CAAC;YAAA,IAAG,CAAC,CAAC,KAAK,YAAY,mBAAmB,CAAC,IAAE,KAAK,CAAC,IAAI,KAAG,QAAQ,IAAE,CAAC,IAAE,EAAE;gBAAC,MAAM,KAAK,CAAC;YAAA,MAAM,gBAAgB,CAAC,EAAE,EAAC,MAAM,CAAC,CAAC;QAAA,CAAC;IAAA,CAAC,CAAA,CAAC;IAC5R,UAAU,CAAC,MAAa,IAAS,KAAI,IAAI,CAAC,GAAC,CAAC,GAAE,CAAC,EAAE,EAAC,CAAC;QAAA,IAAG,CAAC;YAAA,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAAA,CAAC;QAAA,OAAM,KAAK,EAAC,CAAC;YAAA,IAAG,CAAC,CAAC,KAAK,YAAY,mBAAmB,CAAC,IAAE,KAAK,CAAC,IAAI,KAAG,QAAQ,IAAE,CAAC,IAAE,EAAE;gBAAC,MAAM,KAAK,CAAC;YAAA,OAAO,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,IAAI,iBAAiB,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,EAAC,CAAC,EAAC,EAAE,CAAC,CAAC;QAAA,CAAC;IAAA,CAAC,CAAA,CAAC;IACtP,MAAM,CAAC,MAAa,EAAC,MAAmB;QAC9C,gBAAgB,CAAC,MAAM,CAAC,CAAC;QAAA,MAAM,GAAG,GAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAC,MAAM,GAAC,SAAS,CAAC,GAAG,EAAC,IAAI,CAAC,EAAC,IAAI,GAAC,IAAI,CAAC,IAAI,GAAC,OAAO,EAAC,MAAM,GAAC,IAAI,CAAC,IAAI,GAAC,cAAc,CAAC;QAAA,IAAI,EAAS,CAAC;QACtJ,IAAG,CAAC;YAAA,EAAE,GAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAC,IAAI,EAAC,KAAK,CAAC,CAAC;QAAA,CAAC;QAAA,OAAM,KAAK,EAAC,CAAC;YAAA,IAAI,KAA+B,CAAC,IAAI,KAAG,QAAQ;gBAAC,MAAM,IAAI,mBAAmB,CAAC,QAAQ,EAAC,oCAAoC,CAAC,CAAC;YAAA,MAAM,OAAO,EAAE,CAAC;QAAA,CAAC;QACpM,MAAM,QAAQ,GAAC,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,EAAC,IAAI,GAAC,IAAI,CAAC,GAAG,EAAC,GAAG,UAAU,EAAE,MAAM,CAAC,CAAC;QACrE,IAAG,CAAC;YACF,EAAE,CAAC,aAAa,CAAC,EAAE,EAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;YAAA,MAAM,GAAG,GAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAC,MAAM,GAAC,WAAW,CAAC,MAAM,CAAC,CAAC;YAAA,IAAG,GAAG,KAAG,IAAI,IAAE,MAAM;gBAAC,MAAM,OAAO,EAAE,CAAC;YAAA,MAAM,KAAK,GAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAAA,IAAI,MAAM,GAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC;YAC5L,IAAG,KAAK,CAAC,MAAM;gBAAC,MAAM,GAAC,CAAC,KAAK,CAAC,EAAE,EAAC,EAAC,IAAI,EAAC,QAAQ,EAAC,SAAS,EAAC,KAAK,CAAC,KAAK,CAAC,UAAU,EAAC,CAAC,CAAC,CAAC;YACpF,MAAM,OAAO,GAAC,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAA,EAAE,CAAA,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC;YAC9E,IAAG,MAAM,CAAC,MAAM,GAAC,CAAC,MAAM,CAAC,IAAI,KAAG,SAAS,CAAA,CAAC,CAAA,OAAO,GAAC,CAAC,CAAA,CAAC,CAAA,CAAC,CAAC,GAAC,UAAU;gBAAC,MAAM,IAAI,mBAAmB,CAAC,OAAO,EAAC,sFAAsF,CAAC,CAAC;YAChM,MAAM,IAAI,GAAC,MAAM,CAAC,CAAC,GAAG,MAAM,EAAC,KAAK,CAAC,MAAM,EAAC,MAAM,CAAC,CAAC,CAAC,EAAC,MAAM,GAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAAA,QAAQ,CAAC,IAAI,EAAC,MAAM,CAAC,CAAC;YAAA,gBAAgB,CAAC,MAAM,CAAC,CAAC;YAAA,MAAM,KAAK,GAAC,SAAS,CAAC,GAAG,CAAC,CAAC;YAClJ,IAAG,MAAM,CAAC,GAAG,KAAG,KAAK,CAAC,GAAG,IAAE,MAAM,CAAC,GAAG,KAAG,KAAK,CAAC,GAAG,IAAE,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,KAAG,GAAG;gBAAC,MAAM,IAAI,mBAAmB,CAAC,UAAU,EAAC,uCAAuC,CAAC,CAAC;YAC9J,IAAG,CAAC,MAAM;gBAAC,QAAQ,CAAC,MAAM,EAAC,WAAW,CAAC,CAAC;YAAA,EAAE,CAAC,UAAU,CAAC,IAAI,EAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACtE,uGAAuG;YACvG,IAAG,OAAO,CAAC,QAAQ,KAAG,OAAO,EAAC,CAAC;gBAAA,MAAM,WAAW,GAAC,EAAE,CAAC,QAAQ,CAAC,GAAG,EAAC,GAAG,CAAC,CAAC;gBAAA,IAAG,CAAC;oBAAA,EAAE,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;gBAAA,CAAC;wBAAO,CAAC;oBAAA,EAAE,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;gBAAA,CAAC;YAAA,CAAC;YAAA,OAAO,IAAI,CAAC;QACvJ,CAAC;gBAAO,CAAC;YAAA,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;YAAA,IAAG,CAAC;gBAAA,MAAM,KAAK,GAAC,SAAS,CAAC,GAAG,CAAC,CAAC;gBAAA,IAAG,MAAM,CAAC,GAAG,KAAG,KAAK,CAAC,GAAG,IAAE,MAAM,CAAC,GAAG,KAAG,KAAK,CAAC,GAAG,EAAC,CAAC;oBAAA,EAAE,CAAC,MAAM,CAAC,IAAI,EAAC,EAAC,KAAK,EAAC,IAAI,EAAC,CAAC,CAAC;oBAAA,MAAM,QAAQ,GAAC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;oBAAA,IAAG,QAAQ,CAAC,GAAG,KAAG,QAAQ,CAAC,GAAG,IAAE,QAAQ,CAAC,GAAG,KAAG,QAAQ,CAAC,GAAG;wBAAC,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;gBAAA,CAAC;YAAA,CAAC;YAAA,MAAK,CAAC,CAAA,8CAA8C,CAAA,CAAC;QAAA,CAAC;IACrT,CAAC;CACF"}
@@ -44,7 +44,7 @@ export function providerQuote(route, messages, tools, streaming, maxOutputTokens
44
44
  if (capabilities.chat !== true || tools.length && capabilities.tools !== true || streaming && capabilities.streaming !== true)
45
45
  throw new ExecutionLimitError('authority', 'Live discovery did not confirm the required model capabilities.');
46
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';
47
+ const local = route.provider === 'ollama' || route.provider === 'openai-compat';
48
48
  // Local servers expose a context window but no billable input reservation;
49
49
  // reserve the measured request size so token budgets remain meaningful.
50
50
  const contextLimit = route.contextLength ?? 0;