@openai/agents-core
Version:
The OpenAI Agents SDK is a lightweight yet powerful framework for building multi-agent workflows.
69 lines • 3 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.SandboxAgent = void 0;
const agent_1 = require("../agent.js");
const brand_1 = require("./brand.js");
const capabilities_1 = require("./capabilities/index.js");
const manifest_1 = require("./manifest.js");
const users_1 = require("./users.js");
class SandboxAgent extends agent_1.Agent {
[brand_1.SANDBOX_AGENT_BRAND] = true;
defaultManifest;
baseInstructions;
capabilities;
runAs;
runtimeManifest;
constructor(config) {
super(config);
if (config.baseInstructions !== undefined &&
typeof config.baseInstructions !== 'string' &&
typeof config.baseInstructions !== 'function') {
throw new TypeError('SandboxAgent baseInstructions must be a string or function.');
}
this.defaultManifest = config.defaultManifest
? (0, manifest_1.cloneManifest)(config.defaultManifest)
: undefined;
this.baseInstructions = config.baseInstructions;
this.capabilities = config.capabilities ?? capabilities_1.Capabilities.default();
this.runAs = normalizeRunAs(config.runAs);
this.runtimeManifest = this.defaultManifest ?? new manifest_1.Manifest();
}
clone(config) {
return new SandboxAgent({
name: config.name ?? this.name,
instructions: config.instructions ?? this.instructions,
prompt: config.prompt ?? this.prompt,
handoffDescription: config.handoffDescription ?? this.handoffDescription,
handoffs: config.handoffs ?? this.handoffs,
model: config.model ?? this.model,
modelSettings: config.modelSettings ?? this.modelSettings,
tools: config.tools ?? this.tools,
mcpServers: config.mcpServers ?? this.mcpServers,
mcpConfig: config.mcpConfig ?? this.mcpConfig,
inputGuardrails: config.inputGuardrails ?? this.inputGuardrails,
outputGuardrails: config.outputGuardrails ?? this.outputGuardrails,
outputType: config.outputType ?? this.outputType,
toolUseBehavior: config.toolUseBehavior ?? this.toolUseBehavior,
resetToolChoice: config.resetToolChoice ?? this.resetToolChoice,
defaultManifest: config.defaultManifest ?? this.defaultManifest,
baseInstructions: config.baseInstructions ?? this.baseInstructions,
capabilities: config.capabilities ?? this.capabilities,
runAs: config.runAs ?? this.runAs,
});
}
}
exports.SandboxAgent = SandboxAgent;
function normalizeRunAs(runAs) {
if (runAs === undefined) {
return undefined;
}
if (typeof runAs === 'string') {
const trimmed = runAs.trim();
if (!trimmed) {
throw new TypeError('SandboxAgent runAs must be non-empty.');
}
return trimmed;
}
return (0, users_1.normalizeUser)(runAs);
}
//# sourceMappingURL=agent.js.map