@dexto/core 1.6.0 → 1.6.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (188) hide show
  1. package/dist/agent/DextoAgent.cjs +79 -5
  2. package/dist/agent/DextoAgent.d.ts +24 -2
  3. package/dist/agent/DextoAgent.d.ts.map +1 -1
  4. package/dist/agent/DextoAgent.js +79 -5
  5. package/dist/agent/agent-options.d.ts +6 -1
  6. package/dist/agent/agent-options.d.ts.map +1 -1
  7. package/dist/agent/schemas.d.ts +18 -18
  8. package/dist/approval/manager.cjs +87 -27
  9. package/dist/approval/manager.d.ts +10 -1
  10. package/dist/approval/manager.d.ts.map +1 -1
  11. package/dist/approval/manager.js +87 -27
  12. package/dist/approval/schemas.cjs +22 -8
  13. package/dist/approval/schemas.d.ts +276 -102
  14. package/dist/approval/schemas.d.ts.map +1 -1
  15. package/dist/approval/schemas.js +22 -8
  16. package/dist/context/manager.cjs +2 -2
  17. package/dist/context/manager.d.ts +2 -1
  18. package/dist/context/manager.d.ts.map +1 -1
  19. package/dist/context/manager.js +2 -2
  20. package/dist/context/types.d.ts +3 -2
  21. package/dist/context/types.d.ts.map +1 -1
  22. package/dist/events/index.d.ts +26 -13
  23. package/dist/events/index.d.ts.map +1 -1
  24. package/dist/hooks/index.d.ts +1 -1
  25. package/dist/hooks/index.d.ts.map +1 -1
  26. package/dist/hooks/types.d.ts +1 -22
  27. package/dist/hooks/types.d.ts.map +1 -1
  28. package/dist/llm/executor/provider-options.cjs +223 -28
  29. package/dist/llm/executor/provider-options.d.ts +3 -37
  30. package/dist/llm/executor/provider-options.d.ts.map +1 -1
  31. package/dist/llm/executor/provider-options.js +227 -27
  32. package/dist/llm/executor/stream-processor.cjs +57 -34
  33. package/dist/llm/executor/stream-processor.d.ts +12 -4
  34. package/dist/llm/executor/stream-processor.d.ts.map +1 -1
  35. package/dist/llm/executor/stream-processor.js +55 -32
  36. package/dist/llm/executor/turn-executor.cjs +66 -44
  37. package/dist/llm/executor/turn-executor.d.ts +3 -3
  38. package/dist/llm/executor/turn-executor.d.ts.map +1 -1
  39. package/dist/llm/executor/turn-executor.js +56 -34
  40. package/dist/llm/formatters/vercel.cjs +15 -3
  41. package/dist/llm/formatters/vercel.d.ts +1 -0
  42. package/dist/llm/formatters/vercel.d.ts.map +1 -1
  43. package/dist/llm/formatters/vercel.js +15 -3
  44. package/dist/llm/index.cjs +8 -0
  45. package/dist/llm/index.d.ts +2 -1
  46. package/dist/llm/index.d.ts.map +1 -1
  47. package/dist/llm/index.js +7 -0
  48. package/dist/llm/providers/local/schemas.d.ts +2 -2
  49. package/dist/llm/providers/openrouter-model-registry.cjs +66 -11
  50. package/dist/llm/providers/openrouter-model-registry.d.ts +26 -0
  51. package/dist/llm/providers/openrouter-model-registry.d.ts.map +1 -1
  52. package/dist/llm/providers/openrouter-model-registry.js +65 -11
  53. package/dist/llm/reasoning/anthropic-betas.cjs +31 -0
  54. package/dist/llm/reasoning/anthropic-betas.d.ts +3 -0
  55. package/dist/llm/reasoning/anthropic-betas.d.ts.map +1 -0
  56. package/dist/llm/reasoning/anthropic-betas.js +7 -0
  57. package/dist/llm/reasoning/anthropic-thinking.cjs +79 -0
  58. package/dist/llm/reasoning/anthropic-thinking.d.ts +15 -0
  59. package/dist/llm/reasoning/anthropic-thinking.d.ts.map +1 -0
  60. package/dist/llm/reasoning/anthropic-thinking.js +52 -0
  61. package/dist/llm/reasoning/openai-reasoning-effort.cjs +86 -0
  62. package/dist/llm/reasoning/openai-reasoning-effort.d.ts +5 -0
  63. package/dist/llm/reasoning/openai-reasoning-effort.d.ts.map +1 -0
  64. package/dist/llm/reasoning/openai-reasoning-effort.js +61 -0
  65. package/dist/llm/reasoning/profile.cjs +113 -0
  66. package/dist/llm/reasoning/profile.d.ts +13 -0
  67. package/dist/llm/reasoning/profile.d.ts.map +1 -0
  68. package/dist/llm/reasoning/profile.js +92 -0
  69. package/dist/llm/reasoning/profiles/anthropic.cjs +61 -0
  70. package/dist/llm/reasoning/profiles/anthropic.d.ts +8 -0
  71. package/dist/llm/reasoning/profiles/anthropic.d.ts.map +1 -0
  72. package/dist/llm/reasoning/profiles/anthropic.js +45 -0
  73. package/dist/llm/reasoning/profiles/bedrock.cjs +54 -0
  74. package/dist/llm/reasoning/profiles/bedrock.d.ts +3 -0
  75. package/dist/llm/reasoning/profiles/bedrock.d.ts.map +1 -0
  76. package/dist/llm/reasoning/profiles/bedrock.js +36 -0
  77. package/dist/llm/reasoning/profiles/google.cjs +45 -0
  78. package/dist/llm/reasoning/profiles/google.d.ts +9 -0
  79. package/dist/llm/reasoning/profiles/google.d.ts.map +1 -0
  80. package/dist/llm/reasoning/profiles/google.js +21 -0
  81. package/dist/llm/reasoning/profiles/openai-compatible.cjs +39 -0
  82. package/dist/llm/reasoning/profiles/openai-compatible.d.ts +3 -0
  83. package/dist/llm/reasoning/profiles/openai-compatible.d.ts.map +1 -0
  84. package/dist/llm/reasoning/profiles/openai-compatible.js +16 -0
  85. package/dist/llm/reasoning/profiles/openai.cjs +41 -0
  86. package/dist/llm/reasoning/profiles/openai.d.ts +3 -0
  87. package/dist/llm/reasoning/profiles/openai.d.ts.map +1 -0
  88. package/dist/llm/reasoning/profiles/openai.js +18 -0
  89. package/dist/llm/reasoning/profiles/openrouter.cjs +83 -0
  90. package/dist/llm/reasoning/profiles/openrouter.d.ts +10 -0
  91. package/dist/llm/reasoning/profiles/openrouter.d.ts.map +1 -0
  92. package/dist/llm/reasoning/profiles/openrouter.js +59 -0
  93. package/dist/llm/reasoning/profiles/shared.cjs +80 -0
  94. package/dist/llm/reasoning/profiles/shared.d.ts +25 -0
  95. package/dist/llm/reasoning/profiles/shared.d.ts.map +1 -0
  96. package/dist/llm/reasoning/profiles/shared.js +53 -0
  97. package/dist/llm/reasoning/profiles/vertex.cjs +46 -0
  98. package/dist/llm/reasoning/profiles/vertex.d.ts +3 -0
  99. package/dist/llm/reasoning/profiles/vertex.d.ts.map +1 -0
  100. package/dist/llm/reasoning/profiles/vertex.js +23 -0
  101. package/dist/llm/registry/auto-update.cjs +18 -0
  102. package/dist/llm/registry/auto-update.d.ts.map +1 -1
  103. package/dist/llm/registry/auto-update.js +18 -0
  104. package/dist/llm/registry/index.cjs +126 -26
  105. package/dist/llm/registry/index.d.ts +48 -4
  106. package/dist/llm/registry/index.d.ts.map +1 -1
  107. package/dist/llm/registry/index.js +136 -28
  108. package/dist/llm/registry/models.generated.cjs +5198 -59
  109. package/dist/llm/registry/models.generated.d.ts +1893 -76
  110. package/dist/llm/registry/models.generated.d.ts.map +1 -1
  111. package/dist/llm/registry/models.generated.js +5196 -58
  112. package/dist/llm/registry/sync.cjs +72 -1
  113. package/dist/llm/registry/sync.d.ts +21 -1
  114. package/dist/llm/registry/sync.d.ts.map +1 -1
  115. package/dist/llm/registry/sync.js +72 -1
  116. package/dist/llm/resolver.cjs +13 -1
  117. package/dist/llm/resolver.d.ts.map +1 -1
  118. package/dist/llm/resolver.js +13 -1
  119. package/dist/llm/schemas.cjs +75 -14
  120. package/dist/llm/schemas.d.ts +84 -27
  121. package/dist/llm/schemas.d.ts.map +1 -1
  122. package/dist/llm/schemas.js +75 -14
  123. package/dist/llm/services/factory.cjs +55 -8
  124. package/dist/llm/services/factory.d.ts +1 -1
  125. package/dist/llm/services/factory.d.ts.map +1 -1
  126. package/dist/llm/services/factory.js +58 -8
  127. package/dist/llm/services/vercel.cjs +2 -2
  128. package/dist/llm/services/vercel.js +2 -2
  129. package/dist/llm/types.d.ts +9 -0
  130. package/dist/llm/types.d.ts.map +1 -1
  131. package/dist/logger/default-logger-factory.d.ts +12 -12
  132. package/dist/logger/v2/dexto-logger.cjs +35 -0
  133. package/dist/logger/v2/dexto-logger.d.ts +19 -0
  134. package/dist/logger/v2/dexto-logger.d.ts.map +1 -1
  135. package/dist/logger/v2/dexto-logger.js +35 -0
  136. package/dist/logger/v2/schemas.d.ts +6 -6
  137. package/dist/logger/v2/test-utils.cjs +2 -0
  138. package/dist/logger/v2/test-utils.d.ts.map +1 -1
  139. package/dist/logger/v2/test-utils.js +2 -0
  140. package/dist/logger/v2/types.d.ts +14 -1
  141. package/dist/logger/v2/types.d.ts.map +1 -1
  142. package/dist/mcp/schemas.d.ts +15 -15
  143. package/dist/memory/schemas.d.ts +4 -4
  144. package/dist/prompts/index.cjs +9 -0
  145. package/dist/prompts/index.d.ts +1 -0
  146. package/dist/prompts/index.d.ts.map +1 -1
  147. package/dist/prompts/index.js +10 -0
  148. package/dist/prompts/prompt-manager.cjs +2 -0
  149. package/dist/prompts/prompt-manager.d.ts.map +1 -1
  150. package/dist/prompts/prompt-manager.js +2 -0
  151. package/dist/prompts/providers/config-prompt-provider.cjs +11 -1
  152. package/dist/prompts/providers/config-prompt-provider.d.ts.map +1 -1
  153. package/dist/prompts/providers/config-prompt-provider.js +11 -1
  154. package/dist/prompts/schemas.cjs +2 -2
  155. package/dist/prompts/schemas.d.ts +7 -7
  156. package/dist/prompts/schemas.js +2 -2
  157. package/dist/prompts/types.d.ts +6 -2
  158. package/dist/prompts/types.d.ts.map +1 -1
  159. package/dist/systemPrompt/in-built-prompts.cjs +5 -5
  160. package/dist/systemPrompt/in-built-prompts.d.ts +1 -1
  161. package/dist/systemPrompt/in-built-prompts.d.ts.map +1 -1
  162. package/dist/systemPrompt/in-built-prompts.js +5 -5
  163. package/dist/systemPrompt/schemas.d.ts +5 -5
  164. package/dist/systemPrompt/types.d.ts +11 -0
  165. package/dist/systemPrompt/types.d.ts.map +1 -1
  166. package/dist/tools/display-types.d.ts +10 -0
  167. package/dist/tools/display-types.d.ts.map +1 -1
  168. package/dist/tools/index.cjs +3 -1
  169. package/dist/tools/index.d.ts +1 -0
  170. package/dist/tools/index.d.ts.map +1 -1
  171. package/dist/tools/index.js +1 -0
  172. package/dist/tools/presentation.cjs +49 -0
  173. package/dist/tools/presentation.d.ts +11 -0
  174. package/dist/tools/presentation.d.ts.map +1 -0
  175. package/dist/tools/presentation.js +24 -0
  176. package/dist/tools/tool-manager.cjs +389 -136
  177. package/dist/tools/tool-manager.d.ts +36 -24
  178. package/dist/tools/tool-manager.d.ts.map +1 -1
  179. package/dist/tools/tool-manager.js +389 -136
  180. package/dist/tools/types.d.ts +134 -55
  181. package/dist/tools/types.d.ts.map +1 -1
  182. package/dist/utils/path.cjs +10 -1
  183. package/dist/utils/path.d.ts +5 -2
  184. package/dist/utils/path.d.ts.map +1 -1
  185. package/dist/utils/path.js +10 -1
  186. package/dist/utils/service-initializer.d.ts +1 -0
  187. package/dist/utils/service-initializer.d.ts.map +1 -1
  188. package/package.json +7 -5
@@ -23,7 +23,7 @@ __export(stream_processor_exports, {
23
23
  module.exports = __toCommonJS(stream_processor_exports);
24
24
  var import_tool_output_truncator = require("./tool-output-truncator.js");
25
25
  var import_utils = require("../../context/utils.js");
26
- var import_types3 = require("../../logger/v2/types.js");
26
+ var import_types2 = require("../../logger/v2/types.js");
27
27
  class StreamProcessor {
28
28
  /**
29
29
  * @param contextManager Context manager for message persistence
@@ -33,7 +33,7 @@ class StreamProcessor {
33
33
  * @param config Provider/model configuration
34
34
  * @param logger Logger instance
35
35
  * @param streaming If true, emits llm:chunk events. Default true.
36
- * @param toolCallMetadata Map of tool call IDs to tool-call metadata (approval + display name)
36
+ * @param toolCallMetadata Map of tool call IDs to tool-call metadata (approval + presentation)
37
37
  */
38
38
  constructor(contextManager, eventBus, resourceManager, abortSignal, config, logger, streaming = true, toolCallMetadata) {
39
39
  this.contextManager = contextManager;
@@ -43,7 +43,7 @@ class StreamProcessor {
43
43
  this.config = config;
44
44
  this.streaming = streaming;
45
45
  this.toolCallMetadata = toolCallMetadata;
46
- this.logger = logger.createChild(import_types3.DextoLogComponent.EXECUTOR);
46
+ this.logger = logger.createChild(import_types2.DextoLogComponent.EXECUTOR);
47
47
  }
48
48
  assistantMessageId = null;
49
49
  actualTokens = { inputTokens: 0, outputTokens: 0, totalTokens: 0 };
@@ -127,7 +127,7 @@ class StreamProcessor {
127
127
  case "reasoning-delta":
128
128
  this.reasoningText += event.text;
129
129
  if (event.providerMetadata) {
130
- this.reasoningMetadata = event.providerMetadata;
130
+ this.mergeReasoningMetadata(event.providerMetadata);
131
131
  }
132
132
  if (this.streaming) {
133
133
  this.eventBus.emit("llm:chunk", {
@@ -202,8 +202,8 @@ class StreamProcessor {
202
202
  );
203
203
  this.eventBus.emit("llm:tool-result", {
204
204
  toolName: event.toolName,
205
- ...metadata?.toolDisplayName !== void 0 && {
206
- toolDisplayName: metadata.toolDisplayName
205
+ ...metadata?.presentationSnapshot !== void 0 && {
206
+ presentationSnapshot: metadata.presentationSnapshot
207
207
  },
208
208
  callId: event.toolCallId,
209
209
  success: true,
@@ -284,10 +284,8 @@ class StreamProcessor {
284
284
  this.logger.info("LLM response complete", {
285
285
  finishReason: event.finishReason,
286
286
  contentLength: this.accumulatedText.length,
287
- content: this.accumulatedText,
288
287
  ...this.reasoningText && {
289
- reasoningLength: this.reasoningText.length,
290
- reasoning: this.reasoningText
288
+ reasoningLength: this.reasoningText.length
291
289
  },
292
290
  usage,
293
291
  provider: this.config.provider,
@@ -308,15 +306,8 @@ class StreamProcessor {
308
306
  }
309
307
  const hasContent = this.accumulatedText || this.reasoningText;
310
308
  if (this.finishReason !== "tool-calls" || hasContent) {
311
- this.eventBus.emit("llm:response", {
312
- content: this.accumulatedText,
313
- ...this.reasoningText && { reasoning: this.reasoningText },
314
- provider: this.config.provider,
315
- model: this.config.model,
309
+ this.emitLLMResponse({
316
310
  tokenUsage: usage,
317
- ...this.config.estimatedInputTokens !== void 0 && {
318
- estimatedInputTokens: this.config.estimatedInputTokens
319
- },
320
311
  finishReason: this.finishReason
321
312
  });
322
313
  }
@@ -363,7 +354,7 @@ class StreamProcessor {
363
354
  }
364
355
  case "error": {
365
356
  const err = event.error instanceof Error ? event.error : new Error(String(event.error));
366
- this.logger.error(`LLM error: ${err.toString()}}`);
357
+ this.logger.error("LLM error", { error: err });
367
358
  this.eventBus.emit("llm:error", {
368
359
  error: err
369
360
  });
@@ -373,15 +364,8 @@ class StreamProcessor {
373
364
  this.logger.debug("Stream aborted, emitting partial response");
374
365
  this.finishReason = "cancelled";
375
366
  await this.persistCancelledToolResults();
376
- this.eventBus.emit("llm:response", {
377
- content: this.accumulatedText,
378
- ...this.reasoningText && { reasoning: this.reasoningText },
379
- provider: this.config.provider,
380
- model: this.config.model,
367
+ this.emitLLMResponse({
381
368
  tokenUsage: this.actualTokens,
382
- ...this.config.estimatedInputTokens !== void 0 && {
383
- estimatedInputTokens: this.config.estimatedInputTokens
384
- },
385
369
  finishReason: "cancelled"
386
370
  });
387
371
  return {
@@ -397,15 +381,8 @@ class StreamProcessor {
397
381
  this.logger.debug("Stream cancelled, emitting partial response");
398
382
  this.finishReason = "cancelled";
399
383
  await this.persistCancelledToolResults();
400
- this.eventBus.emit("llm:response", {
401
- content: this.accumulatedText,
402
- ...this.reasoningText && { reasoning: this.reasoningText },
403
- provider: this.config.provider,
404
- model: this.config.model,
384
+ this.emitLLMResponse({
405
385
  tokenUsage: this.actualTokens,
406
- ...this.config.estimatedInputTokens !== void 0 && {
407
- estimatedInputTokens: this.config.estimatedInputTokens
408
- },
409
386
  finishReason: "cancelled"
410
387
  });
411
388
  return {
@@ -463,6 +440,52 @@ class StreamProcessor {
463
440
  }
464
441
  return metadata;
465
442
  }
443
+ getReasoningResponseFields() {
444
+ return {
445
+ ...this.config.reasoningVariant !== void 0 && {
446
+ reasoningVariant: this.config.reasoningVariant
447
+ },
448
+ ...this.config.reasoningBudgetTokens !== void 0 && {
449
+ reasoningBudgetTokens: this.config.reasoningBudgetTokens
450
+ }
451
+ };
452
+ }
453
+ emitLLMResponse(config) {
454
+ this.eventBus.emit("llm:response", {
455
+ content: this.accumulatedText,
456
+ ...this.reasoningText && { reasoning: this.reasoningText },
457
+ provider: this.config.provider,
458
+ model: this.config.model,
459
+ ...this.getReasoningResponseFields(),
460
+ tokenUsage: config.tokenUsage,
461
+ ...this.config.estimatedInputTokens !== void 0 && {
462
+ estimatedInputTokens: this.config.estimatedInputTokens
463
+ },
464
+ finishReason: config.finishReason
465
+ });
466
+ }
467
+ mergeReasoningMetadata(providerMetadata) {
468
+ if (!this.reasoningMetadata) {
469
+ this.reasoningMetadata = providerMetadata;
470
+ return;
471
+ }
472
+ const isRecord = (value) => !!value && typeof value === "object" && !Array.isArray(value);
473
+ const previous = this.reasoningMetadata;
474
+ const merged = { ...previous, ...providerMetadata };
475
+ const previousOpenRouter = previous["openrouter"];
476
+ const nextOpenRouter = providerMetadata["openrouter"];
477
+ if (isRecord(previousOpenRouter) && isRecord(nextOpenRouter)) {
478
+ const previousDetails = previousOpenRouter["reasoning_details"];
479
+ const nextDetails = nextOpenRouter["reasoning_details"];
480
+ const combinedDetails = Array.isArray(previousDetails) && Array.isArray(nextDetails) ? [...previousDetails, ...nextDetails] : Array.isArray(nextDetails) ? nextDetails : Array.isArray(previousDetails) ? previousDetails : void 0;
481
+ merged["openrouter"] = {
482
+ ...previousOpenRouter,
483
+ ...nextOpenRouter,
484
+ ...combinedDetails ? { reasoning_details: combinedDetails } : {}
485
+ };
486
+ }
487
+ this.reasoningMetadata = merged;
488
+ }
466
489
  async createAssistantMessage() {
467
490
  await this.contextManager.addAssistantMessage("", [], {});
468
491
  return this.getLastMessageId();
@@ -3,13 +3,18 @@ import { ContextManager } from '../../context/manager.js';
3
3
  import { SessionEventBus } from '../../events/index.js';
4
4
  import { ResourceManager } from '../../resources/index.js';
5
5
  import { StreamProcessorResult } from './types.js';
6
- import { Logger } from '../../logger/v2/types.js';
7
- import { LLMProvider } from '../types.js';
6
+ import type { Logger } from '../../logger/v2/types.js';
7
+ import type { ToolPresentationSnapshotV1 } from '../../tools/types.js';
8
+ import type { LLMProvider, ReasoningVariant } from '../types.js';
8
9
  export interface StreamProcessorConfig {
9
10
  provider: LLMProvider;
10
11
  model: string;
11
12
  /** Estimated input tokens before LLM call (for analytics/calibration) */
12
13
  estimatedInputTokens?: number;
14
+ /** Reasoning variant used for this call, when the provider exposes it. */
15
+ reasoningVariant?: ReasoningVariant;
16
+ /** Reasoning budget tokens used for this call, when the provider exposes it. */
17
+ reasoningBudgetTokens?: number;
13
18
  }
14
19
  export declare class StreamProcessor {
15
20
  private contextManager;
@@ -41,10 +46,10 @@ export declare class StreamProcessor {
41
46
  * @param config Provider/model configuration
42
47
  * @param logger Logger instance
43
48
  * @param streaming If true, emits llm:chunk events. Default true.
44
- * @param toolCallMetadata Map of tool call IDs to tool-call metadata (approval + display name)
49
+ * @param toolCallMetadata Map of tool call IDs to tool-call metadata (approval + presentation)
45
50
  */
46
51
  constructor(contextManager: ContextManager, eventBus: SessionEventBus, resourceManager: ResourceManager, abortSignal: AbortSignal, config: StreamProcessorConfig, logger: Logger, streaming?: boolean, toolCallMetadata?: Map<string, {
47
- toolDisplayName?: string;
52
+ presentationSnapshot?: ToolPresentationSnapshotV1;
48
53
  requireApproval?: boolean;
49
54
  approvalStatus?: "approved" | "rejected";
50
55
  }> | undefined);
@@ -52,6 +57,9 @@ export declare class StreamProcessor {
52
57
  private getCacheTokensFromProviderMetadata;
53
58
  private normalizeUsage;
54
59
  private getProviderMetadata;
60
+ private getReasoningResponseFields;
61
+ private emitLLMResponse;
62
+ private mergeReasoningMetadata;
55
63
  private createAssistantMessage;
56
64
  private getLastMessageId;
57
65
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"stream-processor.d.ts","sourceRoot":"","sources":["../../../src/llm/executor/stream-processor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,IAAI,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAmB,MAAM,uBAAuB,CAAC;AACzE,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAE3D,OAAO,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAGnD,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAElD,OAAO,EAAE,WAAW,EAAc,MAAM,aAAa,CAAC;AA4CtD,MAAM,WAAW,qBAAqB;IAClC,QAAQ,EAAE,WAAW,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,yEAAyE;IACzE,oBAAoB,CAAC,EAAE,MAAM,CAAC;CACjC;AAED,qBAAa,eAAe;IA2BpB,OAAO,CAAC,cAAc;IACtB,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,eAAe;IACvB,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,MAAM;IAEd,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,gBAAgB,CAAC;IAjC7B,OAAO,CAAC,kBAAkB,CAAuB;IACjD,OAAO,CAAC,YAAY,CAAmE;IACvF,OAAO,CAAC,YAAY,CAA8B;IAClD,OAAO,CAAC,aAAa,CAAc;IACnC,OAAO,CAAC,iBAAiB,CAAsC;IAC/D,OAAO,CAAC,eAAe,CAAc;IACrC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,YAAY,CAAS;IAC7B;;;OAGG;IACH,OAAO,CAAC,gBAAgB,CAAgD;IACxE,OAAO,CAAC,gBAAgB,CAAkE;IAE1F;;;;;;;;;OASG;gBAES,cAAc,EAAE,cAAc,EAC9B,QAAQ,EAAE,eAAe,EACzB,eAAe,EAAE,eAAe,EAChC,WAAW,EAAE,WAAW,EACxB,MAAM,EAAE,qBAAqB,EACrC,MAAM,EAAE,MAAM,EACN,SAAS,GAAE,OAAc,EACzB,gBAAgB,CAAC,EAAE,GAAG,CAC1B,MAAM,EACN;QACI,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,eAAe,CAAC,EAAE,OAAO,CAAC;QAC1B,cAAc,CAAC,EAAE,UAAU,GAAG,UAAU,CAAC;KAC5C,CACJ,YAAA;IAKC,OAAO,CACT,QAAQ,EAAE,MAAM,gBAAgB,CAAC,aAAa,EAAE,OAAO,CAAC,GACzD,OAAO,CAAC,qBAAqB,CAAC;IA+fjC,OAAO,CAAC,kCAAkC;IAoB1C,OAAO,CAAC,cAAc;IA0CtB,OAAO,CAAC,mBAAmB;YAab,sBAAsB;YAKtB,gBAAgB;IAO9B;;;;OAIG;YACW,2BAA2B;CAmC5C"}
1
+ {"version":3,"file":"stream-processor.d.ts","sourceRoot":"","sources":["../../../src/llm/executor/stream-processor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,IAAI,CAAC;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAmB,MAAM,uBAAuB,CAAC;AACzE,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAE3D,OAAO,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAGnD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAEvD,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,sBAAsB,CAAC;AACvE,OAAO,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAc,MAAM,aAAa,CAAC;AA4C7E,MAAM,WAAW,qBAAqB;IAClC,QAAQ,EAAE,WAAW,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,yEAAyE;IACzE,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,0EAA0E;IAC1E,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IACpC,gFAAgF;IAChF,qBAAqB,CAAC,EAAE,MAAM,CAAC;CAClC;AAED,qBAAa,eAAe;IA2BpB,OAAO,CAAC,cAAc;IACtB,OAAO,CAAC,QAAQ;IAChB,OAAO,CAAC,eAAe;IACvB,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,MAAM;IAEd,OAAO,CAAC,SAAS;IACjB,OAAO,CAAC,gBAAgB,CAAC;IAjC7B,OAAO,CAAC,kBAAkB,CAAuB;IACjD,OAAO,CAAC,YAAY,CAAmE;IACvF,OAAO,CAAC,YAAY,CAA8B;IAClD,OAAO,CAAC,aAAa,CAAc;IACnC,OAAO,CAAC,iBAAiB,CAAsC;IAC/D,OAAO,CAAC,eAAe,CAAc;IACrC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,YAAY,CAAS;IAC7B;;;OAGG;IACH,OAAO,CAAC,gBAAgB,CAAgD;IACxE,OAAO,CAAC,gBAAgB,CAAkE;IAE1F;;;;;;;;;OASG;gBAES,cAAc,EAAE,cAAc,EAC9B,QAAQ,EAAE,eAAe,EACzB,eAAe,EAAE,eAAe,EAChC,WAAW,EAAE,WAAW,EACxB,MAAM,EAAE,qBAAqB,EACrC,MAAM,EAAE,MAAM,EACN,SAAS,GAAE,OAAc,EACzB,gBAAgB,CAAC,EAAE,GAAG,CAC1B,MAAM,EACN;QACI,oBAAoB,CAAC,EAAE,0BAA0B,CAAC;QAClD,eAAe,CAAC,EAAE,OAAO,CAAC;QAC1B,cAAc,CAAC,EAAE,UAAU,GAAG,UAAU,CAAC;KAC5C,CACJ,YAAA;IAKC,OAAO,CACT,QAAQ,EAAE,MAAM,gBAAgB,CAAC,aAAa,EAAE,OAAO,CAAC,GACzD,OAAO,CAAC,qBAAqB,CAAC;IAuejC,OAAO,CAAC,kCAAkC;IAoB1C,OAAO,CAAC,cAAc;IA0CtB,OAAO,CAAC,mBAAmB;IAa3B,OAAO,CAAC,0BAA0B;IAclC,OAAO,CAAC,eAAe;IAkBvB,OAAO,CAAC,sBAAsB;YAwChB,sBAAsB;YAKtB,gBAAgB;IAO9B;;;;OAIG;YACW,2BAA2B;CAmC5C"}
@@ -11,7 +11,7 @@ class StreamProcessor {
11
11
  * @param config Provider/model configuration
12
12
  * @param logger Logger instance
13
13
  * @param streaming If true, emits llm:chunk events. Default true.
14
- * @param toolCallMetadata Map of tool call IDs to tool-call metadata (approval + display name)
14
+ * @param toolCallMetadata Map of tool call IDs to tool-call metadata (approval + presentation)
15
15
  */
16
16
  constructor(contextManager, eventBus, resourceManager, abortSignal, config, logger, streaming = true, toolCallMetadata) {
17
17
  this.contextManager = contextManager;
@@ -105,7 +105,7 @@ class StreamProcessor {
105
105
  case "reasoning-delta":
106
106
  this.reasoningText += event.text;
107
107
  if (event.providerMetadata) {
108
- this.reasoningMetadata = event.providerMetadata;
108
+ this.mergeReasoningMetadata(event.providerMetadata);
109
109
  }
110
110
  if (this.streaming) {
111
111
  this.eventBus.emit("llm:chunk", {
@@ -180,8 +180,8 @@ class StreamProcessor {
180
180
  );
181
181
  this.eventBus.emit("llm:tool-result", {
182
182
  toolName: event.toolName,
183
- ...metadata?.toolDisplayName !== void 0 && {
184
- toolDisplayName: metadata.toolDisplayName
183
+ ...metadata?.presentationSnapshot !== void 0 && {
184
+ presentationSnapshot: metadata.presentationSnapshot
185
185
  },
186
186
  callId: event.toolCallId,
187
187
  success: true,
@@ -262,10 +262,8 @@ class StreamProcessor {
262
262
  this.logger.info("LLM response complete", {
263
263
  finishReason: event.finishReason,
264
264
  contentLength: this.accumulatedText.length,
265
- content: this.accumulatedText,
266
265
  ...this.reasoningText && {
267
- reasoningLength: this.reasoningText.length,
268
- reasoning: this.reasoningText
266
+ reasoningLength: this.reasoningText.length
269
267
  },
270
268
  usage,
271
269
  provider: this.config.provider,
@@ -286,15 +284,8 @@ class StreamProcessor {
286
284
  }
287
285
  const hasContent = this.accumulatedText || this.reasoningText;
288
286
  if (this.finishReason !== "tool-calls" || hasContent) {
289
- this.eventBus.emit("llm:response", {
290
- content: this.accumulatedText,
291
- ...this.reasoningText && { reasoning: this.reasoningText },
292
- provider: this.config.provider,
293
- model: this.config.model,
287
+ this.emitLLMResponse({
294
288
  tokenUsage: usage,
295
- ...this.config.estimatedInputTokens !== void 0 && {
296
- estimatedInputTokens: this.config.estimatedInputTokens
297
- },
298
289
  finishReason: this.finishReason
299
290
  });
300
291
  }
@@ -341,7 +332,7 @@ class StreamProcessor {
341
332
  }
342
333
  case "error": {
343
334
  const err = event.error instanceof Error ? event.error : new Error(String(event.error));
344
- this.logger.error(`LLM error: ${err.toString()}}`);
335
+ this.logger.error("LLM error", { error: err });
345
336
  this.eventBus.emit("llm:error", {
346
337
  error: err
347
338
  });
@@ -351,15 +342,8 @@ class StreamProcessor {
351
342
  this.logger.debug("Stream aborted, emitting partial response");
352
343
  this.finishReason = "cancelled";
353
344
  await this.persistCancelledToolResults();
354
- this.eventBus.emit("llm:response", {
355
- content: this.accumulatedText,
356
- ...this.reasoningText && { reasoning: this.reasoningText },
357
- provider: this.config.provider,
358
- model: this.config.model,
345
+ this.emitLLMResponse({
359
346
  tokenUsage: this.actualTokens,
360
- ...this.config.estimatedInputTokens !== void 0 && {
361
- estimatedInputTokens: this.config.estimatedInputTokens
362
- },
363
347
  finishReason: "cancelled"
364
348
  });
365
349
  return {
@@ -375,15 +359,8 @@ class StreamProcessor {
375
359
  this.logger.debug("Stream cancelled, emitting partial response");
376
360
  this.finishReason = "cancelled";
377
361
  await this.persistCancelledToolResults();
378
- this.eventBus.emit("llm:response", {
379
- content: this.accumulatedText,
380
- ...this.reasoningText && { reasoning: this.reasoningText },
381
- provider: this.config.provider,
382
- model: this.config.model,
362
+ this.emitLLMResponse({
383
363
  tokenUsage: this.actualTokens,
384
- ...this.config.estimatedInputTokens !== void 0 && {
385
- estimatedInputTokens: this.config.estimatedInputTokens
386
- },
387
364
  finishReason: "cancelled"
388
365
  });
389
366
  return {
@@ -441,6 +418,52 @@ class StreamProcessor {
441
418
  }
442
419
  return metadata;
443
420
  }
421
+ getReasoningResponseFields() {
422
+ return {
423
+ ...this.config.reasoningVariant !== void 0 && {
424
+ reasoningVariant: this.config.reasoningVariant
425
+ },
426
+ ...this.config.reasoningBudgetTokens !== void 0 && {
427
+ reasoningBudgetTokens: this.config.reasoningBudgetTokens
428
+ }
429
+ };
430
+ }
431
+ emitLLMResponse(config) {
432
+ this.eventBus.emit("llm:response", {
433
+ content: this.accumulatedText,
434
+ ...this.reasoningText && { reasoning: this.reasoningText },
435
+ provider: this.config.provider,
436
+ model: this.config.model,
437
+ ...this.getReasoningResponseFields(),
438
+ tokenUsage: config.tokenUsage,
439
+ ...this.config.estimatedInputTokens !== void 0 && {
440
+ estimatedInputTokens: this.config.estimatedInputTokens
441
+ },
442
+ finishReason: config.finishReason
443
+ });
444
+ }
445
+ mergeReasoningMetadata(providerMetadata) {
446
+ if (!this.reasoningMetadata) {
447
+ this.reasoningMetadata = providerMetadata;
448
+ return;
449
+ }
450
+ const isRecord = (value) => !!value && typeof value === "object" && !Array.isArray(value);
451
+ const previous = this.reasoningMetadata;
452
+ const merged = { ...previous, ...providerMetadata };
453
+ const previousOpenRouter = previous["openrouter"];
454
+ const nextOpenRouter = providerMetadata["openrouter"];
455
+ if (isRecord(previousOpenRouter) && isRecord(nextOpenRouter)) {
456
+ const previousDetails = previousOpenRouter["reasoning_details"];
457
+ const nextDetails = nextOpenRouter["reasoning_details"];
458
+ const combinedDetails = Array.isArray(previousDetails) && Array.isArray(nextDetails) ? [...previousDetails, ...nextDetails] : Array.isArray(nextDetails) ? nextDetails : Array.isArray(previousDetails) ? previousDetails : void 0;
459
+ merged["openrouter"] = {
460
+ ...previousOpenRouter,
461
+ ...nextOpenRouter,
462
+ ...combinedDetails ? { reasoning_details: combinedDetails } : {}
463
+ };
464
+ }
465
+ this.reasoningMetadata = merged;
466
+ }
444
467
  async createAssistantMessage() {
445
468
  await this.contextManager.addAssistantMessage("", [], {});
446
469
  return this.getLastMessageId();
@@ -80,10 +80,10 @@ var import_ai = require("ai");
80
80
  var import_api = require("@opentelemetry/api");
81
81
  var import_stream_processor = require("./stream-processor.js");
82
82
  var import_provider_options = require("./provider-options.js");
83
- var import_types4 = require("../../logger/v2/types.js");
83
+ var import_types3 = require("../../logger/v2/types.js");
84
84
  var import_defer = require("../../utils/defer.js");
85
85
  var import_DextoRuntimeError = require("../../errors/DextoRuntimeError.js");
86
- var import_types7 = require("../../errors/types.js");
86
+ var import_types5 = require("../../errors/types.js");
87
87
  var import_error_codes = require("../error-codes.js");
88
88
  var import_error_conversion = require("../../utils/error-conversion.js");
89
89
  const toolSupportCache = /* @__PURE__ */ new Map();
@@ -101,7 +101,7 @@ class TurnExecutor {
101
101
  this.messageQueue = messageQueue;
102
102
  this.modelLimits = modelLimits;
103
103
  this.externalSignal = externalSignal;
104
- this.logger = logger.createChild(import_types4.DextoLogComponent.EXECUTOR);
104
+ this.logger = logger.createChild(import_types3.DextoLogComponent.EXECUTOR);
105
105
  this.stepAbortController = new AbortController();
106
106
  this.compactionStrategy = compactionStrategy;
107
107
  }
@@ -114,18 +114,24 @@ class TurnExecutor {
114
114
  compactionStrategy = null;
115
115
  /**
116
116
  * Map to track tool-call metadata by toolCallId.
117
- * Used to pass execution-time info (approval + display name) to result persistence.
117
+ * Used to pass execution-time info (approval + presentation snapshot) to result persistence.
118
118
  */
119
119
  toolCallMetadata = /* @__PURE__ */ new Map();
120
120
  /**
121
121
  * Get StreamProcessor config from TurnExecutor state.
122
122
  * @param estimatedInputTokens Optional estimated input tokens for analytics
123
123
  */
124
- getStreamProcessorConfig(estimatedInputTokens) {
124
+ getStreamProcessorConfig(estimatedInputTokens, reasoning) {
125
125
  return {
126
126
  provider: this.llmContext.provider,
127
127
  model: this.llmContext.model,
128
- ...estimatedInputTokens !== void 0 && { estimatedInputTokens }
128
+ ...estimatedInputTokens !== void 0 && { estimatedInputTokens },
129
+ ...reasoning?.reasoningVariant !== void 0 && {
130
+ reasoningVariant: reasoning.reasoningVariant
131
+ },
132
+ ...reasoning?.reasoningBudgetTokens !== void 0 && {
133
+ reasoningBudgetTokens: reasoning.reasoningBudgetTokens
134
+ }
129
135
  };
130
136
  }
131
137
  /**
@@ -221,43 +227,59 @@ class TurnExecutor {
221
227
  }
222
228
  this.logger.debug(`Step ${stepCount}: Starting`);
223
229
  const tools = supportsTools ? await this.createTools() : {};
230
+ const providerOptions = (0, import_provider_options.buildProviderOptions)({
231
+ provider: this.llmContext.provider,
232
+ model: this.llmContext.model,
233
+ reasoning: this.config.reasoning
234
+ });
235
+ this.logger.debug("LLM request options", {
236
+ provider: this.llmContext.provider,
237
+ model: this.llmContext.model,
238
+ requestedReasoning: {
239
+ variant: this.config.reasoning?.variant,
240
+ budgetTokens: this.config.reasoning?.budgetTokens
241
+ },
242
+ providerOptions
243
+ });
244
+ const reasoningVariant = this.config.reasoning?.variant;
245
+ const reasoningBudgetTokens = (0, import_provider_options.getEffectiveReasoningBudgetTokens)(providerOptions);
246
+ const reasoningForStream = reasoningVariant !== void 0 || reasoningBudgetTokens !== void 0 ? {
247
+ ...reasoningVariant !== void 0 && { reasoningVariant },
248
+ ...reasoningBudgetTokens !== void 0 && { reasoningBudgetTokens }
249
+ } : void 0;
224
250
  const streamProcessor = new import_stream_processor.StreamProcessor(
225
251
  this.contextManager,
226
252
  this.eventBus,
227
253
  this.resourceManager,
228
254
  this.stepAbortController.signal,
229
- this.getStreamProcessorConfig(estimatedTokens),
255
+ this.getStreamProcessorConfig(estimatedTokens, reasoningForStream),
230
256
  this.logger,
231
257
  streaming,
232
258
  this.toolCallMetadata
233
259
  );
234
- const providerOptions = (0, import_provider_options.buildProviderOptions)({
235
- provider: this.llmContext.provider,
236
- model: this.llmContext.model,
237
- reasoningEffort: this.config.reasoningEffort
238
- });
239
- const streamOptions = {
240
- model: this.model,
241
- stopWhen: (0, import_ai.stepCountIs)(1),
242
- tools,
243
- abortSignal: this.stepAbortController.signal,
244
- messages: prepared.formattedMessages,
245
- ...this.config.maxOutputTokens !== void 0 && {
246
- maxOutputTokens: this.config.maxOutputTokens
247
- },
248
- ...this.config.temperature !== void 0 && {
249
- temperature: this.config.temperature
250
- },
251
- // Provider-specific options (caching, reasoning, etc.)
252
- ...providerOptions !== void 0 && {
253
- providerOptions
254
- },
255
- // Log stream-level errors (tool errors, API errors during streaming)
256
- onError: (error) => {
257
- this.logger.error("Stream error", { error });
258
- }
259
- };
260
- const result = await streamProcessor.process(() => (0, import_ai.streamText)(streamOptions));
260
+ const result = await streamProcessor.process(
261
+ () => (0, import_ai.streamText)({
262
+ model: this.model,
263
+ stopWhen: (0, import_ai.stepCountIs)(1),
264
+ tools,
265
+ abortSignal: this.stepAbortController.signal,
266
+ messages: prepared.formattedMessages,
267
+ ...this.config.maxOutputTokens !== void 0 && {
268
+ maxOutputTokens: this.config.maxOutputTokens
269
+ },
270
+ ...this.config.temperature !== void 0 && {
271
+ temperature: this.config.temperature
272
+ },
273
+ // Provider-specific options (caching, reasoning, etc.)
274
+ ...providerOptions !== void 0 && {
275
+ providerOptions
276
+ },
277
+ // Log stream-level errors (tool errors, API errors during streaming)
278
+ onError: (error) => {
279
+ this.logger.error("Stream error", { error });
280
+ }
281
+ })
282
+ );
261
283
  lastStepTokens = result.usage;
262
284
  lastFinishReason = result.finishReason;
263
285
  lastText = result.text;
@@ -501,8 +523,8 @@ class TurnExecutor {
501
523
  );
502
524
  const metadata = (() => {
503
525
  const meta = {};
504
- if (executionResult.toolDisplayName !== void 0) {
505
- meta.toolDisplayName = executionResult.toolDisplayName;
526
+ if (executionResult.presentationSnapshot !== void 0) {
527
+ meta.presentationSnapshot = executionResult.presentationSnapshot;
506
528
  }
507
529
  if (executionResult.requireApproval !== void 0) {
508
530
  meta.requireApproval = executionResult.requireApproval;
@@ -868,8 +890,8 @@ class TurnExecutor {
868
890
  }
869
891
  return new import_DextoRuntimeError.DextoRuntimeError(
870
892
  import_error_codes.LLMErrorCode.INSUFFICIENT_CREDITS,
871
- import_types7.ErrorScope.LLM,
872
- import_types7.ErrorType.PAYMENT_REQUIRED,
893
+ import_types5.ErrorScope.LLM,
894
+ import_types5.ErrorType.PAYMENT_REQUIRED,
873
895
  `Insufficient Dexto credits${balance !== void 0 ? `. Balance: $${balance.toFixed(2)}` : ""}`,
874
896
  {
875
897
  sessionId: this.sessionId,
@@ -885,8 +907,8 @@ class TurnExecutor {
885
907
  if (status === 429) {
886
908
  return new import_DextoRuntimeError.DextoRuntimeError(
887
909
  import_error_codes.LLMErrorCode.RATE_LIMIT_EXCEEDED,
888
- import_types7.ErrorScope.LLM,
889
- import_types7.ErrorType.RATE_LIMIT,
910
+ import_types5.ErrorScope.LLM,
911
+ import_types5.ErrorType.RATE_LIMIT,
890
912
  `Rate limit exceeded${body ? ` - ${body}` : ""}`,
891
913
  {
892
914
  sessionId: this.sessionId,
@@ -901,8 +923,8 @@ class TurnExecutor {
901
923
  if (status === 408) {
902
924
  return new import_DextoRuntimeError.DextoRuntimeError(
903
925
  import_error_codes.LLMErrorCode.GENERATION_FAILED,
904
- import_types7.ErrorScope.LLM,
905
- import_types7.ErrorType.TIMEOUT,
926
+ import_types5.ErrorScope.LLM,
927
+ import_types5.ErrorType.TIMEOUT,
906
928
  `Provider timed out${body ? ` - ${body}` : ""}`,
907
929
  {
908
930
  sessionId: this.sessionId,
@@ -915,8 +937,8 @@ class TurnExecutor {
915
937
  }
916
938
  return new import_DextoRuntimeError.DextoRuntimeError(
917
939
  import_error_codes.LLMErrorCode.GENERATION_FAILED,
918
- import_types7.ErrorScope.LLM,
919
- import_types7.ErrorType.THIRD_PARTY,
940
+ import_types5.ErrorScope.LLM,
941
+ import_types5.ErrorType.THIRD_PARTY,
920
942
  `Provider error ${status}${body ? ` - ${body}` : ""}`,
921
943
  {
922
944
  sessionId: this.sessionId,
@@ -2,11 +2,11 @@ import { LanguageModel, type ModelMessage } from 'ai';
2
2
  import { ContextManager } from '../../context/manager.js';
3
3
  import { ToolManager } from '../../tools/tool-manager.js';
4
4
  import { ExecutorResult } from './types.js';
5
+ import type { LLMReasoningConfig, LLMContext } from '../types.js';
5
6
  import type { Logger } from '../../logger/v2/types.js';
6
7
  import type { SessionEventBus } from '../../events/index.js';
7
8
  import type { ResourceManager } from '../../resources/index.js';
8
9
  import { DynamicContributorContext } from '../../systemPrompt/types.js';
9
- import { LLMContext } from '../types.js';
10
10
  import type { MessageQueueService } from '../../session/message-queue.js';
11
11
  import type { CompactionStrategy } from '../../context/compaction/types.js';
12
12
  import type { ModelLimits } from '../../context/compaction/overflow.js';
@@ -43,7 +43,7 @@ export declare class TurnExecutor {
43
43
  private compactionStrategy;
44
44
  /**
45
45
  * Map to track tool-call metadata by toolCallId.
46
- * Used to pass execution-time info (approval + display name) to result persistence.
46
+ * Used to pass execution-time info (approval + presentation snapshot) to result persistence.
47
47
  */
48
48
  private toolCallMetadata;
49
49
  constructor(model: LanguageModel, toolManager: ToolManager, contextManager: ContextManager<ModelMessage>, eventBus: SessionEventBus, resourceManager: ResourceManager, sessionId: string, config: {
@@ -51,7 +51,7 @@ export declare class TurnExecutor {
51
51
  maxOutputTokens?: number | undefined;
52
52
  temperature?: number | undefined;
53
53
  baseURL?: string | undefined;
54
- reasoningEffort?: 'none' | 'minimal' | 'low' | 'medium' | 'high' | 'xhigh' | undefined;
54
+ reasoning?: LLMReasoningConfig | undefined;
55
55
  }, llmContext: LLMContext, logger: Logger, messageQueue: MessageQueueService, modelLimits?: ModelLimits | undefined, externalSignal?: AbortSignal | undefined, compactionStrategy?: CompactionStrategy | null);
56
56
  /**
57
57
  * Get StreamProcessor config from TurnExecutor state.
@@ -1 +1 @@
1
- {"version":3,"file":"turn-executor.d.ts","sourceRoot":"","sources":["../../../src/llm/executor/turn-executor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"turn-executor.d.ts","sourceRoot":"","sources":["../../../src/llm/executor/turn-executor.ts"],"names":[],"mappings":"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"}