@n8n/agents 0.12.0 → 0.13.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.
- package/dist/build.tsbuildinfo +1 -1
- package/dist/index.d.ts +22 -21
- package/dist/index.js +13 -13
- package/dist/index.js.map +1 -1
- package/dist/runtime/{agent-runtime.d.ts → loop/agent-runtime.d.ts} +19 -51
- package/dist/runtime/loop/agent-runtime.js +468 -0
- package/dist/runtime/loop/agent-runtime.js.map +1 -0
- package/dist/runtime/loop/execution-counter.d.ts +12 -0
- package/dist/runtime/loop/execution-counter.js +36 -0
- package/dist/runtime/loop/execution-counter.js.map +1 -0
- package/dist/runtime/loop/generate-sink.d.ts +13 -0
- package/dist/runtime/loop/generate-sink.js +75 -0
- package/dist/runtime/loop/generate-sink.js.map +1 -0
- package/dist/runtime/loop/run-output-sink.d.ts +68 -0
- package/dist/runtime/loop/run-output-sink.js +3 -0
- package/dist/runtime/loop/run-output-sink.js.map +1 -0
- package/dist/runtime/loop/runtime-context.d.ts +38 -0
- package/dist/runtime/loop/runtime-context.js +188 -0
- package/dist/runtime/loop/runtime-context.js.map +1 -0
- package/dist/runtime/{runtime-helpers.d.ts → loop/runtime-helpers.d.ts} +3 -2
- package/dist/runtime/{runtime-helpers.js → loop/runtime-helpers.js} +4 -2
- package/dist/runtime/loop/runtime-helpers.js.map +1 -0
- package/dist/runtime/loop/stream-sink.d.ts +22 -0
- package/dist/runtime/loop/stream-sink.js +144 -0
- package/dist/runtime/loop/stream-sink.js.map +1 -0
- package/dist/runtime/{mcp-connection.d.ts → mcp/mcp-connection.d.ts} +2 -2
- package/dist/runtime/{mcp-connection.js → mcp/mcp-connection.js} +16 -2
- package/dist/runtime/mcp/mcp-connection.js.map +1 -0
- package/dist/runtime/{mcp-tool-resolver.d.ts → mcp/mcp-tool-resolver.d.ts} +1 -1
- package/dist/runtime/mcp/mcp-tool-resolver.js.map +1 -0
- package/dist/runtime/{episodic-memory-defaults.d.ts → memory/episodic-memory-defaults.d.ts} +1 -1
- package/dist/runtime/{episodic-memory-defaults.js → memory/episodic-memory-defaults.js} +2 -2
- package/dist/runtime/memory/episodic-memory-defaults.js.map +1 -0
- package/dist/runtime/{episodic-memory.d.ts → memory/episodic-memory.d.ts} +4 -4
- package/dist/runtime/{episodic-memory.js → memory/episodic-memory.js} +2 -2
- package/dist/runtime/memory/episodic-memory.js.map +1 -0
- package/dist/runtime/memory/memory-lifecycle.js.map +1 -0
- package/dist/runtime/memory/memory-orchestrator.d.ts +27 -0
- package/dist/runtime/memory/memory-orchestrator.js +232 -0
- package/dist/runtime/memory/memory-orchestrator.js.map +1 -0
- package/dist/runtime/{memory-store.d.ts → memory/memory-store.d.ts} +4 -4
- package/dist/runtime/{memory-store.js → memory/memory-store.js} +1 -1
- package/dist/runtime/memory/memory-store.js.map +1 -0
- package/dist/runtime/{observation-log-defaults.d.ts → memory/observation-log-defaults.d.ts} +2 -2
- package/dist/runtime/{observation-log-defaults.js → memory/observation-log-defaults.js} +6 -6
- package/dist/runtime/memory/observation-log-defaults.js.map +1 -0
- package/dist/runtime/{observation-log-observer.d.ts → memory/observation-log-observer.d.ts} +6 -5
- package/dist/runtime/{observation-log-observer.js → memory/observation-log-observer.js} +6 -2
- package/dist/runtime/memory/observation-log-observer.js.map +1 -0
- package/dist/runtime/{observation-log-reflector.d.ts → memory/observation-log-reflector.d.ts} +2 -2
- package/dist/runtime/{observation-log-reflector.js → memory/observation-log-reflector.js} +4 -6
- package/dist/runtime/memory/observation-log-reflector.js.map +1 -0
- package/dist/runtime/{observation-log-renderer.d.ts → memory/observation-log-renderer.d.ts} +1 -1
- package/dist/runtime/{observation-log-renderer.js → memory/observation-log-renderer.js} +1 -1
- package/dist/runtime/memory/observation-log-renderer.js.map +1 -0
- package/dist/runtime/{observation-log-store.d.ts → memory/observation-log-store.d.ts} +2 -1
- package/dist/runtime/{observation-log-store.js → memory/observation-log-store.js} +1 -0
- package/dist/runtime/memory/observation-log-store.js.map +1 -0
- package/dist/runtime/{scoped-memory-task-runner.d.ts → memory/scoped-memory-task-runner.d.ts} +5 -2
- package/dist/runtime/{scoped-memory-task-runner.js → memory/scoped-memory-task-runner.js} +2 -1
- package/dist/runtime/memory/scoped-memory-task-runner.js.map +1 -0
- package/dist/runtime/{strip-orphaned-tool-messages.d.ts → memory/strip-orphaned-tool-messages.d.ts} +1 -1
- package/dist/runtime/{strip-orphaned-tool-messages.js → memory/strip-orphaned-tool-messages.js} +1 -1
- package/dist/runtime/memory/strip-orphaned-tool-messages.js.map +1 -0
- package/dist/runtime/{title-generation.d.ts → memory/title-generation.d.ts} +5 -3
- package/dist/runtime/{title-generation.js → memory/title-generation.js} +5 -5
- package/dist/runtime/memory/title-generation.js.map +1 -0
- package/dist/runtime/model/lazy-ai.js.map +1 -0
- package/dist/runtime/{message-list.d.ts → model/message-list.d.ts} +3 -3
- package/dist/runtime/{message-list.js → model/message-list.js} +3 -3
- package/dist/runtime/model/message-list.js.map +1 -0
- package/dist/runtime/model/messages.d.ts +17 -0
- package/dist/runtime/{messages.js → model/messages.js} +64 -18
- package/dist/runtime/model/messages.js.map +1 -0
- package/dist/runtime/{model-factory.d.ts → model/model-factory.d.ts} +3 -2
- package/dist/runtime/{model-factory.js → model/model-factory.js} +3 -3
- package/dist/runtime/model/model-factory.js.map +1 -0
- package/dist/runtime/model/provider-credentials.js.map +1 -0
- package/dist/runtime/model/raw-usage.d.ts +11 -0
- package/dist/runtime/model/raw-usage.js +55 -0
- package/dist/runtime/model/raw-usage.js.map +1 -0
- package/dist/runtime/state/background-task-tracker.js.map +1 -0
- package/dist/runtime/{event-bus.d.ts → state/event-bus.d.ts} +2 -2
- package/dist/runtime/{event-bus.js → state/event-bus.js} +1 -1
- package/dist/runtime/state/event-bus.js.map +1 -0
- package/dist/runtime/{run-state.d.ts → state/run-state.d.ts} +1 -1
- package/dist/runtime/state/run-state.js.map +1 -0
- package/dist/runtime/streaming/stream-session.d.ts +21 -0
- package/dist/runtime/streaming/stream-session.js +67 -0
- package/dist/runtime/streaming/stream-session.js.map +1 -0
- package/dist/runtime/streaming/stream-writer-guard.d.ts +14 -0
- package/dist/runtime/streaming/stream-writer-guard.js +45 -0
- package/dist/runtime/streaming/stream-writer-guard.js.map +1 -0
- package/dist/runtime/{stream.d.ts → streaming/stream.d.ts} +2 -1
- package/dist/runtime/{stream.js → streaming/stream.js} +3 -1
- package/dist/runtime/streaming/stream.js.map +1 -0
- package/dist/runtime/telemetry/runtime-telemetry.d.ts +19 -0
- package/dist/runtime/telemetry/runtime-telemetry.js +174 -0
- package/dist/runtime/telemetry/runtime-telemetry.js.map +1 -0
- package/dist/runtime/{deferred-tool-manager.d.ts → tools/deferred-tool-manager.d.ts} +2 -2
- package/dist/runtime/{deferred-tool-manager.js → tools/deferred-tool-manager.js} +3 -5
- package/dist/runtime/tools/deferred-tool-manager.js.map +1 -0
- package/dist/runtime/{delegate-sub-agent-tool.d.ts → tools/delegate-sub-agent-tool.d.ts} +2 -2
- package/dist/runtime/{delegate-sub-agent-tool.js → tools/delegate-sub-agent-tool.js} +2 -2
- package/dist/runtime/tools/delegate-sub-agent-tool.js.map +1 -0
- package/dist/runtime/{fix-tool-call.d.ts → tools/fix-tool-call.d.ts} +1 -1
- package/dist/runtime/{fix-tool-call.js → tools/fix-tool-call.js} +1 -1
- package/dist/runtime/tools/fix-tool-call.js.map +1 -0
- package/dist/runtime/{sdk-owned-tool.d.ts → tools/sdk-owned-tool.d.ts} +1 -1
- package/dist/runtime/tools/sdk-owned-tool.js.map +1 -0
- package/dist/runtime/tools/sub-agent-task-path.js.map +1 -0
- package/dist/runtime/{tool-adapter.d.ts → tools/tool-adapter.d.ts} +1 -1
- package/dist/runtime/{tool-adapter.js → tools/tool-adapter.js} +4 -4
- package/dist/runtime/tools/tool-adapter.js.map +1 -0
- package/dist/runtime/tools/tool-call-executor.d.ts +86 -0
- package/dist/runtime/tools/tool-call-executor.js +498 -0
- package/dist/runtime/tools/tool-call-executor.js.map +1 -0
- package/dist/runtime/{write-todos-tool.d.ts → tools/write-todos-tool.d.ts} +1 -1
- package/dist/runtime/{write-todos-tool.js → tools/write-todos-tool.js} +1 -1
- package/dist/runtime/tools/write-todos-tool.js.map +1 -0
- package/dist/sdk/agent.d.ts +7 -1
- package/dist/sdk/agent.js +18 -8
- package/dist/sdk/agent.js.map +1 -1
- package/dist/sdk/eval.js +1 -1
- package/dist/sdk/eval.js.map +1 -1
- package/dist/sdk/guardrails/patterns.d.ts +3 -0
- package/dist/sdk/guardrails/patterns.js +95 -2
- package/dist/sdk/guardrails/patterns.js.map +1 -1
- package/dist/sdk/mcp-client.js +1 -1
- package/dist/sdk/mcp-client.js.map +1 -1
- package/dist/sdk/memory.d.ts +1 -1
- package/dist/sdk/memory.js +6 -6
- package/dist/sdk/memory.js.map +1 -1
- package/dist/skills/registry.js +2 -4
- package/dist/skills/registry.js.map +1 -1
- package/dist/skills/validator.js +4 -6
- package/dist/skills/validator.js.map +1 -1
- package/dist/types/sdk/agent-builder.d.ts +2 -0
- package/dist/types/sdk/agent.d.ts +6 -2
- package/dist/types/sdk/guardrail.d.ts +1 -1
- package/dist/types/sdk/provider.d.ts +1 -0
- package/dist/workspace/sandbox/daytona-auth-manager.d.ts +1 -1
- package/dist/workspace/sandbox/daytona-sandbox.d.ts +1 -1
- package/dist/workspace/sandbox/lazy-daytona.d.ts +1 -1
- package/dist/workspace/sandbox/lazy-daytona.js +1 -1
- package/dist/workspace/sandbox/lazy-daytona.js.map +1 -1
- package/dist/workspace/sandbox/types.d.ts +1 -1
- package/package.json +10 -10
- package/dist/runtime/agent-runtime.js +0 -1771
- package/dist/runtime/agent-runtime.js.map +0 -1
- package/dist/runtime/background-task-tracker.js.map +0 -1
- package/dist/runtime/deferred-tool-manager.js.map +0 -1
- package/dist/runtime/delegate-sub-agent-tool.js.map +0 -1
- package/dist/runtime/episodic-memory-defaults.js.map +0 -1
- package/dist/runtime/episodic-memory.js.map +0 -1
- package/dist/runtime/event-bus.js.map +0 -1
- package/dist/runtime/execution-counter.d.ts +0 -9
- package/dist/runtime/execution-counter.js +0 -16
- package/dist/runtime/execution-counter.js.map +0 -1
- package/dist/runtime/fix-tool-call.js.map +0 -1
- package/dist/runtime/lazy-ai.js.map +0 -1
- package/dist/runtime/mcp-connection.js.map +0 -1
- package/dist/runtime/mcp-tool-resolver.js.map +0 -1
- package/dist/runtime/memory-lifecycle.js.map +0 -1
- package/dist/runtime/memory-store.js.map +0 -1
- package/dist/runtime/message-list.js.map +0 -1
- package/dist/runtime/messages.d.ts +0 -6
- package/dist/runtime/messages.js.map +0 -1
- package/dist/runtime/model-factory.js.map +0 -1
- package/dist/runtime/observation-log-defaults.js.map +0 -1
- package/dist/runtime/observation-log-observer.js.map +0 -1
- package/dist/runtime/observation-log-reflector.js.map +0 -1
- package/dist/runtime/observation-log-renderer.js.map +0 -1
- package/dist/runtime/observation-log-store.js.map +0 -1
- package/dist/runtime/provider-credentials.js.map +0 -1
- package/dist/runtime/run-state.js.map +0 -1
- package/dist/runtime/runtime-helpers.js.map +0 -1
- package/dist/runtime/scoped-memory-task-runner.js.map +0 -1
- package/dist/runtime/sdk-owned-tool.js.map +0 -1
- package/dist/runtime/stream.js.map +0 -1
- package/dist/runtime/strip-orphaned-tool-messages.js.map +0 -1
- package/dist/runtime/sub-agent-task-path.js.map +0 -1
- package/dist/runtime/title-generation.js.map +0 -1
- package/dist/runtime/tool-adapter.js.map +0 -1
- package/dist/runtime/write-todos-tool.js.map +0 -1
- /package/dist/runtime/{mcp-tool-resolver.js → mcp/mcp-tool-resolver.js} +0 -0
- /package/dist/runtime/{memory-lifecycle.d.ts → memory/memory-lifecycle.d.ts} +0 -0
- /package/dist/runtime/{memory-lifecycle.js → memory/memory-lifecycle.js} +0 -0
- /package/dist/runtime/{lazy-ai.d.ts → model/lazy-ai.d.ts} +0 -0
- /package/dist/runtime/{lazy-ai.js → model/lazy-ai.js} +0 -0
- /package/dist/runtime/{provider-credentials.d.ts → model/provider-credentials.d.ts} +0 -0
- /package/dist/runtime/{provider-credentials.js → model/provider-credentials.js} +0 -0
- /package/dist/runtime/{background-task-tracker.d.ts → state/background-task-tracker.d.ts} +0 -0
- /package/dist/runtime/{background-task-tracker.js → state/background-task-tracker.js} +0 -0
- /package/dist/runtime/{run-state.js → state/run-state.js} +0 -0
- /package/dist/runtime/{sdk-owned-tool.js → tools/sdk-owned-tool.js} +0 -0
- /package/dist/runtime/{sub-agent-task-path.d.ts → tools/sub-agent-task-path.d.ts} +0 -0
- /package/dist/runtime/{sub-agent-task-path.js → tools/sub-agent-task-path.js} +0 -0
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import type { LanguageModel, LanguageModelUsage, ModelMessage, Output, SystemModelMessage, TelemetrySettings, ToolCallRepairFunction, ToolSet } from 'ai';
|
|
2
|
+
import type { FinishReason, SerializableAgentState, TokenUsage } from '../../types';
|
|
3
|
+
import type { ExecutionOptions, RunOptions } from '../../types/sdk/agent';
|
|
4
|
+
import type { AgentMessage } from '../../types/sdk/message';
|
|
5
|
+
import type { JSONObject } from '../../types/utils/json';
|
|
6
|
+
import type { AgentMessageList } from '../model/message-list';
|
|
7
|
+
import type { ToolCallBatchResult, ToolCallSuspension } from '../tools/tool-call-executor';
|
|
8
|
+
type RunCallOptions = (RunOptions & ExecutionOptions) | undefined;
|
|
9
|
+
export interface ModelTurnResult {
|
|
10
|
+
aiFinishReason: string;
|
|
11
|
+
finishReason: FinishReason;
|
|
12
|
+
usage: LanguageModelUsage | undefined;
|
|
13
|
+
newMessages: AgentMessage[];
|
|
14
|
+
toolCalls: Array<{
|
|
15
|
+
toolCallId: string;
|
|
16
|
+
toolName: string;
|
|
17
|
+
input: unknown;
|
|
18
|
+
providerExecuted?: boolean;
|
|
19
|
+
}>;
|
|
20
|
+
structuredOutput: unknown;
|
|
21
|
+
}
|
|
22
|
+
export interface ModelCallContext {
|
|
23
|
+
model: LanguageModel;
|
|
24
|
+
system: SystemModelMessage;
|
|
25
|
+
messages: ModelMessage[];
|
|
26
|
+
abortSignal: AbortSignal;
|
|
27
|
+
hasTools: boolean;
|
|
28
|
+
aiTools: ToolSet;
|
|
29
|
+
providerOptions?: Record<string, JSONObject>;
|
|
30
|
+
outputSpec?: ReturnType<typeof Output.object>;
|
|
31
|
+
aiSdkOptions: {
|
|
32
|
+
experimental_telemetry?: TelemetrySettings;
|
|
33
|
+
experimental_repairToolCall?: ToolCallRepairFunction<NoInfer<ToolSet>>;
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
export interface SuspendEmission {
|
|
37
|
+
suspendRunId: string;
|
|
38
|
+
list: AgentMessageList;
|
|
39
|
+
usage: TokenUsage | undefined;
|
|
40
|
+
suspensions: ToolCallSuspension[];
|
|
41
|
+
}
|
|
42
|
+
export interface CompleteEmission {
|
|
43
|
+
list: AgentMessageList;
|
|
44
|
+
options: RunCallOptions;
|
|
45
|
+
finishReason: FinishReason;
|
|
46
|
+
usage: TokenUsage | undefined;
|
|
47
|
+
structuredOutput: unknown;
|
|
48
|
+
}
|
|
49
|
+
export interface RunServices {
|
|
50
|
+
readonly runId: string;
|
|
51
|
+
readonly modelId: string;
|
|
52
|
+
applyCost(usage: TokenUsage | undefined): TokenUsage | undefined;
|
|
53
|
+
saveToMemory(list: AgentMessageList, options: RunCallOptions): Promise<void>;
|
|
54
|
+
maybeGenerateTitle(list: AgentMessageList, options: RunCallOptions): Promise<void>;
|
|
55
|
+
flushTelemetry(options: RunCallOptions): Promise<void>;
|
|
56
|
+
cleanupRun(): Promise<void>;
|
|
57
|
+
updateState(patch: Partial<SerializableAgentState>): void;
|
|
58
|
+
emitAgentEnd(messages: AgentMessage[]): void;
|
|
59
|
+
getState(): SerializableAgentState;
|
|
60
|
+
}
|
|
61
|
+
export interface RunOutputSink<TResult> {
|
|
62
|
+
callModel(ctx: ModelCallContext): Promise<ModelTurnResult>;
|
|
63
|
+
reportUsage(usage: TokenUsage | undefined): void;
|
|
64
|
+
emitToolBatch(batch: ToolCallBatchResult): Promise<void>;
|
|
65
|
+
finishSuspended(emission: SuspendEmission): Promise<TResult>;
|
|
66
|
+
finishComplete(emission: CompleteEmission): Promise<TResult>;
|
|
67
|
+
}
|
|
68
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"run-output-sink.js","sourceRoot":"","sources":["../../../src/runtime/loop/run-output-sink.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import type { LanguageModel, Output } from 'ai';
|
|
2
|
+
import type { AgentRuntimeConfig } from './agent-runtime';
|
|
3
|
+
import type { AgentExecutionCounter, BuiltTool, JSONObject } from '../../types';
|
|
4
|
+
import type { AgentPersistenceOptions, ExecutionOptions, ModelConfig } from '../../types/sdk/agent';
|
|
5
|
+
import type { AgentMessageList } from '../model/message-list';
|
|
6
|
+
import type { DeferredToolManager } from '../tools/deferred-tool-manager';
|
|
7
|
+
import { toAiSdkProviderTools } from '../tools/tool-adapter';
|
|
8
|
+
export declare function getModelIdString(model: ModelConfig): string;
|
|
9
|
+
export interface StaticLoopContext {
|
|
10
|
+
model: LanguageModel;
|
|
11
|
+
aiProviderTools: ReturnType<typeof toAiSdkProviderTools>;
|
|
12
|
+
providerOptions?: Record<string, JSONObject>;
|
|
13
|
+
outputSpec?: ReturnType<typeof Output.object>;
|
|
14
|
+
}
|
|
15
|
+
export declare class RuntimeContextBuilder {
|
|
16
|
+
private readonly config;
|
|
17
|
+
private readonly deferredToolManager;
|
|
18
|
+
constructor(config: AgentRuntimeConfig, deferredToolManager: DeferredToolManager | undefined);
|
|
19
|
+
get modelId(): string;
|
|
20
|
+
buildStaticLoopContext(execOptions?: ExecutionOptions & {
|
|
21
|
+
persistence?: AgentPersistenceOptions;
|
|
22
|
+
}): StaticLoopContext;
|
|
23
|
+
buildToolLoopContext(aiProviderTools: ReturnType<typeof toAiSdkProviderTools>, persistence?: AgentPersistenceOptions, executionCounter?: AgentExecutionCounter): {
|
|
24
|
+
toolMap: Map<string, BuiltTool>;
|
|
25
|
+
aiTools: {
|
|
26
|
+
[x: string]: import("ai").Tool;
|
|
27
|
+
};
|
|
28
|
+
hasTools: boolean;
|
|
29
|
+
effectiveInstructions: string;
|
|
30
|
+
};
|
|
31
|
+
getCurrentTools(persistence?: AgentPersistenceOptions, executionCounter?: AgentExecutionCounter): BuiltTool[];
|
|
32
|
+
hydrateDeferredToolsFromList(list: AgentMessageList): void;
|
|
33
|
+
private relaxStrictJsonSchemaIfNeeded;
|
|
34
|
+
private createRecallMemoryToolForRun;
|
|
35
|
+
private composeEffectiveInstructions;
|
|
36
|
+
private buildThinkingProviderOptions;
|
|
37
|
+
private buildCallProviderOptions;
|
|
38
|
+
}
|
|
@@ -0,0 +1,188 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.RuntimeContextBuilder = void 0;
|
|
4
|
+
exports.getModelIdString = getModelIdString;
|
|
5
|
+
const json_schema_1 = require("../../utils/json-schema");
|
|
6
|
+
const zod_1 = require("../../utils/zod");
|
|
7
|
+
const episodic_memory_1 = require("../memory/episodic-memory");
|
|
8
|
+
const lazy_ai_1 = require("../model/lazy-ai");
|
|
9
|
+
const model_factory_1 = require("../model/model-factory");
|
|
10
|
+
const tool_adapter_1 = require("../tools/tool-adapter");
|
|
11
|
+
function getModelIdString(model) {
|
|
12
|
+
if (typeof model === 'string')
|
|
13
|
+
return model;
|
|
14
|
+
if ('id' in model && typeof model.id === 'string')
|
|
15
|
+
return model.id;
|
|
16
|
+
if ('modelId' in model && typeof model.modelId === 'string') {
|
|
17
|
+
const rawProvider = 'provider' in model ? String(model.provider) : 'unknown';
|
|
18
|
+
const provider = rawProvider.split('.')[0];
|
|
19
|
+
return `${provider}/${model.modelId}`;
|
|
20
|
+
}
|
|
21
|
+
return 'unknown';
|
|
22
|
+
}
|
|
23
|
+
class RuntimeContextBuilder {
|
|
24
|
+
constructor(config, deferredToolManager) {
|
|
25
|
+
this.config = config;
|
|
26
|
+
this.deferredToolManager = deferredToolManager;
|
|
27
|
+
}
|
|
28
|
+
get modelId() {
|
|
29
|
+
return getModelIdString(this.config.model);
|
|
30
|
+
}
|
|
31
|
+
buildStaticLoopContext(execOptions) {
|
|
32
|
+
const { Output, jsonSchema } = (0, lazy_ai_1.loadAi)();
|
|
33
|
+
const aiProviderTools = (0, tool_adapter_1.toAiSdkProviderTools)(this.config.providerTools);
|
|
34
|
+
const model = (0, model_factory_1.createModel)(this.config.model, this.config.modelFetch);
|
|
35
|
+
const outputSchema = this.config.structuredOutput;
|
|
36
|
+
const isRawJsonSchemaOutput = outputSchema !== undefined && !(0, zod_1.isZodSchema)(outputSchema);
|
|
37
|
+
const providerOptions = this.relaxStrictJsonSchemaIfNeeded(this.buildCallProviderOptions(execOptions?.providerOptions), isRawJsonSchemaOutput);
|
|
38
|
+
const outputSpec = outputSchema
|
|
39
|
+
? Output.object({
|
|
40
|
+
schema: (0, zod_1.isZodSchema)(outputSchema)
|
|
41
|
+
? outputSchema
|
|
42
|
+
: jsonSchema((0, json_schema_1.lockAdditionalProperties)(outputSchema)),
|
|
43
|
+
})
|
|
44
|
+
: undefined;
|
|
45
|
+
return {
|
|
46
|
+
model,
|
|
47
|
+
aiProviderTools,
|
|
48
|
+
providerOptions: providerOptions,
|
|
49
|
+
outputSpec,
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
buildToolLoopContext(aiProviderTools, persistence, executionCounter) {
|
|
53
|
+
const allUserTools = this.getCurrentTools(persistence, executionCounter);
|
|
54
|
+
const aiTools = (0, tool_adapter_1.toAiSdkTools)(allUserTools);
|
|
55
|
+
const allTools = { ...aiTools, ...aiProviderTools };
|
|
56
|
+
const aiToolCount = Object.keys(allTools).length;
|
|
57
|
+
const toolMap = (0, tool_adapter_1.buildToolMap)(allUserTools);
|
|
58
|
+
const effectiveInstructions = this.composeEffectiveInstructions(allUserTools);
|
|
59
|
+
return {
|
|
60
|
+
toolMap,
|
|
61
|
+
aiTools: allTools,
|
|
62
|
+
hasTools: aiToolCount > 0,
|
|
63
|
+
effectiveInstructions,
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
getCurrentTools(persistence, executionCounter) {
|
|
67
|
+
const baseTools = this.config.tools ?? [];
|
|
68
|
+
const tools = [
|
|
69
|
+
...baseTools,
|
|
70
|
+
...(this.deferredToolManager?.hasTools
|
|
71
|
+
? [
|
|
72
|
+
...this.deferredToolManager.getControllerTools(),
|
|
73
|
+
...this.deferredToolManager.getLoadedTools(),
|
|
74
|
+
]
|
|
75
|
+
: []),
|
|
76
|
+
];
|
|
77
|
+
const recallTool = this.createRecallMemoryToolForRun(persistence, tools, executionCounter);
|
|
78
|
+
return recallTool ? [...tools, recallTool] : tools;
|
|
79
|
+
}
|
|
80
|
+
hydrateDeferredToolsFromList(list) {
|
|
81
|
+
if (!this.deferredToolManager?.hasTools)
|
|
82
|
+
return;
|
|
83
|
+
this.deferredToolManager.hydrateLoadedToolsFromMessages(list.serialize().messages);
|
|
84
|
+
}
|
|
85
|
+
relaxStrictJsonSchemaIfNeeded(providerOptions, isRawJsonSchemaOutput) {
|
|
86
|
+
if (!isRawJsonSchemaOutput)
|
|
87
|
+
return providerOptions;
|
|
88
|
+
const result = { ...providerOptions };
|
|
89
|
+
for (const provider of ['openai', 'groq']) {
|
|
90
|
+
result[provider] = { strictJsonSchema: false, ...result[provider] };
|
|
91
|
+
}
|
|
92
|
+
return result;
|
|
93
|
+
}
|
|
94
|
+
createRecallMemoryToolForRun(persistence, existingTools, executionCounter) {
|
|
95
|
+
const { memory, episodicMemory } = this.config;
|
|
96
|
+
if (!memory ||
|
|
97
|
+
!episodicMemory ||
|
|
98
|
+
!(0, episodic_memory_1.isEpisodicMemoryEnabled)(episodicMemory) ||
|
|
99
|
+
!(0, episodic_memory_1.hasEpisodicMemoryStore)(memory)) {
|
|
100
|
+
return undefined;
|
|
101
|
+
}
|
|
102
|
+
const scope = (0, episodic_memory_1.getEpisodicMemoryScope)(persistence);
|
|
103
|
+
if (!scope)
|
|
104
|
+
return undefined;
|
|
105
|
+
if (existingTools.some((tool) => tool.name === episodic_memory_1.RECALL_MEMORY_TOOL_NAME)) {
|
|
106
|
+
throw new Error(`Tool name "${episodic_memory_1.RECALL_MEMORY_TOOL_NAME}" is reserved while episodic memory is enabled.`);
|
|
107
|
+
}
|
|
108
|
+
return (0, episodic_memory_1.createRecallMemoryTool)({ memory, config: episodicMemory, scope, executionCounter });
|
|
109
|
+
}
|
|
110
|
+
composeEffectiveInstructions(tools) {
|
|
111
|
+
const fragments = tools
|
|
112
|
+
.map((t) => t.systemInstruction)
|
|
113
|
+
.filter((s) => typeof s === 'string' && s.trim().length > 0);
|
|
114
|
+
const userInstructions = this.config.instructions;
|
|
115
|
+
if (fragments.length === 0)
|
|
116
|
+
return userInstructions;
|
|
117
|
+
const block = `<built_in_rules>\n${fragments.map((f) => `- ${f}`).join('\n')}\n</built_in_rules>`;
|
|
118
|
+
return userInstructions ? `${block}\n\n${userInstructions}` : block;
|
|
119
|
+
}
|
|
120
|
+
buildThinkingProviderOptions() {
|
|
121
|
+
if (!this.config.thinking)
|
|
122
|
+
return undefined;
|
|
123
|
+
const provider = this.modelId.split('/')[0];
|
|
124
|
+
const thinking = this.config.thinking;
|
|
125
|
+
switch (provider) {
|
|
126
|
+
case 'anthropic': {
|
|
127
|
+
const cfg = thinking;
|
|
128
|
+
if (cfg.mode === 'adaptive') {
|
|
129
|
+
return {
|
|
130
|
+
anthropic: {
|
|
131
|
+
thinking: {
|
|
132
|
+
type: 'adaptive',
|
|
133
|
+
display: cfg.display ?? 'summarized',
|
|
134
|
+
},
|
|
135
|
+
},
|
|
136
|
+
};
|
|
137
|
+
}
|
|
138
|
+
return {
|
|
139
|
+
anthropic: {
|
|
140
|
+
thinking: { type: 'enabled', budgetTokens: cfg.budgetTokens ?? 10000 },
|
|
141
|
+
},
|
|
142
|
+
};
|
|
143
|
+
}
|
|
144
|
+
case 'openai': {
|
|
145
|
+
const cfg = thinking;
|
|
146
|
+
return { openai: { reasoningEffort: cfg.reasoningEffort ?? 'medium' } };
|
|
147
|
+
}
|
|
148
|
+
case 'google': {
|
|
149
|
+
const cfg = thinking;
|
|
150
|
+
return {
|
|
151
|
+
google: {
|
|
152
|
+
thinkingConfig: {
|
|
153
|
+
...(cfg.thinkingBudget !== undefined && { thinkingBudget: cfg.thinkingBudget }),
|
|
154
|
+
...(cfg.thinkingLevel !== undefined && { thinkingLevel: cfg.thinkingLevel }),
|
|
155
|
+
},
|
|
156
|
+
},
|
|
157
|
+
};
|
|
158
|
+
}
|
|
159
|
+
case 'xai': {
|
|
160
|
+
const cfg = thinking;
|
|
161
|
+
return { xai: { reasoningEffort: cfg.reasoningEffort ?? 'high' } };
|
|
162
|
+
}
|
|
163
|
+
default:
|
|
164
|
+
return undefined;
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
buildCallProviderOptions(runProviderOptions) {
|
|
168
|
+
const thinkingOpts = this.buildThinkingProviderOptions();
|
|
169
|
+
if (!thinkingOpts && !runProviderOptions)
|
|
170
|
+
return undefined;
|
|
171
|
+
if (!thinkingOpts)
|
|
172
|
+
return runProviderOptions;
|
|
173
|
+
if (!runProviderOptions)
|
|
174
|
+
return thinkingOpts;
|
|
175
|
+
const merged = { ...thinkingOpts };
|
|
176
|
+
for (const [provider, opts] of Object.entries(runProviderOptions)) {
|
|
177
|
+
if (provider in merged) {
|
|
178
|
+
merged[provider] = { ...merged[provider], ...opts };
|
|
179
|
+
}
|
|
180
|
+
else {
|
|
181
|
+
merged[provider] = opts;
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
return merged;
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
exports.RuntimeContextBuilder = RuntimeContextBuilder;
|
|
188
|
+
//# sourceMappingURL=runtime-context.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime-context.js","sourceRoot":"","sources":["../../../src/runtime/loop/runtime-context.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { StreamChunk, TokenUsage } from '
|
|
2
|
-
import type { AgentMessage, ContentToolCall } from '
|
|
1
|
+
import type { StreamChunk, TokenUsage } from '../../types';
|
|
2
|
+
import type { AgentMessage, ContentToolCall } from '../../types/sdk/message';
|
|
3
3
|
export declare function normalizeInput(input: AgentMessage[] | string): AgentMessage[];
|
|
4
4
|
export declare function stringifyError(error: unknown): string;
|
|
5
5
|
export declare function extractSettledToolCalls(messages: AgentMessage[]): ContentToolCall[];
|
|
@@ -10,6 +10,7 @@ export declare function accumulateUsage(current: TokenUsage | undefined, raw: {
|
|
|
10
10
|
outputTokens?: number | undefined;
|
|
11
11
|
totalTokens?: number | undefined;
|
|
12
12
|
inputTokenDetails?: {
|
|
13
|
+
noCacheTokens?: number;
|
|
13
14
|
cacheReadTokens?: number;
|
|
14
15
|
cacheWriteTokens?: number;
|
|
15
16
|
};
|
|
@@ -6,7 +6,7 @@ exports.extractSettledToolCalls = extractSettledToolCalls;
|
|
|
6
6
|
exports.makeErrorStream = makeErrorStream;
|
|
7
7
|
exports.mergeUsage = mergeUsage;
|
|
8
8
|
exports.accumulateUsage = accumulateUsage;
|
|
9
|
-
const stream_1 = require("
|
|
9
|
+
const stream_1 = require("../streaming/stream");
|
|
10
10
|
function normalizeInput(input) {
|
|
11
11
|
if (typeof input === 'string') {
|
|
12
12
|
return [{ role: 'user', content: [{ type: 'text', text: input }] }];
|
|
@@ -39,10 +39,12 @@ function mergeUsage(current, next) {
|
|
|
39
39
|
completionTokens: current.completionTokens + next.completionTokens,
|
|
40
40
|
totalTokens: current.totalTokens + next.totalTokens,
|
|
41
41
|
};
|
|
42
|
+
const noCache = (current.inputTokenDetails?.noCache ?? 0) + (next.inputTokenDetails?.noCache ?? 0);
|
|
42
43
|
const cacheRead = (current.inputTokenDetails?.cacheRead ?? 0) + (next.inputTokenDetails?.cacheRead ?? 0);
|
|
43
44
|
const cacheWrite = (current.inputTokenDetails?.cacheWrite ?? 0) + (next.inputTokenDetails?.cacheWrite ?? 0);
|
|
44
|
-
if (cacheRead > 0 || cacheWrite > 0) {
|
|
45
|
+
if (noCache > 0 || cacheRead > 0 || cacheWrite > 0) {
|
|
45
46
|
merged.inputTokenDetails = {
|
|
47
|
+
...(noCache > 0 && { noCache }),
|
|
46
48
|
...(cacheRead > 0 && { cacheRead }),
|
|
47
49
|
...(cacheWrite > 0 && { cacheWrite }),
|
|
48
50
|
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"runtime-helpers.js","sourceRoot":"","sources":["../../../src/runtime/loop/runtime-helpers.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { CompleteEmission, ModelCallContext, ModelTurnResult, RunOutputSink, RunServices, SuspendEmission } from './run-output-sink';
|
|
2
|
+
import type { ExecutionOptions, TokenUsage } from '../../types/sdk/agent';
|
|
3
|
+
import type { StreamWriterGuard } from '../streaming/stream-writer-guard';
|
|
4
|
+
import type { ToolCallBatchResult } from '../tools/tool-call-executor';
|
|
5
|
+
export declare class StreamSink implements RunOutputSink<void> {
|
|
6
|
+
private readonly guard;
|
|
7
|
+
private readonly services;
|
|
8
|
+
private readonly options;
|
|
9
|
+
private lastUsage;
|
|
10
|
+
private rawUsageReader;
|
|
11
|
+
constructor(guard: StreamWriterGuard, services: RunServices, options: ExecutionOptions | undefined);
|
|
12
|
+
reportUsage(usage: TokenUsage | undefined): void;
|
|
13
|
+
getAbortFinish(): {
|
|
14
|
+
usage?: TokenUsage;
|
|
15
|
+
model: string;
|
|
16
|
+
};
|
|
17
|
+
private buildSmoothStreamTransformOptions;
|
|
18
|
+
callModel(ctx: ModelCallContext): Promise<ModelTurnResult>;
|
|
19
|
+
emitToolBatch(batch: ToolCallBatchResult): Promise<void>;
|
|
20
|
+
finishSuspended(emission: SuspendEmission): Promise<void>;
|
|
21
|
+
finishComplete(emission: CompleteEmission): Promise<void>;
|
|
22
|
+
}
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.StreamSink = void 0;
|
|
4
|
+
const runtime_helpers_1 = require("./runtime-helpers");
|
|
5
|
+
const lazy_ai_1 = require("../model/lazy-ai");
|
|
6
|
+
const messages_1 = require("../model/messages");
|
|
7
|
+
const raw_usage_1 = require("../model/raw-usage");
|
|
8
|
+
const stream_1 = require("../streaming/stream");
|
|
9
|
+
class StreamSink {
|
|
10
|
+
constructor(guard, services, options) {
|
|
11
|
+
this.guard = guard;
|
|
12
|
+
this.services = services;
|
|
13
|
+
this.options = options;
|
|
14
|
+
}
|
|
15
|
+
reportUsage(usage) {
|
|
16
|
+
this.lastUsage = usage;
|
|
17
|
+
this.rawUsageReader = undefined;
|
|
18
|
+
}
|
|
19
|
+
getAbortFinish() {
|
|
20
|
+
const usage = this.services.applyCost((0, runtime_helpers_1.mergeUsage)(this.lastUsage, this.rawUsageReader?.getUsage()));
|
|
21
|
+
return { ...(usage && { usage }), model: this.services.modelId };
|
|
22
|
+
}
|
|
23
|
+
buildSmoothStreamTransformOptions() {
|
|
24
|
+
if (this.options?.smoothStream === false)
|
|
25
|
+
return {};
|
|
26
|
+
const { smoothStream } = (0, lazy_ai_1.loadAi)();
|
|
27
|
+
return { experimental_transform: smoothStream(this.options?.smoothStream ?? {}) };
|
|
28
|
+
}
|
|
29
|
+
async callModel(ctx) {
|
|
30
|
+
this.rawUsageReader = this.options?.recoverUsageOnAbort
|
|
31
|
+
? (0, raw_usage_1.createRawUsageReader)(this.services.modelId)
|
|
32
|
+
: undefined;
|
|
33
|
+
const { streamText } = (0, lazy_ai_1.loadAi)();
|
|
34
|
+
const result = streamText({
|
|
35
|
+
model: ctx.model,
|
|
36
|
+
system: ctx.system,
|
|
37
|
+
messages: ctx.messages,
|
|
38
|
+
abortSignal: ctx.abortSignal,
|
|
39
|
+
...(this.rawUsageReader ? { includeRawChunks: true } : {}),
|
|
40
|
+
...(ctx.hasTools ? { tools: ctx.aiTools } : {}),
|
|
41
|
+
...(ctx.providerOptions ? { providerOptions: ctx.providerOptions } : {}),
|
|
42
|
+
...(ctx.outputSpec ? { output: ctx.outputSpec } : {}),
|
|
43
|
+
...ctx.aiSdkOptions,
|
|
44
|
+
...this.buildSmoothStreamTransformOptions(),
|
|
45
|
+
});
|
|
46
|
+
for await (const chunk of result.fullStream) {
|
|
47
|
+
if (chunk.type === 'raw') {
|
|
48
|
+
this.rawUsageReader?.capture(chunk.rawValue);
|
|
49
|
+
continue;
|
|
50
|
+
}
|
|
51
|
+
if (chunk.type === 'finish')
|
|
52
|
+
continue;
|
|
53
|
+
if ((chunk.type === 'tool-result' || chunk.type === 'tool-error') && chunk.providerExecuted) {
|
|
54
|
+
await this.guard.write({
|
|
55
|
+
type: 'tool-execution-end',
|
|
56
|
+
toolCallId: chunk.toolCallId,
|
|
57
|
+
toolName: chunk.toolName ?? '',
|
|
58
|
+
isError: chunk.type === 'tool-error',
|
|
59
|
+
endTime: Date.now(),
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
const converted = (0, stream_1.convertChunk)(chunk);
|
|
63
|
+
if (converted)
|
|
64
|
+
await this.guard.write(converted);
|
|
65
|
+
if (chunk.type === 'tool-call' && chunk.providerExecuted) {
|
|
66
|
+
await this.guard.write({
|
|
67
|
+
type: 'tool-execution-start',
|
|
68
|
+
toolCallId: chunk.toolCallId,
|
|
69
|
+
toolName: chunk.toolName ?? '',
|
|
70
|
+
startTime: Date.now(),
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
const aiFinishReason = await result.finishReason;
|
|
75
|
+
const usage = await result.usage;
|
|
76
|
+
const response = await result.response;
|
|
77
|
+
return {
|
|
78
|
+
aiFinishReason,
|
|
79
|
+
finishReason: (0, messages_1.fromAiFinishReason)(aiFinishReason),
|
|
80
|
+
usage,
|
|
81
|
+
newMessages: (0, messages_1.fromAiMessages)(response.messages),
|
|
82
|
+
toolCalls: await result.toolCalls,
|
|
83
|
+
structuredOutput: ctx.outputSpec && aiFinishReason !== 'tool-calls' ? await result.output : undefined,
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
async emitToolBatch(batch) {
|
|
87
|
+
for (const r of batch.results) {
|
|
88
|
+
await this.guard.write({
|
|
89
|
+
type: 'tool-result',
|
|
90
|
+
toolCallId: r.toolCallId,
|
|
91
|
+
toolName: r.toolName,
|
|
92
|
+
output: r.modelOutput,
|
|
93
|
+
...(r.toolEntry.canceled ? { canceled: true } : {}),
|
|
94
|
+
});
|
|
95
|
+
if (r.customMessage) {
|
|
96
|
+
await this.guard.write({ type: 'message', message: r.customMessage });
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
for (const e of batch.errors) {
|
|
100
|
+
await this.guard.write({
|
|
101
|
+
type: 'tool-result',
|
|
102
|
+
toolCallId: e.toolCallId,
|
|
103
|
+
toolName: e.toolName,
|
|
104
|
+
output: e.error,
|
|
105
|
+
isError: true,
|
|
106
|
+
});
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
async finishSuspended(emission) {
|
|
110
|
+
for (const s of emission.suspensions) {
|
|
111
|
+
await this.guard.write({
|
|
112
|
+
type: 'tool-call-suspended',
|
|
113
|
+
runId: emission.suspendRunId,
|
|
114
|
+
toolCallId: s.toolCallId,
|
|
115
|
+
toolName: s.toolName,
|
|
116
|
+
input: s.input,
|
|
117
|
+
suspendPayload: s.payload,
|
|
118
|
+
resumeSchema: s.resumeSchema,
|
|
119
|
+
});
|
|
120
|
+
}
|
|
121
|
+
await this.guard.write({ type: 'finish', finishReason: 'tool-calls' });
|
|
122
|
+
await this.guard.close();
|
|
123
|
+
}
|
|
124
|
+
async finishComplete(emission) {
|
|
125
|
+
const { list, options, finishReason, usage, structuredOutput } = emission;
|
|
126
|
+
const costUsage = this.services.applyCost(usage);
|
|
127
|
+
await this.services.saveToMemory(list, options);
|
|
128
|
+
await this.services.maybeGenerateTitle(list, options);
|
|
129
|
+
await this.services.cleanupRun();
|
|
130
|
+
await this.services.flushTelemetry(options);
|
|
131
|
+
await this.guard.write({
|
|
132
|
+
type: 'finish',
|
|
133
|
+
finishReason,
|
|
134
|
+
...(costUsage && { usage: costUsage }),
|
|
135
|
+
model: this.services.modelId,
|
|
136
|
+
...(structuredOutput !== undefined && { structuredOutput }),
|
|
137
|
+
});
|
|
138
|
+
this.services.updateState({ status: 'success', messageList: list.serialize() });
|
|
139
|
+
this.services.emitAgentEnd(list.responseDelta());
|
|
140
|
+
await this.guard.close();
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
exports.StreamSink = StreamSink;
|
|
144
|
+
//# sourceMappingURL=stream-sink.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stream-sink.js","sourceRoot":"","sources":["../../../src/runtime/loop/stream-sink.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { CallToolResult } from '@modelcontextprotocol/sdk/types.js';
|
|
2
|
-
import type { McpServerConfig } from '
|
|
3
|
-
import type { BuiltTool } from '
|
|
2
|
+
import type { McpServerConfig } from '../../types/sdk/mcp';
|
|
3
|
+
import type { BuiltTool } from '../../types/sdk/tool';
|
|
4
4
|
export type McpCallToolResult = CallToolResult;
|
|
5
5
|
export declare class McpConnection {
|
|
6
6
|
private client;
|
|
@@ -35,7 +35,7 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
35
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
36
|
exports.McpConnection = void 0;
|
|
37
37
|
const mcp_tool_resolver_1 = require("./mcp-tool-resolver");
|
|
38
|
-
const tool_1 = require("
|
|
38
|
+
const tool_1 = require("../../sdk/tool");
|
|
39
39
|
let mcpSdkPromise;
|
|
40
40
|
async function loadMcpSdk() {
|
|
41
41
|
mcpSdkPromise ??= Promise.all([
|
|
@@ -53,6 +53,19 @@ async function loadMcpSdk() {
|
|
|
53
53
|
}));
|
|
54
54
|
return await mcpSdkPromise;
|
|
55
55
|
}
|
|
56
|
+
function applyToolFilter(tools, toolFilter) {
|
|
57
|
+
if (!toolFilter?.mode || !toolFilter?.tools) {
|
|
58
|
+
return tools;
|
|
59
|
+
}
|
|
60
|
+
const filterSet = new Set(toolFilter.tools);
|
|
61
|
+
if (toolFilter.mode === 'allow') {
|
|
62
|
+
return tools.filter((tool) => filterSet.has(tool.name));
|
|
63
|
+
}
|
|
64
|
+
else if (toolFilter.mode === 'exclude') {
|
|
65
|
+
return tools.filter((tool) => !filterSet.has(tool.name));
|
|
66
|
+
}
|
|
67
|
+
return tools;
|
|
68
|
+
}
|
|
56
69
|
class McpConnection {
|
|
57
70
|
constructor(config) {
|
|
58
71
|
this.connectionPromise = undefined;
|
|
@@ -112,7 +125,8 @@ class McpConnection {
|
|
|
112
125
|
throw new Error('MCP client not initialized; connect() must be called first');
|
|
113
126
|
const result = await this.client.listTools();
|
|
114
127
|
const resolver = new mcp_tool_resolver_1.McpToolResolver();
|
|
115
|
-
const
|
|
128
|
+
const filteredRawTools = applyToolFilter(result.tools, this.config.toolFilter);
|
|
129
|
+
const tools = resolver.resolve(this, filteredRawTools);
|
|
116
130
|
return tools.map((t) => t.suspendSchema || !this.shouldRequireToolApproval(t)
|
|
117
131
|
? t
|
|
118
132
|
: (0, tool_1.wrapToolForApproval)(t, { requireApproval: true }));
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp-connection.js","sourceRoot":"","sources":["../../../src/runtime/mcp/mcp-connection.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { Tool } from '@modelcontextprotocol/sdk/types.js';
|
|
2
2
|
import type { McpConnection } from './mcp-connection';
|
|
3
|
-
import type { BuiltTool } from '
|
|
3
|
+
import type { BuiltTool } from '../../types/sdk/tool';
|
|
4
4
|
export declare class McpToolResolver {
|
|
5
5
|
resolve(connection: McpConnection, tools: Tool[]): BuiltTool[];
|
|
6
6
|
private resolveTool;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mcp-tool-resolver.js","sourceRoot":"","sources":["../../../src/runtime/mcp/mcp-tool-resolver.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { EpisodicMemoryExtractorInput, EpisodicMemoryExtractFn, EpisodicMemoryReflectorInput, EpisodicMemoryReflectFn, ModelConfig } from '
|
|
1
|
+
import type { EpisodicMemoryExtractorInput, EpisodicMemoryExtractFn, EpisodicMemoryReflectorInput, EpisodicMemoryReflectFn, ModelConfig } from '../../types';
|
|
2
2
|
export declare const DEFAULT_EPISODIC_MEMORY_EMBEDDING_MODEL = "openai/text-embedding-3-small";
|
|
3
3
|
export declare const DEFAULT_EPISODIC_MEMORY_TOP_K = 5;
|
|
4
4
|
export declare const DEFAULT_EPISODIC_MEMORY_MAX_ENTRIES_PER_RUN = 5;
|
|
@@ -39,8 +39,8 @@ exports.createEpisodicMemoryExtractFn = createEpisodicMemoryExtractFn;
|
|
|
39
39
|
exports.buildEpisodicMemoryReflectorPrompt = buildEpisodicMemoryReflectorPrompt;
|
|
40
40
|
exports.createEpisodicMemoryReflectFn = createEpisodicMemoryReflectFn;
|
|
41
41
|
const zod_1 = require("zod");
|
|
42
|
-
const execution_counter_1 = require("
|
|
43
|
-
const model_factory_1 = require("
|
|
42
|
+
const execution_counter_1 = require("../loop/execution-counter");
|
|
43
|
+
const model_factory_1 = require("../model/model-factory");
|
|
44
44
|
exports.DEFAULT_EPISODIC_MEMORY_EMBEDDING_MODEL = 'openai/text-embedding-3-small';
|
|
45
45
|
exports.DEFAULT_EPISODIC_MEMORY_TOP_K = 5;
|
|
46
46
|
exports.DEFAULT_EPISODIC_MEMORY_MAX_ENTRIES_PER_RUN = 5;
|