@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.
- package/dist/agent/DextoAgent.cjs +79 -5
- package/dist/agent/DextoAgent.d.ts +24 -2
- package/dist/agent/DextoAgent.d.ts.map +1 -1
- package/dist/agent/DextoAgent.js +79 -5
- package/dist/agent/agent-options.d.ts +6 -1
- package/dist/agent/agent-options.d.ts.map +1 -1
- package/dist/agent/schemas.d.ts +18 -18
- package/dist/approval/manager.cjs +87 -27
- package/dist/approval/manager.d.ts +10 -1
- package/dist/approval/manager.d.ts.map +1 -1
- package/dist/approval/manager.js +87 -27
- package/dist/approval/schemas.cjs +22 -8
- package/dist/approval/schemas.d.ts +276 -102
- package/dist/approval/schemas.d.ts.map +1 -1
- package/dist/approval/schemas.js +22 -8
- package/dist/context/manager.cjs +2 -2
- package/dist/context/manager.d.ts +2 -1
- package/dist/context/manager.d.ts.map +1 -1
- package/dist/context/manager.js +2 -2
- package/dist/context/types.d.ts +3 -2
- package/dist/context/types.d.ts.map +1 -1
- package/dist/events/index.d.ts +26 -13
- package/dist/events/index.d.ts.map +1 -1
- package/dist/hooks/index.d.ts +1 -1
- package/dist/hooks/index.d.ts.map +1 -1
- package/dist/hooks/types.d.ts +1 -22
- package/dist/hooks/types.d.ts.map +1 -1
- package/dist/llm/executor/provider-options.cjs +223 -28
- package/dist/llm/executor/provider-options.d.ts +3 -37
- package/dist/llm/executor/provider-options.d.ts.map +1 -1
- package/dist/llm/executor/provider-options.js +227 -27
- package/dist/llm/executor/stream-processor.cjs +57 -34
- package/dist/llm/executor/stream-processor.d.ts +12 -4
- package/dist/llm/executor/stream-processor.d.ts.map +1 -1
- package/dist/llm/executor/stream-processor.js +55 -32
- package/dist/llm/executor/turn-executor.cjs +66 -44
- package/dist/llm/executor/turn-executor.d.ts +3 -3
- package/dist/llm/executor/turn-executor.d.ts.map +1 -1
- package/dist/llm/executor/turn-executor.js +56 -34
- package/dist/llm/formatters/vercel.cjs +15 -3
- package/dist/llm/formatters/vercel.d.ts +1 -0
- package/dist/llm/formatters/vercel.d.ts.map +1 -1
- package/dist/llm/formatters/vercel.js +15 -3
- package/dist/llm/index.cjs +8 -0
- package/dist/llm/index.d.ts +2 -1
- package/dist/llm/index.d.ts.map +1 -1
- package/dist/llm/index.js +7 -0
- package/dist/llm/providers/local/schemas.d.ts +2 -2
- package/dist/llm/providers/openrouter-model-registry.cjs +66 -11
- package/dist/llm/providers/openrouter-model-registry.d.ts +26 -0
- package/dist/llm/providers/openrouter-model-registry.d.ts.map +1 -1
- package/dist/llm/providers/openrouter-model-registry.js +65 -11
- package/dist/llm/reasoning/anthropic-betas.cjs +31 -0
- package/dist/llm/reasoning/anthropic-betas.d.ts +3 -0
- package/dist/llm/reasoning/anthropic-betas.d.ts.map +1 -0
- package/dist/llm/reasoning/anthropic-betas.js +7 -0
- package/dist/llm/reasoning/anthropic-thinking.cjs +79 -0
- package/dist/llm/reasoning/anthropic-thinking.d.ts +15 -0
- package/dist/llm/reasoning/anthropic-thinking.d.ts.map +1 -0
- package/dist/llm/reasoning/anthropic-thinking.js +52 -0
- package/dist/llm/reasoning/openai-reasoning-effort.cjs +86 -0
- package/dist/llm/reasoning/openai-reasoning-effort.d.ts +5 -0
- package/dist/llm/reasoning/openai-reasoning-effort.d.ts.map +1 -0
- package/dist/llm/reasoning/openai-reasoning-effort.js +61 -0
- package/dist/llm/reasoning/profile.cjs +113 -0
- package/dist/llm/reasoning/profile.d.ts +13 -0
- package/dist/llm/reasoning/profile.d.ts.map +1 -0
- package/dist/llm/reasoning/profile.js +92 -0
- package/dist/llm/reasoning/profiles/anthropic.cjs +61 -0
- package/dist/llm/reasoning/profiles/anthropic.d.ts +8 -0
- package/dist/llm/reasoning/profiles/anthropic.d.ts.map +1 -0
- package/dist/llm/reasoning/profiles/anthropic.js +45 -0
- package/dist/llm/reasoning/profiles/bedrock.cjs +54 -0
- package/dist/llm/reasoning/profiles/bedrock.d.ts +3 -0
- package/dist/llm/reasoning/profiles/bedrock.d.ts.map +1 -0
- package/dist/llm/reasoning/profiles/bedrock.js +36 -0
- package/dist/llm/reasoning/profiles/google.cjs +45 -0
- package/dist/llm/reasoning/profiles/google.d.ts +9 -0
- package/dist/llm/reasoning/profiles/google.d.ts.map +1 -0
- package/dist/llm/reasoning/profiles/google.js +21 -0
- package/dist/llm/reasoning/profiles/openai-compatible.cjs +39 -0
- package/dist/llm/reasoning/profiles/openai-compatible.d.ts +3 -0
- package/dist/llm/reasoning/profiles/openai-compatible.d.ts.map +1 -0
- package/dist/llm/reasoning/profiles/openai-compatible.js +16 -0
- package/dist/llm/reasoning/profiles/openai.cjs +41 -0
- package/dist/llm/reasoning/profiles/openai.d.ts +3 -0
- package/dist/llm/reasoning/profiles/openai.d.ts.map +1 -0
- package/dist/llm/reasoning/profiles/openai.js +18 -0
- package/dist/llm/reasoning/profiles/openrouter.cjs +83 -0
- package/dist/llm/reasoning/profiles/openrouter.d.ts +10 -0
- package/dist/llm/reasoning/profiles/openrouter.d.ts.map +1 -0
- package/dist/llm/reasoning/profiles/openrouter.js +59 -0
- package/dist/llm/reasoning/profiles/shared.cjs +80 -0
- package/dist/llm/reasoning/profiles/shared.d.ts +25 -0
- package/dist/llm/reasoning/profiles/shared.d.ts.map +1 -0
- package/dist/llm/reasoning/profiles/shared.js +53 -0
- package/dist/llm/reasoning/profiles/vertex.cjs +46 -0
- package/dist/llm/reasoning/profiles/vertex.d.ts +3 -0
- package/dist/llm/reasoning/profiles/vertex.d.ts.map +1 -0
- package/dist/llm/reasoning/profiles/vertex.js +23 -0
- package/dist/llm/registry/auto-update.cjs +18 -0
- package/dist/llm/registry/auto-update.d.ts.map +1 -1
- package/dist/llm/registry/auto-update.js +18 -0
- package/dist/llm/registry/index.cjs +126 -26
- package/dist/llm/registry/index.d.ts +48 -4
- package/dist/llm/registry/index.d.ts.map +1 -1
- package/dist/llm/registry/index.js +136 -28
- package/dist/llm/registry/models.generated.cjs +5198 -59
- package/dist/llm/registry/models.generated.d.ts +1893 -76
- package/dist/llm/registry/models.generated.d.ts.map +1 -1
- package/dist/llm/registry/models.generated.js +5196 -58
- package/dist/llm/registry/sync.cjs +72 -1
- package/dist/llm/registry/sync.d.ts +21 -1
- package/dist/llm/registry/sync.d.ts.map +1 -1
- package/dist/llm/registry/sync.js +72 -1
- package/dist/llm/resolver.cjs +13 -1
- package/dist/llm/resolver.d.ts.map +1 -1
- package/dist/llm/resolver.js +13 -1
- package/dist/llm/schemas.cjs +75 -14
- package/dist/llm/schemas.d.ts +84 -27
- package/dist/llm/schemas.d.ts.map +1 -1
- package/dist/llm/schemas.js +75 -14
- package/dist/llm/services/factory.cjs +55 -8
- package/dist/llm/services/factory.d.ts +1 -1
- package/dist/llm/services/factory.d.ts.map +1 -1
- package/dist/llm/services/factory.js +58 -8
- package/dist/llm/services/vercel.cjs +2 -2
- package/dist/llm/services/vercel.js +2 -2
- package/dist/llm/types.d.ts +9 -0
- package/dist/llm/types.d.ts.map +1 -1
- package/dist/logger/default-logger-factory.d.ts +12 -12
- package/dist/logger/v2/dexto-logger.cjs +35 -0
- package/dist/logger/v2/dexto-logger.d.ts +19 -0
- package/dist/logger/v2/dexto-logger.d.ts.map +1 -1
- package/dist/logger/v2/dexto-logger.js +35 -0
- package/dist/logger/v2/schemas.d.ts +6 -6
- package/dist/logger/v2/test-utils.cjs +2 -0
- package/dist/logger/v2/test-utils.d.ts.map +1 -1
- package/dist/logger/v2/test-utils.js +2 -0
- package/dist/logger/v2/types.d.ts +14 -1
- package/dist/logger/v2/types.d.ts.map +1 -1
- package/dist/mcp/schemas.d.ts +15 -15
- package/dist/memory/schemas.d.ts +4 -4
- package/dist/prompts/index.cjs +9 -0
- package/dist/prompts/index.d.ts +1 -0
- package/dist/prompts/index.d.ts.map +1 -1
- package/dist/prompts/index.js +10 -0
- package/dist/prompts/prompt-manager.cjs +2 -0
- package/dist/prompts/prompt-manager.d.ts.map +1 -1
- package/dist/prompts/prompt-manager.js +2 -0
- package/dist/prompts/providers/config-prompt-provider.cjs +11 -1
- package/dist/prompts/providers/config-prompt-provider.d.ts.map +1 -1
- package/dist/prompts/providers/config-prompt-provider.js +11 -1
- package/dist/prompts/schemas.cjs +2 -2
- package/dist/prompts/schemas.d.ts +7 -7
- package/dist/prompts/schemas.js +2 -2
- package/dist/prompts/types.d.ts +6 -2
- package/dist/prompts/types.d.ts.map +1 -1
- package/dist/systemPrompt/in-built-prompts.cjs +5 -5
- package/dist/systemPrompt/in-built-prompts.d.ts +1 -1
- package/dist/systemPrompt/in-built-prompts.d.ts.map +1 -1
- package/dist/systemPrompt/in-built-prompts.js +5 -5
- package/dist/systemPrompt/schemas.d.ts +5 -5
- package/dist/systemPrompt/types.d.ts +11 -0
- package/dist/systemPrompt/types.d.ts.map +1 -1
- package/dist/tools/display-types.d.ts +10 -0
- package/dist/tools/display-types.d.ts.map +1 -1
- package/dist/tools/index.cjs +3 -1
- package/dist/tools/index.d.ts +1 -0
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +1 -0
- package/dist/tools/presentation.cjs +49 -0
- package/dist/tools/presentation.d.ts +11 -0
- package/dist/tools/presentation.d.ts.map +1 -0
- package/dist/tools/presentation.js +24 -0
- package/dist/tools/tool-manager.cjs +389 -136
- package/dist/tools/tool-manager.d.ts +36 -24
- package/dist/tools/tool-manager.d.ts.map +1 -1
- package/dist/tools/tool-manager.js +389 -136
- package/dist/tools/types.d.ts +134 -55
- package/dist/tools/types.d.ts.map +1 -1
- package/dist/utils/path.cjs +10 -1
- package/dist/utils/path.d.ts +5 -2
- package/dist/utils/path.d.ts.map +1 -1
- package/dist/utils/path.js +10 -1
- package/dist/utils/service-initializer.d.ts +1 -0
- package/dist/utils/service-initializer.d.ts.map +1 -1
- 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
|
|
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 +
|
|
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(
|
|
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.
|
|
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?.
|
|
206
|
-
|
|
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.
|
|
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(
|
|
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.
|
|
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.
|
|
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 {
|
|
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 +
|
|
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
|
-
|
|
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;
|
|
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 +
|
|
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.
|
|
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?.
|
|
184
|
-
|
|
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.
|
|
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(
|
|
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.
|
|
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.
|
|
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
|
|
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
|
|
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(
|
|
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 +
|
|
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
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
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.
|
|
505
|
-
meta.
|
|
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
|
-
|
|
872
|
-
|
|
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
|
-
|
|
889
|
-
|
|
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
|
-
|
|
905
|
-
|
|
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
|
-
|
|
919
|
-
|
|
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 +
|
|
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
|
-
|
|
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":"AAAA,OAAO,EACH,aAAa,EAMb,KAAK,YAAY,EAEpB,MAAM,IAAI,CAAC;AAEZ,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAE1D,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"turn-executor.d.ts","sourceRoot":"","sources":["../../../src/llm/executor/turn-executor.ts"],"names":[],"mappings":"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"}
|