@workglow/ai-provider 0.1.2 → 0.2.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 (135) hide show
  1. package/dist/common/ToolCallParsers.d.ts +253 -0
  2. package/dist/common/ToolCallParsers.d.ts.map +1 -0
  3. package/dist/provider-anthropic/AnthropicProvider.d.ts +3 -2
  4. package/dist/provider-anthropic/AnthropicProvider.d.ts.map +1 -1
  5. package/dist/provider-anthropic/AnthropicQueuedProvider.d.ts +3 -2
  6. package/dist/provider-anthropic/AnthropicQueuedProvider.d.ts.map +1 -1
  7. package/dist/provider-anthropic/common/Anthropic_Client.d.ts.map +1 -1
  8. package/dist/provider-anthropic/common/Anthropic_JobRunFns.d.ts.map +1 -1
  9. package/dist/provider-anthropic/common/Anthropic_ToolCalling.d.ts +10 -0
  10. package/dist/provider-anthropic/common/Anthropic_ToolCalling.d.ts.map +1 -0
  11. package/dist/provider-anthropic/index.js +3 -4
  12. package/dist/provider-anthropic/index.js.map +3 -3
  13. package/dist/provider-anthropic/runtime.js +225 -8
  14. package/dist/provider-anthropic/runtime.js.map +9 -8
  15. package/dist/provider-chrome/WebBrowserProvider.d.ts +2 -1
  16. package/dist/provider-chrome/WebBrowserProvider.d.ts.map +1 -1
  17. package/dist/provider-chrome/WebBrowserQueuedProvider.d.ts +2 -1
  18. package/dist/provider-chrome/WebBrowserQueuedProvider.d.ts.map +1 -1
  19. package/dist/provider-chrome/index.js +2 -4
  20. package/dist/provider-chrome/index.js.map +3 -3
  21. package/dist/provider-chrome/runtime.js +3 -7
  22. package/dist/provider-chrome/runtime.js.map +4 -4
  23. package/dist/provider-gemini/GoogleGeminiProvider.d.ts +3 -2
  24. package/dist/provider-gemini/GoogleGeminiProvider.d.ts.map +1 -1
  25. package/dist/provider-gemini/GoogleGeminiQueuedProvider.d.ts +3 -2
  26. package/dist/provider-gemini/GoogleGeminiQueuedProvider.d.ts.map +1 -1
  27. package/dist/provider-gemini/common/Gemini_JobRunFns.d.ts.map +1 -1
  28. package/dist/provider-gemini/common/Gemini_ToolCalling.d.ts +10 -0
  29. package/dist/provider-gemini/common/Gemini_ToolCalling.d.ts.map +1 -0
  30. package/dist/provider-gemini/index.js +3 -4
  31. package/dist/provider-gemini/index.js.map +3 -3
  32. package/dist/provider-gemini/runtime.js +188 -8
  33. package/dist/provider-gemini/runtime.js.map +7 -6
  34. package/dist/provider-hf-inference/HfInferenceProvider.d.ts +3 -2
  35. package/dist/provider-hf-inference/HfInferenceProvider.d.ts.map +1 -1
  36. package/dist/provider-hf-inference/HfInferenceQueuedProvider.d.ts +3 -2
  37. package/dist/provider-hf-inference/HfInferenceQueuedProvider.d.ts.map +1 -1
  38. package/dist/provider-hf-inference/common/HFI_JobRunFns.d.ts.map +1 -1
  39. package/dist/provider-hf-inference/common/HFI_ToolCalling.d.ts +10 -0
  40. package/dist/provider-hf-inference/common/HFI_ToolCalling.d.ts.map +1 -0
  41. package/dist/provider-hf-inference/index.js +3 -4
  42. package/dist/provider-hf-inference/index.js.map +3 -3
  43. package/dist/provider-hf-inference/runtime.js +157 -8
  44. package/dist/provider-hf-inference/runtime.js.map +7 -6
  45. package/dist/provider-hf-transformers/HuggingFaceTransformersProvider.d.ts +3 -2
  46. package/dist/provider-hf-transformers/HuggingFaceTransformersProvider.d.ts.map +1 -1
  47. package/dist/provider-hf-transformers/HuggingFaceTransformersQueuedProvider.d.ts +3 -3
  48. package/dist/provider-hf-transformers/HuggingFaceTransformersQueuedProvider.d.ts.map +1 -1
  49. package/dist/provider-hf-transformers/common/HFT_JobRunFns.d.ts +52 -0
  50. package/dist/provider-hf-transformers/common/HFT_JobRunFns.d.ts.map +1 -1
  51. package/dist/provider-hf-transformers/common/HFT_Pipeline.d.ts +1 -1
  52. package/dist/provider-hf-transformers/common/HFT_Pipeline.d.ts.map +1 -1
  53. package/dist/provider-hf-transformers/common/HFT_StructuredGeneration.d.ts.map +1 -1
  54. package/dist/provider-hf-transformers/common/HFT_TextClassification.d.ts.map +1 -1
  55. package/dist/provider-hf-transformers/common/HFT_TextQuestionAnswer.d.ts.map +1 -1
  56. package/dist/provider-hf-transformers/common/HFT_TextSummary.d.ts.map +1 -1
  57. package/dist/provider-hf-transformers/common/HFT_TextTranslation.d.ts.map +1 -1
  58. package/dist/provider-hf-transformers/common/HFT_ToolCalling.d.ts +10 -0
  59. package/dist/provider-hf-transformers/common/HFT_ToolCalling.d.ts.map +1 -0
  60. package/dist/provider-hf-transformers/common/HFT_ToolMarkup.d.ts +20 -0
  61. package/dist/provider-hf-transformers/common/HFT_ToolMarkup.d.ts.map +1 -0
  62. package/dist/provider-hf-transformers/common/HFT_ToolParser.d.ts +67 -0
  63. package/dist/provider-hf-transformers/common/HFT_ToolParser.d.ts.map +1 -0
  64. package/dist/provider-hf-transformers/index.d.ts +1 -0
  65. package/dist/provider-hf-transformers/index.d.ts.map +1 -1
  66. package/dist/provider-hf-transformers/index.js +71 -7
  67. package/dist/provider-hf-transformers/index.js.map +7 -6
  68. package/dist/provider-hf-transformers/runtime.d.ts +1 -0
  69. package/dist/provider-hf-transformers/runtime.d.ts.map +1 -1
  70. package/dist/provider-hf-transformers/runtime.js +1244 -13
  71. package/dist/provider-hf-transformers/runtime.js.map +18 -15
  72. package/dist/provider-llamacpp/LlamaCppProvider.d.ts +3 -2
  73. package/dist/provider-llamacpp/LlamaCppProvider.d.ts.map +1 -1
  74. package/dist/provider-llamacpp/LlamaCppQueuedProvider.d.ts +3 -2
  75. package/dist/provider-llamacpp/LlamaCppQueuedProvider.d.ts.map +1 -1
  76. package/dist/provider-llamacpp/common/LlamaCpp_JobRunFns.d.ts.map +1 -1
  77. package/dist/provider-llamacpp/common/LlamaCpp_ToolCalling.d.ts +10 -0
  78. package/dist/provider-llamacpp/common/LlamaCpp_ToolCalling.d.ts.map +1 -0
  79. package/dist/provider-llamacpp/common/LlamaCpp_ToolParser.d.ts +35 -0
  80. package/dist/provider-llamacpp/common/LlamaCpp_ToolParser.d.ts.map +1 -0
  81. package/dist/provider-llamacpp/index.js +3 -4
  82. package/dist/provider-llamacpp/index.js.map +3 -3
  83. package/dist/provider-llamacpp/runtime.js +1394 -9
  84. package/dist/provider-llamacpp/runtime.js.map +11 -8
  85. package/dist/provider-ollama/OllamaProvider.d.ts +3 -2
  86. package/dist/provider-ollama/OllamaProvider.d.ts.map +1 -1
  87. package/dist/provider-ollama/OllamaQueuedProvider.d.ts +3 -2
  88. package/dist/provider-ollama/OllamaQueuedProvider.d.ts.map +1 -1
  89. package/dist/provider-ollama/common/Ollama_JobRunFns.browser.d.ts +47 -1
  90. package/dist/provider-ollama/common/Ollama_JobRunFns.browser.d.ts.map +1 -1
  91. package/dist/provider-ollama/common/Ollama_JobRunFns.d.ts +46 -0
  92. package/dist/provider-ollama/common/Ollama_JobRunFns.d.ts.map +1 -1
  93. package/dist/provider-ollama/common/Ollama_ToolCalling.d.ts +16 -0
  94. package/dist/provider-ollama/common/Ollama_ToolCalling.d.ts.map +1 -0
  95. package/dist/provider-ollama/index.browser.js +3 -4
  96. package/dist/provider-ollama/index.browser.js.map +3 -3
  97. package/dist/provider-ollama/index.js +3 -4
  98. package/dist/provider-ollama/index.js.map +3 -3
  99. package/dist/provider-ollama/runtime.browser.js +130 -8
  100. package/dist/provider-ollama/runtime.browser.js.map +8 -7
  101. package/dist/provider-ollama/runtime.js +125 -8
  102. package/dist/provider-ollama/runtime.js.map +8 -7
  103. package/dist/provider-openai/OpenAiProvider.d.ts +3 -2
  104. package/dist/provider-openai/OpenAiProvider.d.ts.map +1 -1
  105. package/dist/provider-openai/OpenAiQueuedProvider.d.ts +3 -2
  106. package/dist/provider-openai/OpenAiQueuedProvider.d.ts.map +1 -1
  107. package/dist/provider-openai/common/OpenAI_Client.d.ts.map +1 -1
  108. package/dist/provider-openai/common/OpenAI_JobRunFns.browser.d.ts.map +1 -1
  109. package/dist/provider-openai/common/OpenAI_JobRunFns.d.ts.map +1 -1
  110. package/dist/provider-openai/common/OpenAI_ToolCalling.d.ts +10 -0
  111. package/dist/provider-openai/common/OpenAI_ToolCalling.d.ts.map +1 -0
  112. package/dist/provider-openai/index.browser.js +3 -4
  113. package/dist/provider-openai/index.browser.js.map +3 -3
  114. package/dist/provider-openai/index.js +3 -4
  115. package/dist/provider-openai/index.js.map +3 -3
  116. package/dist/provider-openai/runtime.browser.js +138 -8
  117. package/dist/provider-openai/runtime.browser.js.map +8 -7
  118. package/dist/provider-openai/runtime.js +138 -8
  119. package/dist/provider-openai/runtime.js.map +8 -7
  120. package/dist/provider-tf-mediapipe/TensorFlowMediaPipeProvider.d.ts +2 -1
  121. package/dist/provider-tf-mediapipe/TensorFlowMediaPipeProvider.d.ts.map +1 -1
  122. package/dist/provider-tf-mediapipe/TensorFlowMediaPipeQueuedProvider.d.ts +2 -1
  123. package/dist/provider-tf-mediapipe/TensorFlowMediaPipeQueuedProvider.d.ts.map +1 -1
  124. package/dist/provider-tf-mediapipe/common/TFMP_Download.d.ts.map +1 -1
  125. package/dist/provider-tf-mediapipe/common/TFMP_ImageClassification.d.ts.map +1 -1
  126. package/dist/provider-tf-mediapipe/common/TFMP_Runtime.d.ts +1 -1
  127. package/dist/provider-tf-mediapipe/common/TFMP_Runtime.d.ts.map +1 -1
  128. package/dist/provider-tf-mediapipe/index.js.map +2 -2
  129. package/dist/provider-tf-mediapipe/runtime.js +2 -4
  130. package/dist/provider-tf-mediapipe/runtime.js.map +13 -13
  131. package/dist/test.d.ts +7 -0
  132. package/dist/test.d.ts.map +1 -0
  133. package/dist/test.js +913 -0
  134. package/dist/test.js.map +10 -0
  135. package/package.json +24 -17
@@ -13,12 +13,12 @@
13
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 AiProviderStreamFn,\n TextSummaryTaskInput,\n TextSummaryTaskOutput,\n} from \"@workglow/ai\";\nimport type { StreamEvent } from \"@workglow/task-graph\";\n\nimport {\n ensureAvailable,\n getApi,\n getConfig,\n snapshotStreamToTextDeltas,\n} from \"./WebBrowser_ChromeHelpers\";\nimport type { WebBrowserModelConfig } from \"./WebBrowser_ModelSchema\";\n\nexport const WebBrowser_TextSummary: AiProviderRunFn<\n TextSummaryTaskInput,\n TextSummaryTaskOutput,\n WebBrowserModelConfig\n> = async (input, model, update_progress, signal) => {\n const factory = getApi(\n \"Summarizer\",\n (globalThis as any)?.ai?.summarizer ??\n (typeof Summarizer !== \"undefined\" ? Summarizer : undefined)\n );\n await ensureAvailable(\"Summarizer\", factory);\n const config = getConfig(model);\n\n const summarizer = await factory.create({\n type: config.summary_type,\n length: config.summary_length,\n format: config.summary_format,\n });\n try {\n const text = await summarizer.summarize(input.text, { signal });\n update_progress(100, \"Completed text summarization\");\n return { text };\n } finally {\n summarizer.destroy();\n }\n};\n\nexport const WebBrowser_TextSummary_Stream: AiProviderStreamFn<\n TextSummaryTaskInput,\n TextSummaryTaskOutput,\n WebBrowserModelConfig\n> = async function* (input, model, signal): AsyncIterable<StreamEvent<TextSummaryTaskOutput>> {\n const factory = getApi(\"Summarizer\", typeof Summarizer !== \"undefined\" ? Summarizer : undefined);\n await ensureAvailable(\"Summarizer\", factory);\n const config = getConfig(model);\n\n const summarizer = await factory.create({\n type: config.summary_type,\n length: config.summary_length,\n format: config.summary_format,\n });\n try {\n const stream = summarizer.summarizeStreaming(input.text, { signal });\n yield* snapshotStreamToTextDeltas<TextSummaryTaskOutput>(stream, \"text\", (text) => ({ text }));\n } finally {\n summarizer.destroy();\n }\n};\n",
14
14
  "/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type {\n AiProviderRunFn,\n AiProviderStreamFn,\n TextTranslationTaskInput,\n TextTranslationTaskOutput,\n} from \"@workglow/ai\";\nimport { PermanentJobError } from \"@workglow/job-queue\";\nimport type { StreamEvent } from \"@workglow/task-graph\";\n\nimport { AIAvailability } from \"./WebBrowser_ChromeAI\";\nimport { ensureAvailable, getApi, snapshotStreamToSnapshots } from \"./WebBrowser_ChromeHelpers\";\nimport type { WebBrowserModelConfig } from \"./WebBrowser_ModelSchema\";\n\nexport const WebBrowser_TextTranslation: AiProviderRunFn<\n TextTranslationTaskInput,\n TextTranslationTaskOutput,\n WebBrowserModelConfig\n> = async (input, model, update_progress, signal) => {\n const factory = getApi(\"Translator\", typeof Translator !== \"undefined\" ? Translator : undefined);\n await ensureAvailable(\"Translator\", factory);\n\n const translationAvailability = await factory.availability({\n sourceLanguage: input.source_lang,\n targetLanguage: input.target_lang,\n });\n if (!translationAvailability || translationAvailability === \"unavailable\") {\n throw new PermanentJobError(\n `Translator not available for language pair ${String(\n input.source_lang\n )} -> ${String(input.target_lang)}`\n );\n }\n\n const translator = await factory.create({\n sourceLanguage: input.source_lang,\n targetLanguage: input.target_lang,\n });\n try {\n const text = await translator.translate(input.text, { signal });\n update_progress(100, \"Completed text translation\");\n return { text, target_lang: input.target_lang };\n } finally {\n translator.destroy();\n }\n};\n\nexport const WebBrowser_TextTranslation_Stream: AiProviderStreamFn<\n TextTranslationTaskInput,\n TextTranslationTaskOutput,\n WebBrowserModelConfig\n> = async function* (input, model, signal): AsyncIterable<StreamEvent<TextTranslationTaskOutput>> {\n const factory = getApi(\"Translator\", typeof Translator !== \"undefined\" ? Translator : undefined);\n let status: AIAvailability;\n try {\n status = await factory.availability({\n sourceLanguage: input.source_lang,\n targetLanguage: input.target_lang,\n });\n } catch {\n throw new PermanentJobError(\n `Chrome Built-in AI \"Translator\" is not available (status: \"no\"). ` +\n `Ensure you are using a compatible Chrome version with the flag enabled.`\n );\n }\n if (status === \"unavailable\") {\n throw new PermanentJobError(\n `Chrome Built-in AI \"Translator\" is not available (status: \"no\"). ` +\n `Ensure you are using a compatible Chrome version with the flag enabled.`\n );\n }\n\n const translator = await factory.create({\n sourceLanguage: input.source_lang,\n targetLanguage: input.target_lang,\n });\n try {\n const stream = translator.translateStreaming(input.text, { signal });\n yield* snapshotStreamToSnapshots<TextTranslationTaskOutput>(stream, (text) => ({\n text,\n target_lang: input.target_lang,\n }));\n } finally {\n translator.destroy();\n }\n};\n",
15
15
  "/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type { AiProviderRunFn, AiProviderStreamFn } from \"@workglow/ai\";\nimport type { WebBrowserModelConfig } from \"./WebBrowser_ModelSchema\";\nimport { WebBrowser_ModelSearch } from \"./WebBrowser_ModelSearch\";\n\nimport { WebBrowser_ModelInfo } from \"./WebBrowser_ModelInfo\";\nimport {\n WebBrowser_TextGeneration,\n WebBrowser_TextGeneration_Stream,\n} from \"./WebBrowser_TextGeneration\";\nimport { WebBrowser_TextLanguageDetection } from \"./WebBrowser_TextLanguageDetection\";\nimport { WebBrowser_TextRewriter, WebBrowser_TextRewriter_Stream } from \"./WebBrowser_TextRewriter\";\nimport { WebBrowser_TextSummary, WebBrowser_TextSummary_Stream } from \"./WebBrowser_TextSummary\";\nimport {\n WebBrowser_TextTranslation,\n WebBrowser_TextTranslation_Stream,\n} from \"./WebBrowser_TextTranslation\";\n\nexport const WEB_BROWSER_TASKS: Record<string, AiProviderRunFn<any, any, WebBrowserModelConfig>> = {\n ModelInfoTask: WebBrowser_ModelInfo,\n TextSummaryTask: WebBrowser_TextSummary,\n TextLanguageDetectionTask: WebBrowser_TextLanguageDetection,\n TextTranslationTask: WebBrowser_TextTranslation,\n TextGenerationTask: WebBrowser_TextGeneration,\n TextRewriterTask: WebBrowser_TextRewriter,\n ModelSearchTask: WebBrowser_ModelSearch,\n};\n\nexport const WEB_BROWSER_STREAM_TASKS: Record<\n string,\n AiProviderStreamFn<any, any, WebBrowserModelConfig>\n> = {\n TextSummaryTask: WebBrowser_TextSummary_Stream,\n TextTranslationTask: WebBrowser_TextTranslation_Stream,\n TextGenerationTask: WebBrowser_TextGeneration_Stream,\n TextRewriterTask: WebBrowser_TextRewriter_Stream,\n};\n",
16
- "/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {\n QueuedAiProvider,\n type AiProviderReactiveRunFn,\n type AiProviderRunFn,\n type AiProviderStreamFn,\n} from \"@workglow/ai\";\nimport { WEB_BROWSER } from \"./common/WebBrowser_Constants\";\nimport type { WebBrowserModelConfig } from \"./common/WebBrowser_ModelSchema\";\n\n/** Main-thread registration (inline or worker-backed); creates the default job queue. */\nexport class WebBrowserQueuedProvider extends QueuedAiProvider<WebBrowserModelConfig> {\n readonly name = WEB_BROWSER;\n readonly displayName = \"Chrome Built-in AI\";\n readonly isLocal = true;\n readonly supportsBrowser = true;\n\n readonly taskTypes = [\n \"ModelInfoTask\",\n \"TextSummaryTask\",\n \"TextLanguageDetectionTask\",\n \"TextTranslationTask\",\n \"TextGenerationTask\",\n \"TextRewriterTask\",\n \"ModelSearchTask\",\n ] as const;\n\n constructor(\n tasks?: Record<string, AiProviderRunFn<any, any, WebBrowserModelConfig>>,\n streamTasks?: Record<string, AiProviderStreamFn<any, any, WebBrowserModelConfig>>,\n reactiveTasks?: Record<string, AiProviderReactiveRunFn<any, any, WebBrowserModelConfig>>\n ) {\n super(tasks, streamTasks, reactiveTasks);\n }\n}\n",
16
+ "/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { QueuedAiProvider } from \"@workglow/ai\";\nimport type { AiProviderReactiveRunFn, AiProviderRunFn, AiProviderStreamFn } from \"@workglow/ai\";\nimport { WEB_BROWSER } from \"./common/WebBrowser_Constants\";\nimport type { WebBrowserModelConfig } from \"./common/WebBrowser_ModelSchema\";\n\n/** Main-thread registration (inline or worker-backed); creates the default job queue. */\nexport class WebBrowserQueuedProvider extends QueuedAiProvider<WebBrowserModelConfig> {\n readonly name = WEB_BROWSER;\n readonly displayName = \"Chrome Built-in AI\";\n readonly isLocal = true;\n readonly supportsBrowser = true;\n\n readonly taskTypes = [\n \"ModelInfoTask\",\n \"TextSummaryTask\",\n \"TextLanguageDetectionTask\",\n \"TextTranslationTask\",\n \"TextGenerationTask\",\n \"TextRewriterTask\",\n \"ModelSearchTask\",\n ] as const;\n\n constructor(\n tasks?: Record<string, AiProviderRunFn<any, any, WebBrowserModelConfig>>,\n streamTasks?: Record<string, AiProviderStreamFn<any, any, WebBrowserModelConfig>>,\n reactiveTasks?: Record<string, AiProviderReactiveRunFn<any, any, WebBrowserModelConfig>>\n ) {\n super(tasks, streamTasks, reactiveTasks);\n }\n}\n",
17
17
  "/**\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 { WEB_BROWSER_STREAM_TASKS, WEB_BROWSER_TASKS } from \"./common/WebBrowser_JobRunFns\";\nimport { WebBrowserQueuedProvider } from \"./WebBrowserQueuedProvider\";\n\nexport async function registerWebBrowserInline(options?: AiProviderRegisterOptions): Promise<void> {\n await new WebBrowserQueuedProvider(WEB_BROWSER_TASKS, WEB_BROWSER_STREAM_TASKS).register(\n options ?? {}\n );\n}\n",
18
18
  "/**\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 { WEB_BROWSER_STREAM_TASKS, WEB_BROWSER_TASKS } from \"./common/WebBrowser_JobRunFns\";\nimport { WebBrowserProvider } from \"./WebBrowserProvider\";\n\nexport async function registerWebBrowserWorker(): Promise<void> {\n const workerServer = globalServiceRegistry.get(WORKER_SERVER);\n new WebBrowserProvider(WEB_BROWSER_TASKS, WEB_BROWSER_STREAM_TASKS).registerOnWorkerServer(\n workerServer\n );\n workerServer.sendReady();\n getLogger().info(\"Web browser worker job run functions registered\");\n}\n",
19
- "/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {\n AiProvider,\n type AiProviderReactiveRunFn,\n type AiProviderRunFn,\n type AiProviderStreamFn,\n} from \"@workglow/ai/worker\";\nimport { WEB_BROWSER } from \"./common/WebBrowser_Constants\";\nimport type { WebBrowserModelConfig } from \"./common/WebBrowser_ModelSchema\";\n\n/**\n * AI provider for Chrome Built-in AI APIs (Gemini Nano on-device).\n *\n * Browser-only provider — no external SDK needed, the APIs are browser globals.\n *\n * Supports summarization, language detection, translation, text generation\n * (Prompt API), and text rewriting via Chrome's Built-in AI APIs.\n *\n * Task run functions are injected via the constructor so that the provider\n * class itself has no runtime dependency on Chrome globals (it can be\n * instantiated on the main thread in worker mode without errors).\n */\nexport class WebBrowserProvider extends AiProvider<WebBrowserModelConfig> {\n readonly name = WEB_BROWSER;\n readonly displayName = \"Chrome Built-in AI\";\n readonly isLocal = true;\n readonly supportsBrowser = true;\n\n readonly taskTypes = [\n \"ModelInfoTask\",\n \"TextSummaryTask\",\n \"TextLanguageDetectionTask\",\n \"TextTranslationTask\",\n \"TextGenerationTask\",\n \"TextRewriterTask\",\n \"ModelSearchTask\",\n ] as const;\n\n constructor(\n tasks?: Record<string, AiProviderRunFn<any, any, WebBrowserModelConfig>>,\n streamTasks?: Record<string, AiProviderStreamFn<any, any, WebBrowserModelConfig>>,\n reactiveTasks?: Record<string, AiProviderReactiveRunFn<any, any, WebBrowserModelConfig>>\n ) {\n super(tasks, streamTasks, reactiveTasks);\n }\n}\n"
19
+ "/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { AiProvider } from \"@workglow/ai/worker\";\nimport type {\n AiProviderReactiveRunFn,\n AiProviderRunFn,\n AiProviderStreamFn,\n} from \"@workglow/ai/worker\";\nimport { WEB_BROWSER } from \"./common/WebBrowser_Constants\";\nimport type { WebBrowserModelConfig } from \"./common/WebBrowser_ModelSchema\";\n\n/**\n * AI provider for Chrome Built-in AI APIs (Gemini Nano on-device).\n *\n * Browser-only provider — no external SDK needed, the APIs are browser globals.\n *\n * Supports summarization, language detection, translation, text generation\n * (Prompt API), and text rewriting via Chrome's Built-in AI APIs.\n *\n * Task run functions are injected via the constructor so that the provider\n * class itself has no runtime dependency on Chrome globals (it can be\n * instantiated on the main thread in worker mode without errors).\n */\nexport class WebBrowserProvider extends AiProvider<WebBrowserModelConfig> {\n readonly name = WEB_BROWSER;\n readonly displayName = \"Chrome Built-in AI\";\n readonly isLocal = true;\n readonly supportsBrowser = true;\n\n readonly taskTypes = [\n \"ModelInfoTask\",\n \"TextSummaryTask\",\n \"TextLanguageDetectionTask\",\n \"TextTranslationTask\",\n \"TextGenerationTask\",\n \"TextRewriterTask\",\n \"ModelSearchTask\",\n ] as const;\n\n constructor(\n tasks?: Record<string, AiProviderRunFn<any, any, WebBrowserModelConfig>>,\n streamTasks?: Record<string, AiProviderStreamFn<any, any, WebBrowserModelConfig>>,\n reactiveTasks?: Record<string, AiProviderReactiveRunFn<any, any, WebBrowserModelConfig>>\n ) {\n super(tasks, streamTasks, reactiveTasks);\n }\n}\n"
20
20
  ],
21
- "mappings": "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",
22
- "debugId": "37373CDDC3ABF1CA64756E2164756E21",
21
+ "mappings": "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",
22
+ "debugId": "9B06BFB548CB356964756E2164756E21",
23
23
  "names": []
24
24
  }
@@ -3,7 +3,8 @@
3
3
  * Copyright 2025 Steven Roussey <sroussey@gmail.com>
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
- import { AiProvider, type AiProviderReactiveRunFn, type AiProviderRunFn, type AiProviderStreamFn } from "@workglow/ai/worker";
6
+ import { AiProvider } from "@workglow/ai/worker";
7
+ import type { AiProviderReactiveRunFn, AiProviderRunFn, AiProviderStreamFn } from "@workglow/ai/worker";
7
8
  import type { GeminiModelConfig } from "./common/Gemini_ModelSchema";
8
9
  /**
9
10
  * AI provider for Google Gemini cloud models.
@@ -20,7 +21,7 @@ export declare class GoogleGeminiProvider extends AiProvider<GeminiModelConfig>
20
21
  readonly displayName = "Google Gemini";
21
22
  readonly isLocal = false;
22
23
  readonly supportsBrowser = true;
23
- readonly taskTypes: readonly ["CountTokensTask", "ModelInfoTask", "TextGenerationTask", "TextEmbeddingTask", "TextRewriterTask", "TextSummaryTask", "StructuredGenerationTask", "ModelSearchTask"];
24
+ readonly taskTypes: readonly ["CountTokensTask", "ModelInfoTask", "TextGenerationTask", "TextEmbeddingTask", "TextRewriterTask", "TextSummaryTask", "StructuredGenerationTask", "ToolCallingTask", "ModelSearchTask"];
24
25
  constructor(tasks?: Record<string, AiProviderRunFn<any, any, GeminiModelConfig>>, streamTasks?: Record<string, AiProviderStreamFn<any, any, GeminiModelConfig>>, reactiveTasks?: Record<string, AiProviderReactiveRunFn<any, any, GeminiModelConfig>>);
25
26
  }
26
27
  //# sourceMappingURL=GoogleGeminiProvider.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"GoogleGeminiProvider.d.ts","sourceRoot":"","sources":["../../src/provider-gemini/GoogleGeminiProvider.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,UAAU,EACV,KAAK,uBAAuB,EAC5B,KAAK,eAAe,EACpB,KAAK,kBAAkB,EACxB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAErE;;;;;;;;;GASG;AACH,qBAAa,oBAAqB,SAAQ,UAAU,CAAC,iBAAiB,CAAC;IACrE,QAAQ,CAAC,IAAI,mBAAiB;IAC9B,QAAQ,CAAC,WAAW,mBAAmB;IACvC,QAAQ,CAAC,OAAO,SAAS;IACzB,QAAQ,CAAC,eAAe,QAAQ;IAEhC,QAAQ,CAAC,SAAS,YAChB,iBAAiB,EACjB,eAAe,EACf,oBAAoB,EACpB,mBAAmB,EACnB,kBAAkB,EAClB,iBAAiB,EACjB,0BAA0B,EAC1B,iBAAiB,EACR;IAEX,YACE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,GAAG,EAAE,GAAG,EAAE,iBAAiB,CAAC,CAAC,EACpE,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,GAAG,EAAE,GAAG,EAAE,iBAAiB,CAAC,CAAC,EAC7E,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,uBAAuB,CAAC,GAAG,EAAE,GAAG,EAAE,iBAAiB,CAAC,CAAC,EAGrF;CACF"}
1
+ {"version":3,"file":"GoogleGeminiProvider.d.ts","sourceRoot":"","sources":["../../src/provider-gemini/GoogleGeminiProvider.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,KAAK,EACV,uBAAuB,EACvB,eAAe,EACf,kBAAkB,EACnB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAErE;;;;;;;;;GASG;AACH,qBAAa,oBAAqB,SAAQ,UAAU,CAAC,iBAAiB,CAAC;IACrE,QAAQ,CAAC,IAAI,mBAAiB;IAC9B,QAAQ,CAAC,WAAW,mBAAmB;IACvC,QAAQ,CAAC,OAAO,SAAS;IACzB,QAAQ,CAAC,eAAe,QAAQ;IAEhC,QAAQ,CAAC,SAAS,YAChB,iBAAiB,EACjB,eAAe,EACf,oBAAoB,EACpB,mBAAmB,EACnB,kBAAkB,EAClB,iBAAiB,EACjB,0BAA0B,EAC1B,iBAAiB,EACjB,iBAAiB,EACR;IAEX,YACE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,GAAG,EAAE,GAAG,EAAE,iBAAiB,CAAC,CAAC,EACpE,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,GAAG,EAAE,GAAG,EAAE,iBAAiB,CAAC,CAAC,EAC7E,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,uBAAuB,CAAC,GAAG,EAAE,GAAG,EAAE,iBAAiB,CAAC,CAAC,EAGrF;CACF"}
@@ -3,7 +3,8 @@
3
3
  * Copyright 2025 Steven Roussey <sroussey@gmail.com>
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
- import { AiProvider, type AiProviderReactiveRunFn, type AiProviderRunFn, type AiProviderStreamFn } from "@workglow/ai";
6
+ import { AiProvider } from "@workglow/ai";
7
+ import type { AiProviderReactiveRunFn, AiProviderRunFn, AiProviderStreamFn } from "@workglow/ai";
7
8
  import type { GeminiModelConfig } from "./common/Gemini_ModelSchema";
8
9
  /** Main-thread registration (inline or worker-backed). No queue — uses direct execution. */
9
10
  export declare class GoogleGeminiQueuedProvider extends AiProvider<GeminiModelConfig> {
@@ -11,7 +12,7 @@ export declare class GoogleGeminiQueuedProvider extends AiProvider<GeminiModelCo
11
12
  readonly displayName = "Google Gemini";
12
13
  readonly isLocal = false;
13
14
  readonly supportsBrowser = true;
14
- readonly taskTypes: readonly ["CountTokensTask", "ModelInfoTask", "TextGenerationTask", "TextEmbeddingTask", "TextRewriterTask", "TextSummaryTask", "StructuredGenerationTask", "ModelSearchTask"];
15
+ readonly taskTypes: readonly ["CountTokensTask", "ModelInfoTask", "TextGenerationTask", "TextEmbeddingTask", "TextRewriterTask", "TextSummaryTask", "StructuredGenerationTask", "ToolCallingTask", "ModelSearchTask"];
15
16
  constructor(tasks?: Record<string, AiProviderRunFn<any, any, GeminiModelConfig>>, streamTasks?: Record<string, AiProviderStreamFn<any, any, GeminiModelConfig>>, reactiveTasks?: Record<string, AiProviderReactiveRunFn<any, any, GeminiModelConfig>>);
16
17
  }
17
18
  //# sourceMappingURL=GoogleGeminiQueuedProvider.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"GoogleGeminiQueuedProvider.d.ts","sourceRoot":"","sources":["../../src/provider-gemini/GoogleGeminiQueuedProvider.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,UAAU,EACV,KAAK,uBAAuB,EAC5B,KAAK,eAAe,EACpB,KAAK,kBAAkB,EACxB,MAAM,cAAc,CAAC;AAEtB,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAErE,4FAA4F;AAC5F,qBAAa,0BAA2B,SAAQ,UAAU,CAAC,iBAAiB,CAAC;IAC3E,QAAQ,CAAC,IAAI,mBAAiB;IAC9B,QAAQ,CAAC,WAAW,mBAAmB;IACvC,QAAQ,CAAC,OAAO,SAAS;IACzB,QAAQ,CAAC,eAAe,QAAQ;IAEhC,QAAQ,CAAC,SAAS,YAChB,iBAAiB,EACjB,eAAe,EACf,oBAAoB,EACpB,mBAAmB,EACnB,kBAAkB,EAClB,iBAAiB,EACjB,0BAA0B,EAC1B,iBAAiB,EACR;IAEX,YACE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,GAAG,EAAE,GAAG,EAAE,iBAAiB,CAAC,CAAC,EACpE,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,GAAG,EAAE,GAAG,EAAE,iBAAiB,CAAC,CAAC,EAC7E,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,uBAAuB,CAAC,GAAG,EAAE,GAAG,EAAE,iBAAiB,CAAC,CAAC,EAGrF;CACF"}
1
+ {"version":3,"file":"GoogleGeminiQueuedProvider.d.ts","sourceRoot":"","sources":["../../src/provider-gemini/GoogleGeminiQueuedProvider.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,KAAK,EAAE,uBAAuB,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAEjG,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAErE,4FAA4F;AAC5F,qBAAa,0BAA2B,SAAQ,UAAU,CAAC,iBAAiB,CAAC;IAC3E,QAAQ,CAAC,IAAI,mBAAiB;IAC9B,QAAQ,CAAC,WAAW,mBAAmB;IACvC,QAAQ,CAAC,OAAO,SAAS;IACzB,QAAQ,CAAC,eAAe,QAAQ;IAEhC,QAAQ,CAAC,SAAS,YAChB,iBAAiB,EACjB,eAAe,EACf,oBAAoB,EACpB,mBAAmB,EACnB,kBAAkB,EAClB,iBAAiB,EACjB,0BAA0B,EAC1B,iBAAiB,EACjB,iBAAiB,EACR;IAEX,YACE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,GAAG,EAAE,GAAG,EAAE,iBAAiB,CAAC,CAAC,EACpE,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,GAAG,EAAE,GAAG,EAAE,iBAAiB,CAAC,CAAC,EAC7E,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,uBAAuB,CAAC,GAAG,EAAE,GAAG,EAAE,iBAAiB,CAAC,CAAC,EAGrF;CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"Gemini_JobRunFns.d.ts","sourceRoot":"","sources":["../../../src/provider-gemini/common/Gemini_JobRunFns.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,uBAAuB,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AACjG,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAG9D,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACzE,OAAO,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAY1D,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,GAAG,EAAE,GAAG,EAAE,iBAAiB,CAAC,CASrF,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,MAAM,CACtC,MAAM,EACN,kBAAkB,CAAC,GAAG,EAAE,GAAG,EAAE,iBAAiB,CAAC,CAMhD,CAAC;AAEF,eAAO,MAAM,qBAAqB,EAAE,MAAM,CACxC,MAAM,EACN,uBAAuB,CAAC,GAAG,EAAE,GAAG,EAAE,iBAAiB,CAAC,CAGrD,CAAC"}
1
+ {"version":3,"file":"Gemini_JobRunFns.d.ts","sourceRoot":"","sources":["../../../src/provider-gemini/common/Gemini_JobRunFns.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,uBAAuB,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AACjG,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAG9D,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACzE,OAAO,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAc1D,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,GAAG,EAAE,GAAG,EAAE,iBAAiB,CAAC,CAUrF,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,MAAM,CACtC,MAAM,EACN,kBAAkB,CAAC,GAAG,EAAE,GAAG,EAAE,iBAAiB,CAAC,CAOhD,CAAC;AAEF,eAAO,MAAM,qBAAqB,EAAE,MAAM,CACxC,MAAM,EACN,uBAAuB,CAAC,GAAG,EAAE,GAAG,EAAE,iBAAiB,CAAC,CAGrD,CAAC"}
@@ -0,0 +1,10 @@
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
@@ -0,0 +1 @@
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;AAEtB,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAuG9D,eAAO,MAAM,kBAAkB,EAAE,eAAe,CAC9C,oBAAoB,EACpB,qBAAqB,EACrB,iBAAiB,CAmDlB,CAAC;AAEF,eAAO,MAAM,yBAAyB,EAAE,kBAAkB,CACxD,oBAAoB,EACpB,qBAAqB,EACrB,iBAAiB,CAsDlB,CAAC"}
@@ -90,9 +90,7 @@ var GeminiModelConfigSchema = {
90
90
  additionalProperties: false
91
91
  };
92
92
  // src/provider-gemini/GoogleGeminiQueuedProvider.ts
93
- import {
94
- AiProvider
95
- } from "@workglow/ai";
93
+ import { AiProvider } from "@workglow/ai";
96
94
  class GoogleGeminiQueuedProvider extends AiProvider {
97
95
  name = GOOGLE_GEMINI;
98
96
  displayName = "Google Gemini";
@@ -106,6 +104,7 @@ class GoogleGeminiQueuedProvider extends AiProvider {
106
104
  "TextRewriterTask",
107
105
  "TextSummaryTask",
108
106
  "StructuredGenerationTask",
107
+ "ToolCallingTask",
109
108
  "ModelSearchTask"
110
109
  ];
111
110
  constructor(tasks, streamTasks, reactiveTasks) {
@@ -125,4 +124,4 @@ export {
125
124
  GOOGLE_GEMINI
126
125
  };
127
126
 
128
- //# debugId=FA5E6C714ED2454764756E2164756E21
127
+ //# debugId=ABB650A62927A3C564756E2164756E21
@@ -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 GOOGLE_GEMINI = \"GOOGLE_GEMINI\";\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 { GOOGLE_GEMINI } from \"./Gemini_Constants\";\n\nexport const GeminiModelSchema = {\n type: \"object\",\n properties: {\n provider: {\n const: GOOGLE_GEMINI,\n description: \"Discriminator: Google Gemini cloud provider.\",\n },\n provider_config: {\n type: \"object\",\n description: \"Google Gemini-specific configuration.\",\n properties: {\n model_name: {\n type: \"string\",\n description:\n \"The Gemini model identifier (e.g., 'gemini-2.0-flash', 'text-embedding-004').\",\n },\n credential_key: {\n type: \"string\",\n format: \"credential\",\n description: \"Key to look up in the credential store for the API key.\",\n \"x-ui-hidden\": true,\n },\n embedding_task_type: {\n oneOf: [\n { type: \"null\" },\n {\n type: \"string\",\n enum: [\n \"RETRIEVAL_QUERY\",\n \"RETRIEVAL_DOCUMENT\",\n \"SEMANTIC_SIMILARITY\",\n \"CLASSIFICATION\",\n \"CLUSTERING\",\n ],\n },\n ],\n description: \"Task type hint for embedding models.\",\n default: null,\n },\n },\n required: [\"model_name\"],\n additionalProperties: false,\n },\n },\n required: [\"provider\", \"provider_config\"],\n additionalProperties: true,\n} as const satisfies DataPortSchemaObject;\n\nexport const GeminiModelRecordSchema = {\n type: \"object\",\n properties: {\n ...ModelRecordSchema.properties,\n ...GeminiModelSchema.properties,\n },\n required: [...ModelRecordSchema.required, ...GeminiModelSchema.required],\n additionalProperties: false,\n} as const satisfies DataPortSchemaObject;\n\nexport type GeminiModelRecord = FromSchema<typeof GeminiModelRecordSchema>;\n\nexport const GeminiModelConfigSchema = {\n type: \"object\",\n properties: {\n ...ModelConfigSchema.properties,\n ...GeminiModelSchema.properties,\n },\n required: [...ModelConfigSchema.required, ...GeminiModelSchema.required],\n additionalProperties: false,\n} as const satisfies DataPortSchemaObject;\n\nexport type GeminiModelConfig = FromSchema<typeof GeminiModelConfigSchema>;\n",
7
- "/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {\n AiProvider,\n type AiProviderReactiveRunFn,\n type AiProviderRunFn,\n type AiProviderStreamFn,\n} from \"@workglow/ai\";\nimport { GOOGLE_GEMINI } from \"./common/Gemini_Constants\";\nimport type { GeminiModelConfig } from \"./common/Gemini_ModelSchema\";\n\n/** Main-thread registration (inline or worker-backed). No queue — uses direct execution. */\nexport class GoogleGeminiQueuedProvider extends AiProvider<GeminiModelConfig> {\n readonly name = GOOGLE_GEMINI;\n readonly displayName = \"Google Gemini\";\n readonly isLocal = false;\n readonly supportsBrowser = true;\n\n readonly taskTypes = [\n \"CountTokensTask\",\n \"ModelInfoTask\",\n \"TextGenerationTask\",\n \"TextEmbeddingTask\",\n \"TextRewriterTask\",\n \"TextSummaryTask\",\n \"StructuredGenerationTask\",\n \"ModelSearchTask\",\n ] as const;\n\n constructor(\n tasks?: Record<string, AiProviderRunFn<any, any, GeminiModelConfig>>,\n streamTasks?: Record<string, AiProviderStreamFn<any, any, GeminiModelConfig>>,\n reactiveTasks?: Record<string, AiProviderReactiveRunFn<any, any, GeminiModelConfig>>\n ) {\n super(tasks, streamTasks, reactiveTasks);\n }\n}\n",
7
+ "/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { AiProvider } from \"@workglow/ai\";\nimport type { AiProviderReactiveRunFn, AiProviderRunFn, AiProviderStreamFn } from \"@workglow/ai\";\nimport { GOOGLE_GEMINI } from \"./common/Gemini_Constants\";\nimport type { GeminiModelConfig } from \"./common/Gemini_ModelSchema\";\n\n/** Main-thread registration (inline or worker-backed). No queue — uses direct execution. */\nexport class GoogleGeminiQueuedProvider extends AiProvider<GeminiModelConfig> {\n readonly name = GOOGLE_GEMINI;\n readonly displayName = \"Google Gemini\";\n readonly isLocal = false;\n readonly supportsBrowser = true;\n\n readonly taskTypes = [\n \"CountTokensTask\",\n \"ModelInfoTask\",\n \"TextGenerationTask\",\n \"TextEmbeddingTask\",\n \"TextRewriterTask\",\n \"TextSummaryTask\",\n \"StructuredGenerationTask\",\n \"ToolCallingTask\",\n \"ModelSearchTask\",\n ] as const;\n\n constructor(\n tasks?: Record<string, AiProviderRunFn<any, any, GeminiModelConfig>>,\n streamTasks?: Record<string, AiProviderStreamFn<any, any, GeminiModelConfig>>,\n reactiveTasks?: Record<string, AiProviderReactiveRunFn<any, any, GeminiModelConfig>>\n ) {\n super(tasks, streamTasks, 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 { GoogleGeminiQueuedProvider } from \"./GoogleGeminiQueuedProvider\";\n\nexport async function registerGemini(\n options: AiProviderRegisterOptions & {\n worker: Worker | (() => Worker);\n }\n): Promise<void> {\n await new GoogleGeminiQueuedProvider().register(options);\n}\n"
9
9
  ],
10
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AAMO,IAAM,gBAAgB;;ACA7B;AAIO,IAAM,oBAAoB;AAAA,EAC/B,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,aACE;AAAA,QACJ;AAAA,QACA,gBAAgB;AAAA,UACd,MAAM;AAAA,UACN,QAAQ;AAAA,UACR,aAAa;AAAA,UACb,eAAe;AAAA,QACjB;AAAA,QACA,qBAAqB;AAAA,UACnB,OAAO;AAAA,YACL,EAAE,MAAM,OAAO;AAAA,YACf;AAAA,cACE,MAAM;AAAA,cACN,MAAM;AAAA,gBACJ;AAAA,gBACA;AAAA,gBACA;AAAA,gBACA;AAAA,gBACA;AAAA,cACF;AAAA,YACF;AAAA,UACF;AAAA,UACA,aAAa;AAAA,UACb,SAAS;AAAA,QACX;AAAA,MACF;AAAA,MACA,UAAU,CAAC,YAAY;AAAA,MACvB,sBAAsB;AAAA,IACxB;AAAA,EACF;AAAA,EACA,UAAU,CAAC,YAAY,iBAAiB;AAAA,EACxC,sBAAsB;AACxB;AAEO,IAAM,0BAA0B;AAAA,EACrC,MAAM;AAAA,EACN,YAAY;AAAA,OACP,kBAAkB;AAAA,OAClB,kBAAkB;AAAA,EACvB;AAAA,EACA,UAAU,CAAC,GAAG,kBAAkB,UAAU,GAAG,kBAAkB,QAAQ;AAAA,EACvE,sBAAsB;AACxB;AAIO,IAAM,0BAA0B;AAAA,EACrC,MAAM;AAAA,EACN,YAAY;AAAA,OACP,kBAAkB;AAAA,OAClB,kBAAkB;AAAA,EACvB;AAAA,EACA,UAAU,CAAC,GAAG,kBAAkB,UAAU,GAAG,kBAAkB,QAAQ;AAAA,EACvE,sBAAsB;AACxB;;ACxEA;AAAA;AAAA;AAUO,MAAM,mCAAmC,WAA8B;AAAA,EACnE,OAAO;AAAA,EACP,cAAc;AAAA,EACd,UAAU;AAAA,EACV,kBAAkB;AAAA,EAElB,YAAY;AAAA,IACnB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AAAA,EAEA,WAAW,CACT,OACA,aACA,eACA;AAAA,IACA,MAAM,OAAO,aAAa,aAAa;AAAA;AAE3C;;;AC/BA,eAAsB,cAAc,CAClC,SAGe;AAAA,EACf,MAAM,IAAI,2BAA2B,EAAE,SAAS,OAAO;AAAA;",
11
- "debugId": "FA5E6C714ED2454764756E2164756E21",
10
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AAMO,IAAM,gBAAgB;;ACA7B;AAIO,IAAM,oBAAoB;AAAA,EAC/B,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,aACE;AAAA,QACJ;AAAA,QACA,gBAAgB;AAAA,UACd,MAAM;AAAA,UACN,QAAQ;AAAA,UACR,aAAa;AAAA,UACb,eAAe;AAAA,QACjB;AAAA,QACA,qBAAqB;AAAA,UACnB,OAAO;AAAA,YACL,EAAE,MAAM,OAAO;AAAA,YACf;AAAA,cACE,MAAM;AAAA,cACN,MAAM;AAAA,gBACJ;AAAA,gBACA;AAAA,gBACA;AAAA,gBACA;AAAA,gBACA;AAAA,cACF;AAAA,YACF;AAAA,UACF;AAAA,UACA,aAAa;AAAA,UACb,SAAS;AAAA,QACX;AAAA,MACF;AAAA,MACA,UAAU,CAAC,YAAY;AAAA,MACvB,sBAAsB;AAAA,IACxB;AAAA,EACF;AAAA,EACA,UAAU,CAAC,YAAY,iBAAiB;AAAA,EACxC,sBAAsB;AACxB;AAEO,IAAM,0BAA0B;AAAA,EACrC,MAAM;AAAA,EACN,YAAY;AAAA,OACP,kBAAkB;AAAA,OAClB,kBAAkB;AAAA,EACvB;AAAA,EACA,UAAU,CAAC,GAAG,kBAAkB,UAAU,GAAG,kBAAkB,QAAQ;AAAA,EACvE,sBAAsB;AACxB;AAIO,IAAM,0BAA0B;AAAA,EACrC,MAAM;AAAA,EACN,YAAY;AAAA,OACP,kBAAkB;AAAA,OAClB,kBAAkB;AAAA,EACvB;AAAA,EACA,UAAU,CAAC,GAAG,kBAAkB,UAAU,GAAG,kBAAkB,QAAQ;AAAA,EACvE,sBAAsB;AACxB;;ACxEA;AAMO,MAAM,mCAAmC,WAA8B;AAAA,EACnE,OAAO;AAAA,EACP,cAAc;AAAA,EACd,UAAU;AAAA,EACV,kBAAkB;AAAA,EAElB,YAAY;AAAA,IACnB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AAAA,EAEA,WAAW,CACT,OACA,aACA,eACA;AAAA,IACA,MAAM,OAAO,aAAa,aAAa;AAAA;AAE3C;;;AC5BA,eAAsB,cAAc,CAClC,SAGe;AAAA,EACf,MAAM,IAAI,2BAA2B,EAAE,SAAS,OAAO;AAAA;",
11
+ "debugId": "ABB650A62927A3C564756E2164756E21",
12
12
  "names": []
13
13
  }
@@ -346,6 +346,186 @@ var Gemini_TextSummary_Stream = async function* (input, model, signal) {
346
346
  yield { type: "finish", data: {} };
347
347
  };
348
348
 
349
+ // src/provider-gemini/common/Gemini_ToolCalling.ts
350
+ import { buildToolDescription, filterValidToolCalls } from "@workglow/ai/worker";
351
+ function buildGeminiContents(input) {
352
+ const inputMessages = input.messages;
353
+ if (!inputMessages || inputMessages.length === 0) {
354
+ return [{ role: "user", parts: [{ text: input.prompt }] }];
355
+ }
356
+ const toolUseNames = new Map;
357
+ for (const msg of inputMessages) {
358
+ if (msg.role === "assistant" && Array.isArray(msg.content)) {
359
+ for (const block of msg.content) {
360
+ if (block.type === "tool_use") {
361
+ toolUseNames.set(block.id, block.name);
362
+ }
363
+ }
364
+ }
365
+ }
366
+ const contents = [];
367
+ for (const msg of inputMessages) {
368
+ if (msg.role === "user") {
369
+ if (typeof msg.content === "string") {
370
+ contents.push({ role: "user", parts: [{ text: msg.content }] });
371
+ } else if (Array.isArray(msg.content)) {
372
+ const parts = [];
373
+ for (const block of msg.content) {
374
+ if (block.type === "text") {
375
+ parts.push({ text: block.text });
376
+ } else if (block.type === "image" || block.type === "audio") {
377
+ parts.push({ inlineData: { mimeType: block.mimeType, data: block.data } });
378
+ }
379
+ }
380
+ contents.push({ role: "user", parts });
381
+ } else {
382
+ contents.push({ role: "user", parts: [{ text: msg.content }] });
383
+ }
384
+ } else if (msg.role === "assistant" && Array.isArray(msg.content)) {
385
+ const parts = [];
386
+ for (const block of msg.content) {
387
+ if (block.type === "text" && block.text) {
388
+ parts.push({ text: block.text });
389
+ } else if (block.type === "tool_use") {
390
+ parts.push({ functionCall: { name: block.name, args: block.input } });
391
+ }
392
+ }
393
+ if (parts.length > 0) {
394
+ contents.push({ role: "model", parts });
395
+ }
396
+ } else if (msg.role === "tool" && Array.isArray(msg.content)) {
397
+ const parts = msg.content.map((block) => {
398
+ const name = toolUseNames.get(block.tool_use_id) ?? "unknown";
399
+ let response;
400
+ if (typeof block.content === "string") {
401
+ try {
402
+ response = JSON.parse(block.content);
403
+ } catch {
404
+ response = { result: block.content };
405
+ }
406
+ } else if (Array.isArray(block.content)) {
407
+ const textParts = block.content.filter((b) => b.type === "text").map((b) => b.text);
408
+ try {
409
+ response = JSON.parse(textParts.join(""));
410
+ } catch {
411
+ response = { result: textParts.join("") };
412
+ }
413
+ } else {
414
+ response = {};
415
+ }
416
+ return { functionResponse: { name, response } };
417
+ });
418
+ contents.push({ role: "user", parts });
419
+ }
420
+ }
421
+ return contents;
422
+ }
423
+ function mapGeminiToolConfig(toolChoice) {
424
+ if (!toolChoice || toolChoice === "auto") {
425
+ return { functionCallingConfig: { mode: "AUTO" } };
426
+ }
427
+ if (toolChoice === "none") {
428
+ return { functionCallingConfig: { mode: "NONE" } };
429
+ }
430
+ if (toolChoice === "required") {
431
+ return { functionCallingConfig: { mode: "ANY" } };
432
+ }
433
+ return {
434
+ functionCallingConfig: {
435
+ mode: "ANY",
436
+ allowedFunctionNames: [toolChoice]
437
+ }
438
+ };
439
+ }
440
+ var Gemini_ToolCalling = async (input, model, update_progress, signal) => {
441
+ update_progress(0, "Starting Gemini tool calling");
442
+ const GoogleGenerativeAI = await loadGeminiSDK();
443
+ const genAI = new GoogleGenerativeAI(getApiKey(model));
444
+ const functionDeclarations = input.tools.map((t) => ({
445
+ name: t.name,
446
+ description: buildToolDescription(t),
447
+ parameters: sanitizeSchemaForGemini(t.inputSchema)
448
+ }));
449
+ const toolConfig = mapGeminiToolConfig(input.toolChoice);
450
+ const genModel = genAI.getGenerativeModel({
451
+ model: getModelName(model),
452
+ tools: [{ functionDeclarations }],
453
+ toolConfig,
454
+ systemInstruction: input.systemPrompt || undefined,
455
+ generationConfig: {
456
+ maxOutputTokens: input.maxTokens,
457
+ temperature: input.temperature
458
+ }
459
+ });
460
+ const contents = buildGeminiContents(input);
461
+ const result = await genModel.generateContent({ contents });
462
+ const parts = result.response.candidates?.[0]?.content?.parts ?? [];
463
+ const textParts = [];
464
+ const toolCalls = [];
465
+ let callIndex = 0;
466
+ for (const part of parts) {
467
+ if ("text" in part && part.text) {
468
+ textParts.push(part.text);
469
+ }
470
+ if ("functionCall" in part && part.functionCall) {
471
+ const id = `call_${callIndex++}`;
472
+ toolCalls.push({
473
+ id,
474
+ name: part.functionCall.name,
475
+ input: part.functionCall.args ?? {}
476
+ });
477
+ }
478
+ }
479
+ update_progress(100, "Completed Gemini tool calling");
480
+ return { text: textParts.join(""), toolCalls: filterValidToolCalls(toolCalls, input.tools) };
481
+ };
482
+ var Gemini_ToolCalling_Stream = async function* (input, model, signal) {
483
+ const GoogleGenerativeAI = await loadGeminiSDK();
484
+ const genAI = new GoogleGenerativeAI(getApiKey(model));
485
+ const functionDeclarations = input.tools.map((t) => ({
486
+ name: t.name,
487
+ description: buildToolDescription(t),
488
+ parameters: sanitizeSchemaForGemini(t.inputSchema)
489
+ }));
490
+ const toolConfig = mapGeminiToolConfig(input.toolChoice);
491
+ const genModel = genAI.getGenerativeModel({
492
+ model: getModelName(model),
493
+ tools: [{ functionDeclarations }],
494
+ toolConfig,
495
+ systemInstruction: input.systemPrompt || undefined,
496
+ generationConfig: {
497
+ maxOutputTokens: input.maxTokens,
498
+ temperature: input.temperature
499
+ }
500
+ });
501
+ const contents = buildGeminiContents(input);
502
+ const result = await genModel.generateContentStream({ contents }, { signal });
503
+ let callIndex = 0;
504
+ for await (const chunk of result.stream) {
505
+ const parts = chunk.candidates?.[0]?.content?.parts ?? [];
506
+ for (const part of parts) {
507
+ if ("text" in part && part.text) {
508
+ yield { type: "text-delta", port: "text", textDelta: part.text };
509
+ }
510
+ if ("functionCall" in part && part.functionCall) {
511
+ const id = `call_${callIndex++}`;
512
+ yield {
513
+ type: "object-delta",
514
+ port: "toolCalls",
515
+ objectDelta: [
516
+ {
517
+ id,
518
+ name: part.functionCall.name,
519
+ input: part.functionCall.args ?? {}
520
+ }
521
+ ]
522
+ };
523
+ }
524
+ }
525
+ }
526
+ yield { type: "finish", data: { text: "", toolCalls: [] } };
527
+ };
528
+
349
529
  // src/provider-gemini/common/Gemini_JobRunFns.ts
350
530
  var GEMINI_TASKS = {
351
531
  CountTokensTask: Gemini_CountTokens,
@@ -355,22 +535,22 @@ var GEMINI_TASKS = {
355
535
  TextRewriterTask: Gemini_TextRewriter,
356
536
  TextSummaryTask: Gemini_TextSummary,
357
537
  StructuredGenerationTask: Gemini_StructuredGeneration,
538
+ ToolCallingTask: Gemini_ToolCalling,
358
539
  ModelSearchTask: Gemini_ModelSearch
359
540
  };
360
541
  var GEMINI_STREAM_TASKS = {
361
542
  TextGenerationTask: Gemini_TextGeneration_Stream,
362
543
  TextRewriterTask: Gemini_TextRewriter_Stream,
363
544
  TextSummaryTask: Gemini_TextSummary_Stream,
364
- StructuredGenerationTask: Gemini_StructuredGeneration_Stream
545
+ StructuredGenerationTask: Gemini_StructuredGeneration_Stream,
546
+ ToolCallingTask: Gemini_ToolCalling_Stream
365
547
  };
366
548
  var GEMINI_REACTIVE_TASKS = {
367
549
  CountTokensTask: Gemini_CountTokens_Reactive
368
550
  };
369
551
 
370
552
  // src/provider-gemini/GoogleGeminiQueuedProvider.ts
371
- import {
372
- AiProvider
373
- } from "@workglow/ai";
553
+ import { AiProvider } from "@workglow/ai";
374
554
  class GoogleGeminiQueuedProvider extends AiProvider {
375
555
  name = GOOGLE_GEMINI;
376
556
  displayName = "Google Gemini";
@@ -384,6 +564,7 @@ class GoogleGeminiQueuedProvider extends AiProvider {
384
564
  "TextRewriterTask",
385
565
  "TextSummaryTask",
386
566
  "StructuredGenerationTask",
567
+ "ToolCallingTask",
387
568
  "ModelSearchTask"
388
569
  ];
389
570
  constructor(tasks, streamTasks, reactiveTasks) {
@@ -399,9 +580,7 @@ async function registerGeminiInline(options) {
399
580
  import { getLogger as getLogger3, globalServiceRegistry, WORKER_SERVER } from "@workglow/util/worker";
400
581
 
401
582
  // src/provider-gemini/GoogleGeminiProvider.ts
402
- import {
403
- AiProvider as AiProvider2
404
- } from "@workglow/ai/worker";
583
+ import { AiProvider as AiProvider2 } from "@workglow/ai/worker";
405
584
  class GoogleGeminiProvider extends AiProvider2 {
406
585
  name = GOOGLE_GEMINI;
407
586
  displayName = "Google Gemini";
@@ -415,6 +594,7 @@ class GoogleGeminiProvider extends AiProvider2 {
415
594
  "TextRewriterTask",
416
595
  "TextSummaryTask",
417
596
  "StructuredGenerationTask",
597
+ "ToolCallingTask",
418
598
  "ModelSearchTask"
419
599
  ];
420
600
  constructor(tasks, streamTasks, reactiveTasks) {
@@ -437,4 +617,4 @@ export {
437
617
  getApiKey
438
618
  };
439
619
 
440
- //# debugId=265C7048DA37E5B964756E2164756E21
620
+ //# debugId=52FB9C4794DCB8BE64756E2164756E21