@qduc/term2 0.32.2 → 0.33.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 (269) hide show
  1. package/dist/build-info.json +2 -2
  2. package/dist/components/menu/ModelSelectionMenu.d.ts.map +1 -1
  3. package/dist/components/menu/ModelSelectionMenu.js +12 -14
  4. package/dist/components/menu/ModelSelectionMenu.js.map +1 -1
  5. package/dist/lib/agent-chat-service.d.ts.map +1 -1
  6. package/dist/lib/agent-chat-service.js +2 -6
  7. package/dist/lib/agent-chat-service.js.map +1 -1
  8. package/dist/lib/agent-client.d.ts +2 -1
  9. package/dist/lib/agent-client.d.ts.map +1 -1
  10. package/dist/lib/agent-client.js +71 -84
  11. package/dist/lib/agent-client.js.map +1 -1
  12. package/dist/lib/agent-factory.d.ts.map +1 -1
  13. package/dist/lib/agent-factory.js +17 -19
  14. package/dist/lib/agent-factory.js.map +1 -1
  15. package/dist/prompts/tool-surface-guidance.js +1 -1
  16. package/dist/prompts/tool-surface-guidance.js.map +1 -1
  17. package/dist/prompts/tool-surface-guidance.ts +1 -1
  18. package/dist/providers/ai-sdk-anthropic.provider.d.ts.map +1 -1
  19. package/dist/providers/ai-sdk-anthropic.provider.js +16 -2
  20. package/dist/providers/ai-sdk-anthropic.provider.js.map +1 -1
  21. package/dist/providers/ai-sdk-google.provider.d.ts.map +1 -1
  22. package/dist/providers/ai-sdk-google.provider.js +16 -2
  23. package/dist/providers/ai-sdk-google.provider.js.map +1 -1
  24. package/dist/providers/ai-sdk-openrouter.provider.d.ts.map +1 -1
  25. package/dist/providers/ai-sdk-openrouter.provider.js +16 -1
  26. package/dist/providers/ai-sdk-openrouter.provider.js.map +1 -1
  27. package/dist/providers/ai-sdk-provider-settings.d.ts +2 -0
  28. package/dist/providers/ai-sdk-provider-settings.d.ts.map +1 -1
  29. package/dist/providers/ai-sdk-provider-settings.js +5 -0
  30. package/dist/providers/ai-sdk-provider-settings.js.map +1 -1
  31. package/dist/providers/ai-sdk-streamed-model.d.ts +3 -3
  32. package/dist/providers/ai-sdk-streamed-model.d.ts.map +1 -1
  33. package/dist/providers/ai-sdk-streamed-model.js +5 -69
  34. package/dist/providers/ai-sdk-streamed-model.js.map +1 -1
  35. package/dist/providers/anthropic-chat-caching.d.ts +5 -0
  36. package/dist/providers/anthropic-chat-caching.d.ts.map +1 -0
  37. package/dist/providers/{common/openai-compatible-messages.js → anthropic-chat-caching.js} +19 -1
  38. package/dist/providers/anthropic-chat-caching.js.map +1 -0
  39. package/dist/providers/codex.provider.js +2 -0
  40. package/dist/providers/codex.provider.js.map +1 -1
  41. package/dist/providers/custom-provider-runtime.d.ts +18 -0
  42. package/dist/providers/custom-provider-runtime.d.ts.map +1 -0
  43. package/dist/providers/custom-provider-runtime.js +26 -0
  44. package/dist/providers/custom-provider-runtime.js.map +1 -0
  45. package/dist/providers/llama-cpp.provider.d.ts +3 -0
  46. package/dist/providers/llama-cpp.provider.d.ts.map +1 -1
  47. package/dist/providers/llama-cpp.provider.js +17 -0
  48. package/dist/providers/llama-cpp.provider.js.map +1 -1
  49. package/dist/providers/neuralwatt.provider.d.ts +6 -0
  50. package/dist/providers/neuralwatt.provider.d.ts.map +1 -0
  51. package/dist/providers/neuralwatt.provider.js +8 -0
  52. package/dist/providers/neuralwatt.provider.js.map +1 -0
  53. package/dist/providers/openai-compatible-lazy.d.ts.map +1 -1
  54. package/dist/providers/openai-compatible-lazy.js +2 -0
  55. package/dist/providers/openai-compatible-lazy.js.map +1 -1
  56. package/dist/providers/openai-compatible-middleware.d.ts +4 -9
  57. package/dist/providers/openai-compatible-middleware.d.ts.map +1 -1
  58. package/dist/providers/openai-compatible-middleware.js +25 -48
  59. package/dist/providers/openai-compatible-middleware.js.map +1 -1
  60. package/dist/providers/openai-compatible-response-normalizer.d.ts +1 -1
  61. package/dist/providers/openai-compatible-response-normalizer.d.ts.map +1 -1
  62. package/dist/providers/openai-compatible-response-normalizer.js +6 -6
  63. package/dist/providers/openai-compatible-response-normalizer.js.map +1 -1
  64. package/dist/providers/openai-compatible.provider.d.ts +2 -32
  65. package/dist/providers/openai-compatible.provider.d.ts.map +1 -1
  66. package/dist/providers/openai-compatible.provider.js +18 -144
  67. package/dist/providers/openai-compatible.provider.js.map +1 -1
  68. package/dist/providers/openai.provider.d.ts.map +1 -1
  69. package/dist/providers/openai.provider.js +1 -0
  70. package/dist/providers/openai.provider.js.map +1 -1
  71. package/dist/providers/opencode-middleware.d.ts +9 -0
  72. package/dist/providers/opencode-middleware.d.ts.map +1 -0
  73. package/dist/providers/opencode-middleware.js +15 -0
  74. package/dist/providers/opencode-middleware.js.map +1 -0
  75. package/dist/providers/opencode-model-provider.d.ts +19 -0
  76. package/dist/providers/opencode-model-provider.d.ts.map +1 -0
  77. package/dist/providers/opencode-model-provider.js +128 -0
  78. package/dist/providers/opencode-model-provider.js.map +1 -0
  79. package/dist/providers/opencode.provider.d.ts +2 -0
  80. package/dist/providers/opencode.provider.d.ts.map +1 -1
  81. package/dist/providers/opencode.provider.js +4 -0
  82. package/dist/providers/opencode.provider.js.map +1 -1
  83. package/dist/providers/openrouter-decision-models.d.ts +7 -0
  84. package/dist/providers/openrouter-decision-models.d.ts.map +1 -0
  85. package/dist/providers/openrouter-decision-models.js +31 -0
  86. package/dist/providers/openrouter-decision-models.js.map +1 -0
  87. package/dist/providers/openrouter.provider.js +2 -1
  88. package/dist/providers/openrouter.provider.js.map +1 -1
  89. package/dist/providers/orcarouter-models.d.ts +12 -0
  90. package/dist/providers/orcarouter-models.d.ts.map +1 -0
  91. package/dist/providers/orcarouter-models.js +34 -0
  92. package/dist/providers/orcarouter-models.js.map +1 -0
  93. package/dist/providers/registry.d.ts +7 -0
  94. package/dist/providers/registry.d.ts.map +1 -1
  95. package/dist/providers/registry.js.map +1 -1
  96. package/dist/services/agent-runtime/application-run-loop.d.ts +20 -1
  97. package/dist/services/agent-runtime/application-run-loop.d.ts.map +1 -1
  98. package/dist/services/agent-runtime/application-run-loop.js +871 -759
  99. package/dist/services/agent-runtime/application-run-loop.js.map +1 -1
  100. package/dist/services/agent-runtime/tool-call-execution.d.ts +1 -1
  101. package/dist/services/agent-runtime/tool-call-execution.d.ts.map +1 -1
  102. package/dist/services/agent-runtime/tool-call-execution.js +6 -3
  103. package/dist/services/agent-runtime/tool-call-execution.js.map +1 -1
  104. package/dist/services/approval/approval-flow-coordinator.d.ts +4 -2
  105. package/dist/services/approval/approval-flow-coordinator.d.ts.map +1 -1
  106. package/dist/services/approval/approval-flow-coordinator.js +2 -1
  107. package/dist/services/approval/approval-flow-coordinator.js.map +1 -1
  108. package/dist/services/approval/approval-state.d.ts +0 -13
  109. package/dist/services/approval/approval-state.d.ts.map +1 -1
  110. package/dist/services/approval/approval-state.js +0 -5
  111. package/dist/services/approval/approval-state.js.map +1 -1
  112. package/dist/services/approval/background-subagent-approval-controller.d.ts.map +1 -1
  113. package/dist/services/approval/background-subagent-approval-controller.js +0 -2
  114. package/dist/services/approval/background-subagent-approval-controller.js.map +1 -1
  115. package/dist/services/approval/nested-approval-owner.d.ts.map +1 -1
  116. package/dist/services/approval/nested-approval-owner.js +5 -1
  117. package/dist/services/approval/nested-approval-owner.js.map +1 -1
  118. package/dist/services/approval/shell-auto-approval-resolver.d.ts +2 -2
  119. package/dist/services/approval/shell-auto-approval-resolver.d.ts.map +1 -1
  120. package/dist/services/approval/shell-auto-approval-resolver.js +2 -2
  121. package/dist/services/approval/shell-auto-approval-resolver.js.map +1 -1
  122. package/dist/services/approval/tool-approval-batch-coordinator.d.ts +2 -2
  123. package/dist/services/approval/tool-approval-batch-coordinator.d.ts.map +1 -1
  124. package/dist/services/approval/tool-approval-batch-coordinator.js +4 -4
  125. package/dist/services/approval/tool-approval-batch-coordinator.js.map +1 -1
  126. package/dist/services/conversation/conversation-adapter.d.ts +17 -47
  127. package/dist/services/conversation/conversation-adapter.d.ts.map +1 -1
  128. package/dist/services/conversation/conversation-adapter.js +114 -88
  129. package/dist/services/conversation/conversation-adapter.js.map +1 -1
  130. package/dist/services/conversation/conversation-orchestrator.d.ts.map +1 -1
  131. package/dist/services/conversation/conversation-orchestrator.js +48 -121
  132. package/dist/services/conversation/conversation-orchestrator.js.map +1 -1
  133. package/dist/services/conversation/conversation-record-stream.d.ts +21 -0
  134. package/dist/services/conversation/conversation-record-stream.d.ts.map +1 -0
  135. package/dist/services/conversation/conversation-record-stream.js +186 -0
  136. package/dist/services/conversation/conversation-record-stream.js.map +1 -0
  137. package/dist/services/conversation/conversation-record.d.ts +160 -0
  138. package/dist/services/conversation/conversation-record.d.ts.map +1 -0
  139. package/dist/services/conversation/conversation-record.js +371 -0
  140. package/dist/services/conversation/conversation-record.js.map +1 -0
  141. package/dist/services/conversation/conversation-result-builder.d.ts +0 -4
  142. package/dist/services/conversation/conversation-result-builder.d.ts.map +1 -1
  143. package/dist/services/conversation/conversation-result-builder.js +0 -10
  144. package/dist/services/conversation/conversation-result-builder.js.map +1 -1
  145. package/dist/services/conversation/conversation-service.d.ts +2 -1
  146. package/dist/services/conversation/conversation-service.d.ts.map +1 -1
  147. package/dist/services/conversation/conversation-service.js +3 -0
  148. package/dist/services/conversation/conversation-service.js.map +1 -1
  149. package/dist/services/conversation-agent-client.d.ts +17 -7
  150. package/dist/services/conversation-agent-client.d.ts.map +1 -1
  151. package/dist/services/logging/conversation-logger.d.ts +1 -7
  152. package/dist/services/logging/conversation-logger.d.ts.map +1 -1
  153. package/dist/services/logging/conversation-logger.js +0 -18
  154. package/dist/services/logging/conversation-logger.js.map +1 -1
  155. package/dist/services/model-service.d.ts +2 -6
  156. package/dist/services/model-service.d.ts.map +1 -1
  157. package/dist/services/model-service.js +8 -21
  158. package/dist/services/model-service.js.map +1 -1
  159. package/dist/services/models/decision-model-listing.d.ts +2 -12
  160. package/dist/services/models/decision-model-listing.d.ts.map +1 -1
  161. package/dist/services/models/decision-model-listing.js +2 -29
  162. package/dist/services/models/decision-model-listing.js.map +1 -1
  163. package/dist/services/provider-continuity.d.ts +26 -0
  164. package/dist/services/provider-continuity.d.ts.map +1 -1
  165. package/dist/services/provider-continuity.js +47 -0
  166. package/dist/services/provider-continuity.js.map +1 -1
  167. package/dist/services/retry/recovery-executor.d.ts +3 -4
  168. package/dist/services/retry/recovery-executor.d.ts.map +1 -1
  169. package/dist/services/retry/recovery-executor.js +13 -75
  170. package/dist/services/retry/recovery-executor.js.map +1 -1
  171. package/dist/services/retry/retry-contracts.d.ts +2 -10
  172. package/dist/services/retry/retry-contracts.d.ts.map +1 -1
  173. package/dist/services/session/continuation-plan-applier.d.ts +5 -9
  174. package/dist/services/session/continuation-plan-applier.d.ts.map +1 -1
  175. package/dist/services/session/continuation-plan-applier.js +9 -43
  176. package/dist/services/session/continuation-plan-applier.js.map +1 -1
  177. package/dist/services/session/continuation-recovery-handler.d.ts +4 -6
  178. package/dist/services/session/continuation-recovery-handler.d.ts.map +1 -1
  179. package/dist/services/session/continuation-recovery-handler.js +3 -15
  180. package/dist/services/session/continuation-recovery-handler.js.map +1 -1
  181. package/dist/services/session/initial-input-preparer.d.ts +2 -2
  182. package/dist/services/session/initial-input-preparer.d.ts.map +1 -1
  183. package/dist/services/session/initial-input-preparer.js +3 -3
  184. package/dist/services/session/initial-input-preparer.js.map +1 -1
  185. package/dist/services/session/initial-turn-recovery-handler.d.ts +2 -4
  186. package/dist/services/session/initial-turn-recovery-handler.d.ts.map +1 -1
  187. package/dist/services/session/initial-turn-recovery-handler.js +4 -5
  188. package/dist/services/session/initial-turn-recovery-handler.js.map +1 -1
  189. package/dist/services/session/live-run.d.ts +9 -3
  190. package/dist/services/session/live-run.d.ts.map +1 -1
  191. package/dist/services/session/live-run.js +19 -4
  192. package/dist/services/session/live-run.js.map +1 -1
  193. package/dist/services/session/session-composition.d.ts +8 -12
  194. package/dist/services/session/session-composition.d.ts.map +1 -1
  195. package/dist/services/session/session-composition.js +41 -87
  196. package/dist/services/session/session-composition.js.map +1 -1
  197. package/dist/services/session/session-input-planner.d.ts +2 -2
  198. package/dist/services/session/session-input-planner.d.ts.map +1 -1
  199. package/dist/services/session/session-input-planner.js +6 -13
  200. package/dist/services/session/session-input-planner.js.map +1 -1
  201. package/dist/services/session/session-lifecycle.d.ts +73 -23
  202. package/dist/services/session/session-lifecycle.d.ts.map +1 -1
  203. package/dist/services/session/session-lifecycle.js +127 -45
  204. package/dist/services/session/session-lifecycle.js.map +1 -1
  205. package/dist/services/session/session-stream-processor.d.ts +4 -30
  206. package/dist/services/session/session-stream-processor.d.ts.map +1 -1
  207. package/dist/services/session/session-stream-processor.js +11 -300
  208. package/dist/services/session/session-stream-processor.js.map +1 -1
  209. package/dist/services/session/session-tool-tracker.d.ts +9 -144
  210. package/dist/services/session/session-tool-tracker.d.ts.map +1 -1
  211. package/dist/services/session/session-tool-tracker.js +17 -251
  212. package/dist/services/session/session-tool-tracker.js.map +1 -1
  213. package/dist/services/session/{turn-workflow.d.ts → session-turn-adapter.d.ts} +10 -43
  214. package/dist/services/session/session-turn-adapter.d.ts.map +1 -0
  215. package/dist/services/session/session-turn-adapter.js +734 -0
  216. package/dist/services/session/session-turn-adapter.js.map +1 -0
  217. package/dist/services/session/turn-attempt-factory.d.ts +2 -11
  218. package/dist/services/session/turn-attempt-factory.d.ts.map +1 -1
  219. package/dist/services/session/turn-attempt-factory.js +4 -12
  220. package/dist/services/session/turn-attempt-factory.js.map +1 -1
  221. package/dist/services/session/turn-attempt.d.ts +0 -3
  222. package/dist/services/session/turn-attempt.d.ts.map +1 -1
  223. package/dist/services/session/turn-attempt.js +0 -5
  224. package/dist/services/session/turn-attempt.js.map +1 -1
  225. package/dist/services/session/turn-coordinator.d.ts +3 -3
  226. package/dist/services/session/turn-coordinator.d.ts.map +1 -1
  227. package/dist/services/session/turn-coordinator.js +31 -26
  228. package/dist/services/session/turn-coordinator.js.map +1 -1
  229. package/dist/services/session/turn-projection-state.d.ts +45 -0
  230. package/dist/services/session/turn-projection-state.d.ts.map +1 -0
  231. package/dist/services/session/turn-projection-state.js +61 -0
  232. package/dist/services/session/turn-projection-state.js.map +1 -0
  233. package/dist/services/subagents/tool-policy.d.ts +5 -5
  234. package/dist/services/subagents/tool-policy.d.ts.map +1 -1
  235. package/dist/services/subagents/tool-policy.js.map +1 -1
  236. package/dist/tools/system/run-code/run-code-runtime.d.ts.map +1 -1
  237. package/dist/tools/system/run-code/run-code-runtime.js +90 -19
  238. package/dist/tools/system/run-code/run-code-runtime.js.map +1 -1
  239. package/dist/tools/system/shell.d.ts +2 -2
  240. package/dist/tools/system/shell.d.ts.map +1 -1
  241. package/dist/tools/system/shell.js +1 -0
  242. package/dist/tools/system/shell.js.map +1 -1
  243. package/dist/tools/tool-names.d.ts +1 -1
  244. package/dist/tools/tool-names.d.ts.map +1 -1
  245. package/dist/utils/ai/token-usage.js +9 -8
  246. package/dist/utils/ai/token-usage.js.map +1 -1
  247. package/package.json +1 -1
  248. package/dist/providers/anthropic-middleware.d.ts +0 -25
  249. package/dist/providers/anthropic-middleware.d.ts.map +0 -1
  250. package/dist/providers/anthropic-middleware.js +0 -32
  251. package/dist/providers/anthropic-middleware.js.map +0 -1
  252. package/dist/providers/common/openai-compatible-messages.d.ts +0 -2
  253. package/dist/providers/common/openai-compatible-messages.d.ts.map +0 -1
  254. package/dist/providers/common/openai-compatible-messages.js.map +0 -1
  255. package/dist/services/session/continuation-call-id-resolver.d.ts +0 -29
  256. package/dist/services/session/continuation-call-id-resolver.d.ts.map +0 -1
  257. package/dist/services/session/continuation-call-id-resolver.js +0 -69
  258. package/dist/services/session/continuation-call-id-resolver.js.map +0 -1
  259. package/dist/services/session/continuation-state.d.ts +0 -69
  260. package/dist/services/session/continuation-state.d.ts.map +0 -1
  261. package/dist/services/session/continuation-state.js +0 -78
  262. package/dist/services/session/continuation-state.js.map +0 -1
  263. package/dist/services/session/session-manager.d.ts +0 -87
  264. package/dist/services/session/session-manager.d.ts.map +0 -1
  265. package/dist/services/session/session-manager.js +0 -146
  266. package/dist/services/session/session-manager.js.map +0 -1
  267. package/dist/services/session/turn-workflow.d.ts.map +0 -1
  268. package/dist/services/session/turn-workflow.js +0 -1055
  269. package/dist/services/session/turn-workflow.js.map +0 -1
@@ -1,132 +1,7 @@
1
- import { createStreamAccumulator, processStreamEvents } from '../stream-event-processor.js';
2
- import { extractReplaySnapshot, extractFinalizationSnapshot } from '../stream-snapshot.js';
3
- import { collectDuplicateToolCallResultPairs } from '../input-surge-guard.js';
4
- import { callIdOf, toolNameOf, outputOf } from '../tool-execution-ledger.js';
5
- import { projectConversationMessage } from '../conversation/conversation-message-projection.js';
6
1
  import { normalizeRunItem } from '../conversation/run-item-normalizer.js';
7
- import { projectPersistedAssistantItemToProviderHistory } from '../conversation/conversation-turn-items.js';
2
+ import { createStreamAccumulator, processStreamEvents } from '../stream-event-processor.js';
8
3
  import { ToolCallMarkerStore } from '../../utils/streaming/extract-command-messages.js';
9
4
  import { resolveSessionId } from './session-identity.js';
10
- const hasConversationMessageItems = (items) => items.some(projectConversationMessage);
11
- /**
12
- * ApplicationRunLoop output is the canonical application event stream. Provider
13
- * history is kept separately in `stream.history`; only `item` events are
14
- * projected when a current-run snapshot is used for persistence.
15
- */
16
- const isCanonicalApplicationItemEvent = (item) => {
17
- if (!item || typeof item !== 'object' || Array.isArray(item))
18
- return false;
19
- const event = item;
20
- return event.type === 'item' && !!event.item && typeof event.item === 'object';
21
- };
22
- const canonicalProviderHistoryItems = (items) => items.flatMap((item) => {
23
- if (!item || typeof item !== 'object' || Array.isArray(item))
24
- return [];
25
- const event = item;
26
- if (event.type === 'item' && event.item && typeof event.item === 'object')
27
- return [event.item];
28
- if (event.type === 'text_delta' ||
29
- event.type === 'reasoning_delta' ||
30
- event.type === 'codex_rate_limits' ||
31
- event.type === 'tool_call_streaming_delta' ||
32
- event.type === 'tool_call_dispatched' ||
33
- event.type === 'usage_update' ||
34
- event.type === 'run_budget' ||
35
- event.type === 'context_compaction_started' ||
36
- event.type === 'context_compaction_completed') {
37
- return [];
38
- }
39
- return [item];
40
- });
41
- const hasToolResultItems = (items) => items.some((item) => normalizeRunItem(item).some((normalized) => normalized.type === 'tool_result'));
42
- export const lastOpenAICompaction = (items) => {
43
- let last;
44
- for (const item of items) {
45
- for (const normalized of normalizeRunItem(item)) {
46
- if (normalized.type === 'provider_opaque' &&
47
- normalized.provider === 'openai' &&
48
- normalized.item.type === 'compaction') {
49
- last = normalized;
50
- }
51
- }
52
- }
53
- return last;
54
- };
55
- const compactedProviderHistory = (existingHistory, output) => {
56
- const compaction = lastOpenAICompaction(output);
57
- if (!compaction)
58
- return undefined;
59
- const userTurns = existingHistory.filter((item) => {
60
- const message = projectConversationMessage(item);
61
- return message?.role === 'user' && !message.isSynthetic;
62
- });
63
- return [...userTurns, projectPersistedAssistantItemToProviderHistory(compaction)];
64
- };
65
- const toolItemSignature = (item) => {
66
- for (const normalized of normalizeRunItem(item)) {
67
- if (normalized.type === 'tool_call' || normalized.type === 'tool_result') {
68
- return `${normalized.type}:${normalized.callId}`;
69
- }
70
- }
71
- return null;
72
- };
73
- /**
74
- * Drops tool call/result items the store already holds.
75
- *
76
- * An interrupted run carries its accumulated generated items forward into every
77
- * later resume segment, so each `continueRunStream` finalization re-offers the
78
- * pairs from all earlier segments. Appending them unfiltered grows history
79
- * quadratically until the input surge guard blocks the turn. A canonical
80
- * tool-kind/call-id pair is unique within a conversation, so equivalent SDK,
81
- * provider, and domain representations share an identity. An item already
82
- * present is a replay, not new output. Non-tool items are never filtered, and
83
- * kept items retain their original provider representation.
84
- */
85
- const dropAlreadyCommittedToolItems = (items, existingHistory) => {
86
- const committed = new Set();
87
- for (const item of existingHistory) {
88
- const signature = toolItemSignature(item);
89
- if (signature) {
90
- committed.add(signature);
91
- }
92
- }
93
- const kept = [];
94
- const droppedSignatures = [];
95
- for (const item of items) {
96
- const signature = toolItemSignature(item);
97
- if (signature && committed.has(signature)) {
98
- droppedSignatures.push(signature);
99
- continue;
100
- }
101
- if (signature) {
102
- committed.add(signature);
103
- }
104
- kept.push(item);
105
- }
106
- return { kept, droppedSignatures };
107
- };
108
- const warnIfStreamHistoryReplayedTools = ({ logger, sessionId, source, snapshot, }) => {
109
- const { history, newItems } = snapshot;
110
- const historyDuplicates = collectDuplicateToolCallResultPairs(history);
111
- const newItemsDuplicates = collectDuplicateToolCallResultPairs(newItems);
112
- if (historyDuplicates.pairs === 0 && newItemsDuplicates.pairs === 0) {
113
- return;
114
- }
115
- logger.warn('Completed stream history contains replayed tool call/result pairs', {
116
- eventType: 'conversation.stream_history.replayed_tools',
117
- category: 'provider',
118
- phase: 'post_stream',
119
- sessionId: resolveSessionId(sessionId),
120
- traceId: logger.getCorrelationId(),
121
- source,
122
- historyLength: history.length,
123
- newItemsLength: newItems.length,
124
- historyDuplicatePairs: historyDuplicates.pairs,
125
- historyMaxCopies: historyDuplicates.maxCopies,
126
- newItemsDuplicatePairs: newItemsDuplicates.pairs,
127
- newItemsMaxCopies: newItemsDuplicates.maxCopies,
128
- });
129
- };
130
5
  export class SessionStreamProcessor {
131
6
  deps;
132
7
  #toolCallMarkers;
@@ -135,8 +10,7 @@ export class SessionStreamProcessor {
135
10
  this.#toolCallMarkers = deps.toolCallMarkers ?? new ToolCallMarkerStore();
136
11
  }
137
12
  /**
138
- * Processes the AgentStream, records function calls/results,
139
- * dedupes tool started events, logs tool results, and returns the accumulator.
13
+ * Projects accepted events, dedupes display events and returns presentation data.
140
14
  */
141
15
  async *process(stream, options) {
142
16
  const acc = createStreamAccumulator();
@@ -146,62 +20,17 @@ export class SessionStreamProcessor {
146
20
  if (!this.deps.generationGuard.isCurrent(options.gen)) {
147
21
  return acc;
148
22
  }
149
- const workingToolArguments = options.preserveExistingToolArgs
150
- ? new Map(this.deps.toolTracker.argumentsById)
151
- : new Map();
152
- const workingInvalidPackets = new Set(this.deps.toolTracker.invalidPackets);
153
- const commitWorkingCaches = () => {
154
- this.deps.toolTracker.argumentsById.clear();
155
- for (const [callId, args] of workingToolArguments) {
156
- this.deps.toolTracker.argumentsById.set(callId, args);
157
- }
158
- for (const packet of workingInvalidPackets) {
159
- this.deps.toolTracker.invalidPackets.add(packet);
160
- }
161
- };
162
- let pendingLedgerReasoningText = '';
163
- let consumedLedgerReasoningLength = 0;
23
+ const projection = this.deps.toolTracker.beginProjection(options.preserveExistingToolArgs);
164
24
  const generator = processStreamEvents(stream, acc, {
165
- toolCallArgumentsById: workingToolArguments,
166
- emittedInvalidToolCallPackets: workingInvalidPackets,
25
+ toolCallArgumentsById: projection.argumentsById,
26
+ emittedInvalidToolCallPackets: projection.invalidPackets,
167
27
  preserveExistingToolArgs: true,
168
28
  markerStore: this.#toolCallMarkers,
169
- onFunctionCallItem: (item) => {
170
- this.deps.generationGuard.runIfCurrent(options.gen, () => {
171
- const reasoningText = pendingLedgerReasoningText || acc.reasoningOutput.slice(consumedLedgerReasoningLength);
172
- if (reasoningText) {
173
- this.deps.toolTracker.recordReasoningText(reasoningText);
174
- consumedLedgerReasoningLength = acc.reasoningOutput.length;
175
- pendingLedgerReasoningText = '';
176
- }
177
- this.deps.toolTracker.recordFunctionCall(item);
178
- });
179
- },
180
29
  onFunctionResultItem: (item) => {
181
- this.deps.generationGuard.runIfCurrent(options.gen, () => {
182
- this.deps.toolTracker.recordFunctionResult(item);
183
- if (options.source !== 'startStream') {
184
- const cid = callIdOf(item);
185
- if (cid && this.deps.conversationLogger.hasSink()) {
186
- const entry = this.deps.toolTracker.export().find((e) => e.callId === cid);
187
- this.deps.conversationLogger.log({
188
- type: 'tool_result',
189
- callId: cid,
190
- toolName: entry?.toolName ?? toolNameOf(item),
191
- status: entry?.status === 'failed' || entry?.status === 'aborted' || entry?.status === 'unknown'
192
- ? entry.status
193
- : 'completed',
194
- output: entry?.output ?? outputOf(item),
195
- ...(entry?.historyItems ? { historyItems: entry.historyItems } : {}),
196
- });
197
- }
198
- }
199
- });
200
- },
201
- onRunItem: (item) => {
202
- this.deps.generationGuard.runIfCurrent(options.gen, () => {
203
- this.deps.journal.recordRunItem(item);
204
- });
30
+ for (const normalized of normalizeRunItem(item)) {
31
+ if (normalized.type === 'tool_result')
32
+ this.deps.toolTracker.noteResultObserved(normalized.callId);
33
+ }
205
34
  },
206
35
  }, { logger: this.deps.logger, sessionId: resolveSessionId(this.deps.sessionId) });
207
36
  const iterator = generator[Symbol.asyncIterator]();
@@ -220,14 +49,11 @@ export class SessionStreamProcessor {
220
49
  return acc;
221
50
  }
222
51
  if (next.done) {
223
- this.deps.generationGuard.runIfCurrent(options.gen, commitWorkingCaches);
52
+ this.deps.generationGuard.runIfCurrent(options.gen, projection.commit);
224
53
  closed = true;
225
54
  return acc;
226
55
  }
227
- this.deps.generationGuard.runIfCurrent(options.gen, commitWorkingCaches);
228
- if (next.value.type === 'reasoning_delta') {
229
- pendingLedgerReasoningText = acc.reasoningOutput.slice(consumedLedgerReasoningLength);
230
- }
56
+ this.deps.generationGuard.runIfCurrent(options.gen, projection.commit);
231
57
  const filtered = this.deps.toolTracker.dedupeToolStarted(next.value);
232
58
  if (filtered) {
233
59
  // An admitted tool_started is a new execution. If the provider reused the id of an earlier,
@@ -251,120 +77,5 @@ export class SessionStreamProcessor {
251
77
  }
252
78
  }
253
79
  }
254
- /**
255
- * Finalizes the stream outcome by updating previousResponseId,
256
- * checking for replayed tools, and updating the conversation store history.
257
- */
258
- finalize(stream, token, inputMode, source) {
259
- let result = { kind: 'stale' };
260
- const ran = this.deps.generationGuard.runIfCurrent(token, () => {
261
- const snapshot = extractFinalizationSnapshot(stream);
262
- const projectedHistory = canonicalProviderHistoryItems(snapshot.history);
263
- const projectedSnapshot = {
264
- ...snapshot,
265
- history: projectedHistory,
266
- newItems: canonicalProviderHistoryItems(snapshot.newItems),
267
- output: canonicalProviderHistoryItems(snapshot.output),
268
- };
269
- const hasCanonicalApplicationItems = [...snapshot.newItems, ...snapshot.output].some((item) => isCanonicalApplicationItemEvent(item));
270
- warnIfStreamHistoryReplayedTools({
271
- logger: this.deps.logger,
272
- sessionId: resolveSessionId(this.deps.sessionId),
273
- source,
274
- snapshot: extractReplaySnapshot(stream),
275
- });
276
- const appendWithoutReplayedTools = (items) => {
277
- const providerItems = canonicalProviderHistoryItems(items);
278
- const { kept, droppedSignatures } = dropAlreadyCommittedToolItems(providerItems, this.deps.conversationStore.getHistory());
279
- if (droppedSignatures.length > 0) {
280
- this.deps.logger.warn('Dropped replayed tool call/result items before committing stream history', {
281
- eventType: 'conversation.stream_history.replay_dropped',
282
- category: 'provider',
283
- phase: 'post_stream',
284
- sessionId: resolveSessionId(this.deps.sessionId),
285
- traceId: this.deps.logger.getCorrelationId(),
286
- source,
287
- inputMode,
288
- offeredCount: providerItems.length,
289
- droppedCount: droppedSignatures.length,
290
- droppedSignatures,
291
- });
292
- }
293
- this.deps.conversationStore.appendOutput(kept);
294
- };
295
- const terminal = !stream.interruptions || stream.interruptions.length === 0;
296
- if (terminal) {
297
- const historyRevisionBeforeCommit = this.deps.conversationStore.getProviderHistorySnapshot().revision;
298
- const replacementHistory = compactedProviderHistory(this.deps.conversationStore.getHistory(), projectedSnapshot.output);
299
- if (stream.historyReplacedByCompaction && projectedSnapshot.history.length > 0) {
300
- // replayEvents applies the replacement when the terminal assistant_turn is logged.
301
- }
302
- else if (replacementHistory) {
303
- this.deps.conversationStore.replaceHistory(replacementHistory);
304
- }
305
- else if (inputMode === 'delta') {
306
- appendWithoutReplayedTools(projectedSnapshot.output);
307
- }
308
- else {
309
- // In full-history mode, prefer canonical current-run newItems, then
310
- // output, so SDK history reconstruction cannot strip assistant text.
311
- // If incremental payloads are only tool outputs, fall back to the
312
- // authoritative replay history instead of poisoning the canonical store.
313
- // When even replay history has no messages, append current-run tool
314
- // results so retry and subsequent turns can see the new tool output.
315
- if (hasCanonicalApplicationItems && hasConversationMessageItems(projectedSnapshot.history)) {
316
- this.deps.conversationStore.replaceHistory(projectedSnapshot.history);
317
- }
318
- else if (hasConversationMessageItems(projectedSnapshot.newItems)) {
319
- appendWithoutReplayedTools(projectedSnapshot.newItems);
320
- }
321
- else if (hasConversationMessageItems(projectedSnapshot.output)) {
322
- appendWithoutReplayedTools(projectedSnapshot.output);
323
- }
324
- else if (hasConversationMessageItems(projectedSnapshot.history)) {
325
- this.deps.conversationStore.replaceHistory(projectedSnapshot.history);
326
- }
327
- else if (hasToolResultItems(projectedSnapshot.newItems)) {
328
- appendWithoutReplayedTools(projectedSnapshot.newItems);
329
- }
330
- else if (hasToolResultItems(projectedSnapshot.output)) {
331
- appendWithoutReplayedTools(projectedSnapshot.output);
332
- }
333
- }
334
- // Candidate checkpoint acceptance is intentionally adjacent to the
335
- // authoritative terminal-history mutation. An empty/no-op terminal
336
- // output cannot make a candidate eligible for future ownership work.
337
- const postCommitSnapshot = this.deps.conversationStore.getProviderHistorySnapshot();
338
- const candidateWasObserved = this.deps.providerContinuity.checkpoint?.state === 'candidate';
339
- const historyCommitted = postCommitSnapshot.revision !== historyRevisionBeforeCommit ||
340
- (stream.historyReplacedByCompaction === true && projectedSnapshot.history.length > 0);
341
- const promoted = this.deps.providerContinuity.publishTerminalResponse(snapshot.lastResponseId, historyCommitted, postCommitSnapshot);
342
- // A terminal response that issued function calls opens unpaid chain
343
- // debt; a response with no remaining unsettled calls settles it.
344
- this.#syncOutstandingToolDebt();
345
- if (candidateWasObserved) {
346
- this.deps.openAIRootCheckpointLifecycleObserver?.publication(!historyCommitted ? 'history_not_committed' : promoted ? 'promoted' : 'candidate_not_promoted');
347
- }
348
- result = { kind: 'committed' };
349
- }
350
- else {
351
- // Interrupted streams retain the established response-ID behavior, but
352
- // cannot corroborate an observed checkpoint without a history commit.
353
- this.deps.providerContinuity.update(snapshot.lastResponseId);
354
- // Approvals and other interruptions leave the same unpaid tool debt
355
- // as a clean terminal that issued function calls.
356
- this.#syncOutstandingToolDebt();
357
- result = { kind: 'partial' };
358
- }
359
- });
360
- return ran ? result : { kind: 'stale' };
361
- }
362
- /**
363
- * Mirror the tool ledger's unsettled call ids onto provider continuity so
364
- * the next request can refuse a text-only delta against an unpaid chain.
365
- */
366
- #syncOutstandingToolDebt() {
367
- this.deps.providerContinuity.replaceOutstandingToolCallIds(this.deps.toolTracker.unsettledToolCallIdsForCurrentTurn());
368
- }
369
80
  }
370
81
  //# sourceMappingURL=session-stream-processor.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"session-stream-processor.js","sourceRoot":"","sources":["../../../source/services/session/session-stream-processor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session-stream-processor.js","sourceRoot":"","sources":["../../../source/services/session/session-stream-processor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,wCAAwC,CAAC;AAK1E,OAAO,EAAE,uBAAuB,EAAE,mBAAmB,EAA0B,MAAM,8BAA8B,CAAC;AAEpH,OAAO,EAAE,mBAAmB,EAAE,MAAM,mDAAmD,CAAC;AAExF,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAqBzD,MAAM,OAAO,sBAAsB;IAGJ,IAAI;IAFxB,gBAAgB,CAAsB;IAE/C,YAA6B,IAAgC;oBAAhC,IAAI;QAC/B,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,eAAe,IAAI,IAAI,mBAAmB,EAAE,CAAC;IAC5E,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,CAAC,OAAO,CACZ,MAAmB,EACnB,OAA6B;QAE7B,MAAM,GAAG,GAAG,uBAAuB,EAAE,CAAC;QACtC,IAAI,OAAO,CAAC,2BAA2B,EAAE,CAAC;YACxC,GAAG,CAAC,iBAAiB,GAAG,IAAI,GAAG,CAAS,OAAO,CAAC,2BAA2B,CAAC,CAAC;QAC/E,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;YACtD,OAAO,GAAG,CAAC;QACb,CAAC;QAED,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,OAAO,CAAC,wBAAwB,CAAC,CAAC;QAE3F,MAAM,SAAS,GAAG,mBAAmB,CACnC,MAAM,EACN,GAAG,EACH;YACE,qBAAqB,EAAE,UAAU,CAAC,aAAa;YAC/C,6BAA6B,EAAE,UAAU,CAAC,cAAc;YACxD,wBAAwB,EAAE,IAAI;YAC9B,WAAW,EAAE,IAAI,CAAC,gBAAgB;YAClC,oBAAoB,EAAE,CAAC,IAAI,EAAE,EAAE;gBAC7B,KAAK,MAAM,UAAU,IAAI,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC;oBAChD,IAAI,UAAU,CAAC,IAAI,KAAK,aAAa;wBAAE,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,kBAAkB,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;gBACrG,CAAC;YACH,CAAC;SACF,EACD,EAAE,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,EAAE,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAC/E,CAAC;QAEF,MAAM,QAAQ,GAAG,SAAS,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC;QACnD,IAAI,MAAM,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC;YACH,OAAO,IAAI,EAAE,CAAC;gBACZ,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;oBACtD,MAAM,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC;oBAC1B,MAAM,GAAG,IAAI,CAAC;oBACd,OAAO,GAAG,CAAC;gBACb,CAAC;gBAED,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;gBACnC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;oBACtD,MAAM,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC;oBAC1B,MAAM,GAAG,IAAI,CAAC;oBACd,OAAO,GAAG,CAAC;gBACb,CAAC;gBACD,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;oBACd,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;oBACvE,MAAM,GAAG,IAAI,CAAC;oBACd,OAAO,GAAG,CAAC;gBACb,CAAC;gBAED,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;gBACvE,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACrE,IAAI,QAAQ,EAAE,CAAC;oBACb,4FAA4F;oBAC5F,wFAAwF;oBACxF,0CAA0C;oBAC1C,IAAI,QAAQ,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;wBACrC,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,uCAAuC,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;4BACpG,GAAG,CAAC,iBAAiB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;wBACnC,CAAC;wBACD,IAAI,CAAC,gBAAgB,CAAC,uBAAuB,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;oBACrE,CAAC;oBACD,IAAI,QAAQ,CAAC,IAAI,KAAK,iBAAiB;wBAAE,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,yBAAyB,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;oBAC3G,MAAM,QAAQ,CAAC;gBACjB,CAAC;YACH,CAAC;QACH,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,MAAM,QAAQ,CAAC,MAAM,EAAE,EAAE,CAAC;YAC5B,CAAC;QACH,CAAC;IACH,CAAC;CACF"}
@@ -1,135 +1,20 @@
1
- import type { ProviderInputItem } from '../../contracts/provider-input.js';
2
1
  import type { ConversationEvent } from '../conversation/conversation-events.js';
3
- import { ToolExecutionLedger, type SavedToolExecution } from '../tool-execution-ledger.js';
4
- import type { ConversationStore } from '../conversation/conversation-store.js';
5
- import type { CommittedToolContinuation } from '../retry/retry-contracts.js';
6
- /**
7
- * Owns all tool-tracking state for a conversation session.
8
- *
9
- * This includes the tool execution ledger, tool-call arguments cache,
10
- * and deduplication sets for invalid packets and started events.
11
- *
12
- * The session delegates to this tracker rather than interleaving
13
- * tool-tracking logic with other concerns.
14
- */
2
+ /** Presentation caches only; accepted tool evidence belongs to ConversationRecord. */
15
3
  export declare class SessionToolTracker {
16
- #private;
17
- private conversationStore;
18
- private toolLedger;
19
4
  private toolCallArgumentsById;
20
5
  private emittedInvalidToolCallPackets;
21
6
  private emittedToolStartedCallIds;
22
7
  private emittedSubagentToolStartedIds;
23
8
  private emittedCommandMessageIdsByCallId;
24
- constructor(conversationStore: ConversationStore);
25
- /**
26
- * Get the underlying ledger for direct access when needed.
27
- */
28
- get ledger(): ToolExecutionLedger;
29
- /**
30
- * Get the tool-call arguments cache for direct access when needed.
31
- */
32
- get argumentsById(): Map<string, unknown>;
33
- /**
34
- * Get the invalid packets set for direct access when needed.
35
- */
36
- get invalidPackets(): Set<string>;
37
- /**
38
- * Begin a new turn in the ledger.
39
- */
40
- beginTurn(): void;
41
- /**
42
- * Returns the id of the turn currently in progress, or 'turn-0' if no turn
43
- * has begun yet. Exposed for the journal and logger to tag entries with a
44
- * stable turn identifier that survives approval continuations.
45
- */
46
- getCurrentTurnId(): string;
47
- /**
48
- * Returns call IDs for every tool call recorded in the current turn,
49
- * regardless of status. The chained-input filter requires the complete set
50
- * because the provider API requires a tool output for every tool call in an
51
- * assistant turn — including rejected calls, for which the SDK produces a
52
- * synthetic output.
53
- */
54
- activeCallIdsForCurrentTurn(): string[];
55
- /** Returns only completed tool-result call IDs recorded during the current turn. */
56
- completedResultCallIdsForCurrentTurn(): string[];
57
- /**
58
- * Admission evidence for post-tool connection recovery: whether every live-turn
59
- * tool completed and whether reconciled history still holds those pairs.
60
- */
61
- inspectCommittedToolContinuation(): CommittedToolContinuation;
62
- /**
63
- * Call ids recorded this turn that still lack a completed tool result.
64
- * Aborted/unknown/started entries count — local synthetic results do not pay
65
- * provider-side tool debt while previousResponseId still points at the chain.
66
- */
67
- unsettledToolCallIdsForCurrentTurn(): string[];
68
- /**
69
- * Export the current ledger state.
70
- */
71
- export(): SavedToolExecution[];
72
- /**
73
- * Import a saved ledger state.
74
- */
75
- import(entries: SavedToolExecution[] | undefined): void;
76
- /**
77
- * Record a function call in the ledger.
78
- */
79
- recordFunctionCall(item: unknown): void;
80
- /**
81
- * Record reasoning that should be replayed before the next tool call.
82
- */
83
- recordReasoningText(text: string): void;
84
- /**
85
- * Record a function result in the ledger.
86
- */
87
- recordFunctionResult(item: unknown): void;
88
- /**
89
- * Record an aborted approval in the ledger.
90
- */
91
- recordAbortedApproval(output: string, errorMessage: string, callId?: string): void;
92
- /**
93
- * Mark that tool execution has begun for this callId (side effects may occur).
94
- */
95
- markDispatched(callId: string): void;
96
- /**
97
- * Mark open calls as aborted with the given error message.
98
- */
99
- markOpenCallsAborted(errorMessage: string, callId?: string): void;
100
- /**
101
- * Settle open calls after stream failure: dispatched → unknown, otherwise aborted.
102
- */
103
- settleOpenCallsOnStreamFailure(reason?: string, callId?: string): {
104
- abortedCallIds: string[];
105
- unknownCallIds: string[];
9
+ snapshotArguments(): Map<string, unknown>;
10
+ /** Work on a detached segment view; only a current generation commits it. */
11
+ beginProjection(preserveArguments: boolean): {
12
+ argumentsById: Map<string, unknown>;
13
+ invalidPackets: Set<string>;
14
+ commit: () => void;
106
15
  };
107
- /**
108
- * Get a recovery summary if there are recovered/dropped calls.
109
- */
110
- getRecoverySummary(): {
111
- recoveredCallIds: string[];
112
- droppedCallIds: string[];
113
- message: string;
114
- } | null;
115
- /**
116
- * Restore completed, aborted, and unknown tool ledger entries from a snapshot.
117
- *
118
- * Completed entries carry their results forward so they can be reprojected
119
- * into history. Aborted and unknown entries (with synthetic results) are also
120
- * preserved so the reconciler injects result pairs for interrupted tool calls
121
- * instead of leaving dangling function_call items.
122
- */
123
- restoreCompletedEntries(snapshot: SavedToolExecution[]): void;
124
- /**
125
- * Prune the tool ledger to only include entries from the current history.
126
- */
127
- pruneToCurrentHistory(): void;
128
- /**
129
- * Deduplicate tool_started events. One execution emits tool_started twice: when the model's call
130
- * streams in, and again from the approval/continuation plan before the tool runs. Only the first is
131
- * kept. Recording the call's result ends the execution (see recordFunctionResult).
132
- */
16
+ /** A settled result allows a later provider reuse of the call id to render anew. */
17
+ noteResultObserved(callId: string): void;
133
18
  dedupeToolStarted(event: ConversationEvent): ConversationEvent | null;
134
19
  /**
135
20
  * Remember which command message ids a call emitted. Message ids come from the tool's formatter
@@ -144,30 +29,10 @@ export declare class SessionToolTracker {
144
29
  * reuses the id must not be deduped against. Forgets them.
145
30
  */
146
31
  takeCommandMessageIdsOfEarlierExecution(callId: string): string[];
147
- /**
148
- * Reconcile history with the tool ledger and return the reconciled history.
149
- */
150
- getReconciledHistory(): ProviderInputItem[];
151
- /**
152
- * Reconcile history with the tool ledger and update the store if needed.
153
- * Returns true if any changes were made.
154
- */
155
- reconcileAndUpdateHistory(): boolean;
156
- /**
157
- * Clear tool-call arguments cache.
158
- */
159
32
  clearArguments(): void;
160
- /**
161
- * Restore tool-call arguments from a saved map.
162
- */
163
- restoreArguments(savedArgs: Map<string, unknown>): void;
164
33
  /**
165
34
  * Clear emitted tool started call IDs.
166
35
  */
167
36
  clearEmittedToolStarted(): void;
168
- /**
169
- * Reset the tracker to a fresh state (for session reset).
170
- */
171
- reset(): void;
172
37
  }
173
38
  //# sourceMappingURL=session-tool-tracker.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"session-tool-tracker.d.ts","sourceRoot":"","sources":["../../../source/services/session/session-tool-tracker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session-tool-tracker.d.ts","sourceRoot":"","sources":["../../../source/services/session/session-tool-tracker.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAC;AAEhF,sFAAsF;AACtF,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,qBAAqB,CAA8B;IAC3D,OAAO,CAAC,6BAA6B,CAAqB;IAC1D,OAAO,CAAC,yBAAyB,CAAqB;IACtD,OAAO,CAAC,6BAA6B,CAAqB;IAC1D,OAAO,CAAC,gCAAgC,CAA+B;IAEvE,iBAAiB,IAAI,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAExC;IAED,6EAA6E;IAC7E,eAAe,CAAC,iBAAiB,EAAE,OAAO;;;;MAWzC;IAED,oFAAoF;IACpF,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAEvC;IAED,iBAAiB,CAAC,KAAK,EAAE,iBAAiB,GAAG,iBAAiB,GAAG,IAAI,CAiBpE;IAED;;;OAGG;IACH,yBAAyB,CAAC,OAAO,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAKxE;IAED;;;OAGG;IACH,uCAAuC,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAIhE;IAED,cAAc,IAAI,IAAI,CAErB;IAED;;OAEG;IACH,uBAAuB,IAAI,IAAI,CAG9B;CACF"}