@agent-media/providers 0.1.0 → 0.3.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.
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/fal/index.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,aAAa,EAMd,MAAM,mBAAmB,CAAC;AAe3B;;;GAGG;AACH,eAAO,MAAM,WAAW,EAAE,aAuCzB,CAAC;AA+HF,eAAe,WAAW,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/fal/index.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,aAAa,EASd,MAAM,mBAAmB,CAAC;AAgB3B;;;GAGG;AACH,eAAO,MAAM,WAAW,EAAE,aA2CzB,CAAC;AA4VF,eAAe,WAAW,CAAC"}
package/dist/fal/index.js CHANGED
@@ -1,11 +1,12 @@
1
1
  import { createFal } from '@ai-sdk/fal';
2
+ import { fal } from '@fal-ai/client';
2
3
  import { generateImage } from 'ai';
3
4
  import { writeFile, readFile, stat } from 'node:fs/promises';
4
- import { createSuccess, createError, ensureOutputDir, generateOutputFilename, getOutputPath, ErrorCodes, } from '@agent-media/core';
5
+ import { createSuccess, createError, createTranscriptionSuccess, ensureOutputDir, generateOutputFilename, getOutputPath, ErrorCodes, } from '@agent-media/core';
5
6
  /**
6
7
  * Actions supported by the fal provider
7
8
  */
8
- const SUPPORTED_ACTIONS = ['generate', 'remove-background'];
9
+ const SUPPORTED_ACTIONS = ['generate', 'remove-background', 'transcribe', 'edit'];
9
10
  /**
10
11
  * Fal.ai provider for image generation and processing
11
12
  * Requires FAL_API_KEY environment variable
@@ -27,6 +28,10 @@ export const falProvider = {
27
28
  return await executeGenerate(actionConfig.options, context, apiKey);
28
29
  case 'remove-background':
29
30
  return await executeRemoveBackground(actionConfig.options, context, apiKey);
31
+ case 'transcribe':
32
+ return await executeTranscribe(actionConfig.options, context, apiKey);
33
+ case 'edit':
34
+ return await executeEdit(actionConfig.options, context, apiKey);
30
35
  default:
31
36
  return createError(ErrorCodes.INVALID_INPUT, `Action '${actionConfig.action}' not supported by fal provider`);
32
37
  }
@@ -39,15 +44,17 @@ export const falProvider = {
39
44
  };
40
45
  /**
41
46
  * Execute generate action using fal.ai flux model via AI SDK
47
+ * Default model: fal-ai/flux-2 (FLUX.2 Dev)
42
48
  */
43
49
  async function executeGenerate(options, context, apiKey) {
44
- const { prompt, width = 1024, height = 1024 } = options;
50
+ const { prompt, width = 1024, height = 1024, model } = options;
45
51
  if (!prompt) {
46
52
  return createError(ErrorCodes.INVALID_INPUT, 'Prompt is required for image generation');
47
53
  }
48
- const fal = createFal({ apiKey });
54
+ const falClient = createFal({ apiKey });
55
+ const modelId = model || 'fal-ai/flux-2';
49
56
  const { image } = await generateImage({
50
- model: fal.image('fal-ai/flux/schnell'),
57
+ model: falClient.image(modelId),
51
58
  prompt,
52
59
  size: `${width}x${height}`,
53
60
  });
@@ -64,6 +71,74 @@ async function executeGenerate(options, context, apiKey) {
64
71
  bytes: stats.size,
65
72
  });
66
73
  }
74
+ /**
75
+ * Execute edit action using fal.ai flux-2 edit model
76
+ * Default model: fal-ai/flux-2/edit
77
+ */
78
+ async function executeEdit(options, context, apiKey) {
79
+ const { input, prompt, model } = options;
80
+ if (!input?.source) {
81
+ return createError(ErrorCodes.INVALID_INPUT, 'Input source is required for image editing');
82
+ }
83
+ if (!prompt) {
84
+ return createError(ErrorCodes.INVALID_INPUT, 'Prompt is required for image editing');
85
+ }
86
+ // Prepare the image URL - edit model requires a URL
87
+ let imageUrl;
88
+ if (input.isUrl) {
89
+ imageUrl = input.source;
90
+ }
91
+ else {
92
+ // Convert local file to data URI
93
+ const buffer = await readFile(input.source);
94
+ const base64 = buffer.toString('base64');
95
+ const ext = input.source.toLowerCase().split('.').pop();
96
+ const mimeType = ext === 'png' ? 'image/png' : ext === 'webp' ? 'image/webp' : 'image/jpeg';
97
+ imageUrl = `data:${mimeType};base64,${base64}`;
98
+ }
99
+ const modelId = model || 'fal-ai/flux-2/edit';
100
+ // Call the edit model via fal.run API
101
+ const response = await fetch(`https://fal.run/${modelId}`, {
102
+ method: 'POST',
103
+ headers: {
104
+ 'Authorization': `Key ${apiKey}`,
105
+ 'Content-Type': 'application/json',
106
+ },
107
+ body: JSON.stringify({
108
+ image_url: imageUrl,
109
+ prompt,
110
+ }),
111
+ });
112
+ if (!response.ok) {
113
+ const errorText = await response.text();
114
+ return createError(ErrorCodes.API_ERROR, `Fal API error: ${response.status} - ${errorText}`);
115
+ }
116
+ const result = await response.json();
117
+ // Handle both single image and array responses
118
+ const outputImageUrl = result.images?.[0]?.url || result.image?.url;
119
+ if (!outputImageUrl) {
120
+ return createError(ErrorCodes.PROVIDER_ERROR, 'No image returned from edit operation');
121
+ }
122
+ // Download the edited image
123
+ const imageResponse = await fetch(outputImageUrl);
124
+ if (!imageResponse.ok) {
125
+ return createError(ErrorCodes.NETWORK_ERROR, `Failed to download edited image: ${imageResponse.statusText}`);
126
+ }
127
+ const arrayBuffer = await imageResponse.arrayBuffer();
128
+ const buffer = Buffer.from(arrayBuffer);
129
+ const outputFilename = generateOutputFilename('png', 'edited');
130
+ const outputPath = getOutputPath(context.outputDir, outputFilename);
131
+ await writeFile(outputPath, buffer);
132
+ const stats = await stat(outputPath);
133
+ return createSuccess({
134
+ mediaType: 'image',
135
+ action: 'edit',
136
+ provider: 'fal',
137
+ outputPath: outputPath,
138
+ mime: 'image/png',
139
+ bytes: stats.size,
140
+ });
141
+ }
67
142
  /**
68
143
  * Execute remove-background action using fal.ai birefnet/v2 model
69
144
  * Uses direct API call since birefnet is an image processing model, not generative
@@ -129,5 +204,107 @@ async function executeRemoveBackground(options, context, apiKey) {
129
204
  bytes: stats.size,
130
205
  });
131
206
  }
207
+ /**
208
+ * Execute transcribe action using fal.ai whisper models
209
+ * Uses wizper (faster) when diarize=false, whisper when diarize=true
210
+ */
211
+ async function executeTranscribe(options, context, apiKey) {
212
+ const { input, diarize = false, language, numSpeakers } = options;
213
+ if (!input?.source) {
214
+ return createError(ErrorCodes.INVALID_INPUT, 'Input source is required for transcription');
215
+ }
216
+ // Configure fal client with API key
217
+ fal.config({ credentials: apiKey });
218
+ // Prepare the audio URL
219
+ let audioUrl;
220
+ if (input.isUrl) {
221
+ audioUrl = input.source;
222
+ }
223
+ else {
224
+ // Upload local file using fal client
225
+ const buffer = await readFile(input.source);
226
+ const ext = input.source.toLowerCase().split('.').pop();
227
+ let mimeType;
228
+ switch (ext) {
229
+ case 'mp3':
230
+ mimeType = 'audio/mpeg';
231
+ break;
232
+ case 'wav':
233
+ mimeType = 'audio/wav';
234
+ break;
235
+ case 'mp4':
236
+ mimeType = 'video/mp4';
237
+ break;
238
+ case 'm4a':
239
+ mimeType = 'audio/mp4';
240
+ break;
241
+ case 'webm':
242
+ mimeType = 'video/webm';
243
+ break;
244
+ case 'ogg':
245
+ mimeType = 'audio/ogg';
246
+ break;
247
+ default:
248
+ mimeType = 'application/octet-stream';
249
+ }
250
+ // Create a Blob from the buffer and upload via fal client
251
+ const filename = input.source.split('/').pop() || 'audio';
252
+ const blob = new Blob([buffer], { type: mimeType });
253
+ const file = new File([blob], filename, { type: mimeType });
254
+ audioUrl = await fal.storage.upload(file);
255
+ }
256
+ // Select model based on diarize flag
257
+ // wizper is 2x faster but doesn't support diarization
258
+ // whisper supports diarization
259
+ const model = diarize ? 'fal-ai/whisper' : 'fal-ai/wizper';
260
+ // Build request body
261
+ const requestBody = {
262
+ audio_url: audioUrl,
263
+ chunk_level: 'segment',
264
+ };
265
+ if (diarize) {
266
+ requestBody['diarize'] = true;
267
+ if (numSpeakers) {
268
+ requestBody['num_speakers'] = numSpeakers;
269
+ }
270
+ }
271
+ if (language) {
272
+ requestBody['language'] = language;
273
+ }
274
+ const response = await fetch(`https://fal.run/${model}`, {
275
+ method: 'POST',
276
+ headers: {
277
+ 'Authorization': `Key ${apiKey}`,
278
+ 'Content-Type': 'application/json',
279
+ },
280
+ body: JSON.stringify(requestBody),
281
+ });
282
+ if (!response.ok) {
283
+ const errorText = await response.text();
284
+ return createError(ErrorCodes.API_ERROR, `Fal API error: ${response.status} - ${errorText}`);
285
+ }
286
+ const result = await response.json();
287
+ // Transform to our TranscriptionData format
288
+ const transcription = {
289
+ text: result.text || '',
290
+ language: result.inferred_languages?.[0] || language || 'unknown',
291
+ segments: (result.chunks || []).map(chunk => ({
292
+ start: chunk.timestamp[0],
293
+ end: chunk.timestamp[1],
294
+ text: chunk.text,
295
+ ...(chunk.speaker ? { speaker: chunk.speaker } : {}),
296
+ })),
297
+ };
298
+ // Save transcription to JSON file
299
+ const outputFilename = generateOutputFilename('json', 'transcription');
300
+ const outputPath = getOutputPath(context.outputDir, outputFilename);
301
+ await writeFile(outputPath, JSON.stringify(transcription, null, 2));
302
+ return createTranscriptionSuccess({
303
+ mediaType: 'audio',
304
+ provider: 'fal',
305
+ outputPath: outputPath,
306
+ transcription,
307
+ });
308
+ }
132
309
  export default falProvider;
133
310
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/fal/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC;AACnC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAS7D,OAAO,EACL,aAAa,EACb,WAAW,EACX,eAAe,EACf,sBAAsB,EACtB,aAAa,EACb,UAAU,GACX,MAAM,mBAAmB,CAAC;AAE3B;;GAEG;AACH,MAAM,iBAAiB,GAAG,CAAC,UAAU,EAAE,mBAAmB,CAAC,CAAC;AAE5D;;;GAGG;AACH,MAAM,CAAC,MAAM,WAAW,GAAkB;IACxC,IAAI,EAAE,KAAK;IAEX,QAAQ,CAAC,MAAc;QACrB,OAAO,iBAAiB,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC5C,CAAC;IAED,KAAK,CAAC,OAAO,CACX,YAA2B,EAC3B,OAAsB;QAEtB,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QAE1C,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,WAAW,CAChB,UAAU,CAAC,SAAS,EACpB,6CAA6C,CAC9C,CAAC;QACJ,CAAC;QAED,IAAI,CAAC;YACH,MAAM,eAAe,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YAEzC,QAAQ,YAAY,CAAC,MAAM,EAAE,CAAC;gBAC5B,KAAK,UAAU;oBACb,OAAO,MAAM,eAAe,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;gBACtE,KAAK,mBAAmB;oBACtB,OAAO,MAAM,uBAAuB,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;gBAC9E;oBACE,OAAO,WAAW,CAChB,UAAU,CAAC,aAAa,EACxB,WAAW,YAAY,CAAC,MAAM,iCAAiC,CAChE,CAAC;YACN,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACvE,OAAO,WAAW,CAAC,UAAU,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;QACzD,CAAC;IACH,CAAC;CACF,CAAC;AAEF;;GAEG;AACH,KAAK,UAAU,eAAe,CAC5B,OAAwB,EACxB,OAAsB,EACtB,MAAc;IAEd,MAAM,EAAE,MAAM,EAAE,KAAK,GAAG,IAAI,EAAE,MAAM,GAAG,IAAI,EAAE,GAAG,OAAO,CAAC;IAExD,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,WAAW,CAAC,UAAU,CAAC,aAAa,EAAE,yCAAyC,CAAC,CAAC;IAC1F,CAAC;IAED,MAAM,GAAG,GAAG,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;IAElC,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,aAAa,CAAC;QACpC,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC,qBAAqB,CAAC;QACvC,MAAM;QACN,IAAI,EAAE,GAAG,KAAK,IAAI,MAAM,EAAE;KAC3B,CAAC,CAAC;IAEH,MAAM,cAAc,GAAG,sBAAsB,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;IAClE,MAAM,UAAU,GAAG,aAAa,CAAC,OAAO,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;IAEpE,MAAM,SAAS,CAAC,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;IAE9C,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,CAAC;IAErC,OAAO,aAAa,CAAC;QACnB,SAAS,EAAE,OAAO;QAClB,MAAM,EAAE,UAAU;QAClB,QAAQ,EAAE,KAAK;QACf,UAAU,EAAE,UAAU;QACtB,IAAI,EAAE,WAAW;QACjB,KAAK,EAAE,KAAK,CAAC,IAAI;KAClB,CAAC,CAAC;AACL,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,uBAAuB,CACpC,OAAgC,EAChC,OAAsB,EACtB,MAAc;IAEd,MAAM,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC;IAE1B,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC;QACnB,OAAO,WAAW,CAAC,UAAU,CAAC,aAAa,EAAE,iDAAiD,CAAC,CAAC;IAClG,CAAC;IAED,kDAAkD;IAClD,IAAI,QAAgB,CAAC;IACrB,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;QAChB,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC;IAC1B,CAAC;SAAM,CAAC;QACN,iCAAiC;QACjC,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAC5C,MAAM,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACzC,kCAAkC;QAClC,MAAM,GAAG,GAAG,KAAK,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;QACxD,MAAM,QAAQ,GAAG,GAAG,KAAK,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,KAAK,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC;QAC5F,QAAQ,GAAG,QAAQ,QAAQ,WAAW,MAAM,EAAE,CAAC;IACjD,CAAC;IAED,4CAA4C;IAC5C,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,oCAAoC,EAAE;QACjE,MAAM,EAAE,MAAM;QACd,OAAO,EAAE;YACP,eAAe,EAAE,OAAO,MAAM,EAAE;YAChC,cAAc,EAAE,kBAAkB;SACnC;QACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;YACnB,SAAS,EAAE,QAAQ;YACnB,KAAK,EAAE,qBAAqB;YAC5B,aAAa,EAAE,KAAK;YACpB,iBAAiB,EAAE,IAAI;SACxB,CAAC;KACH,CAAC,CAAC;IAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,SAAS,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QACxC,OAAO,WAAW,CAAC,UAAU,CAAC,SAAS,EAAE,kBAAkB,QAAQ,CAAC,MAAM,MAAM,SAAS,EAAE,CAAC,CAAC;IAC/F,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,IAAI,EAKjC,CAAC;IAEF,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC;QACvB,OAAO,WAAW,CAAC,UAAU,CAAC,cAAc,EAAE,2CAA2C,CAAC,CAAC;IAC7F,CAAC;IAED,+BAA+B;IAC/B,MAAM,aAAa,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACpD,IAAI,CAAC,aAAa,CAAC,EAAE,EAAE,CAAC;QACtB,OAAO,WAAW,CAAC,UAAU,CAAC,aAAa,EAAE,uCAAuC,aAAa,CAAC,UAAU,EAAE,CAAC,CAAC;IAClH,CAAC;IAED,MAAM,WAAW,GAAG,MAAM,aAAa,CAAC,WAAW,EAAE,CAAC;IACtD,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAExC,MAAM,cAAc,GAAG,sBAAsB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAC7D,MAAM,UAAU,GAAG,aAAa,CAAC,OAAO,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;IAEpE,MAAM,SAAS,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IAEpC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,CAAC;IAErC,OAAO,aAAa,CAAC;QACnB,SAAS,EAAE,OAAO;QAClB,MAAM,EAAE,mBAAmB;QAC3B,QAAQ,EAAE,KAAK;QACf,UAAU,EAAE,UAAU;QACtB,IAAI,EAAE,WAAW;QACjB,KAAK,EAAE,KAAK,CAAC,IAAI;KAClB,CAAC,CAAC;AACL,CAAC;AAED,eAAe,WAAW,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/fal/index.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  export { localProvider } from './local/index.js';
2
+ export { transformersProvider } from './transformers/index.js';
2
3
  export { falProvider } from './fal/index.js';
3
4
  export { replicateProvider } from './replicate/index.js';
4
5
  export { runpodProvider } from './runpod/index.js';
@@ -7,12 +8,15 @@ export { runpodProvider } from './runpod/index.js';
7
8
  */
8
9
  export declare const providers: {
9
10
  local: import("@agent-media/core").MediaProvider;
11
+ transformers: import("@agent-media/core").MediaProvider;
10
12
  fal: import("@agent-media/core").MediaProvider;
11
13
  replicate: import("@agent-media/core").MediaProvider;
12
14
  runpod: import("@agent-media/core").MediaProvider;
13
15
  };
14
16
  /**
15
17
  * Register all providers with the global registry
18
+ * Order matters: local providers (local, transformers) are registered first
19
+ * so they are preferred for actions they support when no explicit provider is specified.
16
20
  */
17
21
  export declare function registerAllProviders(): void;
18
22
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD;;GAEG;AACH,eAAO,MAAM,SAAS;;;;;CAKrB,CAAC;AAEF;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,IAAI,CAK3C;AAED;;GAEG;AACH,wBAAgB,qBAAqB,IAAI,IAAI,CAE5C"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD;;GAEG;AACH,eAAO,MAAM,SAAS;;;;;;CAMrB,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,oBAAoB,IAAI,IAAI,CAM3C;AAED;;GAEG;AACH,wBAAgB,qBAAqB,IAAI,IAAI,CAE5C"}
package/dist/index.js CHANGED
@@ -1,10 +1,12 @@
1
1
  import { globalRegistry } from '@agent-media/core';
2
2
  import { localProvider } from './local/index.js';
3
+ import { transformersProvider } from './transformers/index.js';
3
4
  import { falProvider } from './fal/index.js';
4
5
  import { replicateProvider } from './replicate/index.js';
5
6
  import { runpodProvider } from './runpod/index.js';
6
7
  // Export individual providers
7
8
  export { localProvider } from './local/index.js';
9
+ export { transformersProvider } from './transformers/index.js';
8
10
  export { falProvider } from './fal/index.js';
9
11
  export { replicateProvider } from './replicate/index.js';
10
12
  export { runpodProvider } from './runpod/index.js';
@@ -13,15 +15,19 @@ export { runpodProvider } from './runpod/index.js';
13
15
  */
14
16
  export const providers = {
15
17
  local: localProvider,
18
+ transformers: transformersProvider,
16
19
  fal: falProvider,
17
20
  replicate: replicateProvider,
18
21
  runpod: runpodProvider,
19
22
  };
20
23
  /**
21
24
  * Register all providers with the global registry
25
+ * Order matters: local providers (local, transformers) are registered first
26
+ * so they are preferred for actions they support when no explicit provider is specified.
22
27
  */
23
28
  export function registerAllProviders() {
24
29
  globalRegistry.register(localProvider);
30
+ globalRegistry.register(transformersProvider);
25
31
  globalRegistry.register(falProvider);
26
32
  globalRegistry.register(replicateProvider);
27
33
  globalRegistry.register(runpodProvider);
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD,8BAA8B;AAC9B,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD;;GAEG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,KAAK,EAAE,aAAa;IACpB,GAAG,EAAE,WAAW;IAChB,SAAS,EAAE,iBAAiB;IAC5B,MAAM,EAAE,cAAc;CACvB,CAAC;AAEF;;GAEG;AACH,MAAM,UAAU,oBAAoB;IAClC,cAAc,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;IACvC,cAAc,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IACrC,cAAc,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;IAC3C,cAAc,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;AAC1C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,qBAAqB;IACnC,cAAc,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;AACzC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD,8BAA8B;AAC9B,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD;;GAEG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG;IACvB,KAAK,EAAE,aAAa;IACpB,YAAY,EAAE,oBAAoB;IAClC,GAAG,EAAE,WAAW;IAChB,SAAS,EAAE,iBAAiB;IAC5B,MAAM,EAAE,cAAc;CACvB,CAAC;AAEF;;;;GAIG;AACH,MAAM,UAAU,oBAAoB;IAClC,cAAc,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;IACvC,cAAc,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC;IAC9C,cAAc,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;IACrC,cAAc,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;IAC3C,cAAc,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;AAC1C,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,qBAAqB;IACnC,cAAc,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;AACzC,CAAC"}
@@ -1,8 +1,8 @@
1
1
  import type { MediaProvider } from '@agent-media/core';
2
2
  /**
3
- * Local provider using sharp for image manipulation
4
- * Supports: resize, convert
5
- * Zero external dependencies beyond sharp
3
+ * Local provider for zero-API-key operations
4
+ * - Sharp: resize, convert, extend
5
+ * - Transformers.js: remove-background, transcribe
6
6
  */
7
7
  export declare const localProvider: MediaProvider;
8
8
  export default localProvider;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/local/index.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,aAAa,EAQd,MAAM,mBAAmB,CAAC;AA0D3B;;;;GAIG;AACH,eAAO,MAAM,aAAa,EAAE,aAgC3B,CAAC;AAsOF,eAAe,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/local/index.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,aAAa,EAQd,MAAM,mBAAmB,CAAC;AA8D3B;;;;GAIG;AACH,eAAO,MAAM,aAAa,EAAE,aA8C3B,CAAC;AAsOF,eAAe,aAAa,CAAC"}
@@ -2,10 +2,14 @@ import sharp from 'sharp';
2
2
  import { stat } from 'node:fs/promises';
3
3
  import { createReadStream } from 'node:fs';
4
4
  import { createSuccess, createError, ensureOutputDir, generateOutputFilename, getOutputPath, ErrorCodes, } from '@agent-media/core';
5
+ import { executeBackgroundRemoval } from '../transformers/background-removal.js';
6
+ import { executeTranscribe } from '../transformers/transcribe.js';
5
7
  /**
6
8
  * Actions supported by the local provider
9
+ * - Sharp: resize, convert, extend
10
+ * - Transformers.js: remove-background, transcribe
7
11
  */
8
- const SUPPORTED_ACTIONS = ['resize', 'convert', 'extend'];
12
+ const SUPPORTED_ACTIONS = ['resize', 'convert', 'extend', 'remove-background', 'transcribe'];
9
13
  /**
10
14
  * MIME types for image formats
11
15
  */
@@ -43,9 +47,9 @@ async function getInputBuffer(source, isUrl) {
43
47
  });
44
48
  }
45
49
  /**
46
- * Local provider using sharp for image manipulation
47
- * Supports: resize, convert
48
- * Zero external dependencies beyond sharp
50
+ * Local provider for zero-API-key operations
51
+ * - Sharp: resize, convert, extend
52
+ * - Transformers.js: remove-background, transcribe
49
53
  */
50
54
  export const localProvider = {
51
55
  name: 'local',
@@ -62,6 +66,20 @@ export const localProvider = {
62
66
  return await executeConvert(actionConfig.options, context);
63
67
  case 'extend':
64
68
  return await executeExtend(actionConfig.options, context);
69
+ case 'remove-background': {
70
+ const result = await executeBackgroundRemoval(actionConfig.options, context);
71
+ if (result.ok) {
72
+ return { ...result, provider: 'local' };
73
+ }
74
+ return result;
75
+ }
76
+ case 'transcribe': {
77
+ const result = await executeTranscribe(actionConfig.options, context);
78
+ if (result.ok) {
79
+ return { ...result, provider: 'local' };
80
+ }
81
+ return result;
82
+ }
65
83
  default:
66
84
  return createError(ErrorCodes.INVALID_INPUT, `Action '${actionConfig.action}' not supported by local provider`);
67
85
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/local/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/local/index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/replicate/index.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,aAAa,EAMd,MAAM,mBAAmB,CAAC;AAe3B;;;GAGG;AACH,eAAO,MAAM,iBAAiB,EAAE,aAuC/B,CAAC;AAgGF,eAAe,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/replicate/index.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,aAAa,EASd,MAAM,mBAAmB,CAAC;AAgB3B;;;GAGG;AACH,eAAO,MAAM,iBAAiB,EAAE,aA2C/B,CAAC;AA6YF,eAAe,iBAAiB,CAAC"}
@@ -1,11 +1,11 @@
1
1
  import { createReplicate } from '@ai-sdk/replicate';
2
2
  import { generateImage } from 'ai';
3
3
  import { writeFile, readFile, stat } from 'node:fs/promises';
4
- import { createSuccess, createError, ensureOutputDir, generateOutputFilename, getOutputPath, ErrorCodes, } from '@agent-media/core';
4
+ import { createSuccess, createError, createTranscriptionSuccess, ensureOutputDir, generateOutputFilename, getOutputPath, ErrorCodes, } from '@agent-media/core';
5
5
  /**
6
6
  * Actions supported by the replicate provider
7
7
  */
8
- const SUPPORTED_ACTIONS = ['generate', 'remove-background'];
8
+ const SUPPORTED_ACTIONS = ['generate', 'remove-background', 'transcribe', 'edit'];
9
9
  /**
10
10
  * Replicate provider for image generation and processing
11
11
  * Requires REPLICATE_API_TOKEN environment variable
@@ -27,6 +27,10 @@ export const replicateProvider = {
27
27
  return await executeGenerate(actionConfig.options, context, apiToken);
28
28
  case 'remove-background':
29
29
  return await executeRemoveBackground(actionConfig.options, context, apiToken);
30
+ case 'transcribe':
31
+ return await executeTranscribe(actionConfig.options, context, apiToken);
32
+ case 'edit':
33
+ return await executeEdit(actionConfig.options, context, apiToken);
30
34
  default:
31
35
  return createError(ErrorCodes.INVALID_INPUT, `Action '${actionConfig.action}' not supported by replicate provider`);
32
36
  }
@@ -38,16 +42,18 @@ export const replicateProvider = {
38
42
  },
39
43
  };
40
44
  /**
41
- * Execute generate action using Replicate flux-schnell model via AI SDK
45
+ * Execute generate action using Replicate flux model via AI SDK
46
+ * Default model: black-forest-labs/flux-2-dev (FLUX.2 Dev)
42
47
  */
43
48
  async function executeGenerate(options, context, apiToken) {
44
- const { prompt, width = 1024, height = 1024 } = options;
49
+ const { prompt, width = 1024, height = 1024, model } = options;
45
50
  if (!prompt) {
46
51
  return createError(ErrorCodes.INVALID_INPUT, 'Prompt is required for image generation');
47
52
  }
48
- const replicate = createReplicate({ apiToken });
53
+ const replicateClient = createReplicate({ apiToken });
54
+ const modelId = model || 'black-forest-labs/flux-2-dev';
49
55
  const { image } = await generateImage({
50
- model: replicate.image('black-forest-labs/flux-schnell'),
56
+ model: replicateClient.image(modelId),
51
57
  prompt,
52
58
  size: `${width}x${height}`,
53
59
  });
@@ -64,6 +70,107 @@ async function executeGenerate(options, context, apiToken) {
64
70
  bytes: stats.size,
65
71
  });
66
72
  }
73
+ /**
74
+ * Execute edit action using Replicate flux-kontext model
75
+ * Default model: black-forest-labs/flux-kontext-dev
76
+ */
77
+ async function executeEdit(options, context, apiToken) {
78
+ const { input, prompt, model } = options;
79
+ if (!input?.source) {
80
+ return createError(ErrorCodes.INVALID_INPUT, 'Input source is required for image editing');
81
+ }
82
+ if (!prompt) {
83
+ return createError(ErrorCodes.INVALID_INPUT, 'Prompt is required for image editing');
84
+ }
85
+ // Prepare the image input
86
+ let imageUrl;
87
+ if (input.isUrl) {
88
+ imageUrl = input.source;
89
+ }
90
+ else {
91
+ // Convert local file to data URI
92
+ const buffer = await readFile(input.source);
93
+ const base64 = buffer.toString('base64');
94
+ const ext = input.source.toLowerCase().split('.').pop();
95
+ const mimeType = ext === 'png' ? 'image/png' : ext === 'webp' ? 'image/webp' : 'image/jpeg';
96
+ imageUrl = `data:${mimeType};base64,${base64}`;
97
+ }
98
+ const modelId = model || 'black-forest-labs/flux-kontext-dev';
99
+ // Call the edit model via Replicate API
100
+ const response = await fetch('https://api.replicate.com/v1/predictions', {
101
+ method: 'POST',
102
+ headers: {
103
+ 'Authorization': `Bearer ${apiToken}`,
104
+ 'Content-Type': 'application/json',
105
+ 'Prefer': 'wait',
106
+ },
107
+ body: JSON.stringify({
108
+ model: modelId,
109
+ input: {
110
+ image: imageUrl,
111
+ prompt,
112
+ },
113
+ }),
114
+ });
115
+ if (!response.ok) {
116
+ const errorText = await response.text();
117
+ return createError(ErrorCodes.API_ERROR, `Replicate API error: ${response.status} - ${errorText}`);
118
+ }
119
+ const result = await response.json();
120
+ // Handle async predictions (poll if needed)
121
+ let outputUrl;
122
+ if (result.status === 'succeeded' && result.output) {
123
+ outputUrl = Array.isArray(result.output) ? result.output[0] : result.output;
124
+ }
125
+ else if (result.status === 'processing' && result.urls?.get) {
126
+ // Poll for completion
127
+ const maxAttempts = 60;
128
+ let attempts = 0;
129
+ while (attempts < maxAttempts) {
130
+ const pollResponse = await fetch(result.urls.get, {
131
+ headers: { 'Authorization': `Bearer ${apiToken}` },
132
+ });
133
+ const pollResult = await pollResponse.json();
134
+ if (pollResult.status === 'succeeded' && pollResult.output) {
135
+ outputUrl = Array.isArray(pollResult.output) ? pollResult.output[0] : pollResult.output;
136
+ break;
137
+ }
138
+ else if (pollResult.status === 'failed') {
139
+ return createError(ErrorCodes.PROVIDER_ERROR, pollResult.error || 'Edit failed');
140
+ }
141
+ await new Promise(resolve => setTimeout(resolve, 2000));
142
+ attempts++;
143
+ }
144
+ if (!outputUrl) {
145
+ return createError(ErrorCodes.PROVIDER_ERROR, 'Edit timed out');
146
+ }
147
+ }
148
+ else if (result.output) {
149
+ outputUrl = Array.isArray(result.output) ? result.output[0] : result.output;
150
+ }
151
+ if (!outputUrl) {
152
+ return createError(ErrorCodes.PROVIDER_ERROR, 'No image returned from edit operation');
153
+ }
154
+ // Download the edited image
155
+ const imageResponse = await fetch(outputUrl);
156
+ if (!imageResponse.ok) {
157
+ return createError(ErrorCodes.NETWORK_ERROR, `Failed to download edited image: ${imageResponse.statusText}`);
158
+ }
159
+ const arrayBuffer = await imageResponse.arrayBuffer();
160
+ const buffer = Buffer.from(arrayBuffer);
161
+ const outputFilename = generateOutputFilename('webp', 'edited');
162
+ const outputPath = getOutputPath(context.outputDir, outputFilename);
163
+ await writeFile(outputPath, buffer);
164
+ const stats = await stat(outputPath);
165
+ return createSuccess({
166
+ mediaType: 'image',
167
+ action: 'edit',
168
+ provider: 'replicate',
169
+ outputPath: outputPath,
170
+ mime: 'image/webp',
171
+ bytes: stats.size,
172
+ });
173
+ }
67
174
  /**
68
175
  * Execute remove-background action using Replicate BiRefNet model via AI SDK
69
176
  */
@@ -107,5 +214,141 @@ async function executeRemoveBackground(options, context, apiToken) {
107
214
  bytes: stats.size,
108
215
  });
109
216
  }
217
+ /**
218
+ * Execute transcribe action using Replicate whisperx model
219
+ * Supports diarization (requires HUGGINGFACE_ACCESS_TOKEN for pyannote model)
220
+ */
221
+ async function executeTranscribe(options, context, apiToken) {
222
+ const { input, diarize = false, language, numSpeakers } = options;
223
+ if (!input?.source) {
224
+ return createError(ErrorCodes.INVALID_INPUT, 'Input source is required for transcription');
225
+ }
226
+ // Prepare the audio input
227
+ let audioUrl;
228
+ if (input.isUrl) {
229
+ audioUrl = input.source;
230
+ }
231
+ else {
232
+ // Convert local file to data URI
233
+ const buffer = await readFile(input.source);
234
+ const base64 = buffer.toString('base64');
235
+ // Detect mime type from extension
236
+ const ext = input.source.toLowerCase().split('.').pop();
237
+ let mimeType;
238
+ switch (ext) {
239
+ case 'mp3':
240
+ mimeType = 'audio/mpeg';
241
+ break;
242
+ case 'wav':
243
+ mimeType = 'audio/wav';
244
+ break;
245
+ case 'mp4':
246
+ case 'm4a':
247
+ mimeType = 'audio/mp4';
248
+ break;
249
+ case 'webm':
250
+ mimeType = 'audio/webm';
251
+ break;
252
+ case 'ogg':
253
+ mimeType = 'audio/ogg';
254
+ break;
255
+ default:
256
+ mimeType = 'audio/mpeg';
257
+ }
258
+ audioUrl = `data:${mimeType};base64,${base64}`;
259
+ }
260
+ // Build request body for whisperx
261
+ const requestBody = {
262
+ audio_file: audioUrl,
263
+ align_output: true,
264
+ };
265
+ if (diarize) {
266
+ requestBody['diarization'] = true;
267
+ // Note: Diarization requires HUGGINGFACE_ACCESS_TOKEN env var
268
+ const hfToken = process.env['HUGGINGFACE_ACCESS_TOKEN'];
269
+ if (hfToken) {
270
+ requestBody['huggingface_access_token'] = hfToken;
271
+ }
272
+ if (numSpeakers) {
273
+ requestBody['min_speakers'] = numSpeakers;
274
+ requestBody['max_speakers'] = numSpeakers;
275
+ }
276
+ }
277
+ if (language) {
278
+ requestBody['language'] = language;
279
+ }
280
+ // Call whisperx via Replicate API
281
+ const response = await fetch('https://api.replicate.com/v1/predictions', {
282
+ method: 'POST',
283
+ headers: {
284
+ 'Authorization': `Bearer ${apiToken}`,
285
+ 'Content-Type': 'application/json',
286
+ },
287
+ body: JSON.stringify({
288
+ version: '84d2ad2d6194fe98a17d2b60bef1c7f910c46b2f6fd38996ca457afd9c8abfcb',
289
+ input: requestBody,
290
+ }),
291
+ });
292
+ if (!response.ok) {
293
+ const errorText = await response.text();
294
+ return createError(ErrorCodes.API_ERROR, `Replicate API error: ${response.status} - ${errorText}`);
295
+ }
296
+ const prediction = await response.json();
297
+ // Poll for completion
298
+ let result;
299
+ const maxAttempts = 120; // 10 minutes max
300
+ let attempts = 0;
301
+ while (attempts < maxAttempts) {
302
+ const pollResponse = await fetch(prediction.urls.get, {
303
+ headers: {
304
+ 'Authorization': `Bearer ${apiToken}`,
305
+ },
306
+ });
307
+ if (!pollResponse.ok) {
308
+ return createError(ErrorCodes.API_ERROR, `Failed to poll prediction status`);
309
+ }
310
+ result = await pollResponse.json();
311
+ if (result.status === 'succeeded') {
312
+ break;
313
+ }
314
+ else if (result.status === 'failed') {
315
+ return createError(ErrorCodes.PROVIDER_ERROR, result.error || 'Transcription failed');
316
+ }
317
+ else if (result.status === 'canceled') {
318
+ return createError(ErrorCodes.PROVIDER_ERROR, 'Transcription was canceled');
319
+ }
320
+ // Wait 5 seconds before polling again
321
+ await new Promise(resolve => setTimeout(resolve, 5000));
322
+ attempts++;
323
+ }
324
+ if (attempts >= maxAttempts) {
325
+ return createError(ErrorCodes.PROVIDER_ERROR, 'Transcription timed out');
326
+ }
327
+ if (!result.output) {
328
+ return createError(ErrorCodes.PROVIDER_ERROR, 'No output from transcription');
329
+ }
330
+ // Transform to our TranscriptionData format
331
+ const segments = result.output.segments || [];
332
+ const transcription = {
333
+ text: segments.map(s => s.text).join(' '),
334
+ language: result.output.detected_language || language || 'unknown',
335
+ segments: segments.map(segment => ({
336
+ start: segment.start,
337
+ end: segment.end,
338
+ text: segment.text,
339
+ ...(segment.speaker ? { speaker: segment.speaker } : {}),
340
+ })),
341
+ };
342
+ // Save transcription to JSON file
343
+ const outputFilename = generateOutputFilename('json', 'transcription');
344
+ const outputPath = getOutputPath(context.outputDir, outputFilename);
345
+ await writeFile(outputPath, JSON.stringify(transcription, null, 2));
346
+ return createTranscriptionSuccess({
347
+ mediaType: 'audio',
348
+ provider: 'replicate',
349
+ outputPath: outputPath,
350
+ transcription,
351
+ });
352
+ }
110
353
  export default replicateProvider;
111
354
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/replicate/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC;AACnC,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAS7D,OAAO,EACL,aAAa,EACb,WAAW,EACX,eAAe,EACf,sBAAsB,EACtB,aAAa,EACb,UAAU,GACX,MAAM,mBAAmB,CAAC;AAE3B;;GAEG;AACH,MAAM,iBAAiB,GAAG,CAAC,UAAU,EAAE,mBAAmB,CAAC,CAAC;AAE5D;;;GAGG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAkB;IAC9C,IAAI,EAAE,WAAW;IAEjB,QAAQ,CAAC,MAAc;QACrB,OAAO,iBAAiB,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC5C,CAAC;IAED,KAAK,CAAC,OAAO,CACX,YAA2B,EAC3B,OAAsB;QAEtB,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;QAEpD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO,WAAW,CAChB,UAAU,CAAC,SAAS,EACpB,qDAAqD,CACtD,CAAC;QACJ,CAAC;QAED,IAAI,CAAC;YACH,MAAM,eAAe,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YAEzC,QAAQ,YAAY,CAAC,MAAM,EAAE,CAAC;gBAC5B,KAAK,UAAU;oBACb,OAAO,MAAM,eAAe,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;gBACxE,KAAK,mBAAmB;oBACtB,OAAO,MAAM,uBAAuB,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;gBAChF;oBACE,OAAO,WAAW,CAChB,UAAU,CAAC,aAAa,EACxB,WAAW,YAAY,CAAC,MAAM,uCAAuC,CACtE,CAAC;YACN,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACvE,OAAO,WAAW,CAAC,UAAU,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;QACzD,CAAC;IACH,CAAC;CACF,CAAC;AAEF;;GAEG;AACH,KAAK,UAAU,eAAe,CAC5B,OAAwB,EACxB,OAAsB,EACtB,QAAgB;IAEhB,MAAM,EAAE,MAAM,EAAE,KAAK,GAAG,IAAI,EAAE,MAAM,GAAG,IAAI,EAAE,GAAG,OAAO,CAAC;IAExD,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,WAAW,CAAC,UAAU,CAAC,aAAa,EAAE,yCAAyC,CAAC,CAAC;IAC1F,CAAC;IAED,MAAM,SAAS,GAAG,eAAe,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC;IAEhD,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,aAAa,CAAC;QACpC,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,gCAAgC,CAAC;QACxD,MAAM;QACN,IAAI,EAAE,GAAG,KAAK,IAAI,MAAM,EAAE;KAC3B,CAAC,CAAC;IAEH,MAAM,cAAc,GAAG,sBAAsB,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IACnE,MAAM,UAAU,GAAG,aAAa,CAAC,OAAO,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;IAEpE,MAAM,SAAS,CAAC,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;IAE9C,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,CAAC;IAErC,OAAO,aAAa,CAAC;QACnB,SAAS,EAAE,OAAO;QAClB,MAAM,EAAE,UAAU;QAClB,QAAQ,EAAE,WAAW;QACrB,UAAU,EAAE,UAAU;QACtB,IAAI,EAAE,YAAY;QAClB,KAAK,EAAE,KAAK,CAAC,IAAI;KAClB,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,uBAAuB,CACpC,OAAgC,EAChC,OAAsB,EACtB,QAAgB;IAEhB,MAAM,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC;IAE1B,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC;QACnB,OAAO,WAAW,CAAC,UAAU,CAAC,aAAa,EAAE,iDAAiD,CAAC,CAAC;IAClG,CAAC;IAED,MAAM,SAAS,GAAG,eAAe,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC;IAEhD,0BAA0B;IAC1B,IAAI,WAAmB,CAAC;IACxB,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;QAChB,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAC3C,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,OAAO,WAAW,CAAC,UAAU,CAAC,aAAa,EAAE,0BAA0B,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;QAChG,CAAC;QACD,MAAM,WAAW,GAAG,MAAM,QAAQ,CAAC,WAAW,EAAE,CAAC;QACjD,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IACzC,CAAC;SAAM,CAAC;QACN,WAAW,GAAG,MAAM,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IAC7C,CAAC;IAED,mEAAmE;IACnE,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,aAAa,CAAC;QACpC,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,oFAAoF,CAAC;QAC5G,MAAM,EAAE;YACN,IAAI,EAAE,EAAE;YACR,MAAM,EAAE,CAAC,WAAW,CAAC;SACtB;KACF,CAAC,CAAC;IAEH,MAAM,cAAc,GAAG,sBAAsB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAC7D,MAAM,UAAU,GAAG,aAAa,CAAC,OAAO,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;IAEpE,MAAM,SAAS,CAAC,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;IAE9C,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,CAAC;IAErC,OAAO,aAAa,CAAC;QACnB,SAAS,EAAE,OAAO;QAClB,MAAM,EAAE,mBAAmB;QAC3B,QAAQ,EAAE,WAAW;QACrB,UAAU,EAAE,UAAU;QACtB,IAAI,EAAE,WAAW;QACjB,KAAK,EAAE,KAAK,CAAC,IAAI;KAClB,CAAC,CAAC;AACL,CAAC;AAED,eAAe,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/replicate/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import type { MediaResult, ActionContext, RemoveBackgroundOptions } from '@agent-media/core';
2
+ /**
3
+ * Dispose of the cached pipeline to prevent cleanup errors
4
+ */
5
+ export declare function disposePipeline(): Promise<void>;
6
+ /**
7
+ * Execute background removal using Transformers.js background-removal pipeline
8
+ */
9
+ export declare function executeBackgroundRemoval(options: RemoveBackgroundOptions, context: ActionContext): Promise<MediaResult>;
10
+ //# sourceMappingURL=background-removal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"background-removal.d.ts","sourceRoot":"","sources":["../../src/transformers/background-removal.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,WAAW,EACX,aAAa,EACb,uBAAuB,EACxB,MAAM,mBAAmB,CAAC;AAuC3B;;GAEG;AACH,wBAAsB,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC,CAMrD;AA8BD;;GAEG;AACH,wBAAsB,wBAAwB,CAC5C,OAAO,EAAE,uBAAuB,EAChC,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,WAAW,CAAC,CAuEtB"}
@@ -0,0 +1,112 @@
1
+ import { pipeline, env } from '@huggingface/transformers';
2
+ import sharp from 'sharp';
3
+ import { stat } from 'node:fs/promises';
4
+ import { createSuccess, createError, generateOutputFilename, getOutputPath, ErrorCodes, } from '@agent-media/core';
5
+ // Disable local model loading from disk cache check warnings
6
+ env.allowLocalModels = false;
7
+ /**
8
+ * Default model for background removal
9
+ * Xenova/modnet is publicly accessible (~25MB)
10
+ * briaai/RMBG-2.0 requires HuggingFace authentication
11
+ */
12
+ const DEFAULT_MODEL = 'Xenova/modnet';
13
+ /**
14
+ * Model aliases for user-friendly selection
15
+ */
16
+ const MODEL_ALIASES = {
17
+ 'modnet': 'Xenova/modnet',
18
+ 'rmbg-2.0': 'briaai/RMBG-2.0',
19
+ 'rmbg-1.4': 'briaai/RMBG-1.4',
20
+ };
21
+ /**
22
+ * Cache for loaded pipelines to avoid reloading models
23
+ */
24
+ let cachedPipeline = null;
25
+ let cachedModelId = null;
26
+ /**
27
+ * Dispose of the cached pipeline to prevent cleanup errors
28
+ */
29
+ export async function disposePipeline() {
30
+ if (cachedPipeline && typeof cachedPipeline.dispose === 'function') {
31
+ await cachedPipeline.dispose();
32
+ }
33
+ cachedPipeline = null;
34
+ cachedModelId = null;
35
+ }
36
+ /**
37
+ * Get or create pipeline for background removal
38
+ */
39
+ async function getBackgroundRemovalPipeline(modelId) {
40
+ if (cachedPipeline && cachedModelId === modelId) {
41
+ return cachedPipeline;
42
+ }
43
+ cachedPipeline = await pipeline('background-removal', modelId, {
44
+ device: 'cpu',
45
+ });
46
+ cachedModelId = modelId;
47
+ return cachedPipeline;
48
+ }
49
+ /**
50
+ * Resolve model name from alias or use as-is
51
+ */
52
+ function resolveModel(model) {
53
+ if (!model) {
54
+ return DEFAULT_MODEL;
55
+ }
56
+ const lowerModel = model.toLowerCase();
57
+ return MODEL_ALIASES[lowerModel] || model;
58
+ }
59
+ /**
60
+ * Execute background removal using Transformers.js background-removal pipeline
61
+ */
62
+ export async function executeBackgroundRemoval(options, context) {
63
+ const { input, model } = options;
64
+ if (!input?.source) {
65
+ return createError(ErrorCodes.INVALID_INPUT, 'Input source is required for background removal');
66
+ }
67
+ const modelId = resolveModel(model);
68
+ try {
69
+ // Get or create the background removal pipeline
70
+ const remover = await getBackgroundRemovalPipeline(modelId);
71
+ // Run background removal - accepts URL or file path
72
+ const result = await remover(input.source);
73
+ // Result is an array of RawImage objects with transparency
74
+ const outputImage = Array.isArray(result) ? result[0] : result;
75
+ if (!outputImage) {
76
+ return createError(ErrorCodes.PROVIDER_ERROR, 'No image returned from background removal');
77
+ }
78
+ // Convert RawImage to PNG using sharp (toBlob only works in browser)
79
+ // RawImage has data (Uint8ClampedArray), width, height, and channels properties
80
+ const { data, width, height, channels } = outputImage;
81
+ // Create sharp instance from raw pixel data
82
+ const sharpInstance = sharp(Buffer.from(data.buffer), {
83
+ raw: {
84
+ width,
85
+ height,
86
+ channels: channels,
87
+ },
88
+ });
89
+ const outputFilename = generateOutputFilename('png', 'nobg');
90
+ const outputPath = getOutputPath(context.outputDir, outputFilename);
91
+ // Save as PNG
92
+ await sharpInstance.png().toFile(outputPath);
93
+ const stats = await stat(outputPath);
94
+ return createSuccess({
95
+ mediaType: 'image',
96
+ action: 'remove-background',
97
+ provider: 'transformers',
98
+ outputPath: outputPath,
99
+ mime: 'image/png',
100
+ bytes: stats.size,
101
+ });
102
+ }
103
+ catch (error) {
104
+ const message = error instanceof Error ? error.message : String(error);
105
+ // Provide helpful error for model download issues
106
+ if (message.includes('fetch') || message.includes('network')) {
107
+ return createError(ErrorCodes.NETWORK_ERROR, `Failed to download model ${modelId}. Ensure you have internet connectivity. Models are cached after first download.`);
108
+ }
109
+ return createError(ErrorCodes.PROVIDER_ERROR, message);
110
+ }
111
+ }
112
+ //# sourceMappingURL=background-removal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"background-removal.js","sourceRoot":"","sources":["../../src/transformers/background-removal.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ import type { MediaProvider } from '@agent-media/core';
2
+ /**
3
+ * Transformers.js provider for local ML inference
4
+ * Uses @huggingface/transformers for zero-API-key operations
5
+ *
6
+ * Supports:
7
+ * - remove-background: Xenova/modnet (default), briaai/RMBG-2.0 (requires HF auth)
8
+ * - transcribe: Moonshine (default, 5x faster than Whisper), Whisper, Distil-Whisper
9
+ *
10
+ * Models are downloaded on first use and cached locally (~/.cache/huggingface/).
11
+ * No API keys required.
12
+ */
13
+ export declare const transformersProvider: MediaProvider;
14
+ export default transformersProvider;
15
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/transformers/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EAId,MAAM,mBAAmB,CAAC;AAgB3B;;;;;;;;;;GAUG;AACH,eAAO,MAAM,oBAAoB,EAAE,aAmClC,CAAC;AAEF,eAAe,oBAAoB,CAAC"}
@@ -0,0 +1,52 @@
1
+ import { createError, ensureOutputDir, ErrorCodes } from '@agent-media/core';
2
+ import { executeBackgroundRemoval } from './background-removal.js';
3
+ import { executeTranscribe } from './transcribe.js';
4
+ /**
5
+ * Note: ONNX runtime on macOS may cause a mutex error during cleanup.
6
+ * This does not affect output - the JSON result and saved files are correct.
7
+ * The error "mutex lock failed: Invalid argument" can be safely ignored.
8
+ */
9
+ /**
10
+ * Actions supported by the transformers provider
11
+ */
12
+ const SUPPORTED_ACTIONS = ['remove-background', 'transcribe'];
13
+ /**
14
+ * Transformers.js provider for local ML inference
15
+ * Uses @huggingface/transformers for zero-API-key operations
16
+ *
17
+ * Supports:
18
+ * - remove-background: Xenova/modnet (default), briaai/RMBG-2.0 (requires HF auth)
19
+ * - transcribe: Moonshine (default, 5x faster than Whisper), Whisper, Distil-Whisper
20
+ *
21
+ * Models are downloaded on first use and cached locally (~/.cache/huggingface/).
22
+ * No API keys required.
23
+ */
24
+ export const transformersProvider = {
25
+ name: 'transformers',
26
+ supports(action) {
27
+ return SUPPORTED_ACTIONS.includes(action);
28
+ },
29
+ async execute(actionConfig, context) {
30
+ try {
31
+ await ensureOutputDir(context.outputDir);
32
+ let result;
33
+ switch (actionConfig.action) {
34
+ case 'remove-background':
35
+ result = await executeBackgroundRemoval(actionConfig.options, context);
36
+ break;
37
+ case 'transcribe':
38
+ result = await executeTranscribe(actionConfig.options, context);
39
+ break;
40
+ default:
41
+ return createError(ErrorCodes.INVALID_INPUT, `Action '${actionConfig.action}' not supported by transformers provider`);
42
+ }
43
+ return result;
44
+ }
45
+ catch (error) {
46
+ const message = error instanceof Error ? error.message : String(error);
47
+ return createError(ErrorCodes.PROVIDER_ERROR, message);
48
+ }
49
+ },
50
+ };
51
+ export default transformersProvider;
52
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/transformers/index.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC7E,OAAO,EAAE,wBAAwB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAEpD;;;;GAIG;AAEH;;GAEG;AACH,MAAM,iBAAiB,GAAG,CAAC,mBAAmB,EAAE,YAAY,CAAC,CAAC;AAE9D;;;;;;;;;;GAUG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAkB;IACjD,IAAI,EAAE,cAAc;IAEpB,QAAQ,CAAC,MAAc;QACrB,OAAO,iBAAiB,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC5C,CAAC;IAED,KAAK,CAAC,OAAO,CACX,YAA2B,EAC3B,OAAsB;QAEtB,IAAI,CAAC;YACH,MAAM,eAAe,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YAEzC,IAAI,MAAmB,CAAC;YACxB,QAAQ,YAAY,CAAC,MAAM,EAAE,CAAC;gBAC5B,KAAK,mBAAmB;oBACtB,MAAM,GAAG,MAAM,wBAAwB,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;oBACvE,MAAM;gBACR,KAAK,YAAY;oBACf,MAAM,GAAG,MAAM,iBAAiB,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;oBAChE,MAAM;gBACR;oBACE,OAAO,WAAW,CAChB,UAAU,CAAC,aAAa,EACxB,WAAW,YAAY,CAAC,MAAM,0CAA0C,CACzE,CAAC;YACN,CAAC;YAED,OAAO,MAAM,CAAC;QAChB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACvE,OAAO,WAAW,CAAC,UAAU,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;QACzD,CAAC;IACH,CAAC;CACF,CAAC;AAEF,eAAe,oBAAoB,CAAC"}
@@ -0,0 +1,10 @@
1
+ import type { MediaResult, ActionContext, TranscribeOptions } from '@agent-media/core';
2
+ /**
3
+ * Dispose of the cached pipeline to prevent cleanup errors
4
+ */
5
+ export declare function disposePipeline(): Promise<void>;
6
+ /**
7
+ * Execute transcription using Transformers.js automatic-speech-recognition pipeline
8
+ */
9
+ export declare function executeTranscribe(options: TranscribeOptions, context: ActionContext): Promise<MediaResult>;
10
+ //# sourceMappingURL=transcribe.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transcribe.d.ts","sourceRoot":"","sources":["../../src/transformers/transcribe.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACV,WAAW,EACX,aAAa,EACb,iBAAiB,EAElB,MAAM,mBAAmB,CAAC;AA0D3B;;GAEG;AACH,wBAAsB,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC,CAMrD;AA8BD;;GAEG;AACH,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,iBAAiB,EAC1B,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,WAAW,CAAC,CAqGtB"}
@@ -0,0 +1,140 @@
1
+ import { pipeline, env } from '@huggingface/transformers';
2
+ import { writeFile } from 'node:fs/promises';
3
+ import { createError, createTranscriptionSuccess, generateOutputFilename, getOutputPath, ErrorCodes, } from '@agent-media/core';
4
+ // Disable local model loading from disk cache check warnings
5
+ env.allowLocalModels = false;
6
+ /**
7
+ * Default model for transcription
8
+ * Moonshine is 5x faster than Whisper for short audio with better accuracy
9
+ * https://huggingface.co/onnx-community/moonshine-base-ONNX
10
+ */
11
+ const DEFAULT_MODEL = 'onnx-community/moonshine-base-ONNX';
12
+ /**
13
+ * Model aliases for user-friendly selection
14
+ */
15
+ const MODEL_ALIASES = {
16
+ // Moonshine models (recommended - faster and more accurate)
17
+ 'moonshine-tiny': 'onnx-community/moonshine-tiny-ONNX',
18
+ 'moonshine-base': 'onnx-community/moonshine-base-ONNX',
19
+ // Whisper models (for compatibility)
20
+ 'whisper-tiny': 'Xenova/whisper-tiny',
21
+ 'whisper-base': 'Xenova/whisper-base',
22
+ 'whisper-small': 'Xenova/whisper-small',
23
+ 'whisper-medium': 'Xenova/whisper-medium',
24
+ 'whisper-large-v3-turbo': 'onnx-community/whisper-large-v3-turbo',
25
+ // Distil-Whisper (fast, English only)
26
+ 'distil-whisper': 'distil-whisper/distil-large-v3.5-ONNX',
27
+ };
28
+ /**
29
+ * Cache for loaded pipelines to avoid reloading models
30
+ */
31
+ let cachedPipeline = null;
32
+ let cachedModelId = null;
33
+ /**
34
+ * Dispose of the cached pipeline to prevent cleanup errors
35
+ */
36
+ export async function disposePipeline() {
37
+ if (cachedPipeline && typeof cachedPipeline.dispose === 'function') {
38
+ await cachedPipeline.dispose();
39
+ }
40
+ cachedPipeline = null;
41
+ cachedModelId = null;
42
+ }
43
+ /**
44
+ * Get or create pipeline for automatic speech recognition
45
+ */
46
+ async function getASRPipeline(modelId) {
47
+ if (cachedPipeline && cachedModelId === modelId) {
48
+ return cachedPipeline;
49
+ }
50
+ cachedPipeline = await pipeline('automatic-speech-recognition', modelId, {
51
+ device: 'cpu',
52
+ });
53
+ cachedModelId = modelId;
54
+ return cachedPipeline;
55
+ }
56
+ /**
57
+ * Resolve model name from alias or use as-is
58
+ */
59
+ function resolveModel(model) {
60
+ if (!model) {
61
+ return DEFAULT_MODEL;
62
+ }
63
+ const lowerModel = model.toLowerCase();
64
+ return MODEL_ALIASES[lowerModel] || model;
65
+ }
66
+ /**
67
+ * Execute transcription using Transformers.js automatic-speech-recognition pipeline
68
+ */
69
+ export async function executeTranscribe(options, context) {
70
+ const { input, diarize = false, language, model } = options;
71
+ if (!input?.source) {
72
+ return createError(ErrorCodes.INVALID_INPUT, 'Input source is required for transcription');
73
+ }
74
+ // Diarization is not supported locally - return helpful error
75
+ if (diarize) {
76
+ return createError(ErrorCodes.INVALID_INPUT, 'Diarization (speaker identification) is not supported by the local transformers provider. Use --provider fal or --provider replicate for diarization support.');
77
+ }
78
+ const modelId = resolveModel(model);
79
+ try {
80
+ // Get or create the ASR pipeline
81
+ const transcriber = await getASRPipeline(modelId);
82
+ // Run transcription with timestamp chunks
83
+ // The pipeline accepts URL or file path directly
84
+ const result = await transcriber(input.source, {
85
+ return_timestamps: 'word',
86
+ chunk_length_s: 30,
87
+ stride_length_s: 5,
88
+ language: language || undefined,
89
+ });
90
+ // Result can be a single object or array
91
+ const output = (Array.isArray(result) ? result[0] : result);
92
+ if (!output || typeof output.text !== 'string') {
93
+ return createError(ErrorCodes.PROVIDER_ERROR, 'No transcription output returned from model');
94
+ }
95
+ // Build transcription data
96
+ const chunks = output.chunks;
97
+ const transcription = {
98
+ text: output.text.trim(),
99
+ language: language || 'auto',
100
+ segments: chunks
101
+ ? chunks.map((chunk) => ({
102
+ start: chunk.timestamp[0] ?? 0,
103
+ end: chunk.timestamp[1] ?? 0,
104
+ text: chunk.text.trim(),
105
+ }))
106
+ : [
107
+ {
108
+ start: 0,
109
+ end: 0,
110
+ text: output.text.trim(),
111
+ },
112
+ ],
113
+ };
114
+ // Save transcription to JSON file
115
+ const outputFilename = generateOutputFilename('json', 'transcription');
116
+ const outputPath = getOutputPath(context.outputDir, outputFilename);
117
+ await writeFile(outputPath, JSON.stringify(transcription, null, 2));
118
+ return createTranscriptionSuccess({
119
+ mediaType: 'audio',
120
+ provider: 'transformers',
121
+ outputPath: outputPath,
122
+ transcription,
123
+ });
124
+ }
125
+ catch (error) {
126
+ const message = error instanceof Error ? error.message : String(error);
127
+ // Provide helpful error for model download issues
128
+ if (message.includes('fetch') || message.includes('network')) {
129
+ return createError(ErrorCodes.NETWORK_ERROR, `Failed to download model ${modelId}. Ensure you have internet connectivity. Models are cached after first download.`);
130
+ }
131
+ // Handle audio format issues
132
+ if (message.includes('audio') ||
133
+ message.includes('decode') ||
134
+ message.includes('format')) {
135
+ return createError(ErrorCodes.INVALID_FORMAT, `Failed to process audio file. Supported formats: mp3, wav, mp4, m4a, webm, ogg. Error: ${message}`);
136
+ }
137
+ return createError(ErrorCodes.PROVIDER_ERROR, message);
138
+ }
139
+ }
140
+ //# sourceMappingURL=transcribe.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transcribe.js","sourceRoot":"","sources":["../../src/transformers/transcribe.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAO7C,OAAO,EACL,WAAW,EACX,0BAA0B,EAC1B,sBAAsB,EACtB,aAAa,EACb,UAAU,GACX,MAAM,mBAAmB,CAAC;AAE3B,6DAA6D;AAC7D,GAAG,CAAC,gBAAgB,GAAG,KAAK,CAAC;AAE7B;;;;GAIG;AACH,MAAM,aAAa,GAAG,oCAAoC,CAAC;AAE3D;;GAEG;AACH,MAAM,aAAa,GAA2B;IAC5C,4DAA4D;IAC5D,gBAAgB,EAAE,oCAAoC;IACtD,gBAAgB,EAAE,oCAAoC;IACtD,qCAAqC;IACrC,cAAc,EAAE,qBAAqB;IACrC,cAAc,EAAE,qBAAqB;IACrC,eAAe,EAAE,sBAAsB;IACvC,gBAAgB,EAAE,uBAAuB;IACzC,wBAAwB,EAAE,uCAAuC;IACjE,sCAAsC;IACtC,gBAAgB,EAAE,uCAAuC;CAC1D,CAAC;AAkBF;;GAEG;AACH,IAAI,cAAc,GAAuB,IAAI,CAAC;AAC9C,IAAI,aAAa,GAAkB,IAAI,CAAC;AAExC;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe;IACnC,IAAI,cAAc,IAAI,OAAQ,cAAsB,CAAC,OAAO,KAAK,UAAU,EAAE,CAAC;QAC5E,MAAO,cAAsB,CAAC,OAAO,EAAE,CAAC;IAC1C,CAAC;IACD,cAAc,GAAG,IAAI,CAAC;IACtB,aAAa,GAAG,IAAI,CAAC;AACvB,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,cAAc,CAAC,OAAe;IAC3C,IAAI,cAAc,IAAI,aAAa,KAAK,OAAO,EAAE,CAAC;QAChD,OAAO,cAAc,CAAC;IACxB,CAAC;IAED,cAAc,GAAG,MAAM,QAAQ,CAAC,8BAA8B,EAAE,OAAO,EAAE;QACvE,MAAM,EAAE,KAAK;KACd,CAAC,CAAC;IACH,aAAa,GAAG,OAAO,CAAC;IAExB,OAAO,cAAc,CAAC;AACxB,CAAC;AAED;;GAEG;AACH,SAAS,YAAY,CAAC,KAAc;IAClC,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,aAAa,CAAC;IACvB,CAAC;IAED,MAAM,UAAU,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;IACvC,OAAO,aAAa,CAAC,UAAU,CAAC,IAAI,KAAK,CAAC;AAC5C,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,OAA0B,EAC1B,OAAsB;IAEtB,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC;IAE5D,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,CAAC;QACnB,OAAO,WAAW,CAChB,UAAU,CAAC,aAAa,EACxB,4CAA4C,CAC7C,CAAC;IACJ,CAAC;IAED,8DAA8D;IAC9D,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,WAAW,CAChB,UAAU,CAAC,aAAa,EACxB,+JAA+J,CAChK,CAAC;IACJ,CAAC;IAED,MAAM,OAAO,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;IAEpC,IAAI,CAAC;QACH,iCAAiC;QACjC,MAAM,WAAW,GAAG,MAAM,cAAc,CAAC,OAAO,CAAC,CAAC;QAElD,0CAA0C;QAC1C,iDAAiD;QACjD,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,KAAK,CAAC,MAAM,EAAE;YAC7C,iBAAiB,EAAE,MAAM;YACzB,cAAc,EAAE,EAAE;YAClB,eAAe,EAAE,CAAC;YAClB,QAAQ,EAAE,QAAQ,IAAI,SAAS;SAChC,CAAC,CAAC;QAEH,yCAAyC;QACzC,MAAM,MAAM,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAc,CAAC;QAEzE,IAAI,CAAC,MAAM,IAAI,OAAO,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC/C,OAAO,WAAW,CAChB,UAAU,CAAC,cAAc,EACzB,6CAA6C,CAC9C,CAAC;QACJ,CAAC;QAED,2BAA2B;QAC3B,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;QAE7B,MAAM,aAAa,GAAsB;YACvC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE;YACxB,QAAQ,EAAE,QAAQ,IAAI,MAAM;YAC5B,QAAQ,EAAE,MAAM;gBACd,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;oBACrB,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC;oBAC9B,GAAG,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC;oBAC5B,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE;iBACxB,CAAC,CAAC;gBACL,CAAC,CAAC;oBACE;wBACE,KAAK,EAAE,CAAC;wBACR,GAAG,EAAE,CAAC;wBACN,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE;qBACzB;iBACF;SACN,CAAC;QAEF,kCAAkC;QAClC,MAAM,cAAc,GAAG,sBAAsB,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;QACvE,MAAM,UAAU,GAAG,aAAa,CAAC,OAAO,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;QAEpE,MAAM,SAAS,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAEpE,OAAO,0BAA0B,CAAC;YAChC,SAAS,EAAE,OAAO;YAClB,QAAQ,EAAE,cAAc;YACxB,UAAU,EAAE,UAAU;YACtB,aAAa;SACd,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAEvE,kDAAkD;QAClD,IAAI,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;YAC7D,OAAO,WAAW,CAChB,UAAU,CAAC,aAAa,EACxB,4BAA4B,OAAO,kFAAkF,CACtH,CAAC;QACJ,CAAC;QAED,6BAA6B;QAC7B,IACE,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC;YACzB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC;YAC1B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAC1B,CAAC;YACD,OAAO,WAAW,CAChB,UAAU,CAAC,cAAc,EACzB,0FAA0F,OAAO,EAAE,CACpG,CAAC;QACJ,CAAC;QAED,OAAO,WAAW,CAAC,UAAU,CAAC,cAAc,EAAE,OAAO,CAAC,CAAC;IACzD,CAAC;AACH,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agent-media/providers",
3
- "version": "0.1.0",
3
+ "version": "0.3.0",
4
4
  "description": "Media providers for agent-media toolkit",
5
5
  "license": "Apache-2.0",
6
6
  "repository": {
@@ -31,6 +31,10 @@
31
31
  "./runpod": {
32
32
  "types": "./dist/runpod/index.d.ts",
33
33
  "import": "./dist/runpod/index.js"
34
+ },
35
+ "./transformers": {
36
+ "types": "./dist/transformers/index.d.ts",
37
+ "import": "./dist/transformers/index.js"
34
38
  }
35
39
  },
36
40
  "files": [
@@ -38,16 +42,21 @@
38
42
  ],
39
43
  "dependencies": {
40
44
  "@ai-sdk/fal": "^2.0.6",
45
+ "@huggingface/transformers": "^3.3.3",
41
46
  "@ai-sdk/replicate": "^2.0.6",
47
+ "@fal-ai/client": "^1.8.3",
42
48
  "@runpod/ai-sdk-provider": "^1.1.0",
43
49
  "ai": "^6.0.33",
44
- "sharp": "^0.33.0",
45
- "@agent-media/core": "0.1.0"
50
+ "sharp": "^0.34.1",
51
+ "@agent-media/core": "0.3.0"
46
52
  },
47
53
  "devDependencies": {
48
54
  "@types/node": "^22.0.0",
49
55
  "typescript": "^5.7.0"
50
56
  },
57
+ "publishConfig": {
58
+ "access": "public"
59
+ },
51
60
  "scripts": {
52
61
  "build": "tsc",
53
62
  "clean": "rm -rf dist",
@@ -1,8 +0,0 @@
1
- import type { MediaProvider } from '@agent-media/core';
2
- /**
3
- * File provider (fal.ai) for image generation and processing
4
- * Requires FILE_API_KEY environment variable
5
- */
6
- export declare const fileProvider: MediaProvider;
7
- export default fileProvider;
8
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/file/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EAId,MAAM,mBAAmB,CAAC;AAQ3B;;;GAGG;AACH,eAAO,MAAM,YAAY,EAAE,aA0B1B,CAAC;AAEF,eAAe,YAAY,CAAC"}
@@ -1,25 +0,0 @@
1
- import { createError, ErrorCodes } from '@agent-media/core';
2
- /**
3
- * Actions supported by the file provider
4
- */
5
- const SUPPORTED_ACTIONS = ['generate', 'remove-background'];
6
- /**
7
- * File provider (fal.ai) for image generation and processing
8
- * Requires FILE_API_KEY environment variable
9
- */
10
- export const fileProvider = {
11
- name: 'file',
12
- supports(action) {
13
- return SUPPORTED_ACTIONS.includes(action);
14
- },
15
- async execute(actionConfig, _context) {
16
- const apiKey = process.env['FILE_API_KEY'];
17
- if (!apiKey) {
18
- return createError(ErrorCodes.API_ERROR, 'FILE_API_KEY environment variable is not set');
19
- }
20
- // TODO: Implement file provider API calls
21
- return createError(ErrorCodes.PROVIDER_ERROR, `File provider not yet implemented for action: ${actionConfig.action}`);
22
- },
23
- };
24
- export default fileProvider;
25
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/file/index.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAE5D;;GAEG;AACH,MAAM,iBAAiB,GAAG,CAAC,UAAU,EAAE,mBAAmB,CAAC,CAAC;AAE5D;;;GAGG;AACH,MAAM,CAAC,MAAM,YAAY,GAAkB;IACzC,IAAI,EAAE,MAAM;IAEZ,QAAQ,CAAC,MAAc;QACrB,OAAO,iBAAiB,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC5C,CAAC;IAED,KAAK,CAAC,OAAO,CACX,YAA2B,EAC3B,QAAuB;QAEvB,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QAE3C,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,WAAW,CAChB,UAAU,CAAC,SAAS,EACpB,8CAA8C,CAC/C,CAAC;QACJ,CAAC;QAED,0CAA0C;QAC1C,OAAO,WAAW,CAChB,UAAU,CAAC,cAAc,EACzB,iDAAiD,YAAY,CAAC,MAAM,EAAE,CACvE,CAAC;IACJ,CAAC;CACF,CAAC;AAEF,eAAe,YAAY,CAAC"}