@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.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: openAIManifest.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(), openAIManifest.knownModels);
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";
@@ -2801,6 +2963,7 @@ var huggingfaceFactory = {
2801
2963
  // src/adapters/index.ts
2802
2964
  registerAdapter(openAIFactory);
2803
2965
  registerAdapter(deepseekFactory);
2966
+ registerAdapter(basetenFactory);
2804
2967
  registerAdapter(anthropicFactory);
2805
2968
  registerAdapter(googleFactory);
2806
2969
  registerAdapter(vertexGeminiFactory);
@@ -2823,6 +2986,11 @@ function normalizeAuth(vendor, raw) {
2823
2986
  ...requireApiKey(vendor, raw),
2824
2987
  baseURL: raw.api_url ?? "https://api.deepseek.com/v1"
2825
2988
  };
2989
+ case "baseten":
2990
+ return {
2991
+ ...requireApiKey(vendor, raw),
2992
+ baseURL: raw.api_url ?? "https://inference.baseten.co/v1"
2993
+ };
2826
2994
  case "google":
2827
2995
  return normalizeGoogle(raw);
2828
2996
  case "vertex":