@workglow/ai-provider 0.0.126 → 0.1.1
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.
- package/dist/provider-anthropic/AnthropicProvider.d.ts +1 -1
- package/dist/provider-anthropic/AnthropicProvider.d.ts.map +1 -1
- package/dist/provider-anthropic/AnthropicQueuedProvider.d.ts +4 -4
- package/dist/provider-anthropic/AnthropicQueuedProvider.d.ts.map +1 -1
- package/dist/provider-anthropic/common/Anthropic_Client.d.ts.map +1 -1
- package/dist/provider-anthropic/common/Anthropic_CountTokens.d.ts.map +1 -1
- package/dist/provider-anthropic/common/Anthropic_JobRunFns.d.ts.map +1 -1
- package/dist/provider-anthropic/common/Anthropic_TextGeneration.d.ts.map +1 -1
- package/dist/provider-anthropic/common/Anthropic_TextRewriter.d.ts.map +1 -1
- package/dist/provider-anthropic/common/Anthropic_TextSummary.d.ts.map +1 -1
- package/dist/provider-anthropic/index.js +3 -4
- package/dist/provider-anthropic/index.js.map +3 -3
- package/dist/provider-anthropic/runtime.js +19 -291
- package/dist/provider-anthropic/runtime.js.map +11 -12
- package/dist/provider-chrome/common/WebBrowser_TextGeneration.d.ts.map +1 -1
- package/dist/provider-chrome/common/WebBrowser_TextLanguageDetection.d.ts.map +1 -1
- package/dist/provider-chrome/common/WebBrowser_TextRewriter.d.ts.map +1 -1
- package/dist/provider-chrome/common/WebBrowser_TextSummary.d.ts.map +1 -1
- package/dist/provider-chrome/common/WebBrowser_TextTranslation.d.ts.map +1 -1
- package/dist/provider-chrome/runtime.js +3 -97
- package/dist/provider-chrome/runtime.js.map +8 -8
- package/dist/provider-gemini/GoogleGeminiProvider.d.ts +1 -1
- package/dist/provider-gemini/GoogleGeminiProvider.d.ts.map +1 -1
- package/dist/provider-gemini/GoogleGeminiQueuedProvider.d.ts +4 -4
- package/dist/provider-gemini/GoogleGeminiQueuedProvider.d.ts.map +1 -1
- package/dist/provider-gemini/common/Gemini_CountTokens.d.ts.map +1 -1
- package/dist/provider-gemini/common/Gemini_JobRunFns.d.ts.map +1 -1
- package/dist/provider-gemini/common/Gemini_TextEmbedding.d.ts.map +1 -1
- package/dist/provider-gemini/common/Gemini_TextGeneration.d.ts.map +1 -1
- package/dist/provider-gemini/common/Gemini_TextRewriter.d.ts.map +1 -1
- package/dist/provider-gemini/common/Gemini_TextSummary.d.ts.map +1 -1
- package/dist/provider-gemini/index.js +3 -4
- package/dist/provider-gemini/index.js.map +3 -3
- package/dist/provider-gemini/runtime.js +12 -257
- package/dist/provider-gemini/runtime.js.map +11 -12
- package/dist/provider-hf-inference/HfInferenceProvider.d.ts +1 -1
- package/dist/provider-hf-inference/HfInferenceProvider.d.ts.map +1 -1
- package/dist/provider-hf-inference/HfInferenceQueuedProvider.d.ts +4 -4
- package/dist/provider-hf-inference/HfInferenceQueuedProvider.d.ts.map +1 -1
- package/dist/provider-hf-inference/common/HFI_Client.d.ts.map +1 -1
- package/dist/provider-hf-inference/common/HFI_JobRunFns.d.ts.map +1 -1
- package/dist/provider-hf-inference/common/HFI_TextEmbedding.d.ts.map +1 -1
- package/dist/provider-hf-inference/common/HFI_TextGeneration.d.ts.map +1 -1
- package/dist/provider-hf-inference/common/HFI_TextRewriter.d.ts.map +1 -1
- package/dist/provider-hf-inference/common/HFI_TextSummary.d.ts.map +1 -1
- package/dist/provider-hf-inference/index.js +3 -4
- package/dist/provider-hf-inference/index.js.map +3 -3
- package/dist/provider-hf-inference/runtime.js +13 -206
- package/dist/provider-hf-inference/runtime.js.map +11 -12
- package/dist/provider-hf-transformers/HuggingFaceTransformersProvider.d.ts +1 -1
- package/dist/provider-hf-transformers/HuggingFaceTransformersProvider.d.ts.map +1 -1
- package/dist/provider-hf-transformers/HuggingFaceTransformersQueuedProvider.d.ts +13 -3
- package/dist/provider-hf-transformers/HuggingFaceTransformersQueuedProvider.d.ts.map +1 -1
- package/dist/provider-hf-transformers/common/HFT_Constants.d.ts +4 -0
- package/dist/provider-hf-transformers/common/HFT_Constants.d.ts.map +1 -1
- package/dist/provider-hf-transformers/common/HFT_CountTokens.d.ts.map +1 -1
- package/dist/provider-hf-transformers/common/HFT_Download.d.ts.map +1 -1
- package/dist/provider-hf-transformers/common/HFT_ImageEmbedding.d.ts.map +1 -1
- package/dist/provider-hf-transformers/common/HFT_JobRunFns.d.ts +116 -87
- package/dist/provider-hf-transformers/common/HFT_JobRunFns.d.ts.map +1 -1
- package/dist/provider-hf-transformers/common/HFT_ModelInfo.d.ts.map +1 -1
- package/dist/provider-hf-transformers/common/HFT_ModelSchema.d.ts +30 -0
- package/dist/provider-hf-transformers/common/HFT_ModelSchema.d.ts.map +1 -1
- package/dist/provider-hf-transformers/common/HFT_OnnxDtypes.d.ts.map +1 -1
- package/dist/provider-hf-transformers/common/HFT_Pipeline.d.ts +9 -2
- package/dist/provider-hf-transformers/common/HFT_Pipeline.d.ts.map +1 -1
- package/dist/provider-hf-transformers/common/HFT_Streaming.d.ts +2 -2
- package/dist/provider-hf-transformers/common/HFT_Streaming.d.ts.map +1 -1
- package/dist/provider-hf-transformers/common/HFT_TextClassification.d.ts.map +1 -1
- package/dist/provider-hf-transformers/common/HFT_TextFillMask.d.ts.map +1 -1
- package/dist/provider-hf-transformers/common/HFT_TextGeneration.d.ts.map +1 -1
- package/dist/provider-hf-transformers/common/HFT_TextLanguageDetection.d.ts.map +1 -1
- package/dist/provider-hf-transformers/common/HFT_TextNamedEntityRecognition.d.ts.map +1 -1
- package/dist/provider-hf-transformers/common/HFT_TextQuestionAnswer.d.ts.map +1 -1
- package/dist/provider-hf-transformers/common/HFT_TextRewriter.d.ts.map +1 -1
- package/dist/provider-hf-transformers/common/HFT_TextSummary.d.ts.map +1 -1
- package/dist/provider-hf-transformers/common/HFT_TextTranslation.d.ts.map +1 -1
- package/dist/provider-hf-transformers/index.d.ts +0 -1
- package/dist/provider-hf-transformers/index.d.ts.map +1 -1
- package/dist/provider-hf-transformers/index.js +49 -177
- package/dist/provider-hf-transformers/index.js.map +8 -9
- package/dist/provider-hf-transformers/registerHuggingFaceTransformersWorker.d.ts.map +1 -1
- package/dist/provider-hf-transformers/runtime.d.ts +0 -1
- package/dist/provider-hf-transformers/runtime.d.ts.map +1 -1
- package/dist/provider-hf-transformers/runtime.js +226 -515
- package/dist/provider-hf-transformers/runtime.js.map +27 -29
- package/dist/provider-llamacpp/LlamaCppProvider.d.ts +1 -1
- package/dist/provider-llamacpp/LlamaCppProvider.d.ts.map +1 -1
- package/dist/provider-llamacpp/LlamaCppQueuedProvider.d.ts +1 -1
- package/dist/provider-llamacpp/LlamaCppQueuedProvider.d.ts.map +1 -1
- package/dist/provider-llamacpp/common/LlamaCpp_CountTokens.d.ts.map +1 -1
- package/dist/provider-llamacpp/common/LlamaCpp_JobRunFns.d.ts.map +1 -1
- package/dist/provider-llamacpp/common/LlamaCpp_ModelSchema.d.ts +15 -0
- package/dist/provider-llamacpp/common/LlamaCpp_ModelSchema.d.ts.map +1 -1
- package/dist/provider-llamacpp/common/LlamaCpp_Runtime.d.ts +10 -0
- package/dist/provider-llamacpp/common/LlamaCpp_Runtime.d.ts.map +1 -1
- package/dist/provider-llamacpp/common/LlamaCpp_StructuredGeneration.d.ts.map +1 -1
- package/dist/provider-llamacpp/common/LlamaCpp_TextEmbedding.d.ts.map +1 -1
- package/dist/provider-llamacpp/common/LlamaCpp_TextGeneration.d.ts.map +1 -1
- package/dist/provider-llamacpp/common/LlamaCpp_TextRewriter.d.ts.map +1 -1
- package/dist/provider-llamacpp/common/LlamaCpp_TextSummary.d.ts.map +1 -1
- package/dist/provider-llamacpp/index.js +6 -2
- package/dist/provider-llamacpp/index.js.map +4 -4
- package/dist/provider-llamacpp/runtime.js +82 -230
- package/dist/provider-llamacpp/runtime.js.map +13 -14
- package/dist/provider-ollama/OllamaProvider.d.ts +1 -1
- package/dist/provider-ollama/OllamaProvider.d.ts.map +1 -1
- package/dist/provider-ollama/OllamaQueuedProvider.d.ts +4 -4
- package/dist/provider-ollama/OllamaQueuedProvider.d.ts.map +1 -1
- package/dist/provider-ollama/common/Ollama_JobRunFns.browser.d.ts +13 -71
- package/dist/provider-ollama/common/Ollama_JobRunFns.browser.d.ts.map +1 -1
- package/dist/provider-ollama/common/Ollama_JobRunFns.d.ts +13 -71
- package/dist/provider-ollama/common/Ollama_JobRunFns.d.ts.map +1 -1
- package/dist/provider-ollama/common/Ollama_TextGeneration.d.ts.map +1 -1
- package/dist/provider-ollama/common/Ollama_TextRewriter.d.ts.map +1 -1
- package/dist/provider-ollama/common/Ollama_TextSummary.d.ts.map +1 -1
- package/dist/provider-ollama/index.browser.js +3 -4
- package/dist/provider-ollama/index.browser.js.map +3 -3
- package/dist/provider-ollama/index.js +3 -4
- package/dist/provider-ollama/index.js.map +3 -3
- package/dist/provider-ollama/runtime.browser.js +8 -179
- package/dist/provider-ollama/runtime.browser.js.map +9 -10
- package/dist/provider-ollama/runtime.js +8 -174
- package/dist/provider-ollama/runtime.js.map +9 -10
- package/dist/provider-openai/OpenAiProvider.d.ts +1 -1
- package/dist/provider-openai/OpenAiProvider.d.ts.map +1 -1
- package/dist/provider-openai/OpenAiQueuedProvider.d.ts +4 -4
- package/dist/provider-openai/OpenAiQueuedProvider.d.ts.map +1 -1
- package/dist/provider-openai/common/OpenAI_Client.d.ts.map +1 -1
- package/dist/provider-openai/common/OpenAI_CountTokens.browser.d.ts.map +1 -1
- package/dist/provider-openai/common/OpenAI_CountTokens.d.ts.map +1 -1
- package/dist/provider-openai/common/OpenAI_JobRunFns.browser.d.ts.map +1 -1
- package/dist/provider-openai/common/OpenAI_JobRunFns.d.ts.map +1 -1
- package/dist/provider-openai/common/OpenAI_TextEmbedding.d.ts.map +1 -1
- package/dist/provider-openai/common/OpenAI_TextGeneration.d.ts.map +1 -1
- package/dist/provider-openai/common/OpenAI_TextRewriter.d.ts.map +1 -1
- package/dist/provider-openai/common/OpenAI_TextSummary.d.ts.map +1 -1
- package/dist/provider-openai/index.browser.js +3 -4
- package/dist/provider-openai/index.browser.js.map +3 -3
- package/dist/provider-openai/index.js +3 -4
- package/dist/provider-openai/index.js.map +3 -3
- package/dist/provider-openai/runtime.browser.js +22 -224
- package/dist/provider-openai/runtime.browser.js.map +12 -13
- package/dist/provider-openai/runtime.js +22 -224
- package/dist/provider-openai/runtime.js.map +12 -13
- package/dist/provider-tf-mediapipe/TensorFlowMediaPipeQueuedProvider.d.ts +3 -3
- package/dist/provider-tf-mediapipe/TensorFlowMediaPipeQueuedProvider.d.ts.map +1 -1
- package/dist/provider-tf-mediapipe/common/TFMP_ImageEmbedding.d.ts.map +1 -1
- package/dist/provider-tf-mediapipe/common/TFMP_JobRunFns.d.ts +17 -10
- package/dist/provider-tf-mediapipe/common/TFMP_JobRunFns.d.ts.map +1 -1
- package/dist/provider-tf-mediapipe/common/TFMP_Unload.d.ts.map +1 -1
- package/dist/provider-tf-mediapipe/index.js +3 -3
- package/dist/provider-tf-mediapipe/index.js.map +3 -3
- package/dist/provider-tf-mediapipe/runtime.js +16 -5
- package/dist/provider-tf-mediapipe/runtime.js.map +5 -5
- package/package.json +19 -19
- package/dist/provider-anthropic/common/Anthropic_ToolCalling.d.ts +0 -10
- package/dist/provider-anthropic/common/Anthropic_ToolCalling.d.ts.map +0 -1
- package/dist/provider-gemini/common/Gemini_ToolCalling.d.ts +0 -10
- package/dist/provider-gemini/common/Gemini_ToolCalling.d.ts.map +0 -1
- package/dist/provider-hf-inference/common/HFI_ToolCalling.d.ts +0 -10
- package/dist/provider-hf-inference/common/HFI_ToolCalling.d.ts.map +0 -1
- package/dist/provider-hf-transformers/common/HFT_ToolCalling.d.ts +0 -10
- package/dist/provider-hf-transformers/common/HFT_ToolCalling.d.ts.map +0 -1
- package/dist/provider-hf-transformers/common/HFT_ToolMarkup.d.ts +0 -40
- package/dist/provider-hf-transformers/common/HFT_ToolMarkup.d.ts.map +0 -1
- package/dist/provider-llamacpp/common/LlamaCpp_ToolCalling.d.ts +0 -10
- package/dist/provider-llamacpp/common/LlamaCpp_ToolCalling.d.ts.map +0 -1
- package/dist/provider-ollama/common/Ollama_ToolCalling.d.ts +0 -16
- package/dist/provider-ollama/common/Ollama_ToolCalling.d.ts.map +0 -1
- package/dist/provider-openai/common/OpenAI_ToolCalling.d.ts +0 -10
- package/dist/provider-openai/common/OpenAI_ToolCalling.d.ts.map +0 -1
|
@@ -1,29 +1,28 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": ["../src/provider-llamacpp/common/LlamaCpp_Runtime.ts", "../src/common/PipelineTaskMapping.ts", "../src/common/HfModelSearch.ts", "../src/provider-llamacpp/common/LlamaCpp_Constants.ts", "../src/provider-llamacpp/common/LlamaCpp_ModelSearch.ts", "../src/provider-llamacpp/common/LlamaCpp_CountTokens.ts", "../src/provider-llamacpp/common/LlamaCpp_Download.ts", "../src/provider-llamacpp/common/LlamaCpp_ModelInfo.ts", "../src/provider-llamacpp/common/LlamaCpp_StructuredGeneration.ts", "../src/provider-llamacpp/common/LlamaCpp_TextEmbedding.ts", "../src/provider-llamacpp/common/LlamaCpp_TextGeneration.ts", "../src/provider-llamacpp/common/LlamaCpp_TextRewriter.ts", "../src/provider-llamacpp/common/LlamaCpp_TextSummary.ts", "../src/provider-llamacpp/common/
|
|
3
|
+
"sources": ["../src/provider-llamacpp/common/LlamaCpp_Runtime.ts", "../src/common/PipelineTaskMapping.ts", "../src/common/HfModelSearch.ts", "../src/provider-llamacpp/common/LlamaCpp_Constants.ts", "../src/provider-llamacpp/common/LlamaCpp_ModelSearch.ts", "../src/provider-llamacpp/common/LlamaCpp_CountTokens.ts", "../src/provider-llamacpp/common/LlamaCpp_Download.ts", "../src/provider-llamacpp/common/LlamaCpp_ModelInfo.ts", "../src/provider-llamacpp/common/LlamaCpp_StructuredGeneration.ts", "../src/provider-llamacpp/common/LlamaCpp_TextEmbedding.ts", "../src/provider-llamacpp/common/LlamaCpp_TextGeneration.ts", "../src/provider-llamacpp/common/LlamaCpp_TextRewriter.ts", "../src/provider-llamacpp/common/LlamaCpp_TextSummary.ts", "../src/provider-llamacpp/common/LlamaCpp_Unload.ts", "../src/provider-llamacpp/common/LlamaCpp_JobRunFns.ts", "../src/provider-llamacpp/LlamaCppQueuedProvider.ts", "../src/provider-llamacpp/registerLlamaCppInline.ts", "../src/provider-llamacpp/registerLlamaCppWorker.ts", "../src/provider-llamacpp/LlamaCppProvider.ts"],
|
|
4
4
|
"sourcesContent": [
|
|
5
|
-
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type { StreamEvent } from \"@workglow/task-graph\";\nimport type { LlamaCppModelConfig } from \"./LlamaCpp_ModelSchema\";\nimport type { Llama as LlamaInstance } from \"node-llama-cpp\";\nimport type { LlamaModel, LlamaContext, LlamaEmbeddingContext } from \"node-llama-cpp\";\n\nlet _sdk: typeof import(\"node-llama-cpp\") | undefined;\n\nexport async function loadSdk() {\n if (!_sdk) {\n try {\n _sdk = await import(\"node-llama-cpp\");\n } catch {\n throw new Error(\n \"node-llama-cpp is required for LOCAL_LLAMACPP tasks. Install it with: bun add node-llama-cpp\"\n );\n }\n }\n return _sdk;\n}\n\nexport function getLlamaCppSdk() {\n if (!_sdk) {\n throw new Error(\"LlamaCpp SDK not loaded; call loadSdk() first\");\n }\n return _sdk;\n}\n\nlet llamaInstance: LlamaInstance | undefined;\n/** @internal Used by unload task */\nexport const llamaCppModels = new Map<string, LlamaModel>();\n/** @internal Used by unload task */\nexport const llamaCppTextContexts = new Map<string, LlamaContext>();\n/** @internal Used by unload task */\nexport const llamaCppEmbeddingContexts = new Map<string, LlamaEmbeddingContext>();\n\n/** Maps model_url (or model_path when used as URI) to the actual downloaded filesystem path. */\nexport const resolvedPaths = new Map<string, string>();\n\nexport async function getLlamaInstance(): Promise<LlamaInstance> {\n if (!llamaInstance) {\n const { getLlama } = await loadSdk();\n llamaInstance = await getLlama();\n }\n return llamaInstance;\n}\n\nexport function getConfigKey(model: LlamaCppModelConfig): string {\n return model.provider_config.model_url ?? model.provider_config.model_path;\n}\n\nexport function getActualModelPath(model: LlamaCppModelConfig): string {\n const key = getConfigKey(model);\n const resolved = resolvedPaths.get(key);\n return resolved ?? model.provider_config.model_path;\n}\n\nexport async function getOrLoadModel(model: LlamaCppModelConfig): Promise<LlamaModel> {\n const modelPath = getActualModelPath(model);\n const cached = llamaCppModels.get(modelPath);\n if (cached) return cached;\n\n const llama = await getLlamaInstance();\n const config = model.provider_config;\n\n const loadedModel = await llama.loadModel({\n modelPath,\n ...(config.gpu_layers !== undefined && { gpuLayers: config.gpu_layers }),\n });\n\n llamaCppModels.set(modelPath, loadedModel);\n return loadedModel;\n}\n\nexport async function getOrCreateTextContext(model: LlamaCppModelConfig): Promise<LlamaContext> {\n const modelPath = getActualModelPath(model);\n const cached = llamaCppTextContexts.get(modelPath);\n if (cached) return cached;\n\n const loadedModel = await getOrLoadModel(model);\n const config = model.provider_config;\n\n const context = await loadedModel.createContext({\n ...(config.context_size && { contextSize: config.context_size }),\n ...(config.flash_attention !== undefined && { flashAttention: config.flash_attention }),\n });\n\n llamaCppTextContexts.set(modelPath, context);\n return context;\n}\n\nexport async function getOrCreateEmbeddingContext(\n model: LlamaCppModelConfig\n): Promise<LlamaEmbeddingContext> {\n const modelPath = getActualModelPath(model);\n const cached = llamaCppEmbeddingContexts.get(modelPath);\n if (cached) return cached;\n\n const loadedModel = await getOrLoadModel(model);\n\n const context = await loadedModel.createEmbeddingContext();\n\n llamaCppEmbeddingContexts.set(modelPath, context);\n return context;\n}\n\nexport async function* streamFromSession<T extends Record<string, unknown>>(\n promptFn: (onTextChunk: (chunk: string) => void) => Promise<string>,\n signal: AbortSignal\n): AsyncGenerator<StreamEvent<T>> {\n const queue: string[] = [];\n let isComplete = false;\n let completionError: unknown;\n let resolveWait: (() => void) | null = null;\n\n const notifyWaiter = () => {\n resolveWait?.();\n resolveWait = null;\n };\n\n const promptPromise = promptFn((chunk: string) => {\n queue.push(chunk);\n notifyWaiter();\n })\n .then(() => {\n isComplete = true;\n notifyWaiter();\n })\n .catch((err: unknown) => {\n completionError = err;\n isComplete = true;\n notifyWaiter();\n });\n\n try {\n while (true) {\n while (queue.length > 0) {\n yield { type: \"text-delta\", port: \"text\", textDelta: queue.shift()! };\n }\n if (isComplete) break;\n await new Promise<void>((r) => {\n resolveWait = r;\n });\n }\n while (queue.length > 0) {\n yield { type: \"text-delta\", port: \"text\", textDelta: queue.shift()! };\n }\n } finally {\n await promptPromise.catch(() => {});\n }\n\n if (completionError) {\n if (signal.aborted) return;\n throw completionError;\n }\n\n yield { type: \"finish\", data: {} as T };\n}\n\nexport async function disposeLlamaCppResources(): Promise<void> {\n const disposeAll = async (map: Map<string, { dispose(): Promise<void> }>) => {\n for (const resource of map.values()) {\n await resource.dispose().catch(() => {});\n }\n map.clear();\n };\n\n await disposeAll(llamaCppTextContexts as Map<string, { dispose(): Promise<void> }>);\n await disposeAll(llamaCppEmbeddingContexts as Map<string, { dispose(): Promise<void> }>);\n await disposeAll(llamaCppModels as Map<string, { dispose(): Promise<void> }>);\n\n if (llamaInstance) {\n await (llamaInstance as any).dispose?.().catch(() => {});\n llamaInstance = undefined;\n }\n\n resolvedPaths.clear();\n}\n",
|
|
5
|
+
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type { StreamEvent } from \"@workglow/task-graph\";\nimport type { LlamaCppModelConfig } from \"./LlamaCpp_ModelSchema\";\nimport type { Llama as LlamaInstance } from \"node-llama-cpp\";\nimport type { LlamaModel, LlamaContext, LlamaEmbeddingContext } from \"node-llama-cpp\";\n\nlet _sdk: typeof import(\"node-llama-cpp\") | undefined;\n\nexport async function loadSdk() {\n if (!_sdk) {\n try {\n _sdk = await import(\"node-llama-cpp\");\n } catch {\n throw new Error(\n \"node-llama-cpp is required for LOCAL_LLAMACPP tasks. Install it with: bun add node-llama-cpp\"\n );\n }\n }\n return _sdk;\n}\n\nexport function getLlamaCppSdk() {\n if (!_sdk) {\n throw new Error(\"LlamaCpp SDK not loaded; call loadSdk() first\");\n }\n return _sdk;\n}\n\nlet llamaInstance: LlamaInstance | undefined;\n/** @internal Used by unload task */\nexport const llamaCppModels = new Map<string, LlamaModel>();\n/** @internal Used by unload task */\nexport const llamaCppTextContexts = new Map<string, LlamaContext>();\n/** @internal Used by unload task */\nexport const llamaCppEmbeddingContexts = new Map<string, LlamaEmbeddingContext>();\n\n/** Maps model_url (or model_path when used as URI) to the actual downloaded filesystem path. */\nexport const resolvedPaths = new Map<string, string>();\n\nexport async function getLlamaInstance(): Promise<LlamaInstance> {\n if (!llamaInstance) {\n const { getLlama } = await loadSdk();\n llamaInstance = await getLlama();\n }\n return llamaInstance;\n}\n\nexport function getConfigKey(model: LlamaCppModelConfig): string {\n return model.provider_config.model_url ?? model.provider_config.model_path;\n}\n\nexport function getActualModelPath(model: LlamaCppModelConfig): string {\n const key = getConfigKey(model);\n const resolved = resolvedPaths.get(key);\n return resolved ?? model.provider_config.model_path;\n}\n\nexport async function getOrLoadModel(model: LlamaCppModelConfig): Promise<LlamaModel> {\n const modelPath = getActualModelPath(model);\n const cached = llamaCppModels.get(modelPath);\n if (cached) return cached;\n\n const llama = await getLlamaInstance();\n const config = model.provider_config;\n\n const loadedModel = await llama.loadModel({\n modelPath,\n ...(config.gpu_layers !== undefined && { gpuLayers: config.gpu_layers }),\n });\n\n llamaCppModels.set(modelPath, loadedModel);\n return loadedModel;\n}\n\n/** Spread into `LlamaChatSession.prompt` options when `provider_config.seed` is set. */\nexport function llamaCppSeedPromptSpread(\n provider_config: LlamaCppModelConfig[\"provider_config\"]\n): { seed: number } | Record<string, never> {\n return provider_config.seed !== undefined ? { seed: provider_config.seed } : {};\n}\n\nfunction detectQwenChatWrapperVariation(model: LlamaCppModelConfig): \"3\" | \"3.5\" | undefined {\n const candidates = [\n model.model_id,\n model.title,\n model.description,\n model.provider_config.model_url,\n model.provider_config.model_path,\n ]\n .filter((value): value is string => typeof value === \"string\" && value.length > 0)\n .map((value) => value.toLowerCase());\n\n if (\n candidates.some((value) =>\n /\\bqwen(?:[\\s._-]?|)3(?:[\\s._-]?|)5\\b|\\bqwen(?:[\\s._-]?|)3\\.5\\b/.test(value)\n )\n ) {\n return \"3.5\";\n }\n\n if (candidates.some((value) => /\\bqwen(?:[\\s._-]?|)3\\b/.test(value))) {\n return \"3\";\n }\n\n return undefined;\n}\n\n/** Spread into {@link LlamaChatSession} constructor when Qwen wrapper variation can be inferred. */\nexport function llamaCppChatSessionConstructorSpread(model: LlamaCppModelConfig) {\n const variation = detectQwenChatWrapperVariation(model);\n if (!variation) {\n return {};\n }\n const { QwenChatWrapper } = getLlamaCppSdk();\n return { chatWrapper: new QwenChatWrapper({ variation }) };\n}\n\nexport async function getOrCreateTextContext(model: LlamaCppModelConfig): Promise<LlamaContext> {\n const modelPath = getActualModelPath(model);\n const cached = llamaCppTextContexts.get(modelPath);\n if (cached) return cached;\n\n const loadedModel = await getOrLoadModel(model);\n const config = model.provider_config;\n\n const context = await loadedModel.createContext({\n ...(config.context_size && { contextSize: config.context_size }),\n ...(config.flash_attention !== undefined && { flashAttention: config.flash_attention }),\n });\n\n llamaCppTextContexts.set(modelPath, context);\n return context;\n}\n\nexport async function getOrCreateEmbeddingContext(\n model: LlamaCppModelConfig\n): Promise<LlamaEmbeddingContext> {\n const modelPath = getActualModelPath(model);\n const cached = llamaCppEmbeddingContexts.get(modelPath);\n if (cached) return cached;\n\n const loadedModel = await getOrLoadModel(model);\n\n const context = await loadedModel.createEmbeddingContext();\n\n llamaCppEmbeddingContexts.set(modelPath, context);\n return context;\n}\n\nexport async function* streamFromSession<T extends Record<string, unknown>>(\n promptFn: (onTextChunk: (chunk: string) => void) => Promise<string>,\n signal: AbortSignal\n): AsyncGenerator<StreamEvent<T>> {\n const queue: string[] = [];\n let isComplete = false;\n let completionError: unknown;\n let resolveWait: (() => void) | null = null;\n\n const notifyWaiter = () => {\n resolveWait?.();\n resolveWait = null;\n };\n\n const promptPromise = promptFn((chunk: string) => {\n queue.push(chunk);\n notifyWaiter();\n })\n .then(() => {\n isComplete = true;\n notifyWaiter();\n })\n .catch((err: unknown) => {\n completionError = err;\n isComplete = true;\n notifyWaiter();\n });\n\n try {\n while (true) {\n while (queue.length > 0) {\n yield { type: \"text-delta\", port: \"text\", textDelta: queue.shift()! };\n }\n if (isComplete) break;\n await new Promise<void>((r) => {\n resolveWait = r;\n });\n }\n while (queue.length > 0) {\n yield { type: \"text-delta\", port: \"text\", textDelta: queue.shift()! };\n }\n } finally {\n await promptPromise.catch(() => {});\n }\n\n if (completionError) {\n if (signal.aborted) return;\n throw completionError;\n }\n\n yield { type: \"finish\", data: {} as T };\n}\n\nexport async function disposeLlamaCppResources(): Promise<void> {\n const disposeAll = async (map: Map<string, { dispose(): Promise<void> }>) => {\n for (const resource of map.values()) {\n await resource.dispose().catch(() => {});\n }\n map.clear();\n };\n\n await disposeAll(llamaCppTextContexts as Map<string, { dispose(): Promise<void> }>);\n await disposeAll(llamaCppEmbeddingContexts as Map<string, { dispose(): Promise<void> }>);\n await disposeAll(llamaCppModels as Map<string, { dispose(): Promise<void> }>);\n\n if (llamaInstance) {\n await (llamaInstance as any).dispose?.().catch(() => {});\n llamaInstance = undefined;\n }\n\n resolvedPaths.clear();\n}\n",
|
|
6
6
|
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\n/**\n * Mapping from app task types to HuggingFace pipeline names.\n * Each task type maps to one or more pipelines (first is primary).\n */\nconst TASK_TO_PIPELINES: Record<string, string[]> = {\n TextEmbeddingTask: [\"feature-extraction\"],\n TextGenerationTask: [\"text-generation\"],\n TextSummaryTask: [\"sentence-similarity\", \"summarization\"],\n TextTranslationTask: [\"translation\"],\n TextClassificationTask: [\"text-classification\", \"zero-shot-classification\"],\n TextQuestionAnswerTask: [\"question-answering\"],\n TextFillMaskTask: [\"fill-mask\"],\n TextLanguageDetectionTask: [\"text-classification\"],\n TextNamedEntityRecognitionTask: [\"token-classification\"],\n TokenClassificationTask: [\"token-classification\"],\n ImageClassificationTask: [\"image-classification\", \"zero-shot-image-classification\"],\n ImageEmbeddingTask: [\"image-feature-extraction\"],\n ImageSegmentationTask: [\"image-segmentation\"],\n ImageToImageTask: [\"image-to-image\"],\n ImageToTextTask: [\"image-to-text\"],\n ObjectDetectionTask: [\"object-detection\", \"zero-shot-object-detection\"],\n DepthEstimationTask: [\"depth-estimation\"],\n AudioClassificationTask: [\"audio-classification\"],\n SpeechRecognitionTask: [\"automatic-speech-recognition\"],\n};\n\n/** Convert an app task type to its primary HuggingFace pipeline name. */\nexport function taskTypeToPipeline(taskType: string): string | undefined {\n return TASK_TO_PIPELINES[taskType]?.[0];\n}\n\n/** Convert an app task type to all matching HuggingFace pipeline names. */\nexport function taskTypeToPipelines(taskType: string): string[] {\n return TASK_TO_PIPELINES[taskType] ?? [];\n}\n\n/** Reverse lookup: given a HuggingFace pipeline name, return all matching app task types. */\nexport function pipelineToTaskTypes(pipeline: string): string[] {\n return Object.entries(TASK_TO_PIPELINES)\n .filter(([, pipelines]) => pipelines.includes(pipeline))\n .map(([task]) => task);\n}\n",
|
|
7
7
|
"/**\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\";\nimport { pipelineToTaskTypes } from \"./PipelineTaskMapping\";\n\nexport interface HfModelEntry {\n id: string;\n modelId: string;\n pipeline_tag?: string;\n library_name?: string;\n likes: number;\n downloads: number;\n tags?: string[];\n siblings?: Array<{ rfilename: string }>;\n}\n\nconst HF_API_BASE = \"https://huggingface.co/api\";\n\nexport function formatDownloads(n: number): string {\n if (n >= 1_000_000) return `${(n / 1_000_000).toFixed(1)}M`;\n if (n >= 1_000) return `${(n / 1_000).toFixed(1)}k`;\n return String(n);\n}\n\n/**\n * Map an HF model entry to a provider-specific config object.\n */\nexport function mapHfProviderConfig(\n entry: HfModelEntry,\n provider: string\n): Record<string, unknown> {\n switch (provider) {\n case \"HF_TRANSFORMERS_ONNX\":\n return {\n model_path: entry.id,\n ...(entry.pipeline_tag ? { pipeline: entry.pipeline_tag } : {}),\n };\n case \"LOCAL_LLAMACPP\":\n return { model_path: entry.id };\n default:\n return { model_name: entry.id };\n }\n}\n\n/**\n * Map an HF model entry to a ModelSearchResultItem.\n */\nexport function mapHfModelResult(entry: HfModelEntry, provider: string): ModelSearchResultItem {\n const badges = [entry.pipeline_tag, entry.library_name].filter(Boolean).join(\" | \");\n return {\n id: entry.id,\n label: `${entry.id}${badges ? ` ${badges}` : \"\"}`,\n description: `${formatDownloads(entry.downloads)} downloads`,\n record: {\n model_id: entry.id,\n provider,\n title: entry.id.split(\"/\").pop() ?? entry.id,\n description: [entry.pipeline_tag, `${formatDownloads(entry.downloads)} downloads`]\n .filter(Boolean)\n .join(\" \\u2014 \"),\n tasks: entry.pipeline_tag ? pipelineToTaskTypes(entry.pipeline_tag) : [],\n provider_config: mapHfProviderConfig(entry, provider),\n metadata: {},\n },\n raw: entry,\n };\n}\n\n/**\n * Search HuggingFace models API. Returns all results (limit=500, no pagination).\n * An empty `query` lists top models by sort order (no text filter).\n */\nexport async function searchHfModels(\n query: string,\n extraParams?: Record<string, string>,\n expandFields?: string[],\n signal?: AbortSignal\n): Promise<HfModelEntry[]> {\n const params = new URLSearchParams({\n search: query,\n limit: \"500\",\n sort: \"downloads\",\n direction: \"-1\",\n ...extraParams,\n });\n params.append(\"expand[]\", \"pipeline_tag\");\n if (expandFields) {\n for (const field of expandFields) {\n params.append(\"expand[]\", field);\n }\n }\n const res = await fetch(`${HF_API_BASE}/models?${params}`, { signal });\n if (!res.ok) throw new Error(`HuggingFace API returned ${res.status}`);\n return res.json();\n}\n",
|
|
8
8
|
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nexport const LOCAL_LLAMACPP = \"LOCAL_LLAMACPP\";\nexport const LLAMACPP_DEFAULT_MODELS_DIR = \"./models\";\n",
|
|
9
9
|
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type { AiProviderRunFn, ModelSearchTaskInput, ModelSearchTaskOutput } from \"@workglow/ai\";\nimport { searchHfModels, mapHfModelResult } from \"../../common/HfModelSearch\";\nimport { LOCAL_LLAMACPP } from \"./LlamaCpp_Constants\";\n\nexport const LlamaCpp_ModelSearch: AiProviderRunFn<\n ModelSearchTaskInput,\n ModelSearchTaskOutput\n> = async (input, _model, _onProgress, signal) => {\n const entries = await searchHfModels(\n input.query?.trim() ?? \"\",\n { filter: \"gguf\" },\n undefined,\n signal\n );\n const results = entries.map((entry) => mapHfModelResult(entry, LOCAL_LLAMACPP));\n return { results };\n};\n",
|
|
10
|
-
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type {\n AiProviderReactiveRunFn,\n AiProviderRunFn,\n CountTokensTaskInput,\n CountTokensTaskOutput,\n} from \"@workglow/ai\";\nimport
|
|
10
|
+
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type {\n AiProviderReactiveRunFn,\n AiProviderRunFn,\n CountTokensTaskInput,\n CountTokensTaskOutput,\n} from \"@workglow/ai\";\nimport type { LlamaCppModelConfig } from \"./LlamaCpp_ModelSchema\";\nimport { getOrLoadModel } from \"./LlamaCpp_Runtime\";\n\nexport const LlamaCpp_CountTokens: AiProviderRunFn<\n CountTokensTaskInput,\n CountTokensTaskOutput,\n LlamaCppModelConfig\n> = async (input, model, onProgress, signal) => {\n const loadedModel = await getOrLoadModel(model!);\n const tokens = loadedModel.tokenizer(input.text);\n return { count: tokens.length };\n};\n\nexport const LlamaCpp_CountTokens_Reactive: AiProviderReactiveRunFn<\n CountTokensTaskInput,\n CountTokensTaskOutput,\n LlamaCppModelConfig\n> = async (input, _output, model) => {\n return LlamaCpp_CountTokens(input, model, () => {}, new AbortController().signal);\n};\n",
|
|
11
11
|
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type {\n AiProviderRunFn,\n DownloadModelTaskRunInput,\n DownloadModelTaskRunOutput,\n} from \"@workglow/ai\";\nimport { LLAMACPP_DEFAULT_MODELS_DIR } from \"./LlamaCpp_Constants\";\nimport type { LlamaCppModelConfig } from \"./LlamaCpp_ModelSchema\";\nimport { getConfigKey, loadSdk, resolvedPaths } from \"./LlamaCpp_Runtime\";\n\nexport const LlamaCpp_Download: AiProviderRunFn<\n DownloadModelTaskRunInput,\n DownloadModelTaskRunOutput,\n LlamaCppModelConfig\n> = async (input, model, update_progress, _signal) => {\n if (!model) throw new Error(\"Model config is required for DownloadModelTask.\");\n\n const { createModelDownloader } = await loadSdk();\n const config = model.provider_config;\n const modelUri = config.model_url ?? config.model_path;\n const dirPath = config.models_dir ?? LLAMACPP_DEFAULT_MODELS_DIR;\n\n update_progress(0, \"Creating model downloader\");\n\n const downloader = await createModelDownloader({ modelUri, dirPath });\n\n const progressInterval = setInterval(() => {\n const total = (downloader as any).totalSize as number | undefined;\n const downloaded = (downloader as any).downloadedSize as number | undefined;\n if (total && total > 0 && downloaded !== undefined) {\n const pct = Math.min(99, Math.round((downloaded / total) * 100));\n update_progress(pct, \"Downloading model\", { file: modelUri, progress: pct });\n }\n }, 500);\n\n let modelPath: string;\n try {\n modelPath = await downloader.download();\n } finally {\n clearInterval(progressInterval);\n }\n\n resolvedPaths.set(getConfigKey(model), modelPath);\n\n update_progress(100, \"Model downloaded\", { file: modelUri, progress: 100 });\n\n return { model: input.model! };\n};\n",
|
|
12
12
|
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type { AiProviderRunFn, ModelInfoTaskInput, ModelInfoTaskOutput } from \"@workglow/ai\";\nimport type { LlamaCppModelConfig } from \"./LlamaCpp_ModelSchema\";\nimport {\n getActualModelPath,\n getConfigKey,\n llamaCppModels,\n resolvedPaths,\n} from \"./LlamaCpp_Runtime\";\n\nexport const LlamaCpp_ModelInfo: AiProviderRunFn<\n ModelInfoTaskInput,\n ModelInfoTaskOutput,\n LlamaCppModelConfig\n> = async (input, model) => {\n if (!model) throw new Error(\"Model config is required for ModelInfoTask.\");\n\n const modelPath = getActualModelPath(model);\n const is_loaded = llamaCppModels.has(modelPath);\n\n let is_cached = is_loaded;\n let file_sizes: Record<string, number> | null = null;\n\n try {\n const fs = await import(\"node:fs/promises\");\n const stat = await fs.stat(modelPath);\n is_cached = true;\n file_sizes = { model: stat.size };\n } catch {\n if (resolvedPaths.has(getConfigKey(model))) {\n is_cached = true;\n }\n }\n\n return {\n model: input.model,\n is_local: true,\n is_remote: false,\n supports_browser: false,\n supports_node: true,\n is_cached,\n is_loaded,\n file_sizes,\n };\n};\n",
|
|
13
|
-
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type {\n AiProviderRunFn,\n AiProviderStreamFn,\n StructuredGenerationTaskInput,\n StructuredGenerationTaskOutput,\n} from \"@workglow/ai\";\nimport type { StreamEvent } from \"@workglow/task-graph\";\nimport { parsePartialJson } from \"@workglow/util/worker\";\nimport type { LlamaCppModelConfig } from \"./LlamaCpp_ModelSchema\";\nimport {\n getLlamaCppSdk,\n getLlamaInstance,\n getOrCreateTextContext,\n loadSdk,\n} from \"./LlamaCpp_Runtime\";\n\nexport const LlamaCpp_StructuredGeneration: AiProviderRunFn<\n StructuredGenerationTaskInput,\n StructuredGenerationTaskOutput,\n LlamaCppModelConfig\n> = async (input, model, update_progress, signal) => {\n if (!model) throw new Error(\"Model config is required for StructuredGenerationTask.\");\n\n await loadSdk();\n\n update_progress(0, \"Loading model\");\n const llama = await getLlamaInstance();\n const context = await getOrCreateTextContext(model);\n\n update_progress(10, \"Running structured generation\");\n const grammar = await llama.createGrammarForJsonSchema(input.outputSchema as any);\n const sequence = context.getSequence();\n const { LlamaChatSession } = getLlamaCppSdk();\n const session = new LlamaChatSession({
|
|
14
|
-
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type {
|
|
15
|
-
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type {\n AiProviderRunFn,\n AiProviderStreamFn,\n TextGenerationTaskInput,\n TextGenerationTaskOutput,\n} from \"@workglow/ai\";\nimport type { StreamEvent } from \"@workglow/task-graph\";\nimport
|
|
16
|
-
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type {
|
|
17
|
-
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type {
|
|
18
|
-
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { filterValidToolCalls } from \"@workglow/ai/worker\";\nimport type {\n AiProviderRunFn,\n AiProviderStreamFn,\n ToolCallingTaskInput,\n ToolCallingTaskOutput,\n ToolCalls,\n ToolDefinition,\n} from \"@workglow/ai\";\nimport type { StreamEvent } from \"@workglow/task-graph\";\nimport { getLogger } from \"@workglow/util/worker\";\nimport type { LlamaCppModelConfig } from \"./LlamaCpp_ModelSchema\";\nimport { getLlamaCppSdk, getOrCreateTextContext, loadSdk } from \"./LlamaCpp_Runtime\";\n\nfunction buildLlamaCppPrompt(input: ToolCallingTaskInput): string {\n const inputMessages = input.messages;\n if (!inputMessages || inputMessages.length === 0) {\n return Array.isArray(input.prompt) ? input.prompt.join(\"\\n\") : input.prompt;\n }\n\n const parts: string[] = [];\n for (const msg of inputMessages) {\n if (msg.role === \"user\") {\n parts.push(`User: ${msg.content}`);\n } else if (msg.role === \"assistant\" && Array.isArray(msg.content)) {\n const text = msg.content\n .filter((b: any) => b.type === \"text\")\n .map((b: any) => b.text)\n .join(\"\");\n if (text) parts.push(`Assistant: ${text}`);\n } else if (msg.role === \"tool\" && Array.isArray(msg.content)) {\n for (const block of msg.content) {\n parts.push(`Tool Result: ${block.content}`);\n }\n }\n }\n return parts.join(\"\\n\\n\");\n}\n\nfunction buildLlamaCppFunctions(\n tools: ReadonlyArray<ToolDefinition>,\n capturedCalls: Array<{ name: string; input: Record<string, unknown> }>\n) {\n const { defineChatSessionFunction } = getLlamaCppSdk();\n const functions: Record<string, any> = {};\n for (const tool of tools) {\n const toolName = tool.name;\n functions[toolName] = defineChatSessionFunction({\n description: tool.description,\n params: tool.inputSchema as any,\n handler(params: any) {\n capturedCalls.push({ name: toolName, input: (params ?? {}) as Record<string, unknown> });\n return \"OK\";\n },\n } as any);\n }\n return functions;\n}\n\nexport const LlamaCpp_ToolCalling: AiProviderRunFn<\n ToolCallingTaskInput,\n ToolCallingTaskOutput,\n LlamaCppModelConfig\n> = async (input, model, update_progress, signal) => {\n if (Array.isArray(input.prompt)) {\n getLogger().warn(\n \"LlamaCpp_ToolCalling: array input received; processing sequentially (no native batch support)\"\n );\n const prompts = input.prompt as string[];\n const texts: string[] = [];\n const toolCallsList: ToolCalls[] = [];\n for (const item of prompts) {\n const r = await LlamaCpp_ToolCalling(\n { ...input, prompt: item },\n model,\n update_progress,\n signal\n );\n texts.push(r.text as string);\n toolCallsList.push(r.toolCalls as ToolCalls);\n }\n return { text: texts, toolCalls: toolCallsList } as unknown as ToolCallingTaskOutput;\n }\n\n if (!model) throw new Error(\"Model config is required for ToolCallingTask.\");\n\n await loadSdk();\n\n update_progress(0, \"Loading model\");\n const context = await getOrCreateTextContext(model);\n\n const capturedCalls: Array<{ name: string; input: Record<string, unknown> }> = [];\n const functions =\n input.toolChoice === \"none\" ? undefined : buildLlamaCppFunctions(input.tools, capturedCalls);\n\n update_progress(10, \"Running tool calling\");\n const sequence = context.getSequence();\n const { LlamaChatSession } = getLlamaCppSdk();\n const promptText = buildLlamaCppPrompt(input);\n const session = new LlamaChatSession({\n contextSequence: sequence,\n ...(input.systemPrompt && { systemPrompt: input.systemPrompt }),\n });\n\n try {\n const text = await session.prompt(promptText, {\n signal,\n ...(functions && { functions }),\n ...(input.temperature !== undefined && { temperature: input.temperature }),\n ...(input.maxTokens !== undefined && { maxTokens: input.maxTokens }),\n });\n\n const toolCalls: ToolCalls = [];\n capturedCalls.forEach((call, index) => {\n const id = `call_${index}`;\n toolCalls.push({ id, name: call.name, input: call.input });\n });\n\n update_progress(100, \"Tool calling complete\");\n return { text, toolCalls: filterValidToolCalls(toolCalls, input.tools) };\n } finally {\n sequence.dispose();\n }\n};\n\nexport const LlamaCpp_ToolCalling_Stream: AiProviderStreamFn<\n ToolCallingTaskInput,\n ToolCallingTaskOutput,\n LlamaCppModelConfig\n> = async function* (input, model, signal): AsyncIterable<StreamEvent<ToolCallingTaskOutput>> {\n if (!model) throw new Error(\"Model config is required for ToolCallingTask.\");\n\n await loadSdk();\n\n const context = await getOrCreateTextContext(model);\n\n const capturedCalls: Array<{ name: string; input: Record<string, unknown> }> = [];\n const functions =\n input.toolChoice === \"none\" ? undefined : buildLlamaCppFunctions(input.tools, capturedCalls);\n\n const sequence = context.getSequence();\n const { LlamaChatSession } = getLlamaCppSdk();\n const promptText = buildLlamaCppPrompt(input);\n const session = new LlamaChatSession({\n contextSequence: sequence,\n ...(input.systemPrompt && { systemPrompt: input.systemPrompt }),\n });\n\n const queue: string[] = [];\n let isComplete = false;\n let completionError: unknown;\n let resolveWait: (() => void) | null = null;\n\n const notifyWaiter = () => {\n resolveWait?.();\n resolveWait = null;\n };\n\n let accumulatedText = \"\";\n const promptPromise = session\n .prompt(promptText, {\n signal,\n ...(functions && { functions }),\n onTextChunk: (chunk: string) => {\n queue.push(chunk);\n notifyWaiter();\n },\n ...(input.temperature !== undefined && { temperature: input.temperature }),\n ...(input.maxTokens !== undefined && { maxTokens: input.maxTokens }),\n })\n .then(() => {\n isComplete = true;\n notifyWaiter();\n })\n .catch((err: unknown) => {\n completionError = err;\n isComplete = true;\n notifyWaiter();\n });\n\n try {\n while (true) {\n while (queue.length > 0) {\n const chunk = queue.shift()!;\n accumulatedText += chunk;\n yield { type: \"text-delta\", port: \"text\", textDelta: chunk };\n }\n if (isComplete) break;\n await new Promise<void>((r) => {\n resolveWait = r;\n });\n }\n while (queue.length > 0) {\n const chunk = queue.shift()!;\n accumulatedText += chunk;\n yield { type: \"text-delta\", port: \"text\", textDelta: chunk };\n }\n } finally {\n await promptPromise.catch(() => {});\n sequence.dispose();\n }\n\n if (completionError) {\n if (!signal.aborted) throw completionError;\n return;\n }\n\n const toolCalls: ToolCalls = [];\n capturedCalls.forEach((call, index) => {\n const id = `call_${index}`;\n toolCalls.push({ id, name: call.name, input: call.input });\n });\n const validToolCalls = filterValidToolCalls(toolCalls, input.tools);\n\n if (validToolCalls.length > 0) {\n yield { type: \"object-delta\", port: \"toolCalls\", objectDelta: [...validToolCalls] };\n }\n\n yield {\n type: \"finish\",\n data: { text: accumulatedText, toolCalls: validToolCalls } as ToolCallingTaskOutput,\n };\n};\n",
|
|
13
|
+
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type {\n AiProviderRunFn,\n AiProviderStreamFn,\n StructuredGenerationTaskInput,\n StructuredGenerationTaskOutput,\n} from \"@workglow/ai\";\nimport type { StreamEvent } from \"@workglow/task-graph\";\nimport { parsePartialJson } from \"@workglow/util/worker\";\nimport type { LlamaCppModelConfig } from \"./LlamaCpp_ModelSchema\";\nimport {\n getLlamaCppSdk,\n getLlamaInstance,\n getOrCreateTextContext,\n llamaCppChatSessionConstructorSpread,\n llamaCppSeedPromptSpread,\n loadSdk,\n} from \"./LlamaCpp_Runtime\";\n\nexport const LlamaCpp_StructuredGeneration: AiProviderRunFn<\n StructuredGenerationTaskInput,\n StructuredGenerationTaskOutput,\n LlamaCppModelConfig\n> = async (input, model, update_progress, signal) => {\n if (!model) throw new Error(\"Model config is required for StructuredGenerationTask.\");\n\n await loadSdk();\n\n update_progress(0, \"Loading model\");\n const llama = await getLlamaInstance();\n const context = await getOrCreateTextContext(model);\n\n update_progress(10, \"Running structured generation\");\n const grammar = await llama.createGrammarForJsonSchema(input.outputSchema as any);\n const sequence = context.getSequence();\n const { LlamaChatSession } = getLlamaCppSdk();\n const session = new LlamaChatSession({\n contextSequence: sequence,\n ...llamaCppChatSessionConstructorSpread(model),\n });\n\n try {\n const text = await session.prompt(input.prompt as string, {\n signal,\n grammar,\n ...llamaCppSeedPromptSpread(model.provider_config),\n ...(input.temperature !== undefined && { temperature: input.temperature }),\n ...(input.maxTokens !== undefined && { maxTokens: input.maxTokens }),\n });\n\n let object: Record<string, unknown>;\n try {\n object = JSON.parse(text);\n } catch {\n object = {};\n }\n\n update_progress(100, \"Structured generation complete\");\n return { object };\n } finally {\n session.dispose({ disposeSequence: false });\n sequence.dispose();\n }\n};\n\nexport const LlamaCpp_StructuredGeneration_Stream: AiProviderStreamFn<\n StructuredGenerationTaskInput,\n StructuredGenerationTaskOutput,\n LlamaCppModelConfig\n> = async function* (\n input,\n model,\n signal\n): AsyncIterable<StreamEvent<StructuredGenerationTaskOutput>> {\n if (!model) throw new Error(\"Model config is required for StructuredGenerationTask.\");\n\n await loadSdk();\n\n const llama = await getLlamaInstance();\n const context = await getOrCreateTextContext(model);\n const grammar = await llama.createGrammarForJsonSchema(input.outputSchema as any);\n\n const sequence = context.getSequence();\n const { LlamaChatSession } = getLlamaCppSdk();\n const session = new LlamaChatSession({\n contextSequence: sequence,\n ...llamaCppChatSessionConstructorSpread(model),\n });\n\n const queue: string[] = [];\n let isComplete = false;\n let completionError: unknown;\n let resolveWait: (() => void) | null = null;\n\n const notifyWaiter = () => {\n resolveWait?.();\n resolveWait = null;\n };\n\n let accumulatedText = \"\";\n const promptPromise = session\n .prompt(input.prompt as string, {\n signal,\n grammar,\n ...llamaCppSeedPromptSpread(model.provider_config),\n onTextChunk: (chunk: string) => {\n queue.push(chunk);\n notifyWaiter();\n },\n ...(input.temperature !== undefined && { temperature: input.temperature }),\n ...(input.maxTokens !== undefined && { maxTokens: input.maxTokens }),\n })\n .then(() => {\n isComplete = true;\n notifyWaiter();\n })\n .catch((err: unknown) => {\n completionError = err;\n isComplete = true;\n notifyWaiter();\n });\n\n try {\n while (true) {\n while (queue.length > 0) {\n const chunk = queue.shift()!;\n accumulatedText += chunk;\n const partial = parsePartialJson(accumulatedText);\n if (partial !== undefined) {\n yield {\n type: \"object-delta\",\n port: \"object\",\n objectDelta: partial as Record<string, unknown>,\n };\n }\n }\n if (isComplete) break;\n await new Promise<void>((r) => {\n resolveWait = r;\n });\n }\n while (queue.length > 0) {\n const chunk = queue.shift()!;\n accumulatedText += chunk;\n }\n } finally {\n await promptPromise.catch(() => {});\n session.dispose({ disposeSequence: false });\n sequence.dispose();\n }\n\n if (completionError) {\n if (signal.aborted) return;\n throw completionError;\n }\n\n let finalObject: Record<string, unknown>;\n try {\n finalObject = JSON.parse(accumulatedText);\n } catch {\n finalObject = (parsePartialJson(accumulatedText) as Record<string, unknown>) ?? {};\n }\n\n yield { type: \"finish\", data: { object: finalObject } as StructuredGenerationTaskOutput };\n};\n",
|
|
14
|
+
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type {\n AiProviderRunFn,\n TextEmbeddingTaskInput,\n TextEmbeddingTaskOutput,\n} from \"@workglow/ai\";\nimport type { LlamaCppModelConfig } from \"./LlamaCpp_ModelSchema\";\nimport { getOrCreateEmbeddingContext } from \"./LlamaCpp_Runtime\";\n\nexport const LlamaCpp_TextEmbedding: AiProviderRunFn<\n TextEmbeddingTaskInput,\n TextEmbeddingTaskOutput,\n LlamaCppModelConfig\n> = async (input, model, update_progress, _signal) => {\n if (!model) throw new Error(\"Model config is required for TextEmbeddingTask.\");\n\n update_progress(0, \"Loading embedding model\");\n const context = await getOrCreateEmbeddingContext(model);\n\n const texts = Array.isArray(input.text) ? input.text : [input.text];\n update_progress(10, \"Computing embeddings\");\n\n const embeddings = await Promise.all(\n texts.map((text) => context.getEmbeddingFor(text).then((e) => new Float32Array(e.vector)))\n );\n\n update_progress(100, \"Embeddings complete\");\n\n if (Array.isArray(input.text)) {\n return { vector: embeddings };\n }\n return { vector: embeddings[0] };\n};\n",
|
|
15
|
+
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type {\n AiProviderRunFn,\n AiProviderStreamFn,\n TextGenerationTaskInput,\n TextGenerationTaskOutput,\n} from \"@workglow/ai\";\nimport type { StreamEvent } from \"@workglow/task-graph\";\nimport type { LlamaCppModelConfig } from \"./LlamaCpp_ModelSchema\";\nimport {\n getOrCreateTextContext,\n llamaCppChatSessionConstructorSpread,\n llamaCppSeedPromptSpread,\n loadSdk,\n streamFromSession,\n} from \"./LlamaCpp_Runtime\";\n\nexport const LlamaCpp_TextGeneration: AiProviderRunFn<\n TextGenerationTaskInput,\n TextGenerationTaskOutput,\n LlamaCppModelConfig\n> = async (input, model, update_progress, signal) => {\n if (!model) throw new Error(\"Model config is required for TextGenerationTask.\");\n\n const { LlamaChatSession } = await loadSdk();\n\n update_progress(0, \"Loading model\");\n const context = await getOrCreateTextContext(model);\n\n update_progress(10, \"Generating text\");\n const sequence = context.getSequence();\n const session = new LlamaChatSession({\n contextSequence: sequence,\n ...llamaCppChatSessionConstructorSpread(model),\n });\n try {\n const text = await session.prompt(input.prompt, {\n signal,\n ...llamaCppSeedPromptSpread(model.provider_config),\n ...(input.temperature !== undefined && { temperature: input.temperature }),\n ...(input.maxTokens !== undefined && { maxTokens: input.maxTokens }),\n ...(input.topP !== undefined && { topP: input.topP }),\n });\n update_progress(100, \"Text generation complete\");\n return { text };\n } finally {\n session.dispose({ disposeSequence: false });\n sequence.dispose();\n }\n};\n\nexport const LlamaCpp_TextGeneration_Stream: AiProviderStreamFn<\n TextGenerationTaskInput,\n TextGenerationTaskOutput,\n LlamaCppModelConfig\n> = async function* (input, model, signal): AsyncIterable<StreamEvent<TextGenerationTaskOutput>> {\n if (!model) throw new Error(\"Model config is required for TextGenerationTask.\");\n\n const { LlamaChatSession } = await loadSdk();\n\n const context = await getOrCreateTextContext(model);\n const sequence = context.getSequence();\n const session = new LlamaChatSession({\n contextSequence: sequence,\n ...llamaCppChatSessionConstructorSpread(model),\n });\n try {\n yield* streamFromSession<TextGenerationTaskOutput>((onTextChunk) => {\n return session.prompt(input.prompt, {\n signal,\n onTextChunk,\n ...llamaCppSeedPromptSpread(model.provider_config),\n ...(input.temperature !== undefined && { temperature: input.temperature }),\n ...(input.maxTokens !== undefined && { maxTokens: input.maxTokens }),\n ...(input.topP !== undefined && { topP: input.topP }),\n });\n }, signal);\n } finally {\n session.dispose({ disposeSequence: false });\n sequence.dispose();\n }\n};\n",
|
|
16
|
+
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type {\n AiProviderRunFn,\n AiProviderStreamFn,\n TextRewriterTaskInput,\n TextRewriterTaskOutput,\n} from \"@workglow/ai\";\nimport type { StreamEvent } from \"@workglow/task-graph\";\nimport type { LlamaCppModelConfig } from \"./LlamaCpp_ModelSchema\";\nimport {\n getOrCreateTextContext,\n llamaCppChatSessionConstructorSpread,\n llamaCppSeedPromptSpread,\n loadSdk,\n streamFromSession,\n} from \"./LlamaCpp_Runtime\";\n\nexport const LlamaCpp_TextRewriter: AiProviderRunFn<\n TextRewriterTaskInput,\n TextRewriterTaskOutput,\n LlamaCppModelConfig\n> = async (input, model, update_progress, signal) => {\n if (!model) throw new Error(\"Model config is required for TextRewriterTask.\");\n\n const { LlamaChatSession } = await loadSdk();\n\n update_progress(0, \"Loading model\");\n const context = await getOrCreateTextContext(model);\n\n update_progress(10, \"Rewriting text\");\n const sequence = context.getSequence();\n const session = new LlamaChatSession({\n contextSequence: sequence,\n ...llamaCppChatSessionConstructorSpread(model),\n systemPrompt: input.prompt,\n });\n try {\n const text = await session.prompt(input.text, {\n signal,\n ...llamaCppSeedPromptSpread(model.provider_config),\n });\n update_progress(100, \"Text rewriting complete\");\n return { text };\n } finally {\n session.dispose({ disposeSequence: false });\n sequence.dispose();\n }\n};\n\nexport const LlamaCpp_TextRewriter_Stream: AiProviderStreamFn<\n TextRewriterTaskInput,\n TextRewriterTaskOutput,\n LlamaCppModelConfig\n> = async function* (input, model, signal): AsyncIterable<StreamEvent<TextRewriterTaskOutput>> {\n if (!model) throw new Error(\"Model config is required for TextRewriterTask.\");\n\n const { LlamaChatSession } = await loadSdk();\n\n const context = await getOrCreateTextContext(model);\n const sequence = context.getSequence();\n const session = new LlamaChatSession({\n contextSequence: sequence,\n ...llamaCppChatSessionConstructorSpread(model),\n systemPrompt: input.prompt,\n });\n try {\n yield* streamFromSession<TextRewriterTaskOutput>((onTextChunk) => {\n return session.prompt(input.text, {\n signal,\n onTextChunk,\n ...llamaCppSeedPromptSpread(model.provider_config),\n });\n }, signal);\n } finally {\n session.dispose({ disposeSequence: false });\n sequence.dispose();\n }\n};\n",
|
|
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 AiProviderStreamFn,\n TextSummaryTaskInput,\n TextSummaryTaskOutput,\n} from \"@workglow/ai\";\nimport type { StreamEvent } from \"@workglow/task-graph\";\nimport type { LlamaCppModelConfig } from \"./LlamaCpp_ModelSchema\";\nimport {\n getOrCreateTextContext,\n llamaCppChatSessionConstructorSpread,\n llamaCppSeedPromptSpread,\n loadSdk,\n streamFromSession,\n} from \"./LlamaCpp_Runtime\";\n\nexport const LlamaCpp_TextSummary: AiProviderRunFn<\n TextSummaryTaskInput,\n TextSummaryTaskOutput,\n LlamaCppModelConfig\n> = async (input, model, update_progress, signal) => {\n if (!model) throw new Error(\"Model config is required for TextSummaryTask.\");\n\n const { LlamaChatSession } = await loadSdk();\n\n update_progress(0, \"Loading model\");\n const context = await getOrCreateTextContext(model);\n\n update_progress(10, \"Summarizing text\");\n const sequence = context.getSequence();\n const session = new LlamaChatSession({\n contextSequence: sequence,\n ...llamaCppChatSessionConstructorSpread(model),\n systemPrompt: \"Summarize the following text concisely, preserving the key points.\",\n });\n try {\n const text = await session.prompt(input.text, {\n signal,\n ...llamaCppSeedPromptSpread(model.provider_config),\n });\n update_progress(100, \"Summarization complete\");\n return { text };\n } finally {\n session.dispose({ disposeSequence: false });\n sequence.dispose();\n }\n};\n\nexport const LlamaCpp_TextSummary_Stream: AiProviderStreamFn<\n TextSummaryTaskInput,\n TextSummaryTaskOutput,\n LlamaCppModelConfig\n> = async function* (input, model, signal): AsyncIterable<StreamEvent<TextSummaryTaskOutput>> {\n if (!model) throw new Error(\"Model config is required for TextSummaryTask.\");\n\n const { LlamaChatSession } = await loadSdk();\n\n const context = await getOrCreateTextContext(model);\n const sequence = context.getSequence();\n const session = new LlamaChatSession({\n contextSequence: sequence,\n ...llamaCppChatSessionConstructorSpread(model),\n systemPrompt: \"Summarize the following text concisely, preserving the key points.\",\n });\n try {\n yield* streamFromSession<TextSummaryTaskOutput>((onTextChunk) => {\n return session.prompt(input.text, {\n signal,\n onTextChunk,\n ...llamaCppSeedPromptSpread(model.provider_config),\n });\n }, signal);\n } finally {\n session.dispose({ disposeSequence: false });\n sequence.dispose();\n }\n};\n",
|
|
19
18
|
"/**\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 type { LlamaCppModelConfig } from \"./LlamaCpp_ModelSchema\";\nimport {\n getActualModelPath,\n llamaCppEmbeddingContexts,\n llamaCppModels,\n llamaCppTextContexts,\n} from \"./LlamaCpp_Runtime\";\n\nexport const LlamaCpp_Unload: AiProviderRunFn<\n UnloadModelTaskRunInput,\n UnloadModelTaskRunOutput,\n LlamaCppModelConfig\n> = async (input, model, update_progress, _signal) => {\n if (!model) throw new Error(\"Model config is required for UnloadModelTask.\");\n\n const modelPath = getActualModelPath(model);\n\n const ctx = llamaCppTextContexts.get(modelPath);\n if (ctx) {\n await ctx.dispose();\n llamaCppTextContexts.delete(modelPath);\n update_progress(33, \"Text context disposed\");\n }\n\n const embCtx = llamaCppEmbeddingContexts.get(modelPath);\n if (embCtx) {\n await embCtx.dispose();\n llamaCppEmbeddingContexts.delete(modelPath);\n update_progress(66, \"Embedding context disposed\");\n }\n\n const cachedModel = llamaCppModels.get(modelPath);\n if (cachedModel) {\n await cachedModel.dispose();\n llamaCppModels.delete(modelPath);\n update_progress(100, \"Model unloaded from memory\");\n } else {\n update_progress(100, \"Model was not loaded\");\n }\n\n return { model: input.model! };\n};\n",
|
|
20
|
-
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type { AiProviderReactiveRunFn, AiProviderRunFn, AiProviderStreamFn } from \"@workglow/ai\";\nimport type { LlamaCppModelConfig } from \"./LlamaCpp_ModelSchema\";\nimport { LlamaCpp_ModelSearch } from \"./LlamaCpp_ModelSearch\";\n\nexport {\n disposeLlamaCppResources,\n loadSdk,\n getLlamaCppSdk,\n getLlamaInstance,\n getOrCreateTextContext,\n getOrCreateEmbeddingContext,\n getOrLoadModel,\n getActualModelPath,\n getConfigKey,\n resolvedPaths,\n streamFromSession,\n} from \"./LlamaCpp_Runtime\";\n\nimport { LlamaCpp_CountTokens, LlamaCpp_CountTokens_Reactive } from \"./LlamaCpp_CountTokens\";\nimport { LlamaCpp_Download } from \"./LlamaCpp_Download\";\nimport { LlamaCpp_ModelInfo } from \"./LlamaCpp_ModelInfo\";\nimport {\n LlamaCpp_StructuredGeneration,\n LlamaCpp_StructuredGeneration_Stream,\n} from \"./LlamaCpp_StructuredGeneration\";\nimport { LlamaCpp_TextEmbedding } from \"./LlamaCpp_TextEmbedding\";\nimport { LlamaCpp_TextGeneration, LlamaCpp_TextGeneration_Stream } from \"./LlamaCpp_TextGeneration\";\nimport { LlamaCpp_TextRewriter, LlamaCpp_TextRewriter_Stream } from \"./LlamaCpp_TextRewriter\";\nimport { LlamaCpp_TextSummary, LlamaCpp_TextSummary_Stream } from \"./LlamaCpp_TextSummary\";\nimport {
|
|
21
|
-
"/**\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 { LOCAL_LLAMACPP } from \"./common/LlamaCpp_Constants\";\nimport type { LlamaCppModelConfig } from \"./common/LlamaCpp_ModelSchema\";\n\n/** Main-thread registration (inline or worker-backed); creates the default job queue. */\nexport class LlamaCppQueuedProvider extends QueuedAiProvider<LlamaCppModelConfig> {\n readonly name = LOCAL_LLAMACPP;\n readonly displayName = \"Local llama.cpp\";\n readonly isLocal = true;\n readonly supportsBrowser = false;\n\n readonly taskTypes = [\n \"DownloadModelTask\",\n \"UnloadModelTask\",\n \"ModelInfoTask\",\n \"CountTokensTask\",\n \"TextGenerationTask\",\n \"TextEmbeddingTask\",\n \"TextRewriterTask\",\n \"TextSummaryTask\",\n \"
|
|
19
|
+
"/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type { AiProviderReactiveRunFn, AiProviderRunFn, AiProviderStreamFn } from \"@workglow/ai\";\nimport type { LlamaCppModelConfig } from \"./LlamaCpp_ModelSchema\";\nimport { LlamaCpp_ModelSearch } from \"./LlamaCpp_ModelSearch\";\n\nexport {\n disposeLlamaCppResources,\n loadSdk,\n getLlamaCppSdk,\n getLlamaInstance,\n getOrCreateTextContext,\n getOrCreateEmbeddingContext,\n getOrLoadModel,\n getActualModelPath,\n getConfigKey,\n resolvedPaths,\n streamFromSession,\n} from \"./LlamaCpp_Runtime\";\n\nimport { LlamaCpp_CountTokens, LlamaCpp_CountTokens_Reactive } from \"./LlamaCpp_CountTokens\";\nimport { LlamaCpp_Download } from \"./LlamaCpp_Download\";\nimport { LlamaCpp_ModelInfo } from \"./LlamaCpp_ModelInfo\";\nimport {\n LlamaCpp_StructuredGeneration,\n LlamaCpp_StructuredGeneration_Stream,\n} from \"./LlamaCpp_StructuredGeneration\";\nimport { LlamaCpp_TextEmbedding } from \"./LlamaCpp_TextEmbedding\";\nimport { LlamaCpp_TextGeneration, LlamaCpp_TextGeneration_Stream } from \"./LlamaCpp_TextGeneration\";\nimport { LlamaCpp_TextRewriter, LlamaCpp_TextRewriter_Stream } from \"./LlamaCpp_TextRewriter\";\nimport { LlamaCpp_TextSummary, LlamaCpp_TextSummary_Stream } from \"./LlamaCpp_TextSummary\";\nimport { LlamaCpp_Unload } from \"./LlamaCpp_Unload\";\n\nexport const LLAMACPP_TASKS: Record<string, AiProviderRunFn<any, any, LlamaCppModelConfig>> = {\n DownloadModelTask: LlamaCpp_Download,\n UnloadModelTask: LlamaCpp_Unload,\n ModelInfoTask: LlamaCpp_ModelInfo,\n CountTokensTask: LlamaCpp_CountTokens,\n TextGenerationTask: LlamaCpp_TextGeneration,\n TextEmbeddingTask: LlamaCpp_TextEmbedding,\n TextRewriterTask: LlamaCpp_TextRewriter,\n TextSummaryTask: LlamaCpp_TextSummary,\n StructuredGenerationTask: LlamaCpp_StructuredGeneration,\n ModelSearchTask: LlamaCpp_ModelSearch,\n};\n\nexport const LLAMACPP_STREAM_TASKS: Record<\n string,\n AiProviderStreamFn<any, any, LlamaCppModelConfig>\n> = {\n TextGenerationTask: LlamaCpp_TextGeneration_Stream,\n TextRewriterTask: LlamaCpp_TextRewriter_Stream,\n TextSummaryTask: LlamaCpp_TextSummary_Stream,\n StructuredGenerationTask: LlamaCpp_StructuredGeneration_Stream,\n};\n\nexport const LLAMACPP_REACTIVE_TASKS: Record<\n string,\n AiProviderReactiveRunFn<any, any, LlamaCppModelConfig>\n> = {\n CountTokensTask: LlamaCpp_CountTokens_Reactive,\n};\n",
|
|
20
|
+
"/**\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 { LOCAL_LLAMACPP } from \"./common/LlamaCpp_Constants\";\nimport type { LlamaCppModelConfig } from \"./common/LlamaCpp_ModelSchema\";\n\n/** Main-thread registration (inline or worker-backed); creates the default job queue. */\nexport class LlamaCppQueuedProvider extends QueuedAiProvider<LlamaCppModelConfig> {\n readonly name = LOCAL_LLAMACPP;\n readonly displayName = \"Local llama.cpp\";\n readonly isLocal = true;\n readonly supportsBrowser = false;\n\n readonly taskTypes = [\n \"DownloadModelTask\",\n \"UnloadModelTask\",\n \"ModelInfoTask\",\n \"CountTokensTask\",\n \"TextGenerationTask\",\n \"TextEmbeddingTask\",\n \"TextRewriterTask\",\n \"TextSummaryTask\",\n \"ModelSearchTask\",\n ] as const;\n\n constructor(\n tasks?: Record<string, AiProviderRunFn<any, any, LlamaCppModelConfig>>,\n streamTasks?: Record<string, AiProviderStreamFn<any, any, LlamaCppModelConfig>>,\n reactiveTasks?: Record<string, AiProviderReactiveRunFn<any, any, LlamaCppModelConfig>>\n ) {\n super(tasks, streamTasks, reactiveTasks);\n }\n}\n",
|
|
22
21
|
"/**\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 {\n LLAMACPP_REACTIVE_TASKS,\n LLAMACPP_STREAM_TASKS,\n LLAMACPP_TASKS,\n} from \"./common/LlamaCpp_JobRunFns\";\nimport { LlamaCppQueuedProvider } from \"./LlamaCppQueuedProvider\";\n\nexport async function registerLlamaCppInline(options?: AiProviderRegisterOptions): Promise<void> {\n await new LlamaCppQueuedProvider(\n LLAMACPP_TASKS,\n LLAMACPP_STREAM_TASKS,\n LLAMACPP_REACTIVE_TASKS\n ).register(options ?? {});\n}\n",
|
|
23
22
|
"/**\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 {\n LLAMACPP_REACTIVE_TASKS,\n LLAMACPP_STREAM_TASKS,\n LLAMACPP_TASKS,\n} from \"./common/LlamaCpp_JobRunFns\";\nimport { LlamaCppProvider } from \"./LlamaCppProvider\";\n\nexport async function registerLlamaCppWorker(): Promise<void> {\n const workerServer = globalServiceRegistry.get(WORKER_SERVER);\n new LlamaCppProvider(\n LLAMACPP_TASKS,\n LLAMACPP_STREAM_TASKS,\n LLAMACPP_REACTIVE_TASKS\n ).registerOnWorkerServer(workerServer);\n workerServer.sendReady();\n getLogger().info(\"LlamaCpp worker job run functions registered\");\n}\n",
|
|
24
|
-
"/**\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 { LOCAL_LLAMACPP } from \"./common/LlamaCpp_Constants\";\nimport type { LlamaCppModelConfig } from \"./common/LlamaCpp_ModelSchema\";\n\n/**\n * AI provider for running GGUF models locally via node-llama-cpp.\n *\n * Supports model downloading, unloading, text generation, text embedding,\n * text rewriting, and text summarization using llama.cpp under the hood.\n *\n * This provider is server-side only (Node.js/Bun) — it requires native binaries\n * and cannot run in the browser.\n *\n * Models are cached in memory after the first load. Use UnloadModelTask to\n * release memory when a model is no longer needed.\n */\nexport class LlamaCppProvider extends AiProvider<LlamaCppModelConfig> {\n readonly name = LOCAL_LLAMACPP;\n readonly displayName = \"Local llama.cpp\";\n readonly isLocal = true;\n readonly supportsBrowser = false;\n\n readonly taskTypes = [\n \"DownloadModelTask\",\n \"UnloadModelTask\",\n \"ModelInfoTask\",\n \"CountTokensTask\",\n \"TextGenerationTask\",\n \"TextEmbeddingTask\",\n \"TextRewriterTask\",\n \"TextSummaryTask\",\n \"
|
|
23
|
+
"/**\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 { LOCAL_LLAMACPP } from \"./common/LlamaCpp_Constants\";\nimport type { LlamaCppModelConfig } from \"./common/LlamaCpp_ModelSchema\";\n\n/**\n * AI provider for running GGUF models locally via node-llama-cpp.\n *\n * Supports model downloading, unloading, text generation, text embedding,\n * text rewriting, and text summarization using llama.cpp under the hood.\n *\n * This provider is server-side only (Node.js/Bun) — it requires native binaries\n * and cannot run in the browser.\n *\n * Models are cached in memory after the first load. Use UnloadModelTask to\n * release memory when a model is no longer needed.\n */\nexport class LlamaCppProvider extends AiProvider<LlamaCppModelConfig> {\n readonly name = LOCAL_LLAMACPP;\n readonly displayName = \"Local llama.cpp\";\n readonly isLocal = true;\n readonly supportsBrowser = false;\n\n readonly taskTypes = [\n \"DownloadModelTask\",\n \"UnloadModelTask\",\n \"ModelInfoTask\",\n \"CountTokensTask\",\n \"TextGenerationTask\",\n \"TextEmbeddingTask\",\n \"TextRewriterTask\",\n \"TextSummaryTask\",\n \"ModelSearchTask\",\n ] as const;\n\n constructor(\n tasks?: Record<string, AiProviderRunFn<any, any, LlamaCppModelConfig>>,\n streamTasks?: Record<string, AiProviderStreamFn<any, any, LlamaCppModelConfig>>,\n reactiveTasks?: Record<string, AiProviderReactiveRunFn<any, any, LlamaCppModelConfig>>\n ) {\n super(tasks, streamTasks, reactiveTasks);\n }\n}\n"
|
|
25
24
|
],
|
|
26
|
-
"mappings": "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",
|
|
27
|
-
"debugId": "
|
|
25
|
+
"mappings": "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",
|
|
26
|
+
"debugId": "EB49E8246FF54A0364756E2164756E21",
|
|
28
27
|
"names": []
|
|
29
28
|
}
|
|
@@ -23,7 +23,7 @@ export declare class OllamaProvider extends AiProvider<OllamaModelConfig> {
|
|
|
23
23
|
readonly displayName = "Ollama";
|
|
24
24
|
readonly isLocal = true;
|
|
25
25
|
readonly supportsBrowser = true;
|
|
26
|
-
readonly taskTypes: readonly ["ModelInfoTask", "TextGenerationTask", "TextEmbeddingTask", "TextRewriterTask", "TextSummaryTask", "
|
|
26
|
+
readonly taskTypes: readonly ["ModelInfoTask", "TextGenerationTask", "TextEmbeddingTask", "TextRewriterTask", "TextSummaryTask", "ModelSearchTask"];
|
|
27
27
|
constructor(tasks?: Record<string, AiProviderRunFn<any, any, OllamaModelConfig>>, streamTasks?: Record<string, AiProviderStreamFn<any, any, OllamaModelConfig>>, reactiveTasks?: Record<string, AiProviderReactiveRunFn<any, any, OllamaModelConfig>>);
|
|
28
28
|
}
|
|
29
29
|
//# sourceMappingURL=OllamaProvider.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OllamaProvider.d.ts","sourceRoot":"","sources":["../../src/provider-ollama/OllamaProvider.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;;;;;;;;;;;;GAYG;AACH,qBAAa,cAAe,SAAQ,UAAU,CAAC,iBAAiB,CAAC;IAC/D,QAAQ,CAAC,IAAI,YAAU;IACvB,QAAQ,CAAC,WAAW,YAAY;IAChC,QAAQ,CAAC,OAAO,QAAQ;IACxB,QAAQ,CAAC,eAAe,QAAQ;IAEhC,QAAQ,CAAC,SAAS,
|
|
1
|
+
{"version":3,"file":"OllamaProvider.d.ts","sourceRoot":"","sources":["../../src/provider-ollama/OllamaProvider.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;;;;;;;;;;;;GAYG;AACH,qBAAa,cAAe,SAAQ,UAAU,CAAC,iBAAiB,CAAC;IAC/D,QAAQ,CAAC,IAAI,YAAU;IACvB,QAAQ,CAAC,WAAW,YAAY;IAChC,QAAQ,CAAC,OAAO,QAAQ;IACxB,QAAQ,CAAC,eAAe,QAAQ;IAEhC,QAAQ,CAAC,SAAS,kIAOP;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,15 +3,15 @@
|
|
|
3
3
|
* Copyright 2025 Steven Roussey <sroussey@gmail.com>
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
|
-
import {
|
|
6
|
+
import { AiProvider, type AiProviderReactiveRunFn, type AiProviderRunFn, type AiProviderStreamFn } from "@workglow/ai";
|
|
7
7
|
import type { OllamaModelConfig } from "./common/Ollama_ModelSchema";
|
|
8
|
-
/** Main-thread registration (inline or worker-backed)
|
|
9
|
-
export declare class OllamaQueuedProvider extends
|
|
8
|
+
/** Main-thread registration (inline or worker-backed). No queue — uses direct execution. */
|
|
9
|
+
export declare class OllamaQueuedProvider extends AiProvider<OllamaModelConfig> {
|
|
10
10
|
readonly name = "OLLAMA";
|
|
11
11
|
readonly displayName = "Ollama";
|
|
12
12
|
readonly isLocal = true;
|
|
13
13
|
readonly supportsBrowser = true;
|
|
14
|
-
readonly taskTypes: readonly ["ModelInfoTask", "TextGenerationTask", "TextEmbeddingTask", "TextRewriterTask", "TextSummaryTask", "
|
|
14
|
+
readonly taskTypes: readonly ["ModelInfoTask", "TextGenerationTask", "TextEmbeddingTask", "TextRewriterTask", "TextSummaryTask", "ModelSearchTask"];
|
|
15
15
|
constructor(tasks?: Record<string, AiProviderRunFn<any, any, OllamaModelConfig>>, streamTasks?: Record<string, AiProviderStreamFn<any, any, OllamaModelConfig>>, reactiveTasks?: Record<string, AiProviderReactiveRunFn<any, any, OllamaModelConfig>>);
|
|
16
16
|
}
|
|
17
17
|
//# sourceMappingURL=OllamaQueuedProvider.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OllamaQueuedProvider.d.ts","sourceRoot":"","sources":["../../src/provider-ollama/OllamaQueuedProvider.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,
|
|
1
|
+
{"version":3,"file":"OllamaQueuedProvider.d.ts","sourceRoot":"","sources":["../../src/provider-ollama/OllamaQueuedProvider.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,oBAAqB,SAAQ,UAAU,CAAC,iBAAiB,CAAC;IACrE,QAAQ,CAAC,IAAI,YAAU;IACvB,QAAQ,CAAC,WAAW,YAAY;IAChC,QAAQ,CAAC,OAAO,QAAQ;IACxB,QAAQ,CAAC,eAAe,QAAQ;IAEhC,QAAQ,CAAC,SAAS,kIAOP;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,7 @@
|
|
|
3
3
|
* Copyright 2025 Steven Roussey <sroussey@gmail.com>
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
|
-
import type { AiProviderRunFn, AiProviderStreamFn
|
|
6
|
+
import type { AiProviderRunFn, AiProviderStreamFn } from "@workglow/ai";
|
|
7
7
|
import type { OllamaModelConfig } from "./Ollama_ModelSchema";
|
|
8
8
|
export { getClient, getModelName, loadOllamaSDK } from "./Ollama_Client.browser";
|
|
9
9
|
export declare const Ollama_TextGeneration: AiProviderRunFn<{
|
|
@@ -25,11 +25,11 @@ export declare const Ollama_TextGeneration: AiProviderRunFn<{
|
|
|
25
25
|
title?: string | undefined;
|
|
26
26
|
};
|
|
27
27
|
presencePenalty?: number | undefined;
|
|
28
|
-
prompt: string
|
|
28
|
+
prompt: string;
|
|
29
29
|
temperature?: number | undefined;
|
|
30
30
|
topP?: number | undefined;
|
|
31
31
|
}, {
|
|
32
|
-
text: string
|
|
32
|
+
text: string;
|
|
33
33
|
}, {
|
|
34
34
|
description?: string | undefined;
|
|
35
35
|
metadata?: {
|
|
@@ -94,9 +94,9 @@ export declare const Ollama_TextRewriter: AiProviderRunFn<{
|
|
|
94
94
|
title?: string | undefined;
|
|
95
95
|
};
|
|
96
96
|
prompt: string;
|
|
97
|
-
text: string
|
|
97
|
+
text: string;
|
|
98
98
|
}, {
|
|
99
|
-
text: string
|
|
99
|
+
text: string;
|
|
100
100
|
}, {
|
|
101
101
|
description?: string | undefined;
|
|
102
102
|
metadata?: {
|
|
@@ -127,9 +127,9 @@ export declare const Ollama_TextSummary: AiProviderRunFn<{
|
|
|
127
127
|
tasks?: string[] | undefined;
|
|
128
128
|
title?: string | undefined;
|
|
129
129
|
};
|
|
130
|
-
text: string
|
|
130
|
+
text: string;
|
|
131
131
|
}, {
|
|
132
|
-
text: string
|
|
132
|
+
text: string;
|
|
133
133
|
}, {
|
|
134
134
|
description?: string | undefined;
|
|
135
135
|
metadata?: {
|
|
@@ -163,11 +163,11 @@ export declare const Ollama_TextGeneration_Stream: AiProviderStreamFn<{
|
|
|
163
163
|
title?: string | undefined;
|
|
164
164
|
};
|
|
165
165
|
presencePenalty?: number | undefined;
|
|
166
|
-
prompt: string
|
|
166
|
+
prompt: string;
|
|
167
167
|
temperature?: number | undefined;
|
|
168
168
|
topP?: number | undefined;
|
|
169
169
|
}, {
|
|
170
|
-
text: string
|
|
170
|
+
text: string;
|
|
171
171
|
}, {
|
|
172
172
|
description?: string | undefined;
|
|
173
173
|
metadata?: {
|
|
@@ -199,9 +199,9 @@ export declare const Ollama_TextRewriter_Stream: AiProviderStreamFn<{
|
|
|
199
199
|
title?: string | undefined;
|
|
200
200
|
};
|
|
201
201
|
prompt: string;
|
|
202
|
-
text: string
|
|
202
|
+
text: string;
|
|
203
203
|
}, {
|
|
204
|
-
text: string
|
|
204
|
+
text: string;
|
|
205
205
|
}, {
|
|
206
206
|
description?: string | undefined;
|
|
207
207
|
metadata?: {
|
|
@@ -232,67 +232,9 @@ export declare const Ollama_TextSummary_Stream: AiProviderStreamFn<{
|
|
|
232
232
|
tasks?: string[] | undefined;
|
|
233
233
|
title?: string | undefined;
|
|
234
234
|
};
|
|
235
|
-
text: string
|
|
236
|
-
}, {
|
|
237
|
-
text: string | string[];
|
|
238
|
-
}, {
|
|
239
|
-
description?: string | undefined;
|
|
240
|
-
metadata?: {
|
|
241
|
-
[x: string]: unknown;
|
|
242
|
-
} | undefined;
|
|
243
|
-
model_id?: string | undefined;
|
|
244
|
-
provider: "OLLAMA";
|
|
245
|
-
provider_config: {
|
|
246
|
-
base_url?: string | undefined;
|
|
247
|
-
model_name: string;
|
|
248
|
-
};
|
|
249
|
-
tasks?: string[] | undefined;
|
|
250
|
-
title?: string | undefined;
|
|
251
|
-
}>;
|
|
252
|
-
export declare const Ollama_ToolCalling: AiProviderRunFn<ToolCallingTaskInput, {
|
|
253
|
-
text: string | string[];
|
|
254
|
-
toolCalls: {
|
|
255
|
-
id: string;
|
|
256
|
-
input: {
|
|
257
|
-
[x: string]: unknown;
|
|
258
|
-
};
|
|
259
|
-
name: string;
|
|
260
|
-
}[] | {
|
|
261
|
-
id: string;
|
|
262
|
-
input: {
|
|
263
|
-
[x: string]: unknown;
|
|
264
|
-
};
|
|
265
|
-
name: string;
|
|
266
|
-
};
|
|
235
|
+
text: string;
|
|
267
236
|
}, {
|
|
268
|
-
|
|
269
|
-
metadata?: {
|
|
270
|
-
[x: string]: unknown;
|
|
271
|
-
} | undefined;
|
|
272
|
-
model_id?: string | undefined;
|
|
273
|
-
provider: "OLLAMA";
|
|
274
|
-
provider_config: {
|
|
275
|
-
base_url?: string | undefined;
|
|
276
|
-
model_name: string;
|
|
277
|
-
};
|
|
278
|
-
tasks?: string[] | undefined;
|
|
279
|
-
title?: string | undefined;
|
|
280
|
-
}>;
|
|
281
|
-
export declare const Ollama_ToolCalling_Stream: AiProviderStreamFn<ToolCallingTaskInput, {
|
|
282
|
-
text: string | string[];
|
|
283
|
-
toolCalls: {
|
|
284
|
-
id: string;
|
|
285
|
-
input: {
|
|
286
|
-
[x: string]: unknown;
|
|
287
|
-
};
|
|
288
|
-
name: string;
|
|
289
|
-
}[] | {
|
|
290
|
-
id: string;
|
|
291
|
-
input: {
|
|
292
|
-
[x: string]: unknown;
|
|
293
|
-
};
|
|
294
|
-
name: string;
|
|
295
|
-
};
|
|
237
|
+
text: string;
|
|
296
238
|
}, {
|
|
297
239
|
description?: string | undefined;
|
|
298
240
|
metadata?: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Ollama_JobRunFns.browser.d.ts","sourceRoot":"","sources":["../../../src/provider-ollama/common/Ollama_JobRunFns.browser.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,kBAAkB,EAAE,
|
|
1
|
+
{"version":3,"file":"Ollama_JobRunFns.browser.d.ts","sourceRoot":"","sources":["../../../src/provider-ollama/common/Ollama_JobRunFns.browser.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAGxE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAS9D,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAEjF,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAAwC,CAAC;AAC3E,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAAuC,CAAC;AACzE,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAAsC,CAAC;AACvE,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAAqC,CAAC;AAErE,eAAO,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAA8C,CAAC;AACxF,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAA4C,CAAC;AACpF,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAA2C,CAAC;AAElF,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAAmC,CAAC;AACjE,eAAO,MAAM,kBAAkB;;;gDAAqC,CAAC;AAErE,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,GAAG,EAAE,GAAG,EAAE,iBAAiB,CAAC,CAOrF,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,MAAM,CACtC,MAAM,EACN,kBAAkB,CAAC,GAAG,EAAE,GAAG,EAAE,iBAAiB,CAAC,CAKhD,CAAC"}
|