UNPKG

@openai/agents-core

Version:

The OpenAI Agents SDK is a lightweight yet powerful framework for building multi-agent workflows.

158 lines • 6.29 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); 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; exports.attachCallToolResultMetadata = attachCallToolResultMetadata; const debug_1 = __importDefault(require("debug")); const zod_1 = require("zod"); const logger_1 = require("./logger.js"); exports.DEFAULT_STDIO_MCP_CLIENT_LOGGER_NAME = 'openai-agents:stdio-mcp-client'; exports.DEFAULT_STREAMABLE_HTTP_MCP_CLIENT_LOGGER_NAME = 'openai-agents:streamable-http-mcp-client'; exports.DEFAULT_SSE_MCP_CLIENT_LOGGER_NAME = 'openai-agents:sse-mcp-client'; class BaseMCPServerStdio { cacheToolsList; _cachedTools = undefined; toolFilter; toolMetaResolver; customDataExtractor; toolInputGuardrails; toolOutputGuardrails; useStructuredContent; errorFunction; logger; constructor(options) { this.logger = options.logger ?? (0, logger_1.getLogger)(exports.DEFAULT_STDIO_MCP_CLIENT_LOGGER_NAME); this.cacheToolsList = options.cacheToolsList ?? false; this.toolFilter = options.toolFilter; this.toolMetaResolver = options.toolMetaResolver; this.customDataExtractor = options.customDataExtractor; this.toolInputGuardrails = options.toolInputGuardrails; this.toolOutputGuardrails = options.toolOutputGuardrails; this.useStructuredContent = options.useStructuredContent; this.errorFunction = options.errorFunction; } /** * Logs a debug message when debug logging is enabled. * @param buildMessage A function that returns the message to log. */ debugLog(buildMessage) { if (!this.logger.dontLogToolData && debug_1.default.enabled(this.logger.namespace)) { // Only build the message when debug logging is enabled. this.logger.debug(buildMessage()); } } } exports.BaseMCPServerStdio = BaseMCPServerStdio; class BaseMCPServerStreamableHttp { cacheToolsList; _cachedTools = undefined; toolFilter; toolMetaResolver; customDataExtractor; toolInputGuardrails; toolOutputGuardrails; useStructuredContent; errorFunction; logger; constructor(options) { this.logger = options.logger ?? (0, logger_1.getLogger)(exports.DEFAULT_STREAMABLE_HTTP_MCP_CLIENT_LOGGER_NAME); this.cacheToolsList = options.cacheToolsList ?? false; this.toolFilter = options.toolFilter; this.toolMetaResolver = options.toolMetaResolver; this.customDataExtractor = options.customDataExtractor; this.toolInputGuardrails = options.toolInputGuardrails; this.toolOutputGuardrails = options.toolOutputGuardrails; this.useStructuredContent = options.useStructuredContent; this.errorFunction = options.errorFunction; } /** * Logs a debug message when debug logging is enabled. * @param buildMessage A function that returns the message to log. */ debugLog(buildMessage) { if (!this.logger.dontLogToolData && debug_1.default.enabled(this.logger.namespace)) { // Only build the message when debug logging is enabled. this.logger.debug(buildMessage()); } } } exports.BaseMCPServerStreamableHttp = BaseMCPServerStreamableHttp; class BaseMCPServerSSE { cacheToolsList; _cachedTools = undefined; toolFilter; toolMetaResolver; customDataExtractor; toolInputGuardrails; toolOutputGuardrails; useStructuredContent; errorFunction; logger; constructor(options) { this.logger = options.logger ?? (0, logger_1.getLogger)(exports.DEFAULT_SSE_MCP_CLIENT_LOGGER_NAME); this.cacheToolsList = options.cacheToolsList ?? false; this.toolFilter = options.toolFilter; this.toolMetaResolver = options.toolMetaResolver; this.customDataExtractor = options.customDataExtractor; this.toolInputGuardrails = options.toolInputGuardrails; this.toolOutputGuardrails = options.toolOutputGuardrails; this.useStructuredContent = options.useStructuredContent; this.errorFunction = options.errorFunction; } /** * Logs a debug message when debug logging is enabled. * @param buildMessage A function that returns the message to log. */ debugLog(buildMessage) { if (!this.logger.dontLogToolData && debug_1.default.enabled(this.logger.namespace)) { // Only build the message when debug logging is enabled. this.logger.debug(buildMessage()); } } } exports.BaseMCPServerSSE = BaseMCPServerSSE; /** * Minimum MCP tool data definition. * This type definition does not intend to cover all possible properties. * It supports the properties that are used in this SDK. */ exports.MCPTool = zod_1.z.object({ name: zod_1.z.string(), description: zod_1.z.string().optional(), annotations: zod_1.z .looseObject({ title: zod_1.z.string().optional(), readOnlyHint: zod_1.z.boolean().optional(), destructiveHint: zod_1.z.boolean().optional(), idempotentHint: zod_1.z.boolean().optional(), openWorldHint: zod_1.z.boolean().optional(), }) .optional(), inputSchema: zod_1.z.object({ type: zod_1.z.literal('object'), properties: zod_1.z.record(zod_1.z.string(), zod_1.z.any()), required: zod_1.z.array(zod_1.z.string()), additionalProperties: zod_1.z.boolean(), }), }); function attachCallToolResultMetadata(content, metadata) { const result = content; for (const [key, value] of Object.entries(metadata)) { if (typeof value === 'undefined') { continue; } Object.defineProperty(result, key, { value, enumerable: false, configurable: true, }); } return result; } //# sourceMappingURL=mcpShared.js.map