@openai/agents-core
Version:
The OpenAI Agents SDK is a lightweight yet powerful framework for building multi-agent workflows.
337 lines • 11.3 kB
JavaScript
import { UserError } from "../errors.mjs";
export class SandboxError extends UserError {
code;
details;
retryable;
constructor(message, code = 'runtime_error', details) {
super(message);
this.code = code;
this.details = details;
this.retryable = inferSandboxErrorRetryability(code, details);
}
}
export class SandboxConfigurationError extends SandboxError {
constructor(message, details, code = 'configuration_error') {
super(message, code, details);
}
}
export class SandboxRuntimeError extends SandboxError {
constructor(message, details, code = 'runtime_error') {
super(message, code, details);
}
}
export class SandboxArtifactError extends SandboxError {
constructor(message, details, code = 'artifact_error') {
super(message, code, details);
}
}
export class SandboxSnapshotError extends SandboxError {
constructor(message, details, code = 'snapshot_error') {
super(message, code, details);
}
}
export class SandboxArchiveError extends SandboxError {
constructor(message, details) {
super(message, 'archive_error', details);
}
}
export class SandboxMountError extends SandboxError {
constructor(message, details, code = 'mount_error') {
super(message, code, details);
}
}
export class SandboxLifecycleError extends SandboxError {
constructor(message, details) {
super(message, 'lifecycle_error', details);
}
}
export class SandboxPtyError extends SandboxError {
constructor(message, details, code = 'pty_error') {
super(message, code, details);
}
}
export class SandboxUnsupportedFeatureError extends SandboxError {
constructor(message, details) {
super(message, 'unsupported_feature', details);
}
}
export class SandboxPathResolutionError extends SandboxError {
constructor(message, details) {
super(message, 'path_resolution_error', details);
}
}
export class SandboxProviderError extends SandboxError {
constructor(message, details) {
super(message, 'provider_error', details);
}
}
export class SandboxInvalidManifestPathError extends SandboxError {
constructor(message, details) {
super(message, 'invalid_manifest_path', details);
}
}
export class SandboxInvalidCompressionSchemeError extends SandboxError {
constructor(message, details) {
super(message, 'invalid_compression_scheme', details);
}
}
export class SandboxExposedPortUnavailableError extends SandboxRuntimeError {
constructor(message, details) {
super(message, details, 'exposed_port_unavailable');
}
}
export class SandboxExecError extends SandboxRuntimeError {
constructor(message, code, details) {
super(message, details, code);
}
}
export class SandboxExecNonZeroError extends SandboxExecError {
constructor(message, details) {
super(message, 'exec_nonzero', details);
}
}
export class SandboxExecTimeoutError extends SandboxExecError {
constructor(message, details) {
super(message, 'exec_timeout', details);
}
}
export class SandboxExecTransportError extends SandboxExecError {
constructor(message, details) {
super(message, 'exec_transport_error', details);
}
}
export class SandboxPtySessionNotFoundError extends SandboxPtyError {
constructor(message, details) {
super(message, details, 'pty_session_not_found');
}
}
export class SandboxApplyPatchError extends SandboxError {
constructor(message, code, details) {
super(message, code, details);
}
}
export class SandboxApplyPatchPathError extends SandboxApplyPatchError {
constructor(message, details) {
super(message, 'apply_patch_invalid_path', details);
}
}
export class SandboxApplyPatchDiffError extends SandboxApplyPatchError {
constructor(message, details) {
super(message, 'apply_patch_invalid_diff', details);
}
}
export class SandboxApplyPatchFileNotFoundError extends SandboxApplyPatchError {
constructor(message, details) {
super(message, 'apply_patch_file_not_found', details);
}
}
export class SandboxApplyPatchDecodeError extends SandboxApplyPatchError {
constructor(message, details) {
super(message, 'apply_patch_decode_error', details);
}
}
export class SandboxWorkspaceError extends SandboxRuntimeError {
constructor(message, code, details) {
super(message, details, code);
}
}
export class SandboxWorkspaceReadNotFoundError extends SandboxWorkspaceError {
constructor(message, details) {
super(message, 'workspace_read_not_found', details);
}
}
export class SandboxWorkspaceArchiveReadError extends SandboxWorkspaceError {
constructor(message, details) {
super(message, 'workspace_archive_read_error', details);
}
}
export class SandboxWorkspaceArchiveWriteError extends SandboxWorkspaceError {
constructor(message, details) {
super(message, 'workspace_archive_write_error', details);
}
}
export class SandboxWorkspaceWriteTypeError extends SandboxWorkspaceError {
constructor(message, details) {
super(message, 'workspace_write_type_error', details);
}
}
export class SandboxWorkspaceStopError extends SandboxWorkspaceError {
constructor(message, details) {
super(message, 'workspace_stop_error', details);
}
}
export class SandboxWorkspaceStartError extends SandboxWorkspaceError {
constructor(message, details) {
super(message, 'workspace_start_error', details);
}
}
export class SandboxWorkspaceRootNotFoundError extends SandboxWorkspaceError {
constructor(message, details) {
super(message, 'workspace_root_not_found', details);
}
}
export class SandboxLocalArtifactError extends SandboxArtifactError {
constructor(message, code, details) {
super(message, details, code);
}
}
export class SandboxLocalFileReadError extends SandboxLocalArtifactError {
constructor(message, details) {
super(message, 'local_file_read_error', details);
}
}
export class SandboxLocalDirReadError extends SandboxLocalArtifactError {
constructor(message, details) {
super(message, 'local_dir_read_error', details);
}
}
export class SandboxLocalChecksumError extends SandboxLocalArtifactError {
constructor(message, details) {
super(message, 'local_checksum_error', details);
}
}
export class SandboxGitArtifactError extends SandboxArtifactError {
constructor(message, code, details) {
super(message, details, code);
}
}
export class SandboxGitMissingInImageError extends SandboxGitArtifactError {
constructor(message, details) {
super(message, 'git_missing_in_image', details);
}
}
export class SandboxGitCloneError extends SandboxGitArtifactError {
constructor(message, details) {
super(message, 'git_clone_error', details);
}
}
export class SandboxGitSubpathError extends SandboxGitArtifactError {
constructor(message, details) {
super(message, 'git_subpath_error', details);
}
}
export class SandboxGitCopyError extends SandboxGitArtifactError {
constructor(message, details) {
super(message, 'git_copy_error', details);
}
}
export class SandboxMountToolMissingError extends SandboxMountError {
constructor(message, details) {
super(message, details, 'mount_missing_tool');
}
}
export class SandboxMountCommandError extends SandboxMountError {
constructor(message, details) {
super(message, details, 'mount_failed');
}
}
export class SandboxMountConfigError extends SandboxMountError {
constructor(message, details) {
super(message, details, 'mount_config_invalid');
}
}
export class SandboxSkillsConfigError extends SandboxError {
constructor(message, details) {
super(message, 'skills_config_invalid', details);
}
}
export class SandboxConfigError extends SandboxConfigurationError {
constructor(message, details) {
super(message, details, 'sandbox_config_invalid');
}
}
export class SandboxSnapshotPersistError extends SandboxSnapshotError {
constructor(message, details) {
super(message, details, 'snapshot_persist_error');
}
}
export class SandboxSnapshotRestoreError extends SandboxSnapshotError {
constructor(message, details) {
super(message, details, 'snapshot_restore_error');
}
}
export class SandboxSnapshotNotRestorableError extends SandboxSnapshotError {
constructor(message, details) {
super(message, details, 'snapshot_not_restorable');
}
}
function inferSandboxErrorRetryability(code, details) {
const retryable = details?.retryable;
if (typeof retryable === 'boolean') {
return retryable;
}
const cause = details?.cause;
if (cause instanceof SandboxError) {
return cause.retryable;
}
const providerRetryability = inferProviderDetailsRetryability(details);
if (providerRetryability !== null) {
return providerRetryability;
}
switch (code) {
case 'configuration_error':
case 'unsupported_feature':
case 'path_resolution_error':
case 'invalid_manifest_path':
case 'invalid_compression_scheme':
case 'exposed_port_unavailable':
case 'exec_nonzero':
case 'exec_timeout':
case 'pty_session_not_found':
case 'apply_patch_invalid_path':
case 'apply_patch_invalid_diff':
case 'apply_patch_file_not_found':
case 'apply_patch_decode_error':
case 'workspace_read_not_found':
case 'workspace_write_type_error':
case 'workspace_root_not_found':
case 'git_missing_in_image':
case 'git_subpath_error':
case 'mount_missing_tool':
case 'mount_config_invalid':
case 'skills_config_invalid':
case 'sandbox_config_invalid':
case 'snapshot_not_restorable':
return false;
default:
return null;
}
}
function inferProviderDetailsRetryability(details) {
const status = readStatus(details);
if (status !== undefined) {
if ([408, 425, 429, 500, 502, 503, 504].includes(status)) {
return true;
}
if ([400, 401, 403, 404, 409, 422].includes(status)) {
return false;
}
}
const code = details?.errorCode ?? details?.providerErrorCode;
if (typeof code === 'string') {
const normalized = code.toLowerCase();
if (/(rate.?limit|timeout|connection|unavailable)/u.test(normalized)) {
return true;
}
if (/(authentication|authorization|permission|forbidden|not.?found|validation|bad.?request|conflict|unprocessable)/u.test(normalized)) {
return false;
}
}
return null;
}
function readStatus(details) {
if (!details) {
return undefined;
}
for (const key of ['status', 'httpStatus', 'responseStatus']) {
const value = details[key];
if (typeof value === 'number' && Number.isInteger(value)) {
return value;
}
if (typeof value === 'string' && /^\d+$/u.test(value)) {
return Number(value);
}
}
return undefined;
}
//# sourceMappingURL=errors.mjs.map