@vibesdotdev/integrations-whisper 0.0.0-stage → 1.0.0-rc.4

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 (67) hide show
  1. package/LICENSE +126 -0
  2. package/README.md +10 -2
  3. package/dist/ai/index.d.ts +5 -0
  4. package/dist/ai/index.d.ts.map +1 -0
  5. package/dist/ai/index.js +5 -0
  6. package/dist/ai/index.js.map +1 -0
  7. package/dist/ai/provider.plugin.d.ts +6 -0
  8. package/dist/ai/provider.plugin.d.ts.map +1 -0
  9. package/dist/ai/provider.plugin.js +111 -0
  10. package/dist/ai/provider.plugin.js.map +1 -0
  11. package/dist/ai/providers/cloud/speech/whisper/config/config.whisper.descriptor.d.ts +4206 -0
  12. package/dist/ai/providers/cloud/speech/whisper/config/config.whisper.descriptor.d.ts.map +1 -0
  13. package/dist/ai/providers/cloud/speech/whisper/config/config.whisper.descriptor.js +54 -0
  14. package/dist/ai/providers/cloud/speech/whisper/config/config.whisper.descriptor.js.map +1 -0
  15. package/dist/ai/providers/cloud/speech/whisper/config/schemas/index.d.ts +12 -0
  16. package/dist/ai/providers/cloud/speech/whisper/config/schemas/index.d.ts.map +1 -0
  17. package/dist/ai/providers/cloud/speech/whisper/config/schemas/index.js +10 -0
  18. package/dist/ai/providers/cloud/speech/whisper/config/schemas/index.js.map +1 -0
  19. package/dist/ai/providers/cloud/speech/whisper/index.d.ts +5 -0
  20. package/dist/ai/providers/cloud/speech/whisper/index.d.ts.map +1 -0
  21. package/dist/ai/providers/cloud/speech/whisper/index.js +4 -0
  22. package/dist/ai/providers/cloud/speech/whisper/index.js.map +1 -0
  23. package/dist/ai/providers/cloud/speech/whisper/provider.whisper.descriptor.d.ts +183 -0
  24. package/dist/ai/providers/cloud/speech/whisper/provider.whisper.descriptor.d.ts.map +1 -0
  25. package/dist/ai/providers/cloud/speech/whisper/provider.whisper.descriptor.js +47 -0
  26. package/dist/ai/providers/cloud/speech/whisper/provider.whisper.descriptor.js.map +1 -0
  27. package/dist/ai/providers/whisper/detection/system.d.ts +17 -0
  28. package/dist/ai/providers/whisper/detection/system.d.ts.map +1 -0
  29. package/dist/ai/providers/whisper/detection/system.js +35 -0
  30. package/dist/ai/providers/whisper/detection/system.js.map +1 -0
  31. package/dist/ai/providers/whisper/recommendations.d.ts +27 -0
  32. package/dist/ai/providers/whisper/recommendations.d.ts.map +1 -0
  33. package/dist/ai/providers/whisper/recommendations.js +68 -0
  34. package/dist/ai/providers/whisper/recommendations.js.map +1 -0
  35. package/dist/ai/providers/whisper/whisper.provider.impl.d.ts +18 -0
  36. package/dist/ai/providers/whisper/whisper.provider.impl.d.ts.map +1 -0
  37. package/dist/ai/providers/whisper/whisper.provider.impl.js +63 -0
  38. package/dist/ai/providers/whisper/whisper.provider.impl.js.map +1 -0
  39. package/dist/ai/specs/whisper-cli/whisper-cli.spec.descriptor.d.ts +35 -0
  40. package/dist/ai/specs/whisper-cli/whisper-cli.spec.descriptor.d.ts.map +1 -0
  41. package/dist/ai/specs/whisper-cli/whisper-cli.spec.descriptor.js +24 -0
  42. package/dist/ai/specs/whisper-cli/whisper-cli.spec.descriptor.js.map +1 -0
  43. package/dist/ai/specs/whisper-cli/whisper-cli.spec.impl.d.ts +31 -0
  44. package/dist/ai/specs/whisper-cli/whisper-cli.spec.impl.d.ts.map +1 -0
  45. package/dist/ai/specs/whisper-cli/whisper-cli.spec.impl.js +60 -0
  46. package/dist/ai/specs/whisper-cli/whisper-cli.spec.impl.js.map +1 -0
  47. package/dist/ai/specs/whisper-hf-cli/whisper-hf-cli.spec.descriptor.d.ts +25 -0
  48. package/dist/ai/specs/whisper-hf-cli/whisper-hf-cli.spec.descriptor.d.ts.map +1 -0
  49. package/dist/ai/specs/whisper-hf-cli/whisper-hf-cli.spec.descriptor.js +14 -0
  50. package/dist/ai/specs/whisper-hf-cli/whisper-hf-cli.spec.descriptor.js.map +1 -0
  51. package/dist/ai/specs/whisper-hf-cli/whisper-hf-cli.spec.impl.d.ts +31 -0
  52. package/dist/ai/specs/whisper-hf-cli/whisper-hf-cli.spec.impl.d.ts.map +1 -0
  53. package/dist/ai/specs/whisper-hf-cli/whisper-hf-cli.spec.impl.js +52 -0
  54. package/dist/ai/specs/whisper-hf-cli/whisper-hf-cli.spec.impl.js.map +1 -0
  55. package/dist/ai/specs/wire.d.ts +545 -0
  56. package/dist/ai/specs/wire.d.ts.map +1 -0
  57. package/dist/ai/specs/wire.js +80 -0
  58. package/dist/ai/specs/wire.js.map +1 -0
  59. package/dist/index.d.ts +4 -0
  60. package/dist/index.d.ts.map +1 -0
  61. package/dist/index.js +4 -0
  62. package/dist/index.js.map +1 -0
  63. package/dist/schemas/wire.d.ts +30 -0
  64. package/dist/schemas/wire.d.ts.map +1 -0
  65. package/dist/schemas/wire.js +20 -0
  66. package/dist/schemas/wire.js.map +1 -0
  67. package/package.json +98 -4
@@ -0,0 +1,545 @@
1
+ import { CapabilityError } from '@vibesdotdev/kernel';
2
+ import { type DecodedEvent, type SpecCallContext, type WireResponseChunk } from '@vibesdotdev/ai/specs/interfaces';
3
+ import type { GenerationRequest, TranscriptionResponse } from '@vibesdotdev/ai/interfaces';
4
+ import type { Modality } from '@vibesdotdev/ai/models/schemas';
5
+ import { type JsonValue } from '@vibesdotdev/kernel/schemas/json';
6
+ export declare function refusal(reason: 'invalid-request' | 'malformed-audio' | 'missing-output' | 'malformed-output' | 'invalid-vendor-payload'): CapabilityError;
7
+ export declare function readRequest(request: GenerationRequest<Modality>): {
8
+ request: {
9
+ modality: "transcription";
10
+ audio: string;
11
+ messages?: {
12
+ role: "user" | "system" | "tool" | "assistant";
13
+ content: string;
14
+ toolCallId?: string | undefined;
15
+ toolName?: string | undefined;
16
+ toolCalls?: {
17
+ id: string;
18
+ name: string;
19
+ arguments: string;
20
+ }[] | undefined;
21
+ images?: {
22
+ data: string;
23
+ mimeType: string;
24
+ detail?: "auto" | "low" | "high" | undefined;
25
+ }[] | undefined;
26
+ }[] | undefined;
27
+ provider?: string | Record<string, unknown> | {
28
+ id: string;
29
+ kind: string;
30
+ name: string;
31
+ providerType: string;
32
+ sourceType: "user" | "system";
33
+ version: string;
34
+ configuration: {
35
+ [x: string]: unknown;
36
+ baseUrl?: string | undefined;
37
+ apiKey?: string | {
38
+ source: "secret";
39
+ key: string;
40
+ store?: string | undefined;
41
+ } | {
42
+ source: "inline";
43
+ value: string;
44
+ } | undefined;
45
+ accessToken?: string | {
46
+ source: "secret";
47
+ key: string;
48
+ store?: string | undefined;
49
+ } | {
50
+ source: "inline";
51
+ value: string;
52
+ } | undefined;
53
+ refreshToken?: string | {
54
+ source: "secret";
55
+ key: string;
56
+ store?: string | undefined;
57
+ } | {
58
+ source: "inline";
59
+ value: string;
60
+ } | undefined;
61
+ organization?: string | undefined;
62
+ host?: string | undefined;
63
+ port?: number | undefined;
64
+ protocol?: "http" | "https" | undefined;
65
+ authType?: "none" | "api_key" | "bearer" | "oauth" | "basic" | undefined;
66
+ authMethod?: string | undefined;
67
+ tokenSource?: string | undefined;
68
+ timeout?: number | undefined;
69
+ retryAttempts?: number | undefined;
70
+ keepAlive?: boolean | undefined;
71
+ defaultModel?: string | undefined;
72
+ };
73
+ enabled: boolean;
74
+ description?: string | undefined;
75
+ systemProviderId?: string | null | undefined;
76
+ capabilities?: ("streaming" | "json_mode" | "text_generation" | "chat_completion" | "function_calling" | "embedding_generation" | "image_generation_text_to_image" | "image_generation_image_to_image" | "image_generation_inpainting" | "image_generation_outpainting" | "image_upscaling" | "image_editing_via_instructions" | "audio_generation_text_to_speech" | "audio_generation_voice_cloning" | "audio_generation_music" | "audio_generation_sound_effects" | "audio_transcription" | "audio_transcription_realtime" | "video_generation_text_to_video" | "workflow_execution" | "code_generation" | "image_understanding" | "structured_evaluation")[] | undefined;
77
+ hardware?: ("cloud" | "consumer")[] | undefined;
78
+ metadata?: Record<string, unknown> | undefined;
79
+ tags?: string[] | undefined;
80
+ roles?: string[] | undefined;
81
+ variants?: {
82
+ id: string;
83
+ label: string;
84
+ transport: string;
85
+ specId: string;
86
+ endpoint: string;
87
+ auth: {
88
+ kind: "none";
89
+ } | {
90
+ kind: "bearer";
91
+ token: string | {
92
+ source: "secret";
93
+ key: string;
94
+ store?: string | undefined;
95
+ };
96
+ scheme?: string | undefined;
97
+ } | {
98
+ kind: "api-key-header";
99
+ header: string;
100
+ value: string | {
101
+ source: "secret";
102
+ key: string;
103
+ store?: string | undefined;
104
+ };
105
+ } | {
106
+ kind: "basic";
107
+ username: string;
108
+ password: string | {
109
+ source: "secret";
110
+ key: string;
111
+ store?: string | undefined;
112
+ };
113
+ } | {
114
+ kind: "cf-binding";
115
+ bindingName: string;
116
+ };
117
+ modelIdRule: {
118
+ kind: "strip-prefix";
119
+ } | {
120
+ kind: "passthrough";
121
+ } | {
122
+ kind: "explicit";
123
+ modelMap: Record<string, string>;
124
+ };
125
+ priority: number;
126
+ enabled: boolean;
127
+ description?: string | undefined;
128
+ modalities?: ("image" | "text" | "audio" | "video" | "embedding" | "transcription" | "evaluation" | "speech" | "ocr")[] | undefined;
129
+ inheritEnv?: string[] | undefined;
130
+ requiredConfiguration?: string[] | undefined;
131
+ authMethodId?: string | undefined;
132
+ execution?: {
133
+ generationLocations: ("consumer" | "server")[];
134
+ headless: boolean;
135
+ } | undefined;
136
+ tags?: string[] | undefined;
137
+ models?: {
138
+ tags?: string[] | undefined;
139
+ } | undefined;
140
+ additionalHeaders?: Record<string, string> | undefined;
141
+ capabilities?: {
142
+ supportsToolChoiceRequired?: boolean | undefined;
143
+ } | undefined;
144
+ }[] | undefined;
145
+ declaredVariants?: {
146
+ id: string;
147
+ label: string;
148
+ transport: string;
149
+ specId: string;
150
+ endpoint: string;
151
+ auth: {
152
+ kind: "none";
153
+ } | {
154
+ kind: "bearer";
155
+ token: string | {
156
+ source: "secret";
157
+ key: string;
158
+ store?: string | undefined;
159
+ };
160
+ scheme?: string | undefined;
161
+ } | {
162
+ kind: "api-key-header";
163
+ header: string;
164
+ value: string | {
165
+ source: "secret";
166
+ key: string;
167
+ store?: string | undefined;
168
+ };
169
+ } | {
170
+ kind: "basic";
171
+ username: string;
172
+ password: string | {
173
+ source: "secret";
174
+ key: string;
175
+ store?: string | undefined;
176
+ };
177
+ } | {
178
+ kind: "cf-binding";
179
+ bindingName: string;
180
+ };
181
+ modelIdRule: {
182
+ kind: "strip-prefix";
183
+ } | {
184
+ kind: "passthrough";
185
+ } | {
186
+ kind: "explicit";
187
+ modelMap: Record<string, string>;
188
+ };
189
+ priority: number;
190
+ enabled: boolean;
191
+ description?: string | undefined;
192
+ modalities?: ("image" | "text" | "audio" | "video" | "embedding" | "transcription" | "evaluation" | "speech" | "ocr")[] | undefined;
193
+ inheritEnv?: string[] | undefined;
194
+ requiredConfiguration?: string[] | undefined;
195
+ authMethodId?: string | undefined;
196
+ execution?: {
197
+ generationLocations: ("consumer" | "server")[];
198
+ headless: boolean;
199
+ } | undefined;
200
+ tags?: string[] | undefined;
201
+ models?: {
202
+ tags?: string[] | undefined;
203
+ } | undefined;
204
+ additionalHeaders?: Record<string, string> | undefined;
205
+ capabilities?: {
206
+ supportsToolChoiceRequired?: boolean | undefined;
207
+ } | undefined;
208
+ }[] | undefined;
209
+ variantView?: {
210
+ id: string;
211
+ label: string;
212
+ transport: string;
213
+ specId: string;
214
+ endpoint: string;
215
+ auth: {
216
+ kind: "none";
217
+ } | {
218
+ kind: "bearer";
219
+ token: string | {
220
+ source: "secret";
221
+ key: string;
222
+ store?: string | undefined;
223
+ };
224
+ scheme?: string | undefined;
225
+ } | {
226
+ kind: "api-key-header";
227
+ header: string;
228
+ value: string | {
229
+ source: "secret";
230
+ key: string;
231
+ store?: string | undefined;
232
+ };
233
+ } | {
234
+ kind: "basic";
235
+ username: string;
236
+ password: string | {
237
+ source: "secret";
238
+ key: string;
239
+ store?: string | undefined;
240
+ };
241
+ } | {
242
+ kind: "cf-binding";
243
+ bindingName: string;
244
+ };
245
+ modelIdRule: {
246
+ kind: "strip-prefix";
247
+ } | {
248
+ kind: "passthrough";
249
+ } | {
250
+ kind: "explicit";
251
+ modelMap: Record<string, string>;
252
+ };
253
+ priority: number;
254
+ enabled: boolean;
255
+ description?: string | undefined;
256
+ modalities?: ("image" | "text" | "audio" | "video" | "embedding" | "transcription" | "evaluation" | "speech" | "ocr")[] | undefined;
257
+ inheritEnv?: string[] | undefined;
258
+ requiredConfiguration?: string[] | undefined;
259
+ authMethodId?: string | undefined;
260
+ execution?: {
261
+ generationLocations: ("consumer" | "server")[];
262
+ headless: boolean;
263
+ } | undefined;
264
+ tags?: string[] | undefined;
265
+ models?: {
266
+ tags?: string[] | undefined;
267
+ } | undefined;
268
+ additionalHeaders?: Record<string, string> | undefined;
269
+ capabilities?: {
270
+ supportsToolChoiceRequired?: boolean | undefined;
271
+ } | undefined;
272
+ }[] | undefined;
273
+ } | undefined;
274
+ model?: string | Record<string, unknown> | {
275
+ id: string;
276
+ kind: "ai/model";
277
+ providerId: string;
278
+ name: string;
279
+ capabilities: ("text_generation" | "chat_completion" | "function_calling" | "embedding_generation" | "image_generation_text_to_image" | "image_generation_image_to_image" | "image_generation_inpainting" | "image_generation_outpainting" | "image_upscaling" | "image_editing_via_instructions" | "audio_generation_text_to_speech" | "audio_generation_voice_cloning" | "audio_generation_music" | "audio_generation_sound_effects" | "audio_transcription" | "audio_transcription_realtime" | "video_generation_text_to_video" | "workflow_execution" | "code_generation" | "image_understanding" | "structured_evaluation")[];
280
+ modalities: ("image" | "text" | "audio" | "video" | "embedding" | "transcription" | "evaluation" | "speech" | "ocr")[];
281
+ configuration: {
282
+ [x: string]: unknown;
283
+ modelId?: string | undefined;
284
+ contextLength?: number | undefined;
285
+ temperature?: number | undefined;
286
+ maxTokens?: number | undefined;
287
+ topP?: number | undefined;
288
+ topK?: number | undefined;
289
+ frequencyPenalty?: number | undefined;
290
+ presencePenalty?: number | undefined;
291
+ stopSequences?: string[] | undefined;
292
+ stream?: boolean | undefined;
293
+ seed?: number | undefined;
294
+ responseFormat?: "text" | "json" | undefined;
295
+ imageDefaults?: {
296
+ steps?: number | undefined;
297
+ cfgScale?: number | undefined;
298
+ sampler?: string | undefined;
299
+ scheduler?: string | undefined;
300
+ negativePrompt?: string | undefined;
301
+ quality?: string | undefined;
302
+ outputFormat?: string | undefined;
303
+ } | undefined;
304
+ };
305
+ enabled: boolean;
306
+ modelType?: "audio_transcription" | "audio_transcription_realtime" | "llm_base" | "llm_chat" | "llm_embedding" | "image_diffusion" | "image_gan" | "image_upscaler" | "image_editor" | "audio_tts" | "audio_voice_cloning" | "audio_music_generation" | "audio_sound_effects" | "video_text_to_video" | "video_image_to_video" | "system_one" | "workflow_engine" | null | undefined;
307
+ displayName?: string | undefined;
308
+ description?: string | undefined;
309
+ tokenLimit?: number | null | undefined;
310
+ zdr?: boolean | undefined;
311
+ staffOnly?: boolean | undefined;
312
+ pricePerToken?: string | null | undefined;
313
+ costBasis?: {
314
+ units: "image" | "input_tokens" | "output_tokens" | "cached_input_tokens" | "cache_write_5m_tokens" | "cache_write_1h_tokens" | "audio_minute" | "request" | "gb_month" | "gb_egress" | "compute_second" | "gpu_second";
315
+ source: "published" | "measured" | "heuristic" | "manual";
316
+ confidence: "low" | "high" | "medium";
317
+ effectiveAt: string;
318
+ usdPerMillionUnits?: number | undefined;
319
+ usdPerUnit?: number | undefined;
320
+ }[] | undefined;
321
+ branding?: {
322
+ [x: string]: unknown;
323
+ logo?: {
324
+ [x: string]: unknown;
325
+ kind: "wordmark" | "mark" | "lockup" | "badge";
326
+ format: "svg";
327
+ path: string;
328
+ sourceUrl: string;
329
+ sourcePageUrl: string;
330
+ source: "official-brand-page" | "official-brand-kit" | "official-homepage-inline" | "official-cdn" | "official-github";
331
+ theme: "any" | "light" | "dark";
332
+ usageNotes?: string | undefined;
333
+ licenseNotes?: string | undefined;
334
+ } | undefined;
335
+ darkLogo?: {
336
+ [x: string]: unknown;
337
+ kind: "wordmark" | "mark" | "lockup" | "badge";
338
+ format: "svg";
339
+ path: string;
340
+ sourceUrl: string;
341
+ sourcePageUrl: string;
342
+ source: "official-brand-page" | "official-brand-kit" | "official-homepage-inline" | "official-cdn" | "official-github";
343
+ theme: "any" | "light" | "dark";
344
+ usageNotes?: string | undefined;
345
+ licenseNotes?: string | undefined;
346
+ } | undefined;
347
+ wordmark?: {
348
+ [x: string]: unknown;
349
+ kind: "wordmark" | "mark" | "lockup" | "badge";
350
+ format: "svg";
351
+ path: string;
352
+ sourceUrl: string;
353
+ sourcePageUrl: string;
354
+ source: "official-brand-page" | "official-brand-kit" | "official-homepage-inline" | "official-cdn" | "official-github";
355
+ theme: "any" | "light" | "dark";
356
+ usageNotes?: string | undefined;
357
+ licenseNotes?: string | undefined;
358
+ } | undefined;
359
+ darkWordmark?: {
360
+ [x: string]: unknown;
361
+ kind: "wordmark" | "mark" | "lockup" | "badge";
362
+ format: "svg";
363
+ path: string;
364
+ sourceUrl: string;
365
+ sourcePageUrl: string;
366
+ source: "official-brand-page" | "official-brand-kit" | "official-homepage-inline" | "official-cdn" | "official-github";
367
+ theme: "any" | "light" | "dark";
368
+ usageNotes?: string | undefined;
369
+ licenseNotes?: string | undefined;
370
+ } | undefined;
371
+ sourcePageUrl?: string | undefined;
372
+ usageNotes?: string | undefined;
373
+ } | undefined;
374
+ catalog?: {
375
+ [x: string]: unknown;
376
+ globalModelId: string;
377
+ providerModelId: string;
378
+ servingProviderId: string;
379
+ sourceProviderId?: string | undefined;
380
+ sourceProviderBranding?: {
381
+ [x: string]: unknown;
382
+ logo?: {
383
+ [x: string]: unknown;
384
+ kind: "wordmark" | "mark" | "lockup" | "badge";
385
+ format: "svg";
386
+ path: string;
387
+ sourceUrl: string;
388
+ sourcePageUrl: string;
389
+ source: "official-brand-page" | "official-brand-kit" | "official-homepage-inline" | "official-cdn" | "official-github";
390
+ theme: "any" | "light" | "dark";
391
+ usageNotes?: string | undefined;
392
+ licenseNotes?: string | undefined;
393
+ } | undefined;
394
+ darkLogo?: {
395
+ [x: string]: unknown;
396
+ kind: "wordmark" | "mark" | "lockup" | "badge";
397
+ format: "svg";
398
+ path: string;
399
+ sourceUrl: string;
400
+ sourcePageUrl: string;
401
+ source: "official-brand-page" | "official-brand-kit" | "official-homepage-inline" | "official-cdn" | "official-github";
402
+ theme: "any" | "light" | "dark";
403
+ usageNotes?: string | undefined;
404
+ licenseNotes?: string | undefined;
405
+ } | undefined;
406
+ wordmark?: {
407
+ [x: string]: unknown;
408
+ kind: "wordmark" | "mark" | "lockup" | "badge";
409
+ format: "svg";
410
+ path: string;
411
+ sourceUrl: string;
412
+ sourcePageUrl: string;
413
+ source: "official-brand-page" | "official-brand-kit" | "official-homepage-inline" | "official-cdn" | "official-github";
414
+ theme: "any" | "light" | "dark";
415
+ usageNotes?: string | undefined;
416
+ licenseNotes?: string | undefined;
417
+ } | undefined;
418
+ darkWordmark?: {
419
+ [x: string]: unknown;
420
+ kind: "wordmark" | "mark" | "lockup" | "badge";
421
+ format: "svg";
422
+ path: string;
423
+ sourceUrl: string;
424
+ sourcePageUrl: string;
425
+ source: "official-brand-page" | "official-brand-kit" | "official-homepage-inline" | "official-cdn" | "official-github";
426
+ theme: "any" | "light" | "dark";
427
+ usageNotes?: string | undefined;
428
+ licenseNotes?: string | undefined;
429
+ } | undefined;
430
+ sourcePageUrl?: string | undefined;
431
+ usageNotes?: string | undefined;
432
+ } | undefined;
433
+ servingProviderBranding?: {
434
+ [x: string]: unknown;
435
+ logo?: {
436
+ [x: string]: unknown;
437
+ kind: "wordmark" | "mark" | "lockup" | "badge";
438
+ format: "svg";
439
+ path: string;
440
+ sourceUrl: string;
441
+ sourcePageUrl: string;
442
+ source: "official-brand-page" | "official-brand-kit" | "official-homepage-inline" | "official-cdn" | "official-github";
443
+ theme: "any" | "light" | "dark";
444
+ usageNotes?: string | undefined;
445
+ licenseNotes?: string | undefined;
446
+ } | undefined;
447
+ darkLogo?: {
448
+ [x: string]: unknown;
449
+ kind: "wordmark" | "mark" | "lockup" | "badge";
450
+ format: "svg";
451
+ path: string;
452
+ sourceUrl: string;
453
+ sourcePageUrl: string;
454
+ source: "official-brand-page" | "official-brand-kit" | "official-homepage-inline" | "official-cdn" | "official-github";
455
+ theme: "any" | "light" | "dark";
456
+ usageNotes?: string | undefined;
457
+ licenseNotes?: string | undefined;
458
+ } | undefined;
459
+ wordmark?: {
460
+ [x: string]: unknown;
461
+ kind: "wordmark" | "mark" | "lockup" | "badge";
462
+ format: "svg";
463
+ path: string;
464
+ sourceUrl: string;
465
+ sourcePageUrl: string;
466
+ source: "official-brand-page" | "official-brand-kit" | "official-homepage-inline" | "official-cdn" | "official-github";
467
+ theme: "any" | "light" | "dark";
468
+ usageNotes?: string | undefined;
469
+ licenseNotes?: string | undefined;
470
+ } | undefined;
471
+ darkWordmark?: {
472
+ [x: string]: unknown;
473
+ kind: "wordmark" | "mark" | "lockup" | "badge";
474
+ format: "svg";
475
+ path: string;
476
+ sourceUrl: string;
477
+ sourcePageUrl: string;
478
+ source: "official-brand-page" | "official-brand-kit" | "official-homepage-inline" | "official-cdn" | "official-github";
479
+ theme: "any" | "light" | "dark";
480
+ usageNotes?: string | undefined;
481
+ licenseNotes?: string | undefined;
482
+ } | undefined;
483
+ sourcePageUrl?: string | undefined;
484
+ usageNotes?: string | undefined;
485
+ } | undefined;
486
+ } | undefined;
487
+ hardware?: ("cloud" | "consumer")[] | undefined;
488
+ tags?: string[] | undefined;
489
+ } | undefined;
490
+ providerId?: string | undefined;
491
+ modelId?: string | undefined;
492
+ fallbacks?: {
493
+ providerId?: string | undefined;
494
+ modelId?: string | undefined;
495
+ }[] | undefined;
496
+ namespace?: string | undefined;
497
+ capabilities?: string[] | undefined;
498
+ tags?: string[] | undefined;
499
+ agent?: string | Record<string, unknown> | {
500
+ type: string;
501
+ maxIterations?: number | undefined;
502
+ approvalMode?: "never" | "auto" | "always" | undefined;
503
+ } | undefined;
504
+ recall?: boolean | undefined;
505
+ toolIds?: string[] | undefined;
506
+ toolPolicy?: {
507
+ only?: string[] | undefined;
508
+ add?: string[] | undefined;
509
+ remove?: string[] | undefined;
510
+ } | undefined;
511
+ toolConfigurations?: {
512
+ id: string;
513
+ approvalMode?: "always-approve" | "auto-approve-safe" | "always-ask" | "batch-approve" | "ask-when-declared" | "ask-on-request" | null | undefined;
514
+ enabled?: boolean | undefined;
515
+ }[] | undefined;
516
+ toolChoice?: "none" | "auto" | "required" | {
517
+ type: "function";
518
+ function: {
519
+ name: string;
520
+ };
521
+ } | undefined;
522
+ approval?: {
523
+ channel: string;
524
+ correlation?: Record<string, string> | undefined;
525
+ } | undefined;
526
+ streaming?: boolean | undefined;
527
+ sessionId?: string | undefined;
528
+ metadata?: import("@vibesdotdev/kernel/schemas/json").JsonObject | undefined;
529
+ signal?: AbortSignal | undefined;
530
+ mimeType?: string | undefined;
531
+ language?: string | undefined;
532
+ task?: "transcribe" | "translate" | undefined;
533
+ wordTimestamps?: boolean | undefined;
534
+ diarize?: boolean | undefined;
535
+ responseFormat?: "text" | "json" | "srt" | "vtt" | "verbose_json" | undefined;
536
+ prompt?: string | undefined;
537
+ temperature?: number | undefined;
538
+ };
539
+ audio: Uint8Array<ArrayBuffer>;
540
+ };
541
+ export declare function readOutput(chunks: AsyncIterable<WireResponseChunk>): Promise<string>;
542
+ /** Scan balanced objects, honoring JSON strings and escapes; tolerate surrounding CLI progress. */
543
+ export declare function parseOutput(text: string, surrounding: boolean): Promise<JsonValue>;
544
+ export declare function resultEvent<M extends Modality>(context: SpecCallContext, result: Omit<TranscriptionResponse, 'id' | 'timestamp'>): DecodedEvent<M>;
545
+ //# sourceMappingURL=wire.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wire.d.ts","sourceRoot":"","sources":["../../../src/ai/specs/wire.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAU,MAAM,qBAAqB,CAAC;AAE9D,OAAO,EAAa,KAAK,YAAY,EAAE,KAAK,eAAe,EAAE,KAAK,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AAC9H,OAAO,KAAK,EAA0B,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAC/D,OAAO,EAAmB,KAAK,SAAS,EAAE,MAAM,kCAAkC,CAAC;AAGnF,wBAAgB,OAAO,CAAC,MAAM,EAAE,iBAAiB,GAAG,iBAAiB,GAAG,gBAAgB,GAAG,kBAAkB,GAAG,wBAAwB,mBAEvI;AAED,wBAAgB,WAAW,CAAC,OAAO,EAAE,iBAAiB,CAAC,QAAQ,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAM/D;AAED,wBAAsB,UAAU,CAAC,MAAM,EAAE,aAAa,CAAC,iBAAiB,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAS1F;AAED,mGAAmG;AACnG,wBAAsB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC,CA2BxF;AAED,wBAAgB,WAAW,CAAC,CAAC,SAAS,QAAQ,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,EAAE,IAAI,CAAC,qBAAqB,EAAE,IAAI,GAAG,WAAW,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC,CASlJ"}
@@ -0,0 +1,80 @@
1
+ import { CapabilityError, settle } from '@vibesdotdev/kernel';
2
+ import { TranscriptionRequestSchema } from '@vibesdotdev/ai/providers-runtime';
3
+ import { concatAll } from '@vibesdotdev/ai/specs/interfaces';
4
+ import { JsonValueSchema } from '@vibesdotdev/kernel/schemas/json';
5
+ import { AudioDataUriSchema } from "../../schemas/wire.js";
6
+ export function refusal(reason) {
7
+ return new CapabilityError('Whisper could not accept the transcription exchange.', reason === 'invalid-request' || reason === 'malformed-audio' ? 'INVALID_INPUT' : 'UNAVAILABLE', { reason, retryable: false });
8
+ }
9
+ export function readRequest(request) {
10
+ const parsed = TranscriptionRequestSchema.safeParse(request);
11
+ if (!parsed.success)
12
+ throw refusal('invalid-request');
13
+ const audio = AudioDataUriSchema.safeParse(parsed.data.audio);
14
+ if (!audio.success)
15
+ throw refusal('malformed-audio');
16
+ return { request: parsed.data, audio: audio.data };
17
+ }
18
+ export async function readOutput(chunks) {
19
+ const bytes = [];
20
+ for await (const chunk of chunks) {
21
+ if (chunk.kind === 'error')
22
+ throw chunk.error;
23
+ if (chunk.kind === 'bytes')
24
+ bytes.push(chunk.data);
25
+ if (chunk.kind === 'end')
26
+ break;
27
+ }
28
+ if (!bytes.some((chunk) => chunk.length > 0))
29
+ throw refusal('missing-output');
30
+ return new TextDecoder().decode(concatAll(bytes));
31
+ }
32
+ /** Scan balanced objects, honoring JSON strings and escapes; tolerate surrounding CLI progress. */
33
+ export async function parseOutput(text, surrounding) {
34
+ if (!surrounding) {
35
+ const parsed = await settle(() => JsonValueSchema.parse(JSON.parse(text)));
36
+ if (!parsed.ok)
37
+ throw refusal('malformed-output');
38
+ return parsed.value;
39
+ }
40
+ for (let start = 0; start < text.length; start++) {
41
+ if (text[start] !== '{')
42
+ continue;
43
+ let depth = 0;
44
+ let quoted = false;
45
+ let escaped = false;
46
+ for (let end = start; end < text.length; end++) {
47
+ const char = text[end];
48
+ if (quoted) {
49
+ if (escaped)
50
+ escaped = false;
51
+ else if (char === '\\')
52
+ escaped = true;
53
+ else if (char === '"')
54
+ quoted = false;
55
+ }
56
+ else if (char === '"')
57
+ quoted = true;
58
+ else if (char === '{')
59
+ depth++;
60
+ else if (char === '}' && --depth === 0) {
61
+ const parsed = await settle(() => JsonValueSchema.parse(JSON.parse(text.slice(start, end + 1))));
62
+ if (parsed.ok)
63
+ return parsed.value;
64
+ break;
65
+ }
66
+ }
67
+ }
68
+ throw refusal('malformed-output');
69
+ }
70
+ export function resultEvent(context, result) {
71
+ const response = {
72
+ ...result,
73
+ id: `${context.providerId}.${context.variantId}.${Date.now()}`,
74
+ timestamp: new Date(),
75
+ metadata: { modelVersion: context.wireModelId }
76
+ };
77
+ // SAFETY: both dialects encode only schema-validated transcription requests; this terminal event carries that exchange's BaseGenerationResponse.
78
+ return { kind: 'result', result: response };
79
+ }
80
+ //# sourceMappingURL=wire.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wire.js","sourceRoot":"","sources":["../../../src/ai/specs/wire.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export { whisperConnectionSchema, type WhisperConnection } from './ai/providers/cloud/speech/whisper/config/schemas/index.ts';
2
+ export { whisperProviderDescriptor, whisperProviderConfigDescriptor } from './ai/providers/cloud/speech/whisper/index.ts';
3
+ export { createWhisperAIPlugin, whisperAIPlugin } from './ai/provider.plugin.ts';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,KAAK,iBAAiB,EAAE,MAAM,6DAA6D,CAAC;AAC9H,OAAO,EAAE,yBAAyB,EAAE,+BAA+B,EAAE,MAAM,8CAA8C,CAAC;AAC1H,OAAO,EAAE,qBAAqB,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,4 @@
1
+ export { whisperConnectionSchema } from "./ai/providers/cloud/speech/whisper/config/schemas/index.js";
2
+ export { whisperProviderDescriptor, whisperProviderConfigDescriptor } from "./ai/providers/cloud/speech/whisper/index.js";
3
+ export { createWhisperAIPlugin, whisperAIPlugin } from "./ai/provider.plugin.js";
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAA0B,MAAM,6DAA6D,CAAC;AAC9H,OAAO,EAAE,yBAAyB,EAAE,+BAA+B,EAAE,MAAM,8CAA8C,CAAC;AAC1H,OAAO,EAAE,qBAAqB,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC"}