@ebowwa/ai 0.1.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.
@@ -0,0 +1,1335 @@
1
+ /**
2
+ * Zod schemas for AI module runtime validation
3
+ *
4
+ * Provides:
5
+ * - Runtime type validation for all AI operations
6
+ * - Type inference for TypeScript types
7
+ * - Safe parsing with error handling
8
+ * - Streaming support for Server-Sent Events
9
+ * - Reusable schemas across multiple AI providers
10
+ */
11
+ import { z } from "zod";
12
+ /**
13
+ * Chat message role (OpenAI-compatible)
14
+ */
15
+ export declare const ChatMessageRoleSchema: z.ZodEnum<["system", "user", "assistant"]>;
16
+ /**
17
+ * Base chat message (OpenAI-compatible)
18
+ */
19
+ export declare const ChatMessageSchema: z.ZodObject<{
20
+ role: z.ZodEnum<["system", "user", "assistant"]>;
21
+ content: z.ZodString;
22
+ }, "strip", z.ZodTypeAny, {
23
+ role: "system" | "user" | "assistant";
24
+ content: string;
25
+ }, {
26
+ role: "system" | "user" | "assistant";
27
+ content: string;
28
+ }>;
29
+ /**
30
+ * Token usage information (camelCase)
31
+ */
32
+ export declare const TokenUsageSchema: z.ZodObject<{
33
+ promptTokens: z.ZodNumber;
34
+ completionTokens: z.ZodNumber;
35
+ totalTokens: z.ZodNumber;
36
+ }, "strip", z.ZodTypeAny, {
37
+ promptTokens: number;
38
+ completionTokens: number;
39
+ totalTokens: number;
40
+ }, {
41
+ promptTokens: number;
42
+ completionTokens: number;
43
+ totalTokens: number;
44
+ }>;
45
+ /**
46
+ * Raw API usage (snake_case from most APIs)
47
+ */
48
+ export declare const RawUsageSchema: z.ZodObject<{
49
+ prompt_tokens: z.ZodNumber;
50
+ completion_tokens: z.ZodNumber;
51
+ total_tokens: z.ZodNumber;
52
+ }, "strip", z.ZodTypeAny, {
53
+ prompt_tokens: number;
54
+ completion_tokens: number;
55
+ total_tokens: number;
56
+ }, {
57
+ prompt_tokens: number;
58
+ completion_tokens: number;
59
+ total_tokens: number;
60
+ }>;
61
+ /**
62
+ * Base AI request options shared across all AI requests
63
+ */
64
+ export declare const BaseAIRequestOptionsSchema: z.ZodObject<{
65
+ model: z.ZodOptional<z.ZodString>;
66
+ temperature: z.ZodOptional<z.ZodNumber>;
67
+ maxTokens: z.ZodOptional<z.ZodNumber>;
68
+ }, "strip", z.ZodTypeAny, {
69
+ model?: string | undefined;
70
+ temperature?: number | undefined;
71
+ maxTokens?: number | undefined;
72
+ }, {
73
+ model?: string | undefined;
74
+ temperature?: number | undefined;
75
+ maxTokens?: number | undefined;
76
+ }>;
77
+ /**
78
+ * Chat completion options (extends base with stream/timeout/retry)
79
+ */
80
+ export declare const ChatCompletionOptionsSchema: z.ZodObject<{
81
+ model: z.ZodOptional<z.ZodString>;
82
+ temperature: z.ZodOptional<z.ZodNumber>;
83
+ maxTokens: z.ZodOptional<z.ZodNumber>;
84
+ } & {
85
+ stream: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
86
+ timeout: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
87
+ maxRetries: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
88
+ }, "strip", z.ZodTypeAny, {
89
+ stream: boolean;
90
+ timeout: number;
91
+ maxRetries: number;
92
+ model?: string | undefined;
93
+ temperature?: number | undefined;
94
+ maxTokens?: number | undefined;
95
+ }, {
96
+ model?: string | undefined;
97
+ temperature?: number | undefined;
98
+ maxTokens?: number | undefined;
99
+ stream?: boolean | undefined;
100
+ timeout?: number | undefined;
101
+ maxRetries?: number | undefined;
102
+ }>;
103
+ /**
104
+ * Simple prompt-based AI request
105
+ */
106
+ export declare const AIRequestSchema: z.ZodObject<{
107
+ model: z.ZodOptional<z.ZodString>;
108
+ temperature: z.ZodOptional<z.ZodNumber>;
109
+ maxTokens: z.ZodOptional<z.ZodNumber>;
110
+ } & {
111
+ prompt: z.ZodString;
112
+ systemPrompt: z.ZodOptional<z.ZodString>;
113
+ }, "strip", z.ZodTypeAny, {
114
+ prompt: string;
115
+ model?: string | undefined;
116
+ temperature?: number | undefined;
117
+ maxTokens?: number | undefined;
118
+ systemPrompt?: string | undefined;
119
+ }, {
120
+ prompt: string;
121
+ model?: string | undefined;
122
+ temperature?: number | undefined;
123
+ maxTokens?: number | undefined;
124
+ systemPrompt?: string | undefined;
125
+ }>;
126
+ /**
127
+ * Multi-turn chat request
128
+ */
129
+ export declare const AIChatRequestSchema: z.ZodObject<{
130
+ model: z.ZodOptional<z.ZodString>;
131
+ temperature: z.ZodOptional<z.ZodNumber>;
132
+ maxTokens: z.ZodOptional<z.ZodNumber>;
133
+ } & {
134
+ messages: z.ZodArray<z.ZodObject<{
135
+ role: z.ZodEnum<["system", "user", "assistant"]>;
136
+ content: z.ZodString;
137
+ }, "strip", z.ZodTypeAny, {
138
+ role: "system" | "user" | "assistant";
139
+ content: string;
140
+ }, {
141
+ role: "system" | "user" | "assistant";
142
+ content: string;
143
+ }>, "many">;
144
+ }, "strip", z.ZodTypeAny, {
145
+ messages: {
146
+ role: "system" | "user" | "assistant";
147
+ content: string;
148
+ }[];
149
+ model?: string | undefined;
150
+ temperature?: number | undefined;
151
+ maxTokens?: number | undefined;
152
+ }, {
153
+ messages: {
154
+ role: "system" | "user" | "assistant";
155
+ content: string;
156
+ }[];
157
+ model?: string | undefined;
158
+ temperature?: number | undefined;
159
+ maxTokens?: number | undefined;
160
+ }>;
161
+ /**
162
+ * Latency information
163
+ */
164
+ export declare const LatencyInfoSchema: z.ZodObject<{
165
+ totalMs: z.ZodNumber;
166
+ formatted: z.ZodString;
167
+ }, "strip", z.ZodTypeAny, {
168
+ totalMs: number;
169
+ formatted: string;
170
+ }, {
171
+ totalMs: number;
172
+ formatted: string;
173
+ }>;
174
+ /**
175
+ * Raw API response choice (snake_case from API)
176
+ */
177
+ export declare const RawChoiceSchema: z.ZodObject<{
178
+ index: z.ZodNumber;
179
+ message: z.ZodObject<{
180
+ role: z.ZodString;
181
+ content: z.ZodString;
182
+ }, "strip", z.ZodTypeAny, {
183
+ role: string;
184
+ content: string;
185
+ }, {
186
+ role: string;
187
+ content: string;
188
+ }>;
189
+ finish_reason: z.ZodString;
190
+ }, "strip", z.ZodTypeAny, {
191
+ message: {
192
+ role: string;
193
+ content: string;
194
+ };
195
+ index: number;
196
+ finish_reason: string;
197
+ }, {
198
+ message: {
199
+ role: string;
200
+ content: string;
201
+ };
202
+ index: number;
203
+ finish_reason: string;
204
+ }>;
205
+ /**
206
+ * Raw chat completion response from API (snake_case)
207
+ */
208
+ export declare const RawChatCompletionResponseSchema: z.ZodObject<{
209
+ id: z.ZodString;
210
+ object: z.ZodString;
211
+ created: z.ZodNumber;
212
+ model: z.ZodString;
213
+ choices: z.ZodArray<z.ZodObject<{
214
+ index: z.ZodNumber;
215
+ message: z.ZodObject<{
216
+ role: z.ZodString;
217
+ content: z.ZodString;
218
+ }, "strip", z.ZodTypeAny, {
219
+ role: string;
220
+ content: string;
221
+ }, {
222
+ role: string;
223
+ content: string;
224
+ }>;
225
+ finish_reason: z.ZodString;
226
+ }, "strip", z.ZodTypeAny, {
227
+ message: {
228
+ role: string;
229
+ content: string;
230
+ };
231
+ index: number;
232
+ finish_reason: string;
233
+ }, {
234
+ message: {
235
+ role: string;
236
+ content: string;
237
+ };
238
+ index: number;
239
+ finish_reason: string;
240
+ }>, "many">;
241
+ usage: z.ZodOptional<z.ZodObject<{
242
+ prompt_tokens: z.ZodNumber;
243
+ completion_tokens: z.ZodNumber;
244
+ total_tokens: z.ZodNumber;
245
+ }, "strip", z.ZodTypeAny, {
246
+ prompt_tokens: number;
247
+ completion_tokens: number;
248
+ total_tokens: number;
249
+ }, {
250
+ prompt_tokens: number;
251
+ completion_tokens: number;
252
+ total_tokens: number;
253
+ }>>;
254
+ }, "strip", z.ZodTypeAny, {
255
+ object: string;
256
+ model: string;
257
+ id: string;
258
+ created: number;
259
+ choices: {
260
+ message: {
261
+ role: string;
262
+ content: string;
263
+ };
264
+ index: number;
265
+ finish_reason: string;
266
+ }[];
267
+ usage?: {
268
+ prompt_tokens: number;
269
+ completion_tokens: number;
270
+ total_tokens: number;
271
+ } | undefined;
272
+ }, {
273
+ object: string;
274
+ model: string;
275
+ id: string;
276
+ created: number;
277
+ choices: {
278
+ message: {
279
+ role: string;
280
+ content: string;
281
+ };
282
+ index: number;
283
+ finish_reason: string;
284
+ }[];
285
+ usage?: {
286
+ prompt_tokens: number;
287
+ completion_tokens: number;
288
+ total_tokens: number;
289
+ } | undefined;
290
+ }>;
291
+ /**
292
+ * Chat completion response (internal camelCase)
293
+ */
294
+ export declare const ChatCompletionResponseSchema: z.ZodObject<{
295
+ id: z.ZodString;
296
+ object: z.ZodString;
297
+ created: z.ZodNumber;
298
+ model: z.ZodString;
299
+ choices: z.ZodArray<z.ZodObject<{
300
+ index: z.ZodNumber;
301
+ message: z.ZodObject<{
302
+ role: z.ZodString;
303
+ content: z.ZodString;
304
+ }, "strip", z.ZodTypeAny, {
305
+ role: string;
306
+ content: string;
307
+ }, {
308
+ role: string;
309
+ content: string;
310
+ }>;
311
+ finish_reason: z.ZodString;
312
+ }, "strip", z.ZodTypeAny, {
313
+ message: {
314
+ role: string;
315
+ content: string;
316
+ };
317
+ index: number;
318
+ finish_reason: string;
319
+ }, {
320
+ message: {
321
+ role: string;
322
+ content: string;
323
+ };
324
+ index: number;
325
+ finish_reason: string;
326
+ }>, "many">;
327
+ usage: z.ZodOptional<z.ZodObject<{
328
+ promptTokens: z.ZodNumber;
329
+ completionTokens: z.ZodNumber;
330
+ totalTokens: z.ZodNumber;
331
+ }, "strip", z.ZodTypeAny, {
332
+ promptTokens: number;
333
+ completionTokens: number;
334
+ totalTokens: number;
335
+ }, {
336
+ promptTokens: number;
337
+ completionTokens: number;
338
+ totalTokens: number;
339
+ }>>;
340
+ latency: z.ZodOptional<z.ZodObject<{
341
+ totalMs: z.ZodNumber;
342
+ formatted: z.ZodString;
343
+ }, "strip", z.ZodTypeAny, {
344
+ totalMs: number;
345
+ formatted: string;
346
+ }, {
347
+ totalMs: number;
348
+ formatted: string;
349
+ }>>;
350
+ }, "strip", z.ZodTypeAny, {
351
+ object: string;
352
+ model: string;
353
+ id: string;
354
+ created: number;
355
+ choices: {
356
+ message: {
357
+ role: string;
358
+ content: string;
359
+ };
360
+ index: number;
361
+ finish_reason: string;
362
+ }[];
363
+ usage?: {
364
+ promptTokens: number;
365
+ completionTokens: number;
366
+ totalTokens: number;
367
+ } | undefined;
368
+ latency?: {
369
+ totalMs: number;
370
+ formatted: string;
371
+ } | undefined;
372
+ }, {
373
+ object: string;
374
+ model: string;
375
+ id: string;
376
+ created: number;
377
+ choices: {
378
+ message: {
379
+ role: string;
380
+ content: string;
381
+ };
382
+ index: number;
383
+ finish_reason: string;
384
+ }[];
385
+ usage?: {
386
+ promptTokens: number;
387
+ completionTokens: number;
388
+ totalTokens: number;
389
+ } | undefined;
390
+ latency?: {
391
+ totalMs: number;
392
+ formatted: string;
393
+ } | undefined;
394
+ }>;
395
+ /**
396
+ * Simple AI response
397
+ */
398
+ export declare const AIResponseSchema: z.ZodObject<{
399
+ success: z.ZodBoolean;
400
+ content: z.ZodOptional<z.ZodString>;
401
+ error: z.ZodOptional<z.ZodString>;
402
+ usage: z.ZodOptional<z.ZodObject<{
403
+ promptTokens: z.ZodNumber;
404
+ completionTokens: z.ZodNumber;
405
+ totalTokens: z.ZodNumber;
406
+ }, "strip", z.ZodTypeAny, {
407
+ promptTokens: number;
408
+ completionTokens: number;
409
+ totalTokens: number;
410
+ }, {
411
+ promptTokens: number;
412
+ completionTokens: number;
413
+ totalTokens: number;
414
+ }>>;
415
+ }, "strip", z.ZodTypeAny, {
416
+ success: boolean;
417
+ content?: string | undefined;
418
+ usage?: {
419
+ promptTokens: number;
420
+ completionTokens: number;
421
+ totalTokens: number;
422
+ } | undefined;
423
+ error?: string | undefined;
424
+ }, {
425
+ success: boolean;
426
+ content?: string | undefined;
427
+ usage?: {
428
+ promptTokens: number;
429
+ completionTokens: number;
430
+ totalTokens: number;
431
+ } | undefined;
432
+ error?: string | undefined;
433
+ }>;
434
+ /**
435
+ * Chat response
436
+ */
437
+ export declare const AIChatResponseSchema: z.ZodObject<{
438
+ success: z.ZodBoolean;
439
+ message: z.ZodOptional<z.ZodString>;
440
+ usage: z.ZodOptional<z.ZodObject<{
441
+ promptTokens: z.ZodNumber;
442
+ completionTokens: z.ZodNumber;
443
+ totalTokens: z.ZodNumber;
444
+ }, "strip", z.ZodTypeAny, {
445
+ promptTokens: number;
446
+ completionTokens: number;
447
+ totalTokens: number;
448
+ }, {
449
+ promptTokens: number;
450
+ completionTokens: number;
451
+ totalTokens: number;
452
+ }>>;
453
+ error: z.ZodOptional<z.ZodString>;
454
+ }, "strip", z.ZodTypeAny, {
455
+ success: boolean;
456
+ message?: string | undefined;
457
+ usage?: {
458
+ promptTokens: number;
459
+ completionTokens: number;
460
+ totalTokens: number;
461
+ } | undefined;
462
+ error?: string | undefined;
463
+ }, {
464
+ success: boolean;
465
+ message?: string | undefined;
466
+ usage?: {
467
+ promptTokens: number;
468
+ completionTokens: number;
469
+ totalTokens: number;
470
+ } | undefined;
471
+ error?: string | undefined;
472
+ }>;
473
+ /**
474
+ * Stream delta content (incremental content from streaming responses)
475
+ */
476
+ export declare const StreamDeltaSchema: z.ZodObject<{
477
+ role: z.ZodOptional<z.ZodString>;
478
+ content: z.ZodOptional<z.ZodString>;
479
+ }, "strip", z.ZodTypeAny, {
480
+ role?: string | undefined;
481
+ content?: string | undefined;
482
+ }, {
483
+ role?: string | undefined;
484
+ content?: string | undefined;
485
+ }>;
486
+ /**
487
+ * Stream chunk type
488
+ */
489
+ export declare const StreamChunkTypeSchema: z.ZodEnum<["text", "done", "error"]>;
490
+ /**
491
+ * Raw stream chunk from API (snake_case)
492
+ */
493
+ export declare const RawStreamChunkSchema: z.ZodObject<{
494
+ id: z.ZodString;
495
+ object: z.ZodString;
496
+ created: z.ZodNumber;
497
+ model: z.ZodString;
498
+ choices: z.ZodArray<z.ZodObject<{
499
+ index: z.ZodNumber;
500
+ delta: z.ZodObject<{
501
+ role: z.ZodOptional<z.ZodString>;
502
+ content: z.ZodOptional<z.ZodString>;
503
+ }, "strip", z.ZodTypeAny, {
504
+ role?: string | undefined;
505
+ content?: string | undefined;
506
+ }, {
507
+ role?: string | undefined;
508
+ content?: string | undefined;
509
+ }>;
510
+ finish_reason: z.ZodOptional<z.ZodNullable<z.ZodString>>;
511
+ }, "strip", z.ZodTypeAny, {
512
+ index: number;
513
+ delta: {
514
+ role?: string | undefined;
515
+ content?: string | undefined;
516
+ };
517
+ finish_reason?: string | null | undefined;
518
+ }, {
519
+ index: number;
520
+ delta: {
521
+ role?: string | undefined;
522
+ content?: string | undefined;
523
+ };
524
+ finish_reason?: string | null | undefined;
525
+ }>, "many">;
526
+ usage: z.ZodOptional<z.ZodObject<{
527
+ prompt_tokens: z.ZodNumber;
528
+ completion_tokens: z.ZodNumber;
529
+ total_tokens: z.ZodNumber;
530
+ }, "strip", z.ZodTypeAny, {
531
+ prompt_tokens: number;
532
+ completion_tokens: number;
533
+ total_tokens: number;
534
+ }, {
535
+ prompt_tokens: number;
536
+ completion_tokens: number;
537
+ total_tokens: number;
538
+ }>>;
539
+ }, "strip", z.ZodTypeAny, {
540
+ object: string;
541
+ model: string;
542
+ id: string;
543
+ created: number;
544
+ choices: {
545
+ index: number;
546
+ delta: {
547
+ role?: string | undefined;
548
+ content?: string | undefined;
549
+ };
550
+ finish_reason?: string | null | undefined;
551
+ }[];
552
+ usage?: {
553
+ prompt_tokens: number;
554
+ completion_tokens: number;
555
+ total_tokens: number;
556
+ } | undefined;
557
+ }, {
558
+ object: string;
559
+ model: string;
560
+ id: string;
561
+ created: number;
562
+ choices: {
563
+ index: number;
564
+ delta: {
565
+ role?: string | undefined;
566
+ content?: string | undefined;
567
+ };
568
+ finish_reason?: string | null | undefined;
569
+ }[];
570
+ usage?: {
571
+ prompt_tokens: number;
572
+ completion_tokens: number;
573
+ total_tokens: number;
574
+ } | undefined;
575
+ }>;
576
+ /**
577
+ * Processed stream chunk (internal camelCase)
578
+ */
579
+ export declare const StreamChunkSchema: z.ZodObject<{
580
+ type: z.ZodEnum<["text", "done", "error"]>;
581
+ id: z.ZodOptional<z.ZodString>;
582
+ content: z.ZodOptional<z.ZodString>;
583
+ finishReason: z.ZodOptional<z.ZodString>;
584
+ usage: z.ZodOptional<z.ZodObject<{
585
+ promptTokens: z.ZodNumber;
586
+ completionTokens: z.ZodNumber;
587
+ totalTokens: z.ZodNumber;
588
+ }, "strip", z.ZodTypeAny, {
589
+ promptTokens: number;
590
+ completionTokens: number;
591
+ totalTokens: number;
592
+ }, {
593
+ promptTokens: number;
594
+ completionTokens: number;
595
+ totalTokens: number;
596
+ }>>;
597
+ error: z.ZodOptional<z.ZodString>;
598
+ }, "strip", z.ZodTypeAny, {
599
+ type: "error" | "text" | "done";
600
+ content?: string | undefined;
601
+ id?: string | undefined;
602
+ usage?: {
603
+ promptTokens: number;
604
+ completionTokens: number;
605
+ totalTokens: number;
606
+ } | undefined;
607
+ error?: string | undefined;
608
+ finishReason?: string | undefined;
609
+ }, {
610
+ type: "error" | "text" | "done";
611
+ content?: string | undefined;
612
+ id?: string | undefined;
613
+ usage?: {
614
+ promptTokens: number;
615
+ completionTokens: number;
616
+ totalTokens: number;
617
+ } | undefined;
618
+ error?: string | undefined;
619
+ finishReason?: string | undefined;
620
+ }>;
621
+ /**
622
+ * Generic API error response (most providers use this format)
623
+ */
624
+ export declare const APIErrorResponseSchema: z.ZodObject<{
625
+ error: z.ZodOptional<z.ZodObject<{
626
+ message: z.ZodString;
627
+ type: z.ZodOptional<z.ZodString>;
628
+ code: z.ZodOptional<z.ZodString>;
629
+ }, "strip", z.ZodTypeAny, {
630
+ message: string;
631
+ code?: string | undefined;
632
+ type?: string | undefined;
633
+ }, {
634
+ message: string;
635
+ code?: string | undefined;
636
+ type?: string | undefined;
637
+ }>>;
638
+ }, "strip", z.ZodTypeAny, {
639
+ error?: {
640
+ message: string;
641
+ code?: string | undefined;
642
+ type?: string | undefined;
643
+ } | undefined;
644
+ }, {
645
+ error?: {
646
+ message: string;
647
+ code?: string | undefined;
648
+ type?: string | undefined;
649
+ } | undefined;
650
+ }>;
651
+ /**
652
+ * Error types categorization
653
+ */
654
+ export declare const ErrorTypeSchema: z.ZodEnum<["timeout", "auth", "rate_limit", "network", "validation", "unknown"]>;
655
+ export type ChatMessageRole = z.infer<typeof ChatMessageRoleSchema>;
656
+ export type ChatMessage = z.infer<typeof ChatMessageSchema>;
657
+ export type TokenUsage = z.infer<typeof TokenUsageSchema>;
658
+ export type BaseAIRequestOptions = z.infer<typeof BaseAIRequestOptionsSchema>;
659
+ export type ChatCompletionOptions = z.infer<typeof ChatCompletionOptionsSchema>;
660
+ export type AIRequest = z.infer<typeof AIRequestSchema>;
661
+ export type AIChatRequest = z.infer<typeof AIChatRequestSchema>;
662
+ export type LatencyInfo = z.infer<typeof LatencyInfoSchema>;
663
+ export type RawChatCompletionResponse = z.infer<typeof RawChatCompletionResponseSchema>;
664
+ export type ChatCompletionResponse = z.infer<typeof ChatCompletionResponseSchema>;
665
+ export type AIResponse = z.infer<typeof AIResponseSchema>;
666
+ export type AIChatResponse = z.infer<typeof AIChatResponseSchema>;
667
+ export type APIErrorResponse = z.infer<typeof APIErrorResponseSchema>;
668
+ export type ErrorType = z.infer<typeof ErrorTypeSchema>;
669
+ export type StreamDelta = z.infer<typeof StreamDeltaSchema>;
670
+ export type StreamChunkType = z.infer<typeof StreamChunkTypeSchema>;
671
+ export type RawStreamChunk = z.infer<typeof RawStreamChunkSchema>;
672
+ export type StreamChunk = z.infer<typeof StreamChunkSchema>;
673
+ /**
674
+ * Validate chat message
675
+ */
676
+ export declare function validateChatMessage(data: unknown): z.SafeParseReturnType<{
677
+ role: "system" | "user" | "assistant";
678
+ content: string;
679
+ }, {
680
+ role: "system" | "user" | "assistant";
681
+ content: string;
682
+ }>;
683
+ /**
684
+ * Validate chat messages array
685
+ */
686
+ export declare function validateChatMessages(data: unknown): z.SafeParseReturnType<{
687
+ role: "system" | "user" | "assistant";
688
+ content: string;
689
+ }[], {
690
+ role: "system" | "user" | "assistant";
691
+ content: string;
692
+ }[]>;
693
+ /**
694
+ * Validate chat completion options
695
+ */
696
+ export declare function validateChatCompletionOptions(data: unknown): z.SafeParseReturnType<{
697
+ model?: string | undefined;
698
+ temperature?: number | undefined;
699
+ maxTokens?: number | undefined;
700
+ stream?: boolean | undefined;
701
+ timeout?: number | undefined;
702
+ maxRetries?: number | undefined;
703
+ }, {
704
+ stream: boolean;
705
+ timeout: number;
706
+ maxRetries: number;
707
+ model?: string | undefined;
708
+ temperature?: number | undefined;
709
+ maxTokens?: number | undefined;
710
+ }>;
711
+ /**
712
+ * Validate raw API response
713
+ */
714
+ export declare function validateRawResponse(data: unknown): z.SafeParseReturnType<{
715
+ object: string;
716
+ model: string;
717
+ id: string;
718
+ created: number;
719
+ choices: {
720
+ message: {
721
+ role: string;
722
+ content: string;
723
+ };
724
+ index: number;
725
+ finish_reason: string;
726
+ }[];
727
+ usage?: {
728
+ prompt_tokens: number;
729
+ completion_tokens: number;
730
+ total_tokens: number;
731
+ } | undefined;
732
+ }, {
733
+ object: string;
734
+ model: string;
735
+ id: string;
736
+ created: number;
737
+ choices: {
738
+ message: {
739
+ role: string;
740
+ content: string;
741
+ };
742
+ index: number;
743
+ finish_reason: string;
744
+ }[];
745
+ usage?: {
746
+ prompt_tokens: number;
747
+ completion_tokens: number;
748
+ total_tokens: number;
749
+ } | undefined;
750
+ }>;
751
+ /**
752
+ * Validate and convert raw usage to internal format
753
+ */
754
+ export declare function convertUsage(raw: unknown): TokenUsage | null;
755
+ /**
756
+ * Categorize error from unknown data
757
+ * Generic error categorization that works across providers
758
+ */
759
+ export declare function categorizeError(data: unknown): ErrorType;
760
+ /**
761
+ * Parse a single SSE line
762
+ * Returns null if line is empty or just whitespace
763
+ */
764
+ export declare function parseSSERow(line: string): string | null;
765
+ /**
766
+ * Parse SSE response body and yield stream chunks
767
+ * Converts raw SSE lines to processed StreamChunk objects
768
+ */
769
+ export declare function parseSSEStream(response: Response): AsyncGenerator<StreamChunk, void, unknown>;
770
+ declare const _default: {
771
+ ChatMessageSchema: z.ZodObject<{
772
+ role: z.ZodEnum<["system", "user", "assistant"]>;
773
+ content: z.ZodString;
774
+ }, "strip", z.ZodTypeAny, {
775
+ role: "system" | "user" | "assistant";
776
+ content: string;
777
+ }, {
778
+ role: "system" | "user" | "assistant";
779
+ content: string;
780
+ }>;
781
+ ChatMessageRoleSchema: z.ZodEnum<["system", "user", "assistant"]>;
782
+ TokenUsageSchema: z.ZodObject<{
783
+ promptTokens: z.ZodNumber;
784
+ completionTokens: z.ZodNumber;
785
+ totalTokens: z.ZodNumber;
786
+ }, "strip", z.ZodTypeAny, {
787
+ promptTokens: number;
788
+ completionTokens: number;
789
+ totalTokens: number;
790
+ }, {
791
+ promptTokens: number;
792
+ completionTokens: number;
793
+ totalTokens: number;
794
+ }>;
795
+ RawUsageSchema: z.ZodObject<{
796
+ prompt_tokens: z.ZodNumber;
797
+ completion_tokens: z.ZodNumber;
798
+ total_tokens: z.ZodNumber;
799
+ }, "strip", z.ZodTypeAny, {
800
+ prompt_tokens: number;
801
+ completion_tokens: number;
802
+ total_tokens: number;
803
+ }, {
804
+ prompt_tokens: number;
805
+ completion_tokens: number;
806
+ total_tokens: number;
807
+ }>;
808
+ BaseAIRequestOptionsSchema: z.ZodObject<{
809
+ model: z.ZodOptional<z.ZodString>;
810
+ temperature: z.ZodOptional<z.ZodNumber>;
811
+ maxTokens: z.ZodOptional<z.ZodNumber>;
812
+ }, "strip", z.ZodTypeAny, {
813
+ model?: string | undefined;
814
+ temperature?: number | undefined;
815
+ maxTokens?: number | undefined;
816
+ }, {
817
+ model?: string | undefined;
818
+ temperature?: number | undefined;
819
+ maxTokens?: number | undefined;
820
+ }>;
821
+ ChatCompletionOptionsSchema: z.ZodObject<{
822
+ model: z.ZodOptional<z.ZodString>;
823
+ temperature: z.ZodOptional<z.ZodNumber>;
824
+ maxTokens: z.ZodOptional<z.ZodNumber>;
825
+ } & {
826
+ stream: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
827
+ timeout: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
828
+ maxRetries: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
829
+ }, "strip", z.ZodTypeAny, {
830
+ stream: boolean;
831
+ timeout: number;
832
+ maxRetries: number;
833
+ model?: string | undefined;
834
+ temperature?: number | undefined;
835
+ maxTokens?: number | undefined;
836
+ }, {
837
+ model?: string | undefined;
838
+ temperature?: number | undefined;
839
+ maxTokens?: number | undefined;
840
+ stream?: boolean | undefined;
841
+ timeout?: number | undefined;
842
+ maxRetries?: number | undefined;
843
+ }>;
844
+ AIRequestSchema: z.ZodObject<{
845
+ model: z.ZodOptional<z.ZodString>;
846
+ temperature: z.ZodOptional<z.ZodNumber>;
847
+ maxTokens: z.ZodOptional<z.ZodNumber>;
848
+ } & {
849
+ prompt: z.ZodString;
850
+ systemPrompt: z.ZodOptional<z.ZodString>;
851
+ }, "strip", z.ZodTypeAny, {
852
+ prompt: string;
853
+ model?: string | undefined;
854
+ temperature?: number | undefined;
855
+ maxTokens?: number | undefined;
856
+ systemPrompt?: string | undefined;
857
+ }, {
858
+ prompt: string;
859
+ model?: string | undefined;
860
+ temperature?: number | undefined;
861
+ maxTokens?: number | undefined;
862
+ systemPrompt?: string | undefined;
863
+ }>;
864
+ AIChatRequestSchema: z.ZodObject<{
865
+ model: z.ZodOptional<z.ZodString>;
866
+ temperature: z.ZodOptional<z.ZodNumber>;
867
+ maxTokens: z.ZodOptional<z.ZodNumber>;
868
+ } & {
869
+ messages: z.ZodArray<z.ZodObject<{
870
+ role: z.ZodEnum<["system", "user", "assistant"]>;
871
+ content: z.ZodString;
872
+ }, "strip", z.ZodTypeAny, {
873
+ role: "system" | "user" | "assistant";
874
+ content: string;
875
+ }, {
876
+ role: "system" | "user" | "assistant";
877
+ content: string;
878
+ }>, "many">;
879
+ }, "strip", z.ZodTypeAny, {
880
+ messages: {
881
+ role: "system" | "user" | "assistant";
882
+ content: string;
883
+ }[];
884
+ model?: string | undefined;
885
+ temperature?: number | undefined;
886
+ maxTokens?: number | undefined;
887
+ }, {
888
+ messages: {
889
+ role: "system" | "user" | "assistant";
890
+ content: string;
891
+ }[];
892
+ model?: string | undefined;
893
+ temperature?: number | undefined;
894
+ maxTokens?: number | undefined;
895
+ }>;
896
+ LatencyInfoSchema: z.ZodObject<{
897
+ totalMs: z.ZodNumber;
898
+ formatted: z.ZodString;
899
+ }, "strip", z.ZodTypeAny, {
900
+ totalMs: number;
901
+ formatted: string;
902
+ }, {
903
+ totalMs: number;
904
+ formatted: string;
905
+ }>;
906
+ RawChatCompletionResponseSchema: z.ZodObject<{
907
+ id: z.ZodString;
908
+ object: z.ZodString;
909
+ created: z.ZodNumber;
910
+ model: z.ZodString;
911
+ choices: z.ZodArray<z.ZodObject<{
912
+ index: z.ZodNumber;
913
+ message: z.ZodObject<{
914
+ role: z.ZodString;
915
+ content: z.ZodString;
916
+ }, "strip", z.ZodTypeAny, {
917
+ role: string;
918
+ content: string;
919
+ }, {
920
+ role: string;
921
+ content: string;
922
+ }>;
923
+ finish_reason: z.ZodString;
924
+ }, "strip", z.ZodTypeAny, {
925
+ message: {
926
+ role: string;
927
+ content: string;
928
+ };
929
+ index: number;
930
+ finish_reason: string;
931
+ }, {
932
+ message: {
933
+ role: string;
934
+ content: string;
935
+ };
936
+ index: number;
937
+ finish_reason: string;
938
+ }>, "many">;
939
+ usage: z.ZodOptional<z.ZodObject<{
940
+ prompt_tokens: z.ZodNumber;
941
+ completion_tokens: z.ZodNumber;
942
+ total_tokens: z.ZodNumber;
943
+ }, "strip", z.ZodTypeAny, {
944
+ prompt_tokens: number;
945
+ completion_tokens: number;
946
+ total_tokens: number;
947
+ }, {
948
+ prompt_tokens: number;
949
+ completion_tokens: number;
950
+ total_tokens: number;
951
+ }>>;
952
+ }, "strip", z.ZodTypeAny, {
953
+ object: string;
954
+ model: string;
955
+ id: string;
956
+ created: number;
957
+ choices: {
958
+ message: {
959
+ role: string;
960
+ content: string;
961
+ };
962
+ index: number;
963
+ finish_reason: string;
964
+ }[];
965
+ usage?: {
966
+ prompt_tokens: number;
967
+ completion_tokens: number;
968
+ total_tokens: number;
969
+ } | undefined;
970
+ }, {
971
+ object: string;
972
+ model: string;
973
+ id: string;
974
+ created: number;
975
+ choices: {
976
+ message: {
977
+ role: string;
978
+ content: string;
979
+ };
980
+ index: number;
981
+ finish_reason: string;
982
+ }[];
983
+ usage?: {
984
+ prompt_tokens: number;
985
+ completion_tokens: number;
986
+ total_tokens: number;
987
+ } | undefined;
988
+ }>;
989
+ ChatCompletionResponseSchema: z.ZodObject<{
990
+ id: z.ZodString;
991
+ object: z.ZodString;
992
+ created: z.ZodNumber;
993
+ model: z.ZodString;
994
+ choices: z.ZodArray<z.ZodObject<{
995
+ index: z.ZodNumber;
996
+ message: z.ZodObject<{
997
+ role: z.ZodString;
998
+ content: z.ZodString;
999
+ }, "strip", z.ZodTypeAny, {
1000
+ role: string;
1001
+ content: string;
1002
+ }, {
1003
+ role: string;
1004
+ content: string;
1005
+ }>;
1006
+ finish_reason: z.ZodString;
1007
+ }, "strip", z.ZodTypeAny, {
1008
+ message: {
1009
+ role: string;
1010
+ content: string;
1011
+ };
1012
+ index: number;
1013
+ finish_reason: string;
1014
+ }, {
1015
+ message: {
1016
+ role: string;
1017
+ content: string;
1018
+ };
1019
+ index: number;
1020
+ finish_reason: string;
1021
+ }>, "many">;
1022
+ usage: z.ZodOptional<z.ZodObject<{
1023
+ promptTokens: z.ZodNumber;
1024
+ completionTokens: z.ZodNumber;
1025
+ totalTokens: z.ZodNumber;
1026
+ }, "strip", z.ZodTypeAny, {
1027
+ promptTokens: number;
1028
+ completionTokens: number;
1029
+ totalTokens: number;
1030
+ }, {
1031
+ promptTokens: number;
1032
+ completionTokens: number;
1033
+ totalTokens: number;
1034
+ }>>;
1035
+ latency: z.ZodOptional<z.ZodObject<{
1036
+ totalMs: z.ZodNumber;
1037
+ formatted: z.ZodString;
1038
+ }, "strip", z.ZodTypeAny, {
1039
+ totalMs: number;
1040
+ formatted: string;
1041
+ }, {
1042
+ totalMs: number;
1043
+ formatted: string;
1044
+ }>>;
1045
+ }, "strip", z.ZodTypeAny, {
1046
+ object: string;
1047
+ model: string;
1048
+ id: string;
1049
+ created: number;
1050
+ choices: {
1051
+ message: {
1052
+ role: string;
1053
+ content: string;
1054
+ };
1055
+ index: number;
1056
+ finish_reason: string;
1057
+ }[];
1058
+ usage?: {
1059
+ promptTokens: number;
1060
+ completionTokens: number;
1061
+ totalTokens: number;
1062
+ } | undefined;
1063
+ latency?: {
1064
+ totalMs: number;
1065
+ formatted: string;
1066
+ } | undefined;
1067
+ }, {
1068
+ object: string;
1069
+ model: string;
1070
+ id: string;
1071
+ created: number;
1072
+ choices: {
1073
+ message: {
1074
+ role: string;
1075
+ content: string;
1076
+ };
1077
+ index: number;
1078
+ finish_reason: string;
1079
+ }[];
1080
+ usage?: {
1081
+ promptTokens: number;
1082
+ completionTokens: number;
1083
+ totalTokens: number;
1084
+ } | undefined;
1085
+ latency?: {
1086
+ totalMs: number;
1087
+ formatted: string;
1088
+ } | undefined;
1089
+ }>;
1090
+ AIResponseSchema: z.ZodObject<{
1091
+ success: z.ZodBoolean;
1092
+ content: z.ZodOptional<z.ZodString>;
1093
+ error: z.ZodOptional<z.ZodString>;
1094
+ usage: z.ZodOptional<z.ZodObject<{
1095
+ promptTokens: z.ZodNumber;
1096
+ completionTokens: z.ZodNumber;
1097
+ totalTokens: z.ZodNumber;
1098
+ }, "strip", z.ZodTypeAny, {
1099
+ promptTokens: number;
1100
+ completionTokens: number;
1101
+ totalTokens: number;
1102
+ }, {
1103
+ promptTokens: number;
1104
+ completionTokens: number;
1105
+ totalTokens: number;
1106
+ }>>;
1107
+ }, "strip", z.ZodTypeAny, {
1108
+ success: boolean;
1109
+ content?: string | undefined;
1110
+ usage?: {
1111
+ promptTokens: number;
1112
+ completionTokens: number;
1113
+ totalTokens: number;
1114
+ } | undefined;
1115
+ error?: string | undefined;
1116
+ }, {
1117
+ success: boolean;
1118
+ content?: string | undefined;
1119
+ usage?: {
1120
+ promptTokens: number;
1121
+ completionTokens: number;
1122
+ totalTokens: number;
1123
+ } | undefined;
1124
+ error?: string | undefined;
1125
+ }>;
1126
+ AIChatResponseSchema: z.ZodObject<{
1127
+ success: z.ZodBoolean;
1128
+ message: z.ZodOptional<z.ZodString>;
1129
+ usage: z.ZodOptional<z.ZodObject<{
1130
+ promptTokens: z.ZodNumber;
1131
+ completionTokens: z.ZodNumber;
1132
+ totalTokens: z.ZodNumber;
1133
+ }, "strip", z.ZodTypeAny, {
1134
+ promptTokens: number;
1135
+ completionTokens: number;
1136
+ totalTokens: number;
1137
+ }, {
1138
+ promptTokens: number;
1139
+ completionTokens: number;
1140
+ totalTokens: number;
1141
+ }>>;
1142
+ error: z.ZodOptional<z.ZodString>;
1143
+ }, "strip", z.ZodTypeAny, {
1144
+ success: boolean;
1145
+ message?: string | undefined;
1146
+ usage?: {
1147
+ promptTokens: number;
1148
+ completionTokens: number;
1149
+ totalTokens: number;
1150
+ } | undefined;
1151
+ error?: string | undefined;
1152
+ }, {
1153
+ success: boolean;
1154
+ message?: string | undefined;
1155
+ usage?: {
1156
+ promptTokens: number;
1157
+ completionTokens: number;
1158
+ totalTokens: number;
1159
+ } | undefined;
1160
+ error?: string | undefined;
1161
+ }>;
1162
+ StreamDeltaSchema: z.ZodObject<{
1163
+ role: z.ZodOptional<z.ZodString>;
1164
+ content: z.ZodOptional<z.ZodString>;
1165
+ }, "strip", z.ZodTypeAny, {
1166
+ role?: string | undefined;
1167
+ content?: string | undefined;
1168
+ }, {
1169
+ role?: string | undefined;
1170
+ content?: string | undefined;
1171
+ }>;
1172
+ StreamChunkTypeSchema: z.ZodEnum<["text", "done", "error"]>;
1173
+ RawStreamChunkSchema: z.ZodObject<{
1174
+ id: z.ZodString;
1175
+ object: z.ZodString;
1176
+ created: z.ZodNumber;
1177
+ model: z.ZodString;
1178
+ choices: z.ZodArray<z.ZodObject<{
1179
+ index: z.ZodNumber;
1180
+ delta: z.ZodObject<{
1181
+ role: z.ZodOptional<z.ZodString>;
1182
+ content: z.ZodOptional<z.ZodString>;
1183
+ }, "strip", z.ZodTypeAny, {
1184
+ role?: string | undefined;
1185
+ content?: string | undefined;
1186
+ }, {
1187
+ role?: string | undefined;
1188
+ content?: string | undefined;
1189
+ }>;
1190
+ finish_reason: z.ZodOptional<z.ZodNullable<z.ZodString>>;
1191
+ }, "strip", z.ZodTypeAny, {
1192
+ index: number;
1193
+ delta: {
1194
+ role?: string | undefined;
1195
+ content?: string | undefined;
1196
+ };
1197
+ finish_reason?: string | null | undefined;
1198
+ }, {
1199
+ index: number;
1200
+ delta: {
1201
+ role?: string | undefined;
1202
+ content?: string | undefined;
1203
+ };
1204
+ finish_reason?: string | null | undefined;
1205
+ }>, "many">;
1206
+ usage: z.ZodOptional<z.ZodObject<{
1207
+ prompt_tokens: z.ZodNumber;
1208
+ completion_tokens: z.ZodNumber;
1209
+ total_tokens: z.ZodNumber;
1210
+ }, "strip", z.ZodTypeAny, {
1211
+ prompt_tokens: number;
1212
+ completion_tokens: number;
1213
+ total_tokens: number;
1214
+ }, {
1215
+ prompt_tokens: number;
1216
+ completion_tokens: number;
1217
+ total_tokens: number;
1218
+ }>>;
1219
+ }, "strip", z.ZodTypeAny, {
1220
+ object: string;
1221
+ model: string;
1222
+ id: string;
1223
+ created: number;
1224
+ choices: {
1225
+ index: number;
1226
+ delta: {
1227
+ role?: string | undefined;
1228
+ content?: string | undefined;
1229
+ };
1230
+ finish_reason?: string | null | undefined;
1231
+ }[];
1232
+ usage?: {
1233
+ prompt_tokens: number;
1234
+ completion_tokens: number;
1235
+ total_tokens: number;
1236
+ } | undefined;
1237
+ }, {
1238
+ object: string;
1239
+ model: string;
1240
+ id: string;
1241
+ created: number;
1242
+ choices: {
1243
+ index: number;
1244
+ delta: {
1245
+ role?: string | undefined;
1246
+ content?: string | undefined;
1247
+ };
1248
+ finish_reason?: string | null | undefined;
1249
+ }[];
1250
+ usage?: {
1251
+ prompt_tokens: number;
1252
+ completion_tokens: number;
1253
+ total_tokens: number;
1254
+ } | undefined;
1255
+ }>;
1256
+ StreamChunkSchema: z.ZodObject<{
1257
+ type: z.ZodEnum<["text", "done", "error"]>;
1258
+ id: z.ZodOptional<z.ZodString>;
1259
+ content: z.ZodOptional<z.ZodString>;
1260
+ finishReason: z.ZodOptional<z.ZodString>;
1261
+ usage: z.ZodOptional<z.ZodObject<{
1262
+ promptTokens: z.ZodNumber;
1263
+ completionTokens: z.ZodNumber;
1264
+ totalTokens: z.ZodNumber;
1265
+ }, "strip", z.ZodTypeAny, {
1266
+ promptTokens: number;
1267
+ completionTokens: number;
1268
+ totalTokens: number;
1269
+ }, {
1270
+ promptTokens: number;
1271
+ completionTokens: number;
1272
+ totalTokens: number;
1273
+ }>>;
1274
+ error: z.ZodOptional<z.ZodString>;
1275
+ }, "strip", z.ZodTypeAny, {
1276
+ type: "error" | "text" | "done";
1277
+ content?: string | undefined;
1278
+ id?: string | undefined;
1279
+ usage?: {
1280
+ promptTokens: number;
1281
+ completionTokens: number;
1282
+ totalTokens: number;
1283
+ } | undefined;
1284
+ error?: string | undefined;
1285
+ finishReason?: string | undefined;
1286
+ }, {
1287
+ type: "error" | "text" | "done";
1288
+ content?: string | undefined;
1289
+ id?: string | undefined;
1290
+ usage?: {
1291
+ promptTokens: number;
1292
+ completionTokens: number;
1293
+ totalTokens: number;
1294
+ } | undefined;
1295
+ error?: string | undefined;
1296
+ finishReason?: string | undefined;
1297
+ }>;
1298
+ APIErrorResponseSchema: z.ZodObject<{
1299
+ error: z.ZodOptional<z.ZodObject<{
1300
+ message: z.ZodString;
1301
+ type: z.ZodOptional<z.ZodString>;
1302
+ code: z.ZodOptional<z.ZodString>;
1303
+ }, "strip", z.ZodTypeAny, {
1304
+ message: string;
1305
+ code?: string | undefined;
1306
+ type?: string | undefined;
1307
+ }, {
1308
+ message: string;
1309
+ code?: string | undefined;
1310
+ type?: string | undefined;
1311
+ }>>;
1312
+ }, "strip", z.ZodTypeAny, {
1313
+ error?: {
1314
+ message: string;
1315
+ code?: string | undefined;
1316
+ type?: string | undefined;
1317
+ } | undefined;
1318
+ }, {
1319
+ error?: {
1320
+ message: string;
1321
+ code?: string | undefined;
1322
+ type?: string | undefined;
1323
+ } | undefined;
1324
+ }>;
1325
+ ErrorTypeSchema: z.ZodEnum<["timeout", "auth", "rate_limit", "network", "validation", "unknown"]>;
1326
+ validateChatMessage: typeof validateChatMessage;
1327
+ validateChatMessages: typeof validateChatMessages;
1328
+ validateChatCompletionOptions: typeof validateChatCompletionOptions;
1329
+ validateRawResponse: typeof validateRawResponse;
1330
+ convertUsage: typeof convertUsage;
1331
+ categorizeError: typeof categorizeError;
1332
+ parseSSERow: typeof parseSSERow;
1333
+ parseSSEStream: typeof parseSSEStream;
1334
+ };
1335
+ export default _default;