@theokit/sdk 4.14.0 → 4.15.0

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