@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.
- package/README.md +59 -0
- package/dist/adapters/index.d.mts +9 -2
- package/dist/adapters/index.d.ts +9 -2
- package/dist/adapters/index.js +421 -19
- package/dist/adapters/index.js.map +1 -1
- package/dist/adapters/index.mjs +421 -19
- package/dist/adapters/index.mjs.map +1 -1
- package/dist/index.d.mts +164 -11
- package/dist/index.d.ts +164 -11
- package/dist/index.js +639 -54
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +636 -55
- package/dist/index.mjs.map +1 -1
- package/dist/providers/anthropic/index.d.mts +1 -1
- package/dist/providers/anthropic/index.d.ts +1 -1
- package/dist/providers/anthropic/index.js +95 -1
- package/dist/providers/anthropic/index.js.map +1 -1
- package/dist/providers/anthropic/index.mjs +95 -1
- package/dist/providers/anthropic/index.mjs.map +1 -1
- package/dist/providers/azure/index.d.mts +1 -1
- package/dist/providers/azure/index.d.ts +1 -1
- package/dist/providers/azure/index.js +51 -5
- package/dist/providers/azure/index.js.map +1 -1
- package/dist/providers/azure/index.mjs +51 -5
- package/dist/providers/azure/index.mjs.map +1 -1
- package/dist/providers/google/index.d.mts +1 -1
- package/dist/providers/google/index.d.ts +1 -1
- package/dist/providers/google/index.js +76 -0
- package/dist/providers/google/index.js.map +1 -1
- package/dist/providers/google/index.mjs +76 -0
- package/dist/providers/google/index.mjs.map +1 -1
- package/dist/providers/ollama/index.d.mts +2 -2
- package/dist/providers/ollama/index.d.ts +2 -2
- package/dist/providers/ollama/index.js +51 -8
- package/dist/providers/ollama/index.js.map +1 -1
- package/dist/providers/ollama/index.mjs +51 -8
- package/dist/providers/ollama/index.mjs.map +1 -1
- package/dist/providers/openai/index.d.mts +1 -1
- package/dist/providers/openai/index.d.ts +1 -1
- package/dist/providers/openai/index.js +301 -3
- package/dist/providers/openai/index.js.map +1 -1
- package/dist/providers/openai/index.mjs +301 -3
- package/dist/providers/openai/index.mjs.map +1 -1
- package/dist/providers/openrouter/index.d.mts +1 -1
- package/dist/providers/openrouter/index.d.ts +1 -1
- package/dist/providers/openrouter/index.js +301 -3
- package/dist/providers/openrouter/index.js.map +1 -1
- package/dist/providers/openrouter/index.mjs +301 -3
- package/dist/providers/openrouter/index.mjs.map +1 -1
- package/dist/providers/xai/index.d.mts +1 -1
- package/dist/providers/xai/index.d.ts +1 -1
- package/dist/providers/xai/index.js +51 -5
- package/dist/providers/xai/index.js.map +1 -1
- package/dist/providers/xai/index.mjs +51 -5
- package/dist/providers/xai/index.mjs.map +1 -1
- package/dist/{types-D20jKwJW.d.mts → types-COAOEe_y.d.mts} +68 -8
- package/dist/{types-D20jKwJW.d.ts → types-COAOEe_y.d.ts} +68 -8
- package/package.json +1 -1
|
@@ -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
|
|
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
|
}
|