@botiverse/oar 0.49.0 → 0.50.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 (159) hide show
  1. package/README.md +25 -1
  2. package/dist/contracts/failure.d.ts +35 -0
  3. package/dist/contracts/failure.d.ts.map +1 -1
  4. package/dist/contracts/index.d.ts +1 -1
  5. package/dist/contracts/index.d.ts.map +1 -1
  6. package/dist/contracts/index.js.map +1 -1
  7. package/dist/contracts/records.d.ts +8 -10
  8. package/dist/contracts/records.d.ts.map +1 -1
  9. package/dist/contracts/session-options.d.ts +15 -5
  10. package/dist/contracts/session-options.d.ts.map +1 -1
  11. package/dist/contracts/session.d.ts +15 -3
  12. package/dist/contracts/session.d.ts.map +1 -1
  13. package/dist/observe/failure-advice.d.ts +11 -4
  14. package/dist/observe/failure-advice.d.ts.map +1 -1
  15. package/dist/observe/failure-advice.js +1 -1
  16. package/dist/observe/failure-advice.js.map +1 -1
  17. package/dist/observe/session-view-events.d.ts.map +1 -1
  18. package/dist/observe/session-view-events.js +3 -0
  19. package/dist/observe/session-view-events.js.map +1 -1
  20. package/dist/observe/session-view-fold.d.ts +2 -1
  21. package/dist/observe/session-view-fold.d.ts.map +1 -1
  22. package/dist/observe/session-view-fold.js +4 -7
  23. package/dist/observe/session-view-fold.js.map +1 -1
  24. package/dist/observe/session-view.d.ts +2 -0
  25. package/dist/observe/session-view.d.ts.map +1 -1
  26. package/dist/observe/session-view.js +1 -0
  27. package/dist/observe/session-view.js.map +1 -1
  28. package/dist/observe/usage.d.ts +23 -4
  29. package/dist/observe/usage.d.ts.map +1 -1
  30. package/dist/observe/usage.js +77 -18
  31. package/dist/observe/usage.js.map +1 -1
  32. package/dist/runtimes/antigravity/session.d.ts.map +1 -1
  33. package/dist/runtimes/antigravity/session.js +2 -2
  34. package/dist/runtimes/antigravity/session.js.map +1 -1
  35. package/dist/runtimes/claude/failure.d.ts +25 -4
  36. package/dist/runtimes/claude/failure.d.ts.map +1 -1
  37. package/dist/runtimes/claude/failure.js +38 -4
  38. package/dist/runtimes/claude/failure.js.map +1 -1
  39. package/dist/runtimes/claude/open-settings.d.ts +13 -3
  40. package/dist/runtimes/claude/open-settings.d.ts.map +1 -1
  41. package/dist/runtimes/claude/open-settings.js +94 -14
  42. package/dist/runtimes/claude/open-settings.js.map +1 -1
  43. package/dist/runtimes/claude/projection.d.ts +18 -3
  44. package/dist/runtimes/claude/projection.d.ts.map +1 -1
  45. package/dist/runtimes/claude/projection.js +29 -22
  46. package/dist/runtimes/claude/projection.js.map +1 -1
  47. package/dist/runtimes/claude/session.d.ts.map +1 -1
  48. package/dist/runtimes/claude/session.js +16 -11
  49. package/dist/runtimes/claude/session.js.map +1 -1
  50. package/dist/runtimes/claude/token-usage.d.ts +59 -0
  51. package/dist/runtimes/claude/token-usage.d.ts.map +1 -0
  52. package/dist/runtimes/claude/token-usage.js +135 -0
  53. package/dist/runtimes/claude/token-usage.js.map +1 -0
  54. package/dist/runtimes/codex/app-server-client.d.ts.map +1 -1
  55. package/dist/runtimes/codex/app-server-client.js +11 -8
  56. package/dist/runtimes/codex/app-server-client.js.map +1 -1
  57. package/dist/runtimes/codex/failure.d.ts +2 -4
  58. package/dist/runtimes/codex/failure.d.ts.map +1 -1
  59. package/dist/runtimes/codex/open.d.ts.map +1 -1
  60. package/dist/runtimes/codex/open.js +3 -2
  61. package/dist/runtimes/codex/open.js.map +1 -1
  62. package/dist/runtimes/codex/rpc-control.d.ts.map +1 -1
  63. package/dist/runtimes/codex/rpc-control.js +2 -1
  64. package/dist/runtimes/codex/rpc-control.js.map +1 -1
  65. package/dist/runtimes/codex/session.d.ts.map +1 -1
  66. package/dist/runtimes/codex/session.js +5 -6
  67. package/dist/runtimes/codex/session.js.map +1 -1
  68. package/dist/runtimes/grok/failure.js.map +1 -1
  69. package/dist/runtimes/kimi/session.d.ts.map +1 -1
  70. package/dist/runtimes/kimi/session.js +2 -2
  71. package/dist/runtimes/kimi/session.js.map +1 -1
  72. package/dist/runtimes/opencode/session.d.ts.map +1 -1
  73. package/dist/runtimes/opencode/session.js +3 -2
  74. package/dist/runtimes/opencode/session.js.map +1 -1
  75. package/dist/runtimes/pi/auth.d.ts +4 -7
  76. package/dist/runtimes/pi/auth.d.ts.map +1 -1
  77. package/dist/runtimes/pi/auth.js +2 -12
  78. package/dist/runtimes/pi/auth.js.map +1 -1
  79. package/dist/runtimes/pi/catalog.d.ts +3 -6
  80. package/dist/runtimes/pi/catalog.d.ts.map +1 -1
  81. package/dist/runtimes/pi/catalog.js +3 -11
  82. package/dist/runtimes/pi/catalog.js.map +1 -1
  83. package/dist/runtimes/pi/credentials.d.ts +6 -0
  84. package/dist/runtimes/pi/credentials.d.ts.map +1 -0
  85. package/dist/runtimes/pi/credentials.js +17 -0
  86. package/dist/runtimes/pi/credentials.js.map +1 -0
  87. package/dist/runtimes/pi/facade-runtime.d.ts +20 -0
  88. package/dist/runtimes/pi/facade-runtime.d.ts.map +1 -0
  89. package/dist/runtimes/pi/facade-runtime.js +23 -0
  90. package/dist/runtimes/pi/facade-runtime.js.map +1 -0
  91. package/dist/runtimes/pi/failure.d.ts +2 -4
  92. package/dist/runtimes/pi/failure.d.ts.map +1 -1
  93. package/dist/runtimes/pi/inventory.d.ts.map +1 -1
  94. package/dist/runtimes/pi/inventory.js +2 -1
  95. package/dist/runtimes/pi/inventory.js.map +1 -1
  96. package/dist/runtimes/pi/list-models.d.ts.map +1 -1
  97. package/dist/runtimes/pi/list-models.js +2 -1
  98. package/dist/runtimes/pi/list-models.js.map +1 -1
  99. package/dist/runtimes/pi/mcp.d.ts.map +1 -1
  100. package/dist/runtimes/pi/mcp.js +3 -2
  101. package/dist/runtimes/pi/mcp.js.map +1 -1
  102. package/dist/runtimes/pi/open.d.ts +1 -1
  103. package/dist/runtimes/pi/open.d.ts.map +1 -1
  104. package/dist/runtimes/pi/open.js +8 -4
  105. package/dist/runtimes/pi/open.js.map +1 -1
  106. package/dist/runtimes/pi/resolve.d.ts +9 -0
  107. package/dist/runtimes/pi/resolve.d.ts.map +1 -1
  108. package/dist/runtimes/pi/resolve.js +12 -0
  109. package/dist/runtimes/pi/resolve.js.map +1 -1
  110. package/dist/runtimes/pi/session.d.ts.map +1 -1
  111. package/dist/runtimes/pi/session.js +6 -7
  112. package/dist/runtimes/pi/session.js.map +1 -1
  113. package/dist/shared/acp/failure.js +2 -2
  114. package/dist/shared/acp/failure.js.map +1 -1
  115. package/dist/shared/acp/mcp-servers.d.ts +1 -1
  116. package/dist/shared/acp/mcp-servers.d.ts.map +1 -1
  117. package/dist/shared/acp/mcp-servers.js +1 -2
  118. package/dist/shared/acp/mcp-servers.js.map +1 -1
  119. package/dist/shared/acp/process.d.ts +3 -0
  120. package/dist/shared/acp/process.d.ts.map +1 -1
  121. package/dist/shared/acp/process.js +14 -1
  122. package/dist/shared/acp/process.js.map +1 -1
  123. package/dist/shared/acp/profile.d.ts +2 -3
  124. package/dist/shared/acp/profile.d.ts.map +1 -1
  125. package/dist/shared/acp/profile.js +3 -4
  126. package/dist/shared/acp/profile.js.map +1 -1
  127. package/dist/shared/acp/session.d.ts.map +1 -1
  128. package/dist/shared/acp/session.js +7 -8
  129. package/dist/shared/acp/session.js.map +1 -1
  130. package/dist/shared/credential-redactor.d.ts +9 -0
  131. package/dist/shared/credential-redactor.d.ts.map +1 -0
  132. package/dist/shared/credential-redactor.js +75 -0
  133. package/dist/shared/credential-redactor.js.map +1 -0
  134. package/dist/shared/failure-class.d.ts +2 -3
  135. package/dist/shared/failure-class.d.ts.map +1 -1
  136. package/dist/shared/failure-class.js.map +1 -1
  137. package/dist/shared/mcp-servers.d.ts +1 -6
  138. package/dist/shared/mcp-servers.d.ts.map +1 -1
  139. package/dist/shared/mcp-servers.js +3 -18
  140. package/dist/shared/mcp-servers.js.map +1 -1
  141. package/dist/shared/native-error.d.ts +7 -0
  142. package/dist/shared/native-error.d.ts.map +1 -0
  143. package/dist/shared/native-error.js +20 -0
  144. package/dist/shared/native-error.js.map +1 -0
  145. package/dist/shared/redact-text.d.ts +3 -0
  146. package/dist/shared/redact-text.d.ts.map +1 -0
  147. package/dist/shared/redact-text.js +71 -0
  148. package/dist/shared/redact-text.js.map +1 -0
  149. package/dist/shared/seal-session.js +1 -1
  150. package/dist/shared/seal-session.js.map +1 -1
  151. package/dist/shared/session-credentials.d.ts +11 -0
  152. package/dist/shared/session-credentials.d.ts.map +1 -0
  153. package/dist/shared/session-credentials.js +45 -0
  154. package/dist/shared/session-credentials.js.map +1 -0
  155. package/dist/shared/session-kernel.d.ts +2 -1
  156. package/dist/shared/session-kernel.d.ts.map +1 -1
  157. package/dist/shared/session-kernel.js +7 -5
  158. package/dist/shared/session-kernel.js.map +1 -1
  159. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"session-view.d.ts","sourceRoot":"","sources":["../../src/observe/session-view.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session-view.d.ts","sourceRoot":"","sources":["../../src/observe/session-view.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,EACZ,aAAa,EACb,MAAM,EACN,KAAK,EACL,QAAQ,EACR,gBAAgB,EAChB,OAAO,EACP,YAAY,EACZ,WAAW,EACX,cAAc,EACd,WAAW,EACX,WAAW,EACZ,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAA+B,KAAK,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAClF,OAAO,EAGL,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACvB,MAAM,mBAAmB,CAAC;AAO3B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AAEH,MAAM,MAAM,UAAU,GAClB;IAAE,QAAQ,CAAC,KAAK,EAAE,oBAAoB,CAAC;IAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,GACnE;IACE,QAAQ,CAAC,KAAK,EAAE,kBAAkB,CAAC;IACnC,QAAQ,CAAC,OAAO,EAAE,WAAW,GAAG,SAAS,GAAG,QAAQ,CAAC;IACrD,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC1B,GACD;IACE,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;CAC1B,GACD;IAAE,QAAQ,CAAC,KAAK,EAAE,kBAAkB,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,aAAa,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAC/F;IAAE,QAAQ,CAAC,KAAK,EAAE,kBAAkB,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAA;CAAE,GACrE;IAAE,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAAC;AAE/D,MAAM,MAAM,QAAQ;AAClB,6GAA6G;AAC3G;IAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,GAC7E;IAAE,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAAC,QAAQ,CAAC,OAAO,EAAE,gBAAgB,CAAC;IAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,GAC/F;IACE,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,4GAA4G;IAC5G,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IACxB,kIAAkI;IAClI,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,kEAAkE;IAClE,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,cAAc,EAAE,CAAC;IAC7C,4EAA4E;IAC5E,QAAQ,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,GAAG,QAAQ,GAAG,OAAO,CAAC;IACvD;;;;OAIG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B;;;;OAIG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;CAC3B,GACD;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAA;CAAE,GACxD;IACE,QAAQ,CAAC,IAAI,EAAE,aAAa,CAAC;IAC7B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC;IAC3B,0FAA0F;IAC1F,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC;IAC7B,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;CACzB,CAAC;AAEN,wFAAwF;AACxF,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,CAAC;IACtC,QAAQ,CAAC,KAAK,EAAE,SAAS,QAAQ,EAAE,CAAC;CACrC;AAED,MAAM,WAAW,QAAQ;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,2EAA2E;IAC3E,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,QAAQ,EAAE,SAAS,WAAW,EAAE,CAAC;IAC1C,kGAAkG;IAClG,QAAQ,CAAC,OAAO,CAAC,EAAE,WAAW,CAAC;CAChC;AAED,MAAM,MAAM,WAAW,GACnB;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,iBAAiB,CAAA;CAAE,GAClF,QAAQ,GACR;IAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC;IAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAA;CAAE,CAAC;AAElF,mFAAmF;AACnF,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,CAAC;IACtC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,iFAAiF;IACjF,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,WAAW;IAAG,QAAQ,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAA;CAAE;AAEpG,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,QAAQ,EAAE,SAAS,WAAW,EAAE,CAAC;IAC1C;;;OAGG;IACH,QAAQ,CAAC,aAAa,EAAE,SAAS,iBAAiB,EAAE,CAAC;IACrD,sEAAsE;IACtE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAC7B,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,iGAAiG;IACjG,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,0DAA0D;IAC1D,QAAQ,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,QAAQ,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI,CAAC;IACtC,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC;IAC7B,yJAAyJ;IACzJ,QAAQ,CAAC,eAAe,EAAE,SAAS,cAAc,EAAE,CAAC;IACpD,oEAAoE;IACpE,QAAQ,CAAC,MAAM,EAAE;QAAE,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,GAAG,IAAI,CAAC;IACzD,2EAA2E;IAC3E,QAAQ,CAAC,YAAY,EAAE,iBAAiB,CAAC;IACzC,+EAA+E;IAC/E,QAAQ,CAAC,aAAa,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3C,QAAQ,CAAC,YAAY,EAAE,WAAW,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IACxD,qHAAqH;IACrH,QAAQ,CAAC,UAAU,EAAE,WAAW,GAAG,IAAI,CAAC;CACzC;AAED,wBAAgB,kBAAkB,IAAI,WAAW,CAkBhD;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,WAAW,EACrB,MAAM,EAAE,QAAQ,EAChB,QAAQ,SAAK,GACZ,WAAW,CA4Bb;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,WAAW,EACrB,KAAK,EAAE,KAAK,EACZ,QAAQ,SAAK,GACZ,WAAW,CAKb;AAED,4GAA4G;AAC5G,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,WAAW,EACrB,KAAK,EAAE,iBAAiB,GACvB,WAAW,CAIb;AAED,sEAAsE;AACtE,wBAAgB,MAAM,CAAC,OAAO,EAAE,SAAS,QAAQ,EAAE,EAAE,QAAQ,SAAK,GAAG,WAAW,CAK/E;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,CAAC,IAAI,EAAE,WAAW,KAAK,IAAI,EACrC,MAAM,CAAC,EAAE,MAAM,GACd,WAAW,CAQb"}
@@ -21,6 +21,7 @@ export function initialSessionView() {
21
21
  conversation: initialConversation(),
22
22
  rootSessionId: undefined,
23
23
  usageByAgent: new Map(),
24
+ usageTotal: null,
24
25
  };
25
26
  }
26
27
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"session-view.js","sourceRoot":"","sources":["../../src/observe/session-view.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session-view.js","sourceRoot":"","sources":["../../src/observe/session-view.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import type { ContextUsage, QueryResult, RawEvent, SessionUsage } from "../contracts/session.js";
1
+ import type { ContextUsage, QueryResult, RawEvent, SessionGraph, SessionUsage, TokenTotals } from "../contracts/session.js";
2
2
  /** The latest model the runtime reported for the root agent; null before any. */
3
3
  export declare function modelOf(records: readonly RawEvent[], sessionId?: string): QueryResult<string | null>;
4
4
  /** The latest reasoning-effort level the runtime reported for the root agent; null before any. */
@@ -7,13 +7,32 @@ export declare function effortOf(records: readonly RawEvent[], sessionId?: strin
7
7
  export declare function serviceTierOf(records: readonly RawEvent[], sessionId?: string): QueryResult<string | null>;
8
8
  /** The latest context fullness the runtime reported for the root agent; null before any. */
9
9
  export declare function contextUsageOf(records: readonly RawEvent[], sessionId?: string): QueryResult<ContextUsage | null>;
10
+ /** One agent's latest running total. */
11
+ interface AgentTotal {
12
+ readonly agentPath: readonly string[];
13
+ readonly tokens: TokenTotals;
14
+ }
15
+ /**
16
+ * A session's usage from each agent's latest running total and, where the
17
+ * runtime reports one beyond its agents' figures (claude's `modelUsage`), its
18
+ * own session total: then the total is the runtime's, and what no agent
19
+ * accounts for is `unattributed`, the difference, never split by estimate.
20
+ * Elsewhere the agents' figures sum to the total. Shared by `usageOf` and the
21
+ * session view.
22
+ */
23
+ export declare function sessionUsageFrom(byAgent: readonly AgentTotal[], reported: TokenTotals | null): SessionUsage;
10
24
  /**
11
25
  * Session total plus a per-agent breakdown. Each agent's totals are the
12
26
  * LATEST figure its records reported (adapters resolve their runtime's
13
27
  * accounting into a running total per agent, counted from when this Session
14
28
  * opened, before the record is stamped), so the breakdown is deduplicated by
15
- * construction and sums to the total. Agents are the `agentPath`s of THIS session; derived child sessions
16
- * are not agents of it.
29
+ * construction; with the runtime's own session total, when it reports one,
30
+ * the breakdown plus `unattributed` sums to the total. Agents are the
31
+ * `agentPath`s of THIS session; derived child sessions are not agents of it.
32
+ * Given the session graph, each derived child session's total (folded from
33
+ * its own records the same way) is added once into `withChildren`, and the
34
+ * answer's `seq` covers those records too.
17
35
  */
18
- export declare function usageOf(records: readonly RawEvent[], sessionId?: string): QueryResult<SessionUsage>;
36
+ export declare function usageOf(records: readonly RawEvent[], sessionId?: string, graph?: SessionGraph): QueryResult<SessionUsage>;
37
+ export {};
19
38
  //# sourceMappingURL=usage.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"usage.d.ts","sourceRoot":"","sources":["../../src/observe/usage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,EACZ,WAAW,EACX,QAAQ,EACR,YAAY,EAEb,MAAM,yBAAyB,CAAC;AA4BjC,iFAAiF;AACjF,wBAAgB,OAAO,CAAC,OAAO,EAAE,SAAS,QAAQ,EAAE,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,WAAW,CAAC,MAAM,GAAG,IAAI,CAAC,CAYpG;AAED,kGAAkG;AAClG,wBAAgB,QAAQ,CAAC,OAAO,EAAE,SAAS,QAAQ,EAAE,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,WAAW,CAAC,MAAM,GAAG,IAAI,CAAC,CAYrG;AAED,wFAAwF;AACxF,wBAAgB,aAAa,CAAC,OAAO,EAAE,SAAS,QAAQ,EAAE,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,WAAW,CAAC,MAAM,GAAG,IAAI,CAAC,CAY1G;AAED,4FAA4F;AAC5F,wBAAgB,cAAc,CAAC,OAAO,EAAE,SAAS,QAAQ,EAAE,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,WAAW,CAAC,YAAY,GAAG,IAAI,CAAC,CAYjH;AAED;;;;;;;GAOG;AACH,wBAAgB,OAAO,CAAC,OAAO,EAAE,SAAS,QAAQ,EAAE,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,WAAW,CAAC,YAAY,CAAC,CAyBnG"}
1
+ {"version":3,"file":"usage.d.ts","sourceRoot":"","sources":["../../src/observe/usage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,YAAY,EACZ,WAAW,EACX,QAAQ,EACR,YAAY,EACZ,YAAY,EACZ,WAAW,EACZ,MAAM,yBAAyB,CAAC;AA6BjC,iFAAiF;AACjF,wBAAgB,OAAO,CAAC,OAAO,EAAE,SAAS,QAAQ,EAAE,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,WAAW,CAAC,MAAM,GAAG,IAAI,CAAC,CAYpG;AAED,kGAAkG;AAClG,wBAAgB,QAAQ,CAAC,OAAO,EAAE,SAAS,QAAQ,EAAE,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,WAAW,CAAC,MAAM,GAAG,IAAI,CAAC,CAYrG;AAED,wFAAwF;AACxF,wBAAgB,aAAa,CAAC,OAAO,EAAE,SAAS,QAAQ,EAAE,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,WAAW,CAAC,MAAM,GAAG,IAAI,CAAC,CAY1G;AAED,4FAA4F;AAC5F,wBAAgB,cAAc,CAAC,OAAO,EAAE,SAAS,QAAQ,EAAE,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,WAAW,CAAC,YAAY,GAAG,IAAI,CAAC,CAYjH;AAED,wCAAwC;AACxC,UAAU,UAAU;IAClB,QAAQ,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,CAAC;IACtC,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;CAC9B;AAYD;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,SAAS,UAAU,EAAE,EAAE,QAAQ,EAAE,WAAW,GAAG,IAAI,GAAG,YAAY,CAgB3G;AAkBD;;;;;;;;;;;GAWG;AACH,wBAAgB,OAAO,CAAC,OAAO,EAAE,SAAS,QAAQ,EAAE,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,YAAY,GAAG,WAAW,CAAC,YAAY,CAAC,CAkCzH"}
@@ -1,4 +1,4 @@
1
- import { addTokens, noTokens } from "../shared/token-totals.js";
1
+ import { addTokens, noTokens, subtractTokens } from "../shared/token-totals.js";
2
2
  /**
3
3
  * Query = projection over the stream. Model, token usage and context
4
4
  * fullness are folds over seq-carrying records, never a second source of
@@ -10,7 +10,8 @@ import { addTokens, noTokens } from "../shared/token-totals.js";
10
10
  * is a separate session, not a sub-agent of this one, so its figures are NOT
11
11
  * folded into this session's answers. When `sessionId` is given, records of
12
12
  * other sessions are skipped; the session graph says where the child came
13
- * from and the child's own records hold its usage. Observed live on codex
13
+ * from and the child's own records hold its usage, which only `usageOf`'s
14
+ * `withChildren` adds, apart from the session's own figures. Observed live on codex
14
15
  * 0.149.0: both threads report `thread/tokenUsage/updated` with cumulative
15
16
  * totals on the parent's connection, and without this scope the child's
16
17
  * figure overwrote the root's under the same `agentPath []` key.
@@ -93,40 +94,98 @@ export function contextUsageOf(records, sessionId) {
93
94
  }
94
95
  return { value, seq };
95
96
  }
97
+ function hasTokens(tokens) {
98
+ return tokens.input > 0 || tokens.output > 0;
99
+ }
100
+ /**
101
+ * A session's usage from each agent's latest running total and, where the
102
+ * runtime reports one beyond its agents' figures (claude's `modelUsage`), its
103
+ * own session total: then the total is the runtime's, and what no agent
104
+ * accounts for is `unattributed`, the difference, never split by estimate.
105
+ * Elsewhere the agents' figures sum to the total. Shared by `usageOf` and the
106
+ * session view.
107
+ */
108
+ export function sessionUsageFrom(byAgent, reported) {
109
+ if (byAgent.length === 0 && reported === null) {
110
+ // Nothing reported yet (or a runtime whose interface never carries token
111
+ // totals): null, never a guessed zero.
112
+ return { total: null };
113
+ }
114
+ // A cache part is in the total once any agent reported it, summed over those that did.
115
+ const attributed = byAgent.reduce((sum, entry) => addTokens(sum, entry.tokens), noTokens);
116
+ const remainder = reported === null ? null : subtractTokens(reported, attributed);
117
+ const unattributed = remainder !== null && hasTokens(remainder) ? remainder : null;
118
+ const onlyRoot = byAgent.length <= 1 && byAgent.every((entry) => entry.agentPath.length === 0);
119
+ return {
120
+ total: reported ?? attributed,
121
+ ...(onlyRoot && unattributed === null ? {} : { byAgent }),
122
+ ...(unattributed === null ? {} : { unattributed }),
123
+ };
124
+ }
125
+ /** Every session derived from `sessionId` in the graph, nested ones too, each once; never `sessionId` itself. */
126
+ function derivedFrom(graph, sessionId) {
127
+ const found = new Set();
128
+ const queue = [sessionId];
129
+ while (queue.length > 0) {
130
+ const parent = queue.shift();
131
+ for (const edge of graph.edges) {
132
+ if (edge.parent === parent && edge.child !== sessionId && !found.has(edge.child)) {
133
+ found.add(edge.child);
134
+ queue.push(edge.child);
135
+ }
136
+ }
137
+ }
138
+ return found;
139
+ }
96
140
  /**
97
141
  * Session total plus a per-agent breakdown. Each agent's totals are the
98
142
  * LATEST figure its records reported (adapters resolve their runtime's
99
143
  * accounting into a running total per agent, counted from when this Session
100
144
  * opened, before the record is stamped), so the breakdown is deduplicated by
101
- * construction and sums to the total. Agents are the `agentPath`s of THIS session; derived child sessions
102
- * are not agents of it.
145
+ * construction; with the runtime's own session total, when it reports one,
146
+ * the breakdown plus `unattributed` sums to the total. Agents are the
147
+ * `agentPath`s of THIS session; derived child sessions are not agents of it.
148
+ * Given the session graph, each derived child session's total (folded from
149
+ * its own records the same way) is added once into `withChildren`, and the
150
+ * answer's `seq` covers those records too.
103
151
  */
104
- export function usageOf(records, sessionId) {
105
- const latest = new Map();
152
+ export function usageOf(records, sessionId, graph) {
153
+ const children = sessionId === undefined || graph === undefined ? new Set() : derivedFrom(graph, sessionId);
154
+ const sessions = new Map();
106
155
  let seq = -1;
107
156
  for (const record of records) {
108
- if (!inSession(record, sessionId)) {
157
+ if (!inSession(record, sessionId) && !children.has(record.sessionId)) {
109
158
  continue;
110
159
  }
111
160
  seq = record.seq;
112
161
  if (record.kind !== "frame") {
113
162
  continue;
114
163
  }
164
+ // Unscoped, every session folds into one (the collision the scope exists to avoid).
165
+ const key = sessionId === undefined ? "" : record.sessionId;
166
+ const session = sessions.get(key) ?? { agents: new Map(), total: null };
167
+ sessions.set(key, session);
115
168
  for (const event of record.body.events) {
116
- if (event.kind === "usage" && event.usage.tokens !== undefined) {
117
- latest.set(pathKey(record.agentPath), { agentPath: record.agentPath, tokens: event.usage.tokens });
169
+ if (event.kind !== "usage") {
170
+ continue;
171
+ }
172
+ if (event.usage.tokens !== undefined) {
173
+ session.agents.set(pathKey(record.agentPath), { agentPath: record.agentPath, tokens: event.usage.tokens });
174
+ }
175
+ if (event.usage.total !== undefined) {
176
+ session.total = event.usage.total;
118
177
  }
119
178
  }
120
179
  }
121
- const byAgent = [...latest.values()];
122
- if (byAgent.length === 0) {
123
- // Nothing reported yet (or a runtime whose interface never carries token
124
- // totals): null, never a guessed zero.
125
- return { value: { total: null }, seq };
180
+ const usageOfSession = (id) => {
181
+ const session = sessions.get(id);
182
+ return session === undefined ? { total: null } : sessionUsageFrom([...session.agents.values()], session.total);
183
+ };
184
+ const own = usageOfSession(sessionId ?? "");
185
+ const childTotals = [...children].flatMap((child) => usageOfSession(child).total ?? []);
186
+ if (own.total === null || childTotals.length === 0) {
187
+ return { value: own, seq };
126
188
  }
127
- // A cache part is in the total once any agent reported it, summed over those that did.
128
- const total = byAgent.reduce((sum, entry) => addTokens(sum, entry.tokens), noTokens);
129
- const onlyRoot = byAgent.length <= 1 && byAgent.every((entry) => entry.agentPath.length === 0);
130
- return { value: onlyRoot ? { total } : { total, byAgent }, seq };
189
+ return { value: { ...own, withChildren: childTotals.reduce((sum, tokens) => addTokens(sum, tokens), own.total) }, seq };
131
190
  }
132
191
  //# sourceMappingURL=usage.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"usage.js","sourceRoot":"","sources":["../../src/observe/usage.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"usage.js","sourceRoot":"","sources":["../../src/observe/usage.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../../src/runtimes/antigravity/session.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACxE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAEjE,OAAO,EAAc,KAAK,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AACjF,OAAO,EAAY,KAAK,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAIjE;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,GAAE,MAAM,CAAC,QAA2B,GAAG,SAAS,MAAM,EAAE,CAElG;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,UAAU,GAAG,OAAO,CAUrE;AAED,eAAO,MAAM,gCAAgC,EAAE,qBAI9C,CAAC;AAEF;;;;;;;;GAQG;AACH,wBAAgB,+BAA+B,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI,CAK7E;AAUD,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI,CAKpE;AAED,eAAO,MAAM,qBAAqB,EAAE,iBAgCnC,CAAC;AAEF,eAAO,MAAM,kBAAkB,mDAAoC,CAAC"}
1
+ {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../../src/runtimes/antigravity/session.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACxE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAEjE,OAAO,EAAc,KAAK,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AACjF,OAAO,EAAY,KAAK,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAIjE;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,GAAE,MAAM,CAAC,QAA2B,GAAG,SAAS,MAAM,EAAE,CAElG;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,UAAU,GAAG,OAAO,CAUrE;AAED,eAAO,MAAM,gCAAgC,EAAE,qBAI9C,CAAC;AAEF;;;;;;;;GAQG;AACH,wBAAgB,+BAA+B,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI,CAK7E;AAUD,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,cAAc,GAAG,IAAI,CAKpE;AAED,eAAO,MAAM,qBAAqB,EAAE,iBA+BnC,CAAC;AAEF,eAAO,MAAM,kBAAkB,mDAAoC,CAAC"}
@@ -83,9 +83,9 @@ export const antigravityAcpProfile = {
83
83
  modelViaConfigOption: true,
84
84
  // A resumed session comes back in mode `default`, so yolo is applied on
85
85
  // every open, not only on `session/new`.
86
- configureSession: async ({ connection, sessionId, response, requestOptions }) => {
86
+ configureSession: async ({ request, sessionId, response }) => {
87
87
  if (supportsAntigravityYolo(response)) {
88
- await connection.agent.request("session/set_mode", { sessionId, modeId: "yolo" }, requestOptions);
88
+ await request("session/set_mode", { sessionId, modeId: "yolo" });
89
89
  }
90
90
  },
91
91
  };
@@ -1 +1 @@
1
- {"version":3,"file":"session.js","sourceRoot":"","sources":["../../../src/runtimes/antigravity/session.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session.js","sourceRoot":"","sources":["../../../src/runtimes/antigravity/session.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,6 @@
1
- import type { TurnOutcome } from "../../contracts/session.js";
1
+ import type { UtcInstant } from "../../contracts/account-usage.js";
2
+ import type { FailedTurn } from "../../contracts/session.js";
3
+ import { type JsonRecord } from "../../shared/json.js";
2
4
  /** What claude's error frames say about one failed turn. */
3
5
  export interface ClaudeFailureFacts {
4
6
  /** The `error` of the turn's last root `assistant` frame. */
@@ -7,9 +9,28 @@ export interface ClaudeFailureFacts {
7
9
  readonly status: number | null;
8
10
  /** The result's `terminal_reason`. */
9
11
  readonly terminalReason: string | null;
12
+ /** The reset of the limit claude's latest `rate_limit_event` says refuses requests (`claudeLimitReset`); null when none does. */
13
+ readonly limitResetsAt: UtcInstant | null;
10
14
  }
15
+ /**
16
+ * When the subscription limit claude reports refusing requests resets: a
17
+ * `rate_limit_event`'s `rate_limit_info` (Agent SDK 0.3.295
18
+ * `SDKRateLimitInfo`, [sym] 2.1.289) with `status: "rejected"` and its
19
+ * `resetsAt`, unix seconds. claude sends one whenever its view of the
20
+ * limits changes, a refused request (a 429 carrying the
21
+ * `anthropic-ratelimit-unified-*` headers) included, before that request's
22
+ * error frame and the turn's `result`; an unchanged rejection need not be
23
+ * sent again, so the latest event stands until another replaces it. Null
24
+ * when the limit refuses nothing (`allowed`, `allowed_warning`), when paid
25
+ * overage still takes the requests (`overageStatus` allowed or
26
+ * allowed_warning), or when the event names no reset: claude also marks a
27
+ * subscriber's 429 without limit headers `rejected`, with no reset, and
28
+ * words that one a temporary capacity issue. `overageResetsAt` is not read.
29
+ * The time is kept as claude sent it, so it may already be past when a
30
+ * later turn fails; no clock is read here. From the SDK types and the
31
+ * binary only: oar never triggers a limit on a real account to observe it.
32
+ */
33
+ export declare function claudeLimitReset(info: JsonRecord | null): UtcInstant | null;
11
34
  /** Classify a failed claude turn whose `result` says `reason`. */
12
- export declare function claudeFailure(reason: string, facts: ClaudeFailureFacts): Extract<TurnOutcome, {
13
- kind: "failed";
14
- }>;
35
+ export declare function claudeFailure(reason: string, facts: ClaudeFailureFacts): FailedTurn;
15
36
  //# sourceMappingURL=failure.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"failure.d.ts","sourceRoot":"","sources":["../../../src/runtimes/claude/failure.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAsB9D,4DAA4D;AAC5D,MAAM,WAAW,kBAAkB;IACjC,6DAA6D;IAC7D,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,uFAAuF;IACvF,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,sCAAsC;IACtC,QAAQ,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;CACxC;AAED,kEAAkE;AAClE,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAAC,WAAW,EAAE;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,CAAC,CAsBjH"}
1
+ {"version":3,"file":"failure.d.ts","sourceRoot":"","sources":["../../../src/runtimes/claude/failure.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAC;AACnE,OAAO,KAAK,EAAE,UAAU,EAAgB,MAAM,4BAA4B,CAAC;AAG3E,OAAO,EAAY,KAAK,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAwBjE,4DAA4D;AAC5D,MAAM,WAAW,kBAAkB;IACjC,6DAA6D;IAC7D,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,uFAAuF;IACvF,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,sCAAsC;IACtC,QAAQ,CAAC,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IACvC,iIAAiI;IACjI,QAAQ,CAAC,aAAa,EAAE,UAAU,GAAG,IAAI,CAAC;CAC3C;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,UAAU,GAAG,IAAI,GAAG,UAAU,GAAG,IAAI,CAM3E;AAED,kEAAkE;AAClE,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,kBAAkB,GAAG,UAAU,CAyBnF"}
@@ -1,4 +1,6 @@
1
1
  import { anthropicLimitText, failureFromStatus } from "../../shared/failure-class.js";
2
+ import { utcInstantFromDate } from "../../shared/instant.js";
3
+ import { asNumber } from "../../shared/json.js";
2
4
  /*
3
5
  * A failed claude turn, classified from what claude says
4
6
  * (docs/spec/runtime-matrix.md#claude): the category on the turn's error
@@ -7,6 +9,9 @@ import { anthropicLimitText, failureFromStatus } from "../../shared/failure-clas
7
9
  * declared categories no run produced (`oauth_org_not_allowed`,
8
10
  * `account_on_hold`, `verification_required`, `overloaded`,
9
11
  * `max_output_tokens`, `cloud_credential_error`) fall through to the status.
12
+ * A `rate_limit` while claude's latest `rate_limit_event` says a
13
+ * subscription limit refuses requests until a named reset is `quota` with
14
+ * that `resetsAt` (`claudeLimitReset`); without one it stays `rate_limited`.
10
15
  */
11
16
  /** The categories observed, by what they mean; `server_error` is decided by its status (a 529 is overload). */
12
17
  const CATEGORIES = {
@@ -16,20 +21,49 @@ const CATEGORIES = {
16
21
  billing_error: "billing",
17
22
  invalid_request: "invalid_request",
18
23
  };
24
+ /**
25
+ * When the subscription limit claude reports refusing requests resets: a
26
+ * `rate_limit_event`'s `rate_limit_info` (Agent SDK 0.3.295
27
+ * `SDKRateLimitInfo`, [sym] 2.1.289) with `status: "rejected"` and its
28
+ * `resetsAt`, unix seconds. claude sends one whenever its view of the
29
+ * limits changes, a refused request (a 429 carrying the
30
+ * `anthropic-ratelimit-unified-*` headers) included, before that request's
31
+ * error frame and the turn's `result`; an unchanged rejection need not be
32
+ * sent again, so the latest event stands until another replaces it. Null
33
+ * when the limit refuses nothing (`allowed`, `allowed_warning`), when paid
34
+ * overage still takes the requests (`overageStatus` allowed or
35
+ * allowed_warning), or when the event names no reset: claude also marks a
36
+ * subscriber's 429 without limit headers `rejected`, with no reset, and
37
+ * words that one a temporary capacity issue. `overageResetsAt` is not read.
38
+ * The time is kept as claude sent it, so it may already be past when a
39
+ * later turn fails; no clock is read here. From the SDK types and the
40
+ * binary only: oar never triggers a limit on a real account to observe it.
41
+ */
42
+ export function claudeLimitReset(info) {
43
+ if (info?.status !== "rejected" || info.overageStatus === "allowed" || info.overageStatus === "allowed_warning") {
44
+ return null;
45
+ }
46
+ const seconds = asNumber(info.resetsAt);
47
+ return seconds === null ? null : utcInstantFromDate(new Date(seconds * 1000));
48
+ }
19
49
  /** Classify a failed claude turn whose `result` says `reason`. */
20
50
  export function claudeFailure(reason, facts) {
21
- const { category, status, terminalReason } = facts;
51
+ const { category, status, terminalReason, limitResetsAt } = facts;
22
52
  const withStatus = status === null ? {} : { status };
23
- const failed = (failure, extra = {}) => ({ kind: "failed", reason, failure, ...withStatus, ...extra });
53
+ const failed = (failure) => ({ kind: "failed", reason, failure, ...withStatus });
24
54
  if (terminalReason === "prompt_too_long") {
25
55
  return failed("input_too_large");
26
56
  }
27
57
  if (category === "authentication_failed") {
28
58
  // No request sent: no credential at all ("Not logged in"). A 401: refused.
29
59
  if (status === null) {
30
- return failed("auth", { credential: "missing" });
60
+ return { kind: "failed", reason, failure: "auth", credential: "missing" };
31
61
  }
32
- return failed("auth", status === 401 ? { credential: "rejected" } : {});
62
+ return { kind: "failed", reason, failure: "auth", status, ...(status === 401 ? { credential: "rejected" } : {}) };
63
+ }
64
+ if (category === "rate_limit" && limitResetsAt !== null) {
65
+ // A subscription limit refuses requests until a reset claude named: a usage limit, not throttling.
66
+ return { kind: "failed", reason, failure: "quota", ...withStatus, resetsAt: limitResetsAt };
33
67
  }
34
68
  const named = category === null ? undefined : CATEGORIES[category];
35
69
  if (named !== undefined) {
@@ -1 +1 @@
1
- {"version":3,"file":"failure.js","sourceRoot":"","sources":["../../../src/runtimes/claude/failure.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAmB,MAAM,+BAA+B,CAAC;AAEvG;;;;;;;;GAQG;AAEH,+GAA+G;AAC/G,MAAM,UAAU,GAA6D;IAC3E,qBAAqB,EAAE,MAAM;IAC7B,eAAe,EAAE,mBAAmB;IACpC,UAAU,EAAE,cAAc;IAC1B,aAAa,EAAE,SAAS;IACxB,eAAe,EAAE,iBAAiB;CACnC,CAAC;AAYF,kEAAkE;AAClE,MAAM,UAAU,aAAa,CAAC,MAAc,EAAE,KAAyB;IACrE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,cAAc,EAAE,GAAG,KAAK,CAAC;IACnD,MAAM,UAAU,GAAG,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC;IACrD,MAAM,MAAM,GAAG,CAAC,OAA8B,EAAE,QAAqC,EAAE,EAA4C,EAAE,CACnI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,UAAU,EAAE,GAAG,KAAK,EAAE,CAAC,CAAC;IACjE,IAAI,cAAc,KAAK,iBAAiB,EAAE,CAAC;QACzC,OAAO,MAAM,CAAC,iBAAiB,CAAC,CAAC;IACnC,CAAC;IACD,IAAI,QAAQ,KAAK,uBAAuB,EAAE,CAAC;QACzC,2EAA2E;QAC3E,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;YAAC,OAAO,MAAM,CAAC,MAAM,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,CAAC,CAAC;QAAC,CAAC;QAC1E,OAAO,MAAM,CAAC,MAAM,EAAE,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAC1E,CAAC;IACD,MAAM,KAAK,GAAG,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;IACnE,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;IACvB,CAAC;IACD,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;QACpB,OAAO,MAAM,CAAC,SAAS,CAAC,CAAC;IAC3B,CAAC;IACD,oFAAoF;IACpF,OAAO,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,kBAAkB,CAAC,MAAM,CAAC,IAAI,iBAAiB,CAAC,CAAC,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC;AAC9G,CAAC"}
1
+ {"version":3,"file":"failure.js","sourceRoot":"","sources":["../../../src/runtimes/claude/failure.ts"],"names":[],"mappings":"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"}
@@ -1,13 +1,23 @@
1
1
  import type { SessionOptions } from "../../contracts/session.js";
2
- import type { JsonRecord } from "../../shared/json.js";
2
+ import { type JsonRecord } from "../../shared/json.js";
3
3
  import type { ClaudeProcess } from "./launch.js";
4
+ import { type ClaudeUsageBaseline } from "./token-usage.js";
4
5
  interface OpenSettings {
5
- /** True only for private get_settings, whose credentials must not enter records. */
6
+ /** True for private readbacks, whose account details and configuration must not enter records. */
6
7
  consume(message: JsonRecord): boolean;
7
8
  exited(code: number | null): void;
8
9
  confirm(options: SessionOptions): Promise<void>;
10
+ /**
11
+ * A resume's token baseline: claude's `get_usage` `session.model_usage`,
12
+ * the running total the resumed process continues (token-usage.ts). Never
13
+ * throws or stops the process: a timeout, an exit, an error answer or one
14
+ * without session totals is an unknown baseline. The answer also carries
15
+ * account data (subscription, rate-limit windows), so it stays private
16
+ * like the others.
17
+ */
18
+ usageBaseline(): Promise<ClaudeUsageBaseline>;
9
19
  }
10
- /** Bounded native readbacks at open. Initialization remains in the ordinary projection stream. */
20
+ /** Bounded native readbacks at open, consumed before the ordinary projection stream. */
11
21
  export declare function claudeOpenSettings(child: ClaudeProcess): OpenSettings;
12
22
  export {};
13
23
  //# sourceMappingURL=open-settings.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"open-settings.d.ts","sourceRoot":"","sources":["../../../src/runtimes/claude/open-settings.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAUjD,UAAU,YAAY;IACpB,oFAAoF;IACpF,OAAO,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC;IACtC,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAAC;IAClC,OAAO,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACjD;AAED,kGAAkG;AAClG,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,aAAa,GAAG,YAAY,CA2CrE"}
1
+ {"version":3,"file":"open-settings.d.ts","sourceRoot":"","sources":["../../../src/runtimes/claude/open-settings.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAY,KAAK,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAGjE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAGjD,OAAO,EAAuB,KAAK,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAqCjF,UAAU,YAAY;IACpB,kGAAkG;IAClG,OAAO,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC;IACtC,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAAC;IAClC,OAAO,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAChD;;;;;;;OAOG;IACH,aAAa,IAAI,OAAO,CAAC,mBAAmB,CAAC,CAAC;CAC/C;AAED,wFAAwF;AACxF,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,aAAa,GAAG,YAAY,CA+ErE"}
@@ -1,32 +1,78 @@
1
+ import { sessionCredentialRedactor } from "../../shared/credential-redactor.js";
1
2
  import { randomUUID } from "node:crypto";
3
+ import { asRecord } from "../../shared/json.js";
4
+ import { nativeErrorCause } from "../../shared/native-error.js";
2
5
  import { CLAUDE_EFFORT_READBACK_MS, claudeControlResponseId, claudeEffortRefusal, claudeSettingsRequest } from "./effort.js";
3
6
  import { claudeServiceTierRefusal } from "./service-tier.js";
4
- /** Bounded native readbacks at open. Initialization remains in the ordinary projection stream. */
7
+ import { claudeUsageBaseline } from "./token-usage.js";
8
+ function failedInitialization(message) {
9
+ return message.type === "result" && message.subtype === "error_during_execution";
10
+ }
11
+ function refusalFor(answer, option, requested, options) {
12
+ if (answer instanceof Error) {
13
+ return `${answer.message}, so ${option} ${requested} cannot be confirmed`;
14
+ }
15
+ if (failedInitialization(answer)) {
16
+ const errors = Array.isArray(answer.errors) ? answer.errors.filter((error) => typeof error === "string") : [];
17
+ return errors.join("\n") || "claude initialization failed (result/error_during_execution)";
18
+ }
19
+ if (option === "effort") {
20
+ return claudeEffortRefusal(requested, answer);
21
+ }
22
+ if (option === "serviceTier") {
23
+ return claudeServiceTierRefusal(requested, answer);
24
+ }
25
+ const response = asRecord(answer.response);
26
+ if (response?.subtype !== "success") {
27
+ return `claude could not resume ${requested} (initialize: ${typeof response?.error === "string" ? response.error : "no success answer"})`;
28
+ }
29
+ return options.serviceTier === undefined ? null : claudeServiceTierRefusal(options.serviceTier, answer);
30
+ }
31
+ /** Successful readbacks contain private configuration or account details, never error diagnostics. */
32
+ function failureNative(answer) {
33
+ if (answer instanceof Error) {
34
+ return undefined;
35
+ }
36
+ if (failedInitialization(answer)) {
37
+ return answer;
38
+ }
39
+ const response = asRecord(answer.response);
40
+ return response?.subtype === "error" ? response : undefined;
41
+ }
42
+ /** Bounded native readbacks at open, consumed before the ordinary projection stream. */
5
43
  export function claudeOpenSettings(child) {
6
44
  let pending = null;
7
45
  const privateIds = new Set();
8
- const lifetime = { exited: false, code: null };
46
+ const lifetime = { exited: false, code: null, failure: null };
47
+ let opening = true;
9
48
  const exitError = (method) => new Error(`claude exited (code ${String(lifetime.code)}) before answering ${method}`);
10
- const confirm = async (method, option, requested) => {
49
+ const confirm = async (method, option, options) => {
50
+ const requested = options[option];
51
+ if (requested === undefined) {
52
+ return;
53
+ }
54
+ const { redact } = sessionCredentialRedactor(options);
11
55
  const { promise, resolve } = Promise.withResolvers();
12
56
  const id = `oar-${option}-${randomUUID()}`;
13
57
  pending = { id, method, settle: resolve };
14
- if (method === "get_settings") {
15
- privateIds.add(id);
16
- }
58
+ privateIds.add(id);
17
59
  const timer = setTimeout(() => { resolve(new Error(`claude did not answer ${method} within ${String(CLAUDE_EFFORT_READBACK_MS)} ms`)); }, CLAUDE_EFFORT_READBACK_MS);
18
60
  try {
19
- if (lifetime.exited) {
61
+ if (lifetime.failure !== null) {
62
+ resolve(lifetime.failure);
63
+ }
64
+ else if (lifetime.exited) {
20
65
  resolve(exitError(method));
21
66
  }
22
67
  else {
23
68
  child.write(method === "get_settings" ? claudeSettingsRequest(id) : `${JSON.stringify({ type: "control_request", request_id: id, request: { subtype: method } })}\n`);
24
69
  }
25
70
  const answer = await promise;
26
- const refusal = answer instanceof Error ? `${answer.message}, so ${option} ${requested} cannot be confirmed`
27
- : (option === "effort" ? claudeEffortRefusal(requested, answer) : claudeServiceTierRefusal(requested, answer));
71
+ const refusal = refusalFor(answer, option, requested, options);
28
72
  if (refusal !== null) {
29
- throw new Error(refusal);
73
+ const native = failureNative(answer);
74
+ const cause = native === undefined ? undefined : nativeErrorCause(method, native, redact);
75
+ throw new Error(redact(refusal), cause === undefined ? undefined : { cause });
30
76
  }
31
77
  }
32
78
  catch (error) {
@@ -41,6 +87,10 @@ export function claudeOpenSettings(child) {
41
87
  };
42
88
  return {
43
89
  consume(message) {
90
+ if (opening && failedInitialization(message)) {
91
+ lifetime.failure = message;
92
+ pending?.settle(message);
93
+ }
44
94
  const id = claudeControlResponseId(message);
45
95
  if (pending !== null && id === pending.id) {
46
96
  pending.settle(message);
@@ -54,12 +104,42 @@ export function claudeOpenSettings(child) {
54
104
  pending.settle(exitError(pending.method));
55
105
  }
56
106
  },
107
+ async usageBaseline() {
108
+ if (lifetime.exited) {
109
+ return { kind: "unknown" };
110
+ }
111
+ const { promise, resolve } = Promise.withResolvers();
112
+ const id = `oar-usage-${randomUUID()}`;
113
+ pending = { id, method: "get_usage", settle: resolve };
114
+ privateIds.add(id);
115
+ const timer = setTimeout(() => { resolve(new Error(`claude did not answer get_usage within ${String(CLAUDE_EFFORT_READBACK_MS)} ms`)); }, CLAUDE_EFFORT_READBACK_MS);
116
+ try {
117
+ // skip_behaviors: the answer's local-transcript scan is not needed.
118
+ child.write(`${JSON.stringify({ type: "control_request", request_id: id, request: { subtype: "get_usage", skip_behaviors: true } })}\n`);
119
+ return claudeUsageBaseline(await promise);
120
+ }
121
+ finally {
122
+ clearTimeout(timer);
123
+ pending = null;
124
+ }
125
+ },
57
126
  async confirm(options) {
58
- if (options.effort !== undefined) {
59
- await confirm("get_settings", "effort", options.effort);
127
+ try {
128
+ // Missing resumes report a result error and exit without an initialize
129
+ // answer. Confirm that handshake before any settings readback.
130
+ if (options.resume !== undefined) {
131
+ await confirm("initialize", "resume", options);
132
+ }
133
+ if (options.effort !== undefined) {
134
+ await confirm("get_settings", "effort", options);
135
+ }
136
+ if (options.serviceTier !== undefined && options.resume === undefined) {
137
+ await confirm("initialize", "serviceTier", options);
138
+ }
60
139
  }
61
- if (options.serviceTier !== undefined) {
62
- await confirm("initialize", "serviceTier", options.serviceTier);
140
+ finally {
141
+ opening = false;
142
+ lifetime.failure = null;
63
143
  }
64
144
  },
65
145
  };