@octavus/core 0.0.11 → 0.0.12
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 +113 -4
- package/dist/index.js +38 -3
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -67,10 +67,21 @@ interface ErrorEvent {
|
|
|
67
67
|
errorText: string;
|
|
68
68
|
}
|
|
69
69
|
type FinishReason = 'stop' | 'tool-calls' | 'length' | 'content-filter' | 'error' | 'other';
|
|
70
|
-
/**
|
|
70
|
+
/**
|
|
71
|
+
* Start of text generation for a specific text part.
|
|
72
|
+
*
|
|
73
|
+
* If `responseType` is set, the text content is JSON matching a custom type.
|
|
74
|
+
* The client SDK should parse the text as a structured object instead of
|
|
75
|
+
* displaying it as plain text.
|
|
76
|
+
*/
|
|
71
77
|
interface TextStartEvent {
|
|
72
78
|
type: 'text-start';
|
|
73
79
|
id: string;
|
|
80
|
+
/**
|
|
81
|
+
* If specified, the text content is JSON matching this type name.
|
|
82
|
+
* Client SDK should parse as object, not display as text.
|
|
83
|
+
*/
|
|
84
|
+
responseType?: string;
|
|
74
85
|
}
|
|
75
86
|
/** Incremental text content */
|
|
76
87
|
interface TextDeltaEvent {
|
|
@@ -256,7 +267,7 @@ type StreamEvent = StartEvent | FinishEvent | ErrorEvent | TextStartEvent | Text
|
|
|
256
267
|
/**
|
|
257
268
|
* Type of content in a message part (internal)
|
|
258
269
|
*/
|
|
259
|
-
type MessagePartType = 'text' | 'reasoning' | 'tool-call' | 'source' | 'file';
|
|
270
|
+
type MessagePartType = 'text' | 'reasoning' | 'tool-call' | 'source' | 'file' | 'object';
|
|
260
271
|
/**
|
|
261
272
|
* Source info for URL sources (from web search, etc.)
|
|
262
273
|
*/
|
|
@@ -291,6 +302,16 @@ interface FileInfo {
|
|
|
291
302
|
size?: number;
|
|
292
303
|
toolCallId?: string;
|
|
293
304
|
}
|
|
305
|
+
/**
|
|
306
|
+
* Object info for structured output (internal storage)
|
|
307
|
+
*/
|
|
308
|
+
interface ObjectInfo {
|
|
309
|
+
id: string;
|
|
310
|
+
/** Type name from the protocol */
|
|
311
|
+
typeName: string;
|
|
312
|
+
/** The structured object value */
|
|
313
|
+
value: unknown;
|
|
314
|
+
}
|
|
294
315
|
/**
|
|
295
316
|
* A single part of a message, stored in order for proper display (internal)
|
|
296
317
|
*/
|
|
@@ -306,6 +327,8 @@ interface MessagePart {
|
|
|
306
327
|
source?: SourceInfo;
|
|
307
328
|
/** File info for file parts (from skill execution, etc.) */
|
|
308
329
|
file?: FileInfo;
|
|
330
|
+
/** Object info for object parts (structured output) */
|
|
331
|
+
object?: ObjectInfo;
|
|
309
332
|
/** Thread name for non-main-thread content (e.g., "summary") */
|
|
310
333
|
thread?: string;
|
|
311
334
|
}
|
|
@@ -447,10 +470,36 @@ interface UIFilePart {
|
|
|
447
470
|
/** Thread name (undefined or 'main' for main thread) */
|
|
448
471
|
thread?: string;
|
|
449
472
|
}
|
|
473
|
+
/**
|
|
474
|
+
* Status of a UI object part
|
|
475
|
+
*/
|
|
476
|
+
type UIObjectStatus = 'streaming' | 'done' | 'error';
|
|
477
|
+
/**
|
|
478
|
+
* Structured object part in a UI message.
|
|
479
|
+
* Used when the agent response is a typed object (structured output).
|
|
480
|
+
* Client applications can render custom UI based on the typeName.
|
|
481
|
+
*/
|
|
482
|
+
interface UIObjectPart {
|
|
483
|
+
type: 'object';
|
|
484
|
+
/** Unique part ID */
|
|
485
|
+
id: string;
|
|
486
|
+
/** The type name from the protocol (e.g., "ChatResponse") */
|
|
487
|
+
typeName: string;
|
|
488
|
+
/** Partial object while streaming (may have missing/incomplete fields) */
|
|
489
|
+
partial?: unknown;
|
|
490
|
+
/** Final validated object when done */
|
|
491
|
+
object?: unknown;
|
|
492
|
+
/** Current status */
|
|
493
|
+
status: UIObjectStatus;
|
|
494
|
+
/** Error message if status is 'error' */
|
|
495
|
+
error?: string;
|
|
496
|
+
/** Thread name (undefined or 'main' for main thread) */
|
|
497
|
+
thread?: string;
|
|
498
|
+
}
|
|
450
499
|
/**
|
|
451
500
|
* Union of all UI message part types
|
|
452
501
|
*/
|
|
453
|
-
type UIMessagePart = UITextPart | UIReasoningPart | UIToolCallPart | UIOperationPart | UISourcePart | UIFilePart;
|
|
502
|
+
type UIMessagePart = UITextPart | UIReasoningPart | UIToolCallPart | UIOperationPart | UISourcePart | UIFilePart | UIObjectPart;
|
|
454
503
|
/**
|
|
455
504
|
* UI Message - the client-facing message format
|
|
456
505
|
* All complexity is handled by the SDK, this is what consumers render
|
|
@@ -488,10 +537,12 @@ declare const chatMessageSchema: z.ZodObject<{
|
|
|
488
537
|
}>;
|
|
489
538
|
parts: z.ZodArray<z.ZodObject<{
|
|
490
539
|
type: z.ZodEnum<{
|
|
540
|
+
object: "object";
|
|
491
541
|
source: "source";
|
|
492
542
|
text: "text";
|
|
493
543
|
reasoning: "reasoning";
|
|
494
544
|
"tool-call": "tool-call";
|
|
545
|
+
file: "file";
|
|
495
546
|
}>;
|
|
496
547
|
visible: z.ZodBoolean;
|
|
497
548
|
content: z.ZodOptional<z.ZodString>;
|
|
@@ -521,6 +572,19 @@ declare const chatMessageSchema: z.ZodObject<{
|
|
|
521
572
|
title: z.ZodString;
|
|
522
573
|
filename: z.ZodOptional<z.ZodString>;
|
|
523
574
|
}, z.core.$strip>], "sourceType">>;
|
|
575
|
+
file: z.ZodOptional<z.ZodObject<{
|
|
576
|
+
id: z.ZodString;
|
|
577
|
+
mediaType: z.ZodString;
|
|
578
|
+
url: z.ZodString;
|
|
579
|
+
filename: z.ZodOptional<z.ZodString>;
|
|
580
|
+
size: z.ZodOptional<z.ZodNumber>;
|
|
581
|
+
toolCallId: z.ZodOptional<z.ZodString>;
|
|
582
|
+
}, z.core.$strip>>;
|
|
583
|
+
object: z.ZodOptional<z.ZodObject<{
|
|
584
|
+
id: z.ZodString;
|
|
585
|
+
typeName: z.ZodString;
|
|
586
|
+
value: z.ZodUnknown;
|
|
587
|
+
}, z.core.$strip>>;
|
|
524
588
|
thread: z.ZodOptional<z.ZodString>;
|
|
525
589
|
}, z.core.$strip>>;
|
|
526
590
|
createdAt: z.ZodString;
|
|
@@ -608,6 +672,19 @@ declare const uiMessagePartSchema: z.ZodUnion<readonly [z.ZodObject<{
|
|
|
608
672
|
size: z.ZodOptional<z.ZodNumber>;
|
|
609
673
|
toolCallId: z.ZodOptional<z.ZodString>;
|
|
610
674
|
thread: z.ZodOptional<z.ZodString>;
|
|
675
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
676
|
+
type: z.ZodLiteral<"object">;
|
|
677
|
+
id: z.ZodString;
|
|
678
|
+
typeName: z.ZodString;
|
|
679
|
+
partial: z.ZodOptional<z.ZodUnknown>;
|
|
680
|
+
object: z.ZodOptional<z.ZodUnknown>;
|
|
681
|
+
status: z.ZodEnum<{
|
|
682
|
+
streaming: "streaming";
|
|
683
|
+
error: "error";
|
|
684
|
+
done: "done";
|
|
685
|
+
}>;
|
|
686
|
+
error: z.ZodOptional<z.ZodString>;
|
|
687
|
+
thread: z.ZodOptional<z.ZodString>;
|
|
611
688
|
}, z.core.$strip>]>;
|
|
612
689
|
declare const uiMessageSchema: z.ZodObject<{
|
|
613
690
|
id: z.ZodString;
|
|
@@ -680,6 +757,19 @@ declare const uiMessageSchema: z.ZodObject<{
|
|
|
680
757
|
size: z.ZodOptional<z.ZodNumber>;
|
|
681
758
|
toolCallId: z.ZodOptional<z.ZodString>;
|
|
682
759
|
thread: z.ZodOptional<z.ZodString>;
|
|
760
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
761
|
+
type: z.ZodLiteral<"object">;
|
|
762
|
+
id: z.ZodString;
|
|
763
|
+
typeName: z.ZodString;
|
|
764
|
+
partial: z.ZodOptional<z.ZodUnknown>;
|
|
765
|
+
object: z.ZodOptional<z.ZodUnknown>;
|
|
766
|
+
status: z.ZodEnum<{
|
|
767
|
+
streaming: "streaming";
|
|
768
|
+
error: "error";
|
|
769
|
+
done: "done";
|
|
770
|
+
}>;
|
|
771
|
+
error: z.ZodOptional<z.ZodString>;
|
|
772
|
+
thread: z.ZodOptional<z.ZodString>;
|
|
683
773
|
}, z.core.$strip>]>>;
|
|
684
774
|
status: z.ZodEnum<{
|
|
685
775
|
streaming: "streaming";
|
|
@@ -712,6 +802,7 @@ declare function safeParseStreamEvent(data: unknown): z.ZodSafeParseResult<{
|
|
|
712
802
|
} | {
|
|
713
803
|
type: "text-start";
|
|
714
804
|
id: string;
|
|
805
|
+
responseType?: string | undefined;
|
|
715
806
|
} | {
|
|
716
807
|
type: "text-delta";
|
|
717
808
|
id: string;
|
|
@@ -844,6 +935,15 @@ declare function safeParseUIMessage(data: unknown): z.ZodSafeParseResult<{
|
|
|
844
935
|
size?: number | undefined;
|
|
845
936
|
toolCallId?: string | undefined;
|
|
846
937
|
thread?: string | undefined;
|
|
938
|
+
} | {
|
|
939
|
+
type: "object";
|
|
940
|
+
id: string;
|
|
941
|
+
typeName: string;
|
|
942
|
+
status: "streaming" | "error" | "done";
|
|
943
|
+
partial?: unknown;
|
|
944
|
+
object?: unknown;
|
|
945
|
+
error?: string | undefined;
|
|
946
|
+
thread?: string | undefined;
|
|
847
947
|
})[];
|
|
848
948
|
status: "streaming" | "done";
|
|
849
949
|
createdAt: Date;
|
|
@@ -902,6 +1002,15 @@ declare function safeParseUIMessages(data: unknown): z.ZodSafeParseResult<{
|
|
|
902
1002
|
size?: number | undefined;
|
|
903
1003
|
toolCallId?: string | undefined;
|
|
904
1004
|
thread?: string | undefined;
|
|
1005
|
+
} | {
|
|
1006
|
+
type: "object";
|
|
1007
|
+
id: string;
|
|
1008
|
+
typeName: string;
|
|
1009
|
+
status: "streaming" | "error" | "done";
|
|
1010
|
+
partial?: unknown;
|
|
1011
|
+
object?: unknown;
|
|
1012
|
+
error?: string | undefined;
|
|
1013
|
+
thread?: string | undefined;
|
|
905
1014
|
})[];
|
|
906
1015
|
status: "streaming" | "done";
|
|
907
1016
|
createdAt: Date;
|
|
@@ -952,4 +1061,4 @@ declare function isOctavusSkillTool(toolName: string): toolName is OctavusSkillT
|
|
|
952
1061
|
*/
|
|
953
1062
|
declare function getSkillSlugFromToolCall(toolName: string, args: Record<string, unknown> | undefined): string | undefined;
|
|
954
1063
|
|
|
955
|
-
export { AppError, type BlockEndEvent, type BlockStartEvent, type ChatMessage, ConflictError, type DisplayMode, type ErrorEvent, type FileAvailableEvent, type FileInfo, type FinishEvent, type FinishReason, type GeneratedFile, type MessagePart, type MessagePartType, type MessageRole, NotFoundError, OCTAVUS_SKILL_TOOLS, type OctavusSkillToolName, type PendingToolCall, 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 ToolHandler, type ToolHandlers, type ToolInputAvailableEvent, type ToolInputDeltaEvent, type ToolInputEndEvent, type ToolInputStartEvent, type ToolOutputAvailableEvent, type ToolOutputErrorEvent, type ToolRequestEvent, type ToolResult, type UIFilePart, type UIMessage, type UIMessagePart, type UIMessageStatus, type UIOperationPart, type UIOperationStatus, type UIPartStatus, type UIReasoningPart, type UISourceDocumentPart, type UISourcePart, type UISourceUrlPart, type UITextPart, type UIToolCallPart, type UIToolCallStatus, ValidationError, chatMessageSchema, generateId, getSkillSlugFromToolCall, isOctavusSkillTool, safeParseStreamEvent, safeParseUIMessage, safeParseUIMessages, toolResultSchema, uiMessagePartSchema, uiMessageSchema };
|
|
1064
|
+
export { AppError, type BlockEndEvent, type BlockStartEvent, type ChatMessage, ConflictError, type DisplayMode, type ErrorEvent, type FileAvailableEvent, type FileInfo, type FinishEvent, type FinishReason, type GeneratedFile, type MessagePart, type MessagePartType, type MessageRole, NotFoundError, OCTAVUS_SKILL_TOOLS, type ObjectInfo, type OctavusSkillToolName, type PendingToolCall, 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 ToolHandler, type ToolHandlers, type ToolInputAvailableEvent, type ToolInputDeltaEvent, type ToolInputEndEvent, type ToolInputStartEvent, type ToolOutputAvailableEvent, type ToolOutputErrorEvent, type ToolRequestEvent, type ToolResult, 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, ValidationError, chatMessageSchema, generateId, getSkillSlugFromToolCall, isOctavusSkillTool, safeParseStreamEvent, safeParseUIMessage, safeParseUIMessages, toolResultSchema, uiMessagePartSchema, uiMessageSchema };
|
package/dist/index.js
CHANGED
|
@@ -68,7 +68,8 @@ var errorEventSchema = z.object({
|
|
|
68
68
|
});
|
|
69
69
|
var textStartEventSchema = z.object({
|
|
70
70
|
type: z.literal("text-start"),
|
|
71
|
-
id: z.string()
|
|
71
|
+
id: z.string(),
|
|
72
|
+
responseType: z.string().optional()
|
|
72
73
|
});
|
|
73
74
|
var textDeltaEventSchema = z.object({
|
|
74
75
|
type: z.literal("text-delta"),
|
|
@@ -216,7 +217,14 @@ var streamEventSchema = z.union([
|
|
|
216
217
|
toolRequestEventSchema,
|
|
217
218
|
fileAvailableEventSchema
|
|
218
219
|
]);
|
|
219
|
-
var messagePartTypeSchema = z.enum([
|
|
220
|
+
var messagePartTypeSchema = z.enum([
|
|
221
|
+
"text",
|
|
222
|
+
"reasoning",
|
|
223
|
+
"tool-call",
|
|
224
|
+
"source",
|
|
225
|
+
"file",
|
|
226
|
+
"object"
|
|
227
|
+
]);
|
|
220
228
|
var sourceUrlInfoSchema = z.object({
|
|
221
229
|
sourceType: z.literal("url"),
|
|
222
230
|
id: z.string(),
|
|
@@ -234,12 +242,27 @@ var sourceInfoSchema = z.discriminatedUnion("sourceType", [
|
|
|
234
242
|
sourceUrlInfoSchema,
|
|
235
243
|
sourceDocumentInfoSchema
|
|
236
244
|
]);
|
|
245
|
+
var fileInfoSchema = z.object({
|
|
246
|
+
id: z.string(),
|
|
247
|
+
mediaType: z.string(),
|
|
248
|
+
url: z.string(),
|
|
249
|
+
filename: z.string().optional(),
|
|
250
|
+
size: z.number().optional(),
|
|
251
|
+
toolCallId: z.string().optional()
|
|
252
|
+
});
|
|
253
|
+
var objectInfoSchema = z.object({
|
|
254
|
+
id: z.string(),
|
|
255
|
+
typeName: z.string(),
|
|
256
|
+
value: z.unknown()
|
|
257
|
+
});
|
|
237
258
|
var messagePartSchema = z.object({
|
|
238
259
|
type: messagePartTypeSchema,
|
|
239
260
|
visible: z.boolean(),
|
|
240
261
|
content: z.string().optional(),
|
|
241
262
|
toolCall: toolCallInfoSchema.optional(),
|
|
242
263
|
source: sourceInfoSchema.optional(),
|
|
264
|
+
file: fileInfoSchema.optional(),
|
|
265
|
+
object: objectInfoSchema.optional(),
|
|
243
266
|
thread: z.string().optional()
|
|
244
267
|
});
|
|
245
268
|
var chatMessageSchema = z.object({
|
|
@@ -319,13 +342,25 @@ var uiFilePartSchema = z.object({
|
|
|
319
342
|
toolCallId: z.string().optional(),
|
|
320
343
|
thread: z.string().optional()
|
|
321
344
|
});
|
|
345
|
+
var uiObjectStatusSchema = z.enum(["streaming", "done", "error"]);
|
|
346
|
+
var uiObjectPartSchema = z.object({
|
|
347
|
+
type: z.literal("object"),
|
|
348
|
+
id: z.string(),
|
|
349
|
+
typeName: z.string(),
|
|
350
|
+
partial: z.unknown().optional(),
|
|
351
|
+
object: z.unknown().optional(),
|
|
352
|
+
status: uiObjectStatusSchema,
|
|
353
|
+
error: z.string().optional(),
|
|
354
|
+
thread: z.string().optional()
|
|
355
|
+
});
|
|
322
356
|
var uiMessagePartSchema = z.union([
|
|
323
357
|
uiTextPartSchema,
|
|
324
358
|
uiReasoningPartSchema,
|
|
325
359
|
uiToolCallPartSchema,
|
|
326
360
|
uiOperationPartSchema,
|
|
327
361
|
uiSourcePartSchema,
|
|
328
|
-
uiFilePartSchema
|
|
362
|
+
uiFilePartSchema,
|
|
363
|
+
uiObjectPartSchema
|
|
329
364
|
]);
|
|
330
365
|
var uiMessageSchema = z.object({
|
|
331
366
|
id: z.string(),
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/errors.ts","../src/utils.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","/**\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 * Zod schemas for stream events.\n *\n * Schemas are organized into two categories:\n * - Standard Events (====): Aligned with Vercel AI SDK for interoperability\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 '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 (aligned with Vercel AI SDK)\n// =============================================================================\n\n// ============================== Lifecycle ====================================\n\nexport const startEventSchema = z.object({\n type: z.literal('start'),\n messageId: z.string().optional(),\n});\n\nexport const finishEventSchema = z.object({\n type: z.literal('finish'),\n finishReason: finishReasonSchema,\n});\n\nexport const errorEventSchema = z.object({\n type: z.literal('error'),\n errorText: z.string(),\n});\n\n// ================================= Text ======================================\n\nexport const textStartEventSchema = z.object({\n type: z.literal('text-start'),\n id: z.string(),\n});\n\nexport const textDeltaEventSchema = z.object({\n type: z.literal('text-delta'),\n id: z.string(),\n delta: z.string(),\n});\n\nexport const textEndEventSchema = z.object({\n type: z.literal('text-end'),\n id: z.string(),\n});\n\n// =============================== Reasoning ===================================\n\nexport const reasoningStartEventSchema = z.object({\n type: z.literal('reasoning-start'),\n id: z.string(),\n});\n\nexport const reasoningDeltaEventSchema = z.object({\n type: z.literal('reasoning-delta'),\n id: z.string(),\n delta: z.string(),\n});\n\nexport const reasoningEndEventSchema = z.object({\n type: z.literal('reasoning-end'),\n id: z.string(),\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});\n\nexport const toolInputDeltaEventSchema = z.object({\n type: z.literal('tool-input-delta'),\n toolCallId: z.string(),\n inputTextDelta: z.string(),\n});\n\nexport const toolInputEndEventSchema = z.object({\n type: z.literal('tool-input-end'),\n toolCallId: z.string(),\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});\n\nexport const toolOutputAvailableEventSchema = z.object({\n type: z.literal('tool-output-available'),\n toolCallId: z.string(),\n output: z.unknown(),\n});\n\nexport const toolOutputErrorEventSchema = z.object({\n type: z.literal('tool-output-error'),\n toolCallId: z.string(),\n errorText: z.string(),\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});\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});\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});\n\nexport const blockEndEventSchema = z.object({\n type: z.literal('block-end'),\n blockId: z.string(),\n summary: 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});\n\nexport const toolRequestEventSchema = z.object({\n type: z.literal('tool-request'),\n toolCalls: z.array(pendingToolCallSchema),\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});\n\n// --------------------------------- File --------------------------------------\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});\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 // Standard events (Vercel AI SDK aligned)\n startEventSchema,\n finishEventSchema,\n errorEventSchema,\n textStartEventSchema,\n textDeltaEventSchema,\n textEndEventSchema,\n reasoningStartEventSchema,\n reasoningDeltaEventSchema,\n reasoningEndEventSchema,\n toolInputStartEventSchema,\n toolInputDeltaEventSchema,\n toolInputEndEventSchema,\n toolInputAvailableEventSchema,\n toolOutputAvailableEventSchema,\n toolOutputErrorEventSchema,\n sourceEventSchema,\n // Octavus events (protocol-specific)\n blockStartEventSchema,\n blockEndEventSchema,\n resourceUpdateEventSchema,\n toolRequestEventSchema,\n fileAvailableEventSchema,\n]);\n\n// =============================================================================\n// Internal Message Types (used by platform/runtime)\n// =============================================================================\n\nexport const messagePartTypeSchema = z.enum(['text', 'reasoning', 'tool-call', 'source']);\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 messagePartSchema = z.object({\n type: messagePartTypeSchema,\n visible: z.boolean(),\n content: z.string().optional(),\n toolCall: toolCallInfoSchema.optional(),\n source: sourceInfoSchema.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\n// Note: We use z.union here because source parts share type: 'source' but\n// differ by sourceType. z.discriminatedUnion requires unique discriminator values.\nexport const uiMessagePartSchema = z.union([\n uiTextPartSchema,\n uiReasoningPartSchema,\n uiToolCallPartSchema,\n uiOperationPartSchema,\n uiSourcePartSchema,\n uiFilePartSchema,\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 * 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":"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","names":[]}
|
|
1
|
+
{"version":3,"sources":["../src/errors.ts","../src/utils.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","/**\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 * Zod schemas for stream events.\n *\n * Schemas are organized into two categories:\n * - Standard Events (====): Aligned with Vercel AI SDK for interoperability\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 '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 (aligned with Vercel AI SDK)\n// =============================================================================\n\n// ============================== Lifecycle ====================================\n\nexport const startEventSchema = z.object({\n type: z.literal('start'),\n messageId: z.string().optional(),\n});\n\nexport const finishEventSchema = z.object({\n type: z.literal('finish'),\n finishReason: finishReasonSchema,\n});\n\nexport const errorEventSchema = z.object({\n type: z.literal('error'),\n errorText: z.string(),\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});\n\nexport const textDeltaEventSchema = z.object({\n type: z.literal('text-delta'),\n id: z.string(),\n delta: z.string(),\n});\n\nexport const textEndEventSchema = z.object({\n type: z.literal('text-end'),\n id: z.string(),\n});\n\n// =============================== Reasoning ===================================\n\nexport const reasoningStartEventSchema = z.object({\n type: z.literal('reasoning-start'),\n id: z.string(),\n});\n\nexport const reasoningDeltaEventSchema = z.object({\n type: z.literal('reasoning-delta'),\n id: z.string(),\n delta: z.string(),\n});\n\nexport const reasoningEndEventSchema = z.object({\n type: z.literal('reasoning-end'),\n id: z.string(),\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});\n\nexport const toolInputDeltaEventSchema = z.object({\n type: z.literal('tool-input-delta'),\n toolCallId: z.string(),\n inputTextDelta: z.string(),\n});\n\nexport const toolInputEndEventSchema = z.object({\n type: z.literal('tool-input-end'),\n toolCallId: z.string(),\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});\n\nexport const toolOutputAvailableEventSchema = z.object({\n type: z.literal('tool-output-available'),\n toolCallId: z.string(),\n output: z.unknown(),\n});\n\nexport const toolOutputErrorEventSchema = z.object({\n type: z.literal('tool-output-error'),\n toolCallId: z.string(),\n errorText: z.string(),\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});\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});\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});\n\nexport const blockEndEventSchema = z.object({\n type: z.literal('block-end'),\n blockId: z.string(),\n summary: 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});\n\nexport const toolRequestEventSchema = z.object({\n type: z.literal('tool-request'),\n toolCalls: z.array(pendingToolCallSchema),\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});\n\n// --------------------------------- File --------------------------------------\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});\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 // Standard events (Vercel AI SDK aligned)\n startEventSchema,\n finishEventSchema,\n errorEventSchema,\n textStartEventSchema,\n textDeltaEventSchema,\n textEndEventSchema,\n reasoningStartEventSchema,\n reasoningDeltaEventSchema,\n reasoningEndEventSchema,\n toolInputStartEventSchema,\n toolInputDeltaEventSchema,\n toolInputEndEventSchema,\n toolInputAvailableEventSchema,\n toolOutputAvailableEventSchema,\n toolOutputErrorEventSchema,\n sourceEventSchema,\n // Octavus events (protocol-specific)\n blockStartEventSchema,\n blockEndEventSchema,\n resourceUpdateEventSchema,\n toolRequestEventSchema,\n fileAvailableEventSchema,\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 'source',\n 'file',\n 'object',\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 messagePartSchema = z.object({\n type: messagePartTypeSchema,\n visible: z.boolean(),\n content: z.string().optional(),\n toolCall: toolCallInfoSchema.optional(),\n source: sourceInfoSchema.optional(),\n file: fileInfoSchema.optional(),\n object: objectInfoSchema.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\n// Note: We use z.union here because source parts share type: 'source' but\n// differ by sourceType. z.discriminatedUnion requires unique discriminator values.\nexport const uiMessagePartSchema = z.union([\n uiTextPartSchema,\n uiReasoningPartSchema,\n uiToolCallPartSchema,\n uiOperationPartSchema,\n uiSourcePartSchema,\n uiFilePartSchema,\n uiObjectPartSchema,\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 * 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":"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","names":[]}
|