@workglow/ai-provider 0.0.126 → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (172) hide show
  1. package/dist/provider-anthropic/AnthropicProvider.d.ts +1 -1
  2. package/dist/provider-anthropic/AnthropicProvider.d.ts.map +1 -1
  3. package/dist/provider-anthropic/AnthropicQueuedProvider.d.ts +4 -4
  4. package/dist/provider-anthropic/AnthropicQueuedProvider.d.ts.map +1 -1
  5. package/dist/provider-anthropic/common/Anthropic_Client.d.ts.map +1 -1
  6. package/dist/provider-anthropic/common/Anthropic_CountTokens.d.ts.map +1 -1
  7. package/dist/provider-anthropic/common/Anthropic_JobRunFns.d.ts.map +1 -1
  8. package/dist/provider-anthropic/common/Anthropic_TextGeneration.d.ts.map +1 -1
  9. package/dist/provider-anthropic/common/Anthropic_TextRewriter.d.ts.map +1 -1
  10. package/dist/provider-anthropic/common/Anthropic_TextSummary.d.ts.map +1 -1
  11. package/dist/provider-anthropic/index.js +3 -4
  12. package/dist/provider-anthropic/index.js.map +3 -3
  13. package/dist/provider-anthropic/runtime.js +19 -291
  14. package/dist/provider-anthropic/runtime.js.map +11 -12
  15. package/dist/provider-chrome/common/WebBrowser_TextGeneration.d.ts.map +1 -1
  16. package/dist/provider-chrome/common/WebBrowser_TextLanguageDetection.d.ts.map +1 -1
  17. package/dist/provider-chrome/common/WebBrowser_TextRewriter.d.ts.map +1 -1
  18. package/dist/provider-chrome/common/WebBrowser_TextSummary.d.ts.map +1 -1
  19. package/dist/provider-chrome/common/WebBrowser_TextTranslation.d.ts.map +1 -1
  20. package/dist/provider-chrome/runtime.js +3 -97
  21. package/dist/provider-chrome/runtime.js.map +8 -8
  22. package/dist/provider-gemini/GoogleGeminiProvider.d.ts +1 -1
  23. package/dist/provider-gemini/GoogleGeminiProvider.d.ts.map +1 -1
  24. package/dist/provider-gemini/GoogleGeminiQueuedProvider.d.ts +4 -4
  25. package/dist/provider-gemini/GoogleGeminiQueuedProvider.d.ts.map +1 -1
  26. package/dist/provider-gemini/common/Gemini_CountTokens.d.ts.map +1 -1
  27. package/dist/provider-gemini/common/Gemini_JobRunFns.d.ts.map +1 -1
  28. package/dist/provider-gemini/common/Gemini_TextEmbedding.d.ts.map +1 -1
  29. package/dist/provider-gemini/common/Gemini_TextGeneration.d.ts.map +1 -1
  30. package/dist/provider-gemini/common/Gemini_TextRewriter.d.ts.map +1 -1
  31. package/dist/provider-gemini/common/Gemini_TextSummary.d.ts.map +1 -1
  32. package/dist/provider-gemini/index.js +3 -4
  33. package/dist/provider-gemini/index.js.map +3 -3
  34. package/dist/provider-gemini/runtime.js +12 -257
  35. package/dist/provider-gemini/runtime.js.map +11 -12
  36. package/dist/provider-hf-inference/HfInferenceProvider.d.ts +1 -1
  37. package/dist/provider-hf-inference/HfInferenceProvider.d.ts.map +1 -1
  38. package/dist/provider-hf-inference/HfInferenceQueuedProvider.d.ts +4 -4
  39. package/dist/provider-hf-inference/HfInferenceQueuedProvider.d.ts.map +1 -1
  40. package/dist/provider-hf-inference/common/HFI_Client.d.ts.map +1 -1
  41. package/dist/provider-hf-inference/common/HFI_JobRunFns.d.ts.map +1 -1
  42. package/dist/provider-hf-inference/common/HFI_TextEmbedding.d.ts.map +1 -1
  43. package/dist/provider-hf-inference/common/HFI_TextGeneration.d.ts.map +1 -1
  44. package/dist/provider-hf-inference/common/HFI_TextRewriter.d.ts.map +1 -1
  45. package/dist/provider-hf-inference/common/HFI_TextSummary.d.ts.map +1 -1
  46. package/dist/provider-hf-inference/index.js +3 -4
  47. package/dist/provider-hf-inference/index.js.map +3 -3
  48. package/dist/provider-hf-inference/runtime.js +13 -206
  49. package/dist/provider-hf-inference/runtime.js.map +11 -12
  50. package/dist/provider-hf-transformers/HuggingFaceTransformersProvider.d.ts +1 -1
  51. package/dist/provider-hf-transformers/HuggingFaceTransformersProvider.d.ts.map +1 -1
  52. package/dist/provider-hf-transformers/HuggingFaceTransformersQueuedProvider.d.ts +13 -3
  53. package/dist/provider-hf-transformers/HuggingFaceTransformersQueuedProvider.d.ts.map +1 -1
  54. package/dist/provider-hf-transformers/common/HFT_Constants.d.ts +4 -0
  55. package/dist/provider-hf-transformers/common/HFT_Constants.d.ts.map +1 -1
  56. package/dist/provider-hf-transformers/common/HFT_CountTokens.d.ts.map +1 -1
  57. package/dist/provider-hf-transformers/common/HFT_Download.d.ts.map +1 -1
  58. package/dist/provider-hf-transformers/common/HFT_ImageEmbedding.d.ts.map +1 -1
  59. package/dist/provider-hf-transformers/common/HFT_JobRunFns.d.ts +116 -87
  60. package/dist/provider-hf-transformers/common/HFT_JobRunFns.d.ts.map +1 -1
  61. package/dist/provider-hf-transformers/common/HFT_ModelInfo.d.ts.map +1 -1
  62. package/dist/provider-hf-transformers/common/HFT_ModelSchema.d.ts +30 -0
  63. package/dist/provider-hf-transformers/common/HFT_ModelSchema.d.ts.map +1 -1
  64. package/dist/provider-hf-transformers/common/HFT_OnnxDtypes.d.ts.map +1 -1
  65. package/dist/provider-hf-transformers/common/HFT_Pipeline.d.ts +9 -2
  66. package/dist/provider-hf-transformers/common/HFT_Pipeline.d.ts.map +1 -1
  67. package/dist/provider-hf-transformers/common/HFT_Streaming.d.ts +2 -2
  68. package/dist/provider-hf-transformers/common/HFT_Streaming.d.ts.map +1 -1
  69. package/dist/provider-hf-transformers/common/HFT_TextClassification.d.ts.map +1 -1
  70. package/dist/provider-hf-transformers/common/HFT_TextFillMask.d.ts.map +1 -1
  71. package/dist/provider-hf-transformers/common/HFT_TextGeneration.d.ts.map +1 -1
  72. package/dist/provider-hf-transformers/common/HFT_TextLanguageDetection.d.ts.map +1 -1
  73. package/dist/provider-hf-transformers/common/HFT_TextNamedEntityRecognition.d.ts.map +1 -1
  74. package/dist/provider-hf-transformers/common/HFT_TextQuestionAnswer.d.ts.map +1 -1
  75. package/dist/provider-hf-transformers/common/HFT_TextRewriter.d.ts.map +1 -1
  76. package/dist/provider-hf-transformers/common/HFT_TextSummary.d.ts.map +1 -1
  77. package/dist/provider-hf-transformers/common/HFT_TextTranslation.d.ts.map +1 -1
  78. package/dist/provider-hf-transformers/index.d.ts +0 -1
  79. package/dist/provider-hf-transformers/index.d.ts.map +1 -1
  80. package/dist/provider-hf-transformers/index.js +49 -177
  81. package/dist/provider-hf-transformers/index.js.map +8 -9
  82. package/dist/provider-hf-transformers/registerHuggingFaceTransformersWorker.d.ts.map +1 -1
  83. package/dist/provider-hf-transformers/runtime.d.ts +0 -1
  84. package/dist/provider-hf-transformers/runtime.d.ts.map +1 -1
  85. package/dist/provider-hf-transformers/runtime.js +208 -513
  86. package/dist/provider-hf-transformers/runtime.js.map +27 -29
  87. package/dist/provider-llamacpp/LlamaCppProvider.d.ts +1 -1
  88. package/dist/provider-llamacpp/LlamaCppProvider.d.ts.map +1 -1
  89. package/dist/provider-llamacpp/LlamaCppQueuedProvider.d.ts +1 -1
  90. package/dist/provider-llamacpp/LlamaCppQueuedProvider.d.ts.map +1 -1
  91. package/dist/provider-llamacpp/common/LlamaCpp_CountTokens.d.ts.map +1 -1
  92. package/dist/provider-llamacpp/common/LlamaCpp_JobRunFns.d.ts.map +1 -1
  93. package/dist/provider-llamacpp/common/LlamaCpp_ModelSchema.d.ts +15 -0
  94. package/dist/provider-llamacpp/common/LlamaCpp_ModelSchema.d.ts.map +1 -1
  95. package/dist/provider-llamacpp/common/LlamaCpp_Runtime.d.ts +10 -0
  96. package/dist/provider-llamacpp/common/LlamaCpp_Runtime.d.ts.map +1 -1
  97. package/dist/provider-llamacpp/common/LlamaCpp_StructuredGeneration.d.ts.map +1 -1
  98. package/dist/provider-llamacpp/common/LlamaCpp_TextEmbedding.d.ts.map +1 -1
  99. package/dist/provider-llamacpp/common/LlamaCpp_TextGeneration.d.ts.map +1 -1
  100. package/dist/provider-llamacpp/common/LlamaCpp_TextRewriter.d.ts.map +1 -1
  101. package/dist/provider-llamacpp/common/LlamaCpp_TextSummary.d.ts.map +1 -1
  102. package/dist/provider-llamacpp/index.js +6 -2
  103. package/dist/provider-llamacpp/index.js.map +4 -4
  104. package/dist/provider-llamacpp/runtime.js +82 -230
  105. package/dist/provider-llamacpp/runtime.js.map +13 -14
  106. package/dist/provider-ollama/OllamaProvider.d.ts +1 -1
  107. package/dist/provider-ollama/OllamaProvider.d.ts.map +1 -1
  108. package/dist/provider-ollama/OllamaQueuedProvider.d.ts +4 -4
  109. package/dist/provider-ollama/OllamaQueuedProvider.d.ts.map +1 -1
  110. package/dist/provider-ollama/common/Ollama_JobRunFns.browser.d.ts +13 -71
  111. package/dist/provider-ollama/common/Ollama_JobRunFns.browser.d.ts.map +1 -1
  112. package/dist/provider-ollama/common/Ollama_JobRunFns.d.ts +13 -71
  113. package/dist/provider-ollama/common/Ollama_JobRunFns.d.ts.map +1 -1
  114. package/dist/provider-ollama/common/Ollama_TextGeneration.d.ts.map +1 -1
  115. package/dist/provider-ollama/common/Ollama_TextRewriter.d.ts.map +1 -1
  116. package/dist/provider-ollama/common/Ollama_TextSummary.d.ts.map +1 -1
  117. package/dist/provider-ollama/index.browser.js +3 -4
  118. package/dist/provider-ollama/index.browser.js.map +3 -3
  119. package/dist/provider-ollama/index.js +3 -4
  120. package/dist/provider-ollama/index.js.map +3 -3
  121. package/dist/provider-ollama/runtime.browser.js +8 -179
  122. package/dist/provider-ollama/runtime.browser.js.map +9 -10
  123. package/dist/provider-ollama/runtime.js +8 -174
  124. package/dist/provider-ollama/runtime.js.map +9 -10
  125. package/dist/provider-openai/OpenAiProvider.d.ts +1 -1
  126. package/dist/provider-openai/OpenAiProvider.d.ts.map +1 -1
  127. package/dist/provider-openai/OpenAiQueuedProvider.d.ts +4 -4
  128. package/dist/provider-openai/OpenAiQueuedProvider.d.ts.map +1 -1
  129. package/dist/provider-openai/common/OpenAI_Client.d.ts.map +1 -1
  130. package/dist/provider-openai/common/OpenAI_CountTokens.browser.d.ts.map +1 -1
  131. package/dist/provider-openai/common/OpenAI_CountTokens.d.ts.map +1 -1
  132. package/dist/provider-openai/common/OpenAI_JobRunFns.browser.d.ts.map +1 -1
  133. package/dist/provider-openai/common/OpenAI_JobRunFns.d.ts.map +1 -1
  134. package/dist/provider-openai/common/OpenAI_TextEmbedding.d.ts.map +1 -1
  135. package/dist/provider-openai/common/OpenAI_TextGeneration.d.ts.map +1 -1
  136. package/dist/provider-openai/common/OpenAI_TextRewriter.d.ts.map +1 -1
  137. package/dist/provider-openai/common/OpenAI_TextSummary.d.ts.map +1 -1
  138. package/dist/provider-openai/index.browser.js +3 -4
  139. package/dist/provider-openai/index.browser.js.map +3 -3
  140. package/dist/provider-openai/index.js +3 -4
  141. package/dist/provider-openai/index.js.map +3 -3
  142. package/dist/provider-openai/runtime.browser.js +22 -224
  143. package/dist/provider-openai/runtime.browser.js.map +12 -13
  144. package/dist/provider-openai/runtime.js +22 -224
  145. package/dist/provider-openai/runtime.js.map +12 -13
  146. package/dist/provider-tf-mediapipe/TensorFlowMediaPipeQueuedProvider.d.ts +3 -3
  147. package/dist/provider-tf-mediapipe/TensorFlowMediaPipeQueuedProvider.d.ts.map +1 -1
  148. package/dist/provider-tf-mediapipe/common/TFMP_ImageEmbedding.d.ts.map +1 -1
  149. package/dist/provider-tf-mediapipe/common/TFMP_JobRunFns.d.ts +17 -10
  150. package/dist/provider-tf-mediapipe/common/TFMP_JobRunFns.d.ts.map +1 -1
  151. package/dist/provider-tf-mediapipe/common/TFMP_Unload.d.ts.map +1 -1
  152. package/dist/provider-tf-mediapipe/index.js +3 -3
  153. package/dist/provider-tf-mediapipe/index.js.map +3 -3
  154. package/dist/provider-tf-mediapipe/runtime.js +16 -5
  155. package/dist/provider-tf-mediapipe/runtime.js.map +5 -5
  156. package/package.json +15 -15
  157. package/dist/provider-anthropic/common/Anthropic_ToolCalling.d.ts +0 -10
  158. package/dist/provider-anthropic/common/Anthropic_ToolCalling.d.ts.map +0 -1
  159. package/dist/provider-gemini/common/Gemini_ToolCalling.d.ts +0 -10
  160. package/dist/provider-gemini/common/Gemini_ToolCalling.d.ts.map +0 -1
  161. package/dist/provider-hf-inference/common/HFI_ToolCalling.d.ts +0 -10
  162. package/dist/provider-hf-inference/common/HFI_ToolCalling.d.ts.map +0 -1
  163. package/dist/provider-hf-transformers/common/HFT_ToolCalling.d.ts +0 -10
  164. package/dist/provider-hf-transformers/common/HFT_ToolCalling.d.ts.map +0 -1
  165. package/dist/provider-hf-transformers/common/HFT_ToolMarkup.d.ts +0 -40
  166. package/dist/provider-hf-transformers/common/HFT_ToolMarkup.d.ts.map +0 -1
  167. package/dist/provider-llamacpp/common/LlamaCpp_ToolCalling.d.ts +0 -10
  168. package/dist/provider-llamacpp/common/LlamaCpp_ToolCalling.d.ts.map +0 -1
  169. package/dist/provider-ollama/common/Ollama_ToolCalling.d.ts +0 -16
  170. package/dist/provider-ollama/common/Ollama_ToolCalling.d.ts.map +0 -1
  171. package/dist/provider-openai/common/OpenAI_ToolCalling.d.ts +0 -10
  172. package/dist/provider-openai/common/OpenAI_ToolCalling.d.ts.map +0 -1
@@ -73,6 +73,33 @@ async function getOrLoadModel(model) {
73
73
  llamaCppModels.set(modelPath, loadedModel);
74
74
  return loadedModel;
75
75
  }
76
+ function llamaCppSeedPromptSpread(provider_config) {
77
+ return provider_config.seed !== undefined ? { seed: provider_config.seed } : {};
78
+ }
79
+ function detectQwenChatWrapperVariation(model) {
80
+ const candidates = [
81
+ model.model_id,
82
+ model.title,
83
+ model.description,
84
+ model.provider_config.model_url,
85
+ model.provider_config.model_path
86
+ ].filter((value) => typeof value === "string" && value.length > 0).map((value) => value.toLowerCase());
87
+ if (candidates.some((value) => /\bqwen(?:[\s._-]?|)3(?:[\s._-]?|)5\b|\bqwen(?:[\s._-]?|)3\.5\b/.test(value))) {
88
+ return "3.5";
89
+ }
90
+ if (candidates.some((value) => /\bqwen(?:[\s._-]?|)3\b/.test(value))) {
91
+ return "3";
92
+ }
93
+ return;
94
+ }
95
+ function llamaCppChatSessionConstructorSpread(model) {
96
+ const variation = detectQwenChatWrapperVariation(model);
97
+ if (!variation) {
98
+ return {};
99
+ }
100
+ const { QwenChatWrapper } = getLlamaCppSdk();
101
+ return { chatWrapper: new QwenChatWrapper({ variation }) };
102
+ }
76
103
  async function getOrCreateTextContext(model) {
77
104
  const modelPath = getActualModelPath(model);
78
105
  const cached = llamaCppTextContexts.get(modelPath);
@@ -255,18 +282,7 @@ var LlamaCpp_ModelSearch = async (input, _model, _onProgress, signal) => {
255
282
  };
256
283
 
257
284
  // src/provider-llamacpp/common/LlamaCpp_CountTokens.ts
258
- import { getLogger } from "@workglow/util/worker";
259
285
  var LlamaCpp_CountTokens = async (input, model, onProgress, signal) => {
260
- if (Array.isArray(input.text)) {
261
- getLogger().warn("LlamaCpp_CountTokens: array input received; processing sequentially (no native batch support)");
262
- const texts = input.text;
263
- const counts = [];
264
- for (const item of texts) {
265
- const r = await LlamaCpp_CountTokens({ ...input, text: item }, model, onProgress, signal);
266
- counts.push(r.count);
267
- }
268
- return { count: counts };
269
- }
270
286
  const loadedModel = await getOrLoadModel(model);
271
287
  const tokens = loadedModel.tokenizer(input.text);
272
288
  return { count: tokens.length };
@@ -347,11 +363,15 @@ var LlamaCpp_StructuredGeneration = async (input, model, update_progress, signal
347
363
  const grammar = await llama.createGrammarForJsonSchema(input.outputSchema);
348
364
  const sequence = context.getSequence();
349
365
  const { LlamaChatSession } = getLlamaCppSdk();
350
- const session = new LlamaChatSession({ contextSequence: sequence });
366
+ const session = new LlamaChatSession({
367
+ contextSequence: sequence,
368
+ ...llamaCppChatSessionConstructorSpread(model)
369
+ });
351
370
  try {
352
371
  const text = await session.prompt(input.prompt, {
353
372
  signal,
354
373
  grammar,
374
+ ...llamaCppSeedPromptSpread(model.provider_config),
355
375
  ...input.temperature !== undefined && { temperature: input.temperature },
356
376
  ...input.maxTokens !== undefined && { maxTokens: input.maxTokens }
357
377
  });
@@ -364,6 +384,7 @@ var LlamaCpp_StructuredGeneration = async (input, model, update_progress, signal
364
384
  update_progress(100, "Structured generation complete");
365
385
  return { object };
366
386
  } finally {
387
+ session.dispose({ disposeSequence: false });
367
388
  sequence.dispose();
368
389
  }
369
390
  };
@@ -376,7 +397,10 @@ var LlamaCpp_StructuredGeneration_Stream = async function* (input, model, signal
376
397
  const grammar = await llama.createGrammarForJsonSchema(input.outputSchema);
377
398
  const sequence = context.getSequence();
378
399
  const { LlamaChatSession } = getLlamaCppSdk();
379
- const session = new LlamaChatSession({ contextSequence: sequence });
400
+ const session = new LlamaChatSession({
401
+ contextSequence: sequence,
402
+ ...llamaCppChatSessionConstructorSpread(model)
403
+ });
380
404
  const queue = [];
381
405
  let isComplete = false;
382
406
  let completionError;
@@ -389,6 +413,7 @@ var LlamaCpp_StructuredGeneration_Stream = async function* (input, model, signal
389
413
  const promptPromise = session.prompt(input.prompt, {
390
414
  signal,
391
415
  grammar,
416
+ ...llamaCppSeedPromptSpread(model.provider_config),
392
417
  onTextChunk: (chunk) => {
393
418
  queue.push(chunk);
394
419
  notifyWaiter();
@@ -429,6 +454,7 @@ var LlamaCpp_StructuredGeneration_Stream = async function* (input, model, signal
429
454
  }
430
455
  } finally {
431
456
  await promptPromise.catch(() => {});
457
+ session.dispose({ disposeSequence: false });
432
458
  sequence.dispose();
433
459
  }
434
460
  if (completionError) {
@@ -462,18 +488,7 @@ var LlamaCpp_TextEmbedding = async (input, model, update_progress, _signal) => {
462
488
  };
463
489
 
464
490
  // src/provider-llamacpp/common/LlamaCpp_TextGeneration.ts
465
- import { getLogger as getLogger2 } from "@workglow/util/worker";
466
491
  var LlamaCpp_TextGeneration = async (input, model, update_progress, signal) => {
467
- if (Array.isArray(input.prompt)) {
468
- getLogger2().warn("LlamaCpp_TextGeneration: array input received; processing sequentially (no native batch support)");
469
- const prompts = input.prompt;
470
- const results = [];
471
- for (const item of prompts) {
472
- const r = await LlamaCpp_TextGeneration({ ...input, prompt: item }, model, update_progress, signal);
473
- results.push(r.text);
474
- }
475
- return { text: results };
476
- }
477
492
  if (!model)
478
493
  throw new Error("Model config is required for TextGenerationTask.");
479
494
  const { LlamaChatSession } = await loadSdk();
@@ -481,10 +496,14 @@ var LlamaCpp_TextGeneration = async (input, model, update_progress, signal) => {
481
496
  const context = await getOrCreateTextContext(model);
482
497
  update_progress(10, "Generating text");
483
498
  const sequence = context.getSequence();
484
- const session = new LlamaChatSession({ contextSequence: sequence });
499
+ const session = new LlamaChatSession({
500
+ contextSequence: sequence,
501
+ ...llamaCppChatSessionConstructorSpread(model)
502
+ });
485
503
  try {
486
504
  const text = await session.prompt(input.prompt, {
487
505
  signal,
506
+ ...llamaCppSeedPromptSpread(model.provider_config),
488
507
  ...input.temperature !== undefined && { temperature: input.temperature },
489
508
  ...input.maxTokens !== undefined && { maxTokens: input.maxTokens },
490
509
  ...input.topP !== undefined && { topP: input.topP }
@@ -492,6 +511,7 @@ var LlamaCpp_TextGeneration = async (input, model, update_progress, signal) => {
492
511
  update_progress(100, "Text generation complete");
493
512
  return { text };
494
513
  } finally {
514
+ session.dispose({ disposeSequence: false });
495
515
  sequence.dispose();
496
516
  }
497
517
  };
@@ -501,35 +521,29 @@ var LlamaCpp_TextGeneration_Stream = async function* (input, model, signal) {
501
521
  const { LlamaChatSession } = await loadSdk();
502
522
  const context = await getOrCreateTextContext(model);
503
523
  const sequence = context.getSequence();
504
- const session = new LlamaChatSession({ contextSequence: sequence });
524
+ const session = new LlamaChatSession({
525
+ contextSequence: sequence,
526
+ ...llamaCppChatSessionConstructorSpread(model)
527
+ });
505
528
  try {
506
529
  yield* streamFromSession((onTextChunk) => {
507
530
  return session.prompt(input.prompt, {
508
531
  signal,
509
532
  onTextChunk,
533
+ ...llamaCppSeedPromptSpread(model.provider_config),
510
534
  ...input.temperature !== undefined && { temperature: input.temperature },
511
535
  ...input.maxTokens !== undefined && { maxTokens: input.maxTokens },
512
536
  ...input.topP !== undefined && { topP: input.topP }
513
537
  });
514
538
  }, signal);
515
539
  } finally {
540
+ session.dispose({ disposeSequence: false });
516
541
  sequence.dispose();
517
542
  }
518
543
  };
519
544
 
520
545
  // src/provider-llamacpp/common/LlamaCpp_TextRewriter.ts
521
- import { getLogger as getLogger3 } from "@workglow/util/worker";
522
546
  var LlamaCpp_TextRewriter = async (input, model, update_progress, signal) => {
523
- if (Array.isArray(input.text)) {
524
- getLogger3().warn("LlamaCpp_TextRewriter: array input received; processing sequentially (no native batch support)");
525
- const texts = input.text;
526
- const results = [];
527
- for (const item of texts) {
528
- const r = await LlamaCpp_TextRewriter({ ...input, text: item }, model, update_progress, signal);
529
- results.push(r.text);
530
- }
531
- return { text: results };
532
- }
533
547
  if (!model)
534
548
  throw new Error("Model config is required for TextRewriterTask.");
535
549
  const { LlamaChatSession } = await loadSdk();
@@ -539,13 +553,18 @@ var LlamaCpp_TextRewriter = async (input, model, update_progress, signal) => {
539
553
  const sequence = context.getSequence();
540
554
  const session = new LlamaChatSession({
541
555
  contextSequence: sequence,
556
+ ...llamaCppChatSessionConstructorSpread(model),
542
557
  systemPrompt: input.prompt
543
558
  });
544
559
  try {
545
- const text = await session.prompt(input.text, { signal });
560
+ const text = await session.prompt(input.text, {
561
+ signal,
562
+ ...llamaCppSeedPromptSpread(model.provider_config)
563
+ });
546
564
  update_progress(100, "Text rewriting complete");
547
565
  return { text };
548
566
  } finally {
567
+ session.dispose({ disposeSequence: false });
549
568
  sequence.dispose();
550
569
  }
551
570
  };
@@ -557,30 +576,25 @@ var LlamaCpp_TextRewriter_Stream = async function* (input, model, signal) {
557
576
  const sequence = context.getSequence();
558
577
  const session = new LlamaChatSession({
559
578
  contextSequence: sequence,
579
+ ...llamaCppChatSessionConstructorSpread(model),
560
580
  systemPrompt: input.prompt
561
581
  });
562
582
  try {
563
583
  yield* streamFromSession((onTextChunk) => {
564
- return session.prompt(input.text, { signal, onTextChunk });
584
+ return session.prompt(input.text, {
585
+ signal,
586
+ onTextChunk,
587
+ ...llamaCppSeedPromptSpread(model.provider_config)
588
+ });
565
589
  }, signal);
566
590
  } finally {
591
+ session.dispose({ disposeSequence: false });
567
592
  sequence.dispose();
568
593
  }
569
594
  };
570
595
 
571
596
  // src/provider-llamacpp/common/LlamaCpp_TextSummary.ts
572
- import { getLogger as getLogger4 } from "@workglow/util/worker";
573
597
  var LlamaCpp_TextSummary = async (input, model, update_progress, signal) => {
574
- if (Array.isArray(input.text)) {
575
- getLogger4().warn("LlamaCpp_TextSummary: array input received; processing sequentially (no native batch support)");
576
- const texts = input.text;
577
- const results = [];
578
- for (const item of texts) {
579
- const r = await LlamaCpp_TextSummary({ ...input, text: item }, model, update_progress, signal);
580
- results.push(r.text);
581
- }
582
- return { text: results };
583
- }
584
598
  if (!model)
585
599
  throw new Error("Model config is required for TextSummaryTask.");
586
600
  const { LlamaChatSession } = await loadSdk();
@@ -590,13 +604,18 @@ var LlamaCpp_TextSummary = async (input, model, update_progress, signal) => {
590
604
  const sequence = context.getSequence();
591
605
  const session = new LlamaChatSession({
592
606
  contextSequence: sequence,
607
+ ...llamaCppChatSessionConstructorSpread(model),
593
608
  systemPrompt: "Summarize the following text concisely, preserving the key points."
594
609
  });
595
610
  try {
596
- const text = await session.prompt(input.text, { signal });
611
+ const text = await session.prompt(input.text, {
612
+ signal,
613
+ ...llamaCppSeedPromptSpread(model.provider_config)
614
+ });
597
615
  update_progress(100, "Summarization complete");
598
616
  return { text };
599
617
  } finally {
618
+ session.dispose({ disposeSequence: false });
600
619
  sequence.dispose();
601
620
  }
602
621
  };
@@ -608,186 +627,21 @@ var LlamaCpp_TextSummary_Stream = async function* (input, model, signal) {
608
627
  const sequence = context.getSequence();
609
628
  const session = new LlamaChatSession({
610
629
  contextSequence: sequence,
630
+ ...llamaCppChatSessionConstructorSpread(model),
611
631
  systemPrompt: "Summarize the following text concisely, preserving the key points."
612
632
  });
613
633
  try {
614
634
  yield* streamFromSession((onTextChunk) => {
615
- return session.prompt(input.text, { signal, onTextChunk });
616
- }, signal);
617
- } finally {
618
- sequence.dispose();
619
- }
620
- };
621
-
622
- // src/provider-llamacpp/common/LlamaCpp_ToolCalling.ts
623
- import { filterValidToolCalls } from "@workglow/ai/worker";
624
- import { getLogger as getLogger5 } from "@workglow/util/worker";
625
- function buildLlamaCppPrompt(input) {
626
- const inputMessages = input.messages;
627
- if (!inputMessages || inputMessages.length === 0) {
628
- return Array.isArray(input.prompt) ? input.prompt.join(`
629
- `) : input.prompt;
630
- }
631
- const parts = [];
632
- for (const msg of inputMessages) {
633
- if (msg.role === "user") {
634
- parts.push(`User: ${msg.content}`);
635
- } else if (msg.role === "assistant" && Array.isArray(msg.content)) {
636
- const text = msg.content.filter((b) => b.type === "text").map((b) => b.text).join("");
637
- if (text)
638
- parts.push(`Assistant: ${text}`);
639
- } else if (msg.role === "tool" && Array.isArray(msg.content)) {
640
- for (const block of msg.content) {
641
- parts.push(`Tool Result: ${block.content}`);
642
- }
643
- }
644
- }
645
- return parts.join(`
646
-
647
- `);
648
- }
649
- function buildLlamaCppFunctions(tools, capturedCalls) {
650
- const { defineChatSessionFunction } = getLlamaCppSdk();
651
- const functions = {};
652
- for (const tool of tools) {
653
- const toolName = tool.name;
654
- functions[toolName] = defineChatSessionFunction({
655
- description: tool.description,
656
- params: tool.inputSchema,
657
- handler(params) {
658
- capturedCalls.push({ name: toolName, input: params ?? {} });
659
- return "OK";
660
- }
661
- });
662
- }
663
- return functions;
664
- }
665
- var LlamaCpp_ToolCalling = async (input, model, update_progress, signal) => {
666
- if (Array.isArray(input.prompt)) {
667
- getLogger5().warn("LlamaCpp_ToolCalling: array input received; processing sequentially (no native batch support)");
668
- const prompts = input.prompt;
669
- const texts = [];
670
- const toolCallsList = [];
671
- for (const item of prompts) {
672
- const r = await LlamaCpp_ToolCalling({ ...input, prompt: item }, model, update_progress, signal);
673
- texts.push(r.text);
674
- toolCallsList.push(r.toolCalls);
675
- }
676
- return { text: texts, toolCalls: toolCallsList };
677
- }
678
- if (!model)
679
- throw new Error("Model config is required for ToolCallingTask.");
680
- await loadSdk();
681
- update_progress(0, "Loading model");
682
- const context = await getOrCreateTextContext(model);
683
- const capturedCalls = [];
684
- const functions = input.toolChoice === "none" ? undefined : buildLlamaCppFunctions(input.tools, capturedCalls);
685
- update_progress(10, "Running tool calling");
686
- const sequence = context.getSequence();
687
- const { LlamaChatSession } = getLlamaCppSdk();
688
- const promptText = buildLlamaCppPrompt(input);
689
- const session = new LlamaChatSession({
690
- contextSequence: sequence,
691
- ...input.systemPrompt && { systemPrompt: input.systemPrompt }
692
- });
693
- try {
694
- const text = await session.prompt(promptText, {
695
- signal,
696
- ...functions && { functions },
697
- ...input.temperature !== undefined && { temperature: input.temperature },
698
- ...input.maxTokens !== undefined && { maxTokens: input.maxTokens }
699
- });
700
- const toolCalls = [];
701
- capturedCalls.forEach((call, index) => {
702
- const id = `call_${index}`;
703
- toolCalls.push({ id, name: call.name, input: call.input });
704
- });
705
- update_progress(100, "Tool calling complete");
706
- return { text, toolCalls: filterValidToolCalls(toolCalls, input.tools) };
707
- } finally {
708
- sequence.dispose();
709
- }
710
- };
711
- var LlamaCpp_ToolCalling_Stream = async function* (input, model, signal) {
712
- if (!model)
713
- throw new Error("Model config is required for ToolCallingTask.");
714
- await loadSdk();
715
- const context = await getOrCreateTextContext(model);
716
- const capturedCalls = [];
717
- const functions = input.toolChoice === "none" ? undefined : buildLlamaCppFunctions(input.tools, capturedCalls);
718
- const sequence = context.getSequence();
719
- const { LlamaChatSession } = getLlamaCppSdk();
720
- const promptText = buildLlamaCppPrompt(input);
721
- const session = new LlamaChatSession({
722
- contextSequence: sequence,
723
- ...input.systemPrompt && { systemPrompt: input.systemPrompt }
724
- });
725
- const queue = [];
726
- let isComplete = false;
727
- let completionError;
728
- let resolveWait = null;
729
- const notifyWaiter = () => {
730
- resolveWait?.();
731
- resolveWait = null;
732
- };
733
- let accumulatedText = "";
734
- const promptPromise = session.prompt(promptText, {
735
- signal,
736
- ...functions && { functions },
737
- onTextChunk: (chunk) => {
738
- queue.push(chunk);
739
- notifyWaiter();
740
- },
741
- ...input.temperature !== undefined && { temperature: input.temperature },
742
- ...input.maxTokens !== undefined && { maxTokens: input.maxTokens }
743
- }).then(() => {
744
- isComplete = true;
745
- notifyWaiter();
746
- }).catch((err) => {
747
- completionError = err;
748
- isComplete = true;
749
- notifyWaiter();
750
- });
751
- try {
752
- while (true) {
753
- while (queue.length > 0) {
754
- const chunk = queue.shift();
755
- accumulatedText += chunk;
756
- yield { type: "text-delta", port: "text", textDelta: chunk };
757
- }
758
- if (isComplete)
759
- break;
760
- await new Promise((r) => {
761
- resolveWait = r;
635
+ return session.prompt(input.text, {
636
+ signal,
637
+ onTextChunk,
638
+ ...llamaCppSeedPromptSpread(model.provider_config)
762
639
  });
763
- }
764
- while (queue.length > 0) {
765
- const chunk = queue.shift();
766
- accumulatedText += chunk;
767
- yield { type: "text-delta", port: "text", textDelta: chunk };
768
- }
640
+ }, signal);
769
641
  } finally {
770
- await promptPromise.catch(() => {});
642
+ session.dispose({ disposeSequence: false });
771
643
  sequence.dispose();
772
644
  }
773
- if (completionError) {
774
- if (!signal.aborted)
775
- throw completionError;
776
- return;
777
- }
778
- const toolCalls = [];
779
- capturedCalls.forEach((call, index) => {
780
- const id = `call_${index}`;
781
- toolCalls.push({ id, name: call.name, input: call.input });
782
- });
783
- const validToolCalls = filterValidToolCalls(toolCalls, input.tools);
784
- if (validToolCalls.length > 0) {
785
- yield { type: "object-delta", port: "toolCalls", objectDelta: [...validToolCalls] };
786
- }
787
- yield {
788
- type: "finish",
789
- data: { text: accumulatedText, toolCalls: validToolCalls }
790
- };
791
645
  };
792
646
 
793
647
  // src/provider-llamacpp/common/LlamaCpp_Unload.ts
@@ -828,7 +682,6 @@ var LLAMACPP_TASKS = {
828
682
  TextEmbeddingTask: LlamaCpp_TextEmbedding,
829
683
  TextRewriterTask: LlamaCpp_TextRewriter,
830
684
  TextSummaryTask: LlamaCpp_TextSummary,
831
- ToolCallingTask: LlamaCpp_ToolCalling,
832
685
  StructuredGenerationTask: LlamaCpp_StructuredGeneration,
833
686
  ModelSearchTask: LlamaCpp_ModelSearch
834
687
  };
@@ -836,7 +689,6 @@ var LLAMACPP_STREAM_TASKS = {
836
689
  TextGenerationTask: LlamaCpp_TextGeneration_Stream,
837
690
  TextRewriterTask: LlamaCpp_TextRewriter_Stream,
838
691
  TextSummaryTask: LlamaCpp_TextSummary_Stream,
839
- ToolCallingTask: LlamaCpp_ToolCalling_Stream,
840
692
  StructuredGenerationTask: LlamaCpp_StructuredGeneration_Stream
841
693
  };
842
694
  var LLAMACPP_REACTIVE_TASKS = {
@@ -861,7 +713,6 @@ class LlamaCppQueuedProvider extends QueuedAiProvider {
861
713
  "TextEmbeddingTask",
862
714
  "TextRewriterTask",
863
715
  "TextSummaryTask",
864
- "ToolCallingTask",
865
716
  "ModelSearchTask"
866
717
  ];
867
718
  constructor(tasks, streamTasks, reactiveTasks) {
@@ -874,7 +725,7 @@ async function registerLlamaCppInline(options) {
874
725
  await new LlamaCppQueuedProvider(LLAMACPP_TASKS, LLAMACPP_STREAM_TASKS, LLAMACPP_REACTIVE_TASKS).register(options ?? {});
875
726
  }
876
727
  // src/provider-llamacpp/registerLlamaCppWorker.ts
877
- import { getLogger as getLogger6, globalServiceRegistry, WORKER_SERVER } from "@workglow/util/worker";
728
+ import { getLogger, globalServiceRegistry, WORKER_SERVER } from "@workglow/util/worker";
878
729
 
879
730
  // src/provider-llamacpp/LlamaCppProvider.ts
880
731
  import {
@@ -894,7 +745,6 @@ class LlamaCppProvider extends AiProvider {
894
745
  "TextEmbeddingTask",
895
746
  "TextRewriterTask",
896
747
  "TextSummaryTask",
897
- "ToolCallingTask",
898
748
  "ModelSearchTask"
899
749
  ];
900
750
  constructor(tasks, streamTasks, reactiveTasks) {
@@ -907,7 +757,7 @@ async function registerLlamaCppWorker() {
907
757
  const workerServer = globalServiceRegistry.get(WORKER_SERVER);
908
758
  new LlamaCppProvider(LLAMACPP_TASKS, LLAMACPP_STREAM_TASKS, LLAMACPP_REACTIVE_TASKS).registerOnWorkerServer(workerServer);
909
759
  workerServer.sendReady();
910
- getLogger6().info("LlamaCpp worker job run functions registered");
760
+ getLogger().info("LlamaCpp worker job run functions registered");
911
761
  }
912
762
  export {
913
763
  streamFromSession,
@@ -916,8 +766,10 @@ export {
916
766
  registerLlamaCppInline,
917
767
  loadSdk,
918
768
  llamaCppTextContexts,
769
+ llamaCppSeedPromptSpread,
919
770
  llamaCppModels,
920
771
  llamaCppEmbeddingContexts,
772
+ llamaCppChatSessionConstructorSpread,
921
773
  getOrLoadModel,
922
774
  getOrCreateTextContext,
923
775
  getOrCreateEmbeddingContext,
@@ -928,4 +780,4 @@ export {
928
780
  disposeLlamaCppResources
929
781
  };
930
782
 
931
- //# debugId=DFC4AD999DD570D964756E2164756E21
783
+ //# debugId=EB49E8246FF54A0364756E2164756E21