@yourgpt/llm-sdk 2.1.3 → 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 +638 -54
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +635 -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
|
@@ -361,6 +361,44 @@ function generateMessageId() {
|
|
|
361
361
|
}
|
|
362
362
|
|
|
363
363
|
// src/adapters/base.ts
|
|
364
|
+
function stringifyForDebug(value) {
|
|
365
|
+
return JSON.stringify(
|
|
366
|
+
value,
|
|
367
|
+
(_key, currentValue) => {
|
|
368
|
+
if (typeof currentValue === "bigint") {
|
|
369
|
+
return currentValue.toString();
|
|
370
|
+
}
|
|
371
|
+
if (currentValue instanceof Error) {
|
|
372
|
+
return {
|
|
373
|
+
name: currentValue.name,
|
|
374
|
+
message: currentValue.message,
|
|
375
|
+
stack: currentValue.stack
|
|
376
|
+
};
|
|
377
|
+
}
|
|
378
|
+
return currentValue;
|
|
379
|
+
},
|
|
380
|
+
2
|
|
381
|
+
);
|
|
382
|
+
}
|
|
383
|
+
function logProviderPayload(provider, label, payload, enabled) {
|
|
384
|
+
if (!enabled) {
|
|
385
|
+
return;
|
|
386
|
+
}
|
|
387
|
+
if (label.toLowerCase().includes("stream ")) {
|
|
388
|
+
return;
|
|
389
|
+
}
|
|
390
|
+
try {
|
|
391
|
+
console.log(
|
|
392
|
+
`[llm-sdk:${provider}] ${label}
|
|
393
|
+
${stringifyForDebug(payload)}`
|
|
394
|
+
);
|
|
395
|
+
} catch (error) {
|
|
396
|
+
console.log(
|
|
397
|
+
`[llm-sdk:${provider}] ${label} (failed to stringify payload)`,
|
|
398
|
+
error
|
|
399
|
+
);
|
|
400
|
+
}
|
|
401
|
+
}
|
|
364
402
|
function hasMediaAttachments(message) {
|
|
365
403
|
const attachments = message.metadata?.attachments;
|
|
366
404
|
return attachments?.some(
|
|
@@ -708,6 +746,26 @@ var AnthropicAdapter = class {
|
|
|
708
746
|
}
|
|
709
747
|
return messages;
|
|
710
748
|
}
|
|
749
|
+
buildNativeSearchTools(tools, variant = "bm25") {
|
|
750
|
+
const nativeSearchTool = variant === "regex" ? {
|
|
751
|
+
type: "tool_search_tool_regex_20251119",
|
|
752
|
+
name: "tool_search_tool_regex"
|
|
753
|
+
} : {
|
|
754
|
+
type: "tool_search_tool_bm25_20251119",
|
|
755
|
+
name: "tool_search_tool_bm25"
|
|
756
|
+
};
|
|
757
|
+
const providerTools = tools.filter((tool) => tool.available !== false).map((tool) => ({
|
|
758
|
+
name: tool.name,
|
|
759
|
+
description: tool.description,
|
|
760
|
+
input_schema: tool.inputSchema ?? {
|
|
761
|
+
type: "object",
|
|
762
|
+
properties: {},
|
|
763
|
+
required: []
|
|
764
|
+
},
|
|
765
|
+
defer_loading: tool.deferLoading === true
|
|
766
|
+
}));
|
|
767
|
+
return [nativeSearchTool, ...providerTools];
|
|
768
|
+
}
|
|
711
769
|
/**
|
|
712
770
|
* Build common request options for both streaming and non-streaming
|
|
713
771
|
*/
|
|
@@ -720,7 +778,11 @@ var AnthropicAdapter = class {
|
|
|
720
778
|
const formatted = formatMessagesForAnthropic2(request.messages);
|
|
721
779
|
messages = formatted.messages;
|
|
722
780
|
}
|
|
723
|
-
const
|
|
781
|
+
const anthropicNativeSearch = request.providerToolOptions?.anthropic?.nativeToolSearch;
|
|
782
|
+
const tools = anthropicNativeSearch?.enabled ? this.buildNativeSearchTools(
|
|
783
|
+
request.toolDefinitions ?? [],
|
|
784
|
+
anthropicNativeSearch.variant
|
|
785
|
+
) : request.actions?.map((action) => ({
|
|
724
786
|
name: action.name,
|
|
725
787
|
description: action.description,
|
|
726
788
|
input_schema: {
|
|
@@ -773,6 +835,19 @@ var AnthropicAdapter = class {
|
|
|
773
835
|
messages,
|
|
774
836
|
tools: tools.length ? tools : void 0
|
|
775
837
|
};
|
|
838
|
+
const anthropicToolOptions = request.providerToolOptions?.anthropic;
|
|
839
|
+
if (tools.length > 0 && anthropicToolOptions) {
|
|
840
|
+
if (anthropicToolOptions.toolChoice || anthropicToolOptions.disableParallelToolUse !== void 0) {
|
|
841
|
+
const toolChoice = typeof anthropicToolOptions.toolChoice === "object" ? {
|
|
842
|
+
type: "tool",
|
|
843
|
+
name: anthropicToolOptions.toolChoice.name
|
|
844
|
+
} : anthropicToolOptions.toolChoice ? { type: anthropicToolOptions.toolChoice } : { type: "auto" };
|
|
845
|
+
if (anthropicToolOptions.disableParallelToolUse !== void 0) {
|
|
846
|
+
toolChoice.disable_parallel_tool_use = anthropicToolOptions.disableParallelToolUse;
|
|
847
|
+
}
|
|
848
|
+
options.tool_choice = toolChoice;
|
|
849
|
+
}
|
|
850
|
+
}
|
|
776
851
|
if (serverToolConfiguration) {
|
|
777
852
|
options.server_tool_configuration = serverToolConfiguration;
|
|
778
853
|
}
|
|
@@ -795,7 +870,19 @@ var AnthropicAdapter = class {
|
|
|
795
870
|
stream: false
|
|
796
871
|
};
|
|
797
872
|
try {
|
|
873
|
+
logProviderPayload(
|
|
874
|
+
"anthropic",
|
|
875
|
+
"request payload",
|
|
876
|
+
nonStreamingOptions,
|
|
877
|
+
request.debug
|
|
878
|
+
);
|
|
798
879
|
const response = await client.messages.create(nonStreamingOptions);
|
|
880
|
+
logProviderPayload(
|
|
881
|
+
"anthropic",
|
|
882
|
+
"response payload",
|
|
883
|
+
response,
|
|
884
|
+
request.debug
|
|
885
|
+
);
|
|
799
886
|
let content = "";
|
|
800
887
|
let thinking = "";
|
|
801
888
|
const toolCalls = [];
|
|
@@ -828,6 +915,12 @@ var AnthropicAdapter = class {
|
|
|
828
915
|
const messageId = generateMessageId();
|
|
829
916
|
yield { type: "message:start", id: messageId };
|
|
830
917
|
try {
|
|
918
|
+
logProviderPayload(
|
|
919
|
+
"anthropic",
|
|
920
|
+
"request payload",
|
|
921
|
+
options,
|
|
922
|
+
request.debug
|
|
923
|
+
);
|
|
831
924
|
const stream = await client.messages.stream(options);
|
|
832
925
|
let currentToolUse = null;
|
|
833
926
|
let isInThinkingBlock = false;
|
|
@@ -835,6 +928,7 @@ var AnthropicAdapter = class {
|
|
|
835
928
|
let citationIndex = 0;
|
|
836
929
|
let usage;
|
|
837
930
|
for await (const event of stream) {
|
|
931
|
+
logProviderPayload("anthropic", "stream event", event, request.debug);
|
|
838
932
|
if (request.signal?.aborted) {
|
|
839
933
|
break;
|
|
840
934
|
}
|