@jambonz/llm 0.5.1 → 0.5.3
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/dist/index.cjs +171 -2
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +171 -2
- package/dist/index.js.map +1 -1
- package/dist/test-kit/index.cjs +166 -2
- package/dist/test-kit/index.cjs.map +1 -1
- package/dist/test-kit/index.js +166 -2
- package/dist/test-kit/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.d.cts
CHANGED
|
@@ -31,7 +31,7 @@ interface RawCredential {
|
|
|
31
31
|
/**
|
|
32
32
|
* Convert a vendor + raw credential into an `AuthSpec` discriminated union member.
|
|
33
33
|
*
|
|
34
|
-
* Supported vendors: openai, deepseek, anthropic, google, vertex (alias for
|
|
34
|
+
* Supported vendors: openai, deepseek, baseten, anthropic, google, vertex (alias for
|
|
35
35
|
* vertex-gemini + vertex-openai — both accept the same auth shape), vertex-gemini,
|
|
36
36
|
* vertex-openai, bedrock, azure-openai, groq, huggingface.
|
|
37
37
|
*
|
package/dist/index.d.ts
CHANGED
|
@@ -31,7 +31,7 @@ interface RawCredential {
|
|
|
31
31
|
/**
|
|
32
32
|
* Convert a vendor + raw credential into an `AuthSpec` discriminated union member.
|
|
33
33
|
*
|
|
34
|
-
* Supported vendors: openai, deepseek, anthropic, google, vertex (alias for
|
|
34
|
+
* Supported vendors: openai, deepseek, baseten, anthropic, google, vertex (alias for
|
|
35
35
|
* vertex-gemini + vertex-openai — both accept the same auth shape), vertex-gemini,
|
|
36
36
|
* vertex-openai, bedrock, azure-openai, groq, huggingface.
|
|
37
37
|
*
|
package/dist/index.js
CHANGED
|
@@ -495,7 +495,7 @@ var OpenAIAdapter = class {
|
|
|
495
495
|
}
|
|
496
496
|
stream(req) {
|
|
497
497
|
return streamFromOpenAI(this.ensureClient(), req, {
|
|
498
|
-
knownModels:
|
|
498
|
+
knownModels: this.knownModels(),
|
|
499
499
|
vendorMetadataExtractor: OPENAI_METADATA_EXTRACTOR
|
|
500
500
|
});
|
|
501
501
|
}
|
|
@@ -506,7 +506,16 @@ var OpenAIAdapter = class {
|
|
|
506
506
|
return appendOpenAIToolResult(history, toolCallId, result);
|
|
507
507
|
}
|
|
508
508
|
async listAvailableModels() {
|
|
509
|
-
return listOpenAICompatibleModels(this.ensureClient(),
|
|
509
|
+
return listOpenAICompatibleModels(this.ensureClient(), this.knownModels());
|
|
510
|
+
}
|
|
511
|
+
/**
|
|
512
|
+
* Capability table used to enrich both `stream()` (for tools/vision gating)
|
|
513
|
+
* and `listAvailableModels()` (for filling capability flags on live entries).
|
|
514
|
+
* Subclasses backed by the same OpenAI wire (DeepSeek, Baseten, …) override
|
|
515
|
+
* this so their own manifest entries are consulted instead of OpenAI's.
|
|
516
|
+
*/
|
|
517
|
+
knownModels() {
|
|
518
|
+
return openAIManifest.knownModels;
|
|
510
519
|
}
|
|
511
520
|
async testCredential() {
|
|
512
521
|
await this.ensureClient().models.list();
|
|
@@ -617,12 +626,165 @@ var DeepSeekAdapter = class extends OpenAIAdapter {
|
|
|
617
626
|
client
|
|
618
627
|
);
|
|
619
628
|
}
|
|
629
|
+
knownModels() {
|
|
630
|
+
return deepseekManifest.knownModels;
|
|
631
|
+
}
|
|
620
632
|
};
|
|
621
633
|
var deepseekFactory = {
|
|
622
634
|
vendor: deepseekManifest.vendor,
|
|
623
635
|
manifest: deepseekManifest,
|
|
624
636
|
create: () => new DeepSeekAdapter()
|
|
625
637
|
};
|
|
638
|
+
var basetenManifest = {
|
|
639
|
+
vendor: "baseten",
|
|
640
|
+
displayName: "Baseten",
|
|
641
|
+
authKinds: [
|
|
642
|
+
{
|
|
643
|
+
kind: "apiKey",
|
|
644
|
+
displayName: "API Key",
|
|
645
|
+
fields: [
|
|
646
|
+
{
|
|
647
|
+
name: "apiKey",
|
|
648
|
+
label: "API Key",
|
|
649
|
+
type: "password",
|
|
650
|
+
required: true,
|
|
651
|
+
help: "Get an API key from https://app.baseten.co/settings/api_keys"
|
|
652
|
+
},
|
|
653
|
+
{
|
|
654
|
+
name: "baseURL",
|
|
655
|
+
label: "Base URL",
|
|
656
|
+
type: "url",
|
|
657
|
+
required: false,
|
|
658
|
+
default: "https://inference.baseten.co/v1",
|
|
659
|
+
help: "Defaults to Baseten Model APIs. Set to https://bridge.baseten.co/v1/direct to route to a dedicated deployment."
|
|
660
|
+
}
|
|
661
|
+
]
|
|
662
|
+
}
|
|
663
|
+
],
|
|
664
|
+
knownModels: [
|
|
665
|
+
{
|
|
666
|
+
id: "deepseek-ai/DeepSeek-V3.1",
|
|
667
|
+
displayName: "DeepSeek V3.1",
|
|
668
|
+
capabilities: {
|
|
669
|
+
streaming: true,
|
|
670
|
+
tools: true,
|
|
671
|
+
vision: false,
|
|
672
|
+
systemPrompt: true,
|
|
673
|
+
maxContextTokens: 163840
|
|
674
|
+
}
|
|
675
|
+
},
|
|
676
|
+
{
|
|
677
|
+
id: "deepseek-ai/DeepSeek-V4-Pro",
|
|
678
|
+
displayName: "DeepSeek V4 Pro",
|
|
679
|
+
capabilities: {
|
|
680
|
+
streaming: true,
|
|
681
|
+
tools: true,
|
|
682
|
+
vision: false,
|
|
683
|
+
systemPrompt: true,
|
|
684
|
+
maxContextTokens: 131072
|
|
685
|
+
}
|
|
686
|
+
},
|
|
687
|
+
{
|
|
688
|
+
id: "zai-org/GLM-4.7",
|
|
689
|
+
displayName: "GLM 4.7",
|
|
690
|
+
capabilities: {
|
|
691
|
+
streaming: true,
|
|
692
|
+
tools: true,
|
|
693
|
+
vision: false,
|
|
694
|
+
systemPrompt: true,
|
|
695
|
+
maxContextTokens: 2e5
|
|
696
|
+
}
|
|
697
|
+
},
|
|
698
|
+
{
|
|
699
|
+
id: "zai-org/GLM-5",
|
|
700
|
+
displayName: "GLM 5",
|
|
701
|
+
capabilities: {
|
|
702
|
+
streaming: true,
|
|
703
|
+
tools: true,
|
|
704
|
+
vision: false,
|
|
705
|
+
systemPrompt: true,
|
|
706
|
+
maxContextTokens: 202800
|
|
707
|
+
}
|
|
708
|
+
},
|
|
709
|
+
{
|
|
710
|
+
id: "moonshotai/Kimi-K2.5",
|
|
711
|
+
displayName: "Kimi K2.5",
|
|
712
|
+
capabilities: {
|
|
713
|
+
streaming: true,
|
|
714
|
+
tools: true,
|
|
715
|
+
vision: true,
|
|
716
|
+
systemPrompt: true,
|
|
717
|
+
maxContextTokens: 262e3
|
|
718
|
+
}
|
|
719
|
+
},
|
|
720
|
+
{
|
|
721
|
+
id: "moonshotai/Kimi-K2.6",
|
|
722
|
+
displayName: "Kimi K2.6",
|
|
723
|
+
capabilities: {
|
|
724
|
+
streaming: true,
|
|
725
|
+
tools: true,
|
|
726
|
+
vision: true,
|
|
727
|
+
systemPrompt: true,
|
|
728
|
+
maxContextTokens: 262e3
|
|
729
|
+
}
|
|
730
|
+
},
|
|
731
|
+
{
|
|
732
|
+
id: "MiniMaxAI/MiniMax-M2.5",
|
|
733
|
+
displayName: "MiniMax M2.5",
|
|
734
|
+
capabilities: {
|
|
735
|
+
streaming: true,
|
|
736
|
+
tools: true,
|
|
737
|
+
vision: false,
|
|
738
|
+
systemPrompt: true,
|
|
739
|
+
maxContextTokens: 204e3
|
|
740
|
+
}
|
|
741
|
+
},
|
|
742
|
+
{
|
|
743
|
+
id: "nvidia/Nemotron-120B-A12B",
|
|
744
|
+
displayName: "Nemotron Super",
|
|
745
|
+
capabilities: {
|
|
746
|
+
streaming: true,
|
|
747
|
+
tools: true,
|
|
748
|
+
vision: false,
|
|
749
|
+
systemPrompt: true,
|
|
750
|
+
maxContextTokens: 202800
|
|
751
|
+
}
|
|
752
|
+
},
|
|
753
|
+
{
|
|
754
|
+
id: "openai/gpt-oss-120b",
|
|
755
|
+
displayName: "OpenAI GPT 120B",
|
|
756
|
+
capabilities: {
|
|
757
|
+
streaming: true,
|
|
758
|
+
tools: true,
|
|
759
|
+
vision: false,
|
|
760
|
+
systemPrompt: true,
|
|
761
|
+
maxContextTokens: 128072
|
|
762
|
+
}
|
|
763
|
+
}
|
|
764
|
+
],
|
|
765
|
+
supportsModelListing: true,
|
|
766
|
+
docsUrl: "https://docs.baseten.co/inference/model-apis/overview"
|
|
767
|
+
};
|
|
768
|
+
var BasetenAdapter = class extends OpenAIAdapter {
|
|
769
|
+
vendor = basetenManifest.vendor;
|
|
770
|
+
init(auth, client) {
|
|
771
|
+
super.init(
|
|
772
|
+
{
|
|
773
|
+
...auth,
|
|
774
|
+
baseURL: auth.baseURL ?? "https://inference.baseten.co/v1"
|
|
775
|
+
},
|
|
776
|
+
client
|
|
777
|
+
);
|
|
778
|
+
}
|
|
779
|
+
knownModels() {
|
|
780
|
+
return basetenManifest.knownModels;
|
|
781
|
+
}
|
|
782
|
+
};
|
|
783
|
+
var basetenFactory = {
|
|
784
|
+
vendor: basetenManifest.vendor,
|
|
785
|
+
manifest: basetenManifest,
|
|
786
|
+
create: () => new BasetenAdapter()
|
|
787
|
+
};
|
|
626
788
|
|
|
627
789
|
// src/adapters/anthropic/adapter.ts
|
|
628
790
|
import Anthropic from "@anthropic-ai/sdk";
|
|
@@ -2647,6 +2809,7 @@ var groqManifest = {
|
|
|
2647
2809
|
var GROQ_METADATA_EXTRACTOR = makeMetadataExtractor([
|
|
2648
2810
|
{ header: "x-request-id", key: "request_id" },
|
|
2649
2811
|
{ header: "x-groq-region", key: "region" },
|
|
2812
|
+
{ header: "openai-processing-ms", key: "processing_ms", numeric: true },
|
|
2650
2813
|
{ header: "x-ratelimit-remaining-requests", key: "requests_remaining", numeric: true },
|
|
2651
2814
|
{ header: "x-ratelimit-remaining-tokens", key: "tokens_remaining", numeric: true }
|
|
2652
2815
|
]);
|
|
@@ -2800,6 +2963,7 @@ var huggingfaceFactory = {
|
|
|
2800
2963
|
// src/adapters/index.ts
|
|
2801
2964
|
registerAdapter(openAIFactory);
|
|
2802
2965
|
registerAdapter(deepseekFactory);
|
|
2966
|
+
registerAdapter(basetenFactory);
|
|
2803
2967
|
registerAdapter(anthropicFactory);
|
|
2804
2968
|
registerAdapter(googleFactory);
|
|
2805
2969
|
registerAdapter(vertexGeminiFactory);
|
|
@@ -2822,6 +2986,11 @@ function normalizeAuth(vendor, raw) {
|
|
|
2822
2986
|
...requireApiKey(vendor, raw),
|
|
2823
2987
|
baseURL: raw.api_url ?? "https://api.deepseek.com/v1"
|
|
2824
2988
|
};
|
|
2989
|
+
case "baseten":
|
|
2990
|
+
return {
|
|
2991
|
+
...requireApiKey(vendor, raw),
|
|
2992
|
+
baseURL: raw.api_url ?? "https://inference.baseten.co/v1"
|
|
2993
|
+
};
|
|
2825
2994
|
case "google":
|
|
2826
2995
|
return normalizeGoogle(raw);
|
|
2827
2996
|
case "vertex":
|