@openai/agents-core 0.1.6 → 0.1.8

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 CHANGED
@@ -8,7 +8,7 @@ import type { RunContext } from './runContext';
8
8
  import { type FunctionTool, type FunctionToolResult, type Tool, type ToolApprovalFunction } from './tool';
9
9
  import type { ResolvedAgentOutput, JsonSchemaDefinition, HandoffsOutput, Expand } from './types';
10
10
  import type { RunResult } from './result';
11
- import type { Handoff } from './handoff';
11
+ import { type Handoff } from './handoff';
12
12
  import { NonStreamRunOptions, RunConfig } from './run';
13
13
  import { RunToolApprovalItem } from './items';
14
14
  import { UnknownContext, TextOutput } from './types';
@@ -292,6 +292,13 @@ export declare class Agent<TContext = UnknownContext, TOutput extends AgentOutpu
292
292
  * Additional run options for the agent (as tool) execution.
293
293
  */
294
294
  runOptions?: NonStreamRunOptions<TContext>;
295
+ /**
296
+ * Determines whether this tool should be exposed to the model for the current run.
297
+ */
298
+ isEnabled?: boolean | ((args: {
299
+ runContext: RunContext<TContext>;
300
+ agent: Agent<TContext, TOutput>;
301
+ }) => boolean | Promise<boolean>);
295
302
  }): FunctionTool<TContext, typeof AgentAsToolNeedApprovalSchame>;
296
303
  /**
297
304
  * Returns the system prompt for the agent.
@@ -318,6 +325,12 @@ export declare class Agent<TContext = UnknownContext, TOutput extends AgentOutpu
318
325
  * @returns all configured tools
319
326
  */
320
327
  getAllTools(runContext: RunContext<TContext>): Promise<Tool<TContext>[]>;
328
+ /**
329
+ * Returns the handoffs that should be exposed to the model for the current run.
330
+ *
331
+ * Handoffs that provide an `isEnabled` function returning `false` are omitted.
332
+ */
333
+ getEnabledHandoffs(runContext: RunContext<TContext>): Promise<Handoff<any, any>[]>;
321
334
  /**
322
335
  * Processes the final output of the agent.
323
336
  *
package/dist/agent.js CHANGED
@@ -11,6 +11,7 @@ const lifecycle_1 = require("./lifecycle.js");
11
11
  const mcp_1 = require("./mcp.js");
12
12
  const defaultModel_1 = require("./defaultModel.js");
13
13
  const tool_1 = require("./tool.js");
14
+ const handoff_1 = require("./handoff.js");
14
15
  const run_1 = require("./run.js");
15
16
  const tools_1 = require("./utils/tools.js");
16
17
  const messages_1 = require("./utils/messages.js");
@@ -171,13 +172,14 @@ class Agent extends lifecycle_1.AgentHooks {
171
172
  * @returns A tool that runs the agent and returns the output text.
172
173
  */
173
174
  asTool(options) {
174
- const { toolName, toolDescription, customOutputExtractor, needsApproval, runConfig, runOptions, } = options;
175
+ const { toolName, toolDescription, customOutputExtractor, needsApproval, runConfig, runOptions, isEnabled, } = options;
175
176
  return (0, tool_1.tool)({
176
177
  name: toolName ?? (0, tools_1.toFunctionToolName)(this.name),
177
178
  description: toolDescription ?? '',
178
179
  parameters: AgentAsToolNeedApprovalSchame,
179
180
  strict: true,
180
181
  needsApproval,
182
+ isEnabled,
181
183
  execute: async (data, context, details) => {
182
184
  if (!(0, typeGuards_1.isAgentToolInput)(data)) {
183
185
  throw new errors_1.ModelBehaviorError('Agent tool called with invalid input');
@@ -187,6 +189,13 @@ class Agent extends lifecycle_1.AgentHooks {
187
189
  context,
188
190
  ...(runOptions ?? {}),
189
191
  });
192
+ const usesStopAtToolNames = typeof this.toolUseBehavior === 'object' &&
193
+ this.toolUseBehavior !== null &&
194
+ 'stopAtToolNames' in this.toolUseBehavior;
195
+ if (typeof customOutputExtractor !== 'function' &&
196
+ usesStopAtToolNames) {
197
+ logger_1.default.debug(`You're passing the agent (name: ${this.name}) with toolUseBehavior.stopAtToolNames configured as a tool to a different agent; this may not work as you expect. You may want to have a wrapper function tool to consistently return the final output.`);
198
+ }
190
199
  const outputText = typeof customOutputExtractor === 'function'
191
200
  ? await customOutputExtractor(result)
192
201
  : (0, messages_1.getOutputText)(result.rawResponses[result.rawResponses.length - 1]);
@@ -242,7 +251,38 @@ class Agent extends lifecycle_1.AgentHooks {
242
251
  * @returns all configured tools
243
252
  */
244
253
  async getAllTools(runContext) {
245
- return [...(await this.getMcpTools(runContext)), ...this.tools];
254
+ const mcpTools = await this.getMcpTools(runContext);
255
+ const enabledTools = [];
256
+ for (const candidate of this.tools) {
257
+ if (candidate.type === 'function') {
258
+ const maybeIsEnabled = candidate.isEnabled;
259
+ const enabled = typeof maybeIsEnabled === 'function'
260
+ ? await maybeIsEnabled(runContext, this)
261
+ : typeof maybeIsEnabled === 'boolean'
262
+ ? maybeIsEnabled
263
+ : true;
264
+ if (!enabled) {
265
+ continue;
266
+ }
267
+ }
268
+ enabledTools.push(candidate);
269
+ }
270
+ return [...mcpTools, ...enabledTools];
271
+ }
272
+ /**
273
+ * Returns the handoffs that should be exposed to the model for the current run.
274
+ *
275
+ * Handoffs that provide an `isEnabled` function returning `false` are omitted.
276
+ */
277
+ async getEnabledHandoffs(runContext) {
278
+ const handoffs = this.handoffs?.map((h) => (0, handoff_1.getHandoff)(h)) ?? [];
279
+ const enabled = [];
280
+ for (const handoff of handoffs) {
281
+ if (await handoff.isEnabled({ runContext, agent: this })) {
282
+ enabled.push(handoff);
283
+ }
284
+ }
285
+ return enabled;
246
286
  }
247
287
  /**
248
288
  * Processes the final output of the agent.
package/dist/agent.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"agent.js","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent.js","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"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"}
package/dist/agent.mjs CHANGED
@@ -3,6 +3,7 @@ import { AgentHooks } from "./lifecycle.mjs";
3
3
  import { getAllMcpTools } from "./mcp.mjs";
4
4
  import { getDefaultModelSettings, gpt5ReasoningSettingsRequired, isGpt5Default, } from "./defaultModel.mjs";
5
5
  import { tool, } from "./tool.mjs";
6
+ import { getHandoff } from "./handoff.mjs";
6
7
  import { Runner } from "./run.mjs";
7
8
  import { toFunctionToolName } from "./utils/tools.mjs";
8
9
  import { getOutputText } from "./utils/messages.mjs";
@@ -163,13 +164,14 @@ export class Agent extends AgentHooks {
163
164
  * @returns A tool that runs the agent and returns the output text.
164
165
  */
165
166
  asTool(options) {
166
- const { toolName, toolDescription, customOutputExtractor, needsApproval, runConfig, runOptions, } = options;
167
+ const { toolName, toolDescription, customOutputExtractor, needsApproval, runConfig, runOptions, isEnabled, } = options;
167
168
  return tool({
168
169
  name: toolName ?? toFunctionToolName(this.name),
169
170
  description: toolDescription ?? '',
170
171
  parameters: AgentAsToolNeedApprovalSchame,
171
172
  strict: true,
172
173
  needsApproval,
174
+ isEnabled,
173
175
  execute: async (data, context, details) => {
174
176
  if (!isAgentToolInput(data)) {
175
177
  throw new ModelBehaviorError('Agent tool called with invalid input');
@@ -179,6 +181,13 @@ export class Agent extends AgentHooks {
179
181
  context,
180
182
  ...(runOptions ?? {}),
181
183
  });
184
+ const usesStopAtToolNames = typeof this.toolUseBehavior === 'object' &&
185
+ this.toolUseBehavior !== null &&
186
+ 'stopAtToolNames' in this.toolUseBehavior;
187
+ if (typeof customOutputExtractor !== 'function' &&
188
+ usesStopAtToolNames) {
189
+ logger.debug(`You're passing the agent (name: ${this.name}) with toolUseBehavior.stopAtToolNames configured as a tool to a different agent; this may not work as you expect. You may want to have a wrapper function tool to consistently return the final output.`);
190
+ }
182
191
  const outputText = typeof customOutputExtractor === 'function'
183
192
  ? await customOutputExtractor(result)
184
193
  : getOutputText(result.rawResponses[result.rawResponses.length - 1]);
@@ -234,7 +243,38 @@ export class Agent extends AgentHooks {
234
243
  * @returns all configured tools
235
244
  */
236
245
  async getAllTools(runContext) {
237
- return [...(await this.getMcpTools(runContext)), ...this.tools];
246
+ const mcpTools = await this.getMcpTools(runContext);
247
+ const enabledTools = [];
248
+ for (const candidate of this.tools) {
249
+ if (candidate.type === 'function') {
250
+ const maybeIsEnabled = candidate.isEnabled;
251
+ const enabled = typeof maybeIsEnabled === 'function'
252
+ ? await maybeIsEnabled(runContext, this)
253
+ : typeof maybeIsEnabled === 'boolean'
254
+ ? maybeIsEnabled
255
+ : true;
256
+ if (!enabled) {
257
+ continue;
258
+ }
259
+ }
260
+ enabledTools.push(candidate);
261
+ }
262
+ return [...mcpTools, ...enabledTools];
263
+ }
264
+ /**
265
+ * Returns the handoffs that should be exposed to the model for the current run.
266
+ *
267
+ * Handoffs that provide an `isEnabled` function returning `false` are omitted.
268
+ */
269
+ async getEnabledHandoffs(runContext) {
270
+ const handoffs = this.handoffs?.map((h) => getHandoff(h)) ?? [];
271
+ const enabled = [];
272
+ for (const handoff of handoffs) {
273
+ if (await handoff.isEnabled({ runContext, agent: this })) {
274
+ enabled.push(handoff);
275
+ }
276
+ }
277
+ return enabled;
238
278
  }
239
279
  /**
240
280
  * Processes the final output of the agent.
@@ -1 +1 @@
1
- {"version":3,"file":"agent.mjs","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent.mjs","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"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"}
package/dist/handoff.d.ts CHANGED
@@ -43,6 +43,15 @@ export declare function getTransferMessage<TContext, TOutput extends AgentOutput
43
43
  * @template TContext The context of the handoff
44
44
  * @template TOutput The output type of the handoff
45
45
  */
46
+ type HandoffEnabledPredicate<TContext = UnknownContext> = (args: {
47
+ runContext: RunContext<TContext>;
48
+ agent: Agent<any, any>;
49
+ }) => boolean | Promise<boolean>;
50
+ type HandoffEnabledOption<TContext> = boolean | HandoffEnabledPredicate<TContext>;
51
+ export type HandoffEnabledFunction<TContext = UnknownContext> = (args: {
52
+ runContext: RunContext<TContext>;
53
+ agent: Agent<any, any>;
54
+ }) => Promise<boolean>;
46
55
  export declare class Handoff<TContext = UnknownContext, TOutput extends AgentOutputType = TextOutput> {
47
56
  /**
48
57
  * The name of the tool that represents the handoff.
@@ -99,6 +108,7 @@ export declare class Handoff<TContext = UnknownContext, TOutput extends AgentOut
99
108
  parameters: JsonObjectSchema<any>;
100
109
  strict: boolean;
101
110
  };
111
+ isEnabled: HandoffEnabledFunction<TContext>;
102
112
  constructor(agent: Agent<TContext, TOutput>, onInvokeHandoff: (context: RunContext<TContext>, args: string) => Promise<Agent<TContext, TOutput>> | Agent<TContext, TOutput>);
103
113
  }
104
114
  /**
@@ -108,7 +118,7 @@ export type OnHandoffCallback<TInputType extends ToolInputParameters> = (context
108
118
  /**
109
119
  * Configuration for a handoff.
110
120
  */
111
- export type HandoffConfig<TInputType extends ToolInputParameters> = {
121
+ export type HandoffConfig<TInputType extends ToolInputParameters, TContext = UnknownContext> = {
112
122
  /**
113
123
  * Optional override for the name of the tool that represents the handoff.
114
124
  */
@@ -130,6 +140,10 @@ export type HandoffConfig<TInputType extends ToolInputParameters> = {
130
140
  * A function that filters the inputs that are passed to the next agent.
131
141
  */
132
142
  inputFilter?: HandoffInputFilter;
143
+ /**
144
+ * Determines whether the handoff should be available to the model for the current run.
145
+ */
146
+ isEnabled?: HandoffEnabledOption<TContext>;
133
147
  };
134
148
  /**
135
149
  * Creates a handoff from an agent. Handoffs are automatically created when you pass an agent
@@ -140,7 +154,7 @@ export type HandoffConfig<TInputType extends ToolInputParameters> = {
140
154
  * @template TOutput The output type of the handoff
141
155
  * @template TInputType The input type of the handoff
142
156
  */
143
- export declare function handoff<TContext = UnknownContext, TOutput extends AgentOutputType = TextOutput, TInputType extends ToolInputParameters = ToolInputParameters>(agent: Agent<TContext, TOutput>, config?: HandoffConfig<TInputType>): Handoff<TContext, TOutput>;
157
+ export declare function handoff<TContext = UnknownContext, TOutput extends AgentOutputType = TextOutput, TInputType extends ToolInputParameters = ToolInputParameters>(agent: Agent<TContext, TOutput>, config?: HandoffConfig<TInputType, TContext>): Handoff<TContext, TOutput>;
144
158
  /**
145
159
  * Returns a handoff for the given agent. If the agent is already wrapped into a handoff,
146
160
  * it will be returned as is. Otherwise, a new handoff instance will be created.
@@ -149,3 +163,4 @@ export declare function handoff<TContext = UnknownContext, TOutput extends Agent
149
163
  * @template TOutput The output type of the handoff
150
164
  */
151
165
  export declare function getHandoff<TContext, TOutput extends AgentOutputType>(agent: Agent<TContext, TOutput> | Handoff<TContext, TOutput>): Handoff<TContext, TOutput>;
166
+ export {};
package/dist/handoff.js CHANGED
@@ -39,15 +39,6 @@ function defaultHandoffToolName(agent) {
39
39
  function defaultHandoffToolDescription(agent) {
40
40
  return `Handoff to the ${agent.name} agent to handle the request. ${agent.handoffDescription ?? ''}`;
41
41
  }
42
- /**
43
- * A handoff is when an agent delegates a task to another agent.
44
- * For example, in a customer support scenario you might have a "triage agent" that determines which
45
- * agent should handle the user's request, and sub-agents that specialize in different areas like
46
- * billing, account management, etc.
47
- *
48
- * @template TContext The context of the handoff
49
- * @template TOutput The output type of the handoff
50
- */
51
42
  class Handoff {
52
43
  /**
53
44
  * The name of the tool that represents the handoff.
@@ -111,6 +102,7 @@ class Handoff {
111
102
  strict: this.strictJsonSchema,
112
103
  };
113
104
  }
105
+ isEnabled = async () => true;
114
106
  constructor(agent, onInvokeHandoff) {
115
107
  this.agentName = agent.name;
116
108
  this.onInvokeHandoff = onInvokeHandoff;
@@ -172,6 +164,16 @@ function handoff(agent, config = {}) {
172
164
  return agent;
173
165
  }
174
166
  const handoff = new Handoff(agent, onInvokeHandoff);
167
+ if (typeof config.isEnabled === 'function') {
168
+ const predicate = config.isEnabled;
169
+ handoff.isEnabled = async ({ runContext, agent }) => {
170
+ const result = await predicate({ runContext, agent });
171
+ return Boolean(result);
172
+ };
173
+ }
174
+ else if (typeof config.isEnabled === 'boolean') {
175
+ handoff.isEnabled = async () => config.isEnabled;
176
+ }
175
177
  if (config.inputType) {
176
178
  const result = (0, tools_2.getSchemaAndParserFromInputType)(config.inputType, handoff.toolName);
177
179
  handoff.inputJsonSchema = result.schema;
@@ -1 +1 @@
1
- {"version":3,"file":"handoff.js","sourceRoot":"","sources":["../src/handoff.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"handoff.js","sourceRoot":"","sources":["../src/handoff.ts"],"names":[],"mappings":"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"}
package/dist/handoff.mjs CHANGED
@@ -30,15 +30,6 @@ function defaultHandoffToolName(agent) {
30
30
  function defaultHandoffToolDescription(agent) {
31
31
  return `Handoff to the ${agent.name} agent to handle the request. ${agent.handoffDescription ?? ''}`;
32
32
  }
33
- /**
34
- * A handoff is when an agent delegates a task to another agent.
35
- * For example, in a customer support scenario you might have a "triage agent" that determines which
36
- * agent should handle the user's request, and sub-agents that specialize in different areas like
37
- * billing, account management, etc.
38
- *
39
- * @template TContext The context of the handoff
40
- * @template TOutput The output type of the handoff
41
- */
42
33
  export class Handoff {
43
34
  /**
44
35
  * The name of the tool that represents the handoff.
@@ -102,6 +93,7 @@ export class Handoff {
102
93
  strict: this.strictJsonSchema,
103
94
  };
104
95
  }
96
+ isEnabled = async () => true;
105
97
  constructor(agent, onInvokeHandoff) {
106
98
  this.agentName = agent.name;
107
99
  this.onInvokeHandoff = onInvokeHandoff;
@@ -162,6 +154,16 @@ export function handoff(agent, config = {}) {
162
154
  return agent;
163
155
  }
164
156
  const handoff = new Handoff(agent, onInvokeHandoff);
157
+ if (typeof config.isEnabled === 'function') {
158
+ const predicate = config.isEnabled;
159
+ handoff.isEnabled = async ({ runContext, agent }) => {
160
+ const result = await predicate({ runContext, agent });
161
+ return Boolean(result);
162
+ };
163
+ }
164
+ else if (typeof config.isEnabled === 'boolean') {
165
+ handoff.isEnabled = async () => config.isEnabled;
166
+ }
165
167
  if (config.inputType) {
166
168
  const result = getSchemaAndParserFromInputType(config.inputType, handoff.toolName);
167
169
  handoff.inputJsonSchema = result.schema;
@@ -1 +1 @@
1
- {"version":3,"file":"handoff.mjs","sourceRoot":"","sources":["../src/handoff.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"handoff.mjs","sourceRoot":"","sources":["../src/handoff.ts"],"names":[],"mappings":"OAUO,EAAE,kBAAkB,EAAE,SAAS,EAAE;OAEjC,EAAE,kBAAkB,EAAE;OACtB,EAAE,+BAA+B,EAAE;OACnC,EAAE,qBAAqB,EAAE;OACzB,MAAM;AA8Bb;;;;;GAKG;AACH,MAAM,UAAU,kBAAkB,CAChC,KAA+B;IAE/B,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;AACnD,CAAC;AAED;;;;;GAKG;AACH,SAAS,sBAAsB,CAC7B,KAA+B;IAE/B,OAAO,eAAe,kBAAkB,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;AACzD,CAAC;AAED;;;;;GAKG;AACH,SAAS,6BAA6B,CAGpC,KAA+B;IAC/B,OAAO,kBAAkB,KAAK,CAAC,IAAI,iCACjC,KAAK,CAAC,kBAAkB,IAAI,EAC9B,EAAE,CAAC;AACL,CAAC;AAyBD,MAAM,OAAO,OAAO;IAIlB;;OAEG;IACI,QAAQ,CAAS;IAExB;;OAEG;IACI,eAAe,CAAS;IAE/B;;OAEG;IACI,eAAe,GAA0B;QAC9C,IAAI,EAAE,QAAQ;QACd,UAAU,EAAE,EAAE;QACd,QAAQ,EAAE,EAAE;QACZ,oBAAoB,EAAE,KAAK;KAC5B,CAAC;IAEF;;;OAGG;IACI,gBAAgB,GAAY,IAAI,CAAC;IAExC;;;;;;OAMG;IACI,eAAe,CAG4C;IAElE;;OAEG;IACI,SAAS,CAAS;IAEzB;;;;;;;;;;OAUG;IACI,WAAW,CAAsB;IAExC;;OAEG;IACI,KAAK,CAA2B;IAEvC;;OAEG;IACH,wBAAwB;QACtB,OAAO;YACL,IAAI,EAAE,UAAmB;YACzB,IAAI,EAAE,IAAI,CAAC,QAAQ;YACnB,WAAW,EAAE,IAAI,CAAC,eAAe;YACjC,UAAU,EAAE,IAAI,CAAC,eAAe;YAChC,MAAM,EAAE,IAAI,CAAC,gBAAgB;SAC9B,CAAC;IACJ,CAAC;IAEM,SAAS,GAAqC,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC;IAEtE,YACE,KAA+B,EAC/B,eAGiE;QAEjE,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC;QAC5B,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;QACvC,IAAI,CAAC,QAAQ,GAAG,sBAAsB,CAAC,KAAK,CAAC,CAAC;QAC9C,IAAI,CAAC,eAAe,GAAG,6BAA6B,CAAC,KAAK,CAAC,CAAC;QAC5D,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;CACF;AAiDD;;;;;;;;GAQG;AACH,MAAM,UAAU,OAAO,CAKrB,KAA+B,EAC/B,SAA8C,EAAE;IAEhD,IAAI,MAAM,GAAkD,SAAS,CAAC;IAEtE,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC;IACxC,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC;IACxC,MAAM,mCAAmC,GAAG,YAAY,KAAK,YAAY,CAAC;IAE1E,IAAI,CAAC,mCAAmC,EAAE,CAAC;QACzC,MAAM,IAAI,SAAS,CACjB,sEAAsE,CACvE,CAAC;IACJ,CAAC;IAED,KAAK,UAAU,eAAe,CAC5B,OAAwB,EACxB,eAAwB;QAExB,IAAI,MAAM,EAAE,CAAC;YACX,IAAI,CAAC,eAAe,EAAE,CAAC;gBACrB,qBAAqB,CAAC;oBACpB,OAAO,EAAE,sDAAsD,eAAe,EAAE;oBAChF,IAAI,EAAE;wBACJ,OAAO,EAAE,gBAAgB;qBAC1B;iBACF,CAAC,CAAC;gBACH,MAAM,IAAI,kBAAkB,CAC1B,2CAA2C,CAC5C,CAAC;YACJ,CAAC;YACD,IAAI,CAAC;gBACH,kEAAkE;gBAClE,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,eAAe,CAAC,CAAC;gBAC7C,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;oBACrB,MAAM,MAAM,CAAC,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;gBAC1C,CAAC;YACH,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,qBAAqB,CAAC;oBACpB,OAAO,EAAE,uBAAuB;oBAChC,IAAI,EAAE,EAAE;iBACT,CAAC,CAAC;gBACH,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC;oBAC5B,MAAM,CAAC,KAAK,CACV,8BAA8B,eAAe,YAAY,KAAK,EAAE,CACjE,CAAC;gBACJ,CAAC;gBACD,MAAM,IAAI,kBAAkB,CAAC,uBAAuB,CAAC,CAAC;YACxD,CAAC;QACH,CAAC;aAAM,CAAC;YACN,MAAM,MAAM,CAAC,SAAS,EAAE,CAAC,OAAO,CAAC,CAAC;QACpC,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,KAAK,EAAE,eAAe,CAAC,CAAC;IAEpD,IAAI,OAAO,MAAM,CAAC,SAAS,KAAK,UAAU,EAAE,CAAC;QAC3C,MAAM,SAAS,GAAG,MAAM,CAAC,SAA8C,CAAC;QACxE,OAAO,CAAC,SAAS,GAAG,KAAK,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,EAAE,EAAE;YAClD,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAAC;YACtD,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC;QACzB,CAAC,CAAC;IACJ,CAAC;SAAM,IAAI,OAAO,MAAM,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;QACjD,OAAO,CAAC,SAAS,GAAG,KAAK,IAAI,EAAE,CAAC,MAAM,CAAC,SAAoB,CAAC;IAC9D,CAAC;IAED,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;QACrB,MAAM,MAAM,GAAG,+BAA+B,CAC5C,MAAM,CAAC,SAAS,EAChB,OAAO,CAAC,QAAQ,CACjB,CAAC;QACF,OAAO,CAAC,eAAe,GAAG,MAAM,CAAC,MAAM,CAAC;QACxC,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC;QAChC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;IACzB,CAAC;IAED,IAAI,MAAM,CAAC,gBAAgB,EAAE,CAAC;QAC5B,OAAO,CAAC,QAAQ,GAAG,MAAM,CAAC,gBAAgB,CAAC;IAC7C,CAAC;IAED,IAAI,MAAM,CAAC,uBAAuB,EAAE,CAAC;QACnC,OAAO,CAAC,eAAe,GAAG,MAAM,CAAC,uBAAuB,CAAC;IAC3D,CAAC;IAED,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;QACvB,OAAO,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;IAC3C,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,UAAU,CACxB,KAA4D;IAE5D,IAAI,KAAK,YAAY,OAAO,EAAE,CAAC;QAC7B,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC;AACxB,CAAC"}
package/dist/index.d.ts CHANGED
@@ -4,7 +4,7 @@ export { Computer } from './computer';
4
4
  export { AgentsError, GuardrailExecutionError, InputGuardrailTripwireTriggered, MaxTurnsExceededError, ModelBehaviorError, OutputGuardrailTripwireTriggered, ToolCallError, UserError, SystemError, } from './errors';
5
5
  export { RunAgentUpdatedStreamEvent, RunRawModelStreamEvent, RunItemStreamEvent, RunStreamEvent, } from './events';
6
6
  export { defineOutputGuardrail, GuardrailFunctionOutput, InputGuardrail, InputGuardrailFunction, InputGuardrailFunctionArgs, InputGuardrailMetadata, InputGuardrailResult, OutputGuardrail, OutputGuardrailDefinition, OutputGuardrailFunction, OutputGuardrailFunctionArgs, OutputGuardrailMetadata, OutputGuardrailResult, } from './guardrail';
7
- export { getHandoff, getTransferMessage, Handoff, handoff, HandoffInputData, } from './handoff';
7
+ export { getHandoff, getTransferMessage, Handoff, handoff, HandoffInputData, HandoffEnabledFunction, } from './handoff';
8
8
  export { assistant, system, user } from './helpers/message';
9
9
  export { extractAllTextOutput, RunHandoffCallItem, RunHandoffOutputItem, RunItem, RunMessageOutputItem, RunReasoningItem, RunToolApprovalItem, RunToolCallItem, RunToolCallOutputItem, } from './items';
10
10
  export { AgentHooks } from './lifecycle';
@@ -18,7 +18,7 @@ export { RunResult, StreamedRunResult } from './result';
18
18
  export { IndividualRunOptions, NonStreamRunOptions, run, RunConfig, Runner, StreamRunOptions, } from './run';
19
19
  export { RunContext } from './runContext';
20
20
  export { RunState } from './runState';
21
- export { HostedTool, ComputerTool, computerTool, HostedMCPTool, hostedMcpTool, FunctionTool, FunctionToolResult, Tool, tool, ToolExecuteArgument, } from './tool';
21
+ export { HostedTool, ComputerTool, computerTool, HostedMCPTool, hostedMcpTool, FunctionTool, FunctionToolResult, Tool, tool, ToolExecuteArgument, ToolEnabledFunction, } from './tool';
22
22
  export * from './tracing';
23
23
  export { getGlobalTraceProvider, TraceProvider } from './tracing/provider';
24
24
  export type { AgentInputItem, AgentOutputItem, AssistantMessageItem, HostedToolCallItem, ComputerCallResultItem, ComputerUseCallItem, FunctionCallItem, FunctionCallResultItem, JsonSchemaDefinition, ReasoningItem, ResponseStreamEvent, SystemMessageItem, TextOutput, UnknownContext, UnknownItem, UserMessageItem, StreamEvent, StreamEventTextStream, StreamEventResponseCompleted, StreamEventResponseStarted, StreamEventGenericItem, } from './types';
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;AAWP,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,wCAMmB;AALjB,qGAAA,UAAU,OAAA;AACV,6GAAA,kBAAkB,OAAA;AAClB,kGAAA,OAAO,OAAA;AACP,kGAAA,OAAO,OAAA;AAGT,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,gCASe;AARb,qGAAA,cAAc,OAAA;AACd,iHAAA,0BAA0B,OAAA;AAC1B,wGAAA,iBAAiB,OAAA;AAEjB,qGAAA,cAAc,OAAA;AACd,8GAAA,uBAAuB,OAAA;AACvB,mGAAA,YAAY,OAAA;AAGd,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;AAGR,8CAA0C;AAAjC,wGAAA,UAAU,OAAA;AACnB,0CAAsC;AAA7B,oGAAA,QAAQ,OAAA;AACjB,kCAWgB;AARd,oGAAA,YAAY,OAAA;AAEZ,qGAAA,aAAa,OAAA;AAIb,4FAAA,IAAI,OAAA;AAGN,qDAA0B;AAC1B,kDAA2E;AAAlE,kHAAA,sBAAsB,OAAA;AAAE,yGAAA,aAAa,OAAA;AAyB9C,oCAAgC;AAAvB,8FAAA,KAAK,OAAA;AAEd;;;GAGG;AACH,gEAA6C;AAE7C;;;;;GAKG;AACH,IAAA,2BAAiB,EAAC,IAAA,4BAAgB,GAAE,CAAC,CAAC"}
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;AAWP,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,gCASe;AARb,qGAAA,cAAc,OAAA;AACd,iHAAA,0BAA0B,OAAA;AAC1B,wGAAA,iBAAiB,OAAA;AAEjB,qGAAA,cAAc,OAAA;AACd,8GAAA,uBAAuB,OAAA;AACvB,mGAAA,YAAY,OAAA;AAGd,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;AAGR,8CAA0C;AAAjC,wGAAA,UAAU,OAAA;AACnB,0CAAsC;AAA7B,oGAAA,QAAQ,OAAA;AACjB,kCAYgB;AATd,oGAAA,YAAY,OAAA;AAEZ,qGAAA,aAAa,OAAA;AAIb,4FAAA,IAAI,OAAA;AAIN,qDAA0B;AAC1B,kDAA2E;AAAlE,kHAAA,sBAAsB,OAAA;AAAE,yGAAA,aAAa,OAAA;AAyB9C,oCAAgC;AAAvB,8FAAA,KAAK,OAAA;AAEd;;;GAGG;AACH,gEAA6C;AAE7C;;;;;GAKG;AACH,IAAA,2BAAiB,EAAC,IAAA,4BAAgB,GAAE,CAAC,CAAC"}
@@ -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;OAEM,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,GAER;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,EACL,cAAc,EACd,0BAA0B,EAC1B,iBAAiB,EAEjB,cAAc,EACd,uBAAuB,EACvB,YAAY,GAEb;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;OACM,EAAE,UAAU,EAAE;OACd,EAAE,QAAQ,EAAE;OACZ,EAGL,YAAY,EAEZ,aAAa,EAIb,IAAI,GAEL;;OAEM,EAAE,sBAAsB,EAAE,aAAa,EAAE;OAyBzC,EAAE,KAAK,EAAE;OAMT,KAAK,QAAQ;AAEpB;;;;;GAKG;AACH,iBAAiB,CAAC,gBAAgB,EAAE,CAAC,CAAC"}
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;OAEM,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,EACL,cAAc,EACd,0BAA0B,EAC1B,iBAAiB,EAEjB,cAAc,EACd,uBAAuB,EACvB,YAAY,GAEb;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;OACM,EAAE,UAAU,EAAE;OACd,EAAE,QAAQ,EAAE;OACZ,EAGL,YAAY,EAEZ,aAAa,EAIb,IAAI,GAGL;;OAEM,EAAE,sBAAsB,EAAE,aAAa,EAAE;OAyBzC,EAAE,KAAK,EAAE;OAMT,KAAK,QAAQ;AAEpB;;;;;GAKG;AACH,iBAAiB,CAAC,gBAAgB,EAAE,CAAC,CAAC"}
package/dist/metadata.js CHANGED
@@ -4,9 +4,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
4
4
  exports.METADATA = void 0;
5
5
  exports.METADATA = {
6
6
  "name": "@openai/agents-core",
7
- "version": "0.1.6",
7
+ "version": "0.1.8",
8
8
  "versions": {
9
- "@openai/agents-core": "0.1.6",
9
+ "@openai/agents-core": "0.1.8",
10
10
  "openai": "^5.20.2"
11
11
  }
12
12
  };
package/dist/metadata.mjs CHANGED
@@ -1,9 +1,9 @@
1
1
  // This file is automatically generated
2
2
  export const METADATA = {
3
3
  "name": "@openai/agents-core",
4
- "version": "0.1.6",
4
+ "version": "0.1.8",
5
5
  "versions": {
6
- "@openai/agents-core": "0.1.6",
6
+ "@openai/agents-core": "0.1.8",
7
7
  "openai": "^5.20.2"
8
8
  }
9
9
  };
package/dist/run.js CHANGED
@@ -10,7 +10,6 @@ exports.selectModel = selectModel;
10
10
  exports.run = run;
11
11
  const agent_1 = require("./agent.js");
12
12
  const guardrail_1 = require("./guardrail.js");
13
- const handoff_1 = require("./handoff.js");
14
13
  const providers_1 = require("./providers.js");
15
14
  const runContext_1 = require("./runContext.js");
16
15
  const result_1 = require("./result.js");
@@ -116,12 +115,7 @@ class Runner extends lifecycle_1.RunHooks {
116
115
  continue;
117
116
  }
118
117
  if (state._currentStep.type === 'next_step_run_again') {
119
- const handoffs = [];
120
- if (state._currentAgent.handoffs) {
121
- // While this array usually must not be undefined,
122
- // we've added this check to prevent unexpected runtime errors like https://github.com/openai/openai-agents-js/issues/138
123
- handoffs.push(...state._currentAgent.handoffs.map(handoff_1.getHandoff));
124
- }
118
+ const handoffs = await state._currentAgent.getEnabledHandoffs(state._context);
125
119
  if (!state._currentAgentSpan) {
126
120
  const handoffNames = handoffs.map((h) => h.agentName);
127
121
  state._currentAgentSpan = (0, tracing_1.createAgentSpan)({
@@ -320,7 +314,7 @@ class Runner extends lifecycle_1.RunHooks {
320
314
  try {
321
315
  while (true) {
322
316
  const currentAgent = result.state._currentAgent;
323
- const handoffs = currentAgent.handoffs.map(handoff_1.getHandoff);
317
+ const handoffs = await currentAgent.getEnabledHandoffs(result.state._context);
324
318
  const tools = await currentAgent.getAllTools(result.state._context);
325
319
  const serializedTools = tools.map((t) => (0, serialize_1.serializeTool)(t));
326
320
  const serializedHandoffs = handoffs.map((h) => (0, serialize_1.serializeHandoff)(h));
@@ -426,8 +420,16 @@ class Runner extends lifecycle_1.RunHooks {
426
420
  result.state._modelResponses.push(result.state._lastTurnResponse);
427
421
  const processedResponse = (0, runImplementation_1.processModelResponse)(result.state._lastTurnResponse, currentAgent, tools, handoffs);
428
422
  result.state._lastProcessedResponse = processedResponse;
423
+ // Record the items emitted directly from the model response so we do not
424
+ // stream them again after tools and other side effects finish.
425
+ const preToolItems = new Set(processedResponse.newItems);
426
+ if (preToolItems.size > 0) {
427
+ (0, runImplementation_1.streamStepItemsToRunResult)(result, processedResponse.newItems);
428
+ }
429
429
  const turnResult = await (0, runImplementation_1.executeToolsAndSideEffects)(currentAgent, result.state._originalInput, result.state._generatedItems, result.state._lastTurnResponse, result.state._lastProcessedResponse, this, result.state);
430
- (0, runImplementation_1.addStepToRunResult)(result, turnResult);
430
+ (0, runImplementation_1.addStepToRunResult)(result, turnResult, {
431
+ skipItems: preToolItems,
432
+ });
431
433
  result.state._toolUseTracker.addToolUse(currentAgent, processedResponse.toolsUsed);
432
434
  result.state._originalInput = turnResult.originalInput;
433
435
  result.state._generatedItems = turnResult.generatedItems;