@claudexor/orchestrator 4.8.2 → 5.0.2

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 (228) hide show
  1. package/dist/account-pool.d.ts +4 -1
  2. package/dist/account-pool.d.ts.map +1 -1
  3. package/dist/account-pool.js +25 -19
  4. package/dist/account-pool.js.map +1 -1
  5. package/dist/account-resolution.d.ts +1 -4
  6. package/dist/account-resolution.d.ts.map +1 -1
  7. package/dist/account-resolution.js +19 -42
  8. package/dist/account-resolution.js.map +1 -1
  9. package/dist/attemptOutputMarkers.d.ts +7 -0
  10. package/dist/attemptOutputMarkers.d.ts.map +1 -1
  11. package/dist/attemptOutputMarkers.js +1 -1
  12. package/dist/attemptOutputMarkers.js.map +1 -1
  13. package/dist/attemptTelemetry.d.ts +4 -1
  14. package/dist/attemptTelemetry.d.ts.map +1 -1
  15. package/dist/attemptTelemetry.js +9 -26
  16. package/dist/attemptTelemetry.js.map +1 -1
  17. package/dist/candidateEvidence.d.ts +29 -9
  18. package/dist/candidateEvidence.d.ts.map +1 -1
  19. package/dist/candidateEvidence.js +68 -16
  20. package/dist/candidateEvidence.js.map +1 -1
  21. package/dist/candidateOutputs.d.ts +44 -22
  22. package/dist/candidateOutputs.d.ts.map +1 -1
  23. package/dist/candidateOutputs.js +116 -72
  24. package/dist/candidateOutputs.js.map +1 -1
  25. package/dist/candidateReview.d.ts.map +1 -1
  26. package/dist/candidateReview.js +44 -8
  27. package/dist/candidateReview.js.map +1 -1
  28. package/dist/candidateTerminals.d.ts +1 -0
  29. package/dist/candidateTerminals.d.ts.map +1 -1
  30. package/dist/candidateTerminals.js +38 -15
  31. package/dist/candidateTerminals.js.map +1 -1
  32. package/dist/candidateWorkProduct.d.ts +2 -1
  33. package/dist/candidateWorkProduct.d.ts.map +1 -1
  34. package/dist/candidateWorkProduct.js +6 -3
  35. package/dist/candidateWorkProduct.js.map +1 -1
  36. package/dist/captureRefusal.d.ts +41 -3
  37. package/dist/captureRefusal.d.ts.map +1 -1
  38. package/dist/captureRefusal.js +168 -25
  39. package/dist/captureRefusal.js.map +1 -1
  40. package/dist/continuation-chain.test-support.d.ts +473 -0
  41. package/dist/continuation-chain.test-support.d.ts.map +1 -0
  42. package/dist/continuation-chain.test-support.js +206 -0
  43. package/dist/continuation-chain.test-support.js.map +1 -0
  44. package/dist/continuation-custody.d.ts +4 -1
  45. package/dist/continuation-custody.d.ts.map +1 -1
  46. package/dist/continuation-custody.js +71 -29
  47. package/dist/continuation-custody.js.map +1 -1
  48. package/dist/continuation-evidence-io.d.ts +30 -4
  49. package/dist/continuation-evidence-io.d.ts.map +1 -1
  50. package/dist/continuation-evidence-io.js +162 -46
  51. package/dist/continuation-evidence-io.js.map +1 -1
  52. package/dist/continuation-evidence.d.ts +40 -3
  53. package/dist/continuation-evidence.d.ts.map +1 -1
  54. package/dist/continuation-evidence.js +85 -11
  55. package/dist/continuation-evidence.js.map +1 -1
  56. package/dist/continuation-input.d.ts +10 -1
  57. package/dist/continuation-input.d.ts.map +1 -1
  58. package/dist/continuation-input.js +21 -20
  59. package/dist/continuation-input.js.map +1 -1
  60. package/dist/continuation-later.d.ts +30 -0
  61. package/dist/continuation-later.d.ts.map +1 -0
  62. package/dist/continuation-later.js +108 -0
  63. package/dist/continuation-later.js.map +1 -0
  64. package/dist/continue-from.d.ts +4 -3
  65. package/dist/continue-from.d.ts.map +1 -1
  66. package/dist/continue-from.js +62 -26
  67. package/dist/continue-from.js.map +1 -1
  68. package/dist/continuity-notice.d.ts +3 -1
  69. package/dist/continuity-notice.d.ts.map +1 -1
  70. package/dist/continuity-notice.js +3 -1
  71. package/dist/continuity-notice.js.map +1 -1
  72. package/dist/continuity-terminal.d.ts +16 -0
  73. package/dist/continuity-terminal.d.ts.map +1 -1
  74. package/dist/continuity-terminal.js +21 -0
  75. package/dist/continuity-terminal.js.map +1 -1
  76. package/dist/continuity.d.ts +1 -1
  77. package/dist/continuity.d.ts.map +1 -1
  78. package/dist/contract-gates.d.ts.map +1 -1
  79. package/dist/contract-gates.js +11 -6
  80. package/dist/contract-gates.js.map +1 -1
  81. package/dist/credential-cooldown.d.ts +2 -1
  82. package/dist/credential-cooldown.d.ts.map +1 -1
  83. package/dist/credential-cooldown.js +16 -7
  84. package/dist/credential-cooldown.js.map +1 -1
  85. package/dist/credential-preflight.d.ts.map +1 -1
  86. package/dist/credential-preflight.js +10 -7
  87. package/dist/credential-preflight.js.map +1 -1
  88. package/dist/credential-profile-rotation.d.ts +10 -3
  89. package/dist/credential-profile-rotation.d.ts.map +1 -1
  90. package/dist/credential-profile-rotation.js +28 -26
  91. package/dist/credential-profile-rotation.js.map +1 -1
  92. package/dist/deepScanReducer.d.ts +0 -3
  93. package/dist/deepScanReducer.d.ts.map +1 -1
  94. package/dist/deepScanReducer.js +22 -26
  95. package/dist/deepScanReducer.js.map +1 -1
  96. package/dist/delegationFailure.d.ts +105 -15
  97. package/dist/delegationFailure.d.ts.map +1 -1
  98. package/dist/delegationFailure.js +43 -12
  99. package/dist/delegationFailure.js.map +1 -1
  100. package/dist/delegationToolEvidence.d.ts +2 -0
  101. package/dist/delegationToolEvidence.d.ts.map +1 -1
  102. package/dist/delegationToolEvidence.js +21 -0
  103. package/dist/delegationToolEvidence.js.map +1 -1
  104. package/dist/diffReview.d.ts +1 -8
  105. package/dist/diffReview.d.ts.map +1 -1
  106. package/dist/diffReview.js +3 -18
  107. package/dist/diffReview.js.map +1 -1
  108. package/dist/directoryCandidate.d.ts +11 -1
  109. package/dist/directoryCandidate.d.ts.map +1 -1
  110. package/dist/directoryCandidate.js +34 -14
  111. package/dist/directoryCandidate.js.map +1 -1
  112. package/dist/inrun-continuity-carrier.d.ts +11 -1
  113. package/dist/inrun-continuity-carrier.d.ts.map +1 -1
  114. package/dist/inrun-continuity-carrier.js +32 -10
  115. package/dist/inrun-continuity-carrier.js.map +1 -1
  116. package/dist/inrun-continuity-types.d.ts +17 -4
  117. package/dist/inrun-continuity-types.d.ts.map +1 -1
  118. package/dist/inrun-continuity.d.ts +8 -3
  119. package/dist/inrun-continuity.d.ts.map +1 -1
  120. package/dist/inrun-continuity.js +41 -37
  121. package/dist/inrun-continuity.js.map +1 -1
  122. package/dist/inrun-continuity.test-support.d.ts +61 -4
  123. package/dist/inrun-continuity.test-support.d.ts.map +1 -1
  124. package/dist/inrun-continuity.test-support.js +12 -2
  125. package/dist/inrun-continuity.test-support.js.map +1 -1
  126. package/dist/modelGovernance.d.ts +87 -9
  127. package/dist/modelGovernance.d.ts.map +1 -1
  128. package/dist/modelGovernance.js +110 -15
  129. package/dist/modelGovernance.js.map +1 -1
  130. package/dist/orchestrator-credentials.d.ts +9 -4
  131. package/dist/orchestrator-credentials.d.ts.map +1 -1
  132. package/dist/orchestrator-credentials.js +14 -6
  133. package/dist/orchestrator-credentials.js.map +1 -1
  134. package/dist/orchestrator.d.ts +3 -2
  135. package/dist/orchestrator.d.ts.map +1 -1
  136. package/dist/orchestrator.js +298 -277
  137. package/dist/orchestrator.js.map +1 -1
  138. package/dist/planFinalize.d.ts.map +1 -1
  139. package/dist/planFinalize.js +3 -7
  140. package/dist/planFinalize.js.map +1 -1
  141. package/dist/planRun.js +2 -2
  142. package/dist/planRun.js.map +1 -1
  143. package/dist/plannerAttempt.d.ts +0 -2
  144. package/dist/plannerAttempt.d.ts.map +1 -1
  145. package/dist/plannerAttempt.js +64 -30
  146. package/dist/plannerAttempt.js.map +1 -1
  147. package/dist/policyFindings.d.ts +3 -0
  148. package/dist/policyFindings.d.ts.map +1 -1
  149. package/dist/policyFindings.js +11 -1
  150. package/dist/policyFindings.js.map +1 -1
  151. package/dist/pool-attempt-evidence.d.ts +1 -1
  152. package/dist/pool-attempt-evidence.d.ts.map +1 -1
  153. package/dist/pool-attempt-evidence.js +1 -1
  154. package/dist/pool-attempt-evidence.js.map +1 -1
  155. package/dist/primary-divergence.d.ts +7 -2
  156. package/dist/primary-divergence.d.ts.map +1 -1
  157. package/dist/primary-divergence.js +13 -5
  158. package/dist/primary-divergence.js.map +1 -1
  159. package/dist/quota-refusal-scope.d.ts +39 -1
  160. package/dist/quota-refusal-scope.d.ts.map +1 -1
  161. package/dist/quota-refusal-scope.js +95 -1
  162. package/dist/quota-refusal-scope.js.map +1 -1
  163. package/dist/readonlyTerminals.d.ts +0 -1
  164. package/dist/readonlyTerminals.d.ts.map +1 -1
  165. package/dist/readonlyTerminals.js +5 -3
  166. package/dist/readonlyTerminals.js.map +1 -1
  167. package/dist/requestRequirements.d.ts +23 -0
  168. package/dist/requestRequirements.d.ts.map +1 -1
  169. package/dist/requestRequirements.js +22 -0
  170. package/dist/requestRequirements.js.map +1 -1
  171. package/dist/resultNotice.d.ts +14 -0
  172. package/dist/resultNotice.d.ts.map +1 -0
  173. package/dist/resultNotice.js +21 -0
  174. package/dist/resultNotice.js.map +1 -0
  175. package/dist/reviewerInventory.d.ts +47 -0
  176. package/dist/reviewerInventory.d.ts.map +1 -0
  177. package/dist/reviewerInventory.js +74 -0
  178. package/dist/reviewerInventory.js.map +1 -0
  179. package/dist/reviewerPanel.d.ts.map +1 -1
  180. package/dist/reviewerPanel.js +37 -60
  181. package/dist/reviewerPanel.js.map +1 -1
  182. package/dist/routing-failure.d.ts +2 -1
  183. package/dist/routing-failure.d.ts.map +1 -1
  184. package/dist/routing-failure.js +2 -0
  185. package/dist/routing-failure.js.map +1 -1
  186. package/dist/runAdmission.d.ts.map +1 -1
  187. package/dist/runAdmission.js +1 -14
  188. package/dist/runAdmission.js.map +1 -1
  189. package/dist/runEventLog.d.ts +2 -1
  190. package/dist/runEventLog.d.ts.map +1 -1
  191. package/dist/runEventLog.js +5 -3
  192. package/dist/runEventLog.js.map +1 -1
  193. package/dist/runFactsBuilder.d.ts.map +1 -1
  194. package/dist/runFactsBuilder.js +18 -10
  195. package/dist/runFactsBuilder.js.map +1 -1
  196. package/dist/runFactsDeliverable.d.ts.map +1 -1
  197. package/dist/runFactsDeliverable.js +7 -1
  198. package/dist/runFactsDeliverable.js.map +1 -1
  199. package/dist/runSupport.d.ts +5 -10
  200. package/dist/runSupport.d.ts.map +1 -1
  201. package/dist/runSupport.js +38 -40
  202. package/dist/runSupport.js.map +1 -1
  203. package/dist/runTerminalResults.d.ts +9 -1
  204. package/dist/runTerminalResults.d.ts.map +1 -1
  205. package/dist/runTerminalResults.js +27 -5
  206. package/dist/runTerminalResults.js.map +1 -1
  207. package/dist/runTerminals.d.ts.map +1 -1
  208. package/dist/runTerminals.js +6 -3
  209. package/dist/runTerminals.js.map +1 -1
  210. package/dist/savedCandidate.d.ts +43 -0
  211. package/dist/savedCandidate.d.ts.map +1 -0
  212. package/dist/savedCandidate.js +88 -0
  213. package/dist/savedCandidate.js.map +1 -0
  214. package/dist/secretDiff.d.ts +85 -46
  215. package/dist/secretDiff.d.ts.map +1 -1
  216. package/dist/secretDiff.js +123 -126
  217. package/dist/secretDiff.js.map +1 -1
  218. package/dist/task-contract-builder.d.ts.map +1 -1
  219. package/dist/task-contract-builder.js +5 -7
  220. package/dist/task-contract-builder.js.map +1 -1
  221. package/dist/workReportEnvelope.d.ts.map +1 -1
  222. package/dist/workReportEnvelope.js +4 -16
  223. package/dist/workReportEnvelope.js.map +1 -1
  224. package/package.json +17 -17
  225. package/dist/persistedPatch.d.ts +0 -55
  226. package/dist/persistedPatch.d.ts.map +0 -1
  227. package/dist/persistedPatch.js +0 -132
  228. package/dist/persistedPatch.js.map +0 -1
@@ -1,4 +1,4 @@
1
- import { type QuotaRequestKind } from "@claudexor/schema";
1
+ import { type QuotaRefusalBasis, type QuotaRequestKind } from "@claudexor/schema";
2
2
  import type { CredentialProfile, ModelSubstitutionObservation, PreProgressRefusalObservation, QuotaSnapshot } from "@claudexor/schema";
3
3
  /**
4
4
  * Quota-aware ACCOUNT POOL of the unified account model (INV-135 rewrite,
@@ -43,6 +43,7 @@ export type PoolQuotaVerdict = {
43
43
  } | {
44
44
  kind: "exhausted";
45
45
  resets_at: string | null;
46
+ basis: QuotaRefusalBasis;
46
47
  };
47
48
  export interface PoolCandidate {
48
49
  profile: CredentialProfile;
@@ -84,6 +85,8 @@ export type PoolSelection = {
84
85
  outcome: "exhausted" | "empty";
85
86
  /** Earliest known window reset among exhausted rows, when any. */
86
87
  resets_at: string | null;
88
+ /** Every exhausted row stopped only at the owner's saved reserve. */
89
+ reserveOnly?: boolean;
87
90
  };
88
91
  /** Select the unpinned-run account from the pool (or report why not). */
89
92
  export declare function selectFromAccountPool(args: Parameters<typeof rankAccountPool>[0]): PoolSelection;
@@ -1 +1 @@
1
- {"version":3,"file":"account-pool.d.ts","sourceRoot":"","sources":["../src/account-pool.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuC,KAAK,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC/F,OAAO,KAAK,EACV,iBAAiB,EACjB,4BAA4B,EAC5B,6BAA6B,EAC7B,aAAa,EACd,MAAM,mBAAmB,CAAC;AAM3B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAEH,MAAM,MAAM,gBAAgB,GACxB;IAAE,IAAI,EAAE,gBAAgB,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GAC5C;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE,GACnB;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAAC;AAEpD,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,iBAAiB,CAAC;IAC3B,OAAO,EAAE,gBAAgB,CAAC;CAC3B;AAED,+EAA+E;AAC/E,MAAM,WAAW,iBAAiB;IAChC,MAAM,CACJ,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,GAAG,IAAI,EACpB,QAAQ,EAAE,SAAS,iBAAiB,EAAE,GACrC,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAChC;AAED,2EAA2E;AAC3E,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,SAAS,iBAAiB,EAAE,EACtC,SAAS,EAAE,MAAM,GAChB,iBAAiB,EAAE,CAKrB;AA2BD;;;GAGG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE;IACpC,QAAQ,EAAE,SAAS,iBAAiB,EAAE,CAAC;IACvC,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,SAAS,aAAa,EAAE,CAAC;IACpC,eAAe,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACrC,kBAAkB,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACzC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,WAAW,CAAC,EAAE,gBAAgB,CAAC;IAC/B,+EAA+E;IAC/E,aAAa,CAAC,EAAE,SAAS,4BAA4B,EAAE,CAAC;IACxD,iFAAiF;IACjF,QAAQ,CAAC,EAAE,SAAS,6BAA6B,EAAE,CAAC;IACpD,0EAA0E;IAC1E,WAAW,CAAC,EAAE,iBAAiB,GAAG,IAAI,CAAC;CACxC,GAAG,aAAa,EAAE,CAqGlB;AAED,MAAM,MAAM,aAAa,GACrB;IAAE,OAAO,EAAE,UAAU,CAAC;IAAC,SAAS,EAAE,aAAa,CAAA;CAAE,GACjD;IACE;;0EAEsE;IACtE,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC;IAC/B,kEAAkE;IAClE,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B,CAAC;AAEN,yEAAyE;AACzE,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,UAAU,CAAC,OAAO,eAAe,CAAC,CAAC,CAAC,CAAC,GAAG,aAAa,CAahG"}
1
+ {"version":3,"file":"account-pool.d.ts","sourceRoot":"","sources":["../src/account-pool.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACtB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EACV,iBAAiB,EACjB,4BAA4B,EAC5B,6BAA6B,EAC7B,aAAa,EACd,MAAM,mBAAmB,CAAC;AAO3B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAEH,MAAM,MAAM,gBAAgB,GACxB;IAAE,IAAI,EAAE,gBAAgB,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,GAC5C;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE,GACnB;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,KAAK,EAAE,iBAAiB,CAAA;CAAE,CAAC;AAE9E,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,iBAAiB,CAAC;IAC3B,OAAO,EAAE,gBAAgB,CAAC;CAC3B;AAED,+EAA+E;AAC/E,MAAM,WAAW,iBAAiB;IAChC,MAAM,CACJ,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,GAAG,IAAI,EACpB,QAAQ,EAAE,SAAS,iBAAiB,EAAE,GACrC,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAChC;AAED,2EAA2E;AAC3E,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,SAAS,iBAAiB,EAAE,EACtC,SAAS,EAAE,MAAM,GAChB,iBAAiB,EAAE,CAKrB;AA6BD;;;GAGG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE;IACpC,QAAQ,EAAE,SAAS,iBAAiB,EAAE,CAAC;IACvC,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,SAAS,aAAa,EAAE,CAAC;IACpC,eAAe,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACrC,kBAAkB,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACzC,iBAAiB,EAAE,MAAM,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,WAAW,CAAC,EAAE,gBAAgB,CAAC;IAC/B,+EAA+E;IAC/E,aAAa,CAAC,EAAE,SAAS,4BAA4B,EAAE,CAAC;IACxD,iFAAiF;IACjF,QAAQ,CAAC,EAAE,SAAS,6BAA6B,EAAE,CAAC;IACpD,0EAA0E;IAC1E,WAAW,CAAC,EAAE,iBAAiB,GAAG,IAAI,CAAC;CACxC,GAAG,aAAa,EAAE,CAsGlB;AAED,MAAM,MAAM,aAAa,GACrB;IAAE,OAAO,EAAE,UAAU,CAAC;IAAC,SAAS,EAAE,aAAa,CAAA;CAAE,GACjD;IACE;;0EAEsE;IACtE,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC;IAC/B,kEAAkE;IAClE,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,qEAAqE;IACrE,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB,CAAC;AAEN,yEAAyE;AACzE,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,UAAU,CAAC,OAAO,eAAe,CAAC,CAAC,CAAC,CAAC,GAAG,aAAa,CAgBhG"}
@@ -1,24 +1,26 @@
1
- import { quotaConstraintAppliesToRequestKind } from "@claudexor/schema";
1
+ import { quotaConstraintAppliesToRequestKind, quotaWindowFreshness, } from "@claudexor/schema";
2
2
  import { quotaConstraintAppliesToModel } from "@claudexor/budget";
3
3
  import { profileQuotaBlock } from "./credential-cooldown.js";
4
4
  import { limitSubjectRoute, profileHeadroomBreach } from "./credential-profile-rotation.js";
5
5
  import { liveRefusalMarks } from "./pre-progress-refusal.js";
6
+ import { quotaRefusalBasis, quotaRefusalResetsAt } from "./quota-refusal-scope.js";
6
7
  /** The subscription-kind enabled rows of one harness (the static pool). */
7
8
  export function accountPoolRows(registry, harnessId) {
8
9
  return registry.filter((profile) => profile.harness_id === harnessId && profile.enabled && profile.credential_kind !== "api_key");
9
10
  }
10
11
  /** Worst-window FRESH model-applicable headroom for one subject, or null when
11
- * no fresh applicable evidence exists (unknown/stale — D3: display-only). */
12
- function freshModelHeadroom(snapshots, harnessId, profileId, model, requestKind) {
12
+ * no fresh applicable evidence exists (unknown/stale — D3: display-only). Each
13
+ * window's freshness is judged at the decision instant (#457). */
14
+ function freshModelHeadroom(snapshots, harnessId, profileId, model, requestKind, now) {
13
15
  let worst = null;
14
16
  for (const snapshot of snapshots) {
15
- if (snapshot.freshness !== "fresh")
16
- continue;
17
17
  if (snapshot.subject.harness !== harnessId)
18
18
  continue;
19
19
  if ((snapshot.subject.subject_id ?? null) !== profileId)
20
20
  continue;
21
21
  for (const constraint of snapshot.constraints) {
22
+ if (quotaWindowFreshness(snapshot, constraint, now) !== "fresh")
23
+ continue;
22
24
  if (!quotaConstraintAppliesToRequestKind(constraint, requestKind))
23
25
  continue;
24
26
  if (!quotaConstraintAppliesToModel(constraint, model))
@@ -54,29 +56,28 @@ export function rankAccountPool(args) {
54
56
  continue;
55
57
  if (!args.readyProfileIds.has(profile.profile_id))
56
58
  continue;
57
- const breach = profileHeadroomBreach(args.snapshots, args.harnessId, profile.profile_id, args.headroomThreshold, args.model, args.requestKind);
58
- if (breach) {
59
- candidates.push({
60
- profile,
61
- verdict: { kind: "exhausted", resets_at: breach.resets_at },
62
- });
63
- continue;
64
- }
59
+ const breach = profileHeadroomBreach(args.snapshots, args.harnessId, profile.profile_id, args.headroomThreshold, args.model, args.requestKind, now);
65
60
  // A4 cooldown reader: a row under an OBSERVED live block (reactive
66
61
  // vendor-limit cooldown or spent window, stale-but-live included) ranks
67
62
  // exhausted with its earliest known release instant — selecting it would
68
63
  // burn an attempt to rediscover the limit the registry already holds. The
69
64
  // block is read route-scoped (the row's own credential kind), so an
70
- // api-key sibling's window can never cool a subscription row.
65
+ // api-key sibling's window can never cool a subscription row. Its basis
66
+ // separates the owner's reserve from provider exhaustion (#318).
71
67
  const block = profileQuotaBlock(args.snapshots, args.harnessId, profile.profile_id, limitSubjectRoute(profile), args.model, undefined, args.requestKind);
72
- if (block) {
68
+ const refusal = quotaRefusalBasis(breach, block);
69
+ if (refusal) {
73
70
  candidates.push({
74
71
  profile,
75
- verdict: { kind: "exhausted", resets_at: block.resets_at },
72
+ verdict: {
73
+ kind: "exhausted",
74
+ resets_at: quotaRefusalResetsAt(breach, block),
75
+ basis: refusal.basis,
76
+ },
76
77
  });
77
78
  continue;
78
79
  }
79
- const headroom = freshModelHeadroom(args.snapshots, args.harnessId, profile.profile_id, args.model, args.requestKind);
80
+ const headroom = freshModelHeadroom(args.snapshots, args.harnessId, profile.profile_id, args.model, args.requestKind, now);
80
81
  candidates.push({
81
82
  profile,
82
83
  verdict: headroom === null ? { kind: "unknown" } : { kind: "fresh_headroom", headroom },
@@ -127,13 +128,18 @@ export function selectFromAccountPool(args) {
127
128
  if (ranked.length === 0)
128
129
  return { outcome: "empty", resets_at: null };
129
130
  let resetsAt = null;
131
+ let reserveOnly = true;
130
132
  for (const candidate of ranked) {
131
- if (candidate.verdict.kind !== "exhausted" || candidate.verdict.resets_at === null)
133
+ if (candidate.verdict.kind !== "exhausted")
134
+ continue;
135
+ if (candidate.verdict.basis !== "owner_reserve")
136
+ reserveOnly = false;
137
+ if (candidate.verdict.resets_at === null)
132
138
  continue;
133
139
  if (resetsAt === null || candidate.verdict.resets_at < resetsAt) {
134
140
  resetsAt = candidate.verdict.resets_at;
135
141
  }
136
142
  }
137
- return { outcome: "exhausted", resets_at: resetsAt };
143
+ return { outcome: "exhausted", resets_at: resetsAt, reserveOnly };
138
144
  }
139
145
  //# sourceMappingURL=account-pool.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"account-pool.js","sourceRoot":"","sources":["../src/account-pool.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"account-pool.js","sourceRoot":"","sources":["../src/account-pool.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@ import type { QuotaRequestKind } from "@claudexor/schema";
2
2
  import type { AuthPreference, CredentialProfile, CredentialProfileStatus, CredentialUnusableObservation, ModelSubstitutionObservation, PreProgressRefusalObservation, QuotaSnapshot } from "@claudexor/schema";
3
3
  import { type LastServiceReader } from "./account-pool.js";
4
4
  import { type CredentialProfilePolicyState } from "@claudexor/core";
5
- import { type HeadroomBreach, type ProfilePolicy } from "./credential-profile-rotation.js";
5
+ import { type ProfilePolicy } from "./credential-profile-rotation.js";
6
6
  import { type VendorQuotaObservations } from "./credential-profiles.js";
7
7
  /**
8
8
  * The ONE account-resolution owner for a run's harness (INV-135 unified
@@ -74,9 +74,6 @@ export interface AccountResolutionContext {
74
74
  notePoolApiKeyRoute: () => void;
75
75
  emit: AccountResolutionEmit;
76
76
  }
77
- /** A pin never rotates. Typed code/reset evidence reaches final/failure.yaml;
78
- * consumers do not recover scope or reset times from this human message. */
79
- export declare function subscriptionWindowExhausted(profileId: string, harnessId: string, breach: HeadroomBreach): Error;
80
77
  /** Per-run record of harnesses whose unpinned route took the PAID API-key
81
78
  * route under the EXPLICIT `api_key` preference (Q3=A) — the user's paid
82
79
  * election over a healthy pool, or the only permitted service of an
@@ -1 +1 @@
1
- {"version":3,"file":"account-resolution.d.ts","sourceRoot":"","sources":["../src/account-resolution.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"account-resolution.d.ts","sourceRoot":"","sources":["../src/account-resolution.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAQ1D,OAAO,KAAK,EACV,cAAc,EACd,iBAAiB,EACjB,uBAAuB,EACvB,6BAA6B,EAC7B,4BAA4B,EAC5B,6BAA6B,EAC7B,aAAa,EACd,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAA0C,KAAK,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACnG,OAAO,EAGL,KAAK,4BAA4B,EAClC,MAAM,iBAAiB,CAAC;AASzB,OAAO,EAIL,KAAK,aAAa,EACnB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,EAGL,KAAK,uBAAuB,EAC7B,MAAM,0BAA0B,CAAC;AAElC;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,MAAM,MAAM,qBAAqB,GAAG,CAClC,IAAI,EACA,iCAAiC,GACjC,uBAAuB,GACvB,kCAAkC,GAClC,mCAAmC,GACnC,6BAA6B,GAC7B,2BAA2B,GAC3B,8BAA8B,EAClC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAC7B,IAAI,CAAC;AAEV,MAAM,WAAW,wBAAwB;IACvC,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,SAAS,iBAAiB,EAAE,CAAC;IACvC,MAAM,EAAE,aAAa,CAAC;IACtB,6EAA6E;IAC7E,kBAAkB,CAAC,EAAE,4BAA4B,CAAC;IAClD,SAAS,EAAE,SAAS,aAAa,EAAE,CAAC;IACpC,KAAK,EAAE,uBAAuB,CAAC;IAC/B;;8BAE0B;IAC1B,QAAQ,EAAE,SAAS,6BAA6B,EAAE,CAAC;IACnD;;kEAE8D;IAC9D,aAAa,CAAC,EAAE,SAAS,4BAA4B,EAAE,CAAC;IACxD;;wBAEoB;IACpB,QAAQ,CAAC,EAAE,SAAS,6BAA6B,EAAE,CAAC;IACpD,uFAAuF;IACvF,WAAW,CAAC,EAAE,iBAAiB,GAAG,IAAI,CAAC;IACvC,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,iBAAiB,KAAK,OAAO,CAAC,uBAAuB,CAAC,CAAC,GAAG,SAAS,CAAC;IACtF,oFAAoF;IACpF,aAAa,EAAE,iBAAiB,GAAG,IAAI,CAAC;IACxC,kFAAkF;IAClF,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,WAAW,CAAC,EAAE,gBAAgB,CAAC;IAC/B,0EAA0E;IAC1E,kBAAkB,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IACzC,kFAAkF;IAClF,YAAY,EAAE,eAAe,GAAG,SAAS,GAAG,IAAI,CAAC;IACjD,yFAAyF;IACzF,yBAAyB,EAAE,OAAO,CAAC;IACnC,kEAAkE;IAClE,cAAc,EAAE,cAAc,CAAC;IAC/B,gFAAgF;IAChF,mBAAmB,EAAE,MAAM,IAAI,CAAC;IAChC,IAAI,EAAE,qBAAqB,CAAC;CAC7B;AAqFD;;;;;oCAKoC;AACpC,qBAAa,cAAc;IACzB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAsC;IAC5D,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,CAI5C;IACD,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAE9C;CACF;AAED,wBAAsB,oBAAoB,CACxC,GAAG,EAAE,wBAAwB,GAC5B,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,CAkUnC"}
@@ -1,4 +1,4 @@
1
- import { quotaRefusalWithScope } from "./quota-refusal-scope.js";
1
+ import { pinnedWindowBlocked, quotaRefusalBasis, quotaRefusalResetsAt, quotaRefusalWithScope, subscriptionWindowExhausted, } from "./quota-refusal-scope.js";
2
2
  import { accountPoolRows, selectFromAccountPool } from "./account-pool.js";
3
3
  import { credentialProfilePolicyProblem, HarnessUnavailableError, } from "@claudexor/core";
4
4
  import { credentialPoolExhausted, profileQuotaBlock, } from "./credential-cooldown.js";
@@ -7,31 +7,6 @@ import { applicableCredentialUnusable } from "./account-evidence.js";
7
7
  import { preflightDefaultSubject } from "./credential-preflight.js";
8
8
  import { effectiveLimitAction, limitSubjectRoute, profileHeadroomBreach, } from "./credential-profile-rotation.js";
9
9
  import { selectedProfileAvailability, vendorCredentialObservation, } from "./credential-profiles.js";
10
- /** A pin never rotates. Typed code/reset evidence reaches final/failure.yaml;
11
- * consumers do not recover scope or reset times from this human message. */
12
- export function subscriptionWindowExhausted(profileId, harnessId, breach) {
13
- return Object.assign(new Error(`credential profile "${profileId}" (${harnessId}) is over its headroom threshold ` +
14
- `(${breach.constraint_id} at ${Math.round(breach.used_ratio * 100)}% >= ${Math.round(breach.threshold * 100)}%; ` +
15
- `a pinned account never rotates${breach.resets_at ? `; resets ${breach.resets_at}` : ""})`), {
16
- code: "subscription_window_exhausted",
17
- // Not `internal`: nothing malfunctioned. The account cannot serve this
18
- // run until its window reopens, which is what harness_unavailable means.
19
- category: "harness_unavailable",
20
- resetsAt: breach.resets_at,
21
- });
22
- }
23
- /** The strict pin's refusal for an OBSERVED live block (A4): same typed code
24
- * and category as the headroom form — a consumer asks "when can I come back",
25
- * not which detector fired — with the block's own evidence in the prose. */
26
- function pinnedWindowBlocked(profileId, harnessId, block) {
27
- return Object.assign(new Error(`credential profile "${profileId}" (${harnessId}) is ${block.kind === "exhausted"
28
- ? "over an observed vendor window"
29
- : "in a vendor rate-limit cooldown"} (${block.constraint_id ?? "cooldown"}; a pinned account never rotates${block.resets_at ? `; resets ${block.resets_at}` : ""})`), {
30
- code: "subscription_window_exhausted",
31
- category: "harness_unavailable",
32
- resetsAt: block.resets_at,
33
- });
34
- }
35
10
  /** A live credential ledger verdict outranks bounded stale auth evidence even
36
11
  * on a strict pin. Keep the refusal typed as harness unavailability without
37
12
  * inventing a quota/reset code for a credential that is actually revoked. */
@@ -145,28 +120,32 @@ export async function resolveAccountForRun(ctx) {
145
120
  if (dead)
146
121
  throw pinnedCredentialUnusable(pinned.profile_id, harnessId, dead);
147
122
  const breach = profileHeadroomBreach(snapshots, harnessId, pinned.profile_id, policy.headroom_threshold, model, ctx.requestKind);
148
- const block = breach
149
- ? null
150
- : profileQuotaBlock(snapshots, harnessId, pinned.profile_id, limitSubjectRoute(pinned), model, undefined, ctx.requestKind);
123
+ // A provider block outranks the owner's reserve whatever the threshold
124
+ // (#318): a spent window is never relabelled as a discretionary reserve.
125
+ const block = profileQuotaBlock(snapshots, harnessId, pinned.profile_id, limitSubjectRoute(pinned), model, undefined, ctx.requestKind);
151
126
  if (!breach && !block)
152
127
  return pinned;
128
+ const refusal = block
129
+ ? pinnedWindowBlocked(pinned.profile_id, harnessId, block, breach)
130
+ : subscriptionWindowExhausted(pinned.profile_id, harnessId, breach);
131
+ // Window, usage, reset and basis all describe the refusal's controlling evidence.
132
+ const basis = refusal.quotaRefusal;
153
133
  emit("route.profile.headroom_exceeded", {
154
134
  harness_id: harnessId,
155
135
  profile_id: pinned.profile_id,
156
136
  action: "refuse",
157
- constraint_id: breach?.constraint_id ?? block?.constraint_id ?? null,
158
- used_ratio: breach?.used_ratio ?? null,
137
+ constraint_id: basis?.constraintId ?? null,
138
+ used_ratio: basis?.usedRatio ?? null,
159
139
  threshold: policy.headroom_threshold,
160
- resets_at: breach?.resets_at ?? block?.resets_at ?? null,
140
+ resets_at: quotaRefusalResetsAt(breach, block),
141
+ basis: basis?.basis ?? null,
161
142
  });
162
- throw quotaRefusalWithScope(breach
163
- ? subscriptionWindowExhausted(pinned.profile_id, harnessId, breach)
164
- : pinnedWindowBlocked(pinned.profile_id, harnessId, block), {
143
+ throw quotaRefusalWithScope(refusal, {
165
144
  harness: harnessId,
166
145
  profileId: pinned.profile_id,
167
146
  model,
168
147
  requestKind: ctx.requestKind,
169
- constraintId: breach?.constraint_id ?? block?.constraint_id,
148
+ constraintId: basis?.constraintId,
170
149
  });
171
150
  }
172
151
  const pool = accountPoolRows(registry, harnessId);
@@ -289,16 +268,14 @@ export async function resolveAccountForRun(ctx) {
289
268
  const breach = profileHeadroomBreach(snapshots, harnessId, boundId, policy.headroom_threshold, model, ctx.requestKind);
290
269
  // A4: an observed live block on the bound row (reactive cooldown /
291
270
  // spent window) unbinds it exactly like a fresh breach would.
292
- const block = breach
293
- ? null
294
- : profileQuotaBlock(snapshots, harnessId, boundId, limitSubjectRoute(bound), model, undefined, ctx.requestKind);
271
+ const block = profileQuotaBlock(snapshots, harnessId, boundId, limitSubjectRoute(bound), model, undefined, ctx.requestKind);
295
272
  if (verdict === "available" && !breach && !block)
296
273
  return bound;
274
+ const reserveOnly = quotaRefusalBasis(breach, block)?.basis === "owner_reserve";
275
+ const resetsAt = quotaRefusalResetsAt(breach, block);
297
276
  boundSwitchReason =
298
277
  breach || block
299
- ? `quota window exhausted${(breach?.resets_at ?? block?.resets_at)
300
- ? ` (resets ${breach?.resets_at ?? block?.resets_at})`
301
- : ""}`
278
+ ? `${reserveOnly ? "saved quota reserve reached" : "quota window exhausted"}${resetsAt ? ` (resets ${resetsAt})` : ""}`
302
279
  : (verdict ?? "not ready");
303
280
  }
304
281
  else {
@@ -1 +1 @@
1
- {"version":3,"file":"account-resolution.js","sourceRoot":"","sources":["../src/account-resolution.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"account-resolution.js","sourceRoot":"","sources":["../src/account-resolution.ts"],"names":[],"mappings":"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"}
@@ -31,5 +31,12 @@ export interface AttemptOutputMarkers {
31
31
  sawSessionStart?: boolean;
32
32
  }
33
33
  export declare function newAttemptOutputMarkers(): AttemptOutputMarkers;
34
+ /**
35
+ * The closed event policy: thinking (non-empty), tool_call, tool_result,
36
+ * file_change, patch_produced, and a completed compaction mark agent progress.
37
+ * Everything else — message, error, status, started, usage, lifecycle — does
38
+ * not.
39
+ */
40
+ export declare function marksAgentProgress(ev: HarnessEvent): boolean;
34
41
  export declare function observeAttemptOutputMarkers(m: AttemptOutputMarkers, ev: HarnessEvent): void;
35
42
  //# sourceMappingURL=attemptOutputMarkers.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"attemptOutputMarkers.d.ts","sourceRoot":"","sources":["../src/attemptOutputMarkers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEtD,MAAM,WAAW,oBAAoB;IACnC;yEACqE;IACrE,gBAAgB,EAAE,OAAO,CAAC;IAC1B;2BACuB;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB;;;yEAGqE;IACrE,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,wBAAgB,uBAAuB,IAAI,oBAAoB,CAE9D;AAwBD,wBAAgB,2BAA2B,CAAC,CAAC,EAAE,oBAAoB,EAAE,EAAE,EAAE,YAAY,GAAG,IAAI,CAI3F"}
1
+ {"version":3,"file":"attemptOutputMarkers.d.ts","sourceRoot":"","sources":["../src/attemptOutputMarkers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEtD,MAAM,WAAW,oBAAoB;IACnC;yEACqE;IACrE,gBAAgB,EAAE,OAAO,CAAC;IAC1B;2BACuB;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB;;;yEAGqE;IACrE,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,wBAAgB,uBAAuB,IAAI,oBAAoB,CAE9D;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,YAAY,GAAG,OAAO,CAc5D;AAED,wBAAgB,2BAA2B,CAAC,CAAC,EAAE,oBAAoB,EAAE,EAAE,EAAE,YAAY,GAAG,IAAI,CAI3F"}
@@ -7,7 +7,7 @@ export function newAttemptOutputMarkers() {
7
7
  * Everything else — message, error, status, started, usage, lifecycle — does
8
8
  * not.
9
9
  */
10
- function marksAgentProgress(ev) {
10
+ export function marksAgentProgress(ev) {
11
11
  switch (ev.type) {
12
12
  case "thinking":
13
13
  return (ev.text?.trim().length ?? 0) > 0;
@@ -1 +1 @@
1
- {"version":3,"file":"attemptOutputMarkers.js","sourceRoot":"","sources":["../src/attemptOutputMarkers.ts"],"names":[],"mappings":"AAkCA,MAAM,UAAU,uBAAuB;IACrC,OAAO,EAAE,gBAAgB,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,EAAE,eAAe,EAAE,KAAK,EAAE,CAAC;AAC7E,CAAC;AAED;;;;;GAKG;AACH,SAAS,kBAAkB,CAAC,EAAgB;IAC1C,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC;QAChB,KAAK,UAAU;YACb,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QAC3C,KAAK,WAAW,CAAC;QACjB,KAAK,aAAa,CAAC;QACnB,KAAK,aAAa,CAAC;QACnB,KAAK,gBAAgB;YACnB,OAAO,IAAI,CAAC;QACd,KAAK,SAAS;YACZ,OAAO,EAAE,CAAC,OAAO,EAAE,IAAI,KAAK,sBAAsB,CAAC;QACrD;YACE,OAAO,KAAK,CAAC;IACjB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,2BAA2B,CAAC,CAAuB,EAAE,EAAgB;IACnF,IAAI,EAAE,CAAC,IAAI,KAAK,aAAa;QAAE,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC;IAClD,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS;QAAE,CAAC,CAAC,eAAe,GAAG,IAAI,CAAC;IACpD,IAAI,CAAC,CAAC,CAAC,gBAAgB,IAAI,kBAAkB,CAAC,EAAE,CAAC;QAAE,CAAC,CAAC,gBAAgB,GAAG,IAAI,CAAC;AAC/E,CAAC"}
1
+ {"version":3,"file":"attemptOutputMarkers.js","sourceRoot":"","sources":["../src/attemptOutputMarkers.ts"],"names":[],"mappings":"AAkCA,MAAM,UAAU,uBAAuB;IACrC,OAAO,EAAE,gBAAgB,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC,EAAE,eAAe,EAAE,KAAK,EAAE,CAAC;AAC7E,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,kBAAkB,CAAC,EAAgB;IACjD,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC;QAChB,KAAK,UAAU;YACb,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QAC3C,KAAK,WAAW,CAAC;QACjB,KAAK,aAAa,CAAC;QACnB,KAAK,aAAa,CAAC;QACnB,KAAK,gBAAgB;YACnB,OAAO,IAAI,CAAC;QACd,KAAK,SAAS;YACZ,OAAO,EAAE,CAAC,OAAO,EAAE,IAAI,KAAK,sBAAsB,CAAC;QACrD;YACE,OAAO,KAAK,CAAC;IACjB,CAAC;AACH,CAAC;AAED,MAAM,UAAU,2BAA2B,CAAC,CAAuB,EAAE,EAAgB;IACnF,IAAI,EAAE,CAAC,IAAI,KAAK,aAAa;QAAE,CAAC,CAAC,WAAW,IAAI,CAAC,CAAC;IAClD,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS;QAAE,CAAC,CAAC,eAAe,GAAG,IAAI,CAAC;IACpD,IAAI,CAAC,CAAC,CAAC,gBAAgB,IAAI,kBAAkB,CAAC,EAAE,CAAC;QAAE,CAAC,CAAC,gBAAgB,GAAG,IAAI,CAAC;AAC/E,CAAC"}
@@ -1,5 +1,5 @@
1
1
  /** The single owner of typed attempt evidence and outcome truth, never prose inference. */
2
- import type { AttemptTelemetryRecord, EffortResolution, AuthSourceKind, ExternalContextPolicy, HarnessEvent, HarnessRequestRefusal, InputTokenUsage, RequestRequirementResolution, TaskContract, ToolKind, WorkState } from "@claudexor/schema";
2
+ import type { AttemptTelemetryRecord, EffortResolution, AuthSourceKind, ExternalContextPolicy, HarnessEvent, HarnessRequestRefusal, InputTokenUsage, RawContextReceipt, RequestRequirementResolution, TaskContract, ToolKind, WorkState } from "@claudexor/schema";
3
3
  import { type AttemptUsageCost } from "./attemptUsageCost.js";
4
4
  import * as marks from "./attemptOutputMarkers.js";
5
5
  import { type ProcessingTelemetry } from "./processing-telemetry.js";
@@ -61,6 +61,9 @@ export interface DelegationBeltState {
61
61
  export interface AttemptTelemetry extends ProcessingTelemetry, PromptCacheTelemetry, ObservedModelTelemetry {
62
62
  requestRefusal?: HarnessRequestRefusal;
63
63
  effortResolution?: EffortResolution;
64
+ /** #147: the size of the last raw-api request a try prepared, receipted just
65
+ * before its POST (one per try; the last wins). */
66
+ rawContext?: RawContextReceipt;
64
67
  requestRequirements: RequestRequirementResolution[];
65
68
  toolErrors: ToolErrorRecord[];
66
69
  /** tool_result events without a status field: never silently treated as ok. */
@@ -1 +1 @@
1
- {"version":3,"file":"attemptTelemetry.d.ts","sourceRoot":"","sources":["../src/attemptTelemetry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"attemptTelemetry.d.ts","sourceRoot":"","sources":["../src/attemptTelemetry.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import { commandOutcomeUnconfirmed } from "@claudexor/schema";
1
2
  import { attemptUsageCostSummary, newAttemptUsageCost, observeAttemptUsageEvent, } from "./attemptUsageCost.js";
2
3
  import { redactSecrets } from "@claudexor/util";
3
4
  import * as belt from "./delegationToolEvidence.js";
@@ -80,27 +81,6 @@ function foldInputTokenUsage(acc, value) {
80
81
  cache_write_tokens: add("cache_write_tokens"),
81
82
  };
82
83
  }
83
- /** QA-024: the injected server’s typed startup failure cannot become silent success. */
84
- function observeBeltStartup(t, ev) {
85
- const payload = ev.payload;
86
- const servers = payload?.["mcp_servers"];
87
- if (!Array.isArray(servers))
88
- return;
89
- for (const raw of servers) {
90
- if (!raw || typeof raw !== "object")
91
- continue;
92
- const entry = raw;
93
- if (entry.name !== t.delegationBelt.serverName)
94
- continue;
95
- const status = typeof entry.status === "string" ? entry.status.toLowerCase() : "";
96
- if (status === "failed" || status === "error")
97
- t.delegationBelt.failed = true;
98
- else if (status === "connected" || status === "ready" || status === "ok") {
99
- t.delegationBelt.ready = true;
100
- }
101
- return;
102
- }
103
- }
104
84
  /** QA-040: generic MCP kind is insufficient; match the engine-armed namespace. */
105
85
  function matchesBrowser(t, tool) {
106
86
  const server = t.browser.serverName;
@@ -134,12 +114,14 @@ export function observeAttemptTelemetry(t, ev) {
134
114
  observePromptCacheTtl(t, ev);
135
115
  if (ev.effort_resolution)
136
116
  t.effortResolution = ev.effort_resolution;
117
+ if (ev.raw_context)
118
+ t.rawContext = ev.raw_context;
137
119
  marks.observeAttemptOutputMarkers(t.outputMarkers, ev);
138
120
  // Delegation belt readiness (QA-024): normalized startup/error events carry
139
121
  // typed MCP server statuses. Read THAT server's status as first-class truth;
140
122
  // a failed belt must never launder into a native-subagent success.
141
123
  if (t.delegationBelt.requested && Array.isArray(ev.payload?.["mcp_servers"])) {
142
- observeBeltStartup(t, ev);
124
+ belt.observeBeltStartup(t, ev);
143
125
  }
144
126
  // Exact adapter-neutral evidence distinguishes the belt from a native subagent;
145
127
  // recovery uses matching ids when both exist, else legacy tool+kind+target.
@@ -304,11 +286,11 @@ export function observeAttemptTelemetry(t, ev) {
304
286
  }
305
287
  return;
306
288
  }
307
- // status === "ok": recovery needs the same tool + kind + target, plus the same
308
- // non-null use id when both sides have one. A missing id retains the legacy
309
- // tuple key for adapters and synthetic telemetry that cannot correlate calls.
289
+ // status === "ok": recovery needs the same tool + kind + target, the same non-null
290
+ // use id when both sides have one (else the legacy tuple key), and an observed
291
+ // command end: a background handoff or elapsed timeout proves nothing (#450).
310
292
  const resultToolUseId = tool.use_id ?? null;
311
- for (const err of t.toolErrors) {
293
+ for (const err of commandOutcomeUnconfirmed(tool.command_outcome) ? [] : t.toolErrors) {
312
294
  // INV-043: a later identical-looking invocation cannot launder an earlier
313
295
  // error when both vendor records prove different invocation ids.
314
296
  if (!err.recovered &&
@@ -480,6 +462,7 @@ export function attemptTelemetryRecord(attemptId, harnessId, t) {
480
462
  usage_cost: attemptUsageCostSummary(t.usageCost),
481
463
  effort_resolution: t.effortResolution,
482
464
  request_refusal: t.requestRefusal,
465
+ raw_context: t.rawContext,
483
466
  processing: t.processing,
484
467
  processing_cost_basis: t.processingCostBasis,
485
468
  prompt_cache_ttl: t.promptCacheTtl,