@dexto/core 1.5.6 → 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 (217) hide show
  1. package/dist/agent/DextoAgent.cjs +189 -30
  2. package/dist/agent/DextoAgent.d.ts +44 -9
  3. package/dist/agent/DextoAgent.d.ts.map +1 -1
  4. package/dist/agent/DextoAgent.js +190 -31
  5. package/dist/agent/schemas.cjs +5 -0
  6. package/dist/agent/schemas.d.ts +456 -66
  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 +90 -17
  12. package/dist/context/utils.d.ts.map +1 -1
  13. package/dist/context/utils.js +90 -17
  14. package/dist/errors/types.cjs +2 -1
  15. package/dist/errors/types.d.ts +2 -1
  16. package/dist/errors/types.d.ts.map +1 -1
  17. package/dist/errors/types.js +2 -1
  18. package/dist/events/index.cjs +4 -1
  19. package/dist/events/index.d.ts +37 -2
  20. package/dist/events/index.d.ts.map +1 -1
  21. package/dist/events/index.js +4 -1
  22. package/dist/image/types.d.ts +15 -0
  23. package/dist/image/types.d.ts.map +1 -1
  24. package/dist/index.browser.d.ts +1 -1
  25. package/dist/index.browser.d.ts.map +1 -1
  26. package/dist/llm/curation-config.cjs +82 -0
  27. package/dist/llm/curation-config.d.ts +13 -0
  28. package/dist/llm/curation-config.d.ts.map +1 -0
  29. package/dist/llm/curation-config.js +59 -0
  30. package/dist/llm/curation.cjs +57 -0
  31. package/dist/llm/curation.d.ts +16 -0
  32. package/dist/llm/curation.d.ts.map +1 -0
  33. package/dist/llm/curation.js +34 -0
  34. package/dist/llm/error-codes.cjs +1 -0
  35. package/dist/llm/error-codes.d.ts +1 -0
  36. package/dist/llm/error-codes.d.ts.map +1 -1
  37. package/dist/llm/error-codes.js +1 -0
  38. package/dist/llm/errors.cjs +16 -1
  39. package/dist/llm/errors.d.ts +15 -8
  40. package/dist/llm/errors.d.ts.map +1 -1
  41. package/dist/llm/errors.js +16 -1
  42. package/dist/llm/executor/provider-options.cjs +1 -1
  43. package/dist/llm/executor/provider-options.js +1 -1
  44. package/dist/llm/executor/turn-executor.cjs +35 -2
  45. package/dist/llm/executor/turn-executor.d.ts.map +1 -1
  46. package/dist/llm/executor/turn-executor.js +35 -2
  47. package/dist/llm/index.cjs +14 -3
  48. package/dist/llm/index.d.ts +3 -1
  49. package/dist/llm/index.d.ts.map +1 -1
  50. package/dist/llm/index.js +13 -2
  51. package/dist/llm/registry/auto-update.cjs +263 -0
  52. package/dist/llm/registry/auto-update.d.ts +27 -0
  53. package/dist/llm/registry/auto-update.d.ts.map +1 -0
  54. package/dist/llm/registry/auto-update.js +227 -0
  55. package/dist/llm/registry/index.cjs +806 -0
  56. package/dist/llm/{registry.d.ts → registry/index.d.ts} +67 -13
  57. package/dist/llm/registry/index.d.ts.map +1 -0
  58. package/dist/llm/registry/index.js +756 -0
  59. package/dist/llm/registry/models.generated.cjs +4861 -0
  60. package/dist/llm/registry/models.generated.d.ts +431 -0
  61. package/dist/llm/registry/models.generated.d.ts.map +1 -0
  62. package/dist/llm/registry/models.generated.js +4838 -0
  63. package/dist/llm/registry/models.manual.cjs +44 -0
  64. package/dist/llm/registry/models.manual.d.ts +22 -0
  65. package/dist/llm/registry/models.manual.d.ts.map +1 -0
  66. package/dist/llm/registry/models.manual.js +21 -0
  67. package/dist/llm/registry/sync.cjs +354 -0
  68. package/dist/llm/registry/sync.d.ts +41 -0
  69. package/dist/llm/registry/sync.d.ts.map +1 -0
  70. package/dist/llm/registry/sync.js +328 -0
  71. package/dist/llm/resolver.cjs +29 -7
  72. package/dist/llm/resolver.d.ts +1 -1
  73. package/dist/llm/resolver.d.ts.map +1 -1
  74. package/dist/llm/resolver.js +31 -8
  75. package/dist/llm/schemas.cjs +13 -1
  76. package/dist/llm/schemas.d.ts +59 -59
  77. package/dist/llm/schemas.d.ts.map +1 -1
  78. package/dist/llm/schemas.js +14 -1
  79. package/dist/llm/services/factory.cjs +43 -27
  80. package/dist/llm/services/factory.d.ts +20 -1
  81. package/dist/llm/services/factory.d.ts.map +1 -1
  82. package/dist/llm/services/factory.js +44 -28
  83. package/dist/llm/services/test-utils.integration.cjs +5 -1
  84. package/dist/llm/services/test-utils.integration.d.ts.map +1 -1
  85. package/dist/llm/services/test-utils.integration.js +5 -1
  86. package/dist/llm/services/vercel.cjs +4 -1
  87. package/dist/llm/services/vercel.d.ts +1 -0
  88. package/dist/llm/services/vercel.d.ts.map +1 -1
  89. package/dist/llm/services/vercel.js +4 -1
  90. package/dist/llm/types.cjs +5 -2
  91. package/dist/llm/types.d.ts +1 -1
  92. package/dist/llm/types.d.ts.map +1 -1
  93. package/dist/llm/types.js +5 -2
  94. package/dist/llm/validation.cjs +1 -1
  95. package/dist/llm/validation.js +1 -1
  96. package/dist/logger/v2/dexto-logger.cjs +4 -0
  97. package/dist/logger/v2/dexto-logger.d.ts +3 -0
  98. package/dist/logger/v2/dexto-logger.d.ts.map +1 -1
  99. package/dist/logger/v2/dexto-logger.js +4 -0
  100. package/dist/logger/v2/types.d.ts +2 -0
  101. package/dist/logger/v2/types.d.ts.map +1 -1
  102. package/dist/mcp/error-codes.cjs +1 -0
  103. package/dist/mcp/error-codes.d.ts +1 -0
  104. package/dist/mcp/error-codes.d.ts.map +1 -1
  105. package/dist/mcp/error-codes.js +1 -0
  106. package/dist/mcp/errors.cjs +13 -0
  107. package/dist/mcp/errors.d.ts +7 -0
  108. package/dist/mcp/errors.d.ts.map +1 -1
  109. package/dist/mcp/errors.js +13 -0
  110. package/dist/mcp/manager.cjs +46 -4
  111. package/dist/mcp/manager.d.ts +10 -2
  112. package/dist/mcp/manager.d.ts.map +1 -1
  113. package/dist/mcp/manager.js +46 -4
  114. package/dist/mcp/mcp-client.cjs +89 -5
  115. package/dist/mcp/mcp-client.d.ts +5 -1
  116. package/dist/mcp/mcp-client.d.ts.map +1 -1
  117. package/dist/mcp/mcp-client.js +89 -5
  118. package/dist/mcp/schemas.cjs +6 -1
  119. package/dist/mcp/schemas.d.ts +1 -1
  120. package/dist/mcp/schemas.d.ts.map +1 -1
  121. package/dist/mcp/schemas.js +6 -1
  122. package/dist/mcp/types.d.ts +5 -0
  123. package/dist/mcp/types.d.ts.map +1 -1
  124. package/dist/prompts/index.d.ts +1 -1
  125. package/dist/prompts/index.d.ts.map +1 -1
  126. package/dist/prompts/prompt-manager.cjs +90 -4
  127. package/dist/prompts/prompt-manager.d.ts +16 -6
  128. package/dist/prompts/prompt-manager.d.ts.map +1 -1
  129. package/dist/prompts/prompt-manager.js +90 -4
  130. package/dist/prompts/providers/config-prompt-provider.cjs +104 -10
  131. package/dist/prompts/providers/config-prompt-provider.d.ts.map +1 -1
  132. package/dist/prompts/providers/config-prompt-provider.js +105 -11
  133. package/dist/prompts/providers/custom-prompt-provider.cjs +1 -0
  134. package/dist/prompts/providers/custom-prompt-provider.d.ts.map +1 -1
  135. package/dist/prompts/providers/custom-prompt-provider.js +1 -0
  136. package/dist/prompts/providers/mcp-prompt-provider.cjs +1 -0
  137. package/dist/prompts/providers/mcp-prompt-provider.d.ts.map +1 -1
  138. package/dist/prompts/providers/mcp-prompt-provider.js +1 -0
  139. package/dist/prompts/schemas.cjs +28 -2
  140. package/dist/prompts/schemas.d.ts +130 -0
  141. package/dist/prompts/schemas.d.ts.map +1 -1
  142. package/dist/prompts/schemas.js +28 -2
  143. package/dist/prompts/types.d.ts +55 -3
  144. package/dist/prompts/types.d.ts.map +1 -1
  145. package/dist/resources/handlers/filesystem-handler.cjs +25 -0
  146. package/dist/resources/handlers/filesystem-handler.d.ts +1 -0
  147. package/dist/resources/handlers/filesystem-handler.d.ts.map +1 -1
  148. package/dist/resources/handlers/filesystem-handler.js +25 -0
  149. package/dist/session/chat-session.cjs +1 -1
  150. package/dist/session/chat-session.d.ts +1 -1
  151. package/dist/session/chat-session.d.ts.map +1 -1
  152. package/dist/session/chat-session.js +1 -1
  153. package/dist/session/index.d.ts +1 -1
  154. package/dist/session/index.d.ts.map +1 -1
  155. package/dist/session/message-queue.cjs +29 -5
  156. package/dist/session/message-queue.d.ts +3 -1
  157. package/dist/session/message-queue.d.ts.map +1 -1
  158. package/dist/session/message-queue.js +29 -5
  159. package/dist/session/session-manager.cjs +84 -3
  160. package/dist/session/session-manager.d.ts +12 -0
  161. package/dist/session/session-manager.d.ts.map +1 -1
  162. package/dist/session/session-manager.js +74 -3
  163. package/dist/session/types.d.ts +1 -0
  164. package/dist/session/types.d.ts.map +1 -1
  165. package/dist/systemPrompt/contributors.cjs +42 -0
  166. package/dist/systemPrompt/contributors.d.ts +13 -0
  167. package/dist/systemPrompt/contributors.d.ts.map +1 -1
  168. package/dist/systemPrompt/contributors.js +41 -0
  169. package/dist/tools/errors.cjs +7 -3
  170. package/dist/tools/errors.d.ts +5 -1
  171. package/dist/tools/errors.d.ts.map +1 -1
  172. package/dist/tools/errors.js +7 -3
  173. package/dist/tools/internal-tools/constants.cjs +2 -1
  174. package/dist/tools/internal-tools/constants.d.ts +1 -1
  175. package/dist/tools/internal-tools/constants.d.ts.map +1 -1
  176. package/dist/tools/internal-tools/constants.js +2 -1
  177. package/dist/tools/internal-tools/implementations/invoke-skill-tool.cjs +140 -0
  178. package/dist/tools/internal-tools/implementations/invoke-skill-tool.d.ts +24 -0
  179. package/dist/tools/internal-tools/implementations/invoke-skill-tool.d.ts.map +1 -0
  180. package/dist/tools/internal-tools/implementations/invoke-skill-tool.js +117 -0
  181. package/dist/tools/internal-tools/provider.cjs +15 -0
  182. package/dist/tools/internal-tools/provider.d.ts +15 -1
  183. package/dist/tools/internal-tools/provider.d.ts.map +1 -1
  184. package/dist/tools/internal-tools/provider.js +15 -0
  185. package/dist/tools/internal-tools/registry.cjs +6 -0
  186. package/dist/tools/internal-tools/registry.d.ts +35 -1
  187. package/dist/tools/internal-tools/registry.d.ts.map +1 -1
  188. package/dist/tools/internal-tools/registry.js +6 -0
  189. package/dist/tools/schemas.d.ts +1 -1
  190. package/dist/tools/schemas.d.ts.map +1 -1
  191. package/dist/tools/tool-call-metadata.cjs +75 -0
  192. package/dist/tools/tool-call-metadata.d.ts +16 -0
  193. package/dist/tools/tool-call-metadata.d.ts.map +1 -0
  194. package/dist/tools/tool-call-metadata.js +51 -0
  195. package/dist/tools/tool-manager.cjs +481 -103
  196. package/dist/tools/tool-manager.d.ts +131 -9
  197. package/dist/tools/tool-manager.d.ts.map +1 -1
  198. package/dist/tools/tool-manager.js +482 -104
  199. package/dist/utils/api-key-resolver.cjs +5 -2
  200. package/dist/utils/api-key-resolver.d.ts.map +1 -1
  201. package/dist/utils/api-key-resolver.js +5 -2
  202. package/dist/utils/env.cjs +49 -0
  203. package/dist/utils/env.d.ts +4 -0
  204. package/dist/utils/env.d.ts.map +1 -0
  205. package/dist/utils/env.js +24 -0
  206. package/dist/utils/index.cjs +3 -1
  207. package/dist/utils/index.d.ts +1 -0
  208. package/dist/utils/index.d.ts.map +1 -1
  209. package/dist/utils/index.js +1 -0
  210. package/dist/utils/service-initializer.cjs +25 -7
  211. package/dist/utils/service-initializer.d.ts +24 -1
  212. package/dist/utils/service-initializer.d.ts.map +1 -1
  213. package/dist/utils/service-initializer.js +25 -7
  214. package/package.json +6 -2
  215. package/dist/llm/registry.cjs +0 -1631
  216. package/dist/llm/registry.d.ts.map +0 -1
  217. package/dist/llm/registry.js +0 -1586
@@ -11,41 +11,67 @@ import { createAmazonBedrock } from "@ai-sdk/amazon-bedrock";
11
11
  import { VercelLLMService } from "./vercel.js";
12
12
  import { createCohere } from "@ai-sdk/cohere";
13
13
  import { createLocalLanguageModel } from "../providers/local/ai-sdk-adapter.js";
14
- import { requiresApiKey } from "../registry.js";
15
- import { getPrimaryApiKeyEnvVar } from "../../utils/api-key-resolver.js";
16
- function createVercelModel(llmConfig) {
17
- const provider = llmConfig.provider;
18
- const model = llmConfig.model;
19
- const apiKey = llmConfig.apiKey;
14
+ import { requiresApiKey } from "../registry/index.js";
15
+ import { getPrimaryApiKeyEnvVar, resolveApiKeyForProvider } from "../../utils/api-key-resolver.js";
16
+ const DEXTO_GATEWAY_HEADERS = {
17
+ SESSION_ID: "X-Dexto-Session-ID",
18
+ CLIENT_SOURCE: "X-Dexto-Source",
19
+ CLIENT_VERSION: "X-Dexto-Version"
20
+ };
21
+ function createVercelModel(llmConfig, context) {
22
+ const { provider, model, baseURL } = llmConfig;
23
+ const apiKey = llmConfig.apiKey || resolveApiKeyForProvider(provider);
20
24
  if (requiresApiKey(provider) && !apiKey?.trim()) {
21
25
  const envVar = getPrimaryApiKeyEnvVar(provider);
22
26
  throw LLMError.apiKeyMissing(provider, envVar);
23
27
  }
24
28
  switch (provider.toLowerCase()) {
25
29
  case "openai": {
26
- return createOpenAI({ apiKey: apiKey ?? "" })(model);
30
+ return createOpenAI({ apiKey: apiKey ?? "" }).responses(model);
27
31
  }
28
32
  case "openai-compatible": {
29
- const baseURL = getOpenAICompatibleBaseURL(llmConfig);
30
- if (!baseURL) {
33
+ const compatibleBaseURL = baseURL?.replace(/\/$/, "") || process.env.OPENAI_BASE_URL?.replace(/\/$/, "");
34
+ if (!compatibleBaseURL) {
31
35
  throw LLMError.baseUrlMissing("openai-compatible");
32
36
  }
33
- return createOpenAI({ apiKey: apiKey ?? "", baseURL }).chat(model);
37
+ return createOpenAI({ apiKey: apiKey ?? "", baseURL: compatibleBaseURL }).chat(model);
34
38
  }
35
39
  case "openrouter": {
36
- const baseURL = llmConfig.baseURL || "https://openrouter.ai/api/v1";
37
- return createOpenAI({ apiKey: apiKey ?? "", baseURL }).chat(model);
40
+ const orBaseURL = baseURL || "https://openrouter.ai/api/v1";
41
+ return createOpenAI({ apiKey: apiKey ?? "", baseURL: orBaseURL }).responses(model);
42
+ }
43
+ case "minimax": {
44
+ const minimaxBaseURL = baseURL || "https://api.minimax.chat/v1";
45
+ return createOpenAI({ apiKey: apiKey ?? "", baseURL: minimaxBaseURL }).chat(model);
46
+ }
47
+ case "glm": {
48
+ const glmBaseURL = baseURL || "https://open.bigmodel.cn/api/paas/v4";
49
+ return createOpenAI({ apiKey: apiKey ?? "", baseURL: glmBaseURL }).chat(model);
38
50
  }
39
51
  case "litellm": {
40
- const baseURL = llmConfig.baseURL;
41
52
  if (!baseURL) {
42
53
  throw LLMError.baseUrlMissing("litellm");
43
54
  }
44
55
  return createOpenAI({ apiKey: apiKey ?? "", baseURL }).chat(model);
45
56
  }
46
57
  case "glama": {
47
- const baseURL = "https://glama.ai/api/gateway/openai/v1";
48
- return createOpenAI({ apiKey: apiKey ?? "", baseURL }).chat(model);
58
+ const glamaBaseURL = "https://glama.ai/api/gateway/openai/v1";
59
+ return createOpenAI({ apiKey: apiKey ?? "", baseURL: glamaBaseURL }).chat(model);
60
+ }
61
+ case "dexto-nova": {
62
+ const dextoBaseURL = "https://api.dexto.ai/v1";
63
+ const headers = {
64
+ [DEXTO_GATEWAY_HEADERS.CLIENT_SOURCE]: context?.clientSource ?? "cli"
65
+ };
66
+ if (context?.sessionId) {
67
+ headers[DEXTO_GATEWAY_HEADERS.SESSION_ID] = context.sessionId;
68
+ }
69
+ if (process.env.DEXTO_CLI_VERSION) {
70
+ headers[DEXTO_GATEWAY_HEADERS.CLIENT_VERSION] = process.env.DEXTO_CLI_VERSION;
71
+ }
72
+ return createOpenAI({ apiKey: apiKey ?? "", baseURL: dextoBaseURL, headers }).chat(
73
+ model
74
+ );
49
75
  }
50
76
  case "vertex": {
51
77
  const projectId = process.env.GOOGLE_VERTEX_PROJECT;
@@ -83,7 +109,6 @@ function createVercelModel(llmConfig) {
83
109
  }
84
110
  return createAmazonBedrock({ region })(modelId);
85
111
  }
86
- // TODO: Add 'dexto' case (similar to openrouter, uses https://api.dexto.ai/v1)
87
112
  case "anthropic":
88
113
  return createAnthropic({ apiKey: apiKey ?? "" })(model);
89
114
  case "google":
@@ -95,8 +120,8 @@ function createVercelModel(llmConfig) {
95
120
  case "cohere":
96
121
  return createCohere({ apiKey: apiKey ?? "" })(model);
97
122
  case "ollama": {
98
- const baseURL = llmConfig.baseURL || "http://localhost:11434/v1";
99
- return createOpenAI({ apiKey: "ollama", baseURL }).chat(model);
123
+ const ollamaBaseURL = baseURL || "http://localhost:11434/v1";
124
+ return createOpenAI({ apiKey: "ollama", baseURL: ollamaBaseURL }).chat(model);
100
125
  }
101
126
  case "local": {
102
127
  return createLocalLanguageModel({
@@ -107,17 +132,8 @@ function createVercelModel(llmConfig) {
107
132
  throw LLMError.unsupportedProvider(provider);
108
133
  }
109
134
  }
110
- function getOpenAICompatibleBaseURL(llmConfig) {
111
- if (llmConfig.baseURL) {
112
- return llmConfig.baseURL.replace(/\/$/, "");
113
- }
114
- if (process.env.OPENAI_BASE_URL) {
115
- return process.env.OPENAI_BASE_URL.replace(/\/$/, "");
116
- }
117
- return "";
118
- }
119
135
  function createLLMService(config, toolManager, systemPromptManager, historyProvider, sessionEventBus, sessionId, resourceManager, logger, compactionStrategy, compactionConfig) {
120
- const model = createVercelModel(config);
136
+ const model = createVercelModel(config, { sessionId });
121
137
  return new VercelLLMService(
122
138
  toolManager,
123
139
  model,
@@ -159,6 +159,8 @@ const TestConfigs = {
159
159
  groq: "llama-3.1-8b-instant",
160
160
  xai: "grok-beta",
161
161
  cohere: "command-r",
162
+ minimax: "MiniMax-M2.1",
163
+ glm: "glm-4.7",
162
164
  "openai-compatible": "gpt-5-mini",
163
165
  openrouter: "anthropic/claude-3.5-haiku",
164
166
  // OpenRouter model format: provider/model
@@ -172,8 +174,10 @@ const TestConfigs = {
172
174
  // Bedrock uses AWS credentials, not API keys
173
175
  local: "llama-3.2-3b-q4",
174
176
  // Native node-llama-cpp GGUF models
175
- ollama: "llama3.2"
177
+ ollama: "llama3.2",
176
178
  // Ollama server models
179
+ "dexto-nova": "anthropic/claude-4.5-sonnet"
180
+ // Dexto gateway (OpenRouter model format)
177
181
  };
178
182
  return {
179
183
  systemPrompt: "You are a helpful assistant for testing purposes.",
@@ -1 +1 @@
1
- {"version":3,"file":"test-utils.integration.d.ts","sourceRoot":"","sources":["../../../src/llm/services/test-utils.integration.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAMvD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAE1D;;GAEG;AAEH,MAAM,WAAW,eAAe;IAC5B,KAAK,EAAE,UAAU,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAChC;AAED;;;GAGG;AACH,wBAAsB,qBAAqB,CACvC,MAAM,EAAE,WAAW,EACnB,SAAS,GAAE,MAAuB,GACnC,OAAO,CAAC,eAAe,CAAC,CAe1B;AAKD;;GAEG;AACH,eAAO,MAAM,WAAW;IACpB;;OAEG;uCACmB,WAAW;IA4CjC;;OAEG;0CACsB,WAAW;IA4CpC;;OAEG;6CAC0B,WAAW,UAAqB,MAAM,KAAG,WAAW;CA6D3E,CAAC;AAEX;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,WAAW,GAAG,OAAO,CAGrE;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,WAAW,GAAG,OAAO,CAE7D;AAED;;GAEG;AACH,wBAAsB,sBAAsB,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAEjF"}
1
+ {"version":3,"file":"test-utils.integration.d.ts","sourceRoot":"","sources":["../../../src/llm/services/test-utils.integration.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAMvD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAE1D;;GAEG;AAEH,MAAM,WAAW,eAAe;IAC5B,KAAK,EAAE,UAAU,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAChC;AAED;;;GAGG;AACH,wBAAsB,qBAAqB,CACvC,MAAM,EAAE,WAAW,EACnB,SAAS,GAAE,MAAuB,GACnC,OAAO,CAAC,eAAe,CAAC,CAe1B;AAKD;;GAEG;AACH,eAAO,MAAM,WAAW;IACpB;;OAEG;uCACmB,WAAW;IA4CjC;;OAEG;0CACsB,WAAW;IA4CpC;;OAEG;6CAC0B,WAAW,UAAqB,MAAM,KAAG,WAAW;CAgE3E,CAAC;AAEX;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,WAAW,GAAG,OAAO,CAGrE;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,WAAW,GAAG,OAAO,CAE7D;AAED;;GAEG;AACH,wBAAsB,sBAAsB,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAEjF"}
@@ -137,6 +137,8 @@ const TestConfigs = {
137
137
  groq: "llama-3.1-8b-instant",
138
138
  xai: "grok-beta",
139
139
  cohere: "command-r",
140
+ minimax: "MiniMax-M2.1",
141
+ glm: "glm-4.7",
140
142
  "openai-compatible": "gpt-5-mini",
141
143
  openrouter: "anthropic/claude-3.5-haiku",
142
144
  // OpenRouter model format: provider/model
@@ -150,8 +152,10 @@ const TestConfigs = {
150
152
  // Bedrock uses AWS credentials, not API keys
151
153
  local: "llama-3.2-3b-q4",
152
154
  // Native node-llama-cpp GGUF models
153
- ollama: "llama3.2"
155
+ ollama: "llama3.2",
154
156
  // Ollama server models
157
+ "dexto-nova": "anthropic/claude-4.5-sonnet"
158
+ // Dexto gateway (OpenRouter model format)
155
159
  };
156
160
  return {
157
161
  systemPrompt: "You are a helpful assistant for testing purposes.",
@@ -68,7 +68,7 @@ __export(vercel_exports, {
68
68
  module.exports = __toCommonJS(vercel_exports);
69
69
  var import_types2 = require("../../logger/v2/types.js");
70
70
  var import_manager = require("../../context/manager.js");
71
- var import_registry = require("../registry.js");
71
+ var import_registry = require("../registry/index.js");
72
72
  var import_vercel = require("../formatters/vercel.js");
73
73
  var import_decorators = require("../../telemetry/decorators.js");
74
74
  var import_api = require("@opentelemetry/api");
@@ -140,6 +140,9 @@ class VercelLLMService {
140
140
  getAllTools() {
141
141
  return this.toolManager.getAllTools();
142
142
  }
143
+ getEnabledTools() {
144
+ return this.toolManager.getAllTools().then((tools) => this.toolManager.filterToolsForSession(tools, this.sessionId));
145
+ }
143
146
  /**
144
147
  * Create a TurnExecutor instance for executing the agent loop.
145
148
  */
@@ -45,6 +45,7 @@ export declare class VercelLLMService {
45
45
  private getModelId;
46
46
  constructor(toolManager: ToolManager, model: LanguageModel, systemPromptManager: SystemPromptManager, historyProvider: IConversationHistoryProvider, sessionEventBus: SessionEventBus, config: ValidatedLLMConfig, sessionId: string, resourceManager: ResourceManager, logger: IDextoLogger, compactionStrategy?: import('../../context/compaction/types.js').ICompactionStrategy | null, compactionConfig?: CompactionConfigInput);
47
47
  getAllTools(): Promise<ToolSet>;
48
+ getEnabledTools(): Promise<ToolSet>;
48
49
  /**
49
50
  * Create a TurnExecutor instance for executing the agent loop.
50
51
  */
@@ -1 +1 @@
1
- {"version":3,"file":"vercel.d.ts","sourceRoot":"","sources":["../../../src/llm/services/vercel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAqB,MAAM,IAAI,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAE7D,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAG1D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;AAEjF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,gCAAgC,CAAC;AACnF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AAEzE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAIxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAGhE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEzD;;;;;;;;;;;;;GAaG;AACH,qBAIa,gBAAgB;IACzB,OAAO,CAAC,KAAK,CAAgB;IAC7B,OAAO,CAAC,MAAM,CAAqB;IACnC,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,cAAc,CAA+B;IACrD,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,YAAY,CAAsB;IAC1C,OAAO,CAAC,kBAAkB,CAEf;IACX,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,0BAA0B,CAAS;IAE3C;;OAEG;IACH,OAAO,CAAC,UAAU;gBAKd,WAAW,EAAE,WAAW,EACxB,KAAK,EAAE,aAAa,EACpB,mBAAmB,EAAE,mBAAmB,EACxC,eAAe,EAAE,4BAA4B,EAC7C,eAAe,EAAE,eAAe,EAChC,MAAM,EAAE,kBAAkB,EAC1B,SAAS,EAAE,MAAM,EACjB,eAAe,EAAE,eAAe,EAChC,MAAM,EAAE,YAAY,EACpB,kBAAkB,CAAC,EAAE,OAAO,mCAAmC,EAAE,mBAAmB,GAAG,IAAI,EAC3F,gBAAgB,CAAC,EAAE,qBAAqB;IAuD5C,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAI/B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IA0B1B;;OAEG;IACH,OAAc,YAAY,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IAE7C;;;;;;;OAOG;IACG,MAAM,CACR,OAAO,EAAE,YAAY,EACrB,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE,GACnC,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IAwD5B;;;OAGG;IACH,SAAS,IAAI,gBAAgB;IA+B7B;;OAEG;IACH,iBAAiB,IAAI,cAAc,CAAC,OAAO,CAAC;IAI5C;;OAEG;IACH,eAAe,IAAI,mBAAmB;IAItC;;OAEG;IACH,qBAAqB,IACf,OAAO,mCAAmC,EAAE,mBAAmB,GAC/D,IAAI;CAGb"}
1
+ {"version":3,"file":"vercel.d.ts","sourceRoot":"","sources":["../../../src/llm/services/vercel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAqB,MAAM,IAAI,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAE7D,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAG1D,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;AAEjF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,KAAK,EAAE,4BAA4B,EAAE,MAAM,gCAAgC,CAAC;AACnF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AAEzE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAIxD,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAGhE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEzD;;;;;;;;;;;;;GAaG;AACH,qBAIa,gBAAgB;IACzB,OAAO,CAAC,KAAK,CAAgB;IAC7B,OAAO,CAAC,MAAM,CAAqB;IACnC,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,cAAc,CAA+B;IACrD,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,YAAY,CAAsB;IAC1C,OAAO,CAAC,kBAAkB,CAEf;IACX,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,0BAA0B,CAAS;IAE3C;;OAEG;IACH,OAAO,CAAC,UAAU;gBAKd,WAAW,EAAE,WAAW,EACxB,KAAK,EAAE,aAAa,EACpB,mBAAmB,EAAE,mBAAmB,EACxC,eAAe,EAAE,4BAA4B,EAC7C,eAAe,EAAE,eAAe,EAChC,MAAM,EAAE,kBAAkB,EAC1B,SAAS,EAAE,MAAM,EACjB,eAAe,EAAE,eAAe,EAChC,MAAM,EAAE,YAAY,EACpB,kBAAkB,CAAC,EAAE,OAAO,mCAAmC,EAAE,mBAAmB,GAAG,IAAI,EAC3F,gBAAgB,CAAC,EAAE,qBAAqB;IAuD5C,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAI/B,eAAe,IAAI,OAAO,CAAC,OAAO,CAAC;IAMnC;;OAEG;IACH,OAAO,CAAC,kBAAkB;IA0B1B;;OAEG;IACH,OAAc,YAAY,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IAE7C;;;;;;;OAOG;IACG,MAAM,CACR,OAAO,EAAE,YAAY,EACrB,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE,GACnC,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IAwD5B;;;OAGG;IACH,SAAS,IAAI,gBAAgB;IA+B7B;;OAEG;IACH,iBAAiB,IAAI,cAAc,CAAC,OAAO,CAAC;IAI5C;;OAEG;IACH,eAAe,IAAI,mBAAmB;IAItC;;OAEG;IACH,qBAAqB,IACf,OAAO,mCAAmC,EAAE,mBAAmB,GAC/D,IAAI;CAGb"}
@@ -6,7 +6,7 @@ import {
6
6
  var _VercelLLMService_decorators, _init;
7
7
  import { DextoLogComponent } from "../../logger/v2/types.js";
8
8
  import { ContextManager } from "../../context/manager.js";
9
- import { getEffectiveMaxInputTokens, getMaxInputTokensForModel } from "../registry.js";
9
+ import { getEffectiveMaxInputTokens, getMaxInputTokensForModel } from "../registry/index.js";
10
10
  import { VercelMessageFormatter } from "../formatters/vercel.js";
11
11
  import { InstrumentClass } from "../../telemetry/decorators.js";
12
12
  import { trace, context, propagation } from "@opentelemetry/api";
@@ -77,6 +77,9 @@ class VercelLLMService {
77
77
  getAllTools() {
78
78
  return this.toolManager.getAllTools();
79
79
  }
80
+ getEnabledTools() {
81
+ return this.toolManager.getAllTools().then((tools) => this.toolManager.filterToolsForSession(tools, this.sessionId));
82
+ }
80
83
  /**
81
84
  * Create a TurnExecutor instance for executing the agent loop.
82
85
  */
@@ -30,6 +30,8 @@ const LLM_PROVIDERS = [
30
30
  "groq",
31
31
  "xai",
32
32
  "cohere",
33
+ "minimax",
34
+ "glm",
33
35
  "openrouter",
34
36
  "litellm",
35
37
  "glama",
@@ -37,9 +39,10 @@ const LLM_PROVIDERS = [
37
39
  "bedrock",
38
40
  "local",
39
41
  // Native node-llama-cpp execution (GGUF models)
40
- "ollama"
42
+ "ollama",
41
43
  // Ollama server integration
42
- // TODO: Add 'dexto' provider (similar to openrouter, uses https://api.dexto.ai/v1)
44
+ "dexto-nova"
45
+ // Dexto gateway - routes through api.dexto.ai/v1 with billing
43
46
  ];
44
47
  const SUPPORTED_FILE_TYPES = ["pdf", "image", "audio"];
45
48
  // Annotate the CommonJS export names for ESM import in node:
@@ -1,4 +1,4 @@
1
- export declare const LLM_PROVIDERS: readonly ["openai", "openai-compatible", "anthropic", "google", "groq", "xai", "cohere", "openrouter", "litellm", "glama", "vertex", "bedrock", "local", "ollama"];
1
+ export declare const LLM_PROVIDERS: readonly ["openai", "openai-compatible", "anthropic", "google", "groq", "xai", "cohere", "minimax", "glm", "openrouter", "litellm", "glama", "vertex", "bedrock", "local", "ollama", "dexto-nova"];
2
2
  export type LLMProvider = (typeof LLM_PROVIDERS)[number];
3
3
  export declare const SUPPORTED_FILE_TYPES: readonly ["pdf", "image", "audio"];
4
4
  export type SupportedFileType = (typeof SUPPORTED_FILE_TYPES)[number];
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/llm/types.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,aAAa,oKAgBhB,CAAC;AACX,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC;AAEzD,eAAO,MAAM,oBAAoB,oCAAqC,CAAC;AACvE,MAAM,MAAM,iBAAiB,GAAG,CAAC,OAAO,oBAAoB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEtE;;;GAGG;AAEH,MAAM,WAAW,UAAU;IACvB,mDAAmD;IACnD,QAAQ,EAAE,WAAW,CAAC;IAEtB,kEAAkE;IAClE,KAAK,EAAE,MAAM,CAAC;CACjB;AAGD,MAAM,WAAW,gBAAgB;IAC7B,QAAQ,CAAC,EAAE,WAAW,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,eAAe,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,UAAU;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC7B"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/llm/types.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,aAAa,oMAkBhB,CAAC;AACX,MAAM,MAAM,WAAW,GAAG,CAAC,OAAO,aAAa,CAAC,CAAC,MAAM,CAAC,CAAC;AAEzD,eAAO,MAAM,oBAAoB,oCAAqC,CAAC;AACvE,MAAM,MAAM,iBAAiB,GAAG,CAAC,OAAO,oBAAoB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEtE;;;GAGG;AAEH,MAAM,WAAW,UAAU;IACvB,mDAAmD;IACnD,QAAQ,EAAE,WAAW,CAAC;IAEtB,kEAAkE;IAClE,KAAK,EAAE,MAAM,CAAC;CACjB;AAGD,MAAM,WAAW,gBAAgB;IAC7B,QAAQ,CAAC,EAAE,WAAW,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,eAAe,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,UAAU;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC7B"}
package/dist/llm/types.js CHANGED
@@ -7,6 +7,8 @@ const LLM_PROVIDERS = [
7
7
  "groq",
8
8
  "xai",
9
9
  "cohere",
10
+ "minimax",
11
+ "glm",
10
12
  "openrouter",
11
13
  "litellm",
12
14
  "glama",
@@ -14,9 +16,10 @@ const LLM_PROVIDERS = [
14
16
  "bedrock",
15
17
  "local",
16
18
  // Native node-llama-cpp execution (GGUF models)
17
- "ollama"
19
+ "ollama",
18
20
  // Ollama server integration
19
- // TODO: Add 'dexto' provider (similar to openrouter, uses https://api.dexto.ai/v1)
21
+ "dexto-nova"
22
+ // Dexto gateway - routes through api.dexto.ai/v1 with billing
20
23
  ];
21
24
  const SUPPORTED_FILE_TYPES = ["pdf", "image", "audio"];
22
25
  export {
@@ -21,7 +21,7 @@ __export(validation_exports, {
21
21
  validateInputForLLM: () => validateInputForLLM
22
22
  });
23
23
  module.exports = __toCommonJS(validation_exports);
24
- var import_registry = require("./registry.js");
24
+ var import_registry = require("./registry/index.js");
25
25
  var import_result = require("../utils/result.js");
26
26
  var import_types = require("../errors/types.cjs");
27
27
  var import_error_codes = require("./error-codes.js");
@@ -1,5 +1,5 @@
1
1
  import "../chunk-PTJYTZNU.js";
2
- import { validateModelFileSupport, getAllowedMimeTypes } from "./registry.js";
2
+ import { validateModelFileSupport, getAllowedMimeTypes } from "./registry/index.js";
3
3
  import { ok, fail } from "../utils/result.js";
4
4
  import { ErrorScope, ErrorType } from "../errors/types.js";
5
5
  import { LLMErrorCode } from "./error-codes.js";
@@ -26,6 +26,7 @@ class DextoLogger {
26
26
  levelRef;
27
27
  component;
28
28
  agentId;
29
+ sessionId;
29
30
  transports;
30
31
  // Log level hierarchy for filtering
31
32
  // Following Winston convention: lower number = more severe
@@ -41,6 +42,7 @@ class DextoLogger {
41
42
  this.levelRef = config._levelRef ?? { value: config.level };
42
43
  this.component = config.component;
43
44
  this.agentId = config.agentId;
45
+ this.sessionId = config.sessionId;
44
46
  this.transports = config.transports;
45
47
  }
46
48
  debug(message, context) {
@@ -86,6 +88,7 @@ class DextoLogger {
86
88
  timestamp: (/* @__PURE__ */ new Date()).toISOString(),
87
89
  component: this.component,
88
90
  agentId: this.agentId,
91
+ ...this.sessionId !== void 0 && { sessionId: this.sessionId },
89
92
  context
90
93
  };
91
94
  for (const transport of this.transports) {
@@ -143,6 +146,7 @@ class DextoLogger {
143
146
  // Initial value (will be overridden by _levelRef)
144
147
  component,
145
148
  agentId: this.agentId,
149
+ ...this.sessionId !== void 0 && { sessionId: this.sessionId },
146
150
  transports: this.transports,
147
151
  _levelRef: this.levelRef
148
152
  // Share the same level reference
@@ -12,6 +12,8 @@ export interface DextoLoggerConfig {
12
12
  component: DextoLogComponent;
13
13
  /** Agent ID for multi-agent isolation */
14
14
  agentId: string;
15
+ /** Optional session ID for associating logs with a session */
16
+ sessionId?: string;
15
17
  /** Transport instances */
16
18
  transports: ILoggerTransport[];
17
19
  /** Shared level reference (internal - for child loggers to share parent's level) */
@@ -27,6 +29,7 @@ export declare class DextoLogger implements IDextoLogger {
27
29
  private levelRef;
28
30
  private component;
29
31
  private agentId;
32
+ private sessionId;
30
33
  private transports;
31
34
  private static readonly LEVELS;
32
35
  constructor(config: DextoLoggerConfig);
@@ -1 +1 @@
1
- {"version":3,"file":"dexto-logger.d.ts","sourceRoot":"","sources":["../../../src/logger/v2/dexto-logger.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EACR,YAAY,EACZ,gBAAgB,EAEhB,QAAQ,EACR,iBAAiB,EACpB,MAAM,YAAY,CAAC;AAEpB,MAAM,WAAW,iBAAiB;IAC9B,kCAAkC;IAClC,KAAK,EAAE,QAAQ,CAAC;IAChB,2BAA2B;IAC3B,SAAS,EAAE,iBAAiB,CAAC;IAC7B,yCAAyC;IACzC,OAAO,EAAE,MAAM,CAAC;IAChB,0BAA0B;IAC1B,UAAU,EAAE,gBAAgB,EAAE,CAAC;IAC/B,oFAAoF;IACpF,SAAS,CAAC,EAAE;QAAE,KAAK,EAAE,QAAQ,CAAA;KAAE,CAAC;CACnC;AAED;;GAEG;AACH,qBAAa,WAAY,YAAW,YAAY;IAC5C,sFAAsF;IACtF,OAAO,CAAC,QAAQ,CAAsB;IACtC,OAAO,CAAC,SAAS,CAAoB;IACrC,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,UAAU,CAAqB;IAKvC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAM5B;gBAEU,MAAM,EAAE,iBAAiB;IAQrC,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAM/D,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAM/D,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAM9D,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAM9D,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAM/D,cAAc,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IASrE;;OAEG;IACH,OAAO,CAAC,GAAG;IA2BX;;;;OAIG;IACH,OAAO,CAAC,SAAS;IAIjB;;;OAGG;IACH,QAAQ,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI;IAI/B;;OAEG;IACH,QAAQ,IAAI,QAAQ;IAIpB;;OAEG;IACH,cAAc,IAAI,MAAM,GAAG,IAAI;IAU/B;;;OAGG;IACH,WAAW,CAAC,SAAS,EAAE,iBAAiB,GAAG,WAAW;IAUtD;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAWjC"}
1
+ {"version":3,"file":"dexto-logger.d.ts","sourceRoot":"","sources":["../../../src/logger/v2/dexto-logger.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EACR,YAAY,EACZ,gBAAgB,EAEhB,QAAQ,EACR,iBAAiB,EACpB,MAAM,YAAY,CAAC;AAEpB,MAAM,WAAW,iBAAiB;IAC9B,kCAAkC;IAClC,KAAK,EAAE,QAAQ,CAAC;IAChB,2BAA2B;IAC3B,SAAS,EAAE,iBAAiB,CAAC;IAC7B,yCAAyC;IACzC,OAAO,EAAE,MAAM,CAAC;IAChB,8DAA8D;IAC9D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,0BAA0B;IAC1B,UAAU,EAAE,gBAAgB,EAAE,CAAC;IAC/B,oFAAoF;IACpF,SAAS,CAAC,EAAE;QAAE,KAAK,EAAE,QAAQ,CAAA;KAAE,CAAC;CACnC;AAED;;GAEG;AACH,qBAAa,WAAY,YAAW,YAAY;IAC5C,sFAAsF;IACtF,OAAO,CAAC,QAAQ,CAAsB;IACtC,OAAO,CAAC,SAAS,CAAoB;IACrC,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,SAAS,CAAqB;IACtC,OAAO,CAAC,UAAU,CAAqB;IAKvC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAM5B;gBAEU,MAAM,EAAE,iBAAiB;IASrC,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAM/D,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAM/D,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAM9D,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAM9D,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAM/D,cAAc,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IASrE;;OAEG;IACH,OAAO,CAAC,GAAG;IA4BX;;;;OAIG;IACH,OAAO,CAAC,SAAS;IAIjB;;;OAGG;IACH,QAAQ,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI;IAI/B;;OAEG;IACH,QAAQ,IAAI,QAAQ;IAIpB;;OAEG;IACH,cAAc,IAAI,MAAM,GAAG,IAAI;IAU/B;;;OAGG;IACH,WAAW,CAAC,SAAS,EAAE,iBAAiB,GAAG,WAAW;IAWtD;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAWjC"}
@@ -4,6 +4,7 @@ class DextoLogger {
4
4
  levelRef;
5
5
  component;
6
6
  agentId;
7
+ sessionId;
7
8
  transports;
8
9
  // Log level hierarchy for filtering
9
10
  // Following Winston convention: lower number = more severe
@@ -19,6 +20,7 @@ class DextoLogger {
19
20
  this.levelRef = config._levelRef ?? { value: config.level };
20
21
  this.component = config.component;
21
22
  this.agentId = config.agentId;
23
+ this.sessionId = config.sessionId;
22
24
  this.transports = config.transports;
23
25
  }
24
26
  debug(message, context) {
@@ -64,6 +66,7 @@ class DextoLogger {
64
66
  timestamp: (/* @__PURE__ */ new Date()).toISOString(),
65
67
  component: this.component,
66
68
  agentId: this.agentId,
69
+ ...this.sessionId !== void 0 && { sessionId: this.sessionId },
67
70
  context
68
71
  };
69
72
  for (const transport of this.transports) {
@@ -121,6 +124,7 @@ class DextoLogger {
121
124
  // Initial value (will be overridden by _levelRef)
122
125
  component,
123
126
  agentId: this.agentId,
127
+ ...this.sessionId !== void 0 && { sessionId: this.sessionId },
124
128
  transports: this.transports,
125
129
  _levelRef: this.levelRef
126
130
  // Share the same level reference
@@ -49,6 +49,8 @@ export interface LogEntry {
49
49
  component: DextoLogComponent;
50
50
  /** Agent ID for multi-agent isolation */
51
51
  agentId: string;
52
+ /** Optional session ID for multi-session isolation */
53
+ sessionId?: string;
52
54
  /** Optional structured context data */
53
55
  context?: Record<string, unknown> | undefined;
54
56
  }
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/logger/v2/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;;GAGG;AACH,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,CAAC;AAErE;;;GAGG;AACH,oBAAY,iBAAiB;IAEzB,KAAK,UAAU;IACf,GAAG,QAAQ;IACX,MAAM,WAAW;IACjB,OAAO,YAAY;IACnB,OAAO,YAAY;IACnB,GAAG,QAAQ;IACX,KAAK,UAAU;IACf,OAAO,YAAY;IACnB,aAAa,kBAAkB;IAC/B,QAAQ,aAAa;IACrB,MAAM,WAAW;IACjB,MAAM,WAAW;IACjB,MAAM,WAAW;IACjB,UAAU,eAAe;IACzB,OAAO,YAAY;IACnB,QAAQ,aAAa;IAGrB,GAAG,QAAQ;IACX,GAAG,QAAQ;IACX,SAAS,cAAc;IACvB,QAAQ,aAAa;CACxB;AAED;;;GAGG;AACH,MAAM,WAAW,QAAQ;IACrB,gBAAgB;IAChB,KAAK,EAAE,QAAQ,CAAC;IAChB,0BAA0B;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,oBAAoB;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,uCAAuC;IACvC,SAAS,EAAE,iBAAiB,CAAC;IAC7B,yCAAyC;IACzC,OAAO,EAAE,MAAM,CAAC;IAChB,uCAAuC;IACvC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC;CACjD;AAED;;;GAGG;AACH,MAAM,WAAW,YAAY;IACzB;;;;OAIG;IACH,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAEhE;;;;OAIG;IACH,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAEhE;;;;OAIG;IACH,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAE/D;;;;OAIG;IACH,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAE/D;;;;OAIG;IACH,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAEhE;;;;OAIG;IACH,cAAc,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAEtE;;;;;OAKG;IACH,WAAW,CAAC,SAAS,EAAE,iBAAiB,GAAG,YAAY,CAAC;IAExD;;;;OAIG;IACH,QAAQ,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI,CAAC;IAEhC;;;OAGG;IACH,QAAQ,IAAI,QAAQ,CAAC;IAErB;;;OAGG;IACH,cAAc,IAAI,MAAM,GAAG,IAAI,CAAC;IAEhC;;OAEG;IACH,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5B;AAED;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC7B;;;OAGG;IACH,KAAK,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE7C;;OAEG;IACH,OAAO,CAAC,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACpC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/logger/v2/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;;GAGG;AACH,MAAM,MAAM,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,CAAC;AAErE;;;GAGG;AACH,oBAAY,iBAAiB;IAEzB,KAAK,UAAU;IACf,GAAG,QAAQ;IACX,MAAM,WAAW;IACjB,OAAO,YAAY;IACnB,OAAO,YAAY;IACnB,GAAG,QAAQ;IACX,KAAK,UAAU;IACf,OAAO,YAAY;IACnB,aAAa,kBAAkB;IAC/B,QAAQ,aAAa;IACrB,MAAM,WAAW;IACjB,MAAM,WAAW;IACjB,MAAM,WAAW;IACjB,UAAU,eAAe;IACzB,OAAO,YAAY;IACnB,QAAQ,aAAa;IAGrB,GAAG,QAAQ;IACX,GAAG,QAAQ;IACX,SAAS,cAAc;IACvB,QAAQ,aAAa;CACxB;AAED;;;GAGG;AACH,MAAM,WAAW,QAAQ;IACrB,gBAAgB;IAChB,KAAK,EAAE,QAAQ,CAAC;IAChB,0BAA0B;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,oBAAoB;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,uCAAuC;IACvC,SAAS,EAAE,iBAAiB,CAAC;IAC7B,yCAAyC;IACzC,OAAO,EAAE,MAAM,CAAC;IAChB,sDAAsD;IACtD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,uCAAuC;IACvC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC;CACjD;AAED;;;GAGG;AACH,MAAM,WAAW,YAAY;IACzB;;;;OAIG;IACH,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAEhE;;;;OAIG;IACH,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAEhE;;;;OAIG;IACH,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAE/D;;;;OAIG;IACH,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAE/D;;;;OAIG;IACH,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAEhE;;;;OAIG;IACH,cAAc,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAEtE;;;;;OAKG;IACH,WAAW,CAAC,SAAS,EAAE,iBAAiB,GAAG,YAAY,CAAC;IAExD;;;;OAIG;IACH,QAAQ,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI,CAAC;IAEhC;;;OAGG;IACH,QAAQ,IAAI,QAAQ,CAAC;IAErB;;;OAGG;IACH,cAAc,IAAI,MAAM,GAAG,IAAI,CAAC;IAEhC;;OAEG;IACH,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC5B;AAED;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC7B;;;OAGG;IACH,KAAK,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE7C;;OAEG;IACH,OAAO,CAAC,IAAI,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACpC"}
@@ -27,6 +27,7 @@ var MCPErrorCode = /* @__PURE__ */ ((MCPErrorCode2) => {
27
27
  MCPErrorCode2["DUPLICATE_NAME"] = "mcp_duplicate_name";
28
28
  MCPErrorCode2["CONNECTION_FAILED"] = "mcp_connection_failed";
29
29
  MCPErrorCode2["DISCONNECTION_FAILED"] = "mcp_disconnection_failed";
30
+ MCPErrorCode2["AUTH_REQUIRED"] = "mcp_auth_required";
30
31
  MCPErrorCode2["PROTOCOL_ERROR"] = "mcp_protocol_error";
31
32
  MCPErrorCode2["SERVER_NOT_FOUND"] = "mcp_server_not_found";
32
33
  MCPErrorCode2["TOOL_NOT_FOUND"] = "mcp_tool_not_found";
@@ -8,6 +8,7 @@ export declare enum MCPErrorCode {
8
8
  DUPLICATE_NAME = "mcp_duplicate_name",
9
9
  CONNECTION_FAILED = "mcp_connection_failed",
10
10
  DISCONNECTION_FAILED = "mcp_disconnection_failed",
11
+ AUTH_REQUIRED = "mcp_auth_required",
11
12
  PROTOCOL_ERROR = "mcp_protocol_error",
12
13
  SERVER_NOT_FOUND = "mcp_server_not_found",
13
14
  TOOL_NOT_FOUND = "mcp_tool_not_found",
@@ -1 +1 @@
1
- {"version":3,"file":"error-codes.d.ts","sourceRoot":"","sources":["../../src/mcp/error-codes.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,oBAAY,YAAY;IAEpB,iBAAiB,0BAA0B;IAC3C,eAAe,wBAAwB;IACvC,cAAc,uBAAuB;IAGrC,iBAAiB,0BAA0B;IAC3C,oBAAoB,6BAA6B;IAGjD,cAAc,uBAAuB;IAGrC,gBAAgB,yBAAyB;IACzC,cAAc,uBAAuB;IACrC,gBAAgB,yBAAyB;IACzC,kBAAkB,2BAA2B;CAChD"}
1
+ {"version":3,"file":"error-codes.d.ts","sourceRoot":"","sources":["../../src/mcp/error-codes.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,oBAAY,YAAY;IAEpB,iBAAiB,0BAA0B;IAC3C,eAAe,wBAAwB;IACvC,cAAc,uBAAuB;IAGrC,iBAAiB,0BAA0B;IAC3C,oBAAoB,6BAA6B;IACjD,aAAa,sBAAsB;IAGnC,cAAc,uBAAuB;IAGrC,gBAAgB,yBAAyB;IACzC,cAAc,uBAAuB;IACrC,gBAAgB,yBAAyB;IACzC,kBAAkB,2BAA2B;CAChD"}
@@ -5,6 +5,7 @@ var MCPErrorCode = /* @__PURE__ */ ((MCPErrorCode2) => {
5
5
  MCPErrorCode2["DUPLICATE_NAME"] = "mcp_duplicate_name";
6
6
  MCPErrorCode2["CONNECTION_FAILED"] = "mcp_connection_failed";
7
7
  MCPErrorCode2["DISCONNECTION_FAILED"] = "mcp_disconnection_failed";
8
+ MCPErrorCode2["AUTH_REQUIRED"] = "mcp_auth_required";
8
9
  MCPErrorCode2["PROTOCOL_ERROR"] = "mcp_protocol_error";
9
10
  MCPErrorCode2["SERVER_NOT_FOUND"] = "mcp_server_not_found";
10
11
  MCPErrorCode2["TOOL_NOT_FOUND"] = "mcp_tool_not_found";
@@ -64,6 +64,19 @@ class MCPError {
64
64
  "Check MCP server compatibility and protocol version"
65
65
  );
66
66
  }
67
+ /**
68
+ * MCP authentication required
69
+ */
70
+ static authenticationRequired(serverName, reason) {
71
+ return new import_DextoRuntimeError.DextoRuntimeError(
72
+ import_error_codes.MCPErrorCode.AUTH_REQUIRED,
73
+ import_types.ErrorScope.MCP,
74
+ import_types.ErrorType.THIRD_PARTY,
75
+ `Authentication required for MCP server '${serverName}'${reason ? `: ${reason}` : ""}`,
76
+ { serverName, reason },
77
+ "Authenticate with the MCP server using the CLI /mcp flow"
78
+ );
79
+ }
67
80
  /**
68
81
  * MCP duplicate server name
69
82
  */
@@ -22,6 +22,13 @@ export declare class MCPError {
22
22
  * MCP protocol error
23
23
  */
24
24
  static protocolError(message: string, details?: unknown): DextoRuntimeError<unknown>;
25
+ /**
26
+ * MCP authentication required
27
+ */
28
+ static authenticationRequired(serverName: string, reason?: string): DextoRuntimeError<{
29
+ serverName: string;
30
+ reason: string | undefined;
31
+ }>;
25
32
  /**
26
33
  * MCP duplicate server name
27
34
  */
@@ -1 +1 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/mcp/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAItE;;;GAGG;AACH,qBAAa,QAAQ;IACjB;;OAEG;IACH,MAAM,CAAC,gBAAgB,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;;;;IAW1D;;OAEG;IACH,MAAM,CAAC,mBAAmB,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;;;;IAW7D;;OAEG;IACH,MAAM,CAAC,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO;IAWvD;;OAEG;IACH,MAAM,CAAC,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM;;;;IAWvD;;OAEG;IACH,MAAM,CAAC,cAAc,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM;;;;IAUzD;;OAEG;IACH,MAAM,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM;;;IAUpC;;OAEG;IACH,MAAM,CAAC,cAAc,CAAC,UAAU,EAAE,MAAM;;;IAUxC;;OAEG;IACH,MAAM,CAAC,gBAAgB,CAAC,WAAW,EAAE,MAAM;;;IAU3C;;OAEG;IACH,MAAM,CAAC,kBAAkB,CAAC,OAAO,CAAC,EAAE,MAAM;;;IAU1C;;OAEG;IACH,MAAM,CAAC,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;;;;CAS5D"}
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/mcp/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAItE;;;GAGG;AACH,qBAAa,QAAQ;IACjB;;OAEG;IACH,MAAM,CAAC,gBAAgB,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;;;;IAW1D;;OAEG;IACH,MAAM,CAAC,mBAAmB,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;;;;IAW7D;;OAEG;IACH,MAAM,CAAC,aAAa,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO;IAWvD;;OAEG;IACH,MAAM,CAAC,sBAAsB,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM;;;;IAWjE;;OAEG;IACH,MAAM,CAAC,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM;;;;IAWvD;;OAEG;IACH,MAAM,CAAC,cAAc,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM;;;;IAUzD;;OAEG;IACH,MAAM,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM;;;IAUpC;;OAEG;IACH,MAAM,CAAC,cAAc,CAAC,UAAU,EAAE,MAAM;;;IAUxC;;OAEG;IACH,MAAM,CAAC,gBAAgB,CAAC,WAAW,EAAE,MAAM;;;IAU3C;;OAEG;IACH,MAAM,CAAC,kBAAkB,CAAC,OAAO,CAAC,EAAE,MAAM;;;IAU1C;;OAEG;IACH,MAAM,CAAC,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;;;;CAS5D"}
@@ -42,6 +42,19 @@ class MCPError {
42
42
  "Check MCP server compatibility and protocol version"
43
43
  );
44
44
  }
45
+ /**
46
+ * MCP authentication required
47
+ */
48
+ static authenticationRequired(serverName, reason) {
49
+ return new DextoRuntimeError(
50
+ MCPErrorCode.AUTH_REQUIRED,
51
+ ErrorScope.MCP,
52
+ ErrorType.THIRD_PARTY,
53
+ `Authentication required for MCP server '${serverName}'${reason ? `: ${reason}` : ""}`,
54
+ { serverName, reason },
55
+ "Authenticate with the MCP server using the CLI /mcp flow"
56
+ );
57
+ }
45
58
  /**
46
59
  * MCP duplicate server name
47
60
  */
@@ -38,6 +38,7 @@ class MCPManager {
38
38
  sanitizedNameToServerMap = /* @__PURE__ */ new Map();
39
39
  approvalManager = null;
40
40
  // Will be set by service initializer
41
+ authProviderFactory = null;
41
42
  logger;
42
43
  // Use a distinctive delimiter that won't appear in normal server/tool names
43
44
  // Using double hyphen as it's allowed in LLM tool name patterns (^[a-zA-Z0-9_-]+$)
@@ -45,6 +46,14 @@ class MCPManager {
45
46
  constructor(logger) {
46
47
  this.logger = logger.createChild(import_types.DextoLogComponent.MCP);
47
48
  }
49
+ setAuthProviderFactory(factory) {
50
+ this.authProviderFactory = factory;
51
+ for (const [_name, client] of this.clients.entries()) {
52
+ if (client instanceof import_mcp_client.MCPClient) {
53
+ client.setAuthProviderFactory(factory);
54
+ }
55
+ }
56
+ }
48
57
  /**
49
58
  * Set the approval manager for handling elicitation requests from MCP servers
50
59
  *
@@ -520,8 +529,16 @@ class MCPManager {
520
529
  const connectPromise = this.connectServer(name, config).then(() => {
521
530
  successfulConnections.push(name);
522
531
  }).catch((error) => {
532
+ if (!this.connectionErrors[name]) {
533
+ const errorMessage = error instanceof Error ? error.message : String(error);
534
+ const errorCode = error && typeof error === "object" && "code" in error ? String(error.code) : void 0;
535
+ this.connectionErrors[name] = {
536
+ message: errorMessage,
537
+ ...errorCode ? { code: errorCode } : {}
538
+ };
539
+ }
523
540
  this.logger.debug(
524
- `Handled connection error for '${name}' during initialization: ${error.message}`
541
+ `Handled connection error for '${name}' during initialization: ${error instanceof Error ? error.message : String(error)}`
525
542
  );
526
543
  });
527
544
  connectionPromises.push(connectPromise);
@@ -531,7 +548,9 @@ class MCPManager {
531
548
  (name) => !successfulConnections.includes(name)
532
549
  );
533
550
  if (failedStrictServers.length > 0) {
534
- const strictErrors = failedStrictServers.map((name) => `${name}: ${this.connectionErrors[name] || "Unknown error"}`).join("; ");
551
+ const strictErrors = failedStrictServers.map(
552
+ (name) => `${name}: ${this.connectionErrors[name]?.message ?? "Unknown error"}`
553
+ ).join("; ");
535
554
  throw import_errors.MCPError.connectionFailed("strict servers", strictErrors);
536
555
  }
537
556
  }
@@ -548,6 +567,7 @@ class MCPManager {
548
567
  return;
549
568
  }
550
569
  const client = new import_mcp_client.MCPClient(this.logger);
570
+ client.setAuthProviderFactory(this.authProviderFactory);
551
571
  try {
552
572
  this.logger.info(`Attempting to connect to new server '${name}'...`);
553
573
  await client.connect(config, name);
@@ -560,7 +580,11 @@ class MCPManager {
560
580
  this.logger.info(`Successfully connected and cached new server '${name}'`);
561
581
  } catch (error) {
562
582
  const errorMsg = error instanceof Error ? error.message : String(error);
563
- this.connectionErrors[name] = errorMsg;
583
+ const errorCode = error && typeof error === "object" && "code" in error ? String(error.code) : void 0;
584
+ this.connectionErrors[name] = {
585
+ message: errorMsg,
586
+ ...errorCode ? { code: errorCode } : {}
587
+ };
564
588
  this.logger.error(`Failed to connect to new server '${name}': ${errorMsg}`);
565
589
  this.clients.delete(name);
566
590
  throw import_errors.MCPError.connectionFailed(name, errorMsg);
@@ -580,6 +604,19 @@ class MCPManager {
580
604
  getFailedConnections() {
581
605
  return this.connectionErrors;
582
606
  }
607
+ getFailedConnectionError(name) {
608
+ return this.connectionErrors[name]?.message;
609
+ }
610
+ getFailedConnectionErrorCode(name) {
611
+ return this.connectionErrors[name]?.code;
612
+ }
613
+ getAuthProvider(name) {
614
+ const client = this.clients.get(name);
615
+ if (client instanceof import_mcp_client.MCPClient) {
616
+ return client.getCurrentAuthProvider();
617
+ }
618
+ return null;
619
+ }
583
620
  /**
584
621
  * Refresh all client caches by re-fetching capabilities from servers
585
622
  * Useful when you want to force a full refresh of tools, prompts, and resources
@@ -655,6 +692,7 @@ class MCPManager {
655
692
  delete this.connectionErrors[name];
656
693
  try {
657
694
  const newClient = new import_mcp_client.MCPClient(this.logger);
695
+ newClient.setAuthProviderFactory(this.authProviderFactory);
658
696
  await newClient.connect(config, name);
659
697
  if (this.approvalManager) {
660
698
  newClient.setApprovalManager(this.approvalManager);
@@ -665,7 +703,11 @@ class MCPManager {
665
703
  import_events.eventBus.emit("mcp:server-restarted", { serverName: name });
666
704
  } catch (error) {
667
705
  const errorMsg = error instanceof Error ? error.message : String(error);
668
- this.connectionErrors[name] = errorMsg;
706
+ const errorCode = error && typeof error === "object" && "code" in error ? String(error.code) : void 0;
707
+ this.connectionErrors[name] = {
708
+ message: errorMsg,
709
+ ...errorCode ? { code: errorCode } : {}
710
+ };
669
711
  this.logger.error(`Failed to restart server '${name}': ${errorMsg}`);
670
712
  throw import_errors.MCPError.connectionFailed(name, errorMsg);
671
713
  }