@pentoshi/clai 4.11.26 → 4.11.27

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 (276) hide show
  1. package/dist/agent/compaction/summary-execution.js +11 -1
  2. package/dist/agent/compaction/summary-execution.js.map +1 -1
  3. package/dist/agent/context-manager.d.ts +0 -1
  4. package/dist/agent/context-manager.js +0 -1
  5. package/dist/agent/context-manager.js.map +1 -1
  6. package/dist/agent/events.d.ts +1 -5
  7. package/dist/agent/plan/actions/plan-clear.js +1 -1
  8. package/dist/agent/plan/actions/plan-clear.js.map +1 -1
  9. package/dist/agent/plan/actions/plan-create.js +38 -17
  10. package/dist/agent/plan/actions/plan-create.js.map +1 -1
  11. package/dist/agent/plan/actions/task-add.js +15 -4
  12. package/dist/agent/plan/actions/task-add.js.map +1 -1
  13. package/dist/agent/plan/actions/task-move.js +16 -5
  14. package/dist/agent/plan/actions/task-move.js.map +1 -1
  15. package/dist/agent/plan/handle-plan-tool.js +20 -6
  16. package/dist/agent/plan/handle-plan-tool.js.map +1 -1
  17. package/dist/agent/reliability-policy.d.ts +0 -10
  18. package/dist/agent/reliability-policy.js +0 -23
  19. package/dist/agent/reliability-policy.js.map +1 -1
  20. package/dist/agent/request-accounting.js +10 -10
  21. package/dist/agent/request-accounting.js.map +1 -1
  22. package/dist/agent/request-budget.d.ts +11 -18
  23. package/dist/agent/request-budget.js +14 -53
  24. package/dist/agent/request-budget.js.map +1 -1
  25. package/dist/agent/runner.js +16 -12
  26. package/dist/agent/runner.js.map +1 -1
  27. package/dist/agent/stream-recovery.d.ts +1 -2
  28. package/dist/agent/stream-recovery.js +5 -10
  29. package/dist/agent/stream-recovery.js.map +1 -1
  30. package/dist/agent/subagents/worker.js +3 -2
  31. package/dist/agent/subagents/worker.js.map +1 -1
  32. package/dist/agent/turn/automatic-compaction-execution.js +2 -2
  33. package/dist/agent/turn/automatic-compaction-execution.js.map +1 -1
  34. package/dist/agent/turn/compaction-admission.d.ts +2 -2
  35. package/dist/agent/turn/compaction-admission.js +14 -17
  36. package/dist/agent/turn/compaction-admission.js.map +1 -1
  37. package/dist/agent/turn/compaction-coordinator.d.ts +2 -1
  38. package/dist/agent/turn/compaction-coordinator.js +12 -7
  39. package/dist/agent/turn/compaction-coordinator.js.map +1 -1
  40. package/dist/agent/turn/compaction-durable-envelope.js +1 -1
  41. package/dist/agent/turn/compaction-durable-envelope.js.map +1 -1
  42. package/dist/agent/turn/compaction-replay-selection.js +2 -3
  43. package/dist/agent/turn/compaction-replay-selection.js.map +1 -1
  44. package/dist/agent/turn/compaction-summarizer.js +1 -1
  45. package/dist/agent/turn/compaction-summarizer.js.map +1 -1
  46. package/dist/agent/turn/loop/answer-path.js +2 -2
  47. package/dist/agent/turn/loop/answer-path.js.map +1 -1
  48. package/dist/agent/turn/loop/completion-interpretation.d.ts +0 -1
  49. package/dist/agent/turn/loop/completion-interpretation.js +2 -7
  50. package/dist/agent/turn/loop/completion-interpretation.js.map +1 -1
  51. package/dist/agent/turn/loop/deps.d.ts +1 -0
  52. package/dist/agent/turn/loop/empty-response.d.ts +1 -1
  53. package/dist/agent/turn/loop/empty-response.js +2 -4
  54. package/dist/agent/turn/loop/empty-response.js.map +1 -1
  55. package/dist/agent/turn/loop/output-budget.d.ts +0 -1
  56. package/dist/agent/turn/loop/output-budget.js +4 -9
  57. package/dist/agent/turn/loop/output-budget.js.map +1 -1
  58. package/dist/agent/turn/loop/request-assembly.d.ts +1 -3
  59. package/dist/agent/turn/loop/request-assembly.js +15 -15
  60. package/dist/agent/turn/loop/request-assembly.js.map +1 -1
  61. package/dist/agent/turn/loop/round-request.js +1 -6
  62. package/dist/agent/turn/loop/round-request.js.map +1 -1
  63. package/dist/agent/turn/loop/run-rounds.js +9 -15
  64. package/dist/agent/turn/loop/run-rounds.js.map +1 -1
  65. package/dist/agent/turn/loop/state.d.ts +2 -3
  66. package/dist/agent/turn/loop/state.js +1 -2
  67. package/dist/agent/turn/loop/state.js.map +1 -1
  68. package/dist/agent/turn/loop/stream-failure.d.ts +0 -1
  69. package/dist/agent/turn/loop/stream-failure.js +5 -5
  70. package/dist/agent/turn/loop/stream-failure.js.map +1 -1
  71. package/dist/agent/turn/loop/stream-request.d.ts +0 -1
  72. package/dist/agent/turn/loop/stream-request.js +1 -3
  73. package/dist/agent/turn/loop/stream-request.js.map +1 -1
  74. package/dist/agent/turn/plan-persistence.d.ts +4 -5
  75. package/dist/agent/turn/plan-persistence.js +13 -4
  76. package/dist/agent/turn/plan-persistence.js.map +1 -1
  77. package/dist/agent/turn/provider-measurement.d.ts +6 -0
  78. package/dist/agent/turn/provider-measurement.js +19 -0
  79. package/dist/agent/turn/provider-measurement.js.map +1 -0
  80. package/dist/agent/turn/responder-job-linkage.js +2 -2
  81. package/dist/agent/turn/responder-job-linkage.js.map +1 -1
  82. package/dist/agent/turn/setup/compaction-services.d.ts +2 -1
  83. package/dist/agent/turn/setup/compaction-services.js +2 -1
  84. package/dist/agent/turn/setup/compaction-services.js.map +1 -1
  85. package/dist/agent/turn/setup/task-gate-setup.d.ts +3 -3
  86. package/dist/agent/turn/setup/task-gate-setup.js.map +1 -1
  87. package/dist/agent/turn/task-autostart.d.ts +2 -2
  88. package/dist/agent/turn/task-autostart.js +7 -9
  89. package/dist/agent/turn/task-autostart.js.map +1 -1
  90. package/dist/agent/turn/task-credit.d.ts +2 -2
  91. package/dist/agent/turn/task-credit.js +8 -5
  92. package/dist/agent/turn/task-credit.js.map +1 -1
  93. package/dist/agent/turn/tool-execution/deps.d.ts +3 -3
  94. package/dist/agent/turn/tool-execution/dispatch.js +3 -5
  95. package/dist/agent/turn/tool-execution/dispatch.js.map +1 -1
  96. package/dist/agent/turn/tool-execution/meta-tools.d.ts +1 -1
  97. package/dist/agent/turn/tool-execution/meta-tools.js +13 -11
  98. package/dist/agent/turn/tool-execution/meta-tools.js.map +1 -1
  99. package/dist/agent/turn/tool-execution/plan-tool-ledger.d.ts +2 -2
  100. package/dist/agent/turn/tool-execution/plan-tool-ledger.js +6 -6
  101. package/dist/agent/turn/tool-execution/plan-tool-ledger.js.map +1 -1
  102. package/dist/agent/turn/tool-execution/result-framing.d.ts +1 -1
  103. package/dist/agent/turn/tool-execution/result-framing.js +1 -2
  104. package/dist/agent/turn/tool-execution/result-framing.js.map +1 -1
  105. package/dist/agent/turn/tool-execution/single-tool.js +28 -16
  106. package/dist/agent/turn/tool-execution/single-tool.js.map +1 -1
  107. package/dist/app/adapters/agent-event-adapter.js +7 -7
  108. package/dist/app/adapters/agent-event-adapter.js.map +1 -1
  109. package/dist/app/controllers/plan-controller.js +4 -1
  110. package/dist/app/controllers/plan-controller.js.map +1 -1
  111. package/dist/app/controllers/session-compact-helper.js +11 -8
  112. package/dist/app/controllers/session-compact-helper.js.map +1 -1
  113. package/dist/app/controllers/session-context-usage.d.ts +6 -4
  114. package/dist/app/controllers/session-context-usage.js +94 -33
  115. package/dist/app/controllers/session-context-usage.js.map +1 -1
  116. package/dist/app/controllers/session-controller.d.ts +5 -6
  117. package/dist/app/controllers/session-controller.js +48 -40
  118. package/dist/app/controllers/session-controller.js.map +1 -1
  119. package/dist/app/controllers/session-responder.d.ts +2 -0
  120. package/dist/app/controllers/session-responder.js +18 -0
  121. package/dist/app/controllers/session-responder.js.map +1 -1
  122. package/dist/app/events/app-event.d.ts +3 -5
  123. package/dist/app/events/app-event.js.map +1 -1
  124. package/dist/classic/panels/pager-panel.js +3 -2
  125. package/dist/classic/panels/pager-panel.js.map +1 -1
  126. package/dist/commands/providers.d.ts +2 -0
  127. package/dist/commands/providers.js +49 -7
  128. package/dist/commands/providers.js.map +1 -1
  129. package/dist/llm/anthropic.d.ts +1 -0
  130. package/dist/llm/anthropic.js +20 -21
  131. package/dist/llm/anthropic.js.map +1 -1
  132. package/dist/llm/capabilities.d.ts +1 -4
  133. package/dist/llm/capabilities.js +24 -19
  134. package/dist/llm/capabilities.js.map +1 -1
  135. package/dist/llm/capability/state.js +0 -17
  136. package/dist/llm/capability/state.js.map +1 -1
  137. package/dist/llm/catalog-facts.js +40 -11
  138. package/dist/llm/catalog-facts.js.map +1 -1
  139. package/dist/llm/catalog-prefetch.js +9 -6
  140. package/dist/llm/catalog-prefetch.js.map +1 -1
  141. package/dist/llm/context-snapshot.d.ts +7 -3
  142. package/dist/llm/context-snapshot.js +35 -14
  143. package/dist/llm/context-snapshot.js.map +1 -1
  144. package/dist/llm/context-windows.d.ts +16 -0
  145. package/dist/llm/context-windows.js +54 -19
  146. package/dist/llm/context-windows.js.map +1 -1
  147. package/dist/llm/custom-providers.js +5 -4
  148. package/dist/llm/custom-providers.js.map +1 -1
  149. package/dist/llm/explabs.js +35 -26
  150. package/dist/llm/explabs.js.map +1 -1
  151. package/dist/llm/free.d.ts +1 -1
  152. package/dist/llm/free.js +26 -18
  153. package/dist/llm/free.js.map +1 -1
  154. package/dist/llm/gemini.js +25 -12
  155. package/dist/llm/gemini.js.map +1 -1
  156. package/dist/llm/kiro-auth.d.ts +34 -3
  157. package/dist/llm/kiro-auth.js +315 -144
  158. package/dist/llm/kiro-auth.js.map +1 -1
  159. package/dist/llm/kiro-import-sources.d.ts +10 -0
  160. package/dist/llm/kiro-import-sources.js +117 -0
  161. package/dist/llm/kiro-import-sources.js.map +1 -0
  162. package/dist/llm/kiro-reasoning.d.ts +28 -0
  163. package/dist/llm/kiro-reasoning.js +150 -0
  164. package/dist/llm/kiro-reasoning.js.map +1 -0
  165. package/dist/llm/kiro-social-device.d.ts +21 -0
  166. package/dist/llm/kiro-social-device.js +101 -0
  167. package/dist/llm/kiro-social-device.js.map +1 -0
  168. package/dist/llm/kiro.d.ts +3 -1
  169. package/dist/llm/kiro.js +653 -187
  170. package/dist/llm/kiro.js.map +1 -1
  171. package/dist/llm/learned-capabilities.js +1 -3
  172. package/dist/llm/learned-capabilities.js.map +1 -1
  173. package/dist/llm/merge-gateway.js +18 -13
  174. package/dist/llm/merge-gateway.js.map +1 -1
  175. package/dist/llm/model-limit-store.d.ts +15 -0
  176. package/dist/llm/model-limit-store.js +121 -0
  177. package/dist/llm/model-limit-store.js.map +1 -0
  178. package/dist/llm/nvidia.d.ts +1 -0
  179. package/dist/llm/nvidia.js +15 -17
  180. package/dist/llm/nvidia.js.map +1 -1
  181. package/dist/llm/ollama-model-limits.d.ts +4 -0
  182. package/dist/llm/ollama-model-limits.js +91 -0
  183. package/dist/llm/ollama-model-limits.js.map +1 -0
  184. package/dist/llm/ollama.js +2 -1
  185. package/dist/llm/ollama.js.map +1 -1
  186. package/dist/llm/orcarouter.d.ts +1 -0
  187. package/dist/llm/orcarouter.js +8 -1
  188. package/dist/llm/orcarouter.js.map +1 -1
  189. package/dist/llm/provider-context-usage.d.ts +9 -0
  190. package/dist/llm/provider-context-usage.js +39 -0
  191. package/dist/llm/provider-context-usage.js.map +1 -0
  192. package/dist/llm/qwen-cloud.d.ts +1 -0
  193. package/dist/llm/qwen-cloud.js +44 -9
  194. package/dist/llm/qwen-cloud.js.map +1 -1
  195. package/dist/llm/reasoning-errors.d.ts +1 -0
  196. package/dist/llm/reasoning-errors.js +6 -0
  197. package/dist/llm/reasoning-errors.js.map +1 -1
  198. package/dist/llm/routing/attempt-complete.js +9 -2
  199. package/dist/llm/routing/attempt-complete.js.map +1 -1
  200. package/dist/llm/routing/attempt-request.d.ts +1 -0
  201. package/dist/llm/routing/attempt-request.js +23 -0
  202. package/dist/llm/routing/attempt-request.js.map +1 -1
  203. package/dist/llm/routing/attempt-stream.js +15 -2
  204. package/dist/llm/routing/attempt-stream.js.map +1 -1
  205. package/dist/llm/token-estimate-calibration.js +1 -2
  206. package/dist/llm/token-estimate-calibration.js.map +1 -1
  207. package/dist/llm/token-usage.d.ts +2 -0
  208. package/dist/llm/token-usage.js +1 -1
  209. package/dist/llm/token-usage.js.map +1 -1
  210. package/dist/llm/wire/anthropic-model-catalog.d.ts +1 -0
  211. package/dist/llm/wire/anthropic-model-catalog.js +30 -0
  212. package/dist/llm/wire/anthropic-model-catalog.js.map +1 -0
  213. package/dist/llm/wire/dashscope-model-catalog.d.ts +1 -0
  214. package/dist/llm/wire/dashscope-model-catalog.js +53 -0
  215. package/dist/llm/wire/dashscope-model-catalog.js.map +1 -0
  216. package/dist/llm/wire/orcarouter-model-catalog.d.ts +2 -0
  217. package/dist/llm/wire/orcarouter-model-catalog.js +91 -0
  218. package/dist/llm/wire/orcarouter-model-catalog.js.map +1 -0
  219. package/dist/noninteractive/stream-blocks.d.ts +0 -3
  220. package/dist/noninteractive/stream-blocks.js +0 -9
  221. package/dist/noninteractive/stream-blocks.js.map +1 -1
  222. package/dist/noninteractive/stream-renderer.js +1 -4
  223. package/dist/noninteractive/stream-renderer.js.map +1 -1
  224. package/dist/store/config/endpoints.d.ts +0 -6
  225. package/dist/store/config/endpoints.js +1 -35
  226. package/dist/store/config/endpoints.js.map +1 -1
  227. package/dist/store/context-limits.d.ts +4 -0
  228. package/dist/store/context-limits.js +29 -0
  229. package/dist/store/context-limits.js.map +1 -0
  230. package/dist/store/plan/jsonl-backend.js +1 -4
  231. package/dist/store/plan/jsonl-backend.js.map +1 -1
  232. package/dist/store/plan/mutation.js +31 -1
  233. package/dist/store/plan/mutation.js.map +1 -1
  234. package/dist/store/plan/sqlite-backend.js +27 -9
  235. package/dist/store/plan/sqlite-backend.js.map +1 -1
  236. package/dist/tui-v2/components/pager/pager-line.d.ts +2 -0
  237. package/dist/tui-v2/components/pager/pager-line.js +1 -2
  238. package/dist/tui-v2/components/pager/pager-line.js.map +1 -1
  239. package/dist/tui-v2/components/pager/pager.js +5 -2
  240. package/dist/tui-v2/components/pager/pager.js.map +1 -1
  241. package/dist/tui-v2/components/transcript/tool-card.js +1 -1
  242. package/dist/tui-v2/components/transcript/tool-card.js.map +1 -1
  243. package/dist/types.d.ts +3 -1
  244. package/dist/types.js.map +1 -1
  245. package/dist/ui-core/bootstrap/composition-root.js +8 -5
  246. package/dist/ui-core/bootstrap/composition-root.js.map +1 -1
  247. package/dist/ui-core/bootstrap/session-resume.js +1 -2
  248. package/dist/ui-core/bootstrap/session-resume.js.map +1 -1
  249. package/dist/ui-core/commands/key-commands.d.ts +2 -0
  250. package/dist/ui-core/commands/key-commands.js +76 -20
  251. package/dist/ui-core/commands/key-commands.js.map +1 -1
  252. package/dist/ui-core/commands/session-commands.js +33 -9
  253. package/dist/ui-core/commands/session-commands.js.map +1 -1
  254. package/dist/ui-core/rendering/batch-sections.js +10 -1
  255. package/dist/ui-core/rendering/batch-sections.js.map +1 -1
  256. package/dist/ui-core/rendering/context-limit.d.ts +0 -1
  257. package/dist/ui-core/rendering/context-limit.js +2 -2
  258. package/dist/ui-core/rendering/context-limit.js.map +1 -1
  259. package/dist/ui-core/rendering/subagent-presentation.d.ts +2 -0
  260. package/dist/ui-core/rendering/subagent-presentation.js +20 -7
  261. package/dist/ui-core/rendering/subagent-presentation.js.map +1 -1
  262. package/dist/ui-core/rendering/subagent-source.js +15 -8
  263. package/dist/ui-core/rendering/subagent-source.js.map +1 -1
  264. package/dist/ui-core/state/transcript/apply-app-event.js +0 -1
  265. package/dist/ui-core/state/transcript/apply-app-event.js.map +1 -1
  266. package/dist/ui-core/state/transcript-types.js +1 -1
  267. package/dist/ui-core/state/transcript-types.js.map +1 -1
  268. package/dist/version.generated.d.ts +2 -2
  269. package/dist/version.generated.js +2 -2
  270. package/package.json +1 -1
  271. package/dist/app/controllers/session-context-limits.d.ts +0 -8
  272. package/dist/app/controllers/session-context-limits.js +0 -35
  273. package/dist/app/controllers/session-context-limits.js.map +0 -1
  274. package/dist/store/config/compaction.d.ts +0 -1
  275. package/dist/store/config/compaction.js +0 -2
  276. package/dist/store/config/compaction.js.map +0 -1
@@ -1,7 +1,9 @@
1
1
  import { estimateMessagesTokens } from "../../agent/context-manager.js";
2
+ import { autoCompactTriggerTokens } from "../../agent/request-budget.js";
2
3
  import { resolveEffectiveContextLimit } from "../../agent/request-accounting.js";
4
+ import { resolveContextWindow, } from "../../llm/context-windows.js";
3
5
  import { calibratedRequestTokens } from "../../llm/token-estimate-calibration.js";
4
- import { contextLimitFromSessionOverride, contextSnapshotFromLegacy, createContextSnapshot, isContextSnapshotV1, toLegacyContextUsage, withContextSnapshotLimit, } from "../../llm/context-snapshot.js";
6
+ import { contextSnapshotFromLegacy, createContextSnapshot, isContextSnapshotV1, isProviderMeasuredPrecision, toLegacyContextUsage, withContextSnapshotLimit, } from "../../llm/context-snapshot.js";
5
7
  import { effectivePromptTokens } from "../../llm/token-usage.js";
6
8
  const systemNow = () => Date.now();
7
9
  export function contextUsageLimit(target) {
@@ -10,11 +12,41 @@ export function contextUsageLimit(target) {
10
12
  ? Math.floor(limit)
11
13
  : 0;
12
14
  }
15
+ const LIMIT_SOURCE_BY_WINDOW = {
16
+ "session-override": "session-override",
17
+ provider: "model-catalog",
18
+ "model-table": "model-table",
19
+ default: "default",
20
+ };
13
21
  function limitFor(target) {
14
- return contextLimitFromSessionOverride(contextUsageLimit(target));
22
+ const window = resolveContextWindow({
23
+ provider: target.provider,
24
+ model: target.model,
25
+ contextLimitTokens: contextUsageLimit(target) || undefined,
26
+ });
27
+ return {
28
+ source: LIMIT_SOURCE_BY_WINDOW[window.source],
29
+ tokens: window.tokens,
30
+ ...(window.providerTokens !== undefined
31
+ ? { providerTokens: window.providerTokens }
32
+ : {}),
33
+ ...(window.overrideTokens !== undefined
34
+ ? { requestedTokens: window.overrideTokens }
35
+ : {}),
36
+ compactTriggerTokens: autoCompactTriggerTokens(target),
37
+ };
15
38
  }
16
39
  function sameLimit(left, right) {
17
- return left.source === right.source && left.tokens === right.tokens;
40
+ return (left.source === right.source &&
41
+ left.tokens === right.tokens &&
42
+ left.providerTokens === right.providerTokens &&
43
+ left.requestedTokens === right.requestedTokens &&
44
+ left.compactTriggerTokens === right.compactTriggerTokens);
45
+ }
46
+ function usagePrecision(usage) {
47
+ if (usage.exact)
48
+ return "provider-exact";
49
+ return usage.promptTokensSource === "provider-ratio" ? "provider-ratio" : "estimate";
18
50
  }
19
51
  function hasPromptMeasurement(usage) {
20
52
  return usage.promptTokensKnown !== false;
@@ -60,13 +92,56 @@ export function resolveContextSnapshot(target, current) {
60
92
  ? current
61
93
  : withContextSnapshotLimit(current, limitFor(target));
62
94
  }
95
+ export function contextSnapshotForRoute(target, current) {
96
+ if (!current)
97
+ return undefined;
98
+ const attempt = current.attempt;
99
+ const measuredOnOtherRoute = isProviderMeasuredPrecision(current.precision) &&
100
+ attempt.kind === "generation" &&
101
+ (attempt.provider !== target.provider || attempt.model !== target.model);
102
+ if (!measuredOnOtherRoute)
103
+ return resolveContextSnapshot(target, current);
104
+ return createContextSnapshot({
105
+ contextTokens: current.contextTokens,
106
+ lastCompletionTokens: current.lastCompletionTokens,
107
+ sessionPromptTokens: current.sessionPromptTokens,
108
+ sessionCompletionTokens: current.sessionCompletionTokens,
109
+ scope: current.scope,
110
+ precision: "estimate",
111
+ limit: limitFor(target),
112
+ cache: current.cache,
113
+ reasoning: current.reasoning,
114
+ attempt,
115
+ observedAt: current.observedAt,
116
+ });
117
+ }
118
+ function accumulatedSessionTokens(current, usage) {
119
+ return {
120
+ sessionPromptTokens: (current?.sessionPromptTokens ?? 0) +
121
+ (usage.exact && hasPromptMeasurement(usage) ? usage.promptTokens : 0),
122
+ sessionCompletionTokens: (current?.sessionCompletionTokens ?? 0) +
123
+ (usage.exact ? usage.completionTokens : 0),
124
+ };
125
+ }
126
+ export function recordAuxiliaryUsageSnapshot(target, current, usage) {
127
+ if (!current)
128
+ return undefined;
129
+ return createContextSnapshot({
130
+ contextTokens: current.contextTokens,
131
+ lastCompletionTokens: current.lastCompletionTokens,
132
+ ...accumulatedSessionTokens(current, usage),
133
+ scope: current.scope,
134
+ precision: current.precision,
135
+ limit: limitFor(target),
136
+ cache: current.cache,
137
+ reasoning: current.reasoning,
138
+ attempt: current.attempt,
139
+ observedAt: current.observedAt,
140
+ });
141
+ }
63
142
  export function recordContextUsageSnapshot(target, current, usage, attempt, now = systemNow) {
64
- const promptMeasured = hasPromptMeasurement(usage);
65
143
  const consumedPromptTokens = effectivePromptTokens(usage);
66
- const sessionPromptTokens = (current?.sessionPromptTokens ?? 0) +
67
- (usage.exact && promptMeasured ? usage.promptTokens : 0);
68
- const sessionCompletionTokens = (current?.sessionCompletionTokens ?? 0) +
69
- (usage.exact ? usage.completionTokens : 0);
144
+ const { sessionPromptTokens, sessionCompletionTokens } = accumulatedSessionTokens(current, usage);
70
145
  const cache = reportedCache(usage);
71
146
  const reasoning = reportedReasoning(usage);
72
147
  if (consumedPromptTokens === undefined) {
@@ -90,7 +165,7 @@ export function recordContextUsageSnapshot(target, current, usage, attempt, now
90
165
  sessionPromptTokens,
91
166
  sessionCompletionTokens,
92
167
  scope: "provider-request",
93
- precision: usage.exact ? "provider-exact" : "estimate",
168
+ precision: usagePrecision(usage),
94
169
  limit: limitFor(target),
95
170
  ...(cache ? { cache } : {}),
96
171
  ...(reasoning ? { reasoning } : {}),
@@ -113,36 +188,22 @@ export function compactedContextSnapshot(target, current, history, afterTokens,
113
188
  observedAt: now(),
114
189
  });
115
190
  }
116
- export function estimatedContextSnapshot(target, current, estimatedTokens, now = systemNow, promptUsageMissing = false) {
117
- if (!current && !promptUsageMissing)
118
- return undefined;
119
- if (!Number.isFinite(estimatedTokens) || estimatedTokens <= 0)
120
- return current;
121
- if (current?.precision === "provider-exact") {
122
- return resolveContextSnapshot(target, current);
123
- }
124
- const tokens = Math.floor(estimatedTokens);
125
- return createContextSnapshot({
126
- contextTokens: tokens,
127
- lastCompletionTokens: current?.lastCompletionTokens,
128
- sessionPromptTokens: current?.sessionPromptTokens,
129
- sessionCompletionTokens: current?.sessionCompletionTokens,
130
- scope: "assembled-request",
131
- precision: "estimate",
132
- limit: limitFor(target),
133
- observedAt: now(),
134
- });
135
- }
136
191
  export function createContextProjector(formatChip) {
137
192
  return (target, current) => {
138
193
  const contextSnapshot = resolveContextSnapshot(target, current);
139
- const contextUsage = contextSnapshot
140
- ? toLegacyContextUsage(contextSnapshot)
141
- : undefined;
194
+ const view = contextSnapshot ??
195
+ createContextSnapshot({
196
+ contextTokens: 0,
197
+ scope: "unknown",
198
+ precision: "unknown",
199
+ limit: limitFor(target),
200
+ });
201
+ const contextUsage = toLegacyContextUsage(view);
142
202
  return {
143
203
  contextSnapshot,
144
204
  contextUsage,
145
- contextChip: contextUsage ? formatChip(contextUsage) : undefined,
205
+ contextChip: formatChip(contextUsage),
206
+ contextLimit: view.limit,
146
207
  };
147
208
  };
148
209
  }
@@ -1 +1 @@
1
- {"version":3,"file":"session-context-usage.js","sourceRoot":"","sources":["../../../src/app/controllers/session-context-usage.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session-context-usage.js","sourceRoot":"","sources":["../../../src/app/controllers/session-context-usage.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import type { ChatMessage, Mode, ProviderId, TokenUsage, ToolResult } from "../../types.js";
2
2
  import { type CompactResult } from "../../agent/context-manager.js";
3
3
  import { type ContextUsageSnapshot } from "../../llm/token-usage.js";
4
- import type { ContextAttemptReference, ContextSnapshotV1 } from "../../llm/context-snapshot.js";
4
+ import { type ContextAttemptReference, type ContextSnapshotLimit, type ContextSnapshotV1 } from "../../llm/context-snapshot.js";
5
5
  import { type PartialUsageSnapshot } from "./session-context-usage.js";
6
6
  import { SubagentManager } from "../../agent/subagents/manager.js";
7
7
  import type { PreviousTurnSignal } from "../../agent/continue-orient.js";
@@ -43,6 +43,7 @@ export interface SessionState {
43
43
  readonly contextSnapshot: ContextSnapshotV1 | undefined;
44
44
  readonly contextUsage: ContextUsageSnapshot | undefined;
45
45
  readonly contextChip: string | undefined;
46
+ readonly contextLimit?: ContextSnapshotLimit | undefined;
46
47
  }
47
48
  export type NoticeLevel = "info" | "warn";
48
49
  export interface SessionControllerDeps {
@@ -98,9 +99,7 @@ export declare class SessionController implements Disposable {
98
99
  private readonly persistence;
99
100
  private static readonly AUTOSAVE_MIN_MS;
100
101
  private contextSnapshot;
101
- private preserveCompactionEstimate;
102
102
  private lastContextCompactionId;
103
- private readonly contextLimits;
104
103
  private readonly usageLedger;
105
104
  private lifecycleGeneration;
106
105
  private lastTurnResult;
@@ -120,16 +119,16 @@ export declare class SessionController implements Disposable {
120
119
  private requestScopedContextTokens;
121
120
  private requestScopedContextMeasurement;
122
121
  private providerReportedContextTokens;
123
- recordTokenUsage(usage: TokenUsage, model?: string, provider?: ProviderId, attempt?: ContextAttemptReference, api?: string | undefined): void;
122
+ recordTokenUsage(usage: TokenUsage, model?: string, provider?: ProviderId, attempt?: ContextAttemptReference, api?: string | undefined, auxiliary?: boolean): void;
124
123
  usageReport(): SessionUsageReport;
125
- noteContextCompacted(afterTokens?: number, scope?: "message-history" | "assembled-request", compactionId?: string, measurement?: "provider-reported" | "estimated" | undefined): void;
126
- noteContextEstimate(estimatedTokens: number, promptUsageMissing?: boolean): void;
124
+ noteContextCompacted(afterTokens?: number, scope?: "message-history" | "assembled-request", compactionId?: string): void;
127
125
  get messages(): readonly ChatMessage[];
128
126
  subscribe(listener: SessionStateListener): () => void;
129
127
  notifyExternalUpdate(): void;
130
128
  setProvider(provider: ProviderId | undefined): void;
131
129
  setContextLimitTokens(limit: number | undefined): void;
132
130
  setModel(model: string | undefined): void;
131
+ private refreshProviderCatalog;
133
132
  setMode(mode: Mode): void;
134
133
  loadHistory(messages: readonly ChatMessage[], options?: {
135
134
  sessionId?: string;
@@ -1,6 +1,7 @@
1
1
  import { projectToolHistory, repairToolProtocol, } from "../../agent/tool-history.js";
2
2
  import { formatContextChip, } from "../../llm/token-usage.js";
3
- import { compactedContextSnapshot, recordContextUsageSnapshot, resolveContextSnapshot as resolveSnapshot, restoredContextSnapshot, createContextProjector, estimatedContextSnapshot, } from "./session-context-usage.js";
3
+ import { isProviderMeasuredPrecision, } from "../../llm/context-snapshot.js";
4
+ import { compactedContextSnapshot, recordAuxiliaryUsageSnapshot, recordContextUsageSnapshot, resolveContextSnapshot as resolveSnapshot, contextSnapshotForRoute, restoredContextSnapshot, createContextProjector, } from "./session-context-usage.js";
4
5
  import { createSessionPolicy } from "../../agent/session-policy.js";
5
6
  import { SubagentManager } from "../../agent/subagents/manager.js";
6
7
  import { createSubagentStore } from "../../store/subagents.js";
@@ -25,7 +26,7 @@ import { CompositeDisposable } from "./disposable.js";
25
26
  import { hasPersistableHistory, mintSessionId, pathBackedMessages, persistedContextUsage, SessionPersistenceQueue, } from "./session-persistence.js";
26
27
  import { SessionPromptQueue, } from "./session-prompt-queue.js";
27
28
  import { IDLE_RESPONDER_STATE, SessionResponder, } from "./session-responder.js";
28
- import { SessionContextLimits } from "./session-context-limits.js";
29
+ import { customContextLimit, setCustomContextLimit } from "../../store/context-limits.js";
29
30
  import { SessionUsageLedger, } from "./session-usage-ledger.js";
30
31
  import { completeForSessionNaming, SessionNamer } from "./session-naming.js";
31
32
  export class SessionController {
@@ -59,9 +60,7 @@ export class SessionController {
59
60
  persistence;
60
61
  static AUTOSAVE_MIN_MS = 15_000;
61
62
  contextSnapshot;
62
- preserveCompactionEstimate = false;
63
63
  lastContextCompactionId;
64
- contextLimits = new SessionContextLimits();
65
64
  usageLedger = new SessionUsageLedger();
66
65
  lifecycleGeneration = 0;
67
66
  lastTurnResult;
@@ -80,7 +79,7 @@ export class SessionController {
80
79
  this.policy.subagents = this.subagentsValue;
81
80
  void this.deps.interactiveSessions?.activateOwner(this.sessionIdValue).catch(() => undefined);
82
81
  beginSessionWorkspace();
83
- void prefetchProviderCatalog(this.provider);
82
+ this.refreshProviderCatalog();
84
83
  publishRouteReasoningVocabulary(this.provider, this.model);
85
84
  this.sequencer = new EventSequencer(this.sessionIdValue, deps.idFactory, deps.clock);
86
85
  this.turn = this.disposables.add(new TurnController({
@@ -162,7 +161,7 @@ export class SessionController {
162
161
  return this.sessionIdValue;
163
162
  }
164
163
  getState() {
165
- const { contextSnapshot, contextUsage, contextChip } = this.contextUsageProjection();
164
+ const { contextSnapshot, contextUsage, contextChip, contextLimit } = this.contextUsageProjection();
166
165
  const subagentRuns = this.subagentsValue.list();
167
166
  const subagents = {
168
167
  enabled: this.subagentsValue.enabled,
@@ -187,19 +186,23 @@ export class SessionController {
187
186
  contextSnapshot,
188
187
  contextUsage,
189
188
  contextChip,
189
+ contextLimit,
190
190
  };
191
191
  }
192
192
  contextUsageProjection() {
193
193
  return this.projectContext(this.usageTarget, this.contextSnapshot);
194
194
  }
195
195
  get contextLimitTokens() {
196
- return this.contextLimits.get(this.provider, this.model);
196
+ return customContextLimit(this.provider, this.model);
197
197
  }
198
198
  get usageTarget() {
199
- const contextLimitTokens = this.contextLimitTokens;
199
+ const config = getConfig();
200
+ const provider = this.provider ?? config.defaultProvider;
201
+ const model = this.model ?? getProviderModel(provider);
202
+ const contextLimitTokens = customContextLimit(provider, model);
200
203
  return {
201
- provider: this.provider,
202
- model: this.model,
204
+ provider,
205
+ model,
203
206
  ...(contextLimitTokens ? { contextLimitTokens } : {}),
204
207
  };
205
208
  }
@@ -222,7 +225,7 @@ export class SessionController {
222
225
  const snapshot = this.contextSnapshot;
223
226
  if (!snapshot || snapshot.contextTokens <= 0)
224
227
  return undefined;
225
- return snapshot.precision === "provider-exact"
228
+ return isProviderMeasuredPrecision(snapshot.precision)
226
229
  ? "provider-reported"
227
230
  : "estimated";
228
231
  }
@@ -230,7 +233,7 @@ export class SessionController {
230
233
  const snapshot = this.contextSnapshot;
231
234
  const attempt = snapshot?.attempt;
232
235
  if (!snapshot ||
233
- snapshot.precision !== "provider-exact" ||
236
+ !isProviderMeasuredPrecision(snapshot.precision) ||
234
237
  snapshot.scope !== "provider-request" ||
235
238
  snapshot.contextTokens <= 0 ||
236
239
  attempt?.kind !== "generation" ||
@@ -238,44 +241,36 @@ export class SessionController {
238
241
  attempt.model !== this.model) {
239
242
  return undefined;
240
243
  }
241
- return snapshot.contextTokens;
242
- }
243
- recordTokenUsage(usage, model, provider, attempt, api) {
244
+ const reasoningTokens = snapshot.reasoning.kind === "reported" ? snapshot.reasoning.outputTokens ?? 0 : 0;
245
+ return (snapshot.contextTokens +
246
+ Math.max(0, snapshot.lastCompletionTokens - reasoningTokens));
247
+ }
248
+ recordTokenUsage(usage, model, provider, attempt, api, auxiliary = false) {
249
+ if (auxiliary) {
250
+ this.usageLedger.record(usage, provider ?? this.provider, model ?? this.model, api);
251
+ this.setContextSnapshot(recordAuxiliaryUsageSnapshot(this.usageTarget, this.contextSnapshot, usage));
252
+ this.notifyState();
253
+ return;
254
+ }
244
255
  if (provider !== undefined)
245
256
  this.provider = provider;
246
257
  if (model !== undefined)
247
258
  this.model = model;
248
259
  this.usageLedger.record(usage, this.provider, this.model, api);
249
260
  this.setContextSnapshot(recordContextUsageSnapshot(this.usageTarget, this.contextSnapshot, usage, attempt, () => this.contextTimestamp()));
250
- if (usage.exact && usage.promptTokensKnown !== false) {
251
- this.preserveCompactionEstimate = false;
252
- }
253
261
  this.notifyState();
254
262
  }
255
263
  usageReport() {
256
264
  return this.usageLedger.report();
257
265
  }
258
- noteContextCompacted(afterTokens, scope = "assembled-request", compactionId, measurement) {
266
+ noteContextCompacted(afterTokens, scope = "assembled-request", compactionId) {
259
267
  if (compactionId && compactionId === this.lastContextCompactionId)
260
268
  return;
261
269
  this.setContextSnapshot(compactedContextSnapshot(this.usageTarget, this.contextSnapshot, this.history, afterTokens, scope, () => this.contextTimestamp()));
262
- this.preserveCompactionEstimate =
263
- typeof afterTokens === "number" &&
264
- Number.isFinite(afterTokens) &&
265
- afterTokens > 0;
266
270
  if (compactionId)
267
271
  this.lastContextCompactionId = compactionId;
268
272
  this.notifyState();
269
273
  }
270
- noteContextEstimate(estimatedTokens, promptUsageMissing = false) {
271
- if (this.preserveCompactionEstimate)
272
- return;
273
- const next = estimatedContextSnapshot(this.usageTarget, this.contextSnapshot, estimatedTokens, () => this.contextTimestamp(), promptUsageMissing);
274
- if (next !== this.contextSnapshot) {
275
- this.setContextSnapshot(next);
276
- this.notifyState();
277
- }
278
- }
279
274
  get messages() {
280
275
  return this.history;
281
276
  }
@@ -289,25 +284,37 @@ export class SessionController {
289
284
  setProvider(provider) {
290
285
  this.provider = provider;
291
286
  this.lastMainRequestSnapshot = undefined;
292
- this.setContextSnapshot(this.resolveContextSnapshot());
287
+ this.setContextSnapshot(contextSnapshotForRoute(this.usageTarget, this.contextSnapshot));
293
288
  clearTextOnlyModels();
294
- void prefetchProviderCatalog(provider);
289
+ this.refreshProviderCatalog();
295
290
  publishRouteReasoningVocabulary(provider, this.model);
296
291
  this.notifyState();
297
292
  }
298
293
  setContextLimitTokens(limit) {
299
- this.contextLimits.set(this.provider, this.model, limit);
294
+ setCustomContextLimit(this.provider, this.model, limit);
300
295
  this.setContextSnapshot(this.resolveContextSnapshot());
301
296
  this.notifyState();
302
297
  }
303
298
  setModel(model) {
304
299
  this.model = model;
305
300
  this.lastMainRequestSnapshot = undefined;
306
- this.setContextSnapshot(this.resolveContextSnapshot());
301
+ this.setContextSnapshot(contextSnapshotForRoute(this.usageTarget, this.contextSnapshot));
307
302
  clearTextOnlyModels();
303
+ this.refreshProviderCatalog();
308
304
  publishRouteReasoningVocabulary(this.provider, model);
309
305
  this.notifyState();
310
306
  }
307
+ refreshProviderCatalog() {
308
+ const provider = this.provider ?? getConfig().defaultProvider;
309
+ const generation = this.lifecycleGeneration;
310
+ void prefetchProviderCatalog(provider).then(() => {
311
+ const currentProvider = this.provider ?? getConfig().defaultProvider;
312
+ if (generation !== this.lifecycleGeneration || provider !== currentProvider)
313
+ return;
314
+ this.setContextSnapshot(this.resolveContextSnapshot());
315
+ this.notifyState();
316
+ });
317
+ }
311
318
  setMode(mode) {
312
319
  this.mode = mode;
313
320
  this.notifyState();
@@ -324,7 +331,6 @@ export class SessionController {
324
331
  this.sessionTitle = options.title;
325
332
  this.namer.restore(options.title);
326
333
  this.lastContextCompactionId = undefined;
327
- this.preserveCompactionEstimate = false;
328
334
  const restored = restoredContextSnapshot(this.usageTarget, options.contextUsage, () => this.contextTimestamp());
329
335
  this.usageLedger.restore(options.contextUsage?.routeUsage);
330
336
  if (restored) {
@@ -357,7 +363,7 @@ export class SessionController {
357
363
  this.model = model;
358
364
  this.lastMainRequestSnapshot = undefined;
359
365
  clearTextOnlyModels();
360
- void prefetchProviderCatalog(this.provider);
366
+ this.refreshProviderCatalog();
361
367
  publishRouteReasoningVocabulary(this.provider, this.model);
362
368
  }
363
369
  notice(level, text) {
@@ -490,7 +496,7 @@ export class SessionController {
490
496
  this.history = result.messages;
491
497
  if (result.summarized) {
492
498
  this.lastMainRequestSnapshot = undefined;
493
- this.noteContextCompacted(reported.afterTokens, reported.scope, compactionId, reported.measurement);
499
+ this.noteContextCompacted(reported.afterTokens, reported.scope, compactionId);
494
500
  }
495
501
  this.notifyState();
496
502
  },
@@ -639,6 +645,8 @@ export class SessionController {
639
645
  const config = getConfig();
640
646
  const provider = this.provider ?? config.defaultProvider;
641
647
  const model = this.model ?? getProviderModel(provider);
648
+ this.refreshProviderCatalog();
649
+ this.setContextSnapshot(this.resolveContextSnapshot());
642
650
  const providerReportedContextTokens = this.providerReportedContextTokens();
643
651
  const checkpoint = this.continuationCheckpoint();
644
652
  const built = buildTurnRequest({
@@ -661,7 +669,7 @@ export class SessionController {
661
669
  ...(this.contextLimitTokens
662
670
  ? { contextLimitTokens: this.contextLimitTokens }
663
671
  : {}),
664
- getContextLimitTokens: (routeProvider, routeModel) => this.contextLimits.get(routeProvider, routeModel),
672
+ getContextLimitTokens: (routeProvider, routeModel) => customContextLimit(routeProvider, routeModel),
665
673
  });
666
674
  if (built.fallbackReason)
667
675
  this.notice("info", built.fallbackReason);
@@ -1 +1 @@
1
- {"version":3,"file":"session-controller.js","sourceRoot":"","sources":["../../../src/app/controllers/session-controller.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session-controller.js","sourceRoot":"","sources":["../../../src/app/controllers/session-controller.ts"],"names":[],"mappings":"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"}