UNPKG

@openai/agents-core

Version:

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

65 lines • 2.82 kB
import { Agent } from "../agent.mjs"; import { SANDBOX_AGENT_BRAND } from "./brand.mjs"; import { Capabilities } from "./capabilities/index.mjs"; import { cloneManifest, Manifest } from "./manifest.mjs"; import { normalizeUser } from "./users.mjs"; export class SandboxAgent extends Agent { [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 ? cloneManifest(config.defaultManifest) : undefined; this.baseInstructions = config.baseInstructions; this.capabilities = config.capabilities ?? Capabilities.default(); this.runAs = normalizeRunAs(config.runAs); this.runtimeManifest = this.defaultManifest ?? new 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, }); } } 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 normalizeUser(runAs); } //# sourceMappingURL=agent.mjs.map