@workglow/ai-provider 0.1.0 → 0.1.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.
@@ -1 +1 @@
1
- {"version":3,"file":"HFT_Pipeline.d.ts","sourceRoot":"","sources":["../../../src/provider-hf-transformers/common/HFT_Pipeline.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,KAAK,sBAAsB,EAAqB,MAAM,2BAA2B,CAAC;AAE3F,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,mBAAmB,CAAC;AAKvE;;;GAGG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAKhD;AAED,wBAAsB,mBAAmB,wDAexC;AAkJD;;;;;GAKG;AACH,eAAO,MAAM,yBAAyB,wBAAwB,CAAC;AAE/D;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,IAAI,CAEzC;AAED,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAE3D;AAED,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAE9D;AAYD;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,6BAA6B,GAAG,MAAM,CAKhF;AAED;;;;;GAKG;AACH,wBAAsB,WAAW,CAC/B,KAAK,EAAE,6BAA6B,EACpC,UAAU,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,KAAK,IAAI,EACvE,OAAO,GAAE,sBAA2B,EACpC,MAAM,CAAC,EAAE,WAAW,EACpB,gBAAgB,GAAE,MAAW,GAC5B,OAAO,CAAC,GAAG,CAAC,CA6Bd"}
1
+ {"version":3,"file":"HFT_Pipeline.d.ts","sourceRoot":"","sources":["../../../src/provider-hf-transformers/common/HFT_Pipeline.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,KAAK,sBAAsB,EAAqB,MAAM,2BAA2B,CAAC;AAE3F,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,mBAAmB,CAAC;AAKvE;;;GAGG;AACH,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAKhD;AAED,wBAAsB,mBAAmB,wDAexC;AAkKD;;;;;GAKG;AACH,eAAO,MAAM,yBAAyB,wBAAwB,CAAC;AAE/D;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,IAAI,CAEzC;AAED,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAE3D;AAED,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAE9D;AAYD;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,6BAA6B,GAAG,MAAM,CAKhF;AAED;;;;;GAKG;AACH,wBAAsB,WAAW,CAC/B,KAAK,EAAE,6BAA6B,EACpC,UAAU,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,KAAK,IAAI,EACvE,OAAO,GAAE,sBAA2B,EACpC,MAAM,CAAC,EAAE,WAAW,EACpB,gBAAgB,GAAE,MAAW,GAC5B,OAAO,CAAC,GAAG,CAAC,CAiCd"}
@@ -1 +1 @@
1
- {"version":3,"file":"HFT_TextGeneration.d.ts","sourceRoot":"","sources":["../../../src/provider-hf-transformers/common/HFT_TextGeneration.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EACV,eAAe,EACf,kBAAkB,EAClB,uBAAuB,EACvB,wBAAwB,EACzB,MAAM,cAAc,CAAC;AAGtB,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,mBAAmB,CAAC;AASvE;;;GAGG;AACH,eAAO,MAAM,kBAAkB,EAAE,eAAe,CAC9C,uBAAuB,EACvB,wBAAwB,EACxB,6BAA6B,CA4B9B,CAAC;AAEF,eAAO,MAAM,yBAAyB,EAAE,kBAAkB,CACxD,uBAAuB,EACvB,wBAAwB,EACxB,6BAA6B,CAmB9B,CAAC"}
1
+ {"version":3,"file":"HFT_TextGeneration.d.ts","sourceRoot":"","sources":["../../../src/provider-hf-transformers/common/HFT_TextGeneration.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAOH,OAAO,KAAK,EACV,eAAe,EACf,kBAAkB,EAClB,uBAAuB,EACvB,wBAAwB,EACzB,MAAM,cAAc,CAAC;AAGtB,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,mBAAmB,CAAC;AASvE;;;GAGG;AACH,eAAO,MAAM,kBAAkB,EAAE,eAAe,CAC9C,uBAAuB,EACvB,wBAAwB,EACxB,6BAA6B,CAgC9B,CAAC;AAEF,eAAO,MAAM,yBAAyB,EAAE,kBAAkB,CACxD,uBAAuB,EACvB,wBAAwB,EACxB,6BAA6B,CAmB9B,CAAC"}
@@ -90,42 +90,53 @@ function wrapAbortableResponse(response, signal) {
90
90
  const contentLengthHeader = response.headers.get("content-length");
91
91
  const expectedSize = contentLengthHeader && /^\d+$/.test(contentLengthHeader) ? Number.parseInt(contentLengthHeader, 10) : undefined;
92
92
  const sourceBody = response.body;
93
+ let reader;
94
+ let abortHandler;
95
+ let loaded = 0;
96
+ const cleanup = () => {
97
+ if (abortHandler) {
98
+ signal.removeEventListener("abort", abortHandler);
99
+ abortHandler = undefined;
100
+ }
101
+ reader?.releaseLock();
102
+ };
93
103
  const body = new ReadableStream({
94
- async start(controller) {
95
- const reader = sourceBody.getReader();
96
- const abort = () => controller.error(createAbortError(signal));
97
- signal.addEventListener("abort", abort, { once: true });
98
- let loaded = 0;
104
+ start(controller) {
105
+ reader = sourceBody.getReader();
106
+ if (signal.aborted) {
107
+ controller.error(createAbortError(signal));
108
+ return;
109
+ }
110
+ abortHandler = () => controller.error(createAbortError(signal));
111
+ signal.addEventListener("abort", abortHandler, { once: true });
112
+ },
113
+ async pull(controller) {
99
114
  try {
100
- while (true) {
115
+ if (signal.aborted) {
116
+ throw createAbortError(signal);
117
+ }
118
+ const { done, value } = await reader.read();
119
+ if (done) {
101
120
  if (signal.aborted) {
102
121
  throw createAbortError(signal);
103
122
  }
104
- const { done, value } = await reader.read();
105
- if (done) {
106
- if (signal.aborted) {
107
- throw createAbortError(signal);
108
- }
109
- if (expectedSize !== undefined && loaded < expectedSize) {
110
- throw new Error(`Fetch ended before reading the full response body (${loaded}/${expectedSize} bytes)`);
111
- }
112
- controller.close();
113
- return;
123
+ if (expectedSize !== undefined && loaded < expectedSize) {
124
+ throw new Error(`Fetch ended before reading the full response body (${loaded}/${expectedSize} bytes)`);
114
125
  }
115
- loaded += value.length;
116
- controller.enqueue(value);
126
+ cleanup();
127
+ controller.close();
128
+ return;
117
129
  }
130
+ loaded += value.length;
131
+ controller.enqueue(value);
118
132
  } catch (error) {
133
+ cleanup();
119
134
  controller.error(error);
120
- } finally {
121
- signal.removeEventListener("abort", abort);
122
- reader.releaseLock();
123
135
  }
124
136
  },
125
- async cancel(reason) {
126
- try {
127
- await sourceBody.cancel(reason);
128
- } catch {}
137
+ cancel(reason) {
138
+ cleanup();
139
+ return sourceBody.cancel(reason);
129
140
  }
130
141
  });
131
142
  return new Response(body, {
@@ -145,7 +156,7 @@ function abortableFetch(url, options) {
145
156
  }
146
157
  }
147
158
  } catch {}
148
- const combinedSignal = combineAbortSignals(options.signal, modelSignal);
159
+ const combinedSignal = options?.signal ? combineAbortSignals(options.signal, modelSignal) : modelSignal;
149
160
  return fetch(url, { ...options, ...combinedSignal ? { signal: combinedSignal } : {} }).then((response) => wrapAbortableResponse(response, combinedSignal));
150
161
  }
151
162
  function clearPipelineCache() {
@@ -180,7 +191,9 @@ async function getPipeline(model, onProgress, options = {}, signal, progressScal
180
191
  }
181
192
  const inFlight = pipelineLoadPromises.get(cacheKey);
182
193
  if (inFlight) {
183
- await inFlight;
194
+ try {
195
+ await inFlight;
196
+ } catch {}
184
197
  const cached = pipelines.get(cacheKey);
185
198
  if (cached)
186
199
  return cached;
@@ -1244,8 +1257,11 @@ var HFT_TextGeneration = async (input, model, onProgress, signal) => {
1244
1257
  promptLength: input.prompt?.length
1245
1258
  });
1246
1259
  const streamer = createTextStreamer(generateText.tokenizer, onProgress, TextStreamer, signal);
1247
- let results = await generateText(input.prompt, {
1248
- streamer
1260
+ const messages = [{ role: "user", content: input.prompt }];
1261
+ let results = await generateText(messages, {
1262
+ streamer,
1263
+ do_sample: false,
1264
+ max_new_tokens: input.maxTokens ?? 4 * 1024
1249
1265
  });
1250
1266
  if (!Array.isArray(results)) {
1251
1267
  results = [results];
@@ -1717,4 +1733,4 @@ export {
1717
1733
  HFT_NULL_PROCESSOR_PREFIX
1718
1734
  };
1719
1735
 
1720
- //# debugId=E4863FB6D65AEC2D64756E2164756E21
1736
+ //# debugId=569221876AC5558564756E2164756E21
@@ -2,7 +2,7 @@
2
2
  "version": 3,
3
3
  "sources": ["../src/provider-hf-transformers/common/HFT_Pipeline.ts", "../src/provider-hf-transformers/common/HFT_Constants.ts", "../src/provider-hf-transformers/common/HFT_ModelSchema.ts", "../src/provider-hf-transformers/common/HFT_OnnxDtypes.ts", "../src/provider-hf-transformers/common/HFT_InlineLifecycle.ts", "../src/common/PipelineTaskMapping.ts", "../src/common/HfModelSearch.ts", "../src/provider-hf-transformers/common/HFT_ModelSearch.ts", "../src/provider-hf-transformers/common/HFT_ImageHelpers.ts", "../src/provider-hf-transformers/common/HFT_BackgroundRemoval.ts", "../src/provider-hf-transformers/common/HFT_CountTokens.ts", "../src/provider-hf-transformers/common/HFT_Download.ts", "../src/provider-hf-transformers/common/HFT_ImageClassification.ts", "../src/provider-hf-transformers/common/HFT_ImageEmbedding.ts", "../src/provider-hf-transformers/common/HFT_ImageSegmentation.ts", "../src/provider-hf-transformers/common/HFT_ImageToText.ts", "../src/provider-hf-transformers/common/HFT_ModelInfo.ts", "../src/provider-hf-transformers/common/HFT_ObjectDetection.ts", "../src/provider-hf-transformers/common/HFT_StructuredGeneration.ts", "../src/provider-hf-transformers/common/HFT_Streaming.ts", "../src/provider-hf-transformers/common/HFT_TextOutput.ts", "../src/provider-hf-transformers/common/HFT_TextClassification.ts", "../src/provider-hf-transformers/common/HFT_TextEmbedding.ts", "../src/provider-hf-transformers/common/HFT_TextFillMask.ts", "../src/provider-hf-transformers/common/HFT_TextGeneration.ts", "../src/provider-hf-transformers/common/HFT_TextLanguageDetection.ts", "../src/provider-hf-transformers/common/HFT_TextNamedEntityRecognition.ts", "../src/provider-hf-transformers/common/HFT_TextQuestionAnswer.ts", "../src/provider-hf-transformers/common/HFT_TextRewriter.ts", "../src/provider-hf-transformers/common/HFT_TextSummary.ts", "../src/provider-hf-transformers/common/HFT_TextTranslation.ts", "../src/provider-hf-transformers/common/HFT_Unload.ts", "../src/provider-hf-transformers/common/HFT_JobRunFns.ts", "../src/provider-hf-transformers/HuggingFaceTransformersQueuedProvider.ts", "../src/provider-hf-transformers/registerHuggingFaceTransformersInline.ts", "../src/provider-hf-transformers/registerHuggingFaceTransformersWorker.ts", "../src/provider-hf-transformers/HuggingFaceTransformersProvider.ts", "../src/provider-hf-transformers/runtime.ts"],
4
4
  "sourcesContent": [
5
- "/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { type PretrainedModelOptions, type ProgressInfo } from \"@huggingface/transformers\";\nimport { getLogger } from \"@workglow/util/worker\";\nimport type { HfTransformersOnnxModelConfig } from \"./HFT_ModelSchema\";\n\nlet _transformersSdk: typeof import(\"@huggingface/transformers\") | undefined;\nlet _cacheDir: string | undefined;\n\n/**\n * Set the filesystem cache directory for downloaded transformers.js models.\n * Must be called before any model is loaded.\n */\nexport function setHftCacheDir(dir: string): void {\n _cacheDir = dir;\n if (_transformersSdk) {\n _transformersSdk.env.cacheDir = dir;\n }\n}\n\nexport async function loadTransformersSDK() {\n if (!_transformersSdk) {\n try {\n _transformersSdk = await import(\"@huggingface/transformers\");\n _transformersSdk.env.fetch = abortableFetch as typeof fetch;\n if (_cacheDir) {\n _transformersSdk.env.cacheDir = _cacheDir;\n }\n } catch {\n throw new Error(\n \"@huggingface/transformers is required for HuggingFace Transformers tasks. Install it with: bun add @huggingface/transformers\"\n );\n }\n }\n return _transformersSdk;\n}\n\n/** Per-model AbortControllers used by abortableFetch; keyed by model_path. */\nconst modelAbortControllers = new Map<string, AbortController>();\n\nfunction combineAbortSignals(\n existingSignal: AbortSignal | null | undefined,\n modelSignal: AbortSignal | undefined\n): AbortSignal | undefined {\n if (!existingSignal) {\n return modelSignal;\n }\n if (!modelSignal) {\n return existingSignal;\n }\n if (existingSignal.aborted || modelSignal.aborted) {\n return AbortSignal.abort(existingSignal.reason ?? modelSignal.reason);\n }\n if (typeof AbortSignal.any === \"function\") {\n return AbortSignal.any([existingSignal, modelSignal]);\n }\n\n const controller = new AbortController();\n const abort = (event: Event) => {\n const signal = event.target as AbortSignal;\n controller.abort(signal.reason);\n };\n existingSignal.addEventListener(\"abort\", abort, { once: true });\n modelSignal.addEventListener(\"abort\", abort, { once: true });\n return controller.signal;\n}\n\nfunction createAbortError(signal: AbortSignal): Error {\n const reason = signal.reason;\n if (reason instanceof Error) {\n return reason;\n }\n return new Error(String(reason ?? \"Fetch aborted\"));\n}\n\nfunction wrapAbortableResponse(response: Response, signal: AbortSignal | undefined): Response {\n if (!signal || !response.body) {\n return response;\n }\n\n const contentLengthHeader = response.headers.get(\"content-length\");\n const expectedSize =\n contentLengthHeader && /^\\d+$/.test(contentLengthHeader)\n ? Number.parseInt(contentLengthHeader, 10)\n : undefined;\n const sourceBody = response.body;\n\n const body = new ReadableStream<Uint8Array>({\n async start(controller) {\n const reader = sourceBody.getReader();\n const abort = () => controller.error(createAbortError(signal));\n signal.addEventListener(\"abort\", abort, { once: true });\n let loaded = 0;\n\n try {\n while (true) {\n if (signal.aborted) {\n throw createAbortError(signal);\n }\n\n const { done, value } = await reader.read();\n if (done) {\n if (signal.aborted) {\n throw createAbortError(signal);\n }\n if (expectedSize !== undefined && loaded < expectedSize) {\n throw new Error(\n `Fetch ended before reading the full response body (${loaded}/${expectedSize} bytes)`\n );\n }\n controller.close();\n return;\n }\n\n loaded += value.length;\n controller.enqueue(value);\n }\n } catch (error) {\n controller.error(error);\n } finally {\n signal.removeEventListener(\"abort\", abort);\n reader.releaseLock();\n }\n },\n async cancel(reason) {\n try {\n await sourceBody.cancel(reason);\n } catch {\n // Ignore downstream cancellation errors.\n }\n },\n });\n\n return new Response(body, {\n headers: new Headers(response.headers),\n status: response.status,\n statusText: response.statusText,\n });\n}\n\nfunction abortableFetch(url: string, options: RequestInit): Promise<Response> {\n let modelSignal: AbortSignal | undefined;\n try {\n const pathname = new URL(url).pathname;\n for (const [modelPath, controller] of modelAbortControllers) {\n if (pathname.includes(`/${modelPath}/`)) {\n modelSignal = controller.signal;\n break;\n }\n }\n } catch {\n /* not a parseable URL, proceed without abort */\n }\n const combinedSignal = combineAbortSignals(options.signal, modelSignal);\n return fetch(url, { ...options, ...(combinedSignal ? { signal: combinedSignal } : {}) }).then(\n (response) => wrapAbortableResponse(response, combinedSignal)\n );\n}\n\nconst pipelines = new Map<string, any>();\n\n/** In-flight pipeline loads by cache key. Ensures only one load per model at a time to avoid corrupt ONNX files (Protobuf parsing failed). */\nconst pipelineLoadPromises = new Map<string, Promise<any>>();\n\n/**\n * Vision/image pipeline types that require an image processor to be loaded.\n * If the processor is null after pipeline creation the model cache is incomplete\n * (e.g. `preprocessor_config.json` was not downloaded) and the load should be\n * treated as a retriable failure so the missing files are re-fetched.\n */\nconst IMAGE_PIPELINE_TYPES = new Set([\n \"image-classification\",\n \"image-segmentation\",\n \"object-detection\",\n \"image-to-text\",\n \"image-feature-extraction\",\n \"zero-shot-image-classification\",\n \"depth-estimation\",\n \"mask-generation\",\n]);\n\n/**\n * Error message prefix used when an image pipeline's processor failed to\n * initialize (null processor after load). The prefix is checked in\n * `AiJob.classifyProviderError()` to produce a `RetryableJobError` so the\n * queue re-downloads missing processor config files.\n */\nexport const HFT_NULL_PROCESSOR_PREFIX = \"HFT_NULL_PROCESSOR:\";\n\n/**\n * Clear all cached pipelines\n */\nexport function clearPipelineCache(): void {\n pipelines.clear();\n}\n\nexport function hasCachedPipeline(cacheKey: string): boolean {\n return pipelines.has(cacheKey);\n}\n\nexport function removeCachedPipeline(cacheKey: string): boolean {\n return pipelines.delete(cacheKey);\n}\n\n/** True when running in a browser or Web Worker. Transformers.js only accepts device \"wasm\" or \"webgpu\" in the browser build. */\nfunction isBrowserEnv(): boolean {\n if (typeof globalThis === \"undefined\") return false;\n // Main thread\n if (typeof (globalThis as any).window !== \"undefined\") return true;\n // Web Worker (has self but no window)\n if (typeof (globalThis as any).WorkerGlobalScope !== \"undefined\") return true;\n return false;\n}\n\n/**\n * Generate a cache key for a pipeline that includes all configuration options\n * that affect pipeline creation (model_path, pipeline, dtype, device)\n */\nexport function getPipelineCacheKey(model: HfTransformersOnnxModelConfig): string {\n const dtype = model.provider_config.dtype || \"\";\n const device = model.provider_config.device || \"\";\n const revision = model.provider_config.revision || \"main\";\n return `${model.provider_config.model_path}:${model.provider_config.pipeline}:${dtype}:${device}:${revision}`;\n}\n\n/**\n * Helper function to get a pipeline for a model\n * @param progressScaleMax - Maximum progress value for download phase (100 for download-only, 10 for download+run)\n *\n * Explicit `Promise<any>` return avoids TS2883 (inferred type not portable across package boundaries).\n */\nexport async function getPipeline(\n model: HfTransformersOnnxModelConfig,\n onProgress: (progress: number, message?: string, details?: any) => void,\n options: PretrainedModelOptions = {},\n signal?: AbortSignal,\n progressScaleMax: number = 10\n): Promise<any> {\n const cacheKey = getPipelineCacheKey(model);\n if (pipelines.has(cacheKey)) {\n getLogger().debug(\"HFT pipeline cache hit\", { cacheKey });\n return pipelines.get(cacheKey);\n }\n\n // Output[number]-flight: only one load per model at a time to avoid concurrent writes to the same\n // ONNX cache path (which can yield \"Protobuf parsing failed\" when one process reads while another writes).\n const inFlight = pipelineLoadPromises.get(cacheKey);\n if (inFlight) {\n await inFlight;\n const cached = pipelines.get(cacheKey);\n if (cached) return cached;\n // Load failed for the other caller; fall through to retry (we remove from map in finally).\n }\n\n const loadPromise = doGetPipeline(\n model,\n onProgress,\n options,\n progressScaleMax,\n cacheKey,\n signal\n ).finally(() => {\n pipelineLoadPromises.delete(cacheKey);\n });\n pipelineLoadPromises.set(cacheKey, loadPromise);\n return loadPromise;\n}\n\nconst doGetPipeline = async (\n model: HfTransformersOnnxModelConfig,\n onProgress: (progress: number, message?: string, details?: any) => void,\n options: PretrainedModelOptions,\n progressScaleMax: number,\n cacheKey: string,\n signal?: AbortSignal\n) => {\n // Throttle state for progress events\n let lastProgressTime = 0;\n type FilesByteMap = Record<string, { loaded: number; total: number }>;\n let pendingProgress: {\n progress: number;\n file: string;\n fileProgress: number;\n filesMap?: FilesByteMap;\n } | null = null;\n let throttleTimer: ReturnType<typeof setTimeout> | null = null;\n const THROTTLE_MS = 160;\n\n const buildProgressDetails = (\n file: string,\n fileProgress: number,\n filesMap?: FilesByteMap\n ): { file: string; progress: number; files?: FilesByteMap } => {\n const details: { file: string; progress: number; files?: FilesByteMap } = {\n file,\n progress: fileProgress,\n };\n if (filesMap && Object.keys(filesMap).length > 0) {\n details.files = filesMap;\n }\n return details;\n };\n\n /**\n * Sends a progress event, throttled to avoid flooding the worker channel.\n * Always sends first event and final (>=progressScaleMax) immediately.\n */\n const sendProgress = (\n progress: number,\n file: string,\n fileProgress: number,\n filesMap?: FilesByteMap\n ): void => {\n const now = Date.now();\n const timeSinceLastEvent = now - lastProgressTime;\n const isFirst = lastProgressTime === 0;\n const isFinal = progress >= progressScaleMax;\n\n if (isFirst || isFinal) {\n if (throttleTimer) {\n clearTimeout(throttleTimer);\n throttleTimer = null;\n }\n pendingProgress = null;\n onProgress(\n Math.round(progress),\n \"Downloading model\",\n buildProgressDetails(file, fileProgress, filesMap)\n );\n lastProgressTime = now;\n return;\n }\n\n if (timeSinceLastEvent < THROTTLE_MS) {\n pendingProgress = { progress, file, fileProgress, filesMap };\n if (!throttleTimer) {\n const timeRemaining = Math.max(1, THROTTLE_MS - timeSinceLastEvent);\n throttleTimer = setTimeout(() => {\n throttleTimer = null;\n if (pendingProgress) {\n const p = pendingProgress;\n onProgress(\n Math.round(p.progress),\n \"Downloading model\",\n buildProgressDetails(p.file, p.fileProgress, p.filesMap)\n );\n lastProgressTime = Date.now();\n pendingProgress = null;\n }\n }, timeRemaining);\n }\n return;\n }\n\n onProgress(\n Math.round(progress),\n \"Downloading model\",\n buildProgressDetails(file, fileProgress, filesMap)\n );\n lastProgressTime = now;\n pendingProgress = null;\n };\n\n // Get the abort signal from the signal parameter\n const abortSignal = signal;\n\n // Register a per-model AbortController so abortableFetch can cancel in-flight fetches\n const modelPath = model.provider_config.model_path;\n const modelController = new AbortController();\n modelAbortControllers.set(modelPath, modelController);\n if (abortSignal) {\n if (abortSignal.aborted) {\n modelController.abort();\n } else {\n abortSignal.addEventListener(\"abort\", () => modelController.abort(), { once: true });\n }\n }\n\n // Use aggregate progress_total event from @huggingface/transformers v4 pipeline()\n const progressCallback = (status: ProgressInfo) => {\n if (abortSignal?.aborted) return;\n\n if ((status as any).status === \"progress_total\") {\n const totalStatus = status as any;\n const scaledProgress = (totalStatus.progress * progressScaleMax) / 100;\n\n // Find the currently active file (one still downloading)\n let activeFile = \"\";\n let activeFileProgress = 0;\n const files: Record<string, { loaded: number; total: number }> | undefined =\n totalStatus.files;\n if (files) {\n for (const [file, info] of Object.entries(files)) {\n if (info.loaded < info.total) {\n activeFile = file;\n activeFileProgress = info.total > 0 ? (info.loaded / info.total) * 100 : 0;\n break;\n }\n }\n if (!activeFile) {\n const fileNames = Object.keys(files);\n if (fileNames.length > 0) {\n activeFile = fileNames[fileNames.length - 1];\n activeFileProgress = 100;\n }\n }\n }\n\n sendProgress(scaledProgress, activeFile, activeFileProgress, files);\n }\n };\n\n let device = model.provider_config.device as string | undefined;\n if (isBrowserEnv()) {\n // we must make a choice for the device in the browser\n if (device === \"gpu\") {\n device = \"webgpu\";\n }\n if (device === \"cpu\") {\n device = \"wasm\";\n }\n if (device !== \"wasm\" && device !== \"webgpu\") {\n device = \"wasm\";\n }\n } else {\n // we can trust the lib to make a choice for the device on the server\n if (device === \"wasm\" || device === \"webgpu\") {\n device = undefined;\n }\n }\n\n const dtype = model.provider_config.dtype || \"\";\n const pipelineOptions: PretrainedModelOptions = {\n revision: model.provider_config.revision || \"main\",\n ...(model.provider_config.use_external_data_format\n ? { useExternalDataFormat: model.provider_config.use_external_data_format }\n : {}),\n ...(dtype ? { dtype: dtype as any } : {}),\n ...(device ? { device: device as any } : {}),\n ...options,\n progress_callback: progressCallback,\n };\n\n // Check if already aborted before starting\n if (abortSignal?.aborted) {\n modelAbortControllers.delete(modelPath);\n throw new Error(\"Operation aborted before pipeline creation\");\n }\n\n const pipelineType = model.provider_config.pipeline;\n\n const { pipeline } = await loadTransformersSDK();\n\n const logger = getLogger();\n const pipelineTimerLabel = `hft:pipeline:${cacheKey}`;\n logger.time(pipelineTimerLabel, { pipelineType, modelPath });\n\n try {\n const result = await pipeline(pipelineType, model.provider_config.model_path, pipelineOptions);\n\n // Flush pending throttled progress and clean up timer\n if (throttleTimer) {\n clearTimeout(throttleTimer);\n throttleTimer = null;\n }\n // pendingProgress may have been set by progressCallback during the pipeline() await\n const finalPending = pendingProgress as {\n progress: number;\n file: string;\n fileProgress: number;\n filesMap?: FilesByteMap;\n } | null;\n if (finalPending) {\n onProgress(\n Math.round(finalPending.progress),\n \"Downloading model\",\n buildProgressDetails(finalPending.file, finalPending.fileProgress, finalPending.filesMap)\n );\n pendingProgress = null;\n }\n\n // Check if aborted after pipeline creation\n if (abortSignal?.aborted) {\n logger.timeEnd(pipelineTimerLabel, { status: \"aborted\" });\n throw new Error(\"Operation aborted after pipeline creation\");\n }\n\n // For image/vision pipelines the processor must be initialized. A null processor\n // means the model cache is incomplete (e.g. preprocessor_config.json was not\n // downloaded, likely because a previous download was aborted). Throw a specific\n // error so the job queue can retry and re-fetch the missing files.\n if (IMAGE_PIPELINE_TYPES.has(pipelineType) && (result as any).processor == null) {\n throw new Error(\n `${HFT_NULL_PROCESSOR_PREFIX} Image processor not initialized for ` +\n `${pipelineType}/${modelPath}. Model cache may be incomplete.`\n );\n }\n\n logger.timeEnd(pipelineTimerLabel, { status: \"loaded\" });\n pipelines.set(cacheKey, result);\n return result;\n } catch (error: any) {\n logger.timeEnd(pipelineTimerLabel, { status: \"error\", error: String(error) });\n // If aborted, throw a clean abort error rather than internal stream errors.\n // Preserve processor-initialization errors so they propagate with their original message.\n if (\n !error?.message?.startsWith(HFT_NULL_PROCESSOR_PREFIX) &&\n (abortSignal?.aborted || modelController.signal.aborted)\n ) {\n throw new Error(\"Pipeline download aborted\");\n }\n throw error;\n } finally {\n modelAbortControllers.delete(modelPath);\n const { random } = await loadTransformersSDK();\n random.seed(model.provider_config.seed ?? undefined);\n }\n};\n",
5
+ "/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { type PretrainedModelOptions, type ProgressInfo } from \"@huggingface/transformers\";\nimport { getLogger } from \"@workglow/util/worker\";\nimport type { HfTransformersOnnxModelConfig } from \"./HFT_ModelSchema\";\n\nlet _transformersSdk: typeof import(\"@huggingface/transformers\") | undefined;\nlet _cacheDir: string | undefined;\n\n/**\n * Set the filesystem cache directory for downloaded transformers.js models.\n * Must be called before any model is loaded.\n */\nexport function setHftCacheDir(dir: string): void {\n _cacheDir = dir;\n if (_transformersSdk) {\n _transformersSdk.env.cacheDir = dir;\n }\n}\n\nexport async function loadTransformersSDK() {\n if (!_transformersSdk) {\n try {\n _transformersSdk = await import(\"@huggingface/transformers\");\n _transformersSdk.env.fetch = abortableFetch as typeof fetch;\n if (_cacheDir) {\n _transformersSdk.env.cacheDir = _cacheDir;\n }\n } catch {\n throw new Error(\n \"@huggingface/transformers is required for HuggingFace Transformers tasks. Install it with: bun add @huggingface/transformers\"\n );\n }\n }\n return _transformersSdk;\n}\n\n/** Per-model AbortControllers used by abortableFetch; keyed by model_path. */\nconst modelAbortControllers = new Map<string, AbortController>();\n\nfunction combineAbortSignals(\n existingSignal: AbortSignal | null | undefined,\n modelSignal: AbortSignal | undefined\n): AbortSignal | undefined {\n if (!existingSignal) {\n return modelSignal;\n }\n if (!modelSignal) {\n return existingSignal;\n }\n if (existingSignal.aborted || modelSignal.aborted) {\n return AbortSignal.abort(existingSignal.reason ?? modelSignal.reason);\n }\n if (typeof AbortSignal.any === \"function\") {\n return AbortSignal.any([existingSignal, modelSignal]);\n }\n\n const controller = new AbortController();\n const abort = (event: Event) => {\n const signal = event.target as AbortSignal;\n controller.abort(signal.reason);\n };\n existingSignal.addEventListener(\"abort\", abort, { once: true });\n modelSignal.addEventListener(\"abort\", abort, { once: true });\n return controller.signal;\n}\n\nfunction createAbortError(signal: AbortSignal): Error {\n const reason = signal.reason;\n if (reason instanceof Error) {\n return reason;\n }\n return new Error(String(reason ?? \"Fetch aborted\"));\n}\n\nfunction wrapAbortableResponse(response: Response, signal: AbortSignal | undefined): Response {\n if (!signal || !response.body) {\n return response;\n }\n\n const contentLengthHeader = response.headers.get(\"content-length\");\n const expectedSize =\n contentLengthHeader && /^\\d+$/.test(contentLengthHeader)\n ? Number.parseInt(contentLengthHeader, 10)\n : undefined;\n const sourceBody = response.body;\n\n // Use pull-based reading to maintain backpressure. The previous start()-based\n // loop eagerly drained the source into the internal queue without waiting for\n // the consumer, which could buffer the entire response body in memory — a\n // problem for large model files (hundreds of MB to several GB).\n let reader: ReadableStreamDefaultReader<Uint8Array>;\n let abortHandler: (() => void) | undefined;\n let loaded = 0;\n\n const cleanup = () => {\n if (abortHandler) {\n signal.removeEventListener(\"abort\", abortHandler);\n abortHandler = undefined;\n }\n reader?.releaseLock();\n };\n\n const body = new ReadableStream<Uint8Array>({\n start(controller) {\n reader = sourceBody.getReader();\n if (signal.aborted) {\n controller.error(createAbortError(signal));\n return;\n }\n abortHandler = () => controller.error(createAbortError(signal));\n signal.addEventListener(\"abort\", abortHandler, { once: true });\n },\n async pull(controller) {\n try {\n if (signal.aborted) {\n throw createAbortError(signal);\n }\n\n const { done, value } = await reader.read();\n if (done) {\n if (signal.aborted) {\n throw createAbortError(signal);\n }\n if (expectedSize !== undefined && loaded < expectedSize) {\n throw new Error(\n `Fetch ended before reading the full response body (${loaded}/${expectedSize} bytes)`\n );\n }\n cleanup();\n controller.close();\n return;\n }\n\n loaded += value.length;\n controller.enqueue(value);\n } catch (error) {\n cleanup();\n controller.error(error);\n }\n },\n cancel(reason) {\n cleanup();\n return sourceBody.cancel(reason);\n },\n });\n\n return new Response(body, {\n headers: new Headers(response.headers),\n status: response.status,\n statusText: response.statusText,\n });\n}\n\nfunction abortableFetch(url: string, options?: RequestInit): Promise<Response> {\n let modelSignal: AbortSignal | undefined;\n try {\n const pathname = new URL(url).pathname;\n for (const [modelPath, controller] of modelAbortControllers) {\n if (pathname.includes(`/${modelPath}/`)) {\n modelSignal = controller.signal;\n break;\n }\n }\n } catch {\n /* not a parseable URL, proceed without abort */\n }\n const combinedSignal = options?.signal\n ? combineAbortSignals(options.signal, modelSignal)\n : modelSignal;\n return fetch(url, { ...options, ...(combinedSignal ? { signal: combinedSignal } : {}) }).then(\n (response) => wrapAbortableResponse(response, combinedSignal)\n );\n}\n\nconst pipelines = new Map<string, any>();\n\n/** In-flight pipeline loads by cache key. Ensures only one load per model at a time to avoid corrupt ONNX files (Protobuf parsing failed). */\nconst pipelineLoadPromises = new Map<string, Promise<any>>();\n\n/**\n * Vision/image pipeline types that require an image processor to be loaded.\n * If the processor is null after pipeline creation the model cache is incomplete\n * (e.g. `preprocessor_config.json` was not downloaded) and the load should be\n * treated as a retriable failure so the missing files are re-fetched.\n */\nconst IMAGE_PIPELINE_TYPES = new Set([\n \"image-classification\",\n \"image-segmentation\",\n \"object-detection\",\n \"image-to-text\",\n \"image-feature-extraction\",\n \"zero-shot-image-classification\",\n \"depth-estimation\",\n \"mask-generation\",\n]);\n\n/**\n * Error message prefix used when an image pipeline's processor failed to\n * initialize (null processor after load). The prefix is checked in\n * `AiJob.classifyProviderError()` to produce a `RetryableJobError` so the\n * queue re-downloads missing processor config files.\n */\nexport const HFT_NULL_PROCESSOR_PREFIX = \"HFT_NULL_PROCESSOR:\";\n\n/**\n * Clear all cached pipelines\n */\nexport function clearPipelineCache(): void {\n pipelines.clear();\n}\n\nexport function hasCachedPipeline(cacheKey: string): boolean {\n return pipelines.has(cacheKey);\n}\n\nexport function removeCachedPipeline(cacheKey: string): boolean {\n return pipelines.delete(cacheKey);\n}\n\n/** True when running in a browser or Web Worker. Transformers.js only accepts device \"wasm\" or \"webgpu\" in the browser build. */\nfunction isBrowserEnv(): boolean {\n if (typeof globalThis === \"undefined\") return false;\n // Main thread\n if (typeof (globalThis as any).window !== \"undefined\") return true;\n // Web Worker (has self but no window)\n if (typeof (globalThis as any).WorkerGlobalScope !== \"undefined\") return true;\n return false;\n}\n\n/**\n * Generate a cache key for a pipeline that includes all configuration options\n * that affect pipeline creation (model_path, pipeline, dtype, device)\n */\nexport function getPipelineCacheKey(model: HfTransformersOnnxModelConfig): string {\n const dtype = model.provider_config.dtype || \"\";\n const device = model.provider_config.device || \"\";\n const revision = model.provider_config.revision || \"main\";\n return `${model.provider_config.model_path}:${model.provider_config.pipeline}:${dtype}:${device}:${revision}`;\n}\n\n/**\n * Helper function to get a pipeline for a model\n * @param progressScaleMax - Maximum progress value for download phase (100 for download-only, 10 for download+run)\n *\n * Explicit `Promise<any>` return avoids TS2883 (inferred type not portable across package boundaries).\n */\nexport async function getPipeline(\n model: HfTransformersOnnxModelConfig,\n onProgress: (progress: number, message?: string, details?: any) => void,\n options: PretrainedModelOptions = {},\n signal?: AbortSignal,\n progressScaleMax: number = 10\n): Promise<any> {\n const cacheKey = getPipelineCacheKey(model);\n if (pipelines.has(cacheKey)) {\n getLogger().debug(\"HFT pipeline cache hit\", { cacheKey });\n return pipelines.get(cacheKey);\n }\n\n // In-flight: only one load per model at a time to avoid concurrent writes to the same\n // ONNX cache path (which can yield \"Protobuf parsing failed\" when one process reads while another writes).\n const inFlight = pipelineLoadPromises.get(cacheKey);\n if (inFlight) {\n try {\n await inFlight;\n } catch {\n // First load failed (e.g. aborted) — fall through to retry below.\n }\n const cached = pipelines.get(cacheKey);\n if (cached) return cached;\n // Load failed for the other caller; fall through to retry (we remove from map in finally).\n }\n\n const loadPromise = doGetPipeline(\n model,\n onProgress,\n options,\n progressScaleMax,\n cacheKey,\n signal\n ).finally(() => {\n pipelineLoadPromises.delete(cacheKey);\n });\n pipelineLoadPromises.set(cacheKey, loadPromise);\n return loadPromise;\n}\n\nconst doGetPipeline = async (\n model: HfTransformersOnnxModelConfig,\n onProgress: (progress: number, message?: string, details?: any) => void,\n options: PretrainedModelOptions,\n progressScaleMax: number,\n cacheKey: string,\n signal?: AbortSignal\n) => {\n // Throttle state for progress events\n let lastProgressTime = 0;\n type FilesByteMap = Record<string, { loaded: number; total: number }>;\n let pendingProgress: {\n progress: number;\n file: string;\n fileProgress: number;\n filesMap?: FilesByteMap;\n } | null = null;\n let throttleTimer: ReturnType<typeof setTimeout> | null = null;\n const THROTTLE_MS = 160;\n\n const buildProgressDetails = (\n file: string,\n fileProgress: number,\n filesMap?: FilesByteMap\n ): { file: string; progress: number; files?: FilesByteMap } => {\n const details: { file: string; progress: number; files?: FilesByteMap } = {\n file,\n progress: fileProgress,\n };\n if (filesMap && Object.keys(filesMap).length > 0) {\n details.files = filesMap;\n }\n return details;\n };\n\n /**\n * Sends a progress event, throttled to avoid flooding the worker channel.\n * Always sends first event and final (>=progressScaleMax) immediately.\n */\n const sendProgress = (\n progress: number,\n file: string,\n fileProgress: number,\n filesMap?: FilesByteMap\n ): void => {\n const now = Date.now();\n const timeSinceLastEvent = now - lastProgressTime;\n const isFirst = lastProgressTime === 0;\n const isFinal = progress >= progressScaleMax;\n\n if (isFirst || isFinal) {\n if (throttleTimer) {\n clearTimeout(throttleTimer);\n throttleTimer = null;\n }\n pendingProgress = null;\n onProgress(\n Math.round(progress),\n \"Downloading model\",\n buildProgressDetails(file, fileProgress, filesMap)\n );\n lastProgressTime = now;\n return;\n }\n\n if (timeSinceLastEvent < THROTTLE_MS) {\n pendingProgress = { progress, file, fileProgress, filesMap };\n if (!throttleTimer) {\n const timeRemaining = Math.max(1, THROTTLE_MS - timeSinceLastEvent);\n throttleTimer = setTimeout(() => {\n throttleTimer = null;\n if (pendingProgress) {\n const p = pendingProgress;\n onProgress(\n Math.round(p.progress),\n \"Downloading model\",\n buildProgressDetails(p.file, p.fileProgress, p.filesMap)\n );\n lastProgressTime = Date.now();\n pendingProgress = null;\n }\n }, timeRemaining);\n }\n return;\n }\n\n onProgress(\n Math.round(progress),\n \"Downloading model\",\n buildProgressDetails(file, fileProgress, filesMap)\n );\n lastProgressTime = now;\n pendingProgress = null;\n };\n\n // Get the abort signal from the signal parameter\n const abortSignal = signal;\n\n // Register a per-model AbortController so abortableFetch can cancel in-flight fetches\n const modelPath = model.provider_config.model_path;\n const modelController = new AbortController();\n modelAbortControllers.set(modelPath, modelController);\n if (abortSignal) {\n if (abortSignal.aborted) {\n modelController.abort();\n } else {\n abortSignal.addEventListener(\"abort\", () => modelController.abort(), { once: true });\n }\n }\n\n // Use aggregate progress_total event from @huggingface/transformers v4 pipeline()\n const progressCallback = (status: ProgressInfo) => {\n if (abortSignal?.aborted) return;\n\n if ((status as any).status === \"progress_total\") {\n const totalStatus = status as any;\n const scaledProgress = (totalStatus.progress * progressScaleMax) / 100;\n\n // Find the currently active file (one still downloading)\n let activeFile = \"\";\n let activeFileProgress = 0;\n const files: Record<string, { loaded: number; total: number }> | undefined =\n totalStatus.files;\n if (files) {\n for (const [file, info] of Object.entries(files)) {\n if (info.loaded < info.total) {\n activeFile = file;\n activeFileProgress = info.total > 0 ? (info.loaded / info.total) * 100 : 0;\n break;\n }\n }\n if (!activeFile) {\n const fileNames = Object.keys(files);\n if (fileNames.length > 0) {\n activeFile = fileNames[fileNames.length - 1];\n activeFileProgress = 100;\n }\n }\n }\n\n sendProgress(scaledProgress, activeFile, activeFileProgress, files);\n }\n };\n\n let device = model.provider_config.device as string | undefined;\n if (isBrowserEnv()) {\n // we must make a choice for the device in the browser\n if (device === \"gpu\") {\n device = \"webgpu\";\n }\n if (device === \"cpu\") {\n device = \"wasm\";\n }\n if (device !== \"wasm\" && device !== \"webgpu\") {\n device = \"wasm\";\n }\n } else {\n // we can trust the lib to make a choice for the device on the server\n if (device === \"wasm\" || device === \"webgpu\") {\n device = undefined;\n }\n }\n\n const dtype = model.provider_config.dtype || \"\";\n const pipelineOptions: PretrainedModelOptions = {\n revision: model.provider_config.revision || \"main\",\n ...(model.provider_config.use_external_data_format\n ? { useExternalDataFormat: model.provider_config.use_external_data_format }\n : {}),\n ...(dtype ? { dtype: dtype as any } : {}),\n ...(device ? { device: device as any } : {}),\n ...options,\n progress_callback: progressCallback,\n };\n\n // Check if already aborted before starting\n if (abortSignal?.aborted) {\n modelAbortControllers.delete(modelPath);\n throw new Error(\"Operation aborted before pipeline creation\");\n }\n\n const pipelineType = model.provider_config.pipeline;\n\n const { pipeline } = await loadTransformersSDK();\n\n const logger = getLogger();\n const pipelineTimerLabel = `hft:pipeline:${cacheKey}`;\n logger.time(pipelineTimerLabel, { pipelineType, modelPath });\n\n try {\n const result = await pipeline(pipelineType, model.provider_config.model_path, pipelineOptions);\n\n // Flush pending throttled progress and clean up timer\n if (throttleTimer) {\n clearTimeout(throttleTimer);\n throttleTimer = null;\n }\n // pendingProgress may have been set by progressCallback during the pipeline() await\n const finalPending = pendingProgress as {\n progress: number;\n file: string;\n fileProgress: number;\n filesMap?: FilesByteMap;\n } | null;\n if (finalPending) {\n onProgress(\n Math.round(finalPending.progress),\n \"Downloading model\",\n buildProgressDetails(finalPending.file, finalPending.fileProgress, finalPending.filesMap)\n );\n pendingProgress = null;\n }\n\n // Check if aborted after pipeline creation\n if (abortSignal?.aborted) {\n logger.timeEnd(pipelineTimerLabel, { status: \"aborted\" });\n throw new Error(\"Operation aborted after pipeline creation\");\n }\n\n // For image/vision pipelines the processor must be initialized. A null processor\n // means the model cache is incomplete (e.g. preprocessor_config.json was not\n // downloaded, likely because a previous download was aborted). Throw a specific\n // error so the job queue can retry and re-fetch the missing files.\n if (IMAGE_PIPELINE_TYPES.has(pipelineType) && (result as any).processor == null) {\n throw new Error(\n `${HFT_NULL_PROCESSOR_PREFIX} Image processor not initialized for ` +\n `${pipelineType}/${modelPath}. Model cache may be incomplete.`\n );\n }\n\n logger.timeEnd(pipelineTimerLabel, { status: \"loaded\" });\n pipelines.set(cacheKey, result);\n return result;\n } catch (error: any) {\n logger.timeEnd(pipelineTimerLabel, { status: \"error\", error: String(error) });\n // If aborted, throw a clean abort error rather than internal stream errors.\n // Preserve processor-initialization errors so they propagate with their original message.\n if (\n !error?.message?.startsWith(HFT_NULL_PROCESSOR_PREFIX) &&\n (abortSignal?.aborted || modelController.signal.aborted)\n ) {\n throw new Error(\"Pipeline download aborted\");\n }\n throw error;\n } finally {\n modelAbortControllers.delete(modelPath);\n const { random } = await loadTransformersSDK();\n random.seed(model.provider_config.seed ?? undefined);\n }\n};\n",
6
6
  "/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nexport const HF_TRANSFORMERS_ONNX = \"HF_TRANSFORMERS_ONNX\";\n/** Job queue for WebGPU/GPU/Metal HFT models (serialized, concurrency 1). */\nexport const HF_TRANSFORMERS_ONNX_GPU = `${HF_TRANSFORMERS_ONNX}_gpu`;\n/** Job queue for WASM/CPU HFT models. */\nexport const HF_TRANSFORMERS_ONNX_CPU = `${HF_TRANSFORMERS_ONNX}_cpu`;\nexport const HTF_CACHE_NAME = \"transformers-cache\";\n\nexport type QuantizationDataType =\n | \"auto\" // Auto-detect based on environment\n | \"fp32\"\n | \"fp16\"\n | \"q8\"\n | \"int8\"\n | \"uint8\"\n | \"q4\"\n | \"bnb4\"\n | \"q4f16\"; // fp16 model with int4 block weight quantization\n\nexport const QuantizationDataType = {\n auto: \"auto\",\n fp32: \"fp32\",\n fp16: \"fp16\",\n q8: \"q8\",\n int8: \"int8\",\n uint8: \"uint8\",\n q4: \"q4\",\n bnb4: \"bnb4\",\n q4f16: \"q4f16\",\n} as const satisfies Record<QuantizationDataType, QuantizationDataType>;\n\ntype TextPipelineUseCase =\n | \"fill-mask\" // https://huggingface.co/tasks/fill-mask\n | \"token-classification\" // https://huggingface.co/tasks/token-classification\n | \"text-generation\" // https://huggingface.co/tasks/text-generation#completion-generation-models\n | \"text2text-generation\" // https://huggingface.co/tasks/text-generation#text-to-text-generation-models\n | \"text-classification\" // https://huggingface.co/tasks/text-classification\n | \"summarization\" // https://huggingface.co/tasks/sentence-similarity\n | \"translation\" // https://huggingface.co/tasks/translation\n | \"feature-extraction\" // https://huggingface.co/tasks/feature-extraction\n | \"zero-shot-classification\" // https://huggingface.co/tasks/zero-shot-classification\n | \"question-answering\"; // https://huggingface.co/tasks/question-answering\n\nconst TextPipelineUseCase = {\n \"fill-mask\": \"fill-mask\",\n \"token-classification\": \"token-classification\",\n \"text-generation\": \"text-generation\",\n \"text2text-generation\": \"text2text-generation\",\n \"text-classification\": \"text-classification\",\n summarization: \"summarization\",\n translation: \"translation\",\n \"feature-extraction\": \"feature-extraction\",\n \"zero-shot-classification\": \"zero-shot-classification\",\n \"question-answering\": \"question-answering\",\n} as const satisfies Record<TextPipelineUseCase, TextPipelineUseCase>;\n\ntype VisionPipelineUseCase =\n | \"background-removal\" // https://huggingface.co/tasks/image-segmentation#background-removal\n | \"image-segmentation\" // https://huggingface.co/tasks/image-segmentation\n | \"depth-estimation\" // https://huggingface.co/tasks/depth-estimation\n | \"image-classification\" // https://huggingface.co/tasks/image-classification\n | \"image-to-image\" // https://huggingface.co/tasks/image-to-image\n // | \"text-to-image\" // https://huggingface.co/tasks/text-to-image\n | \"image-to-text\" // https://huggingface.co/tasks/image-to-text\n // | \"image-text-to-text\" // https://huggingface.co/tasks/image-text-to-text\n | \"object-detection\" // https://huggingface.co/tasks/object-detection\n | \"image-feature-extraction\"; // https://huggingface.co/tasks/image-feature-extraction\n\nconst VisionPipelineUseCase = {\n \"background-removal\": \"background-removal\",\n \"image-segmentation\": \"image-segmentation\",\n \"depth-estimation\": \"depth-estimation\",\n \"image-classification\": \"image-classification\",\n \"image-to-image\": \"image-to-image\",\n // \"text-to-image\": \"text-to-image\",\n \"image-to-text\": \"image-to-text\",\n // \"image-text-to-text\": \"image-text-to-text\",\n \"object-detection\": \"object-detection\",\n \"image-feature-extraction\": \"image-feature-extraction\",\n} as const satisfies Record<VisionPipelineUseCase, VisionPipelineUseCase>;\n\ntype AudioPipelineUseCase =\n | \"audio-classification\" // https://huggingface.co/tasks/audio-classification\n | \"automatic-speech-recognition\" // https://huggingface.co/tasks/automatic-speech-recognition\n | \"text-to-speech\"; // https://huggingface.co/tasks/text-to-speech\n\nconst AudioPipelineUseCase = {\n \"audio-classification\": \"audio-classification\",\n \"automatic-speech-recognition\": \"automatic-speech-recognition\",\n \"text-to-speech\": \"text-to-speech\",\n} as const satisfies Record<AudioPipelineUseCase, AudioPipelineUseCase>;\n\ntype MultimodalPipelineUseCase =\n | \"document-question-answering\" // https://huggingface.co/tasks/document-question-answering\n | \"image-to-text\" // https://huggingface.co/tasks/image-to-text\n | \"zero-shot-audio-classification\" // https://huggingface.co/tasks/zero-shot-audio-classification\n | \"zero-shot-image-classification\" // https://huggingface.co/tasks/zero-shot-image-classification\n | \"zero-shot-object-detection\"; // https://huggingface.co/tasks/zero-shot-object-detection\n\nconst MultimodalPipelineUseCase = {\n \"document-question-answering\": \"document-question-answering\",\n \"image-to-text\": \"image-to-text\",\n \"zero-shot-audio-classification\": \"zero-shot-audio-classification\",\n \"zero-shot-image-classification\": \"zero-shot-image-classification\",\n \"zero-shot-object-detection\": \"zero-shot-object-detection\",\n} as const satisfies Record<MultimodalPipelineUseCase, MultimodalPipelineUseCase>;\n\nexport type PipelineUseCase =\n | TextPipelineUseCase\n | VisionPipelineUseCase\n | AudioPipelineUseCase\n | MultimodalPipelineUseCase;\n\nexport const PipelineUseCase = {\n ...TextPipelineUseCase,\n ...VisionPipelineUseCase,\n ...AudioPipelineUseCase,\n ...MultimodalPipelineUseCase,\n} as const satisfies Record<PipelineUseCase, PipelineUseCase>;\n",
7
7
  "/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { ModelConfigSchema, ModelRecordSchema } from \"@workglow/ai/worker\";\nimport { DataPortSchemaObject, FromSchema } from \"@workglow/util/worker\";\nimport { HF_TRANSFORMERS_ONNX, PipelineUseCase, QuantizationDataType } from \"./HFT_Constants\";\n\nexport const HfTransformersOnnxModelSchema = {\n type: \"object\",\n properties: {\n provider: {\n const: HF_TRANSFORMERS_ONNX,\n description: \"Discriminator: ONNX runtime backend.\",\n },\n provider_config: {\n type: \"object\",\n description: \"ONNX runtime-specific options.\",\n properties: {\n pipeline: {\n type: \"string\",\n enum: Object.values(PipelineUseCase),\n description: \"Pipeline type for the ONNX model.\",\n default: \"text-generation\",\n },\n model_path: {\n type: \"string\",\n description: \"Filesystem path or URI for the ONNX model.\",\n },\n revision: {\n type: \"string\",\n description: \"Git revision (branch, tag, or commit hash) of the model repository.\",\n default: \"main\",\n },\n dtype: {\n type: \"string\",\n enum: Object.values(QuantizationDataType),\n description: \"Data type for the ONNX model.\",\n default: \"auto\",\n },\n device: {\n type: \"string\",\n enum: [\"cpu\", \"gpu\", \"webgpu\", \"wasm\", \"metal\"],\n description: \"High-level device selection.\",\n default: \"webgpu\",\n },\n execution_providers: {\n type: \"array\",\n items: { type: \"string\" },\n description: \"Raw ONNX Runtime execution provider identifiers.\",\n \"x-ui-hidden\": true,\n },\n intra_op_num_threads: {\n type: \"integer\",\n minimum: 1,\n },\n inter_op_num_threads: {\n type: \"integer\",\n minimum: 1,\n },\n use_external_data_format: {\n type: \"boolean\",\n description: \"Whether the model uses external data format.\",\n },\n native_dimensions: {\n type: \"integer\",\n description: \"The native dimensions of the model.\",\n },\n pooling: {\n type: \"string\",\n enum: [\"mean\", \"last_token\", \"cls\"],\n description: \"The pooling strategy to use for the model.\",\n default: \"mean\",\n },\n normalize: {\n type: \"boolean\",\n description: \"Whether the model uses normalization.\",\n default: true,\n },\n language_style: {\n type: \"string\",\n description: \"The language style of the model.\",\n },\n seed: {\n type: \"integer\",\n description:\n \"RNG seed passed to transformers.js sampling. Omit for time-based seeding; set for reproducible generation.\",\n minimum: 0,\n },\n mrl: {\n type: \"boolean\",\n description: \"Whether the model uses matryoshka.\",\n default: false,\n },\n },\n required: [\"model_path\", \"pipeline\"],\n additionalProperties: false,\n if: {\n properties: {\n pipeline: {\n const: \"feature-extraction\",\n },\n },\n },\n then: {\n required: [\"native_dimensions\"],\n },\n },\n },\n required: [\"provider\", \"provider_config\"],\n additionalProperties: true,\n} as const satisfies DataPortSchemaObject;\n\nexport const HfTransformersOnnxModelRecordSchema = {\n type: \"object\",\n properties: {\n ...ModelRecordSchema.properties,\n ...HfTransformersOnnxModelSchema.properties,\n },\n required: [...ModelRecordSchema.required, ...HfTransformersOnnxModelSchema.required],\n additionalProperties: false,\n} as const satisfies DataPortSchemaObject;\n\nexport type HfTransformersOnnxModelRecord = FromSchema<typeof HfTransformersOnnxModelRecordSchema>;\n\nexport const HfTransformersOnnxModelConfigSchema = {\n type: \"object\",\n properties: {\n ...ModelConfigSchema.properties,\n ...HfTransformersOnnxModelSchema.properties,\n },\n required: [...ModelConfigSchema.required, ...HfTransformersOnnxModelSchema.required],\n additionalProperties: false,\n} as const satisfies DataPortSchemaObject;\n\nexport type HfTransformersOnnxModelConfig = FromSchema<typeof HfTransformersOnnxModelConfigSchema>;\n",
8
8
  "/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nexport const ONNX_QUANTIZATION_SUFFIX_MAPPING = {\n fp32: \"\",\n fp16: \"_fp16\",\n int8: \"_int8\",\n uint8: \"_uint8\",\n q8: \"_quantized\",\n q4: \"_q4\",\n q4f16: \"_q4f16\",\n bnb4: \"_bnb4\",\n} as const;\n\nexport type OnnxQuantization = keyof typeof ONNX_QUANTIZATION_SUFFIX_MAPPING;\n\nconst SUFFIXES_LONGEST_FIRST = (\n Object.entries(ONNX_QUANTIZATION_SUFFIX_MAPPING) as [OnnxQuantization, string][]\n)\n .filter(([, suffix]) => suffix !== \"\")\n .sort((a, b) => b[1].length - a[1].length);\n\nexport function parseOnnxQuantizations(params: {\n /** File paths, e.g. from listModels/modelInfo with additionalFields: [\"filePaths\"] */\n filePaths: string[];\n /** Subdirectory containing ONNX files. @default \"onnx\" */\n subfolder?: string;\n}): OnnxQuantization[] {\n const subfolder = params.subfolder ?? \"onnx\";\n const prefix = subfolder + \"/\";\n\n const stems: string[] = [];\n for (const fp of params.filePaths) {\n if (!fp.startsWith(prefix)) continue;\n if (!fp.endsWith(\".onnx\")) continue;\n if (fp.endsWith(\".onnx_data\")) continue;\n stems.push(fp.slice(prefix.length, -\".onnx\".length));\n }\n\n if (stems.length === 0) return [];\n\n const parsed: Array<{ baseName: string; dtype: OnnxQuantization }> = [];\n for (const stem of stems) {\n let matched = false;\n for (const [dtype, suffix] of SUFFIXES_LONGEST_FIRST) {\n if (stem.endsWith(suffix)) {\n parsed.push({ baseName: stem.slice(0, -suffix.length), dtype });\n matched = true;\n break;\n }\n }\n if (!matched) {\n parsed.push({ baseName: stem, dtype: \"fp32\" });\n }\n }\n\n const allBaseNames = new Set(parsed.map((p) => p.baseName));\n const byDtype = new Map<OnnxQuantization, Set<string>>();\n for (const { baseName, dtype } of parsed) {\n let set = byDtype.get(dtype);\n if (!set) {\n set = new Set();\n byDtype.set(dtype, set);\n }\n set.add(baseName);\n }\n\n const allDtypes = Object.keys(ONNX_QUANTIZATION_SUFFIX_MAPPING) as OnnxQuantization[];\n return allDtypes.filter((dtype) => {\n const set = byDtype.get(dtype);\n return set !== undefined && set.size === allBaseNames.size;\n });\n}\n",
@@ -26,7 +26,7 @@
26
26
  "/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type {\n TextClassificationOutput,\n TextClassificationPipeline,\n ZeroShotClassificationPipeline,\n} from \"@huggingface/transformers\";\nimport type {\n AiProviderRunFn,\n TextClassificationTaskInput,\n TextClassificationTaskOutput,\n} from \"@workglow/ai\";\nimport type { HfTransformersOnnxModelConfig } from \"./HFT_ModelSchema\";\nimport { getPipeline } from \"./HFT_Pipeline\";\n\nexport const HFT_TextClassification: AiProviderRunFn<\n TextClassificationTaskInput,\n TextClassificationTaskOutput,\n HfTransformersOnnxModelConfig\n> = async (input, model, onProgress, signal) => {\n if (model?.provider_config?.pipeline === \"zero-shot-classification\") {\n if (\n !input.candidateLabels ||\n !Array.isArray(input.candidateLabels) ||\n input.candidateLabels.length === 0\n ) {\n throw new Error(\"Zero-shot text classification requires candidate labels\");\n }\n\n const zeroShotClassifier: ZeroShotClassificationPipeline = await getPipeline(\n model!,\n onProgress,\n {},\n signal\n );\n const result: any = await zeroShotClassifier(\n input.text,\n input.candidateLabels as string[],\n {}\n );\n\n return {\n categories: result.labels.map((label: string, idx: number) => ({\n label,\n score: result.scores[idx],\n })),\n };\n }\n\n const TextClassification: TextClassificationPipeline = await getPipeline(\n model!,\n onProgress,\n {},\n signal\n );\n const result = await TextClassification(input.text, {\n top_k: input.maxCategories || undefined,\n });\n\n const items = Array.isArray(result[0]) ? result[0] : (result as TextClassificationOutput);\n return {\n categories: items.map((category) => ({\n label: category.label,\n score: category.score,\n })),\n };\n};\n",
27
27
  "/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type { FeatureExtractionPipeline } from \"@huggingface/transformers\";\nimport type {\n AiProviderRunFn,\n TextEmbeddingTaskInput,\n TextEmbeddingTaskOutput,\n} from \"@workglow/ai\";\nimport { getLogger, TypedArray } from \"@workglow/util/worker\";\nimport type { HfTransformersOnnxModelConfig } from \"./HFT_ModelSchema\";\nimport { getPipeline } from \"./HFT_Pipeline\";\n\n/**\n * Core implementation for text embedding using Hugging Face Transformers.\n * This is shared between inline and worker implementations.\n */\nexport const HFT_TextEmbedding: AiProviderRunFn<\n TextEmbeddingTaskInput,\n TextEmbeddingTaskOutput,\n HfTransformersOnnxModelConfig\n> = async (input, model, onProgress, signal) => {\n const logger = getLogger();\n const uuid = crypto.randomUUID();\n const timerLabel = `hft:TextEmbedding:${model?.provider_config.model_path}:${uuid}`;\n logger.time(timerLabel, { model: model?.provider_config.model_path });\n\n const generateEmbedding: FeatureExtractionPipeline = await getPipeline(\n model!,\n onProgress,\n {},\n signal\n );\n\n logger.debug(\"HFT TextEmbedding: pipeline ready, generating embedding\", {\n model: model?.provider_config.model_path,\n inputLength: Array.isArray(input.text) ? input.text.length : input.text?.length,\n });\n\n // Generate the embedding\n const hfVector = await generateEmbedding(input.text, {\n pooling: model?.provider_config.pooling || \"mean\",\n normalize: model?.provider_config.normalize,\n });\n\n const isArrayInput = Array.isArray(input.text);\n const embeddingDim = model?.provider_config.native_dimensions;\n\n // If the input is an array, the tensor will have multiple dimensions (e.g., [10, 384])\n // We need to split it into separate vectors for each input text\n if (isArrayInput && hfVector.dims.length > 1) {\n const [numTexts, vectorDim] = hfVector.dims;\n\n // Validate that the number of texts matches\n if (numTexts !== input.text.length) {\n throw new Error(\n `HuggingFace Embedding tensor batch size does not match input array length: ${numTexts} != ${input.text.length}`\n );\n }\n\n // Validate dimensions\n if (vectorDim !== embeddingDim) {\n throw new Error(\n `HuggingFace Embedding vector dimension does not match model dimensions: ${vectorDim} != ${embeddingDim}`\n );\n }\n\n // Extract each embedding vector using tensor indexing\n // hfVector[i] returns a sub-tensor for the i-th text\n // .slice() is required to create independent TypedArrays with their own ArrayBuffers,\n // because sub-tensor views all share the same backing buffer, which causes DataCloneError\n // when postMessage tries to transfer the same ArrayBuffer multiple times.\n const vectors: TypedArray[] = Array.from({ length: numTexts }, (_, i) =>\n ((hfVector as any)[i].data as TypedArray).slice()\n );\n\n logger.timeEnd(timerLabel, { batchSize: numTexts, dimensions: vectorDim });\n return { vector: vectors };\n }\n\n // Output[number] text input - validate dimensions\n if (hfVector.size !== embeddingDim) {\n logger.timeEnd(timerLabel, { status: \"error\", reason: \"dimension mismatch\" });\n console.warn(\n `HuggingFace Embedding vector length does not match model dimensions v${hfVector.size} != m${embeddingDim}`,\n input,\n hfVector\n );\n throw new Error(\n `HuggingFace Embedding vector length does not match model dimensions v${hfVector.size} != m${embeddingDim}`\n );\n }\n\n logger.timeEnd(timerLabel, { dimensions: hfVector.size });\n return { vector: hfVector.data as TypedArray };\n};\n",
28
28
  "/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type { FillMaskOutput, FillMaskPipeline } from \"@huggingface/transformers\";\nimport type { AiProviderRunFn, TextFillMaskTaskInput, TextFillMaskTaskOutput } from \"@workglow/ai\";\nimport type { HfTransformersOnnxModelConfig } from \"./HFT_ModelSchema\";\nimport { getPipeline } from \"./HFT_Pipeline\";\n\nexport const HFT_TextFillMask: AiProviderRunFn<\n TextFillMaskTaskInput,\n TextFillMaskTaskOutput,\n HfTransformersOnnxModelConfig\n> = async (input, model, onProgress, signal) => {\n const unmasker: FillMaskPipeline = await getPipeline(model!, onProgress, {}, signal);\n const results = await unmasker(input.text);\n\n let predictions: FillMaskOutput = [];\n if (!Array.isArray(results)) {\n predictions = [results];\n } else {\n predictions = results as FillMaskOutput;\n }\n return {\n predictions: predictions.map((prediction) => ({\n entity: prediction.token_str,\n score: prediction.score,\n sequence: prediction.sequence,\n })),\n };\n};\n",
29
- "/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type { TextGenerationOutput, TextGenerationPipeline } from \"@huggingface/transformers\";\nimport type {\n AiProviderRunFn,\n AiProviderStreamFn,\n TextGenerationTaskInput,\n TextGenerationTaskOutput,\n} from \"@workglow/ai\";\nimport type { StreamEvent } from \"@workglow/task-graph\";\nimport { getLogger } from \"@workglow/util/worker\";\nimport type { HfTransformersOnnxModelConfig } from \"./HFT_ModelSchema\";\nimport { getPipeline, loadTransformersSDK } from \"./HFT_Pipeline\";\nimport {\n createStreamEventQueue,\n createStreamingTextStreamer,\n createTextStreamer,\n} from \"./HFT_Streaming\";\nimport { extractGeneratedText } from \"./HFT_TextOutput\";\n\n/**\n * Core implementation for text generation using Hugging Face Transformers.\n * This is shared between inline and worker implementations.\n */\nexport const HFT_TextGeneration: AiProviderRunFn<\n TextGenerationTaskInput,\n TextGenerationTaskOutput,\n HfTransformersOnnxModelConfig\n> = async (input, model, onProgress, signal) => {\n const logger = getLogger();\n const timerLabel = `hft:TextGeneration:${model?.provider_config.model_path}`;\n logger.time(timerLabel, { model: model?.provider_config.model_path });\n\n const generateText: TextGenerationPipeline = await getPipeline(model!, onProgress, {}, signal);\n const { TextStreamer } = await loadTransformersSDK();\n\n logger.debug(\"HFT TextGeneration: pipeline ready, generating text\", {\n model: model?.provider_config.model_path,\n promptLength: input.prompt?.length,\n });\n\n const streamer = createTextStreamer(generateText.tokenizer, onProgress, TextStreamer, signal);\n\n let results = await generateText(input.prompt, {\n streamer,\n });\n\n if (!Array.isArray(results)) {\n results = [results];\n }\n const text = extractGeneratedText((results[0] as TextGenerationOutput[number])?.generated_text);\n logger.timeEnd(timerLabel, { outputLength: text?.length });\n return {\n text,\n };\n};\n\nexport const HFT_TextGeneration_Stream: AiProviderStreamFn<\n TextGenerationTaskInput,\n TextGenerationTaskOutput,\n HfTransformersOnnxModelConfig\n> = async function* (input, model, signal): AsyncIterable<StreamEvent<TextGenerationTaskOutput>> {\n const noopProgress = () => {};\n const generateText: TextGenerationPipeline = await getPipeline(model!, noopProgress, {}, signal);\n const { TextStreamer } = await loadTransformersSDK();\n\n const queue = createStreamEventQueue<StreamEvent<TextGenerationTaskOutput>>();\n const streamer = createStreamingTextStreamer(generateText.tokenizer, queue, TextStreamer, signal);\n\n const pipelinePromise = generateText(input.prompt, {\n streamer,\n }).then(\n () => queue.done(),\n (err: Error) => queue.error(err)\n );\n\n yield* queue.iterable;\n await pipelinePromise;\n yield { type: \"finish\", data: {} as TextGenerationTaskOutput };\n};\n",
29
+ "/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type {\n Message,\n TextGenerationOutput,\n TextGenerationPipeline,\n} from \"@huggingface/transformers\";\nimport type {\n AiProviderRunFn,\n AiProviderStreamFn,\n TextGenerationTaskInput,\n TextGenerationTaskOutput,\n} from \"@workglow/ai\";\nimport type { StreamEvent } from \"@workglow/task-graph\";\nimport { getLogger } from \"@workglow/util/worker\";\nimport type { HfTransformersOnnxModelConfig } from \"./HFT_ModelSchema\";\nimport { getPipeline, loadTransformersSDK } from \"./HFT_Pipeline\";\nimport {\n createStreamEventQueue,\n createStreamingTextStreamer,\n createTextStreamer,\n} from \"./HFT_Streaming\";\nimport { extractGeneratedText } from \"./HFT_TextOutput\";\n\n/**\n * Core implementation for text generation using Hugging Face Transformers.\n * This is shared between inline and worker implementations.\n */\nexport const HFT_TextGeneration: AiProviderRunFn<\n TextGenerationTaskInput,\n TextGenerationTaskOutput,\n HfTransformersOnnxModelConfig\n> = async (input, model, onProgress, signal) => {\n const logger = getLogger();\n const timerLabel = `hft:TextGeneration:${model?.provider_config.model_path}`;\n logger.time(timerLabel, { model: model?.provider_config.model_path });\n\n const generateText: TextGenerationPipeline = await getPipeline(model!, onProgress, {}, signal);\n const { TextStreamer } = await loadTransformersSDK();\n\n logger.debug(\"HFT TextGeneration: pipeline ready, generating text\", {\n model: model?.provider_config.model_path,\n promptLength: input.prompt?.length,\n });\n\n const streamer = createTextStreamer(generateText.tokenizer, onProgress, TextStreamer, signal);\n\n const messages: Message[] = [{ role: \"user\", content: input.prompt }];\n\n let results = await generateText(messages, {\n streamer,\n do_sample: false,\n max_new_tokens: input.maxTokens ?? 4 * 1024,\n });\n\n if (!Array.isArray(results)) {\n results = [results];\n }\n const text = extractGeneratedText((results[0] as TextGenerationOutput[number])?.generated_text);\n logger.timeEnd(timerLabel, { outputLength: text?.length });\n return {\n text,\n };\n};\n\nexport const HFT_TextGeneration_Stream: AiProviderStreamFn<\n TextGenerationTaskInput,\n TextGenerationTaskOutput,\n HfTransformersOnnxModelConfig\n> = async function* (input, model, signal): AsyncIterable<StreamEvent<TextGenerationTaskOutput>> {\n const noopProgress = () => {};\n const generateText: TextGenerationPipeline = await getPipeline(model!, noopProgress, {}, signal);\n const { TextStreamer } = await loadTransformersSDK();\n\n const queue = createStreamEventQueue<StreamEvent<TextGenerationTaskOutput>>();\n const streamer = createStreamingTextStreamer(generateText.tokenizer, queue, TextStreamer, signal);\n\n const pipelinePromise = generateText(input.prompt, {\n streamer,\n }).then(\n () => queue.done(),\n (err: Error) => queue.error(err)\n );\n\n yield* queue.iterable;\n await pipelinePromise;\n yield { type: \"finish\", data: {} as TextGenerationTaskOutput };\n};\n",
30
30
  "/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type {\n TextClassificationOutput,\n TextClassificationPipeline,\n} from \"@huggingface/transformers\";\nimport type {\n AiProviderRunFn,\n TextLanguageDetectionTaskInput,\n TextLanguageDetectionTaskOutput,\n} from \"@workglow/ai\";\nimport type { HfTransformersOnnxModelConfig } from \"./HFT_ModelSchema\";\nimport { getPipeline } from \"./HFT_Pipeline\";\n\nexport const HFT_TextLanguageDetection: AiProviderRunFn<\n TextLanguageDetectionTaskInput,\n TextLanguageDetectionTaskOutput,\n HfTransformersOnnxModelConfig\n> = async (input, model, onProgress, signal) => {\n const TextClassification: TextClassificationPipeline = await getPipeline(\n model!,\n onProgress,\n {},\n signal\n );\n const result = await TextClassification(input.text, {\n top_k: input.maxLanguages || undefined,\n });\n\n if (Array.isArray(result[0])) {\n return {\n languages: result[0].map((category) => ({\n language: category.label,\n score: category.score,\n })),\n };\n }\n\n return {\n languages: (result as TextClassificationOutput).map((category) => ({\n language: category.label,\n score: category.score,\n })),\n };\n};\n",
31
31
  "/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type {\n TokenClassificationOutput,\n TokenClassificationPipeline,\n} from \"@huggingface/transformers\";\nimport type {\n AiProviderRunFn,\n TextNamedEntityRecognitionTaskInput,\n TextNamedEntityRecognitionTaskOutput,\n} from \"@workglow/ai\";\nimport type { HfTransformersOnnxModelConfig } from \"./HFT_ModelSchema\";\nimport { getPipeline } from \"./HFT_Pipeline\";\n\nexport const HFT_TextNamedEntityRecognition: AiProviderRunFn<\n TextNamedEntityRecognitionTaskInput,\n TextNamedEntityRecognitionTaskOutput,\n HfTransformersOnnxModelConfig\n> = async (input, model, onProgress, signal) => {\n const textNamedEntityRecognition: TokenClassificationPipeline = await getPipeline(\n model!,\n onProgress,\n {},\n signal\n );\n const results = await textNamedEntityRecognition(input.text, {\n ignore_labels: input.blockList as string[] | undefined,\n });\n\n let entities: TokenClassificationOutput = [];\n if (!Array.isArray(results)) {\n entities = [results];\n } else {\n entities = results as TokenClassificationOutput;\n }\n return {\n entities: entities.map((entity) => ({\n entity: entity.entity,\n score: entity.score,\n word: entity.word,\n })),\n };\n};\n",
32
32
  "/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type {\n DocumentQuestionAnsweringOutput,\n QuestionAnsweringPipeline,\n} from \"@huggingface/transformers\";\nimport type {\n AiProviderRunFn,\n AiProviderStreamFn,\n TextQuestionAnswerTaskInput,\n TextQuestionAnswerTaskOutput,\n} from \"@workglow/ai\";\nimport type { StreamEvent } from \"@workglow/task-graph\";\nimport type { HfTransformersOnnxModelConfig } from \"./HFT_ModelSchema\";\nimport { getPipeline, loadTransformersSDK } from \"./HFT_Pipeline\";\nimport {\n createStreamEventQueue,\n createStreamingTextStreamer,\n createTextStreamer,\n} from \"./HFT_Streaming\";\n\n/**\n * Core implementation for question answering using Hugging Face Transformers.\n * This is shared between inline and worker implementations.\n */\nexport const HFT_TextQuestionAnswer: AiProviderRunFn<\n TextQuestionAnswerTaskInput,\n TextQuestionAnswerTaskOutput,\n HfTransformersOnnxModelConfig\n> = async (input, model, onProgress, signal) => {\n // Get the question answering pipeline\n const generateAnswer: QuestionAnsweringPipeline = await getPipeline(\n model!,\n onProgress,\n {},\n signal\n );\n\n const { TextStreamer } = await loadTransformersSDK();\n const streamer = createTextStreamer(generateAnswer.tokenizer, onProgress, TextStreamer, signal);\n\n const result = await generateAnswer(\n input.question,\n input.context,\n {\n streamer,\n } as any\n );\n\n let answerText = \"\";\n if (Array.isArray(result)) {\n answerText = (result[0] as DocumentQuestionAnsweringOutput[number])?.answer || \"\";\n } else {\n answerText = (result as DocumentQuestionAnsweringOutput[number])?.answer || \"\";\n }\n\n return {\n text: answerText,\n };\n};\n\nexport const HFT_TextQuestionAnswer_Stream: AiProviderStreamFn<\n TextQuestionAnswerTaskInput,\n TextQuestionAnswerTaskOutput,\n HfTransformersOnnxModelConfig\n> = async function* (\n input,\n model,\n signal\n): AsyncIterable<StreamEvent<TextQuestionAnswerTaskOutput>> {\n const noopProgress = () => {};\n const generateAnswer: QuestionAnsweringPipeline = await getPipeline(\n model!,\n noopProgress,\n {},\n signal\n );\n const { TextStreamer } = await loadTransformersSDK();\n\n const queue = createStreamEventQueue<StreamEvent<TextQuestionAnswerTaskOutput>>();\n const streamer = createStreamingTextStreamer(generateAnswer.tokenizer, queue, TextStreamer, signal);\n\n let pipelineResult:\n | DocumentQuestionAnsweringOutput[number]\n | DocumentQuestionAnsweringOutput\n | undefined;\n const pipelinePromise = generateAnswer(\n input.question,\n input.context,\n {\n streamer,\n } as any\n ).then(\n (result) => {\n pipelineResult = result;\n queue.done();\n },\n (err: Error) => queue.error(err)\n );\n\n yield* queue.iterable;\n await pipelinePromise;\n\n let answerText = \"\";\n if (pipelineResult !== undefined) {\n if (Array.isArray(pipelineResult)) {\n answerText = (pipelineResult[0] as DocumentQuestionAnsweringOutput[number])?.answer ?? \"\";\n } else {\n answerText = (pipelineResult as DocumentQuestionAnsweringOutput[number])?.answer ?? \"\";\n }\n }\n yield { type: \"finish\", data: { text: answerText } as TextQuestionAnswerTaskOutput };\n};\n",
@@ -41,7 +41,7 @@
41
41
  "/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {\n AiProvider,\n type AiProviderReactiveRunFn,\n type AiProviderRunFn,\n type AiProviderStreamFn,\n} from \"@workglow/ai/worker\";\nimport { HF_TRANSFORMERS_ONNX } from \"./common/HFT_Constants\";\nimport type { HfTransformersOnnxModelConfig } from \"./common/HFT_ModelSchema\";\n\n/**\n * AI provider for HuggingFace Transformers ONNX models.\n *\n * Supports text, vision, and multimodal tasks via the @huggingface/transformers library.\n *\n * Task run functions are injected via the constructor so that the heavy\n * `@huggingface/transformers` library is only imported where actually needed\n * (inline mode, worker server), not on the main thread in worker mode.\n */\nexport class HuggingFaceTransformersProvider extends AiProvider<HfTransformersOnnxModelConfig> {\n readonly name = HF_TRANSFORMERS_ONNX;\n readonly displayName = \"Hugging Face Transformers (ONNX)\";\n readonly isLocal = true;\n readonly supportsBrowser = true;\n\n readonly taskTypes = [\n \"DownloadModelTask\",\n \"UnloadModelTask\",\n \"ModelInfoTask\",\n \"CountTokensTask\",\n \"TextEmbeddingTask\",\n \"TextGenerationTask\",\n \"TextQuestionAnswerTask\",\n \"TextLanguageDetectionTask\",\n \"TextClassificationTask\",\n \"TextFillMaskTask\",\n \"TextNamedEntityRecognitionTask\",\n \"TextRewriterTask\",\n \"TextSummaryTask\",\n \"TextTranslationTask\",\n \"ImageSegmentationTask\",\n \"ImageToTextTask\",\n \"BackgroundRemovalTask\",\n \"ImageEmbeddingTask\",\n \"ImageClassificationTask\",\n \"ObjectDetectionTask\",\n \"ModelSearchTask\",\n ] as const;\n\n constructor(\n tasks?: Record<string, AiProviderRunFn<any, any, HfTransformersOnnxModelConfig>>,\n streamTasks?: Record<string, AiProviderStreamFn<any, any, HfTransformersOnnxModelConfig>>,\n reactiveTasks?: Record<string, AiProviderReactiveRunFn<any, any, HfTransformersOnnxModelConfig>>\n ) {\n super(tasks, streamTasks, reactiveTasks);\n }\n}\n",
42
42
  "/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\n/**\n * Heavyweight HuggingFace Transformers registration: worker server (`registerHuggingFaceTransformersWorker`)\n * and main-thread inline (`registerHuggingFaceTransformersInline`). Import from\n * `@workglow/ai-provider/hf-transformers/runtime` only — not from the main `hf-transformers` barrel.\n *\n * Use `export *` (not `export { … } from \"…\"`) so the Bun bundler keeps the module graph; the latter\n * was emitted as bare re-exports with no bindings.\n */\n\nexport * from \"./common/HFT_Constants\";\nexport * from \"./common/HFT_ModelSchema\";\nexport * from \"./common/HFT_OnnxDtypes\";\nexport * from \"./registerHuggingFaceTransformersInline\";\nexport * from \"./registerHuggingFaceTransformersWorker\";\nexport * from \"./common/HFT_Pipeline\";\n"
43
43
  ],
44
- "mappings": "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",
45
- "debugId": "E4863FB6D65AEC2D64756E2164756E21",
44
+ "mappings": "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",
45
+ "debugId": "569221876AC5558564756E2164756E21",
46
46
  "names": []
47
47
  }
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@workglow/ai-provider",
3
3
  "type": "module",
4
4
  "sideEffects": false,
5
- "version": "0.1.0",
5
+ "version": "0.1.1",
6
6
  "description": "AI provider integrations for Workglow, supporting OpenAI, Hugging Face Transformers, MediaPipe, and GGML models.",
7
7
  "scripts": {
8
8
  "watch": "concurrently -c 'auto' 'bun:watch-*'",
@@ -118,20 +118,20 @@
118
118
  "access": "public"
119
119
  },
120
120
  "peerDependencies": {
121
- "@workglow/ai": "0.1.0",
122
- "@workglow/job-queue": "0.1.0",
123
- "@workglow/storage": "0.1.0",
124
- "@workglow/task-graph": "0.1.0",
125
- "@workglow/util": "0.1.0",
126
- "@huggingface/transformers": "^4.0.0",
121
+ "@workglow/ai": "0.1.1",
122
+ "@workglow/job-queue": "0.1.1",
123
+ "@workglow/storage": "0.1.1",
124
+ "@workglow/task-graph": "0.1.1",
125
+ "@workglow/util": "0.1.1",
126
+ "@huggingface/transformers": "^4.0.1",
127
127
  "@mediapipe/tasks-text": "^0.10.34",
128
128
  "@mediapipe/tasks-vision": "^0.10.34",
129
129
  "@mediapipe/tasks-audio": "^0.10.34",
130
- "@mediapipe/tasks-genai": "^0.10.26",
130
+ "@mediapipe/tasks-genai": "^0.10.27",
131
131
  "openai": "^6.33.0",
132
132
  "tiktoken": "^1.0.22",
133
133
  "js-tiktoken": "^1.0.16",
134
- "@anthropic-ai/sdk": "^0.80.0",
134
+ "@anthropic-ai/sdk": "^0.82.0",
135
135
  "@google/generative-ai": "^0.24.1",
136
136
  "node-llama-cpp": "^3.18.1",
137
137
  "@huggingface/inference": "^4.13.15",
@@ -194,19 +194,19 @@
194
194
  }
195
195
  },
196
196
  "devDependencies": {
197
- "@anthropic-ai/sdk": "^0.80.0",
197
+ "@anthropic-ai/sdk": "^0.82.0",
198
198
  "@google/generative-ai": "^0.24.1",
199
199
  "@huggingface/inference": "^4.13.15",
200
200
  "@mediapipe/tasks-audio": "^0.10.34",
201
- "@mediapipe/tasks-genai": "^0.10.26",
201
+ "@mediapipe/tasks-genai": "^0.10.27",
202
202
  "@mediapipe/tasks-text": "^0.10.34",
203
203
  "@mediapipe/tasks-vision": "^0.10.34",
204
- "@huggingface/transformers": "^4.0.0",
205
- "@workglow/ai": "0.1.0",
206
- "@workglow/job-queue": "0.1.0",
207
- "@workglow/storage": "0.1.0",
208
- "@workglow/task-graph": "0.1.0",
209
- "@workglow/util": "0.1.0",
204
+ "@huggingface/transformers": "^4.0.1",
205
+ "@workglow/ai": "0.1.1",
206
+ "@workglow/job-queue": "0.1.1",
207
+ "@workglow/storage": "0.1.1",
208
+ "@workglow/task-graph": "0.1.1",
209
+ "@workglow/util": "0.1.1",
210
210
  "node-llama-cpp": "^3.18.1",
211
211
  "ollama": "^0.6.3",
212
212
  "openai": "^6.33.0",