openai-agents
Version:
A TypeScript library extending the OpenAI Node.js SDK for building highly customizable agents and simplifying 'function calling'. Easily create and manage tools to extend LLM capabilities.
107 lines (106 loc) • 2.99 kB
JavaScript
// Base Error
export class BaseError extends Error {
cause;
constructor(message, cause) {
super(message);
this.cause = cause;
this.name = this.constructor.name;
Error.captureStackTrace(this, this.constructor);
}
}
// Validation Errors
export class ValidationError extends BaseError {
constructor(message, cause) {
super(message, cause);
}
}
export class MessageValidationError extends ValidationError {
constructor(message, cause) {
super(message, cause);
}
}
// File System Errors
export class FileSystemError extends BaseError {
path;
constructor(message, path, cause) {
super(`${message}: ${path}`, cause);
this.path = path;
}
}
export class DirectoryAccessError extends FileSystemError {
constructor(dirPath, cause) {
super('Unable to access directory', dirPath, cause);
}
}
export class FileReadError extends FileSystemError {
constructor(filePath, cause) {
super('Error reading file', filePath, cause);
}
}
export class FileImportError extends FileSystemError {
constructor(filePath, cause) {
super('Error importing file', filePath, cause);
}
}
// Tool Errors
export class ToolError extends BaseError {
toolName;
constructor(message, toolName, cause) {
super(`${message}: ${toolName}`, cause);
this.toolName = toolName;
}
}
export class InvalidToolError extends ToolError {
constructor(toolName, details, cause) {
super(`Invalid tool found: ${details}`, toolName, cause);
}
}
export class ToolNotFoundError extends ToolError {
constructor(toolName, cause) {
super('Tool not found', toolName, cause);
}
}
export class FunctionCallError extends ToolError {
constructor(functionName, details, cause) {
super(`Error calling function: ${details}`, functionName, cause);
}
}
// API Errors
export class APIError extends BaseError {
payload;
constructor(message, payload, cause) {
super(`${message}. Payload: ${JSON.stringify(payload)}`, cause);
this.payload = payload;
}
}
export class ToolCompletionError extends APIError {
constructor(payload, cause) {
super('Tool completion failed', payload, cause);
}
}
export class ChatCompletionError extends APIError {
constructor(payload, cause) {
super('Chat completion failed', payload, cause);
}
}
// Storage Errors
export class StorageError extends BaseError {
constructor(message, cause) {
super(message, cause);
}
}
export class RedisError extends StorageError {
constructor(message, cause) {
super(`Redis error: ${message}`, cause);
}
}
export class RedisConnectionError extends RedisError {
constructor(message, cause) {
super(message, cause);
}
}
export class RedisKeyValidationError extends RedisError {
constructor(message, cause) {
super(`Key validation failed: ${message}`, cause);
}
}