@botiverse/oar 0.49.0 → 0.51.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 (180) hide show
  1. package/README.md +32 -2
  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 +2 -1
  5. package/dist/contracts/index.d.ts.map +1 -1
  6. package/dist/contracts/index.js +1 -0
  7. package/dist/contracts/index.js.map +1 -1
  8. package/dist/contracts/records.d.ts +8 -10
  9. package/dist/contracts/records.d.ts.map +1 -1
  10. package/dist/contracts/session-not-found-error.d.ts +21 -0
  11. package/dist/contracts/session-not-found-error.d.ts.map +1 -0
  12. package/dist/contracts/session-not-found-error.js +18 -0
  13. package/dist/contracts/session-not-found-error.js.map +1 -0
  14. package/dist/contracts/session-options.d.ts +24 -7
  15. package/dist/contracts/session-options.d.ts.map +1 -1
  16. package/dist/contracts/session.d.ts +15 -3
  17. package/dist/contracts/session.d.ts.map +1 -1
  18. package/dist/observe/failure-advice.d.ts +11 -4
  19. package/dist/observe/failure-advice.d.ts.map +1 -1
  20. package/dist/observe/failure-advice.js +1 -1
  21. package/dist/observe/failure-advice.js.map +1 -1
  22. package/dist/observe/session-view-events.d.ts.map +1 -1
  23. package/dist/observe/session-view-events.js +3 -0
  24. package/dist/observe/session-view-events.js.map +1 -1
  25. package/dist/observe/session-view-fold.d.ts +2 -1
  26. package/dist/observe/session-view-fold.d.ts.map +1 -1
  27. package/dist/observe/session-view-fold.js +4 -7
  28. package/dist/observe/session-view-fold.js.map +1 -1
  29. package/dist/observe/session-view.d.ts +2 -0
  30. package/dist/observe/session-view.d.ts.map +1 -1
  31. package/dist/observe/session-view.js +1 -0
  32. package/dist/observe/session-view.js.map +1 -1
  33. package/dist/observe/usage.d.ts +23 -4
  34. package/dist/observe/usage.d.ts.map +1 -1
  35. package/dist/observe/usage.js +77 -18
  36. package/dist/observe/usage.js.map +1 -1
  37. package/dist/runtimes/antigravity/session.js +3 -2
  38. package/dist/runtimes/antigravity/session.js.map +1 -1
  39. package/dist/runtimes/claude/failure.d.ts +25 -4
  40. package/dist/runtimes/claude/failure.d.ts.map +1 -1
  41. package/dist/runtimes/claude/failure.js +38 -4
  42. package/dist/runtimes/claude/failure.js.map +1 -1
  43. package/dist/runtimes/claude/open-settings.d.ts +13 -3
  44. package/dist/runtimes/claude/open-settings.d.ts.map +1 -1
  45. package/dist/runtimes/claude/open-settings.js +102 -14
  46. package/dist/runtimes/claude/open-settings.js.map +1 -1
  47. package/dist/runtimes/claude/projection.d.ts +18 -3
  48. package/dist/runtimes/claude/projection.d.ts.map +1 -1
  49. package/dist/runtimes/claude/projection.js +29 -22
  50. package/dist/runtimes/claude/projection.js.map +1 -1
  51. package/dist/runtimes/claude/session.d.ts.map +1 -1
  52. package/dist/runtimes/claude/session.js +16 -11
  53. package/dist/runtimes/claude/session.js.map +1 -1
  54. package/dist/runtimes/claude/token-usage.d.ts +59 -0
  55. package/dist/runtimes/claude/token-usage.d.ts.map +1 -0
  56. package/dist/runtimes/claude/token-usage.js +135 -0
  57. package/dist/runtimes/claude/token-usage.js.map +1 -0
  58. package/dist/runtimes/codex/app-server-client.d.ts.map +1 -1
  59. package/dist/runtimes/codex/app-server-client.js +11 -8
  60. package/dist/runtimes/codex/app-server-client.js.map +1 -1
  61. package/dist/runtimes/codex/failure.d.ts +2 -4
  62. package/dist/runtimes/codex/failure.d.ts.map +1 -1
  63. package/dist/runtimes/codex/open.d.ts.map +1 -1
  64. package/dist/runtimes/codex/open.js +3 -2
  65. package/dist/runtimes/codex/open.js.map +1 -1
  66. package/dist/runtimes/codex/rpc-control.d.ts +2 -2
  67. package/dist/runtimes/codex/rpc-control.d.ts.map +1 -1
  68. package/dist/runtimes/codex/rpc-control.js +13 -2
  69. package/dist/runtimes/codex/rpc-control.js.map +1 -1
  70. package/dist/runtimes/codex/session.d.ts.map +1 -1
  71. package/dist/runtimes/codex/session.js +6 -7
  72. package/dist/runtimes/codex/session.js.map +1 -1
  73. package/dist/runtimes/cursor/failure.d.ts +2 -0
  74. package/dist/runtimes/cursor/failure.d.ts.map +1 -1
  75. package/dist/runtimes/cursor/failure.js +17 -0
  76. package/dist/runtimes/cursor/failure.js.map +1 -1
  77. package/dist/runtimes/cursor/model.d.ts.map +1 -1
  78. package/dist/runtimes/cursor/model.js +9 -2
  79. package/dist/runtimes/cursor/model.js.map +1 -1
  80. package/dist/runtimes/grok/failure.js.map +1 -1
  81. package/dist/runtimes/grok/session.d.ts.map +1 -1
  82. package/dist/runtimes/grok/session.js +1 -0
  83. package/dist/runtimes/grok/session.js.map +1 -1
  84. package/dist/runtimes/kimi/session.d.ts.map +1 -1
  85. package/dist/runtimes/kimi/session.js +4 -2
  86. package/dist/runtimes/kimi/session.js.map +1 -1
  87. package/dist/runtimes/opencode/session.d.ts.map +1 -1
  88. package/dist/runtimes/opencode/session.js +5 -2
  89. package/dist/runtimes/opencode/session.js.map +1 -1
  90. package/dist/runtimes/pi/auth.d.ts +4 -7
  91. package/dist/runtimes/pi/auth.d.ts.map +1 -1
  92. package/dist/runtimes/pi/auth.js +2 -12
  93. package/dist/runtimes/pi/auth.js.map +1 -1
  94. package/dist/runtimes/pi/catalog.d.ts +3 -6
  95. package/dist/runtimes/pi/catalog.d.ts.map +1 -1
  96. package/dist/runtimes/pi/catalog.js +3 -11
  97. package/dist/runtimes/pi/catalog.js.map +1 -1
  98. package/dist/runtimes/pi/credentials.d.ts +6 -0
  99. package/dist/runtimes/pi/credentials.d.ts.map +1 -0
  100. package/dist/runtimes/pi/credentials.js +17 -0
  101. package/dist/runtimes/pi/credentials.js.map +1 -0
  102. package/dist/runtimes/pi/facade-runtime.d.ts +20 -0
  103. package/dist/runtimes/pi/facade-runtime.d.ts.map +1 -0
  104. package/dist/runtimes/pi/facade-runtime.js +23 -0
  105. package/dist/runtimes/pi/facade-runtime.js.map +1 -0
  106. package/dist/runtimes/pi/failure.d.ts +2 -4
  107. package/dist/runtimes/pi/failure.d.ts.map +1 -1
  108. package/dist/runtimes/pi/inventory.d.ts.map +1 -1
  109. package/dist/runtimes/pi/inventory.js +2 -1
  110. package/dist/runtimes/pi/inventory.js.map +1 -1
  111. package/dist/runtimes/pi/list-models.d.ts.map +1 -1
  112. package/dist/runtimes/pi/list-models.js +2 -1
  113. package/dist/runtimes/pi/list-models.js.map +1 -1
  114. package/dist/runtimes/pi/mcp.d.ts.map +1 -1
  115. package/dist/runtimes/pi/mcp.js +3 -2
  116. package/dist/runtimes/pi/mcp.js.map +1 -1
  117. package/dist/runtimes/pi/open.d.ts +1 -1
  118. package/dist/runtimes/pi/open.d.ts.map +1 -1
  119. package/dist/runtimes/pi/open.js +8 -4
  120. package/dist/runtimes/pi/open.js.map +1 -1
  121. package/dist/runtimes/pi/resolve.d.ts +9 -0
  122. package/dist/runtimes/pi/resolve.d.ts.map +1 -1
  123. package/dist/runtimes/pi/resolve.js +15 -2
  124. package/dist/runtimes/pi/resolve.js.map +1 -1
  125. package/dist/runtimes/pi/session.d.ts.map +1 -1
  126. package/dist/runtimes/pi/session.js +6 -7
  127. package/dist/runtimes/pi/session.js.map +1 -1
  128. package/dist/shared/acp/failure.d.ts +3 -0
  129. package/dist/shared/acp/failure.d.ts.map +1 -1
  130. package/dist/shared/acp/failure.js +18 -2
  131. package/dist/shared/acp/failure.js.map +1 -1
  132. package/dist/shared/acp/mcp-servers.d.ts +1 -1
  133. package/dist/shared/acp/mcp-servers.d.ts.map +1 -1
  134. package/dist/shared/acp/mcp-servers.js +1 -2
  135. package/dist/shared/acp/mcp-servers.js.map +1 -1
  136. package/dist/shared/acp/process.d.ts +3 -0
  137. package/dist/shared/acp/process.d.ts.map +1 -1
  138. package/dist/shared/acp/process.js +14 -1
  139. package/dist/shared/acp/process.js.map +1 -1
  140. package/dist/shared/acp/profile.d.ts +4 -3
  141. package/dist/shared/acp/profile.d.ts.map +1 -1
  142. package/dist/shared/acp/profile.js +9 -7
  143. package/dist/shared/acp/profile.js.map +1 -1
  144. package/dist/shared/acp/resume-cwd.d.ts +6 -2
  145. package/dist/shared/acp/resume-cwd.d.ts.map +1 -1
  146. package/dist/shared/acp/resume-cwd.js +24 -3
  147. package/dist/shared/acp/resume-cwd.js.map +1 -1
  148. package/dist/shared/acp/session.d.ts.map +1 -1
  149. package/dist/shared/acp/session.js +7 -8
  150. package/dist/shared/acp/session.js.map +1 -1
  151. package/dist/shared/credential-redactor.d.ts +9 -0
  152. package/dist/shared/credential-redactor.d.ts.map +1 -0
  153. package/dist/shared/credential-redactor.js +75 -0
  154. package/dist/shared/credential-redactor.js.map +1 -0
  155. package/dist/shared/failure-class.d.ts +2 -3
  156. package/dist/shared/failure-class.d.ts.map +1 -1
  157. package/dist/shared/failure-class.js.map +1 -1
  158. package/dist/shared/mcp-servers.d.ts +1 -6
  159. package/dist/shared/mcp-servers.d.ts.map +1 -1
  160. package/dist/shared/mcp-servers.js +3 -18
  161. package/dist/shared/mcp-servers.js.map +1 -1
  162. package/dist/shared/native-error.d.ts +7 -0
  163. package/dist/shared/native-error.d.ts.map +1 -0
  164. package/dist/shared/native-error.js +20 -0
  165. package/dist/shared/native-error.js.map +1 -0
  166. package/dist/shared/redact-text.d.ts +3 -0
  167. package/dist/shared/redact-text.d.ts.map +1 -0
  168. package/dist/shared/redact-text.js +71 -0
  169. package/dist/shared/redact-text.js.map +1 -0
  170. package/dist/shared/seal-session.js +1 -1
  171. package/dist/shared/seal-session.js.map +1 -1
  172. package/dist/shared/session-credentials.d.ts +11 -0
  173. package/dist/shared/session-credentials.d.ts.map +1 -0
  174. package/dist/shared/session-credentials.js +45 -0
  175. package/dist/shared/session-credentials.js.map +1 -0
  176. package/dist/shared/session-kernel.d.ts +2 -1
  177. package/dist/shared/session-kernel.d.ts.map +1 -1
  178. package/dist/shared/session-kernel.js +7 -5
  179. package/dist/shared/session-kernel.js.map +1 -1
  180. package/package.json +1 -1
@@ -1,32 +1,86 @@
1
+ import { SessionNotFoundError } from "../../contracts/session-not-found-error.js";
2
+ import { sessionCredentialRedactor } from "../../shared/credential-redactor.js";
1
3
  import { randomUUID } from "node:crypto";
4
+ import { asRecord } from "../../shared/json.js";
5
+ import { nativeErrorCause } from "../../shared/native-error.js";
2
6
  import { CLAUDE_EFFORT_READBACK_MS, claudeControlResponseId, claudeEffortRefusal, claudeSettingsRequest } from "./effort.js";
3
7
  import { claudeServiceTierRefusal } from "./service-tier.js";
4
- /** Bounded native readbacks at open. Initialization remains in the ordinary projection stream. */
8
+ import { claudeUsageBaseline } from "./token-usage.js";
9
+ function failedInitialization(message) {
10
+ return message.type === "result" && message.subtype === "error_during_execution";
11
+ }
12
+ function refusalFor(answer, option, requested, options) {
13
+ if (answer instanceof Error) {
14
+ return `${answer.message}, so ${option} ${requested} cannot be confirmed`;
15
+ }
16
+ if (failedInitialization(answer)) {
17
+ const errors = Array.isArray(answer.errors) ? answer.errors.filter((error) => typeof error === "string") : [];
18
+ return errors.join("\n") || "claude initialization failed (result/error_during_execution)";
19
+ }
20
+ if (option === "effort") {
21
+ return claudeEffortRefusal(requested, answer);
22
+ }
23
+ if (option === "serviceTier") {
24
+ return claudeServiceTierRefusal(requested, answer);
25
+ }
26
+ const response = asRecord(answer.response);
27
+ if (response?.subtype !== "success") {
28
+ return `claude could not resume ${requested} (initialize: ${typeof response?.error === "string" ? response.error : "no success answer"})`;
29
+ }
30
+ return options.serviceTier === undefined ? null : claudeServiceTierRefusal(options.serviceTier, answer);
31
+ }
32
+ /** Successful readbacks contain private configuration or account details, never error diagnostics. */
33
+ function failureNative(answer) {
34
+ if (answer instanceof Error) {
35
+ return undefined;
36
+ }
37
+ if (failedInitialization(answer)) {
38
+ return answer;
39
+ }
40
+ const response = asRecord(answer.response);
41
+ return response?.subtype === "error" ? response : undefined;
42
+ }
43
+ /** Bounded native readbacks at open, consumed before the ordinary projection stream. */
5
44
  export function claudeOpenSettings(child) {
6
45
  let pending = null;
7
46
  const privateIds = new Set();
8
- const lifetime = { exited: false, code: null };
47
+ const lifetime = { exited: false, code: null, failure: null };
48
+ let opening = true;
9
49
  const exitError = (method) => new Error(`claude exited (code ${String(lifetime.code)}) before answering ${method}`);
10
- const confirm = async (method, option, requested) => {
50
+ const confirm = async (method, option, options) => {
51
+ const requested = options[option];
52
+ if (requested === undefined) {
53
+ return;
54
+ }
55
+ const { redact } = sessionCredentialRedactor(options);
11
56
  const { promise, resolve } = Promise.withResolvers();
12
57
  const id = `oar-${option}-${randomUUID()}`;
13
58
  pending = { id, method, settle: resolve };
14
- if (method === "get_settings") {
15
- privateIds.add(id);
16
- }
59
+ privateIds.add(id);
17
60
  const timer = setTimeout(() => { resolve(new Error(`claude did not answer ${method} within ${String(CLAUDE_EFFORT_READBACK_MS)} ms`)); }, CLAUDE_EFFORT_READBACK_MS);
18
61
  try {
19
- if (lifetime.exited) {
62
+ if (lifetime.failure !== null) {
63
+ resolve(lifetime.failure);
64
+ }
65
+ else if (lifetime.exited) {
20
66
  resolve(exitError(method));
21
67
  }
22
68
  else {
23
69
  child.write(method === "get_settings" ? claudeSettingsRequest(id) : `${JSON.stringify({ type: "control_request", request_id: id, request: { subtype: method } })}\n`);
24
70
  }
25
71
  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));
72
+ const refusal = refusalFor(answer, option, requested, options);
28
73
  if (refusal !== null) {
29
- throw new Error(refusal);
74
+ const native = failureNative(answer);
75
+ const cause = native === undefined ? undefined : nativeErrorCause(method, native, redact);
76
+ // Only a missing-resume result that won the initialize readback.
77
+ // Prose is the last resort, pinned by claude-missing-resume.json.
78
+ if (option === "resume" && method === "initialize" && native !== undefined && failedInitialization(native)
79
+ && Array.isArray(native.errors) && typeof native.errors[0] === "string"
80
+ && native.errors[0].startsWith("No conversation found with session ID") && cause !== undefined) {
81
+ throw new SessionNotFoundError(requested, redact(refusal), cause);
82
+ }
83
+ throw new Error(redact(refusal), cause === undefined ? undefined : { cause });
30
84
  }
31
85
  }
32
86
  catch (error) {
@@ -41,6 +95,10 @@ export function claudeOpenSettings(child) {
41
95
  };
42
96
  return {
43
97
  consume(message) {
98
+ if (opening && failedInitialization(message)) {
99
+ lifetime.failure = message;
100
+ pending?.settle(message);
101
+ }
44
102
  const id = claudeControlResponseId(message);
45
103
  if (pending !== null && id === pending.id) {
46
104
  pending.settle(message);
@@ -54,12 +112,42 @@ export function claudeOpenSettings(child) {
54
112
  pending.settle(exitError(pending.method));
55
113
  }
56
114
  },
115
+ async usageBaseline() {
116
+ if (lifetime.exited) {
117
+ return { kind: "unknown" };
118
+ }
119
+ const { promise, resolve } = Promise.withResolvers();
120
+ const id = `oar-usage-${randomUUID()}`;
121
+ pending = { id, method: "get_usage", settle: resolve };
122
+ privateIds.add(id);
123
+ const timer = setTimeout(() => { resolve(new Error(`claude did not answer get_usage within ${String(CLAUDE_EFFORT_READBACK_MS)} ms`)); }, CLAUDE_EFFORT_READBACK_MS);
124
+ try {
125
+ // skip_behaviors: the answer's local-transcript scan is not needed.
126
+ child.write(`${JSON.stringify({ type: "control_request", request_id: id, request: { subtype: "get_usage", skip_behaviors: true } })}\n`);
127
+ return claudeUsageBaseline(await promise);
128
+ }
129
+ finally {
130
+ clearTimeout(timer);
131
+ pending = null;
132
+ }
133
+ },
57
134
  async confirm(options) {
58
- if (options.effort !== undefined) {
59
- await confirm("get_settings", "effort", options.effort);
135
+ try {
136
+ // Missing resumes report a result error and exit without an initialize
137
+ // answer. Confirm that handshake before any settings readback.
138
+ if (options.resume !== undefined) {
139
+ await confirm("initialize", "resume", options);
140
+ }
141
+ if (options.effort !== undefined) {
142
+ await confirm("get_settings", "effort", options);
143
+ }
144
+ if (options.serviceTier !== undefined && options.resume === undefined) {
145
+ await confirm("initialize", "serviceTier", options);
146
+ }
60
147
  }
61
- if (options.serviceTier !== undefined) {
62
- await confirm("initialize", "serviceTier", options.serviceTier);
148
+ finally {
149
+ opening = false;
150
+ lifetime.failure = null;
63
151
  }
64
152
  },
65
153
  };
@@ -1 +1 @@
1
- {"version":3,"file":"open-settings.js","sourceRoot":"","sources":["../../../src/runtimes/claude/open-settings.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAIzC,OAAO,EAAE,yBAAyB,EAAE,uBAAuB,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAC7H,OAAO,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAe7D,kGAAkG;AAClG,MAAM,UAAU,kBAAkB,CAAC,KAAoB;IACrD,IAAI,OAAO,GAAmB,IAAI,CAAC;IACnC,MAAM,UAAU,GAAG,IAAI,GAAG,EAAU,CAAC;IACrC,MAAM,QAAQ,GAA6C,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IACzF,MAAM,SAAS,GAAG,CAAC,MAAc,EAAS,EAAE,CAAC,IAAI,KAAK,CAAC,uBAAuB,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,sBAAsB,MAAM,EAAE,CAAC,CAAC;IACnI,MAAM,OAAO,GAAG,KAAK,EAAE,MAAc,EAAE,MAAgC,EAAE,SAAiB,EAAiB,EAAE;QAC3G,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,aAAa,EAAsB,CAAC;QACzE,MAAM,EAAE,GAAG,OAAO,MAAM,IAAI,UAAU,EAAE,EAAE,CAAC;QAC3C,OAAO,GAAG,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;QAC1C,IAAI,MAAM,KAAK,cAAc,EAAE,CAAC;YAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAAC,CAAC;QACtD,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,GAAG,OAAO,CAAC,IAAI,KAAK,CAAC,yBAAyB,MAAM,WAAW,MAAM,CAAC,yBAAyB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,yBAAyB,CAAC,CAAC;QACrK,IAAI,CAAC;YACH,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;gBAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;YAAC,CAAC;iBAC/C,CAAC;gBAAC,KAAK,CAAC,KAAK,CAAC,MAAM,KAAK,cAAc,CAAC,CAAC,CAAC,qBAAqB,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,UAAU,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC;YAAC,CAAC;YAC/K,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC;YAC7B,MAAM,OAAO,GAAG,MAAM,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,OAAO,QAAQ,MAAM,IAAI,SAAS,sBAAsB;gBAC1G,CAAC,CAAC,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,mBAAmB,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,wBAAwB,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC;YACjH,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;gBAAC,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;YAAC,CAAC;QACrD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,KAAK,CAAC,IAAI,EAAE,CAAC;YACb,MAAM,KAAK,CAAC,MAAM,CAAC;YACnB,MAAM,KAAK,CAAC;QACd,CAAC;gBAAS,CAAC;YACT,YAAY,CAAC,KAAK,CAAC,CAAC;YACpB,OAAO,GAAG,IAAI,CAAC;QACjB,CAAC;IACH,CAAC,CAAC;IACF,OAAO;QACL,OAAO,CAAC,OAAO;YACb,MAAM,EAAE,GAAG,uBAAuB,CAAC,OAAO,CAAC,CAAC;YAC5C,IAAI,OAAO,KAAK,IAAI,IAAI,EAAE,KAAK,OAAO,CAAC,EAAE,EAAE,CAAC;gBAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YAAC,CAAC;YACvE,OAAO,EAAE,KAAK,IAAI,IAAI,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC3C,CAAC;QACD,MAAM,CAAC,IAAI;YACT,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC;YACvB,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC;YACrB,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;gBAAC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;YAAC,CAAC;QACtE,CAAC;QACD,KAAK,CAAC,OAAO,CAAC,OAAO;YACnB,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;gBAAC,MAAM,OAAO,CAAC,cAAc,EAAE,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;YAAC,CAAC;YAC9F,IAAI,OAAO,CAAC,WAAW,KAAK,SAAS,EAAE,CAAC;gBAAC,MAAM,OAAO,CAAC,YAAY,EAAE,aAAa,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;YAAC,CAAC;QAC7G,CAAC;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"open-settings.js","sourceRoot":"","sources":["../../../src/runtimes/claude/open-settings.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,7 @@
1
+ import type { UtcInstant } from "../../contracts/account-usage.js";
1
2
  import type { FrameBody, ResponseBody, TokenTotals } from "../../contracts/session.js";
2
3
  import { type JsonRecord } from "../../shared/json.js";
4
+ import { type ClaudeModelUsage, type ClaudeUsageBaseline } from "./token-usage.js";
3
5
  import { type ClaudePartials } from "./content.js";
4
6
  /**
5
7
  * The claude stdout → record projection as a PURE FOLD. A reducer over the
@@ -41,18 +43,31 @@ export type ProjectionCommand = {
41
43
  * completed. `agents` maps every tool_use id seen to the agentPath of the
42
44
  * message that carried it, so a frame with `parent_tool_use_id` attributes to
43
45
  * that tool call's agent plus the call; nested Task calls nest the path.
44
- * `tokens` accumulates per-agent result usage so usage events are cumulative.
45
- * `failureCategory` is the `error` of the turn's last root assistant frame,
46
- * which classifies a failed result (failure.ts).
46
+ * `tokens` accumulates the main loop's per-turn result usage (the root
47
+ * agent's), so usage events are cumulative; `modelUsage` is the session's
48
+ * own running total and where this Session's share of it starts
49
+ * (token-usage.ts). `failureCategory` is the `error` of the turn's last root
50
+ * assistant frame, which classifies a failed result (failure.ts).
51
+ * `limitResetsAt` is the reset of the limit the latest `rate_limit_event`
52
+ * says refuses requests, kept across turns until another event replaces it
53
+ * (claude reports a change, not every refusal): a turn that then fails on
54
+ * `rate_limit` is `quota` with that `resetsAt`.
47
55
  */
48
56
  export interface ClaudeProjectionState {
49
57
  readonly abortRequested: boolean;
50
58
  readonly agents: ReadonlyMap<string, readonly string[]>;
51
59
  readonly tokens: ReadonlyMap<string, TokenTotals>;
60
+ readonly modelUsage: ClaudeModelUsage;
52
61
  readonly partials: ClaudePartials;
53
62
  readonly failureCategory: string | null;
63
+ readonly limitResetsAt: UtcInstant | null;
54
64
  }
65
+ /** A new session's fold. */
55
66
  export declare const initialClaudeProjection: ClaudeProjectionState;
67
+ /** A resumed session's fold: it counts no tokens until `claudeUsageBaselined` says where its share starts. */
68
+ export declare const resumedClaudeProjection: ClaudeProjectionState;
69
+ /** The adapter's `get_usage` read-back at open: where a resumed Session's share of claude's running total starts. */
70
+ export declare function claudeUsageBaselined(state: ClaudeProjectionState, baseline: ClaudeUsageBaseline): ClaudeProjectionState;
56
71
  /** Control plane → state: a prompt clears any stale abort intent; an abort arms it. */
57
72
  export declare function claudePrompted(state: ClaudeProjectionState): ClaudeProjectionState;
58
73
  export declare function claudeAbortRequested(state: ClaudeProjectionState): ClaudeProjectionState;
@@ -1 +1 @@
1
- {"version":3,"file":"projection.d.ts","sourceRoot":"","sources":["../../../src/runtimes/claude/projection.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,SAAS,EAET,YAAY,EACZ,WAAW,EAEZ,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EAAsB,KAAK,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAK3E,OAAO,EAAgC,KAAK,cAAc,EAAE,MAAM,cAAc,CAAC;AAEjF;;;;;;;;;;;;;;GAcG;AAEH,MAAM,MAAM,iBAAiB,GACzB;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,CAAA;CAAE;AAC7F,sGAAsG;GACpG;IAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAA;CAAE;AACvF,uFAAuF;GACrF;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAA;CAAE,CAAC;AAErG;;;;;;;;;;GAUG;AACH,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC;IACjC,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC,CAAC;IACxD,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IAClD,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC;IAClC,QAAQ,CAAC,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;CACzC;AAED,eAAO,MAAM,uBAAuB,EAAE,qBAMrC,CAAC;AAEF,uFAAuF;AACvF,wBAAgB,cAAc,CAAC,KAAK,EAAE,qBAAqB,GAAG,qBAAqB,CAElF;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,qBAAqB,GAAG,qBAAqB,CAExF;AA+FD,6EAA6E;AAC7E,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,qBAAqB,EAC5B,OAAO,EAAE,UAAU,GAClB;IAAE,QAAQ,CAAC,KAAK,EAAE,qBAAqB,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,SAAS,iBAAiB,EAAE,CAAA;CAAE,CA8F5F"}
1
+ {"version":3,"file":"projection.d.ts","sourceRoot":"","sources":["../../../src/runtimes/claude/projection.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAC;AACnE,OAAO,KAAK,EACV,SAAS,EAET,YAAY,EACZ,WAAW,EAEZ,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EAAsB,KAAK,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAG3E,OAAO,EAAkF,KAAK,gBAAgB,EAAE,KAAK,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAEnK,OAAO,EAAgC,KAAK,cAAc,EAAE,MAAM,cAAc,CAAC;AAEjF;;;;;;;;;;;;;;GAcG;AAEH,MAAM,MAAM,iBAAiB,GACzB;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,CAAA;CAAE;AAC7F,sGAAsG;GACpG;IAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,YAAY,CAAA;CAAE;AACvF,uFAAuF;GACrF;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAA;CAAE,CAAC;AAErG;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC;IACjC,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC,CAAC;IACxD,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IAClD,QAAQ,CAAC,UAAU,EAAE,gBAAgB,CAAC;IACtC,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC;IAClC,QAAQ,CAAC,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IACxC,QAAQ,CAAC,aAAa,EAAE,UAAU,GAAG,IAAI,CAAC;CAC3C;AAED,4BAA4B;AAC5B,eAAO,MAAM,uBAAuB,EAAE,qBAQrC,CAAC;AAEF,8GAA8G;AAC9G,eAAO,MAAM,uBAAuB,EAAE,qBAAqF,CAAC;AAE5H,qHAAqH;AACrH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,qBAAqB,EAAE,QAAQ,EAAE,mBAAmB,GAAG,qBAAqB,CAEvH;AAED,uFAAuF;AACvF,wBAAgB,cAAc,CAAC,KAAK,EAAE,qBAAqB,GAAG,qBAAqB,CAElF;AAED,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,qBAAqB,GAAG,qBAAqB,CAExF;AA+FD,6EAA6E;AAC7E,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,qBAAqB,EAC5B,OAAO,EAAE,UAAU,GAClB;IAAE,QAAQ,CAAC,KAAK,EAAE,qBAAqB,CAAC;IAAC,QAAQ,CAAC,QAAQ,EAAE,SAAS,iBAAiB,EAAE,CAAA;CAAE,CA8F5F"}
@@ -1,18 +1,27 @@
1
1
  import { claudeServiceTierEvents } from "./service-tier.js";
2
- import { claudeFailure } from "./failure.js";
2
+ import { claudeFailure, claudeLimitReset } from "./failure.js";
3
3
  import { asNumber, asRecord } from "../../shared/json.js";
4
- import { addTokens, cacheParts, noTokens } from "../../shared/token-totals.js";
5
4
  import { toolContent } from "../../shared/tool-output.js";
6
5
  import { claudeContextUsageFromResult } from "./context-usage.js";
6
+ import { foldModelUsage, freshModelUsage, resumedModelUsage, withBaseline, withMainLoop } from "./token-usage.js";
7
7
  import { claudeTaskViews } from "./tasks.js";
8
8
  import { claudeContent, contentBlocks } from "./content.js";
9
+ /** A new session's fold. */
9
10
  export const initialClaudeProjection = {
10
11
  abortRequested: false,
11
12
  agents: new Map(),
12
13
  tokens: new Map(),
14
+ modelUsage: freshModelUsage,
13
15
  partials: new Map(),
14
16
  failureCategory: null,
17
+ limitResetsAt: null,
15
18
  };
19
+ /** A resumed session's fold: it counts no tokens until `claudeUsageBaselined` says where its share starts. */
20
+ export const resumedClaudeProjection = { ...initialClaudeProjection, modelUsage: resumedModelUsage };
21
+ /** The adapter's `get_usage` read-back at open: where a resumed Session's share of claude's running total starts. */
22
+ export function claudeUsageBaselined(state, baseline) {
23
+ return { ...state, modelUsage: withBaseline(state.modelUsage, baseline) };
24
+ }
16
25
  /** Control plane → state: a prompt clears any stale abort intent; an abort arms it. */
17
26
  export function claudePrompted(state) {
18
27
  return { ...state, abortRequested: false };
@@ -57,6 +66,7 @@ function resultOutcome(state, message) {
57
66
  category: state.failureCategory,
58
67
  status: asNumber(message.api_error_status),
59
68
  terminalReason: typeof message.terminal_reason === "string" ? message.terminal_reason : null,
69
+ limitResetsAt: state.limitResetsAt,
60
70
  });
61
71
  }
62
72
  return { kind: "completed" };
@@ -89,20 +99,19 @@ function frameType(message) {
89
99
  const type = typeof message.type === "string" ? message.type : "unknown";
90
100
  return typeof message.subtype === "string" ? `${type}/${message.subtype}` : type;
91
101
  }
92
- /** Cumulative per-agent tokens after folding this result frame's own turn usage. */
102
+ /**
103
+ * Cumulative per-agent tokens after folding this result frame's own turn
104
+ * usage: the main loop's (claude's word), so the root agent's. None while a
105
+ * resumed Session's share is unknown. Subagents get no entry: only a
106
+ * subagent's first assistant frame carries `parent_tool_use_id`, and its
107
+ * `message.usage` is the stream-start value, not final ([env] 2.1.292), so
108
+ * their spend stays in the session total, unattributed.
109
+ */
93
110
  function accumulate(state, agentPath, message) {
94
- const usage = asRecord(message.usage);
95
- if (usage === null) {
111
+ const tokens = state.modelUsage.baseline.kind === "known" ? withMainLoop(state.tokens.get(pathKey(agentPath)), message) : null;
112
+ if (tokens === null) {
96
113
  return null;
97
114
  }
98
- // `input_tokens` excludes the cache reads and writes, so input counts them
99
- // back in; each also stands as its own part when the frame reports it.
100
- const cache = cacheParts(usage, { read: "cache_read_input_tokens", write: "cache_creation_input_tokens" });
101
- const tokens = addTokens(state.tokens.get(pathKey(agentPath)) ?? noTokens, {
102
- input: (asNumber(usage.input_tokens) ?? 0) + (cache.cacheRead ?? 0) + (cache.cacheWrite ?? 0),
103
- output: asNumber(usage.output_tokens) ?? 0,
104
- ...cache,
105
- });
106
115
  const next = new Map([...state.tokens, [pathKey(agentPath), tokens]]);
107
116
  return { state: { ...state, tokens: next }, tokens };
108
117
  }
@@ -136,14 +145,16 @@ export function foldClaudeStdout(state, message) {
136
145
  case "result": {
137
146
  const events = [...claudeServiceTierEvents(message), { kind: "turn_ended", outcome: resultOutcome(state, message) }];
138
147
  const accumulated = accumulate(state, agentPath, message);
148
+ const running = foldModelUsage(state.modelUsage, message);
139
149
  const context = claudeContextUsageFromResult(message);
140
- if (accumulated !== null || context !== null) {
150
+ if (accumulated !== null || context !== null || running.total !== null) {
141
151
  events.push({ kind: "usage", usage: {
142
152
  ...(context === null ? {} : { context }),
143
153
  ...(accumulated === null ? {} : { tokens: accumulated.tokens }),
154
+ ...(running.total === null ? {} : { total: running.total }),
144
155
  } });
145
156
  }
146
- return event({ events }, { ...(accumulated?.state ?? state), abortRequested: false, failureCategory: null });
157
+ return event({ events }, { ...(accumulated?.state ?? state), modelUsage: running.usage, abortRequested: false, failureCategory: null });
147
158
  }
148
159
  case "system": {
149
160
  if (message.subtype === "compact_boundary") {
@@ -162,13 +173,6 @@ export function foldClaudeStdout(state, message) {
162
173
  // is not also recorded as an event. A control_response we cannot pair
163
174
  // is recorded as a plain event.
164
175
  const response = asRecord(message.response);
165
- const initialized = asRecord(response?.response);
166
- if (response?.subtype === "success" && initialized !== null) {
167
- const events = claudeServiceTierEvents(initialized);
168
- if (events.length > 0) {
169
- return event({ events });
170
- }
171
- }
172
176
  const requestId = typeof response?.request_id === "string" ? response.request_id : null;
173
177
  if (requestId === null) {
174
178
  return event({ events: [] });
@@ -195,6 +199,9 @@ export function foldClaudeStdout(state, message) {
195
199
  ],
196
200
  };
197
201
  }
202
+ case "rate_limit_event":
203
+ // claude's view of the subscription limits changed: read for a failed turn's resetsAt, no event of its own.
204
+ return event({ events: [] }, { ...state, limitResetsAt: claudeLimitReset(asRecord(message.rate_limit_info)) });
198
205
  case "control_cancel_request":
199
206
  // claude withdrew a request it had sent us (an interrupt cancels a pending question).
200
207
  return event({ events: typeof message.request_id === "string" ? [{ kind: "app_request_cancelled", requestId: message.request_id }] : [] });
@@ -1 +1 @@
1
- {"version":3,"file":"projection.js","sourceRoot":"","sources":["../../../src/runtimes/claude/projection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAQ5D,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAmB,MAAM,sBAAsB,CAAC;AAC3E,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AAC/E,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,EAAE,4BAA4B,EAAE,MAAM,oBAAoB,CAAC;AAClE,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,aAAa,EAAE,aAAa,EAAuB,MAAM,cAAc,CAAC;AA4CjF,MAAM,CAAC,MAAM,uBAAuB,GAA0B;IAC5D,cAAc,EAAE,KAAK;IACrB,MAAM,EAAE,IAAI,GAAG,EAAE;IACjB,MAAM,EAAE,IAAI,GAAG,EAAE;IACjB,QAAQ,EAAE,IAAI,GAAG,EAAE;IACnB,eAAe,EAAE,IAAI;CACtB,CAAC;AAEF,uFAAuF;AACvF,MAAM,UAAU,cAAc,CAAC,KAA4B;IACzD,OAAO,EAAE,GAAG,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,CAAC;AAC7C,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,KAA4B;IAC/D,OAAO,EAAE,GAAG,KAAK,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC;AAC5C,CAAC;AAED,SAAS,eAAe,CAAC,OAAmB;IAC1C,MAAM,GAAG,GAAuB,EAAE,CAAC;IACnC,KAAK,MAAM,KAAK,IAAI,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3C,IAAI,KAAK,CAAC,IAAI,KAAK,aAAa,IAAI,OAAO,KAAK,CAAC,WAAW,KAAK,QAAQ,EAAE,CAAC;YAC1E,MAAM,OAAO,GAAG,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAC3C,+DAA+D;YAC/D,wEAAwE;YACxE,gEAAgE;YAChE,mDAAmD;YACnD,GAAG,CAAC,IAAI,CAAC;gBACP,IAAI,EAAE,iBAAiB;gBACvB,MAAM,EAAE,KAAK,CAAC,WAAW;gBACzB,GAAG,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC;gBAC7C,MAAM,EAAE,KAAK,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI;aAClD,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,aAAa,CAAC,KAA4B,EAAE,OAAmB;IACtE,IAAI,KAAK,CAAC,cAAc,EAAE,CAAC;QACzB,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;IAC7B,CAAC;IACD,IAAI,OAAO,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;QAC9B,yEAAyE;QACzE,6DAA6D;QAC7D,MAAM,IAAI,GAAG,OAAO,OAAO,CAAC,MAAM,KAAK,QAAQ,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC;YAC1E,CAAC,CAAC,OAAO,CAAC,MAAM;YAChB,CAAC,CAAC,SAAS,CAAC;QACd,MAAM,OAAO,GAAG,OAAO,OAAO,CAAC,OAAO,KAAK,QAAQ,IAAI,OAAO,CAAC,OAAO,KAAK,SAAS;YAClF,CAAC,CAAC,OAAO,CAAC,OAAO;YACjB,CAAC,CAAC,SAAS,CAAC;QACd,MAAM,MAAM,GAAG,IAAI,IAAI,OAAO,IAAI,OAAO,CAAC;QAC1C,OAAO,aAAa,CAAC,MAAM,EAAE;YAC3B,QAAQ,EAAE,KAAK,CAAC,eAAe;YAC/B,MAAM,EAAE,QAAQ,CAAC,OAAO,CAAC,gBAAgB,CAAC;YAC1C,cAAc,EAAE,OAAO,OAAO,CAAC,eAAe,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI;SAC7F,CAAC,CAAC;IACL,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC;AAC/B,CAAC;AAED,SAAS,OAAO,CAAC,SAA4B;IAC3C,OAAO,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;AACnC,CAAC;AAED,kHAAkH;AAClH,SAAS,aAAa,CAAC,KAA4B,EAAE,OAAmB;IACtE,MAAM,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAC1C,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtD,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;AACvD,CAAC;AAED,SAAS,gBAAgB,CAAC,KAA4B,EAAE,OAAmB,EAAE,SAA4B;IACvG,MAAM,GAAG,GAAG,aAAa,CAAC,OAAO,CAAC;SAC/B,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,UAAU,IAAI,OAAO,KAAK,CAAC,EAAE,KAAK,QAAQ,CAAC;SAC5E,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;IACpC,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrB,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACrC,KAAK,MAAM,EAAE,IAAI,GAAG,EAAE,CAAC;QACrB,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC;IAC5B,CAAC;IACD,OAAO,EAAE,GAAG,KAAK,EAAE,MAAM,EAAE,CAAC;AAC9B,CAAC;AAED,SAAS,SAAS,CAAC,OAAmB;IACpC,MAAM,IAAI,GAAG,OAAO,OAAO,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;IACzE,OAAO,OAAO,OAAO,CAAC,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AACnF,CAAC;AAED,oFAAoF;AACpF,SAAS,UAAU,CAAC,KAA4B,EAAE,SAA4B,EAAE,OAAmB;IACjG,MAAM,KAAK,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACtC,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QACnB,OAAO,IAAI,CAAC;IACd,CAAC;IACD,2EAA2E;IAC3E,uEAAuE;IACvE,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,yBAAyB,EAAE,KAAK,EAAE,6BAA6B,EAAE,CAAC,CAAC;IAC3G,MAAM,MAAM,GAAG,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,IAAI,QAAQ,EAAE;QACzE,KAAK,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,IAAI,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,IAAI,CAAC,CAAC;QAC7F,MAAM,EAAE,QAAQ,CAAC,KAAK,CAAC,aAAa,CAAC,IAAI,CAAC;QAC1C,GAAG,KAAK;KACT,CAAC,CAAC;IACH,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;IACtE,OAAO,EAAE,KAAK,EAAE,EAAE,GAAG,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,CAAC;AACvD,CAAC;AAED,6EAA6E;AAC7E,MAAM,UAAU,gBAAgB,CAC9B,KAA4B,EAC5B,OAAmB;IAEnB,MAAM,IAAI,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;IAChC,MAAM,SAAS,GAAG,aAAa,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IAChD,MAAM,KAAK,GAAG,CAAC,IAAwC,EAAE,OAA8B,KAAK,EAAmE,EAAE,CAC/J,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC;IAExG,QAAQ,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QAC7B,KAAK,WAAW,CAAC;QACjB,KAAK,cAAc,CAAC,CAAC,CAAC;YACpB,MAAM,OAAO,GAAG,aAAa,CAAC,KAAK,CAAC,QAAQ,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;YAClE,MAAM,IAAI,GAAG,EAAE,GAAG,KAAK,EAAE,QAAQ,EAAE,OAAO,CAAC,QAAQ,EAAE,CAAC;YACtD,IAAI,OAAO,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;gBACjC,OAAO,KAAK,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,EAAE,IAAI,CAAC,CAAC;YACjD,CAAC;YACD,MAAM,UAAU,GAAG,gBAAgB,CAAC,IAAI,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC;YAC9D,mEAAmE;YACnE,MAAM,eAAe,GAAG,SAAS,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,OAAO,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,eAAe,CAAC;YACjI,OAAO,KAAK,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,EAAE,EAAE,EAAE,GAAG,UAAU,EAAE,eAAe,EAAE,CAAC,CAAC;QAC/E,CAAC;QACD,KAAK,MAAM,CAAC,CAAC,CAAC;YACZ,MAAM,KAAK,GAAG,CAAC,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC;YAC5C,MAAM,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YACvC,IAAI,OAAO,CAAC,QAAQ,KAAK,IAAI,IAAI,OAAO,OAAO,CAAC,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,CAAC;gBAClG,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,IAAa,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,IAAI,EAAE,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;gBAClL,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,IAAI,EAAE,eAAe,EAAE,OAAO,CAAC,IAAI,EAAE,QAAQ,EAAE,cAAc,EAAE,CAAC,CAAC;YAC9H,CAAC;YACD,OAAO,KAAK,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;QAClC,CAAC;QACD,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,MAAM,MAAM,GAAuB,CAAC,GAAG,uBAAuB,CAAC,OAAO,CAAC,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,aAAa,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC;YACzI,MAAM,WAAW,GAAG,UAAU,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;YAC1D,MAAM,OAAO,GAAG,4BAA4B,CAAC,OAAO,CAAC,CAAC;YACtD,IAAI,WAAW,KAAK,IAAI,IAAI,OAAO,KAAK,IAAI,EAAE,CAAC;gBAC7C,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE;wBAClC,GAAG,CAAC,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC;wBACxC,GAAG,CAAC,WAAW,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,CAAC;qBAChE,EAAE,CAAC,CAAC;YACP,CAAC;YACD,OAAO,KAAK,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG,CAAC,WAAW,EAAE,KAAK,IAAI,KAAK,CAAC,EAAE,cAAc,EAAE,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC,CAAC;QAC/G,CAAC;QACD,KAAK,QAAQ,CAAC,CAAC,CAAC;YACd,IAAI,OAAO,CAAC,OAAO,KAAK,kBAAkB,EAAE,CAAC;gBAC3C,oEAAoE;gBACpE,mEAAmE;gBACnE,sEAAsE;gBACtE,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,gBAAgB,CAAC,EAAE,OAAO,CAAC;gBAC5D,OAAO,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,CAAC,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YACtI,CAAC;YACD,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,KAAK,MAAM,IAAI,OAAO,OAAO,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;YACrG,OAAO,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC,GAAG,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAgB,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,GAAG,uBAAuB,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,CAAC;QACxJ,CAAC;QACD,KAAK,kBAAkB,CAAC,CAAC,CAAC;YACxB,yEAAyE;YACzE,sEAAsE;YACtE,sEAAsE;YACtE,gCAAgC;YAChC,MAAM,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YAC5C,MAAM,WAAW,GAAG,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;YACjD,IAAI,QAAQ,EAAE,OAAO,KAAK,SAAS,IAAI,WAAW,KAAK,IAAI,EAAE,CAAC;gBAC5D,MAAM,MAAM,GAAG,uBAAuB,CAAC,WAAW,CAAC,CAAC;gBACpD,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAAC,OAAO,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;gBAAC,CAAC;YACtD,CAAC;YACD,MAAM,SAAS,GAAG,OAAO,QAAQ,EAAE,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC;YACxF,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;gBACvB,OAAO,KAAK,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;YAC/B,CAAC;YACD,MAAM,KAAK,GAAG,OAAO,QAAQ,EAAE,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;YAC1E,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;wBACzB,IAAI,EAAE,SAAS;wBACf,SAAS;wBACT,IAAI,EAAE,QAAQ,EAAE,OAAO,KAAK,OAAO,IAAI,KAAK,KAAK,IAAI;4BACnD,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,iBAAiB,EAAE,MAAM,EAAE,KAAK,IAAI,wBAAwB,EAAE,MAAM,EAAE,OAAO,EAAE;4BAC3G,CAAC,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE;qBAC1C,CAAC,EAAE,CAAC;QACP,CAAC;QACD,KAAK,iBAAiB,CAAC,CAAC,CAAC;YACvB,wGAAwG;YACxG,MAAM,EAAE,GAAG,OAAO,OAAO,CAAC,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC;YACxG,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YAC1C,MAAM,OAAO,GAAG,OAAO,OAAO,EAAE,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,iBAAiB,CAAC;YAC3F,OAAO;gBACL,KAAK;gBACL,QAAQ,EAAE;oBACR,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE;oBACzE,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE;iBACtD;aACF,CAAC;QACJ,CAAC;QACD,KAAK,wBAAwB;YAC3B,sFAAsF;YACtF,OAAO,KAAK,CAAC,EAAE,MAAM,EAAE,OAAO,OAAO,CAAC,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,uBAAuB,EAAE,SAAS,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QAC7I;YACE,OAAO,KAAK,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC;IACjC,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"projection.js","sourceRoot":"","sources":["../../../src/runtimes/claude/projection.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../../src/runtimes/claude/session.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAKV,YAAY,EACb,MAAM,4BAA4B,CAAC;AAuDpC,eAAO,MAAM,aAAa,EAAE,YAiN3B,CAAC"}
1
+ {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../../src/runtimes/claude/session.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAKV,YAAY,EACb,MAAM,4BAA4B,CAAC;AAyDpC,eAAO,MAAM,aAAa,EAAE,YAsN1B,CAAC"}
@@ -3,20 +3,20 @@ import { createAbortFallback } from "../../shared/abort-fallback.js";
3
3
  import { withInputImages } from "../../shared/input-images.js";
4
4
  import { withdrawControl } from "../../shared/held-input.js";
5
5
  import { asRecord, parseJson } from "../../shared/json.js";
6
- import { sealSession } from "../../shared/seal-session.js";
7
- import { createSessionKernel } from "../../shared/session-kernel.js";
6
+ import { withSessionCredentials } from "../../shared/session-credentials.js";
8
7
  import { claudeOpenSettings } from "./open-settings.js";
9
8
  import { claudeContextBreakdownReader } from "./context-breakdown.js";
10
9
  import { launchClaude } from "./launch.js";
11
- import { claudeAbortRequested, claudePrompted, foldClaudeStdout, initialClaudeProjection, } from "./projection.js";
10
+ import { claudeAbortRequested, claudePrompted, claudeUsageBaselined, foldClaudeStdout, initialClaudeProjection, resumedClaudeProjection, } from "./projection.js";
12
11
  /*
13
12
  * Stream-json writes can steer the active turn or land as the next turn;
14
13
  * native system/init ... result frames establish those boundaries. The
15
14
  * interrupt's control_response acknowledges abort, not turn completion.
16
15
  * The adapter owns pending controls and queue drain; projection owns facts.
17
- * Effort read-back is private plumbing: get_settings contains user config
18
- * and credentials, so that one response is consumed before projection; so
19
- * is the answer to a contextBreakdown() query, a reading never recorded.
16
+ * Open readbacks are private plumbing: get_settings contains user config
17
+ * and credentials, initialize and a resume's get_usage (its token baseline)
18
+ * account details. All are consumed before projection, as is the unrecorded
19
+ * contextBreakdown() query answer.
20
20
  * Native mappings and live evidence: docs/runtimes/claude.md.
21
21
  */
22
22
  /** One stream-json user message; images go before the text, as the Messages API recommends. */
@@ -33,7 +33,7 @@ function userMessage(text, inputId, images = []) {
33
33
  },
34
34
  })}\n`;
35
35
  }
36
- export const claudeSession = async (installation, options) => {
36
+ export const claudeSession = withSessionCredentials(async (installation, options, credentials) => {
37
37
  if (installation.via !== "executable") {
38
38
  throw new Error("The claude session adapter needs an executable installation");
39
39
  }
@@ -42,12 +42,12 @@ export const claudeSession = async (installation, options) => {
42
42
  // is always the runtime-native persistent id.
43
43
  const sessionId = options.resume ?? randomUUID();
44
44
  const child = await launchClaude(installation.command, sessionId, options);
45
- const kernel = createSessionKernel(sessionId);
45
+ const kernel = credentials.kernel(sessionId);
46
46
  const state = {
47
47
  child,
48
48
  active: null,
49
49
  spontaneous: false,
50
- projection: initialClaudeProjection,
50
+ projection: options.resume === undefined ? initialClaudeProjection : resumedClaudeProjection,
51
51
  disposed: false,
52
52
  };
53
53
  // claude cannot hold input for a LATER turn natively (an active-turn write
@@ -137,9 +137,14 @@ export const claudeSession = async (installation, options) => {
137
137
  contextBreakdown.exited();
138
138
  });
139
139
  await readback.confirm(options);
140
+ if (options.resume !== undefined) {
141
+ // Before the first turn: where this Session's share of the running total
142
+ // the resumed process continues starts (token-usage.ts).
143
+ state.projection = claudeUsageBaselined(state.projection, await readback.usageBaseline());
144
+ }
140
145
  let interruptCounter = 0;
141
146
  const capabilities = { queue: { durable: false }, attribution: "attributed", images: true };
142
- const session = sealSession({
147
+ const session = credentials.seal({
143
148
  id: kernel.sessionId,
144
149
  capabilities,
145
150
  prompt: async (input, inputOptions) => {
@@ -245,5 +250,5 @@ export const claudeSession = async (installation, options) => {
245
250
  },
246
251
  });
247
252
  return session;
248
- };
253
+ });
249
254
  //# sourceMappingURL=session.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"session.js","sourceRoot":"","sources":["../../../src/runtimes/claude/session.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session.js","sourceRoot":"","sources":["../../../src/runtimes/claude/session.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,59 @@
1
+ import type { TokenTotals } from "../../contracts/session.js";
2
+ import { type JsonRecord } from "../../shared/json.js";
3
+ /**
4
+ * `previous` plus one result's main-loop tokens (`result.usage`, per turn),
5
+ * or null when the frame carries no usage. `input_tokens` excludes the cache
6
+ * reads and writes, so input counts them back in; each also stands as its
7
+ * own part when the frame reports it.
8
+ */
9
+ export declare function withMainLoop(previous: TokenTotals | undefined, message: JsonRecord): TokenTotals | null;
10
+ /** claude's running totals, by model. */
11
+ export type ModelTotals = ReadonlyMap<string, TokenTotals>;
12
+ /** Where this Session's share of claude's running total starts. */
13
+ export type ClaudeUsageBaseline =
14
+ /** A resume whose `get_usage` answer has not come yet. */
15
+ {
16
+ readonly kind: "awaiting";
17
+ } | {
18
+ readonly kind: "known";
19
+ readonly models: ModelTotals;
20
+ }
21
+ /** A resume whose `get_usage` timed out, failed or carried no session totals. */
22
+ | {
23
+ readonly kind: "unknown";
24
+ };
25
+ export interface ClaudeModelUsage {
26
+ readonly baseline: ClaudeUsageBaseline;
27
+ /** The running total claude last reported (the baseline before any): a lower one is a reset. */
28
+ readonly last: ModelTotals;
29
+ /** This Session's share counted before claude last reset its running total (a /clear). */
30
+ readonly carried: TokenTotals;
31
+ }
32
+ /** A new session: claude's running total and this Session's share both start at zero. */
33
+ export declare const freshModelUsage: ClaudeModelUsage;
34
+ /** A resume: nothing is counted until the baseline is known. */
35
+ export declare const resumedModelUsage: ClaudeModelUsage;
36
+ /** A `modelUsage` (or `get_usage` `model_usage`) map read per model; null when it is not one or an entry lacks its counts. */
37
+ export declare function modelTotals(value: unknown): ModelTotals | null;
38
+ /**
39
+ * The baseline a `get_usage` control_response sets: its
40
+ * `response.session.model_usage` (`{}` for a session with nothing saved).
41
+ * Anything else (an error answer, a timeout or exit, a reply without session
42
+ * totals) leaves it unknown.
43
+ */
44
+ export declare function claudeUsageBaseline(answer: JsonRecord | Error): ClaudeUsageBaseline;
45
+ export declare function withBaseline(usage: ClaudeModelUsage, baseline: ClaudeUsageBaseline): ClaudeModelUsage;
46
+ /**
47
+ * Fold one result's `modelUsage`: this Session's total so far, or null when
48
+ * it is not known (a resume without a baseline) or the frame says nothing
49
+ * (no `modelUsage`, or the zeroed one of a crash or startup-error result,
50
+ * which must not move the total back). A total below the last one is claude
51
+ * resetting its running total (its schema: "a mid-session /clear resets the
52
+ * running total"): the share counted so far is kept and counting restarts
53
+ * from zero.
54
+ */
55
+ export declare function foldModelUsage(usage: ClaudeModelUsage, message: JsonRecord): {
56
+ readonly usage: ClaudeModelUsage;
57
+ readonly total: TokenTotals | null;
58
+ };
59
+ //# sourceMappingURL=token-usage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"token-usage.d.ts","sourceRoot":"","sources":["../../../src/runtimes/claude/token-usage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAsB,KAAK,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAyB3E;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,WAAW,GAAG,SAAS,EAAE,OAAO,EAAE,UAAU,GAAG,WAAW,GAAG,IAAI,CAWvG;AAED,yCAAyC;AACzC,MAAM,MAAM,WAAW,GAAG,WAAW,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;AAE3D,mEAAmE;AACnE,MAAM,MAAM,mBAAmB;AAC7B,0DAA0D;AACxD;IAAE,QAAQ,CAAC,IAAI,EAAE,UAAU,CAAA;CAAE,GAC7B;IAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAA;CAAE;AAC1D,iFAAiF;GAC/E;IAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAA;CAAE,CAAC;AAEjC,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,QAAQ,EAAE,mBAAmB,CAAC;IACvC,gGAAgG;IAChG,QAAQ,CAAC,IAAI,EAAE,WAAW,CAAC;IAC3B,0FAA0F;IAC1F,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC;CAC/B;AAID,yFAAyF;AACzF,eAAO,MAAM,eAAe,EAAE,gBAA+F,CAAC;AAE9H,gEAAgE;AAChE,eAAO,MAAM,iBAAiB,EAAE,gBAAyE,CAAC;AAiB1G,8HAA8H;AAC9H,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,WAAW,GAAG,IAAI,CAe9D;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,UAAU,GAAG,KAAK,GAAG,mBAAmB,CAKnF;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,gBAAgB,EAAE,QAAQ,EAAE,mBAAmB,GAAG,gBAAgB,CAErG;AAoBD;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,gBAAgB,EAAE,OAAO,EAAE,UAAU,GAAG;IAAE,QAAQ,CAAC,KAAK,EAAE,gBAAgB,CAAC;IAAC,QAAQ,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI,CAAA;CAAE,CAgBrJ"}