@yourgpt/llm-sdk 2.1.2 → 2.1.4-alpha.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 (58) hide show
  1. package/README.md +59 -0
  2. package/dist/adapters/index.d.mts +9 -2
  3. package/dist/adapters/index.d.ts +9 -2
  4. package/dist/adapters/index.js +421 -19
  5. package/dist/adapters/index.js.map +1 -1
  6. package/dist/adapters/index.mjs +421 -19
  7. package/dist/adapters/index.mjs.map +1 -1
  8. package/dist/index.d.mts +164 -11
  9. package/dist/index.d.ts +164 -11
  10. package/dist/index.js +639 -54
  11. package/dist/index.js.map +1 -1
  12. package/dist/index.mjs +636 -55
  13. package/dist/index.mjs.map +1 -1
  14. package/dist/providers/anthropic/index.d.mts +1 -1
  15. package/dist/providers/anthropic/index.d.ts +1 -1
  16. package/dist/providers/anthropic/index.js +95 -1
  17. package/dist/providers/anthropic/index.js.map +1 -1
  18. package/dist/providers/anthropic/index.mjs +95 -1
  19. package/dist/providers/anthropic/index.mjs.map +1 -1
  20. package/dist/providers/azure/index.d.mts +1 -1
  21. package/dist/providers/azure/index.d.ts +1 -1
  22. package/dist/providers/azure/index.js +51 -5
  23. package/dist/providers/azure/index.js.map +1 -1
  24. package/dist/providers/azure/index.mjs +51 -5
  25. package/dist/providers/azure/index.mjs.map +1 -1
  26. package/dist/providers/google/index.d.mts +1 -1
  27. package/dist/providers/google/index.d.ts +1 -1
  28. package/dist/providers/google/index.js +76 -0
  29. package/dist/providers/google/index.js.map +1 -1
  30. package/dist/providers/google/index.mjs +76 -0
  31. package/dist/providers/google/index.mjs.map +1 -1
  32. package/dist/providers/ollama/index.d.mts +2 -2
  33. package/dist/providers/ollama/index.d.ts +2 -2
  34. package/dist/providers/ollama/index.js +51 -8
  35. package/dist/providers/ollama/index.js.map +1 -1
  36. package/dist/providers/ollama/index.mjs +51 -8
  37. package/dist/providers/ollama/index.mjs.map +1 -1
  38. package/dist/providers/openai/index.d.mts +1 -1
  39. package/dist/providers/openai/index.d.ts +1 -1
  40. package/dist/providers/openai/index.js +301 -3
  41. package/dist/providers/openai/index.js.map +1 -1
  42. package/dist/providers/openai/index.mjs +301 -3
  43. package/dist/providers/openai/index.mjs.map +1 -1
  44. package/dist/providers/openrouter/index.d.mts +1 -1
  45. package/dist/providers/openrouter/index.d.ts +1 -1
  46. package/dist/providers/openrouter/index.js +301 -3
  47. package/dist/providers/openrouter/index.js.map +1 -1
  48. package/dist/providers/openrouter/index.mjs +301 -3
  49. package/dist/providers/openrouter/index.mjs.map +1 -1
  50. package/dist/providers/xai/index.d.mts +1 -1
  51. package/dist/providers/xai/index.d.ts +1 -1
  52. package/dist/providers/xai/index.js +51 -5
  53. package/dist/providers/xai/index.js.map +1 -1
  54. package/dist/providers/xai/index.mjs +51 -5
  55. package/dist/providers/xai/index.mjs.map +1 -1
  56. package/dist/{types-D20jKwJW.d.mts → types-COAOEe_y.d.mts} +68 -8
  57. package/dist/{types-D20jKwJW.d.ts → types-COAOEe_y.d.ts} +68 -8
  58. package/package.json +1 -1
@@ -1,4 +1,4 @@
1
- import { k as LanguageModel, Z as AnthropicProviderConfig, A as AIProvider } from '../../types-D20jKwJW.mjs';
1
+ import { k as LanguageModel, _ as AnthropicProviderConfig, A as AIProvider } from '../../types-COAOEe_y.mjs';
2
2
  import 'zod';
3
3
 
4
4
  /**
@@ -1,4 +1,4 @@
1
- import { k as LanguageModel, Z as AnthropicProviderConfig, A as AIProvider } from '../../types-D20jKwJW.js';
1
+ import { k as LanguageModel, _ as AnthropicProviderConfig, A as AIProvider } from '../../types-COAOEe_y.js';
2
2
  import 'zod';
3
3
 
4
4
  /**
@@ -363,6 +363,44 @@ function generateMessageId() {
363
363
  }
364
364
 
365
365
  // src/adapters/base.ts
366
+ function stringifyForDebug(value) {
367
+ return JSON.stringify(
368
+ value,
369
+ (_key, currentValue) => {
370
+ if (typeof currentValue === "bigint") {
371
+ return currentValue.toString();
372
+ }
373
+ if (currentValue instanceof Error) {
374
+ return {
375
+ name: currentValue.name,
376
+ message: currentValue.message,
377
+ stack: currentValue.stack
378
+ };
379
+ }
380
+ return currentValue;
381
+ },
382
+ 2
383
+ );
384
+ }
385
+ function logProviderPayload(provider, label, payload, enabled) {
386
+ if (!enabled) {
387
+ return;
388
+ }
389
+ if (label.toLowerCase().includes("stream ")) {
390
+ return;
391
+ }
392
+ try {
393
+ console.log(
394
+ `[llm-sdk:${provider}] ${label}
395
+ ${stringifyForDebug(payload)}`
396
+ );
397
+ } catch (error) {
398
+ console.log(
399
+ `[llm-sdk:${provider}] ${label} (failed to stringify payload)`,
400
+ error
401
+ );
402
+ }
403
+ }
366
404
  function hasMediaAttachments(message) {
367
405
  const attachments = message.metadata?.attachments;
368
406
  return attachments?.some(
@@ -710,6 +748,26 @@ var AnthropicAdapter = class {
710
748
  }
711
749
  return messages;
712
750
  }
751
+ buildNativeSearchTools(tools, variant = "bm25") {
752
+ const nativeSearchTool = variant === "regex" ? {
753
+ type: "tool_search_tool_regex_20251119",
754
+ name: "tool_search_tool_regex"
755
+ } : {
756
+ type: "tool_search_tool_bm25_20251119",
757
+ name: "tool_search_tool_bm25"
758
+ };
759
+ const providerTools = tools.filter((tool) => tool.available !== false).map((tool) => ({
760
+ name: tool.name,
761
+ description: tool.description,
762
+ input_schema: tool.inputSchema ?? {
763
+ type: "object",
764
+ properties: {},
765
+ required: []
766
+ },
767
+ defer_loading: tool.deferLoading === true
768
+ }));
769
+ return [nativeSearchTool, ...providerTools];
770
+ }
713
771
  /**
714
772
  * Build common request options for both streaming and non-streaming
715
773
  */
@@ -722,7 +780,11 @@ var AnthropicAdapter = class {
722
780
  const formatted = formatMessagesForAnthropic2(request.messages);
723
781
  messages = formatted.messages;
724
782
  }
725
- const tools = request.actions?.map((action) => ({
783
+ const anthropicNativeSearch = request.providerToolOptions?.anthropic?.nativeToolSearch;
784
+ const tools = anthropicNativeSearch?.enabled ? this.buildNativeSearchTools(
785
+ request.toolDefinitions ?? [],
786
+ anthropicNativeSearch.variant
787
+ ) : request.actions?.map((action) => ({
726
788
  name: action.name,
727
789
  description: action.description,
728
790
  input_schema: {
@@ -775,6 +837,19 @@ var AnthropicAdapter = class {
775
837
  messages,
776
838
  tools: tools.length ? tools : void 0
777
839
  };
840
+ const anthropicToolOptions = request.providerToolOptions?.anthropic;
841
+ if (tools.length > 0 && anthropicToolOptions) {
842
+ if (anthropicToolOptions.toolChoice || anthropicToolOptions.disableParallelToolUse !== void 0) {
843
+ const toolChoice = typeof anthropicToolOptions.toolChoice === "object" ? {
844
+ type: "tool",
845
+ name: anthropicToolOptions.toolChoice.name
846
+ } : anthropicToolOptions.toolChoice ? { type: anthropicToolOptions.toolChoice } : { type: "auto" };
847
+ if (anthropicToolOptions.disableParallelToolUse !== void 0) {
848
+ toolChoice.disable_parallel_tool_use = anthropicToolOptions.disableParallelToolUse;
849
+ }
850
+ options.tool_choice = toolChoice;
851
+ }
852
+ }
778
853
  if (serverToolConfiguration) {
779
854
  options.server_tool_configuration = serverToolConfiguration;
780
855
  }
@@ -797,7 +872,19 @@ var AnthropicAdapter = class {
797
872
  stream: false
798
873
  };
799
874
  try {
875
+ logProviderPayload(
876
+ "anthropic",
877
+ "request payload",
878
+ nonStreamingOptions,
879
+ request.debug
880
+ );
800
881
  const response = await client.messages.create(nonStreamingOptions);
882
+ logProviderPayload(
883
+ "anthropic",
884
+ "response payload",
885
+ response,
886
+ request.debug
887
+ );
801
888
  let content = "";
802
889
  let thinking = "";
803
890
  const toolCalls = [];
@@ -830,6 +917,12 @@ var AnthropicAdapter = class {
830
917
  const messageId = generateMessageId();
831
918
  yield { type: "message:start", id: messageId };
832
919
  try {
920
+ logProviderPayload(
921
+ "anthropic",
922
+ "request payload",
923
+ options,
924
+ request.debug
925
+ );
833
926
  const stream = await client.messages.stream(options);
834
927
  let currentToolUse = null;
835
928
  let isInThinkingBlock = false;
@@ -837,6 +930,7 @@ var AnthropicAdapter = class {
837
930
  let citationIndex = 0;
838
931
  let usage;
839
932
  for await (const event of stream) {
933
+ logProviderPayload("anthropic", "stream event", event, request.debug);
840
934
  if (request.signal?.aborted) {
841
935
  break;
842
936
  }