@workglow/ai-provider 0.1.2 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (135) hide show
  1. package/dist/common/ToolCallParsers.d.ts +253 -0
  2. package/dist/common/ToolCallParsers.d.ts.map +1 -0
  3. package/dist/provider-anthropic/AnthropicProvider.d.ts +3 -2
  4. package/dist/provider-anthropic/AnthropicProvider.d.ts.map +1 -1
  5. package/dist/provider-anthropic/AnthropicQueuedProvider.d.ts +3 -2
  6. package/dist/provider-anthropic/AnthropicQueuedProvider.d.ts.map +1 -1
  7. package/dist/provider-anthropic/common/Anthropic_Client.d.ts.map +1 -1
  8. package/dist/provider-anthropic/common/Anthropic_JobRunFns.d.ts.map +1 -1
  9. package/dist/provider-anthropic/common/Anthropic_ToolCalling.d.ts +10 -0
  10. package/dist/provider-anthropic/common/Anthropic_ToolCalling.d.ts.map +1 -0
  11. package/dist/provider-anthropic/index.js +3 -4
  12. package/dist/provider-anthropic/index.js.map +3 -3
  13. package/dist/provider-anthropic/runtime.js +225 -8
  14. package/dist/provider-anthropic/runtime.js.map +9 -8
  15. package/dist/provider-chrome/WebBrowserProvider.d.ts +2 -1
  16. package/dist/provider-chrome/WebBrowserProvider.d.ts.map +1 -1
  17. package/dist/provider-chrome/WebBrowserQueuedProvider.d.ts +2 -1
  18. package/dist/provider-chrome/WebBrowserQueuedProvider.d.ts.map +1 -1
  19. package/dist/provider-chrome/index.js +2 -4
  20. package/dist/provider-chrome/index.js.map +3 -3
  21. package/dist/provider-chrome/runtime.js +3 -7
  22. package/dist/provider-chrome/runtime.js.map +4 -4
  23. package/dist/provider-gemini/GoogleGeminiProvider.d.ts +3 -2
  24. package/dist/provider-gemini/GoogleGeminiProvider.d.ts.map +1 -1
  25. package/dist/provider-gemini/GoogleGeminiQueuedProvider.d.ts +3 -2
  26. package/dist/provider-gemini/GoogleGeminiQueuedProvider.d.ts.map +1 -1
  27. package/dist/provider-gemini/common/Gemini_JobRunFns.d.ts.map +1 -1
  28. package/dist/provider-gemini/common/Gemini_ToolCalling.d.ts +10 -0
  29. package/dist/provider-gemini/common/Gemini_ToolCalling.d.ts.map +1 -0
  30. package/dist/provider-gemini/index.js +3 -4
  31. package/dist/provider-gemini/index.js.map +3 -3
  32. package/dist/provider-gemini/runtime.js +188 -8
  33. package/dist/provider-gemini/runtime.js.map +7 -6
  34. package/dist/provider-hf-inference/HfInferenceProvider.d.ts +3 -2
  35. package/dist/provider-hf-inference/HfInferenceProvider.d.ts.map +1 -1
  36. package/dist/provider-hf-inference/HfInferenceQueuedProvider.d.ts +3 -2
  37. package/dist/provider-hf-inference/HfInferenceQueuedProvider.d.ts.map +1 -1
  38. package/dist/provider-hf-inference/common/HFI_JobRunFns.d.ts.map +1 -1
  39. package/dist/provider-hf-inference/common/HFI_ToolCalling.d.ts +10 -0
  40. package/dist/provider-hf-inference/common/HFI_ToolCalling.d.ts.map +1 -0
  41. package/dist/provider-hf-inference/index.js +3 -4
  42. package/dist/provider-hf-inference/index.js.map +3 -3
  43. package/dist/provider-hf-inference/runtime.js +157 -8
  44. package/dist/provider-hf-inference/runtime.js.map +7 -6
  45. package/dist/provider-hf-transformers/HuggingFaceTransformersProvider.d.ts +3 -2
  46. package/dist/provider-hf-transformers/HuggingFaceTransformersProvider.d.ts.map +1 -1
  47. package/dist/provider-hf-transformers/HuggingFaceTransformersQueuedProvider.d.ts +3 -3
  48. package/dist/provider-hf-transformers/HuggingFaceTransformersQueuedProvider.d.ts.map +1 -1
  49. package/dist/provider-hf-transformers/common/HFT_JobRunFns.d.ts +52 -0
  50. package/dist/provider-hf-transformers/common/HFT_JobRunFns.d.ts.map +1 -1
  51. package/dist/provider-hf-transformers/common/HFT_Pipeline.d.ts +1 -1
  52. package/dist/provider-hf-transformers/common/HFT_Pipeline.d.ts.map +1 -1
  53. package/dist/provider-hf-transformers/common/HFT_StructuredGeneration.d.ts.map +1 -1
  54. package/dist/provider-hf-transformers/common/HFT_TextClassification.d.ts.map +1 -1
  55. package/dist/provider-hf-transformers/common/HFT_TextQuestionAnswer.d.ts.map +1 -1
  56. package/dist/provider-hf-transformers/common/HFT_TextSummary.d.ts.map +1 -1
  57. package/dist/provider-hf-transformers/common/HFT_TextTranslation.d.ts.map +1 -1
  58. package/dist/provider-hf-transformers/common/HFT_ToolCalling.d.ts +10 -0
  59. package/dist/provider-hf-transformers/common/HFT_ToolCalling.d.ts.map +1 -0
  60. package/dist/provider-hf-transformers/common/HFT_ToolMarkup.d.ts +20 -0
  61. package/dist/provider-hf-transformers/common/HFT_ToolMarkup.d.ts.map +1 -0
  62. package/dist/provider-hf-transformers/common/HFT_ToolParser.d.ts +67 -0
  63. package/dist/provider-hf-transformers/common/HFT_ToolParser.d.ts.map +1 -0
  64. package/dist/provider-hf-transformers/index.d.ts +1 -0
  65. package/dist/provider-hf-transformers/index.d.ts.map +1 -1
  66. package/dist/provider-hf-transformers/index.js +71 -7
  67. package/dist/provider-hf-transformers/index.js.map +7 -6
  68. package/dist/provider-hf-transformers/runtime.d.ts +1 -0
  69. package/dist/provider-hf-transformers/runtime.d.ts.map +1 -1
  70. package/dist/provider-hf-transformers/runtime.js +1244 -13
  71. package/dist/provider-hf-transformers/runtime.js.map +18 -15
  72. package/dist/provider-llamacpp/LlamaCppProvider.d.ts +3 -2
  73. package/dist/provider-llamacpp/LlamaCppProvider.d.ts.map +1 -1
  74. package/dist/provider-llamacpp/LlamaCppQueuedProvider.d.ts +3 -2
  75. package/dist/provider-llamacpp/LlamaCppQueuedProvider.d.ts.map +1 -1
  76. package/dist/provider-llamacpp/common/LlamaCpp_JobRunFns.d.ts.map +1 -1
  77. package/dist/provider-llamacpp/common/LlamaCpp_ToolCalling.d.ts +10 -0
  78. package/dist/provider-llamacpp/common/LlamaCpp_ToolCalling.d.ts.map +1 -0
  79. package/dist/provider-llamacpp/common/LlamaCpp_ToolParser.d.ts +35 -0
  80. package/dist/provider-llamacpp/common/LlamaCpp_ToolParser.d.ts.map +1 -0
  81. package/dist/provider-llamacpp/index.js +3 -4
  82. package/dist/provider-llamacpp/index.js.map +3 -3
  83. package/dist/provider-llamacpp/runtime.js +1394 -9
  84. package/dist/provider-llamacpp/runtime.js.map +11 -8
  85. package/dist/provider-ollama/OllamaProvider.d.ts +3 -2
  86. package/dist/provider-ollama/OllamaProvider.d.ts.map +1 -1
  87. package/dist/provider-ollama/OllamaQueuedProvider.d.ts +3 -2
  88. package/dist/provider-ollama/OllamaQueuedProvider.d.ts.map +1 -1
  89. package/dist/provider-ollama/common/Ollama_JobRunFns.browser.d.ts +47 -1
  90. package/dist/provider-ollama/common/Ollama_JobRunFns.browser.d.ts.map +1 -1
  91. package/dist/provider-ollama/common/Ollama_JobRunFns.d.ts +46 -0
  92. package/dist/provider-ollama/common/Ollama_JobRunFns.d.ts.map +1 -1
  93. package/dist/provider-ollama/common/Ollama_ToolCalling.d.ts +16 -0
  94. package/dist/provider-ollama/common/Ollama_ToolCalling.d.ts.map +1 -0
  95. package/dist/provider-ollama/index.browser.js +3 -4
  96. package/dist/provider-ollama/index.browser.js.map +3 -3
  97. package/dist/provider-ollama/index.js +3 -4
  98. package/dist/provider-ollama/index.js.map +3 -3
  99. package/dist/provider-ollama/runtime.browser.js +130 -8
  100. package/dist/provider-ollama/runtime.browser.js.map +8 -7
  101. package/dist/provider-ollama/runtime.js +125 -8
  102. package/dist/provider-ollama/runtime.js.map +8 -7
  103. package/dist/provider-openai/OpenAiProvider.d.ts +3 -2
  104. package/dist/provider-openai/OpenAiProvider.d.ts.map +1 -1
  105. package/dist/provider-openai/OpenAiQueuedProvider.d.ts +3 -2
  106. package/dist/provider-openai/OpenAiQueuedProvider.d.ts.map +1 -1
  107. package/dist/provider-openai/common/OpenAI_Client.d.ts.map +1 -1
  108. package/dist/provider-openai/common/OpenAI_JobRunFns.browser.d.ts.map +1 -1
  109. package/dist/provider-openai/common/OpenAI_JobRunFns.d.ts.map +1 -1
  110. package/dist/provider-openai/common/OpenAI_ToolCalling.d.ts +10 -0
  111. package/dist/provider-openai/common/OpenAI_ToolCalling.d.ts.map +1 -0
  112. package/dist/provider-openai/index.browser.js +3 -4
  113. package/dist/provider-openai/index.browser.js.map +3 -3
  114. package/dist/provider-openai/index.js +3 -4
  115. package/dist/provider-openai/index.js.map +3 -3
  116. package/dist/provider-openai/runtime.browser.js +138 -8
  117. package/dist/provider-openai/runtime.browser.js.map +8 -7
  118. package/dist/provider-openai/runtime.js +138 -8
  119. package/dist/provider-openai/runtime.js.map +8 -7
  120. package/dist/provider-tf-mediapipe/TensorFlowMediaPipeProvider.d.ts +2 -1
  121. package/dist/provider-tf-mediapipe/TensorFlowMediaPipeProvider.d.ts.map +1 -1
  122. package/dist/provider-tf-mediapipe/TensorFlowMediaPipeQueuedProvider.d.ts +2 -1
  123. package/dist/provider-tf-mediapipe/TensorFlowMediaPipeQueuedProvider.d.ts.map +1 -1
  124. package/dist/provider-tf-mediapipe/common/TFMP_Download.d.ts.map +1 -1
  125. package/dist/provider-tf-mediapipe/common/TFMP_ImageClassification.d.ts.map +1 -1
  126. package/dist/provider-tf-mediapipe/common/TFMP_Runtime.d.ts +1 -1
  127. package/dist/provider-tf-mediapipe/common/TFMP_Runtime.d.ts.map +1 -1
  128. package/dist/provider-tf-mediapipe/index.js.map +2 -2
  129. package/dist/provider-tf-mediapipe/runtime.js +2 -4
  130. package/dist/provider-tf-mediapipe/runtime.js.map +13 -13
  131. package/dist/test.d.ts +7 -0
  132. package/dist/test.d.ts.map +1 -0
  133. package/dist/test.js +913 -0
  134. package/dist/test.js.map +10 -0
  135. package/package.json +24 -17
@@ -317,6 +317,223 @@ var Anthropic_TextSummary_Stream = async function* (input, model, signal) {
317
317
  yield { type: "finish", data: {} };
318
318
  };
319
319
 
320
+ // src/provider-anthropic/common/Anthropic_ToolCalling.ts
321
+ import { buildToolDescription, filterValidToolCalls } from "@workglow/ai/worker";
322
+ import { parsePartialJson as parsePartialJson2 } from "@workglow/util/worker";
323
+ function mapUserContentToAnthropic(content) {
324
+ if (typeof content === "string")
325
+ return content;
326
+ if (!Array.isArray(content))
327
+ return content;
328
+ const parts = [];
329
+ for (const block of content) {
330
+ if (block.type === "text") {
331
+ parts.push({ type: "text", text: block.text });
332
+ } else if (block.type === "image") {
333
+ parts.push({
334
+ type: "image",
335
+ source: {
336
+ type: "base64",
337
+ media_type: block.mimeType,
338
+ data: block.data
339
+ }
340
+ });
341
+ }
342
+ }
343
+ return parts;
344
+ }
345
+ function mapToolResultContentToAnthropic(content) {
346
+ if (typeof content === "string")
347
+ return content;
348
+ if (!Array.isArray(content))
349
+ return content;
350
+ const parts = [];
351
+ for (const block of content) {
352
+ if (block.type === "text") {
353
+ parts.push({ type: "text", text: block.text });
354
+ } else if (block.type === "image") {
355
+ parts.push({
356
+ type: "image",
357
+ source: {
358
+ type: "base64",
359
+ media_type: block.mimeType,
360
+ data: block.data
361
+ }
362
+ });
363
+ }
364
+ }
365
+ return parts;
366
+ }
367
+ function buildAnthropicMessages(input) {
368
+ const inputMessages = input.messages;
369
+ if (!inputMessages || inputMessages.length === 0) {
370
+ return [{ role: "user", content: input.prompt }];
371
+ }
372
+ const messages = [];
373
+ for (const msg of inputMessages) {
374
+ if (msg.role === "user") {
375
+ messages.push({ role: "user", content: mapUserContentToAnthropic(msg.content) });
376
+ } else if (msg.role === "assistant" && Array.isArray(msg.content)) {
377
+ const blocks = msg.content.map((block) => {
378
+ if (block.type === "text")
379
+ return { type: "text", text: block.text };
380
+ if (block.type === "tool_use") {
381
+ return { type: "tool_use", id: block.id, name: block.name, input: block.input };
382
+ }
383
+ return block;
384
+ });
385
+ messages.push({ role: "assistant", content: blocks });
386
+ } else if (msg.role === "tool" && Array.isArray(msg.content)) {
387
+ const blocks = msg.content.map((block) => ({
388
+ type: "tool_result",
389
+ tool_use_id: block.tool_use_id,
390
+ content: mapToolResultContentToAnthropic(block.content),
391
+ ...block.is_error && { is_error: true }
392
+ }));
393
+ messages.push({ role: "user", content: blocks });
394
+ }
395
+ }
396
+ return messages;
397
+ }
398
+ function mapAnthropicToolChoice(toolChoice) {
399
+ if (!toolChoice || toolChoice === "auto")
400
+ return { type: "auto" };
401
+ if (toolChoice === "none")
402
+ return;
403
+ if (toolChoice === "required")
404
+ return { type: "any" };
405
+ return { type: "tool", name: toolChoice };
406
+ }
407
+ var Anthropic_ToolCalling = async (input, model, update_progress, signal) => {
408
+ update_progress(0, "Starting Anthropic tool calling");
409
+ const client = await getClient(model);
410
+ const modelName = getModelName(model);
411
+ const tools = input.tools.map((t) => ({
412
+ name: t.name,
413
+ description: buildToolDescription(t),
414
+ input_schema: t.inputSchema
415
+ }));
416
+ const toolChoice = mapAnthropicToolChoice(input.toolChoice);
417
+ const messages = buildAnthropicMessages(input);
418
+ const params = {
419
+ model: modelName,
420
+ messages,
421
+ max_tokens: getMaxTokens(input, model),
422
+ temperature: input.temperature
423
+ };
424
+ if (input.systemPrompt) {
425
+ params.system = input.systemPrompt;
426
+ }
427
+ if (toolChoice !== undefined) {
428
+ params.tools = tools;
429
+ params.tool_choice = toolChoice;
430
+ }
431
+ const response = await client.messages.create(params, { signal });
432
+ const text = response.content.filter((b) => b.type === "text").map((b) => b.text).join("");
433
+ const toolCalls = [];
434
+ response.content.filter((b) => b.type === "tool_use").forEach((b) => {
435
+ toolCalls.push({
436
+ id: b.id,
437
+ name: b.name,
438
+ input: b.input ?? {}
439
+ });
440
+ });
441
+ update_progress(100, "Completed Anthropic tool calling");
442
+ return { text, toolCalls: filterValidToolCalls(toolCalls, input.tools) };
443
+ };
444
+ var Anthropic_ToolCalling_Stream = async function* (input, model, signal) {
445
+ const client = await getClient(model);
446
+ const modelName = getModelName(model);
447
+ const tools = input.tools.map((t) => ({
448
+ name: t.name,
449
+ description: buildToolDescription(t),
450
+ input_schema: t.inputSchema
451
+ }));
452
+ const toolChoice = mapAnthropicToolChoice(input.toolChoice);
453
+ const messages = buildAnthropicMessages(input);
454
+ const params = {
455
+ model: modelName,
456
+ messages,
457
+ max_tokens: getMaxTokens(input, model),
458
+ temperature: input.temperature
459
+ };
460
+ if (input.systemPrompt) {
461
+ params.system = input.systemPrompt;
462
+ }
463
+ if (toolChoice !== undefined) {
464
+ params.tools = tools;
465
+ params.tool_choice = toolChoice;
466
+ }
467
+ const stream = client.messages.stream(params, { signal });
468
+ const blockMeta = new Map;
469
+ const toolCallsByBlockIndex = new Map;
470
+ const toolCallsInStreamOrder = () => [...toolCallsByBlockIndex.entries()].sort((a, b) => a[0] - b[0]).map(([, tc]) => tc);
471
+ for await (const event of stream) {
472
+ if (event.type === "content_block_start") {
473
+ const block = event.content_block;
474
+ const index = event.index;
475
+ if (block.type === "tool_use") {
476
+ blockMeta.set(index, {
477
+ type: "tool_use",
478
+ id: block.id,
479
+ name: block.name,
480
+ json: ""
481
+ });
482
+ } else if (block.type === "text") {
483
+ blockMeta.set(index, { type: "text", json: "" });
484
+ }
485
+ } else if (event.type === "content_block_delta") {
486
+ const index = event.index;
487
+ const delta = event.delta;
488
+ if (delta.type === "text_delta") {
489
+ yield { type: "text-delta", port: "text", textDelta: delta.text };
490
+ } else if (delta.type === "input_json_delta") {
491
+ const meta = blockMeta.get(index);
492
+ if (meta) {
493
+ meta.json += delta.partial_json;
494
+ let parsedInput;
495
+ try {
496
+ parsedInput = JSON.parse(meta.json);
497
+ } catch {
498
+ const partial = parsePartialJson2(meta.json);
499
+ parsedInput = partial ?? {};
500
+ }
501
+ toolCallsByBlockIndex.set(index, {
502
+ id: meta.id ?? "",
503
+ name: meta.name ?? "",
504
+ input: parsedInput
505
+ });
506
+ yield {
507
+ type: "object-delta",
508
+ port: "toolCalls",
509
+ objectDelta: toolCallsInStreamOrder()
510
+ };
511
+ }
512
+ }
513
+ } else if (event.type === "content_block_stop") {
514
+ const index = event.index;
515
+ const meta = blockMeta.get(index);
516
+ if (meta?.type === "tool_use") {
517
+ let finalInput;
518
+ try {
519
+ finalInput = JSON.parse(meta.json);
520
+ } catch {
521
+ finalInput = parsePartialJson2(meta.json) ?? {};
522
+ }
523
+ const id = meta.id ?? "";
524
+ toolCallsByBlockIndex.set(index, { id, name: meta.name ?? "", input: finalInput });
525
+ yield {
526
+ type: "object-delta",
527
+ port: "toolCalls",
528
+ objectDelta: toolCallsInStreamOrder()
529
+ };
530
+ }
531
+ blockMeta.delete(index);
532
+ }
533
+ }
534
+ yield { type: "finish", data: { text: "", toolCalls: [] } };
535
+ };
536
+
320
537
  // src/provider-anthropic/common/Anthropic_JobRunFns.ts
321
538
  var ANTHROPIC_TASKS = {
322
539
  CountTokensTask: Anthropic_CountTokens,
@@ -325,22 +542,22 @@ var ANTHROPIC_TASKS = {
325
542
  TextRewriterTask: Anthropic_TextRewriter,
326
543
  TextSummaryTask: Anthropic_TextSummary,
327
544
  StructuredGenerationTask: Anthropic_StructuredGeneration,
545
+ ToolCallingTask: Anthropic_ToolCalling,
328
546
  ModelSearchTask: Anthropic_ModelSearch
329
547
  };
330
548
  var ANTHROPIC_STREAM_TASKS = {
331
549
  TextGenerationTask: Anthropic_TextGeneration_Stream,
332
550
  TextRewriterTask: Anthropic_TextRewriter_Stream,
333
551
  TextSummaryTask: Anthropic_TextSummary_Stream,
334
- StructuredGenerationTask: Anthropic_StructuredGeneration_Stream
552
+ StructuredGenerationTask: Anthropic_StructuredGeneration_Stream,
553
+ ToolCallingTask: Anthropic_ToolCalling_Stream
335
554
  };
336
555
  var ANTHROPIC_REACTIVE_TASKS = {
337
556
  CountTokensTask: Anthropic_CountTokens_Reactive
338
557
  };
339
558
 
340
559
  // src/provider-anthropic/AnthropicQueuedProvider.ts
341
- import {
342
- AiProvider
343
- } from "@workglow/ai";
560
+ import { AiProvider } from "@workglow/ai";
344
561
  class AnthropicQueuedProvider extends AiProvider {
345
562
  name = ANTHROPIC;
346
563
  displayName = "Anthropic";
@@ -353,6 +570,7 @@ class AnthropicQueuedProvider extends AiProvider {
353
570
  "TextRewriterTask",
354
571
  "TextSummaryTask",
355
572
  "StructuredGenerationTask",
573
+ "ToolCallingTask",
356
574
  "ModelSearchTask"
357
575
  ];
358
576
  constructor(tasks, streamTasks, reactiveTasks) {
@@ -368,9 +586,7 @@ async function registerAnthropicInline(options) {
368
586
  import { getLogger as getLogger2, globalServiceRegistry, WORKER_SERVER } from "@workglow/util/worker";
369
587
 
370
588
  // src/provider-anthropic/AnthropicProvider.ts
371
- import {
372
- AiProvider as AiProvider2
373
- } from "@workglow/ai/worker";
589
+ import { AiProvider as AiProvider2 } from "@workglow/ai/worker";
374
590
  class AnthropicProvider extends AiProvider2 {
375
591
  name = ANTHROPIC;
376
592
  displayName = "Anthropic";
@@ -383,6 +599,7 @@ class AnthropicProvider extends AiProvider2 {
383
599
  "TextRewriterTask",
384
600
  "TextSummaryTask",
385
601
  "StructuredGenerationTask",
602
+ "ToolCallingTask",
386
603
  "ModelSearchTask"
387
604
  ];
388
605
  constructor(tasks, streamTasks, reactiveTasks) {
@@ -406,4 +623,4 @@ export {
406
623
  getClient
407
624
  };
408
625
 
409
- //# debugId=3271A25C52C755E164756E2164756E21
626
+ //# debugId=2110287016120EFA64756E2164756E21
@@ -1,24 +1,25 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../src/provider-anthropic/common/Anthropic_Client.ts", "../src/common/modelSearchQuery.ts", "../src/provider-anthropic/common/Anthropic_Constants.ts", "../src/provider-anthropic/common/Anthropic_ModelSearch.ts", "../src/provider-anthropic/common/Anthropic_CountTokens.ts", "../src/provider-anthropic/common/Anthropic_ModelInfo.ts", "../src/provider-anthropic/common/Anthropic_StructuredGeneration.ts", "../src/provider-anthropic/common/Anthropic_TextGeneration.ts", "../src/provider-anthropic/common/Anthropic_TextRewriter.ts", "../src/provider-anthropic/common/Anthropic_TextSummary.ts", "../src/provider-anthropic/common/Anthropic_JobRunFns.ts", "../src/provider-anthropic/AnthropicQueuedProvider.ts", "../src/provider-anthropic/registerAnthropicInline.ts", "../src/provider-anthropic/registerAnthropicWorker.ts", "../src/provider-anthropic/AnthropicProvider.ts"],
3
+ "sources": ["../src/provider-anthropic/common/Anthropic_Client.ts", "../src/common/modelSearchQuery.ts", "../src/provider-anthropic/common/Anthropic_Constants.ts", "../src/provider-anthropic/common/Anthropic_ModelSearch.ts", "../src/provider-anthropic/common/Anthropic_CountTokens.ts", "../src/provider-anthropic/common/Anthropic_ModelInfo.ts", "../src/provider-anthropic/common/Anthropic_StructuredGeneration.ts", "../src/provider-anthropic/common/Anthropic_TextGeneration.ts", "../src/provider-anthropic/common/Anthropic_TextRewriter.ts", "../src/provider-anthropic/common/Anthropic_TextSummary.ts", "../src/provider-anthropic/common/Anthropic_ToolCalling.ts", "../src/provider-anthropic/common/Anthropic_JobRunFns.ts", "../src/provider-anthropic/AnthropicQueuedProvider.ts", "../src/provider-anthropic/registerAnthropicInline.ts", "../src/provider-anthropic/registerAnthropicWorker.ts", "../src/provider-anthropic/AnthropicProvider.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 { AnthropicModelConfig } from \"./Anthropic_ModelSchema\";\n\nlet _sdk: typeof import(\"@anthropic-ai/sdk\") | undefined;\n\nexport async function loadAnthropicSDK() {\n if (!_sdk) {\n try {\n _sdk = await import(\"@anthropic-ai/sdk\");\n } catch {\n throw new Error(\n \"@anthropic-ai/sdk is required for Anthropic tasks. Install it with: bun add @anthropic-ai/sdk\"\n );\n }\n }\n return _sdk.default;\n}\n\ninterface ResolvedProviderConfig {\n readonly credential_key?: string;\n readonly api_key?: string;\n readonly model_name?: string;\n readonly base_url?: string;\n readonly max_tokens?: number;\n}\n\nexport async function getClient(model: AnthropicModelConfig | undefined) {\n const Anthropic = await loadAnthropicSDK();\n const config = model?.provider_config as ResolvedProviderConfig | undefined;\n const apiKey =\n config?.credential_key ||\n config?.api_key ||\n (typeof process !== \"undefined\" ? process.env?.ANTHROPIC_API_KEY : undefined);\n if (!apiKey) {\n throw new Error(\n \"Missing Anthropic API key: set provider_config.credential_key or the ANTHROPIC_API_KEY environment variable.\"\n );\n }\n try {\n return new Anthropic({\n apiKey,\n baseURL: config?.base_url || undefined,\n dangerouslyAllowBrowser:\n typeof globalThis.document !== \"undefined\" ||\n \"WorkerGlobalScope\" in globalThis,\n });\n } catch (err) {\n throw new Error(\n `Failed to create Anthropic client: ${err instanceof Error ? err.message : \"unknown error\"}`\n );\n }\n}\n\nexport function getModelName(model: AnthropicModelConfig | 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 function getMaxTokens(\n input: { maxTokens?: number },\n model: AnthropicModelConfig | undefined\n): number {\n return input.maxTokens ?? model?.provider_config?.max_tokens ?? 1024;\n}\n",
5
+ "/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type { AnthropicModelConfig } from \"./Anthropic_ModelSchema\";\n\nlet _sdk: typeof import(\"@anthropic-ai/sdk\") | undefined;\n\nexport async function loadAnthropicSDK() {\n if (!_sdk) {\n try {\n _sdk = await import(\"@anthropic-ai/sdk\");\n } catch {\n throw new Error(\n \"@anthropic-ai/sdk is required for Anthropic tasks. Install it with: bun add @anthropic-ai/sdk\"\n );\n }\n }\n return _sdk.default;\n}\n\ninterface ResolvedProviderConfig {\n readonly credential_key?: string;\n readonly api_key?: string;\n readonly model_name?: string;\n readonly base_url?: string;\n readonly max_tokens?: number;\n}\n\nexport async function getClient(model: AnthropicModelConfig | undefined) {\n const Anthropic = await loadAnthropicSDK();\n const config = model?.provider_config as ResolvedProviderConfig | undefined;\n const apiKey =\n config?.credential_key ||\n config?.api_key ||\n (typeof process !== \"undefined\" ? process.env?.ANTHROPIC_API_KEY : undefined);\n if (!apiKey) {\n throw new Error(\n \"Missing Anthropic API key: set provider_config.credential_key or the ANTHROPIC_API_KEY environment variable.\"\n );\n }\n try {\n return new Anthropic({\n apiKey,\n baseURL: config?.base_url || undefined,\n dangerouslyAllowBrowser:\n typeof globalThis.document !== \"undefined\" || \"WorkerGlobalScope\" in globalThis,\n });\n } catch (err) {\n throw new Error(\n `Failed to create Anthropic client: ${err instanceof Error ? err.message : \"unknown error\"}`\n );\n }\n}\n\nexport function getModelName(model: AnthropicModelConfig | 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 function getMaxTokens(\n input: { maxTokens?: number },\n model: AnthropicModelConfig | undefined\n): number {\n return input.maxTokens ?? model?.provider_config?.max_tokens ?? 1024;\n}\n",
6
6
  "/**\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\";\n\n/**\n * Normalized search string for model search, or undefined when absent or whitespace-only.\n */\nexport function normalizedModelSearchQuery(query: string | undefined): string | undefined {\n const t = query?.trim();\n return t ? t.toLowerCase() : undefined;\n}\n\n/**\n * Filter static/SDK model rows by optional query (substring match on label and id).\n */\nexport function filterLabeledModelsByQuery(\n models: ReadonlyArray<{ label: string; value: string }>,\n query: string | undefined\n): Array<{ label: string; value: string }> {\n const q = normalizedModelSearchQuery(query);\n if (!q) return [...models];\n return models.filter(\n (m) => m.value.toLowerCase().includes(q) || m.label.toLowerCase().includes(q)\n );\n}\n\n/**\n * Filter {@link ModelSearchResultItem} rows by optional query.\n */\nexport function filterModelSearchResultsByQuery(\n results: ModelSearchResultItem[],\n query: string | undefined\n): ModelSearchResultItem[] {\n const q = normalizedModelSearchQuery(query);\n if (!q) return results;\n return results.filter(\n (m) =>\n m.id.toLowerCase().includes(q) ||\n m.label.toLowerCase().includes(q) ||\n m.description.toLowerCase().includes(q)\n );\n}\n",
7
7
  "/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nexport const ANTHROPIC = \"ANTHROPIC\";\n",
8
8
  "/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type {\n AiProviderRunFn,\n ModelSearchResultItem,\n ModelSearchTaskInput,\n ModelSearchTaskOutput,\n} from \"@workglow/ai\";\nimport { filterLabeledModelsByQuery } from \"../../common/modelSearchQuery\";\nimport { ANTHROPIC } from \"./Anthropic_Constants\";\nimport { loadAnthropicSDK } from \"./Anthropic_Client\";\n\nconst ANTHROPIC_FALLBACK: Array<{ label: string; value: string }> = [\n { label: \"claude-opus-4-20250514\", value: \"claude-opus-4-20250514\" },\n { label: \"claude-sonnet-4-20250514\", value: \"claude-sonnet-4-20250514\" },\n { label: \"claude-haiku-4-5-20251001\", value: \"claude-haiku-4-5-20251001\" },\n { label: \"claude-3-5-sonnet-20241022\", value: \"claude-3-5-sonnet-20241022\" },\n { label: \"claude-3-5-haiku-20241022\", value: \"claude-3-5-haiku-20241022\" },\n];\n\nasync function listAnthropicModels(): Promise<Array<{ label: string; value: string }>> {\n const Anthropic = await loadAnthropicSDK();\n const client = new Anthropic();\n const models: Array<{ label: string; value: string }> = [];\n for await (const m of client.beta.models.list()) {\n models.push({ label: `${m.id} ${m.display_name}`, value: m.id });\n }\n return models;\n}\n\nfunction mapModelList(models: Array<{ label: string; value: string }>): ModelSearchResultItem[] {\n return models.map((m) => ({\n id: m.value,\n label: m.label,\n description: \"\",\n record: {\n model_id: m.value,\n provider: ANTHROPIC,\n title: m.value,\n description: \"\",\n tasks: [],\n provider_config: { model_name: m.value },\n metadata: {},\n },\n raw: m,\n }));\n}\n\nexport const Anthropic_ModelSearch: AiProviderRunFn<\n ModelSearchTaskInput,\n ModelSearchTaskOutput\n> = async (input) => {\n let models: Array<{ label: string; value: string }>;\n try {\n models = await listAnthropicModels();\n } catch {\n models = ANTHROPIC_FALLBACK;\n }\n models = filterLabeledModelsByQuery(models, input.query);\n return { results: mapModelList(models) };\n};\n",
9
9
  "/**\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 { getLogger } from \"@workglow/util/worker\";\nimport type { AnthropicModelConfig } from \"./Anthropic_ModelSchema\";\nimport { getClient, getModelName } from \"./Anthropic_Client\";\n\nexport const Anthropic_CountTokens: AiProviderRunFn<\n CountTokensTaskInput,\n CountTokensTaskOutput,\n AnthropicModelConfig\n> = async (input, model, onProgress, signal) => {\n const client = await getClient(model);\n const result = await client.messages.countTokens({\n model: getModelName(model),\n messages: [{ role: \"user\", content: input.text }],\n });\n return { count: result.input_tokens };\n};\n\nexport const Anthropic_CountTokens_Reactive: AiProviderReactiveRunFn<\n CountTokensTaskInput,\n CountTokensTaskOutput,\n AnthropicModelConfig\n> = async (input, _output, _model) => {\n return { count: Math.ceil(input.text.length / 4) };\n};\n",
10
10
  "/**\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 { AnthropicModelConfig } from \"./Anthropic_ModelSchema\";\n\nexport const Anthropic_ModelInfo: AiProviderRunFn<\n ModelInfoTaskInput,\n ModelInfoTaskOutput,\n AnthropicModelConfig\n> = async (input) => {\n return {\n model: input.model,\n is_local: false,\n is_remote: true,\n supports_browser: true,\n supports_node: true,\n is_cached: false,\n is_loaded: false,\n file_sizes: null,\n };\n};\n",
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 AiProviderStreamFn,\n StructuredGenerationTaskInput,\n StructuredGenerationTaskOutput,\n} from \"@workglow/ai\";\nimport type { StreamEvent } from \"@workglow/task-graph\";\nimport { parsePartialJson } from \"@workglow/util/worker\";\nimport type { AnthropicModelConfig } from \"./Anthropic_ModelSchema\";\nimport { getClient, getMaxTokens, getModelName } from \"./Anthropic_Client\";\n\nexport const Anthropic_StructuredGeneration: AiProviderRunFn<\n StructuredGenerationTaskInput,\n StructuredGenerationTaskOutput,\n AnthropicModelConfig\n> = async (input, model, update_progress, signal, outputSchema) => {\n update_progress(0, \"Starting Anthropic structured generation\");\n const client = await getClient(model);\n const modelName = getModelName(model);\n\n const schema = input.outputSchema ?? outputSchema;\n\n const response = await client.messages.create(\n {\n model: modelName,\n messages: [{ role: \"user\", content: input.prompt as string }],\n tools: [\n {\n name: \"structured_output\",\n description: \"Output structured data conforming to the schema\",\n input_schema: schema as any,\n },\n ],\n tool_choice: { type: \"tool\" as const, name: \"structured_output\" },\n max_tokens: getMaxTokens(input, model),\n },\n { signal }\n );\n\n const toolBlock = response.content.find((b: any) => b.type === \"tool_use\") as any;\n const object = toolBlock?.input ?? {};\n\n update_progress(100, \"Completed Anthropic structured generation\");\n return { object };\n};\n\nexport const Anthropic_StructuredGeneration_Stream: AiProviderStreamFn<\n StructuredGenerationTaskInput,\n StructuredGenerationTaskOutput,\n AnthropicModelConfig\n> = async function* (\n input,\n model,\n signal,\n outputSchema\n): AsyncIterable<StreamEvent<StructuredGenerationTaskOutput>> {\n const client = await getClient(model);\n const modelName = getModelName(model);\n\n const schema = input.outputSchema ?? outputSchema;\n\n const stream = client.messages.stream(\n {\n model: modelName,\n messages: [{ role: \"user\", content: input.prompt as string }],\n tools: [\n {\n name: \"structured_output\",\n description: \"Output structured data conforming to the schema\",\n input_schema: schema as any,\n },\n ],\n tool_choice: { type: \"tool\" as const, name: \"structured_output\" },\n max_tokens: getMaxTokens(input, model),\n },\n { signal }\n );\n\n let accumulatedJson = \"\";\n for await (const event of stream) {\n if (event.type === \"content_block_delta\" && (event.delta as any).type === \"input_json_delta\") {\n accumulatedJson += (event.delta as any).partial_json;\n const partial = parsePartialJson(accumulatedJson);\n if (partial !== undefined) {\n yield { type: \"object-delta\", port: \"object\", objectDelta: partial };\n }\n }\n }\n\n let finalObject: Record<string, unknown>;\n try {\n finalObject = JSON.parse(accumulatedJson);\n } catch {\n finalObject = parsePartialJson(accumulatedJson) ?? {};\n }\n yield { type: \"finish\", data: { object: finalObject } as StructuredGenerationTaskOutput };\n};\n",
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 AiProviderStreamFn,\n StructuredGenerationTaskInput,\n StructuredGenerationTaskOutput,\n} from \"@workglow/ai\";\nimport type { StreamEvent } from \"@workglow/task-graph\";\nimport { parsePartialJson } from \"@workglow/util/worker\";\nimport type { AnthropicModelConfig } from \"./Anthropic_ModelSchema\";\nimport { getClient, getMaxTokens, getModelName } from \"./Anthropic_Client\";\n\nexport const Anthropic_StructuredGeneration: AiProviderRunFn<\n StructuredGenerationTaskInput,\n StructuredGenerationTaskOutput,\n AnthropicModelConfig\n> = async (input, model, update_progress, signal, outputSchema) => {\n update_progress(0, \"Starting Anthropic structured generation\");\n const client = await getClient(model);\n const modelName = getModelName(model);\n\n const schema = input.outputSchema ?? outputSchema;\n\n const response = await client.messages.create(\n {\n model: modelName,\n messages: [{ role: \"user\", content: input.prompt as string }],\n tools: [\n {\n name: \"structured_output\",\n description: \"Output structured data conforming to the schema\",\n input_schema: schema as any,\n },\n ],\n tool_choice: { type: \"tool\" as const, name: \"structured_output\" },\n max_tokens: getMaxTokens(input, model),\n },\n { signal }\n );\n\n const toolBlock = response.content.find((b: any) => b.type === \"tool_use\") as any;\n const object = toolBlock?.input ?? {};\n\n update_progress(100, \"Completed Anthropic structured generation\");\n return { object };\n};\n\nexport const Anthropic_StructuredGeneration_Stream: AiProviderStreamFn<\n StructuredGenerationTaskInput,\n StructuredGenerationTaskOutput,\n AnthropicModelConfig\n> = async function* (\n input,\n model,\n signal,\n outputSchema\n): AsyncIterable<StreamEvent<StructuredGenerationTaskOutput>> {\n const client = await getClient(model);\n const modelName = getModelName(model);\n\n const schema = input.outputSchema ?? outputSchema;\n\n const stream = client.messages.stream(\n {\n model: modelName,\n messages: [{ role: \"user\", content: input.prompt as string }],\n tools: [\n {\n name: \"structured_output\",\n description: \"Output structured data conforming to the schema\",\n input_schema: schema as any,\n },\n ],\n tool_choice: { type: \"tool\" as const, name: \"structured_output\" },\n max_tokens: getMaxTokens(input, model),\n },\n { signal }\n );\n\n let accumulatedJson = \"\";\n for await (const event of stream) {\n if (event.type === \"content_block_delta\" && event.delta.type === \"input_json_delta\") {\n accumulatedJson += event.delta.partial_json;\n const partial = parsePartialJson(accumulatedJson);\n if (partial !== undefined) {\n yield { type: \"object-delta\", port: \"object\", objectDelta: partial };\n }\n }\n }\n\n let finalObject: Record<string, unknown>;\n try {\n finalObject = JSON.parse(accumulatedJson);\n } catch {\n finalObject = parsePartialJson(accumulatedJson) ?? {};\n }\n yield { type: \"finish\", data: { object: finalObject } as StructuredGenerationTaskOutput };\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 {\n AiProviderRunFn,\n AiProviderStreamFn,\n TextGenerationTaskInput,\n TextGenerationTaskOutput,\n} from \"@workglow/ai\";\nimport type { StreamEvent } from \"@workglow/task-graph\";\nimport { getLogger } from \"@workglow/util/worker\";\nimport type { AnthropicModelConfig } from \"./Anthropic_ModelSchema\";\nimport { getClient, getMaxTokens, getModelName } from \"./Anthropic_Client\";\n\nexport const Anthropic_TextGeneration: AiProviderRunFn<\n TextGenerationTaskInput,\n TextGenerationTaskOutput,\n AnthropicModelConfig\n> = async (input, model, update_progress, signal) => {\n const logger = getLogger();\n const timerLabel = `anthropic:TextGeneration:${model?.provider_config?.model_name}`;\n logger.time(timerLabel, { model: model?.provider_config?.model_name });\n\n update_progress(0, \"Starting Anthropic text generation\");\n const client = await getClient(model);\n const modelName = getModelName(model);\n\n const response = await client.messages.create(\n {\n model: modelName,\n messages: [{ role: \"user\", content: input.prompt }],\n max_tokens: getMaxTokens(input, model),\n temperature: input.temperature,\n top_p: input.topP,\n },\n { signal }\n );\n\n const text = response.content[0]?.type === \"text\" ? response.content[0].text : \"\";\n\n update_progress(100, \"Completed Anthropic text generation\");\n logger.timeEnd(timerLabel, { model: model?.provider_config?.model_name });\n return { text };\n};\n\nexport const Anthropic_TextGeneration_Stream: AiProviderStreamFn<\n TextGenerationTaskInput,\n TextGenerationTaskOutput,\n AnthropicModelConfig\n> = async function* (input, model, signal): AsyncIterable<StreamEvent<TextGenerationTaskOutput>> {\n const client = await getClient(model);\n const modelName = getModelName(model);\n\n const stream = client.messages.stream(\n {\n model: modelName,\n messages: [{ role: \"user\", content: input.prompt }],\n max_tokens: getMaxTokens(input, model),\n temperature: input.temperature,\n top_p: input.topP,\n },\n { signal }\n );\n\n for await (const event of stream) {\n if (event.type === \"content_block_delta\" && event.delta.type === \"text_delta\") {\n yield { type: \"text-delta\", port: \"text\", textDelta: event.delta.text };\n }\n }\n yield { type: \"finish\", data: {} as TextGenerationTaskOutput };\n};\n",
13
13
  "/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type {\n AiProviderRunFn,\n AiProviderStreamFn,\n TextRewriterTaskInput,\n TextRewriterTaskOutput,\n} from \"@workglow/ai\";\nimport type { StreamEvent } from \"@workglow/task-graph\";\nimport { getLogger } from \"@workglow/util/worker\";\nimport type { AnthropicModelConfig } from \"./Anthropic_ModelSchema\";\nimport { getClient, getMaxTokens, getModelName } from \"./Anthropic_Client\";\n\nexport const Anthropic_TextRewriter: AiProviderRunFn<\n TextRewriterTaskInput,\n TextRewriterTaskOutput,\n AnthropicModelConfig\n> = async (input, model, update_progress, signal) => {\n update_progress(0, \"Starting Anthropic text rewriting\");\n const client = await getClient(model);\n const modelName = getModelName(model);\n\n const response = await client.messages.create(\n {\n model: modelName,\n system: input.prompt,\n messages: [{ role: \"user\", content: input.text }],\n max_tokens: getMaxTokens({}, model),\n },\n { signal }\n );\n\n const text = response.content[0]?.type === \"text\" ? response.content[0].text : \"\";\n\n update_progress(100, \"Completed Anthropic text rewriting\");\n return { text };\n};\n\nexport const Anthropic_TextRewriter_Stream: AiProviderStreamFn<\n TextRewriterTaskInput,\n TextRewriterTaskOutput,\n AnthropicModelConfig\n> = async function* (input, model, signal): AsyncIterable<StreamEvent<TextRewriterTaskOutput>> {\n const client = await getClient(model);\n const modelName = getModelName(model);\n\n const stream = client.messages.stream(\n {\n model: modelName,\n system: input.prompt,\n messages: [{ role: \"user\", content: input.text }],\n max_tokens: getMaxTokens({}, model),\n },\n { signal }\n );\n\n for await (const event of stream) {\n if (event.type === \"content_block_delta\" && event.delta.type === \"text_delta\") {\n yield { type: \"text-delta\", port: \"text\", textDelta: event.delta.text };\n }\n }\n yield { type: \"finish\", data: {} as TextRewriterTaskOutput };\n};\n",
14
14
  "/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type {\n AiProviderRunFn,\n AiProviderStreamFn,\n TextSummaryTaskInput,\n TextSummaryTaskOutput,\n} from \"@workglow/ai\";\nimport type { StreamEvent } from \"@workglow/task-graph\";\nimport { getLogger } from \"@workglow/util/worker\";\nimport type { AnthropicModelConfig } from \"./Anthropic_ModelSchema\";\nimport { getClient, getMaxTokens, getModelName } from \"./Anthropic_Client\";\n\nexport const Anthropic_TextSummary: AiProviderRunFn<\n TextSummaryTaskInput,\n TextSummaryTaskOutput,\n AnthropicModelConfig\n> = async (input, model, update_progress, signal) => {\n update_progress(0, \"Starting Anthropic text summarization\");\n const client = await getClient(model);\n const modelName = getModelName(model);\n\n const response = await client.messages.create(\n {\n model: modelName,\n system: \"Summarize the following text concisely.\",\n messages: [{ role: \"user\", content: input.text }],\n max_tokens: getMaxTokens({}, model),\n },\n { signal }\n );\n\n const text = response.content[0]?.type === \"text\" ? response.content[0].text : \"\";\n\n update_progress(100, \"Completed Anthropic text summarization\");\n return { text };\n};\n\nexport const Anthropic_TextSummary_Stream: AiProviderStreamFn<\n TextSummaryTaskInput,\n TextSummaryTaskOutput,\n AnthropicModelConfig\n> = async function* (input, model, signal): AsyncIterable<StreamEvent<TextSummaryTaskOutput>> {\n const client = await getClient(model);\n const modelName = getModelName(model);\n\n const stream = client.messages.stream(\n {\n model: modelName,\n system: \"Summarize the following text concisely.\",\n messages: [{ role: \"user\", content: input.text }],\n max_tokens: getMaxTokens({}, model),\n },\n { signal }\n );\n\n for await (const event of stream) {\n if (event.type === \"content_block_delta\" && event.delta.type === \"text_delta\") {\n yield { type: \"text-delta\", port: \"text\", textDelta: event.delta.text };\n }\n }\n yield { type: \"finish\", data: {} as TextSummaryTaskOutput };\n};\n",
15
- "/**\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 { AnthropicModelConfig } from \"./Anthropic_ModelSchema\";\nimport { Anthropic_ModelSearch } from \"./Anthropic_ModelSearch\";\n\nexport { getClient, getMaxTokens, getModelName, loadAnthropicSDK } from \"./Anthropic_Client\";\n\nimport { Anthropic_CountTokens, Anthropic_CountTokens_Reactive } from \"./Anthropic_CountTokens\";\nimport { Anthropic_ModelInfo } from \"./Anthropic_ModelInfo\";\nimport {\n Anthropic_StructuredGeneration,\n Anthropic_StructuredGeneration_Stream,\n} from \"./Anthropic_StructuredGeneration\";\nimport {\n Anthropic_TextGeneration,\n Anthropic_TextGeneration_Stream,\n} from \"./Anthropic_TextGeneration\";\nimport { Anthropic_TextRewriter, Anthropic_TextRewriter_Stream } from \"./Anthropic_TextRewriter\";\nimport { Anthropic_TextSummary, Anthropic_TextSummary_Stream } from \"./Anthropic_TextSummary\";\nexport const ANTHROPIC_TASKS: Record<string, AiProviderRunFn<any, any, AnthropicModelConfig>> = {\n CountTokensTask: Anthropic_CountTokens,\n ModelInfoTask: Anthropic_ModelInfo,\n TextGenerationTask: Anthropic_TextGeneration,\n TextRewriterTask: Anthropic_TextRewriter,\n TextSummaryTask: Anthropic_TextSummary,\n StructuredGenerationTask: Anthropic_StructuredGeneration,\n ModelSearchTask: Anthropic_ModelSearch,\n};\n\nexport const ANTHROPIC_STREAM_TASKS: Record<\n string,\n AiProviderStreamFn<any, any, AnthropicModelConfig>\n> = {\n TextGenerationTask: Anthropic_TextGeneration_Stream,\n TextRewriterTask: Anthropic_TextRewriter_Stream,\n TextSummaryTask: Anthropic_TextSummary_Stream,\n StructuredGenerationTask: Anthropic_StructuredGeneration_Stream,\n};\n\nexport const ANTHROPIC_REACTIVE_TASKS: Record<\n string,\n AiProviderReactiveRunFn<any, any, AnthropicModelConfig>\n> = {\n CountTokensTask: Anthropic_CountTokens_Reactive,\n};\n",
16
- "/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {\n AiProvider,\n type AiProviderReactiveRunFn,\n type AiProviderRunFn,\n type AiProviderStreamFn,\n} from \"@workglow/ai\";\nimport { ANTHROPIC } from \"./common/Anthropic_Constants\";\nimport type { AnthropicModelConfig } from \"./common/Anthropic_ModelSchema\";\n\n/** Main-thread registration (inline or worker-backed). No queue uses direct execution. */\nexport class AnthropicQueuedProvider extends AiProvider<AnthropicModelConfig> {\n readonly name = ANTHROPIC;\n readonly displayName = \"Anthropic\";\n readonly isLocal = false;\n readonly supportsBrowser = true;\n\n readonly taskTypes = [\n \"CountTokensTask\",\n \"ModelInfoTask\",\n \"TextGenerationTask\",\n \"TextRewriterTask\",\n \"TextSummaryTask\",\n \"StructuredGenerationTask\",\n \"ModelSearchTask\",\n ] as const;\n\n constructor(\n tasks?: Record<string, AiProviderRunFn<any, any, AnthropicModelConfig>>,\n streamTasks?: Record<string, AiProviderStreamFn<any, any, AnthropicModelConfig>>,\n reactiveTasks?: Record<string, AiProviderReactiveRunFn<any, any, AnthropicModelConfig>>\n ) {\n super(tasks, streamTasks, reactiveTasks);\n }\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 ToolCall,\n ToolCallingTaskInput,\n ToolCallingTaskOutput,\n ToolCalls,\n ToolDefinition,\n} from \"@workglow/ai\";\nimport { buildToolDescription, filterValidToolCalls } from \"@workglow/ai/worker\";\nimport type { StreamEvent } from \"@workglow/task-graph\";\nimport { parsePartialJson } from \"@workglow/util/worker\";\nimport { getClient, getMaxTokens, getModelName } from \"./Anthropic_Client\";\nimport type { AnthropicModelConfig } from \"./Anthropic_ModelSchema\";\n\nfunction mapUserContentToAnthropic(content: unknown): any {\n if (typeof content === \"string\") return content;\n if (!Array.isArray(content)) return content;\n const parts: any[] = [];\n for (const block of content as Array<Record<string, unknown>>) {\n if (block.type === \"text\") {\n parts.push({ type: \"text\", text: block.text });\n } else if (block.type === \"image\") {\n parts.push({\n type: \"image\",\n source: {\n type: \"base64\",\n media_type: block.mimeType as string,\n data: block.data as string,\n },\n });\n }\n }\n return parts;\n}\n\nfunction mapToolResultContentToAnthropic(content: unknown): any {\n if (typeof content === \"string\") return content;\n if (!Array.isArray(content)) return content;\n const parts: any[] = [];\n for (const block of content as Array<Record<string, unknown>>) {\n if (block.type === \"text\") {\n parts.push({ type: \"text\", text: block.text });\n } else if (block.type === \"image\") {\n parts.push({\n type: \"image\",\n source: {\n type: \"base64\",\n media_type: block.mimeType as string,\n data: block.data as string,\n },\n });\n }\n }\n return parts;\n}\n\nfunction buildAnthropicMessages(input: ToolCallingTaskInput): any[] {\n const inputMessages = input.messages;\n if (!inputMessages || inputMessages.length === 0) {\n return [{ role: \"user\", content: input.prompt }];\n }\n\n const messages: any[] = [];\n for (const msg of inputMessages) {\n if (msg.role === \"user\") {\n messages.push({ role: \"user\", content: mapUserContentToAnthropic(msg.content) });\n } else if (msg.role === \"assistant\" && Array.isArray(msg.content)) {\n const blocks = msg.content.map((block: any) => {\n if (block.type === \"text\") return { type: \"text\", text: block.text };\n if (block.type === \"tool_use\") {\n return { type: \"tool_use\", id: block.id, name: block.name, input: block.input };\n }\n return block;\n });\n messages.push({ role: \"assistant\", content: blocks });\n } else if (msg.role === \"tool\" && Array.isArray(msg.content)) {\n const blocks = msg.content.map((block: any) => ({\n type: \"tool_result\",\n tool_use_id: block.tool_use_id,\n content: mapToolResultContentToAnthropic(block.content),\n ...(block.is_error && { is_error: true }),\n }));\n messages.push({ role: \"user\", content: blocks });\n }\n }\n return messages;\n}\n\nfunction mapAnthropicToolChoice(\n toolChoice: string | undefined\n): { type: \"auto\" } | { type: \"any\" } | { type: \"tool\"; name: string } | undefined {\n if (!toolChoice || toolChoice === \"auto\") return { type: \"auto\" };\n if (toolChoice === \"none\") return undefined;\n if (toolChoice === \"required\") return { type: \"any\" };\n return { type: \"tool\", name: toolChoice };\n}\n\nexport const Anthropic_ToolCalling: AiProviderRunFn<\n ToolCallingTaskInput,\n ToolCallingTaskOutput,\n AnthropicModelConfig\n> = async (input, model, update_progress, signal) => {\n update_progress(0, \"Starting Anthropic tool calling\");\n const client = await getClient(model);\n const modelName = getModelName(model);\n\n const tools = input.tools.map((t: ToolDefinition) => ({\n name: t.name,\n description: buildToolDescription(t),\n input_schema: t.inputSchema as any,\n }));\n\n const toolChoice = mapAnthropicToolChoice(input.toolChoice);\n\n const messages = buildAnthropicMessages(input);\n\n const params: any = {\n model: modelName,\n messages,\n max_tokens: getMaxTokens(input, model),\n temperature: input.temperature,\n };\n\n if (input.systemPrompt) {\n params.system = input.systemPrompt;\n }\n\n if (toolChoice !== undefined) {\n params.tools = tools;\n params.tool_choice = toolChoice;\n }\n\n const response = await client.messages.create(params, { signal });\n\n const text = response.content\n .filter((b: any) => b.type === \"text\")\n .map((b: any) => b.text)\n .join(\"\");\n\n const toolCalls: ToolCalls = [];\n response.content\n .filter((b: any) => b.type === \"tool_use\")\n .forEach((b: any) => {\n toolCalls.push({\n id: b.id as string,\n name: b.name as string,\n input: (b.input as Record<string, unknown>) ?? {},\n });\n });\n\n update_progress(100, \"Completed Anthropic tool calling\");\n return { text, toolCalls: filterValidToolCalls(toolCalls, input.tools) };\n};\n\nexport const Anthropic_ToolCalling_Stream: AiProviderStreamFn<\n ToolCallingTaskInput,\n ToolCallingTaskOutput,\n AnthropicModelConfig\n> = async function* (input, model, signal): AsyncIterable<StreamEvent<ToolCallingTaskOutput>> {\n const client = await getClient(model);\n const modelName = getModelName(model);\n\n const tools = input.tools.map((t: ToolDefinition) => ({\n name: t.name,\n description: buildToolDescription(t),\n input_schema: t.inputSchema as any,\n }));\n\n const toolChoice = mapAnthropicToolChoice(input.toolChoice);\n\n const messages = buildAnthropicMessages(input);\n\n const params: any = {\n model: modelName,\n messages,\n max_tokens: getMaxTokens(input, model),\n temperature: input.temperature,\n };\n\n if (input.systemPrompt) {\n params.system = input.systemPrompt;\n }\n\n if (toolChoice !== undefined) {\n params.tools = tools;\n params.tool_choice = toolChoice;\n }\n\n const stream = client.messages.stream(params, { signal });\n\n const blockMeta = new Map<number, { type: string; id?: string; name?: string; json: string }>();\n /** Keyed by Anthropic content block index — avoids collisions when `id` is missing during early deltas. */\n const toolCallsByBlockIndex = new Map<number, ToolCall>();\n\n const toolCallsInStreamOrder = (): ToolCall[] =>\n [...toolCallsByBlockIndex.entries()].sort((a, b) => a[0] - b[0]).map(([, tc]) => tc);\n\n for await (const event of stream) {\n if (event.type === \"content_block_start\") {\n const block = event.content_block;\n const index = event.index as number;\n if (block.type === \"tool_use\") {\n blockMeta.set(index, {\n type: \"tool_use\",\n id: block.id,\n name: block.name,\n json: \"\",\n });\n } else if (block.type === \"text\") {\n blockMeta.set(index, { type: \"text\", json: \"\" });\n }\n } else if (event.type === \"content_block_delta\") {\n const index = event.index as number;\n const delta = event.delta as any;\n if (delta.type === \"text_delta\") {\n yield { type: \"text-delta\", port: \"text\", textDelta: delta.text };\n } else if (delta.type === \"input_json_delta\") {\n const meta = blockMeta.get(index);\n if (meta) {\n meta.json += delta.partial_json;\n let parsedInput: Record<string, unknown>;\n try {\n parsedInput = JSON.parse(meta.json);\n } catch {\n const partial = parsePartialJson(meta.json);\n parsedInput = (partial as Record<string, unknown>) ?? {};\n }\n toolCallsByBlockIndex.set(index, {\n id: meta.id ?? \"\",\n name: meta.name ?? \"\",\n input: parsedInput,\n });\n yield {\n type: \"object-delta\",\n port: \"toolCalls\",\n objectDelta: toolCallsInStreamOrder(),\n };\n }\n }\n } else if (event.type === \"content_block_stop\") {\n const index = event.index as number;\n const meta = blockMeta.get(index);\n if (meta?.type === \"tool_use\") {\n let finalInput: Record<string, unknown>;\n try {\n finalInput = JSON.parse(meta.json);\n } catch {\n finalInput = (parsePartialJson(meta.json) as Record<string, unknown>) ?? {};\n }\n const id = meta.id ?? \"\";\n toolCallsByBlockIndex.set(index, { id, name: meta.name ?? \"\", input: finalInput });\n yield {\n type: \"object-delta\",\n port: \"toolCalls\",\n objectDelta: toolCallsInStreamOrder(),\n };\n }\n blockMeta.delete(index);\n }\n }\n\n yield { type: \"finish\", data: { text: \"\", toolCalls: [] } as ToolCallingTaskOutput };\n};\n",
16
+ "/**\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 { AnthropicModelConfig } from \"./Anthropic_ModelSchema\";\nimport { Anthropic_ModelSearch } from \"./Anthropic_ModelSearch\";\n\nexport { getClient, getMaxTokens, getModelName, loadAnthropicSDK } from \"./Anthropic_Client\";\n\nimport { Anthropic_CountTokens, Anthropic_CountTokens_Reactive } from \"./Anthropic_CountTokens\";\nimport { Anthropic_ModelInfo } from \"./Anthropic_ModelInfo\";\nimport {\n Anthropic_StructuredGeneration,\n Anthropic_StructuredGeneration_Stream,\n} from \"./Anthropic_StructuredGeneration\";\nimport {\n Anthropic_TextGeneration,\n Anthropic_TextGeneration_Stream,\n} from \"./Anthropic_TextGeneration\";\nimport { Anthropic_TextRewriter, Anthropic_TextRewriter_Stream } from \"./Anthropic_TextRewriter\";\nimport { Anthropic_TextSummary, Anthropic_TextSummary_Stream } from \"./Anthropic_TextSummary\";\nimport { Anthropic_ToolCalling, Anthropic_ToolCalling_Stream } from \"./Anthropic_ToolCalling\";\n\nexport const ANTHROPIC_TASKS: Record<string, AiProviderRunFn<any, any, AnthropicModelConfig>> = {\n CountTokensTask: Anthropic_CountTokens,\n ModelInfoTask: Anthropic_ModelInfo,\n TextGenerationTask: Anthropic_TextGeneration,\n TextRewriterTask: Anthropic_TextRewriter,\n TextSummaryTask: Anthropic_TextSummary,\n StructuredGenerationTask: Anthropic_StructuredGeneration,\n ToolCallingTask: Anthropic_ToolCalling,\n ModelSearchTask: Anthropic_ModelSearch,\n};\n\nexport const ANTHROPIC_STREAM_TASKS: Record<\n string,\n AiProviderStreamFn<any, any, AnthropicModelConfig>\n> = {\n TextGenerationTask: Anthropic_TextGeneration_Stream,\n TextRewriterTask: Anthropic_TextRewriter_Stream,\n TextSummaryTask: Anthropic_TextSummary_Stream,\n StructuredGenerationTask: Anthropic_StructuredGeneration_Stream,\n ToolCallingTask: Anthropic_ToolCalling_Stream,\n};\n\nexport const ANTHROPIC_REACTIVE_TASKS: Record<\n string,\n AiProviderReactiveRunFn<any, any, AnthropicModelConfig>\n> = {\n CountTokensTask: Anthropic_CountTokens_Reactive,\n};\n",
17
+ "/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { AiProvider } from \"@workglow/ai\";\nimport type { AiProviderReactiveRunFn, AiProviderRunFn, AiProviderStreamFn } from \"@workglow/ai\";\nimport { ANTHROPIC } from \"./common/Anthropic_Constants\";\nimport type { AnthropicModelConfig } from \"./common/Anthropic_ModelSchema\";\n\n/** Main-thread registration (inline or worker-backed). No queue — uses direct execution. */\nexport class AnthropicQueuedProvider extends AiProvider<AnthropicModelConfig> {\n readonly name = ANTHROPIC;\n readonly displayName = \"Anthropic\";\n readonly isLocal = false;\n readonly supportsBrowser = true;\n\n readonly taskTypes = [\n \"CountTokensTask\",\n \"ModelInfoTask\",\n \"TextGenerationTask\",\n \"TextRewriterTask\",\n \"TextSummaryTask\",\n \"StructuredGenerationTask\",\n \"ToolCallingTask\",\n \"ModelSearchTask\",\n ] as const;\n\n constructor(\n tasks?: Record<string, AiProviderRunFn<any, any, AnthropicModelConfig>>,\n streamTasks?: Record<string, AiProviderStreamFn<any, any, AnthropicModelConfig>>,\n reactiveTasks?: Record<string, AiProviderReactiveRunFn<any, any, AnthropicModelConfig>>\n ) {\n super(tasks, streamTasks, reactiveTasks);\n }\n}\n",
17
18
  "/**\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 ANTHROPIC_REACTIVE_TASKS,\n ANTHROPIC_STREAM_TASKS,\n ANTHROPIC_TASKS,\n} from \"./common/Anthropic_JobRunFns\";\nimport { AnthropicQueuedProvider } from \"./AnthropicQueuedProvider\";\n\nexport async function registerAnthropicInline(options?: AiProviderRegisterOptions): Promise<void> {\n await new AnthropicQueuedProvider(\n ANTHROPIC_TASKS,\n ANTHROPIC_STREAM_TASKS,\n ANTHROPIC_REACTIVE_TASKS\n ).register(options ?? {});\n}\n",
18
19
  "/**\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 ANTHROPIC_REACTIVE_TASKS,\n ANTHROPIC_STREAM_TASKS,\n ANTHROPIC_TASKS,\n} from \"./common/Anthropic_JobRunFns\";\nimport { AnthropicProvider } from \"./AnthropicProvider\";\n\nexport async function registerAnthropicWorker(): Promise<void> {\n const workerServer = globalServiceRegistry.get(WORKER_SERVER);\n new AnthropicProvider(\n ANTHROPIC_TASKS,\n ANTHROPIC_STREAM_TASKS,\n ANTHROPIC_REACTIVE_TASKS\n ).registerOnWorkerServer(workerServer);\n workerServer.sendReady();\n getLogger().info(\"Anthropic worker job run functions registered\");\n}\n",
19
- "/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {\n AiProvider,\n type AiProviderReactiveRunFn,\n type AiProviderRunFn,\n type AiProviderStreamFn,\n} from \"@workglow/ai/worker\";\nimport { ANTHROPIC } from \"./common/Anthropic_Constants\";\nimport type { AnthropicModelConfig } from \"./common/Anthropic_ModelSchema\";\n\n/**\n * AI provider for Anthropic cloud models.\n *\n * Supports text generation, text rewriting, and text summarization via the\n * Anthropic Messages API using the `@anthropic-ai/sdk` SDK.\n *\n * Note: Anthropic does not offer an embeddings API, so TextEmbeddingTask\n * is not supported by this provider.\n *\n * Task run functions are injected via the constructor so that the SDK\n * is only imported where actually needed (inline mode, worker server), not on\n * the main thread in worker mode.\n *\n */\nexport class AnthropicProvider extends AiProvider<AnthropicModelConfig> {\n readonly name = ANTHROPIC;\n readonly displayName = \"Anthropic\";\n readonly isLocal = false;\n readonly supportsBrowser = true;\n\n readonly taskTypes = [\n \"CountTokensTask\",\n \"ModelInfoTask\",\n \"TextGenerationTask\",\n \"TextRewriterTask\",\n \"TextSummaryTask\",\n \"StructuredGenerationTask\",\n \"ModelSearchTask\",\n ] as const;\n\n constructor(\n tasks?: Record<string, AiProviderRunFn<any, any, AnthropicModelConfig>>,\n streamTasks?: Record<string, AiProviderStreamFn<any, any, AnthropicModelConfig>>,\n reactiveTasks?: Record<string, AiProviderReactiveRunFn<any, any, AnthropicModelConfig>>\n ) {\n super(tasks, streamTasks, reactiveTasks);\n }\n}\n"
20
+ "/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { AiProvider } from \"@workglow/ai/worker\";\nimport type {\n AiProviderReactiveRunFn,\n AiProviderRunFn,\n AiProviderStreamFn,\n} from \"@workglow/ai/worker\";\nimport { ANTHROPIC } from \"./common/Anthropic_Constants\";\nimport type { AnthropicModelConfig } from \"./common/Anthropic_ModelSchema\";\n\n/**\n * AI provider for Anthropic cloud models.\n *\n * Supports text generation, text rewriting, and text summarization via the\n * Anthropic Messages API using the `@anthropic-ai/sdk` SDK.\n *\n * Note: Anthropic does not offer an embeddings API, so TextEmbeddingTask\n * is not supported by this provider.\n *\n * Task run functions are injected via the constructor so that the SDK\n * is only imported where actually needed (inline mode, worker server), not on\n * the main thread in worker mode.\n *\n */\nexport class AnthropicProvider extends AiProvider<AnthropicModelConfig> {\n readonly name = ANTHROPIC;\n readonly displayName = \"Anthropic\";\n readonly isLocal = false;\n readonly supportsBrowser = true;\n\n readonly taskTypes = [\n \"CountTokensTask\",\n \"ModelInfoTask\",\n \"TextGenerationTask\",\n \"TextRewriterTask\",\n \"TextSummaryTask\",\n \"StructuredGenerationTask\",\n \"ToolCallingTask\",\n \"ModelSearchTask\",\n ] as const;\n\n constructor(\n tasks?: Record<string, AiProviderRunFn<any, any, AnthropicModelConfig>>,\n streamTasks?: Record<string, AiProviderStreamFn<any, any, AnthropicModelConfig>>,\n reactiveTasks?: Record<string, AiProviderReactiveRunFn<any, any, AnthropicModelConfig>>\n ) {\n super(tasks, streamTasks, reactiveTasks);\n }\n}\n"
20
21
  ],
21
- "mappings": "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",
22
- "debugId": "3271A25C52C755E164756E2164756E21",
22
+ "mappings": "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",
23
+ "debugId": "2110287016120EFA64756E2164756E21",
23
24
  "names": []
24
25
  }
@@ -3,7 +3,8 @@
3
3
  * Copyright 2025 Steven Roussey <sroussey@gmail.com>
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
- import { AiProvider, type AiProviderReactiveRunFn, type AiProviderRunFn, type AiProviderStreamFn } from "@workglow/ai/worker";
6
+ import { AiProvider } from "@workglow/ai/worker";
7
+ import type { AiProviderReactiveRunFn, AiProviderRunFn, AiProviderStreamFn } from "@workglow/ai/worker";
7
8
  import type { WebBrowserModelConfig } from "./common/WebBrowser_ModelSchema";
8
9
  /**
9
10
  * AI provider for Chrome Built-in AI APIs (Gemini Nano on-device).
@@ -1 +1 @@
1
- {"version":3,"file":"WebBrowserProvider.d.ts","sourceRoot":"","sources":["../../src/provider-chrome/WebBrowserProvider.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,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AAE7E;;;;;;;;;;;GAWG;AACH,qBAAa,kBAAmB,SAAQ,UAAU,CAAC,qBAAqB,CAAC;IACvE,QAAQ,CAAC,IAAI,iBAAe;IAC5B,QAAQ,CAAC,WAAW,wBAAwB;IAC5C,QAAQ,CAAC,OAAO,QAAQ;IACxB,QAAQ,CAAC,eAAe,QAAQ;IAEhC,QAAQ,CAAC,SAAS,YAChB,eAAe,EACf,iBAAiB,EACjB,2BAA2B,EAC3B,qBAAqB,EACrB,oBAAoB,EACpB,kBAAkB,EAClB,iBAAiB,EACR;IAEX,YACE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,GAAG,EAAE,GAAG,EAAE,qBAAqB,CAAC,CAAC,EACxE,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,GAAG,EAAE,GAAG,EAAE,qBAAqB,CAAC,CAAC,EACjF,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,uBAAuB,CAAC,GAAG,EAAE,GAAG,EAAE,qBAAqB,CAAC,CAAC,EAGzF;CACF"}
1
+ {"version":3,"file":"WebBrowserProvider.d.ts","sourceRoot":"","sources":["../../src/provider-chrome/WebBrowserProvider.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,KAAK,EACV,uBAAuB,EACvB,eAAe,EACf,kBAAkB,EACnB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AAE7E;;;;;;;;;;;GAWG;AACH,qBAAa,kBAAmB,SAAQ,UAAU,CAAC,qBAAqB,CAAC;IACvE,QAAQ,CAAC,IAAI,iBAAe;IAC5B,QAAQ,CAAC,WAAW,wBAAwB;IAC5C,QAAQ,CAAC,OAAO,QAAQ;IACxB,QAAQ,CAAC,eAAe,QAAQ;IAEhC,QAAQ,CAAC,SAAS,YAChB,eAAe,EACf,iBAAiB,EACjB,2BAA2B,EAC3B,qBAAqB,EACrB,oBAAoB,EACpB,kBAAkB,EAClB,iBAAiB,EACR;IAEX,YACE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,GAAG,EAAE,GAAG,EAAE,qBAAqB,CAAC,CAAC,EACxE,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,GAAG,EAAE,GAAG,EAAE,qBAAqB,CAAC,CAAC,EACjF,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,uBAAuB,CAAC,GAAG,EAAE,GAAG,EAAE,qBAAqB,CAAC,CAAC,EAGzF;CACF"}
@@ -3,7 +3,8 @@
3
3
  * Copyright 2025 Steven Roussey <sroussey@gmail.com>
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
- import { QueuedAiProvider, type AiProviderReactiveRunFn, type AiProviderRunFn, type AiProviderStreamFn } from "@workglow/ai";
6
+ import { QueuedAiProvider } from "@workglow/ai";
7
+ import type { AiProviderReactiveRunFn, AiProviderRunFn, AiProviderStreamFn } from "@workglow/ai";
7
8
  import type { WebBrowserModelConfig } from "./common/WebBrowser_ModelSchema";
8
9
  /** Main-thread registration (inline or worker-backed); creates the default job queue. */
9
10
  export declare class WebBrowserQueuedProvider extends QueuedAiProvider<WebBrowserModelConfig> {
@@ -1 +1 @@
1
- {"version":3,"file":"WebBrowserQueuedProvider.d.ts","sourceRoot":"","sources":["../../src/provider-chrome/WebBrowserQueuedProvider.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACL,gBAAgB,EAChB,KAAK,uBAAuB,EAC5B,KAAK,eAAe,EACpB,KAAK,kBAAkB,EACxB,MAAM,cAAc,CAAC;AAEtB,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AAE7E,yFAAyF;AACzF,qBAAa,wBAAyB,SAAQ,gBAAgB,CAAC,qBAAqB,CAAC;IACnF,QAAQ,CAAC,IAAI,iBAAe;IAC5B,QAAQ,CAAC,WAAW,wBAAwB;IAC5C,QAAQ,CAAC,OAAO,QAAQ;IACxB,QAAQ,CAAC,eAAe,QAAQ;IAEhC,QAAQ,CAAC,SAAS,YAChB,eAAe,EACf,iBAAiB,EACjB,2BAA2B,EAC3B,qBAAqB,EACrB,oBAAoB,EACpB,kBAAkB,EAClB,iBAAiB,EACR;IAEX,YACE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,GAAG,EAAE,GAAG,EAAE,qBAAqB,CAAC,CAAC,EACxE,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,GAAG,EAAE,GAAG,EAAE,qBAAqB,CAAC,CAAC,EACjF,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,uBAAuB,CAAC,GAAG,EAAE,GAAG,EAAE,qBAAqB,CAAC,CAAC,EAGzF;CACF"}
1
+ {"version":3,"file":"WebBrowserQueuedProvider.d.ts","sourceRoot":"","sources":["../../src/provider-chrome/WebBrowserQueuedProvider.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,KAAK,EAAE,uBAAuB,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAEjG,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AAE7E,yFAAyF;AACzF,qBAAa,wBAAyB,SAAQ,gBAAgB,CAAC,qBAAqB,CAAC;IACnF,QAAQ,CAAC,IAAI,iBAAe;IAC5B,QAAQ,CAAC,WAAW,wBAAwB;IAC5C,QAAQ,CAAC,OAAO,QAAQ;IACxB,QAAQ,CAAC,eAAe,QAAQ;IAEhC,QAAQ,CAAC,SAAS,YAChB,eAAe,EACf,iBAAiB,EACjB,2BAA2B,EAC3B,qBAAqB,EACrB,oBAAoB,EACpB,kBAAkB,EAClB,iBAAiB,EACR;IAEX,YACE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,GAAG,EAAE,GAAG,EAAE,qBAAqB,CAAC,CAAC,EACxE,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,GAAG,EAAE,GAAG,EAAE,qBAAqB,CAAC,CAAC,EACjF,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,uBAAuB,CAAC,GAAG,EAAE,GAAG,EAAE,qBAAqB,CAAC,CAAC,EAGzF;CACF"}
@@ -95,9 +95,7 @@ var WebBrowserModelConfigSchema = {
95
95
  additionalProperties: false
96
96
  };
97
97
  // src/provider-chrome/WebBrowserQueuedProvider.ts
98
- import {
99
- QueuedAiProvider
100
- } from "@workglow/ai";
98
+ import { QueuedAiProvider } from "@workglow/ai";
101
99
  class WebBrowserQueuedProvider extends QueuedAiProvider {
102
100
  name = WEB_BROWSER;
103
101
  displayName = "Chrome Built-in AI";
@@ -130,4 +128,4 @@ export {
130
128
  WEB_BROWSER
131
129
  };
132
130
 
133
- //# debugId=BAD78AC9FFB9A9B764756E2164756E21
131
+ //# debugId=DFC0F2414C4B6C2964756E2164756E21
@@ -4,10 +4,10 @@
4
4
  "sourcesContent": [
5
5
  "/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nexport const WEB_BROWSER = \"WEB_BROWSER\";\n\nexport type WebBrowserPipelineTask =\n | \"summarizer\"\n | \"language-detector\"\n | \"translator\"\n | \"prompt\"\n | \"rewriter\";\n\nexport const WebBrowserPipelineTask = {\n summarizer: \"summarizer\",\n \"language-detector\": \"language-detector\",\n translator: \"translator\",\n prompt: \"prompt\",\n rewriter: \"rewriter\",\n} as const satisfies Record<WebBrowserPipelineTask, WebBrowserPipelineTask>;\n",
6
6
  "/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { ModelConfigSchema, ModelRecordSchema } from \"@workglow/ai/worker\";\nimport { DataPortSchemaObject, FromSchema } from \"@workglow/util/worker\";\nimport { WEB_BROWSER } from \"./WebBrowser_Constants\";\n\nexport const WebBrowserModelSchema = {\n type: \"object\",\n properties: {\n provider: {\n const: WEB_BROWSER,\n description: \"Discriminator: Chrome Built-in AI (Gemini Nano).\",\n },\n provider_config: {\n type: \"object\",\n description: \"Chrome Built-in AI configuration.\",\n properties: {\n summary_type: {\n type: \"string\",\n enum: [\"tl;dr\", \"key-points\", \"teaser\", \"headline\"],\n description: \"Summarization style (Summarizer API only).\",\n },\n summary_length: {\n type: \"string\",\n enum: [\"short\", \"medium\", \"long\"],\n description: \"Desired summary length (Summarizer API only).\",\n },\n summary_format: {\n type: \"string\",\n enum: [\"plain-text\", \"markdown\"],\n description: \"Output format for summaries (Summarizer API only).\",\n },\n rewriter_tone: {\n type: \"string\",\n enum: [\"as-is\", \"more-formal\", \"more-casual\"],\n description: \"Tone for rewriting (Rewriter API only).\",\n },\n rewriter_length: {\n type: \"string\",\n enum: [\"as-is\", \"shorter\", \"longer\"],\n description: \"Length adjustment for rewriting (Rewriter API only).\",\n },\n },\n required: [],\n additionalProperties: false,\n },\n },\n required: [\"provider\", \"provider_config\"],\n additionalProperties: true,\n} as const satisfies DataPortSchemaObject;\n\nexport const WebBrowserModelRecordSchema = {\n type: \"object\",\n properties: {\n ...ModelRecordSchema.properties,\n ...WebBrowserModelSchema.properties,\n },\n required: [...ModelRecordSchema.required, ...WebBrowserModelSchema.required],\n additionalProperties: false,\n} as const satisfies DataPortSchemaObject;\n\nexport type WebBrowserModelRecord = FromSchema<typeof WebBrowserModelRecordSchema>;\n\nexport const WebBrowserModelConfigSchema = {\n type: \"object\",\n properties: {\n ...ModelConfigSchema.properties,\n ...WebBrowserModelSchema.properties,\n },\n required: [...ModelConfigSchema.required, ...WebBrowserModelSchema.required],\n additionalProperties: false,\n} as const satisfies DataPortSchemaObject;\n\nexport type WebBrowserModelConfig = FromSchema<typeof WebBrowserModelConfigSchema>;\n",
7
- "/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport {\n QueuedAiProvider,\n type AiProviderReactiveRunFn,\n type AiProviderRunFn,\n type AiProviderStreamFn,\n} from \"@workglow/ai\";\nimport { WEB_BROWSER } from \"./common/WebBrowser_Constants\";\nimport type { WebBrowserModelConfig } from \"./common/WebBrowser_ModelSchema\";\n\n/** Main-thread registration (inline or worker-backed); creates the default job queue. */\nexport class WebBrowserQueuedProvider extends QueuedAiProvider<WebBrowserModelConfig> {\n readonly name = WEB_BROWSER;\n readonly displayName = \"Chrome Built-in AI\";\n readonly isLocal = true;\n readonly supportsBrowser = true;\n\n readonly taskTypes = [\n \"ModelInfoTask\",\n \"TextSummaryTask\",\n \"TextLanguageDetectionTask\",\n \"TextTranslationTask\",\n \"TextGenerationTask\",\n \"TextRewriterTask\",\n \"ModelSearchTask\",\n ] as const;\n\n constructor(\n tasks?: Record<string, AiProviderRunFn<any, any, WebBrowserModelConfig>>,\n streamTasks?: Record<string, AiProviderStreamFn<any, any, WebBrowserModelConfig>>,\n reactiveTasks?: Record<string, AiProviderReactiveRunFn<any, any, WebBrowserModelConfig>>\n ) {\n super(tasks, streamTasks, reactiveTasks);\n }\n}\n",
7
+ "/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { QueuedAiProvider } from \"@workglow/ai\";\nimport type { AiProviderReactiveRunFn, AiProviderRunFn, AiProviderStreamFn } from \"@workglow/ai\";\nimport { WEB_BROWSER } from \"./common/WebBrowser_Constants\";\nimport type { WebBrowserModelConfig } from \"./common/WebBrowser_ModelSchema\";\n\n/** Main-thread registration (inline or worker-backed); creates the default job queue. */\nexport class WebBrowserQueuedProvider extends QueuedAiProvider<WebBrowserModelConfig> {\n readonly name = WEB_BROWSER;\n readonly displayName = \"Chrome Built-in AI\";\n readonly isLocal = true;\n readonly supportsBrowser = true;\n\n readonly taskTypes = [\n \"ModelInfoTask\",\n \"TextSummaryTask\",\n \"TextLanguageDetectionTask\",\n \"TextTranslationTask\",\n \"TextGenerationTask\",\n \"TextRewriterTask\",\n \"ModelSearchTask\",\n ] as const;\n\n constructor(\n tasks?: Record<string, AiProviderRunFn<any, any, WebBrowserModelConfig>>,\n streamTasks?: Record<string, AiProviderStreamFn<any, any, WebBrowserModelConfig>>,\n reactiveTasks?: Record<string, AiProviderReactiveRunFn<any, any, WebBrowserModelConfig>>\n ) {\n super(tasks, streamTasks, reactiveTasks);\n }\n}\n",
8
8
  "/**\n * @license\n * Copyright 2025 Steven Roussey <sroussey@gmail.com>\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type { AiProviderRegisterOptions } from \"@workglow/ai\";\nimport { WebBrowserQueuedProvider } from \"./WebBrowserQueuedProvider\";\n\nexport async function registerWebBrowser(\n options: AiProviderRegisterOptions & {\n worker: Worker | (() => Worker);\n }\n): Promise<void> {\n await new WebBrowserQueuedProvider().register(options);\n}\n"
9
9
  ],
10
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AAMO,IAAM,cAAc;AASpB,IAAM,yBAAyB;AAAA,EACpC,YAAY;AAAA,EACZ,qBAAqB;AAAA,EACrB,YAAY;AAAA,EACZ,QAAQ;AAAA,EACR,UAAU;AACZ;;ACfA;AAIO,IAAM,wBAAwB;AAAA,EACnC,MAAM;AAAA,EACN,YAAY;AAAA,IACV,UAAU;AAAA,MACR,OAAO;AAAA,MACP,aAAa;AAAA,IACf;AAAA,IACA,iBAAiB;AAAA,MACf,MAAM;AAAA,MACN,aAAa;AAAA,MACb,YAAY;AAAA,QACV,cAAc;AAAA,UACZ,MAAM;AAAA,UACN,MAAM,CAAC,SAAS,cAAc,UAAU,UAAU;AAAA,UAClD,aAAa;AAAA,QACf;AAAA,QACA,gBAAgB;AAAA,UACd,MAAM;AAAA,UACN,MAAM,CAAC,SAAS,UAAU,MAAM;AAAA,UAChC,aAAa;AAAA,QACf;AAAA,QACA,gBAAgB;AAAA,UACd,MAAM;AAAA,UACN,MAAM,CAAC,cAAc,UAAU;AAAA,UAC/B,aAAa;AAAA,QACf;AAAA,QACA,eAAe;AAAA,UACb,MAAM;AAAA,UACN,MAAM,CAAC,SAAS,eAAe,aAAa;AAAA,UAC5C,aAAa;AAAA,QACf;AAAA,QACA,iBAAiB;AAAA,UACf,MAAM;AAAA,UACN,MAAM,CAAC,SAAS,WAAW,QAAQ;AAAA,UACnC,aAAa;AAAA,QACf;AAAA,MACF;AAAA,MACA,UAAU,CAAC;AAAA,MACX,sBAAsB;AAAA,IACxB;AAAA,EACF;AAAA,EACA,UAAU,CAAC,YAAY,iBAAiB;AAAA,EACxC,sBAAsB;AACxB;AAEO,IAAM,8BAA8B;AAAA,EACzC,MAAM;AAAA,EACN,YAAY;AAAA,OACP,kBAAkB;AAAA,OAClB,sBAAsB;AAAA,EAC3B;AAAA,EACA,UAAU,CAAC,GAAG,kBAAkB,UAAU,GAAG,sBAAsB,QAAQ;AAAA,EAC3E,sBAAsB;AACxB;AAIO,IAAM,8BAA8B;AAAA,EACzC,MAAM;AAAA,EACN,YAAY;AAAA,OACP,kBAAkB;AAAA,OAClB,sBAAsB;AAAA,EAC3B;AAAA,EACA,UAAU,CAAC,GAAG,kBAAkB,UAAU,GAAG,sBAAsB,QAAQ;AAAA,EAC3E,sBAAsB;AACxB;;ACrEA;AAAA;AAAA;AAUO,MAAM,iCAAiC,iBAAwC;AAAA,EAC3E,OAAO;AAAA,EACP,cAAc;AAAA,EACd,UAAU;AAAA,EACV,kBAAkB;AAAA,EAElB,YAAY;AAAA,IACnB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AAAA,EAEA,WAAW,CACT,OACA,aACA,eACA;AAAA,IACA,MAAM,OAAO,aAAa,aAAa;AAAA;AAE3C;;;AC9BA,eAAsB,kBAAkB,CACtC,SAGe;AAAA,EACf,MAAM,IAAI,yBAAyB,EAAE,SAAS,OAAO;AAAA;",
11
- "debugId": "BAD78AC9FFB9A9B764756E2164756E21",
10
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;AAMO,IAAM,cAAc;AASpB,IAAM,yBAAyB;AAAA,EACpC,YAAY;AAAA,EACZ,qBAAqB;AAAA,EACrB,YAAY;AAAA,EACZ,QAAQ;AAAA,EACR,UAAU;AACZ;;ACfA;AAIO,IAAM,wBAAwB;AAAA,EACnC,MAAM;AAAA,EACN,YAAY;AAAA,IACV,UAAU;AAAA,MACR,OAAO;AAAA,MACP,aAAa;AAAA,IACf;AAAA,IACA,iBAAiB;AAAA,MACf,MAAM;AAAA,MACN,aAAa;AAAA,MACb,YAAY;AAAA,QACV,cAAc;AAAA,UACZ,MAAM;AAAA,UACN,MAAM,CAAC,SAAS,cAAc,UAAU,UAAU;AAAA,UAClD,aAAa;AAAA,QACf;AAAA,QACA,gBAAgB;AAAA,UACd,MAAM;AAAA,UACN,MAAM,CAAC,SAAS,UAAU,MAAM;AAAA,UAChC,aAAa;AAAA,QACf;AAAA,QACA,gBAAgB;AAAA,UACd,MAAM;AAAA,UACN,MAAM,CAAC,cAAc,UAAU;AAAA,UAC/B,aAAa;AAAA,QACf;AAAA,QACA,eAAe;AAAA,UACb,MAAM;AAAA,UACN,MAAM,CAAC,SAAS,eAAe,aAAa;AAAA,UAC5C,aAAa;AAAA,QACf;AAAA,QACA,iBAAiB;AAAA,UACf,MAAM;AAAA,UACN,MAAM,CAAC,SAAS,WAAW,QAAQ;AAAA,UACnC,aAAa;AAAA,QACf;AAAA,MACF;AAAA,MACA,UAAU,CAAC;AAAA,MACX,sBAAsB;AAAA,IACxB;AAAA,EACF;AAAA,EACA,UAAU,CAAC,YAAY,iBAAiB;AAAA,EACxC,sBAAsB;AACxB;AAEO,IAAM,8BAA8B;AAAA,EACzC,MAAM;AAAA,EACN,YAAY;AAAA,OACP,kBAAkB;AAAA,OAClB,sBAAsB;AAAA,EAC3B;AAAA,EACA,UAAU,CAAC,GAAG,kBAAkB,UAAU,GAAG,sBAAsB,QAAQ;AAAA,EAC3E,sBAAsB;AACxB;AAIO,IAAM,8BAA8B;AAAA,EACzC,MAAM;AAAA,EACN,YAAY;AAAA,OACP,kBAAkB;AAAA,OAClB,sBAAsB;AAAA,EAC3B;AAAA,EACA,UAAU,CAAC,GAAG,kBAAkB,UAAU,GAAG,sBAAsB,QAAQ;AAAA,EAC3E,sBAAsB;AACxB;;ACrEA;AAMO,MAAM,iCAAiC,iBAAwC;AAAA,EAC3E,OAAO;AAAA,EACP,cAAc;AAAA,EACd,UAAU;AAAA,EACV,kBAAkB;AAAA,EAElB,YAAY;AAAA,IACnB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AAAA,EAEA,WAAW,CACT,OACA,aACA,eACA;AAAA,IACA,MAAM,OAAO,aAAa,aAAa;AAAA;AAE3C;;;AC1BA,eAAsB,kBAAkB,CACtC,SAGe;AAAA,EACf,MAAM,IAAI,yBAAyB,EAAE,SAAS,OAAO;AAAA;",
11
+ "debugId": "DFC0F2414C4B6C2964756E2164756E21",
12
12
  "names": []
13
13
  }
@@ -342,9 +342,7 @@ var WEB_BROWSER_STREAM_TASKS = {
342
342
  };
343
343
 
344
344
  // src/provider-chrome/WebBrowserQueuedProvider.ts
345
- import {
346
- QueuedAiProvider
347
- } from "@workglow/ai";
345
+ import { QueuedAiProvider } from "@workglow/ai";
348
346
  class WebBrowserQueuedProvider extends QueuedAiProvider {
349
347
  name = WEB_BROWSER;
350
348
  displayName = "Chrome Built-in AI";
@@ -372,9 +370,7 @@ async function registerWebBrowserInline(options) {
372
370
  import { getLogger, globalServiceRegistry, WORKER_SERVER } from "@workglow/util/worker";
373
371
 
374
372
  // src/provider-chrome/WebBrowserProvider.ts
375
- import {
376
- AiProvider
377
- } from "@workglow/ai/worker";
373
+ import { AiProvider } from "@workglow/ai/worker";
378
374
  class WebBrowserProvider extends AiProvider {
379
375
  name = WEB_BROWSER;
380
376
  displayName = "Chrome Built-in AI";
@@ -406,4 +402,4 @@ export {
406
402
  registerWebBrowserInline
407
403
  };
408
404
 
409
- //# debugId=37373CDDC3ABF1CA64756E2164756E21
405
+ //# debugId=9B06BFB548CB356964756E2164756E21