@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
@@ -48,6 +48,24 @@ function getModelName(model) {
48
48
  }
49
49
  return name;
50
50
  }
51
+ // src/common/modelSearchQuery.ts
52
+ function normalizedModelSearchQuery(query) {
53
+ const t = query?.trim();
54
+ return t ? t.toLowerCase() : undefined;
55
+ }
56
+ function filterLabeledModelsByQuery(models, query) {
57
+ const q = normalizedModelSearchQuery(query);
58
+ if (!q)
59
+ return [...models];
60
+ return models.filter((m) => m.value.toLowerCase().includes(q) || m.label.toLowerCase().includes(q));
61
+ }
62
+ function filterModelSearchResultsByQuery(results, query) {
63
+ const q = normalizedModelSearchQuery(query);
64
+ if (!q)
65
+ return results;
66
+ return results.filter((m) => m.id.toLowerCase().includes(q) || m.label.toLowerCase().includes(q) || m.description.toLowerCase().includes(q));
67
+ }
68
+
51
69
  // src/provider-gemini/common/Gemini_Constants.ts
52
70
  var GOOGLE_GEMINI = "GOOGLE_GEMINI";
53
71
 
@@ -61,8 +79,9 @@ var GEMINI_MODELS = [
61
79
  { label: "gemini-1.5-pro", value: "gemini-1.5-pro" },
62
80
  { label: "gemini-1.5-flash", value: "gemini-1.5-flash" }
63
81
  ];
64
- var Gemini_ModelSearch = async () => {
65
- const results = GEMINI_MODELS.map((m) => ({
82
+ var Gemini_ModelSearch = async (input) => {
83
+ const models = filterLabeledModelsByQuery(GEMINI_MODELS, input.query);
84
+ const results = models.map((m) => ({
66
85
  id: m.value,
67
86
  label: m.label,
68
87
  description: "",
@@ -96,18 +115,7 @@ function sanitizeSchemaForGemini(schema) {
96
115
  }
97
116
 
98
117
  // src/provider-gemini/common/Gemini_CountTokens.ts
99
- import { getLogger } from "@workglow/util/worker";
100
118
  var Gemini_CountTokens = async (input, model, onProgress, signal) => {
101
- if (Array.isArray(input.text)) {
102
- getLogger().warn("Gemini_CountTokens: array input received; processing sequentially (no native batch support)");
103
- const texts = input.text;
104
- const counts = [];
105
- for (const item of texts) {
106
- const r = await Gemini_CountTokens({ ...input, text: item }, model, onProgress, signal);
107
- counts.push(r.count);
108
- }
109
- return { count: counts };
110
- }
111
119
  const GoogleGenerativeAI = await loadGeminiSDK();
112
120
  const genAI = new GoogleGenerativeAI(getApiKey(model));
113
121
  const genModel = genAI.getGenerativeModel({ model: getModelName(model) });
@@ -115,9 +123,6 @@ var Gemini_CountTokens = async (input, model, onProgress, signal) => {
115
123
  return { count: result.totalTokens };
116
124
  };
117
125
  var Gemini_CountTokens_Reactive = async (input, _output, _model) => {
118
- if (Array.isArray(input.text)) {
119
- return { count: input.text.map((t) => Math.ceil(t.length / 4)) };
120
- }
121
126
  return { count: Math.ceil(input.text.length / 4) };
122
127
  };
123
128
 
@@ -195,9 +200,9 @@ var Gemini_StructuredGeneration_Stream = async function* (input, model, signal,
195
200
  };
196
201
 
197
202
  // src/provider-gemini/common/Gemini_TextEmbedding.ts
198
- import { getLogger as getLogger2 } from "@workglow/util/worker";
203
+ import { getLogger } from "@workglow/util/worker";
199
204
  var Gemini_TextEmbedding = async (input, model, update_progress, signal) => {
200
- const logger = getLogger2();
205
+ const logger = getLogger();
201
206
  const timerLabel = `gemini:TextEmbedding:${model?.provider_config?.model_name}`;
202
207
  logger.time(timerLabel, { model: model?.provider_config?.model_name });
203
208
  update_progress(0, "Starting Gemini text embedding");
@@ -230,19 +235,9 @@ var Gemini_TextEmbedding = async (input, model, update_progress, signal) => {
230
235
  };
231
236
 
232
237
  // src/provider-gemini/common/Gemini_TextGeneration.ts
233
- import { getLogger as getLogger3 } from "@workglow/util/worker";
238
+ import { getLogger as getLogger2 } from "@workglow/util/worker";
234
239
  var Gemini_TextGeneration = async (input, model, update_progress, signal) => {
235
- if (Array.isArray(input.prompt)) {
236
- getLogger3().warn("Gemini_TextGeneration: array input received; processing sequentially (no native batch support)");
237
- const prompts = input.prompt;
238
- const results = [];
239
- for (const item of prompts) {
240
- const r = await Gemini_TextGeneration({ ...input, prompt: item }, model, update_progress, signal);
241
- results.push(r.text);
242
- }
243
- return { text: results };
244
- }
245
- const logger = getLogger3();
240
+ const logger = getLogger2();
246
241
  const timerLabel = `gemini:TextGeneration:${model?.provider_config?.model_name}`;
247
242
  logger.time(timerLabel, { model: model?.provider_config?.model_name });
248
243
  update_progress(0, "Starting Gemini text generation");
@@ -286,18 +281,7 @@ var Gemini_TextGeneration_Stream = async function* (input, model, signal) {
286
281
  };
287
282
 
288
283
  // src/provider-gemini/common/Gemini_TextRewriter.ts
289
- import { getLogger as getLogger4 } from "@workglow/util/worker";
290
284
  var Gemini_TextRewriter = async (input, model, update_progress, signal) => {
291
- if (Array.isArray(input.text)) {
292
- getLogger4().warn("Gemini_TextRewriter: array input received; processing sequentially (no native batch support)");
293
- const texts = input.text;
294
- const results = [];
295
- for (const item of texts) {
296
- const r = await Gemini_TextRewriter({ ...input, text: item }, model, update_progress, signal);
297
- results.push(r.text);
298
- }
299
- return { text: results };
300
- }
301
285
  update_progress(0, "Starting Gemini text rewriting");
302
286
  const GoogleGenerativeAI = await loadGeminiSDK();
303
287
  const genAI = new GoogleGenerativeAI(getApiKey(model));
@@ -330,18 +314,7 @@ var Gemini_TextRewriter_Stream = async function* (input, model, signal) {
330
314
  };
331
315
 
332
316
  // src/provider-gemini/common/Gemini_TextSummary.ts
333
- import { getLogger as getLogger5 } from "@workglow/util/worker";
334
317
  var Gemini_TextSummary = async (input, model, update_progress, signal) => {
335
- if (Array.isArray(input.text)) {
336
- getLogger5().warn("Gemini_TextSummary: array input received; processing sequentially (no native batch support)");
337
- const texts = input.text;
338
- const results = [];
339
- for (const item of texts) {
340
- const r = await Gemini_TextSummary({ ...input, text: item }, model, update_progress, signal);
341
- results.push(r.text);
342
- }
343
- return { text: results };
344
- }
345
318
  update_progress(0, "Starting Gemini text summarization");
346
319
  const GoogleGenerativeAI = await loadGeminiSDK();
347
320
  const genAI = new GoogleGenerativeAI(getApiKey(model));
@@ -373,201 +346,6 @@ var Gemini_TextSummary_Stream = async function* (input, model, signal) {
373
346
  yield { type: "finish", data: {} };
374
347
  };
375
348
 
376
- // src/provider-gemini/common/Gemini_ToolCalling.ts
377
- import { buildToolDescription, filterValidToolCalls } from "@workglow/ai/worker";
378
- import { getLogger as getLogger6 } from "@workglow/util/worker";
379
- function buildGeminiContents(input) {
380
- const inputMessages = input.messages;
381
- if (!inputMessages || inputMessages.length === 0) {
382
- return [{ role: "user", parts: [{ text: input.prompt }] }];
383
- }
384
- const toolUseNames = new Map;
385
- for (const msg of inputMessages) {
386
- if (msg.role === "assistant" && Array.isArray(msg.content)) {
387
- for (const block of msg.content) {
388
- if (block.type === "tool_use") {
389
- toolUseNames.set(block.id, block.name);
390
- }
391
- }
392
- }
393
- }
394
- const contents = [];
395
- for (const msg of inputMessages) {
396
- if (msg.role === "user") {
397
- if (typeof msg.content === "string") {
398
- contents.push({ role: "user", parts: [{ text: msg.content }] });
399
- } else if (Array.isArray(msg.content)) {
400
- const parts = [];
401
- for (const block of msg.content) {
402
- if (block.type === "text") {
403
- parts.push({ text: block.text });
404
- } else if (block.type === "image" || block.type === "audio") {
405
- parts.push({ inlineData: { mimeType: block.mimeType, data: block.data } });
406
- }
407
- }
408
- contents.push({ role: "user", parts });
409
- } else {
410
- contents.push({ role: "user", parts: [{ text: msg.content }] });
411
- }
412
- } else if (msg.role === "assistant" && Array.isArray(msg.content)) {
413
- const parts = [];
414
- for (const block of msg.content) {
415
- if (block.type === "text" && block.text) {
416
- parts.push({ text: block.text });
417
- } else if (block.type === "tool_use") {
418
- parts.push({ functionCall: { name: block.name, args: block.input } });
419
- }
420
- }
421
- if (parts.length > 0) {
422
- contents.push({ role: "model", parts });
423
- }
424
- } else if (msg.role === "tool" && Array.isArray(msg.content)) {
425
- const parts = msg.content.map((block) => {
426
- const name = toolUseNames.get(block.tool_use_id) ?? "unknown";
427
- let response;
428
- if (typeof block.content === "string") {
429
- try {
430
- response = JSON.parse(block.content);
431
- } catch {
432
- response = { result: block.content };
433
- }
434
- } else if (Array.isArray(block.content)) {
435
- const textParts = block.content.filter((b) => b.type === "text").map((b) => b.text);
436
- try {
437
- response = JSON.parse(textParts.join(""));
438
- } catch {
439
- response = { result: textParts.join("") };
440
- }
441
- } else {
442
- response = {};
443
- }
444
- return { functionResponse: { name, response } };
445
- });
446
- contents.push({ role: "user", parts });
447
- }
448
- }
449
- return contents;
450
- }
451
- function mapGeminiToolConfig(toolChoice) {
452
- if (!toolChoice || toolChoice === "auto") {
453
- return { functionCallingConfig: { mode: "AUTO" } };
454
- }
455
- if (toolChoice === "none") {
456
- return { functionCallingConfig: { mode: "NONE" } };
457
- }
458
- if (toolChoice === "required") {
459
- return { functionCallingConfig: { mode: "ANY" } };
460
- }
461
- return {
462
- functionCallingConfig: {
463
- mode: "ANY",
464
- allowedFunctionNames: [toolChoice]
465
- }
466
- };
467
- }
468
- var Gemini_ToolCalling = async (input, model, update_progress, signal) => {
469
- if (Array.isArray(input.prompt)) {
470
- getLogger6().warn("Gemini_ToolCalling: array input received; processing sequentially (no native batch support)");
471
- const prompts = input.prompt;
472
- const texts = [];
473
- const toolCallsList = [];
474
- for (const item of prompts) {
475
- const r = await Gemini_ToolCalling({ ...input, prompt: item }, model, update_progress, signal);
476
- texts.push(r.text);
477
- toolCallsList.push(r.toolCalls);
478
- }
479
- return { text: texts, toolCalls: toolCallsList };
480
- }
481
- update_progress(0, "Starting Gemini tool calling");
482
- const GoogleGenerativeAI = await loadGeminiSDK();
483
- const genAI = new GoogleGenerativeAI(getApiKey(model));
484
- const functionDeclarations = input.tools.map((t) => ({
485
- name: t.name,
486
- description: buildToolDescription(t),
487
- parameters: sanitizeSchemaForGemini(t.inputSchema)
488
- }));
489
- const toolConfig = mapGeminiToolConfig(input.toolChoice);
490
- const genModel = genAI.getGenerativeModel({
491
- model: getModelName(model),
492
- tools: [{ functionDeclarations }],
493
- toolConfig,
494
- systemInstruction: input.systemPrompt || undefined,
495
- generationConfig: {
496
- maxOutputTokens: input.maxTokens,
497
- temperature: input.temperature
498
- }
499
- });
500
- const contents = buildGeminiContents(input);
501
- const result = await genModel.generateContent({ contents });
502
- const parts = result.response.candidates?.[0]?.content?.parts ?? [];
503
- const textParts = [];
504
- const toolCalls = [];
505
- let callIndex = 0;
506
- for (const part of parts) {
507
- if ("text" in part && part.text) {
508
- textParts.push(part.text);
509
- }
510
- if ("functionCall" in part && part.functionCall) {
511
- const id = `call_${callIndex++}`;
512
- toolCalls.push({
513
- id,
514
- name: part.functionCall.name,
515
- input: part.functionCall.args ?? {}
516
- });
517
- }
518
- }
519
- update_progress(100, "Completed Gemini tool calling");
520
- return { text: textParts.join(""), toolCalls: filterValidToolCalls(toolCalls, input.tools) };
521
- };
522
- var Gemini_ToolCalling_Stream = async function* (input, model, signal) {
523
- const GoogleGenerativeAI = await loadGeminiSDK();
524
- const genAI = new GoogleGenerativeAI(getApiKey(model));
525
- const functionDeclarations = input.tools.map((t) => ({
526
- name: t.name,
527
- description: buildToolDescription(t),
528
- parameters: sanitizeSchemaForGemini(t.inputSchema)
529
- }));
530
- const toolConfig = mapGeminiToolConfig(input.toolChoice);
531
- const genModel = genAI.getGenerativeModel({
532
- model: getModelName(model),
533
- tools: [{ functionDeclarations }],
534
- toolConfig,
535
- systemInstruction: input.systemPrompt || undefined,
536
- generationConfig: {
537
- maxOutputTokens: input.maxTokens,
538
- temperature: input.temperature
539
- }
540
- });
541
- const contents = buildGeminiContents(input);
542
- const result = await genModel.generateContentStream({ contents }, { signal });
543
- let accumulatedText = "";
544
- const toolCalls = [];
545
- let callIndex = 0;
546
- for await (const chunk of result.stream) {
547
- const parts = chunk.candidates?.[0]?.content?.parts ?? [];
548
- for (const part of parts) {
549
- if ("text" in part && part.text) {
550
- accumulatedText += part.text;
551
- yield { type: "text-delta", port: "text", textDelta: part.text };
552
- }
553
- if ("functionCall" in part && part.functionCall) {
554
- const id = `call_${callIndex++}`;
555
- toolCalls.push({
556
- id,
557
- name: part.functionCall.name,
558
- input: part.functionCall.args ?? {}
559
- });
560
- yield { type: "object-delta", port: "toolCalls", objectDelta: [...toolCalls] };
561
- }
562
- }
563
- }
564
- const validToolCalls = filterValidToolCalls(toolCalls, input.tools);
565
- yield {
566
- type: "finish",
567
- data: { text: accumulatedText, toolCalls: validToolCalls }
568
- };
569
- };
570
-
571
349
  // src/provider-gemini/common/Gemini_JobRunFns.ts
572
350
  var GEMINI_TASKS = {
573
351
  CountTokensTask: Gemini_CountTokens,
@@ -577,15 +355,13 @@ var GEMINI_TASKS = {
577
355
  TextRewriterTask: Gemini_TextRewriter,
578
356
  TextSummaryTask: Gemini_TextSummary,
579
357
  StructuredGenerationTask: Gemini_StructuredGeneration,
580
- ToolCallingTask: Gemini_ToolCalling,
581
358
  ModelSearchTask: Gemini_ModelSearch
582
359
  };
583
360
  var GEMINI_STREAM_TASKS = {
584
361
  TextGenerationTask: Gemini_TextGeneration_Stream,
585
362
  TextRewriterTask: Gemini_TextRewriter_Stream,
586
363
  TextSummaryTask: Gemini_TextSummary_Stream,
587
- StructuredGenerationTask: Gemini_StructuredGeneration_Stream,
588
- ToolCallingTask: Gemini_ToolCalling_Stream
364
+ StructuredGenerationTask: Gemini_StructuredGeneration_Stream
589
365
  };
590
366
  var GEMINI_REACTIVE_TASKS = {
591
367
  CountTokensTask: Gemini_CountTokens_Reactive
@@ -593,9 +369,9 @@ var GEMINI_REACTIVE_TASKS = {
593
369
 
594
370
  // src/provider-gemini/GoogleGeminiQueuedProvider.ts
595
371
  import {
596
- QueuedAiProvider
372
+ AiProvider
597
373
  } from "@workglow/ai";
598
- class GoogleGeminiQueuedProvider extends QueuedAiProvider {
374
+ class GoogleGeminiQueuedProvider extends AiProvider {
599
375
  name = GOOGLE_GEMINI;
600
376
  displayName = "Google Gemini";
601
377
  isLocal = false;
@@ -608,7 +384,6 @@ class GoogleGeminiQueuedProvider extends QueuedAiProvider {
608
384
  "TextRewriterTask",
609
385
  "TextSummaryTask",
610
386
  "StructuredGenerationTask",
611
- "ToolCallingTask",
612
387
  "ModelSearchTask"
613
388
  ];
614
389
  constructor(tasks, streamTasks, reactiveTasks) {
@@ -621,13 +396,13 @@ async function registerGeminiInline(options) {
621
396
  await new GoogleGeminiQueuedProvider(GEMINI_TASKS, GEMINI_STREAM_TASKS, GEMINI_REACTIVE_TASKS).register(options ?? {});
622
397
  }
623
398
  // src/provider-gemini/registerGeminiWorker.ts
624
- import { getLogger as getLogger7, globalServiceRegistry, WORKER_SERVER } from "@workglow/util/worker";
399
+ import { getLogger as getLogger3, globalServiceRegistry, WORKER_SERVER } from "@workglow/util/worker";
625
400
 
626
401
  // src/provider-gemini/GoogleGeminiProvider.ts
627
402
  import {
628
- AiProvider
403
+ AiProvider as AiProvider2
629
404
  } from "@workglow/ai/worker";
630
- class GoogleGeminiProvider extends AiProvider {
405
+ class GoogleGeminiProvider extends AiProvider2 {
631
406
  name = GOOGLE_GEMINI;
632
407
  displayName = "Google Gemini";
633
408
  isLocal = false;
@@ -640,7 +415,6 @@ class GoogleGeminiProvider extends AiProvider {
640
415
  "TextRewriterTask",
641
416
  "TextSummaryTask",
642
417
  "StructuredGenerationTask",
643
- "ToolCallingTask",
644
418
  "ModelSearchTask"
645
419
  ];
646
420
  constructor(tasks, streamTasks, reactiveTasks) {
@@ -653,7 +427,7 @@ async function registerGeminiWorker() {
653
427
  const workerServer = globalServiceRegistry.get(WORKER_SERVER);
654
428
  new GoogleGeminiProvider(GEMINI_TASKS, GEMINI_STREAM_TASKS, GEMINI_REACTIVE_TASKS).registerOnWorkerServer(workerServer);
655
429
  workerServer.sendReady();
656
- getLogger7().info("Google Gemini worker job run functions registered");
430
+ getLogger3().info("Google Gemini worker job run functions registered");
657
431
  }
658
432
  export {
659
433
  registerGeminiWorker,
@@ -663,4 +437,4 @@ export {
663
437
  getApiKey
664
438
  };
665
439
 
666
- //# debugId=5CC2029E1D06664464756E2164756E21
440
+ //# debugId=265C7048DA37E5B964756E2164756E21