@openai/agents-core 0.3.3 → 0.3.5
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.d.ts +22 -6
- package/dist/agent.js +55 -6
- package/dist/agent.js.map +1 -1
- package/dist/agent.mjs +55 -6
- package/dist/agent.mjs.map +1 -1
- package/dist/guardrail.d.ts +3 -1
- package/dist/guardrail.js.map +1 -1
- package/dist/guardrail.mjs.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js.map +1 -1
- package/dist/index.mjs.map +1 -1
- package/dist/lifecycle.d.ts +18 -3
- package/dist/lifecycle.js.map +1 -1
- package/dist/lifecycle.mjs.map +1 -1
- package/dist/mcp.d.ts +17 -2
- package/dist/mcp.js +47 -6
- package/dist/mcp.js.map +1 -1
- package/dist/mcp.mjs +45 -5
- package/dist/mcp.mjs.map +1 -1
- package/dist/metadata.js +2 -2
- package/dist/metadata.mjs +2 -2
- package/dist/run.js +58 -21
- package/dist/run.js.map +1 -1
- package/dist/run.mjs +58 -21
- package/dist/run.mjs.map +1 -1
- package/dist/runContext.d.ts +1 -2
- package/dist/runContext.js +1 -2
- package/dist/runContext.js.map +1 -1
- package/dist/runContext.mjs +1 -2
- package/dist/runContext.mjs.map +1 -1
- package/dist/runImplementation.js +8 -0
- package/dist/runImplementation.js.map +1 -1
- package/dist/runImplementation.mjs +8 -0
- package/dist/runImplementation.mjs.map +1 -1
- package/dist/shims/mcp-server/node.js +1 -0
- package/dist/shims/mcp-server/node.js.map +1 -1
- package/dist/shims/mcp-server/node.mjs +1 -0
- package/dist/shims/mcp-server/node.mjs.map +1 -1
- package/dist/tracing/index.d.ts +1 -1
- package/dist/tracing/index.js.map +1 -1
- package/dist/tracing/index.mjs.map +1 -1
- package/package.json +2 -2
package/dist/agent.d.ts
CHANGED
|
@@ -6,17 +6,29 @@ import type { Model, ModelSettings, Prompt } from './model';
|
|
|
6
6
|
import type { RunContext } from './runContext';
|
|
7
7
|
import { type FunctionTool, type FunctionToolResult, type Tool, type ToolApprovalFunction } from './tool';
|
|
8
8
|
import type { ResolvedAgentOutput, JsonSchemaDefinition, HandoffsOutput, Expand } from './types';
|
|
9
|
-
import type { RunResult } from './result';
|
|
9
|
+
import type { RunResult, StreamedRunResult } from './result';
|
|
10
10
|
import { type Handoff } from './handoff';
|
|
11
|
-
import {
|
|
11
|
+
import { StreamRunOptions, RunConfig } from './run';
|
|
12
12
|
import { RunToolApprovalItem } from './items';
|
|
13
13
|
import { UnknownContext, TextOutput } from './types';
|
|
14
14
|
import type * as protocol from './types/protocol';
|
|
15
15
|
import type { ZodObjectLike } from './utils/zodCompat';
|
|
16
|
-
type
|
|
17
|
-
type
|
|
16
|
+
import type { RunStreamEvent } from './events';
|
|
17
|
+
type AnyAgentRunResult = RunResult<any, Agent<any, any>> | StreamedRunResult<any, Agent<any, any>>;
|
|
18
|
+
type CompletedRunResult<TContext, TAgent extends Agent<TContext, any>> = (RunResult<TContext, TAgent> | StreamedRunResult<TContext, TAgent>) & {
|
|
18
19
|
finalOutput: ResolvedAgentOutput<TAgent['outputType']>;
|
|
19
20
|
};
|
|
21
|
+
type AgentToolRunOptions<TContext> = Omit<StreamRunOptions<TContext>, 'stream'>;
|
|
22
|
+
type AgentToolStreamEvent<TAgent extends Agent<any, any>> = {
|
|
23
|
+
event: RunStreamEvent;
|
|
24
|
+
agent: TAgent;
|
|
25
|
+
toolCall?: protocol.FunctionCallItem;
|
|
26
|
+
};
|
|
27
|
+
type AgentToolEventName = RunStreamEvent['type'] | '*';
|
|
28
|
+
type AgentToolEventHandler<TAgent extends Agent<any, any>> = (event: AgentToolStreamEvent<TAgent>) => void | Promise<void>;
|
|
29
|
+
type AgentTool<TContext, TAgent extends Agent<TContext, any>> = FunctionTool<TContext, typeof AgentAsToolNeedApprovalSchame> & {
|
|
30
|
+
on: (name: AgentToolEventName, handler: AgentToolEventHandler<TAgent>) => AgentTool<TContext, TAgent>;
|
|
31
|
+
};
|
|
20
32
|
export declare function saveAgentToolRunResult(toolCall: protocol.FunctionCallItem | undefined, runResult: AnyAgentRunResult): void;
|
|
21
33
|
export declare function consumeAgentToolRunResult(toolCall: protocol.FunctionCallItem): AnyAgentRunResult | undefined;
|
|
22
34
|
export type ToolUseBehaviorFlags = 'run_llm_again' | 'stop_on_first_tool';
|
|
@@ -293,7 +305,7 @@ export declare class Agent<TContext = UnknownContext, TOutput extends AgentOutpu
|
|
|
293
305
|
/**
|
|
294
306
|
* Additional run options for the agent (as tool) execution.
|
|
295
307
|
*/
|
|
296
|
-
runOptions?:
|
|
308
|
+
runOptions?: AgentToolRunOptions<TContext>;
|
|
297
309
|
/**
|
|
298
310
|
* Determines whether this tool should be exposed to the model for the current run.
|
|
299
311
|
*/
|
|
@@ -301,7 +313,11 @@ export declare class Agent<TContext = UnknownContext, TOutput extends AgentOutpu
|
|
|
301
313
|
runContext: RunContext<TContext>;
|
|
302
314
|
agent: Agent<TContext, TOutput>;
|
|
303
315
|
}) => boolean | Promise<boolean>);
|
|
304
|
-
|
|
316
|
+
/**
|
|
317
|
+
* Optional hook to receive streamed events from the nested agent run.
|
|
318
|
+
*/
|
|
319
|
+
onStream?: (event: AgentToolStreamEvent<TAgent>) => void | Promise<void>;
|
|
320
|
+
}): AgentTool<TContext, TAgent>;
|
|
305
321
|
/**
|
|
306
322
|
* Returns the system prompt for the agent.
|
|
307
323
|
*
|
package/dist/agent.js
CHANGED
|
@@ -174,8 +174,22 @@ class Agent extends lifecycle_1.AgentHooks {
|
|
|
174
174
|
* @returns A tool that runs the agent and returns the output text.
|
|
175
175
|
*/
|
|
176
176
|
asTool(options) {
|
|
177
|
-
const { toolName, toolDescription, customOutputExtractor, needsApproval, runConfig, runOptions, isEnabled, } = options;
|
|
178
|
-
|
|
177
|
+
const { toolName, toolDescription, customOutputExtractor, needsApproval, runConfig, runOptions, isEnabled, onStream, } = options;
|
|
178
|
+
// Event handlers are scoped to this agent tool instance and are not shared; we only support registration (no removal) to keep the API surface small.
|
|
179
|
+
const eventHandlers = new Map();
|
|
180
|
+
const emitEvent = async (event) => {
|
|
181
|
+
// We intentionally keep only add semantics (no off) to reduce surface area; handlers are scoped to this agent tool instance.
|
|
182
|
+
const specific = eventHandlers.get(event.event.type);
|
|
183
|
+
const wildcard = eventHandlers.get('*');
|
|
184
|
+
const candidates = [
|
|
185
|
+
...(onStream ? [onStream] : []),
|
|
186
|
+
...(specific ? Array.from(specific) : []),
|
|
187
|
+
...(wildcard ? Array.from(wildcard) : []),
|
|
188
|
+
];
|
|
189
|
+
// Run all handlers in parallel so a slow onStream callback does not block on(...) handlers (and vice versa).
|
|
190
|
+
await Promise.allSettled(candidates.map((handler) => Promise.resolve().then(() => handler(event))));
|
|
191
|
+
};
|
|
192
|
+
const baseTool = (0, tool_1.tool)({
|
|
179
193
|
name: toolName ?? (0, tools_1.toFunctionToolName)(this.name),
|
|
180
194
|
description: toolDescription ?? '',
|
|
181
195
|
parameters: AgentAsToolNeedApprovalSchame,
|
|
@@ -187,10 +201,35 @@ class Agent extends lifecycle_1.AgentHooks {
|
|
|
187
201
|
throw new errors_1.ModelBehaviorError('Agent tool called with invalid input');
|
|
188
202
|
}
|
|
189
203
|
const runner = new run_1.Runner(runConfig ?? {});
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
204
|
+
// Only flip to streaming mode when a handler is provided to avoid extra overhead for callers that do not need events.
|
|
205
|
+
// Flip to streaming if either a legacy onStream callback or event handlers are registered; otherwise stay on the non-stream path to avoid extra overhead.
|
|
206
|
+
const shouldStream = typeof onStream === 'function' || eventHandlers.size > 0;
|
|
207
|
+
const result = shouldStream
|
|
208
|
+
? await runner.run(this, data.input, {
|
|
209
|
+
context,
|
|
210
|
+
...(runOptions ?? {}),
|
|
211
|
+
stream: true,
|
|
212
|
+
})
|
|
213
|
+
: await runner.run(this, data.input, {
|
|
214
|
+
context,
|
|
215
|
+
...(runOptions ?? {}),
|
|
216
|
+
});
|
|
217
|
+
const streamPayload = {
|
|
218
|
+
agent: this,
|
|
219
|
+
toolCall: details?.toolCall,
|
|
220
|
+
};
|
|
221
|
+
if (shouldStream) {
|
|
222
|
+
// Cast through unknown: the async iterator shape matches and we want to drain the stream for side effects while keeping the public API stable.
|
|
223
|
+
const streamResult = result;
|
|
224
|
+
// Drain the stream to deliver every event to registered handlers; ensure completion awaited so the nested run finishes before returning.
|
|
225
|
+
for await (const event of streamResult) {
|
|
226
|
+
await emitEvent({
|
|
227
|
+
event,
|
|
228
|
+
...streamPayload,
|
|
229
|
+
});
|
|
230
|
+
}
|
|
231
|
+
await streamResult.completed;
|
|
232
|
+
}
|
|
194
233
|
const completedResult = result;
|
|
195
234
|
const usesStopAtToolNames = typeof this.toolUseBehavior === 'object' &&
|
|
196
235
|
this.toolUseBehavior !== null &&
|
|
@@ -208,6 +247,16 @@ class Agent extends lifecycle_1.AgentHooks {
|
|
|
208
247
|
return outputText;
|
|
209
248
|
},
|
|
210
249
|
});
|
|
250
|
+
const agentTool = {
|
|
251
|
+
...baseTool,
|
|
252
|
+
on: (name, handler) => {
|
|
253
|
+
const set = eventHandlers.get(name) ?? new Set();
|
|
254
|
+
set.add(handler);
|
|
255
|
+
eventHandlers.set(name, set);
|
|
256
|
+
return agentTool;
|
|
257
|
+
},
|
|
258
|
+
};
|
|
259
|
+
return agentTool;
|
|
211
260
|
}
|
|
212
261
|
/**
|
|
213
262
|
* Returns the system prompt for the agent.
|
package/dist/agent.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent.js","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":";;;;;;
|
|
1
|
+
{"version":3,"file":"agent.js","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"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"}
|
package/dist/agent.mjs
CHANGED
|
@@ -166,8 +166,22 @@ export class Agent extends AgentHooks {
|
|
|
166
166
|
* @returns A tool that runs the agent and returns the output text.
|
|
167
167
|
*/
|
|
168
168
|
asTool(options) {
|
|
169
|
-
const { toolName, toolDescription, customOutputExtractor, needsApproval, runConfig, runOptions, isEnabled, } = options;
|
|
170
|
-
|
|
169
|
+
const { toolName, toolDescription, customOutputExtractor, needsApproval, runConfig, runOptions, isEnabled, onStream, } = options;
|
|
170
|
+
// Event handlers are scoped to this agent tool instance and are not shared; we only support registration (no removal) to keep the API surface small.
|
|
171
|
+
const eventHandlers = new Map();
|
|
172
|
+
const emitEvent = async (event) => {
|
|
173
|
+
// We intentionally keep only add semantics (no off) to reduce surface area; handlers are scoped to this agent tool instance.
|
|
174
|
+
const specific = eventHandlers.get(event.event.type);
|
|
175
|
+
const wildcard = eventHandlers.get('*');
|
|
176
|
+
const candidates = [
|
|
177
|
+
...(onStream ? [onStream] : []),
|
|
178
|
+
...(specific ? Array.from(specific) : []),
|
|
179
|
+
...(wildcard ? Array.from(wildcard) : []),
|
|
180
|
+
];
|
|
181
|
+
// Run all handlers in parallel so a slow onStream callback does not block on(...) handlers (and vice versa).
|
|
182
|
+
await Promise.allSettled(candidates.map((handler) => Promise.resolve().then(() => handler(event))));
|
|
183
|
+
};
|
|
184
|
+
const baseTool = tool({
|
|
171
185
|
name: toolName ?? toFunctionToolName(this.name),
|
|
172
186
|
description: toolDescription ?? '',
|
|
173
187
|
parameters: AgentAsToolNeedApprovalSchame,
|
|
@@ -179,10 +193,35 @@ export class Agent extends AgentHooks {
|
|
|
179
193
|
throw new ModelBehaviorError('Agent tool called with invalid input');
|
|
180
194
|
}
|
|
181
195
|
const runner = new Runner(runConfig ?? {});
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
196
|
+
// Only flip to streaming mode when a handler is provided to avoid extra overhead for callers that do not need events.
|
|
197
|
+
// Flip to streaming if either a legacy onStream callback or event handlers are registered; otherwise stay on the non-stream path to avoid extra overhead.
|
|
198
|
+
const shouldStream = typeof onStream === 'function' || eventHandlers.size > 0;
|
|
199
|
+
const result = shouldStream
|
|
200
|
+
? await runner.run(this, data.input, {
|
|
201
|
+
context,
|
|
202
|
+
...(runOptions ?? {}),
|
|
203
|
+
stream: true,
|
|
204
|
+
})
|
|
205
|
+
: await runner.run(this, data.input, {
|
|
206
|
+
context,
|
|
207
|
+
...(runOptions ?? {}),
|
|
208
|
+
});
|
|
209
|
+
const streamPayload = {
|
|
210
|
+
agent: this,
|
|
211
|
+
toolCall: details?.toolCall,
|
|
212
|
+
};
|
|
213
|
+
if (shouldStream) {
|
|
214
|
+
// Cast through unknown: the async iterator shape matches and we want to drain the stream for side effects while keeping the public API stable.
|
|
215
|
+
const streamResult = result;
|
|
216
|
+
// Drain the stream to deliver every event to registered handlers; ensure completion awaited so the nested run finishes before returning.
|
|
217
|
+
for await (const event of streamResult) {
|
|
218
|
+
await emitEvent({
|
|
219
|
+
event,
|
|
220
|
+
...streamPayload,
|
|
221
|
+
});
|
|
222
|
+
}
|
|
223
|
+
await streamResult.completed;
|
|
224
|
+
}
|
|
186
225
|
const completedResult = result;
|
|
187
226
|
const usesStopAtToolNames = typeof this.toolUseBehavior === 'object' &&
|
|
188
227
|
this.toolUseBehavior !== null &&
|
|
@@ -200,6 +239,16 @@ export class Agent extends AgentHooks {
|
|
|
200
239
|
return outputText;
|
|
201
240
|
},
|
|
202
241
|
});
|
|
242
|
+
const agentTool = {
|
|
243
|
+
...baseTool,
|
|
244
|
+
on: (name, handler) => {
|
|
245
|
+
const set = eventHandlers.get(name) ?? new Set();
|
|
246
|
+
set.add(handler);
|
|
247
|
+
eventHandlers.set(name, set);
|
|
248
|
+
return agentTool;
|
|
249
|
+
},
|
|
250
|
+
};
|
|
251
|
+
return agentTool;
|
|
203
252
|
}
|
|
204
253
|
/**
|
|
205
254
|
* Returns the system prompt for the agent.
|
package/dist/agent.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent.mjs","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"OAAO,EAAE,CAAC,EAAE,MAAM,KAAK;OAGhB,EAAE,UAAU,EAAE;OACd,EAAE,cAAc,EAAkB;OAElC,EACL,uBAAuB,EACvB,6BAA6B,EAC7B,aAAa,GACd;OAEM,EAGL,IAAI,GAIL;OAQM,EAAE,UAAU,EAAgB;OAC5B,
|
|
1
|
+
{"version":3,"file":"agent.mjs","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"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"}
|
package/dist/guardrail.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { ModelItem } from './types/protocol';
|
|
2
2
|
import { Agent, AgentOutputType } from './agent';
|
|
3
3
|
import { RunContext } from './runContext';
|
|
4
|
-
import { ResolvedAgentOutput, TextOutput, UnknownContext } from './types';
|
|
4
|
+
import { AgentOutputItem, ResolvedAgentOutput, TextOutput, UnknownContext } from './types';
|
|
5
5
|
import type { ModelResponse } from './model';
|
|
6
6
|
/**
|
|
7
7
|
* Definition of input/output guardrails; SDK users usually do not need to create this.
|
|
@@ -114,6 +114,8 @@ export interface OutputGuardrailFunctionArgs<TContext = UnknownContext, TOutput
|
|
|
114
114
|
details?: {
|
|
115
115
|
/** Model response associated with the output if available. */
|
|
116
116
|
modelResponse?: ModelResponse;
|
|
117
|
+
/** Model output items generated during the run (excluding approvals). */
|
|
118
|
+
output?: AgentOutputItem[];
|
|
117
119
|
};
|
|
118
120
|
}
|
|
119
121
|
/**
|
package/dist/guardrail.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"guardrail.js","sourceRoot":"","sources":["../src/guardrail.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"guardrail.js","sourceRoot":"","sources":["../src/guardrail.ts"],"names":[],"mappings":";;AAsIA,oDAiBC;AAiHD,sDAwBC;AA7JD;;GAEG;AACH,SAAgB,oBAAoB,CAAC,EACnC,IAAI,EACJ,OAAO,EACP,aAAa,GAAG,IAAI,GACK;IACzB,OAAO;QACL,IAAI,EAAE,OAAO;QACb,IAAI;QACJ,aAAa;QACb,iBAAiB,EAAE,OAAO;QAC1B,KAAK,CAAC,GAAG,CAAC,IAAgC;YACxC,OAAO;gBACL,SAAS,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE;gBAClC,MAAM,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC;aAC5B,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC;AA8GD;;GAEG;AACH,SAAgB,qBAAqB,CAEnC,EACA,IAAI,EACJ,OAAO,GAC4B;IAInC,OAAO;QACL,IAAI,EAAE,QAAQ;QACd,IAAI;QACJ,iBAAiB,EAAE,OAAO;QAC1B,KAAK,CAAC,GAAG,CACP,IAA0D;YAE1D,OAAO;gBACL,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE;gBACnC,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,MAAM,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC;aAC5B,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC"}
|
package/dist/guardrail.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"guardrail.mjs","sourceRoot":"","sources":["../src/guardrail.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"guardrail.mjs","sourceRoot":"","sources":["../src/guardrail.ts"],"names":[],"mappings":"AAmIA;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAAC,EACnC,IAAI,EACJ,OAAO,EACP,aAAa,GAAG,IAAI,GACK;IACzB,OAAO;QACL,IAAI,EAAE,OAAO;QACb,IAAI;QACJ,aAAa;QACb,iBAAiB,EAAE,OAAO;QAC1B,KAAK,CAAC,GAAG,CAAC,IAAgC;YACxC,OAAO;gBACL,SAAS,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE;gBAClC,MAAM,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC;aAC5B,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC;AA8GD;;GAEG;AACH,MAAM,UAAU,qBAAqB,CAEnC,EACA,IAAI,EACJ,OAAO,GAC4B;IAInC,OAAO;QACL,IAAI,EAAE,QAAQ;QACd,IAAI;QACJ,iBAAiB,EAAE,OAAO;QAC1B,KAAK,CAAC,GAAG,CACP,IAA0D;YAE1D,OAAO;gBACL,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE;gBACnC,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,MAAM,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC;aAC5B,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -12,7 +12,7 @@ export { extractAllTextOutput, RunHandoffCallItem, RunHandoffOutputItem, RunItem
|
|
|
12
12
|
export { AgentHooks } from './lifecycle';
|
|
13
13
|
export { getLogger } from './logger';
|
|
14
14
|
export { applyDiff } from './utils/applyDiff';
|
|
15
|
-
export { getAllMcpTools, invalidateServerToolsCache, mcpToFunctionTool, MCPServer, MCPServerStdio, MCPServerStreamableHttp, MCPServerSSE, GetAllMcpToolsOptions, } from './mcp';
|
|
15
|
+
export { getAllMcpTools, invalidateServerToolsCache, mcpToFunctionTool, MCPServer, MCPServerStdio, MCPServerStreamableHttp, MCPServerSSE, GetAllMcpToolsOptions, MCPToolCacheKeyGenerator, } from './mcp';
|
|
16
16
|
export { MCPToolFilterCallable, MCPToolFilterContext, MCPToolFilterStatic, createMCPToolStaticFilter, } from './mcpUtil';
|
|
17
17
|
export { Model, ModelProvider, ModelRequest, ModelResponse, ModelSettings, ModelSettingsToolChoice, SerializedHandoff, SerializedTool, SerializedOutputType, } from './model';
|
|
18
18
|
export { OPENAI_DEFAULT_MODEL_ENV_VARIABLE_NAME, gpt5ReasoningSettingsRequired, getDefaultModel, getDefaultModelSettings, isGpt5Default, } from './defaultModel';
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,gDAA8C;AAC9C,sDAAuD;AAEvD,qDAAiE;AAAxD,6GAAA,mBAAmB,OAAA;AAC5B,oCAUiB;AATf,8FAAA,KAAK,OAAA;AAaP,sCAUkB;AAThB,qGAAA,WAAW,OAAA;AACX,iHAAA,uBAAuB,OAAA;AACvB,yHAAA,+BAA+B,OAAA;AAC/B,+GAAA,qBAAqB,OAAA;AACrB,4GAAA,kBAAkB,OAAA;AAClB,0HAAA,gCAAgC,OAAA;AAChC,uGAAA,aAAa,OAAA;AACb,mGAAA,SAAS,OAAA;AACT,qGAAA,WAAW,OAAA;AAEb,sCAKkB;AAJhB,oHAAA,0BAA0B,OAAA;AAC1B,gHAAA,sBAAsB,OAAA;AACtB,4GAAA,kBAAkB,OAAA;AAGpB,4CAcqB;AAbnB,kHAAA,qBAAqB,OAAA;AAcvB,wCAOmB;AANjB,qGAAA,UAAU,OAAA;AACV,6GAAA,kBAAkB,OAAA;AAClB,kGAAA,OAAO,OAAA;AACP,kGAAA,OAAO,OAAA;AAIT,gDAA4D;AAAnD,oGAAA,SAAS,OAAA;AAAE,iGAAA,MAAM,OAAA;AAAE,+FAAA,IAAI,OAAA;AAChC,oCAUiB;AATf,6GAAA,oBAAoB,OAAA;AACpB,2GAAA,kBAAkB,OAAA;AAClB,6GAAA,oBAAoB,OAAA;AAEpB,6GAAA,oBAAoB,OAAA;AACpB,yGAAA,gBAAgB,OAAA;AAChB,4GAAA,mBAAmB,OAAA;AACnB,wGAAA,eAAe,OAAA;AACf,8GAAA,qBAAqB,OAAA;AAEvB,4CAAyC;AAAhC,uGAAA,UAAU,OAAA;AACnB,sCAAqC;AAA5B,mGAAA,SAAS,OAAA;AAClB,kDAA8C;AAArC,sGAAA,SAAS,OAAA;AAClB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,gDAA8C;AAC9C,sDAAuD;AAEvD,qDAAiE;AAAxD,6GAAA,mBAAmB,OAAA;AAC5B,oCAUiB;AATf,8FAAA,KAAK,OAAA;AAaP,sCAUkB;AAThB,qGAAA,WAAW,OAAA;AACX,iHAAA,uBAAuB,OAAA;AACvB,yHAAA,+BAA+B,OAAA;AAC/B,+GAAA,qBAAqB,OAAA;AACrB,4GAAA,kBAAkB,OAAA;AAClB,0HAAA,gCAAgC,OAAA;AAChC,uGAAA,aAAa,OAAA;AACb,mGAAA,SAAS,OAAA;AACT,qGAAA,WAAW,OAAA;AAEb,sCAKkB;AAJhB,oHAAA,0BAA0B,OAAA;AAC1B,gHAAA,sBAAsB,OAAA;AACtB,4GAAA,kBAAkB,OAAA;AAGpB,4CAcqB;AAbnB,kHAAA,qBAAqB,OAAA;AAcvB,wCAOmB;AANjB,qGAAA,UAAU,OAAA;AACV,6GAAA,kBAAkB,OAAA;AAClB,kGAAA,OAAO,OAAA;AACP,kGAAA,OAAO,OAAA;AAIT,gDAA4D;AAAnD,oGAAA,SAAS,OAAA;AAAE,iGAAA,MAAM,OAAA;AAAE,+FAAA,IAAI,OAAA;AAChC,oCAUiB;AATf,6GAAA,oBAAoB,OAAA;AACpB,2GAAA,kBAAkB,OAAA;AAClB,6GAAA,oBAAoB,OAAA;AAEpB,6GAAA,oBAAoB,OAAA;AACpB,yGAAA,gBAAgB,OAAA;AAChB,4GAAA,mBAAmB,OAAA;AACnB,wGAAA,eAAe,OAAA;AACf,8GAAA,qBAAqB,OAAA;AAEvB,4CAAyC;AAAhC,uGAAA,UAAU,OAAA;AACnB,sCAAqC;AAA5B,mGAAA,SAAS,OAAA;AAClB,kDAA8C;AAArC,sGAAA,SAAS,OAAA;AAClB,gCAUe;AATb,qGAAA,cAAc,OAAA;AACd,iHAAA,0BAA0B,OAAA;AAC1B,wGAAA,iBAAiB,OAAA;AAEjB,qGAAA,cAAc,OAAA;AACd,8GAAA,uBAAuB,OAAA;AACvB,mGAAA,YAAY,OAAA;AAId,wCAKmB;AADjB,oHAAA,yBAAyB,OAAA;AAa3B,kDAMwB;AALtB,sIAAA,sCAAsC,OAAA;AACtC,6HAAA,6BAA6B,OAAA;AAC7B,+GAAA,eAAe,OAAA;AACf,uHAAA,uBAAuB,OAAA;AACvB,6GAAA,aAAa,OAAA;AAEf,4CAAsD;AAA7C,oHAAA,uBAAuB,OAAA;AAChC,sCAAwD;AAA/C,mGAAA,SAAS,OAAA;AAAE,2GAAA,iBAAiB,OAAA;AACrC,gCAOe;AAJb,0FAAA,GAAG,OAAA;AAEH,6FAAA,MAAM,OAAA;AAQR,8CAA0C;AAAjC,wGAAA,UAAU,OAAA;AACnB,0CAAsC;AAA7B,oGAAA,QAAQ,OAAA;AACjB,kCAgBgB;AAbd,oGAAA,YAAY,OAAA;AAEZ,iGAAA,SAAS,OAAA;AAET,sGAAA,cAAc,OAAA;AAEd,qGAAA,aAAa,OAAA;AAIb,4FAAA,IAAI,OAAA;AAWN,qDAA0B;AAC1B,kDAA2E;AAAlE,kHAAA,sBAAsB,OAAA;AAAE,yGAAA,aAAa,OAAA;AA6B9C,oCAA8C;AAArC,qGAAA,YAAY,OAAA;AAAE,8FAAA,KAAK,OAAA;AAE5B,2DAAuD;AAA9C,8GAAA,aAAa,OAAA;AAEtB;;;GAGG;AACH,gEAA6C;AAE7C;;;;;GAKG;AACH,IAAA,2BAAiB,EAAC,IAAA,4BAAgB,GAAE,CAAC,CAAC"}
|
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"OAAO,EAAE,iBAAiB,EAAE;OACrB,EAAE,gBAAgB,EAAE;OAEpB,EAAE,mBAAmB,EAAE,MAAM,4BAA4B;OACzD,EACL,KAAK,GASN;OAIM,EACL,WAAW,EACX,uBAAuB,EACvB,+BAA+B,EAC/B,qBAAqB,EACrB,kBAAkB,EAClB,gCAAgC,EAChC,aAAa,EACb,SAAS,EACT,WAAW,GACZ;OACM,EACL,0BAA0B,EAC1B,sBAAsB,EACtB,kBAAkB,GAEnB;OACM,EACL,qBAAqB,GAatB;OACM,EACL,UAAU,EACV,kBAAkB,EAClB,OAAO,EACP,OAAO,GAGR;OACM,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE;OAC3B,EACL,oBAAoB,EACpB,kBAAkB,EAClB,oBAAoB,EAEpB,oBAAoB,EACpB,gBAAgB,EAChB,mBAAmB,EACnB,eAAe,EACf,qBAAqB,GACtB;OACM,EAAE,UAAU,EAAE;OACd,EAAE,SAAS,EAAE;OACb,EAAE,SAAS,EAAE;OACb,EACL,cAAc,EACd,0BAA0B,EAC1B,iBAAiB,EAEjB,cAAc,EACd,uBAAuB,EACvB,YAAY,
|
|
1
|
+
{"version":3,"file":"index.mjs","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"OAAO,EAAE,iBAAiB,EAAE;OACrB,EAAE,gBAAgB,EAAE;OAEpB,EAAE,mBAAmB,EAAE,MAAM,4BAA4B;OACzD,EACL,KAAK,GASN;OAIM,EACL,WAAW,EACX,uBAAuB,EACvB,+BAA+B,EAC/B,qBAAqB,EACrB,kBAAkB,EAClB,gCAAgC,EAChC,aAAa,EACb,SAAS,EACT,WAAW,GACZ;OACM,EACL,0BAA0B,EAC1B,sBAAsB,EACtB,kBAAkB,GAEnB;OACM,EACL,qBAAqB,GAatB;OACM,EACL,UAAU,EACV,kBAAkB,EAClB,OAAO,EACP,OAAO,GAGR;OACM,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE;OAC3B,EACL,oBAAoB,EACpB,kBAAkB,EAClB,oBAAoB,EAEpB,oBAAoB,EACpB,gBAAgB,EAChB,mBAAmB,EACnB,eAAe,EACf,qBAAqB,GACtB;OACM,EAAE,UAAU,EAAE;OACd,EAAE,SAAS,EAAE;OACb,EAAE,SAAS,EAAE;OACb,EACL,cAAc,EACd,0BAA0B,EAC1B,iBAAiB,EAEjB,cAAc,EACd,uBAAuB,EACvB,YAAY,GAGb;OACM,EAIL,yBAAyB,GAC1B;OAYM,EACL,sCAAsC,EACtC,6BAA6B,EAC7B,eAAe,EACf,uBAAuB,EACvB,aAAa,GACd;OACM,EAAE,uBAAuB,EAAE;OAC3B,EAAE,SAAS,EAAE,iBAAiB,EAAE;OAChC,EAGL,GAAG,EAEH,MAAM,GAEP;OAMM,EAAE,UAAU,EAAE;OACd,EAAE,QAAQ,EAAE;OACZ,EAGL,YAAY,EAEZ,SAAS,EAET,cAAc,EAEd,aAAa,EAIb,IAAI,GAGL;;OASM,EAAE,sBAAsB,EAAE,aAAa,EAAE;OA6BzC,EAAE,YAAY,EAAE,KAAK,EAAE;OAEvB,EAAE,aAAa,EAAE;OAMjB,KAAK,QAAQ;AAEpB;;;;;GAKG;AACH,iBAAiB,CAAC,gBAAgB,EAAE,CAAC,CAAC"}
|
package/dist/lifecycle.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ import { RunContext } from './runContext';
|
|
|
2
2
|
import type { Agent, AgentOutputType } from './agent';
|
|
3
3
|
import { Tool } from './tool';
|
|
4
4
|
import { RuntimeEventEmitter, EventEmitter, EventEmitterEvents } from '@openai/agents-core/_shims';
|
|
5
|
-
import { TextOutput, UnknownContext } from './types';
|
|
5
|
+
import { AgentInputItem, TextOutput, UnknownContext } from './types';
|
|
6
6
|
import * as protocol from './types/protocol';
|
|
7
7
|
export declare abstract class EventEmitterDelegate<EventTypes extends EventEmitterEvents = Record<string, any[]>> implements EventEmitter<EventTypes> {
|
|
8
8
|
protected abstract eventEmitter: EventEmitter<EventTypes>;
|
|
@@ -14,9 +14,20 @@ export declare abstract class EventEmitterDelegate<EventTypes extends EventEmitt
|
|
|
14
14
|
export type AgentHookEvents<TContext = UnknownContext, TOutput extends AgentOutputType = TextOutput> = {
|
|
15
15
|
/**
|
|
16
16
|
* @param context - The context of the run
|
|
17
|
+
* @param agent - The agent that is starting
|
|
18
|
+
* @param turnInput - The input items for the current turn
|
|
17
19
|
*/
|
|
18
|
-
agent_start: [
|
|
20
|
+
agent_start: [
|
|
21
|
+
context: RunContext<TContext>,
|
|
22
|
+
agent: Agent<TContext, TOutput>,
|
|
23
|
+
turnInput?: AgentInputItem[]
|
|
24
|
+
];
|
|
19
25
|
/**
|
|
26
|
+
* Note that the second argument is not consistent with the run hooks here.
|
|
27
|
+
* Changing the list is a breaking change, so we don't make changes for it in the short term
|
|
28
|
+
* If we revisit the argument data structure (e.g., migrating to a single object instead),
|
|
29
|
+
* more properties could be easily added later on.
|
|
30
|
+
*
|
|
20
31
|
* @param context - The context of the run
|
|
21
32
|
* @param output - The output of the agent
|
|
22
33
|
*/
|
|
@@ -66,7 +77,11 @@ export type RunHookEvents<TContext = UnknownContext, TOutput extends AgentOutput
|
|
|
66
77
|
* @param context - The context of the run
|
|
67
78
|
* @param agent - The agent that is starting
|
|
68
79
|
*/
|
|
69
|
-
agent_start: [
|
|
80
|
+
agent_start: [
|
|
81
|
+
context: RunContext<TContext>,
|
|
82
|
+
agent: Agent<TContext, TOutput>,
|
|
83
|
+
turnInput?: AgentInputItem[]
|
|
84
|
+
];
|
|
70
85
|
/**
|
|
71
86
|
* @param context - The context of the run
|
|
72
87
|
* @param agent - The agent that is ending
|
package/dist/lifecycle.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lifecycle.js","sourceRoot":"","sources":["../src/lifecycle.ts"],"names":[],"mappings":";;;AAGA,uDAIoC;AAIpC,MAAsB,oBAAoB;
|
|
1
|
+
{"version":3,"file":"lifecycle.js","sourceRoot":"","sources":["../src/lifecycle.ts"],"names":[],"mappings":";;;AAGA,uDAIoC;AAIpC,MAAsB,oBAAoB;IAKxC,EAAE,CACA,IAAO,EACP,QAA0C;QAE1C,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QACrC,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IACD,GAAG,CACD,IAAO,EACP,QAA0C;QAE1C,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QACtC,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IACD,IAAI,CAA6B,IAAO,EAAE,GAAG,IAAmB;QAC9D,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC;IAC/C,CAAC;IACD,IAAI,CACF,IAAO,EACP,QAA0C;QAE1C,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QACvC,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;CACF;AA7BD,oDA6BC;AAwDD;;;GAGG;AACH,MAAa,UAGX,SAAQ,oBAAwD;IACtD,YAAY,GAAG,IAAI,4BAAmB,EAE7C,CAAC;CACL;AAPD,gCAOC;AA6DD;;;GAGG;AACH,MAAa,QAGX,SAAQ,oBAAsD;IACpD,YAAY,GAAG,IAAI,4BAAmB,EAE7C,CAAC;CACL;AAPD,4BAOC"}
|
package/dist/lifecycle.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lifecycle.mjs","sourceRoot":"","sources":["../src/lifecycle.ts"],"names":[],"mappings":"OAGO,EACL,mBAAmB,GAGpB,MAAM,4BAA4B;AAInC,MAAM,OAAgB,oBAAoB;
|
|
1
|
+
{"version":3,"file":"lifecycle.mjs","sourceRoot":"","sources":["../src/lifecycle.ts"],"names":[],"mappings":"OAGO,EACL,mBAAmB,GAGpB,MAAM,4BAA4B;AAInC,MAAM,OAAgB,oBAAoB;IAKxC,EAAE,CACA,IAAO,EACP,QAA0C;QAE1C,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QACrC,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IACD,GAAG,CACD,IAAO,EACP,QAA0C;QAE1C,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QACtC,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IACD,IAAI,CAA6B,IAAO,EAAE,GAAG,IAAmB;QAC9D,OAAO,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC;IAC/C,CAAC;IACD,IAAI,CACF,IAAO,EACP,QAA0C;QAE1C,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QACvC,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;CACF;AAwDD;;;GAGG;AACH,MAAM,OAAO,UAGX,SAAQ,oBAAwD;IACtD,YAAY,GAAG,IAAI,mBAAmB,EAE7C,CAAC;CACL;AA6DD;;;GAGG;AACH,MAAM,OAAO,QAGX,SAAQ,oBAAsD;IACpD,YAAY,GAAG,IAAI,mBAAmB,EAE7C,CAAC;CACL"}
|
package/dist/mcp.d.ts
CHANGED
|
@@ -160,6 +160,20 @@ export declare class MCPServerSSE extends BaseMCPServerSSE {
|
|
|
160
160
|
* @param serverName - Name of the MCP server whose cache should be cleared.
|
|
161
161
|
*/
|
|
162
162
|
export declare function invalidateServerToolsCache(serverName: string): Promise<void>;
|
|
163
|
+
/**
|
|
164
|
+
* Function signature for generating the MCP tool cache key.
|
|
165
|
+
* Customizable so the cache key can depend on any context—server, agent, runContext, etc.
|
|
166
|
+
*/
|
|
167
|
+
export type MCPToolCacheKeyGenerator = (params: {
|
|
168
|
+
server: MCPServer;
|
|
169
|
+
agent?: Agent<any, any>;
|
|
170
|
+
runContext?: RunContext<any>;
|
|
171
|
+
}) => string;
|
|
172
|
+
/**
|
|
173
|
+
* Default cache key generator for MCP tools.
|
|
174
|
+
* Uses server name, or server+agent if using callable filter.
|
|
175
|
+
*/
|
|
176
|
+
export declare const defaultMCPToolCacheKey: MCPToolCacheKeyGenerator;
|
|
163
177
|
/**
|
|
164
178
|
* Options for fetching MCP tools.
|
|
165
179
|
*/
|
|
@@ -168,13 +182,13 @@ export type GetAllMcpToolsOptions<TContext> = {
|
|
|
168
182
|
convertSchemasToStrict?: boolean;
|
|
169
183
|
runContext?: RunContext<TContext>;
|
|
170
184
|
agent?: Agent<TContext, any>;
|
|
185
|
+
generateMCPToolCacheKey?: MCPToolCacheKeyGenerator;
|
|
171
186
|
};
|
|
172
187
|
/**
|
|
173
188
|
* Returns all MCP tools from the provided servers, using the function tool conversion.
|
|
174
189
|
* If runContext and agent are provided, callable tool filters will be applied.
|
|
175
190
|
*/
|
|
176
|
-
export declare function getAllMcpTools<TContext = UnknownContext>(
|
|
177
|
-
export declare function getAllMcpTools<TContext = UnknownContext>(opts: GetAllMcpToolsOptions<TContext>): Promise<Tool<TContext>[]>;
|
|
191
|
+
export declare function getAllMcpTools<TContext = UnknownContext>(mcpServersOrOpts: MCPServer[] | GetAllMcpToolsOptions<TContext>, runContext?: RunContext<TContext>, agent?: Agent<TContext, any>, convertSchemasToStrict?: boolean): Promise<Tool<TContext>[]>;
|
|
178
192
|
/**
|
|
179
193
|
* Converts an MCP tool definition to a function tool for the Agents SDK.
|
|
180
194
|
*/
|
|
@@ -227,6 +241,7 @@ export interface MCPServerSSEOptions {
|
|
|
227
241
|
timeout?: number;
|
|
228
242
|
authProvider?: any;
|
|
229
243
|
requestInit?: any;
|
|
244
|
+
fetch?: any;
|
|
230
245
|
eventSourceInit?: any;
|
|
231
246
|
}
|
|
232
247
|
/**
|
package/dist/mcp.js
CHANGED
|
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.MCPServerSSE = exports.MCPServerStreamableHttp = exports.MCPServerStdio = exports.MCPTool = exports.BaseMCPServerSSE = exports.BaseMCPServerStreamableHttp = exports.BaseMCPServerStdio = exports.DEFAULT_SSE_MCP_CLIENT_LOGGER_NAME = exports.DEFAULT_STREAMABLE_HTTP_MCP_CLIENT_LOGGER_NAME = exports.DEFAULT_STDIO_MCP_CLIENT_LOGGER_NAME = void 0;
|
|
6
|
+
exports.defaultMCPToolCacheKey = exports.MCPServerSSE = exports.MCPServerStreamableHttp = exports.MCPServerStdio = exports.MCPTool = exports.BaseMCPServerSSE = exports.BaseMCPServerStreamableHttp = exports.BaseMCPServerStdio = exports.DEFAULT_SSE_MCP_CLIENT_LOGGER_NAME = exports.DEFAULT_STREAMABLE_HTTP_MCP_CLIENT_LOGGER_NAME = exports.DEFAULT_STDIO_MCP_CLIENT_LOGGER_NAME = void 0;
|
|
7
7
|
exports.invalidateServerToolsCache = invalidateServerToolsCache;
|
|
8
8
|
exports.getAllMcpTools = getAllMcpTools;
|
|
9
9
|
exports.mcpToFunctionTool = mcpToFunctionTool;
|
|
@@ -210,20 +210,51 @@ exports.MCPServerSSE = MCPServerSSE;
|
|
|
210
210
|
* Logs and skips any servers that fail to respond.
|
|
211
211
|
*/
|
|
212
212
|
const _cachedTools = {};
|
|
213
|
+
const _cachedToolKeysByServer = {};
|
|
213
214
|
/**
|
|
214
215
|
* Remove cached tools for the given server so the next lookup fetches fresh data.
|
|
215
216
|
*
|
|
216
217
|
* @param serverName - Name of the MCP server whose cache should be cleared.
|
|
217
218
|
*/
|
|
218
219
|
async function invalidateServerToolsCache(serverName) {
|
|
220
|
+
const cachedKeys = _cachedToolKeysByServer[serverName];
|
|
221
|
+
if (cachedKeys) {
|
|
222
|
+
for (const cacheKey of cachedKeys) {
|
|
223
|
+
delete _cachedTools[cacheKey];
|
|
224
|
+
}
|
|
225
|
+
delete _cachedToolKeysByServer[serverName];
|
|
226
|
+
return;
|
|
227
|
+
}
|
|
219
228
|
delete _cachedTools[serverName];
|
|
229
|
+
for (const cacheKey of Object.keys(_cachedTools)) {
|
|
230
|
+
if (cacheKey.startsWith(`${serverName}:`)) {
|
|
231
|
+
delete _cachedTools[cacheKey];
|
|
232
|
+
}
|
|
233
|
+
}
|
|
220
234
|
}
|
|
235
|
+
/**
|
|
236
|
+
* Default cache key generator for MCP tools.
|
|
237
|
+
* Uses server name, or server+agent if using callable filter.
|
|
238
|
+
*/
|
|
239
|
+
const defaultMCPToolCacheKey = ({ server, agent, }) => {
|
|
240
|
+
if (server.toolFilter && typeof server.toolFilter === 'function' && agent) {
|
|
241
|
+
return `${server.name}:${agent.name}`;
|
|
242
|
+
}
|
|
243
|
+
return server.name;
|
|
244
|
+
};
|
|
245
|
+
exports.defaultMCPToolCacheKey = defaultMCPToolCacheKey;
|
|
221
246
|
/**
|
|
222
247
|
* Fetches all function tools from a single MCP server.
|
|
223
248
|
*/
|
|
224
|
-
async function getFunctionToolsFromServer({ server, convertSchemasToStrict, runContext, agent, }) {
|
|
225
|
-
|
|
226
|
-
|
|
249
|
+
async function getFunctionToolsFromServer({ server, convertSchemasToStrict, runContext, agent, generateMCPToolCacheKey, }) {
|
|
250
|
+
const cacheKey = (generateMCPToolCacheKey || exports.defaultMCPToolCacheKey)({
|
|
251
|
+
server,
|
|
252
|
+
agent,
|
|
253
|
+
runContext,
|
|
254
|
+
});
|
|
255
|
+
// Use cache key generator injected from the outside, or the default if absent.
|
|
256
|
+
if (server.cacheToolsList && _cachedTools[cacheKey]) {
|
|
257
|
+
return _cachedTools[cacheKey].map((t) => mcpToFunctionTool(t, server, convertSchemasToStrict));
|
|
227
258
|
}
|
|
228
259
|
const listToolsForServer = async (span) => {
|
|
229
260
|
const fetchedMcpTools = await server.listTools();
|
|
@@ -271,8 +302,13 @@ async function getFunctionToolsFromServer({ server, convertSchemasToStrict, runC
|
|
|
271
302
|
span.spanData.result = mcpTools.map((t) => t.name);
|
|
272
303
|
}
|
|
273
304
|
const tools = mcpTools.map((t) => mcpToFunctionTool(t, server, convertSchemasToStrict));
|
|
305
|
+
// Cache store
|
|
274
306
|
if (server.cacheToolsList) {
|
|
275
|
-
_cachedTools[
|
|
307
|
+
_cachedTools[cacheKey] = mcpTools;
|
|
308
|
+
if (!_cachedToolKeysByServer[server.name]) {
|
|
309
|
+
_cachedToolKeysByServer[server.name] = new Set();
|
|
310
|
+
}
|
|
311
|
+
_cachedToolKeysByServer[server.name].add(cacheKey);
|
|
276
312
|
}
|
|
277
313
|
return tools;
|
|
278
314
|
};
|
|
@@ -283,6 +319,10 @@ async function getFunctionToolsFromServer({ server, convertSchemasToStrict, runC
|
|
|
283
319
|
data: { server: server.name },
|
|
284
320
|
});
|
|
285
321
|
}
|
|
322
|
+
/**
|
|
323
|
+
* Returns all MCP tools from the provided servers, using the function tool conversion.
|
|
324
|
+
* If runContext and agent are provided, callable tool filters will be applied.
|
|
325
|
+
*/
|
|
286
326
|
async function getAllMcpTools(mcpServersOrOpts, runContext, agent, convertSchemasToStrict = false) {
|
|
287
327
|
const opts = Array.isArray(mcpServersOrOpts)
|
|
288
328
|
? {
|
|
@@ -292,7 +332,7 @@ async function getAllMcpTools(mcpServersOrOpts, runContext, agent, convertSchema
|
|
|
292
332
|
convertSchemasToStrict,
|
|
293
333
|
}
|
|
294
334
|
: mcpServersOrOpts;
|
|
295
|
-
const { mcpServers, convertSchemasToStrict: convertSchemasToStrictFromOpts = false, runContext: runContextFromOpts, agent: agentFromOpts, } = opts;
|
|
335
|
+
const { mcpServers, convertSchemasToStrict: convertSchemasToStrictFromOpts = false, runContext: runContextFromOpts, agent: agentFromOpts, generateMCPToolCacheKey, } = opts;
|
|
296
336
|
const allTools = [];
|
|
297
337
|
const toolNames = new Set();
|
|
298
338
|
for (const server of mcpServers) {
|
|
@@ -301,6 +341,7 @@ async function getAllMcpTools(mcpServersOrOpts, runContext, agent, convertSchema
|
|
|
301
341
|
convertSchemasToStrict: convertSchemasToStrictFromOpts,
|
|
302
342
|
runContext: runContextFromOpts,
|
|
303
343
|
agent: agentFromOpts,
|
|
344
|
+
generateMCPToolCacheKey,
|
|
304
345
|
});
|
|
305
346
|
const serverToolNames = new Set(serverTools.map((t) => t.name));
|
|
306
347
|
const intersection = [...serverToolNames].filter((n) => toolNames.has(n));
|