@agentick/shared 0.0.1

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.
Files changed (85) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +322 -0
  3. package/dist/.tsbuildinfo +1 -0
  4. package/dist/.tsbuildinfo.build +1 -0
  5. package/dist/block-types.d.ts +85 -0
  6. package/dist/block-types.d.ts.map +1 -0
  7. package/dist/block-types.js +98 -0
  8. package/dist/block-types.js.map +1 -0
  9. package/dist/blocks.d.ts +396 -0
  10. package/dist/blocks.d.ts.map +1 -0
  11. package/dist/blocks.js +209 -0
  12. package/dist/blocks.js.map +1 -0
  13. package/dist/devtools.d.ts +672 -0
  14. package/dist/devtools.d.ts.map +1 -0
  15. package/dist/devtools.js +445 -0
  16. package/dist/devtools.js.map +1 -0
  17. package/dist/errors.d.ts +335 -0
  18. package/dist/errors.d.ts.map +1 -0
  19. package/dist/errors.js +529 -0
  20. package/dist/errors.js.map +1 -0
  21. package/dist/identity.d.ts +99 -0
  22. package/dist/identity.d.ts.map +1 -0
  23. package/dist/identity.js +116 -0
  24. package/dist/identity.js.map +1 -0
  25. package/dist/index.d.ts +56 -0
  26. package/dist/index.d.ts.map +1 -0
  27. package/dist/index.js +56 -0
  28. package/dist/index.js.map +1 -0
  29. package/dist/input.d.ts +55 -0
  30. package/dist/input.d.ts.map +1 -0
  31. package/dist/input.js +83 -0
  32. package/dist/input.js.map +1 -0
  33. package/dist/messages.d.ts +98 -0
  34. package/dist/messages.d.ts.map +1 -0
  35. package/dist/messages.js +81 -0
  36. package/dist/messages.js.map +1 -0
  37. package/dist/model-catalog.d.ts +144 -0
  38. package/dist/model-catalog.d.ts.map +1 -0
  39. package/dist/model-catalog.js +861 -0
  40. package/dist/model-catalog.js.map +1 -0
  41. package/dist/models.d.ts +173 -0
  42. package/dist/models.d.ts.map +1 -0
  43. package/dist/models.js +10 -0
  44. package/dist/models.js.map +1 -0
  45. package/dist/protocol.d.ts +257 -0
  46. package/dist/protocol.d.ts.map +1 -0
  47. package/dist/protocol.js +41 -0
  48. package/dist/protocol.js.map +1 -0
  49. package/dist/streaming.d.ts +635 -0
  50. package/dist/streaming.d.ts.map +1 -0
  51. package/dist/streaming.js +134 -0
  52. package/dist/streaming.js.map +1 -0
  53. package/dist/testing/fixtures.d.ts +250 -0
  54. package/dist/testing/fixtures.d.ts.map +1 -0
  55. package/dist/testing/fixtures.js +827 -0
  56. package/dist/testing/fixtures.js.map +1 -0
  57. package/dist/testing/helpers.d.ts +95 -0
  58. package/dist/testing/helpers.d.ts.map +1 -0
  59. package/dist/testing/helpers.js +271 -0
  60. package/dist/testing/helpers.js.map +1 -0
  61. package/dist/testing/index.d.ts +42 -0
  62. package/dist/testing/index.d.ts.map +1 -0
  63. package/dist/testing/index.js +70 -0
  64. package/dist/testing/index.js.map +1 -0
  65. package/dist/timeline.d.ts +59 -0
  66. package/dist/timeline.d.ts.map +1 -0
  67. package/dist/timeline.js +11 -0
  68. package/dist/timeline.js.map +1 -0
  69. package/dist/tools.d.ts +220 -0
  70. package/dist/tools.d.ts.map +1 -0
  71. package/dist/tools.js +63 -0
  72. package/dist/tools.js.map +1 -0
  73. package/dist/utils/entity-ids.d.ts +26 -0
  74. package/dist/utils/entity-ids.d.ts.map +1 -0
  75. package/dist/utils/entity-ids.js +44 -0
  76. package/dist/utils/entity-ids.js.map +1 -0
  77. package/dist/utils/index.d.ts +3 -0
  78. package/dist/utils/index.d.ts.map +1 -0
  79. package/dist/utils/index.js +3 -0
  80. package/dist/utils/index.js.map +1 -0
  81. package/dist/utils/merge-deep.d.ts +10 -0
  82. package/dist/utils/merge-deep.d.ts.map +1 -0
  83. package/dist/utils/merge-deep.js +33 -0
  84. package/dist/utils/merge-deep.js.map +1 -0
  85. package/package.json +84 -0
@@ -0,0 +1,98 @@
1
+ /**
2
+ * Content Block Types
3
+ *
4
+ * Discriminated union types for all content blocks.
5
+ * Normalized across providers.
6
+ */
7
+ export var BlockType;
8
+ (function (BlockType) {
9
+ // Text content
10
+ BlockType["TEXT"] = "text";
11
+ // Media
12
+ BlockType["IMAGE"] = "image";
13
+ BlockType["DOCUMENT"] = "document";
14
+ BlockType["AUDIO"] = "audio";
15
+ BlockType["VIDEO"] = "video";
16
+ // Tool calling
17
+ BlockType["TOOL_USE"] = "tool_use";
18
+ BlockType["TOOL_RESULT"] = "tool_result";
19
+ // Reasoning/thinking (for models that support it)
20
+ BlockType["REASONING"] = "reasoning";
21
+ // Structured data
22
+ BlockType["JSON"] = "json";
23
+ BlockType["XML"] = "xml";
24
+ BlockType["CSV"] = "csv";
25
+ BlockType["HTML"] = "html";
26
+ BlockType["CODE"] = "code";
27
+ // AI-generated content
28
+ BlockType["GENERATED_IMAGE"] = "generated_image";
29
+ BlockType["GENERATED_FILE"] = "generated_file";
30
+ BlockType["EXECUTABLE_CODE"] = "executable_code";
31
+ BlockType["CODE_EXECUTION_RESULT"] = "code_execution_result";
32
+ // Event content (only valid in event messages)
33
+ BlockType["USER_ACTION"] = "user_action";
34
+ BlockType["SYSTEM_EVENT"] = "system_event";
35
+ BlockType["STATE_CHANGE"] = "state_change";
36
+ })(BlockType || (BlockType = {}));
37
+ export var MessageRole;
38
+ (function (MessageRole) {
39
+ MessageRole["USER"] = "user";
40
+ MessageRole["ASSISTANT"] = "assistant";
41
+ MessageRole["SYSTEM"] = "system";
42
+ MessageRole["TOOL"] = "tool";
43
+ MessageRole["EVENT"] = "event";
44
+ })(MessageRole || (MessageRole = {}));
45
+ export var MediaSourceType;
46
+ (function (MediaSourceType) {
47
+ MediaSourceType["URL"] = "url";
48
+ MediaSourceType["BASE64"] = "base64";
49
+ MediaSourceType["FILE_ID"] = "file_id";
50
+ MediaSourceType["S3"] = "s3";
51
+ MediaSourceType["GCS"] = "gcs";
52
+ })(MediaSourceType || (MediaSourceType = {}));
53
+ export var ImageMimeType;
54
+ (function (ImageMimeType) {
55
+ ImageMimeType["JPEG"] = "image/jpeg";
56
+ ImageMimeType["PNG"] = "image/png";
57
+ ImageMimeType["GIF"] = "image/gif";
58
+ ImageMimeType["WEBP"] = "image/webp";
59
+ })(ImageMimeType || (ImageMimeType = {}));
60
+ export var DocumentMimeType;
61
+ (function (DocumentMimeType) {
62
+ DocumentMimeType["PDF"] = "application/pdf";
63
+ DocumentMimeType["TEXT"] = "text/plain";
64
+ DocumentMimeType["MARKDOWN"] = "text/markdown";
65
+ })(DocumentMimeType || (DocumentMimeType = {}));
66
+ export var AudioMimeType;
67
+ (function (AudioMimeType) {
68
+ AudioMimeType["MP3"] = "audio/mpeg";
69
+ AudioMimeType["WAV"] = "audio/wav";
70
+ AudioMimeType["OGG"] = "audio/ogg";
71
+ AudioMimeType["M4A"] = "audio/mp4";
72
+ })(AudioMimeType || (AudioMimeType = {}));
73
+ export var VideoMimeType;
74
+ (function (VideoMimeType) {
75
+ VideoMimeType["MP4"] = "video/mp4";
76
+ VideoMimeType["WEBM"] = "video/webm";
77
+ })(VideoMimeType || (VideoMimeType = {}));
78
+ export var CodeLanguage;
79
+ (function (CodeLanguage) {
80
+ CodeLanguage["TYPESCRIPT"] = "typescript";
81
+ CodeLanguage["JAVASCRIPT"] = "javascript";
82
+ CodeLanguage["PYTHON"] = "python";
83
+ CodeLanguage["JAVA"] = "java";
84
+ CodeLanguage["CSHARP"] = "csharp";
85
+ CodeLanguage["GO"] = "go";
86
+ CodeLanguage["RUST"] = "rust";
87
+ CodeLanguage["CPP"] = "cpp";
88
+ CodeLanguage["C"] = "c";
89
+ CodeLanguage["PHP"] = "php";
90
+ CodeLanguage["RUBY"] = "ruby";
91
+ CodeLanguage["SWIFT"] = "swift";
92
+ CodeLanguage["KOTLIN"] = "kotlin";
93
+ CodeLanguage["SQL"] = "sql";
94
+ CodeLanguage["SHELL"] = "shell";
95
+ CodeLanguage["JSON"] = "json";
96
+ CodeLanguage["OTHER"] = "other";
97
+ })(CodeLanguage || (CodeLanguage = {}));
98
+ //# sourceMappingURL=block-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"block-types.js","sourceRoot":"","sources":["../src/block-types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,CAAN,IAAY,SAkCX;AAlCD,WAAY,SAAS;IACnB,eAAe;IACf,0BAAa,CAAA;IAEb,QAAQ;IACR,4BAAe,CAAA;IACf,kCAAqB,CAAA;IACrB,4BAAe,CAAA;IACf,4BAAe,CAAA;IAEf,eAAe;IACf,kCAAqB,CAAA;IACrB,wCAA2B,CAAA;IAE3B,kDAAkD;IAClD,oCAAuB,CAAA;IAEvB,kBAAkB;IAClB,0BAAa,CAAA;IACb,wBAAW,CAAA;IACX,wBAAW,CAAA;IACX,0BAAa,CAAA;IACb,0BAAa,CAAA;IAEb,uBAAuB;IACvB,gDAAmC,CAAA;IACnC,8CAAiC,CAAA;IACjC,gDAAmC,CAAA;IACnC,4DAA+C,CAAA;IAE/C,+CAA+C;IAC/C,wCAA2B,CAAA;IAC3B,0CAA6B,CAAA;IAC7B,0CAA6B,CAAA;AAC/B,CAAC,EAlCW,SAAS,KAAT,SAAS,QAkCpB;AAwBD,MAAM,CAAN,IAAY,WAMX;AAND,WAAY,WAAW;IACrB,4BAAa,CAAA;IACb,sCAAuB,CAAA;IACvB,gCAAiB,CAAA;IACjB,4BAAa,CAAA;IACb,8BAAe,CAAA;AACjB,CAAC,EANW,WAAW,KAAX,WAAW,QAMtB;AAID,MAAM,CAAN,IAAY,eAMX;AAND,WAAY,eAAe;IACzB,8BAAW,CAAA;IACX,oCAAiB,CAAA;IACjB,sCAAmB,CAAA;IACnB,4BAAS,CAAA;IACT,8BAAW,CAAA;AACb,CAAC,EANW,eAAe,KAAf,eAAe,QAM1B;AAED,MAAM,CAAN,IAAY,aAKX;AALD,WAAY,aAAa;IACvB,oCAAmB,CAAA;IACnB,kCAAiB,CAAA;IACjB,kCAAiB,CAAA;IACjB,oCAAmB,CAAA;AACrB,CAAC,EALW,aAAa,KAAb,aAAa,QAKxB;AAED,MAAM,CAAN,IAAY,gBAIX;AAJD,WAAY,gBAAgB;IAC1B,2CAAuB,CAAA;IACvB,uCAAmB,CAAA;IACnB,8CAA0B,CAAA;AAC5B,CAAC,EAJW,gBAAgB,KAAhB,gBAAgB,QAI3B;AAED,MAAM,CAAN,IAAY,aAKX;AALD,WAAY,aAAa;IACvB,mCAAkB,CAAA;IAClB,kCAAiB,CAAA;IACjB,kCAAiB,CAAA;IACjB,kCAAiB,CAAA;AACnB,CAAC,EALW,aAAa,KAAb,aAAa,QAKxB;AAED,MAAM,CAAN,IAAY,aAGX;AAHD,WAAY,aAAa;IACvB,kCAAiB,CAAA;IACjB,oCAAmB,CAAA;AACrB,CAAC,EAHW,aAAa,KAAb,aAAa,QAGxB;AAED,MAAM,CAAN,IAAY,YAkBX;AAlBD,WAAY,YAAY;IACtB,yCAAyB,CAAA;IACzB,yCAAyB,CAAA;IACzB,iCAAiB,CAAA;IACjB,6BAAa,CAAA;IACb,iCAAiB,CAAA;IACjB,yBAAS,CAAA;IACT,6BAAa,CAAA;IACb,2BAAW,CAAA;IACX,uBAAO,CAAA;IACP,2BAAW,CAAA;IACX,6BAAa,CAAA;IACb,+BAAe,CAAA;IACf,iCAAiB,CAAA;IACjB,2BAAW,CAAA;IACX,+BAAe,CAAA;IACf,6BAAa,CAAA;IACb,+BAAe,CAAA;AACjB,CAAC,EAlBW,YAAY,KAAZ,YAAY,QAkBvB"}
@@ -0,0 +1,396 @@
1
+ /**
2
+ * Content Blocks - Type-safe content block definitions using discriminated unions.
3
+ *
4
+ * Content blocks represent the atomic units of content in messages. They use
5
+ * discriminated unions (the `type` field) for type-safe handling:
6
+ *
7
+ * - **Text** - Plain text content (`TextBlock`)
8
+ * - **Media** - Images, audio, video, documents (`ImageBlock`, `AudioBlock`, etc.)
9
+ * - **Tool** - Tool calls and results (`ToolUseBlock`, `ToolResultBlock`)
10
+ * - **Data** - Structured data (JSON, XML, CSV, HTML, code)
11
+ * - **Events** - User actions, system events, state changes
12
+ *
13
+ * @example Type narrowing with discriminated unions
14
+ * ```typescript
15
+ * function processBlock(block: ContentBlock) {
16
+ * switch (block.type) {
17
+ * case 'text':
18
+ * console.log(block.text); // TypeScript knows this is TextBlock
19
+ * break;
20
+ * case 'tool_use':
21
+ * console.log(block.name, block.input); // ToolUseBlock
22
+ * break;
23
+ * case 'image':
24
+ * console.log(block.source); // ImageBlock
25
+ * break;
26
+ * }
27
+ * }
28
+ * ```
29
+ *
30
+ * @see {@link ContentBlock} - The union of all content block types
31
+ * @see {@link BlockType} - Enum of block type discriminators
32
+ *
33
+ * @module
34
+ */
35
+ import type { BlockType, MediaSourceType, ImageMimeType, DocumentMimeType, AudioMimeType, VideoMimeType, CodeLanguage } from "./block-types";
36
+ import type { ToolExecutor } from "./tools";
37
+ /**
38
+ * Base properties shared by all content blocks.
39
+ */
40
+ export interface BaseContentBlock {
41
+ /** Discriminator for type narrowing (e.g., 'text', 'image', 'tool_use') */
42
+ readonly type: string | BlockType;
43
+ /** Unique identifier for this block */
44
+ readonly id?: string;
45
+ /** ID of the message containing this block */
46
+ readonly messageId?: string;
47
+ /** ISO 8601 timestamp when this block was created */
48
+ readonly createdAt?: string;
49
+ /** MIME type of the content (for media blocks) */
50
+ readonly mimeType?: string;
51
+ /** Position of this block within the message */
52
+ readonly index?: number;
53
+ /** Additional metadata */
54
+ readonly metadata?: Record<string, any>;
55
+ /** Human-readable summary of the content */
56
+ readonly summary?: string;
57
+ }
58
+ export interface BaseMediaSource extends BaseContentBlock {
59
+ readonly type: string;
60
+ readonly metadata?: Record<string, any>;
61
+ }
62
+ export interface UrlSource extends BaseMediaSource {
63
+ readonly type: MediaSourceType.URL | "url";
64
+ readonly url: string;
65
+ readonly mimeType?: string;
66
+ }
67
+ export interface Base64Source extends BaseMediaSource {
68
+ readonly type: MediaSourceType.BASE64 | "base64";
69
+ readonly data: string;
70
+ readonly mimeType?: string;
71
+ }
72
+ export interface Base64Source extends BaseMediaSource {
73
+ readonly type: MediaSourceType.BASE64 | "base64";
74
+ readonly data: string;
75
+ }
76
+ export interface FileIdSource extends BaseMediaSource {
77
+ readonly type: MediaSourceType.FILE_ID | "file_id";
78
+ readonly fileId: string;
79
+ }
80
+ export interface S3Source extends BaseMediaSource {
81
+ readonly type: MediaSourceType.S3 | "s3";
82
+ readonly bucket: string;
83
+ readonly key: string;
84
+ readonly region?: string;
85
+ }
86
+ export interface GCSSource extends BaseMediaSource {
87
+ readonly type: MediaSourceType.GCS | "gcs";
88
+ readonly bucket: string;
89
+ readonly object: string;
90
+ readonly project?: string;
91
+ }
92
+ export type MediaSource = UrlSource | Base64Source | FileIdSource | S3Source | GCSSource;
93
+ /**
94
+ * Text block - Simple text content
95
+ */
96
+ interface TextualDataBlock extends BaseContentBlock {
97
+ readonly text: string;
98
+ }
99
+ export interface TextBlock extends TextualDataBlock {
100
+ readonly type: BlockType.TEXT | "text";
101
+ readonly text: string;
102
+ }
103
+ /**
104
+ * Image block - Image content with source
105
+ */
106
+ export interface ImageBlock extends BaseContentBlock {
107
+ readonly type: BlockType.IMAGE | "image";
108
+ readonly source: MediaSource;
109
+ readonly mimeType?: ImageMimeType;
110
+ readonly altText?: string;
111
+ }
112
+ /**
113
+ * Document block - Document content (PDF, etc.)
114
+ */
115
+ export interface DocumentBlock extends BaseContentBlock {
116
+ readonly type: BlockType.DOCUMENT | "document";
117
+ readonly source: MediaSource;
118
+ readonly mimeType?: DocumentMimeType;
119
+ readonly title?: string;
120
+ }
121
+ /**
122
+ * Audio block - Audio content
123
+ */
124
+ export interface AudioBlock extends BaseContentBlock {
125
+ readonly type: BlockType.AUDIO | "audio";
126
+ readonly source: MediaSource;
127
+ readonly mimeType?: AudioMimeType;
128
+ readonly transcript?: string;
129
+ }
130
+ /**
131
+ * Video block - Video content
132
+ */
133
+ export interface VideoBlock extends BaseContentBlock {
134
+ readonly type: BlockType.VIDEO | "video";
135
+ readonly source: MediaSource;
136
+ readonly mimeType?: VideoMimeType;
137
+ readonly transcript?: string;
138
+ }
139
+ /**
140
+ * Tool use block - Function/tool call request
141
+ */
142
+ export interface ToolUseBlock extends BaseContentBlock {
143
+ readonly type: BlockType.TOOL_USE | "tool_use";
144
+ readonly toolUseId: string;
145
+ readonly name: string;
146
+ readonly input: Record<string, any>;
147
+ readonly toolResult?: ToolResultBlock;
148
+ }
149
+ /**
150
+ * Tool result block - Function/tool call result
151
+ */
152
+ export interface ToolResultBlock extends BaseContentBlock {
153
+ readonly type: BlockType.TOOL_RESULT | "tool_result";
154
+ readonly toolUseId: string;
155
+ readonly name: string;
156
+ readonly content: ContentBlock[];
157
+ readonly isError?: boolean;
158
+ /**
159
+ * Who executed this tool.
160
+ * @see ToolExecutor for possible values
161
+ */
162
+ readonly executedBy?: ToolExecutor;
163
+ }
164
+ /**
165
+ * Reasoning block - Model's internal reasoning
166
+ */
167
+ export interface ReasoningBlock extends TextualDataBlock {
168
+ readonly type: BlockType.REASONING | "reasoning";
169
+ readonly signature?: string;
170
+ readonly isRedacted?: boolean;
171
+ }
172
+ /**
173
+ * JSON block - Structured JSON data
174
+ */
175
+ export interface JsonBlock extends TextualDataBlock {
176
+ readonly type: BlockType.JSON | "json";
177
+ readonly data?: any;
178
+ }
179
+ /**
180
+ * XML block - XML data
181
+ */
182
+ export interface XmlBlock extends TextualDataBlock {
183
+ readonly type: BlockType.XML | "xml";
184
+ }
185
+ /**
186
+ * CSV block - CSV data
187
+ */
188
+ export interface CsvBlock extends TextualDataBlock {
189
+ readonly type: BlockType.CSV | "csv";
190
+ readonly headers?: string[];
191
+ }
192
+ /**
193
+ * HTML block - HTML content
194
+ */
195
+ export interface HtmlBlock extends TextualDataBlock {
196
+ readonly type: BlockType.HTML | "html";
197
+ }
198
+ /**
199
+ * Code block - Code with language
200
+ */
201
+ export interface CodeBlock extends TextualDataBlock {
202
+ readonly type: BlockType.CODE | "code";
203
+ readonly language: CodeLanguage;
204
+ }
205
+ /**
206
+ * Generated image block - AI-generated image
207
+ */
208
+ export interface GeneratedImageBlock extends BaseContentBlock {
209
+ readonly type: BlockType.GENERATED_IMAGE | "generated_image";
210
+ readonly data: string;
211
+ readonly mimeType: string;
212
+ readonly altText?: string;
213
+ }
214
+ /**
215
+ * Generated file block - AI-generated file
216
+ */
217
+ export interface GeneratedFileBlock extends BaseContentBlock {
218
+ readonly type: BlockType.GENERATED_FILE | "generated_file";
219
+ readonly uri: string;
220
+ readonly mimeType: string;
221
+ readonly displayName?: string;
222
+ }
223
+ /**
224
+ * Executable code block - AI-generated executable code
225
+ */
226
+ export interface ExecutableCodeBlock extends BaseContentBlock {
227
+ readonly type: BlockType.EXECUTABLE_CODE | "executable_code";
228
+ readonly code: string;
229
+ readonly language?: string;
230
+ }
231
+ /**
232
+ * Code execution result block - Result of AI-executed code
233
+ */
234
+ export interface CodeExecutionResultBlock extends BaseContentBlock {
235
+ readonly type: BlockType.CODE_EXECUTION_RESULT | "code_execution_result";
236
+ readonly output: string;
237
+ readonly isError?: boolean;
238
+ }
239
+ /**
240
+ * User action block - Records a user-initiated action
241
+ *
242
+ * The `text` field provides a human-readable formatted representation,
243
+ * typically populated via JSX children. Model config uses this for output
244
+ * while preserving semantic info (action, actor, etc.) for delimiter targeting.
245
+ */
246
+ export interface UserActionBlock extends BaseContentBlock {
247
+ readonly type: BlockType.USER_ACTION | "user_action";
248
+ readonly action: string;
249
+ readonly actor?: string;
250
+ readonly target?: string;
251
+ readonly details?: Record<string, any>;
252
+ /** Formatted text representation (from JSX children) */
253
+ readonly text?: string;
254
+ }
255
+ /**
256
+ * System event block - Records a system/application event
257
+ *
258
+ * The `text` field provides a human-readable formatted representation,
259
+ * typically populated via JSX children.
260
+ */
261
+ export interface SystemEventBlock extends BaseContentBlock {
262
+ readonly type: BlockType.SYSTEM_EVENT | "system_event";
263
+ readonly event: string;
264
+ readonly source?: string;
265
+ readonly data?: Record<string, any>;
266
+ /** Formatted text representation (from JSX children) */
267
+ readonly text?: string;
268
+ }
269
+ /**
270
+ * State change block - Records a state transition
271
+ *
272
+ * The `text` field provides a human-readable formatted representation,
273
+ * typically populated via JSX children.
274
+ */
275
+ export interface StateChangeBlock extends BaseContentBlock {
276
+ readonly type: BlockType.STATE_CHANGE | "state_change";
277
+ readonly entity: string;
278
+ readonly field?: string;
279
+ readonly from: any;
280
+ readonly to: any;
281
+ readonly trigger?: string;
282
+ /** Formatted text representation (from JSX children) */
283
+ readonly text?: string;
284
+ }
285
+ /**
286
+ * Union of all content block types.
287
+ *
288
+ * Use the `type` discriminator field for type narrowing:
289
+ *
290
+ * @example
291
+ * ```typescript
292
+ * function handleBlock(block: ContentBlock) {
293
+ * if (block.type === 'text') {
294
+ * console.log(block.text);
295
+ * } else if (block.type === 'tool_use') {
296
+ * console.log(block.name, block.input);
297
+ * }
298
+ * }
299
+ * ```
300
+ *
301
+ * @see {@link isTextBlock}, {@link isToolUseBlock}, etc. - Type guard functions
302
+ */
303
+ export type ContentBlock = TextBlock | ImageBlock | DocumentBlock | AudioBlock | VideoBlock | ToolUseBlock | ToolResultBlock | ReasoningBlock | JsonBlock | XmlBlock | CsvBlock | HtmlBlock | CodeBlock | GeneratedImageBlock | GeneratedFileBlock | ExecutableCodeBlock | CodeExecutionResultBlock | UserActionBlock | SystemEventBlock | StateChangeBlock;
304
+ /** Union of media content blocks (image, document, audio, video) */
305
+ export type MediaBlock = ImageBlock | DocumentBlock | AudioBlock | VideoBlock;
306
+ /** Union of tool-related blocks (tool call and result) */
307
+ export type ToolBlock = ToolUseBlock | ToolResultBlock;
308
+ /** Union of structured data blocks (JSON, XML, CSV, HTML, code) */
309
+ export type DataBlock = JsonBlock | XmlBlock | CsvBlock | HtmlBlock | CodeBlock;
310
+ /** Union of event content blocks (user action, system event, state change) */
311
+ export type EventBlock = UserActionBlock | SystemEventBlock | StateChangeBlock;
312
+ export type SystemAllowedBlock = TextBlock;
313
+ export type UserAllowedBlock = TextBlock | ImageBlock | DocumentBlock | AudioBlock | VideoBlock | JsonBlock | XmlBlock | CsvBlock | HtmlBlock | CodeBlock;
314
+ export type ToolAllowedBlock = ToolResultBlock;
315
+ export type AssistantAllowedBlock = TextBlock | ToolUseBlock | ReasoningBlock | GeneratedImageBlock | GeneratedFileBlock | ExecutableCodeBlock | CodeExecutionResultBlock;
316
+ export type EventAllowedBlock = TextBlock | UserActionBlock | SystemEventBlock | StateChangeBlock;
317
+ export declare function isTextBlock(block: ContentBlock): block is TextBlock;
318
+ export declare function isToolUseBlock(block: ContentBlock): block is ToolUseBlock;
319
+ export declare function isToolResultBlock(block: ContentBlock): block is ToolResultBlock;
320
+ export declare function isMediaBlock(block: ContentBlock): block is MediaBlock;
321
+ export declare function isEventBlock(block: ContentBlock): block is EventBlock;
322
+ export declare function isUserActionBlock(block: ContentBlock): block is UserActionBlock;
323
+ export declare function isSystemEventBlock(block: ContentBlock): block is SystemEventBlock;
324
+ export declare function isStateChangeBlock(block: ContentBlock): block is StateChangeBlock;
325
+ export declare function extractText(blocks: ContentBlock[]): string;
326
+ export declare function extractToolUses(blocks: ContentBlock[]): ToolUseBlock[];
327
+ /**
328
+ * Convert a Buffer or Uint8Array to a serializable Base64Source.
329
+ *
330
+ * Browser-compatible: works in both Node.js and browser environments.
331
+ * Uses globalThis to avoid requiring @types/node in browser environments.
332
+ *
333
+ * @example
334
+ * ```typescript
335
+ * // Node.js
336
+ * const imageBuffer = await fs.readFile('image.png');
337
+ * const imageBlock: ImageBlock = {
338
+ * type: 'image',
339
+ * source: bufferToBase64Source(imageBuffer, 'image/png'),
340
+ * };
341
+ *
342
+ * // Browser
343
+ * const response = await fetch('image.png');
344
+ * const arrayBuffer = await response.arrayBuffer();
345
+ * const uint8Array = new Uint8Array(arrayBuffer);
346
+ * const imageBlock: ImageBlock = {
347
+ * type: 'image',
348
+ * source: bufferToBase64Source(uint8Array, 'image/png'),
349
+ * };
350
+ * ```
351
+ */
352
+ export declare function bufferToBase64Source(buffer: Uint8Array | {
353
+ buffer: ArrayBufferLike;
354
+ byteOffset: number;
355
+ byteLength: number;
356
+ }, mimeType?: string): Base64Source;
357
+ /**
358
+ * Convert a Base64Source back to a Uint8Array.
359
+ *
360
+ * Browser-compatible: returns Uint8Array which works in both Node.js and browser.
361
+ * In Node.js, you can convert to Buffer if needed: `Buffer.from(uint8Array)`
362
+ *
363
+ * @example
364
+ * ```typescript
365
+ * if (imageBlock.source.type === 'base64') {
366
+ * const uint8Array = base64SourceToBuffer(imageBlock.source);
367
+ *
368
+ * // In Node.js, convert to Buffer if needed:
369
+ * // const buffer = Buffer.from(uint8Array);
370
+ *
371
+ * // In browser, use directly:
372
+ * // const blob = new Blob([uint8Array], { type: 'image/png' });
373
+ * }
374
+ * ```
375
+ */
376
+ export declare function base64SourceToBuffer(source: Base64Source): Uint8Array;
377
+ /**
378
+ * Check if a string looks like a URL (http:// or https://).
379
+ * Useful for determining source type from string data.
380
+ */
381
+ export declare function isUrlString(str: string): boolean;
382
+ /**
383
+ * Create a MediaSource from a string (auto-detects URL vs base64).
384
+ *
385
+ * @example
386
+ * ```typescript
387
+ * const source = stringToMediaSource('https://example.com/image.png');
388
+ * // { type: 'url', url: 'https://example.com/image.png' }
389
+ *
390
+ * const source = stringToMediaSource('iVBORw0KGgo...');
391
+ * // { type: 'base64', data: 'iVBORw0KGgo...' }
392
+ * ```
393
+ */
394
+ export declare function stringToMediaSource(str: string, mimeType?: string): UrlSource | Base64Source;
395
+ export {};
396
+ //# sourceMappingURL=blocks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"blocks.d.ts","sourceRoot":"","sources":["../src/blocks.ts"],"names":[],"mappings":"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"}