@workglow/huggingface-inference 0.2.31 → 0.2.33

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (80) hide show
  1. package/README.md +44 -0
  2. package/dist/ai/HfInferenceProvider.d.ts.map +1 -0
  3. package/dist/ai/HfInferenceQueuedProvider.d.ts.map +1 -0
  4. package/dist/ai/common/HFI_AspectRatio.d.ts.map +1 -0
  5. package/dist/{ai-provider → ai}/common/HFI_Client.d.ts +3 -1
  6. package/dist/ai/common/HFI_Client.d.ts.map +1 -0
  7. package/dist/ai/common/HFI_Constants.d.ts.map +1 -0
  8. package/dist/ai/common/HFI_ImageEdit.d.ts.map +1 -0
  9. package/dist/ai/common/HFI_ImageGenerate.d.ts.map +1 -0
  10. package/dist/ai/common/HFI_ImageValidation.d.ts.map +1 -0
  11. package/dist/ai/common/HFI_JobRunFns.d.ts.map +1 -0
  12. package/dist/ai/common/HFI_ModelInfo.d.ts.map +1 -0
  13. package/dist/ai/common/HFI_ModelSchema.d.ts.map +1 -0
  14. package/dist/ai/common/HFI_ModelSearch.d.ts.map +1 -0
  15. package/dist/ai/common/HFI_TextEmbedding.d.ts.map +1 -0
  16. package/dist/ai/common/HFI_TextGeneration.d.ts.map +1 -0
  17. package/dist/ai/common/HFI_TextRewriter.d.ts.map +1 -0
  18. package/dist/ai/common/HFI_TextSummary.d.ts.map +1 -0
  19. package/dist/ai/common/HFI_ToolCalling.d.ts.map +1 -0
  20. package/dist/ai/index.d.ts.map +1 -0
  21. package/dist/ai/registerHfInference.d.ts.map +1 -0
  22. package/dist/ai/registerHfInferenceInline.d.ts.map +1 -0
  23. package/dist/ai/registerHfInferenceWorker.d.ts.map +1 -0
  24. package/dist/{ai-provider → ai}/runtime.d.ts +1 -1
  25. package/dist/ai/runtime.d.ts.map +1 -0
  26. package/dist/{ai-provider.d.ts → ai-runtime.d.ts} +2 -2
  27. package/dist/ai-runtime.d.ts.map +1 -0
  28. package/dist/{ai-provider-runtime.js → ai-runtime.js} +47 -38
  29. package/dist/ai-runtime.js.map +27 -0
  30. package/dist/{ai-provider-runtime.d.ts → ai.d.ts} +2 -2
  31. package/dist/ai.d.ts.map +1 -0
  32. package/dist/{ai-provider.js → ai.js} +21 -13
  33. package/dist/ai.js.map +16 -0
  34. package/package.json +21 -26
  35. package/dist/ai-provider/HfInferenceProvider.d.ts.map +0 -1
  36. package/dist/ai-provider/HfInferenceQueuedProvider.d.ts.map +0 -1
  37. package/dist/ai-provider/common/HFI_AspectRatio.d.ts.map +0 -1
  38. package/dist/ai-provider/common/HFI_Client.d.ts.map +0 -1
  39. package/dist/ai-provider/common/HFI_Constants.d.ts.map +0 -1
  40. package/dist/ai-provider/common/HFI_ImageEdit.d.ts.map +0 -1
  41. package/dist/ai-provider/common/HFI_ImageGenerate.d.ts.map +0 -1
  42. package/dist/ai-provider/common/HFI_ImageValidation.d.ts.map +0 -1
  43. package/dist/ai-provider/common/HFI_JobRunFns.d.ts.map +0 -1
  44. package/dist/ai-provider/common/HFI_ModelInfo.d.ts.map +0 -1
  45. package/dist/ai-provider/common/HFI_ModelSchema.d.ts.map +0 -1
  46. package/dist/ai-provider/common/HFI_ModelSearch.d.ts.map +0 -1
  47. package/dist/ai-provider/common/HFI_TextEmbedding.d.ts.map +0 -1
  48. package/dist/ai-provider/common/HFI_TextGeneration.d.ts.map +0 -1
  49. package/dist/ai-provider/common/HFI_TextRewriter.d.ts.map +0 -1
  50. package/dist/ai-provider/common/HFI_TextSummary.d.ts.map +0 -1
  51. package/dist/ai-provider/common/HFI_ToolCalling.d.ts.map +0 -1
  52. package/dist/ai-provider/index.d.ts.map +0 -1
  53. package/dist/ai-provider/registerHfInference.d.ts.map +0 -1
  54. package/dist/ai-provider/registerHfInferenceInline.d.ts.map +0 -1
  55. package/dist/ai-provider/registerHfInferenceWorker.d.ts.map +0 -1
  56. package/dist/ai-provider/runtime.d.ts.map +0 -1
  57. package/dist/ai-provider-runtime.d.ts.map +0 -1
  58. package/dist/ai-provider-runtime.js.map +0 -27
  59. package/dist/ai-provider.d.ts.map +0 -1
  60. package/dist/ai-provider.js.map +0 -16
  61. /package/dist/{ai-provider → ai}/HfInferenceProvider.d.ts +0 -0
  62. /package/dist/{ai-provider → ai}/HfInferenceQueuedProvider.d.ts +0 -0
  63. /package/dist/{ai-provider → ai}/common/HFI_AspectRatio.d.ts +0 -0
  64. /package/dist/{ai-provider → ai}/common/HFI_Constants.d.ts +0 -0
  65. /package/dist/{ai-provider → ai}/common/HFI_ImageEdit.d.ts +0 -0
  66. /package/dist/{ai-provider → ai}/common/HFI_ImageGenerate.d.ts +0 -0
  67. /package/dist/{ai-provider → ai}/common/HFI_ImageValidation.d.ts +0 -0
  68. /package/dist/{ai-provider → ai}/common/HFI_JobRunFns.d.ts +0 -0
  69. /package/dist/{ai-provider → ai}/common/HFI_ModelInfo.d.ts +0 -0
  70. /package/dist/{ai-provider → ai}/common/HFI_ModelSchema.d.ts +0 -0
  71. /package/dist/{ai-provider → ai}/common/HFI_ModelSearch.d.ts +0 -0
  72. /package/dist/{ai-provider → ai}/common/HFI_TextEmbedding.d.ts +0 -0
  73. /package/dist/{ai-provider → ai}/common/HFI_TextGeneration.d.ts +0 -0
  74. /package/dist/{ai-provider → ai}/common/HFI_TextRewriter.d.ts +0 -0
  75. /package/dist/{ai-provider → ai}/common/HFI_TextSummary.d.ts +0 -0
  76. /package/dist/{ai-provider → ai}/common/HFI_ToolCalling.d.ts +0 -0
  77. /package/dist/{ai-provider → ai}/index.d.ts +0 -0
  78. /package/dist/{ai-provider → ai}/registerHfInference.d.ts +0 -0
  79. /package/dist/{ai-provider → ai}/registerHfInferenceInline.d.ts +0 -0
  80. /package/dist/{ai-provider → ai}/registerHfInferenceWorker.d.ts +0 -0
package/dist/ai.js.map ADDED
@@ -0,0 +1,16 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/ai/common/HFI_AspectRatio.ts", "../src/ai/common/HFI_Constants.ts", "../src/ai/common/HFI_ImageValidation.ts", "../src/ai/common/HFI_ModelSchema.ts", "../src/ai/common/HFI_ModelSearch.ts", "../src/ai/registerHfInference.ts", "../src/ai/HfInferenceQueuedProvider.ts"],
4
+ "sourcesContent": [
5
+ "/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nexport type AspectRatio = \"1:1\" | \"16:9\" | \"9:16\" | \"4:3\" | \"3:4\";\n\nexport interface ImageDims {\n width: number;\n height: number;\n}\n\nconst FLUX_DIMS: Record<AspectRatio, ImageDims> = {\n \"1:1\": { width: 1024, height: 1024 },\n \"16:9\": { width: 1344, height: 768 },\n \"9:16\": { width: 768, height: 1344 },\n \"4:3\": { width: 1152, height: 896 },\n \"3:4\": { width: 896, height: 1152 },\n};\n\nconst SDXL_DIMS: Record<AspectRatio, ImageDims> = {\n \"1:1\": { width: 1024, height: 1024 },\n \"16:9\": { width: 1280, height: 720 },\n \"9:16\": { width: 720, height: 1280 },\n \"4:3\": { width: 1024, height: 768 },\n \"3:4\": { width: 768, height: 1024 },\n};\n\nconst DEFAULT_DIMS: Record<AspectRatio, ImageDims> = SDXL_DIMS;\n\nconst MODEL_DIM_TABLE: Array<{ pattern: RegExp; dims: Record<AspectRatio, ImageDims> }> = [\n { pattern: /^black-forest-labs\\/FLUX/i, dims: FLUX_DIMS },\n { pattern: /^stabilityai\\/.*-xl/i, dims: SDXL_DIMS },\n];\n\n/** Resolves output dims for a model id and aspect ratio. Falls back to SDXL dims. */\nexport function resolveHfImageDims(modelId: string, aspectRatio: AspectRatio): ImageDims {\n const entry = MODEL_DIM_TABLE.find((e) => e.pattern.test(modelId));\n return (entry?.dims ?? DEFAULT_DIMS)[aspectRatio];\n}\n\n/** Returns true if the model id matches a known inpainting variant (mask supported). */\nexport function isHfInpaintingModel(modelId: string): boolean {\n return /inpaint|kontext/i.test(modelId);\n}\n",
6
+ "/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nexport const HF_INFERENCE = \"HF_INFERENCE\";\n",
7
+ "/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { AiImageOutputTask, ProviderUnsupportedFeatureError } from \"@workglow/ai\";\nimport type { ModelConfig } from \"@workglow/ai\";\n\nimport { HF_INFERENCE } from \"./HFI_Constants\";\nimport { isHfInpaintingModel } from \"./HFI_AspectRatio\";\n\nexport function registerHfImageValidator(): void {\n AiImageOutputTask.registerProviderImageValidator(\n HF_INFERENCE,\n (taskType, input, model: ModelConfig) => {\n if (taskType !== \"ImageEditTask\") return;\n const modelId = model.model_id ?? \"\";\n const modelName =\n (model.provider_config as { model_name?: string } | undefined)?.model_name ?? modelId;\n\n const additional = input[\"additionalImages\"] as unknown[] | undefined;\n if (Array.isArray(additional) && additional.length > 0) {\n throw new ProviderUnsupportedFeatureError(\n \"additionalImages\",\n modelId,\n \"HF Inference image-to-image only supports a single input image\"\n );\n }\n if (\n input[\"mask\"] !== undefined &&\n input[\"mask\"] !== null &&\n !isHfInpaintingModel(modelName)\n ) {\n throw new ProviderUnsupportedFeatureError(\n \"mask\",\n modelId,\n \"Mask is only supported on HF inpainting models (e.g., FLUX.1-Kontext-dev)\"\n );\n }\n }\n );\n}\n",
8
+ "/**\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_INFERENCE } from \"./HFI_Constants\";\n\nexport const HfInferenceModelSchema = {\n type: \"object\",\n properties: {\n provider: {\n const: HF_INFERENCE,\n description: \"Discriminator: Hugging Face Inference API provider.\",\n },\n provider_config: {\n type: \"object\",\n description: \"Hugging Face Inference-specific configuration.\",\n properties: {\n model_name: {\n type: \"string\",\n description:\n \"The Hugging Face model identifier (e.g., 'meta-llama/Llama-3.3-70B-Instruct').\",\n },\n credential_key: {\n type: \"string\",\n format: \"credential\",\n description: \"Key to look up in the credential store for the API key.\",\n \"x-ui-hidden\": true,\n },\n provider: {\n type: \"string\",\n description:\n \"Optional provider to route to specific HF inference providers (e.g., 'fal-ai', 'fireworks-ai').\",\n },\n },\n required: [\"model_name\"],\n additionalProperties: false,\n },\n },\n required: [\"provider\", \"provider_config\"],\n additionalProperties: true,\n} as const satisfies DataPortSchemaObject;\n\nexport const HfInferenceModelRecordSchema = {\n type: \"object\",\n properties: {\n ...ModelRecordSchema.properties,\n ...HfInferenceModelSchema.properties,\n },\n required: [...ModelRecordSchema.required, ...HfInferenceModelSchema.required],\n additionalProperties: false,\n} as const satisfies DataPortSchemaObject;\n\nexport type HfInferenceModelRecord = FromSchema<typeof HfInferenceModelRecordSchema>;\n\nexport const HfInferenceModelConfigSchema = {\n type: \"object\",\n properties: {\n ...ModelConfigSchema.properties,\n ...HfInferenceModelSchema.properties,\n },\n required: [...ModelConfigSchema.required, ...HfInferenceModelSchema.required],\n additionalProperties: false,\n} as const satisfies DataPortSchemaObject;\n\nexport type HfInferenceModelConfig = FromSchema<typeof HfInferenceModelConfigSchema>;\n",
9
+ "/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type {\n AiProviderRunFn,\n ModelSearchResultItem,\n ModelSearchTaskInput,\n ModelSearchTaskOutput,\n} from \"@workglow/ai\";\nimport { mapHfModelResult, searchHfModels } from \"@workglow/ai/provider-utils\";\nimport { filterLabeledModelsByQuery } from \"@workglow/ai/provider-utils\";\nimport { HF_INFERENCE } from \"./HFI_Constants\";\n\n/** Models with explicit task overrides (HF pipeline tags don't cover ImageGenerateTask/ImageEditTask). */\nconst HFI_IMAGE_MODELS: Array<{ id: string; tasks: string[] }> = [\n { id: \"black-forest-labs/FLUX.1-schnell\", tasks: [\"ImageGenerateTask\"] },\n { id: \"black-forest-labs/FLUX.1-Kontext-dev\", tasks: [\"ImageEditTask\"] },\n];\n\nfunction buildFallbackResults(): ModelSearchResultItem[] {\n return HFI_IMAGE_MODELS.map((m) => ({\n id: m.id,\n label: m.id,\n description: \"\",\n record: {\n model_id: m.id,\n provider: HF_INFERENCE,\n title: m.id.split(\"/\").pop() ?? m.id,\n description: \"\",\n tasks: m.tasks,\n provider_config: { model_name: m.id },\n metadata: {},\n },\n raw: m,\n }));\n}\n\nexport const HFI_ModelSearch: AiProviderRunFn<ModelSearchTaskInput, ModelSearchTaskOutput> = async (\n input,\n _model,\n _onProgress,\n signal\n) => {\n const query = input.query?.trim() ?? \"\";\n if (!input.credential_key) {\n const fallback = buildFallbackResults();\n const labeled = fallback.map((r) => ({ label: r.label, value: r.id }));\n const filtered = filterLabeledModelsByQuery(labeled, query).map(\n (m) => fallback.find((r) => r.id === m.value)!\n );\n return { results: filtered };\n }\n\n const entries = await searchHfModels(query, undefined, undefined, signal, input.credential_key);\n const results = entries.map((entry) => {\n const imageEntry = HFI_IMAGE_MODELS.find((m) => m.id === entry.id);\n const mapped = mapHfModelResult(entry, HF_INFERENCE);\n if (imageEntry) {\n // Merge explicit task list into the mapped record.\n mapped.record.tasks = imageEntry.tasks;\n }\n return mapped;\n });\n return { results };\n};\n",
10
+ "/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type { AiProviderRegisterOptions } from \"@workglow/ai\";\nimport { registerProviderWithWorker } from \"@workglow/ai/provider-utils\";\nimport { HfInferenceQueuedProvider } from \"./HfInferenceQueuedProvider\";\nimport { registerHfImageValidator } from \"./common/HFI_ImageValidation\";\n\nexport async function registerHfInference(\n options: AiProviderRegisterOptions & {\n worker: Worker | (() => Worker);\n }\n): Promise<void> {\n registerHfImageValidator();\n await registerProviderWithWorker(\n new HfInferenceQueuedProvider(),\n \"Hugging Face Inference\",\n options\n );\n}\n",
11
+ "/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { AiProvider } from \"@workglow/ai\";\nimport { createCloudProviderClass } from \"@workglow/ai/provider-utils\";\nimport { HF_INFERENCE } from \"./common/HFI_Constants\";\nimport type { HfInferenceModelConfig } from \"./common/HFI_ModelSchema\";\n\nconst HFI_QUEUED_TASK_TYPES = [\n \"ModelInfoTask\",\n \"TextGenerationTask\",\n \"TextEmbeddingTask\",\n \"TextRewriterTask\",\n \"TextSummaryTask\",\n \"ToolCallingTask\",\n \"ModelSearchTask\",\n \"ImageGenerateTask\",\n \"ImageEditTask\",\n] as const;\n\n/** Main-thread registration (inline or worker-backed). No queue — uses direct execution. */\nexport class HfInferenceQueuedProvider extends createCloudProviderClass<\n HfInferenceModelConfig,\n typeof HFI_QUEUED_TASK_TYPES\n>(AiProvider, {\n name: HF_INFERENCE,\n displayName: \"Hugging Face Inference\",\n taskTypes: HFI_QUEUED_TASK_TYPES,\n}) {}\n"
12
+ ],
13
+ "mappings": "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",
14
+ "debugId": "4A06452CE7A9419E64756E2164756E21",
15
+ "names": []
16
+ }
package/package.json CHANGED
@@ -2,53 +2,49 @@
2
2
  "name": "@workglow/huggingface-inference",
3
3
  "type": "module",
4
4
  "sideEffects": false,
5
- "version": "0.2.31",
5
+ "version": "0.2.33",
6
6
  "repository": {
7
7
  "type": "git",
8
- "url": "https://github.com/workglow-dev/workglow.git",
8
+ "url": "https://github.com/workglow-dev/libs.git",
9
9
  "directory": "packages/huggingface-inference"
10
10
  },
11
- "description": "HuggingFace Inference API provider for @workglow/ai-provider.",
11
+ "description": "HuggingFace Inference API provider for @workglow/ai.",
12
12
  "scripts": {
13
13
  "watch": "concurrently -c 'auto' 'bun:watch-*'",
14
- "watch-code": "bun build --watch --no-clear-screen --sourcemap=external --packages=external --root ./src --outdir ./dist ./src/ai-provider.ts ./src/ai-provider-runtime.ts",
14
+ "watch-code": "bun build --watch --no-clear-screen --sourcemap=external --packages=external --root ./src --outdir ./dist ./src/ai.ts ./src/ai-runtime.ts",
15
15
  "watch-types": "tsc --watch --preserveWatchOutput",
16
16
  "build-package": "concurrently -c 'auto' -n 'code,types' 'bun run build-code' 'bun run build-types'",
17
17
  "build-js": "bun run build-code",
18
18
  "build-clean": "rm -fr dist/* tsconfig.tsbuildinfo",
19
- "build-code": "bun build --sourcemap=external --packages=external --root ./src --outdir ./dist ./src/ai-provider.ts ./src/ai-provider-runtime.ts",
19
+ "build-code": "bun build --sourcemap=external --packages=external --root ./src --outdir ./dist ./src/ai.ts ./src/ai-runtime.ts",
20
20
  "build-types": "rm -f tsconfig.tsbuildinfo && tsgo",
21
21
  "lint": "eslint . --ext ts,tsx --report-unused-disable-directives --max-warnings 0",
22
22
  "test": "bun test"
23
23
  },
24
24
  "exports": {
25
- "./ai-provider": {
26
- "types": "./dist/ai-provider.d.ts",
27
- "import": "./dist/ai-provider.js"
25
+ "./ai": {
26
+ "types": "./dist/ai.d.ts",
27
+ "import": "./dist/ai.js"
28
28
  },
29
- "./ai-provider-runtime": {
30
- "types": "./dist/ai-provider-runtime.d.ts",
31
- "import": "./dist/ai-provider-runtime.js"
29
+ "./ai-runtime": {
30
+ "types": "./dist/ai-runtime.d.ts",
31
+ "import": "./dist/ai-runtime.js"
32
32
  }
33
33
  },
34
34
  "dependencies": {
35
35
  "@huggingface/inference": "^4.13.15"
36
36
  },
37
37
  "peerDependencies": {
38
- "@workglow/ai": "0.2.31",
39
- "@workglow/ai-provider": "0.2.31",
40
- "@workglow/job-queue": "0.2.31",
41
- "@workglow/storage": "0.2.31",
42
- "@workglow/task-graph": "0.2.31",
43
- "@workglow/util": "0.2.31"
38
+ "@workglow/ai": "0.2.33",
39
+ "@workglow/job-queue": "0.2.33",
40
+ "@workglow/storage": "0.2.33",
41
+ "@workglow/task-graph": "0.2.33",
42
+ "@workglow/util": "0.2.33"
44
43
  },
45
44
  "peerDependenciesMeta": {
46
45
  "@workglow/ai": {
47
46
  "optional": false
48
47
  },
49
- "@workglow/ai-provider": {
50
- "optional": false
51
- },
52
48
  "@workglow/job-queue": {
53
49
  "optional": false
54
50
  },
@@ -63,12 +59,11 @@
63
59
  }
64
60
  },
65
61
  "devDependencies": {
66
- "@workglow/ai": "0.2.31",
67
- "@workglow/ai-provider": "0.2.31",
68
- "@workglow/job-queue": "0.2.31",
69
- "@workglow/storage": "0.2.31",
70
- "@workglow/task-graph": "0.2.31",
71
- "@workglow/util": "0.2.31"
62
+ "@workglow/ai": "0.2.33",
63
+ "@workglow/job-queue": "0.2.33",
64
+ "@workglow/storage": "0.2.33",
65
+ "@workglow/task-graph": "0.2.33",
66
+ "@workglow/util": "0.2.33"
72
67
  },
73
68
  "files": [
74
69
  "dist",
@@ -1 +0,0 @@
1
- {"version":3,"file":"HfInferenceProvider.d.ts","sourceRoot":"","sources":["../../src/ai-provider/HfInferenceProvider.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAejD;;;GAGG;AACH,qBAAa,mBAAoB,SAAQ,wBAOvC;CAAG"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"HfInferenceQueuedProvider.d.ts","sourceRoot":"","sources":["../../src/ai-provider/HfInferenceQueuedProvider.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiB1C,4FAA4F;AAC5F,qBAAa,yBAA0B,SAAQ,8BAO7C;CAAG"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"HFI_AspectRatio.d.ts","sourceRoot":"","sources":["../../../src/ai-provider/common/HFI_AspectRatio.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,MAAM,WAAW,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK,GAAG,KAAK,CAAC;AAElE,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAyBD,qFAAqF;AACrF,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,GAAG,SAAS,CAGvF;AAED,wFAAwF;AACxF,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAE5D"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"HFI_Client.d.ts","sourceRoot":"","sources":["../../../src/ai-provider/common/HFI_Client.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;AACxE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAIhE,wBAAsB,kBAAkB,qDAQvC;AASD,wBAAsB,SAAS,CAAC,KAAK,EAAE,sBAAsB,GAAG,SAAS,6DAexE;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,sBAAsB,GAAG,SAAS,GAAG,MAAM,CAM9E;AAED,wBAAgB,WAAW,CACzB,KAAK,EAAE,sBAAsB,GAAG,SAAS,GACxC,yBAAyB,GAAG,SAAS,CAEvC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"HFI_Constants.d.ts","sourceRoot":"","sources":["../../../src/ai-provider/common/HFI_Constants.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,eAAO,MAAM,YAAY,iBAAiB,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"HFI_ImageEdit.d.ts","sourceRoot":"","sources":["../../../src/ai-provider/common/HFI_ImageEdit.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EACV,eAAe,EACf,kBAAkB,EAClB,kBAAkB,EAClB,mBAAmB,EAEpB,MAAM,cAAc,CAAC;AAOtB,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AA0BhE,eAAO,MAAM,aAAa,EAAE,eAAe,CACzC,kBAAkB,EAClB,mBAAmB,EACnB,sBAAsB,CAoDvB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,oBAAoB,EAAE,kBAAkB,CACnD,kBAAkB,EAClB,mBAAmB,EACnB,sBAAsB,CAMvB,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"HFI_ImageGenerate.d.ts","sourceRoot":"","sources":["../../../src/ai-provider/common/HFI_ImageGenerate.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EACV,eAAe,EACf,kBAAkB,EAClB,sBAAsB,EACtB,uBAAuB,EAExB,MAAM,cAAc,CAAC;AAMtB,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAYhE,eAAO,MAAM,iBAAiB,EAAE,eAAe,CAC7C,sBAAsB,EACtB,uBAAuB,EACvB,sBAAsB,CAyCvB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,wBAAwB,EAAE,kBAAkB,CACvD,sBAAsB,EACtB,uBAAuB,EACvB,sBAAsB,CAMvB,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"HFI_ImageValidation.d.ts","sourceRoot":"","sources":["../../../src/ai-provider/common/HFI_ImageValidation.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAQH,wBAAgB,wBAAwB,IAAI,IAAI,CA8B/C"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"HFI_JobRunFns.d.ts","sourceRoot":"","sources":["../../../src/ai-provider/common/HFI_JobRunFns.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AACxE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAGhE,OAAO,EAAE,kBAAkB,EAAE,SAAS,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAWxF,eAAO,MAAM,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,GAAG,EAAE,GAAG,EAAE,sBAAsB,CAAC,CAUvF,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,MAAM,CACnC,MAAM,EACN,kBAAkB,CAAC,GAAG,EAAE,GAAG,EAAE,sBAAsB,CAAC,CAQrD,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"HFI_ModelInfo.d.ts","sourceRoot":"","sources":["../../../src/ai-provider/common/HFI_ModelInfo.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAC7F,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAEhE,eAAO,MAAM,aAAa,EAAE,eAAe,CACzC,kBAAkB,EAClB,mBAAmB,EACnB,sBAAsB,CA8BvB,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"HFI_ModelSchema.d.ts","sourceRoot":"","sources":["../../../src/ai-provider/common/HFI_ModelSchema.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAwB,UAAU,EAAE,MAAM,uBAAuB,CAAC;AAGzE,eAAO,MAAM,sBAAsB;mBAC3B,QAAQ;;iBAEZ,QAAQ;qBACN,KAAK;qBACL,WAAW,EAAE,qDAAqD;;iBAEpE,eAAe;qBACb,IAAI,EAAE,QAAQ;qBACd,WAAW,EAAE,gDAAgD;qBAC7D,UAAU;yBACR,UAAU;6BACR,IAAI,EAAE,QAAQ;6BACd,WAAW,EACT,gFAAgF;;yBAEpF,cAAc;6BACZ,IAAI,EAAE,QAAQ;6BACd,MAAM,EAAE,YAAY;6BACpB,WAAW,EAAE,yDAAyD;6BACtE,aAAa;;yBAEf,QAAQ;6BACN,IAAI,EAAE,QAAQ;6BACd,WAAW,EACT,iGAAiG;;;qBAGvG,QAAQ;qBACR,oBAAoB;;;;;CAKe,CAAC;AAE1C,eAAO,MAAM,4BAA4B;mBACjC,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;qBAjCV,KAAK;qBACL,WAAW,EAAE,qDAAqD;;;qBAGlE,IAAI,EAAE,QAAQ;qBACd,WAAW,EAAE,gDAAgD;qBAC7D,UAAU;yBACR,UAAU;6BACR,IAAI,EAAE,QAAQ;6BACd,WAAW,EACT,gFAAgF;;yBAEpF,cAAc;6BACZ,IAAI,EAAE,QAAQ;6BACd,MAAM,EAAE,YAAY;6BACpB,WAAW,EAAE,yDAAyD;6BACtE,aAAa;;yBAEf,QAAQ;6BACN,IAAI,EAAE,QAAQ;6BACd,WAAW,EACT,iGAAiG;;;qBAGvG,QAAQ;qBACR,oBAAoB;;;;;CAee,CAAC;AAE1C,MAAM,MAAM,sBAAsB,GAAG,UAAU,CAAC,OAAO,4BAA4B,CAAC,CAAC;AAErF,eAAO,MAAM,4BAA4B;mBACjC,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;qBA7CV,KAAK;qBACL,WAAW,EAAE,qDAAqD;;;qBAGlE,IAAI,EAAE,QAAQ;qBACd,WAAW,EAAE,gDAAgD;qBAC7D,UAAU;yBACR,UAAU;6BACR,IAAI,EAAE,QAAQ;6BACd,WAAW,EACT,gFAAgF;;yBAEpF,cAAc;6BACZ,IAAI,EAAE,QAAQ;6BACd,MAAM,EAAE,YAAY;6BACpB,WAAW,EAAE,yDAAyD;6BACtE,aAAa;;yBAEf,QAAQ;6BACN,IAAI,EAAE,QAAQ;6BACd,WAAW,EACT,iGAAiG;;;qBAGvG,QAAQ;qBACR,oBAAoB;;;;;CA2Be,CAAC;AAE1C,MAAM,MAAM,sBAAsB,GAAG,UAAU,CAAC,OAAO,4BAA4B,CAAC,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"HFI_ModelSearch.d.ts","sourceRoot":"","sources":["../../../src/ai-provider/common/HFI_ModelSearch.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EACV,eAAe,EAEf,oBAAoB,EACpB,qBAAqB,EACtB,MAAM,cAAc,CAAC;AA6BtB,eAAO,MAAM,eAAe,EAAE,eAAe,CAAC,oBAAoB,EAAE,qBAAqB,CA2BxF,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"HFI_TextEmbedding.d.ts","sourceRoot":"","sources":["../../../src/ai-provider/common/HFI_TextEmbedding.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EACV,eAAe,EACf,sBAAsB,EACtB,uBAAuB,EACxB,MAAM,cAAc,CAAC;AAEtB,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAGhE,eAAO,MAAM,iBAAiB,EAAE,eAAe,CAC7C,sBAAsB,EACtB,uBAAuB,EACvB,sBAAsB,CAyCvB,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"HFI_TextGeneration.d.ts","sourceRoot":"","sources":["../../../src/ai-provider/common/HFI_TextGeneration.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EACV,eAAe,EACf,kBAAkB,EAClB,uBAAuB,EACvB,wBAAwB,EACzB,MAAM,cAAc,CAAC;AAGtB,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAGhE,eAAO,MAAM,kBAAkB,EAAE,eAAe,CAC9C,uBAAuB,EACvB,wBAAwB,EACxB,sBAAsB,CA2BvB,CAAC;AAEF,eAAO,MAAM,yBAAyB,EAAE,kBAAkB,CACxD,uBAAuB,EACvB,wBAAwB,EACxB,sBAAsB,CA0BvB,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"HFI_TextRewriter.d.ts","sourceRoot":"","sources":["../../../src/ai-provider/common/HFI_TextRewriter.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EACV,eAAe,EACf,kBAAkB,EAClB,qBAAqB,EACrB,sBAAsB,EACvB,MAAM,cAAc,CAAC;AAEtB,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAGhE,eAAO,MAAM,gBAAgB,EAAE,eAAe,CAC5C,qBAAqB,EACrB,sBAAsB,EACtB,sBAAsB,CAqBvB,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,kBAAkB,CACtD,qBAAqB,EACrB,sBAAsB,EACtB,sBAAsB,CAyBvB,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"HFI_TextSummary.d.ts","sourceRoot":"","sources":["../../../src/ai-provider/common/HFI_TextSummary.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EACV,eAAe,EACf,kBAAkB,EAClB,oBAAoB,EACpB,qBAAqB,EACtB,MAAM,cAAc,CAAC;AAEtB,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAGhE,eAAO,MAAM,eAAe,EAAE,eAAe,CAC3C,oBAAoB,EACpB,qBAAqB,EACrB,sBAAsB,CAqBvB,CAAC;AAEF,eAAO,MAAM,sBAAsB,EAAE,kBAAkB,CACrD,oBAAoB,EACpB,qBAAqB,EACrB,sBAAsB,CAyBvB,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"HFI_ToolCalling.d.ts","sourceRoot":"","sources":["../../../src/ai-provider/common/HFI_ToolCalling.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EACV,eAAe,EACf,kBAAkB,EAClB,oBAAoB,EACpB,qBAAqB,EACtB,MAAM,cAAc,CAAC;AAQtB,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAGhE,eAAO,MAAM,eAAe,EAAE,eAAe,CAC3C,oBAAoB,EACpB,qBAAqB,EACrB,sBAAsB,CAgCvB,CAAC;AAEF,eAAO,MAAM,sBAAsB,EAAE,kBAAkB,CACrD,oBAAoB,EACpB,qBAAqB,EACrB,sBAAsB,CA2BvB,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ai-provider/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,0BAA0B,CAAC;AACzC,cAAc,wBAAwB,CAAC;AACvC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,0BAA0B,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,uBAAuB,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"registerHfInference.d.ts","sourceRoot":"","sources":["../../src/ai-provider/registerHfInference.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,cAAc,CAAC;AAK9D,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,yBAAyB,GAAG;IACnC,MAAM,EAAE,MAAM,GAAG,CAAC,MAAM,MAAM,CAAC,CAAC;CACjC,GACA,OAAO,CAAC,IAAI,CAAC,CAOf"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"registerHfInferenceInline.d.ts","sourceRoot":"","sources":["../../src/ai-provider/registerHfInferenceInline.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,cAAc,CAAC;AAM9D,wBAAsB,yBAAyB,CAC7C,OAAO,CAAC,EAAE,yBAAyB,GAClC,OAAO,CAAC,IAAI,CAAC,CAOf"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"registerHfInferenceWorker.d.ts","sourceRoot":"","sources":["../../src/ai-provider/registerHfInferenceWorker.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,wBAAsB,yBAAyB,IAAI,OAAO,CAAC,IAAI,CAAC,CAK/D"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../src/ai-provider/runtime.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;;;;;GAMG;AACH,cAAc,qBAAqB,CAAC;AACpC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,6BAA6B,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"ai-provider-runtime.d.ts","sourceRoot":"","sources":["../src/ai-provider-runtime.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,uBAAuB,CAAC"}
@@ -1,27 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../src/ai-provider/common/HFI_Client.ts", "../src/ai-provider/registerHfInferenceInline.ts", "../src/ai-provider/common/HFI_ModelSearch.ts", "../src/ai-provider/common/HFI_Constants.ts", "../src/ai-provider/common/HFI_ImageEdit.ts", "../src/ai-provider/common/HFI_AspectRatio.ts", "../src/ai-provider/common/HFI_ImageGenerate.ts", "../src/ai-provider/common/HFI_ModelInfo.ts", "../src/ai-provider/common/HFI_TextEmbedding.ts", "../src/ai-provider/common/HFI_TextGeneration.ts", "../src/ai-provider/common/HFI_TextRewriter.ts", "../src/ai-provider/common/HFI_TextSummary.ts", "../src/ai-provider/common/HFI_ToolCalling.ts", "../src/ai-provider/common/HFI_JobRunFns.ts", "../src/ai-provider/HfInferenceQueuedProvider.ts", "../src/ai-provider/common/HFI_ImageValidation.ts", "../src/ai-provider/registerHfInferenceWorker.ts", "../src/ai-provider/HfInferenceProvider.ts"],
4
- "sourcesContent": [
5
- "/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { loadProviderSdk, resolveApiKey } from \"@workglow/ai-provider/common\";\nimport type { InferenceProviderOrPolicy } from \"@huggingface/inference\";\nimport type { HfInferenceModelConfig } from \"./HFI_ModelSchema\";\n\nlet _sdk: typeof import(\"@huggingface/inference\") | undefined;\n\nexport async function loadHfInferenceSDK() {\n if (!_sdk) {\n _sdk = await loadProviderSdk<typeof import(\"@huggingface/inference\")>(\n \"@huggingface/inference\",\n \"Hugging Face Inference\"\n );\n }\n return _sdk;\n}\n\ninterface ResolvedProviderConfig {\n readonly credential_key?: string;\n readonly api_key?: string;\n readonly model_name?: string;\n readonly provider?: string;\n}\n\nexport async function getClient(model: HfInferenceModelConfig | undefined) {\n const sdk = await loadHfInferenceSDK();\n const config = model?.provider_config as ResolvedProviderConfig | undefined;\n const apiKey = resolveApiKey({\n config,\n envVar: \"HF_TOKEN\",\n providerLabel: \"Hugging Face\",\n });\n try {\n return new sdk.InferenceClient(apiKey);\n } catch (err) {\n throw new Error(\n `Failed to create HuggingFace Inference client: ${err instanceof Error ? err.message : \"unknown error\"}`\n );\n }\n}\n\nexport function getModelName(model: HfInferenceModelConfig | undefined): string {\n const name = model?.provider_config?.model_name;\n if (!name) {\n throw new Error(\"Missing model name in provider_config.model_name.\");\n }\n return name;\n}\n\nexport function getProvider(\n model: HfInferenceModelConfig | undefined\n): InferenceProviderOrPolicy | undefined {\n return model?.provider_config?.provider as InferenceProviderOrPolicy | undefined;\n}\n",
6
- "/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type { AiProviderRegisterOptions } from \"@workglow/ai\";\nimport { registerProviderInline } from \"@workglow/ai-provider/common\";\nimport { HFI_STREAM_TASKS, HFI_TASKS } from \"./common/HFI_JobRunFns\";\nimport { HfInferenceQueuedProvider } from \"./HfInferenceQueuedProvider\";\nimport { registerHfImageValidator } from \"./common/HFI_ImageValidation\";\n\nexport async function registerHfInferenceInline(\n options?: AiProviderRegisterOptions\n): Promise<void> {\n registerHfImageValidator();\n await registerProviderInline(\n new HfInferenceQueuedProvider(HFI_TASKS, HFI_STREAM_TASKS),\n \"Hugging Face Inference\",\n options\n );\n}\n",
7
- "/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type {\n AiProviderRunFn,\n ModelSearchResultItem,\n ModelSearchTaskInput,\n ModelSearchTaskOutput,\n} from \"@workglow/ai\";\nimport { mapHfModelResult, searchHfModels } from \"@workglow/ai-provider/common\";\nimport { filterLabeledModelsByQuery } from \"@workglow/ai-provider/common\";\nimport { HF_INFERENCE } from \"./HFI_Constants\";\n\n/** Models with explicit task overrides (HF pipeline tags don't cover ImageGenerateTask/ImageEditTask). */\nconst HFI_IMAGE_MODELS: Array<{ id: string; tasks: string[] }> = [\n { id: \"black-forest-labs/FLUX.1-schnell\", tasks: [\"ImageGenerateTask\"] },\n { id: \"black-forest-labs/FLUX.1-Kontext-dev\", tasks: [\"ImageEditTask\"] },\n];\n\nfunction buildFallbackResults(): ModelSearchResultItem[] {\n return HFI_IMAGE_MODELS.map((m) => ({\n id: m.id,\n label: m.id,\n description: \"\",\n record: {\n model_id: m.id,\n provider: HF_INFERENCE,\n title: m.id.split(\"/\").pop() ?? m.id,\n description: \"\",\n tasks: m.tasks,\n provider_config: { model_name: m.id },\n metadata: {},\n },\n raw: m,\n }));\n}\n\nexport const HFI_ModelSearch: AiProviderRunFn<ModelSearchTaskInput, ModelSearchTaskOutput> = async (\n input,\n _model,\n _onProgress,\n signal\n) => {\n const query = input.query?.trim() ?? \"\";\n if (!input.credential_key) {\n const fallback = buildFallbackResults();\n const labeled = fallback.map((r) => ({ label: r.label, value: r.id }));\n const filtered = filterLabeledModelsByQuery(labeled, query).map(\n (m) => fallback.find((r) => r.id === m.value)!\n );\n return { results: filtered };\n }\n\n const entries = await searchHfModels(query, undefined, undefined, signal, input.credential_key);\n const results = entries.map((entry) => {\n const imageEntry = HFI_IMAGE_MODELS.find((m) => m.id === entry.id);\n const mapped = mapHfModelResult(entry, HF_INFERENCE);\n if (imageEntry) {\n // Merge explicit task list into the mapped record.\n mapped.record.tasks = imageEntry.tasks;\n }\n return mapped;\n });\n return { results };\n};\n",
8
- "/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nexport const HF_INFERENCE = \"HF_INFERENCE\";\n",
9
- "/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type {\n AiProviderRunFn,\n AiProviderStreamFn,\n ImageEditTaskInput,\n ImageEditTaskOutput,\n ModelConfig,\n} from \"@workglow/ai\";\nimport { ImageGenerationContentPolicyError, ImageGenerationProviderError } from \"@workglow/ai\";\nimport type { StreamEvent } from \"@workglow/task-graph\";\nimport type { ImageValue } from \"@workglow/util/media\";\nimport { getLogger } from \"@workglow/util/worker\";\n\nimport { blobToImageValue, imageValueToPngBytes } from \"@workglow/ai-provider/common\";\nimport type { HfInferenceModelConfig } from \"./HFI_ModelSchema\";\nimport { getClient, getModelName } from \"./HFI_Client\";\nimport { resolveHfImageDims } from \"./HFI_AspectRatio\";\n\nfunction modelIdOf(model: ModelConfig | undefined): string {\n return (\n model?.model_id ??\n (model?.provider_config as { model_name?: string } | undefined)?.model_name ??\n \"huggingface\"\n );\n}\n\n/**\n * Convert an inbound `ImageValue` (or a legacy data URI string) to a PNG Blob.\n */\nasync function gpuImageToBlob(image: ImageValue | string): Promise<Blob> {\n const bytes = await imageValueToPngBytes(image);\n // Copy into a fresh ArrayBuffer to avoid SharedArrayBuffer typing issues\n // with BlobPart.\n const buffer: ArrayBuffer =\n bytes.buffer instanceof ArrayBuffer\n ? bytes.buffer.slice(bytes.byteOffset, bytes.byteOffset + bytes.byteLength)\n : new Uint8Array(bytes).buffer;\n return new Blob([buffer], { type: \"image/png\" });\n}\n\nexport const HFI_ImageEdit: AiProviderRunFn<\n ImageEditTaskInput,\n ImageEditTaskOutput,\n HfInferenceModelConfig\n> = async (input, model, update_progress, signal) => {\n const logger = getLogger();\n const timer = `hfi:ImageEdit:${getModelName(model)}`;\n logger.time(timer);\n update_progress(0, \"Starting HF image edit\");\n\n try {\n const client = await getClient(model);\n const modelName = getModelName(model);\n const dims = resolveHfImageDims(modelName, (input.aspectRatio as any) ?? \"1:1\");\n\n // image/mask may be data URI strings if the input crossed an earlier\n // worker boundary in legacy form; otherwise they are ImageValue POJOs.\n const inputBlob = await gpuImageToBlob(input.image as unknown as ImageValue | string);\n const params: Record<string, unknown> = {\n width: dims.width,\n height: dims.height,\n seed: input.seed,\n negative_prompt: input.negativePrompt,\n prompt: input.prompt,\n ...(input.providerOptions ?? {}),\n };\n if (input.mask) {\n // Validator (Task 17) rejects masks on non-inpainting models before this code runs.\n const maskBlob = await gpuImageToBlob(input.mask as unknown as ImageValue | string);\n params.mask_image = maskBlob;\n }\n\n const blob: Blob = await client.imageToImage(\n {\n model: modelName,\n inputs: inputBlob,\n parameters: params,\n },\n { signal }\n );\n const image = await blobToImageValue(blob);\n update_progress(100, \"Completed HF image edit\");\n logger.timeEnd(timer);\n return { image };\n } catch (err) {\n if (\n err instanceof ImageGenerationProviderError ||\n err instanceof ImageGenerationContentPolicyError\n )\n throw err;\n const msg = err instanceof Error ? err.message : \"unknown error\";\n if (/NSFW|safety|policy/i.test(msg))\n throw new ImageGenerationContentPolicyError(modelIdOf(model), msg);\n throw new ImageGenerationProviderError(modelIdOf(model), msg, { cause: err as Error });\n }\n};\n\n/**\n * One-shot stream wrapper. HF Inference does not support partial image streaming,\n * so we call the non-streaming run function, yield one snapshot, then finish.\n */\nexport const HFI_ImageEdit_Stream: AiProviderStreamFn<\n ImageEditTaskInput,\n ImageEditTaskOutput,\n HfInferenceModelConfig\n> = async function* (input, model, signal): AsyncIterable<StreamEvent<ImageEditTaskOutput>> {\n const result = await HFI_ImageEdit(input, model, () => {}, signal);\n if (signal.aborted) return;\n yield { type: \"snapshot\", data: result } as StreamEvent<ImageEditTaskOutput>;\n yield { type: \"finish\", data: {} as ImageEditTaskOutput };\n};\n",
10
- "/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nexport type AspectRatio = \"1:1\" | \"16:9\" | \"9:16\" | \"4:3\" | \"3:4\";\n\nexport interface ImageDims {\n width: number;\n height: number;\n}\n\nconst FLUX_DIMS: Record<AspectRatio, ImageDims> = {\n \"1:1\": { width: 1024, height: 1024 },\n \"16:9\": { width: 1344, height: 768 },\n \"9:16\": { width: 768, height: 1344 },\n \"4:3\": { width: 1152, height: 896 },\n \"3:4\": { width: 896, height: 1152 },\n};\n\nconst SDXL_DIMS: Record<AspectRatio, ImageDims> = {\n \"1:1\": { width: 1024, height: 1024 },\n \"16:9\": { width: 1280, height: 720 },\n \"9:16\": { width: 720, height: 1280 },\n \"4:3\": { width: 1024, height: 768 },\n \"3:4\": { width: 768, height: 1024 },\n};\n\nconst DEFAULT_DIMS: Record<AspectRatio, ImageDims> = SDXL_DIMS;\n\nconst MODEL_DIM_TABLE: Array<{ pattern: RegExp; dims: Record<AspectRatio, ImageDims> }> = [\n { pattern: /^black-forest-labs\\/FLUX/i, dims: FLUX_DIMS },\n { pattern: /^stabilityai\\/.*-xl/i, dims: SDXL_DIMS },\n];\n\n/** Resolves output dims for a model id and aspect ratio. Falls back to SDXL dims. */\nexport function resolveHfImageDims(modelId: string, aspectRatio: AspectRatio): ImageDims {\n const entry = MODEL_DIM_TABLE.find((e) => e.pattern.test(modelId));\n return (entry?.dims ?? DEFAULT_DIMS)[aspectRatio];\n}\n\n/** Returns true if the model id matches a known inpainting variant (mask supported). */\nexport function isHfInpaintingModel(modelId: string): boolean {\n return /inpaint|kontext/i.test(modelId);\n}\n",
11
- "/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type {\n AiProviderRunFn,\n AiProviderStreamFn,\n ImageGenerateTaskInput,\n ImageGenerateTaskOutput,\n ModelConfig,\n} from \"@workglow/ai\";\nimport { ImageGenerationContentPolicyError, ImageGenerationProviderError } from \"@workglow/ai\";\nimport type { StreamEvent } from \"@workglow/task-graph\";\nimport { getLogger } from \"@workglow/util/worker\";\n\nimport { blobToImageValue } from \"@workglow/ai-provider/common\";\nimport type { HfInferenceModelConfig } from \"./HFI_ModelSchema\";\nimport { getClient, getModelName } from \"./HFI_Client\";\nimport { resolveHfImageDims } from \"./HFI_AspectRatio\";\n\nfunction modelIdOf(model: ModelConfig | undefined): string {\n return (\n model?.model_id ??\n (model?.provider_config as { model_name?: string } | undefined)?.model_name ??\n \"huggingface\"\n );\n}\n\nexport const HFI_ImageGenerate: AiProviderRunFn<\n ImageGenerateTaskInput,\n ImageGenerateTaskOutput,\n HfInferenceModelConfig\n> = async (input, model, update_progress, signal) => {\n const logger = getLogger();\n const timer = `hfi:ImageGenerate:${getModelName(model)}`;\n logger.time(timer);\n update_progress(0, \"Starting HF image generation\");\n\n try {\n const client = await getClient(model);\n const modelName = getModelName(model);\n const dims = resolveHfImageDims(modelName, (input.aspectRatio as any) ?? \"1:1\");\n\n const blob: Blob = await client.textToImage(\n {\n model: modelName,\n inputs: input.prompt,\n parameters: {\n width: dims.width,\n height: dims.height,\n seed: input.seed,\n negative_prompt: input.negativePrompt,\n ...(input.providerOptions ?? {}),\n },\n },\n { outputType: \"blob\" as const, signal }\n );\n const image = await blobToImageValue(blob);\n update_progress(100, \"Completed HF image generation\");\n logger.timeEnd(timer);\n return { image };\n } catch (err) {\n if (\n err instanceof ImageGenerationProviderError ||\n err instanceof ImageGenerationContentPolicyError\n )\n throw err;\n const msg = err instanceof Error ? err.message : \"unknown error\";\n if (/NSFW|safety|policy/i.test(msg))\n throw new ImageGenerationContentPolicyError(modelIdOf(model), msg);\n throw new ImageGenerationProviderError(modelIdOf(model), msg, { cause: err as Error });\n }\n};\n\n/**\n * One-shot stream wrapper. HF Inference does not support partial image streaming,\n * so we call the non-streaming run function, yield one snapshot, then finish.\n */\nexport const HFI_ImageGenerate_Stream: AiProviderStreamFn<\n ImageGenerateTaskInput,\n ImageGenerateTaskOutput,\n HfInferenceModelConfig\n> = async function* (input, model, signal): AsyncIterable<StreamEvent<ImageGenerateTaskOutput>> {\n const result = await HFI_ImageGenerate(input, model, () => {}, signal);\n if (signal.aborted) return;\n yield { type: \"snapshot\", data: result } as StreamEvent<ImageGenerateTaskOutput>;\n yield { type: \"finish\", data: {} as ImageGenerateTaskOutput };\n};\n",
12
- "/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type { AiProviderRunFn, ModelInfoTaskInput, ModelInfoTaskOutput } from \"@workglow/ai\";\nimport type { HfInferenceModelConfig } from \"./HFI_ModelSchema\";\n\nexport const HFI_ModelInfo: AiProviderRunFn<\n ModelInfoTaskInput,\n ModelInfoTaskOutput,\n HfInferenceModelConfig\n> = async (input, model) => {\n if (input.detail === \"dimensions\") {\n const pc = model?.provider_config as Record<string, unknown>;\n const native_dimensions =\n typeof pc?.native_dimensions === \"number\" ? pc.native_dimensions : undefined;\n const mrl = typeof pc?.mrl === \"boolean\" ? pc.mrl : false;\n return {\n model: input.model,\n is_local: false,\n is_remote: true,\n supports_browser: true,\n supports_node: true,\n is_cached: false,\n is_loaded: false,\n file_sizes: null,\n ...(native_dimensions !== undefined ? { native_dimensions } : {}),\n ...(mrl ? { mrl } : {}),\n };\n }\n return {\n model: input.model,\n is_local: false,\n is_remote: true,\n supports_browser: true,\n supports_node: true,\n is_cached: false,\n is_loaded: false,\n file_sizes: null,\n };\n};\n",
13
- "/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type {\n AiProviderRunFn,\n TextEmbeddingTaskInput,\n TextEmbeddingTaskOutput,\n} from \"@workglow/ai\";\nimport { getLogger } from \"@workglow/util/worker\";\nimport type { HfInferenceModelConfig } from \"./HFI_ModelSchema\";\nimport { getClient, getModelName } from \"./HFI_Client\";\n\nexport const HFI_TextEmbedding: AiProviderRunFn<\n TextEmbeddingTaskInput,\n TextEmbeddingTaskOutput,\n HfInferenceModelConfig\n> = async (input, model, update_progress, signal) => {\n const logger = getLogger();\n const timerLabel = `hfi:TextEmbedding:${model?.provider_config?.model_name}`;\n logger.time(timerLabel, { model: model?.provider_config?.model_name });\n\n update_progress(0, \"Starting HF Inference text embedding\");\n const client = await getClient(model);\n const modelName = getModelName(model);\n\n if (Array.isArray(input.text)) {\n const embeddings = await Promise.all(\n input.text.map((text) =>\n client.featureExtraction(\n {\n model: modelName,\n inputs: text,\n },\n { signal }\n )\n )\n );\n\n update_progress(100, \"Completed HF Inference text embedding\");\n logger.timeEnd(timerLabel, { model: model?.provider_config?.model_name, batch: true });\n return {\n vector: embeddings.map((embedding) => new Float32Array(embedding as unknown as number[])),\n };\n }\n\n const embedding = await client.featureExtraction(\n {\n model: modelName,\n inputs: input.text,\n },\n { signal }\n );\n\n update_progress(100, \"Completed HF Inference text embedding\");\n logger.timeEnd(timerLabel, { model: model?.provider_config?.model_name });\n return { vector: new Float32Array(embedding as unknown as number[]) };\n};\n",
14
- "/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\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 { HfInferenceModelConfig } from \"./HFI_ModelSchema\";\nimport { getClient, getModelName, getProvider } from \"./HFI_Client\";\n\nexport const HFI_TextGeneration: AiProviderRunFn<\n TextGenerationTaskInput,\n TextGenerationTaskOutput,\n HfInferenceModelConfig\n> = async (input, model, update_progress, signal) => {\n const logger = getLogger();\n const timerLabel = `hfi:TextGeneration:${model?.provider_config?.model_name}`;\n logger.time(timerLabel, { model: model?.provider_config?.model_name });\n\n update_progress(0, \"Starting HF Inference text generation\");\n const client = await getClient(model);\n const modelName = getModelName(model);\n const provider = getProvider(model);\n\n const response = await client.chatCompletion(\n {\n model: modelName,\n messages: [{ role: \"user\", content: input.prompt }],\n max_tokens: input.maxTokens,\n temperature: input.temperature,\n top_p: input.topP,\n frequency_penalty: input.frequencyPenalty,\n provider,\n },\n { signal }\n );\n\n update_progress(100, \"Completed HF Inference text generation\");\n logger.timeEnd(timerLabel, { model: model?.provider_config?.model_name });\n return { text: response.choices[0]?.message?.content ?? \"\" };\n};\n\nexport const HFI_TextGeneration_Stream: AiProviderStreamFn<\n TextGenerationTaskInput,\n TextGenerationTaskOutput,\n HfInferenceModelConfig\n> = async function* (input, model, signal): AsyncIterable<StreamEvent<TextGenerationTaskOutput>> {\n const client = await getClient(model);\n const modelName = getModelName(model);\n const provider = getProvider(model);\n\n const stream = client.chatCompletionStream(\n {\n model: modelName,\n messages: [{ role: \"user\", content: input.prompt }],\n max_tokens: input.maxTokens,\n temperature: input.temperature,\n top_p: input.topP,\n frequency_penalty: input.frequencyPenalty,\n provider,\n },\n { signal }\n );\n\n for await (const chunk of stream) {\n const delta = chunk.choices[0]?.delta?.content ?? \"\";\n if (delta) {\n yield { type: \"text-delta\", port: \"text\", textDelta: delta };\n }\n }\n yield { type: \"finish\", data: {} as TextGenerationTaskOutput };\n};\n",
15
- "/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type {\n AiProviderRunFn,\n AiProviderStreamFn,\n TextRewriterTaskInput,\n TextRewriterTaskOutput,\n} from \"@workglow/ai\";\nimport type { StreamEvent } from \"@workglow/task-graph\";\nimport type { HfInferenceModelConfig } from \"./HFI_ModelSchema\";\nimport { getClient, getModelName, getProvider } from \"./HFI_Client\";\n\nexport const HFI_TextRewriter: AiProviderRunFn<\n TextRewriterTaskInput,\n TextRewriterTaskOutput,\n HfInferenceModelConfig\n> = async (input, model, update_progress, signal) => {\n update_progress(0, \"Starting HF Inference text rewriting\");\n const client = await getClient(model);\n const modelName = getModelName(model);\n const provider = getProvider(model);\n\n const response = await client.chatCompletion(\n {\n model: modelName,\n messages: [\n { role: \"system\", content: input.prompt },\n { role: \"user\", content: input.text },\n ],\n provider,\n },\n { signal }\n );\n\n update_progress(100, \"Completed HF Inference text rewriting\");\n return { text: response.choices[0]?.message?.content ?? \"\" };\n};\n\nexport const HFI_TextRewriter_Stream: AiProviderStreamFn<\n TextRewriterTaskInput,\n TextRewriterTaskOutput,\n HfInferenceModelConfig\n> = async function* (input, model, signal): AsyncIterable<StreamEvent<TextRewriterTaskOutput>> {\n const client = await getClient(model);\n const modelName = getModelName(model);\n const provider = getProvider(model);\n\n const stream = client.chatCompletionStream(\n {\n model: modelName,\n messages: [\n { role: \"system\", content: input.prompt },\n { role: \"user\", content: input.text },\n ],\n provider,\n },\n { signal }\n );\n\n for await (const chunk of stream) {\n const delta = chunk.choices[0]?.delta?.content ?? \"\";\n if (delta) {\n yield { type: \"text-delta\", port: \"text\", textDelta: delta };\n }\n }\n yield { type: \"finish\", data: {} as TextRewriterTaskOutput };\n};\n",
16
- "/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type {\n AiProviderRunFn,\n AiProviderStreamFn,\n TextSummaryTaskInput,\n TextSummaryTaskOutput,\n} from \"@workglow/ai\";\nimport type { StreamEvent } from \"@workglow/task-graph\";\nimport type { HfInferenceModelConfig } from \"./HFI_ModelSchema\";\nimport { getClient, getModelName, getProvider } from \"./HFI_Client\";\n\nexport const HFI_TextSummary: AiProviderRunFn<\n TextSummaryTaskInput,\n TextSummaryTaskOutput,\n HfInferenceModelConfig\n> = async (input, model, update_progress, signal) => {\n update_progress(0, \"Starting HF Inference text summarization\");\n const client = await getClient(model);\n const modelName = getModelName(model);\n const provider = getProvider(model);\n\n const response = await client.chatCompletion(\n {\n model: modelName,\n messages: [\n { role: \"system\", content: \"Summarize the following text concisely.\" },\n { role: \"user\", content: input.text },\n ],\n provider,\n },\n { signal }\n );\n\n update_progress(100, \"Completed HF Inference text summarization\");\n return { text: response.choices[0]?.message?.content ?? \"\" };\n};\n\nexport const HFI_TextSummary_Stream: AiProviderStreamFn<\n TextSummaryTaskInput,\n TextSummaryTaskOutput,\n HfInferenceModelConfig\n> = async function* (input, model, signal): AsyncIterable<StreamEvent<TextSummaryTaskOutput>> {\n const client = await getClient(model);\n const modelName = getModelName(model);\n const provider = getProvider(model);\n\n const stream = client.chatCompletionStream(\n {\n model: modelName,\n messages: [\n { role: \"system\", content: \"Summarize the following text concisely.\" },\n { role: \"user\", content: input.text },\n ],\n provider,\n },\n { signal }\n );\n\n for await (const chunk of stream) {\n const delta = chunk.choices[0]?.delta?.content ?? \"\";\n if (delta) {\n yield { type: \"text-delta\", port: \"text\", textDelta: delta };\n }\n }\n yield { type: \"finish\", data: {} as TextSummaryTaskOutput };\n};\n",
17
- "/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { filterValidToolCalls, toOpenAIMessages } from \"@workglow/ai/worker\";\nimport type {\n AiProviderRunFn,\n AiProviderStreamFn,\n ToolCallingTaskInput,\n ToolCallingTaskOutput,\n} from \"@workglow/ai\";\nimport type { StreamEvent } from \"@workglow/task-graph\";\nimport {\n accumulateOpenAIStream,\n buildOpenAITools,\n mapOpenAIToolChoice,\n parseOpenAIToolCallMessage,\n} from \"@workglow/ai-provider/common\";\nimport type { HfInferenceModelConfig } from \"./HFI_ModelSchema\";\nimport { getClient, getModelName, getProvider } from \"./HFI_Client\";\n\nexport const HFI_ToolCalling: AiProviderRunFn<\n ToolCallingTaskInput,\n ToolCallingTaskOutput,\n HfInferenceModelConfig\n> = async (input, model, update_progress, signal) => {\n update_progress(0, \"Starting HF Inference tool calling\");\n const client = await getClient(model);\n const modelName = getModelName(model);\n const provider = getProvider(model);\n\n const tools = buildOpenAITools(input.tools);\n const messages = toOpenAIMessages(input);\n const toolChoice = mapOpenAIToolChoice(input.toolChoice, false);\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const params: any = {\n model: modelName,\n messages,\n max_tokens: input.maxTokens,\n temperature: input.temperature,\n provider,\n };\n if (toolChoice !== \"none\") {\n params.tools = tools;\n params.tool_choice = toolChoice;\n }\n\n const response = await client.chatCompletion(params, { signal });\n\n const text = response.choices[0]?.message?.content ?? \"\";\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const toolCalls = parseOpenAIToolCallMessage((response.choices[0]?.message as any)?.tool_calls);\n\n update_progress(100, \"Completed HF Inference tool calling\");\n return { text, toolCalls: filterValidToolCalls(toolCalls, input.tools) };\n};\n\nexport const HFI_ToolCalling_Stream: AiProviderStreamFn<\n ToolCallingTaskInput,\n ToolCallingTaskOutput,\n HfInferenceModelConfig\n> = async function* (input, model, signal): AsyncIterable<StreamEvent<ToolCallingTaskOutput>> {\n const client = await getClient(model);\n const modelName = getModelName(model);\n const provider = getProvider(model);\n\n const tools = buildOpenAITools(input.tools);\n const messages = toOpenAIMessages(input);\n const toolChoice = mapOpenAIToolChoice(input.toolChoice, false);\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const params: any = {\n model: modelName,\n messages,\n max_tokens: input.maxTokens,\n temperature: input.temperature,\n provider,\n stream: true,\n };\n if (toolChoice !== \"none\") {\n params.tools = tools;\n params.tool_choice = toolChoice;\n }\n\n const stream = client.chatCompletionStream(params, { signal });\n\n yield* accumulateOpenAIStream(stream);\n};\n",
18
- "/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type { AiProviderRunFn, AiProviderStreamFn } from \"@workglow/ai\";\nimport type { HfInferenceModelConfig } from \"./HFI_ModelSchema\";\nimport { HFI_ModelSearch } from \"./HFI_ModelSearch\";\n\nexport { loadHfInferenceSDK, getClient, getModelName, getProvider } from \"./HFI_Client\";\n\nimport { HFI_ImageEdit, HFI_ImageEdit_Stream } from \"./HFI_ImageEdit\";\nimport { HFI_ImageGenerate, HFI_ImageGenerate_Stream } from \"./HFI_ImageGenerate\";\nimport { HFI_ModelInfo } from \"./HFI_ModelInfo\";\nimport { HFI_TextEmbedding } from \"./HFI_TextEmbedding\";\nimport { HFI_TextGeneration, HFI_TextGeneration_Stream } from \"./HFI_TextGeneration\";\nimport { HFI_TextRewriter, HFI_TextRewriter_Stream } from \"./HFI_TextRewriter\";\nimport { HFI_TextSummary, HFI_TextSummary_Stream } from \"./HFI_TextSummary\";\nimport { HFI_ToolCalling, HFI_ToolCalling_Stream } from \"./HFI_ToolCalling\";\n\nexport const HFI_TASKS: Record<string, AiProviderRunFn<any, any, HfInferenceModelConfig>> = {\n ModelInfoTask: HFI_ModelInfo,\n TextGenerationTask: HFI_TextGeneration,\n TextEmbeddingTask: HFI_TextEmbedding,\n TextRewriterTask: HFI_TextRewriter,\n TextSummaryTask: HFI_TextSummary,\n ToolCallingTask: HFI_ToolCalling,\n ModelSearchTask: HFI_ModelSearch,\n ImageGenerateTask: HFI_ImageGenerate,\n ImageEditTask: HFI_ImageEdit,\n};\n\nexport const HFI_STREAM_TASKS: Record<\n string,\n AiProviderStreamFn<any, any, HfInferenceModelConfig>\n> = {\n TextGenerationTask: HFI_TextGeneration_Stream,\n TextRewriterTask: HFI_TextRewriter_Stream,\n TextSummaryTask: HFI_TextSummary_Stream,\n ToolCallingTask: HFI_ToolCalling_Stream,\n ImageGenerateTask: HFI_ImageGenerate_Stream,\n ImageEditTask: HFI_ImageEdit_Stream,\n};\n",
19
- "/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { AiProvider } from \"@workglow/ai\";\nimport { createCloudProviderClass } from \"@workglow/ai-provider/common\";\nimport { HF_INFERENCE } from \"./common/HFI_Constants\";\nimport type { HfInferenceModelConfig } from \"./common/HFI_ModelSchema\";\n\nconst HFI_QUEUED_TASK_TYPES = [\n \"ModelInfoTask\",\n \"TextGenerationTask\",\n \"TextEmbeddingTask\",\n \"TextRewriterTask\",\n \"TextSummaryTask\",\n \"ToolCallingTask\",\n \"ModelSearchTask\",\n \"ImageGenerateTask\",\n \"ImageEditTask\",\n] as const;\n\n/** Main-thread registration (inline or worker-backed). No queue — uses direct execution. */\nexport class HfInferenceQueuedProvider extends createCloudProviderClass<\n HfInferenceModelConfig,\n typeof HFI_QUEUED_TASK_TYPES\n>(AiProvider, {\n name: HF_INFERENCE,\n displayName: \"Hugging Face Inference\",\n taskTypes: HFI_QUEUED_TASK_TYPES,\n}) {}\n",
20
- "/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { AiImageOutputTask, ProviderUnsupportedFeatureError } from \"@workglow/ai\";\nimport type { ModelConfig } from \"@workglow/ai\";\n\nimport { HF_INFERENCE } from \"./HFI_Constants\";\nimport { isHfInpaintingModel } from \"./HFI_AspectRatio\";\n\nexport function registerHfImageValidator(): void {\n AiImageOutputTask.registerProviderImageValidator(\n HF_INFERENCE,\n (taskType, input, model: ModelConfig) => {\n if (taskType !== \"ImageEditTask\") return;\n const modelId = model.model_id ?? \"\";\n const modelName =\n (model.provider_config as { model_name?: string } | undefined)?.model_name ?? modelId;\n\n const additional = input[\"additionalImages\"] as unknown[] | undefined;\n if (Array.isArray(additional) && additional.length > 0) {\n throw new ProviderUnsupportedFeatureError(\n \"additionalImages\",\n modelId,\n \"HF Inference image-to-image only supports a single input image\"\n );\n }\n if (\n input[\"mask\"] !== undefined &&\n input[\"mask\"] !== null &&\n !isHfInpaintingModel(modelName)\n ) {\n throw new ProviderUnsupportedFeatureError(\n \"mask\",\n modelId,\n \"Mask is only supported on HF inpainting models (e.g., FLUX.1-Kontext-dev)\"\n );\n }\n }\n );\n}\n",
21
- "/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { registerProviderWorker } from \"@workglow/ai-provider/common\";\nimport { HFI_STREAM_TASKS, HFI_TASKS } from \"./common/HFI_JobRunFns\";\nimport { HfInferenceProvider } from \"./HfInferenceProvider\";\n\nexport async function registerHfInferenceWorker(): Promise<void> {\n await registerProviderWorker(\n (ws) => new HfInferenceProvider(HFI_TASKS, HFI_STREAM_TASKS).registerOnWorkerServer(ws),\n \"Hugging Face Inference\"\n );\n}\n",
22
- "/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { AiProvider } from \"@workglow/ai/worker\";\nimport { createCloudProviderClass } from \"@workglow/ai-provider/common\";\nimport { HF_INFERENCE } from \"./common/HFI_Constants\";\nimport type { HfInferenceModelConfig } from \"./common/HFI_ModelSchema\";\n\nconst HFI_WORKER_TASK_TYPES = [\n \"ModelInfoTask\",\n \"TextGenerationTask\",\n \"TextEmbeddingTask\",\n \"TextRewriterTask\",\n \"TextSummaryTask\",\n \"ToolCallingTask\",\n \"ModelSearchTask\",\n] as const;\n\n/**\n * Worker-server registration for Hugging Face Inference. Imports `AiProvider`\n * from `@workglow/ai/worker` so the SDK is only loaded in the worker.\n */\nexport class HfInferenceProvider extends createCloudProviderClass<\n HfInferenceModelConfig,\n typeof HFI_WORKER_TASK_TYPES\n>(AiProvider, {\n name: HF_INFERENCE,\n displayName: \"Hugging Face Inference\",\n taskTypes: HFI_WORKER_TASK_TYPES,\n}) {}\n"
23
- ],
24
- "mappings": "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",
25
- "debugId": "6188FD36BF52E20964756E2164756E21",
26
- "names": []
27
- }
@@ -1 +0,0 @@
1
- {"version":3,"file":"ai-provider.d.ts","sourceRoot":"","sources":["../src/ai-provider.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,qBAAqB,CAAC"}
@@ -1,16 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../src/ai-provider/common/HFI_AspectRatio.ts", "../src/ai-provider/common/HFI_Constants.ts", "../src/ai-provider/common/HFI_ImageValidation.ts", "../src/ai-provider/common/HFI_ModelSchema.ts", "../src/ai-provider/common/HFI_ModelSearch.ts", "../src/ai-provider/registerHfInference.ts", "../src/ai-provider/HfInferenceQueuedProvider.ts"],
4
- "sourcesContent": [
5
- "/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nexport type AspectRatio = \"1:1\" | \"16:9\" | \"9:16\" | \"4:3\" | \"3:4\";\n\nexport interface ImageDims {\n width: number;\n height: number;\n}\n\nconst FLUX_DIMS: Record<AspectRatio, ImageDims> = {\n \"1:1\": { width: 1024, height: 1024 },\n \"16:9\": { width: 1344, height: 768 },\n \"9:16\": { width: 768, height: 1344 },\n \"4:3\": { width: 1152, height: 896 },\n \"3:4\": { width: 896, height: 1152 },\n};\n\nconst SDXL_DIMS: Record<AspectRatio, ImageDims> = {\n \"1:1\": { width: 1024, height: 1024 },\n \"16:9\": { width: 1280, height: 720 },\n \"9:16\": { width: 720, height: 1280 },\n \"4:3\": { width: 1024, height: 768 },\n \"3:4\": { width: 768, height: 1024 },\n};\n\nconst DEFAULT_DIMS: Record<AspectRatio, ImageDims> = SDXL_DIMS;\n\nconst MODEL_DIM_TABLE: Array<{ pattern: RegExp; dims: Record<AspectRatio, ImageDims> }> = [\n { pattern: /^black-forest-labs\\/FLUX/i, dims: FLUX_DIMS },\n { pattern: /^stabilityai\\/.*-xl/i, dims: SDXL_DIMS },\n];\n\n/** Resolves output dims for a model id and aspect ratio. Falls back to SDXL dims. */\nexport function resolveHfImageDims(modelId: string, aspectRatio: AspectRatio): ImageDims {\n const entry = MODEL_DIM_TABLE.find((e) => e.pattern.test(modelId));\n return (entry?.dims ?? DEFAULT_DIMS)[aspectRatio];\n}\n\n/** Returns true if the model id matches a known inpainting variant (mask supported). */\nexport function isHfInpaintingModel(modelId: string): boolean {\n return /inpaint|kontext/i.test(modelId);\n}\n",
6
- "/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nexport const HF_INFERENCE = \"HF_INFERENCE\";\n",
7
- "/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { AiImageOutputTask, ProviderUnsupportedFeatureError } from \"@workglow/ai\";\nimport type { ModelConfig } from \"@workglow/ai\";\n\nimport { HF_INFERENCE } from \"./HFI_Constants\";\nimport { isHfInpaintingModel } from \"./HFI_AspectRatio\";\n\nexport function registerHfImageValidator(): void {\n AiImageOutputTask.registerProviderImageValidator(\n HF_INFERENCE,\n (taskType, input, model: ModelConfig) => {\n if (taskType !== \"ImageEditTask\") return;\n const modelId = model.model_id ?? \"\";\n const modelName =\n (model.provider_config as { model_name?: string } | undefined)?.model_name ?? modelId;\n\n const additional = input[\"additionalImages\"] as unknown[] | undefined;\n if (Array.isArray(additional) && additional.length > 0) {\n throw new ProviderUnsupportedFeatureError(\n \"additionalImages\",\n modelId,\n \"HF Inference image-to-image only supports a single input image\"\n );\n }\n if (\n input[\"mask\"] !== undefined &&\n input[\"mask\"] !== null &&\n !isHfInpaintingModel(modelName)\n ) {\n throw new ProviderUnsupportedFeatureError(\n \"mask\",\n modelId,\n \"Mask is only supported on HF inpainting models (e.g., FLUX.1-Kontext-dev)\"\n );\n }\n }\n );\n}\n",
8
- "/**\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_INFERENCE } from \"./HFI_Constants\";\n\nexport const HfInferenceModelSchema = {\n type: \"object\",\n properties: {\n provider: {\n const: HF_INFERENCE,\n description: \"Discriminator: Hugging Face Inference API provider.\",\n },\n provider_config: {\n type: \"object\",\n description: \"Hugging Face Inference-specific configuration.\",\n properties: {\n model_name: {\n type: \"string\",\n description:\n \"The Hugging Face model identifier (e.g., 'meta-llama/Llama-3.3-70B-Instruct').\",\n },\n credential_key: {\n type: \"string\",\n format: \"credential\",\n description: \"Key to look up in the credential store for the API key.\",\n \"x-ui-hidden\": true,\n },\n provider: {\n type: \"string\",\n description:\n \"Optional provider to route to specific HF inference providers (e.g., 'fal-ai', 'fireworks-ai').\",\n },\n },\n required: [\"model_name\"],\n additionalProperties: false,\n },\n },\n required: [\"provider\", \"provider_config\"],\n additionalProperties: true,\n} as const satisfies DataPortSchemaObject;\n\nexport const HfInferenceModelRecordSchema = {\n type: \"object\",\n properties: {\n ...ModelRecordSchema.properties,\n ...HfInferenceModelSchema.properties,\n },\n required: [...ModelRecordSchema.required, ...HfInferenceModelSchema.required],\n additionalProperties: false,\n} as const satisfies DataPortSchemaObject;\n\nexport type HfInferenceModelRecord = FromSchema<typeof HfInferenceModelRecordSchema>;\n\nexport const HfInferenceModelConfigSchema = {\n type: \"object\",\n properties: {\n ...ModelConfigSchema.properties,\n ...HfInferenceModelSchema.properties,\n },\n required: [...ModelConfigSchema.required, ...HfInferenceModelSchema.required],\n additionalProperties: false,\n} as const satisfies DataPortSchemaObject;\n\nexport type HfInferenceModelConfig = FromSchema<typeof HfInferenceModelConfigSchema>;\n",
9
- "/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type {\n AiProviderRunFn,\n ModelSearchResultItem,\n ModelSearchTaskInput,\n ModelSearchTaskOutput,\n} from \"@workglow/ai\";\nimport { mapHfModelResult, searchHfModels } from \"@workglow/ai-provider/common\";\nimport { filterLabeledModelsByQuery } from \"@workglow/ai-provider/common\";\nimport { HF_INFERENCE } from \"./HFI_Constants\";\n\n/** Models with explicit task overrides (HF pipeline tags don't cover ImageGenerateTask/ImageEditTask). */\nconst HFI_IMAGE_MODELS: Array<{ id: string; tasks: string[] }> = [\n { id: \"black-forest-labs/FLUX.1-schnell\", tasks: [\"ImageGenerateTask\"] },\n { id: \"black-forest-labs/FLUX.1-Kontext-dev\", tasks: [\"ImageEditTask\"] },\n];\n\nfunction buildFallbackResults(): ModelSearchResultItem[] {\n return HFI_IMAGE_MODELS.map((m) => ({\n id: m.id,\n label: m.id,\n description: \"\",\n record: {\n model_id: m.id,\n provider: HF_INFERENCE,\n title: m.id.split(\"/\").pop() ?? m.id,\n description: \"\",\n tasks: m.tasks,\n provider_config: { model_name: m.id },\n metadata: {},\n },\n raw: m,\n }));\n}\n\nexport const HFI_ModelSearch: AiProviderRunFn<ModelSearchTaskInput, ModelSearchTaskOutput> = async (\n input,\n _model,\n _onProgress,\n signal\n) => {\n const query = input.query?.trim() ?? \"\";\n if (!input.credential_key) {\n const fallback = buildFallbackResults();\n const labeled = fallback.map((r) => ({ label: r.label, value: r.id }));\n const filtered = filterLabeledModelsByQuery(labeled, query).map(\n (m) => fallback.find((r) => r.id === m.value)!\n );\n return { results: filtered };\n }\n\n const entries = await searchHfModels(query, undefined, undefined, signal, input.credential_key);\n const results = entries.map((entry) => {\n const imageEntry = HFI_IMAGE_MODELS.find((m) => m.id === entry.id);\n const mapped = mapHfModelResult(entry, HF_INFERENCE);\n if (imageEntry) {\n // Merge explicit task list into the mapped record.\n mapped.record.tasks = imageEntry.tasks;\n }\n return mapped;\n });\n return { results };\n};\n",
10
- "/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type { AiProviderRegisterOptions } from \"@workglow/ai\";\nimport { registerProviderWithWorker } from \"@workglow/ai-provider/common\";\nimport { HfInferenceQueuedProvider } from \"./HfInferenceQueuedProvider\";\nimport { registerHfImageValidator } from \"./common/HFI_ImageValidation\";\n\nexport async function registerHfInference(\n options: AiProviderRegisterOptions & {\n worker: Worker | (() => Worker);\n }\n): Promise<void> {\n registerHfImageValidator();\n await registerProviderWithWorker(\n new HfInferenceQueuedProvider(),\n \"Hugging Face Inference\",\n options\n );\n}\n",
11
- "/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { AiProvider } from \"@workglow/ai\";\nimport { createCloudProviderClass } from \"@workglow/ai-provider/common\";\nimport { HF_INFERENCE } from \"./common/HFI_Constants\";\nimport type { HfInferenceModelConfig } from \"./common/HFI_ModelSchema\";\n\nconst HFI_QUEUED_TASK_TYPES = [\n \"ModelInfoTask\",\n \"TextGenerationTask\",\n \"TextEmbeddingTask\",\n \"TextRewriterTask\",\n \"TextSummaryTask\",\n \"ToolCallingTask\",\n \"ModelSearchTask\",\n \"ImageGenerateTask\",\n \"ImageEditTask\",\n] as const;\n\n/** Main-thread registration (inline or worker-backed). No queue — uses direct execution. */\nexport class HfInferenceQueuedProvider extends createCloudProviderClass<\n HfInferenceModelConfig,\n typeof HFI_QUEUED_TASK_TYPES\n>(AiProvider, {\n name: HF_INFERENCE,\n displayName: \"Hugging Face Inference\",\n taskTypes: HFI_QUEUED_TASK_TYPES,\n}) {}\n"
12
- ],
13
- "mappings": "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",
14
- "debugId": "FB3F46CF4A64FA2264756E2164756E21",
15
- "names": []
16
- }
File without changes