@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.
@@ -527,7 +527,7 @@ var OpenAIAdapter = class {
527
527
  }
528
528
  stream(req) {
529
529
  return streamFromOpenAI(this.ensureClient(), req, {
530
- knownModels: openAIManifest.knownModels,
530
+ knownModels: this.knownModels(),
531
531
  vendorMetadataExtractor: OPENAI_METADATA_EXTRACTOR
532
532
  });
533
533
  }
@@ -538,7 +538,16 @@ var OpenAIAdapter = class {
538
538
  return appendOpenAIToolResult(history, toolCallId, result);
539
539
  }
540
540
  async listAvailableModels() {
541
- return listOpenAICompatibleModels(this.ensureClient(), openAIManifest.knownModels);
541
+ return listOpenAICompatibleModels(this.ensureClient(), this.knownModels());
542
+ }
543
+ /**
544
+ * Capability table used to enrich both `stream()` (for tools/vision gating)
545
+ * and `listAvailableModels()` (for filling capability flags on live entries).
546
+ * Subclasses backed by the same OpenAI wire (DeepSeek, Baseten, …) override
547
+ * this so their own manifest entries are consulted instead of OpenAI's.
548
+ */
549
+ knownModels() {
550
+ return openAIManifest.knownModels;
542
551
  }
543
552
  async testCredential() {
544
553
  await this.ensureClient().models.list();
@@ -649,12 +658,165 @@ var DeepSeekAdapter = class extends OpenAIAdapter {
649
658
  client
650
659
  );
651
660
  }
661
+ knownModels() {
662
+ return deepseekManifest.knownModels;
663
+ }
652
664
  };
653
665
  var deepseekFactory = {
654
666
  vendor: deepseekManifest.vendor,
655
667
  manifest: deepseekManifest,
656
668
  create: () => new DeepSeekAdapter()
657
669
  };
670
+ var basetenManifest = {
671
+ vendor: "baseten",
672
+ displayName: "Baseten",
673
+ authKinds: [
674
+ {
675
+ kind: "apiKey",
676
+ displayName: "API Key",
677
+ fields: [
678
+ {
679
+ name: "apiKey",
680
+ label: "API Key",
681
+ type: "password",
682
+ required: true,
683
+ help: "Get an API key from https://app.baseten.co/settings/api_keys"
684
+ },
685
+ {
686
+ name: "baseURL",
687
+ label: "Base URL",
688
+ type: "url",
689
+ required: false,
690
+ default: "https://inference.baseten.co/v1",
691
+ help: "Defaults to Baseten Model APIs. Set to https://bridge.baseten.co/v1/direct to route to a dedicated deployment."
692
+ }
693
+ ]
694
+ }
695
+ ],
696
+ knownModels: [
697
+ {
698
+ id: "deepseek-ai/DeepSeek-V3.1",
699
+ displayName: "DeepSeek V3.1",
700
+ capabilities: {
701
+ streaming: true,
702
+ tools: true,
703
+ vision: false,
704
+ systemPrompt: true,
705
+ maxContextTokens: 163840
706
+ }
707
+ },
708
+ {
709
+ id: "deepseek-ai/DeepSeek-V4-Pro",
710
+ displayName: "DeepSeek V4 Pro",
711
+ capabilities: {
712
+ streaming: true,
713
+ tools: true,
714
+ vision: false,
715
+ systemPrompt: true,
716
+ maxContextTokens: 131072
717
+ }
718
+ },
719
+ {
720
+ id: "zai-org/GLM-4.7",
721
+ displayName: "GLM 4.7",
722
+ capabilities: {
723
+ streaming: true,
724
+ tools: true,
725
+ vision: false,
726
+ systemPrompt: true,
727
+ maxContextTokens: 2e5
728
+ }
729
+ },
730
+ {
731
+ id: "zai-org/GLM-5",
732
+ displayName: "GLM 5",
733
+ capabilities: {
734
+ streaming: true,
735
+ tools: true,
736
+ vision: false,
737
+ systemPrompt: true,
738
+ maxContextTokens: 202800
739
+ }
740
+ },
741
+ {
742
+ id: "moonshotai/Kimi-K2.5",
743
+ displayName: "Kimi K2.5",
744
+ capabilities: {
745
+ streaming: true,
746
+ tools: true,
747
+ vision: true,
748
+ systemPrompt: true,
749
+ maxContextTokens: 262e3
750
+ }
751
+ },
752
+ {
753
+ id: "moonshotai/Kimi-K2.6",
754
+ displayName: "Kimi K2.6",
755
+ capabilities: {
756
+ streaming: true,
757
+ tools: true,
758
+ vision: true,
759
+ systemPrompt: true,
760
+ maxContextTokens: 262e3
761
+ }
762
+ },
763
+ {
764
+ id: "MiniMaxAI/MiniMax-M2.5",
765
+ displayName: "MiniMax M2.5",
766
+ capabilities: {
767
+ streaming: true,
768
+ tools: true,
769
+ vision: false,
770
+ systemPrompt: true,
771
+ maxContextTokens: 204e3
772
+ }
773
+ },
774
+ {
775
+ id: "nvidia/Nemotron-120B-A12B",
776
+ displayName: "Nemotron Super",
777
+ capabilities: {
778
+ streaming: true,
779
+ tools: true,
780
+ vision: false,
781
+ systemPrompt: true,
782
+ maxContextTokens: 202800
783
+ }
784
+ },
785
+ {
786
+ id: "openai/gpt-oss-120b",
787
+ displayName: "OpenAI GPT 120B",
788
+ capabilities: {
789
+ streaming: true,
790
+ tools: true,
791
+ vision: false,
792
+ systemPrompt: true,
793
+ maxContextTokens: 128072
794
+ }
795
+ }
796
+ ],
797
+ supportsModelListing: true,
798
+ docsUrl: "https://docs.baseten.co/inference/model-apis/overview"
799
+ };
800
+ var BasetenAdapter = class extends OpenAIAdapter {
801
+ vendor = basetenManifest.vendor;
802
+ init(auth, client) {
803
+ super.init(
804
+ {
805
+ ...auth,
806
+ baseURL: auth.baseURL ?? "https://inference.baseten.co/v1"
807
+ },
808
+ client
809
+ );
810
+ }
811
+ knownModels() {
812
+ return basetenManifest.knownModels;
813
+ }
814
+ };
815
+ var basetenFactory = {
816
+ vendor: basetenManifest.vendor,
817
+ manifest: basetenManifest,
818
+ create: () => new BasetenAdapter()
819
+ };
658
820
 
659
821
  // src/adapters/anthropic/adapter.ts
660
822
  var import_sdk = __toESM(require("@anthropic-ai/sdk"), 1);
@@ -2827,6 +2989,7 @@ var huggingfaceFactory = {
2827
2989
  // src/adapters/index.ts
2828
2990
  registerAdapter(openAIFactory);
2829
2991
  registerAdapter(deepseekFactory);
2992
+ registerAdapter(basetenFactory);
2830
2993
  registerAdapter(anthropicFactory);
2831
2994
  registerAdapter(googleFactory);
2832
2995
  registerAdapter(vertexGeminiFactory);