@workglow/ai-provider 0.0.90 → 0.0.92

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 (102) hide show
  1. package/README.md +45 -45
  2. package/dist/anthropic/AnthropicProvider.d.ts +39 -0
  3. package/dist/anthropic/AnthropicProvider.d.ts.map +1 -0
  4. package/dist/anthropic/Anthropic_Worker.d.ts +7 -0
  5. package/dist/anthropic/Anthropic_Worker.d.ts.map +1 -0
  6. package/dist/anthropic/common/Anthropic_Constants.d.ts +7 -0
  7. package/dist/anthropic/common/Anthropic_Constants.d.ts.map +1 -0
  8. package/dist/anthropic/common/Anthropic_JobRunFns.d.ts +16 -0
  9. package/dist/anthropic/common/Anthropic_JobRunFns.d.ts.map +1 -0
  10. package/dist/anthropic/common/Anthropic_ModelSchema.d.ts +167 -0
  11. package/dist/anthropic/common/Anthropic_ModelSchema.d.ts.map +1 -0
  12. package/dist/anthropic/index.d.ts +11 -0
  13. package/dist/anthropic/index.d.ts.map +1 -0
  14. package/dist/anthropic/index.js +257 -0
  15. package/dist/anthropic/index.js.map +14 -0
  16. package/dist/google-gemini/Gemini_Worker.d.ts +7 -0
  17. package/dist/google-gemini/Gemini_Worker.d.ts.map +1 -0
  18. package/dist/google-gemini/GoogleGeminiProvider.d.ts +36 -0
  19. package/dist/google-gemini/GoogleGeminiProvider.d.ts.map +1 -0
  20. package/dist/google-gemini/common/Gemini_Constants.d.ts +7 -0
  21. package/dist/google-gemini/common/Gemini_Constants.d.ts.map +1 -0
  22. package/dist/google-gemini/common/Gemini_JobRunFns.d.ts +17 -0
  23. package/dist/google-gemini/common/Gemini_JobRunFns.d.ts.map +1 -0
  24. package/dist/google-gemini/common/Gemini_ModelSchema.d.ts +164 -0
  25. package/dist/google-gemini/common/Gemini_ModelSchema.d.ts.map +1 -0
  26. package/dist/google-gemini/index.d.ts +11 -0
  27. package/dist/google-gemini/index.d.ts.map +1 -0
  28. package/dist/google-gemini/index.js +300 -0
  29. package/dist/google-gemini/index.js.map +14 -0
  30. package/dist/hf-transformers/HFT_Worker.d.ts +7 -0
  31. package/dist/hf-transformers/HFT_Worker.d.ts.map +1 -0
  32. package/dist/hf-transformers/HuggingFaceTransformersProvider.d.ts +41 -0
  33. package/dist/hf-transformers/HuggingFaceTransformersProvider.d.ts.map +1 -0
  34. package/dist/hf-transformers/common/HFT_JobRunFns.d.ts +1218 -1
  35. package/dist/hf-transformers/common/HFT_JobRunFns.d.ts.map +1 -1
  36. package/dist/hf-transformers/index.d.ts +2 -3
  37. package/dist/hf-transformers/index.d.ts.map +1 -1
  38. package/dist/hf-transformers/index.js +1130 -0
  39. package/dist/hf-transformers/index.js.map +15 -0
  40. package/dist/index.d.ts +23 -2
  41. package/dist/index.d.ts.map +1 -1
  42. package/dist/index.js +729 -865
  43. package/dist/index.js.map +20 -12
  44. package/dist/provider-ollama/OllamaProvider.d.ts +39 -0
  45. package/dist/provider-ollama/OllamaProvider.d.ts.map +1 -0
  46. package/dist/provider-ollama/Ollama_Worker.d.ts +7 -0
  47. package/dist/provider-ollama/Ollama_Worker.d.ts.map +1 -0
  48. package/dist/provider-ollama/common/Ollama_Constants.d.ts +8 -0
  49. package/dist/provider-ollama/common/Ollama_Constants.d.ts.map +1 -0
  50. package/dist/provider-ollama/common/Ollama_JobRunFns.browser.d.ts +17 -0
  51. package/dist/provider-ollama/common/Ollama_JobRunFns.browser.d.ts.map +1 -0
  52. package/dist/provider-ollama/common/Ollama_JobRunFns.d.ts +17 -0
  53. package/dist/provider-ollama/common/Ollama_JobRunFns.d.ts.map +1 -0
  54. package/dist/provider-ollama/common/Ollama_ModelSchema.d.ts +137 -0
  55. package/dist/provider-ollama/common/Ollama_ModelSchema.d.ts.map +1 -0
  56. package/dist/provider-ollama/index.browser.d.ts +11 -0
  57. package/dist/provider-ollama/index.browser.d.ts.map +1 -0
  58. package/dist/provider-ollama/index.browser.js +423 -0
  59. package/dist/provider-ollama/index.browser.js.map +15 -0
  60. package/dist/provider-ollama/index.d.ts +11 -0
  61. package/dist/provider-ollama/index.d.ts.map +1 -0
  62. package/dist/provider-ollama/index.js +274 -0
  63. package/dist/provider-ollama/index.js.map +14 -0
  64. package/dist/provider-openai/OpenAI_Worker.d.ts +7 -0
  65. package/dist/provider-openai/OpenAI_Worker.d.ts.map +1 -0
  66. package/dist/provider-openai/OpenAiProvider.d.ts +40 -0
  67. package/dist/provider-openai/OpenAiProvider.d.ts.map +1 -0
  68. package/dist/provider-openai/common/OpenAI_Constants.d.ts +7 -0
  69. package/dist/provider-openai/common/OpenAI_Constants.d.ts.map +1 -0
  70. package/dist/provider-openai/common/OpenAI_JobRunFns.d.ts +17 -0
  71. package/dist/provider-openai/common/OpenAI_JobRunFns.d.ts.map +1 -0
  72. package/dist/provider-openai/common/OpenAI_ModelSchema.d.ts +161 -0
  73. package/dist/provider-openai/common/OpenAI_ModelSchema.d.ts.map +1 -0
  74. package/dist/provider-openai/index.d.ts +11 -0
  75. package/dist/provider-openai/index.d.ts.map +1 -0
  76. package/dist/provider-openai/index.js +283 -0
  77. package/dist/provider-openai/index.js.map +14 -0
  78. package/dist/tf-mediapipe/TFMP_Worker.d.ts +7 -0
  79. package/dist/tf-mediapipe/TFMP_Worker.d.ts.map +1 -0
  80. package/dist/tf-mediapipe/TensorFlowMediaPipeProvider.d.ts +39 -0
  81. package/dist/tf-mediapipe/TensorFlowMediaPipeProvider.d.ts.map +1 -0
  82. package/dist/tf-mediapipe/common/TFMP_JobRunFns.d.ts +842 -0
  83. package/dist/tf-mediapipe/common/TFMP_JobRunFns.d.ts.map +1 -1
  84. package/dist/tf-mediapipe/index.d.ts +2 -3
  85. package/dist/tf-mediapipe/index.d.ts.map +1 -1
  86. package/dist/tf-mediapipe/index.js +663 -0
  87. package/dist/tf-mediapipe/index.js.map +14 -0
  88. package/package.json +86 -19
  89. package/dist/hf-transformers/registry/HFT_Client_RegisterJobFns.d.ts +0 -17
  90. package/dist/hf-transformers/registry/HFT_Client_RegisterJobFns.d.ts.map +0 -1
  91. package/dist/hf-transformers/registry/HFT_Inline_RegisterJobFns.d.ts +0 -16
  92. package/dist/hf-transformers/registry/HFT_Inline_RegisterJobFns.d.ts.map +0 -1
  93. package/dist/hf-transformers/registry/HFT_Worker_RegisterJobFns.d.ts +0 -8
  94. package/dist/hf-transformers/registry/HFT_Worker_RegisterJobFns.d.ts.map +0 -1
  95. package/dist/openai/provider/OpenAI_TaskRun.d.ts +0 -2
  96. package/dist/openai/provider/OpenAI_TaskRun.d.ts.map +0 -1
  97. package/dist/tf-mediapipe/registry/TFMP_Client_RegisterJobFns.d.ts +0 -17
  98. package/dist/tf-mediapipe/registry/TFMP_Client_RegisterJobFns.d.ts.map +0 -1
  99. package/dist/tf-mediapipe/registry/TFMP_Inline_RegisterJobFns.d.ts +0 -16
  100. package/dist/tf-mediapipe/registry/TFMP_Inline_RegisterJobFns.d.ts.map +0 -1
  101. package/dist/tf-mediapipe/registry/TFMP_Worker_RegisterJobFns.d.ts +0 -8
  102. package/dist/tf-mediapipe/registry/TFMP_Worker_RegisterJobFns.d.ts.map +0 -1
@@ -0,0 +1,423 @@
1
+ var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x, {
2
+ get: (a, b) => (typeof require !== "undefined" ? require : a)[b]
3
+ }) : x)(function(x) {
4
+ if (typeof require !== "undefined")
5
+ return require.apply(this, arguments);
6
+ throw Error('Dynamic require of "' + x + '" is not supported');
7
+ });
8
+
9
+ // src/provider-ollama/common/Ollama_Constants.ts
10
+ var OLLAMA = "OLLAMA";
11
+ var OLLAMA_DEFAULT_BASE_URL = "http://localhost:11434";
12
+ // src/provider-ollama/common/Ollama_JobRunFns.browser.ts
13
+ var _sdk;
14
+ async function loadOllamaSDK() {
15
+ if (!_sdk) {
16
+ try {
17
+ _sdk = await import("ollama/browser");
18
+ } catch {
19
+ throw new Error("ollama is required for Ollama tasks. Install it with: bun add ollama");
20
+ }
21
+ }
22
+ return _sdk.Ollama;
23
+ }
24
+ async function getClient(model) {
25
+ const Ollama = await loadOllamaSDK();
26
+ const host = model?.provider_config?.base_url || OLLAMA_DEFAULT_BASE_URL;
27
+ return new Ollama({ host });
28
+ }
29
+ function getModelName(model) {
30
+ const name = model?.provider_config?.model_name;
31
+ if (!name) {
32
+ throw new Error("Missing model name in provider_config.model_name.");
33
+ }
34
+ return name;
35
+ }
36
+ var Ollama_TextGeneration = async (input, model, update_progress, signal) => {
37
+ update_progress(0, "Starting Ollama text generation");
38
+ const client = await getClient(model);
39
+ const modelName = getModelName(model);
40
+ const response = await client.chat({
41
+ model: modelName,
42
+ messages: [{ role: "user", content: input.prompt }],
43
+ options: {
44
+ temperature: input.temperature,
45
+ top_p: input.topP,
46
+ num_predict: input.maxTokens,
47
+ frequency_penalty: input.frequencyPenalty,
48
+ presence_penalty: input.presencePenalty
49
+ }
50
+ });
51
+ update_progress(100, "Completed Ollama text generation");
52
+ return { text: response.message.content };
53
+ };
54
+ var Ollama_TextEmbedding = async (input, model, update_progress, signal) => {
55
+ update_progress(0, "Starting Ollama text embedding");
56
+ const client = await getClient(model);
57
+ const modelName = getModelName(model);
58
+ const texts = Array.isArray(input.text) ? input.text : [input.text];
59
+ const response = await client.embed({
60
+ model: modelName,
61
+ input: texts
62
+ });
63
+ update_progress(100, "Completed Ollama text embedding");
64
+ if (Array.isArray(input.text)) {
65
+ return {
66
+ vector: response.embeddings.map((e) => new Float32Array(e))
67
+ };
68
+ }
69
+ return { vector: new Float32Array(response.embeddings[0]) };
70
+ };
71
+ var Ollama_TextRewriter = async (input, model, update_progress, signal) => {
72
+ update_progress(0, "Starting Ollama text rewriting");
73
+ const client = await getClient(model);
74
+ const modelName = getModelName(model);
75
+ const response = await client.chat({
76
+ model: modelName,
77
+ messages: [
78
+ { role: "system", content: input.prompt },
79
+ { role: "user", content: input.text }
80
+ ]
81
+ });
82
+ update_progress(100, "Completed Ollama text rewriting");
83
+ return { text: response.message.content };
84
+ };
85
+ var Ollama_TextSummary = async (input, model, update_progress, signal) => {
86
+ update_progress(0, "Starting Ollama text summarization");
87
+ const client = await getClient(model);
88
+ const modelName = getModelName(model);
89
+ const response = await client.chat({
90
+ model: modelName,
91
+ messages: [
92
+ { role: "system", content: "Summarize the following text concisely." },
93
+ { role: "user", content: input.text }
94
+ ]
95
+ });
96
+ update_progress(100, "Completed Ollama text summarization");
97
+ return { text: response.message.content };
98
+ };
99
+ var Ollama_TextGeneration_Stream = async function* (input, model, signal) {
100
+ const client = await getClient(model);
101
+ const modelName = getModelName(model);
102
+ const stream = await client.chat({
103
+ model: modelName,
104
+ messages: [{ role: "user", content: input.prompt }],
105
+ options: {
106
+ temperature: input.temperature,
107
+ top_p: input.topP,
108
+ num_predict: input.maxTokens,
109
+ frequency_penalty: input.frequencyPenalty,
110
+ presence_penalty: input.presencePenalty
111
+ },
112
+ stream: true
113
+ });
114
+ for await (const chunk of stream) {
115
+ const delta = chunk.message.content;
116
+ if (delta) {
117
+ yield { type: "text-delta", textDelta: delta };
118
+ }
119
+ }
120
+ yield { type: "finish", data: {} };
121
+ };
122
+ var Ollama_TextRewriter_Stream = async function* (input, model, signal) {
123
+ const client = await getClient(model);
124
+ const modelName = getModelName(model);
125
+ const stream = await client.chat({
126
+ model: modelName,
127
+ messages: [
128
+ { role: "system", content: input.prompt },
129
+ { role: "user", content: input.text }
130
+ ],
131
+ stream: true
132
+ });
133
+ for await (const chunk of stream) {
134
+ const delta = chunk.message.content;
135
+ if (delta) {
136
+ yield { type: "text-delta", textDelta: delta };
137
+ }
138
+ }
139
+ yield { type: "finish", data: {} };
140
+ };
141
+ var Ollama_TextSummary_Stream = async function* (input, model, signal) {
142
+ const client = await getClient(model);
143
+ const modelName = getModelName(model);
144
+ const stream = await client.chat({
145
+ model: modelName,
146
+ messages: [
147
+ { role: "system", content: "Summarize the following text concisely." },
148
+ { role: "user", content: input.text }
149
+ ],
150
+ stream: true
151
+ });
152
+ for await (const chunk of stream) {
153
+ const delta = chunk.message.content;
154
+ if (delta) {
155
+ yield { type: "text-delta", textDelta: delta };
156
+ }
157
+ }
158
+ yield { type: "finish", data: {} };
159
+ };
160
+ var OLLAMA_TASKS = {
161
+ TextGenerationTask: Ollama_TextGeneration,
162
+ TextEmbeddingTask: Ollama_TextEmbedding,
163
+ TextRewriterTask: Ollama_TextRewriter,
164
+ TextSummaryTask: Ollama_TextSummary
165
+ };
166
+ var OLLAMA_STREAM_TASKS = {
167
+ TextGenerationTask: Ollama_TextGeneration_Stream,
168
+ TextRewriterTask: Ollama_TextRewriter_Stream,
169
+ TextSummaryTask: Ollama_TextSummary_Stream
170
+ };
171
+ // src/provider-ollama/common/Ollama_ModelSchema.ts
172
+ import { ModelConfigSchema, ModelRecordSchema } from "@workglow/ai";
173
+ var OllamaModelSchema = {
174
+ type: "object",
175
+ properties: {
176
+ provider: {
177
+ const: OLLAMA,
178
+ description: "Discriminator: Ollama local LLM server."
179
+ },
180
+ provider_config: {
181
+ type: "object",
182
+ description: "Ollama-specific configuration.",
183
+ properties: {
184
+ model_name: {
185
+ type: "string",
186
+ description: "The Ollama model identifier (e.g., 'llama3.2', 'nomic-embed-text')."
187
+ },
188
+ base_url: {
189
+ type: "string",
190
+ description: "Base URL for the Ollama server.",
191
+ default: OLLAMA_DEFAULT_BASE_URL
192
+ }
193
+ },
194
+ required: ["model_name"],
195
+ additionalProperties: false
196
+ }
197
+ },
198
+ required: ["provider", "provider_config"],
199
+ additionalProperties: true
200
+ };
201
+ var OllamaModelRecordSchema = {
202
+ type: "object",
203
+ properties: {
204
+ ...ModelRecordSchema.properties,
205
+ ...OllamaModelSchema.properties
206
+ },
207
+ required: [...ModelRecordSchema.required, ...OllamaModelSchema.required],
208
+ additionalProperties: false
209
+ };
210
+ var OllamaModelConfigSchema = {
211
+ type: "object",
212
+ properties: {
213
+ ...ModelConfigSchema.properties,
214
+ ...OllamaModelSchema.properties
215
+ },
216
+ required: [...ModelConfigSchema.required, ...OllamaModelSchema.required],
217
+ additionalProperties: false
218
+ };
219
+ // src/provider-ollama/Ollama_Worker.ts
220
+ import { globalServiceRegistry, parentPort, WORKER_SERVER } from "@workglow/util";
221
+
222
+ // src/provider-ollama/common/Ollama_JobRunFns.ts
223
+ var _sdk2;
224
+ async function loadOllamaSDK2() {
225
+ if (!_sdk2) {
226
+ try {
227
+ _sdk2 = await import("ollama");
228
+ } catch {
229
+ throw new Error("ollama is required for Ollama tasks. Install it with: bun add ollama");
230
+ }
231
+ }
232
+ return _sdk2.Ollama;
233
+ }
234
+ async function getClient2(model) {
235
+ const Ollama = await loadOllamaSDK2();
236
+ const host = model?.provider_config?.base_url || OLLAMA_DEFAULT_BASE_URL;
237
+ return new Ollama({ host });
238
+ }
239
+ function getModelName2(model) {
240
+ const name = model?.provider_config?.model_name;
241
+ if (!name) {
242
+ throw new Error("Missing model name in provider_config.model_name.");
243
+ }
244
+ return name;
245
+ }
246
+ var Ollama_TextGeneration2 = async (input, model, update_progress, signal) => {
247
+ update_progress(0, "Starting Ollama text generation");
248
+ const client = await getClient2(model);
249
+ const modelName = getModelName2(model);
250
+ const response = await client.chat({
251
+ model: modelName,
252
+ messages: [{ role: "user", content: input.prompt }],
253
+ options: {
254
+ temperature: input.temperature,
255
+ top_p: input.topP,
256
+ num_predict: input.maxTokens,
257
+ frequency_penalty: input.frequencyPenalty,
258
+ presence_penalty: input.presencePenalty
259
+ }
260
+ });
261
+ update_progress(100, "Completed Ollama text generation");
262
+ return { text: response.message.content };
263
+ };
264
+ var Ollama_TextEmbedding2 = async (input, model, update_progress, signal) => {
265
+ update_progress(0, "Starting Ollama text embedding");
266
+ const client = await getClient2(model);
267
+ const modelName = getModelName2(model);
268
+ const texts = Array.isArray(input.text) ? input.text : [input.text];
269
+ const response = await client.embed({
270
+ model: modelName,
271
+ input: texts
272
+ });
273
+ update_progress(100, "Completed Ollama text embedding");
274
+ if (Array.isArray(input.text)) {
275
+ return {
276
+ vector: response.embeddings.map((e) => new Float32Array(e))
277
+ };
278
+ }
279
+ return { vector: new Float32Array(response.embeddings[0]) };
280
+ };
281
+ var Ollama_TextRewriter2 = async (input, model, update_progress, signal) => {
282
+ update_progress(0, "Starting Ollama text rewriting");
283
+ const client = await getClient2(model);
284
+ const modelName = getModelName2(model);
285
+ const response = await client.chat({
286
+ model: modelName,
287
+ messages: [
288
+ { role: "system", content: input.prompt },
289
+ { role: "user", content: input.text }
290
+ ]
291
+ });
292
+ update_progress(100, "Completed Ollama text rewriting");
293
+ return { text: response.message.content };
294
+ };
295
+ var Ollama_TextSummary2 = async (input, model, update_progress, signal) => {
296
+ update_progress(0, "Starting Ollama text summarization");
297
+ const client = await getClient2(model);
298
+ const modelName = getModelName2(model);
299
+ const response = await client.chat({
300
+ model: modelName,
301
+ messages: [
302
+ { role: "system", content: "Summarize the following text concisely." },
303
+ { role: "user", content: input.text }
304
+ ]
305
+ });
306
+ update_progress(100, "Completed Ollama text summarization");
307
+ return { text: response.message.content };
308
+ };
309
+ var Ollama_TextGeneration_Stream2 = async function* (input, model, signal) {
310
+ const client = await getClient2(model);
311
+ const modelName = getModelName2(model);
312
+ const stream = await client.chat({
313
+ model: modelName,
314
+ messages: [{ role: "user", content: input.prompt }],
315
+ options: {
316
+ temperature: input.temperature,
317
+ top_p: input.topP,
318
+ num_predict: input.maxTokens,
319
+ frequency_penalty: input.frequencyPenalty,
320
+ presence_penalty: input.presencePenalty
321
+ },
322
+ stream: true
323
+ });
324
+ for await (const chunk of stream) {
325
+ const delta = chunk.message.content;
326
+ if (delta) {
327
+ yield { type: "text-delta", textDelta: delta };
328
+ }
329
+ }
330
+ yield { type: "finish", data: {} };
331
+ };
332
+ var Ollama_TextRewriter_Stream2 = async function* (input, model, signal) {
333
+ const client = await getClient2(model);
334
+ const modelName = getModelName2(model);
335
+ const stream = await client.chat({
336
+ model: modelName,
337
+ messages: [
338
+ { role: "system", content: input.prompt },
339
+ { role: "user", content: input.text }
340
+ ],
341
+ stream: true
342
+ });
343
+ for await (const chunk of stream) {
344
+ const delta = chunk.message.content;
345
+ if (delta) {
346
+ yield { type: "text-delta", textDelta: delta };
347
+ }
348
+ }
349
+ yield { type: "finish", data: {} };
350
+ };
351
+ var Ollama_TextSummary_Stream2 = async function* (input, model, signal) {
352
+ const client = await getClient2(model);
353
+ const modelName = getModelName2(model);
354
+ const stream = await client.chat({
355
+ model: modelName,
356
+ messages: [
357
+ { role: "system", content: "Summarize the following text concisely." },
358
+ { role: "user", content: input.text }
359
+ ],
360
+ stream: true
361
+ });
362
+ for await (const chunk of stream) {
363
+ const delta = chunk.message.content;
364
+ if (delta) {
365
+ yield { type: "text-delta", textDelta: delta };
366
+ }
367
+ }
368
+ yield { type: "finish", data: {} };
369
+ };
370
+ var OLLAMA_TASKS2 = {
371
+ TextGenerationTask: Ollama_TextGeneration2,
372
+ TextEmbeddingTask: Ollama_TextEmbedding2,
373
+ TextRewriterTask: Ollama_TextRewriter2,
374
+ TextSummaryTask: Ollama_TextSummary2
375
+ };
376
+ var OLLAMA_STREAM_TASKS2 = {
377
+ TextGenerationTask: Ollama_TextGeneration_Stream2,
378
+ TextRewriterTask: Ollama_TextRewriter_Stream2,
379
+ TextSummaryTask: Ollama_TextSummary_Stream2
380
+ };
381
+
382
+ // src/provider-ollama/OllamaProvider.ts
383
+ import { AiProvider } from "@workglow/ai";
384
+ class OllamaProvider extends AiProvider {
385
+ name = OLLAMA;
386
+ taskTypes = [
387
+ "TextGenerationTask",
388
+ "TextEmbeddingTask",
389
+ "TextRewriterTask",
390
+ "TextSummaryTask"
391
+ ];
392
+ constructor(tasks, streamTasks) {
393
+ super(tasks, streamTasks);
394
+ }
395
+ }
396
+
397
+ // src/provider-ollama/Ollama_Worker.ts
398
+ function OLLAMA_WORKER_JOBRUN_REGISTER() {
399
+ const workerServer = globalServiceRegistry.get(WORKER_SERVER);
400
+ new OllamaProvider(OLLAMA_TASKS2, OLLAMA_STREAM_TASKS2).registerOnWorkerServer(workerServer);
401
+ parentPort.postMessage({ type: "ready" });
402
+ console.log("OLLAMA_WORKER_JOBRUN registered");
403
+ }
404
+ export {
405
+ Ollama_TextSummary_Stream,
406
+ Ollama_TextSummary,
407
+ Ollama_TextRewriter_Stream,
408
+ Ollama_TextRewriter,
409
+ Ollama_TextGeneration_Stream,
410
+ Ollama_TextGeneration,
411
+ Ollama_TextEmbedding,
412
+ OllamaProvider,
413
+ OllamaModelSchema,
414
+ OllamaModelRecordSchema,
415
+ OllamaModelConfigSchema,
416
+ OLLAMA_WORKER_JOBRUN_REGISTER,
417
+ OLLAMA_TASKS,
418
+ OLLAMA_STREAM_TASKS,
419
+ OLLAMA_DEFAULT_BASE_URL,
420
+ OLLAMA
421
+ };
422
+
423
+ //# debugId=A364D52D046DE85E64756E2164756E21
@@ -0,0 +1,15 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/provider-ollama/common/Ollama_Constants.ts", "../src/provider-ollama/common/Ollama_JobRunFns.browser.ts", "../src/provider-ollama/common/Ollama_ModelSchema.ts", "../src/provider-ollama/Ollama_Worker.ts", "../src/provider-ollama/common/Ollama_JobRunFns.ts", "../src/provider-ollama/OllamaProvider.ts"],
4
+ "sourcesContent": [
5
+ "/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nexport const OLLAMA = \"OLLAMA\";\nexport const OLLAMA_DEFAULT_BASE_URL = \"http://localhost:11434\";\n",
6
+ "/**\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 TextEmbeddingTaskInput,\n TextEmbeddingTaskOutput,\n TextGenerationTaskInput,\n TextGenerationTaskOutput,\n TextRewriterTaskInput,\n TextRewriterTaskOutput,\n TextSummaryTaskInput,\n TextSummaryTaskOutput,\n} from \"@workglow/ai\";\nimport type { StreamEvent } from \"@workglow/task-graph\";\nimport { OLLAMA_DEFAULT_BASE_URL } from \"./Ollama_Constants\";\nimport type { OllamaModelConfig } from \"./Ollama_ModelSchema\";\n\nlet _sdk: typeof import(\"ollama/browser\") | undefined;\nasync function loadOllamaSDK() {\n if (!_sdk) {\n try {\n _sdk = await import(\"ollama/browser\");\n } catch {\n throw new Error(\"ollama is required for Ollama tasks. Install it with: bun add ollama\");\n }\n }\n return _sdk.Ollama;\n}\n\nasync function getClient(model: OllamaModelConfig | undefined) {\n const Ollama = await loadOllamaSDK();\n const host = model?.provider_config?.base_url || OLLAMA_DEFAULT_BASE_URL;\n return new Ollama({ host });\n}\n\nfunction getModelName(model: OllamaModelConfig | undefined): string {\n const name = model?.provider_config?.model_name;\n if (!name) {\n throw new Error(\"Missing model name in provider_config.model_name.\");\n }\n return name;\n}\n\nexport const Ollama_TextGeneration: AiProviderRunFn<\n TextGenerationTaskInput,\n TextGenerationTaskOutput,\n OllamaModelConfig\n> = async (input, model, update_progress, signal) => {\n update_progress(0, \"Starting Ollama text generation\");\n const client = await getClient(model);\n const modelName = getModelName(model);\n\n const response = await client.chat({\n model: modelName,\n messages: [{ role: \"user\", content: input.prompt }],\n options: {\n temperature: input.temperature,\n top_p: input.topP,\n num_predict: input.maxTokens,\n frequency_penalty: input.frequencyPenalty,\n presence_penalty: input.presencePenalty,\n },\n });\n\n update_progress(100, \"Completed Ollama text generation\");\n return { text: response.message.content };\n};\n\nexport const Ollama_TextEmbedding: AiProviderRunFn<\n TextEmbeddingTaskInput,\n TextEmbeddingTaskOutput,\n OllamaModelConfig\n> = async (input, model, update_progress, signal) => {\n update_progress(0, \"Starting Ollama text embedding\");\n const client = await getClient(model);\n const modelName = getModelName(model);\n\n const texts = Array.isArray(input.text) ? input.text : [input.text];\n\n const response = await client.embed({\n model: modelName,\n input: texts,\n });\n\n update_progress(100, \"Completed Ollama text embedding\");\n\n if (Array.isArray(input.text)) {\n return {\n vector: response.embeddings.map((e) => new Float32Array(e)),\n };\n }\n return { vector: new Float32Array(response.embeddings[0]) };\n};\n\nexport const Ollama_TextRewriter: AiProviderRunFn<\n TextRewriterTaskInput,\n TextRewriterTaskOutput,\n OllamaModelConfig\n> = async (input, model, update_progress, signal) => {\n update_progress(0, \"Starting Ollama text rewriting\");\n const client = await getClient(model);\n const modelName = getModelName(model);\n\n const response = await client.chat({\n model: modelName,\n messages: [\n { role: \"system\", content: input.prompt },\n { role: \"user\", content: input.text },\n ],\n });\n\n update_progress(100, \"Completed Ollama text rewriting\");\n return { text: response.message.content };\n};\n\nexport const Ollama_TextSummary: AiProviderRunFn<\n TextSummaryTaskInput,\n TextSummaryTaskOutput,\n OllamaModelConfig\n> = async (input, model, update_progress, signal) => {\n update_progress(0, \"Starting Ollama text summarization\");\n const client = await getClient(model);\n const modelName = getModelName(model);\n\n const response = await client.chat({\n model: modelName,\n messages: [\n { role: \"system\", content: \"Summarize the following text concisely.\" },\n { role: \"user\", content: input.text },\n ],\n });\n\n update_progress(100, \"Completed Ollama text summarization\");\n return { text: response.message.content };\n};\n\n// ========================================================================\n// Streaming implementations (append mode)\n// ========================================================================\n\nexport const Ollama_TextGeneration_Stream: AiProviderStreamFn<\n TextGenerationTaskInput,\n TextGenerationTaskOutput,\n OllamaModelConfig\n> = async function* (input, model, signal): AsyncIterable<StreamEvent<TextGenerationTaskOutput>> {\n const client = await getClient(model);\n const modelName = getModelName(model);\n\n const stream = await client.chat({\n model: modelName,\n messages: [{ role: \"user\", content: input.prompt }],\n options: {\n temperature: input.temperature,\n top_p: input.topP,\n num_predict: input.maxTokens,\n frequency_penalty: input.frequencyPenalty,\n presence_penalty: input.presencePenalty,\n },\n stream: true,\n });\n\n for await (const chunk of stream) {\n const delta = chunk.message.content;\n if (delta) {\n yield { type: \"text-delta\", textDelta: delta };\n }\n }\n yield { type: \"finish\", data: {} as TextGenerationTaskOutput };\n};\n\nexport const Ollama_TextRewriter_Stream: AiProviderStreamFn<\n TextRewriterTaskInput,\n TextRewriterTaskOutput,\n OllamaModelConfig\n> = async function* (input, model, signal): AsyncIterable<StreamEvent<TextRewriterTaskOutput>> {\n const client = await getClient(model);\n const modelName = getModelName(model);\n\n const stream = await client.chat({\n model: modelName,\n messages: [\n { role: \"system\", content: input.prompt },\n { role: \"user\", content: input.text },\n ],\n stream: true,\n });\n\n for await (const chunk of stream) {\n const delta = chunk.message.content;\n if (delta) {\n yield { type: \"text-delta\", textDelta: delta };\n }\n }\n yield { type: \"finish\", data: {} as TextRewriterTaskOutput };\n};\n\nexport const Ollama_TextSummary_Stream: AiProviderStreamFn<\n TextSummaryTaskInput,\n TextSummaryTaskOutput,\n OllamaModelConfig\n> = async function* (input, model, signal): AsyncIterable<StreamEvent<TextSummaryTaskOutput>> {\n const client = await getClient(model);\n const modelName = getModelName(model);\n\n const stream = await client.chat({\n model: modelName,\n messages: [\n { role: \"system\", content: \"Summarize the following text concisely.\" },\n { role: \"user\", content: input.text },\n ],\n stream: true,\n });\n\n for await (const chunk of stream) {\n const delta = chunk.message.content;\n if (delta) {\n yield { type: \"text-delta\", textDelta: delta };\n }\n }\n yield { type: \"finish\", data: {} as TextSummaryTaskOutput };\n};\n\n// ========================================================================\n// Task registries\n// ========================================================================\n\nexport const OLLAMA_TASKS: Record<string, AiProviderRunFn<any, any, OllamaModelConfig>> = {\n TextGenerationTask: Ollama_TextGeneration,\n TextEmbeddingTask: Ollama_TextEmbedding,\n TextRewriterTask: Ollama_TextRewriter,\n TextSummaryTask: Ollama_TextSummary,\n};\n\nexport const OLLAMA_STREAM_TASKS: Record<\n string,\n AiProviderStreamFn<any, any, OllamaModelConfig>\n> = {\n TextGenerationTask: Ollama_TextGeneration_Stream,\n TextRewriterTask: Ollama_TextRewriter_Stream,\n TextSummaryTask: Ollama_TextSummary_Stream,\n};\n",
7
+ "/**\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\";\nimport { DataPortSchemaObject, FromSchema } from \"@workglow/util\";\nimport { OLLAMA, OLLAMA_DEFAULT_BASE_URL } from \"./Ollama_Constants\";\n\nexport const OllamaModelSchema = {\n type: \"object\",\n properties: {\n provider: {\n const: OLLAMA,\n description: \"Discriminator: Ollama local LLM server.\",\n },\n provider_config: {\n type: \"object\",\n description: \"Ollama-specific configuration.\",\n properties: {\n model_name: {\n type: \"string\",\n description: \"The Ollama model identifier (e.g., 'llama3.2', 'nomic-embed-text').\",\n },\n base_url: {\n type: \"string\",\n description: \"Base URL for the Ollama server.\",\n default: OLLAMA_DEFAULT_BASE_URL,\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 OllamaModelRecordSchema = {\n type: \"object\",\n properties: {\n ...ModelRecordSchema.properties,\n ...OllamaModelSchema.properties,\n },\n required: [...ModelRecordSchema.required, ...OllamaModelSchema.required],\n additionalProperties: false,\n} as const satisfies DataPortSchemaObject;\n\nexport type OllamaModelRecord = FromSchema<typeof OllamaModelRecordSchema>;\n\nexport const OllamaModelConfigSchema = {\n type: \"object\",\n properties: {\n ...ModelConfigSchema.properties,\n ...OllamaModelSchema.properties,\n },\n required: [...ModelConfigSchema.required, ...OllamaModelSchema.required],\n additionalProperties: false,\n} as const satisfies DataPortSchemaObject;\n\nexport type OllamaModelConfig = FromSchema<typeof OllamaModelConfigSchema>;\n",
8
+ "/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { globalServiceRegistry, parentPort, WORKER_SERVER } from \"@workglow/util\";\nimport { OLLAMA_STREAM_TASKS, OLLAMA_TASKS } from \"./common/Ollama_JobRunFns\";\nimport { OllamaProvider } from \"./OllamaProvider\";\n\nexport function OLLAMA_WORKER_JOBRUN_REGISTER() {\n const workerServer = globalServiceRegistry.get(WORKER_SERVER);\n new OllamaProvider(OLLAMA_TASKS, OLLAMA_STREAM_TASKS).registerOnWorkerServer(workerServer);\n parentPort.postMessage({ type: \"ready\" });\n console.log(\"OLLAMA_WORKER_JOBRUN registered\");\n}\n",
9
+ "/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type {\n AiProviderRunFn,\n AiProviderStreamFn,\n TextEmbeddingTaskInput,\n TextEmbeddingTaskOutput,\n TextGenerationTaskInput,\n TextGenerationTaskOutput,\n TextRewriterTaskInput,\n TextRewriterTaskOutput,\n TextSummaryTaskInput,\n TextSummaryTaskOutput,\n} from \"@workglow/ai\";\nimport type { StreamEvent } from \"@workglow/task-graph\";\nimport { OLLAMA_DEFAULT_BASE_URL } from \"./Ollama_Constants\";\nimport type { OllamaModelConfig } from \"./Ollama_ModelSchema\";\n\nlet _sdk: typeof import(\"ollama\") | undefined;\nasync function loadOllamaSDK() {\n if (!_sdk) {\n try {\n _sdk = await import(\"ollama\");\n } catch {\n throw new Error(\"ollama is required for Ollama tasks. Install it with: bun add ollama\");\n }\n }\n return _sdk.Ollama;\n}\n\nasync function getClient(model: OllamaModelConfig | undefined) {\n const Ollama = await loadOllamaSDK();\n const host = model?.provider_config?.base_url || OLLAMA_DEFAULT_BASE_URL;\n return new Ollama({ host });\n}\n\nfunction getModelName(model: OllamaModelConfig | undefined): string {\n const name = model?.provider_config?.model_name;\n if (!name) {\n throw new Error(\"Missing model name in provider_config.model_name.\");\n }\n return name;\n}\n\nexport const Ollama_TextGeneration: AiProviderRunFn<\n TextGenerationTaskInput,\n TextGenerationTaskOutput,\n OllamaModelConfig\n> = async (input, model, update_progress, signal) => {\n update_progress(0, \"Starting Ollama text generation\");\n const client = await getClient(model);\n const modelName = getModelName(model);\n\n const response = await client.chat({\n model: modelName,\n messages: [{ role: \"user\", content: input.prompt }],\n options: {\n temperature: input.temperature,\n top_p: input.topP,\n num_predict: input.maxTokens,\n frequency_penalty: input.frequencyPenalty,\n presence_penalty: input.presencePenalty,\n },\n });\n\n update_progress(100, \"Completed Ollama text generation\");\n return { text: response.message.content };\n};\n\nexport const Ollama_TextEmbedding: AiProviderRunFn<\n TextEmbeddingTaskInput,\n TextEmbeddingTaskOutput,\n OllamaModelConfig\n> = async (input, model, update_progress, signal) => {\n update_progress(0, \"Starting Ollama text embedding\");\n const client = await getClient(model);\n const modelName = getModelName(model);\n\n const texts = Array.isArray(input.text) ? input.text : [input.text];\n\n const response = await client.embed({\n model: modelName,\n input: texts,\n });\n\n update_progress(100, \"Completed Ollama text embedding\");\n\n if (Array.isArray(input.text)) {\n return {\n vector: response.embeddings.map((e) => new Float32Array(e)),\n };\n }\n return { vector: new Float32Array(response.embeddings[0]) };\n};\n\nexport const Ollama_TextRewriter: AiProviderRunFn<\n TextRewriterTaskInput,\n TextRewriterTaskOutput,\n OllamaModelConfig\n> = async (input, model, update_progress, signal) => {\n update_progress(0, \"Starting Ollama text rewriting\");\n const client = await getClient(model);\n const modelName = getModelName(model);\n\n const response = await client.chat({\n model: modelName,\n messages: [\n { role: \"system\", content: input.prompt },\n { role: \"user\", content: input.text },\n ],\n });\n\n update_progress(100, \"Completed Ollama text rewriting\");\n return { text: response.message.content };\n};\n\nexport const Ollama_TextSummary: AiProviderRunFn<\n TextSummaryTaskInput,\n TextSummaryTaskOutput,\n OllamaModelConfig\n> = async (input, model, update_progress, signal) => {\n update_progress(0, \"Starting Ollama text summarization\");\n const client = await getClient(model);\n const modelName = getModelName(model);\n\n const response = await client.chat({\n model: modelName,\n messages: [\n { role: \"system\", content: \"Summarize the following text concisely.\" },\n { role: \"user\", content: input.text },\n ],\n });\n\n update_progress(100, \"Completed Ollama text summarization\");\n return { text: response.message.content };\n};\n\n// ========================================================================\n// Streaming implementations (append mode)\n// ========================================================================\n\nexport const Ollama_TextGeneration_Stream: AiProviderStreamFn<\n TextGenerationTaskInput,\n TextGenerationTaskOutput,\n OllamaModelConfig\n> = async function* (input, model, signal): AsyncIterable<StreamEvent<TextGenerationTaskOutput>> {\n const client = await getClient(model);\n const modelName = getModelName(model);\n\n const stream = await client.chat({\n model: modelName,\n messages: [{ role: \"user\", content: input.prompt }],\n options: {\n temperature: input.temperature,\n top_p: input.topP,\n num_predict: input.maxTokens,\n frequency_penalty: input.frequencyPenalty,\n presence_penalty: input.presencePenalty,\n },\n stream: true,\n });\n\n for await (const chunk of stream) {\n const delta = chunk.message.content;\n if (delta) {\n yield { type: \"text-delta\", textDelta: delta };\n }\n }\n yield { type: \"finish\", data: {} as TextGenerationTaskOutput };\n};\n\nexport const Ollama_TextRewriter_Stream: AiProviderStreamFn<\n TextRewriterTaskInput,\n TextRewriterTaskOutput,\n OllamaModelConfig\n> = async function* (input, model, signal): AsyncIterable<StreamEvent<TextRewriterTaskOutput>> {\n const client = await getClient(model);\n const modelName = getModelName(model);\n\n const stream = await client.chat({\n model: modelName,\n messages: [\n { role: \"system\", content: input.prompt },\n { role: \"user\", content: input.text },\n ],\n stream: true,\n });\n\n for await (const chunk of stream) {\n const delta = chunk.message.content;\n if (delta) {\n yield { type: \"text-delta\", textDelta: delta };\n }\n }\n yield { type: \"finish\", data: {} as TextRewriterTaskOutput };\n};\n\nexport const Ollama_TextSummary_Stream: AiProviderStreamFn<\n TextSummaryTaskInput,\n TextSummaryTaskOutput,\n OllamaModelConfig\n> = async function* (input, model, signal): AsyncIterable<StreamEvent<TextSummaryTaskOutput>> {\n const client = await getClient(model);\n const modelName = getModelName(model);\n\n const stream = await client.chat({\n model: modelName,\n messages: [\n { role: \"system\", content: \"Summarize the following text concisely.\" },\n { role: \"user\", content: input.text },\n ],\n stream: true,\n });\n\n for await (const chunk of stream) {\n const delta = chunk.message.content;\n if (delta) {\n yield { type: \"text-delta\", textDelta: delta };\n }\n }\n yield { type: \"finish\", data: {} as TextSummaryTaskOutput };\n};\n\n// ========================================================================\n// Task registries\n// ========================================================================\n\nexport const OLLAMA_TASKS: Record<string, AiProviderRunFn<any, any, OllamaModelConfig>> = {\n TextGenerationTask: Ollama_TextGeneration,\n TextEmbeddingTask: Ollama_TextEmbedding,\n TextRewriterTask: Ollama_TextRewriter,\n TextSummaryTask: Ollama_TextSummary,\n};\n\nexport const OLLAMA_STREAM_TASKS: Record<\n string,\n AiProviderStreamFn<any, any, OllamaModelConfig>\n> = {\n TextGenerationTask: Ollama_TextGeneration_Stream,\n TextRewriterTask: Ollama_TextRewriter_Stream,\n TextSummaryTask: Ollama_TextSummary_Stream,\n};\n",
10
+ "/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { AiProvider, type AiProviderRunFn, type AiProviderStreamFn } from \"@workglow/ai\";\nimport { OLLAMA } from \"./common/Ollama_Constants\";\nimport type { OllamaModelConfig } from \"./common/Ollama_ModelSchema\";\n\n/**\n * AI provider for Ollama local LLM server.\n *\n * Supports text generation, text embedding, text rewriting, and text summarization\n * via the Ollama API using the `ollama` SDK.\n *\n * Ollama runs locally and does not require an API key -- only a `base_url`\n * (defaults to `http://localhost:11434`).\n *\n * Task run functions are injected via the constructor so that the `ollama` SDK\n * is only imported where actually needed (inline mode, worker server), not on\n * the main thread in worker mode.\n *\n * @example\n * ```typescript\n * // Worker mode (main thread) -- lightweight, no SDK import:\n * await new OllamaProvider().register({\n * mode: \"worker\",\n * worker: new Worker(new URL(\"./worker_ollama.ts\", import.meta.url), { type: \"module\" }),\n * });\n *\n * // Inline mode -- caller provides the tasks:\n * import { OLLAMA_TASKS } from \"@workglow/ai-provider/ollama\";\n * await new OllamaProvider(OLLAMA_TASKS).register({ mode: \"inline\" });\n * ```\n */\nexport class OllamaProvider extends AiProvider<OllamaModelConfig> {\n readonly name = OLLAMA;\n\n readonly taskTypes = [\n \"TextGenerationTask\",\n \"TextEmbeddingTask\",\n \"TextRewriterTask\",\n \"TextSummaryTask\",\n ] as const;\n\n constructor(\n tasks?: Record<string, AiProviderRunFn<any, any, OllamaModelConfig>>,\n streamTasks?: Record<string, AiProviderStreamFn<any, any, OllamaModelConfig>>\n ) {\n super(tasks, streamTasks);\n }\n}\n"
11
+ ],
12
+ "mappings": "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",
13
+ "debugId": "A364D52D046DE85E64756E2164756E21",
14
+ "names": []
15
+ }
@@ -0,0 +1,11 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025 Steven Roussey <sroussey@gmail.com>
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ export * from "./common/Ollama_Constants";
7
+ export * from "./common/Ollama_JobRunFns";
8
+ export * from "./common/Ollama_ModelSchema";
9
+ export * from "./Ollama_Worker";
10
+ export * from "./OllamaProvider";
11
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/provider-ollama/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,2BAA2B,CAAC;AAC1C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC"}