@jambonz/llm 0.5.2 → 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 CHANGED
@@ -540,7 +540,7 @@ var OpenAIAdapter = class {
540
540
  }
541
541
  stream(req) {
542
542
  return streamFromOpenAI(this.ensureClient(), req, {
543
- knownModels: openAIManifest.knownModels,
543
+ knownModels: this.knownModels(),
544
544
  vendorMetadataExtractor: OPENAI_METADATA_EXTRACTOR
545
545
  });
546
546
  }
@@ -551,7 +551,16 @@ var OpenAIAdapter = class {
551
551
  return appendOpenAIToolResult(history, toolCallId, result);
552
552
  }
553
553
  async listAvailableModels() {
554
- return listOpenAICompatibleModels(this.ensureClient(), openAIManifest.knownModels);
554
+ return listOpenAICompatibleModels(this.ensureClient(), this.knownModels());
555
+ }
556
+ /**
557
+ * Capability table used to enrich both `stream()` (for tools/vision gating)
558
+ * and `listAvailableModels()` (for filling capability flags on live entries).
559
+ * Subclasses backed by the same OpenAI wire (DeepSeek, Baseten, …) override
560
+ * this so their own manifest entries are consulted instead of OpenAI's.
561
+ */
562
+ knownModels() {
563
+ return openAIManifest.knownModels;
555
564
  }
556
565
  async testCredential() {
557
566
  await this.ensureClient().models.list();
@@ -662,12 +671,165 @@ var DeepSeekAdapter = class extends OpenAIAdapter {
662
671
  client
663
672
  );
664
673
  }
674
+ knownModels() {
675
+ return deepseekManifest.knownModels;
676
+ }
665
677
  };
666
678
  var deepseekFactory = {
667
679
  vendor: deepseekManifest.vendor,
668
680
  manifest: deepseekManifest,
669
681
  create: () => new DeepSeekAdapter()
670
682
  };
683
+ var basetenManifest = {
684
+ vendor: "baseten",
685
+ displayName: "Baseten",
686
+ authKinds: [
687
+ {
688
+ kind: "apiKey",
689
+ displayName: "API Key",
690
+ fields: [
691
+ {
692
+ name: "apiKey",
693
+ label: "API Key",
694
+ type: "password",
695
+ required: true,
696
+ help: "Get an API key from https://app.baseten.co/settings/api_keys"
697
+ },
698
+ {
699
+ name: "baseURL",
700
+ label: "Base URL",
701
+ type: "url",
702
+ required: false,
703
+ default: "https://inference.baseten.co/v1",
704
+ help: "Defaults to Baseten Model APIs. Set to https://bridge.baseten.co/v1/direct to route to a dedicated deployment."
705
+ }
706
+ ]
707
+ }
708
+ ],
709
+ knownModels: [
710
+ {
711
+ id: "deepseek-ai/DeepSeek-V3.1",
712
+ displayName: "DeepSeek V3.1",
713
+ capabilities: {
714
+ streaming: true,
715
+ tools: true,
716
+ vision: false,
717
+ systemPrompt: true,
718
+ maxContextTokens: 163840
719
+ }
720
+ },
721
+ {
722
+ id: "deepseek-ai/DeepSeek-V4-Pro",
723
+ displayName: "DeepSeek V4 Pro",
724
+ capabilities: {
725
+ streaming: true,
726
+ tools: true,
727
+ vision: false,
728
+ systemPrompt: true,
729
+ maxContextTokens: 131072
730
+ }
731
+ },
732
+ {
733
+ id: "zai-org/GLM-4.7",
734
+ displayName: "GLM 4.7",
735
+ capabilities: {
736
+ streaming: true,
737
+ tools: true,
738
+ vision: false,
739
+ systemPrompt: true,
740
+ maxContextTokens: 2e5
741
+ }
742
+ },
743
+ {
744
+ id: "zai-org/GLM-5",
745
+ displayName: "GLM 5",
746
+ capabilities: {
747
+ streaming: true,
748
+ tools: true,
749
+ vision: false,
750
+ systemPrompt: true,
751
+ maxContextTokens: 202800
752
+ }
753
+ },
754
+ {
755
+ id: "moonshotai/Kimi-K2.5",
756
+ displayName: "Kimi K2.5",
757
+ capabilities: {
758
+ streaming: true,
759
+ tools: true,
760
+ vision: true,
761
+ systemPrompt: true,
762
+ maxContextTokens: 262e3
763
+ }
764
+ },
765
+ {
766
+ id: "moonshotai/Kimi-K2.6",
767
+ displayName: "Kimi K2.6",
768
+ capabilities: {
769
+ streaming: true,
770
+ tools: true,
771
+ vision: true,
772
+ systemPrompt: true,
773
+ maxContextTokens: 262e3
774
+ }
775
+ },
776
+ {
777
+ id: "MiniMaxAI/MiniMax-M2.5",
778
+ displayName: "MiniMax M2.5",
779
+ capabilities: {
780
+ streaming: true,
781
+ tools: true,
782
+ vision: false,
783
+ systemPrompt: true,
784
+ maxContextTokens: 204e3
785
+ }
786
+ },
787
+ {
788
+ id: "nvidia/Nemotron-120B-A12B",
789
+ displayName: "Nemotron Super",
790
+ capabilities: {
791
+ streaming: true,
792
+ tools: true,
793
+ vision: false,
794
+ systemPrompt: true,
795
+ maxContextTokens: 202800
796
+ }
797
+ },
798
+ {
799
+ id: "openai/gpt-oss-120b",
800
+ displayName: "OpenAI GPT 120B",
801
+ capabilities: {
802
+ streaming: true,
803
+ tools: true,
804
+ vision: false,
805
+ systemPrompt: true,
806
+ maxContextTokens: 128072
807
+ }
808
+ }
809
+ ],
810
+ supportsModelListing: true,
811
+ docsUrl: "https://docs.baseten.co/inference/model-apis/overview"
812
+ };
813
+ var BasetenAdapter = class extends OpenAIAdapter {
814
+ vendor = basetenManifest.vendor;
815
+ init(auth, client) {
816
+ super.init(
817
+ {
818
+ ...auth,
819
+ baseURL: auth.baseURL ?? "https://inference.baseten.co/v1"
820
+ },
821
+ client
822
+ );
823
+ }
824
+ knownModels() {
825
+ return basetenManifest.knownModels;
826
+ }
827
+ };
828
+ var basetenFactory = {
829
+ vendor: basetenManifest.vendor,
830
+ manifest: basetenManifest,
831
+ create: () => new BasetenAdapter()
832
+ };
671
833
 
672
834
  // src/adapters/anthropic/adapter.ts
673
835
  var import_sdk = __toESM(require("@anthropic-ai/sdk"), 1);
@@ -2840,6 +3002,7 @@ var huggingfaceFactory = {
2840
3002
  // src/adapters/index.ts
2841
3003
  registerAdapter(openAIFactory);
2842
3004
  registerAdapter(deepseekFactory);
3005
+ registerAdapter(basetenFactory);
2843
3006
  registerAdapter(anthropicFactory);
2844
3007
  registerAdapter(googleFactory);
2845
3008
  registerAdapter(vertexGeminiFactory);
@@ -2862,6 +3025,11 @@ function normalizeAuth(vendor, raw) {
2862
3025
  ...requireApiKey(vendor, raw),
2863
3026
  baseURL: raw.api_url ?? "https://api.deepseek.com/v1"
2864
3027
  };
3028
+ case "baseten":
3029
+ return {
3030
+ ...requireApiKey(vendor, raw),
3031
+ baseURL: raw.api_url ?? "https://inference.baseten.co/v1"
3032
+ };
2865
3033
  case "google":
2866
3034
  return normalizeGoogle(raw);
2867
3035
  case "vertex":