@vibesdotdev/integrations-faster-whisper 0.0.0-stage → 1.0.0-rc.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 (79) hide show
  1. package/LICENSE +126 -0
  2. package/README.md +27 -2
  3. package/dist/ai/index.d.ts +4 -0
  4. package/dist/ai/index.d.ts.map +1 -0
  5. package/dist/ai/index.js +4 -0
  6. package/dist/ai/index.js.map +1 -0
  7. package/dist/ai/metadata/provider-models/faster-whisper/faster-whisper-base.json +17 -0
  8. package/dist/ai/metadata/provider-models/faster-whisper/faster-whisper-large-v2.json +17 -0
  9. package/dist/ai/metadata/provider-models/faster-whisper/faster-whisper-large-v3.json +17 -0
  10. package/dist/ai/metadata/provider-models/faster-whisper/faster-whisper-medium.json +17 -0
  11. package/dist/ai/metadata/provider-models/faster-whisper/faster-whisper-small.json +17 -0
  12. package/dist/ai/metadata/provider-models/faster-whisper/large.v2.json +17 -0
  13. package/dist/ai/metadata/provider-models/faster-whisper/large.v3.json +17 -0
  14. package/dist/ai/metadata/providers/faster-whisper.json +7 -0
  15. package/dist/ai/provider.consumer.plugin.d.ts +4 -0
  16. package/dist/ai/provider.consumer.plugin.d.ts.map +1 -0
  17. package/dist/ai/provider.consumer.plugin.js +26 -0
  18. package/dist/ai/provider.consumer.plugin.js.map +1 -0
  19. package/dist/ai/provider.plugin.d.ts +6 -0
  20. package/dist/ai/provider.plugin.d.ts.map +1 -0
  21. package/dist/ai/provider.plugin.js +115 -0
  22. package/dist/ai/provider.plugin.js.map +1 -0
  23. package/dist/ai/providers/faster-whisper/detection/faster-whisper-system-detection.impl.consumer.d.ts +10 -0
  24. package/dist/ai/providers/faster-whisper/detection/faster-whisper-system-detection.impl.consumer.d.ts.map +1 -0
  25. package/dist/ai/providers/faster-whisper/detection/faster-whisper-system-detection.impl.consumer.js +21 -0
  26. package/dist/ai/providers/faster-whisper/detection/faster-whisper-system-detection.impl.consumer.js.map +1 -0
  27. package/dist/ai/providers/faster-whisper/faster-whisper.provider.impl.d.ts +37 -0
  28. package/dist/ai/providers/faster-whisper/faster-whisper.provider.impl.d.ts.map +1 -0
  29. package/dist/ai/providers/faster-whisper/faster-whisper.provider.impl.js +140 -0
  30. package/dist/ai/providers/faster-whisper/faster-whisper.provider.impl.js.map +1 -0
  31. package/dist/ai/providers/faster-whisper/index.d.ts +2 -0
  32. package/dist/ai/providers/faster-whisper/index.d.ts.map +1 -0
  33. package/dist/ai/providers/faster-whisper/index.js +2 -0
  34. package/dist/ai/providers/faster-whisper/index.js.map +1 -0
  35. package/dist/ai/providers/faster-whisper/python-probe.d.ts +5 -0
  36. package/dist/ai/providers/faster-whisper/python-probe.d.ts.map +1 -0
  37. package/dist/ai/providers/faster-whisper/python-probe.js +35 -0
  38. package/dist/ai/providers/faster-whisper/python-probe.js.map +1 -0
  39. package/dist/ai/providers/faster-whisper/recommendations.d.ts +21 -0
  40. package/dist/ai/providers/faster-whisper/recommendations.d.ts.map +1 -0
  41. package/dist/ai/providers/faster-whisper/recommendations.js +54 -0
  42. package/dist/ai/providers/faster-whisper/recommendations.js.map +1 -0
  43. package/dist/ai/providers/local/speech/faster-whisper/config/config.faster-whisper.descriptor.d.ts +4194 -0
  44. package/dist/ai/providers/local/speech/faster-whisper/config/config.faster-whisper.descriptor.d.ts.map +1 -0
  45. package/dist/ai/providers/local/speech/faster-whisper/config/config.faster-whisper.descriptor.js +33 -0
  46. package/dist/ai/providers/local/speech/faster-whisper/config/config.faster-whisper.descriptor.js.map +1 -0
  47. package/dist/ai/providers/local/speech/faster-whisper/config/schemas/index.d.ts +7 -0
  48. package/dist/ai/providers/local/speech/faster-whisper/config/schemas/index.d.ts.map +1 -0
  49. package/dist/ai/providers/local/speech/faster-whisper/config/schemas/index.js +6 -0
  50. package/dist/ai/providers/local/speech/faster-whisper/config/schemas/index.js.map +1 -0
  51. package/dist/ai/providers/local/speech/faster-whisper/index.d.ts +5 -0
  52. package/dist/ai/providers/local/speech/faster-whisper/index.d.ts.map +1 -0
  53. package/dist/ai/providers/local/speech/faster-whisper/index.js +4 -0
  54. package/dist/ai/providers/local/speech/faster-whisper/index.js.map +1 -0
  55. package/dist/ai/providers/local/speech/faster-whisper/provider.faster-whisper.descriptor.d.ts +189 -0
  56. package/dist/ai/providers/local/speech/faster-whisper/provider.faster-whisper.descriptor.d.ts.map +1 -0
  57. package/dist/ai/providers/local/speech/faster-whisper/provider.faster-whisper.descriptor.js +51 -0
  58. package/dist/ai/providers/local/speech/faster-whisper/provider.faster-whisper.descriptor.js.map +1 -0
  59. package/dist/ai/specs/faster-whisper-cli/faster-whisper-cli.spec.descriptor.d.ts +35 -0
  60. package/dist/ai/specs/faster-whisper-cli/faster-whisper-cli.spec.descriptor.d.ts.map +1 -0
  61. package/dist/ai/specs/faster-whisper-cli/faster-whisper-cli.spec.descriptor.js +24 -0
  62. package/dist/ai/specs/faster-whisper-cli/faster-whisper-cli.spec.descriptor.js.map +1 -0
  63. package/dist/ai/specs/faster-whisper-cli/faster-whisper-cli.spec.impl.d.ts +32 -0
  64. package/dist/ai/specs/faster-whisper-cli/faster-whisper-cli.spec.impl.d.ts.map +1 -0
  65. package/dist/ai/specs/faster-whisper-cli/faster-whisper-cli.spec.impl.js +126 -0
  66. package/dist/ai/specs/faster-whisper-cli/faster-whisper-cli.spec.impl.js.map +1 -0
  67. package/dist/index.d.ts +2 -0
  68. package/dist/index.d.ts.map +1 -0
  69. package/dist/index.js +2 -0
  70. package/dist/index.js.map +1 -0
  71. package/dist/schemas/probe.d.ts +9 -0
  72. package/dist/schemas/probe.d.ts.map +1 -0
  73. package/dist/schemas/probe.js +4 -0
  74. package/dist/schemas/probe.js.map +1 -0
  75. package/dist/schemas/transcription.d.ts +920 -0
  76. package/dist/schemas/transcription.d.ts.map +1 -0
  77. package/dist/schemas/transcription.js +21 -0
  78. package/dist/schemas/transcription.js.map +1 -0
  79. package/package.json +93 -4
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.faster-whisper.descriptor.d.ts","sourceRoot":"","sources":["../../../../../../../src/ai/providers/local/speech/faster-whisper/config/config.faster-whisper.descriptor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ import fasterWhisperProviderDescriptor from "../provider.faster-whisper.descriptor.js";
2
+ import { createProviderConfigDescriptor } from '@vibesdotdev/ai/providers-runtime/core/config-descriptor';
3
+ import { fasterWhisperConnectionSchema } from "./schemas/index.js";
4
+ export default createProviderConfigDescriptor({
5
+ provider: fasterWhisperProviderDescriptor,
6
+ schema: fasterWhisperConnectionSchema,
7
+ optionLabel: 'Faster Whisper',
8
+ optionDescription: 'Local Faster Whisper Python runtime',
9
+ optionIcon: '⚡',
10
+ fields: {
11
+ 'configuration.pythonExecutable': {
12
+ ui: {
13
+ label: 'Python executable',
14
+ description: 'Python command or absolute path with the faster-whisper package installed',
15
+ placeholder: 'python3',
16
+ component: 'input',
17
+ group: 'connection',
18
+ order: 10
19
+ }
20
+ },
21
+ 'configuration.timeout': {
22
+ ui: {
23
+ label: 'Timeout',
24
+ description: 'Health-check timeout in milliseconds',
25
+ placeholder: '60000',
26
+ component: 'number',
27
+ group: 'connection',
28
+ order: 11
29
+ }
30
+ }
31
+ }
32
+ });
33
+ //# sourceMappingURL=config.faster-whisper.descriptor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.faster-whisper.descriptor.js","sourceRoot":"","sources":["../../../../../../../src/ai/providers/local/speech/faster-whisper/config/config.faster-whisper.descriptor.ts"],"names":[],"mappings":"AAAA,OAAO,+BAA+B,MAAM,0CAA0C,CAAC;AACvF,OAAO,EAAE,8BAA8B,EAAE,MAAM,0DAA0D,CAAC;AAC1G,OAAO,EAAE,6BAA6B,EAAE,MAAM,oBAAoB,CAAC;AAEnE,eAAe,8BAA8B,CAAC;IAC7C,QAAQ,EAAE,+BAA+B;IACzC,MAAM,EAAE,6BAA6B;IACrC,WAAW,EAAE,gBAAgB;IAC7B,iBAAiB,EAAE,qCAAqC;IACxD,UAAU,EAAE,GAAG;IACf,MAAM,EAAE;QACP,gCAAgC,EAAE;YACjC,EAAE,EAAE;gBACH,KAAK,EAAE,mBAAmB;gBAC1B,WAAW,EAAE,2EAA2E;gBACxF,WAAW,EAAE,SAAS;gBACtB,SAAS,EAAE,OAAO;gBAClB,KAAK,EAAE,YAAY;gBACnB,KAAK,EAAE,EAAE;aACT;SACD;QACD,uBAAuB,EAAE;YACxB,EAAE,EAAE;gBACH,KAAK,EAAE,SAAS;gBAChB,WAAW,EAAE,sCAAsC;gBACnD,WAAW,EAAE,OAAO;gBACpB,SAAS,EAAE,QAAQ;gBACnB,KAAK,EAAE,YAAY;gBACnB,KAAK,EAAE,EAAE;aACT;SACD;KACD;CACD,CAAC,CAAC"}
@@ -0,0 +1,7 @@
1
+ import * as z from 'zod/v4';
2
+ export declare const fasterWhisperConnectionSchema: z.ZodObject<{
3
+ pythonExecutable: z.ZodDefault<z.ZodString>;
4
+ timeout: z.ZodDefault<z.ZodNumber>;
5
+ }, z.core.$strip>;
6
+ export type FasterWhisperConnection = z.infer<typeof fasterWhisperConnectionSchema>;
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../../../src/ai/providers/local/speech/faster-whisper/config/schemas/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAE5B,eAAO,MAAM,6BAA6B;;;iBAGxC,CAAC;AAEH,MAAM,MAAM,uBAAuB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,6BAA6B,CAAC,CAAC"}
@@ -0,0 +1,6 @@
1
+ import * as z from 'zod/v4';
2
+ export const fasterWhisperConnectionSchema = z.object({
3
+ pythonExecutable: z.string().trim().min(1).default('python3'),
4
+ timeout: z.number().int().positive().default(60000)
5
+ });
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../../src/ai/providers/local/speech/faster-whisper/config/schemas/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAE5B,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAAC,CAAC,MAAM,CAAC;IACrD,gBAAgB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC;IAC7D,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;CACnD,CAAC,CAAC"}
@@ -0,0 +1,5 @@
1
+ export { default as fasterWhisperProviderDescriptor } from './provider.faster-whisper.descriptor.ts';
2
+ export { default as fasterWhisperProviderConfigDescriptor } from './config/config.faster-whisper.descriptor.ts';
3
+ export { fasterWhisperConnectionSchema } from './config/schemas/index.ts';
4
+ export type { FasterWhisperConnection } from './config/schemas/index.ts';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/ai/providers/local/speech/faster-whisper/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,+BAA+B,EAAE,MAAM,yCAAyC,CAAC;AACrG,OAAO,EAAE,OAAO,IAAI,qCAAqC,EAAE,MAAM,8CAA8C,CAAC;AAChH,OAAO,EAAE,6BAA6B,EAAE,MAAM,2BAA2B,CAAC;AAC1E,YAAY,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC"}
@@ -0,0 +1,4 @@
1
+ export { default as fasterWhisperProviderDescriptor } from "./provider.faster-whisper.descriptor.js";
2
+ export { default as fasterWhisperProviderConfigDescriptor } from "./config/config.faster-whisper.descriptor.js";
3
+ export { fasterWhisperConnectionSchema } from "./config/schemas/index.js";
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../src/ai/providers/local/speech/faster-whisper/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,+BAA+B,EAAE,MAAM,yCAAyC,CAAC;AACrG,OAAO,EAAE,OAAO,IAAI,qCAAqC,EAAE,MAAM,8CAA8C,CAAC;AAChH,OAAO,EAAE,6BAA6B,EAAE,MAAM,2BAA2B,CAAC"}
@@ -0,0 +1,189 @@
1
+ /**
2
+ * Faster Whisper Provider Type Descriptor
3
+ *
4
+ * Defines the Faster Whisper provider type for the vibes runtime.
5
+ * This is metadata about Faster Whisper as a provider category, NOT a user instance.
6
+ */
7
+ declare const _default: {
8
+ id: string;
9
+ kind: "ai/provider";
10
+ name: string;
11
+ version: string;
12
+ connectionSchema: unknown;
13
+ priority: number;
14
+ enabled: boolean;
15
+ description?: string | undefined;
16
+ defaults?: Record<string, unknown> | undefined;
17
+ baseUrlTemplate?: string | undefined;
18
+ capabilities?: {
19
+ [x: string]: unknown;
20
+ modalities?: ("vision" | "image" | "text" | "audio" | "video" | "embedding" | "transcription" | "evaluation")[] | undefined;
21
+ authType?: "none" | "api_key" | "bearer" | "oauth" | "basic" | undefined;
22
+ authMethods?: {
23
+ [x: string]: unknown;
24
+ id: string;
25
+ type: "none" | "api_key" | "bearer" | "oauth" | "basic";
26
+ label: string;
27
+ credentialFields: string[];
28
+ enabled: boolean;
29
+ description?: string | undefined;
30
+ tokenSource?: "none" | "runtime" | "credential" | "oauth-browser" | "oauth-device-code" | undefined;
31
+ recommended?: boolean | undefined;
32
+ docsUrl?: string | undefined;
33
+ scopes?: string[] | undefined;
34
+ execution?: {
35
+ credentialCustodies: ("consumer" | "server")[];
36
+ billingOwners: ("user" | "organization" | "platform")[];
37
+ } | undefined;
38
+ }[] | undefined;
39
+ streaming?: boolean | undefined;
40
+ tools?: boolean | undefined;
41
+ vision?: boolean | undefined;
42
+ jsonMode?: boolean | undefined;
43
+ functionCalling?: boolean | undefined;
44
+ contextWindow?: number | undefined;
45
+ maxOutputTokens?: number | undefined;
46
+ } | undefined;
47
+ category?: "cloud" | "local" | "hybrid" | undefined;
48
+ hardware?: ("cloud" | "consumer")[] | undefined;
49
+ icon?: string | undefined;
50
+ branding?: {
51
+ [x: string]: unknown;
52
+ logo?: {
53
+ [x: string]: unknown;
54
+ kind: "wordmark" | "mark" | "lockup" | "badge";
55
+ format: "svg";
56
+ path: string;
57
+ sourceUrl: string;
58
+ sourcePageUrl: string;
59
+ source: "official-brand-page" | "official-brand-kit" | "official-homepage-inline" | "official-cdn" | "official-github";
60
+ theme: "any" | "light" | "dark";
61
+ usageNotes?: string | undefined;
62
+ licenseNotes?: string | undefined;
63
+ } | undefined;
64
+ darkLogo?: {
65
+ [x: string]: unknown;
66
+ kind: "wordmark" | "mark" | "lockup" | "badge";
67
+ format: "svg";
68
+ path: string;
69
+ sourceUrl: string;
70
+ sourcePageUrl: string;
71
+ source: "official-brand-page" | "official-brand-kit" | "official-homepage-inline" | "official-cdn" | "official-github";
72
+ theme: "any" | "light" | "dark";
73
+ usageNotes?: string | undefined;
74
+ licenseNotes?: string | undefined;
75
+ } | undefined;
76
+ wordmark?: {
77
+ [x: string]: unknown;
78
+ kind: "wordmark" | "mark" | "lockup" | "badge";
79
+ format: "svg";
80
+ path: string;
81
+ sourceUrl: string;
82
+ sourcePageUrl: string;
83
+ source: "official-brand-page" | "official-brand-kit" | "official-homepage-inline" | "official-cdn" | "official-github";
84
+ theme: "any" | "light" | "dark";
85
+ usageNotes?: string | undefined;
86
+ licenseNotes?: string | undefined;
87
+ } | undefined;
88
+ darkWordmark?: {
89
+ [x: string]: unknown;
90
+ kind: "wordmark" | "mark" | "lockup" | "badge";
91
+ format: "svg";
92
+ path: string;
93
+ sourceUrl: string;
94
+ sourcePageUrl: string;
95
+ source: "official-brand-page" | "official-brand-kit" | "official-homepage-inline" | "official-cdn" | "official-github";
96
+ theme: "any" | "light" | "dark";
97
+ usageNotes?: string | undefined;
98
+ licenseNotes?: string | undefined;
99
+ } | undefined;
100
+ sourcePageUrl?: string | undefined;
101
+ usageNotes?: string | undefined;
102
+ } | undefined;
103
+ docsUrl?: string | undefined;
104
+ tags?: string[] | undefined;
105
+ variants?: {
106
+ id: string;
107
+ label: string;
108
+ transport: string;
109
+ specId: string;
110
+ endpoint: string;
111
+ auth: {
112
+ kind: "none";
113
+ } | {
114
+ kind: "bearer";
115
+ token: string | {
116
+ source: "secret";
117
+ key: string;
118
+ store?: string | undefined;
119
+ };
120
+ scheme?: string | undefined;
121
+ } | {
122
+ kind: "api-key-header";
123
+ header: string;
124
+ value: string | {
125
+ source: "secret";
126
+ key: string;
127
+ store?: string | undefined;
128
+ };
129
+ } | {
130
+ kind: "basic";
131
+ username: string;
132
+ password: string | {
133
+ source: "secret";
134
+ key: string;
135
+ store?: string | undefined;
136
+ };
137
+ } | {
138
+ kind: "cf-binding";
139
+ bindingName: string;
140
+ };
141
+ modelIdRule: {
142
+ kind: "strip-prefix";
143
+ } | {
144
+ kind: "passthrough";
145
+ } | {
146
+ kind: "explicit";
147
+ modelMap: Record<string, string>;
148
+ };
149
+ priority: number;
150
+ enabled: boolean;
151
+ description?: string | undefined;
152
+ modalities?: ("image" | "text" | "audio" | "video" | "embedding" | "transcription" | "evaluation" | "speech" | "ocr")[] | undefined;
153
+ inheritEnv?: string[] | undefined;
154
+ requiredConfiguration?: string[] | undefined;
155
+ authMethodId?: string | undefined;
156
+ execution?: {
157
+ generationLocations: ("consumer" | "server")[];
158
+ headless: boolean;
159
+ } | undefined;
160
+ tags?: string[] | undefined;
161
+ models?: {
162
+ tags?: string[] | undefined;
163
+ } | undefined;
164
+ additionalHeaders?: Record<string, string> | undefined;
165
+ capabilities?: {
166
+ supportsToolChoiceRequired?: boolean | undefined;
167
+ } | undefined;
168
+ }[] | undefined;
169
+ localDiscovery?: {
170
+ defaultRootDir: string;
171
+ modelGlob: string;
172
+ descriptorFilename?: string | undefined;
173
+ } | undefined;
174
+ loadedModels?: {
175
+ path: string;
176
+ listPath: string;
177
+ idField: string;
178
+ loadedField: string;
179
+ loginPath?: string | undefined;
180
+ loginKeyField?: string | undefined;
181
+ } | undefined;
182
+ cloudStorageDiscovery?: {
183
+ requiredCapabilities: string[];
184
+ modelGlob?: string | undefined;
185
+ descriptorFilename?: string | undefined;
186
+ } | undefined;
187
+ };
188
+ export default _default;
189
+ //# sourceMappingURL=provider.faster-whisper.descriptor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider.faster-whisper.descriptor.d.ts","sourceRoot":"","sources":["../../../../../../src/ai/providers/local/speech/faster-whisper/provider.faster-whisper.descriptor.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAKH,wBAgDG"}
@@ -0,0 +1,51 @@
1
+ /**
2
+ * Faster Whisper Provider Type Descriptor
3
+ *
4
+ * Defines the Faster Whisper provider type for the vibes runtime.
5
+ * This is metadata about Faster Whisper as a provider category, NOT a user instance.
6
+ */
7
+ import { createAIProviderTypeDescriptor } from '@vibesdotdev/ai/providers-runtime/core/type-descriptor';
8
+ import { fasterWhisperConnectionSchema } from "./config/schemas/index.js";
9
+ export default createAIProviderTypeDescriptor({
10
+ id: 'faster-whisper',
11
+ version: '0.1.0-rc.0',
12
+ name: 'Faster Whisper',
13
+ description: 'Local CTranslate2 implementation of Whisper for offline audio transcription, with word timestamps, VAD filtering, and CPU/GPU execution.',
14
+ // Connection schema for Faster Whisper instances
15
+ connectionSchema: fasterWhisperConnectionSchema,
16
+ // Default connection values
17
+ defaults: fasterWhisperConnectionSchema.parse({}),
18
+ // Provider capabilities
19
+ capabilities: {
20
+ modalities: ['transcription'],
21
+ authType: 'none',
22
+ streaming: false,
23
+ tools: false,
24
+ vision: false,
25
+ jsonMode: false,
26
+ functionCalling: false
27
+ },
28
+ category: 'local',
29
+ hardware: ['consumer'],
30
+ icon: '⚡',
31
+ docsUrl: 'https://github.com/SYSTRAN/faster-whisper',
32
+ priority: 100,
33
+ enabled: true,
34
+ tags: ['local', 'audio', 'transcription', 'speech-to-text', 'gpu', 'open-source', 'privacy'],
35
+ variants: [
36
+ {
37
+ id: 'faster-whisper-cli',
38
+ label: 'Faster Whisper via Python',
39
+ description: 'Local faster-whisper transcription through the configured Python executable; JSON to stdout.',
40
+ transport: 'process',
41
+ specId: 'faster-whisper-cli',
42
+ modalities: ['transcription'],
43
+ endpoint: '{pythonExecutable}',
44
+ auth: { kind: 'none' },
45
+ modelIdRule: { kind: 'strip-prefix' },
46
+ priority: 10,
47
+ enabled: true
48
+ }
49
+ ]
50
+ });
51
+ //# sourceMappingURL=provider.faster-whisper.descriptor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider.faster-whisper.descriptor.js","sourceRoot":"","sources":["../../../../../../src/ai/providers/local/speech/faster-whisper/provider.faster-whisper.descriptor.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,8BAA8B,EAAE,MAAM,wDAAwD,CAAC;AACxG,OAAO,EAAE,6BAA6B,EAAE,MAAM,2BAA2B,CAAC;AAE1E,eAAe,8BAA8B,CAAC;IAC7C,EAAE,EAAE,gBAAgB;IACpB,OAAO,EAAE,YAAY;IACrB,IAAI,EAAE,gBAAgB;IACtB,WAAW,EACV,0IAA0I;IAE3I,iDAAiD;IACjD,gBAAgB,EAAE,6BAA6B;IAE/C,4BAA4B;IAC5B,QAAQ,EAAE,6BAA6B,CAAC,KAAK,CAAC,EAAE,CAAC;IAEjD,wBAAwB;IACxB,YAAY,EAAE;QACb,UAAU,EAAE,CAAC,eAAe,CAAC;QAC7B,QAAQ,EAAE,MAAM;QAChB,SAAS,EAAE,KAAK;QAChB,KAAK,EAAE,KAAK;QACZ,MAAM,EAAE,KAAK;QACb,QAAQ,EAAE,KAAK;QACf,eAAe,EAAE,KAAK;KACtB;IAED,QAAQ,EAAE,OAAO;IACjB,QAAQ,EAAE,CAAC,UAAU,CAAC;IACtB,IAAI,EAAE,GAAG;IACT,OAAO,EAAE,2CAA2C;IACpD,QAAQ,EAAE,GAAG;IACb,OAAO,EAAE,IAAI;IACb,IAAI,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,KAAK,EAAE,aAAa,EAAE,SAAS,CAAC;IAE5F,QAAQ,EAAE;QACT;YACC,EAAE,EAAE,oBAAoB;YACxB,KAAK,EAAE,2BAA2B;YAClC,WAAW,EACV,8FAA8F;YAC/F,SAAS,EAAE,SAAS;YACpB,MAAM,EAAE,oBAAoB;YAC5B,UAAU,EAAE,CAAC,eAAe,CAAC;YAC7B,QAAQ,EAAE,oBAAoB;YAC9B,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;YACtB,WAAW,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE;YACrC,QAAQ,EAAE,EAAE;YACZ,OAAO,EAAE,IAAI;SACb;KACD;CACD,CAAC,CAAC"}
@@ -0,0 +1,35 @@
1
+ /**
2
+ * `spec-faster-whisper-cli` — faster-whisper transcription via Python.
3
+ *
4
+ * Spawns `python3 -c "<script>"` with a script that loads
5
+ * `faster_whisper.WhisperModel` and writes a JSON result to stdout
6
+ * via `print(json.dumps(...))`. The decoder parses the JSON and
7
+ * maps it into `TranscriptionResponse`.
8
+ *
9
+ * Consumer scope only.
10
+ */
11
+ declare const _default: {
12
+ id: string;
13
+ kind: "ai/spec";
14
+ name: string;
15
+ description: string;
16
+ modalities: ("image" | "text" | "audio" | "video" | "embedding" | "transcription" | "evaluation" | "speech" | "ocr")[];
17
+ streamFraming: "none" | "sse" | "sse-named" | "ndjson" | "binary-chunked" | "ws-frame";
18
+ toolCallEnvelope: string;
19
+ transports: string[];
20
+ external: boolean;
21
+ priority: number;
22
+ enabled: boolean;
23
+ 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;
24
+ imageControls?: {
25
+ steps: boolean;
26
+ cfg: boolean;
27
+ sampler: boolean;
28
+ scheduler: boolean;
29
+ negativePrompt: boolean;
30
+ seed: boolean;
31
+ } | undefined;
32
+ tags?: string[] | undefined;
33
+ };
34
+ export default _default;
35
+ //# sourceMappingURL=faster-whisper-cli.spec.descriptor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"faster-whisper-cli.spec.descriptor.d.ts","sourceRoot":"","sources":["../../../../src/ai/specs/faster-whisper-cli/faster-whisper-cli.spec.descriptor.ts"],"names":[],"mappings":"AAEA;;;;;;;;;GASG;;;;;;;;;;;;;;;;;;;;;;;;AACH,wBAYG"}
@@ -0,0 +1,24 @@
1
+ import { createAISpecDescriptor } from '@vibesdotdev/ai/specs/schemas/descriptor';
2
+ /**
3
+ * `spec-faster-whisper-cli` — faster-whisper transcription via Python.
4
+ *
5
+ * Spawns `python3 -c "<script>"` with a script that loads
6
+ * `faster_whisper.WhisperModel` and writes a JSON result to stdout
7
+ * via `print(json.dumps(...))`. The decoder parses the JSON and
8
+ * maps it into `TranscriptionResponse`.
9
+ *
10
+ * Consumer scope only.
11
+ */
12
+ export default createAISpecDescriptor({
13
+ id: 'faster-whisper-cli',
14
+ name: 'faster-whisper (Python)',
15
+ description: 'faster-whisper transcription via Python subprocess. JSON result on stdout includes text, segments, language, duration.',
16
+ modalities: ['transcription'],
17
+ streamFraming: 'none',
18
+ toolCallEnvelope: 'none',
19
+ transports: ['process'],
20
+ capabilities: ['audio_transcription'],
21
+ priority: 100,
22
+ tags: ['faster-whisper', 'stt', 'python', 'consumer-only']
23
+ });
24
+ //# sourceMappingURL=faster-whisper-cli.spec.descriptor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"faster-whisper-cli.spec.descriptor.js","sourceRoot":"","sources":["../../../../src/ai/specs/faster-whisper-cli/faster-whisper-cli.spec.descriptor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,0CAA0C,CAAC;AAElF;;;;;;;;;GASG;AACH,eAAe,sBAAsB,CAAC;IACrC,EAAE,EAAE,oBAAoB;IACxB,IAAI,EAAE,yBAAyB;IAC/B,WAAW,EACV,wHAAwH;IACzH,UAAU,EAAE,CAAC,eAAe,CAAC;IAC7B,aAAa,EAAE,MAAM;IACrB,gBAAgB,EAAE,MAAM;IACxB,UAAU,EAAE,CAAC,SAAS,CAAC;IACvB,YAAY,EAAE,CAAC,qBAAqB,CAAC;IACrC,QAAQ,EAAE,GAAG;IACb,IAAI,EAAE,CAAC,gBAAgB,EAAE,KAAK,EAAE,QAAQ,EAAE,eAAe,CAAC;CAC1D,CAAC,CAAC"}
@@ -0,0 +1,32 @@
1
+ import type { AISpecInterface, DecodedEvent, SpecCallContext, WireRequest, WireResponseChunk } from '@vibesdotdev/ai/specs/interfaces';
2
+ import type { GenerationRequest } from '@vibesdotdev/ai/interfaces';
3
+ import type { Modality } from '@vibesdotdev/ai/models/schemas';
4
+ export declare class FasterWhisperCliSpec implements AISpecInterface {
5
+ readonly descriptor: {
6
+ id: string;
7
+ kind: "ai/spec";
8
+ name: string;
9
+ description: string;
10
+ modalities: ("image" | "text" | "audio" | "video" | "embedding" | "transcription" | "evaluation" | "speech" | "ocr")[];
11
+ streamFraming: "none" | "sse" | "sse-named" | "ndjson" | "binary-chunked" | "ws-frame";
12
+ toolCallEnvelope: string;
13
+ transports: string[];
14
+ external: boolean;
15
+ priority: number;
16
+ enabled: boolean;
17
+ 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;
18
+ imageControls?: {
19
+ steps: boolean;
20
+ cfg: boolean;
21
+ sampler: boolean;
22
+ scheduler: boolean;
23
+ negativePrompt: boolean;
24
+ seed: boolean;
25
+ } | undefined;
26
+ tags?: string[] | undefined;
27
+ };
28
+ encodeRequest<M extends Modality>(request: GenerationRequest<M>, context: SpecCallContext): WireRequest;
29
+ decodeResponse<M extends Modality>(chunks: AsyncIterable<WireResponseChunk>, request: GenerationRequest<M>, context: SpecCallContext): AsyncIterable<DecodedEvent<M>>;
30
+ }
31
+ export default FasterWhisperCliSpec;
32
+ //# sourceMappingURL=faster-whisper-cli.spec.impl.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"faster-whisper-cli.spec.impl.d.ts","sourceRoot":"","sources":["../../../../src/ai/specs/faster-whisper-cli/faster-whisper-cli.spec.impl.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,eAAe,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AACvI,OAAO,KAAK,EAAE,iBAAiB,EAAyB,MAAM,4BAA4B,CAAC;AAC3F,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gCAAgC,CAAC;AAI/D,qBAAa,oBAAqB,YAAW,eAAe;IAC3D,QAAQ,CAAC,UAAU;;;;;;;;;;;;;;;;;;;;;;MAAc;IAEjC,aAAa,CAAC,CAAC,SAAS,QAAQ,EAAE,OAAO,EAAE,iBAAiB,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,eAAe,GAAG,WAAW;IA0BhG,cAAc,CAAC,CAAC,SAAS,QAAQ,EACvC,MAAM,EAAE,aAAa,CAAC,iBAAiB,CAAC,EAAE,OAAO,EAAE,iBAAiB,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,eAAe,GAC/F,aAAa,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;CAuCjC;AAyCD,eAAe,oBAAoB,CAAC"}
@@ -0,0 +1,126 @@
1
+ import { CapabilityError } from '@vibesdotdev/kernel';
2
+ import { audioDataSchema, pythonOutputSchema, scriptOptionsSchema, transcriptionRequestSchema } from "../../../schemas/transcription.js";
3
+ import descriptor from "./faster-whisper-cli.spec.descriptor.js";
4
+ export class FasterWhisperCliSpec {
5
+ descriptor = descriptor;
6
+ encodeRequest(request, context) {
7
+ const parsed = transcriptionRequestSchema.safeParse(request);
8
+ if (!parsed.success)
9
+ throw refusal('INVALID_INPUT', 'invalid-transcription-request');
10
+ const input = parsed.data;
11
+ const audio = audioDataSchema.safeParse(input.audio);
12
+ if (!audio.success)
13
+ throw refusal('INVALID_INPUT', 'malformed-audio');
14
+ let bytes;
15
+ try {
16
+ bytes = Uint8Array.from(atob(audio.data.slice(audio.data.indexOf(',') + 1)), char => char.charCodeAt(0));
17
+ }
18
+ catch {
19
+ // Decoder exceptions can include input; the refusal exposes only a fixed reason.
20
+ throw refusal('INVALID_INPUT', 'malformed-audio');
21
+ }
22
+ if (bytes.length === 0)
23
+ throw refusal('INVALID_INPUT', 'malformed-audio');
24
+ const options = scriptOptionsSchema.parse({
25
+ modelSize: context.wireModelId || undefined,
26
+ language: input.language ?? null,
27
+ task: input.task,
28
+ wordTimestamps: input.wordTimestamps
29
+ });
30
+ return {
31
+ method: 'POST', path: '', headers: {}, streaming: false,
32
+ body: { args: ['-c', buildScript(options)], files: { audio: bytes } }
33
+ };
34
+ }
35
+ async *decodeResponse(chunks, request, context) {
36
+ if (!transcriptionRequestSchema.safeParse(request).success) {
37
+ yield { kind: 'error', error: refusal('INVALID_INPUT', 'invalid-transcription-request') };
38
+ return;
39
+ }
40
+ const decoder = new TextDecoder();
41
+ let output = '';
42
+ for await (const chunk of chunks) {
43
+ if (chunk.kind === 'error') {
44
+ yield { kind: 'error', error: chunk.error };
45
+ return;
46
+ }
47
+ if (chunk.kind === 'bytes')
48
+ output += decoder.decode(chunk.data, { stream: true });
49
+ }
50
+ output += decoder.decode();
51
+ if (!output.trim()) {
52
+ yield { kind: 'error', error: refusal('UNAVAILABLE', 'empty-output') };
53
+ return;
54
+ }
55
+ let json;
56
+ try {
57
+ json = pythonOutputSchema.parse(JSON.parse(extractJsonObject(output)));
58
+ }
59
+ catch {
60
+ // Neither JSON nor schema errors may echo Python's transcript.
61
+ yield { kind: 'error', error: refusal('INVALID_INPUT', 'malformed-output') };
62
+ return;
63
+ }
64
+ const result = {
65
+ ...json,
66
+ id: `${context.providerId}.${context.variantId}.${Date.now()}`,
67
+ timestamp: new Date(),
68
+ segments: json.segments?.map((segment, index) => ({ ...segment, id: segment.id ?? index })),
69
+ metadata: { modelVersion: context.wireModelId }
70
+ };
71
+ const event = { kind: 'result', result };
72
+ // SAFETY: the request was validated as transcription above. The AI contract uses a
73
+ // conditional generic for results and cannot carry that runtime proof into M.
74
+ yield event;
75
+ }
76
+ }
77
+ function refusal(code, reason) {
78
+ return new CapabilityError('Faster Whisper could not complete transcription.', code, { reason, retryable: false });
79
+ }
80
+ function buildScript(args) {
81
+ return [
82
+ 'import json, sys',
83
+ 'from faster_whisper import WhisperModel',
84
+ `model = WhisperModel(${JSON.stringify(args.modelSize)})`,
85
+ `segments, info = model.transcribe("{audio}", language=${args.language ? JSON.stringify(args.language) : 'None'}, task=${JSON.stringify(args.task)}, word_timestamps=${args.wordTimestamps ? 'True' : 'False'})`,
86
+ 'out = {"text": "", "segments": [], "language": info.language, "duration": info.duration}',
87
+ 'for i, seg in enumerate(segments):',
88
+ ' entry = {"id": i, "start": seg.start, "end": seg.end, "text": seg.text}',
89
+ ' if seg.words is not None:',
90
+ ' entry["words"] = [{"word": w.word, "start": w.start, "end": w.end, "confidence": w.probability} for w in seg.words]',
91
+ ' out["segments"].append(entry)',
92
+ ' out["text"] += seg.text',
93
+ 'sys.stdout.write(json.dumps(out))'
94
+ ].join('\n');
95
+ }
96
+ /** Braces inside JSON strings (including escaped quotes) are ordinary text. */
97
+ function extractJsonObject(text) {
98
+ const start = text.indexOf('{');
99
+ let depth = 0;
100
+ let quoted = false;
101
+ let escaped = false;
102
+ for (let i = start; start !== -1 && i < text.length; i++) {
103
+ const char = text[i];
104
+ if (escaped) {
105
+ escaped = false;
106
+ continue;
107
+ }
108
+ if (quoted && char === '\\') {
109
+ escaped = true;
110
+ continue;
111
+ }
112
+ if (char === '"') {
113
+ quoted = !quoted;
114
+ continue;
115
+ }
116
+ if (quoted)
117
+ continue;
118
+ if (char === '{')
119
+ depth++;
120
+ if (char === '}' && --depth === 0)
121
+ return text.slice(start, i + 1);
122
+ }
123
+ throw refusal('INVALID_INPUT', 'malformed-output');
124
+ }
125
+ export default FasterWhisperCliSpec;
126
+ //# sourceMappingURL=faster-whisper-cli.spec.impl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"faster-whisper-cli.spec.impl.js","sourceRoot":"","sources":["../../../../src/ai/specs/faster-whisper-cli/faster-whisper-cli.spec.impl.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export * from './ai/index.ts';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,2 @@
1
+ export * from "./ai/index.js";
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC"}
@@ -0,0 +1,9 @@
1
+ import * as z from 'zod/v4';
2
+ export declare const pythonAvailabilitySchema: z.ZodEnum<{
3
+ available: "available";
4
+ missing: "missing";
5
+ }>;
6
+ export declare const healthOptionsSchema: z.ZodObject<{
7
+ timeout: z.ZodOptional<z.ZodNumber>;
8
+ }, z.core.$strip>;
9
+ //# sourceMappingURL=probe.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"probe.d.ts","sourceRoot":"","sources":["../../src/schemas/probe.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAE5B,eAAO,MAAM,wBAAwB;;;EAAmC,CAAC;AACzE,eAAO,MAAM,mBAAmB;;iBAAgE,CAAC"}
@@ -0,0 +1,4 @@
1
+ import * as z from 'zod/v4';
2
+ export const pythonAvailabilitySchema = z.enum(['available', 'missing']);
3
+ export const healthOptionsSchema = z.object({ timeout: z.number().int().positive().optional() });
4
+ //# sourceMappingURL=probe.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"probe.js","sourceRoot":"","sources":["../../src/schemas/probe.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,QAAQ,CAAC;AAE5B,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC,CAAC;AACzE,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC"}