@theokit/sdk 4.14.0 → 4.14.1

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.js CHANGED
@@ -755,13 +755,13 @@ function setAgentFacade(facade) {
755
755
  globalThis[FACADE_KEY] = facade;
756
756
  }
757
757
  function getAgentFacade() {
758
- const registered3 = globalThis[FACADE_KEY];
759
- if (registered3 === void 0) {
758
+ const registered2 = globalThis[FACADE_KEY];
759
+ if (registered2 === void 0) {
760
760
  throw new Error(
761
761
  "internal: Agent facade not registered. The `agent.ts` module must be loaded before internal subsystems (LocalAgent.runUntil/fork, eval, scorers, cron) invoke it."
762
762
  );
763
763
  }
764
- return registered3;
764
+ return registered2;
765
765
  }
766
766
  var FACADE_KEY;
767
767
  var init_agent_factory_registry = __esm({
@@ -13244,6 +13244,9 @@ function getCatalogCapabilities(providerId) {
13244
13244
  _capabilitiesCache = {};
13245
13245
  for (const entry of Object.values(catalog)) {
13246
13246
  _capabilitiesCache[entry.id] = entry.capabilities;
13247
+ for (const alias of entry.aliases ?? []) {
13248
+ if (_capabilitiesCache[alias] === void 0) _capabilitiesCache[alias] = entry.capabilities;
13249
+ }
13247
13250
  }
13248
13251
  }
13249
13252
  return _capabilitiesCache[providerId];
@@ -14079,11 +14082,22 @@ var DEEPINFRA = openAiCompatibleProfile({
14079
14082
  hostname: "api.deepinfra.com"
14080
14083
  });
14081
14084
 
14085
+ // src/internal/providers/builtin/gemini.ts
14086
+ var GEMINI = {
14087
+ name: "gemini",
14088
+ apiMode: "chat_completions",
14089
+ envVars: ["OPENROUTER_API_KEY"],
14090
+ authType: "api_key",
14091
+ baseUrl: "https://openrouter.ai/api",
14092
+ hostname: "openrouter.ai",
14093
+ fallbackModels: ["google/gemini-2.0-flash-001"]
14094
+ };
14095
+
14082
14096
  // src/internal/providers/builtin/google.ts
14083
14097
  var GOOGLE = openAiCompatibleProfile({
14084
14098
  name: "google",
14085
14099
  baseUrl: "https://generativelanguage.googleapis.com/v1beta/openai",
14086
- envVars: ["GOOGLE_API_KEY", "GEMINI_API_KEY"],
14100
+ envVars: ["GOOGLE_API_KEY", "GEMINI_API_KEY", "GOOGLE_GENERATIVE_AI_API_KEY"],
14087
14101
  fallbackModels: ["gemini-2.5-pro", "gemini-2.5-flash"],
14088
14102
  hostname: "generativelanguage.googleapis.com"
14089
14103
  });
@@ -14097,56 +14111,6 @@ var GROQ = openAiCompatibleProfile({
14097
14111
  hostname: "api.groq.com"
14098
14112
  });
14099
14113
 
14100
- // src/internal/providers/builtin/mistral.ts
14101
- var MISTRAL = openAiCompatibleProfile({
14102
- name: "mistral",
14103
- baseUrl: "https://api.mistral.ai/v1",
14104
- envVars: ["MISTRAL_API_KEY"],
14105
- fallbackModels: ["mistral-large-latest", "codestral-latest"],
14106
- hostname: "api.mistral.ai"
14107
- });
14108
-
14109
- // src/internal/providers/builtin/perplexity.ts
14110
- var PERPLEXITY = openAiCompatibleProfile({
14111
- name: "perplexity",
14112
- baseUrl: "https://api.perplexity.ai",
14113
- chatCompletionsPath: "/chat/completions",
14114
- envVars: ["PERPLEXITY_API_KEY"],
14115
- fallbackModels: ["sonar-pro", "sonar"],
14116
- hostname: "api.perplexity.ai"
14117
- });
14118
-
14119
- // src/internal/providers/builtin/together.ts
14120
- var TOGETHER = openAiCompatibleProfile({
14121
- name: "together",
14122
- aliases: ["togetherai"],
14123
- baseUrl: "https://api.together.xyz/v1",
14124
- envVars: ["TOGETHER_API_KEY"],
14125
- fallbackModels: ["Qwen/Qwen2.5-7B-Instruct-Turbo"],
14126
- hostname: "api.together.xyz"
14127
- });
14128
-
14129
- // src/internal/providers/builtin/xai.ts
14130
- var XAI = openAiCompatibleProfile({
14131
- name: "xai",
14132
- aliases: ["grok"],
14133
- baseUrl: "https://api.x.ai/v1",
14134
- envVars: ["XAI_API_KEY"],
14135
- fallbackModels: ["grok-4.5", "grok-4.3"],
14136
- hostname: "api.x.ai"
14137
- });
14138
-
14139
- // src/internal/providers/builtin/gemini.ts
14140
- var GEMINI = {
14141
- name: "gemini",
14142
- apiMode: "chat_completions",
14143
- envVars: ["OPENROUTER_API_KEY"],
14144
- authType: "api_key",
14145
- baseUrl: "https://openrouter.ai/api",
14146
- hostname: "openrouter.ai",
14147
- fallbackModels: ["google/gemini-2.0-flash-001"]
14148
- };
14149
-
14150
14114
  // src/internal/providers/builtin/llamacpp.ts
14151
14115
  var LLAMACPP = {
14152
14116
  name: "llamacpp",
@@ -14173,6 +14137,15 @@ var LMSTUDIO = {
14173
14137
  fallbackModels: ["loaded-model"]
14174
14138
  };
14175
14139
 
14140
+ // src/internal/providers/builtin/mistral.ts
14141
+ var MISTRAL = openAiCompatibleProfile({
14142
+ name: "mistral",
14143
+ baseUrl: "https://api.mistral.ai/v1",
14144
+ envVars: ["MISTRAL_API_KEY"],
14145
+ fallbackModels: ["mistral-large-latest", "codestral-latest"],
14146
+ hostname: "api.mistral.ai"
14147
+ });
14148
+
14176
14149
  // src/internal/providers/builtin/ollama.ts
14177
14150
  var OLLAMA = {
14178
14151
  name: "ollama",
@@ -14567,6 +14540,26 @@ var OPENROUTER = {
14567
14540
  extraHeaders: { "HTTP-Referer": "https://usetheo.dev", "X-Title": "theokit" }
14568
14541
  };
14569
14542
 
14543
+ // src/internal/providers/builtin/perplexity.ts
14544
+ var PERPLEXITY = openAiCompatibleProfile({
14545
+ name: "perplexity",
14546
+ baseUrl: "https://api.perplexity.ai",
14547
+ chatCompletionsPath: "/chat/completions",
14548
+ envVars: ["PERPLEXITY_API_KEY"],
14549
+ fallbackModels: ["sonar-pro", "sonar"],
14550
+ hostname: "api.perplexity.ai"
14551
+ });
14552
+
14553
+ // src/internal/providers/builtin/together.ts
14554
+ var TOGETHER = openAiCompatibleProfile({
14555
+ name: "together",
14556
+ aliases: ["togetherai"],
14557
+ baseUrl: "https://api.together.xyz/v1",
14558
+ envVars: ["TOGETHER_API_KEY"],
14559
+ fallbackModels: ["Qwen/Qwen2.5-7B-Instruct-Turbo"],
14560
+ hostname: "api.together.xyz"
14561
+ });
14562
+
14570
14563
  // src/internal/providers/builtin/vertex.ts
14571
14564
  var VERTEX = {
14572
14565
  name: "vertex",
@@ -14598,11 +14591,26 @@ function stripVertexPrefix(modelId) {
14598
14591
  return modelId.replace(/^vertex\/(anthropic|google)\//, "");
14599
14592
  }
14600
14593
 
14594
+ // src/internal/providers/builtin/xai.ts
14595
+ var XAI = openAiCompatibleProfile({
14596
+ name: "xai",
14597
+ aliases: ["grok"],
14598
+ baseUrl: "https://api.x.ai/v1",
14599
+ envVars: ["XAI_API_KEY"],
14600
+ fallbackModels: ["grok-4.5", "grok-4.3"],
14601
+ hostname: "api.x.ai"
14602
+ });
14603
+
14601
14604
  // src/internal/providers/builtin/index.ts
14602
- var registered2 = false;
14605
+ var _registeredState = (() => {
14606
+ const g = globalThis;
14607
+ const sym = /* @__PURE__ */ Symbol.for("theokit-sdk.providers.builtins-registered");
14608
+ if (g[sym] === void 0) g[sym] = { done: false };
14609
+ return g[sym];
14610
+ })();
14603
14611
  function registerBuiltins() {
14604
- if (registered2) return;
14605
- registered2 = true;
14612
+ if (_registeredState.done) return;
14613
+ _registeredState.done = true;
14606
14614
  registerProvider(ANTHROPIC);
14607
14615
  registerProvider(OPENAI);
14608
14616
  registerProvider(OPENAI_CHATGPT);
@@ -15772,11 +15780,18 @@ var StreamSuppressionBuffer = class {
15772
15780
  };
15773
15781
 
15774
15782
  // src/internal/llm/openai.ts
15783
+ function deriveChatPath(baseUrl) {
15784
+ try {
15785
+ return /\/v\d+[a-z]*(\/|$)/.test(new URL(baseUrl).pathname) ? "/chat/completions" : "/v1/chat/completions";
15786
+ } catch {
15787
+ return "/v1/chat/completions";
15788
+ }
15789
+ }
15775
15790
  var OpenAIClient = class {
15776
15791
  constructor(options) {
15777
15792
  this.options = options;
15778
- this.baseUrl = options.baseUrl ?? "https://api.openai.com";
15779
- this.chatPath = options.chatCompletionsPath ?? (/\/v\d+[a-z]*(\/|$)/.test(new URL(this.baseUrl).pathname) ? "/chat/completions" : "/v1/chat/completions");
15793
+ this.baseUrl = (options.baseUrl ?? "https://api.openai.com").replace(/\/+$/, "");
15794
+ this.chatPath = options.chatCompletionsPath ?? deriveChatPath(this.baseUrl);
15780
15795
  this.fetchImpl = options.fetch ?? fetch;
15781
15796
  }
15782
15797
  options;
@@ -17247,12 +17262,12 @@ function resolveMcpCwd(configCwd) {
17247
17262
 
17248
17263
  // src/internal/providers/register-plugin-providers.ts
17249
17264
  function registerPluginProviderProfiles(entries) {
17250
- let registered3 = 0;
17265
+ let registered2 = 0;
17251
17266
  for (const entry of entries) {
17252
17267
  registerProvider(entry.profile);
17253
- registered3 += 1;
17268
+ registered2 += 1;
17254
17269
  }
17255
- return registered3;
17270
+ return registered2;
17256
17271
  }
17257
17272
 
17258
17273
  // src/internal/local-agent/real-local-run.ts
@@ -17577,12 +17592,12 @@ var pluginProvidersAnnounced = false;
17577
17592
  function resolveRunProvider(options) {
17578
17593
  registerBuiltins();
17579
17594
  const profiles = options.pluginManager?.aggregated.providerProfiles ?? [];
17580
- const registered3 = registerPluginProviderProfiles(profiles);
17581
- if (registered3 > 0 && !pluginProvidersAnnounced) {
17595
+ const registered2 = registerPluginProviderProfiles(profiles);
17596
+ if (registered2 > 0 && !pluginProvidersAnnounced) {
17582
17597
  pluginProvidersAnnounced = true;
17583
17598
  const names = profiles.map((e) => e.profile.name).join(", ");
17584
17599
  process.stderr.write(
17585
- `[theokit-sdk] registered ${registered3} plugin provider profile(s): ${names}
17600
+ `[theokit-sdk] registered ${registered2} plugin provider profile(s): ${names}
17586
17601
  `
17587
17602
  );
17588
17603
  }