@workglow/ai-provider 0.0.125 → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (185) hide show
  1. package/dist/common/HfModelSearch.d.ts +1 -0
  2. package/dist/common/HfModelSearch.d.ts.map +1 -1
  3. package/dist/common/modelSearchQuery.d.ts +25 -0
  4. package/dist/common/modelSearchQuery.d.ts.map +1 -0
  5. package/dist/provider-anthropic/AnthropicProvider.d.ts +1 -1
  6. package/dist/provider-anthropic/AnthropicProvider.d.ts.map +1 -1
  7. package/dist/provider-anthropic/AnthropicQueuedProvider.d.ts +4 -4
  8. package/dist/provider-anthropic/AnthropicQueuedProvider.d.ts.map +1 -1
  9. package/dist/provider-anthropic/common/Anthropic_Client.d.ts.map +1 -1
  10. package/dist/provider-anthropic/common/Anthropic_CountTokens.d.ts.map +1 -1
  11. package/dist/provider-anthropic/common/Anthropic_JobRunFns.d.ts.map +1 -1
  12. package/dist/provider-anthropic/common/Anthropic_ModelSearch.d.ts.map +1 -1
  13. package/dist/provider-anthropic/common/Anthropic_TextGeneration.d.ts.map +1 -1
  14. package/dist/provider-anthropic/common/Anthropic_TextRewriter.d.ts.map +1 -1
  15. package/dist/provider-anthropic/common/Anthropic_TextSummary.d.ts.map +1 -1
  16. package/dist/provider-anthropic/index.js +3 -4
  17. package/dist/provider-anthropic/index.js.map +3 -3
  18. package/dist/provider-anthropic/runtime.js +39 -292
  19. package/dist/provider-anthropic/runtime.js.map +13 -13
  20. package/dist/provider-chrome/common/WebBrowser_ModelSearch.d.ts.map +1 -1
  21. package/dist/provider-chrome/common/WebBrowser_TextGeneration.d.ts.map +1 -1
  22. package/dist/provider-chrome/common/WebBrowser_TextLanguageDetection.d.ts.map +1 -1
  23. package/dist/provider-chrome/common/WebBrowser_TextRewriter.d.ts.map +1 -1
  24. package/dist/provider-chrome/common/WebBrowser_TextSummary.d.ts.map +1 -1
  25. package/dist/provider-chrome/common/WebBrowser_TextTranslation.d.ts.map +1 -1
  26. package/dist/provider-chrome/runtime.js +24 -99
  27. package/dist/provider-chrome/runtime.js.map +10 -9
  28. package/dist/provider-gemini/GoogleGeminiProvider.d.ts +1 -1
  29. package/dist/provider-gemini/GoogleGeminiProvider.d.ts.map +1 -1
  30. package/dist/provider-gemini/GoogleGeminiQueuedProvider.d.ts +4 -4
  31. package/dist/provider-gemini/GoogleGeminiQueuedProvider.d.ts.map +1 -1
  32. package/dist/provider-gemini/common/Gemini_CountTokens.d.ts.map +1 -1
  33. package/dist/provider-gemini/common/Gemini_JobRunFns.d.ts.map +1 -1
  34. package/dist/provider-gemini/common/Gemini_ModelSearch.d.ts.map +1 -1
  35. package/dist/provider-gemini/common/Gemini_TextEmbedding.d.ts.map +1 -1
  36. package/dist/provider-gemini/common/Gemini_TextGeneration.d.ts.map +1 -1
  37. package/dist/provider-gemini/common/Gemini_TextRewriter.d.ts.map +1 -1
  38. package/dist/provider-gemini/common/Gemini_TextSummary.d.ts.map +1 -1
  39. package/dist/provider-gemini/index.js +3 -4
  40. package/dist/provider-gemini/index.js.map +3 -3
  41. package/dist/provider-gemini/runtime.js +33 -259
  42. package/dist/provider-gemini/runtime.js.map +13 -13
  43. package/dist/provider-hf-inference/HfInferenceProvider.d.ts +1 -1
  44. package/dist/provider-hf-inference/HfInferenceProvider.d.ts.map +1 -1
  45. package/dist/provider-hf-inference/HfInferenceQueuedProvider.d.ts +4 -4
  46. package/dist/provider-hf-inference/HfInferenceQueuedProvider.d.ts.map +1 -1
  47. package/dist/provider-hf-inference/common/HFI_Client.d.ts.map +1 -1
  48. package/dist/provider-hf-inference/common/HFI_JobRunFns.d.ts.map +1 -1
  49. package/dist/provider-hf-inference/common/HFI_ModelSearch.d.ts.map +1 -1
  50. package/dist/provider-hf-inference/common/HFI_TextEmbedding.d.ts.map +1 -1
  51. package/dist/provider-hf-inference/common/HFI_TextGeneration.d.ts.map +1 -1
  52. package/dist/provider-hf-inference/common/HFI_TextRewriter.d.ts.map +1 -1
  53. package/dist/provider-hf-inference/common/HFI_TextSummary.d.ts.map +1 -1
  54. package/dist/provider-hf-inference/index.js +3 -4
  55. package/dist/provider-hf-inference/index.js.map +3 -3
  56. package/dist/provider-hf-inference/runtime.js +14 -207
  57. package/dist/provider-hf-inference/runtime.js.map +13 -14
  58. package/dist/provider-hf-transformers/HuggingFaceTransformersProvider.d.ts +1 -1
  59. package/dist/provider-hf-transformers/HuggingFaceTransformersProvider.d.ts.map +1 -1
  60. package/dist/provider-hf-transformers/HuggingFaceTransformersQueuedProvider.d.ts +13 -3
  61. package/dist/provider-hf-transformers/HuggingFaceTransformersQueuedProvider.d.ts.map +1 -1
  62. package/dist/provider-hf-transformers/common/HFT_Constants.d.ts +4 -0
  63. package/dist/provider-hf-transformers/common/HFT_Constants.d.ts.map +1 -1
  64. package/dist/provider-hf-transformers/common/HFT_CountTokens.d.ts.map +1 -1
  65. package/dist/provider-hf-transformers/common/HFT_Download.d.ts.map +1 -1
  66. package/dist/provider-hf-transformers/common/HFT_ImageEmbedding.d.ts.map +1 -1
  67. package/dist/provider-hf-transformers/common/HFT_JobRunFns.d.ts +117 -88
  68. package/dist/provider-hf-transformers/common/HFT_JobRunFns.d.ts.map +1 -1
  69. package/dist/provider-hf-transformers/common/HFT_ModelInfo.d.ts.map +1 -1
  70. package/dist/provider-hf-transformers/common/HFT_ModelSchema.d.ts +30 -0
  71. package/dist/provider-hf-transformers/common/HFT_ModelSchema.d.ts.map +1 -1
  72. package/dist/provider-hf-transformers/common/HFT_ModelSearch.d.ts.map +1 -1
  73. package/dist/provider-hf-transformers/common/HFT_OnnxDtypes.d.ts.map +1 -1
  74. package/dist/provider-hf-transformers/common/HFT_Pipeline.d.ts +9 -2
  75. package/dist/provider-hf-transformers/common/HFT_Pipeline.d.ts.map +1 -1
  76. package/dist/provider-hf-transformers/common/HFT_Streaming.d.ts +2 -2
  77. package/dist/provider-hf-transformers/common/HFT_Streaming.d.ts.map +1 -1
  78. package/dist/provider-hf-transformers/common/HFT_TextClassification.d.ts.map +1 -1
  79. package/dist/provider-hf-transformers/common/HFT_TextFillMask.d.ts.map +1 -1
  80. package/dist/provider-hf-transformers/common/HFT_TextGeneration.d.ts.map +1 -1
  81. package/dist/provider-hf-transformers/common/HFT_TextLanguageDetection.d.ts.map +1 -1
  82. package/dist/provider-hf-transformers/common/HFT_TextNamedEntityRecognition.d.ts.map +1 -1
  83. package/dist/provider-hf-transformers/common/HFT_TextQuestionAnswer.d.ts.map +1 -1
  84. package/dist/provider-hf-transformers/common/HFT_TextRewriter.d.ts.map +1 -1
  85. package/dist/provider-hf-transformers/common/HFT_TextSummary.d.ts.map +1 -1
  86. package/dist/provider-hf-transformers/common/HFT_TextTranslation.d.ts.map +1 -1
  87. package/dist/provider-hf-transformers/index.d.ts +0 -1
  88. package/dist/provider-hf-transformers/index.d.ts.map +1 -1
  89. package/dist/provider-hf-transformers/index.js +49 -177
  90. package/dist/provider-hf-transformers/index.js.map +8 -9
  91. package/dist/provider-hf-transformers/registerHuggingFaceTransformersWorker.d.ts.map +1 -1
  92. package/dist/provider-hf-transformers/runtime.d.ts +0 -1
  93. package/dist/provider-hf-transformers/runtime.d.ts.map +1 -1
  94. package/dist/provider-hf-transformers/runtime.js +209 -514
  95. package/dist/provider-hf-transformers/runtime.js.map +29 -31
  96. package/dist/provider-llamacpp/LlamaCppProvider.d.ts +1 -1
  97. package/dist/provider-llamacpp/LlamaCppProvider.d.ts.map +1 -1
  98. package/dist/provider-llamacpp/LlamaCppQueuedProvider.d.ts +1 -1
  99. package/dist/provider-llamacpp/LlamaCppQueuedProvider.d.ts.map +1 -1
  100. package/dist/provider-llamacpp/common/LlamaCpp_CountTokens.d.ts.map +1 -1
  101. package/dist/provider-llamacpp/common/LlamaCpp_JobRunFns.d.ts.map +1 -1
  102. package/dist/provider-llamacpp/common/LlamaCpp_ModelSchema.d.ts +15 -0
  103. package/dist/provider-llamacpp/common/LlamaCpp_ModelSchema.d.ts.map +1 -1
  104. package/dist/provider-llamacpp/common/LlamaCpp_ModelSearch.d.ts.map +1 -1
  105. package/dist/provider-llamacpp/common/LlamaCpp_Runtime.d.ts +10 -0
  106. package/dist/provider-llamacpp/common/LlamaCpp_Runtime.d.ts.map +1 -1
  107. package/dist/provider-llamacpp/common/LlamaCpp_StructuredGeneration.d.ts.map +1 -1
  108. package/dist/provider-llamacpp/common/LlamaCpp_TextEmbedding.d.ts.map +1 -1
  109. package/dist/provider-llamacpp/common/LlamaCpp_TextGeneration.d.ts.map +1 -1
  110. package/dist/provider-llamacpp/common/LlamaCpp_TextRewriter.d.ts.map +1 -1
  111. package/dist/provider-llamacpp/common/LlamaCpp_TextSummary.d.ts.map +1 -1
  112. package/dist/provider-llamacpp/index.js +6 -2
  113. package/dist/provider-llamacpp/index.js.map +4 -4
  114. package/dist/provider-llamacpp/runtime.js +83 -231
  115. package/dist/provider-llamacpp/runtime.js.map +15 -16
  116. package/dist/provider-ollama/OllamaProvider.d.ts +1 -1
  117. package/dist/provider-ollama/OllamaProvider.d.ts.map +1 -1
  118. package/dist/provider-ollama/OllamaQueuedProvider.d.ts +4 -4
  119. package/dist/provider-ollama/OllamaQueuedProvider.d.ts.map +1 -1
  120. package/dist/provider-ollama/common/Ollama_JobRunFns.browser.d.ts +14 -72
  121. package/dist/provider-ollama/common/Ollama_JobRunFns.browser.d.ts.map +1 -1
  122. package/dist/provider-ollama/common/Ollama_JobRunFns.d.ts +14 -72
  123. package/dist/provider-ollama/common/Ollama_JobRunFns.d.ts.map +1 -1
  124. package/dist/provider-ollama/common/Ollama_ModelSearch.d.ts.map +1 -1
  125. package/dist/provider-ollama/common/Ollama_TextGeneration.d.ts.map +1 -1
  126. package/dist/provider-ollama/common/Ollama_TextRewriter.d.ts.map +1 -1
  127. package/dist/provider-ollama/common/Ollama_TextSummary.d.ts.map +1 -1
  128. package/dist/provider-ollama/index.browser.js +3 -4
  129. package/dist/provider-ollama/index.browser.js.map +3 -3
  130. package/dist/provider-ollama/index.js +3 -4
  131. package/dist/provider-ollama/index.js.map +3 -3
  132. package/dist/provider-ollama/runtime.browser.js +28 -181
  133. package/dist/provider-ollama/runtime.browser.js.map +11 -11
  134. package/dist/provider-ollama/runtime.js +28 -176
  135. package/dist/provider-ollama/runtime.js.map +11 -11
  136. package/dist/provider-openai/OpenAiProvider.d.ts +1 -1
  137. package/dist/provider-openai/OpenAiProvider.d.ts.map +1 -1
  138. package/dist/provider-openai/OpenAiQueuedProvider.d.ts +4 -4
  139. package/dist/provider-openai/OpenAiQueuedProvider.d.ts.map +1 -1
  140. package/dist/provider-openai/common/OpenAI_Client.d.ts.map +1 -1
  141. package/dist/provider-openai/common/OpenAI_CountTokens.browser.d.ts.map +1 -1
  142. package/dist/provider-openai/common/OpenAI_CountTokens.d.ts.map +1 -1
  143. package/dist/provider-openai/common/OpenAI_JobRunFns.browser.d.ts.map +1 -1
  144. package/dist/provider-openai/common/OpenAI_JobRunFns.d.ts.map +1 -1
  145. package/dist/provider-openai/common/OpenAI_ModelSearch.d.ts.map +1 -1
  146. package/dist/provider-openai/common/OpenAI_TextEmbedding.d.ts.map +1 -1
  147. package/dist/provider-openai/common/OpenAI_TextGeneration.d.ts.map +1 -1
  148. package/dist/provider-openai/common/OpenAI_TextRewriter.d.ts.map +1 -1
  149. package/dist/provider-openai/common/OpenAI_TextSummary.d.ts.map +1 -1
  150. package/dist/provider-openai/index.browser.js +3 -4
  151. package/dist/provider-openai/index.browser.js.map +3 -3
  152. package/dist/provider-openai/index.js +3 -4
  153. package/dist/provider-openai/index.js.map +3 -3
  154. package/dist/provider-openai/runtime.browser.js +42 -225
  155. package/dist/provider-openai/runtime.browser.js.map +14 -14
  156. package/dist/provider-openai/runtime.js +42 -225
  157. package/dist/provider-openai/runtime.js.map +14 -14
  158. package/dist/provider-tf-mediapipe/TensorFlowMediaPipeQueuedProvider.d.ts +3 -3
  159. package/dist/provider-tf-mediapipe/TensorFlowMediaPipeQueuedProvider.d.ts.map +1 -1
  160. package/dist/provider-tf-mediapipe/common/TFMP_ImageEmbedding.d.ts.map +1 -1
  161. package/dist/provider-tf-mediapipe/common/TFMP_JobRunFns.d.ts +18 -11
  162. package/dist/provider-tf-mediapipe/common/TFMP_JobRunFns.d.ts.map +1 -1
  163. package/dist/provider-tf-mediapipe/common/TFMP_ModelSearch.d.ts.map +1 -1
  164. package/dist/provider-tf-mediapipe/common/TFMP_Unload.d.ts.map +1 -1
  165. package/dist/provider-tf-mediapipe/index.js +3 -3
  166. package/dist/provider-tf-mediapipe/index.js.map +3 -3
  167. package/dist/provider-tf-mediapipe/runtime.js +37 -7
  168. package/dist/provider-tf-mediapipe/runtime.js.map +8 -7
  169. package/package.json +31 -19
  170. package/dist/provider-anthropic/common/Anthropic_ToolCalling.d.ts +0 -10
  171. package/dist/provider-anthropic/common/Anthropic_ToolCalling.d.ts.map +0 -1
  172. package/dist/provider-gemini/common/Gemini_ToolCalling.d.ts +0 -10
  173. package/dist/provider-gemini/common/Gemini_ToolCalling.d.ts.map +0 -1
  174. package/dist/provider-hf-inference/common/HFI_ToolCalling.d.ts +0 -10
  175. package/dist/provider-hf-inference/common/HFI_ToolCalling.d.ts.map +0 -1
  176. package/dist/provider-hf-transformers/common/HFT_ToolCalling.d.ts +0 -10
  177. package/dist/provider-hf-transformers/common/HFT_ToolCalling.d.ts.map +0 -1
  178. package/dist/provider-hf-transformers/common/HFT_ToolMarkup.d.ts +0 -40
  179. package/dist/provider-hf-transformers/common/HFT_ToolMarkup.d.ts.map +0 -1
  180. package/dist/provider-llamacpp/common/LlamaCpp_ToolCalling.d.ts +0 -10
  181. package/dist/provider-llamacpp/common/LlamaCpp_ToolCalling.d.ts.map +0 -1
  182. package/dist/provider-ollama/common/Ollama_ToolCalling.d.ts +0 -16
  183. package/dist/provider-ollama/common/Ollama_ToolCalling.d.ts.map +0 -1
  184. package/dist/provider-openai/common/OpenAI_ToolCalling.d.ts +0 -10
  185. package/dist/provider-openai/common/OpenAI_ToolCalling.d.ts.map +0 -1
@@ -3,10 +3,10 @@
3
3
  * Copyright 2025 Steven Roussey <sroussey@gmail.com>
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
- import { QueuedAiProvider, type AiProviderReactiveRunFn, type AiProviderRunFn } from "@workglow/ai";
6
+ import { AiProvider, type AiProviderReactiveRunFn, type AiProviderRunFn } from "@workglow/ai";
7
7
  import type { TFMPModelConfig } from "./common/TFMP_ModelSchema";
8
- /** Main-thread registration (inline or worker-backed); creates the default job queue. */
9
- export declare class TensorFlowMediaPipeQueuedProvider extends QueuedAiProvider<TFMPModelConfig> {
8
+ /** Main-thread registration (inline or worker-backed). WASM-only uses direct execution. */
9
+ export declare class TensorFlowMediaPipeQueuedProvider extends AiProvider<TFMPModelConfig> {
10
10
  readonly name = "TENSORFLOW_MEDIAPIPE";
11
11
  readonly displayName = "TensorFlow MediaPipe";
12
12
  readonly isLocal = true;
@@ -1 +1 @@
1
- {"version":3,"file":"TensorFlowMediaPipeQueuedProvider.d.ts","sourceRoot":"","sources":["../../src/provider-tf-mediapipe/TensorFlowMediaPipeQueuedProvider.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,gBAAgB,EAAE,KAAK,uBAAuB,EAAE,KAAK,eAAe,EAAE,MAAM,cAAc,CAAC;AAEpG,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAEjE,yFAAyF;AACzF,qBAAa,iCAAkC,SAAQ,gBAAgB,CAAC,eAAe,CAAC;IACtF,QAAQ,CAAC,IAAI,0BAAwB;IACrC,QAAQ,CAAC,WAAW,0BAA0B;IAC9C,QAAQ,CAAC,OAAO,QAAQ;IACxB,QAAQ,CAAC,eAAe,QAAQ;IAEhC,QAAQ,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,CAA2B;IAEhE,YACE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,GAAG,EAAE,GAAG,EAAE,eAAe,CAAC,CAAC,EAClE,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,uBAAuB,CAAC,GAAG,EAAE,GAAG,EAAE,eAAe,CAAC,CAAC,EAGnF;CACF"}
1
+ {"version":3,"file":"TensorFlowMediaPipeQueuedProvider.d.ts","sourceRoot":"","sources":["../../src/provider-tf-mediapipe/TensorFlowMediaPipeQueuedProvider.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,UAAU,EAAE,KAAK,uBAAuB,EAAE,KAAK,eAAe,EAAE,MAAM,cAAc,CAAC;AAE9F,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAEjE,6FAA6F;AAC7F,qBAAa,iCAAkC,SAAQ,UAAU,CAAC,eAAe,CAAC;IAChF,QAAQ,CAAC,IAAI,0BAAwB;IACrC,QAAQ,CAAC,WAAW,0BAA0B;IAC9C,QAAQ,CAAC,OAAO,QAAQ;IACxB,QAAQ,CAAC,eAAe,QAAQ;IAEhC,QAAQ,CAAC,SAAS,EAAE,SAAS,MAAM,EAAE,CAA2B;IAEhE,YACE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,GAAG,EAAE,GAAG,EAAE,eAAe,CAAC,CAAC,EAClE,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,uBAAuB,CAAC,GAAG,EAAE,GAAG,EAAE,eAAe,CAAC,CAAC,EAGnF;CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"TFMP_ImageEmbedding.d.ts","sourceRoot":"","sources":["../../../src/provider-tf-mediapipe/common/TFMP_ImageEmbedding.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EACV,eAAe,EACf,uBAAuB,EACvB,wBAAwB,EACzB,MAAM,cAAc,CAAC;AAGtB,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAGrD,eAAO,MAAM,mBAAmB,EAAE,eAAe,CAC/C,uBAAuB,EACvB,wBAAwB,EACxB,eAAe,CAehB,CAAC"}
1
+ {"version":3,"file":"TFMP_ImageEmbedding.d.ts","sourceRoot":"","sources":["../../../src/provider-tf-mediapipe/common/TFMP_ImageEmbedding.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EACV,eAAe,EACf,uBAAuB,EACvB,wBAAwB,EACzB,MAAM,cAAc,CAAC;AAGtB,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAGrD,eAAO,MAAM,mBAAmB,EAAE,eAAe,CAC/C,uBAAuB,EACvB,wBAAwB,EACxB,eAAe,CA4BhB,CAAC"}
@@ -206,14 +206,11 @@ export declare const TFMP_TASKS: {
206
206
  tasks?: string[] | undefined;
207
207
  title?: string | undefined;
208
208
  };
209
- text: string | string[];
209
+ text: string;
210
210
  }, {
211
211
  languages: {
212
212
  language: string;
213
213
  score: number;
214
- }[][] | {
215
- language: string;
216
- score: number;
217
214
  }[];
218
215
  }, {
219
216
  description?: string | undefined;
@@ -248,14 +245,11 @@ export declare const TFMP_TASKS: {
248
245
  tasks?: string[] | undefined;
249
246
  title?: string | undefined;
250
247
  };
251
- text: string | string[];
248
+ text: string;
252
249
  }, {
253
250
  categories: {
254
251
  label: string;
255
252
  score: number;
256
- }[][] | {
257
- label: string;
258
- score: number;
259
253
  }[];
260
254
  }, {
261
255
  description?: string | undefined;
@@ -334,7 +328,20 @@ export declare const TFMP_TASKS: {
334
328
  title?: string | undefined;
335
329
  }>;
336
330
  readonly ImageEmbeddingTask: import("@workglow/ai").AiProviderRunFn<{
337
- image: string | {
331
+ image: string | (string | {
332
+ channels: number;
333
+ data: {
334
+ [x: string]: unknown;
335
+ } | {
336
+ channels: number;
337
+ data: number[];
338
+ height: number;
339
+ rawChannels?: number | undefined;
340
+ width: number;
341
+ };
342
+ height: number;
343
+ width: number;
344
+ })[] | {
338
345
  channels: number;
339
346
  data: {
340
347
  [x: string]: unknown;
@@ -364,7 +371,7 @@ export declare const TFMP_TASKS: {
364
371
  title?: string | undefined;
365
372
  };
366
373
  }, {
367
- vector: import("@workglow/util/schema").TypedArray;
374
+ vector: import("@workglow/util/schema").TypedArray[] | import("@workglow/util/schema").TypedArray;
368
375
  }, {
369
376
  description?: string | undefined;
370
377
  metadata?: {
@@ -920,7 +927,7 @@ export declare const TFMP_TASKS: {
920
927
  }>;
921
928
  readonly ModelSearchTask: import("@workglow/ai").AiProviderRunFn<{
922
929
  provider: string;
923
- query: string;
930
+ query?: string | undefined;
924
931
  }, import("@workglow/ai").ModelSearchTaskOutput>;
925
932
  };
926
933
  //# sourceMappingURL=TFMP_JobRunFns.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"TFMP_JobRunFns.d.ts","sourceRoot":"","sources":["../../../src/provider-tf-mediapipe/common/TFMP_JobRunFns.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAoBH,OAAO,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AAE7E,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiBb,CAAC"}
1
+ {"version":3,"file":"TFMP_JobRunFns.d.ts","sourceRoot":"","sources":["../../../src/provider-tf-mediapipe/common/TFMP_JobRunFns.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAoBH,OAAO,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAC;AAE7E,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiBb,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"TFMP_ModelSearch.d.ts","sourceRoot":"","sources":["../../../src/provider-tf-mediapipe/common/TFMP_ModelSearch.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EACV,eAAe,EAEf,oBAAoB,EACpB,qBAAqB,EACtB,MAAM,cAAc,CAAC;AAOtB,wBAAgB,qBAAqB,CACnC,UAAU,EAAE,MAAM,GACjB,eAAe,CAAC,oBAAoB,EAAE,qBAAqB,CAAC,CAmB9D;AAED,eAAO,MAAM,gBAAgB,EAAE,eAAe,CAAC,oBAAoB,EAAE,qBAAqB,CAC7C,CAAC"}
1
+ {"version":3,"file":"TFMP_ModelSearch.d.ts","sourceRoot":"","sources":["../../../src/provider-tf-mediapipe/common/TFMP_ModelSearch.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EACV,eAAe,EAEf,oBAAoB,EACpB,qBAAqB,EACtB,MAAM,cAAc,CAAC;AAQtB,wBAAgB,qBAAqB,CACnC,UAAU,EAAE,MAAM,GACjB,eAAe,CAAC,oBAAoB,EAAE,qBAAqB,CAAC,CAoB9D;AAED,eAAO,MAAM,gBAAgB,EAAE,eAAe,CAAC,oBAAoB,EAAE,qBAAqB,CAC7C,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"TFMP_Unload.d.ts","sourceRoot":"","sources":["../../../src/provider-tf-mediapipe/common/TFMP_Unload.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EACV,eAAe,EACf,uBAAuB,EACvB,wBAAwB,EACzB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAOrD,eAAO,MAAM,WAAW,EAAE,eAAe,CACvC,uBAAuB,EACvB,wBAAwB,EACxB,eAAe,CA6BhB,CAAC"}
1
+ {"version":3,"file":"TFMP_Unload.d.ts","sourceRoot":"","sources":["../../../src/provider-tf-mediapipe/common/TFMP_Unload.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EACV,eAAe,EACf,uBAAuB,EACvB,wBAAwB,EACzB,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAGrD,eAAO,MAAM,WAAW,EAAE,eAAe,CACvC,uBAAuB,EACvB,wBAAwB,EACxB,eAAe,CA6BhB,CAAC"}
@@ -100,8 +100,8 @@ var TFMPModelConfigSchema = {
100
100
  additionalProperties: false
101
101
  };
102
102
  // src/provider-tf-mediapipe/TensorFlowMediaPipeQueuedProvider.ts
103
- import { QueuedAiProvider } from "@workglow/ai";
104
- class TensorFlowMediaPipeQueuedProvider extends QueuedAiProvider {
103
+ import { AiProvider } from "@workglow/ai";
104
+ class TensorFlowMediaPipeQueuedProvider extends AiProvider {
105
105
  name = TENSORFLOW_MEDIAPIPE;
106
106
  displayName = "TensorFlow MediaPipe";
107
107
  isLocal = true;
@@ -126,4 +126,4 @@ export {
126
126
  TENSORFLOW_MEDIAPIPE
127
127
  };
128
128
 
129
- //# debugId=8EFFDB6AC406982764756E2164756E21
129
+ //# debugId=D022412E74B30E7964756E2164756E21
@@ -4,10 +4,10 @@
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 TENSORFLOW_MEDIAPIPE = \"TENSORFLOW_MEDIAPIPE\";\n\nexport const TFMP_DEFAULT_TASK_TYPES = [\n \"DownloadModelTask\",\n \"UnloadModelTask\",\n \"ModelInfoTask\",\n \"TextEmbeddingTask\",\n \"TextLanguageDetectionTask\",\n \"TextClassificationTask\",\n \"ImageSegmentationTask\",\n \"ImageEmbeddingTask\",\n \"ImageClassificationTask\",\n \"ObjectDetectionTask\",\n \"GestureRecognizerTask\",\n \"HandLandmarkerTask\",\n \"FaceDetectorTask\",\n \"FaceLandmarkerTask\",\n \"PoseLandmarkerTask\",\n \"ModelSearchTask\",\n] as const;\n\nexport type TextPipelineTask =\n | \"text-embedder\"\n | \"text-classifier\"\n | \"text-language-detector\"\n | \"genai-text\"\n | \"audio-classifier\"\n | \"audio-embedder\"\n | \"vision-face-detector\"\n | \"vision-face-landmarker\"\n | \"vision-face-stylizer\"\n | \"vision-gesture-recognizer\"\n | \"vision-hand-landmarker\"\n | \"vision-holistic-landmarker\"\n | \"vision-image-classifier\"\n | \"vision-image-embedder\"\n | \"vision-image-segmenter\"\n | \"vision-image-interactive-segmenter\"\n | \"vision-object-detector\"\n | \"vision-pose-landmarker\";\n\nexport const TextPipelineTask = {\n \"text-embedder\": \"text-embedder\",\n \"text-classifier\": \"text-classifier\",\n \"text-language-detector\": \"text-language-detector\",\n \"genai-text\": \"genai-text\",\n \"audio-classifier\": \"audio-classifier\",\n \"audio-embedder\": \"audio-embedder\",\n \"vision-face-detector\": \"vision-face-detector\",\n \"vision-face-landmarker\": \"vision-face-landmarker\",\n \"vision-face-stylizer\": \"vision-face-stylizer\",\n \"vision-gesture-recognizer\": \"vision-gesture-recognizer\",\n \"vision-hand-landmarker\": \"vision-hand-landmarker\",\n \"vision-holistic-landmarker\": \"vision-holistic-landmarker\",\n \"vision-image-classifier\": \"vision-image-classifier\",\n \"vision-image-embedder\": \"vision-image-embedder\",\n \"vision-image-segmenter\": \"vision-image-segmenter\",\n \"vision-image-interactive-segmenter\": \"vision-image-interactive-segmenter\",\n \"vision-object-detector\": \"vision-object-detector\",\n \"vision-pose-landmarker\": \"vision-pose-landmarker\",\n} as const satisfies Record<TextPipelineTask, TextPipelineTask>;\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 { TENSORFLOW_MEDIAPIPE, TextPipelineTask } from \"../common/TFMP_Constants\";\n\nexport const TFMPModelSchema = {\n type: \"object\",\n properties: {\n provider: {\n const: TENSORFLOW_MEDIAPIPE,\n description: \"Discriminator: TensorFlow MediaPipe backend.\",\n },\n provider_config: {\n type: \"object\",\n description: \"TensorFlow MediaPipe-specific options.\",\n properties: {\n model_path: {\n type: \"string\",\n description: \"Filesystem path or URI for the ONNX model.\",\n },\n task_engine: {\n type: \"string\",\n enum: [\"text\", \"audio\", \"vision\", \"genai\"],\n description: \"Task engine for the MediaPipe model.\",\n },\n pipeline: {\n type: \"string\",\n enum: Object.values(TextPipelineTask),\n description: \"Pipeline task type for the MediaPipe model.\",\n },\n },\n required: [\"model_path\", \"task_engine\", \"pipeline\"],\n additionalProperties: false,\n },\n },\n required: [\"provider\", \"provider_config\"],\n additionalProperties: true,\n} as const satisfies DataPortSchemaObject;\n\nexport const TFMPModelRecordSchema = {\n type: \"object\",\n properties: {\n ...ModelRecordSchema.properties,\n ...TFMPModelSchema.properties,\n },\n required: [...ModelRecordSchema.required, ...TFMPModelSchema.required],\n additionalProperties: false,\n} as const satisfies DataPortSchemaObject;\n\nexport type TFMPModelRecord = FromSchema<typeof TFMPModelRecordSchema>;\n\nexport const TFMPModelConfigSchema = {\n type: \"object\",\n properties: {\n ...ModelConfigSchema.properties,\n ...TFMPModelSchema.properties,\n },\n required: [...ModelConfigSchema.required, ...TFMPModelSchema.required],\n additionalProperties: false,\n} as const satisfies DataPortSchemaObject;\n\nexport type TFMPModelConfig = FromSchema<typeof TFMPModelConfigSchema>;\n",
7
- "/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { QueuedAiProvider, type AiProviderReactiveRunFn, type AiProviderRunFn } from \"@workglow/ai\";\nimport { TENSORFLOW_MEDIAPIPE, TFMP_DEFAULT_TASK_TYPES } from \"./common/TFMP_Constants\";\nimport type { TFMPModelConfig } from \"./common/TFMP_ModelSchema\";\n\n/** Main-thread registration (inline or worker-backed); creates the default job queue. */\nexport class TensorFlowMediaPipeQueuedProvider extends QueuedAiProvider<TFMPModelConfig> {\n readonly name = TENSORFLOW_MEDIAPIPE;\n readonly displayName = \"TensorFlow MediaPipe\";\n readonly isLocal = true;\n readonly supportsBrowser = true;\n\n readonly taskTypes: readonly string[] = TFMP_DEFAULT_TASK_TYPES;\n\n constructor(\n tasks?: Record<string, AiProviderRunFn<any, any, TFMPModelConfig>>,\n reactiveTasks?: Record<string, AiProviderReactiveRunFn<any, any, TFMPModelConfig>>\n ) {\n super(tasks, undefined, 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 { AiProvider, type AiProviderReactiveRunFn, type AiProviderRunFn } from \"@workglow/ai\";\nimport { TENSORFLOW_MEDIAPIPE, TFMP_DEFAULT_TASK_TYPES } from \"./common/TFMP_Constants\";\nimport type { TFMPModelConfig } from \"./common/TFMP_ModelSchema\";\n\n/** Main-thread registration (inline or worker-backed). WASM-only uses direct execution. */\nexport class TensorFlowMediaPipeQueuedProvider extends AiProvider<TFMPModelConfig> {\n readonly name = TENSORFLOW_MEDIAPIPE;\n readonly displayName = \"TensorFlow MediaPipe\";\n readonly isLocal = true;\n readonly supportsBrowser = true;\n\n readonly taskTypes: readonly string[] = TFMP_DEFAULT_TASK_TYPES;\n\n constructor(\n tasks?: Record<string, AiProviderRunFn<any, any, TFMPModelConfig>>,\n reactiveTasks?: Record<string, AiProviderReactiveRunFn<any, any, TFMPModelConfig>>\n ) {\n super(tasks, undefined, reactiveTasks);\n }\n}\n",
8
8
  "/**\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 { TensorFlowMediaPipeQueuedProvider } from \"./TensorFlowMediaPipeQueuedProvider\";\n\nexport async function registerTensorFlowMediaPipe(\n options: AiProviderRegisterOptions & {\n worker: Worker | (() => Worker);\n }\n): Promise<void> {\n await new TensorFlowMediaPipeQueuedProvider().register(options);\n}\n"
9
9
  ],
10
- "mappings": ";;;;;;;;;AAMO,IAAM,uBAAuB;AAE7B,IAAM,0BAA0B;AAAA,EACrC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAsBO,IAAM,mBAAmB;AAAA,EAC9B,iBAAiB;AAAA,EACjB,mBAAmB;AAAA,EACnB,0BAA0B;AAAA,EAC1B,cAAc;AAAA,EACd,oBAAoB;AAAA,EACpB,kBAAkB;AAAA,EAClB,wBAAwB;AAAA,EACxB,0BAA0B;AAAA,EAC1B,wBAAwB;AAAA,EACxB,6BAA6B;AAAA,EAC7B,0BAA0B;AAAA,EAC1B,8BAA8B;AAAA,EAC9B,2BAA2B;AAAA,EAC3B,yBAAyB;AAAA,EACzB,0BAA0B;AAAA,EAC1B,sCAAsC;AAAA,EACtC,0BAA0B;AAAA,EAC1B,0BAA0B;AAC5B;;AC5DA;AAIO,IAAM,kBAAkB;AAAA,EAC7B,MAAM;AAAA,EACN,YAAY;AAAA,IACV,UAAU;AAAA,MACR,OAAO;AAAA,MACP,aAAa;AAAA,IACf;AAAA,IACA,iBAAiB;AAAA,MACf,MAAM;AAAA,MACN,aAAa;AAAA,MACb,YAAY;AAAA,QACV,YAAY;AAAA,UACV,MAAM;AAAA,UACN,aAAa;AAAA,QACf;AAAA,QACA,aAAa;AAAA,UACX,MAAM;AAAA,UACN,MAAM,CAAC,QAAQ,SAAS,UAAU,OAAO;AAAA,UACzC,aAAa;AAAA,QACf;AAAA,QACA,UAAU;AAAA,UACR,MAAM;AAAA,UACN,MAAM,OAAO,OAAO,gBAAgB;AAAA,UACpC,aAAa;AAAA,QACf;AAAA,MACF;AAAA,MACA,UAAU,CAAC,cAAc,eAAe,UAAU;AAAA,MAClD,sBAAsB;AAAA,IACxB;AAAA,EACF;AAAA,EACA,UAAU,CAAC,YAAY,iBAAiB;AAAA,EACxC,sBAAsB;AACxB;AAEO,IAAM,wBAAwB;AAAA,EACnC,MAAM;AAAA,EACN,YAAY;AAAA,OACP,kBAAkB;AAAA,OAClB,gBAAgB;AAAA,EACrB;AAAA,EACA,UAAU,CAAC,GAAG,kBAAkB,UAAU,GAAG,gBAAgB,QAAQ;AAAA,EACrE,sBAAsB;AACxB;AAIO,IAAM,wBAAwB;AAAA,EACnC,MAAM;AAAA,EACN,YAAY;AAAA,OACP,kBAAkB;AAAA,OAClB,gBAAgB;AAAA,EACrB;AAAA,EACA,UAAU,CAAC,GAAG,kBAAkB,UAAU,GAAG,gBAAgB,QAAQ;AAAA,EACrE,sBAAsB;AACxB;;AC1DA;AAKO,MAAM,0CAA0C,iBAAkC;AAAA,EAC9E,OAAO;AAAA,EACP,cAAc;AAAA,EACd,UAAU;AAAA,EACV,kBAAkB;AAAA,EAElB,YAA+B;AAAA,EAExC,WAAW,CACT,OACA,eACA;AAAA,IACA,MAAM,OAAO,WAAW,aAAa;AAAA;AAEzC;;;AChBA,eAAsB,2BAA2B,CAC/C,SAGe;AAAA,EACf,MAAM,IAAI,kCAAkC,EAAE,SAAS,OAAO;AAAA;",
11
- "debugId": "8EFFDB6AC406982764756E2164756E21",
10
+ "mappings": ";;;;;;;;;AAMO,IAAM,uBAAuB;AAE7B,IAAM,0BAA0B;AAAA,EACrC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAsBO,IAAM,mBAAmB;AAAA,EAC9B,iBAAiB;AAAA,EACjB,mBAAmB;AAAA,EACnB,0BAA0B;AAAA,EAC1B,cAAc;AAAA,EACd,oBAAoB;AAAA,EACpB,kBAAkB;AAAA,EAClB,wBAAwB;AAAA,EACxB,0BAA0B;AAAA,EAC1B,wBAAwB;AAAA,EACxB,6BAA6B;AAAA,EAC7B,0BAA0B;AAAA,EAC1B,8BAA8B;AAAA,EAC9B,2BAA2B;AAAA,EAC3B,yBAAyB;AAAA,EACzB,0BAA0B;AAAA,EAC1B,sCAAsC;AAAA,EACtC,0BAA0B;AAAA,EAC1B,0BAA0B;AAC5B;;AC5DA;AAIO,IAAM,kBAAkB;AAAA,EAC7B,MAAM;AAAA,EACN,YAAY;AAAA,IACV,UAAU;AAAA,MACR,OAAO;AAAA,MACP,aAAa;AAAA,IACf;AAAA,IACA,iBAAiB;AAAA,MACf,MAAM;AAAA,MACN,aAAa;AAAA,MACb,YAAY;AAAA,QACV,YAAY;AAAA,UACV,MAAM;AAAA,UACN,aAAa;AAAA,QACf;AAAA,QACA,aAAa;AAAA,UACX,MAAM;AAAA,UACN,MAAM,CAAC,QAAQ,SAAS,UAAU,OAAO;AAAA,UACzC,aAAa;AAAA,QACf;AAAA,QACA,UAAU;AAAA,UACR,MAAM;AAAA,UACN,MAAM,OAAO,OAAO,gBAAgB;AAAA,UACpC,aAAa;AAAA,QACf;AAAA,MACF;AAAA,MACA,UAAU,CAAC,cAAc,eAAe,UAAU;AAAA,MAClD,sBAAsB;AAAA,IACxB;AAAA,EACF;AAAA,EACA,UAAU,CAAC,YAAY,iBAAiB;AAAA,EACxC,sBAAsB;AACxB;AAEO,IAAM,wBAAwB;AAAA,EACnC,MAAM;AAAA,EACN,YAAY;AAAA,OACP,kBAAkB;AAAA,OAClB,gBAAgB;AAAA,EACrB;AAAA,EACA,UAAU,CAAC,GAAG,kBAAkB,UAAU,GAAG,gBAAgB,QAAQ;AAAA,EACrE,sBAAsB;AACxB;AAIO,IAAM,wBAAwB;AAAA,EACnC,MAAM;AAAA,EACN,YAAY;AAAA,OACP,kBAAkB;AAAA,OAClB,gBAAgB;AAAA,EACrB;AAAA,EACA,UAAU,CAAC,GAAG,kBAAkB,UAAU,GAAG,gBAAgB,QAAQ;AAAA,EACrE,sBAAsB;AACxB;;AC1DA;AAKO,MAAM,0CAA0C,WAA4B;AAAA,EACxE,OAAO;AAAA,EACP,cAAc;AAAA,EACd,UAAU;AAAA,EACV,kBAAkB;AAAA,EAElB,YAA+B;AAAA,EAExC,WAAW,CACT,OACA,eACA;AAAA,IACA,MAAM,OAAO,WAAW,aAAa;AAAA;AAEzC;;;AChBA,eAAsB,2BAA2B,CAC/C,SAGe;AAAA,EACf,MAAM,IAAI,kCAAkC,EAAE,SAAS,OAAO;AAAA;",
11
+ "debugId": "D022412E74B30E7964756E2164756E21",
12
12
  "names": []
13
13
  }
@@ -29,6 +29,24 @@ async function loadTfmpTasksVisionSDK() {
29
29
  }
30
30
  return _tasksVision;
31
31
  }
32
+ // src/common/modelSearchQuery.ts
33
+ function normalizedModelSearchQuery(query) {
34
+ const t = query?.trim();
35
+ return t ? t.toLowerCase() : undefined;
36
+ }
37
+ function filterLabeledModelsByQuery(models, query) {
38
+ const q = normalizedModelSearchQuery(query);
39
+ if (!q)
40
+ return [...models];
41
+ return models.filter((m) => m.value.toLowerCase().includes(q) || m.label.toLowerCase().includes(q));
42
+ }
43
+ function filterModelSearchResultsByQuery(results, query) {
44
+ const q = normalizedModelSearchQuery(query);
45
+ if (!q)
46
+ return results;
47
+ return results.filter((m) => m.id.toLowerCase().includes(q) || m.label.toLowerCase().includes(q) || m.description.toLowerCase().includes(q));
48
+ }
49
+
32
50
  // src/provider-tf-mediapipe/common/TFMP_Constants.ts
33
51
  var TENSORFLOW_MEDIAPIPE = "TENSORFLOW_MEDIAPIPE";
34
52
  var TFMP_DEFAULT_TASK_TYPES = [
@@ -75,8 +93,9 @@ var TFMP_MODELS = [
75
93
  { label: "text-embedder Universal Sentence Encoder", value: "text-embedder" }
76
94
  ];
77
95
  function createTFMPModelSearch(providerId) {
78
- return async () => {
79
- const results = TFMP_MODELS.map((m) => ({
96
+ return async (input) => {
97
+ const models = filterLabeledModelsByQuery(TFMP_MODELS, input.query);
98
+ const results = models.map((m) => ({
80
99
  id: m.value,
81
100
  label: m.label,
82
101
  description: "",
@@ -428,6 +447,17 @@ import { PermanentJobError as PermanentJobError8 } from "@workglow/job-queue";
428
447
  var TFMP_ImageEmbedding = async (input, model, onProgress, signal) => {
429
448
  const { ImageEmbedder } = await loadTfmpTasksVisionSDK();
430
449
  const imageEmbedder = await getModelTask(model, {}, onProgress, signal, ImageEmbedder);
450
+ if (Array.isArray(input.image)) {
451
+ const vectors = [];
452
+ for (const image of input.image) {
453
+ const result2 = imageEmbedder.embed(image);
454
+ if (!result2.embeddings?.[0]?.floatEmbedding) {
455
+ throw new PermanentJobError8("Failed to generate embedding: Empty result");
456
+ }
457
+ vectors.push(Float32Array.from(result2.embeddings[0].floatEmbedding));
458
+ }
459
+ return { vector: vectors };
460
+ }
431
461
  const result = imageEmbedder.embed(input.image);
432
462
  if (!result.embeddings?.[0]?.floatEmbedding) {
433
463
  throw new PermanentJobError8("Failed to generate embedding: Empty result");
@@ -668,8 +698,8 @@ var TFMP_TASKS = {
668
698
  };
669
699
 
670
700
  // src/provider-tf-mediapipe/TensorFlowMediaPipeQueuedProvider.ts
671
- import { QueuedAiProvider } from "@workglow/ai";
672
- class TensorFlowMediaPipeQueuedProvider extends QueuedAiProvider {
701
+ import { AiProvider } from "@workglow/ai";
702
+ class TensorFlowMediaPipeQueuedProvider extends AiProvider {
673
703
  name = TENSORFLOW_MEDIAPIPE;
674
704
  displayName = "TensorFlow MediaPipe";
675
705
  isLocal = true;
@@ -689,9 +719,9 @@ import { getLogger, globalServiceRegistry, WORKER_SERVER } from "@workglow/util/
689
719
 
690
720
  // src/provider-tf-mediapipe/TensorFlowMediaPipeProvider.ts
691
721
  import {
692
- AiProvider
722
+ AiProvider as AiProvider2
693
723
  } from "@workglow/ai/worker";
694
- class TensorFlowMediaPipeProvider extends AiProvider {
724
+ class TensorFlowMediaPipeProvider extends AiProvider2 {
695
725
  name = TENSORFLOW_MEDIAPIPE;
696
726
  displayName = "TensorFlow MediaPipe";
697
727
  isLocal = true;
@@ -716,4 +746,4 @@ export {
716
746
  loadTfmpTasksTextSDK
717
747
  };
718
748
 
719
- //# debugId=FE0E65A6C77B890864756E2164756E21
749
+ //# debugId=720AC875976D335264756E2164756E21
@@ -1,10 +1,11 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../src/provider-tf-mediapipe/common/TFMP_Client.ts", "../src/provider-tf-mediapipe/common/TFMP_Constants.ts", "../src/provider-tf-mediapipe/common/TFMP_ModelSearch.ts", "../src/provider-tf-mediapipe/common/TFMP_Download.ts", "../src/provider-tf-mediapipe/common/TFMP_Runtime.ts", "../src/provider-tf-mediapipe/common/TFMP_FaceDetector.ts", "../src/provider-tf-mediapipe/common/TFMP_FaceLandmarker.ts", "../src/provider-tf-mediapipe/common/TFMP_GestureRecognizer.ts", "../src/provider-tf-mediapipe/common/TFMP_HandLandmarker.ts", "../src/provider-tf-mediapipe/common/TFMP_ImageClassification.ts", "../src/provider-tf-mediapipe/common/TFMP_ImageEmbedding.ts", "../src/provider-tf-mediapipe/common/TFMP_ImageSegmentation.ts", "../src/provider-tf-mediapipe/common/TFMP_ModelInfo.ts", "../src/provider-tf-mediapipe/common/TFMP_ObjectDetection.ts", "../src/provider-tf-mediapipe/common/TFMP_PoseLandmarker.ts", "../src/provider-tf-mediapipe/common/TFMP_TextClassification.ts", "../src/provider-tf-mediapipe/common/TFMP_TextEmbedding.ts", "../src/provider-tf-mediapipe/common/TFMP_TextLanguageDetection.ts", "../src/provider-tf-mediapipe/common/TFMP_Unload.ts", "../src/provider-tf-mediapipe/common/TFMP_JobRunFns.ts", "../src/provider-tf-mediapipe/TensorFlowMediaPipeQueuedProvider.ts", "../src/provider-tf-mediapipe/registerTensorFlowMediaPipeInline.ts", "../src/provider-tf-mediapipe/registerTensorFlowMediaPipeWorker.ts", "../src/provider-tf-mediapipe/TensorFlowMediaPipeProvider.ts"],
3
+ "sources": ["../src/provider-tf-mediapipe/common/TFMP_Client.ts", "../src/common/modelSearchQuery.ts", "../src/provider-tf-mediapipe/common/TFMP_Constants.ts", "../src/provider-tf-mediapipe/common/TFMP_ModelSearch.ts", "../src/provider-tf-mediapipe/common/TFMP_Download.ts", "../src/provider-tf-mediapipe/common/TFMP_Runtime.ts", "../src/provider-tf-mediapipe/common/TFMP_FaceDetector.ts", "../src/provider-tf-mediapipe/common/TFMP_FaceLandmarker.ts", "../src/provider-tf-mediapipe/common/TFMP_GestureRecognizer.ts", "../src/provider-tf-mediapipe/common/TFMP_HandLandmarker.ts", "../src/provider-tf-mediapipe/common/TFMP_ImageClassification.ts", "../src/provider-tf-mediapipe/common/TFMP_ImageEmbedding.ts", "../src/provider-tf-mediapipe/common/TFMP_ImageSegmentation.ts", "../src/provider-tf-mediapipe/common/TFMP_ModelInfo.ts", "../src/provider-tf-mediapipe/common/TFMP_ObjectDetection.ts", "../src/provider-tf-mediapipe/common/TFMP_PoseLandmarker.ts", "../src/provider-tf-mediapipe/common/TFMP_TextClassification.ts", "../src/provider-tf-mediapipe/common/TFMP_TextEmbedding.ts", "../src/provider-tf-mediapipe/common/TFMP_TextLanguageDetection.ts", "../src/provider-tf-mediapipe/common/TFMP_Unload.ts", "../src/provider-tf-mediapipe/common/TFMP_JobRunFns.ts", "../src/provider-tf-mediapipe/TensorFlowMediaPipeQueuedProvider.ts", "../src/provider-tf-mediapipe/registerTensorFlowMediaPipeInline.ts", "../src/provider-tf-mediapipe/registerTensorFlowMediaPipeWorker.ts", "../src/provider-tf-mediapipe/TensorFlowMediaPipeProvider.ts"],
4
4
  "sourcesContent": [
5
5
  "/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nlet _tasksText: typeof import(\"@mediapipe/tasks-text\") | undefined;\nlet _tasksVision: typeof import(\"@mediapipe/tasks-vision\") | undefined;\n\nexport async function loadTfmpTasksTextSDK() {\n if (!_tasksText) {\n try {\n _tasksText = await import(\"@mediapipe/tasks-text\");\n } catch {\n throw new Error(\n \"@mediapipe/tasks-text is required for TensorFlow MediaPipe text (and related) tasks. Install with: bun add @mediapipe/tasks-text\"\n );\n }\n }\n return _tasksText;\n}\n\nexport async function loadTfmpTasksVisionSDK() {\n if (!_tasksVision) {\n try {\n _tasksVision = await import(\"@mediapipe/tasks-vision\");\n } catch {\n throw new Error(\n \"@mediapipe/tasks-vision is required for TensorFlow MediaPipe vision tasks. Install with: bun add @mediapipe/tasks-vision\"\n );\n }\n }\n return _tasksVision;\n}\n",
6
+ "/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type { ModelSearchResultItem } from \"@workglow/ai\";\n\n/**\n * Normalized search string for model search, or undefined when absent or whitespace-only.\n */\nexport function normalizedModelSearchQuery(query: string | undefined): string | undefined {\n const t = query?.trim();\n return t ? t.toLowerCase() : undefined;\n}\n\n/**\n * Filter static/SDK model rows by optional query (substring match on label and id).\n */\nexport function filterLabeledModelsByQuery(\n models: ReadonlyArray<{ label: string; value: string }>,\n query: string | undefined\n): Array<{ label: string; value: string }> {\n const q = normalizedModelSearchQuery(query);\n if (!q) return [...models];\n return models.filter(\n (m) => m.value.toLowerCase().includes(q) || m.label.toLowerCase().includes(q)\n );\n}\n\n/**\n * Filter {@link ModelSearchResultItem} rows by optional query.\n */\nexport function filterModelSearchResultsByQuery(\n results: ModelSearchResultItem[],\n query: string | undefined\n): ModelSearchResultItem[] {\n const q = normalizedModelSearchQuery(query);\n if (!q) return results;\n return results.filter(\n (m) =>\n m.id.toLowerCase().includes(q) ||\n m.label.toLowerCase().includes(q) ||\n m.description.toLowerCase().includes(q)\n );\n}\n",
6
7
  "/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nexport const TENSORFLOW_MEDIAPIPE = \"TENSORFLOW_MEDIAPIPE\";\n\nexport const TFMP_DEFAULT_TASK_TYPES = [\n \"DownloadModelTask\",\n \"UnloadModelTask\",\n \"ModelInfoTask\",\n \"TextEmbeddingTask\",\n \"TextLanguageDetectionTask\",\n \"TextClassificationTask\",\n \"ImageSegmentationTask\",\n \"ImageEmbeddingTask\",\n \"ImageClassificationTask\",\n \"ObjectDetectionTask\",\n \"GestureRecognizerTask\",\n \"HandLandmarkerTask\",\n \"FaceDetectorTask\",\n \"FaceLandmarkerTask\",\n \"PoseLandmarkerTask\",\n \"ModelSearchTask\",\n] as const;\n\nexport type TextPipelineTask =\n | \"text-embedder\"\n | \"text-classifier\"\n | \"text-language-detector\"\n | \"genai-text\"\n | \"audio-classifier\"\n | \"audio-embedder\"\n | \"vision-face-detector\"\n | \"vision-face-landmarker\"\n | \"vision-face-stylizer\"\n | \"vision-gesture-recognizer\"\n | \"vision-hand-landmarker\"\n | \"vision-holistic-landmarker\"\n | \"vision-image-classifier\"\n | \"vision-image-embedder\"\n | \"vision-image-segmenter\"\n | \"vision-image-interactive-segmenter\"\n | \"vision-object-detector\"\n | \"vision-pose-landmarker\";\n\nexport const TextPipelineTask = {\n \"text-embedder\": \"text-embedder\",\n \"text-classifier\": \"text-classifier\",\n \"text-language-detector\": \"text-language-detector\",\n \"genai-text\": \"genai-text\",\n \"audio-classifier\": \"audio-classifier\",\n \"audio-embedder\": \"audio-embedder\",\n \"vision-face-detector\": \"vision-face-detector\",\n \"vision-face-landmarker\": \"vision-face-landmarker\",\n \"vision-face-stylizer\": \"vision-face-stylizer\",\n \"vision-gesture-recognizer\": \"vision-gesture-recognizer\",\n \"vision-hand-landmarker\": \"vision-hand-landmarker\",\n \"vision-holistic-landmarker\": \"vision-holistic-landmarker\",\n \"vision-image-classifier\": \"vision-image-classifier\",\n \"vision-image-embedder\": \"vision-image-embedder\",\n \"vision-image-segmenter\": \"vision-image-segmenter\",\n \"vision-image-interactive-segmenter\": \"vision-image-interactive-segmenter\",\n \"vision-object-detector\": \"vision-object-detector\",\n \"vision-pose-landmarker\": \"vision-pose-landmarker\",\n} as const satisfies Record<TextPipelineTask, TextPipelineTask>;\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 { TENSORFLOW_MEDIAPIPE } from \"./TFMP_Constants\";\n\nconst TFMP_MODELS: Array<{ label: string; value: string }> = [\n { label: \"text-embedder Universal Sentence Encoder\", value: \"text-embedder\" },\n];\n\nexport function createTFMPModelSearch(\n providerId: string\n): AiProviderRunFn<ModelSearchTaskInput, ModelSearchTaskOutput> {\n return async () => {\n const results: ModelSearchResultItem[] = TFMP_MODELS.map((m) => ({\n id: m.value,\n label: m.label,\n description: \"\",\n record: {\n model_id: m.value,\n provider: providerId,\n title: m.value,\n description: \"\",\n tasks: [],\n provider_config: { model_path: m.value },\n metadata: {},\n },\n raw: m,\n }));\n return { results };\n };\n}\n\nexport const TFMP_ModelSearch: AiProviderRunFn<ModelSearchTaskInput, ModelSearchTaskOutput> =\n createTFMPModelSearch(TENSORFLOW_MEDIAPIPE);\n",
8
+ "/**\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 { filterLabeledModelsByQuery } from \"../../common/modelSearchQuery\";\nimport { TENSORFLOW_MEDIAPIPE } from \"./TFMP_Constants\";\n\nconst TFMP_MODELS: Array<{ label: string; value: string }> = [\n { label: \"text-embedder Universal Sentence Encoder\", value: \"text-embedder\" },\n];\n\nexport function createTFMPModelSearch(\n providerId: string\n): AiProviderRunFn<ModelSearchTaskInput, ModelSearchTaskOutput> {\n return async (input) => {\n const models = filterLabeledModelsByQuery(TFMP_MODELS, input.query);\n const results: ModelSearchResultItem[] = models.map((m) => ({\n id: m.value,\n label: m.label,\n description: \"\",\n record: {\n model_id: m.value,\n provider: providerId,\n title: m.value,\n description: \"\",\n tasks: [],\n provider_config: { model_path: m.value },\n metadata: {},\n },\n raw: m,\n }));\n return { results };\n };\n}\n\nexport const TFMP_ModelSearch: AiProviderRunFn<ModelSearchTaskInput, ModelSearchTaskOutput> =\n createTFMPModelSearch(TENSORFLOW_MEDIAPIPE);\n",
8
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 DownloadModelTaskRunInput,\n DownloadModelTaskRunOutput,\n} from \"@workglow/ai\";\nimport { PermanentJobError } from \"@workglow/job-queue\";\nimport { loadTfmpTasksTextSDK, loadTfmpTasksVisionSDK } from \"./TFMP_Client\";\nimport { TFMPModelConfig } from \"./TFMP_ModelSchema\";\nimport { getModelTask, type TaskInstance, wasm_reference_counts } from \"./TFMP_Runtime\";\n\nexport const TFMP_Download: AiProviderRunFn<\n DownloadModelTaskRunInput,\n DownloadModelTaskRunOutput,\n TFMPModelConfig\n> = async (input, model, onProgress, signal) => {\n let task: TaskInstance;\n switch (model?.provider_config.pipeline) {\n case \"text-embedder\": {\n const { TextEmbedder } = await loadTfmpTasksTextSDK();\n task = await getModelTask(model, {}, onProgress, signal, TextEmbedder);\n break;\n }\n case \"text-classifier\": {\n const { TextClassifier } = await loadTfmpTasksTextSDK();\n task = await getModelTask(model, {}, onProgress, signal, TextClassifier);\n break;\n }\n case \"text-language-detector\": {\n const { LanguageDetector } = await loadTfmpTasksTextSDK();\n task = await getModelTask(model, {}, onProgress, signal, LanguageDetector);\n break;\n }\n case \"vision-image-classifier\": {\n const { ImageClassifier } = await loadTfmpTasksVisionSDK();\n task = await getModelTask(model, {}, onProgress, signal, ImageClassifier);\n break;\n }\n case \"vision-image-embedder\": {\n const { ImageEmbedder } = await loadTfmpTasksVisionSDK();\n task = await getModelTask(model, {}, onProgress, signal, ImageEmbedder);\n break;\n }\n case \"vision-image-segmenter\": {\n const { ImageSegmenter } = await loadTfmpTasksVisionSDK();\n task = await getModelTask(model, {}, onProgress, signal, ImageSegmenter);\n break;\n }\n case \"vision-object-detector\": {\n const { ObjectDetector } = await loadTfmpTasksVisionSDK();\n task = await getModelTask(model, {}, onProgress, signal, ObjectDetector);\n break;\n }\n case \"vision-face-detector\": {\n const { FaceDetector } = await loadTfmpTasksVisionSDK();\n task = await getModelTask(model, {}, onProgress, signal, FaceDetector);\n break;\n }\n case \"vision-face-landmarker\": {\n const { FaceLandmarker } = await loadTfmpTasksVisionSDK();\n task = await getModelTask(model, {}, onProgress, signal, FaceLandmarker);\n break;\n }\n case \"vision-gesture-recognizer\": {\n const { GestureRecognizer } = await loadTfmpTasksVisionSDK();\n task = await getModelTask(model, {}, onProgress, signal, GestureRecognizer);\n break;\n }\n case \"vision-hand-landmarker\": {\n const { HandLandmarker } = await loadTfmpTasksVisionSDK();\n task = await getModelTask(model, {}, onProgress, signal, HandLandmarker);\n break;\n }\n case \"vision-pose-landmarker\": {\n const { PoseLandmarker } = await loadTfmpTasksVisionSDK();\n task = await getModelTask(model, {}, onProgress, signal, PoseLandmarker);\n break;\n }\n default:\n throw new PermanentJobError(\n `Invalid pipeline: ${model?.provider_config.pipeline}. Supported pipelines: text-embedder, text-classifier, text-language-detector, vision-image-classifier, vision-image-embedder, vision-image-segmenter, vision-object-detector, vision-face-detector, vision-face-landmarker, vision-gesture-recognizer, vision-hand-landmarker, vision-pose-landmarker`\n );\n }\n onProgress(0.9, \"Pipeline loaded\");\n task.close();\n const task_engine = model?.provider_config.task_engine;\n wasm_reference_counts.set(task_engine, wasm_reference_counts.get(task_engine)! - 1);\n\n return {\n model: input.model,\n };\n};\n",
9
10
  "/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { PermanentJobError } from \"@workglow/job-queue\";\nimport { loadTfmpTasksTextSDK, loadTfmpTasksVisionSDK } from \"./TFMP_Client\";\nimport { TFMPModelConfig } from \"./TFMP_ModelSchema\";\n\nexport interface TFMPWasmFileset {\n readonly wasmLoaderPath: string;\n readonly wasmBinaryPath: string;\n readonly assetLoaderPath?: string;\n readonly assetBinaryPath?: string;\n}\n\nexport const wasm_tasks = new Map<string, TFMPWasmFileset>();\nexport const wasm_reference_counts = new Map<string, number>();\n\ntype TaskConstructor = {\n createFromOptions(wasmFileset: TFMPWasmFileset, options: Record<string, unknown>): Promise<any>;\n};\n\nexport type TaskInstance = {\n close(): void;\n [key: string]: any;\n};\n\nexport interface CachedModelTask {\n readonly task: TaskInstance;\n readonly options: Record<string, unknown>;\n readonly task_engine: string;\n}\n\nexport const modelTaskCache = new Map<string, CachedModelTask[]>();\n\nconst optionsMatch = (opts1: Record<string, unknown>, opts2: Record<string, unknown>): boolean => {\n const keys1 = Object.keys(opts1).sort();\n const keys2 = Object.keys(opts2).sort();\n\n if (keys1.length !== keys2.length) return false;\n\n return keys1.every((key) => {\n const val1 = opts1[key];\n const val2 = opts2[key];\n\n if (Array.isArray(val1) && Array.isArray(val2)) {\n return JSON.stringify(val1) === JSON.stringify(val2);\n }\n\n return val1 === val2;\n });\n};\n\nconst getWasmTask = async (\n model: TFMPModelConfig,\n onProgress: (progress: number, message?: string, details?: any) => void,\n signal: AbortSignal\n): Promise<TFMPWasmFileset> => {\n const task_engine = model.provider_config.task_engine;\n\n if (wasm_tasks.has(task_engine)) {\n return wasm_tasks.get(task_engine)!;\n }\n\n if (signal.aborted) {\n throw new PermanentJobError(\"Aborted job\");\n }\n\n onProgress(0.1, \"Loading WASM task\");\n\n let wasmFileset: TFMPWasmFileset;\n\n switch (task_engine) {\n case \"vision\": {\n const { FilesetResolver } = await loadTfmpTasksVisionSDK();\n wasmFileset = await FilesetResolver.forVisionTasks(\n \"https://cdn.jsdelivr.net/npm/@mediapipe/tasks-vision@latest/wasm\"\n );\n break;\n }\n case \"text\": {\n const { FilesetResolver } = await loadTfmpTasksTextSDK();\n wasmFileset = await FilesetResolver.forTextTasks(\n \"https://cdn.jsdelivr.net/npm/@mediapipe/tasks-text@latest/wasm\"\n );\n break;\n }\n case \"audio\": {\n const { FilesetResolver } = await loadTfmpTasksTextSDK();\n wasmFileset = await FilesetResolver.forAudioTasks(\n \"https://cdn.jsdelivr.net/npm/@mediapipe/tasks-audio@latest/wasm\"\n );\n break;\n }\n case \"genai\": {\n const { FilesetResolver } = await loadTfmpTasksTextSDK();\n wasmFileset = await FilesetResolver.forGenAiTasks(\n \"https://cdn.jsdelivr.net/npm/@mediapipe/tasks-genai@latest/wasm\"\n );\n break;\n }\n default:\n throw new PermanentJobError(\"Invalid task engine\");\n }\n\n wasm_tasks.set(task_engine, wasmFileset);\n return wasmFileset;\n};\n\nexport const getModelTask = async (\n model: TFMPModelConfig,\n options: Record<string, unknown>,\n onProgress: (progress: number, message?: string, details?: any) => void,\n signal: AbortSignal,\n TaskType: TaskConstructor\n): Promise<any> => {\n const model_path = model.provider_config.model_path;\n const task_engine = model.provider_config.task_engine;\n\n const cachedTasks = modelTaskCache.get(model_path);\n if (cachedTasks) {\n const matchedTask = cachedTasks.find((cached) => optionsMatch(cached.options, options));\n if (matchedTask) {\n return matchedTask.task;\n }\n }\n\n const wasmFileset = await getWasmTask(model, onProgress, signal);\n\n onProgress(0.2, \"Creating model task\");\n\n const task = await (TaskType as any).createFromOptions(wasmFileset, {\n baseOptions: {\n modelAssetPath: model_path,\n },\n ...options,\n });\n\n const cachedTask: CachedModelTask = { task, options, task_engine };\n if (!modelTaskCache.has(model_path)) {\n modelTaskCache.set(model_path, []);\n }\n modelTaskCache.get(model_path)!.push(cachedTask);\n\n wasm_reference_counts.set(task_engine, (wasm_reference_counts.get(task_engine) || 0) + 1);\n\n return task;\n};\n",
10
11
  "/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type { AiProviderRunFn, FaceDetectorTaskInput, FaceDetectorTaskOutput } from \"@workglow/ai\";\nimport { PermanentJobError } from \"@workglow/job-queue\";\nimport { loadTfmpTasksVisionSDK } from \"./TFMP_Client\";\nimport { TFMPModelConfig } from \"./TFMP_ModelSchema\";\nimport { getModelTask } from \"./TFMP_Runtime\";\n\nexport const TFMP_FaceDetector: AiProviderRunFn<\n FaceDetectorTaskInput,\n FaceDetectorTaskOutput,\n TFMPModelConfig\n> = async (input, model, onProgress, signal) => {\n const { FaceDetector } = await loadTfmpTasksVisionSDK();\n const faceDetector = await getModelTask(\n model!,\n {\n minDetectionConfidence: (input as any).minDetectionConfidence,\n minSuppressionThreshold: (input as any).minSuppressionThreshold,\n },\n onProgress,\n signal,\n FaceDetector\n );\n const result = faceDetector.detect(input.image as any);\n\n if (!result.detections) {\n throw new PermanentJobError(\"Failed to detect faces: Empty result\");\n }\n\n const faces = result.detections.map((detection: any) => ({\n box: {\n x: detection.boundingBox?.originX || 0,\n y: detection.boundingBox?.originY || 0,\n width: detection.boundingBox?.width || 0,\n height: detection.boundingBox?.height || 0,\n },\n keypoints:\n detection.keypoints?.map((kp: any) => ({\n x: kp.x,\n y: kp.y,\n label: kp.label,\n })) || [],\n score: detection.categories?.[0]?.score || 0,\n }));\n\n return {\n faces,\n };\n};\n",
@@ -12,7 +13,7 @@
12
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 GestureRecognizerTaskInput,\n GestureRecognizerTaskOutput,\n} from \"@workglow/ai\";\nimport { PermanentJobError } from \"@workglow/job-queue\";\nimport { loadTfmpTasksVisionSDK } from \"./TFMP_Client\";\nimport { TFMPModelConfig } from \"./TFMP_ModelSchema\";\nimport { getModelTask } from \"./TFMP_Runtime\";\n\nexport const TFMP_GestureRecognizer: AiProviderRunFn<\n GestureRecognizerTaskInput,\n GestureRecognizerTaskOutput,\n TFMPModelConfig\n> = async (input, model, onProgress, signal) => {\n const { GestureRecognizer } = await loadTfmpTasksVisionSDK();\n const gestureRecognizer = await getModelTask(\n model!,\n {\n numHands: (input as any).numHands,\n minHandDetectionConfidence: (input as any).minHandDetectionConfidence,\n minHandPresenceConfidence: (input as any).minHandPresenceConfidence,\n minTrackingConfidence: (input as any).minTrackingConfidence,\n },\n onProgress,\n signal,\n GestureRecognizer\n );\n const result = gestureRecognizer.recognize(input.image as any);\n\n if (!result.gestures || !result.landmarks) {\n throw new PermanentJobError(\"Failed to recognize gestures: Empty result\");\n }\n\n const hands = result.gestures.map((gestures: any, index: number) => ({\n gestures: gestures.map((g: any) => ({\n label: g.categoryName,\n score: g.score,\n })),\n handedness: result.handedness[index].map((h: any) => ({\n label: h.categoryName,\n score: h.score,\n })),\n landmarks: result.landmarks[index].map((l: any) => ({\n x: l.x,\n y: l.y,\n z: l.z,\n })),\n worldLandmarks: result.worldLandmarks[index].map((l: any) => ({\n x: l.x,\n y: l.y,\n z: l.z,\n })),\n }));\n\n return {\n hands,\n };\n};\n",
13
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 HandLandmarkerTaskInput,\n HandLandmarkerTaskOutput,\n} from \"@workglow/ai\";\nimport { PermanentJobError } from \"@workglow/job-queue\";\nimport { loadTfmpTasksVisionSDK } from \"./TFMP_Client\";\nimport { TFMPModelConfig } from \"./TFMP_ModelSchema\";\nimport { getModelTask } from \"./TFMP_Runtime\";\n\nexport const TFMP_HandLandmarker: AiProviderRunFn<\n HandLandmarkerTaskInput,\n HandLandmarkerTaskOutput,\n TFMPModelConfig\n> = async (input, model, onProgress, signal) => {\n const { HandLandmarker } = await loadTfmpTasksVisionSDK();\n const handLandmarker = await getModelTask(\n model!,\n {\n numHands: (input as any).numHands,\n minHandDetectionConfidence: (input as any).minHandDetectionConfidence,\n minHandPresenceConfidence: (input as any).minHandPresenceConfidence,\n minTrackingConfidence: (input as any).minTrackingConfidence,\n },\n onProgress,\n signal,\n HandLandmarker\n );\n const result = handLandmarker.detect(input.image as any);\n\n if (!result.landmarks) {\n throw new PermanentJobError(\"Failed to detect hand landmarks: Empty result\");\n }\n\n const hands = result.landmarks.map((landmarks: any, index: number) => ({\n handedness: result.handedness[index].map((h: any) => ({\n label: h.categoryName,\n score: h.score,\n })),\n landmarks: landmarks.map((l: any) => ({\n x: l.x,\n y: l.y,\n z: l.z,\n })),\n worldLandmarks: result.worldLandmarks[index].map((l: any) => ({\n x: l.x,\n y: l.y,\n z: l.z,\n })),\n }));\n\n return {\n hands,\n };\n};\n",
14
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 ImageClassificationTaskInput,\n ImageClassificationTaskOutput,\n} from \"@workglow/ai\";\nimport { PermanentJobError } from \"@workglow/job-queue\";\nimport { loadTfmpTasksVisionSDK } from \"./TFMP_Client\";\nimport { TFMPModelConfig } from \"./TFMP_ModelSchema\";\nimport { getModelTask } from \"./TFMP_Runtime\";\n\nexport const TFMP_ImageClassification: AiProviderRunFn<\n ImageClassificationTaskInput,\n ImageClassificationTaskOutput,\n TFMPModelConfig\n> = async (input, model, onProgress, signal) => {\n const { ImageClassifier } = await loadTfmpTasksVisionSDK();\n const imageClassifier = await getModelTask(\n model!,\n {\n maxResults: (input as any).maxCategories,\n },\n onProgress,\n signal,\n ImageClassifier\n );\n const result = imageClassifier.classify(input.image as any);\n\n if (!result.classifications?.[0]?.categories) {\n throw new PermanentJobError(\"Failed to classify image: Empty result\");\n }\n\n const categories = result.classifications[0].categories.map((category: any) => ({\n label: category.categoryName,\n score: category.score,\n }));\n\n return {\n categories,\n };\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 ImageEmbeddingTaskInput,\n ImageEmbeddingTaskOutput,\n} from \"@workglow/ai\";\nimport { PermanentJobError } from \"@workglow/job-queue\";\nimport { loadTfmpTasksVisionSDK } from \"./TFMP_Client\";\nimport { TFMPModelConfig } from \"./TFMP_ModelSchema\";\nimport { getModelTask } from \"./TFMP_Runtime\";\n\nexport const TFMP_ImageEmbedding: AiProviderRunFn<\n ImageEmbeddingTaskInput,\n ImageEmbeddingTaskOutput,\n TFMPModelConfig\n> = async (input, model, onProgress, signal) => {\n const { ImageEmbedder } = await loadTfmpTasksVisionSDK();\n const imageEmbedder = await getModelTask(model!, {}, onProgress, signal, ImageEmbedder);\n const result = imageEmbedder.embed(input.image as any);\n\n if (!result.embeddings?.[0]?.floatEmbedding) {\n throw new PermanentJobError(\"Failed to generate embedding: Empty result\");\n }\n\n const embedding = Float32Array.from(result.embeddings[0].floatEmbedding);\n\n return {\n vector: embedding,\n } as ImageEmbeddingTaskOutput;\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 ImageEmbeddingTaskInput,\n ImageEmbeddingTaskOutput,\n} from \"@workglow/ai\";\nimport { PermanentJobError } from \"@workglow/job-queue\";\nimport { loadTfmpTasksVisionSDK } from \"./TFMP_Client\";\nimport { TFMPModelConfig } from \"./TFMP_ModelSchema\";\nimport { getModelTask } from \"./TFMP_Runtime\";\n\nexport const TFMP_ImageEmbedding: AiProviderRunFn<\n ImageEmbeddingTaskInput,\n ImageEmbeddingTaskOutput,\n TFMPModelConfig\n> = async (input, model, onProgress, signal) => {\n const { ImageEmbedder } = await loadTfmpTasksVisionSDK();\n const imageEmbedder = await getModelTask(model!, {}, onProgress, signal, ImageEmbedder);\n\n if (Array.isArray(input.image)) {\n const vectors: Float32Array[] = [];\n for (const image of input.image) {\n const result = imageEmbedder.embed(image as any);\n if (!result.embeddings?.[0]?.floatEmbedding) {\n throw new PermanentJobError(\"Failed to generate embedding: Empty result\");\n }\n vectors.push(Float32Array.from(result.embeddings[0].floatEmbedding));\n }\n return { vector: vectors } as ImageEmbeddingTaskOutput;\n }\n\n const result = imageEmbedder.embed(input.image as any);\n\n if (!result.embeddings?.[0]?.floatEmbedding) {\n throw new PermanentJobError(\"Failed to generate embedding: Empty result\");\n }\n\n const embedding = Float32Array.from(result.embeddings[0].floatEmbedding);\n\n return {\n vector: embedding,\n } as ImageEmbeddingTaskOutput;\n};\n",
16
17
  "/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type {\n AiProviderRunFn,\n ImageSegmentationTaskInput,\n ImageSegmentationTaskOutput,\n} from \"@workglow/ai\";\nimport { PermanentJobError } from \"@workglow/job-queue\";\nimport { loadTfmpTasksVisionSDK } from \"./TFMP_Client\";\nimport { TFMPModelConfig } from \"./TFMP_ModelSchema\";\nimport { getModelTask } from \"./TFMP_Runtime\";\n\nexport const TFMP_ImageSegmentation: AiProviderRunFn<\n ImageSegmentationTaskInput,\n ImageSegmentationTaskOutput,\n TFMPModelConfig\n> = async (input, model, onProgress, signal) => {\n const { ImageSegmenter } = await loadTfmpTasksVisionSDK();\n const imageSegmenter = await getModelTask(model!, {}, onProgress, signal, ImageSegmenter);\n const result = imageSegmenter.segment(input.image as any);\n\n if (!result.categoryMask) {\n throw new PermanentJobError(\"Failed to segment image: Empty result\");\n }\n\n const masks = [\n {\n label: \"segment\",\n score: 1.0,\n mask: {\n data: result.categoryMask.canvas,\n width: result.categoryMask.width,\n height: result.categoryMask.height,\n },\n },\n ];\n\n return {\n masks,\n };\n};\n",
17
18
  "/**\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 { TFMPModelConfig } from \"./TFMP_ModelSchema\";\nimport { modelTaskCache } from \"./TFMP_Runtime\";\n\nexport const TFMP_ModelInfo: AiProviderRunFn<\n ModelInfoTaskInput,\n ModelInfoTaskOutput,\n TFMPModelConfig\n> = async (input, model) => {\n const model_path = model!.provider_config.model_path;\n const is_loaded = modelTaskCache.has(model_path);\n\n return {\n model: input.model,\n is_local: true,\n is_remote: false,\n supports_browser: true,\n supports_node: false,\n is_cached: is_loaded,\n is_loaded,\n file_sizes: null,\n };\n};\n",
18
19
  "/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type {\n AiProviderRunFn,\n ObjectDetectionTaskInput,\n ObjectDetectionTaskOutput,\n} from \"@workglow/ai\";\nimport { PermanentJobError } from \"@workglow/job-queue\";\nimport { loadTfmpTasksVisionSDK } from \"./TFMP_Client\";\nimport { TFMPModelConfig } from \"./TFMP_ModelSchema\";\nimport { getModelTask } from \"./TFMP_Runtime\";\n\nexport const TFMP_ObjectDetection: AiProviderRunFn<\n ObjectDetectionTaskInput,\n ObjectDetectionTaskOutput,\n TFMPModelConfig\n> = async (input, model, onProgress, signal) => {\n const { ObjectDetector } = await loadTfmpTasksVisionSDK();\n const objectDetector = await getModelTask(\n model!,\n {\n scoreThreshold: (input as any).threshold,\n },\n onProgress,\n signal,\n ObjectDetector\n );\n const result = objectDetector.detect(input.image as any);\n\n if (!result.detections) {\n throw new PermanentJobError(\"Failed to detect objects: Empty result\");\n }\n\n const detections = result.detections.map((detection: any) => ({\n label: detection.categories?.[0]?.categoryName || \"unknown\",\n score: detection.categories?.[0]?.score || 0,\n box: {\n x: detection.boundingBox?.originX || 0,\n y: detection.boundingBox?.originY || 0,\n width: detection.boundingBox?.width || 0,\n height: detection.boundingBox?.height || 0,\n },\n }));\n\n return {\n detections,\n };\n};\n",
@@ -20,14 +21,14 @@
20
21
  "/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type {\n AiProviderRunFn,\n TextClassificationTaskInput,\n TextClassificationTaskOutput,\n} from \"@workglow/ai\";\nimport { PermanentJobError } from \"@workglow/job-queue\";\nimport { loadTfmpTasksTextSDK } from \"./TFMP_Client\";\nimport { TFMPModelConfig } from \"./TFMP_ModelSchema\";\nimport { getModelTask } from \"./TFMP_Runtime\";\n\nexport const TFMP_TextClassification: AiProviderRunFn<\n TextClassificationTaskInput,\n TextClassificationTaskOutput,\n TFMPModelConfig\n> = async (input, model, onProgress, signal) => {\n const { TextClassifier } = await loadTfmpTasksTextSDK();\n const TextClassification = await getModelTask(\n model!,\n {\n maxCategories: input.maxCategories,\n },\n onProgress,\n signal,\n TextClassifier\n );\n const result = TextClassification.classify(input.text);\n\n if (!result.classifications?.[0]?.categories) {\n throw new PermanentJobError(\"Failed to classify text: Empty result\");\n }\n\n const categories = result.classifications[0].categories.map((category: any) => ({\n label: category.categoryName,\n score: category.score,\n }));\n\n return {\n categories,\n };\n};\n",
21
22
  "/**\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 { PermanentJobError } from \"@workglow/job-queue\";\nimport { loadTfmpTasksTextSDK } from \"./TFMP_Client\";\nimport { TFMPModelConfig } from \"./TFMP_ModelSchema\";\nimport { getModelTask } from \"./TFMP_Runtime\";\n\nexport const TFMP_TextEmbedding: AiProviderRunFn<\n TextEmbeddingTaskInput,\n TextEmbeddingTaskOutput,\n TFMPModelConfig\n> = async (input, model, onProgress, signal) => {\n const { TextEmbedder } = await loadTfmpTasksTextSDK();\n const textEmbedder = await getModelTask(model!, {}, onProgress, signal, TextEmbedder);\n\n if (Array.isArray(input.text)) {\n const embeddings = input.text.map((text) => {\n const result = textEmbedder.embed(text);\n\n if (!result.embeddings?.[0]?.floatEmbedding) {\n throw new PermanentJobError(\"Failed to generate embedding: Empty result\");\n }\n\n return Float32Array.from(result.embeddings[0].floatEmbedding);\n });\n\n return {\n vector: embeddings,\n };\n }\n\n const result = textEmbedder.embed(input.text);\n\n if (!result.embeddings?.[0]?.floatEmbedding) {\n throw new PermanentJobError(\"Failed to generate embedding: Empty result\");\n }\n\n const embedding = Float32Array.from(result.embeddings[0].floatEmbedding);\n\n return {\n vector: embedding,\n };\n};\n",
22
23
  "/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type {\n AiProviderRunFn,\n TextLanguageDetectionTaskInput,\n TextLanguageDetectionTaskOutput,\n} from \"@workglow/ai\";\nimport { PermanentJobError } from \"@workglow/job-queue\";\nimport { loadTfmpTasksTextSDK } from \"./TFMP_Client\";\nimport { TFMPModelConfig } from \"./TFMP_ModelSchema\";\nimport { getModelTask } from \"./TFMP_Runtime\";\n\nexport const TFMP_TextLanguageDetection: AiProviderRunFn<\n TextLanguageDetectionTaskInput,\n TextLanguageDetectionTaskOutput,\n TFMPModelConfig\n> = async (input, model, onProgress, signal) => {\n const maxLanguages = input.maxLanguages === 0 ? -1 : input.maxLanguages;\n\n const { LanguageDetector } = await loadTfmpTasksTextSDK();\n const textLanguageDetector = await getModelTask(\n model!,\n {\n maxLanguages,\n },\n onProgress,\n signal,\n LanguageDetector\n );\n const result = textLanguageDetector.detect(input.text);\n\n if (!result.languages?.[0]?.languageCode) {\n throw new PermanentJobError(\"Failed to detect language: Empty result\");\n }\n\n const languages = result.languages.map((language: any) => ({\n language: language.languageCode,\n score: language.probability,\n }));\n\n return {\n languages,\n };\n};\n",
23
- "/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type {\n AiProviderRunFn,\n UnloadModelTaskRunInput,\n UnloadModelTaskRunOutput,\n} from \"@workglow/ai\";\nimport { TFMPModelConfig } from \"./TFMP_ModelSchema\";\nimport {\n modelTaskCache,\n wasm_reference_counts,\n wasm_tasks,\n} from \"./TFMP_Runtime\";\n\nexport const TFMP_Unload: AiProviderRunFn<\n UnloadModelTaskRunInput,\n UnloadModelTaskRunOutput,\n TFMPModelConfig\n> = async (input, model, onProgress, _signal) => {\n const model_path = model!.provider_config.model_path;\n onProgress(10, \"Unloading model\");\n if (modelTaskCache.has(model_path)) {\n const cachedTasks = modelTaskCache.get(model_path)!;\n\n for (const cachedTask of cachedTasks) {\n const task = cachedTask.task;\n if (\"close\" in task && typeof task.close === \"function\") task.close();\n\n const task_engine = cachedTask.task_engine;\n const currentCount = wasm_reference_counts.get(task_engine) || 0;\n const newCount = currentCount - 1;\n\n if (newCount <= 0) {\n wasm_tasks.delete(task_engine);\n wasm_reference_counts.delete(task_engine);\n } else {\n wasm_reference_counts.set(task_engine, newCount);\n }\n }\n\n modelTaskCache.delete(model_path);\n }\n\n return {\n model: input.model,\n };\n};\n",
24
+ "/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type {\n AiProviderRunFn,\n UnloadModelTaskRunInput,\n UnloadModelTaskRunOutput,\n} from \"@workglow/ai\";\nimport { TFMPModelConfig } from \"./TFMP_ModelSchema\";\nimport { modelTaskCache, wasm_reference_counts, wasm_tasks } from \"./TFMP_Runtime\";\n\nexport const TFMP_Unload: AiProviderRunFn<\n UnloadModelTaskRunInput,\n UnloadModelTaskRunOutput,\n TFMPModelConfig\n> = async (input, model, onProgress, _signal) => {\n const model_path = model!.provider_config.model_path;\n onProgress(10, \"Unloading model\");\n if (modelTaskCache.has(model_path)) {\n const cachedTasks = modelTaskCache.get(model_path)!;\n\n for (const cachedTask of cachedTasks) {\n const task = cachedTask.task;\n if (\"close\" in task && typeof task.close === \"function\") task.close();\n\n const task_engine = cachedTask.task_engine;\n const currentCount = wasm_reference_counts.get(task_engine) || 0;\n const newCount = currentCount - 1;\n\n if (newCount <= 0) {\n wasm_tasks.delete(task_engine);\n wasm_reference_counts.delete(task_engine);\n } else {\n wasm_reference_counts.set(task_engine, newCount);\n }\n }\n\n modelTaskCache.delete(model_path);\n }\n\n return {\n model: input.model,\n };\n};\n",
24
25
  "/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { TFMP_ModelSearch } from \"./TFMP_ModelSearch\";\n\nimport { TFMP_Download } from \"./TFMP_Download\";\nimport { TFMP_FaceDetector } from \"./TFMP_FaceDetector\";\nimport { TFMP_FaceLandmarker } from \"./TFMP_FaceLandmarker\";\nimport { TFMP_GestureRecognizer } from \"./TFMP_GestureRecognizer\";\nimport { TFMP_HandLandmarker } from \"./TFMP_HandLandmarker\";\nimport { TFMP_ImageClassification } from \"./TFMP_ImageClassification\";\nimport { TFMP_ImageEmbedding } from \"./TFMP_ImageEmbedding\";\nimport { TFMP_ImageSegmentation } from \"./TFMP_ImageSegmentation\";\nimport { TFMP_ModelInfo } from \"./TFMP_ModelInfo\";\nimport { TFMP_ObjectDetection } from \"./TFMP_ObjectDetection\";\nimport { TFMP_PoseLandmarker } from \"./TFMP_PoseLandmarker\";\nimport { TFMP_TextClassification } from \"./TFMP_TextClassification\";\nimport { TFMP_TextEmbedding } from \"./TFMP_TextEmbedding\";\nimport { TFMP_TextLanguageDetection } from \"./TFMP_TextLanguageDetection\";\nimport { TFMP_Unload } from \"./TFMP_Unload\";\n\nexport { loadTfmpTasksTextSDK, loadTfmpTasksVisionSDK } from \"./TFMP_Client\";\n\nexport const TFMP_TASKS = {\n DownloadModelTask: TFMP_Download,\n UnloadModelTask: TFMP_Unload,\n ModelInfoTask: TFMP_ModelInfo,\n TextEmbeddingTask: TFMP_TextEmbedding,\n TextLanguageDetectionTask: TFMP_TextLanguageDetection,\n TextClassificationTask: TFMP_TextClassification,\n ImageSegmentationTask: TFMP_ImageSegmentation,\n ImageEmbeddingTask: TFMP_ImageEmbedding,\n ImageClassificationTask: TFMP_ImageClassification,\n ObjectDetectionTask: TFMP_ObjectDetection,\n GestureRecognizerTask: TFMP_GestureRecognizer,\n HandLandmarkerTask: TFMP_HandLandmarker,\n FaceDetectorTask: TFMP_FaceDetector,\n FaceLandmarkerTask: TFMP_FaceLandmarker,\n PoseLandmarkerTask: TFMP_PoseLandmarker,\n ModelSearchTask: TFMP_ModelSearch,\n} as const;\n",
25
- "/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { QueuedAiProvider, type AiProviderReactiveRunFn, type AiProviderRunFn } from \"@workglow/ai\";\nimport { TENSORFLOW_MEDIAPIPE, TFMP_DEFAULT_TASK_TYPES } from \"./common/TFMP_Constants\";\nimport type { TFMPModelConfig } from \"./common/TFMP_ModelSchema\";\n\n/** Main-thread registration (inline or worker-backed); creates the default job queue. */\nexport class TensorFlowMediaPipeQueuedProvider extends QueuedAiProvider<TFMPModelConfig> {\n readonly name = TENSORFLOW_MEDIAPIPE;\n readonly displayName = \"TensorFlow MediaPipe\";\n readonly isLocal = true;\n readonly supportsBrowser = true;\n\n readonly taskTypes: readonly string[] = TFMP_DEFAULT_TASK_TYPES;\n\n constructor(\n tasks?: Record<string, AiProviderRunFn<any, any, TFMPModelConfig>>,\n reactiveTasks?: Record<string, AiProviderReactiveRunFn<any, any, TFMPModelConfig>>\n ) {\n super(tasks, undefined, reactiveTasks);\n }\n}\n",
26
+ "/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { AiProvider, type AiProviderReactiveRunFn, type AiProviderRunFn } from \"@workglow/ai\";\nimport { TENSORFLOW_MEDIAPIPE, TFMP_DEFAULT_TASK_TYPES } from \"./common/TFMP_Constants\";\nimport type { TFMPModelConfig } from \"./common/TFMP_ModelSchema\";\n\n/** Main-thread registration (inline or worker-backed). WASM-only uses direct execution. */\nexport class TensorFlowMediaPipeQueuedProvider extends AiProvider<TFMPModelConfig> {\n readonly name = TENSORFLOW_MEDIAPIPE;\n readonly displayName = \"TensorFlow MediaPipe\";\n readonly isLocal = true;\n readonly supportsBrowser = true;\n\n readonly taskTypes: readonly string[] = TFMP_DEFAULT_TASK_TYPES;\n\n constructor(\n tasks?: Record<string, AiProviderRunFn<any, any, TFMPModelConfig>>,\n reactiveTasks?: Record<string, AiProviderReactiveRunFn<any, any, TFMPModelConfig>>\n ) {\n super(tasks, undefined, reactiveTasks);\n }\n}\n",
26
27
  "/**\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 { TFMP_TASKS } from \"./common/TFMP_JobRunFns\";\nimport { TensorFlowMediaPipeQueuedProvider } from \"./TensorFlowMediaPipeQueuedProvider\";\n\nexport async function registerTensorFlowMediaPipeInline(\n options?: AiProviderRegisterOptions\n): Promise<void> {\n await new TensorFlowMediaPipeQueuedProvider(TFMP_TASKS).register(options ?? {});\n}\n",
27
28
  "/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { getLogger, globalServiceRegistry, WORKER_SERVER } from \"@workglow/util/worker\";\nimport { TFMP_TASKS } from \"./common/TFMP_JobRunFns\";\nimport { TensorFlowMediaPipeProvider } from \"./TensorFlowMediaPipeProvider\";\n\nexport async function registerTensorFlowMediaPipeWorker(): Promise<void> {\n const workerServer = globalServiceRegistry.get(WORKER_SERVER);\n new TensorFlowMediaPipeProvider(TFMP_TASKS).registerOnWorkerServer(workerServer);\n workerServer.sendReady();\n getLogger().info(\"TensorFlow MediaPipe worker job run functions registered\");\n}\n",
28
29
  "/**\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} from \"@workglow/ai/worker\";\nimport { TENSORFLOW_MEDIAPIPE, TFMP_DEFAULT_TASK_TYPES } from \"./common/TFMP_Constants\";\nimport type { TFMPModelConfig } from \"./common/TFMP_ModelSchema\";\n\n/**\n * AI provider for TensorFlow MediaPipe models.\n *\n * Task run functions are injected via the constructor so that the heavy\n * `@mediapipe/*` libraries are only pulled in where actually needed\n * (inline mode, worker server), not on the main thread in worker mode.\n * Use `loadTfmpTasksTextSDK` / `loadTfmpTasksVisionSDK` for cached dynamic imports.\n\n */\nexport class TensorFlowMediaPipeProvider extends AiProvider<TFMPModelConfig> {\n readonly name = TENSORFLOW_MEDIAPIPE;\n readonly displayName = \"TensorFlow MediaPipe\";\n readonly isLocal = true;\n readonly supportsBrowser = true;\n\n readonly taskTypes: readonly string[] = TFMP_DEFAULT_TASK_TYPES;\n\n constructor(\n tasks?: Record<string, AiProviderRunFn<any, any, TFMPModelConfig>>,\n reactiveTasks?: Record<string, AiProviderReactiveRunFn<any, any, TFMPModelConfig>>\n ) {\n super(tasks, undefined, reactiveTasks);\n }\n}\n"
29
30
  ],
30
- "mappings": "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",
31
- "debugId": "FE0E65A6C77B890864756E2164756E21",
31
+ "mappings": "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",
32
+ "debugId": "720AC875976D335264756E2164756E21",
32
33
  "names": []
33
34
  }
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@workglow/ai-provider",
3
3
  "type": "module",
4
4
  "sideEffects": false,
5
- "version": "0.0.125",
5
+ "version": "0.1.0",
6
6
  "description": "AI provider integrations for Workglow, supporting OpenAI, Hugging Face Transformers, MediaPipe, and GGML models.",
7
7
  "scripts": {
8
8
  "watch": "concurrently -c 'auto' 'bun:watch-*'",
@@ -54,22 +54,34 @@
54
54
  "import": "./dist/provider-llamacpp/runtime.js"
55
55
  },
56
56
  "./ollama": {
57
- "browser": "./dist/provider-ollama/index.browser.js",
57
+ "browser": {
58
+ "types": "./dist/provider-ollama/index.d.ts",
59
+ "import": "./dist/provider-ollama/index.browser.js"
60
+ },
58
61
  "types": "./dist/provider-ollama/index.d.ts",
59
62
  "import": "./dist/provider-ollama/index.js"
60
63
  },
61
64
  "./ollama/runtime": {
62
- "browser": "./dist/provider-ollama/runtime.browser.js",
65
+ "browser": {
66
+ "types": "./dist/provider-ollama/runtime.d.ts",
67
+ "import": "./dist/provider-ollama/runtime.browser.js"
68
+ },
63
69
  "types": "./dist/provider-ollama/runtime.d.ts",
64
70
  "import": "./dist/provider-ollama/runtime.js"
65
71
  },
66
72
  "./openai": {
67
- "browser": "./dist/provider-openai/index.browser.js",
73
+ "browser": {
74
+ "types": "./dist/provider-openai/index.d.ts",
75
+ "import": "./dist/provider-openai/index.browser.js"
76
+ },
68
77
  "types": "./dist/provider-openai/index.d.ts",
69
78
  "import": "./dist/provider-openai/index.js"
70
79
  },
71
80
  "./openai/runtime": {
72
- "browser": "./dist/provider-openai/runtime.browser.js",
81
+ "browser": {
82
+ "types": "./dist/provider-openai/runtime.d.ts",
83
+ "import": "./dist/provider-openai/runtime.browser.js"
84
+ },
73
85
  "types": "./dist/provider-openai/runtime.d.ts",
74
86
  "import": "./dist/provider-openai/runtime.js"
75
87
  },
@@ -106,17 +118,17 @@
106
118
  "access": "public"
107
119
  },
108
120
  "peerDependencies": {
109
- "@workglow/ai": "0.0.125",
110
- "@workglow/job-queue": "0.0.125",
111
- "@workglow/storage": "0.0.125",
112
- "@workglow/task-graph": "0.0.125",
113
- "@workglow/util": "0.0.125",
114
- "@huggingface/transformers": "4.0.0-next.8",
121
+ "@workglow/ai": "0.1.0",
122
+ "@workglow/job-queue": "0.1.0",
123
+ "@workglow/storage": "0.1.0",
124
+ "@workglow/task-graph": "0.1.0",
125
+ "@workglow/util": "0.1.0",
126
+ "@huggingface/transformers": "^4.0.0",
115
127
  "@mediapipe/tasks-text": "^0.10.34",
116
128
  "@mediapipe/tasks-vision": "^0.10.34",
117
129
  "@mediapipe/tasks-audio": "^0.10.34",
118
130
  "@mediapipe/tasks-genai": "^0.10.26",
119
- "openai": "^6.32.0",
131
+ "openai": "^6.33.0",
120
132
  "tiktoken": "^1.0.22",
121
133
  "js-tiktoken": "^1.0.16",
122
134
  "@anthropic-ai/sdk": "^0.80.0",
@@ -189,15 +201,15 @@
189
201
  "@mediapipe/tasks-genai": "^0.10.26",
190
202
  "@mediapipe/tasks-text": "^0.10.34",
191
203
  "@mediapipe/tasks-vision": "^0.10.34",
192
- "@huggingface/transformers": "4.0.0-next.8",
193
- "@workglow/ai": "0.0.125",
194
- "@workglow/job-queue": "0.0.125",
195
- "@workglow/storage": "0.0.125",
196
- "@workglow/task-graph": "0.0.125",
197
- "@workglow/util": "0.0.125",
204
+ "@huggingface/transformers": "^4.0.0",
205
+ "@workglow/ai": "0.1.0",
206
+ "@workglow/job-queue": "0.1.0",
207
+ "@workglow/storage": "0.1.0",
208
+ "@workglow/task-graph": "0.1.0",
209
+ "@workglow/util": "0.1.0",
198
210
  "node-llama-cpp": "^3.18.1",
199
211
  "ollama": "^0.6.3",
200
- "openai": "^6.32.0",
212
+ "openai": "^6.33.0",
201
213
  "tiktoken": "^1.0.22",
202
214
  "js-tiktoken": "^1.0.16"
203
215
  }
@@ -1,10 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright 2025 Steven Roussey <sroussey@gmail.com>
4
- * SPDX-License-Identifier: Apache-2.0
5
- */
6
- import type { AiProviderRunFn, AiProviderStreamFn, ToolCallingTaskInput, ToolCallingTaskOutput } from "@workglow/ai";
7
- import type { AnthropicModelConfig } from "./Anthropic_ModelSchema";
8
- export declare const Anthropic_ToolCalling: AiProviderRunFn<ToolCallingTaskInput, ToolCallingTaskOutput, AnthropicModelConfig>;
9
- export declare const Anthropic_ToolCalling_Stream: AiProviderStreamFn<ToolCallingTaskInput, ToolCallingTaskOutput, AnthropicModelConfig>;
10
- //# sourceMappingURL=Anthropic_ToolCalling.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Anthropic_ToolCalling.d.ts","sourceRoot":"","sources":["../../../src/provider-anthropic/common/Anthropic_ToolCalling.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EACV,eAAe,EACf,kBAAkB,EAElB,oBAAoB,EACpB,qBAAqB,EAGtB,MAAM,cAAc,CAAC;AAGtB,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAsFpE,eAAO,MAAM,qBAAqB,EAAE,eAAe,CACjD,oBAAoB,EACpB,qBAAqB,EACrB,oBAAoB,CAwErB,CAAC;AAEF,eAAO,MAAM,4BAA4B,EAAE,kBAAkB,CAC3D,oBAAoB,EACpB,qBAAqB,EACrB,oBAAoB,CAmGrB,CAAC"}
@@ -1,10 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright 2025 Steven Roussey <sroussey@gmail.com>
4
- * SPDX-License-Identifier: Apache-2.0
5
- */
6
- import type { AiProviderRunFn, AiProviderStreamFn, ToolCallingTaskInput, ToolCallingTaskOutput } from "@workglow/ai";
7
- import type { GeminiModelConfig } from "./Gemini_ModelSchema";
8
- export declare const Gemini_ToolCalling: AiProviderRunFn<ToolCallingTaskInput, ToolCallingTaskOutput, GeminiModelConfig>;
9
- export declare const Gemini_ToolCalling_Stream: AiProviderStreamFn<ToolCallingTaskInput, ToolCallingTaskOutput, GeminiModelConfig>;
10
- //# sourceMappingURL=Gemini_ToolCalling.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Gemini_ToolCalling.d.ts","sourceRoot":"","sources":["../../../src/provider-gemini/common/Gemini_ToolCalling.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,KAAK,EACV,eAAe,EACf,kBAAkB,EAClB,oBAAoB,EACpB,qBAAqB,EAGtB,MAAM,cAAc,CAAC;AAGtB,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAuG9D,eAAO,MAAM,kBAAkB,EAAE,eAAe,CAC9C,oBAAoB,EACpB,qBAAqB,EACrB,iBAAiB,CAuElB,CAAC;AAEF,eAAO,MAAM,yBAAyB,EAAE,kBAAkB,CACxD,oBAAoB,EACpB,qBAAqB,EACrB,iBAAiB,CAwDlB,CAAC"}