@robota-sdk/core
Version:
Core functionality for building AI agents with TypeScript - conversation management, function calling, and multi-provider support for OpenAI, Anthropic, and Google AI
1 lines • 137 kB
Source Map (JSON)
{"version":3,"sources":["../src/conversation-history.ts","../src/managers/ai-provider-manager.ts","../src/managers/tool-provider-manager.ts","../src/managers/system-message-manager.ts","../src/managers/function-call-manager.ts","../src/managers/analytics-manager.ts","../src/managers/request-limit-manager.ts","../src/utils.ts","../src/analyzers/token-analyzer.ts","../src/services/conversation-service.ts","../src/services/execution-service.ts","../src/managers/robota-config-manager.ts","../src/robota.ts","../src/providers/base-ai-provider.ts"],"names":["logger","encoding_for_model","get_encoding","hasToolCalls"],"mappings":"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","file":"index.cjs","sourcesContent":["import type { FunctionCall, FunctionCallResult } from '@robota-sdk/tools';\n\n/**\n * Universal message role type - Provider-independent neutral role\n * \n * @public\n */\nexport type UniversalMessageRole = 'user' | 'assistant' | 'system' | 'tool';\n\n/**\n * Base message interface with common properties\n * \n * @public\n */\nexport interface BaseMessage {\n /** Message creation timestamp */\n timestamp: Date;\n\n /** Additional metadata */\n metadata?: Record<string, any>;\n}\n\n/**\n * User message interface - for messages from users/humans\n * \n * @public\n */\nexport interface UserMessage extends BaseMessage {\n /** Message role - always 'user' */\n role: 'user';\n\n /** User message content */\n content: string;\n\n /** Optional user identifier */\n name?: string;\n}\n\n/**\n * Assistant message interface - for AI responses\n * \n * @public\n */\nexport interface AssistantMessage extends BaseMessage {\n /** Message role - always 'assistant' */\n role: 'assistant';\n\n /** Assistant response content (can be null when making tool calls) */\n content: string | null;\n\n /** Tool calls made by the assistant (OpenAI tool calling format) */\n toolCalls?: Array<{\n id: string;\n type: 'function';\n function: {\n name: string;\n arguments: string;\n };\n }>;\n}\n\n/**\n * System message interface - for system instructions and prompts\n * \n * @public\n */\nexport interface SystemMessage extends BaseMessage {\n /** Message role - always 'system' */\n role: 'system';\n\n /** System instruction content */\n content: string;\n\n /** Optional system message identifier */\n name?: string;\n}\n\n/**\n * Tool message interface - for tool execution results\n * \n * @public\n */\nexport interface ToolMessage extends BaseMessage {\n /** Message role - always 'tool' */\n role: 'tool';\n\n /** Tool execution result summary */\n content: string;\n\n /** Tool call ID for OpenAI tool calling format */\n toolCallId?: string;\n\n /** Name of the tool that was executed */\n name?: string;\n}\n\n/**\n * Universal message type covering all possible message variations\n * \n * This union type ensures type safety by requiring specific properties\n * based on the message role, preventing invalid combinations.\n * \n * @see {@link ../../apps/examples/04-sessions | Session and Conversation Examples}\n * \n * @public\n */\nexport type UniversalMessage = UserMessage | AssistantMessage | SystemMessage | ToolMessage;\n\n/**\n * Type guard functions for message type checking\n */\n\n/**\n * Check if a message is a user message\n * \n * @param message - Message to check\n * @returns True if the message is a user message\n */\nexport function isUserMessage(message: UniversalMessage): message is UserMessage {\n return message.role === 'user';\n}\n\n/**\n * Check if a message is an assistant message\n * \n * @param message - Message to check\n * @returns True if the message is an assistant message\n */\nexport function isAssistantMessage(message: UniversalMessage): message is AssistantMessage {\n return message.role === 'assistant';\n}\n\n/**\n * Check if a message is a system message\n * \n * @param message - Message to check\n * @returns True if the message is a system message\n */\nexport function isSystemMessage(message: UniversalMessage): message is SystemMessage {\n return message.role === 'system';\n}\n\n/**\n * Check if a message is a tool message\n * \n * @param message - Message to check\n * @returns True if the message is a tool message\n */\nexport function isToolMessage(message: UniversalMessage): message is ToolMessage {\n return message.role === 'tool';\n}\n\n/**\n * Message factory functions for creating type-safe messages\n */\n\n/**\n * Create a user message\n * \n * @param content - Message content\n * @param options - Optional message properties\n * @returns Type-safe user message\n */\nexport function createUserMessage(\n content: string,\n options?: { name?: string; metadata?: Record<string, any> }\n): UserMessage {\n return {\n role: 'user',\n content,\n name: options?.name,\n timestamp: new Date(),\n metadata: options?.metadata\n };\n}\n\n/**\n * Create an assistant message\n * \n * @param content - Message content (can be null for tool-only messages)\n * @param options - Optional message properties\n * @returns Type-safe assistant message\n */\nexport function createAssistantMessage(\n content: string | null,\n options?: {\n toolCalls?: Array<{\n id: string;\n type: 'function';\n function: {\n name: string;\n arguments: string;\n };\n }>;\n metadata?: Record<string, any>;\n }\n): AssistantMessage {\n return {\n role: 'assistant',\n content,\n toolCalls: options?.toolCalls,\n timestamp: new Date(),\n metadata: options?.metadata\n };\n}\n\n/**\n * Create a system message\n * \n * @param content - Message content\n * @param options - Optional message properties\n * @returns Type-safe system message\n */\nexport function createSystemMessage(\n content: string,\n options?: { name?: string; metadata?: Record<string, any> }\n): SystemMessage {\n return {\n role: 'system',\n content,\n name: options?.name,\n timestamp: new Date(),\n metadata: options?.metadata\n };\n}\n\n/**\n * Create a tool message\n * \n * @param content - Message content\n * @param options - Optional message properties\n * @returns Type-safe tool message\n */\nexport function createToolMessage(\n content: string,\n options?: {\n toolCallId?: string;\n name?: string;\n metadata?: Record<string, any>;\n }\n): ToolMessage {\n return {\n role: 'tool',\n content,\n toolCallId: options?.toolCallId,\n name: options?.name,\n timestamp: new Date(),\n metadata: options?.metadata\n };\n}\n\n/**\n * Interface for managing conversation history\n * \n * This interface provides methods for adding, retrieving, and managing\n * messages in a conversation thread. Implementations may provide\n * different storage mechanisms, message limits, or special handling\n * for specific message types.\n * \n * @public\n */\nexport interface ConversationHistory {\n /**\n * Add a message to conversation history\n * \n * @param message - Universal message to add\n */\n addMessage(message: UniversalMessage): void;\n\n /**\n * Add user message (convenience method)\n * \n * @param content - User message content\n * @param metadata - Optional metadata\n */\n addUserMessage(content: string, metadata?: Record<string, any>): void;\n\n /**\n * Add assistant message (convenience method)\n * \n * @param content - Assistant response content\n * @param toolCalls - Optional tool calls made by assistant\n * @param metadata - Optional metadata\n */\n addAssistantMessage(\n content: string,\n toolCalls?: Array<{\n id: string;\n type: 'function';\n function: {\n name: string;\n arguments: string;\n };\n }>,\n metadata?: Record<string, any>\n ): void;\n\n /**\n * Add system message (convenience method)\n * \n * @param content - System instruction content\n * @param metadata - Optional metadata\n */\n addSystemMessage(content: string, metadata?: Record<string, any>): void;\n\n /**\n * Add tool execution result message with tool call ID (for tool calling format)\n * \n * @param content - Tool result content\n * @param toolCallId - Tool call ID from the assistant's tool call\n * @param toolName - Name of the tool that was executed\n * @param metadata - Optional metadata\n */\n addToolMessageWithId(content: string, toolCallId: string, toolName: string, metadata?: Record<string, any>): void;\n\n /**\n * Get all messages in chronological order\n * \n * @returns Array of all messages\n */\n getMessages(): UniversalMessage[];\n\n /**\n * Get messages filtered by specific role\n * \n * @param role - Message role to filter by\n * @returns Array of messages with the specified role\n */\n getMessagesByRole(role: UniversalMessageRole): UniversalMessage[];\n\n /**\n * Get the most recent n messages\n * \n * @param count - Number of recent messages to return\n * @returns Array of recent messages\n */\n getRecentMessages(count: number): UniversalMessage[];\n\n /**\n * Clear all conversation history\n */\n clear(): void;\n\n /**\n * Get total message count\n * \n * @returns Number of messages in history\n */\n getMessageCount(): number;\n}\n\n/**\n * Abstract base class for conversation history implementations\n * \n * Provides common functionality and message factory methods\n * that can be shared across different conversation history implementations.\n * \n * @internal\n */\nexport abstract class BaseConversationHistory implements ConversationHistory {\n /** Maximum number of messages to store (0 = unlimited) */\n protected readonly maxMessages: number;\n\n constructor(options?: { maxMessages?: number }) {\n this.maxMessages = options?.maxMessages || 0;\n }\n\n // Abstract methods that must be implemented by subclasses\n abstract addMessage(message: UniversalMessage): void;\n abstract getMessages(): UniversalMessage[];\n abstract clear(): void;\n abstract getMessageCount(): number;\n\n // Common convenience methods with shared implementation\n addUserMessage(content: string, metadata?: Record<string, any>): void {\n const message = createUserMessage(con