@octavus/core 2.4.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 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 and user messages for file attachments.
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 {
@@ -194,6 +194,8 @@ interface ToolCallInfo {
194
194
  error?: string;
195
195
  /** Google Gemini 3 thought signature - required for tool call continuation */
196
196
  thoughtSignature?: string;
197
+ /** Display mode from tool definition - controls what data flows to UIMessage */
198
+ display?: DisplayMode;
197
199
  }
198
200
  /** Signals the start of a response message */
199
201
  interface StartEvent {
@@ -468,6 +470,8 @@ interface ToolResult {
468
470
  toolName?: string;
469
471
  result?: unknown;
470
472
  error?: string;
473
+ /** Files produced by the tool (e.g., screenshots, generated images). */
474
+ files?: FileReference[];
471
475
  outputVariable?: string;
472
476
  blockIndex?: number;
473
477
  /** Thread name where this tool call originated (for workers with threads) */
@@ -650,6 +654,8 @@ interface ToolResultEntry {
650
654
  toolCallId: string;
651
655
  toolName?: string;
652
656
  result: unknown;
657
+ /** Files produced by the tool, included as visual content for the LLM. */
658
+ files?: FileReference[];
653
659
  }
654
660
  /**
655
661
  * Internal chat message - stored in session state, used by LLM
@@ -705,6 +711,12 @@ interface UIReasoningPart {
705
711
  status: UIPartStatus;
706
712
  /** Thread name (undefined or 'main' for main thread) */
707
713
  thread?: string;
714
+ /**
715
+ * Provider-specific metadata for this reasoning block.
716
+ * Used to preserve cryptographic signatures across session restore.
717
+ * e.g. `{ anthropic: { signature: "..." } }`
718
+ */
719
+ providerMetadata?: Record<string, unknown>;
708
720
  }
709
721
  /**
710
722
  * Tool call status for UI
@@ -725,6 +737,12 @@ interface UIToolCallPart {
725
737
  status: UIToolCallStatus;
726
738
  /** Thread name (undefined or 'main' for main thread) */
727
739
  thread?: string;
740
+ /**
741
+ * Provider-specific metadata for this tool call.
742
+ * Used to preserve cryptographic signatures across session restore.
743
+ * e.g. `{ google: { thoughtSignature: "..." } }`
744
+ */
745
+ providerMetadata?: Record<string, unknown>;
728
746
  }
729
747
  /**
730
748
  * Operation status for UI
@@ -950,26 +968,33 @@ declare function isOtherThread(part: {
950
968
  * - Octavus Events (----): Octavus-specific protocol events
951
969
  */
952
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>;
953
981
  declare const toolResultSchema: z.ZodObject<{
954
982
  toolCallId: z.ZodString;
955
983
  toolName: z.ZodOptional<z.ZodString>;
956
984
  result: z.ZodOptional<z.ZodUnknown>;
957
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>>>;
958
993
  outputVariable: z.ZodOptional<z.ZodString>;
959
994
  blockIndex: z.ZodOptional<z.ZodNumber>;
960
995
  thread: z.ZodOptional<z.ZodString>;
961
996
  workerId: z.ZodOptional<z.ZodString>;
962
997
  }, z.core.$strip>;
963
- /**
964
- * Schema for file references used in trigger input and user messages.
965
- */
966
- declare const fileReferenceSchema: z.ZodObject<{
967
- id: z.ZodString;
968
- mediaType: z.ZodString;
969
- url: z.ZodString;
970
- filename: z.ZodOptional<z.ZodString>;
971
- size: z.ZodOptional<z.ZodNumber>;
972
- }, z.core.$strip>;
973
998
  declare const chatMessageSchema: z.ZodObject<{
974
999
  id: z.ZodString;
975
1000
  role: z.ZodEnum<{
@@ -1003,6 +1028,13 @@ declare const chatMessageSchema: z.ZodObject<{
1003
1028
  }>;
1004
1029
  result: z.ZodOptional<z.ZodUnknown>;
1005
1030
  error: z.ZodOptional<z.ZodString>;
1031
+ thoughtSignature: z.ZodOptional<z.ZodString>;
1032
+ display: z.ZodOptional<z.ZodEnum<{
1033
+ name: "name";
1034
+ hidden: "hidden";
1035
+ description: "description";
1036
+ stream: "stream";
1037
+ }>>;
1006
1038
  }, z.core.$strip>>;
1007
1039
  operation: z.ZodOptional<z.ZodObject<{
1008
1040
  id: z.ZodString;
@@ -1063,6 +1095,13 @@ declare const chatMessageSchema: z.ZodObject<{
1063
1095
  }>;
1064
1096
  result: z.ZodOptional<z.ZodUnknown>;
1065
1097
  error: z.ZodOptional<z.ZodString>;
1098
+ thoughtSignature: z.ZodOptional<z.ZodString>;
1099
+ display: z.ZodOptional<z.ZodEnum<{
1100
+ name: "name";
1101
+ hidden: "hidden";
1102
+ description: "description";
1103
+ stream: "stream";
1104
+ }>>;
1066
1105
  }, z.core.$strip>>;
1067
1106
  operation: z.ZodOptional<z.ZodObject<{
1068
1107
  id: z.ZodString;
@@ -1117,6 +1156,13 @@ declare const chatMessageSchema: z.ZodObject<{
1117
1156
  }>;
1118
1157
  result: z.ZodOptional<z.ZodUnknown>;
1119
1158
  error: z.ZodOptional<z.ZodString>;
1159
+ thoughtSignature: z.ZodOptional<z.ZodString>;
1160
+ display: z.ZodOptional<z.ZodEnum<{
1161
+ name: "name";
1162
+ hidden: "hidden";
1163
+ description: "description";
1164
+ stream: "stream";
1165
+ }>>;
1120
1166
  }, z.core.$strip>>>;
1121
1167
  reasoning: z.ZodOptional<z.ZodString>;
1122
1168
  reasoningSignature: z.ZodOptional<z.ZodString>;
@@ -1147,6 +1193,7 @@ declare const uiWorkerPartSchema: z.ZodObject<{
1147
1193
  done: "done";
1148
1194
  }>;
1149
1195
  thread: z.ZodOptional<z.ZodString>;
1196
+ providerMetadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1150
1197
  }, z.core.$strip>, z.ZodObject<{
1151
1198
  type: z.ZodLiteral<"tool-call">;
1152
1199
  toolCallId: z.ZodString;
@@ -1162,6 +1209,7 @@ declare const uiWorkerPartSchema: z.ZodObject<{
1162
1209
  running: "running";
1163
1210
  }>;
1164
1211
  thread: z.ZodOptional<z.ZodString>;
1212
+ providerMetadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1165
1213
  }, z.core.$strip>, z.ZodObject<{
1166
1214
  type: z.ZodLiteral<"operation">;
1167
1215
  operationId: z.ZodString;
@@ -1234,6 +1282,7 @@ declare const uiMessagePartSchema: z.ZodUnion<readonly [z.ZodObject<{
1234
1282
  done: "done";
1235
1283
  }>;
1236
1284
  thread: z.ZodOptional<z.ZodString>;
1285
+ providerMetadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1237
1286
  }, z.core.$strip>, z.ZodObject<{
1238
1287
  type: z.ZodLiteral<"tool-call">;
1239
1288
  toolCallId: z.ZodString;
@@ -1249,6 +1298,7 @@ declare const uiMessagePartSchema: z.ZodUnion<readonly [z.ZodObject<{
1249
1298
  running: "running";
1250
1299
  }>;
1251
1300
  thread: z.ZodOptional<z.ZodString>;
1301
+ providerMetadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1252
1302
  }, z.core.$strip>, z.ZodObject<{
1253
1303
  type: z.ZodLiteral<"operation">;
1254
1304
  operationId: z.ZodString;
@@ -1317,6 +1367,7 @@ declare const uiMessagePartSchema: z.ZodUnion<readonly [z.ZodObject<{
1317
1367
  done: "done";
1318
1368
  }>;
1319
1369
  thread: z.ZodOptional<z.ZodString>;
1370
+ providerMetadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1320
1371
  }, z.core.$strip>, z.ZodObject<{
1321
1372
  type: z.ZodLiteral<"tool-call">;
1322
1373
  toolCallId: z.ZodString;
@@ -1332,6 +1383,7 @@ declare const uiMessagePartSchema: z.ZodUnion<readonly [z.ZodObject<{
1332
1383
  running: "running";
1333
1384
  }>;
1334
1385
  thread: z.ZodOptional<z.ZodString>;
1386
+ providerMetadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1335
1387
  }, z.core.$strip>, z.ZodObject<{
1336
1388
  type: z.ZodLiteral<"operation">;
1337
1389
  operationId: z.ZodString;
@@ -1410,6 +1462,7 @@ declare const uiMessageSchema: z.ZodObject<{
1410
1462
  done: "done";
1411
1463
  }>;
1412
1464
  thread: z.ZodOptional<z.ZodString>;
1465
+ providerMetadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1413
1466
  }, z.core.$strip>, z.ZodObject<{
1414
1467
  type: z.ZodLiteral<"tool-call">;
1415
1468
  toolCallId: z.ZodString;
@@ -1425,6 +1478,7 @@ declare const uiMessageSchema: z.ZodObject<{
1425
1478
  running: "running";
1426
1479
  }>;
1427
1480
  thread: z.ZodOptional<z.ZodString>;
1481
+ providerMetadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1428
1482
  }, z.core.$strip>, z.ZodObject<{
1429
1483
  type: z.ZodLiteral<"operation">;
1430
1484
  operationId: z.ZodString;
@@ -1493,6 +1547,7 @@ declare const uiMessageSchema: z.ZodObject<{
1493
1547
  done: "done";
1494
1548
  }>;
1495
1549
  thread: z.ZodOptional<z.ZodString>;
1550
+ providerMetadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1496
1551
  }, z.core.$strip>, z.ZodObject<{
1497
1552
  type: z.ZodLiteral<"tool-call">;
1498
1553
  toolCallId: z.ZodString;
@@ -1508,6 +1563,7 @@ declare const uiMessageSchema: z.ZodObject<{
1508
1563
  running: "running";
1509
1564
  }>;
1510
1565
  thread: z.ZodOptional<z.ZodString>;
1566
+ providerMetadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
1511
1567
  }, z.core.$strip>, z.ZodObject<{
1512
1568
  type: z.ZodLiteral<"operation">;
1513
1569
  operationId: z.ZodString;
@@ -1720,6 +1776,13 @@ declare function safeParseStreamEvent(data: unknown): z.ZodSafeParseResult<{
1720
1776
  toolName?: string | undefined;
1721
1777
  result?: unknown;
1722
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;
1723
1786
  outputVariable?: string | undefined;
1724
1787
  blockIndex?: number | undefined;
1725
1788
  thread?: string | undefined;
@@ -1773,6 +1836,7 @@ declare function safeParseUIMessage(data: unknown): z.ZodSafeParseResult<{
1773
1836
  text: string;
1774
1837
  status: "streaming" | "done";
1775
1838
  thread?: string | undefined;
1839
+ providerMetadata?: Record<string, unknown> | undefined;
1776
1840
  } | {
1777
1841
  type: "tool-call";
1778
1842
  toolCallId: string;
@@ -1783,6 +1847,7 @@ declare function safeParseUIMessage(data: unknown): z.ZodSafeParseResult<{
1783
1847
  result?: unknown;
1784
1848
  error?: string | undefined;
1785
1849
  thread?: string | undefined;
1850
+ providerMetadata?: Record<string, unknown> | undefined;
1786
1851
  } | {
1787
1852
  type: "operation";
1788
1853
  operationId: string;
@@ -1837,6 +1902,7 @@ declare function safeParseUIMessage(data: unknown): z.ZodSafeParseResult<{
1837
1902
  text: string;
1838
1903
  status: "streaming" | "done";
1839
1904
  thread?: string | undefined;
1905
+ providerMetadata?: Record<string, unknown> | undefined;
1840
1906
  } | {
1841
1907
  type: "tool-call";
1842
1908
  toolCallId: string;
@@ -1847,6 +1913,7 @@ declare function safeParseUIMessage(data: unknown): z.ZodSafeParseResult<{
1847
1913
  result?: unknown;
1848
1914
  error?: string | undefined;
1849
1915
  thread?: string | undefined;
1916
+ providerMetadata?: Record<string, unknown> | undefined;
1850
1917
  } | {
1851
1918
  type: "operation";
1852
1919
  operationId: string;
@@ -1909,6 +1976,7 @@ declare function safeParseUIMessages(data: unknown): z.ZodSafeParseResult<{
1909
1976
  text: string;
1910
1977
  status: "streaming" | "done";
1911
1978
  thread?: string | undefined;
1979
+ providerMetadata?: Record<string, unknown> | undefined;
1912
1980
  } | {
1913
1981
  type: "tool-call";
1914
1982
  toolCallId: string;
@@ -1919,6 +1987,7 @@ declare function safeParseUIMessages(data: unknown): z.ZodSafeParseResult<{
1919
1987
  result?: unknown;
1920
1988
  error?: string | undefined;
1921
1989
  thread?: string | undefined;
1990
+ providerMetadata?: Record<string, unknown> | undefined;
1922
1991
  } | {
1923
1992
  type: "operation";
1924
1993
  operationId: string;
@@ -1973,6 +2042,7 @@ declare function safeParseUIMessages(data: unknown): z.ZodSafeParseResult<{
1973
2042
  text: string;
1974
2043
  status: "streaming" | "done";
1975
2044
  thread?: string | undefined;
2045
+ providerMetadata?: Record<string, unknown> | undefined;
1976
2046
  } | {
1977
2047
  type: "tool-call";
1978
2048
  toolCallId: string;
@@ -1983,6 +2053,7 @@ declare function safeParseUIMessages(data: unknown): z.ZodSafeParseResult<{
1983
2053
  result?: unknown;
1984
2054
  error?: string | undefined;
1985
2055
  thread?: string | undefined;
2056
+ providerMetadata?: Record<string, unknown> | undefined;
1986
2057
  } | {
1987
2058
  type: "operation";
1988
2059
  operationId: string;
@@ -2027,10 +2098,58 @@ declare function isFileReference(value: unknown): value is z.infer<typeof fileRe
2027
2098
  declare function isFileReferenceArray(value: unknown): value is z.infer<typeof fileReferenceSchema>[];
2028
2099
 
2029
2100
  /**
2030
- * Octavus skill tool names
2101
+ * Internal Octavus tool definitions.
2102
+ *
2103
+ * These tools are reserved by Octavus and executed server-side.
2104
+ * User-defined tools and workers cannot use the "octavus_" prefix.
2105
+ */
2106
+ /**
2107
+ * Prefix reserved for internal Octavus tools.
2108
+ * User-defined tools/workers cannot use this prefix.
2109
+ */
2110
+ declare const OCTAVUS_INTERNAL_PREFIX = "octavus_";
2111
+ /**
2112
+ * All internal Octavus tool names.
2031
2113
  *
2032
- * These are internal tools executed in E2B sandboxes.
2033
- * Use these constants to filter skill tool events from external tool call events.
2114
+ * These are tools that are executed server-side by the Octavus runtime.
2115
+ * They should never be sent to client handlers.
2116
+ */
2117
+ declare const OCTAVUS_INTERNAL_TOOLS: {
2118
+ /** Read skill documentation (SKILL.md) */
2119
+ readonly SKILL_READ: "octavus_skill_read";
2120
+ /** List available scripts in a skill */
2121
+ readonly SKILL_LIST: "octavus_skill_list";
2122
+ /** Execute a pre-built skill script */
2123
+ readonly SKILL_RUN: "octavus_skill_run";
2124
+ /** Execute Python/Bash code in sandbox */
2125
+ readonly CODE_RUN: "octavus_code_run";
2126
+ /** Create/write files in sandbox */
2127
+ readonly FILE_WRITE: "octavus_file_write";
2128
+ /** Read files from sandbox */
2129
+ readonly FILE_READ: "octavus_file_read";
2130
+ /** Generate images using AI models */
2131
+ readonly GENERATE_IMAGE: "octavus_generate_image";
2132
+ };
2133
+ type OctavusInternalToolName = (typeof OCTAVUS_INTERNAL_TOOLS)[keyof typeof OCTAVUS_INTERNAL_TOOLS];
2134
+ /**
2135
+ * Check if a tool name is an internal Octavus tool.
2136
+ *
2137
+ * Internal tools are reserved by Octavus and executed server-side.
2138
+ * User-defined tools cannot start with "octavus_".
2139
+ *
2140
+ * @example
2141
+ * ```typescript
2142
+ * if (isOctavusInternalTool(toolName)) {
2143
+ * // This is an internal Octavus tool, skip client handling
2144
+ * }
2145
+ * ```
2146
+ */
2147
+ declare function isOctavusInternalTool(toolName: string): boolean;
2148
+ /**
2149
+ * Skill tool names (subset of internal tools).
2150
+ *
2151
+ * Use this for skill-specific filtering. For checking if any tool is internal,
2152
+ * use `isOctavusInternalTool()` instead.
2034
2153
  */
2035
2154
  declare const OCTAVUS_SKILL_TOOLS: {
2036
2155
  readonly SKILL_READ: "octavus_skill_read";
@@ -2042,21 +2161,28 @@ declare const OCTAVUS_SKILL_TOOLS: {
2042
2161
  };
2043
2162
  type OctavusSkillToolName = (typeof OCTAVUS_SKILL_TOOLS)[keyof typeof OCTAVUS_SKILL_TOOLS];
2044
2163
  /**
2045
- * Check if a tool name is an Octavus skill tool
2164
+ * Check if a tool name is an Octavus skill tool.
2165
+ *
2166
+ * Skill tools are a subset of internal tools that execute in E2B sandboxes.
2046
2167
  *
2047
2168
  * @example
2048
2169
  * ```typescript
2049
2170
  * if (isOctavusSkillTool(event.toolName)) {
2050
2171
  * // This is a skill tool, executed in E2B sandbox
2051
2172
  * const skillSlug = event.input?.skill;
2052
- * } else {
2053
- * // This is an external tool, executed on consumer's server
2054
2173
  * }
2055
2174
  * ```
2056
2175
  */
2057
2176
  declare function isOctavusSkillTool(toolName: string): toolName is OctavusSkillToolName;
2177
+
2178
+ /**
2179
+ * Skill-specific utilities.
2180
+ *
2181
+ * For internal tool definitions and checking, see internal-tools.ts
2182
+ */
2183
+
2058
2184
  /**
2059
- * Extract skill slug from skill tool arguments
2185
+ * Extract skill slug from skill tool arguments.
2060
2186
  *
2061
2187
  * Most skill tools include a `skill` parameter with the skill slug.
2062
2188
  * Returns undefined if the tool is not a skill tool or if the skill slug is not present.
@@ -2071,4 +2197,4 @@ declare function isOctavusSkillTool(toolName: string): toolName is OctavusSkillT
2071
2197
  */
2072
2198
  declare function getSkillSlugFromToolCall(toolName: string, args: Record<string, unknown> | undefined): string | undefined;
2073
2199
 
2074
- export { AppError, type BlockEndEvent, type BlockStartEvent, type ChatMessage, type ClientToolRequestEvent, ConflictError, type CreateErrorEventOptions, type DisplayMode, type ErrorEvent, type ErrorSource, type ErrorType, type FileAvailableEvent, type FileInfo, type FileReference, type FinishEvent, type FinishReason, ForbiddenError, type GeneratedFile, MAIN_THREAD, type MessagePart, type MessagePartType, type MessageRole, NotFoundError, OCTAVUS_SKILL_TOOLS, type ObjectInfo, OctavusError, type OctavusErrorOptions, type OctavusSkillToolName, type OperationInfo, type PendingToolCall, type ProviderErrorInfo, type ReasoningDeltaEvent, type ReasoningEndEvent, type ReasoningStartEvent, type ResourceUpdateEvent, type ResourceUpdateHandler, type SourceDocumentEvent, type SourceDocumentInfo, type SourceEvent, type SourceInfo, type SourceUrlEvent, type SourceUrlInfo, type StartEvent, type StreamEvent, type TextDeltaEvent, type TextEndEvent, type TextStartEvent, type ToolCallInfo, type ToolCallStatus, type ToolErrorInfo, type ToolHandler, type ToolHandlers, type ToolInputAvailableEvent, type ToolInputDeltaEvent, type ToolInputEndEvent, type ToolInputStartEvent, type ToolOutputAvailableEvent, type ToolOutputErrorEvent, type ToolRequestEvent, type ToolResult, type ToolResultEntry, type UIFilePart, type UIMessage, type UIMessagePart, type UIMessageStatus, type UIObjectPart, type UIObjectStatus, type UIOperationPart, type UIOperationStatus, type UIPartStatus, type UIReasoningPart, type UISourceDocumentPart, type UISourcePart, type UISourceUrlPart, type UITextPart, type UIToolCallPart, type UIToolCallStatus, type UIWorkerPart, type UIWorkerStatus, ValidationError, type WorkerPartInfo, type WorkerResultEvent, type WorkerStartEvent, chatMessageSchema, createApiErrorEvent, createErrorEvent, createInternalErrorEvent, errorToStreamEvent, fileReferenceSchema, generateId, getSkillSlugFromToolCall, isAbortError, isAuthenticationError, isFileReference, isFileReferenceArray, isMainThread, isOctavusSkillTool, isOtherThread, isProviderError, isRateLimitError, isRetryableError, isToolError, isValidationError, resolveThread, safeParseStreamEvent, safeParseUIMessage, safeParseUIMessages, threadForPart, toolResultSchema, uiMessagePartSchema, uiMessageSchema, uiWorkerPartSchema, uiWorkerStatusSchema };
2200
+ export { AppError, type BlockEndEvent, type BlockStartEvent, type ChatMessage, type ClientToolRequestEvent, ConflictError, type CreateErrorEventOptions, type DisplayMode, type ErrorEvent, type ErrorSource, type ErrorType, type FileAvailableEvent, type FileInfo, type FileReference, type FinishEvent, type FinishReason, ForbiddenError, type GeneratedFile, MAIN_THREAD, type MessagePart, type MessagePartType, type MessageRole, NotFoundError, OCTAVUS_INTERNAL_PREFIX, OCTAVUS_INTERNAL_TOOLS, OCTAVUS_SKILL_TOOLS, type ObjectInfo, OctavusError, type OctavusErrorOptions, type OctavusInternalToolName, type OctavusSkillToolName, type OperationInfo, type PendingToolCall, type ProviderErrorInfo, type ReasoningDeltaEvent, type ReasoningEndEvent, type ReasoningStartEvent, type ResourceUpdateEvent, type ResourceUpdateHandler, type SourceDocumentEvent, type SourceDocumentInfo, type SourceEvent, type SourceInfo, type SourceUrlEvent, type SourceUrlInfo, type StartEvent, type StreamEvent, type TextDeltaEvent, type TextEndEvent, type TextStartEvent, type ToolCallInfo, type ToolCallStatus, type ToolErrorInfo, type ToolHandler, type ToolHandlers, type ToolInputAvailableEvent, type ToolInputDeltaEvent, type ToolInputEndEvent, type ToolInputStartEvent, type ToolOutputAvailableEvent, type ToolOutputErrorEvent, type ToolRequestEvent, type ToolResult, type ToolResultEntry, type UIFilePart, type UIMessage, type UIMessagePart, type UIMessageStatus, type UIObjectPart, type UIObjectStatus, type UIOperationPart, type UIOperationStatus, type UIPartStatus, type UIReasoningPart, type UISourceDocumentPart, type UISourcePart, type UISourceUrlPart, type UITextPart, type UIToolCallPart, type UIToolCallStatus, type UIWorkerPart, type UIWorkerStatus, ValidationError, type WorkerPartInfo, type WorkerResultEvent, type WorkerStartEvent, chatMessageSchema, createApiErrorEvent, createErrorEvent, createInternalErrorEvent, errorToStreamEvent, fileReferenceSchema, generateId, getSkillSlugFromToolCall, isAbortError, isAuthenticationError, isFileReference, isFileReferenceArray, isMainThread, isOctavusInternalTool, isOctavusSkillTool, isOtherThread, isProviderError, isRateLimitError, isRetryableError, isToolError, isValidationError, resolveThread, safeParseStreamEvent, safeParseUIMessage, safeParseUIMessages, threadForPart, toolResultSchema, uiMessagePartSchema, uiMessageSchema, uiWorkerPartSchema, uiWorkerStatusSchema };
package/dist/index.js CHANGED
@@ -224,7 +224,9 @@ var toolCallInfoSchema = z.object({
224
224
  arguments: z.record(z.string(), z.unknown()),
225
225
  status: toolCallStatusSchema,
226
226
  result: z.unknown().optional(),
227
- error: z.string().optional()
227
+ error: z.string().optional(),
228
+ thoughtSignature: z.string().optional(),
229
+ display: displayModeSchema.optional()
228
230
  });
229
231
  var startEventSchema = z.object({
230
232
  type: z.literal("start"),
@@ -388,6 +390,13 @@ var resourceUpdateEventSchema = z.object({
388
390
  name: z.string(),
389
391
  value: z.unknown()
390
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
+ });
391
400
  var pendingToolCallSchema = z.object({
392
401
  toolCallId: z.string(),
393
402
  toolName: z.string(),
@@ -403,6 +412,7 @@ var toolResultSchema = z.object({
403
412
  toolName: z.string().optional(),
404
413
  result: z.unknown().optional(),
405
414
  error: z.string().optional(),
415
+ files: z.array(fileReferenceSchema).optional(),
406
416
  outputVariable: z.string().optional(),
407
417
  blockIndex: z.number().optional(),
408
418
  thread: z.string().optional(),
@@ -419,13 +429,6 @@ var clientToolRequestEventSchema = z.object({
419
429
  toolCalls: z.array(pendingToolCallSchema),
420
430
  serverToolResults: z.array(toolResultSchema).optional()
421
431
  });
422
- var fileReferenceSchema = z.object({
423
- id: z.string(),
424
- mediaType: z.string(),
425
- url: z.string(),
426
- filename: z.string().optional(),
427
- size: z.number().optional()
428
- });
429
432
  var fileAvailableEventSchema = z.object({
430
433
  type: z.literal("file-available"),
431
434
  id: z.string(),
@@ -582,7 +585,8 @@ var uiReasoningPartSchema = z.object({
582
585
  type: z.literal("reasoning"),
583
586
  text: z.string(),
584
587
  status: uiPartStatusSchema,
585
- thread: z.string().optional()
588
+ thread: z.string().optional(),
589
+ providerMetadata: z.record(z.string(), z.unknown()).optional()
586
590
  });
587
591
  var uiToolCallPartSchema = z.object({
588
592
  type: z.literal("tool-call"),
@@ -593,7 +597,8 @@ var uiToolCallPartSchema = z.object({
593
597
  result: z.unknown().optional(),
594
598
  error: z.string().optional(),
595
599
  status: uiToolCallStatusSchema,
596
- thread: z.string().optional()
600
+ thread: z.string().optional(),
601
+ providerMetadata: z.record(z.string(), z.unknown()).optional()
597
602
  });
598
603
  var uiOperationStatusSchema = z.enum(["running", "done"]);
599
604
  var uiOperationPartSchema = z.object({
@@ -700,18 +705,42 @@ function isFileReferenceArray(value) {
700
705
  return z.array(fileReferenceSchema).safeParse(value).success;
701
706
  }
702
707
 
703
- // src/skills.ts
704
- var OCTAVUS_SKILL_TOOLS = {
708
+ // src/internal-tools.ts
709
+ var OCTAVUS_INTERNAL_PREFIX = "octavus_";
710
+ var OCTAVUS_INTERNAL_TOOLS = {
711
+ // === Skill Tools (executed in E2B sandboxes) ===
712
+ /** Read skill documentation (SKILL.md) */
705
713
  SKILL_READ: "octavus_skill_read",
714
+ /** List available scripts in a skill */
706
715
  SKILL_LIST: "octavus_skill_list",
716
+ /** Execute a pre-built skill script */
707
717
  SKILL_RUN: "octavus_skill_run",
718
+ /** Execute Python/Bash code in sandbox */
708
719
  CODE_RUN: "octavus_code_run",
720
+ /** Create/write files in sandbox */
709
721
  FILE_WRITE: "octavus_file_write",
710
- FILE_READ: "octavus_file_read"
722
+ /** Read files from sandbox */
723
+ FILE_READ: "octavus_file_read",
724
+ // === Image Generation ===
725
+ /** Generate images using AI models */
726
+ GENERATE_IMAGE: "octavus_generate_image"
727
+ };
728
+ function isOctavusInternalTool(toolName) {
729
+ return toolName.startsWith(OCTAVUS_INTERNAL_PREFIX);
730
+ }
731
+ var OCTAVUS_SKILL_TOOLS = {
732
+ SKILL_READ: OCTAVUS_INTERNAL_TOOLS.SKILL_READ,
733
+ SKILL_LIST: OCTAVUS_INTERNAL_TOOLS.SKILL_LIST,
734
+ SKILL_RUN: OCTAVUS_INTERNAL_TOOLS.SKILL_RUN,
735
+ CODE_RUN: OCTAVUS_INTERNAL_TOOLS.CODE_RUN,
736
+ FILE_WRITE: OCTAVUS_INTERNAL_TOOLS.FILE_WRITE,
737
+ FILE_READ: OCTAVUS_INTERNAL_TOOLS.FILE_READ
711
738
  };
712
739
  function isOctavusSkillTool(toolName) {
713
740
  return Object.values(OCTAVUS_SKILL_TOOLS).includes(toolName);
714
741
  }
742
+
743
+ // src/skills.ts
715
744
  function getSkillSlugFromToolCall(toolName, args) {
716
745
  if (!isOctavusSkillTool(toolName) || !args) {
717
746
  return void 0;
@@ -727,6 +756,8 @@ export {
727
756
  ForbiddenError,
728
757
  MAIN_THREAD,
729
758
  NotFoundError,
759
+ OCTAVUS_INTERNAL_PREFIX,
760
+ OCTAVUS_INTERNAL_TOOLS,
730
761
  OCTAVUS_SKILL_TOOLS,
731
762
  OctavusError,
732
763
  ValidationError,
@@ -743,6 +774,7 @@ export {
743
774
  isFileReference,
744
775
  isFileReferenceArray,
745
776
  isMainThread,
777
+ isOctavusInternalTool,
746
778
  isOctavusSkillTool,
747
779
  isOtherThread,
748
780
  isProviderError,
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/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});\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});\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});\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 * Octavus skill tool names\n *\n * These are internal tools executed in E2B sandboxes.\n * Use these constants to filter skill tool events from external tool call events.\n */\nexport const OCTAVUS_SKILL_TOOLS = {\n SKILL_READ: 'octavus_skill_read',\n SKILL_LIST: 'octavus_skill_list',\n SKILL_RUN: 'octavus_skill_run',\n CODE_RUN: 'octavus_code_run',\n FILE_WRITE: 'octavus_file_write',\n FILE_READ: 'octavus_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 * @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 * } else {\n * // This is an external tool, executed on consumer's server\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/**\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":";AAAO,IAAM,WAAN,cAAuB,MAAM;AAAA,EAClC,YACE,SACO,MACA,aAAa,KACpB;AACA,UAAM,OAAO;AAHN;AACA;AAGP,SAAK,OAAO;AAAA,EACd;AACF;AAEO,IAAM,gBAAN,cAA4B,SAAS;AAAA,EAC1C,YAAY,UAAkB,IAAY;AACxC,UAAM,GAAG,QAAQ,eAAe,EAAE,IAAI,aAAa,GAAG;AACtD,SAAK,OAAO;AAAA,EACd;AACF;AAEO,IAAM,kBAAN,cAA8B,SAAS;AAAA,EAC5C,YACE,SACO,QACP;AACA,UAAM,SAAS,oBAAoB,GAAG;AAF/B;AAGP,SAAK,OAAO;AAAA,EACd;AACF;AAEO,IAAM,gBAAN,cAA4B,SAAS;AAAA,EAC1C,YAAY,UAAkB,YAAoB;AAChD,UAAM,GAAG,QAAQ,oBAAoB,UAAU,IAAI,YAAY,GAAG;AAClE,SAAK,OAAO;AAAA,EACd;AACF;AAEO,IAAM,iBAAN,cAA6B,SAAS;AAAA,EAC3C,YAAY,UAAU,iBAAiB;AACrC,UAAM,SAAS,aAAa,GAAG;AAC/B,SAAK,OAAO;AAAA,EACd;AACF;;;AC5BA,IAAM,aAAa;AA2BZ,IAAM,eAAN,cAA2B,MAAM;AAAA;AAAA,EAE7B,uBAAuB;AAAA;AAAA,EAGvB;AAAA;AAAA,EAGA;AAAA;AAAA,EAGA;AAAA;AAAA,EAGA;AAAA;AAAA,EAGA;AAAA;AAAA,EAGA;AAAA;AAAA,EAGA;AAAA,EAET,YAAY,SAA8B;AACxC,UAAM,QAAQ,OAAO;AACrB,SAAK,OAAO;AACZ,SAAK,YAAY,QAAQ;AACzB,SAAK,SAAS,QAAQ;AACtB,SAAK,YAAY,QAAQ,aAAa;AACtC,SAAK,aAAa,QAAQ;AAC1B,SAAK,OAAO,QAAQ;AACpB,SAAK,WAAW,QAAQ;AACxB,SAAK,OAAO,QAAQ;AAGpB,QAAI,QAAQ,iBAAiB,SAAS,QAAQ,MAAM,OAAO;AACzD,WAAK,QAAQ,GAAG,KAAK,KAAK;AAAA,aAAgB,QAAQ,MAAM,KAAK;AAAA,IAC/D;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,OAAO,WAAW,OAAuC;AACvD,WACE,OAAO,UAAU,YACjB,UAAU,QACV,0BAA0B,SACzB,MAA2C,yBAAyB;AAAA,EAEzE;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,SAAkC;AAChC,WAAO;AAAA,MACL,MAAM,KAAK;AAAA,MACX,SAAS,KAAK;AAAA,MACd,WAAW,KAAK;AAAA,MAChB,QAAQ,KAAK;AAAA,MACb,WAAW,KAAK;AAAA,MAChB,YAAY,KAAK;AAAA,MACjB,MAAM,KAAK;AAAA,MACX,UAAU,KAAK;AAAA,MACf,MAAM,KAAK;AAAA,IACb;AAAA,EACF;AACF;AASO,SAAS,iBAAiB,OAAuC;AACtE,SACE,aAAa,WAAW,KAAK,MAC5B,MAAM,cAAc,sBAAsB,MAAM,cAAc;AAEnE;AAKO,SAAS,sBAAsB,OAAuC;AAC3E,SACE,aAAa,WAAW,KAAK,MAC5B,MAAM,cAAc,0BAA0B,MAAM,cAAc;AAEvE;AAKO,SAAS,gBAAgB,OAAuC;AACrE,SAAO,aAAa,WAAW,KAAK,KAAK,MAAM,WAAW;AAC5D;AAKO,SAAS,YAAY,OAAuC;AACjE,SACE,aAAa,WAAW,KAAK,MAAM,MAAM,WAAW,UAAU,MAAM,cAAc;AAEtF;AAKO,SAAS,iBAAiB,OAAyB;AACxD,MAAI,aAAa,WAAW,KAAK,GAAG;AAClC,WAAO,MAAM;AAAA,EACf;AACA,SAAO;AACT;AAKO,SAAS,kBAAkB,OAAuC;AACvE,SAAO,aAAa,WAAW,KAAK,KAAK,MAAM,cAAc;AAC/D;;;AClJO,SAAS,iBAAiB,SAA8C;AAC7E,SAAO;AAAA,IACL,MAAM;AAAA,IACN,WAAW,QAAQ;AAAA,IACnB,SAAS,QAAQ;AAAA,IACjB,QAAQ,QAAQ;AAAA,IAChB,WAAW,QAAQ,aAAa;AAAA,IAChC,YAAY,QAAQ;AAAA,IACpB,MAAM,QAAQ;AAAA,IACd,UAAU,QAAQ;AAAA,IAClB,MAAM,QAAQ;AAAA,EAChB;AACF;AAKO,SAAS,mBAAmB,OAAiC;AAClE,SAAO,iBAAiB;AAAA,IACtB,WAAW,MAAM;AAAA,IACjB,SAAS,MAAM;AAAA,IACf,QAAQ,MAAM;AAAA,IACd,WAAW,MAAM;AAAA,IACjB,YAAY,MAAM;AAAA,IAClB,MAAM,MAAM;AAAA,IACZ,UAAU,MAAM;AAAA,IAChB,MAAM,MAAM;AAAA,EACd,CAAC;AACH;AAMO,SAAS,yBAAyB,SAA6B;AACpE,SAAO,iBAAiB;AAAA,IACtB,WAAW;AAAA,IACX;AAAA,IACA,QAAQ;AAAA,IACR,WAAW;AAAA,EACb,CAAC;AACH;AAKA,SAAS,yBAAyB,YAA+B;AAC/D,UAAQ,YAAY;AAAA,IAClB,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AACH,aAAO;AAAA,IACT,KAAK;AACH,aAAO;AAAA,IACT;AACE,aAAO,cAAc,MAAM,mBAAmB;AAAA,EAClD;AACF;AAWO,SAAS,oBAAoB,YAAoB,SAA6B;AACnF,QAAM,YAAY,yBAAyB,UAAU;AAErD,QAAM,YAAY,eAAe,OAAO,cAAc;AAEtD,SAAO,iBAAiB;AAAA,IACtB;AAAA,IACA;AAAA,IACA,QAAQ;AAAA,IACR;AAAA,EACF,CAAC;AACH;;;ACzGO,SAAS,aAAqB;AACnC,SAAO,GAAG,KAAK,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE,SAAS,EAAE,EAAE,UAAU,GAAG,CAAC,CAAC;AACpE;AAWO,SAAS,aAAa,OAAgC;AAC3D,UACG,iBAAiB,SAAS,iBAAiB,kBAC3C,MAAM,SAAS,gBACd,MAAM,SAAS;AAAA,EACf,MAAM,SAAS;AAErB;;;ACrBO,IAAM,cAAc;AAKpB,SAAS,cAAc,QAAoC;AAChE,SAAO,UAAU;AACnB;AAKO,SAAS,aAAa,QAAqC;AAChE,SAAO,WAAW,UAAa,WAAW;AAC5C;AAMO,SAAS,cAAc,QAAgD;AAC5E,SAAO,aAAa,MAAM,IAAI,SAAY;AAC5C;AAMO,SAAS,cAAc,MAAoC;AAChE,SAAO,CAAC,aAAa,KAAK,MAAM;AAClC;;;ACzBA,SAAS,SAAS;AAEX,IAAM,oBAAoB,EAAE,KAAK,CAAC,UAAU,QAAQ,eAAe,QAAQ,CAAC;AAC5E,IAAM,oBAAoB,EAAE,KAAK,CAAC,QAAQ,aAAa,QAAQ,CAAC;AAChE,IAAM,uBAAuB,EAAE,KAAK,CAAC,WAAW,aAAa,aAAa,OAAO,CAAC;AAClF,IAAM,qBAAqB,EAAE,KAAK;AAAA,EACvC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;AAEM,IAAM,qBAAqB,EAAE,OAAO;AAAA,EACzC,IAAI,EAAE,OAAO;AAAA,EACb,MAAM,EAAE,OAAO;AAAA,EACf,aAAa,EAAE,OAAO,EAAE,SAAS;AAAA,EACjC,WAAW,EAAE,OAAO,EAAE,OAAO,GAAG,EAAE,QAAQ,CAAC;AAAA,EAC3C,QAAQ;AAAA,EACR,QAAQ,EAAE,QAAQ,EAAE,SAAS;AAAA,EAC7B,OAAO,EAAE,OAAO,EAAE,SAAS;AAC7B,CAAC;AAQM,IAAM,mBAAmB,EAAE,OAAO;AAAA,EACvC,MAAM,EAAE,QAAQ,OAAO;AAAA,EACvB,WAAW,EAAE,OAAO,EAAE,SAAS;AAAA,EAC/B,aAAa,EAAE,OAAO,EAAE,SAAS;AACnC,CAAC;AAEM,IAAM,oBAAoB,EAAE,OAAO;AAAA,EACxC,MAAM,EAAE,QAAQ,QAAQ;AAAA,EACxB,cAAc;AAAA,EACd,aAAa,EAAE,OAAO,EAAE,SAAS;AACnC,CAAC;AAED,IAAM,kBAAkB,EAAE,KAAK;AAAA,EAC7B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;AAED,IAAM,oBAAoB,EAAE,KAAK,CAAC,YAAY,YAAY,QAAQ,QAAQ,CAAC;AAE3E,IAAM,0BAA0B,EAAE,OAAO;AAAA,EACvC,MAAM,EAAE,OAAO;AAAA,EACf,OAAO,EAAE,OAAO,EAAE,SAAS;AAAA,EAC3B,YAAY,EAAE,OAAO,EAAE,SAAS;AAAA,EAChC,WAAW,EAAE,OAAO,EAAE,SAAS;AAAA,EAC/B,WAAW,EAAE,OAAO,EAAE,SAAS;AACjC,CAAC;AAED,IAAM,sBAAsB,EAAE,OAAO;AAAA,EACnC,MAAM,EAAE,OAAO;AAAA,EACf,QAAQ,EAAE,OAAO,EAAE,SAAS;AAC9B,CAAC;AAEM,IAAM,mBAAmB,EAAE,OAAO;AAAA,EACvC,MAAM,EAAE,QAAQ,OAAO;AAAA,EACvB,WAAW;AAAA,EACX,SAAS,EAAE,OAAO;AAAA,EAClB,WAAW,EAAE,QAAQ;AAAA,EACrB,QAAQ;AAAA,EACR,YAAY,EAAE,OAAO,EAAE,SAAS;AAAA,EAChC,MAAM,EAAE,OAAO,EAAE,SAAS;AAAA,EAC1B,UAAU,wBAAwB,SAAS;AAAA,EAC3C,MAAM,oBAAoB,SAAS;AACrC,CAAC;AAIM,IAAM,uBAAuB,EAAE,OAAO;AAAA,EAC3C,MAAM,EAAE,QAAQ,YAAY;AAAA,EAC5B,IAAI,EAAE,OAAO;AAAA,EACb,cAAc,EAAE,OAAO,EAAE,SAAS;AAAA,EAClC,UAAU,EAAE,OAAO,EAAE,SAAS;AAChC,CAAC;AAEM,IAAM,uBAAuB,EAAE,OAAO;AAAA,EAC3C,MAAM,EAAE,QAAQ,YAAY;AAAA,EAC5B,IAAI,EAAE,OAAO;AAAA,EACb,OAAO,EAAE,OAAO;AAAA,EAChB,UAAU,EAAE,OAAO,EAAE,SAAS;AAChC,CAAC;AAEM,IAAM,qBAAqB,EAAE,OAAO;AAAA,EACzC,MAAM,EAAE,QAAQ,UAAU;AAAA,EAC1B,IAAI,EAAE,OAAO;AAAA,EACb,UAAU,EAAE,OAAO,EAAE,SAAS;AAChC,CAAC;AAIM,IAAM,4BAA4B,EAAE,OAAO;AAAA,EAChD,MAAM,EAAE,QAAQ,iBAAiB;AAAA,EACjC,IAAI,EAAE,OAAO;AAAA,EACb,UAAU,EAAE,OAAO,EAAE,SAAS;AAChC,CAAC;AAEM,IAAM,4BAA4B,EAAE,OAAO;AAAA,EAChD,MAAM,EAAE,QAAQ,iBAAiB;AAAA,EACjC,IAAI,EAAE,OAAO;AAAA,EACb,OAAO,EAAE,OAAO;AAAA,EAChB,UAAU,EAAE,OAAO,EAAE,SAAS;AAChC,CAAC;AAEM,IAAM,0BAA0B,EAAE,OAAO;AAAA,EAC9C,MAAM,EAAE,QAAQ,eAAe;AAAA,EAC/B,IAAI,EAAE,OAAO;AAAA,EACb,UAAU,EAAE,OAAO,EAAE,SAAS;AAChC,CAAC;AAIM,IAAM,4BAA4B,EAAE,OAAO;AAAA,EAChD,MAAM,EAAE,QAAQ,kBAAkB;AAAA,EAClC,YAAY,EAAE,OAAO;AAAA,EACrB,UAAU,EAAE,OAAO;AAAA,EACnB,OAAO,EAAE,OAAO,EAAE,SAAS;AAAA,EAC3B,UAAU,EAAE,OAAO,EAAE,SAAS;AAChC,CAAC;AAEM,IAAM,4BAA4B,EAAE,OAAO;AAAA,EAChD,MAAM,EAAE,QAAQ,kBAAkB;AAAA,EAClC,YAAY,EAAE,OAAO;AAAA,EACrB,gBAAgB,EAAE,OAAO;AAAA,EACzB,UAAU,EAAE,OAAO,EAAE,SAAS;AAChC,CAAC;AAEM,IAAM,0BAA0B,EAAE,OAAO;AAAA,EAC9C,MAAM,EAAE,QAAQ,gBAAgB;AAAA,EAChC,YAAY,EAAE,OAAO;AAAA,EACrB,UAAU,EAAE,OAAO,EAAE,SAAS;AAChC,CAAC;AAEM,IAAM,gCAAgC,EAAE,OAAO;AAAA,EACpD,MAAM,EAAE,QAAQ,sBAAsB;AAAA,EACtC,YAAY,EAAE,OAAO;AAAA,EACrB,UAAU,EAAE,OAAO;AAAA,EACnB,OAAO,EAAE,QAAQ;AAAA,EACjB,UAAU,EAAE,OAAO,EAAE,SAAS;AAChC,CAAC;AAEM,IAAM,iCAAiC,EAAE,OAAO;AAAA,EACrD,MAAM,EAAE,QAAQ,uBAAuB;AAAA,EACvC,YAAY,EAAE,OAAO;AAAA,EACrB,QAAQ,EAAE,QAAQ;AAAA,EAClB,UAAU,EAAE,OAAO,EAAE,SAAS;AAChC,CAAC;AAEM,IAAM,6BAA6B,EAAE,OAAO;AAAA,EACjD,MAAM,EAAE,QAAQ,mBAAmB;AAAA,EACnC,YAAY,EAAE,OAAO;AAAA,EACrB,OAAO,EAAE,OAAO;AAAA,EAChB,UAAU,EAAE,OAAO,EAAE,SAAS;AAChC,CAAC;AAIM,IAAM,uBAAuB,EAAE,OAAO;AAAA,EAC3C,MAAM,EAAE,QAAQ,QAAQ;AAAA,EACxB,YAAY,EAAE,QAAQ,KAAK;AAAA,EAC3B,IAAI,EAAE,OAAO;AAAA,EACb,KAAK,EAAE,OAAO;AAAA,EACd,OAAO,EAAE,OAAO,EAAE,SAAS;AAAA,EAC3B,UAAU,EAAE,OAAO,EAAE,SAAS;AAChC,CAAC;AAEM,IAAM,4BAA4B,EAAE,OAAO;AAAA,EAChD,MAAM,EAAE,QAAQ,QAAQ;AAAA,EACxB,YAAY,EAAE,QAAQ,UAAU;AAAA,EAChC,IAAI,EAAE,OAAO;AAAA,EACb,WAAW,EAAE,OAAO;AAAA,EACpB,OAAO,EAAE,OAAO;AAAA,EAChB,UAAU,EAAE,OAAO,EAAE,SAAS;AAAA,EAC9B,UAAU,EAAE,OAAO,EAAE,SAAS;AAChC,CAAC;AAEM,IAAM,oBAAoB,EAAE,mBAAmB,cAAc;AAAA,EAClE;AAAA,EACA;AACF,CAAC;AAQM,IAAM,wBAAwB,EAAE,OAAO;AAAA,EAC5C,MAAM,EAAE,QAAQ,aAAa;AAAA,EAC7B,SAAS,EAAE,OAAO;AAAA,EAClB,WAAW,EAAE,OAAO;AAAA,EACpB,WAAW,EAAE,OAAO;AAAA,EACpB,SAAS;AAAA,EACT,aAAa,EAAE,OAAO,EAAE,SAAS;AAAA,EACjC,cAAc,EAAE,QAAQ,EAAE,SAAS;AAAA,EACnC,QAAQ,EAAE,OAAO,EAAE,SAAS;AAAA,EAC5B,UAAU,EAAE,OAAO,EAAE,SAAS;AAChC,CAAC;AAEM,IAAM,sBAAsB,EAAE,OAAO;AAAA,EAC1C,MAAM,EAAE,QAAQ,WAAW;AAAA,EAC3B,SAAS,EAAE,OAAO;AAAA,EAClB,SAAS,EAAE,OAAO,EAAE,SAAS;AAAA,EAC7B,UAAU,EAAE,OAAO,EAAE,SAAS;AAChC,CAAC;AAEM,IAAM,4BAA4B,EAAE,OAAO;AAAA,EAChD,MAAM,EAAE,QAAQ,iBAAiB;AAAA,EACjC,MAAM,EAAE,OAAO;AAAA,EACf,OAAO,EAAE,QAAQ;AACnB,CAAC;AAEM,IAAM,wBAAwB,EAAE,OAAO;AAAA,EAC5C,YAAY,EAAE,OAAO;AAAA,EACrB,UAAU,EAAE,OAAO;AAAA,EACnB,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,EAAE,QAAQ,CAAC;AAAA,EACtC,QAAQ,EAAE,KAAK,CAAC,OAAO,OAAO,CAAC,EAAE,SAAS;AAAA,EAC1C,gBAAgB,EAAE,OAAO,EAAE,SAAS;AAAA,EACpC,YAAY,EAAE,OAAO,EAAE,SAAS;AAAA,EAChC,QAAQ,EAAE,OAAO,EAAE,SAAS;AAAA,EAC5B,UAAU,EAAE,OAAO,EAAE,SAAS;AAChC,CAAC;AAEM,IAAM,mBAAmB,EAAE,OAAO;AAAA,EACvC,YAAY,EAAE,OAAO;AAAA,EACrB,UAAU,EAAE,OAAO,EAAE,SAAS;AAAA,EAC9B,QAAQ,EAAE,QAAQ,EAAE,SAAS;AAAA,EAC7B,OAAO,EAAE,OAAO,EAAE,SAAS;AAAA,EAC3B,gBAAgB,EAAE,OAAO,EAAE,SAAS;AAAA,EACpC,YAAY,EAAE,OAAO,EAAE,SAAS;AAAA,EAChC,QAAQ,EAAE,OAAO,EAAE,SAAS;AAAA,EAC5B,UAAU,EAAE,OAAO,EAAE,SAAS;AAChC,CAAC;AAEM,IAAM,yBAAyB,EAAE,OAAO;AAAA,EAC7C,MAAM,EAAE,QAAQ,cAAc;AAAA,EAC9B,WAAW,EAAE,MAAM,qBAAqB;AAAA,EACxC,UAAU,EAAE,OAAO,EAAE,SAAS;AAChC,CAAC;AAEM,IAAM,+BAA+B,EAAE,OAAO;AAAA,EACnD,MAAM,EAAE,QAAQ,qBAAqB;AAAA,EACrC,aAAa,EAAE,OAAO;AAAA,EACtB,WAAW,EAAE,MAAM,qBAAqB;AAAA,EACxC,mBAAmB,EAAE,MAAM,gBAAgB,EAAE,SAAS;AACxD,CAAC;AAOM,IAAM,sBAAsB,EAAE,OAAO;AAAA,EAC1C,IAAI,EAAE,OAAO;AAAA,EACb,WAAW,EAAE,OAAO;AAAA,EACpB,KAAK,EAAE,OAAO;AAAA,EACd,UAAU,EAAE,OAAO,EAAE,SAAS;AAAA,EAC9B,MAAM,EAAE,OAAO,EAAE,SAAS;AAC5B,CAAC;AAEM,IAAM,2BAA2B,EAAE,OAAO;AAAA,EAC/C,MAAM,EAAE,QAAQ,gBAAgB;AAAA,EAChC,IAAI,EAAE,OAAO;AAAA,EACb,WAAW,EAAE,OAAO;AAAA,EACpB,KAAK,EAAE,OAAO;AAAA,EACd,UAAU,EAAE,OAAO,EAAE,SAAS;AAAA,EAC9B,MAAM,EAAE,OAAO,EAAE,SAAS;AAAA,EAC1B,YAAY,EAAE,OAAO,EAAE,SAAS;AAAA,EAChC,UAAU,EAAE,OAAO,EAAE,SAAS;AAChC,CAAC;AAIM,IAAM,yBAAyB,EAAE,OAAO;AAAA,EAC7C,MAAM,EAAE,QAAQ,cAAc;AAAA,EAC9B,UAAU,EAAE,OAAO;AAAA,EACnB,YAAY,EAAE,OAAO;AAAA,EACrB,aAAa,EAAE,OAAO,EAAE,SAAS;AACnC,CAAC;AAEM,IAAM,0BAA0B,EAAE,OAAO;AAAA,EAC9C,MAAM,EAAE,QAAQ,eAAe;AAAA,EAC/B,UAAU,EAAE,OAAO;AAAA,EACnB,QAAQ,EAAE,QAAQ,EAAE,SAAS;AAAA,EAC7B,OAAO,EAAE,OAAO,EAAE,SAAS;AAC7B,CAAC;AAQM,IAAM,oBAAoB,EAAE,MAAM;AAAA;AAAA,EAEvC;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAEA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAEA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAEA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAEA;AAAA;AAAA,EAEA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA;AAAA,EAEA;AAAA,EACA;AACF,CAAC;AAMM,IAAM,wBAAwB,EAAE,KAAK;AAAA,EAC1C;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;AAEM,IAAM,sBAAsB,EAAE,OAAO;AAAA,EAC1C,YAAY,EAAE,QAAQ,KAAK;AAAA,EAC3B,IAAI,EAAE,OAAO;AAAA,EACb,KAAK,EAAE,OAAO;AAAA,EACd,OAAO,EAAE,OAAO,EAAE,SAAS;AAC7B,CAAC;AAEM,IAAM,2BAA2B,EAAE,OAAO;AAAA,EAC/C,YAAY,EAAE,QAAQ,UAAU;AAAA,EAChC,IAAI,EAAE,OAAO;AAAA,EACb,WAAW,EAAE,OAAO;AAAA,EACpB,OAAO,EAAE,OAAO;AAAA,EAChB,UAAU,EAAE,OAAO,EAAE,SAAS;AAChC,CAAC;AAEM,IAAM,mBAAmB,EAAE,mBAAmB,cAAc;AAAA,EACjE;AAAA,EACA;AACF,CAAC;AAEM,IAAM,iBAAiB,EAAE,OAAO;AAAA,EACrC,IAAI,EAAE,OAAO;AAAA,EACb,WAAW,EAAE,OAAO;AAAA,EACpB,KAAK,EAAE,OAAO;AAAA,EACd,UAAU,EAAE,OAAO,EAAE,SAAS;AAAA,EAC9B,MAAM,EAAE,OAAO,EAAE,SAAS;AAAA,EAC1B,YAAY,EAAE,OAAO,EAAE,SAAS;AAClC,CAAC;AAEM,IAAM,mBAAmB,EAAE,OAAO;AAAA,EACvC,IAAI,EAAE,OAAO;AAAA,EACb,UAAU,EAAE,OAAO;AAAA,EACnB,OAAO,EAAE,QAAQ;AACnB,CAAC;AAEM,IAAM,sBAAsB,EAAE,OAAO;AAAA,EAC1C,IAAI,EAAE,OAAO;AAAA,EACb,MAAM,EAAE,OAAO;AAAA,EACf,eAAe,EAAE,OAAO;AAC1B,CAAC;AAGD,IAAM,wBAAwB,EAAE,OAAO;AAAA,EACrC,MAAM,EAAE,KAAK,CAAC,QAAQ,aAAa,aAAa,aAAa,UAAU,QAAQ,QAAQ,CAAC;AAAA,EACxF,SAAS,EAAE,QAAQ;AAAA,EACnB,SAAS,EAAE,OAAO,EAAE,SAAS;AAAA,EAC7B,UAAU,mBAAmB,SAAS;AAAA,EACtC,WAAW,oBAAoB,SAAS;AAAA,EACxC,QAAQ,iBAAiB,SAAS;AAAA,EAClC,MAAM,eAAe,SAAS;AAAA,EAC9B,QAAQ,iBAAiB,SAAS;AAAA,EAClC,QAAQ,EAAE,OAAO,EAAE,SAAS;AAC9B,CAAC;AAGM,IAAM,uBAAuB,EAAE,OAAO;AAAA,EAC3C,UAAU,EAAE,OAAO;AAAA,EACnB,YAAY,EAAE,OAAO;AAAA,EACrB,aAAa,EAAE,OAAO,EAAE,SAAS;AAAA;AAAA,EAEjC,aAAa,EAAE,MAAM,qBAAqB;AAAA,EAC1C,QAAQ,EAAE,QAAQ,EAAE,SAAS;AAAA,EAC7B,OAAO,EAAE,OAAO,EAAE,SAAS;AAC7B,CAAC;AAGM,IAAM,oBAAoB,EAAE,OAAO;AAAA,EACxC,MAAM;AAAA,EACN,SAAS,EAAE,QAAQ;AAAA,EACnB,SAAS,EAAE,OAAO,EAAE,SAAS;AAAA,EAC7B,UAAU,mBAAmB,SAAS;AAAA,EACtC,WAAW,oBAAoB,SAAS;AAAA,EACxC,QAAQ,iBAAiB,SAAS;AAAA,EAClC,MAAM,eAAe,SAAS;AAAA,EAC9B,QAAQ,iBAAiB,SAAS;AAAA,EAClC,QAAQ,qBAAqB,SAAS;AAAA,EACtC,QAAQ,EAAE,OAAO,EAAE,SAAS;AAC9B,CAAC;AAEM,IAAM,oBAAoB,EAAE,OAAO;AAAA,EACxC,IAAI,EAAE,OAAO;AAAA,EACb,MAAM;AAAA,EACN,OAAO,EAAE,MAAM,iBAAiB;AAAA,EAChC,WAAW,EAAE,OAAO;AAAA,EACpB,SAAS,EAAE,QAAQ,EAAE,SAAS;AAAA,EAC9B,SAAS,EAAE,OAAO;AAAA,EAClB,WAAW,EAAE,MAAM,kBAAkB,EAAE,SAAS;AAAA,EAChD,WAAW,EAAE,OAAO,EAAE,SAAS;AAAA,EAC/B,oBAAoB,EAAE,OAAO,EAAE,SAAS;AAC1C,CAAC;AAMM,IAAM,wBAAwB,EAAE,KAAK,CAAC,aAAa,MAAM,CAAC;AAC1D,IAAM,qBAAqB,EAAE,KAAK,CAAC,aAAa,MAAM,CAAC;AACvD,IAAM,yBAAyB,EAAE,KAAK,CAAC,WAAW,WAAW,QAAQ,OAAO,CAAC;AAE7E,IAAM,mBAAmB,EAAE,OAAO;AAAA,EACvC,MAAM,EAAE,QAAQ,MAAM;AAAA,EACtB,MAAM,EAAE,OAAO;AAAA,EACf,QAAQ;AAAA,EACR,QAAQ,EAAE,OAAO,EAAE,SAAS;AAC9B,CAAC;AAEM,IAAM,wBAAwB,EAAE,OAAO;AAAA,EAC5C,MAAM,EAAE,QAAQ,WAAW;AAAA,EAC3B,MAAM,EAAE,OAAO;AAAA,EACf,QAAQ;AAAA,EACR,QAAQ,EAAE,OAAO,EAAE,SAAS;AAC9B,CAAC;AAEM,IAAM,uBAAuB,EAAE,OAAO;AAAA,EAC3C,MAAM,EAAE,QAAQ,WAAW;AAAA,EAC3B,YAAY,EAAE,OAAO;AAAA,EACrB,UAAU,EAAE,OAAO;AAAA,EACnB,aAAa,EAAE,OAAO,EAAE,SAAS;AAAA,EACjC,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,EAAE,QAAQ,CAAC;AAAA,EACtC,QAAQ,EAAE,QAAQ,EAAE,SAAS;AAAA,EAC7B,OAAO,EAAE,OAAO,EAAE,SAAS;AAAA,EAC3B,QAAQ;AAAA,EACR,QAAQ,EAAE,OAAO,EAAE,SAAS;AAC9B,CAAC;AAEM,IAAM,0BAA0B,EAAE,KAAK,CAAC,WAAW,MAAM,CAAC;AAE1D,IAAM,wBAAwB,EAAE,OAAO;AAAA,EAC5C,MAAM,EAAE,QAAQ,WAAW;AAAA,EAC3B,aAAa,EAAE,OAAO;AAAA,EACtB,MAAM,EAAE,OAAO;AAAA,EACf,eAAe,EAAE,OAAO;AAAA,EACxB,QAAQ;AAAA,EACR,QAAQ,EAAE,OAAO,EAAE,SAAS;AAC9B,CAAC;AAEM,IAAM,wBAAwB,EAAE,OAAO;AAAA,EAC5C,MAAM,EAAE,QAAQ,QAAQ;AAAA,EACxB,YAAY,EAAE,QAAQ,KAAK;AAAA,EAC3B,IAAI,EAAE,OAAO;AAAA,EACb,KAAK,EAAE,OAAO;AAAA,EACd,OAAO,EAAE,OAAO,EAAE,SAAS;AAAA,EAC3B,QAAQ,EAAE,OAAO,EAAE,SAAS;AAC9B,CAAC;AAEM,IAAM,6BAA6B,EAAE,OAAO;AAAA,EACjD,MAAM,EAAE,QAAQ,QAAQ;AAAA,EACxB,YAAY,EAAE,QAAQ,UAAU;AAAA,EAChC,IAAI,EAAE,OAAO;AAAA,EACb,WAAW,EAAE,OAAO;AAAA,EACpB,OAAO,EAAE,OAAO;AAAA,EAChB,UAAU,EAAE,OAAO,EAAE,SAAS;AAAA,EAC9B,QAAQ,EAAE,OAAO,EAAE,SAAS;AAC9B,CAAC;AAEM,IAAM,qBAAqB,EAAE,mBAAmB,cAAc;AAAA,EACnE;AAAA,EACA;AACF,CAAC;AAEM,IAAM,mBAAmB,EAAE,OAAO;AAAA,EACvC,MAAM,EAAE,QAAQ,MAAM;AAAA,EACtB,IAAI,EAAE,OAAO;AAAA,EACb,WAAW,EAAE,OAAO;AAAA,EACpB,KAAK,EAAE,OAAO;AAAA,EACd,UAAU,EAAE,OAAO,EAAE,SAAS;AAAA,EAC9B,MAAM,EAAE,OAAO,EAAE,SAAS;AAAA,EAC1B,YAAY,EAAE,OAAO,EAAE,SAAS;AAAA,EAChC,QAAQ,EAAE,OAAO,EAAE,SAAS;AAC9B,CAAC;AAEM,IAAM,uBAAuB,EAAE,KAAK,CAAC,aAAa,QAAQ,OAAO,CAAC;AAElE,IAAM,qBAAqB,EAAE,OAAO;AAAA,EACzC,MAAM,EAAE,QAAQ,QAAQ;AAAA,EACxB,IAAI,EAAE,OAAO;AAAA,EACb,UAAU,EAAE,OAAO;AAAA,EACnB,SAAS,EAAE,QAAQ,EAAE,SAAS;AAAA,EAC9B,QAAQ,EAAE,QAAQ,EAAE,SAAS;AAAA,EAC7B,QAAQ;AAAA,EACR,OAAO,EAAE,OAAO,EAAE,SAAS;AAAA,EAC3B,QAAQ,EAAE,OAAO,EAAE,SAAS;AAC9B,CAAC;AAEM,IAAM,uBAAuB,EAAE,KAAK,CAAC,WAAW,QAAQ,OAAO,CAAC;AAKvE,IAAM,0BAA0B,EAAE,MAAM;AAAA,EACtC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;AAGM,IAAM,qBAAqB,EAAE,OAAO;AAAA,EACzC,MAAM,EAAE,QAAQ,QAAQ;AAAA,EACxB,UAAU,EAAE,OAAO;AAAA,EACnB,YAAY,EAAE,OAAO;AAAA,EACrB,aAAa,EAAE,OAAO,EAAE,SAAS;AAAA;AAAA,EAEjC,OAAO,EAAE,MAAM,uBAAuB;AAAA,EACtC,QAAQ,EAAE,QAAQ,EAAE,SAAS;AAAA,EAC7B,OAAO,EAAE,OAAO,EAAE,SAAS;AAAA,EAC3B,QAAQ;AACV,CAAC;AAGM,IAAM,sBAAsB,EAAE,MAAM;AAAA,EACzC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,CAAC;AAEM,IAAM,kBAAkB,EAAE,OAAO;AAAA,EACtC,IAAI,EAAE,OAAO;AAAA,EACb,MAAM,EAAE,KAAK,CAAC,QAAQ,WAAW,CAAC;AAAA,EAClC,OAAO,EAAE,MAAM,mBAAmB;AAAA,EAClC,QAAQ;AAAA,EACR,WAAW,EAAE,OAAO,KAAK;AAC3B,CAAC;AAEM,SAAS,qBAAqB,MAAe;AAClD,SAAO,kBAAkB,UAAU,IAAI;AACzC;AAEO,SAAS,mBAAmB,MAAe;AAChD,SAAO,gBAAgB,UAAU,IAAI;AACvC;AAEO,SAAS,oBAAoB,MAAe;AACjD,SAAO,EAAE,MAAM,eAAe,EAAE,UAAU,IAAI;AAChD;AASO,SAAS,gBAAgB,OAA8D;AAC5F,SAAO,oBAAoB,UAAU,KAAK,EAAE;AAC9C;AAKO,SAAS,qBACd,OACgD;AAChD,SAAO,EAAE,MAAM,mBAAmB,EAAE,UAAU,KAAK,EAAE;AACvD;;;AClnBO,IAAM,sBAAsB;AAAA,EACjC,YAAY;AAAA,EACZ,YAAY;AAAA,EACZ,WAAW;AAAA,EACX,UAAU;AAAA,EACV,YAAY;AAAA,EACZ,WAAW;AACb;AAiBO,SAAS,mBAAmB,UAAoD;AACrF,SAAO,OAAO,OAAO,mBAAmB,EAAE,SAAS,QAAgC;AACrF;AAgBO,SAAS,yBACd,UACA,MACoB;AACpB,MAAI,CAAC,mBAAmB,QAAQ,KAAK,CAAC,MAAM;AAC1C,WAAO;AAAA,EACT;AAGA,MAAI,OAAO,KAAK,UAAU,UAAU;AAClC,WAAO,KAAK;AAAA,EACd;AAEA,SAAO;AACT;","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":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@octavus/core",
3
- "version": "2.4.0",
3
+ "version": "2.6.0",
4
4
  "description": "Public types and utilities for Octavus client/server SDK communication",
5
5
  "license": "MIT",
6
6
  "author": "Octavus AI <dev@octavus.ai>",