@openai/agents-core
Version:
The OpenAI Agents SDK is a lightweight yet powerful framework for building multi-agent workflows.
158 lines • 6.29 kB
JavaScript
"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