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