@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/eval.cjs CHANGED
@@ -751,13 +751,13 @@ function setAgentFacade(facade) {
751
751
  globalThis[FACADE_KEY] = facade;
752
752
  }
753
753
  function getAgentFacade() {
754
- const registered3 = globalThis[FACADE_KEY];
755
- if (registered3 === void 0) {
754
+ const registered2 = globalThis[FACADE_KEY];
755
+ if (registered2 === void 0) {
756
756
  throw new Error(
757
757
  "internal: Agent facade not registered. The `agent.ts` module must be loaded before internal subsystems (LocalAgent.runUntil/fork, eval, scorers, cron) invoke it."
758
758
  );
759
759
  }
760
- return registered3;
760
+ return registered2;
761
761
  }
762
762
  var FACADE_KEY;
763
763
  var init_agent_factory_registry = __esm({
@@ -11481,11 +11481,22 @@ var DEEPINFRA = openAiCompatibleProfile({
11481
11481
  hostname: "api.deepinfra.com"
11482
11482
  });
11483
11483
 
11484
+ // src/internal/providers/builtin/gemini.ts
11485
+ var GEMINI = {
11486
+ name: "gemini",
11487
+ apiMode: "chat_completions",
11488
+ envVars: ["OPENROUTER_API_KEY"],
11489
+ authType: "api_key",
11490
+ baseUrl: "https://openrouter.ai/api",
11491
+ hostname: "openrouter.ai",
11492
+ fallbackModels: ["google/gemini-2.0-flash-001"]
11493
+ };
11494
+
11484
11495
  // src/internal/providers/builtin/google.ts
11485
11496
  var GOOGLE = openAiCompatibleProfile({
11486
11497
  name: "google",
11487
11498
  baseUrl: "https://generativelanguage.googleapis.com/v1beta/openai",
11488
- envVars: ["GOOGLE_API_KEY", "GEMINI_API_KEY"],
11499
+ envVars: ["GOOGLE_API_KEY", "GEMINI_API_KEY", "GOOGLE_GENERATIVE_AI_API_KEY"],
11489
11500
  fallbackModels: ["gemini-2.5-pro", "gemini-2.5-flash"],
11490
11501
  hostname: "generativelanguage.googleapis.com"
11491
11502
  });
@@ -11499,56 +11510,6 @@ var GROQ = openAiCompatibleProfile({
11499
11510
  hostname: "api.groq.com"
11500
11511
  });
11501
11512
 
11502
- // src/internal/providers/builtin/mistral.ts
11503
- var MISTRAL = openAiCompatibleProfile({
11504
- name: "mistral",
11505
- baseUrl: "https://api.mistral.ai/v1",
11506
- envVars: ["MISTRAL_API_KEY"],
11507
- fallbackModels: ["mistral-large-latest", "codestral-latest"],
11508
- hostname: "api.mistral.ai"
11509
- });
11510
-
11511
- // src/internal/providers/builtin/perplexity.ts
11512
- var PERPLEXITY = openAiCompatibleProfile({
11513
- name: "perplexity",
11514
- baseUrl: "https://api.perplexity.ai",
11515
- chatCompletionsPath: "/chat/completions",
11516
- envVars: ["PERPLEXITY_API_KEY"],
11517
- fallbackModels: ["sonar-pro", "sonar"],
11518
- hostname: "api.perplexity.ai"
11519
- });
11520
-
11521
- // src/internal/providers/builtin/together.ts
11522
- var TOGETHER = openAiCompatibleProfile({
11523
- name: "together",
11524
- aliases: ["togetherai"],
11525
- baseUrl: "https://api.together.xyz/v1",
11526
- envVars: ["TOGETHER_API_KEY"],
11527
- fallbackModels: ["Qwen/Qwen2.5-7B-Instruct-Turbo"],
11528
- hostname: "api.together.xyz"
11529
- });
11530
-
11531
- // src/internal/providers/builtin/xai.ts
11532
- var XAI = openAiCompatibleProfile({
11533
- name: "xai",
11534
- aliases: ["grok"],
11535
- baseUrl: "https://api.x.ai/v1",
11536
- envVars: ["XAI_API_KEY"],
11537
- fallbackModels: ["grok-4.5", "grok-4.3"],
11538
- hostname: "api.x.ai"
11539
- });
11540
-
11541
- // src/internal/providers/builtin/gemini.ts
11542
- var GEMINI = {
11543
- name: "gemini",
11544
- apiMode: "chat_completions",
11545
- envVars: ["OPENROUTER_API_KEY"],
11546
- authType: "api_key",
11547
- baseUrl: "https://openrouter.ai/api",
11548
- hostname: "openrouter.ai",
11549
- fallbackModels: ["google/gemini-2.0-flash-001"]
11550
- };
11551
-
11552
11513
  // src/internal/providers/builtin/llamacpp.ts
11553
11514
  var LLAMACPP = {
11554
11515
  name: "llamacpp",
@@ -11575,6 +11536,15 @@ var LMSTUDIO = {
11575
11536
  fallbackModels: ["loaded-model"]
11576
11537
  };
11577
11538
 
11539
+ // src/internal/providers/builtin/mistral.ts
11540
+ var MISTRAL = openAiCompatibleProfile({
11541
+ name: "mistral",
11542
+ baseUrl: "https://api.mistral.ai/v1",
11543
+ envVars: ["MISTRAL_API_KEY"],
11544
+ fallbackModels: ["mistral-large-latest", "codestral-latest"],
11545
+ hostname: "api.mistral.ai"
11546
+ });
11547
+
11578
11548
  // src/internal/providers/builtin/ollama.ts
11579
11549
  var OLLAMA = {
11580
11550
  name: "ollama",
@@ -11969,6 +11939,26 @@ var OPENROUTER = {
11969
11939
  extraHeaders: { "HTTP-Referer": "https://usetheo.dev", "X-Title": "theokit" }
11970
11940
  };
11971
11941
 
11942
+ // src/internal/providers/builtin/perplexity.ts
11943
+ var PERPLEXITY = openAiCompatibleProfile({
11944
+ name: "perplexity",
11945
+ baseUrl: "https://api.perplexity.ai",
11946
+ chatCompletionsPath: "/chat/completions",
11947
+ envVars: ["PERPLEXITY_API_KEY"],
11948
+ fallbackModels: ["sonar-pro", "sonar"],
11949
+ hostname: "api.perplexity.ai"
11950
+ });
11951
+
11952
+ // src/internal/providers/builtin/together.ts
11953
+ var TOGETHER = openAiCompatibleProfile({
11954
+ name: "together",
11955
+ aliases: ["togetherai"],
11956
+ baseUrl: "https://api.together.xyz/v1",
11957
+ envVars: ["TOGETHER_API_KEY"],
11958
+ fallbackModels: ["Qwen/Qwen2.5-7B-Instruct-Turbo"],
11959
+ hostname: "api.together.xyz"
11960
+ });
11961
+
11972
11962
  // src/internal/providers/builtin/vertex.ts
11973
11963
  var VERTEX = {
11974
11964
  name: "vertex",
@@ -12000,11 +11990,26 @@ function stripVertexPrefix(modelId) {
12000
11990
  return modelId.replace(/^vertex\/(anthropic|google)\//, "");
12001
11991
  }
12002
11992
 
11993
+ // src/internal/providers/builtin/xai.ts
11994
+ var XAI = openAiCompatibleProfile({
11995
+ name: "xai",
11996
+ aliases: ["grok"],
11997
+ baseUrl: "https://api.x.ai/v1",
11998
+ envVars: ["XAI_API_KEY"],
11999
+ fallbackModels: ["grok-4.5", "grok-4.3"],
12000
+ hostname: "api.x.ai"
12001
+ });
12002
+
12003
12003
  // src/internal/providers/builtin/index.ts
12004
- var registered2 = false;
12004
+ var _registeredState = (() => {
12005
+ const g = globalThis;
12006
+ const sym = /* @__PURE__ */ Symbol.for("theokit-sdk.providers.builtins-registered");
12007
+ if (g[sym] === void 0) g[sym] = { done: false };
12008
+ return g[sym];
12009
+ })();
12005
12010
  function registerBuiltins() {
12006
- if (registered2) return;
12007
- registered2 = true;
12011
+ if (_registeredState.done) return;
12012
+ _registeredState.done = true;
12008
12013
  registerProvider(ANTHROPIC);
12009
12014
  registerProvider(OPENAI);
12010
12015
  registerProvider(OPENAI_CHATGPT);
@@ -13173,11 +13178,18 @@ var StreamSuppressionBuffer = class {
13173
13178
  };
13174
13179
 
13175
13180
  // src/internal/llm/openai.ts
13181
+ function deriveChatPath(baseUrl) {
13182
+ try {
13183
+ return /\/v\d+[a-z]*(\/|$)/.test(new URL(baseUrl).pathname) ? "/chat/completions" : "/v1/chat/completions";
13184
+ } catch {
13185
+ return "/v1/chat/completions";
13186
+ }
13187
+ }
13176
13188
  var OpenAIClient = class {
13177
13189
  constructor(options) {
13178
13190
  this.options = options;
13179
- this.baseUrl = options.baseUrl ?? "https://api.openai.com";
13180
- this.chatPath = options.chatCompletionsPath ?? (/\/v\d+[a-z]*(\/|$)/.test(new URL(this.baseUrl).pathname) ? "/chat/completions" : "/v1/chat/completions");
13191
+ this.baseUrl = (options.baseUrl ?? "https://api.openai.com").replace(/\/+$/, "");
13192
+ this.chatPath = options.chatCompletionsPath ?? deriveChatPath(this.baseUrl);
13181
13193
  this.fetchImpl = options.fetch ?? fetch;
13182
13194
  }
13183
13195
  options;
@@ -14647,12 +14659,12 @@ function resolveMcpCwd(configCwd) {
14647
14659
 
14648
14660
  // src/internal/providers/register-plugin-providers.ts
14649
14661
  function registerPluginProviderProfiles(entries) {
14650
- let registered3 = 0;
14662
+ let registered2 = 0;
14651
14663
  for (const entry of entries) {
14652
14664
  registerProvider(entry.profile);
14653
- registered3 += 1;
14665
+ registered2 += 1;
14654
14666
  }
14655
- return registered3;
14667
+ return registered2;
14656
14668
  }
14657
14669
 
14658
14670
  // src/internal/local-agent/real-local-run.ts
@@ -14977,12 +14989,12 @@ var pluginProvidersAnnounced = false;
14977
14989
  function resolveRunProvider(options) {
14978
14990
  registerBuiltins();
14979
14991
  const profiles = options.pluginManager?.aggregated.providerProfiles ?? [];
14980
- const registered3 = registerPluginProviderProfiles(profiles);
14981
- if (registered3 > 0 && !pluginProvidersAnnounced) {
14992
+ const registered2 = registerPluginProviderProfiles(profiles);
14993
+ if (registered2 > 0 && !pluginProvidersAnnounced) {
14982
14994
  pluginProvidersAnnounced = true;
14983
14995
  const names = profiles.map((e) => e.profile.name).join(", ");
14984
14996
  process.stderr.write(
14985
- `[theokit-sdk] registered ${registered3} plugin provider profile(s): ${names}
14997
+ `[theokit-sdk] registered ${registered2} plugin provider profile(s): ${names}
14986
14998
  `
14987
14999
  );
14988
15000
  }