@octavus/core 2.5.0 → 2.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +30 -12
- package/dist/index.js +8 -7
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -23,7 +23,7 @@ declare class ForbiddenError extends AppError {
|
|
|
23
23
|
* Error types for Octavus streaming errors.
|
|
24
24
|
* These types categorize errors to enable appropriate UI handling.
|
|
25
25
|
*/
|
|
26
|
-
type ErrorType = 'authentication_error' | 'permission_error' | 'validation_error' | 'not_found_error' | 'rate_limit_error' | 'quota_exceeded_error' | 'provider_error' | 'provider_overloaded' | 'provider_timeout' | 'execution_error' | 'tool_error' | 'protocol_error' | 'internal_error' | 'unknown_error';
|
|
26
|
+
type ErrorType = 'authentication_error' | 'permission_error' | 'validation_error' | 'not_found_error' | 'rate_limit_error' | 'quota_exceeded_error' | 'provider_error' | 'provider_overloaded' | 'provider_timeout' | 'unsupported_error' | 'execution_error' | 'tool_error' | 'protocol_error' | 'internal_error' | 'unknown_error';
|
|
27
27
|
/**
|
|
28
28
|
* Error source - where the error originated.
|
|
29
29
|
*/
|
|
@@ -166,7 +166,7 @@ type ToolHandler = (args: Record<string, unknown>) => Promise<unknown>;
|
|
|
166
166
|
type ToolHandlers = Record<string, ToolHandler>;
|
|
167
167
|
/**
|
|
168
168
|
* Reference to an uploaded file.
|
|
169
|
-
* Used in trigger input
|
|
169
|
+
* Used in trigger input, user messages, and tool results for file attachments.
|
|
170
170
|
* Compatible with UIFilePart structure for rendering.
|
|
171
171
|
*/
|
|
172
172
|
interface FileReference {
|
|
@@ -470,6 +470,8 @@ interface ToolResult {
|
|
|
470
470
|
toolName?: string;
|
|
471
471
|
result?: unknown;
|
|
472
472
|
error?: string;
|
|
473
|
+
/** Files produced by the tool (e.g., screenshots, generated images). */
|
|
474
|
+
files?: FileReference[];
|
|
473
475
|
outputVariable?: string;
|
|
474
476
|
blockIndex?: number;
|
|
475
477
|
/** Thread name where this tool call originated (for workers with threads) */
|
|
@@ -652,6 +654,8 @@ interface ToolResultEntry {
|
|
|
652
654
|
toolCallId: string;
|
|
653
655
|
toolName?: string;
|
|
654
656
|
result: unknown;
|
|
657
|
+
/** Files produced by the tool, included as visual content for the LLM. */
|
|
658
|
+
files?: FileReference[];
|
|
655
659
|
}
|
|
656
660
|
/**
|
|
657
661
|
* Internal chat message - stored in session state, used by LLM
|
|
@@ -964,26 +968,33 @@ declare function isOtherThread(part: {
|
|
|
964
968
|
* - Octavus Events (----): Octavus-specific protocol events
|
|
965
969
|
*/
|
|
966
970
|
|
|
971
|
+
/**
|
|
972
|
+
* Schema for file references used in trigger input, user messages, and tool results.
|
|
973
|
+
*/
|
|
974
|
+
declare const fileReferenceSchema: z.ZodObject<{
|
|
975
|
+
id: z.ZodString;
|
|
976
|
+
mediaType: z.ZodString;
|
|
977
|
+
url: z.ZodString;
|
|
978
|
+
filename: z.ZodOptional<z.ZodString>;
|
|
979
|
+
size: z.ZodOptional<z.ZodNumber>;
|
|
980
|
+
}, z.core.$strip>;
|
|
967
981
|
declare const toolResultSchema: z.ZodObject<{
|
|
968
982
|
toolCallId: z.ZodString;
|
|
969
983
|
toolName: z.ZodOptional<z.ZodString>;
|
|
970
984
|
result: z.ZodOptional<z.ZodUnknown>;
|
|
971
985
|
error: z.ZodOptional<z.ZodString>;
|
|
986
|
+
files: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
987
|
+
id: z.ZodString;
|
|
988
|
+
mediaType: z.ZodString;
|
|
989
|
+
url: z.ZodString;
|
|
990
|
+
filename: z.ZodOptional<z.ZodString>;
|
|
991
|
+
size: z.ZodOptional<z.ZodNumber>;
|
|
992
|
+
}, z.core.$strip>>>;
|
|
972
993
|
outputVariable: z.ZodOptional<z.ZodString>;
|
|
973
994
|
blockIndex: z.ZodOptional<z.ZodNumber>;
|
|
974
995
|
thread: z.ZodOptional<z.ZodString>;
|
|
975
996
|
workerId: z.ZodOptional<z.ZodString>;
|
|
976
997
|
}, z.core.$strip>;
|
|
977
|
-
/**
|
|
978
|
-
* Schema for file references used in trigger input and user messages.
|
|
979
|
-
*/
|
|
980
|
-
declare const fileReferenceSchema: z.ZodObject<{
|
|
981
|
-
id: z.ZodString;
|
|
982
|
-
mediaType: z.ZodString;
|
|
983
|
-
url: z.ZodString;
|
|
984
|
-
filename: z.ZodOptional<z.ZodString>;
|
|
985
|
-
size: z.ZodOptional<z.ZodNumber>;
|
|
986
|
-
}, z.core.$strip>;
|
|
987
998
|
declare const chatMessageSchema: z.ZodObject<{
|
|
988
999
|
id: z.ZodString;
|
|
989
1000
|
role: z.ZodEnum<{
|
|
@@ -1765,6 +1776,13 @@ declare function safeParseStreamEvent(data: unknown): z.ZodSafeParseResult<{
|
|
|
1765
1776
|
toolName?: string | undefined;
|
|
1766
1777
|
result?: unknown;
|
|
1767
1778
|
error?: string | undefined;
|
|
1779
|
+
files?: {
|
|
1780
|
+
id: string;
|
|
1781
|
+
mediaType: string;
|
|
1782
|
+
url: string;
|
|
1783
|
+
filename?: string | undefined;
|
|
1784
|
+
size?: number | undefined;
|
|
1785
|
+
}[] | undefined;
|
|
1768
1786
|
outputVariable?: string | undefined;
|
|
1769
1787
|
blockIndex?: number | undefined;
|
|
1770
1788
|
thread?: string | undefined;
|
package/dist/index.js
CHANGED
|
@@ -390,6 +390,13 @@ var resourceUpdateEventSchema = z.object({
|
|
|
390
390
|
name: z.string(),
|
|
391
391
|
value: z.unknown()
|
|
392
392
|
});
|
|
393
|
+
var fileReferenceSchema = z.object({
|
|
394
|
+
id: z.string(),
|
|
395
|
+
mediaType: z.string(),
|
|
396
|
+
url: z.string(),
|
|
397
|
+
filename: z.string().optional(),
|
|
398
|
+
size: z.number().optional()
|
|
399
|
+
});
|
|
393
400
|
var pendingToolCallSchema = z.object({
|
|
394
401
|
toolCallId: z.string(),
|
|
395
402
|
toolName: z.string(),
|
|
@@ -405,6 +412,7 @@ var toolResultSchema = z.object({
|
|
|
405
412
|
toolName: z.string().optional(),
|
|
406
413
|
result: z.unknown().optional(),
|
|
407
414
|
error: z.string().optional(),
|
|
415
|
+
files: z.array(fileReferenceSchema).optional(),
|
|
408
416
|
outputVariable: z.string().optional(),
|
|
409
417
|
blockIndex: z.number().optional(),
|
|
410
418
|
thread: z.string().optional(),
|
|
@@ -421,13 +429,6 @@ var clientToolRequestEventSchema = z.object({
|
|
|
421
429
|
toolCalls: z.array(pendingToolCallSchema),
|
|
422
430
|
serverToolResults: z.array(toolResultSchema).optional()
|
|
423
431
|
});
|
|
424
|
-
var fileReferenceSchema = z.object({
|
|
425
|
-
id: z.string(),
|
|
426
|
-
mediaType: z.string(),
|
|
427
|
-
url: z.string(),
|
|
428
|
-
filename: z.string().optional(),
|
|
429
|
-
size: z.number().optional()
|
|
430
|
-
});
|
|
431
432
|
var fileAvailableEventSchema = z.object({
|
|
432
433
|
type: z.literal("file-available"),
|
|
433
434
|
id: z.string(),
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/errors.ts","../src/errors/octavus-error.ts","../src/errors/helpers.ts","../src/utils.ts","../src/thread.ts","../src/stream/schemas.ts","../src/internal-tools.ts","../src/skills.ts"],"sourcesContent":["export class AppError extends Error {\n constructor(\n message: string,\n public code: string,\n public statusCode = 500,\n ) {\n super(message);\n this.name = 'AppError';\n }\n}\n\nexport class NotFoundError extends AppError {\n constructor(resource: string, id: string) {\n super(`${resource} not found: ${id}`, 'NOT_FOUND', 404);\n this.name = 'NotFoundError';\n }\n}\n\nexport class ValidationError extends AppError {\n constructor(\n message: string,\n public issues?: unknown[],\n ) {\n super(message, 'VALIDATION_ERROR', 400);\n this.name = 'ValidationError';\n }\n}\n\nexport class ConflictError extends AppError {\n constructor(resource: string, identifier: string) {\n super(`${resource} already exists: ${identifier}`, 'CONFLICT', 409);\n this.name = 'ConflictError';\n }\n}\n\nexport class ForbiddenError extends AppError {\n constructor(message = 'Access denied') {\n super(message, 'FORBIDDEN', 403);\n this.name = 'ForbiddenError';\n }\n}\n","import type {\n ErrorType,\n ErrorSource,\n ProviderErrorInfo,\n ToolErrorInfo,\n OctavusErrorOptions,\n} from './types';\n\n/**\n * Marker key for OctavusError identification.\n * Enables reliable instanceof checks across package versions.\n */\nconst MARKER_KEY = 'octavus.error';\n\n/**\n * Base error class for Octavus streaming errors.\n *\n * Provides structured error information including:\n * - Error type classification for UI handling\n * - Source information (platform, provider, tool)\n * - Retryability flag and retry delay\n * - Provider/tool details when applicable\n *\n * @example\n * ```typescript\n * const error = new OctavusError({\n * errorType: 'rate_limit_error',\n * message: 'Rate limit exceeded. Please try again later.',\n * source: 'provider',\n * retryable: true,\n * retryAfter: 60,\n * provider: {\n * name: 'anthropic',\n * statusCode: 429,\n * requestId: 'req_xxx',\n * },\n * });\n * ```\n */\nexport class OctavusError extends Error {\n /** @internal Marker for cross-version instanceof checks */\n readonly __octavusErrorMarker = MARKER_KEY;\n\n /** Error type classification */\n readonly errorType: ErrorType;\n\n /** Where the error originated */\n readonly source: ErrorSource;\n\n /** Whether automatic retry is possible */\n readonly retryable: boolean;\n\n /** Suggested retry delay in seconds (from provider headers) */\n readonly retryAfter?: number;\n\n /** Machine-readable error code */\n readonly code?: string;\n\n /** Provider details (when source === 'provider') */\n readonly provider?: ProviderErrorInfo;\n\n /** Tool details (when source === 'tool') */\n readonly tool?: ToolErrorInfo;\n\n constructor(options: OctavusErrorOptions) {\n super(options.message);\n this.name = 'OctavusError';\n this.errorType = options.errorType;\n this.source = options.source;\n this.retryable = options.retryable ?? false;\n this.retryAfter = options.retryAfter;\n this.code = options.code;\n this.provider = options.provider;\n this.tool = options.tool;\n\n // Preserve original error stack if available\n if (options.cause instanceof Error && options.cause.stack) {\n this.stack = `${this.stack}\\nCaused by: ${options.cause.stack}`;\n }\n }\n\n /**\n * Check if an unknown value is an OctavusError.\n * Works reliably across package versions using marker property.\n */\n static isInstance(error: unknown): error is OctavusError {\n return (\n typeof error === 'object' &&\n error !== null &&\n '__octavusErrorMarker' in error &&\n (error as { __octavusErrorMarker: string }).__octavusErrorMarker === MARKER_KEY\n );\n }\n\n /**\n * Convert error to plain object for serialization.\n * Used for streaming error events.\n */\n toJSON(): Record<string, unknown> {\n return {\n name: this.name,\n message: this.message,\n errorType: this.errorType,\n source: this.source,\n retryable: this.retryable,\n retryAfter: this.retryAfter,\n code: this.code,\n provider: this.provider,\n tool: this.tool,\n };\n }\n}\n\n// =============================================================================\n// Type Guards\n// =============================================================================\n\n/**\n * Check if an error is a rate limit error.\n */\nexport function isRateLimitError(error: unknown): error is OctavusError {\n return (\n OctavusError.isInstance(error) &&\n (error.errorType === 'rate_limit_error' || error.errorType === 'quota_exceeded_error')\n );\n}\n\n/**\n * Check if an error is an authentication error.\n */\nexport function isAuthenticationError(error: unknown): error is OctavusError {\n return (\n OctavusError.isInstance(error) &&\n (error.errorType === 'authentication_error' || error.errorType === 'permission_error')\n );\n}\n\n/**\n * Check if an error is a provider error.\n */\nexport function isProviderError(error: unknown): error is OctavusError {\n return OctavusError.isInstance(error) && error.source === 'provider';\n}\n\n/**\n * Check if an error is a tool error.\n */\nexport function isToolError(error: unknown): error is OctavusError {\n return (\n OctavusError.isInstance(error) && (error.source === 'tool' || error.errorType === 'tool_error')\n );\n}\n\n/**\n * Check if an error is retryable.\n */\nexport function isRetryableError(error: unknown): boolean {\n if (OctavusError.isInstance(error)) {\n return error.retryable;\n }\n return false;\n}\n\n/**\n * Check if an error is a validation error (non-retryable request issue).\n */\nexport function isValidationError(error: unknown): error is OctavusError {\n return OctavusError.isInstance(error) && error.errorType === 'validation_error';\n}\n","import type { ErrorEvent } from '@/stream/types';\nimport type { ErrorType, ErrorSource, ProviderErrorInfo, ToolErrorInfo } from './types';\nimport type { OctavusError } from './octavus-error';\n\n/**\n * Options for creating an error event.\n */\nexport interface CreateErrorEventOptions {\n errorType: ErrorType;\n message: string;\n source: ErrorSource;\n retryable?: boolean;\n retryAfter?: number;\n code?: string;\n provider?: ProviderErrorInfo;\n tool?: ToolErrorInfo;\n}\n\n/**\n * Create an ErrorEvent from options.\n * Use this for constructing error events in streaming responses.\n */\nexport function createErrorEvent(options: CreateErrorEventOptions): ErrorEvent {\n return {\n type: 'error',\n errorType: options.errorType,\n message: options.message,\n source: options.source,\n retryable: options.retryable ?? false,\n retryAfter: options.retryAfter,\n code: options.code,\n provider: options.provider,\n tool: options.tool,\n };\n}\n\n/**\n * Create an ErrorEvent from an OctavusError.\n */\nexport function errorToStreamEvent(error: OctavusError): ErrorEvent {\n return createErrorEvent({\n errorType: error.errorType,\n message: error.message,\n source: error.source,\n retryable: error.retryable,\n retryAfter: error.retryAfter,\n code: error.code,\n provider: error.provider,\n tool: error.tool,\n });\n}\n\n/**\n * Create an internal error event.\n * Convenience function for platform-level errors.\n */\nexport function createInternalErrorEvent(message: string): ErrorEvent {\n return createErrorEvent({\n errorType: 'internal_error',\n message,\n source: 'platform',\n retryable: false,\n });\n}\n\n/**\n * Map HTTP status code to error type.\n */\nfunction mapStatusCodeToErrorType(statusCode: number): ErrorType {\n switch (statusCode) {\n case 400:\n return 'validation_error';\n case 401:\n return 'authentication_error';\n case 403:\n return 'permission_error';\n case 404:\n return 'not_found_error';\n case 429:\n return 'rate_limit_error';\n case 503:\n return 'provider_overloaded';\n case 504:\n return 'provider_timeout';\n default:\n return statusCode >= 500 ? 'internal_error' : 'unknown_error';\n }\n}\n\n/**\n * Create an error event from an API response.\n * Maps HTTP status codes to appropriate error types.\n *\n * Use this when handling errors from API responses (before streaming starts).\n *\n * @param statusCode - HTTP status code from the response\n * @param message - Error message to display\n */\nexport function createApiErrorEvent(statusCode: number, message: string): ErrorEvent {\n const errorType = mapStatusCodeToErrorType(statusCode);\n // Rate limit and server errors are typically retryable\n const retryable = statusCode === 429 || statusCode >= 500;\n\n return createErrorEvent({\n errorType,\n message,\n source: 'platform',\n retryable,\n });\n}\n","/**\n * Generate a unique ID for messages, tool calls, etc.\n * Format: timestamp-random (e.g., \"1702345678901-abc123def\")\n */\nexport function generateId(): string {\n return `${Date.now()}-${Math.random().toString(36).substring(2, 9)}`;\n}\n\n/**\n * Check if an error is an abort error.\n *\n * This handles the various ways abort errors can manifest across different\n * environments (browsers, Node.js, Next.js, etc.).\n *\n * @param error - The error to check\n * @returns True if the error is an abort error\n */\nexport function isAbortError(error: unknown): error is Error {\n return (\n (error instanceof Error || error instanceof DOMException) &&\n (error.name === 'AbortError' ||\n error.name === 'ResponseAborted' || // Next.js\n error.name === 'TimeoutError')\n );\n}\n","/**\n * Default thread name when none is specified.\n */\nexport const MAIN_THREAD = 'main' as const;\n\n/**\n * Resolve a thread name, defaulting to main thread.\n */\nexport function resolveThread(thread: string | undefined): string {\n return thread ?? MAIN_THREAD;\n}\n\n/**\n * Check if a thread is the main thread.\n */\nexport function isMainThread(thread: string | undefined): boolean {\n return thread === undefined || thread === MAIN_THREAD;\n}\n\n/**\n * Normalize thread for storage in message parts.\n * Main thread is stored as undefined to save space.\n */\nexport function threadForPart(thread: string | undefined): string | undefined {\n return isMainThread(thread) ? undefined : thread;\n}\n\n/**\n * Check if a message part belongs to a non-main thread.\n * Non-main thread content (e.g., \"summary\") is typically displayed differently.\n */\nexport function isOtherThread(part: { thread?: string }): boolean {\n return !isMainThread(part.thread);\n}\n","/**\n * Zod schemas for stream events.\n *\n * Schemas are organized into two categories:\n * - Standard Events (====): Common streaming patterns for AI agents\n * - Octavus Events (----): Octavus-specific protocol events\n */\n\nimport { z } from 'zod';\n\nexport const displayModeSchema = z.enum(['hidden', 'name', 'description', 'stream']);\nexport const messageRoleSchema = z.enum(['user', 'assistant', 'system']);\nexport const toolCallStatusSchema = z.enum(['pending', 'streaming', 'available', 'error']);\nexport const finishReasonSchema = z.enum([\n 'stop',\n 'tool-calls',\n 'client-tool-calls',\n 'length',\n 'content-filter',\n 'error',\n 'other',\n]);\n\nexport const toolCallInfoSchema = z.object({\n id: z.string(),\n name: z.string(),\n description: z.string().optional(),\n arguments: z.record(z.string(), z.unknown()),\n status: toolCallStatusSchema,\n result: z.unknown().optional(),\n error: z.string().optional(),\n thoughtSignature: z.string().optional(),\n display: displayModeSchema.optional(),\n});\n\n// =============================================================================\n// STANDARD EVENTS\n// =============================================================================\n\n// ============================== Lifecycle ====================================\n\nexport const startEventSchema = z.object({\n type: z.literal('start'),\n messageId: z.string().optional(),\n executionId: z.string().optional(),\n});\n\nexport const finishEventSchema = z.object({\n type: z.literal('finish'),\n finishReason: finishReasonSchema,\n executionId: z.string().optional(),\n});\n\nconst errorTypeSchema = z.enum([\n 'authentication_error',\n 'permission_error',\n 'validation_error',\n 'not_found_error',\n 'rate_limit_error',\n 'quota_exceeded_error',\n 'provider_error',\n 'provider_overloaded',\n 'provider_timeout',\n 'execution_error',\n 'tool_error',\n 'protocol_error',\n 'internal_error',\n 'unknown_error',\n]);\n\nconst errorSourceSchema = z.enum(['platform', 'provider', 'tool', 'client']);\n\nconst providerErrorInfoSchema = z.object({\n name: z.string(),\n model: z.string().optional(),\n statusCode: z.number().optional(),\n errorType: z.string().optional(),\n requestId: z.string().optional(),\n});\n\nconst toolErrorInfoSchema = z.object({\n name: z.string(),\n callId: z.string().optional(),\n});\n\nexport const errorEventSchema = z.object({\n type: z.literal('error'),\n errorType: errorTypeSchema,\n message: z.string(),\n retryable: z.boolean(),\n source: errorSourceSchema,\n retryAfter: z.number().optional(),\n code: z.string().optional(),\n provider: providerErrorInfoSchema.optional(),\n tool: toolErrorInfoSchema.optional(),\n});\n\n// ================================= Text ======================================\n\nexport const textStartEventSchema = z.object({\n type: z.literal('text-start'),\n id: z.string(),\n responseType: z.string().optional(),\n workerId: z.string().optional(),\n});\n\nexport const textDeltaEventSchema = z.object({\n type: z.literal('text-delta'),\n id: z.string(),\n delta: z.string(),\n workerId: z.string().optional(),\n});\n\nexport const textEndEventSchema = z.object({\n type: z.literal('text-end'),\n id: z.string(),\n workerId: z.string().optional(),\n});\n\n// =============================== Reasoning ===================================\n\nexport const reasoningStartEventSchema = z.object({\n type: z.literal('reasoning-start'),\n id: z.string(),\n workerId: z.string().optional(),\n});\n\nexport const reasoningDeltaEventSchema = z.object({\n type: z.literal('reasoning-delta'),\n id: z.string(),\n delta: z.string(),\n workerId: z.string().optional(),\n});\n\nexport const reasoningEndEventSchema = z.object({\n type: z.literal('reasoning-end'),\n id: z.string(),\n workerId: z.string().optional(),\n});\n\n// ================================= Tool ======================================\n\nexport const toolInputStartEventSchema = z.object({\n type: z.literal('tool-input-start'),\n toolCallId: z.string(),\n toolName: z.string(),\n title: z.string().optional(),\n workerId: z.string().optional(),\n});\n\nexport const toolInputDeltaEventSchema = z.object({\n type: z.literal('tool-input-delta'),\n toolCallId: z.string(),\n inputTextDelta: z.string(),\n workerId: z.string().optional(),\n});\n\nexport const toolInputEndEventSchema = z.object({\n type: z.literal('tool-input-end'),\n toolCallId: z.string(),\n workerId: z.string().optional(),\n});\n\nexport const toolInputAvailableEventSchema = z.object({\n type: z.literal('tool-input-available'),\n toolCallId: z.string(),\n toolName: z.string(),\n input: z.unknown(),\n workerId: z.string().optional(),\n});\n\nexport const toolOutputAvailableEventSchema = z.object({\n type: z.literal('tool-output-available'),\n toolCallId: z.string(),\n output: z.unknown(),\n workerId: z.string().optional(),\n});\n\nexport const toolOutputErrorEventSchema = z.object({\n type: z.literal('tool-output-error'),\n toolCallId: z.string(),\n error: z.string(),\n workerId: z.string().optional(),\n});\n\n// ================================ Source =====================================\n\nexport const sourceUrlEventSchema = z.object({\n type: z.literal('source'),\n sourceType: z.literal('url'),\n id: z.string(),\n url: z.string(),\n title: z.string().optional(),\n workerId: z.string().optional(),\n});\n\nexport const sourceDocumentEventSchema = z.object({\n type: z.literal('source'),\n sourceType: z.literal('document'),\n id: z.string(),\n mediaType: z.string(),\n title: z.string(),\n filename: z.string().optional(),\n workerId: z.string().optional(),\n});\n\nexport const sourceEventSchema = z.discriminatedUnion('sourceType', [\n sourceUrlEventSchema,\n sourceDocumentEventSchema,\n]);\n\n// =============================================================================\n// OCTAVUS EVENTS (protocol-specific)\n// =============================================================================\n\n// --------------------------------- Block -------------------------------------\n\nexport const blockStartEventSchema = z.object({\n type: z.literal('block-start'),\n blockId: z.string(),\n blockName: z.string(),\n blockType: z.string(),\n display: displayModeSchema,\n description: z.string().optional(),\n outputToChat: z.boolean().optional(),\n thread: z.string().optional(),\n workerId: z.string().optional(),\n});\n\nexport const blockEndEventSchema = z.object({\n type: z.literal('block-end'),\n blockId: z.string(),\n summary: z.string().optional(),\n workerId: z.string().optional(),\n});\n\nexport const resourceUpdateEventSchema = z.object({\n type: z.literal('resource-update'),\n name: z.string(),\n value: z.unknown(),\n});\n\nexport const pendingToolCallSchema = z.object({\n toolCallId: z.string(),\n toolName: z.string(),\n args: z.record(z.string(), z.unknown()),\n source: z.enum(['llm', 'block']).optional(),\n outputVariable: z.string().optional(),\n blockIndex: z.number().optional(),\n thread: z.string().optional(),\n workerId: z.string().optional(),\n});\n\nexport const toolResultSchema = z.object({\n toolCallId: z.string(),\n toolName: z.string().optional(),\n result: z.unknown().optional(),\n error: z.string().optional(),\n outputVariable: z.string().optional(),\n blockIndex: z.number().optional(),\n thread: z.string().optional(),\n workerId: z.string().optional(),\n});\n\nexport const toolRequestEventSchema = z.object({\n type: z.literal('tool-request'),\n toolCalls: z.array(pendingToolCallSchema),\n workerId: z.string().optional(),\n});\n\nexport const clientToolRequestEventSchema = z.object({\n type: z.literal('client-tool-request'),\n executionId: z.string(),\n toolCalls: z.array(pendingToolCallSchema),\n serverToolResults: z.array(toolResultSchema).optional(),\n});\n\n// --------------------------------- File --------------------------------------\n\n/**\n * Schema for file references used in trigger input and user messages.\n */\nexport const fileReferenceSchema = z.object({\n id: z.string(),\n mediaType: z.string(),\n url: z.string(),\n filename: z.string().optional(),\n size: z.number().optional(),\n});\n\nexport const fileAvailableEventSchema = z.object({\n type: z.literal('file-available'),\n id: z.string(),\n mediaType: z.string(),\n url: z.string(),\n filename: z.string().optional(),\n size: z.number().optional(),\n toolCallId: z.string().optional(),\n workerId: z.string().optional(),\n});\n\n// --------------------------------- Worker ------------------------------------\n\nexport const workerStartEventSchema = z.object({\n type: z.literal('worker-start'),\n workerId: z.string(),\n workerSlug: z.string(),\n description: z.string().optional(),\n});\n\nexport const workerResultEventSchema = z.object({\n type: z.literal('worker-result'),\n workerId: z.string(),\n output: z.unknown().optional(),\n error: z.string().optional(),\n});\n\n// =============================================================================\n// Union of all stream events\n// =============================================================================\n\n// Note: We use z.union here because source events share type: 'source' but\n// differ by sourceType. z.discriminatedUnion requires unique discriminator values.\nexport const streamEventSchema = z.union([\n // Lifecycle events\n startEventSchema,\n finishEventSchema,\n errorEventSchema,\n // Text events\n textStartEventSchema,\n textDeltaEventSchema,\n textEndEventSchema,\n // Reasoning events\n reasoningStartEventSchema,\n reasoningDeltaEventSchema,\n reasoningEndEventSchema,\n // Tool events\n toolInputStartEventSchema,\n toolInputDeltaEventSchema,\n toolInputEndEventSchema,\n toolInputAvailableEventSchema,\n toolOutputAvailableEventSchema,\n toolOutputErrorEventSchema,\n // Source events\n sourceEventSchema,\n // Octavus-specific events\n blockStartEventSchema,\n blockEndEventSchema,\n resourceUpdateEventSchema,\n toolRequestEventSchema,\n clientToolRequestEventSchema,\n fileAvailableEventSchema,\n // Worker events\n workerStartEventSchema,\n workerResultEventSchema,\n]);\n\n// =============================================================================\n// Internal Message Types (used by platform/runtime)\n// =============================================================================\n\nexport const messagePartTypeSchema = z.enum([\n 'text',\n 'reasoning',\n 'tool-call',\n 'operation',\n 'source',\n 'file',\n 'object',\n 'worker',\n]);\n\nexport const sourceUrlInfoSchema = z.object({\n sourceType: z.literal('url'),\n id: z.string(),\n url: z.string(),\n title: z.string().optional(),\n});\n\nexport const sourceDocumentInfoSchema = z.object({\n sourceType: z.literal('document'),\n id: z.string(),\n mediaType: z.string(),\n title: z.string(),\n filename: z.string().optional(),\n});\n\nexport const sourceInfoSchema = z.discriminatedUnion('sourceType', [\n sourceUrlInfoSchema,\n sourceDocumentInfoSchema,\n]);\n\nexport const fileInfoSchema = z.object({\n id: z.string(),\n mediaType: z.string(),\n url: z.string(),\n filename: z.string().optional(),\n size: z.number().optional(),\n toolCallId: z.string().optional(),\n});\n\nexport const objectInfoSchema = z.object({\n id: z.string(),\n typeName: z.string(),\n value: z.unknown(),\n});\n\nexport const operationInfoSchema = z.object({\n id: z.string(),\n name: z.string(),\n operationType: z.string(),\n});\n\n// Base message part schema (without worker, for non-recursive use in worker nested parts)\nconst baseMessagePartSchema = z.object({\n type: z.enum(['text', 'reasoning', 'tool-call', 'operation', 'source', 'file', 'object']),\n visible: z.boolean(),\n content: z.string().optional(),\n toolCall: toolCallInfoSchema.optional(),\n operation: operationInfoSchema.optional(),\n source: sourceInfoSchema.optional(),\n file: fileInfoSchema.optional(),\n object: objectInfoSchema.optional(),\n thread: z.string().optional(),\n});\n\n// Worker part info schema (nested parts use base schema to avoid infinite recursion)\nexport const workerPartInfoSchema = z.object({\n workerId: z.string(),\n workerSlug: z.string(),\n description: z.string().optional(),\n // Worker nested parts can contain base parts (text, reasoning, tools, etc.) but not nested workers\n nestedParts: z.array(baseMessagePartSchema),\n output: z.unknown().optional(),\n error: z.string().optional(),\n});\n\n// Full message part schema including worker type\nexport const messagePartSchema = z.object({\n type: messagePartTypeSchema,\n visible: z.boolean(),\n content: z.string().optional(),\n toolCall: toolCallInfoSchema.optional(),\n operation: operationInfoSchema.optional(),\n source: sourceInfoSchema.optional(),\n file: fileInfoSchema.optional(),\n object: objectInfoSchema.optional(),\n worker: workerPartInfoSchema.optional(),\n thread: z.string().optional(),\n});\n\nexport const chatMessageSchema = z.object({\n id: z.string(),\n role: messageRoleSchema,\n parts: z.array(messagePartSchema),\n createdAt: z.string(),\n visible: z.boolean().optional(),\n content: z.string(),\n toolCalls: z.array(toolCallInfoSchema).optional(),\n reasoning: z.string().optional(),\n reasoningSignature: z.string().optional(),\n});\n\n// =============================================================================\n// UI Message Types (used by SDKs and consumer apps)\n// =============================================================================\n\nexport const uiMessageStatusSchema = z.enum(['streaming', 'done']);\nexport const uiPartStatusSchema = z.enum(['streaming', 'done']);\nexport const uiToolCallStatusSchema = z.enum(['pending', 'running', 'done', 'error']);\n\nexport const uiTextPartSchema = z.object({\n type: z.literal('text'),\n text: z.string(),\n status: uiPartStatusSchema,\n thread: z.string().optional(),\n});\n\nexport const uiReasoningPartSchema = z.object({\n type: z.literal('reasoning'),\n text: z.string(),\n status: uiPartStatusSchema,\n thread: z.string().optional(),\n providerMetadata: z.record(z.string(), z.unknown()).optional(),\n});\n\nexport const uiToolCallPartSchema = z.object({\n type: z.literal('tool-call'),\n toolCallId: z.string(),\n toolName: z.string(),\n displayName: z.string().optional(),\n args: z.record(z.string(), z.unknown()),\n result: z.unknown().optional(),\n error: z.string().optional(),\n status: uiToolCallStatusSchema,\n thread: z.string().optional(),\n providerMetadata: z.record(z.string(), z.unknown()).optional(),\n});\n\nexport const uiOperationStatusSchema = z.enum(['running', 'done']);\n\nexport const uiOperationPartSchema = z.object({\n type: z.literal('operation'),\n operationId: z.string(),\n name: z.string(),\n operationType: z.string(),\n status: uiOperationStatusSchema,\n thread: z.string().optional(),\n});\n\nexport const uiSourceUrlPartSchema = z.object({\n type: z.literal('source'),\n sourceType: z.literal('url'),\n id: z.string(),\n url: z.string(),\n title: z.string().optional(),\n thread: z.string().optional(),\n});\n\nexport const uiSourceDocumentPartSchema = z.object({\n type: z.literal('source'),\n sourceType: z.literal('document'),\n id: z.string(),\n mediaType: z.string(),\n title: z.string(),\n filename: z.string().optional(),\n thread: z.string().optional(),\n});\n\nexport const uiSourcePartSchema = z.discriminatedUnion('sourceType', [\n uiSourceUrlPartSchema,\n uiSourceDocumentPartSchema,\n]);\n\nexport const uiFilePartSchema = z.object({\n type: z.literal('file'),\n id: z.string(),\n mediaType: z.string(),\n url: z.string(),\n filename: z.string().optional(),\n size: z.number().optional(),\n toolCallId: z.string().optional(),\n thread: z.string().optional(),\n});\n\nexport const uiObjectStatusSchema = z.enum(['streaming', 'done', 'error']);\n\nexport const uiObjectPartSchema = z.object({\n type: z.literal('object'),\n id: z.string(),\n typeName: z.string(),\n partial: z.unknown().optional(),\n object: z.unknown().optional(),\n status: uiObjectStatusSchema,\n error: z.string().optional(),\n thread: z.string().optional(),\n});\n\nexport const uiWorkerStatusSchema = z.enum(['running', 'done', 'error']);\n\n// Note: We use z.union here because source parts share type: 'source' but\n// differ by sourceType. z.discriminatedUnion requires unique discriminator values.\n// Base parts schema (without worker, for non-recursive use)\nconst baseUiMessagePartSchema = z.union([\n uiTextPartSchema,\n uiReasoningPartSchema,\n uiToolCallPartSchema,\n uiOperationPartSchema,\n uiSourcePartSchema,\n uiFilePartSchema,\n uiObjectPartSchema,\n]);\n\n// Worker part schema with nested parts (uses base schema to avoid infinite recursion)\nexport const uiWorkerPartSchema = z.object({\n type: z.literal('worker'),\n workerId: z.string(),\n workerSlug: z.string(),\n description: z.string().optional(),\n // Worker parts can contain base parts (text, reasoning, tools, etc.) but not nested workers\n parts: z.array(baseUiMessagePartSchema),\n output: z.unknown().optional(),\n error: z.string().optional(),\n status: uiWorkerStatusSchema,\n});\n\n// Full message part schema including workers\nexport const uiMessagePartSchema = z.union([\n uiTextPartSchema,\n uiReasoningPartSchema,\n uiToolCallPartSchema,\n uiOperationPartSchema,\n uiSourcePartSchema,\n uiFilePartSchema,\n uiObjectPartSchema,\n uiWorkerPartSchema,\n]);\n\nexport const uiMessageSchema = z.object({\n id: z.string(),\n role: z.enum(['user', 'assistant']),\n parts: z.array(uiMessagePartSchema),\n status: uiMessageStatusSchema,\n createdAt: z.coerce.date(),\n});\n\nexport function safeParseStreamEvent(data: unknown) {\n return streamEventSchema.safeParse(data);\n}\n\nexport function safeParseUIMessage(data: unknown) {\n return uiMessageSchema.safeParse(data);\n}\n\nexport function safeParseUIMessages(data: unknown) {\n return z.array(uiMessageSchema).safeParse(data);\n}\n\n// =============================================================================\n// Type Guards\n// =============================================================================\n\n/**\n * Type guard to check if a value is a FileReference object.\n */\nexport function isFileReference(value: unknown): value is z.infer<typeof fileReferenceSchema> {\n return fileReferenceSchema.safeParse(value).success;\n}\n\n/**\n * Type guard to check if a value is an array of FileReference objects.\n */\nexport function isFileReferenceArray(\n value: unknown,\n): value is z.infer<typeof fileReferenceSchema>[] {\n return z.array(fileReferenceSchema).safeParse(value).success;\n}\n","/**\n * Internal Octavus tool definitions.\n *\n * These tools are reserved by Octavus and executed server-side.\n * User-defined tools and workers cannot use the \"octavus_\" prefix.\n */\n\n/**\n * Prefix reserved for internal Octavus tools.\n * User-defined tools/workers cannot use this prefix.\n */\nexport const OCTAVUS_INTERNAL_PREFIX = 'octavus_';\n\n/**\n * All internal Octavus tool names.\n *\n * These are tools that are executed server-side by the Octavus runtime.\n * They should never be sent to client handlers.\n */\nexport const OCTAVUS_INTERNAL_TOOLS = {\n // === Skill Tools (executed in E2B sandboxes) ===\n /** Read skill documentation (SKILL.md) */\n SKILL_READ: 'octavus_skill_read',\n /** List available scripts in a skill */\n SKILL_LIST: 'octavus_skill_list',\n /** Execute a pre-built skill script */\n SKILL_RUN: 'octavus_skill_run',\n /** Execute Python/Bash code in sandbox */\n CODE_RUN: 'octavus_code_run',\n /** Create/write files in sandbox */\n FILE_WRITE: 'octavus_file_write',\n /** Read files from sandbox */\n FILE_READ: 'octavus_file_read',\n\n // === Image Generation ===\n /** Generate images using AI models */\n GENERATE_IMAGE: 'octavus_generate_image',\n} as const;\n\nexport type OctavusInternalToolName =\n (typeof OCTAVUS_INTERNAL_TOOLS)[keyof typeof OCTAVUS_INTERNAL_TOOLS];\n\n/**\n * Check if a tool name is an internal Octavus tool.\n *\n * Internal tools are reserved by Octavus and executed server-side.\n * User-defined tools cannot start with \"octavus_\".\n *\n * @example\n * ```typescript\n * if (isOctavusInternalTool(toolName)) {\n * // This is an internal Octavus tool, skip client handling\n * }\n * ```\n */\nexport function isOctavusInternalTool(toolName: string): boolean {\n return toolName.startsWith(OCTAVUS_INTERNAL_PREFIX);\n}\n\n/**\n * Skill tool names (subset of internal tools).\n *\n * Use this for skill-specific filtering. For checking if any tool is internal,\n * use `isOctavusInternalTool()` instead.\n */\nexport const OCTAVUS_SKILL_TOOLS = {\n SKILL_READ: OCTAVUS_INTERNAL_TOOLS.SKILL_READ,\n SKILL_LIST: OCTAVUS_INTERNAL_TOOLS.SKILL_LIST,\n SKILL_RUN: OCTAVUS_INTERNAL_TOOLS.SKILL_RUN,\n CODE_RUN: OCTAVUS_INTERNAL_TOOLS.CODE_RUN,\n FILE_WRITE: OCTAVUS_INTERNAL_TOOLS.FILE_WRITE,\n FILE_READ: OCTAVUS_INTERNAL_TOOLS.FILE_READ,\n} as const;\n\nexport type OctavusSkillToolName = (typeof OCTAVUS_SKILL_TOOLS)[keyof typeof OCTAVUS_SKILL_TOOLS];\n\n/**\n * Check if a tool name is an Octavus skill tool.\n *\n * Skill tools are a subset of internal tools that execute in E2B sandboxes.\n *\n * @example\n * ```typescript\n * if (isOctavusSkillTool(event.toolName)) {\n * // This is a skill tool, executed in E2B sandbox\n * const skillSlug = event.input?.skill;\n * }\n * ```\n */\nexport function isOctavusSkillTool(toolName: string): toolName is OctavusSkillToolName {\n return Object.values(OCTAVUS_SKILL_TOOLS).includes(toolName as OctavusSkillToolName);\n}\n","/**\n * Skill-specific utilities.\n *\n * For internal tool definitions and checking, see internal-tools.ts\n */\n\nimport {\n isOctavusSkillTool,\n OCTAVUS_SKILL_TOOLS,\n type OctavusSkillToolName,\n} from './internal-tools';\n\n// Re-export skill tool constants for backward compatibility\nexport { OCTAVUS_SKILL_TOOLS, isOctavusSkillTool, type OctavusSkillToolName };\n\n/**\n * Extract skill slug from skill tool arguments.\n *\n * Most skill tools include a `skill` parameter with the skill slug.\n * Returns undefined if the tool is not a skill tool or if the skill slug is not present.\n *\n * @example\n * ```typescript\n * const slug = getSkillSlugFromToolCall(event.toolName, event.input);\n * if (slug) {\n * console.log(`Using skill: ${slug}`);\n * }\n * ```\n */\nexport function getSkillSlugFromToolCall(\n toolName: string,\n args: Record<string, unknown> | undefined,\n): string | undefined {\n if (!isOctavusSkillTool(toolName) || !args) {\n return undefined;\n }\n\n // Most skill tools have a 'skill' parameter\n if (typeof args.skill === 'string') {\n return args.skill;\n }\n\n return undefined;\n}\n"],"mappings":"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","names":[]}
|
|
1
|
+
{"version":3,"sources":["../src/errors.ts","../src/errors/octavus-error.ts","../src/errors/helpers.ts","../src/utils.ts","../src/thread.ts","../src/stream/schemas.ts","../src/internal-tools.ts","../src/skills.ts"],"sourcesContent":["export class AppError extends Error {\n constructor(\n message: string,\n public code: string,\n public statusCode = 500,\n ) {\n super(message);\n this.name = 'AppError';\n }\n}\n\nexport class NotFoundError extends AppError {\n constructor(resource: string, id: string) {\n super(`${resource} not found: ${id}`, 'NOT_FOUND', 404);\n this.name = 'NotFoundError';\n }\n}\n\nexport class ValidationError extends AppError {\n constructor(\n message: string,\n public issues?: unknown[],\n ) {\n super(message, 'VALIDATION_ERROR', 400);\n this.name = 'ValidationError';\n }\n}\n\nexport class ConflictError extends AppError {\n constructor(resource: string, identifier: string) {\n super(`${resource} already exists: ${identifier}`, 'CONFLICT', 409);\n this.name = 'ConflictError';\n }\n}\n\nexport class ForbiddenError extends AppError {\n constructor(message = 'Access denied') {\n super(message, 'FORBIDDEN', 403);\n this.name = 'ForbiddenError';\n }\n}\n","import type {\n ErrorType,\n ErrorSource,\n ProviderErrorInfo,\n ToolErrorInfo,\n OctavusErrorOptions,\n} from './types';\n\n/**\n * Marker key for OctavusError identification.\n * Enables reliable instanceof checks across package versions.\n */\nconst MARKER_KEY = 'octavus.error';\n\n/**\n * Base error class for Octavus streaming errors.\n *\n * Provides structured error information including:\n * - Error type classification for UI handling\n * - Source information (platform, provider, tool)\n * - Retryability flag and retry delay\n * - Provider/tool details when applicable\n *\n * @example\n * ```typescript\n * const error = new OctavusError({\n * errorType: 'rate_limit_error',\n * message: 'Rate limit exceeded. Please try again later.',\n * source: 'provider',\n * retryable: true,\n * retryAfter: 60,\n * provider: {\n * name: 'anthropic',\n * statusCode: 429,\n * requestId: 'req_xxx',\n * },\n * });\n * ```\n */\nexport class OctavusError extends Error {\n /** @internal Marker for cross-version instanceof checks */\n readonly __octavusErrorMarker = MARKER_KEY;\n\n /** Error type classification */\n readonly errorType: ErrorType;\n\n /** Where the error originated */\n readonly source: ErrorSource;\n\n /** Whether automatic retry is possible */\n readonly retryable: boolean;\n\n /** Suggested retry delay in seconds (from provider headers) */\n readonly retryAfter?: number;\n\n /** Machine-readable error code */\n readonly code?: string;\n\n /** Provider details (when source === 'provider') */\n readonly provider?: ProviderErrorInfo;\n\n /** Tool details (when source === 'tool') */\n readonly tool?: ToolErrorInfo;\n\n constructor(options: OctavusErrorOptions) {\n super(options.message);\n this.name = 'OctavusError';\n this.errorType = options.errorType;\n this.source = options.source;\n this.retryable = options.retryable ?? false;\n this.retryAfter = options.retryAfter;\n this.code = options.code;\n this.provider = options.provider;\n this.tool = options.tool;\n\n // Preserve original error stack if available\n if (options.cause instanceof Error && options.cause.stack) {\n this.stack = `${this.stack}\\nCaused by: ${options.cause.stack}`;\n }\n }\n\n /**\n * Check if an unknown value is an OctavusError.\n * Works reliably across package versions using marker property.\n */\n static isInstance(error: unknown): error is OctavusError {\n return (\n typeof error === 'object' &&\n error !== null &&\n '__octavusErrorMarker' in error &&\n (error as { __octavusErrorMarker: string }).__octavusErrorMarker === MARKER_KEY\n );\n }\n\n /**\n * Convert error to plain object for serialization.\n * Used for streaming error events.\n */\n toJSON(): Record<string, unknown> {\n return {\n name: this.name,\n message: this.message,\n errorType: this.errorType,\n source: this.source,\n retryable: this.retryable,\n retryAfter: this.retryAfter,\n code: this.code,\n provider: this.provider,\n tool: this.tool,\n };\n }\n}\n\n// =============================================================================\n// Type Guards\n// =============================================================================\n\n/**\n * Check if an error is a rate limit error.\n */\nexport function isRateLimitError(error: unknown): error is OctavusError {\n return (\n OctavusError.isInstance(error) &&\n (error.errorType === 'rate_limit_error' || error.errorType === 'quota_exceeded_error')\n );\n}\n\n/**\n * Check if an error is an authentication error.\n */\nexport function isAuthenticationError(error: unknown): error is OctavusError {\n return (\n OctavusError.isInstance(error) &&\n (error.errorType === 'authentication_error' || error.errorType === 'permission_error')\n );\n}\n\n/**\n * Check if an error is a provider error.\n */\nexport function isProviderError(error: unknown): error is OctavusError {\n return OctavusError.isInstance(error) && error.source === 'provider';\n}\n\n/**\n * Check if an error is a tool error.\n */\nexport function isToolError(error: unknown): error is OctavusError {\n return (\n OctavusError.isInstance(error) && (error.source === 'tool' || error.errorType === 'tool_error')\n );\n}\n\n/**\n * Check if an error is retryable.\n */\nexport function isRetryableError(error: unknown): boolean {\n if (OctavusError.isInstance(error)) {\n return error.retryable;\n }\n return false;\n}\n\n/**\n * Check if an error is a validation error (non-retryable request issue).\n */\nexport function isValidationError(error: unknown): error is OctavusError {\n return OctavusError.isInstance(error) && error.errorType === 'validation_error';\n}\n","import type { ErrorEvent } from '@/stream/types';\nimport type { ErrorType, ErrorSource, ProviderErrorInfo, ToolErrorInfo } from './types';\nimport type { OctavusError } from './octavus-error';\n\n/**\n * Options for creating an error event.\n */\nexport interface CreateErrorEventOptions {\n errorType: ErrorType;\n message: string;\n source: ErrorSource;\n retryable?: boolean;\n retryAfter?: number;\n code?: string;\n provider?: ProviderErrorInfo;\n tool?: ToolErrorInfo;\n}\n\n/**\n * Create an ErrorEvent from options.\n * Use this for constructing error events in streaming responses.\n */\nexport function createErrorEvent(options: CreateErrorEventOptions): ErrorEvent {\n return {\n type: 'error',\n errorType: options.errorType,\n message: options.message,\n source: options.source,\n retryable: options.retryable ?? false,\n retryAfter: options.retryAfter,\n code: options.code,\n provider: options.provider,\n tool: options.tool,\n };\n}\n\n/**\n * Create an ErrorEvent from an OctavusError.\n */\nexport function errorToStreamEvent(error: OctavusError): ErrorEvent {\n return createErrorEvent({\n errorType: error.errorType,\n message: error.message,\n source: error.source,\n retryable: error.retryable,\n retryAfter: error.retryAfter,\n code: error.code,\n provider: error.provider,\n tool: error.tool,\n });\n}\n\n/**\n * Create an internal error event.\n * Convenience function for platform-level errors.\n */\nexport function createInternalErrorEvent(message: string): ErrorEvent {\n return createErrorEvent({\n errorType: 'internal_error',\n message,\n source: 'platform',\n retryable: false,\n });\n}\n\n/**\n * Map HTTP status code to error type.\n */\nfunction mapStatusCodeToErrorType(statusCode: number): ErrorType {\n switch (statusCode) {\n case 400:\n return 'validation_error';\n case 401:\n return 'authentication_error';\n case 403:\n return 'permission_error';\n case 404:\n return 'not_found_error';\n case 429:\n return 'rate_limit_error';\n case 503:\n return 'provider_overloaded';\n case 504:\n return 'provider_timeout';\n default:\n return statusCode >= 500 ? 'internal_error' : 'unknown_error';\n }\n}\n\n/**\n * Create an error event from an API response.\n * Maps HTTP status codes to appropriate error types.\n *\n * Use this when handling errors from API responses (before streaming starts).\n *\n * @param statusCode - HTTP status code from the response\n * @param message - Error message to display\n */\nexport function createApiErrorEvent(statusCode: number, message: string): ErrorEvent {\n const errorType = mapStatusCodeToErrorType(statusCode);\n // Rate limit and server errors are typically retryable\n const retryable = statusCode === 429 || statusCode >= 500;\n\n return createErrorEvent({\n errorType,\n message,\n source: 'platform',\n retryable,\n });\n}\n","/**\n * Generate a unique ID for messages, tool calls, etc.\n * Format: timestamp-random (e.g., \"1702345678901-abc123def\")\n */\nexport function generateId(): string {\n return `${Date.now()}-${Math.random().toString(36).substring(2, 9)}`;\n}\n\n/**\n * Check if an error is an abort error.\n *\n * This handles the various ways abort errors can manifest across different\n * environments (browsers, Node.js, Next.js, etc.).\n *\n * @param error - The error to check\n * @returns True if the error is an abort error\n */\nexport function isAbortError(error: unknown): error is Error {\n return (\n (error instanceof Error || error instanceof DOMException) &&\n (error.name === 'AbortError' ||\n error.name === 'ResponseAborted' || // Next.js\n error.name === 'TimeoutError')\n );\n}\n","/**\n * Default thread name when none is specified.\n */\nexport const MAIN_THREAD = 'main' as const;\n\n/**\n * Resolve a thread name, defaulting to main thread.\n */\nexport function resolveThread(thread: string | undefined): string {\n return thread ?? MAIN_THREAD;\n}\n\n/**\n * Check if a thread is the main thread.\n */\nexport function isMainThread(thread: string | undefined): boolean {\n return thread === undefined || thread === MAIN_THREAD;\n}\n\n/**\n * Normalize thread for storage in message parts.\n * Main thread is stored as undefined to save space.\n */\nexport function threadForPart(thread: string | undefined): string | undefined {\n return isMainThread(thread) ? undefined : thread;\n}\n\n/**\n * Check if a message part belongs to a non-main thread.\n * Non-main thread content (e.g., \"summary\") is typically displayed differently.\n */\nexport function isOtherThread(part: { thread?: string }): boolean {\n return !isMainThread(part.thread);\n}\n","/**\n * Zod schemas for stream events.\n *\n * Schemas are organized into two categories:\n * - Standard Events (====): Common streaming patterns for AI agents\n * - Octavus Events (----): Octavus-specific protocol events\n */\n\nimport { z } from 'zod';\n\nexport const displayModeSchema = z.enum(['hidden', 'name', 'description', 'stream']);\nexport const messageRoleSchema = z.enum(['user', 'assistant', 'system']);\nexport const toolCallStatusSchema = z.enum(['pending', 'streaming', 'available', 'error']);\nexport const finishReasonSchema = z.enum([\n 'stop',\n 'tool-calls',\n 'client-tool-calls',\n 'length',\n 'content-filter',\n 'error',\n 'other',\n]);\n\nexport const toolCallInfoSchema = z.object({\n id: z.string(),\n name: z.string(),\n description: z.string().optional(),\n arguments: z.record(z.string(), z.unknown()),\n status: toolCallStatusSchema,\n result: z.unknown().optional(),\n error: z.string().optional(),\n thoughtSignature: z.string().optional(),\n display: displayModeSchema.optional(),\n});\n\n// =============================================================================\n// STANDARD EVENTS\n// =============================================================================\n\n// ============================== Lifecycle ====================================\n\nexport const startEventSchema = z.object({\n type: z.literal('start'),\n messageId: z.string().optional(),\n executionId: z.string().optional(),\n});\n\nexport const finishEventSchema = z.object({\n type: z.literal('finish'),\n finishReason: finishReasonSchema,\n executionId: z.string().optional(),\n});\n\nconst errorTypeSchema = z.enum([\n 'authentication_error',\n 'permission_error',\n 'validation_error',\n 'not_found_error',\n 'rate_limit_error',\n 'quota_exceeded_error',\n 'provider_error',\n 'provider_overloaded',\n 'provider_timeout',\n 'execution_error',\n 'tool_error',\n 'protocol_error',\n 'internal_error',\n 'unknown_error',\n]);\n\nconst errorSourceSchema = z.enum(['platform', 'provider', 'tool', 'client']);\n\nconst providerErrorInfoSchema = z.object({\n name: z.string(),\n model: z.string().optional(),\n statusCode: z.number().optional(),\n errorType: z.string().optional(),\n requestId: z.string().optional(),\n});\n\nconst toolErrorInfoSchema = z.object({\n name: z.string(),\n callId: z.string().optional(),\n});\n\nexport const errorEventSchema = z.object({\n type: z.literal('error'),\n errorType: errorTypeSchema,\n message: z.string(),\n retryable: z.boolean(),\n source: errorSourceSchema,\n retryAfter: z.number().optional(),\n code: z.string().optional(),\n provider: providerErrorInfoSchema.optional(),\n tool: toolErrorInfoSchema.optional(),\n});\n\n// ================================= Text ======================================\n\nexport const textStartEventSchema = z.object({\n type: z.literal('text-start'),\n id: z.string(),\n responseType: z.string().optional(),\n workerId: z.string().optional(),\n});\n\nexport const textDeltaEventSchema = z.object({\n type: z.literal('text-delta'),\n id: z.string(),\n delta: z.string(),\n workerId: z.string().optional(),\n});\n\nexport const textEndEventSchema = z.object({\n type: z.literal('text-end'),\n id: z.string(),\n workerId: z.string().optional(),\n});\n\n// =============================== Reasoning ===================================\n\nexport const reasoningStartEventSchema = z.object({\n type: z.literal('reasoning-start'),\n id: z.string(),\n workerId: z.string().optional(),\n});\n\nexport const reasoningDeltaEventSchema = z.object({\n type: z.literal('reasoning-delta'),\n id: z.string(),\n delta: z.string(),\n workerId: z.string().optional(),\n});\n\nexport const reasoningEndEventSchema = z.object({\n type: z.literal('reasoning-end'),\n id: z.string(),\n workerId: z.string().optional(),\n});\n\n// ================================= Tool ======================================\n\nexport const toolInputStartEventSchema = z.object({\n type: z.literal('tool-input-start'),\n toolCallId: z.string(),\n toolName: z.string(),\n title: z.string().optional(),\n workerId: z.string().optional(),\n});\n\nexport const toolInputDeltaEventSchema = z.object({\n type: z.literal('tool-input-delta'),\n toolCallId: z.string(),\n inputTextDelta: z.string(),\n workerId: z.string().optional(),\n});\n\nexport const toolInputEndEventSchema = z.object({\n type: z.literal('tool-input-end'),\n toolCallId: z.string(),\n workerId: z.string().optional(),\n});\n\nexport const toolInputAvailableEventSchema = z.object({\n type: z.literal('tool-input-available'),\n toolCallId: z.string(),\n toolName: z.string(),\n input: z.unknown(),\n workerId: z.string().optional(),\n});\n\nexport const toolOutputAvailableEventSchema = z.object({\n type: z.literal('tool-output-available'),\n toolCallId: z.string(),\n output: z.unknown(),\n workerId: z.string().optional(),\n});\n\nexport const toolOutputErrorEventSchema = z.object({\n type: z.literal('tool-output-error'),\n toolCallId: z.string(),\n error: z.string(),\n workerId: z.string().optional(),\n});\n\n// ================================ Source =====================================\n\nexport const sourceUrlEventSchema = z.object({\n type: z.literal('source'),\n sourceType: z.literal('url'),\n id: z.string(),\n url: z.string(),\n title: z.string().optional(),\n workerId: z.string().optional(),\n});\n\nexport const sourceDocumentEventSchema = z.object({\n type: z.literal('source'),\n sourceType: z.literal('document'),\n id: z.string(),\n mediaType: z.string(),\n title: z.string(),\n filename: z.string().optional(),\n workerId: z.string().optional(),\n});\n\nexport const sourceEventSchema = z.discriminatedUnion('sourceType', [\n sourceUrlEventSchema,\n sourceDocumentEventSchema,\n]);\n\n// =============================================================================\n// OCTAVUS EVENTS (protocol-specific)\n// =============================================================================\n\n// --------------------------------- Block -------------------------------------\n\nexport const blockStartEventSchema = z.object({\n type: z.literal('block-start'),\n blockId: z.string(),\n blockName: z.string(),\n blockType: z.string(),\n display: displayModeSchema,\n description: z.string().optional(),\n outputToChat: z.boolean().optional(),\n thread: z.string().optional(),\n workerId: z.string().optional(),\n});\n\nexport const blockEndEventSchema = z.object({\n type: z.literal('block-end'),\n blockId: z.string(),\n summary: z.string().optional(),\n workerId: z.string().optional(),\n});\n\nexport const resourceUpdateEventSchema = z.object({\n type: z.literal('resource-update'),\n name: z.string(),\n value: z.unknown(),\n});\n\n// --------------------------------- File --------------------------------------\n\n/**\n * Schema for file references used in trigger input, user messages, and tool results.\n */\nexport const fileReferenceSchema = z.object({\n id: z.string(),\n mediaType: z.string(),\n url: z.string(),\n filename: z.string().optional(),\n size: z.number().optional(),\n});\n\n// --------------------------------- Tool --------------------------------------\n\nexport const pendingToolCallSchema = z.object({\n toolCallId: z.string(),\n toolName: z.string(),\n args: z.record(z.string(), z.unknown()),\n source: z.enum(['llm', 'block']).optional(),\n outputVariable: z.string().optional(),\n blockIndex: z.number().optional(),\n thread: z.string().optional(),\n workerId: z.string().optional(),\n});\n\nexport const toolResultSchema = z.object({\n toolCallId: z.string(),\n toolName: z.string().optional(),\n result: z.unknown().optional(),\n error: z.string().optional(),\n files: z.array(fileReferenceSchema).optional(),\n outputVariable: z.string().optional(),\n blockIndex: z.number().optional(),\n thread: z.string().optional(),\n workerId: z.string().optional(),\n});\n\nexport const toolRequestEventSchema = z.object({\n type: z.literal('tool-request'),\n toolCalls: z.array(pendingToolCallSchema),\n workerId: z.string().optional(),\n});\n\nexport const clientToolRequestEventSchema = z.object({\n type: z.literal('client-tool-request'),\n executionId: z.string(),\n toolCalls: z.array(pendingToolCallSchema),\n serverToolResults: z.array(toolResultSchema).optional(),\n});\n\nexport const fileAvailableEventSchema = z.object({\n type: z.literal('file-available'),\n id: z.string(),\n mediaType: z.string(),\n url: z.string(),\n filename: z.string().optional(),\n size: z.number().optional(),\n toolCallId: z.string().optional(),\n workerId: z.string().optional(),\n});\n\n// --------------------------------- Worker ------------------------------------\n\nexport const workerStartEventSchema = z.object({\n type: z.literal('worker-start'),\n workerId: z.string(),\n workerSlug: z.string(),\n description: z.string().optional(),\n});\n\nexport const workerResultEventSchema = z.object({\n type: z.literal('worker-result'),\n workerId: z.string(),\n output: z.unknown().optional(),\n error: z.string().optional(),\n});\n\n// =============================================================================\n// Union of all stream events\n// =============================================================================\n\n// Note: We use z.union here because source events share type: 'source' but\n// differ by sourceType. z.discriminatedUnion requires unique discriminator values.\nexport const streamEventSchema = z.union([\n // Lifecycle events\n startEventSchema,\n finishEventSchema,\n errorEventSchema,\n // Text events\n textStartEventSchema,\n textDeltaEventSchema,\n textEndEventSchema,\n // Reasoning events\n reasoningStartEventSchema,\n reasoningDeltaEventSchema,\n reasoningEndEventSchema,\n // Tool events\n toolInputStartEventSchema,\n toolInputDeltaEventSchema,\n toolInputEndEventSchema,\n toolInputAvailableEventSchema,\n toolOutputAvailableEventSchema,\n toolOutputErrorEventSchema,\n // Source events\n sourceEventSchema,\n // Octavus-specific events\n blockStartEventSchema,\n blockEndEventSchema,\n resourceUpdateEventSchema,\n toolRequestEventSchema,\n clientToolRequestEventSchema,\n fileAvailableEventSchema,\n // Worker events\n workerStartEventSchema,\n workerResultEventSchema,\n]);\n\n// =============================================================================\n// Internal Message Types (used by platform/runtime)\n// =============================================================================\n\nexport const messagePartTypeSchema = z.enum([\n 'text',\n 'reasoning',\n 'tool-call',\n 'operation',\n 'source',\n 'file',\n 'object',\n 'worker',\n]);\n\nexport const sourceUrlInfoSchema = z.object({\n sourceType: z.literal('url'),\n id: z.string(),\n url: z.string(),\n title: z.string().optional(),\n});\n\nexport const sourceDocumentInfoSchema = z.object({\n sourceType: z.literal('document'),\n id: z.string(),\n mediaType: z.string(),\n title: z.string(),\n filename: z.string().optional(),\n});\n\nexport const sourceInfoSchema = z.discriminatedUnion('sourceType', [\n sourceUrlInfoSchema,\n sourceDocumentInfoSchema,\n]);\n\nexport const fileInfoSchema = z.object({\n id: z.string(),\n mediaType: z.string(),\n url: z.string(),\n filename: z.string().optional(),\n size: z.number().optional(),\n toolCallId: z.string().optional(),\n});\n\nexport const objectInfoSchema = z.object({\n id: z.string(),\n typeName: z.string(),\n value: z.unknown(),\n});\n\nexport const operationInfoSchema = z.object({\n id: z.string(),\n name: z.string(),\n operationType: z.string(),\n});\n\n// Base message part schema (without worker, for non-recursive use in worker nested parts)\nconst baseMessagePartSchema = z.object({\n type: z.enum(['text', 'reasoning', 'tool-call', 'operation', 'source', 'file', 'object']),\n visible: z.boolean(),\n content: z.string().optional(),\n toolCall: toolCallInfoSchema.optional(),\n operation: operationInfoSchema.optional(),\n source: sourceInfoSchema.optional(),\n file: fileInfoSchema.optional(),\n object: objectInfoSchema.optional(),\n thread: z.string().optional(),\n});\n\n// Worker part info schema (nested parts use base schema to avoid infinite recursion)\nexport const workerPartInfoSchema = z.object({\n workerId: z.string(),\n workerSlug: z.string(),\n description: z.string().optional(),\n // Worker nested parts can contain base parts (text, reasoning, tools, etc.) but not nested workers\n nestedParts: z.array(baseMessagePartSchema),\n output: z.unknown().optional(),\n error: z.string().optional(),\n});\n\n// Full message part schema including worker type\nexport const messagePartSchema = z.object({\n type: messagePartTypeSchema,\n visible: z.boolean(),\n content: z.string().optional(),\n toolCall: toolCallInfoSchema.optional(),\n operation: operationInfoSchema.optional(),\n source: sourceInfoSchema.optional(),\n file: fileInfoSchema.optional(),\n object: objectInfoSchema.optional(),\n worker: workerPartInfoSchema.optional(),\n thread: z.string().optional(),\n});\n\nexport const chatMessageSchema = z.object({\n id: z.string(),\n role: messageRoleSchema,\n parts: z.array(messagePartSchema),\n createdAt: z.string(),\n visible: z.boolean().optional(),\n content: z.string(),\n toolCalls: z.array(toolCallInfoSchema).optional(),\n reasoning: z.string().optional(),\n reasoningSignature: z.string().optional(),\n});\n\n// =============================================================================\n// UI Message Types (used by SDKs and consumer apps)\n// =============================================================================\n\nexport const uiMessageStatusSchema = z.enum(['streaming', 'done']);\nexport const uiPartStatusSchema = z.enum(['streaming', 'done']);\nexport const uiToolCallStatusSchema = z.enum(['pending', 'running', 'done', 'error']);\n\nexport const uiTextPartSchema = z.object({\n type: z.literal('text'),\n text: z.string(),\n status: uiPartStatusSchema,\n thread: z.string().optional(),\n});\n\nexport const uiReasoningPartSchema = z.object({\n type: z.literal('reasoning'),\n text: z.string(),\n status: uiPartStatusSchema,\n thread: z.string().optional(),\n providerMetadata: z.record(z.string(), z.unknown()).optional(),\n});\n\nexport const uiToolCallPartSchema = z.object({\n type: z.literal('tool-call'),\n toolCallId: z.string(),\n toolName: z.string(),\n displayName: z.string().optional(),\n args: z.record(z.string(), z.unknown()),\n result: z.unknown().optional(),\n error: z.string().optional(),\n status: uiToolCallStatusSchema,\n thread: z.string().optional(),\n providerMetadata: z.record(z.string(), z.unknown()).optional(),\n});\n\nexport const uiOperationStatusSchema = z.enum(['running', 'done']);\n\nexport const uiOperationPartSchema = z.object({\n type: z.literal('operation'),\n operationId: z.string(),\n name: z.string(),\n operationType: z.string(),\n status: uiOperationStatusSchema,\n thread: z.string().optional(),\n});\n\nexport const uiSourceUrlPartSchema = z.object({\n type: z.literal('source'),\n sourceType: z.literal('url'),\n id: z.string(),\n url: z.string(),\n title: z.string().optional(),\n thread: z.string().optional(),\n});\n\nexport const uiSourceDocumentPartSchema = z.object({\n type: z.literal('source'),\n sourceType: z.literal('document'),\n id: z.string(),\n mediaType: z.string(),\n title: z.string(),\n filename: z.string().optional(),\n thread: z.string().optional(),\n});\n\nexport const uiSourcePartSchema = z.discriminatedUnion('sourceType', [\n uiSourceUrlPartSchema,\n uiSourceDocumentPartSchema,\n]);\n\nexport const uiFilePartSchema = z.object({\n type: z.literal('file'),\n id: z.string(),\n mediaType: z.string(),\n url: z.string(),\n filename: z.string().optional(),\n size: z.number().optional(),\n toolCallId: z.string().optional(),\n thread: z.string().optional(),\n});\n\nexport const uiObjectStatusSchema = z.enum(['streaming', 'done', 'error']);\n\nexport const uiObjectPartSchema = z.object({\n type: z.literal('object'),\n id: z.string(),\n typeName: z.string(),\n partial: z.unknown().optional(),\n object: z.unknown().optional(),\n status: uiObjectStatusSchema,\n error: z.string().optional(),\n thread: z.string().optional(),\n});\n\nexport const uiWorkerStatusSchema = z.enum(['running', 'done', 'error']);\n\n// Note: We use z.union here because source parts share type: 'source' but\n// differ by sourceType. z.discriminatedUnion requires unique discriminator values.\n// Base parts schema (without worker, for non-recursive use)\nconst baseUiMessagePartSchema = z.union([\n uiTextPartSchema,\n uiReasoningPartSchema,\n uiToolCallPartSchema,\n uiOperationPartSchema,\n uiSourcePartSchema,\n uiFilePartSchema,\n uiObjectPartSchema,\n]);\n\n// Worker part schema with nested parts (uses base schema to avoid infinite recursion)\nexport const uiWorkerPartSchema = z.object({\n type: z.literal('worker'),\n workerId: z.string(),\n workerSlug: z.string(),\n description: z.string().optional(),\n // Worker parts can contain base parts (text, reasoning, tools, etc.) but not nested workers\n parts: z.array(baseUiMessagePartSchema),\n output: z.unknown().optional(),\n error: z.string().optional(),\n status: uiWorkerStatusSchema,\n});\n\n// Full message part schema including workers\nexport const uiMessagePartSchema = z.union([\n uiTextPartSchema,\n uiReasoningPartSchema,\n uiToolCallPartSchema,\n uiOperationPartSchema,\n uiSourcePartSchema,\n uiFilePartSchema,\n uiObjectPartSchema,\n uiWorkerPartSchema,\n]);\n\nexport const uiMessageSchema = z.object({\n id: z.string(),\n role: z.enum(['user', 'assistant']),\n parts: z.array(uiMessagePartSchema),\n status: uiMessageStatusSchema,\n createdAt: z.coerce.date(),\n});\n\nexport function safeParseStreamEvent(data: unknown) {\n return streamEventSchema.safeParse(data);\n}\n\nexport function safeParseUIMessage(data: unknown) {\n return uiMessageSchema.safeParse(data);\n}\n\nexport function safeParseUIMessages(data: unknown) {\n return z.array(uiMessageSchema).safeParse(data);\n}\n\n// =============================================================================\n// Type Guards\n// =============================================================================\n\n/**\n * Type guard to check if a value is a FileReference object.\n */\nexport function isFileReference(value: unknown): value is z.infer<typeof fileReferenceSchema> {\n return fileReferenceSchema.safeParse(value).success;\n}\n\n/**\n * Type guard to check if a value is an array of FileReference objects.\n */\nexport function isFileReferenceArray(\n value: unknown,\n): value is z.infer<typeof fileReferenceSchema>[] {\n return z.array(fileReferenceSchema).safeParse(value).success;\n}\n","/**\n * Internal Octavus tool definitions.\n *\n * These tools are reserved by Octavus and executed server-side.\n * User-defined tools and workers cannot use the \"octavus_\" prefix.\n */\n\n/**\n * Prefix reserved for internal Octavus tools.\n * User-defined tools/workers cannot use this prefix.\n */\nexport const OCTAVUS_INTERNAL_PREFIX = 'octavus_';\n\n/**\n * All internal Octavus tool names.\n *\n * These are tools that are executed server-side by the Octavus runtime.\n * They should never be sent to client handlers.\n */\nexport const OCTAVUS_INTERNAL_TOOLS = {\n // === Skill Tools (executed in E2B sandboxes) ===\n /** Read skill documentation (SKILL.md) */\n SKILL_READ: 'octavus_skill_read',\n /** List available scripts in a skill */\n SKILL_LIST: 'octavus_skill_list',\n /** Execute a pre-built skill script */\n SKILL_RUN: 'octavus_skill_run',\n /** Execute Python/Bash code in sandbox */\n CODE_RUN: 'octavus_code_run',\n /** Create/write files in sandbox */\n FILE_WRITE: 'octavus_file_write',\n /** Read files from sandbox */\n FILE_READ: 'octavus_file_read',\n\n // === Image Generation ===\n /** Generate images using AI models */\n GENERATE_IMAGE: 'octavus_generate_image',\n} as const;\n\nexport type OctavusInternalToolName =\n (typeof OCTAVUS_INTERNAL_TOOLS)[keyof typeof OCTAVUS_INTERNAL_TOOLS];\n\n/**\n * Check if a tool name is an internal Octavus tool.\n *\n * Internal tools are reserved by Octavus and executed server-side.\n * User-defined tools cannot start with \"octavus_\".\n *\n * @example\n * ```typescript\n * if (isOctavusInternalTool(toolName)) {\n * // This is an internal Octavus tool, skip client handling\n * }\n * ```\n */\nexport function isOctavusInternalTool(toolName: string): boolean {\n return toolName.startsWith(OCTAVUS_INTERNAL_PREFIX);\n}\n\n/**\n * Skill tool names (subset of internal tools).\n *\n * Use this for skill-specific filtering. For checking if any tool is internal,\n * use `isOctavusInternalTool()` instead.\n */\nexport const OCTAVUS_SKILL_TOOLS = {\n SKILL_READ: OCTAVUS_INTERNAL_TOOLS.SKILL_READ,\n SKILL_LIST: OCTAVUS_INTERNAL_TOOLS.SKILL_LIST,\n SKILL_RUN: OCTAVUS_INTERNAL_TOOLS.SKILL_RUN,\n CODE_RUN: OCTAVUS_INTERNAL_TOOLS.CODE_RUN,\n FILE_WRITE: OCTAVUS_INTERNAL_TOOLS.FILE_WRITE,\n FILE_READ: OCTAVUS_INTERNAL_TOOLS.FILE_READ,\n} as const;\n\nexport type OctavusSkillToolName = (typeof OCTAVUS_SKILL_TOOLS)[keyof typeof OCTAVUS_SKILL_TOOLS];\n\n/**\n * Check if a tool name is an Octavus skill tool.\n *\n * Skill tools are a subset of internal tools that execute in E2B sandboxes.\n *\n * @example\n * ```typescript\n * if (isOctavusSkillTool(event.toolName)) {\n * // This is a skill tool, executed in E2B sandbox\n * const skillSlug = event.input?.skill;\n * }\n * ```\n */\nexport function isOctavusSkillTool(toolName: string): toolName is OctavusSkillToolName {\n return Object.values(OCTAVUS_SKILL_TOOLS).includes(toolName as OctavusSkillToolName);\n}\n","/**\n * Skill-specific utilities.\n *\n * For internal tool definitions and checking, see internal-tools.ts\n */\n\nimport {\n isOctavusSkillTool,\n OCTAVUS_SKILL_TOOLS,\n type OctavusSkillToolName,\n} from './internal-tools';\n\n// Re-export skill tool constants for backward compatibility\nexport { OCTAVUS_SKILL_TOOLS, isOctavusSkillTool, type OctavusSkillToolName };\n\n/**\n * Extract skill slug from skill tool arguments.\n *\n * Most skill tools include a `skill` parameter with the skill slug.\n * Returns undefined if the tool is not a skill tool or if the skill slug is not present.\n *\n * @example\n * ```typescript\n * const slug = getSkillSlugFromToolCall(event.toolName, event.input);\n * if (slug) {\n * console.log(`Using skill: ${slug}`);\n * }\n * ```\n */\nexport function getSkillSlugFromToolCall(\n toolName: string,\n args: Record<string, unknown> | undefined,\n): string | undefined {\n if (!isOctavusSkillTool(toolName) || !args) {\n return undefined;\n }\n\n // Most skill tools have a 'skill' parameter\n if (typeof args.skill === 'string') {\n return args.skill;\n }\n\n return undefined;\n}\n"],"mappings":"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","names":[]}
|