@dexto/core 1.5.7 → 1.5.8

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.
Files changed (128) hide show
  1. package/dist/agent/DextoAgent.cjs +96 -5
  2. package/dist/agent/DextoAgent.d.ts +32 -7
  3. package/dist/agent/DextoAgent.d.ts.map +1 -1
  4. package/dist/agent/DextoAgent.js +96 -5
  5. package/dist/agent/schemas.cjs +5 -0
  6. package/dist/agent/schemas.d.ts +60 -21
  7. package/dist/agent/schemas.d.ts.map +1 -1
  8. package/dist/agent/schemas.js +5 -0
  9. package/dist/context/manager.cjs +1 -1
  10. package/dist/context/manager.js +1 -1
  11. package/dist/context/utils.cjs +69 -42
  12. package/dist/context/utils.d.ts.map +1 -1
  13. package/dist/context/utils.js +69 -42
  14. package/dist/events/index.cjs +4 -1
  15. package/dist/events/index.d.ts +37 -2
  16. package/dist/events/index.d.ts.map +1 -1
  17. package/dist/events/index.js +4 -1
  18. package/dist/index.browser.d.ts +1 -1
  19. package/dist/index.browser.d.ts.map +1 -1
  20. package/dist/llm/curation-config.cjs +82 -0
  21. package/dist/llm/curation-config.d.ts +13 -0
  22. package/dist/llm/curation-config.d.ts.map +1 -0
  23. package/dist/llm/curation-config.js +59 -0
  24. package/dist/llm/curation.cjs +57 -0
  25. package/dist/llm/curation.d.ts +16 -0
  26. package/dist/llm/curation.d.ts.map +1 -0
  27. package/dist/llm/curation.js +34 -0
  28. package/dist/llm/errors.cjs +1 -1
  29. package/dist/llm/errors.d.ts +8 -8
  30. package/dist/llm/errors.js +1 -1
  31. package/dist/llm/executor/provider-options.cjs +1 -1
  32. package/dist/llm/executor/provider-options.js +1 -1
  33. package/dist/llm/executor/turn-executor.cjs +8 -2
  34. package/dist/llm/executor/turn-executor.d.ts.map +1 -1
  35. package/dist/llm/executor/turn-executor.js +8 -2
  36. package/dist/llm/index.cjs +14 -3
  37. package/dist/llm/index.d.ts +3 -1
  38. package/dist/llm/index.d.ts.map +1 -1
  39. package/dist/llm/index.js +13 -2
  40. package/dist/llm/registry/auto-update.cjs +263 -0
  41. package/dist/llm/registry/auto-update.d.ts +27 -0
  42. package/dist/llm/registry/auto-update.d.ts.map +1 -0
  43. package/dist/llm/registry/auto-update.js +227 -0
  44. package/dist/llm/registry/index.cjs +806 -0
  45. package/dist/llm/{registry.d.ts → registry/index.d.ts} +19 -41
  46. package/dist/llm/registry/index.d.ts.map +1 -0
  47. package/dist/llm/registry/index.js +756 -0
  48. package/dist/llm/registry/models.generated.cjs +4861 -0
  49. package/dist/llm/registry/models.generated.d.ts +431 -0
  50. package/dist/llm/registry/models.generated.d.ts.map +1 -0
  51. package/dist/llm/registry/models.generated.js +4838 -0
  52. package/dist/llm/registry/models.manual.cjs +44 -0
  53. package/dist/llm/registry/models.manual.d.ts +22 -0
  54. package/dist/llm/registry/models.manual.d.ts.map +1 -0
  55. package/dist/llm/registry/models.manual.js +21 -0
  56. package/dist/llm/registry/sync.cjs +354 -0
  57. package/dist/llm/registry/sync.d.ts +41 -0
  58. package/dist/llm/registry/sync.d.ts.map +1 -0
  59. package/dist/llm/registry/sync.js +328 -0
  60. package/dist/llm/resolver.cjs +27 -18
  61. package/dist/llm/resolver.d.ts +1 -1
  62. package/dist/llm/resolver.d.ts.map +1 -1
  63. package/dist/llm/resolver.js +28 -20
  64. package/dist/llm/schemas.cjs +13 -1
  65. package/dist/llm/schemas.d.ts +23 -23
  66. package/dist/llm/schemas.d.ts.map +1 -1
  67. package/dist/llm/schemas.js +14 -1
  68. package/dist/llm/services/factory.cjs +4 -4
  69. package/dist/llm/services/factory.d.ts.map +1 -1
  70. package/dist/llm/services/factory.js +4 -4
  71. package/dist/llm/services/test-utils.integration.cjs +1 -1
  72. package/dist/llm/services/test-utils.integration.js +1 -1
  73. package/dist/llm/services/vercel.cjs +4 -1
  74. package/dist/llm/services/vercel.d.ts +1 -0
  75. package/dist/llm/services/vercel.d.ts.map +1 -1
  76. package/dist/llm/services/vercel.js +4 -1
  77. package/dist/llm/types.cjs +1 -1
  78. package/dist/llm/types.d.ts +1 -1
  79. package/dist/llm/types.d.ts.map +1 -1
  80. package/dist/llm/types.js +1 -1
  81. package/dist/llm/validation.cjs +1 -1
  82. package/dist/llm/validation.js +1 -1
  83. package/dist/resources/handlers/filesystem-handler.cjs +25 -0
  84. package/dist/resources/handlers/filesystem-handler.d.ts +1 -0
  85. package/dist/resources/handlers/filesystem-handler.d.ts.map +1 -1
  86. package/dist/resources/handlers/filesystem-handler.js +25 -0
  87. package/dist/session/chat-session.cjs +1 -1
  88. package/dist/session/chat-session.js +1 -1
  89. package/dist/session/message-queue.cjs +29 -5
  90. package/dist/session/message-queue.d.ts +3 -1
  91. package/dist/session/message-queue.d.ts.map +1 -1
  92. package/dist/session/message-queue.js +29 -5
  93. package/dist/session/session-manager.cjs +40 -3
  94. package/dist/session/session-manager.d.ts +3 -1
  95. package/dist/session/session-manager.d.ts.map +1 -1
  96. package/dist/session/session-manager.js +30 -3
  97. package/dist/session/types.d.ts +1 -0
  98. package/dist/session/types.d.ts.map +1 -1
  99. package/dist/tools/internal-tools/provider.d.ts +3 -1
  100. package/dist/tools/internal-tools/provider.d.ts.map +1 -1
  101. package/dist/tools/internal-tools/registry.d.ts +1 -1
  102. package/dist/tools/internal-tools/registry.d.ts.map +1 -1
  103. package/dist/tools/tool-call-metadata.cjs +75 -0
  104. package/dist/tools/tool-call-metadata.d.ts +16 -0
  105. package/dist/tools/tool-call-metadata.d.ts.map +1 -0
  106. package/dist/tools/tool-call-metadata.js +51 -0
  107. package/dist/tools/tool-manager.cjs +257 -30
  108. package/dist/tools/tool-manager.d.ts +43 -2
  109. package/dist/tools/tool-manager.d.ts.map +1 -1
  110. package/dist/tools/tool-manager.js +257 -30
  111. package/dist/utils/api-key-resolver.cjs +1 -1
  112. package/dist/utils/api-key-resolver.js +1 -1
  113. package/dist/utils/env.cjs +49 -0
  114. package/dist/utils/env.d.ts +4 -0
  115. package/dist/utils/env.d.ts.map +1 -0
  116. package/dist/utils/env.js +24 -0
  117. package/dist/utils/index.cjs +3 -1
  118. package/dist/utils/index.d.ts +1 -0
  119. package/dist/utils/index.d.ts.map +1 -1
  120. package/dist/utils/index.js +1 -0
  121. package/dist/utils/service-initializer.cjs +17 -5
  122. package/dist/utils/service-initializer.d.ts +23 -4
  123. package/dist/utils/service-initializer.d.ts.map +1 -1
  124. package/dist/utils/service-initializer.js +17 -5
  125. package/package.json +6 -2
  126. package/dist/llm/registry.cjs +0 -2075
  127. package/dist/llm/registry.d.ts.map +0 -1
  128. package/dist/llm/registry.js +0 -2025
@@ -9,19 +9,19 @@ import type { LLMProvider } from './types.js';
9
9
  */
10
10
  export declare class LLMError {
11
11
  static unknownModel(provider: LLMProvider, model: string): DextoRuntimeError<{
12
- provider: "openai" | "openai-compatible" | "anthropic" | "google" | "groq" | "xai" | "cohere" | "minimax" | "glm" | "openrouter" | "litellm" | "glama" | "vertex" | "bedrock" | "local" | "ollama" | "dexto";
12
+ provider: "openai" | "openai-compatible" | "anthropic" | "google" | "groq" | "xai" | "cohere" | "minimax" | "glm" | "openrouter" | "litellm" | "glama" | "vertex" | "bedrock" | "local" | "ollama" | "dexto-nova";
13
13
  model: string;
14
14
  }>;
15
15
  static baseUrlMissing(provider: LLMProvider): DextoRuntimeError<{
16
- provider: "openai" | "openai-compatible" | "anthropic" | "google" | "groq" | "xai" | "cohere" | "minimax" | "glm" | "openrouter" | "litellm" | "glama" | "vertex" | "bedrock" | "local" | "ollama" | "dexto";
16
+ provider: "openai" | "openai-compatible" | "anthropic" | "google" | "groq" | "xai" | "cohere" | "minimax" | "glm" | "openrouter" | "litellm" | "glama" | "vertex" | "bedrock" | "local" | "ollama" | "dexto-nova";
17
17
  }>;
18
18
  static missingConfig(provider: LLMProvider, configName: string): DextoRuntimeError<{
19
- provider: "openai" | "openai-compatible" | "anthropic" | "google" | "groq" | "xai" | "cohere" | "minimax" | "glm" | "openrouter" | "litellm" | "glama" | "vertex" | "bedrock" | "local" | "ollama" | "dexto";
19
+ provider: "openai" | "openai-compatible" | "anthropic" | "google" | "groq" | "xai" | "cohere" | "minimax" | "glm" | "openrouter" | "litellm" | "glama" | "vertex" | "bedrock" | "local" | "ollama" | "dexto-nova";
20
20
  configName: string;
21
21
  }>;
22
22
  static unsupportedProvider(provider: string): DextoRuntimeError<{
23
23
  provider: string;
24
- availableProviders: ("openai" | "openai-compatible" | "anthropic" | "google" | "groq" | "xai" | "cohere" | "minimax" | "glm" | "openrouter" | "litellm" | "glama" | "vertex" | "bedrock" | "local" | "ollama" | "dexto")[];
24
+ availableProviders: ("openai" | "openai-compatible" | "anthropic" | "google" | "groq" | "xai" | "cohere" | "minimax" | "glm" | "openrouter" | "litellm" | "glama" | "vertex" | "bedrock" | "local" | "ollama" | "dexto-nova")[];
25
25
  }>;
26
26
  /**
27
27
  * Runtime error when API key is missing for a provider that requires it.
@@ -29,16 +29,16 @@ export declare class LLMError {
29
29
  * and the user then tries to use the LLM functionality.
30
30
  */
31
31
  static apiKeyMissing(provider: LLMProvider, envVar: string): DextoRuntimeError<{
32
- provider: "openai" | "openai-compatible" | "anthropic" | "google" | "groq" | "xai" | "cohere" | "minimax" | "glm" | "openrouter" | "litellm" | "glama" | "vertex" | "bedrock" | "local" | "ollama" | "dexto";
32
+ provider: "openai" | "openai-compatible" | "anthropic" | "google" | "groq" | "xai" | "cohere" | "minimax" | "glm" | "openrouter" | "litellm" | "glama" | "vertex" | "bedrock" | "local" | "ollama" | "dexto-nova";
33
33
  envVar: string;
34
34
  }>;
35
35
  static modelProviderUnknown(model: string): DextoRuntimeError<{
36
36
  model: string;
37
- availableProviders: ("openai" | "openai-compatible" | "anthropic" | "google" | "groq" | "xai" | "cohere" | "minimax" | "glm" | "openrouter" | "litellm" | "glama" | "vertex" | "bedrock" | "local" | "ollama" | "dexto")[];
37
+ availableProviders: ("openai" | "openai-compatible" | "anthropic" | "google" | "groq" | "xai" | "cohere" | "minimax" | "glm" | "openrouter" | "litellm" | "glama" | "vertex" | "bedrock" | "local" | "ollama" | "dexto-nova")[];
38
38
  }>;
39
39
  static rateLimitExceeded(provider: LLMProvider, retryAfter?: number): DextoRuntimeError<{
40
40
  details: {
41
- provider: "openai" | "openai-compatible" | "anthropic" | "google" | "groq" | "xai" | "cohere" | "minimax" | "glm" | "openrouter" | "litellm" | "glama" | "vertex" | "bedrock" | "local" | "ollama" | "dexto";
41
+ provider: "openai" | "openai-compatible" | "anthropic" | "google" | "groq" | "xai" | "cohere" | "minimax" | "glm" | "openrouter" | "litellm" | "glama" | "vertex" | "bedrock" | "local" | "ollama" | "dexto-nova";
42
42
  retryAfter: number | undefined;
43
43
  };
44
44
  recovery: string;
@@ -53,7 +53,7 @@ export declare class LLMError {
53
53
  static generationFailed(error: string, provider: LLMProvider, model: string): DextoRuntimeError<{
54
54
  details: {
55
55
  error: string;
56
- provider: "openai" | "openai-compatible" | "anthropic" | "google" | "groq" | "xai" | "cohere" | "minimax" | "glm" | "openrouter" | "litellm" | "glama" | "vertex" | "bedrock" | "local" | "ollama" | "dexto";
56
+ provider: "openai" | "openai-compatible" | "anthropic" | "google" | "groq" | "xai" | "cohere" | "minimax" | "glm" | "openrouter" | "litellm" | "glama" | "vertex" | "bedrock" | "local" | "ollama" | "dexto-nova";
57
57
  model: string;
58
58
  };
59
59
  }>;
@@ -3,7 +3,7 @@ import { DextoRuntimeError } from "../errors/DextoRuntimeError.js";
3
3
  import { ErrorScope } from "../errors/types.js";
4
4
  import { ErrorType } from "../errors/types.js";
5
5
  import { LLMErrorCode } from "./error-codes.js";
6
- import { getSupportedProviders } from "./registry.js";
6
+ import { getSupportedProviders } from "./registry/index.js";
7
7
  class LLMError {
8
8
  // Runtime model/provider lookup errors
9
9
  static unknownModel(provider, model) {
@@ -22,7 +22,7 @@ __export(provider_options_exports, {
22
22
  getDefaultReasoningEffort: () => getDefaultReasoningEffort
23
23
  });
24
24
  module.exports = __toCommonJS(provider_options_exports);
25
- var import_registry = require("../registry.js");
25
+ var import_registry = require("../registry/index.js");
26
26
  function buildProviderOptions(config) {
27
27
  const { provider, model, reasoningEffort } = config;
28
28
  const modelLower = model.toLowerCase();
@@ -1,5 +1,5 @@
1
1
  import "../../chunk-PTJYTZNU.js";
2
- import { isReasoningCapableModel } from "../registry.js";
2
+ import { isReasoningCapableModel } from "../registry/index.js";
3
3
  function buildProviderOptions(config) {
4
4
  const { provider, model, reasoningEffort } = config;
5
5
  const modelLower = model.toLowerCase();
@@ -193,7 +193,10 @@ class TurnExecutor {
193
193
  contributorContext,
194
194
  this.llmContext
195
195
  );
196
- const toolDefinitions = supportsTools ? await this.toolManager.getAllTools() : {};
196
+ const toolDefinitions = supportsTools ? this.toolManager.filterToolsForSession(
197
+ await this.toolManager.getAllTools(),
198
+ this.sessionId
199
+ ) : {};
197
200
  let estimatedTokens = await this.contextManager.getEstimatedNextInputTokens(
198
201
  prepared.systemPrompt,
199
202
  prepared.preparedHistory,
@@ -458,7 +461,10 @@ class TurnExecutor {
458
461
  * - StreamProcessor handles persistence via tool-result events
459
462
  */
460
463
  async createTools() {
461
- const tools = await this.toolManager.getAllTools();
464
+ const tools = this.toolManager.filterToolsForSession(
465
+ await this.toolManager.getAllTools(),
466
+ this.sessionId
467
+ );
462
468
  return Object.fromEntries(
463
469
  Object.entries(tools).map(([name, tool]) => [
464
470
  name,
@@ -1 +1 @@
1
- {"version":3,"file":"turn-executor.d.ts","sourceRoot":"","sources":["../../../src/llm/executor/turn-executor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"turn-executor.d.ts","sourceRoot":"","sources":["../../../src/llm/executor/turn-executor.ts"],"names":[],"mappings":"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"}
@@ -125,7 +125,10 @@ class TurnExecutor {
125
125
  contributorContext,
126
126
  this.llmContext
127
127
  );
128
- const toolDefinitions = supportsTools ? await this.toolManager.getAllTools() : {};
128
+ const toolDefinitions = supportsTools ? this.toolManager.filterToolsForSession(
129
+ await this.toolManager.getAllTools(),
130
+ this.sessionId
131
+ ) : {};
129
132
  let estimatedTokens = await this.contextManager.getEstimatedNextInputTokens(
130
133
  prepared.systemPrompt,
131
134
  prepared.preparedHistory,
@@ -390,7 +393,10 @@ class TurnExecutor {
390
393
  * - StreamProcessor handles persistence via tool-result events
391
394
  */
392
395
  async createTools() {
393
- const tools = await this.toolManager.getAllTools();
396
+ const tools = this.toolManager.filterToolsForSession(
397
+ await this.toolManager.getAllTools(),
398
+ this.sessionId
399
+ );
394
400
  return Object.fromEntries(
395
401
  Object.entries(tools).map(([name, tool]) => [
396
402
  name,
@@ -19,30 +19,41 @@ var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "defau
19
19
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
20
20
  var llm_exports = {};
21
21
  __export(llm_exports, {
22
+ getLlmRegistryAutoUpdateStatus: () => import_auto_update.getLlmRegistryAutoUpdateStatus,
22
23
  getOpenRouterModelContextLength: () => import_openrouter_model_registry.getOpenRouterModelContextLength,
23
24
  getOpenRouterModelInfo: () => import_openrouter_model_registry.getOpenRouterModelInfo,
25
+ loadLlmRegistryCache: () => import_auto_update.loadLlmRegistryCache,
24
26
  lookupOpenRouterModel: () => import_openrouter_model_registry.lookupOpenRouterModel,
25
- refreshOpenRouterModelCache: () => import_openrouter_model_registry.refreshOpenRouterModelCache
27
+ refreshLlmRegistryCache: () => import_auto_update.refreshLlmRegistryCache,
28
+ refreshOpenRouterModelCache: () => import_openrouter_model_registry.refreshOpenRouterModelCache,
29
+ startLlmRegistryAutoUpdate: () => import_auto_update.startLlmRegistryAutoUpdate
26
30
  });
27
31
  module.exports = __toCommonJS(llm_exports);
28
32
  __reExport(llm_exports, require("./errors.js"), module.exports);
29
33
  __reExport(llm_exports, require("./error-codes.js"), module.exports);
30
- __reExport(llm_exports, require("./registry.js"), module.exports);
34
+ __reExport(llm_exports, require("./registry/index.js"), module.exports);
35
+ __reExport(llm_exports, require("./curation.js"), module.exports);
31
36
  __reExport(llm_exports, require("./validation.js"), module.exports);
32
37
  __reExport(llm_exports, require("./types.js"), module.exports);
33
38
  __reExport(llm_exports, require("./services/index.js"), module.exports);
34
39
  __reExport(llm_exports, require("./schemas.js"), module.exports);
35
40
  var import_openrouter_model_registry = require("./providers/openrouter-model-registry.js");
41
+ var import_auto_update = require("./registry/auto-update.js");
36
42
  __reExport(llm_exports, require("./providers/local/index.js"), module.exports);
37
43
  // Annotate the CommonJS export names for ESM import in node:
38
44
  0 && (module.exports = {
45
+ getLlmRegistryAutoUpdateStatus,
39
46
  getOpenRouterModelContextLength,
40
47
  getOpenRouterModelInfo,
48
+ loadLlmRegistryCache,
41
49
  lookupOpenRouterModel,
50
+ refreshLlmRegistryCache,
42
51
  refreshOpenRouterModelCache,
52
+ startLlmRegistryAutoUpdate,
43
53
  ...require("./errors.js"),
44
54
  ...require("./error-codes.js"),
45
- ...require("./registry.js"),
55
+ ...require("./registry/index.js"),
56
+ ...require("./curation.js"),
46
57
  ...require("./validation.js"),
47
58
  ...require("./types.js"),
48
59
  ...require("./services/index.js"),
@@ -1,10 +1,12 @@
1
1
  export * from './errors.js';
2
2
  export * from './error-codes.js';
3
- export * from './registry.js';
3
+ export * from './registry/index.js';
4
+ export * from './curation.js';
4
5
  export * from './validation.js';
5
6
  export * from './types.js';
6
7
  export * from './services/index.js';
7
8
  export * from './schemas.js';
8
9
  export { lookupOpenRouterModel, refreshOpenRouterModelCache, getOpenRouterModelContextLength, getOpenRouterModelInfo, type LookupStatus, type OpenRouterModelInfo, } from './providers/openrouter-model-registry.js';
10
+ export { startLlmRegistryAutoUpdate, refreshLlmRegistryCache, loadLlmRegistryCache, getLlmRegistryAutoUpdateStatus, type LlmRegistryAutoUpdateStatus, } from './registry/auto-update.js';
9
11
  export * from './providers/local/index.js';
10
12
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/llm/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,kBAAkB,CAAC;AACjC,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,YAAY,CAAC;AAC3B,cAAc,qBAAqB,CAAC;AACpC,cAAc,cAAc,CAAC;AAC7B,OAAO,EACH,qBAAqB,EACrB,2BAA2B,EAC3B,+BAA+B,EAC/B,sBAAsB,EACtB,KAAK,YAAY,EACjB,KAAK,mBAAmB,GAC3B,MAAM,0CAA0C,CAAC;AAGlD,cAAc,4BAA4B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/llm/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,kBAAkB,CAAC;AACjC,cAAc,qBAAqB,CAAC;AACpC,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAChC,cAAc,YAAY,CAAC;AAC3B,cAAc,qBAAqB,CAAC;AACpC,cAAc,cAAc,CAAC;AAC7B,OAAO,EACH,qBAAqB,EACrB,2BAA2B,EAC3B,+BAA+B,EAC/B,sBAAsB,EACtB,KAAK,YAAY,EACjB,KAAK,mBAAmB,GAC3B,MAAM,0CAA0C,CAAC;AAGlD,OAAO,EACH,0BAA0B,EAC1B,uBAAuB,EACvB,oBAAoB,EACpB,8BAA8B,EAC9B,KAAK,2BAA2B,GACnC,MAAM,2BAA2B,CAAC;AAGnC,cAAc,4BAA4B,CAAC"}
package/dist/llm/index.js CHANGED
@@ -1,7 +1,8 @@
1
1
  import "../chunk-PTJYTZNU.js";
2
2
  export * from "./errors.js";
3
3
  export * from "./error-codes.js";
4
- export * from "./registry.js";
4
+ export * from "./registry/index.js";
5
+ export * from "./curation.js";
5
6
  export * from "./validation.js";
6
7
  export * from "./types.js";
7
8
  export * from "./services/index.js";
@@ -12,10 +13,20 @@ import {
12
13
  getOpenRouterModelContextLength,
13
14
  getOpenRouterModelInfo
14
15
  } from "./providers/openrouter-model-registry.js";
16
+ import {
17
+ startLlmRegistryAutoUpdate,
18
+ refreshLlmRegistryCache,
19
+ loadLlmRegistryCache,
20
+ getLlmRegistryAutoUpdateStatus
21
+ } from "./registry/auto-update.js";
15
22
  export * from "./providers/local/index.js";
16
23
  export {
24
+ getLlmRegistryAutoUpdateStatus,
17
25
  getOpenRouterModelContextLength,
18
26
  getOpenRouterModelInfo,
27
+ loadLlmRegistryCache,
19
28
  lookupOpenRouterModel,
20
- refreshOpenRouterModelCache
29
+ refreshLlmRegistryCache,
30
+ refreshOpenRouterModelCache,
31
+ startLlmRegistryAutoUpdate
21
32
  };
@@ -0,0 +1,263 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+ var auto_update_exports = {};
30
+ __export(auto_update_exports, {
31
+ getLlmRegistryAutoUpdateStatus: () => getLlmRegistryAutoUpdateStatus,
32
+ loadLlmRegistryCache: () => loadLlmRegistryCache,
33
+ refreshLlmRegistryCache: () => refreshLlmRegistryCache,
34
+ startLlmRegistryAutoUpdate: () => startLlmRegistryAutoUpdate
35
+ });
36
+ module.exports = __toCommonJS(auto_update_exports);
37
+ var import_node_fs = require("node:fs");
38
+ var import_node_fs2 = require("node:fs");
39
+ var import_node_path = __toESM(require("node:path"), 1);
40
+ var import_path = require("../../utils/path.js");
41
+ var import_logger = require("../../logger/logger.js");
42
+ var import_types = require("../types.js");
43
+ var import_index = require("./index.js");
44
+ var import_sync = require("./sync.js");
45
+ const CACHE_SUBDIR = "cache";
46
+ const CACHE_FILENAME = "llm-registry-models.json";
47
+ const CACHE_SCHEMA_VERSION = 1;
48
+ const DEFAULT_TTL_MS = 1e3 * 60 * 60;
49
+ const MIN_REFRESH_INTERVAL_MS = 1e3 * 60 * 5;
50
+ const UPDATABLE_PROVIDERS = [
51
+ "openai",
52
+ "anthropic",
53
+ "google",
54
+ "groq",
55
+ "xai",
56
+ "cohere",
57
+ "minimax",
58
+ "glm",
59
+ "vertex",
60
+ "bedrock"
61
+ ];
62
+ function truthyEnv(name) {
63
+ const v = process.env[name];
64
+ if (!v) return false;
65
+ return v === "1" || v === "true" || v === "yes" || v === "on";
66
+ }
67
+ function getTtlMs() {
68
+ const raw = process.env.DEXTO_LLM_REGISTRY_TTL_MS;
69
+ if (!raw) return DEFAULT_TTL_MS;
70
+ const n = Number(raw);
71
+ return Number.isFinite(n) && n > 0 ? n : DEFAULT_TTL_MS;
72
+ }
73
+ function getCachePath() {
74
+ return (0, import_path.getDextoGlobalPath)(CACHE_SUBDIR, CACHE_FILENAME);
75
+ }
76
+ function isModelInfo(value) {
77
+ if (typeof value !== "object" || value === null) return false;
78
+ const name = value.name;
79
+ return typeof name === "string" && name.trim() !== "";
80
+ }
81
+ function applyModelsByProvider(modelsByProvider) {
82
+ for (const provider of UPDATABLE_PROVIDERS) {
83
+ const incoming = modelsByProvider[provider] ?? [];
84
+ const existing = import_index.LLM_REGISTRY[provider].models ?? [];
85
+ const incomingByName = /* @__PURE__ */ new Map();
86
+ for (const m of incoming) {
87
+ incomingByName.set(m.name.toLowerCase(), m);
88
+ }
89
+ const existingDefault = existing.find((m) => m.default)?.name.toLowerCase();
90
+ const incomingDefault = incoming.find((m) => m.default)?.name.toLowerCase();
91
+ const merged = [];
92
+ const seen = /* @__PURE__ */ new Set();
93
+ for (const m of existing) {
94
+ const key = m.name.toLowerCase();
95
+ const updated = incomingByName.get(key);
96
+ if (!updated) {
97
+ merged.push(m);
98
+ } else {
99
+ const name = updated.name ?? m.name;
100
+ const maxInputTokens = typeof updated.maxInputTokens === "number" && updated.maxInputTokens > 0 ? updated.maxInputTokens : m.maxInputTokens;
101
+ const supportedFileTypes = Array.isArray(updated.supportedFileTypes) ? updated.supportedFileTypes : m.supportedFileTypes;
102
+ const displayName = updated.displayName ?? m.displayName;
103
+ const pricing = updated.pricing ?? m.pricing;
104
+ merged.push({
105
+ name,
106
+ maxInputTokens,
107
+ supportedFileTypes,
108
+ ...displayName ? { displayName } : {},
109
+ ...pricing ? { pricing } : {}
110
+ });
111
+ }
112
+ seen.add(key);
113
+ }
114
+ const newModels = incoming.filter((m) => !seen.has(m.name.toLowerCase()));
115
+ newModels.sort((a, b) => a.name.localeCompare(b.name));
116
+ merged.push(...newModels);
117
+ const chosenDefault = incomingDefault ?? existingDefault ?? merged[0]?.name.toLowerCase();
118
+ const finalMerged = merged.map((m) => {
119
+ const copy = { ...m };
120
+ delete copy.default;
121
+ return copy;
122
+ });
123
+ if (chosenDefault) {
124
+ const idx = finalMerged.findIndex((m) => m.name.toLowerCase() === chosenDefault);
125
+ if (idx >= 0) {
126
+ finalMerged[idx] = { ...finalMerged[idx], default: true };
127
+ }
128
+ }
129
+ import_index.LLM_REGISTRY[provider].models = finalMerged;
130
+ }
131
+ }
132
+ function normalizeModelsByProvider(raw) {
133
+ const out = {};
134
+ for (const p of import_types.LLM_PROVIDERS) {
135
+ const value = raw[p];
136
+ out[p] = Array.isArray(value) ? value.filter(isModelInfo) : [];
137
+ }
138
+ return out;
139
+ }
140
+ function tryLoadCacheFromDisk(log) {
141
+ const cachePath = getCachePath();
142
+ if (!(0, import_node_fs2.existsSync)(cachePath)) return null;
143
+ try {
144
+ const text = (0, import_node_fs2.readFileSync)(cachePath, "utf-8");
145
+ const parsed = JSON.parse(text);
146
+ if (parsed.schemaVersion !== CACHE_SCHEMA_VERSION) return null;
147
+ if (!parsed.fetchedAt || typeof parsed.fetchedAt !== "string") return null;
148
+ if (!parsed.modelsByProvider || typeof parsed.modelsByProvider !== "object") return null;
149
+ const fetchedAt = Date.parse(parsed.fetchedAt);
150
+ if (!Number.isFinite(fetchedAt)) return null;
151
+ const modelsByProvider = normalizeModelsByProvider(
152
+ parsed.modelsByProvider
153
+ );
154
+ return { fetchedAt, modelsByProvider };
155
+ } catch (e) {
156
+ log?.warn?.(
157
+ `Failed to load LLM registry cache (${cachePath}): ${e instanceof Error ? e.message : String(e)}`
158
+ );
159
+ return null;
160
+ }
161
+ }
162
+ let refreshPromise = null;
163
+ let lastRefreshAttemptAt = null;
164
+ let lastFetchedAt = null;
165
+ let lastSource = "snapshot";
166
+ let autoRefreshStarted = false;
167
+ function isFresh(now, fetchedAt, ttlMs) {
168
+ return now - fetchedAt < ttlMs;
169
+ }
170
+ function getLlmRegistryAutoUpdateStatus() {
171
+ const cachePath = getCachePath();
172
+ const fetchedAt = lastFetchedAt ? new Date(lastFetchedAt) : null;
173
+ const now = Date.now();
174
+ return {
175
+ cachePath,
176
+ lastFetchedAt: fetchedAt,
177
+ isFresh: lastFetchedAt ? isFresh(now, lastFetchedAt, getTtlMs()) : false,
178
+ source: lastSource
179
+ };
180
+ }
181
+ function loadLlmRegistryCache(options) {
182
+ const cache = tryLoadCacheFromDisk(options?.logger);
183
+ if (!cache) return false;
184
+ applyModelsByProvider(cache.modelsByProvider);
185
+ lastFetchedAt = cache.fetchedAt;
186
+ lastSource = "cache";
187
+ return true;
188
+ }
189
+ async function writeCacheFile(cachePath, modelsByProvider) {
190
+ await import_node_fs.promises.mkdir(import_node_path.default.dirname(cachePath), { recursive: true });
191
+ const payload = {
192
+ schemaVersion: CACHE_SCHEMA_VERSION,
193
+ fetchedAt: (/* @__PURE__ */ new Date()).toISOString(),
194
+ modelsByProvider
195
+ };
196
+ const tmpPath = `${cachePath}.tmp`;
197
+ await import_node_fs.promises.writeFile(tmpPath, JSON.stringify(payload), "utf-8");
198
+ await import_node_fs.promises.rename(tmpPath, cachePath);
199
+ }
200
+ async function refreshLlmRegistryCache(options) {
201
+ if (truthyEnv("DEXTO_LLM_REGISTRY_DISABLE_FETCH") || !options?.allowInTests && (process.env.NODE_ENV === "test" || truthyEnv("VITEST"))) {
202
+ return;
203
+ }
204
+ if (refreshPromise && !options?.force) {
205
+ await refreshPromise;
206
+ return;
207
+ }
208
+ const now = Date.now();
209
+ if (!options?.force && lastRefreshAttemptAt && now - lastRefreshAttemptAt < MIN_REFRESH_INTERVAL_MS) {
210
+ if (refreshPromise) await refreshPromise;
211
+ return;
212
+ }
213
+ lastRefreshAttemptAt = now;
214
+ const log = options?.logger ?? import_logger.logger;
215
+ refreshPromise = (async () => {
216
+ const modelsByProvider = await (0, import_sync.buildModelsByProviderFromRemote)({
217
+ userAgent: "dexto-llm-registry",
218
+ timeoutMs: 3e4
219
+ });
220
+ const cachePath = getCachePath();
221
+ await writeCacheFile(cachePath, modelsByProvider);
222
+ applyModelsByProvider(modelsByProvider);
223
+ lastFetchedAt = Date.now();
224
+ lastSource = "remote";
225
+ log?.debug?.(`Refreshed LLM registry cache (${cachePath})`);
226
+ })().catch((e) => {
227
+ log?.warn?.(
228
+ `Failed to refresh LLM registry cache: ${e instanceof Error ? e.message : String(e)}`
229
+ );
230
+ }).finally(() => {
231
+ refreshPromise = null;
232
+ });
233
+ await refreshPromise;
234
+ }
235
+ function startLlmRegistryAutoUpdate(options) {
236
+ if (autoRefreshStarted) return;
237
+ autoRefreshStarted = true;
238
+ const log = options?.logger ?? import_logger.logger;
239
+ const loaded = loadLlmRegistryCache({ logger: log });
240
+ if (loaded) {
241
+ log?.debug?.(`Loaded LLM registry cache from disk (${getCachePath()})`);
242
+ }
243
+ if (options?.refreshOnStart !== false) {
244
+ void refreshLlmRegistryCache({ logger: log });
245
+ }
246
+ const timer = setInterval(
247
+ () => {
248
+ const ttlMs = getTtlMs();
249
+ const now = Date.now();
250
+ if (lastFetchedAt && isFresh(now, lastFetchedAt, ttlMs)) return;
251
+ void refreshLlmRegistryCache({ logger: log });
252
+ },
253
+ Math.min(getTtlMs(), DEFAULT_TTL_MS)
254
+ );
255
+ timer.unref?.();
256
+ }
257
+ // Annotate the CommonJS export names for ESM import in node:
258
+ 0 && (module.exports = {
259
+ getLlmRegistryAutoUpdateStatus,
260
+ loadLlmRegistryCache,
261
+ refreshLlmRegistryCache,
262
+ startLlmRegistryAutoUpdate
263
+ });
@@ -0,0 +1,27 @@
1
+ import type { IDextoLogger } from '../../logger/v2/types.js';
2
+ type LogLike = Pick<IDextoLogger, 'debug' | 'info' | 'warn' | 'error'>;
3
+ export type LlmRegistryAutoUpdateStatus = {
4
+ cachePath: string;
5
+ lastFetchedAt: Date | null;
6
+ isFresh: boolean;
7
+ source: 'snapshot' | 'cache' | 'remote';
8
+ };
9
+ export declare function getLlmRegistryAutoUpdateStatus(): LlmRegistryAutoUpdateStatus;
10
+ export declare function loadLlmRegistryCache(options?: {
11
+ logger?: LogLike;
12
+ }): boolean;
13
+ export declare function refreshLlmRegistryCache(options?: {
14
+ logger?: LogLike;
15
+ force?: boolean;
16
+ /**
17
+ * Test-only escape hatch to validate refresh behavior with mocks while keeping
18
+ * network fetch disabled by default in CI/unit tests.
19
+ */
20
+ allowInTests?: boolean;
21
+ }): Promise<void>;
22
+ export declare function startLlmRegistryAutoUpdate(options?: {
23
+ logger?: LogLike;
24
+ refreshOnStart?: boolean;
25
+ }): void;
26
+ export {};
27
+ //# sourceMappingURL=auto-update.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auto-update.d.ts","sourceRoot":"","sources":["../../../src/llm/registry/auto-update.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAO7D,KAAK,OAAO,GAAG,IAAI,CAAC,YAAY,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC;AAuKvE,MAAM,MAAM,2BAA2B,GAAG;IACtC,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,IAAI,GAAG,IAAI,CAAC;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,UAAU,GAAG,OAAO,GAAG,QAAQ,CAAC;CAC3C,CAAC;AAMF,wBAAgB,8BAA8B,IAAI,2BAA2B,CAU5E;AAED,wBAAgB,oBAAoB,CAAC,OAAO,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAO5E;AAiBD,wBAAsB,uBAAuB,CAAC,OAAO,CAAC,EAAE;IACpD,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB;;;OAGG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;CAC1B,GAAG,OAAO,CAAC,IAAI,CAAC,CAiDhB;AAED,wBAAgB,0BAA0B,CAAC,OAAO,CAAC,EAAE;IACjD,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,cAAc,CAAC,EAAE,OAAO,CAAC;CAC5B,GAAG,IAAI,CA6BP"}