@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
@@ -1,7 +1,7 @@
1
1
  import { ValidatedServerConfigs, ValidatedMcpServerConfig } from './schemas.js';
2
2
  import type { IDextoLogger } from '../logger/v2/types.js';
3
3
  import { GetPromptResult, ReadResourceResult } from '@modelcontextprotocol/sdk/types.js';
4
- import { IMCPClient, MCPResolvedResource } from './types.js';
4
+ import { IMCPClient, MCPResolvedResource, McpAuthProviderFactory } from './types.js';
5
5
  import { ToolSet } from '../tools/types.js';
6
6
  import type { PromptDefinition } from '../prompts/types.js';
7
7
  import type { JSONSchema7 } from 'json-schema';
@@ -25,9 +25,11 @@ export declare class MCPManager {
25
25
  private resourceCache;
26
26
  private sanitizedNameToServerMap;
27
27
  private approvalManager;
28
+ private authProviderFactory;
28
29
  private logger;
29
30
  private static readonly SERVER_DELIMITER;
30
31
  constructor(logger: IDextoLogger);
32
+ setAuthProviderFactory(factory: McpAuthProviderFactory | null): void;
31
33
  /**
32
34
  * Set the approval manager for handling elicitation requests from MCP servers
33
35
  *
@@ -204,8 +206,14 @@ export declare class MCPManager {
204
206
  * @returns Map of server names to error messages
205
207
  */
206
208
  getFailedConnections(): {
207
- [key: string]: string;
209
+ [key: string]: {
210
+ message: string;
211
+ code?: string;
212
+ };
208
213
  };
214
+ getFailedConnectionError(name: string): string | undefined;
215
+ getFailedConnectionErrorCode(name: string): string | undefined;
216
+ getAuthProvider(name: string): import("./types.js").McpAuthProvider | null | undefined;
209
217
  /**
210
218
  * Refresh all client caches by re-fetching capabilities from servers
211
219
  * Useful when you want to force a full refresh of tools, prompts, and resources
@@ -1 +1 @@
1
- {"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../src/mcp/manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"manager.d.ts","sourceRoot":"","sources":["../../src/mcp/manager.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,sBAAsB,EAAE,wBAAwB,EAAE,MAAM,cAAc,CAAC;AAChF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAE1D,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAU,MAAM,oCAAoC,CAAC;AACjG,OAAO,EACH,UAAU,EACV,mBAAmB,EAEnB,sBAAsB,EACzB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAG5C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AA6C9D,KAAK,cAAc,GAAG;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,UAAU,CAAC;IACnB,UAAU,EAAE;QACR,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,UAAU,EAAE,WAAW,CAAC;KAC3B,CAAC;CACL,CAAC;AAEF,qBAAa,UAAU;IACnB,OAAO,CAAC,OAAO,CAAsC;IACrD,OAAO,CAAC,gBAAgB,CAA6D;IACrF,OAAO,CAAC,WAAW,CAAoD;IACvE,OAAO,CAAC,SAAS,CAA0C;IAC3D,OAAO,CAAC,aAAa,CAA0B;IAC/C,OAAO,CAAC,WAAW,CAA4C;IAC/D,OAAO,CAAC,aAAa,CAA8C;IACnE,OAAO,CAAC,wBAAwB,CAAkC;IAClE,OAAO,CAAC,eAAe,CAAgC;IACvD,OAAO,CAAC,mBAAmB,CAAuC;IAClE,OAAO,CAAC,MAAM,CAAe;IAI7B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAQ;gBAEpC,MAAM,EAAE,YAAY;IAIhC,sBAAsB,CAAC,OAAO,EAAE,sBAAsB,GAAG,IAAI,GAAG,IAAI;IASpE;;;;;;;OAOG;IACH,kBAAkB,CAAC,eAAe,EAAE,eAAe,GAAG,IAAI;IAU1D,OAAO,CAAC,yBAAyB;IAIjC,OAAO,CAAC,yBAAyB;IAWjC,OAAO,CAAC,qBAAqB;IAQ7B,OAAO,CAAC,qBAAqB;IAc7B;;;;OAIG;IACH,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,GAAG,IAAI;IAwBtD;;;;;;;;;OASG;IACH,OAAO,CAAC,gBAAgB;IA4ExB;;;OAGG;IACH,OAAO,CAAC,kBAAkB;IAI1B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAgCG;YACW,iBAAiB;IA6G/B;;;;OAIG;IACG,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAyCrC;;;;OAIG;IACH,yBAAyB,IAAI,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC;IAIxD;;;OAGG;IACH,OAAO,CAAC,sBAAsB;IAwB9B;;;;;OAKG;IACH,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS;IAKvD;;;;;;OAMG;IACG,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IA+BjF;;;OAGG;IACG,cAAc,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAIzC;;;;OAIG;IACH,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS;IAI3D;;;;;OAKG;IACG,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,eAAe,CAAC;IAQvF;;;;OAIG;IACH,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS;IAKnE;;;OAGG;IACH,oBAAoB,IAAI,KAAK,CAAC;QAC1B,UAAU,EAAE,MAAM,CAAC;QACnB,UAAU,EAAE,MAAM,CAAC;QACnB,UAAU,EAAE,gBAAgB,CAAC;KAChC,CAAC;IAQF;;OAEG;IACG,gBAAgB,IAAI,OAAO,CAAC,mBAAmB,EAAE,CAAC;IAQxD;;OAEG;IACH,WAAW,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO;IAIzC;;OAEG;IACH,WAAW,CAAC,WAAW,EAAE,MAAM,GAAG,mBAAmB,GAAG,SAAS;IAUjE;;;;OAIG;IACG,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAQpE;;;;OAIG;IACG,oBAAoB,CAAC,aAAa,EAAE,sBAAsB,GAAG,OAAO,CAAC,IAAI,CAAC;IAqEhF;;;;;;OAMG;IACG,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,wBAAwB,GAAG,OAAO,CAAC,IAAI,CAAC;IAwClF;;;OAGG;IACH,UAAU,IAAI,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC;IAIrC;;;OAGG;IACH,oBAAoB,IAAI;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG;YAAE,OAAO,EAAE,MAAM,CAAC;YAAC,IAAI,CAAC,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE;IAI7E,wBAAwB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAI1D,4BAA4B,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAI9D,eAAe,CAAC,IAAI,EAAE,MAAM;IAQ5B;;;;OAIG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAc9B;;;OAGG;IACG,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA0B/C;;;;OAIG;IACG,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAuEhD;;OAEG;IACG,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IAyBpC;;OAEG;IACH,OAAO,CAAC,wBAAwB;IA4BhC;;OAEG;YACW,qBAAqB;IAuCnC;;OAEG;YACW,wBAAwB;IAkDtC;;OAEG;YACW,sBAAsB;CA4HvC"}
@@ -16,6 +16,7 @@ class MCPManager {
16
16
  sanitizedNameToServerMap = /* @__PURE__ */ new Map();
17
17
  approvalManager = null;
18
18
  // Will be set by service initializer
19
+ authProviderFactory = null;
19
20
  logger;
20
21
  // Use a distinctive delimiter that won't appear in normal server/tool names
21
22
  // Using double hyphen as it's allowed in LLM tool name patterns (^[a-zA-Z0-9_-]+$)
@@ -23,6 +24,14 @@ class MCPManager {
23
24
  constructor(logger) {
24
25
  this.logger = logger.createChild(DextoLogComponent.MCP);
25
26
  }
27
+ setAuthProviderFactory(factory) {
28
+ this.authProviderFactory = factory;
29
+ for (const [_name, client] of this.clients.entries()) {
30
+ if (client instanceof MCPClient) {
31
+ client.setAuthProviderFactory(factory);
32
+ }
33
+ }
34
+ }
26
35
  /**
27
36
  * Set the approval manager for handling elicitation requests from MCP servers
28
37
  *
@@ -498,8 +507,16 @@ class MCPManager {
498
507
  const connectPromise = this.connectServer(name, config).then(() => {
499
508
  successfulConnections.push(name);
500
509
  }).catch((error) => {
510
+ if (!this.connectionErrors[name]) {
511
+ const errorMessage = error instanceof Error ? error.message : String(error);
512
+ const errorCode = error && typeof error === "object" && "code" in error ? String(error.code) : void 0;
513
+ this.connectionErrors[name] = {
514
+ message: errorMessage,
515
+ ...errorCode ? { code: errorCode } : {}
516
+ };
517
+ }
501
518
  this.logger.debug(
502
- `Handled connection error for '${name}' during initialization: ${error.message}`
519
+ `Handled connection error for '${name}' during initialization: ${error instanceof Error ? error.message : String(error)}`
503
520
  );
504
521
  });
505
522
  connectionPromises.push(connectPromise);
@@ -509,7 +526,9 @@ class MCPManager {
509
526
  (name) => !successfulConnections.includes(name)
510
527
  );
511
528
  if (failedStrictServers.length > 0) {
512
- const strictErrors = failedStrictServers.map((name) => `${name}: ${this.connectionErrors[name] || "Unknown error"}`).join("; ");
529
+ const strictErrors = failedStrictServers.map(
530
+ (name) => `${name}: ${this.connectionErrors[name]?.message ?? "Unknown error"}`
531
+ ).join("; ");
513
532
  throw MCPError.connectionFailed("strict servers", strictErrors);
514
533
  }
515
534
  }
@@ -526,6 +545,7 @@ class MCPManager {
526
545
  return;
527
546
  }
528
547
  const client = new MCPClient(this.logger);
548
+ client.setAuthProviderFactory(this.authProviderFactory);
529
549
  try {
530
550
  this.logger.info(`Attempting to connect to new server '${name}'...`);
531
551
  await client.connect(config, name);
@@ -538,7 +558,11 @@ class MCPManager {
538
558
  this.logger.info(`Successfully connected and cached new server '${name}'`);
539
559
  } catch (error) {
540
560
  const errorMsg = error instanceof Error ? error.message : String(error);
541
- this.connectionErrors[name] = errorMsg;
561
+ const errorCode = error && typeof error === "object" && "code" in error ? String(error.code) : void 0;
562
+ this.connectionErrors[name] = {
563
+ message: errorMsg,
564
+ ...errorCode ? { code: errorCode } : {}
565
+ };
542
566
  this.logger.error(`Failed to connect to new server '${name}': ${errorMsg}`);
543
567
  this.clients.delete(name);
544
568
  throw MCPError.connectionFailed(name, errorMsg);
@@ -558,6 +582,19 @@ class MCPManager {
558
582
  getFailedConnections() {
559
583
  return this.connectionErrors;
560
584
  }
585
+ getFailedConnectionError(name) {
586
+ return this.connectionErrors[name]?.message;
587
+ }
588
+ getFailedConnectionErrorCode(name) {
589
+ return this.connectionErrors[name]?.code;
590
+ }
591
+ getAuthProvider(name) {
592
+ const client = this.clients.get(name);
593
+ if (client instanceof MCPClient) {
594
+ return client.getCurrentAuthProvider();
595
+ }
596
+ return null;
597
+ }
561
598
  /**
562
599
  * Refresh all client caches by re-fetching capabilities from servers
563
600
  * Useful when you want to force a full refresh of tools, prompts, and resources
@@ -633,6 +670,7 @@ class MCPManager {
633
670
  delete this.connectionErrors[name];
634
671
  try {
635
672
  const newClient = new MCPClient(this.logger);
673
+ newClient.setAuthProviderFactory(this.authProviderFactory);
636
674
  await newClient.connect(config, name);
637
675
  if (this.approvalManager) {
638
676
  newClient.setApprovalManager(this.approvalManager);
@@ -643,7 +681,11 @@ class MCPManager {
643
681
  eventBus.emit("mcp:server-restarted", { serverName: name });
644
682
  } catch (error) {
645
683
  const errorMsg = error instanceof Error ? error.message : String(error);
646
- this.connectionErrors[name] = errorMsg;
684
+ const errorCode = error && typeof error === "object" && "code" in error ? String(error.code) : void 0;
685
+ this.connectionErrors[name] = {
686
+ message: errorMsg,
687
+ ...errorCode ? { code: errorCode } : {}
688
+ };
647
689
  this.logger.error(`Failed to restart server '${name}': ${errorMsg}`);
648
690
  throw MCPError.connectionFailed(name, errorMsg);
649
691
  }
@@ -25,6 +25,7 @@ var import_client = require("@modelcontextprotocol/sdk/client/index.js");
25
25
  var import_stdio = require("@modelcontextprotocol/sdk/client/stdio.js");
26
26
  var import_sse = require("@modelcontextprotocol/sdk/client/sse.js");
27
27
  var import_streamableHttp = require("@modelcontextprotocol/sdk/client/streamableHttp.js");
28
+ var import_auth = require("@modelcontextprotocol/sdk/client/auth.js");
28
29
  var import_events = require("events");
29
30
  var import_zod = require("zod");
30
31
  var import_types = require("../logger/v2/types.js");
@@ -50,10 +51,18 @@ class MCPClient extends import_events.EventEmitter {
50
51
  approvalManager = null;
51
52
  // Will be set by MCPManager
52
53
  logger;
54
+ authProviderFactory = null;
55
+ currentAuthProvider = null;
53
56
  constructor(logger) {
54
57
  super();
55
58
  this.logger = logger.createChild(import_types.DextoLogComponent.MCP);
56
59
  }
60
+ setAuthProviderFactory(factory) {
61
+ this.authProviderFactory = factory;
62
+ }
63
+ getCurrentAuthProvider() {
64
+ return this.currentAuthProvider;
65
+ }
57
66
  async connect(config, serverName) {
58
67
  this.timeout = config.timeout ?? 3e4;
59
68
  if (config.type === "stdio") {
@@ -138,13 +147,26 @@ class MCPClient extends import_events.EventEmitter {
138
147
  }
139
148
  async connectViaSSE(url, headers = {}, serverName) {
140
149
  this.logger.debug(`Connecting to SSE MCP server at url: ${url}`);
141
- this.transport = new import_sse.SSEClientTransport(new URL(url), {
150
+ const authConfig = {
151
+ type: "sse",
152
+ enabled: true,
153
+ url,
154
+ headers,
155
+ timeout: 3e4,
156
+ connectionMode: "lenient"
157
+ };
158
+ this.currentAuthProvider = this.authProviderFactory ? this.authProviderFactory(serverName, authConfig) : null;
159
+ const sseOptions = {
142
160
  // For regular HTTP requests
143
161
  requestInit: {
144
162
  headers
145
163
  }
146
- // Need to implement eventSourceInit for SSE events.
147
- });
164
+ };
165
+ if (this.currentAuthProvider) {
166
+ sseOptions.authProvider = this.currentAuthProvider;
167
+ }
168
+ const buildSseTransport = () => new import_sse.SSEClientTransport(new URL(url), sseOptions);
169
+ this.transport = buildSseTransport();
148
170
  this.logger.debug("[connectViaSSE] SSE transport initialized");
149
171
  this.client = new import_client.Client(
150
172
  {
@@ -169,6 +191,30 @@ class MCPClient extends import_events.EventEmitter {
169
191
  this.setupElicitationHandler();
170
192
  return this.client;
171
193
  } catch (error) {
194
+ if (error instanceof import_auth.UnauthorizedError) {
195
+ if (!this.currentAuthProvider) {
196
+ throw import_errors.MCPError.authenticationRequired(
197
+ serverName,
198
+ "No OAuth provider available"
199
+ );
200
+ }
201
+ const authCode = await this.currentAuthProvider.waitForAuthorizationCode?.();
202
+ if (!authCode) {
203
+ throw import_errors.MCPError.authenticationRequired(
204
+ serverName,
205
+ "OAuth flow was not completed"
206
+ );
207
+ }
208
+ this.logger.info("Completing MCP OAuth flow...");
209
+ await this.transport.finishAuth(authCode);
210
+ this.transport = buildSseTransport();
211
+ await this.client.connect(this.transport);
212
+ this.isConnected = true;
213
+ this.logger.info(`\u2705 ${serverName} SSE SERVER SPAWNED`);
214
+ this.setupNotificationHandlers();
215
+ this.setupElicitationHandler();
216
+ return this.client;
217
+ }
172
218
  this.logger.error(
173
219
  `Failed to connect to SSE MCP server ${url}: ${JSON.stringify(error.message, null, 2)}`
174
220
  );
@@ -184,9 +230,23 @@ class MCPClient extends import_events.EventEmitter {
184
230
  Accept: "application/json, text/event-stream"
185
231
  };
186
232
  const mergedHeaders = { ...defaultHeaders, ...headers };
187
- this.transport = new import_streamableHttp.StreamableHTTPClientTransport(new URL(url), {
233
+ const authConfig = {
234
+ type: "http",
235
+ enabled: true,
236
+ url,
237
+ headers,
238
+ timeout: 3e4,
239
+ connectionMode: "lenient"
240
+ };
241
+ this.currentAuthProvider = this.authProviderFactory ? this.authProviderFactory(serverAlias ?? url, authConfig) : null;
242
+ const httpOptions = {
188
243
  requestInit: { headers: mergedHeaders }
189
- });
244
+ };
245
+ if (this.currentAuthProvider) {
246
+ httpOptions.authProvider = this.currentAuthProvider;
247
+ }
248
+ const buildHttpTransport = () => new import_streamableHttp.StreamableHTTPClientTransport(new URL(url), httpOptions);
249
+ this.transport = buildHttpTransport();
190
250
  this.client = new import_client.Client(
191
251
  { name: "Dexto-http-mcp-client", version: "1.0.0" },
192
252
  {
@@ -205,6 +265,30 @@ class MCPClient extends import_events.EventEmitter {
205
265
  this.setupElicitationHandler();
206
266
  return this.client;
207
267
  } catch (error) {
268
+ if (error instanceof import_auth.UnauthorizedError) {
269
+ if (!this.currentAuthProvider) {
270
+ throw import_errors.MCPError.authenticationRequired(
271
+ serverAlias ?? url,
272
+ "No OAuth provider available"
273
+ );
274
+ }
275
+ const authCode = await this.currentAuthProvider.waitForAuthorizationCode?.();
276
+ if (!authCode) {
277
+ throw import_errors.MCPError.authenticationRequired(
278
+ serverAlias ?? url,
279
+ "OAuth flow was not completed"
280
+ );
281
+ }
282
+ this.logger.info("Completing MCP OAuth flow...");
283
+ await this.transport.finishAuth(authCode);
284
+ this.transport = buildHttpTransport();
285
+ await this.client.connect(this.transport);
286
+ this.isConnected = true;
287
+ this.logger.info(`\u2705 HTTP SERVER ${serverAlias ?? url} CONNECTED`);
288
+ this.setupNotificationHandlers();
289
+ this.setupElicitationHandler();
290
+ return this.client;
291
+ }
208
292
  this.logger.error(
209
293
  `Failed to connect to HTTP MCP server ${url}: ${JSON.stringify(error.message, null, 2)}`
210
294
  );
@@ -4,7 +4,7 @@ import type { IDextoLogger } from '../logger/v2/types.js';
4
4
  import type { ApprovalManager } from '../approval/manager.js';
5
5
  import type { ValidatedMcpServerConfig } from './schemas.js';
6
6
  import { ToolSet } from '../tools/types.js';
7
- import { IMCPClient, MCPResourceSummary } from './types.js';
7
+ import { IMCPClient, MCPResourceSummary, McpAuthProviderFactory } from './types.js';
8
8
  import type { GetPromptResult, ReadResourceResult, Prompt } from '@modelcontextprotocol/sdk/types.js';
9
9
  /**
10
10
  * Wrapper on top of Client class provided in model context protocol SDK, to add additional metadata about the server
@@ -23,7 +23,11 @@ export declare class MCPClient extends EventEmitter implements IMCPClient {
23
23
  private timeout;
24
24
  private approvalManager;
25
25
  private logger;
26
+ private authProviderFactory;
27
+ private currentAuthProvider;
26
28
  constructor(logger: IDextoLogger);
29
+ setAuthProviderFactory(factory: McpAuthProviderFactory | null): void;
30
+ getCurrentAuthProvider(): ReturnType<McpAuthProviderFactory> | null;
27
31
  connect(config: ValidatedMcpServerConfig, serverName: string): Promise<Client>;
28
32
  /**
29
33
  * Connect to an MCP server via stdio
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-client.d.ts","sourceRoot":"","sources":["../../src/mcp/mcp-client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AAInE,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAGtC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAE1D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAE9D,OAAO,KAAK,EACR,wBAAwB,EAI3B,MAAM,cAAc,CAAC;AACtB,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAE5D,OAAO,KAAK,EACR,eAAe,EACf,kBAAkB,EAGlB,MAAM,EACT,MAAM,oCAAoC,CAAC;AAW5C;;GAEG;AACH,qBAAa,SAAU,SAAQ,YAAa,YAAW,UAAU;IAC7D,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,SAAS,CAAa;IAC9B,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,aAAa,CAAuB;IAC5C,OAAO,CAAC,YAAY,CAAyB;IAC7C,OAAO,CAAC,YAAY,CAAyB;IAC7C,OAAO,CAAC,SAAS,CAAuC;IACxD,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,SAAS,CAAuB;IACxC,OAAO,CAAC,WAAW,CAAuB;IAC1C,OAAO,CAAC,OAAO,CAAiB;IAChC,OAAO,CAAC,eAAe,CAAgC;IACvD,OAAO,CAAC,MAAM,CAAe;gBAEjB,MAAM,EAAE,YAAY;IAK1B,OAAO,CAAC,MAAM,EAAE,wBAAwB,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAyBpF;;;;;;OAMG;IACG,eAAe,CACjB,OAAO,EAAE,MAAM,EACf,IAAI,GAAE,MAAM,EAAO,EACnB,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC5B,WAAW,CAAC,EAAE,MAAM,GACrB,OAAO,CAAC,MAAM,CAAC;IAsEZ,aAAa,CACf,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,YAAK,EACpC,UAAU,EAAE,MAAM,GACnB,OAAO,CAAC,MAAM,CAAC;IA8ClB;;OAEG;YACW,cAAc;IAuC5B;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAejC;;;;;OAKG;IACG,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;IAuFrD;;;OAGG;IACG,QAAQ,IAAI,OAAO,CAAC,OAAO,CAAC;IAoClC;;;OAGG;IACG,WAAW,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IActC;;;;;;OAMG;IACG,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,eAAe,CAAC;IAuBnE;;;;OAIG;IACG,aAAa,IAAI,OAAO,CAAC,kBAAkB,EAAE,CAAC;IAqBpD;;;;OAIG;IACG,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAoB5D;;OAEG;IACH,mBAAmB,IAAI,OAAO;IAI9B;;OAEG;IACH,SAAS,IAAI,MAAM,GAAG,IAAI;IAI1B;;OAEG;IACH,aAAa,IAAI;QACb,OAAO,EAAE,OAAO,CAAC;QACjB,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;QACnB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;QACvB,YAAY,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;QAC9B,YAAY,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;QAC9B,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC;QACnC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;KACxB;IAYD;;;OAGG;IACG,kBAAkB,IAAI,OAAO,CAAC,MAAM,CAAC;IAO3C,OAAO,CAAC,eAAe;IAMvB;;OAEG;IACH,OAAO,CAAC,yBAAyB;IAsCjC;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAK7B;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAKhC;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAK9B;;OAEG;IACH,kBAAkB,CAAC,eAAe,EAAE,eAAe,GAAG,IAAI;IAQ1D;;OAEG;IACH,OAAO,CAAC,uBAAuB;CAoGlC"}
1
+ {"version":3,"file":"mcp-client.d.ts","sourceRoot":"","sources":["../../src/mcp/mcp-client.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,7 @@ import { Client } from "@modelcontextprotocol/sdk/client/index.js";
3
3
  import { StdioClientTransport } from "@modelcontextprotocol/sdk/client/stdio.js";
4
4
  import { SSEClientTransport } from "@modelcontextprotocol/sdk/client/sse.js";
5
5
  import { StreamableHTTPClientTransport } from "@modelcontextprotocol/sdk/client/streamableHttp.js";
6
+ import { UnauthorizedError } from "@modelcontextprotocol/sdk/client/auth.js";
6
7
  import { EventEmitter } from "events";
7
8
  import { z } from "zod";
8
9
  import { DextoLogComponent } from "../logger/v2/types.js";
@@ -32,10 +33,18 @@ class MCPClient extends EventEmitter {
32
33
  approvalManager = null;
33
34
  // Will be set by MCPManager
34
35
  logger;
36
+ authProviderFactory = null;
37
+ currentAuthProvider = null;
35
38
  constructor(logger) {
36
39
  super();
37
40
  this.logger = logger.createChild(DextoLogComponent.MCP);
38
41
  }
42
+ setAuthProviderFactory(factory) {
43
+ this.authProviderFactory = factory;
44
+ }
45
+ getCurrentAuthProvider() {
46
+ return this.currentAuthProvider;
47
+ }
39
48
  async connect(config, serverName) {
40
49
  this.timeout = config.timeout ?? 3e4;
41
50
  if (config.type === "stdio") {
@@ -120,13 +129,26 @@ class MCPClient extends EventEmitter {
120
129
  }
121
130
  async connectViaSSE(url, headers = {}, serverName) {
122
131
  this.logger.debug(`Connecting to SSE MCP server at url: ${url}`);
123
- this.transport = new SSEClientTransport(new URL(url), {
132
+ const authConfig = {
133
+ type: "sse",
134
+ enabled: true,
135
+ url,
136
+ headers,
137
+ timeout: 3e4,
138
+ connectionMode: "lenient"
139
+ };
140
+ this.currentAuthProvider = this.authProviderFactory ? this.authProviderFactory(serverName, authConfig) : null;
141
+ const sseOptions = {
124
142
  // For regular HTTP requests
125
143
  requestInit: {
126
144
  headers
127
145
  }
128
- // Need to implement eventSourceInit for SSE events.
129
- });
146
+ };
147
+ if (this.currentAuthProvider) {
148
+ sseOptions.authProvider = this.currentAuthProvider;
149
+ }
150
+ const buildSseTransport = () => new SSEClientTransport(new URL(url), sseOptions);
151
+ this.transport = buildSseTransport();
130
152
  this.logger.debug("[connectViaSSE] SSE transport initialized");
131
153
  this.client = new Client(
132
154
  {
@@ -151,6 +173,30 @@ class MCPClient extends EventEmitter {
151
173
  this.setupElicitationHandler();
152
174
  return this.client;
153
175
  } catch (error) {
176
+ if (error instanceof UnauthorizedError) {
177
+ if (!this.currentAuthProvider) {
178
+ throw MCPError.authenticationRequired(
179
+ serverName,
180
+ "No OAuth provider available"
181
+ );
182
+ }
183
+ const authCode = await this.currentAuthProvider.waitForAuthorizationCode?.();
184
+ if (!authCode) {
185
+ throw MCPError.authenticationRequired(
186
+ serverName,
187
+ "OAuth flow was not completed"
188
+ );
189
+ }
190
+ this.logger.info("Completing MCP OAuth flow...");
191
+ await this.transport.finishAuth(authCode);
192
+ this.transport = buildSseTransport();
193
+ await this.client.connect(this.transport);
194
+ this.isConnected = true;
195
+ this.logger.info(`\u2705 ${serverName} SSE SERVER SPAWNED`);
196
+ this.setupNotificationHandlers();
197
+ this.setupElicitationHandler();
198
+ return this.client;
199
+ }
154
200
  this.logger.error(
155
201
  `Failed to connect to SSE MCP server ${url}: ${JSON.stringify(error.message, null, 2)}`
156
202
  );
@@ -166,9 +212,23 @@ class MCPClient extends EventEmitter {
166
212
  Accept: "application/json, text/event-stream"
167
213
  };
168
214
  const mergedHeaders = { ...defaultHeaders, ...headers };
169
- this.transport = new StreamableHTTPClientTransport(new URL(url), {
215
+ const authConfig = {
216
+ type: "http",
217
+ enabled: true,
218
+ url,
219
+ headers,
220
+ timeout: 3e4,
221
+ connectionMode: "lenient"
222
+ };
223
+ this.currentAuthProvider = this.authProviderFactory ? this.authProviderFactory(serverAlias ?? url, authConfig) : null;
224
+ const httpOptions = {
170
225
  requestInit: { headers: mergedHeaders }
171
- });
226
+ };
227
+ if (this.currentAuthProvider) {
228
+ httpOptions.authProvider = this.currentAuthProvider;
229
+ }
230
+ const buildHttpTransport = () => new StreamableHTTPClientTransport(new URL(url), httpOptions);
231
+ this.transport = buildHttpTransport();
172
232
  this.client = new Client(
173
233
  { name: "Dexto-http-mcp-client", version: "1.0.0" },
174
234
  {
@@ -187,6 +247,30 @@ class MCPClient extends EventEmitter {
187
247
  this.setupElicitationHandler();
188
248
  return this.client;
189
249
  } catch (error) {
250
+ if (error instanceof UnauthorizedError) {
251
+ if (!this.currentAuthProvider) {
252
+ throw MCPError.authenticationRequired(
253
+ serverAlias ?? url,
254
+ "No OAuth provider available"
255
+ );
256
+ }
257
+ const authCode = await this.currentAuthProvider.waitForAuthorizationCode?.();
258
+ if (!authCode) {
259
+ throw MCPError.authenticationRequired(
260
+ serverAlias ?? url,
261
+ "OAuth flow was not completed"
262
+ );
263
+ }
264
+ this.logger.info("Completing MCP OAuth flow...");
265
+ await this.transport.finishAuth(authCode);
266
+ this.transport = buildHttpTransport();
267
+ await this.client.connect(this.transport);
268
+ this.isConnected = true;
269
+ this.logger.info(`\u2705 HTTP SERVER ${serverAlias ?? url} CONNECTED`);
270
+ this.setupNotificationHandlers();
271
+ this.setupElicitationHandler();
272
+ return this.client;
273
+ }
190
274
  this.logger.error(
191
275
  `Failed to connect to HTTP MCP server ${url}: ${JSON.stringify(error.message, null, 2)}`
192
276
  );
@@ -35,7 +35,12 @@ var import_result = require("../utils/result.cjs");
35
35
  var import_zod = require("zod");
36
36
  const MCP_SERVER_TYPES = ["stdio", "sse", "http"];
37
37
  const MCP_CONNECTION_MODES = ["strict", "lenient"];
38
- const MCP_CONNECTION_STATUSES = ["connected", "disconnected", "error"];
38
+ const MCP_CONNECTION_STATUSES = [
39
+ "connected",
40
+ "disconnected",
41
+ "error",
42
+ "auth-required"
43
+ ];
39
44
  const DEFAULT_MCP_CONNECTION_MODE = "lenient";
40
45
  const StdioServerConfigSchema = import_zod.z.object({
41
46
  type: import_zod.z.literal("stdio"),
@@ -3,7 +3,7 @@ export declare const MCP_SERVER_TYPES: readonly ["stdio", "sse", "http"];
3
3
  export type McpServerType = (typeof MCP_SERVER_TYPES)[number];
4
4
  export declare const MCP_CONNECTION_MODES: readonly ["strict", "lenient"];
5
5
  export type McpConnectionMode = (typeof MCP_CONNECTION_MODES)[number];
6
- export declare const MCP_CONNECTION_STATUSES: readonly ["connected", "disconnected", "error"];
6
+ export declare const MCP_CONNECTION_STATUSES: readonly ["connected", "disconnected", "error", "auth-required"];
7
7
  export type McpConnectionStatus = (typeof MCP_CONNECTION_STATUSES)[number];
8
8
  /**
9
9
  * MCP server info with computed connection status.
@@ -1 +1 @@
1
- {"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../src/mcp/schemas.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,gBAAgB,mCAAoC,CAAC;AAClE,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE9D,eAAO,MAAM,oBAAoB,gCAAiC,CAAC;AACnE,MAAM,MAAM,iBAAiB,GAAG,CAAC,OAAO,oBAAoB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEtE,eAAO,MAAM,uBAAuB,iDAAkD,CAAC;AACvF,MAAM,MAAM,mBAAmB,GAAG,CAAC,OAAO,uBAAuB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE3E;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,aAAa,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,mBAAmB,CAAC;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,eAAO,MAAM,2BAA2B,EAAE,iBAA6B,CAAC;AAIxE,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;EAgCvB,CAAC;AAEd,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AACxE,MAAM,MAAM,0BAA0B,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAGlF,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;EAYrB,CAAC;AAEd,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AACpE,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAG9E,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;EAYtB,CAAC;AAEd,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AACtE,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAGhF,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+BASM,CAAC;AAEzC,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AACpE,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAE9E,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2DAGM,CAAC;AAEvC,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAChE,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,mBAAmB,CAAC,CAAC"}
1
+ {"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../src/mcp/schemas.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,gBAAgB,mCAAoC,CAAC;AAClE,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE9D,eAAO,MAAM,oBAAoB,gCAAiC,CAAC;AACnE,MAAM,MAAM,iBAAiB,GAAG,CAAC,OAAO,oBAAoB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEtE,eAAO,MAAM,uBAAuB,kEAK1B,CAAC;AACX,MAAM,MAAM,mBAAmB,GAAG,CAAC,OAAO,uBAAuB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE3E;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,aAAa,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,mBAAmB,CAAC;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,eAAO,MAAM,2BAA2B,EAAE,iBAA6B,CAAC;AAIxE,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;EAgCvB,CAAC;AAEd,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AACxE,MAAM,MAAM,0BAA0B,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAGlF,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;EAYrB,CAAC;AAEd,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AACpE,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAG9E,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;;;;EAYtB,CAAC;AAEd,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC;AACtE,MAAM,MAAM,yBAAyB,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,sBAAsB,CAAC,CAAC;AAGhF,eAAO,MAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;+BASM,CAAC;AAEzC,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AACpE,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,qBAAqB,CAAC,CAAC;AAE9E,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2DAGM,CAAC;AAEvC,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAChE,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,mBAAmB,CAAC,CAAC"}
@@ -5,7 +5,12 @@ import { EnvExpandedString, RequiredEnvURL } from "../utils/result.js";
5
5
  import { z } from "zod";
6
6
  const MCP_SERVER_TYPES = ["stdio", "sse", "http"];
7
7
  const MCP_CONNECTION_MODES = ["strict", "lenient"];
8
- const MCP_CONNECTION_STATUSES = ["connected", "disconnected", "error"];
8
+ const MCP_CONNECTION_STATUSES = [
9
+ "connected",
10
+ "disconnected",
11
+ "error",
12
+ "auth-required"
13
+ ];
9
14
  const DEFAULT_MCP_CONNECTION_MODE = "lenient";
10
15
  const StdioServerConfigSchema = z.object({
11
16
  type: z.literal("stdio"),
@@ -1,8 +1,13 @@
1
1
  import { ValidatedMcpServerConfig } from './schemas.js';
2
2
  import { Client } from '@modelcontextprotocol/sdk/client/index.js';
3
+ import type { OAuthClientProvider } from '@modelcontextprotocol/sdk/client/auth.js';
3
4
  import type { ToolProvider } from '../tools/types.js';
4
5
  import { GetPromptResult, ReadResourceResult, Prompt } from '@modelcontextprotocol/sdk/types.js';
5
6
  import { EventEmitter } from 'events';
7
+ export interface McpAuthProvider extends OAuthClientProvider {
8
+ waitForAuthorizationCode?: () => Promise<string>;
9
+ }
10
+ export type McpAuthProviderFactory = (serverName: string, config: ValidatedMcpServerConfig) => McpAuthProvider | null | undefined;
6
11
  export interface MCPResourceSummary {
7
12
  uri: string;
8
13
  name?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/mcp/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,cAAc,CAAC;AACxD,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AACnE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,EAAE,MAAM,oCAAoC,CAAC;AACjG,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAEtC,MAAM,WAAW,kBAAkB;IAC/B,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,mBAAmB;IAChC,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,kBAAkB,CAAC;CAC/B;AAED;;GAEG;AACH,MAAM,WAAW,UAAW,SAAQ,YAAY,EAAE,YAAY;IAE1D,OAAO,CAAC,MAAM,EAAE,wBAAwB,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC/E,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAG5B,WAAW,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IACjC,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;IAGlF,aAAa,IAAI,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAAC;IAC/C,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAGvD,kBAAkB,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;CACzC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/mcp/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,cAAc,CAAC;AACxD,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AACnE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0CAA0C,CAAC;AACpF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,EAAE,MAAM,oCAAoC,CAAC;AACjG,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAEtC,MAAM,WAAW,eAAgB,SAAQ,mBAAmB;IACxD,wBAAwB,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;CACpD;AAED,MAAM,MAAM,sBAAsB,GAAG,CACjC,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,wBAAwB,KAC/B,eAAe,GAAG,IAAI,GAAG,SAAS,CAAC;AAExC,MAAM,WAAW,kBAAkB;IAC/B,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,mBAAmB;IAChC,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,kBAAkB,CAAC;CAC/B;AAED;;GAEG;AACH,MAAM,WAAW,UAAW,SAAQ,YAAY,EAAE,YAAY;IAE1D,OAAO,CAAC,MAAM,EAAE,wBAAwB,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC/E,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAG5B,WAAW,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IACjC,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;IAGlF,aAAa,IAAI,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAAC;IAC/C,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;IAGvD,kBAAkB,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;CACzC"}
@@ -5,7 +5,7 @@ export type { CreateCustomPromptInput } from './providers/custom-prompt-provider
5
5
  export { PromptError } from './errors.js';
6
6
  export { PromptsSchema, InlinePromptSchema, FilePromptSchema } from './schemas.js';
7
7
  export type { ValidatedPromptsConfig, ValidatedInlinePrompt, ValidatedFilePrompt, ValidatedPrompt, PromptsConfig, } from './schemas.js';
8
- export type { PromptInfo, PromptSet, PromptProvider, PromptArgument, PromptDefinition, } from './types.js';
8
+ export type { PromptInfo, PromptSet, PromptProvider, PromptArgument, PromptDefinition, ResolvedPromptResult, } from './types.js';
9
9
  export { flattenPromptResult, normalizePromptArgs, appendContext } from './utils.js';
10
10
  export type { FlattenedPromptResult } from './utils.js';
11
11
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/prompts/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AACvE,OAAO,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAC;AAC7E,YAAY,EAAE,uBAAuB,EAAE,MAAM,uCAAuC,CAAC;AACrF,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AACnF,YAAY,EACR,sBAAsB,EACtB,qBAAqB,EACrB,mBAAmB,EACnB,eAAe,EACf,aAAa,GAChB,MAAM,cAAc,CAAC;AACtB,YAAY,EACR,UAAU,EACV,SAAS,EACT,cAAc,EACd,cAAc,EACd,gBAAgB,GACnB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AACrF,YAAY,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/prompts/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AACvE,OAAO,EAAE,oBAAoB,EAAE,MAAM,uCAAuC,CAAC;AAC7E,YAAY,EAAE,uBAAuB,EAAE,MAAM,uCAAuC,CAAC;AACrF,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AACnF,YAAY,EACR,sBAAsB,EACtB,qBAAqB,EACrB,mBAAmB,EACnB,eAAe,EACf,aAAa,GAChB,MAAM,cAAc,CAAC;AACtB,YAAY,EACR,UAAU,EACV,SAAS,EACT,cAAc,EACd,cAAc,EACd,gBAAgB,EAChB,oBAAoB,GACvB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AACrF,YAAY,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC"}