@workglow/ai-provider 0.0.122 → 0.0.124

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 (107) hide show
  1. package/dist/provider-anthropic/AnthropicProvider.d.ts +1 -0
  2. package/dist/provider-anthropic/AnthropicProvider.d.ts.map +1 -1
  3. package/dist/provider-anthropic/AnthropicQueuedProvider.d.ts +1 -0
  4. package/dist/provider-anthropic/AnthropicQueuedProvider.d.ts.map +1 -1
  5. package/dist/provider-anthropic/index.js +2 -1
  6. package/dist/provider-anthropic/index.js.map +3 -3
  7. package/dist/provider-anthropic/runtime.js +3 -1
  8. package/dist/provider-anthropic/runtime.js.map +4 -4
  9. package/dist/provider-chrome/WebBrowserProvider.d.ts +1 -0
  10. package/dist/provider-chrome/WebBrowserProvider.d.ts.map +1 -1
  11. package/dist/provider-chrome/WebBrowserQueuedProvider.d.ts +1 -0
  12. package/dist/provider-chrome/WebBrowserQueuedProvider.d.ts.map +1 -1
  13. package/dist/provider-chrome/index.js +2 -1
  14. package/dist/provider-chrome/index.js.map +3 -3
  15. package/dist/provider-chrome/runtime.js +3 -1
  16. package/dist/provider-chrome/runtime.js.map +4 -4
  17. package/dist/provider-gemini/GoogleGeminiProvider.d.ts +1 -0
  18. package/dist/provider-gemini/GoogleGeminiProvider.d.ts.map +1 -1
  19. package/dist/provider-gemini/GoogleGeminiQueuedProvider.d.ts +1 -0
  20. package/dist/provider-gemini/GoogleGeminiQueuedProvider.d.ts.map +1 -1
  21. package/dist/provider-gemini/index.js +2 -1
  22. package/dist/provider-gemini/index.js.map +3 -3
  23. package/dist/provider-gemini/runtime.js +3 -1
  24. package/dist/provider-gemini/runtime.js.map +4 -4
  25. package/dist/provider-hf-inference/HfInferenceProvider.d.ts +1 -0
  26. package/dist/provider-hf-inference/HfInferenceProvider.d.ts.map +1 -1
  27. package/dist/provider-hf-inference/HfInferenceQueuedProvider.d.ts +1 -0
  28. package/dist/provider-hf-inference/HfInferenceQueuedProvider.d.ts.map +1 -1
  29. package/dist/provider-hf-inference/index.js +2 -1
  30. package/dist/provider-hf-inference/index.js.map +3 -3
  31. package/dist/provider-hf-inference/runtime.js +3 -1
  32. package/dist/provider-hf-inference/runtime.js.map +4 -4
  33. package/dist/provider-hf-transformers/HuggingFaceTransformersProvider.d.ts +1 -0
  34. package/dist/provider-hf-transformers/HuggingFaceTransformersProvider.d.ts.map +1 -1
  35. package/dist/provider-hf-transformers/HuggingFaceTransformersQueuedProvider.d.ts +1 -0
  36. package/dist/provider-hf-transformers/HuggingFaceTransformersQueuedProvider.d.ts.map +1 -1
  37. package/dist/provider-hf-transformers/common/HFT_JobRunFns.d.ts +2 -2
  38. package/dist/provider-hf-transformers/common/HFT_Pipeline.d.ts.map +1 -1
  39. package/dist/provider-hf-transformers/common/HFT_Streaming.d.ts +3 -2
  40. package/dist/provider-hf-transformers/common/HFT_Streaming.d.ts.map +1 -1
  41. package/dist/provider-hf-transformers/common/HFT_ToolCalling.d.ts.map +1 -1
  42. package/dist/provider-hf-transformers/index.js +3 -1
  43. package/dist/provider-hf-transformers/index.js.map +4 -4
  44. package/dist/provider-hf-transformers/runtime.js +59 -39
  45. package/dist/provider-hf-transformers/runtime.js.map +13 -13
  46. package/dist/provider-llamacpp/LlamaCppProvider.d.ts +1 -0
  47. package/dist/provider-llamacpp/LlamaCppProvider.d.ts.map +1 -1
  48. package/dist/provider-llamacpp/LlamaCppQueuedProvider.d.ts +1 -0
  49. package/dist/provider-llamacpp/LlamaCppQueuedProvider.d.ts.map +1 -1
  50. package/dist/provider-llamacpp/common/LlamaCpp_Runtime.d.ts +5 -8
  51. package/dist/provider-llamacpp/common/LlamaCpp_Runtime.d.ts.map +1 -1
  52. package/dist/provider-llamacpp/index.js +2 -1
  53. package/dist/provider-llamacpp/index.js.map +3 -3
  54. package/dist/provider-llamacpp/runtime.js +3 -1
  55. package/dist/provider-llamacpp/runtime.js.map +5 -5
  56. package/dist/provider-ollama/OllamaProvider.d.ts +1 -0
  57. package/dist/provider-ollama/OllamaProvider.d.ts.map +1 -1
  58. package/dist/provider-ollama/OllamaQueuedProvider.d.ts +1 -0
  59. package/dist/provider-ollama/OllamaQueuedProvider.d.ts.map +1 -1
  60. package/dist/provider-ollama/common/Ollama_JobRunFns.browser.d.ts +1 -1
  61. package/dist/provider-ollama/common/Ollama_JobRunFns.d.ts +1 -1
  62. package/dist/provider-ollama/index.browser.js +2 -1
  63. package/dist/provider-ollama/index.browser.js.map +3 -3
  64. package/dist/provider-ollama/index.js +2 -1
  65. package/dist/provider-ollama/index.js.map +3 -3
  66. package/dist/provider-ollama/runtime.browser.js +3 -1
  67. package/dist/provider-ollama/runtime.browser.js.map +4 -4
  68. package/dist/provider-ollama/runtime.js +3 -1
  69. package/dist/provider-ollama/runtime.js.map +4 -4
  70. package/dist/provider-openai/OpenAiProvider.d.ts +1 -0
  71. package/dist/provider-openai/OpenAiProvider.d.ts.map +1 -1
  72. package/dist/provider-openai/OpenAiQueuedProvider.d.ts +1 -0
  73. package/dist/provider-openai/OpenAiQueuedProvider.d.ts.map +1 -1
  74. package/dist/provider-openai/common/OpenAI_CountTokens.browser.d.ts +10 -0
  75. package/dist/provider-openai/common/OpenAI_CountTokens.browser.d.ts.map +1 -0
  76. package/dist/provider-openai/common/OpenAI_CountTokens.d.ts.map +1 -1
  77. package/dist/provider-openai/common/OpenAI_JobRunFns.browser.d.ts +12 -0
  78. package/dist/provider-openai/common/OpenAI_JobRunFns.browser.d.ts.map +1 -0
  79. package/dist/provider-openai/index.browser.d.ts +9 -0
  80. package/dist/provider-openai/index.browser.d.ts.map +1 -0
  81. package/dist/provider-openai/index.browser.js +106 -0
  82. package/dist/provider-openai/index.browser.js.map +13 -0
  83. package/dist/provider-openai/index.js +2 -1
  84. package/dist/provider-openai/index.js.map +3 -3
  85. package/dist/provider-openai/registerOpenAiInline.browser.d.ts +8 -0
  86. package/dist/provider-openai/registerOpenAiInline.browser.d.ts.map +1 -0
  87. package/dist/provider-openai/registerOpenAiWorker.browser.d.ts +7 -0
  88. package/dist/provider-openai/registerOpenAiWorker.browser.d.ts.map +1 -0
  89. package/dist/provider-openai/runtime.browser.d.ts +15 -0
  90. package/dist/provider-openai/runtime.browser.d.ts.map +1 -0
  91. package/dist/provider-openai/runtime.browser.js +649 -0
  92. package/dist/provider-openai/runtime.browser.js.map +25 -0
  93. package/dist/provider-openai/runtime.js +3 -1
  94. package/dist/provider-openai/runtime.js.map +5 -5
  95. package/dist/provider-tf-mediapipe/TensorFlowMediaPipeProvider.d.ts +1 -0
  96. package/dist/provider-tf-mediapipe/TensorFlowMediaPipeProvider.d.ts.map +1 -1
  97. package/dist/provider-tf-mediapipe/TensorFlowMediaPipeQueuedProvider.d.ts +1 -0
  98. package/dist/provider-tf-mediapipe/TensorFlowMediaPipeQueuedProvider.d.ts.map +1 -1
  99. package/dist/provider-tf-mediapipe/common/TFMP_Client.d.ts.map +1 -1
  100. package/dist/provider-tf-mediapipe/common/TFMP_JobRunFns.d.ts +2 -2
  101. package/dist/provider-tf-mediapipe/common/TFMP_ModelSchema.d.ts +3 -6
  102. package/dist/provider-tf-mediapipe/common/TFMP_ModelSchema.d.ts.map +1 -1
  103. package/dist/provider-tf-mediapipe/index.js +3 -3
  104. package/dist/provider-tf-mediapipe/index.js.map +4 -4
  105. package/dist/provider-tf-mediapipe/runtime.js +6 -2
  106. package/dist/provider-tf-mediapipe/runtime.js.map +5 -5
  107. package/package.json +21 -14
@@ -4,13 +4,13 @@
4
4
  "sourcesContent": [
5
5
  "/**\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\";\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",
6
6
  "/**\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 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 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",
7
- "/**\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 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 \"ToolCallingTask\",\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",
8
- "/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {\n QueuedAiProvider,\n type AiProviderReactiveRunFn,\n type AiProviderRunFn,\n type AiProviderStreamFn,\n} from \"@workglow/ai\";\nimport { HF_TRANSFORMERS_ONNX } from \"./common/HFT_Constants\";\nimport type { HfTransformersOnnxModelConfig } from \"./common/HFT_ModelSchema\";\n\n/** Main-thread registration (inline or worker-backed); creates the default job queue. */\nexport class HuggingFaceTransformersQueuedProvider extends QueuedAiProvider<HfTransformersOnnxModelConfig> {\n readonly name = HF_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 \"ToolCallingTask\",\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",
7
+ "/**\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 \"ToolCallingTask\",\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",
8
+ "/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {\n QueuedAiProvider,\n type AiProviderReactiveRunFn,\n type AiProviderRunFn,\n type AiProviderStreamFn,\n} from \"@workglow/ai\";\nimport { HF_TRANSFORMERS_ONNX } from \"./common/HFT_Constants\";\nimport type { HfTransformersOnnxModelConfig } from \"./common/HFT_ModelSchema\";\n\n/** Main-thread registration (inline or worker-backed); creates the default job queue. */\nexport class HuggingFaceTransformersQueuedProvider extends QueuedAiProvider<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 \"ToolCallingTask\",\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",
9
9
  "/**\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 { HuggingFaceTransformersQueuedProvider } from \"./HuggingFaceTransformersQueuedProvider\";\n\n/**\n * Register HuggingFace Transformers ONNX on the **main thread** with worker-backed execution\n * (lightweight proxy; heavy work in the worker).\n */\nexport async function registerHuggingFaceTransformers(\n options: AiProviderRegisterOptions & {\n worker: Worker | (() => Worker);\n }\n): Promise<void> {\n await new HuggingFaceTransformersQueuedProvider().register(options);\n}\n",
10
10
  "/**\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 = (Object.entries(ONNX_QUANTIZATION_SUFFIX_MAPPING) as [OnnxQuantization, string][])\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",
11
11
  "/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type { ToolCalls } from \"@workglow/ai\";\n\n/**\n * Parse tool calls from model-generated text.\n *\n * Many instruct models (Qwen, Llama, Hermes, etc.) emit tool calls in one of\n * these formats:\n *\n * 1. `<tool_call>{\"name\":\"fn\",\"arguments\":{...}}</tool_call>` (Qwen/Hermes)\n * 2. Plain JSON objects with a \"name\" + \"arguments\" key\n * 3. `{\"function\":{\"name\":\"fn\",\"arguments\":{...}}}`\n *\n * This function extracts all such tool calls from the raw response text\n * and returns both the cleaned text (with tool-call markup removed) and\n * the parsed ToolCall array.\n */\nexport function parseToolCallsFromText(responseText: string): {\n text: string;\n toolCalls: ToolCalls;\n} {\n const toolCalls: ToolCalls = [];\n let callIndex = 0;\n let cleanedText = responseText;\n\n // Pattern 1: <tool_call>...</tool_call> blocks (Qwen, Hermes, etc.)\n const toolCallTagRegex = /<tool_call>([\\s\\S]*?)<\\/tool_call>/g;\n let tagMatch;\n while ((tagMatch = toolCallTagRegex.exec(responseText)) !== null) {\n try {\n const parsed = JSON.parse(tagMatch[1].trim());\n const id = `call_${callIndex++}`;\n toolCalls.push({\n id,\n name: parsed.name ?? parsed.function?.name ?? \"\",\n input: (parsed.arguments ??\n parsed.function?.arguments ??\n parsed.parameters ??\n {}) as Record<string, unknown>,\n });\n } catch {\n // Not valid JSON inside the tag, skip\n }\n }\n\n if (toolCalls.length > 0) {\n // Remove tool_call tags from the text output\n cleanedText = responseText.replace(/<tool_call>[\\s\\S]*?<\\/tool_call>/g, \"\").trim();\n return { text: cleanedText, toolCalls };\n }\n\n // Pattern 2: Use a brace-balanced scanner to correctly handle nested JSON objects.\n const jsonCandidates: Array<{ text: string; start: number; end: number }> = [];\n (function collectBalancedJsonBlocks(source: string) {\n const length = source.length;\n let i = 0;\n while (i < length) {\n if (source[i] !== \"{\") {\n i++;\n continue;\n }\n let depth = 1;\n let j = i + 1;\n let inString = false;\n let escape = false;\n while (j < length && depth > 0) {\n const ch = source[j];\n if (inString) {\n if (escape) {\n escape = false;\n } else if (ch === \"\\\\\") {\n escape = true;\n } else if (ch === '\"') {\n inString = false;\n }\n } else {\n if (ch === '\"') {\n inString = true;\n } else if (ch === \"{\") {\n depth++;\n } else if (ch === \"}\") {\n depth--;\n }\n }\n j++;\n }\n if (depth === 0) {\n jsonCandidates.push({ text: source.slice(i, j), start: i, end: j });\n i = j;\n } else {\n break;\n }\n }\n })(responseText);\n\n const matchedRanges: Array<{ start: number; end: number }> = [];\n for (const candidate of jsonCandidates) {\n try {\n const parsed = JSON.parse(candidate.text);\n if (parsed.name && (parsed.arguments !== undefined || parsed.parameters !== undefined)) {\n const id = `call_${callIndex++}`;\n toolCalls.push({\n id,\n name: parsed.name as string,\n input: (parsed.arguments ?? parsed.parameters ?? {}) as Record<string, unknown>,\n });\n matchedRanges.push({ start: candidate.start, end: candidate.end });\n } else if (parsed.function?.name) {\n let functionArgs: unknown = parsed.function.arguments ?? {};\n if (typeof functionArgs === \"string\") {\n try {\n functionArgs = JSON.parse(functionArgs);\n } catch (innerError) {\n console.warn(\"Failed to parse tool call function.arguments as JSON\", innerError);\n functionArgs = {};\n }\n }\n const id = `call_${callIndex++}`;\n toolCalls.push({\n id,\n name: parsed.function.name as string,\n input: (functionArgs ?? {}) as Record<string, unknown>,\n });\n matchedRanges.push({ start: candidate.start, end: candidate.end });\n }\n } catch {\n // Not valid JSON, skip\n }\n }\n\n if (toolCalls.length > 0) {\n // Remove only the matched JSON portions, preserving surrounding text\n let result = \"\";\n let lastIndex = 0;\n for (const range of matchedRanges) {\n result += responseText.slice(lastIndex, range.start);\n lastIndex = range.end;\n }\n result += responseText.slice(lastIndex);\n cleanedText = result.trim();\n }\n\n return { text: cleanedText, toolCalls };\n}\n\n/**\n * State machine that filters `<tool_call>…</tool_call>` markup out of a\n * stream of text-delta tokens. Tokens that are clearly outside markup are\n * flushed immediately; tokens that *might* be the start of a tag are held\n * in a lookahead buffer until they can be disambiguated.\n *\n * This only handles the XML-tag pattern (Pattern 1 in parseToolCallsFromText).\n * Bare-JSON tool calls (Pattern 2) cannot be reliably detected token-by-token\n * and are still cleaned up via the post-hoc `parseToolCallsFromText` pass on\n * the finish event.\n */\nexport function createToolCallMarkupFilter(emit: (text: string) => void) {\n const OPEN_TAG = \"<tool_call>\";\n const CLOSE_TAG = \"</tool_call>\";\n\n /** \"text\" = normal output, \"tag\" = inside a tool_call block */\n let state: \"text\" | \"tag\" = \"text\";\n /** Buffered text that might be a partial tag prefix */\n let pending = \"\";\n\n function feed(token: string) {\n if (state === \"tag\") {\n // Inside a tool_call block — suppress everything until we see the close tag\n pending += token;\n const closeIdx = pending.indexOf(CLOSE_TAG);\n if (closeIdx !== -1) {\n // End of the tool_call block; resume normal output after the close tag\n const afterClose = pending.slice(closeIdx + CLOSE_TAG.length);\n pending = \"\";\n state = \"text\";\n if (afterClose.length > 0) {\n feed(afterClose);\n }\n }\n // else: still inside the tag block, keep suppressing\n return;\n }\n\n // state === \"text\"\n const combined = pending + token;\n\n // Check for a complete open tag\n const openIdx = combined.indexOf(OPEN_TAG);\n if (openIdx !== -1) {\n // Emit everything before the tag\n const before = combined.slice(0, openIdx);\n if (before.length > 0) {\n emit(before);\n }\n // Switch to tag state; feed the remainder (after the open tag) back through\n pending = \"\";\n state = \"tag\";\n const afterOpen = combined.slice(openIdx + OPEN_TAG.length);\n if (afterOpen.length > 0) {\n feed(afterOpen);\n }\n return;\n }\n\n // Check if the tail of `combined` could be the start of \"<tool_call>\"\n // e.g. combined ends with \"<\", \"<t\", \"<to\", ..., \"<tool_call\"\n let prefixLen = 0;\n for (let len = Math.min(combined.length, OPEN_TAG.length - 1); len >= 1; len--) {\n if (combined.endsWith(OPEN_TAG.slice(0, len))) {\n prefixLen = len;\n break;\n }\n }\n\n if (prefixLen > 0) {\n // The tail is ambiguous — hold it back, flush the rest\n const safe = combined.slice(0, combined.length - prefixLen);\n if (safe.length > 0) {\n emit(safe);\n }\n pending = combined.slice(combined.length - prefixLen);\n } else {\n // No ambiguity — flush everything\n if (combined.length > 0) {\n emit(combined);\n }\n pending = \"\";\n }\n }\n\n /** Flush any remaining buffered text (called when the stream ends). */\n function flush() {\n if (pending.length > 0 && state === \"text\") {\n emit(pending);\n pending = \"\";\n }\n // If state === \"tag\", the pending content is suppressed tool-call markup\n pending = \"\";\n state = \"text\";\n }\n\n return { feed, flush };\n}\n"
12
12
  ],
13
- "mappings": "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",
14
- "debugId": "B7C3F5132B8A060164756E2164756E21",
13
+ "mappings": "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",
14
+ "debugId": "B42B282A66AE1B6664756E2164756E21",
15
15
  "names": []
16
16
  }
@@ -76,7 +76,13 @@ function removeCachedPipeline(cacheKey) {
76
76
  return pipelines.delete(cacheKey);
77
77
  }
78
78
  function isBrowserEnv() {
79
- return typeof globalThis !== "undefined" && typeof globalThis.window !== "undefined";
79
+ if (typeof globalThis === "undefined")
80
+ return false;
81
+ if (typeof globalThis.window !== "undefined")
82
+ return true;
83
+ if (typeof globalThis.WorkerGlobalScope !== "undefined")
84
+ return true;
85
+ return false;
80
86
  }
81
87
  function getPipelineCacheKey(model) {
82
88
  const dtype = model.provider_config.dtype || "q8";
@@ -192,7 +198,17 @@ var _transformersSdk, _cacheDir, modelAbortControllers, pipelines, pipelineLoadP
192
198
  }
193
199
  };
194
200
  let device = model.provider_config.device;
195
- if (!isBrowserEnv()) {
201
+ if (isBrowserEnv()) {
202
+ if (device === "gpu") {
203
+ device = "webgpu";
204
+ }
205
+ if (device === "cpu") {
206
+ device = "wasm";
207
+ }
208
+ if (device !== "wasm" && device !== "webgpu") {
209
+ device = "webgpu";
210
+ }
211
+ } else {
196
212
  if (device === "wasm" || device === "webgpu") {
197
213
  device = undefined;
198
214
  }
@@ -1044,9 +1060,8 @@ function createStreamEventQueue() {
1044
1060
  };
1045
1061
  return { push, done, error, iterable };
1046
1062
  }
1047
- function createStreamingTextStreamer(tokenizer, queue, transformers) {
1048
- const { TextStreamer } = transformers;
1049
- return new TextStreamer(tokenizer, {
1063
+ function createStreamingTextStreamer(tokenizer, queue, textStreamer) {
1064
+ return new textStreamer(tokenizer, {
1050
1065
  skip_prompt: true,
1051
1066
  decode_kwargs: { skip_special_tokens: true },
1052
1067
  callback_function: (text) => {
@@ -1054,10 +1069,9 @@ function createStreamingTextStreamer(tokenizer, queue, transformers) {
1054
1069
  }
1055
1070
  });
1056
1071
  }
1057
- function createTextStreamer(tokenizer, updateProgress, transformers) {
1058
- const { TextStreamer } = transformers;
1072
+ function createTextStreamer(tokenizer, updateProgress, textStreamer) {
1059
1073
  let count = 0;
1060
- return new TextStreamer(tokenizer, {
1074
+ return new textStreamer(tokenizer, {
1061
1075
  skip_prompt: true,
1062
1076
  decode_kwargs: { skip_special_tokens: true },
1063
1077
  callback_function: (text) => {
@@ -1116,14 +1130,14 @@ function extractJsonFromText(text) {
1116
1130
  }
1117
1131
  var HFT_StructuredGeneration = async (input, model, onProgress, signal) => {
1118
1132
  const generateText = await getPipeline(model, onProgress, {}, signal);
1119
- const sdk = await loadTransformersSDK();
1133
+ const { TextStreamer } = await loadTransformersSDK();
1120
1134
  const prompt = buildStructuredGenerationPrompt(input);
1121
1135
  const messages = [{ role: "user", content: prompt }];
1122
1136
  const formattedPrompt = generateText.tokenizer.apply_chat_template(messages, {
1123
1137
  tokenize: false,
1124
1138
  add_generation_prompt: true
1125
1139
  });
1126
- const streamer = createTextStreamer(generateText.tokenizer, onProgress, sdk);
1140
+ const streamer = createTextStreamer(generateText.tokenizer, onProgress, TextStreamer);
1127
1141
  let results = await generateText(formattedPrompt, {
1128
1142
  max_new_tokens: input.maxTokens ?? 1024,
1129
1143
  temperature: input.temperature ?? undefined,
@@ -1140,7 +1154,7 @@ var HFT_StructuredGeneration = async (input, model, onProgress, signal) => {
1140
1154
  var HFT_StructuredGeneration_Stream = async function* (input, model, signal) {
1141
1155
  const noopProgress = () => {};
1142
1156
  const generateText = await getPipeline(model, noopProgress, {}, signal);
1143
- const sdk = await loadTransformersSDK();
1157
+ const { TextStreamer } = await loadTransformersSDK();
1144
1158
  const prompt = buildStructuredGenerationPrompt(input);
1145
1159
  const messages = [{ role: "user", content: prompt }];
1146
1160
  const formattedPrompt = generateText.tokenizer.apply_chat_template(messages, {
@@ -1148,7 +1162,7 @@ var HFT_StructuredGeneration_Stream = async function* (input, model, signal) {
1148
1162
  add_generation_prompt: true
1149
1163
  });
1150
1164
  const queue = createStreamEventQueue();
1151
- const streamer = createStreamingTextStreamer(generateText.tokenizer, queue, sdk);
1165
+ const streamer = createStreamingTextStreamer(generateText.tokenizer, queue, TextStreamer);
1152
1166
  let fullText = "";
1153
1167
  const originalPush = queue.push;
1154
1168
  queue.push = (event) => {
@@ -1320,12 +1334,12 @@ var HFT_TextGeneration = async (input, model, onProgress, signal) => {
1320
1334
  logger.time(timerLabel, { model: model?.provider_config.model_path });
1321
1335
  const isArrayInput = Array.isArray(input.prompt);
1322
1336
  const generateText = await getPipeline(model, onProgress, {}, signal);
1323
- const sdk = await loadTransformersSDK();
1337
+ const { TextStreamer } = await loadTransformersSDK();
1324
1338
  logger.debug("HFT TextGeneration: pipeline ready, generating text", {
1325
1339
  model: model?.provider_config.model_path,
1326
1340
  promptLength: isArrayInput ? input.prompt.length : input.prompt?.length
1327
1341
  });
1328
- const streamer = isArrayInput ? undefined : createTextStreamer(generateText.tokenizer, onProgress, sdk);
1342
+ const streamer = isArrayInput ? undefined : createTextStreamer(generateText.tokenizer, onProgress, TextStreamer);
1329
1343
  let results = await generateText(input.prompt, {
1330
1344
  ...streamer ? { streamer } : {}
1331
1345
  });
@@ -1350,9 +1364,9 @@ var HFT_TextGeneration = async (input, model, onProgress, signal) => {
1350
1364
  var HFT_TextGeneration_Stream = async function* (input, model, signal) {
1351
1365
  const noopProgress = () => {};
1352
1366
  const generateText = await getPipeline(model, noopProgress, {}, signal);
1353
- const sdk = await loadTransformersSDK();
1367
+ const { TextStreamer } = await loadTransformersSDK();
1354
1368
  const queue = createStreamEventQueue();
1355
- const streamer = createStreamingTextStreamer(generateText.tokenizer, queue, sdk);
1369
+ const streamer = createStreamingTextStreamer(generateText.tokenizer, queue, TextStreamer);
1356
1370
  const pipelinePromise = generateText(input.prompt, {
1357
1371
  streamer
1358
1372
  }).then(() => queue.done(), (err) => queue.error(err));
@@ -1455,8 +1469,8 @@ var HFT_TextQuestionAnswer = async (input, model, onProgress, signal) => {
1455
1469
  }
1456
1470
  return { text: answers };
1457
1471
  }
1458
- const sdk = await loadTransformersSDK();
1459
- const streamer = createTextStreamer(generateAnswer.tokenizer, onProgress, sdk);
1472
+ const { TextStreamer } = await loadTransformersSDK();
1473
+ const streamer = createTextStreamer(generateAnswer.tokenizer, onProgress, TextStreamer);
1460
1474
  const result = await generateAnswer(input.question, input.context, {
1461
1475
  streamer
1462
1476
  });
@@ -1473,9 +1487,9 @@ var HFT_TextQuestionAnswer = async (input, model, onProgress, signal) => {
1473
1487
  var HFT_TextQuestionAnswer_Stream = async function* (input, model, signal) {
1474
1488
  const noopProgress = () => {};
1475
1489
  const generateAnswer = await getPipeline(model, noopProgress, {}, signal);
1476
- const sdk = await loadTransformersSDK();
1490
+ const { TextStreamer } = await loadTransformersSDK();
1477
1491
  const queue = createStreamEventQueue();
1478
- const streamer = createStreamingTextStreamer(generateAnswer.tokenizer, queue, sdk);
1492
+ const streamer = createStreamingTextStreamer(generateAnswer.tokenizer, queue, TextStreamer);
1479
1493
  let pipelineResult;
1480
1494
  const pipelinePromise = generateAnswer(input.question, input.context, {
1481
1495
  streamer
@@ -1501,8 +1515,8 @@ init_HFT_Pipeline();
1501
1515
  var HFT_TextRewriter = async (input, model, onProgress, signal) => {
1502
1516
  const isArrayInput = Array.isArray(input.text);
1503
1517
  const generateText = await getPipeline(model, onProgress, {}, signal);
1504
- const sdk = await loadTransformersSDK();
1505
- const streamer = isArrayInput ? undefined : createTextStreamer(generateText.tokenizer, onProgress, sdk);
1518
+ const { TextStreamer } = await loadTransformersSDK();
1519
+ const streamer = isArrayInput ? undefined : createTextStreamer(generateText.tokenizer, onProgress, TextStreamer);
1506
1520
  if (isArrayInput) {
1507
1521
  const texts = input.text;
1508
1522
  const promptedTexts = texts.map((t) => (input.prompt ? input.prompt + `
@@ -1538,9 +1552,9 @@ var HFT_TextRewriter = async (input, model, onProgress, signal) => {
1538
1552
  var HFT_TextRewriter_Stream = async function* (input, model, signal) {
1539
1553
  const noopProgress = () => {};
1540
1554
  const generateText = await getPipeline(model, noopProgress, {}, signal);
1541
- const sdk = await loadTransformersSDK();
1555
+ const { TextStreamer } = await loadTransformersSDK();
1542
1556
  const queue = createStreamEventQueue();
1543
- const streamer = createStreamingTextStreamer(generateText.tokenizer, queue, sdk);
1557
+ const streamer = createStreamingTextStreamer(generateText.tokenizer, queue, TextStreamer);
1544
1558
  const promptedText = (input.prompt ? input.prompt + `
1545
1559
  ` : "") + input.text;
1546
1560
  const pipelinePromise = generateText(promptedText, {
@@ -1556,8 +1570,8 @@ init_HFT_Pipeline();
1556
1570
  var HFT_TextSummary = async (input, model, onProgress, signal) => {
1557
1571
  const isArrayInput = Array.isArray(input.text);
1558
1572
  const generateSummary = await getPipeline(model, onProgress, {}, signal);
1559
- const sdk = await loadTransformersSDK();
1560
- const streamer = isArrayInput ? undefined : createTextStreamer(generateSummary.tokenizer, onProgress, sdk);
1573
+ const { TextStreamer } = await loadTransformersSDK();
1574
+ const streamer = isArrayInput ? undefined : createTextStreamer(generateSummary.tokenizer, onProgress, TextStreamer);
1561
1575
  const result = await generateSummary(input.text, {
1562
1576
  ...streamer ? { streamer } : {}
1563
1577
  });
@@ -1580,9 +1594,9 @@ var HFT_TextSummary = async (input, model, onProgress, signal) => {
1580
1594
  var HFT_TextSummary_Stream = async function* (input, model, signal) {
1581
1595
  const noopProgress = () => {};
1582
1596
  const generateSummary = await getPipeline(model, noopProgress, {}, signal);
1583
- const sdk = await loadTransformersSDK();
1597
+ const { TextStreamer } = await loadTransformersSDK();
1584
1598
  const queue = createStreamEventQueue();
1585
- const streamer = createStreamingTextStreamer(generateSummary.tokenizer, queue, sdk);
1599
+ const streamer = createStreamingTextStreamer(generateSummary.tokenizer, queue, TextStreamer);
1586
1600
  const pipelinePromise = generateSummary(input.text, {
1587
1601
  streamer
1588
1602
  }).then(() => queue.done(), (err) => queue.error(err));
@@ -1596,8 +1610,8 @@ init_HFT_Pipeline();
1596
1610
  var HFT_TextTranslation = async (input, model, onProgress, signal) => {
1597
1611
  const isArrayInput = Array.isArray(input.text);
1598
1612
  const translate = await getPipeline(model, onProgress, {}, signal);
1599
- const sdk = await loadTransformersSDK();
1600
- const streamer = isArrayInput ? undefined : createTextStreamer(translate.tokenizer, onProgress, sdk);
1613
+ const { TextStreamer } = await loadTransformersSDK();
1614
+ const streamer = isArrayInput ? undefined : createTextStreamer(translate.tokenizer, onProgress, TextStreamer);
1601
1615
  const result = await translate(input.text, {
1602
1616
  src_lang: input.source_lang,
1603
1617
  tgt_lang: input.target_lang,
@@ -1619,9 +1633,9 @@ var HFT_TextTranslation = async (input, model, onProgress, signal) => {
1619
1633
  var HFT_TextTranslation_Stream = async function* (input, model, signal) {
1620
1634
  const noopProgress = () => {};
1621
1635
  const translate = await getPipeline(model, noopProgress, {}, signal);
1622
- const sdk = await loadTransformersSDK();
1636
+ const { TextStreamer } = await loadTransformersSDK();
1623
1637
  const queue = createStreamEventQueue();
1624
- const streamer = createStreamingTextStreamer(translate.tokenizer, queue, sdk);
1638
+ const streamer = createStreamingTextStreamer(translate.tokenizer, queue, TextStreamer);
1625
1639
  const pipelinePromise = translate(input.text, {
1626
1640
  src_lang: input.source_lang,
1627
1641
  tgt_lang: input.target_lang,
@@ -1634,7 +1648,11 @@ var HFT_TextTranslation_Stream = async function* (input, model, signal) {
1634
1648
 
1635
1649
  // src/provider-hf-transformers/common/HFT_ToolCalling.ts
1636
1650
  init_HFT_Pipeline();
1637
- import { buildToolDescription, filterValidToolCalls, toTextFlatMessages } from "@workglow/ai/worker";
1651
+ import {
1652
+ buildToolDescription,
1653
+ filterValidToolCalls,
1654
+ toTextFlatMessages
1655
+ } from "@workglow/ai/worker";
1638
1656
  function mapHFTTools(tools) {
1639
1657
  return tools.map((t) => ({
1640
1658
  type: "function",
@@ -1670,7 +1688,7 @@ ${requiredInstruction}` };
1670
1688
  var HFT_ToolCalling = async (input, model, onProgress, signal) => {
1671
1689
  const isArrayInput = Array.isArray(input.prompt);
1672
1690
  const generateText = await getPipeline(model, onProgress, {}, signal);
1673
- const sdk = await loadTransformersSDK();
1691
+ const { TextStreamer } = await loadTransformersSDK();
1674
1692
  if (isArrayInput) {
1675
1693
  const prompts = input.prompt;
1676
1694
  const texts = [];
@@ -1684,7 +1702,7 @@ var HFT_ToolCalling = async (input, model, onProgress, signal) => {
1684
1702
  tokenize: false,
1685
1703
  add_generation_prompt: true
1686
1704
  });
1687
- const streamer2 = createTextStreamer(generateText.tokenizer, onProgress, sdk);
1705
+ const streamer2 = createTextStreamer(generateText.tokenizer, onProgress, TextStreamer);
1688
1706
  let results2 = await generateText(prompt2, {
1689
1707
  max_new_tokens: input.maxTokens ?? 1024,
1690
1708
  temperature: input.temperature ?? undefined,
@@ -1708,7 +1726,7 @@ var HFT_ToolCalling = async (input, model, onProgress, signal) => {
1708
1726
  tokenize: false,
1709
1727
  add_generation_prompt: true
1710
1728
  });
1711
- const streamer = createTextStreamer(generateText.tokenizer, onProgress, sdk);
1729
+ const streamer = createTextStreamer(generateText.tokenizer, onProgress, TextStreamer);
1712
1730
  let results = await generateText(prompt, {
1713
1731
  max_new_tokens: input.maxTokens ?? 1024,
1714
1732
  temperature: input.temperature ?? undefined,
@@ -1728,7 +1746,7 @@ var HFT_ToolCalling = async (input, model, onProgress, signal) => {
1728
1746
  var HFT_ToolCalling_Stream = async function* (input, model, signal) {
1729
1747
  const noopProgress = () => {};
1730
1748
  const generateText = await getPipeline(model, noopProgress, {}, signal);
1731
- const sdk = await loadTransformersSDK();
1749
+ const { TextStreamer } = await loadTransformersSDK();
1732
1750
  const messages = toTextFlatMessages(input);
1733
1751
  const tools = resolveHFTToolsAndMessages(input, messages);
1734
1752
  const prompt = generateText.tokenizer.apply_chat_template(messages, {
@@ -1738,7 +1756,7 @@ var HFT_ToolCalling_Stream = async function* (input, model, signal) {
1738
1756
  });
1739
1757
  const innerQueue = createStreamEventQueue();
1740
1758
  const outerQueue = createStreamEventQueue();
1741
- const streamer = createStreamingTextStreamer(generateText.tokenizer, innerQueue, sdk);
1759
+ const streamer = createStreamingTextStreamer(generateText.tokenizer, innerQueue, TextStreamer);
1742
1760
  let fullText = "";
1743
1761
  const filter = createToolCallMarkupFilter((text) => {
1744
1762
  outerQueue.push({ type: "text-delta", port: "text", textDelta: text });
@@ -1882,6 +1900,7 @@ import {
1882
1900
  } from "@workglow/ai";
1883
1901
  class HuggingFaceTransformersQueuedProvider extends QueuedAiProvider {
1884
1902
  name = HF_TRANSFORMERS_ONNX;
1903
+ displayName = "Hugging Face Transformers (ONNX)";
1885
1904
  isLocal = true;
1886
1905
  supportsBrowser = true;
1887
1906
  taskTypes = [
@@ -1935,6 +1954,7 @@ import {
1935
1954
  } from "@workglow/ai/worker";
1936
1955
  class HuggingFaceTransformersProvider extends AiProvider {
1937
1956
  name = HF_TRANSFORMERS_ONNX;
1957
+ displayName = "Hugging Face Transformers (ONNX)";
1938
1958
  isLocal = true;
1939
1959
  supportsBrowser = true;
1940
1960
  taskTypes = [
@@ -2002,4 +2022,4 @@ export {
2002
2022
  HF_TRANSFORMERS_ONNX
2003
2023
  };
2004
2024
 
2005
- //# debugId=1B109CAD7F3983A264756E2164756E21
2025
+ //# debugId=7FBB0D520B1672D164756E2164756E21