@1mcp/agent 0.39.0-beta.2 → 0.39.0-beta.4

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 (761) hide show
  1. package/build/admin/assets/{admin-OAuthServicesWorkspace-CKPMmDQI.js → admin-OAuthServicesWorkspace-CKR1HA-8.js} +1 -1
  2. package/build/admin/assets/{admin-console-CwgYre_s.js → admin-console-OfHKqRm-.js} +3 -3
  3. package/build/admin/index.html +1 -1
  4. package/build/application/services/healthService.js +3 -3
  5. package/build/application/services/healthService.js.map +1 -1
  6. package/build/application/services/tokenEstimationService.d.ts.map +1 -1
  7. package/build/application/services/tokenEstimationService.js +15 -13
  8. package/build/application/services/tokenEstimationService.js.map +1 -1
  9. package/build/auth/oauthAuthority.d.ts +149 -0
  10. package/build/auth/oauthAuthority.d.ts.map +1 -0
  11. package/build/auth/oauthAuthority.js +101 -0
  12. package/build/auth/oauthAuthority.js.map +1 -0
  13. package/build/auth/oauthAuthorizationFlow.d.ts +7 -1
  14. package/build/auth/oauthAuthorizationFlow.d.ts.map +1 -1
  15. package/build/auth/oauthAuthorizationFlow.js +60 -74
  16. package/build/auth/oauthAuthorizationFlow.js.map +1 -1
  17. package/build/auth/oauthEndpointFetch.d.ts +20 -0
  18. package/build/auth/oauthEndpointFetch.d.ts.map +1 -0
  19. package/build/auth/oauthEndpointFetch.js +246 -0
  20. package/build/auth/oauthEndpointFetch.js.map +1 -0
  21. package/build/auth/sessionTypes.d.ts +1 -1
  22. package/build/auth/storage/authCodeRepository.js +2 -2
  23. package/build/auth/storage/authCodeRepository.js.map +1 -1
  24. package/build/auth/storage/authRequestRepository.js +2 -2
  25. package/build/auth/storage/authRequestRepository.js.map +1 -1
  26. package/build/auth/storage/clientDataRepository.js +2 -2
  27. package/build/auth/storage/clientDataRepository.js.map +1 -1
  28. package/build/auth/storage/clientSessionRepository.d.ts +19 -0
  29. package/build/auth/storage/clientSessionRepository.d.ts.map +1 -1
  30. package/build/auth/storage/clientSessionRepository.js +179 -1
  31. package/build/auth/storage/clientSessionRepository.js.map +1 -1
  32. package/build/auth/storage/fileStorageService.d.ts +9 -1
  33. package/build/auth/storage/fileStorageService.d.ts.map +1 -1
  34. package/build/auth/storage/fileStorageService.js +82 -51
  35. package/build/auth/storage/fileStorageService.js.map +1 -1
  36. package/build/auth/storage/inboundOAuthStorage.d.ts +14 -0
  37. package/build/auth/storage/inboundOAuthStorage.d.ts.map +1 -0
  38. package/build/auth/storage/inboundOAuthStorage.js +29 -0
  39. package/build/auth/storage/inboundOAuthStorage.js.map +1 -0
  40. package/build/auth/storage/nativeCredentialStore.d.ts +44 -0
  41. package/build/auth/storage/nativeCredentialStore.d.ts.map +1 -0
  42. package/build/auth/storage/nativeCredentialStore.js +177 -0
  43. package/build/auth/storage/nativeCredentialStore.js.map +1 -0
  44. package/build/auth/storage/oauthStorageService.d.ts +8 -1
  45. package/build/auth/storage/oauthStorageService.d.ts.map +1 -1
  46. package/build/auth/storage/oauthStorageService.js +69 -49
  47. package/build/auth/storage/oauthStorageService.js.map +1 -1
  48. package/build/auth/storage/protectedRecordStorage.d.ts +129 -0
  49. package/build/auth/storage/protectedRecordStorage.d.ts.map +1 -0
  50. package/build/auth/storage/protectedRecordStorage.js +1139 -0
  51. package/build/auth/storage/protectedRecordStorage.js.map +1 -0
  52. package/build/auth/storage/sessionRepository.d.ts.map +1 -1
  53. package/build/auth/storage/sessionRepository.js +13 -3
  54. package/build/auth/storage/sessionRepository.js.map +1 -1
  55. package/build/auth/storage/upstreamOAuthStorage.d.ts +15 -0
  56. package/build/auth/storage/upstreamOAuthStorage.d.ts.map +1 -0
  57. package/build/auth/storage/upstreamOAuthStorage.js +25 -0
  58. package/build/auth/storage/upstreamOAuthStorage.js.map +1 -0
  59. package/build/auth/storage/upstreamOAuthStoragePath.d.ts +3 -0
  60. package/build/auth/storage/upstreamOAuthStoragePath.d.ts.map +1 -0
  61. package/build/auth/storage/upstreamOAuthStoragePath.js +8 -0
  62. package/build/auth/storage/upstreamOAuthStoragePath.js.map +1 -0
  63. package/build/cli.d.ts +4 -0
  64. package/build/cli.d.ts.map +1 -0
  65. package/build/cli.js +133 -0
  66. package/build/cli.js.map +1 -0
  67. package/build/commands/auth/exportOAuthCredentials.d.ts +9 -0
  68. package/build/commands/auth/exportOAuthCredentials.d.ts.map +1 -0
  69. package/build/commands/auth/exportOAuthCredentials.js +71 -0
  70. package/build/commands/auth/exportOAuthCredentials.js.map +1 -0
  71. package/build/commands/auth/exportUpstreamCredentials.d.ts +5 -0
  72. package/build/commands/auth/exportUpstreamCredentials.d.ts.map +1 -0
  73. package/build/commands/auth/exportUpstreamCredentials.js +6 -0
  74. package/build/commands/auth/exportUpstreamCredentials.js.map +1 -0
  75. package/build/commands/auth/index.d.ts.map +1 -1
  76. package/build/commands/auth/index.js +23 -1
  77. package/build/commands/auth/index.js.map +1 -1
  78. package/build/commands/cliSetup/setupFiles.js +1 -1
  79. package/build/commands/cliSetup/setupFiles.js.map +1 -1
  80. package/build/commands/inspect/inspectUtils.d.ts.map +1 -1
  81. package/build/commands/inspect/inspectUtils.js +2 -3
  82. package/build/commands/inspect/inspectUtils.js.map +1 -1
  83. package/build/commands/mcp/install.js +7 -7
  84. package/build/commands/mcp/install.js.map +1 -1
  85. package/build/commands/mcp/installSource.js +2 -2
  86. package/build/commands/mcp/installSource.js.map +1 -1
  87. package/build/commands/mcp/tokens.js +6 -6
  88. package/build/commands/mcp/tokens.js.map +1 -1
  89. package/build/commands/mcp/uninstall.js +4 -4
  90. package/build/commands/mcp/uninstall.js.map +1 -1
  91. package/build/commands/mcp/utils/installWizard.js +2 -2
  92. package/build/commands/mcp/utils/installWizard.js.map +1 -1
  93. package/build/commands/mcp/utils/mcpServerConfig.js +5 -5
  94. package/build/commands/mcp/utils/mcpServerConfig.js.map +1 -1
  95. package/build/commands/mcp/utils/serverUtils.js +4 -4
  96. package/build/commands/mcp/utils/serverUtils.js.map +1 -1
  97. package/build/commands/mcp/wizard/search.js +1 -1
  98. package/build/commands/mcp/wizard/search.js.map +1 -1
  99. package/build/commands/preset/create.js +1 -1
  100. package/build/commands/preset/create.js.map +1 -1
  101. package/build/commands/preset/delete.js +1 -1
  102. package/build/commands/preset/delete.js.map +1 -1
  103. package/build/commands/preset/edit.js +1 -1
  104. package/build/commands/preset/edit.js.map +1 -1
  105. package/build/commands/preset/interactive.js +1 -1
  106. package/build/commands/preset/interactive.js.map +1 -1
  107. package/build/commands/preset/list.js +1 -1
  108. package/build/commands/preset/list.js.map +1 -1
  109. package/build/commands/preset/show.js +1 -1
  110. package/build/commands/preset/show.js.map +1 -1
  111. package/build/commands/preset/test.js +1 -1
  112. package/build/commands/preset/test.js.map +1 -1
  113. package/build/commands/preset/url.js +1 -1
  114. package/build/commands/preset/url.js.map +1 -1
  115. package/build/commands/proxy/proxy.js +13 -13
  116. package/build/commands/proxy/proxy.js.map +1 -1
  117. package/build/commands/registry/search.js +2 -2
  118. package/build/commands/registry/search.js.map +1 -1
  119. package/build/commands/registry/show.d.ts.map +1 -1
  120. package/build/commands/registry/show.js +2 -2
  121. package/build/commands/registry/show.js.map +1 -1
  122. package/build/commands/registry/status.js +2 -2
  123. package/build/commands/registry/status.js.map +1 -1
  124. package/build/commands/registry/versions.js +2 -2
  125. package/build/commands/registry/versions.js.map +1 -1
  126. package/build/commands/run/run.js +3 -3
  127. package/build/commands/run/run.js.map +1 -1
  128. package/build/commands/run/runUtils.js +2 -2
  129. package/build/commands/run/runUtils.js.map +1 -1
  130. package/build/commands/serve/cooperativeRuntime.d.ts.map +1 -1
  131. package/build/commands/serve/cooperativeRuntime.js +24 -20
  132. package/build/commands/serve/cooperativeRuntime.js.map +1 -1
  133. package/build/commands/serve/index.d.ts +5 -0
  134. package/build/commands/serve/index.d.ts.map +1 -1
  135. package/build/commands/serve/index.js +5 -0
  136. package/build/commands/serve/index.js.map +1 -1
  137. package/build/commands/serve/serveBackground.d.ts.map +1 -1
  138. package/build/commands/serve/serveBackground.js +5 -5
  139. package/build/commands/serve/serveBackground.js.map +1 -1
  140. package/build/commands/serve/serveLifecycleError.d.ts +16 -0
  141. package/build/commands/serve/serveLifecycleError.d.ts.map +1 -0
  142. package/build/commands/serve/serveLifecycleError.js +31 -0
  143. package/build/commands/serve/serveLifecycleError.js.map +1 -0
  144. package/build/commands/serve/serveOptions.d.ts.map +1 -1
  145. package/build/commands/serve/serveOptions.js +14 -18
  146. package/build/commands/serve/serveOptions.js.map +1 -1
  147. package/build/commands/serve/serveStop.js +5 -5
  148. package/build/commands/serve/serveStop.js.map +1 -1
  149. package/build/commands/shared/authProfileStore.d.ts.map +1 -1
  150. package/build/commands/shared/authProfileStore.js +4 -2
  151. package/build/commands/shared/authProfileStore.js.map +1 -1
  152. package/build/commands/shared/baseConfigUtils.d.ts.map +1 -1
  153. package/build/commands/shared/baseConfigUtils.js +12 -12
  154. package/build/commands/shared/baseConfigUtils.js.map +1 -1
  155. package/build/commands/shared/clientSurfaceAttachment.d.ts.map +1 -1
  156. package/build/commands/shared/clientSurfaceAttachment.js +4 -2
  157. package/build/commands/shared/clientSurfaceAttachment.js.map +1 -1
  158. package/build/commands/shared/configParsingUtils.js +1 -1
  159. package/build/commands/shared/configParsingUtils.js.map +1 -1
  160. package/build/commands/shared/connectionHelper.d.ts.map +1 -1
  161. package/build/commands/shared/connectionHelper.js +17 -18
  162. package/build/commands/shared/connectionHelper.js.map +1 -1
  163. package/build/commands/shared/inspectApiSchemas.d.ts +20 -20
  164. package/build/config/configLoader.d.ts.map +1 -1
  165. package/build/config/configLoader.js +38 -38
  166. package/build/config/configLoader.js.map +1 -1
  167. package/build/config/configManager.d.ts.map +1 -1
  168. package/build/config/configManager.js +65 -26
  169. package/build/config/configManager.js.map +1 -1
  170. package/build/config/configWatcher.d.ts.map +1 -1
  171. package/build/config/configWatcher.js +15 -18
  172. package/build/config/configWatcher.js.map +1 -1
  173. package/build/config/envProcessor.d.ts.map +1 -1
  174. package/build/config/envProcessor.js +9 -9
  175. package/build/config/envProcessor.js.map +1 -1
  176. package/build/config/mcpConfigManager.d.ts.map +1 -1
  177. package/build/config/mcpConfigManager.js +24 -28
  178. package/build/config/mcpConfigManager.js.map +1 -1
  179. package/build/config/projectConfigLoader.d.ts.map +1 -1
  180. package/build/config/projectConfigLoader.js +14 -11
  181. package/build/config/projectConfigLoader.js.map +1 -1
  182. package/build/config/templateProcessor.d.ts.map +1 -1
  183. package/build/config/templateProcessor.js +5 -5
  184. package/build/config/templateProcessor.js.map +1 -1
  185. package/build/constants/mcp.d.ts +1 -1
  186. package/build/constants/mcp.js +1 -1
  187. package/build/core/capabilities/asyncLoadingOrchestrator.d.ts.map +1 -1
  188. package/build/core/capabilities/asyncLoadingOrchestrator.js +67 -38
  189. package/build/core/capabilities/asyncLoadingOrchestrator.js.map +1 -1
  190. package/build/core/capabilities/capabilityAggregator.d.ts +3 -1
  191. package/build/core/capabilities/capabilityAggregator.d.ts.map +1 -1
  192. package/build/core/capabilities/capabilityAggregator.js +9 -2
  193. package/build/core/capabilities/capabilityAggregator.js.map +1 -1
  194. package/build/core/capabilities/capabilityCatalog.d.ts +24 -1
  195. package/build/core/capabilities/capabilityCatalog.d.ts.map +1 -1
  196. package/build/core/capabilities/capabilityCatalog.js +412 -41
  197. package/build/core/capabilities/capabilityCatalog.js.map +1 -1
  198. package/build/core/capabilities/capabilityManager.js +8 -8
  199. package/build/core/capabilities/capabilityManager.js.map +1 -1
  200. package/build/core/capabilities/capabilityPagination.d.ts +34 -1
  201. package/build/core/capabilities/capabilityPagination.d.ts.map +1 -1
  202. package/build/core/capabilities/capabilityPagination.js +238 -31
  203. package/build/core/capabilities/capabilityPagination.js.map +1 -1
  204. package/build/core/capabilities/capabilityVisibility.d.ts +13 -1
  205. package/build/core/capabilities/capabilityVisibility.d.ts.map +1 -1
  206. package/build/core/capabilities/capabilityVisibility.js +24 -1
  207. package/build/core/capabilities/capabilityVisibility.js.map +1 -1
  208. package/build/core/capabilities/catalogGeneration.d.ts.map +1 -1
  209. package/build/core/capabilities/catalogGeneration.js +20 -1
  210. package/build/core/capabilities/catalogGeneration.js.map +1 -1
  211. package/build/core/capabilities/configuredToolSnapshot.d.ts +1 -0
  212. package/build/core/capabilities/configuredToolSnapshot.d.ts.map +1 -1
  213. package/build/core/capabilities/configuredToolSnapshot.js +30 -4
  214. package/build/core/capabilities/configuredToolSnapshot.js.map +1 -1
  215. package/build/core/capabilities/internalCapabilitiesProvider.d.ts.map +1 -1
  216. package/build/core/capabilities/internalCapabilitiesProvider.js +6 -14
  217. package/build/core/capabilities/internalCapabilitiesProvider.js.map +1 -1
  218. package/build/core/capabilities/lazyLoadingOrchestrator.d.ts +2 -0
  219. package/build/core/capabilities/lazyLoadingOrchestrator.d.ts.map +1 -1
  220. package/build/core/capabilities/lazyLoadingOrchestrator.js +37 -31
  221. package/build/core/capabilities/lazyLoadingOrchestrator.js.map +1 -1
  222. package/build/core/capabilities/metaToolProvider.d.ts +3 -1
  223. package/build/core/capabilities/metaToolProvider.d.ts.map +1 -1
  224. package/build/core/capabilities/metaToolProvider.js +45 -13
  225. package/build/core/capabilities/metaToolProvider.js.map +1 -1
  226. package/build/core/capabilities/runtimeCapabilityCatalog.d.ts +18 -3
  227. package/build/core/capabilities/runtimeCapabilityCatalog.d.ts.map +1 -1
  228. package/build/core/capabilities/runtimeCapabilityCatalog.js +181 -17
  229. package/build/core/capabilities/runtimeCapabilityCatalog.js.map +1 -1
  230. package/build/core/capabilities/schemaCache.d.ts.map +1 -1
  231. package/build/core/capabilities/schemaCache.js +53 -15
  232. package/build/core/capabilities/schemaCache.js.map +1 -1
  233. package/build/core/capabilities/schemas/metaToolSchemas.d.ts +4 -3
  234. package/build/core/capabilities/schemas/metaToolSchemas.d.ts.map +1 -1
  235. package/build/core/capabilities/schemas/metaToolSchemas.js +1 -0
  236. package/build/core/capabilities/schemas/metaToolSchemas.js.map +1 -1
  237. package/build/core/capabilities/toolRegistry.d.ts +7 -3
  238. package/build/core/capabilities/toolRegistry.d.ts.map +1 -1
  239. package/build/core/capabilities/toolRegistry.js +34 -19
  240. package/build/core/capabilities/toolRegistry.js.map +1 -1
  241. package/build/core/client/postAuthOAuthRecovery.d.ts.map +1 -1
  242. package/build/core/client/postAuthOAuthRecovery.js +5 -3
  243. package/build/core/client/postAuthOAuthRecovery.js.map +1 -1
  244. package/build/core/configChangeHandler.d.ts.map +1 -1
  245. package/build/core/configChangeHandler.js +44 -65
  246. package/build/core/configChangeHandler.js.map +1 -1
  247. package/build/core/context/globalContextManager.d.ts.map +1 -1
  248. package/build/core/context/globalContextManager.js +6 -6
  249. package/build/core/context/globalContextManager.js.map +1 -1
  250. package/build/core/filtering/clientFiltering.d.ts.map +1 -1
  251. package/build/core/filtering/clientFiltering.js +16 -67
  252. package/build/core/filtering/clientFiltering.js.map +1 -1
  253. package/build/core/filtering/clientTemplateTracker.d.ts.map +1 -1
  254. package/build/core/filtering/clientTemplateTracker.js +13 -41
  255. package/build/core/filtering/clientTemplateTracker.js.map +1 -1
  256. package/build/core/filtering/filterCache.d.ts.map +1 -1
  257. package/build/core/filtering/filterCache.js +13 -32
  258. package/build/core/filtering/filterCache.js.map +1 -1
  259. package/build/core/filtering/filteringService.d.ts.map +1 -1
  260. package/build/core/filtering/filteringService.js +22 -80
  261. package/build/core/filtering/filteringService.js.map +1 -1
  262. package/build/core/filtering/templateFilteringService.d.ts.map +1 -1
  263. package/build/core/filtering/templateFilteringService.js +25 -89
  264. package/build/core/filtering/templateFilteringService.js.map +1 -1
  265. package/build/core/filtering/templateIndex.d.ts.map +1 -1
  266. package/build/core/filtering/templateIndex.js +11 -23
  267. package/build/core/filtering/templateIndex.js.map +1 -1
  268. package/build/core/flags/flagManager.d.ts.map +1 -1
  269. package/build/core/flags/flagManager.js +2 -5
  270. package/build/core/flags/flagManager.js.map +1 -1
  271. package/build/core/instructions/instructionAggregator.d.ts.map +1 -1
  272. package/build/core/instructions/instructionAggregator.js +18 -36
  273. package/build/core/instructions/instructionAggregator.js.map +1 -1
  274. package/build/core/instructions/templateTypes.d.ts +1 -1
  275. package/build/core/instructions/templateTypes.d.ts.map +1 -1
  276. package/build/core/instructions/templateTypes.js +3 -3
  277. package/build/core/loading/loadingStateTracker.d.ts.map +1 -1
  278. package/build/core/loading/loadingStateTracker.js +17 -9
  279. package/build/core/loading/loadingStateTracker.js.map +1 -1
  280. package/build/core/loading/mcpLoadingManager.d.ts.map +1 -1
  281. package/build/core/loading/mcpLoadingManager.js +33 -30
  282. package/build/core/loading/mcpLoadingManager.js.map +1 -1
  283. package/build/core/loading/parallelExecutor.d.ts.map +1 -1
  284. package/build/core/loading/parallelExecutor.js +1 -4
  285. package/build/core/loading/parallelExecutor.js.map +1 -1
  286. package/build/core/notifications/notificationManager.js +11 -11
  287. package/build/core/notifications/notificationManager.js.map +1 -1
  288. package/build/core/protocol/requestHandlerUtils.d.ts +2 -2
  289. package/build/core/protocol/requestHandlerUtils.d.ts.map +1 -1
  290. package/build/core/protocol/requestHandlerUtils.js +7 -4
  291. package/build/core/protocol/requestHandlerUtils.js.map +1 -1
  292. package/build/core/server/adapters/TemplateServerAdapter.js +3 -3
  293. package/build/core/server/adapters/TemplateServerAdapter.js.map +1 -1
  294. package/build/core/server/agentConfig.d.ts +1 -0
  295. package/build/core/server/agentConfig.d.ts.map +1 -1
  296. package/build/core/server/agentConfig.js +1 -0
  297. package/build/core/server/agentConfig.js.map +1 -1
  298. package/build/core/server/connectionResolver.d.ts.map +1 -1
  299. package/build/core/server/connectionResolver.js +7 -13
  300. package/build/core/server/connectionResolver.js.map +1 -1
  301. package/build/core/server/disabledTools.d.ts +1 -1
  302. package/build/core/server/disabledTools.d.ts.map +1 -1
  303. package/build/core/server/disabledTools.js +18 -25
  304. package/build/core/server/disabledTools.js.map +1 -1
  305. package/build/core/server/pidFileManager.js +6 -6
  306. package/build/core/server/pidFileManager.js.map +1 -1
  307. package/build/core/server/processIdentity.d.ts.map +1 -1
  308. package/build/core/server/processIdentity.js +67 -18
  309. package/build/core/server/processIdentity.js.map +1 -1
  310. package/build/core/server/runtimeLaunchIpc.d.ts +15 -2
  311. package/build/core/server/runtimeLaunchIpc.d.ts.map +1 -1
  312. package/build/core/server/runtimeLifecycle.js +2 -2
  313. package/build/core/server/runtimeLifecycle.js.map +1 -1
  314. package/build/core/server/runtimeReplacementConfig.d.ts +15 -2
  315. package/build/core/server/runtimeReplacementConfig.d.ts.map +1 -1
  316. package/build/core/server/runtimeScopeOwnership.js +1 -1
  317. package/build/core/server/runtimeScopeOwnership.js.map +1 -1
  318. package/build/core/server/templateConfigurationManager.js +16 -15
  319. package/build/core/server/templateConfigurationManager.js.map +1 -1
  320. package/build/core/server/toolDescriptionOverrides.d.ts +1 -0
  321. package/build/core/server/toolDescriptionOverrides.d.ts.map +1 -1
  322. package/build/core/server/toolDescriptionOverrides.js +30 -5
  323. package/build/core/server/toolDescriptionOverrides.js.map +1 -1
  324. package/build/core/tools/handlers/registryHandler.d.ts.map +1 -1
  325. package/build/core/tools/handlers/registryHandler.js +2 -6
  326. package/build/core/tools/handlers/registryHandler.js.map +1 -1
  327. package/build/core/tools/handlers/searchHandler.js +2 -2
  328. package/build/core/tools/handlers/searchHandler.js.map +1 -1
  329. package/build/core/tools/handlers/serverManagementHandler.d.ts +21 -0
  330. package/build/core/tools/handlers/serverManagementHandler.d.ts.map +1 -1
  331. package/build/core/tools/handlers/serverManagementHandler.js +11 -20
  332. package/build/core/tools/handlers/serverManagementHandler.js.map +1 -1
  333. package/build/core/tools/handlers/showHandler.js +2 -2
  334. package/build/core/tools/handlers/showHandler.js.map +1 -1
  335. package/build/core/tools/handlers/versionsHandler.js +2 -2
  336. package/build/core/tools/handlers/versionsHandler.js.map +1 -1
  337. package/build/core/tools/internal/adapters/discoveryAdapter.d.ts.map +1 -1
  338. package/build/core/tools/internal/adapters/discoveryAdapter.js +12 -29
  339. package/build/core/tools/internal/adapters/discoveryAdapter.js.map +1 -1
  340. package/build/core/tools/internal/adapters/helpers/configTransformers.d.ts +3 -0
  341. package/build/core/tools/internal/adapters/helpers/configTransformers.d.ts.map +1 -1
  342. package/build/core/tools/internal/adapters/installation/directInstallation.d.ts.map +1 -1
  343. package/build/core/tools/internal/adapters/installation/directInstallation.js +4 -6
  344. package/build/core/tools/internal/adapters/installation/directInstallation.js.map +1 -1
  345. package/build/core/tools/internal/adapters/installation/packageResolver.d.ts.map +1 -1
  346. package/build/core/tools/internal/adapters/installation/packageResolver.js +8 -14
  347. package/build/core/tools/internal/adapters/installation/packageResolver.js.map +1 -1
  348. package/build/core/tools/internal/adapters/installationAdapter.d.ts.map +1 -1
  349. package/build/core/tools/internal/adapters/installationAdapter.js +38 -35
  350. package/build/core/tools/internal/adapters/installationAdapter.js.map +1 -1
  351. package/build/core/tools/internal/adapters/management/managementAdapter.d.ts +1 -1
  352. package/build/core/tools/internal/adapters/management/managementAdapter.d.ts.map +1 -1
  353. package/build/core/tools/internal/adapters/management/managementAdapter.js +22 -28
  354. package/build/core/tools/internal/adapters/management/managementAdapter.js.map +1 -1
  355. package/build/core/tools/internal/adapters/management/toolHandlers.js +10 -10
  356. package/build/core/tools/internal/adapters/management/toolHandlers.js.map +1 -1
  357. package/build/core/tools/internal/adapters/management/validation.d.ts.map +1 -1
  358. package/build/core/tools/internal/adapters/management/validation.js +6 -3
  359. package/build/core/tools/internal/adapters/management/validation.js.map +1 -1
  360. package/build/core/tools/internal/discoveryHandlers.d.ts.map +1 -1
  361. package/build/core/tools/internal/discoveryHandlers.js +10 -25
  362. package/build/core/tools/internal/discoveryHandlers.js.map +1 -1
  363. package/build/core/tools/internal/index.js +3 -3
  364. package/build/core/tools/internal/index.js.map +1 -1
  365. package/build/core/tools/internal/installationHandlers.d.ts.map +1 -1
  366. package/build/core/tools/internal/installationHandlers.js +9 -27
  367. package/build/core/tools/internal/installationHandlers.js.map +1 -1
  368. package/build/core/tools/internal/managementHandlers.d.ts.map +1 -1
  369. package/build/core/tools/internal/managementHandlers.js +10 -25
  370. package/build/core/tools/internal/managementHandlers.js.map +1 -1
  371. package/build/core/tools/internal/schemas/discovery.d.ts +1 -1
  372. package/build/core/tools/internal/schemas/index.d.ts +7 -7
  373. package/build/core/tools/internal/schemas/installation.d.ts +1 -1
  374. package/build/core/tools/internal/schemas/management.d.ts +5 -5
  375. package/build/core/types/transport.d.ts +26 -3
  376. package/build/core/types/transport.d.ts.map +1 -1
  377. package/build/core/types/transport.js +12 -0
  378. package/build/core/types/transport.js.map +1 -1
  379. package/build/domains/admin/configuredToolInventory.d.ts.map +1 -1
  380. package/build/domains/admin/configuredToolInventory.js +47 -9
  381. package/build/domains/admin/configuredToolInventory.js.map +1 -1
  382. package/build/domains/admin/runtimeConfiguredToolInspectionService.d.ts.map +1 -1
  383. package/build/domains/admin/runtimeConfiguredToolInspectionService.js +13 -3
  384. package/build/domains/admin/runtimeConfiguredToolInspectionService.js.map +1 -1
  385. package/build/domains/admin/runtimeScopeAdminLock.js +2 -3
  386. package/build/domains/admin/runtimeScopeAdminLock.js.map +1 -1
  387. package/build/domains/backend-logs/backendLogBroker.d.ts +2 -0
  388. package/build/domains/backend-logs/backendLogBroker.d.ts.map +1 -1
  389. package/build/domains/backend-logs/backendLogBroker.js +7 -0
  390. package/build/domains/backend-logs/backendLogBroker.js.map +1 -1
  391. package/build/domains/backend-logs/backendLogProjection.d.ts.map +1 -1
  392. package/build/domains/backend-logs/backendLogProjection.js +2 -13
  393. package/build/domains/backend-logs/backendLogProjection.js.map +1 -1
  394. package/build/domains/config-change/configChange.js +3 -3
  395. package/build/domains/config-change/configChange.js.map +1 -1
  396. package/build/domains/preset/manager/presetManager.d.ts.map +1 -1
  397. package/build/domains/preset/manager/presetManager.js +29 -66
  398. package/build/domains/preset/manager/presetManager.js.map +1 -1
  399. package/build/domains/preset/manager/presetManagerCleanup.js +8 -8
  400. package/build/domains/preset/manager/presetManagerCleanup.js.map +1 -1
  401. package/build/domains/preset/manager/presetTesting.js +1 -7
  402. package/build/domains/preset/manager/presetTesting.js.map +1 -1
  403. package/build/domains/preset/services/presetNotificationService.d.ts.map +1 -1
  404. package/build/domains/preset/services/presetNotificationService.js +15 -32
  405. package/build/domains/preset/services/presetNotificationService.js.map +1 -1
  406. package/build/domains/registry/cacheManager.d.ts.map +1 -1
  407. package/build/domains/registry/cacheManager.js +5 -6
  408. package/build/domains/registry/cacheManager.js.map +1 -1
  409. package/build/domains/registry/mcpRegistryClient.js +11 -11
  410. package/build/domains/registry/mcpRegistryClient.js.map +1 -1
  411. package/build/domains/server-management/progressTrackingService.d.ts.map +1 -1
  412. package/build/domains/server-management/progressTrackingService.js +7 -10
  413. package/build/domains/server-management/progressTrackingService.js.map +1 -1
  414. package/build/domains/server-management/serverInstallationService.d.ts.map +1 -1
  415. package/build/domains/server-management/serverInstallationService.js +14 -12
  416. package/build/domains/server-management/serverInstallationService.js.map +1 -1
  417. package/build/gateway/adapters/legacy/legacyInboundEraAdapter.d.ts.map +1 -1
  418. package/build/gateway/adapters/legacy/legacyInboundEraAdapter.js +2 -1
  419. package/build/gateway/adapters/legacy/legacyInboundEraAdapter.js.map +1 -1
  420. package/build/gateway/adapters/legacy/legacyOutboundEraAdapter.d.ts +4 -1
  421. package/build/gateway/adapters/legacy/legacyOutboundEraAdapter.d.ts.map +1 -1
  422. package/build/gateway/adapters/legacy/legacyOutboundEraAdapter.js +4 -1
  423. package/build/gateway/adapters/legacy/legacyOutboundEraAdapter.js.map +1 -1
  424. package/build/gateway/adapters/modern/modernInboundEraAdapter.d.ts.map +1 -1
  425. package/build/gateway/adapters/modern/modernInboundEraAdapter.js +5 -4
  426. package/build/gateway/adapters/modern/modernInboundEraAdapter.js.map +1 -1
  427. package/build/gateway/adapters/modern/modernOutboundEraAdapter.d.ts.map +1 -1
  428. package/build/gateway/adapters/modern/modernOutboundEraAdapter.js +18 -5
  429. package/build/gateway/adapters/modern/modernOutboundEraAdapter.js.map +1 -1
  430. package/build/gateway/contracts/gatewayFailure.d.ts +39 -1
  431. package/build/gateway/contracts/gatewayFailure.d.ts.map +1 -1
  432. package/build/gateway/contracts/gatewayFailure.js +139 -0
  433. package/build/gateway/contracts/gatewayFailure.js.map +1 -1
  434. package/build/gateway/contracts/gatewayRequest.d.ts +6 -6
  435. package/build/gateway/contracts/immutableJson.d.ts +2 -1
  436. package/build/gateway/contracts/immutableJson.d.ts.map +1 -1
  437. package/build/gateway/contracts/immutableJson.js +2 -2
  438. package/build/gateway/contracts/immutableJson.js.map +1 -1
  439. package/build/gateway/core/gatewayDispatcher.js +1 -1
  440. package/build/gateway/core/gatewayDispatcher.js.map +1 -1
  441. package/build/gateway/interactions/interactionBroker.d.ts.map +1 -1
  442. package/build/gateway/interactions/interactionBroker.js +5 -3
  443. package/build/gateway/interactions/interactionBroker.js.map +1 -1
  444. package/build/gateway/interactions/nativeInputResponses.d.ts +16 -0
  445. package/build/gateway/interactions/nativeInputResponses.d.ts.map +1 -0
  446. package/build/gateway/interactions/nativeInputResponses.js +76 -0
  447. package/build/gateway/interactions/nativeInputResponses.js.map +1 -0
  448. package/build/gateway/interactions/validateInteractionResponse.d.ts.map +1 -1
  449. package/build/gateway/interactions/validateInteractionResponse.js +20 -1
  450. package/build/gateway/interactions/validateInteractionResponse.js.map +1 -1
  451. package/build/gateway/ports/outboundEraAdapter.d.ts +5 -0
  452. package/build/gateway/ports/outboundEraAdapter.d.ts.map +1 -1
  453. package/build/index.d.ts +1 -3
  454. package/build/index.d.ts.map +1 -1
  455. package/build/index.js +7 -131
  456. package/build/index.js.map +1 -1
  457. package/build/logger/backgroundSupervisorLogger.d.ts +4 -0
  458. package/build/logger/backgroundSupervisorLogger.d.ts.map +1 -0
  459. package/build/logger/backgroundSupervisorLogger.js +21 -0
  460. package/build/logger/backgroundSupervisorLogger.js.map +1 -0
  461. package/build/logger/diagnosticRedaction.d.ts +3 -0
  462. package/build/logger/diagnosticRedaction.d.ts.map +1 -0
  463. package/build/logger/diagnosticRedaction.js +12 -0
  464. package/build/logger/diagnosticRedaction.js.map +1 -0
  465. package/build/logger/httpDiagnostics.d.ts +25 -0
  466. package/build/logger/httpDiagnostics.d.ts.map +1 -0
  467. package/build/logger/httpDiagnostics.js +125 -0
  468. package/build/logger/httpDiagnostics.js.map +1 -0
  469. package/build/logger/localDiagnosticRecord.d.ts +11 -0
  470. package/build/logger/localDiagnosticRecord.d.ts.map +1 -0
  471. package/build/logger/localDiagnosticRecord.js +9 -0
  472. package/build/logger/localDiagnosticRecord.js.map +1 -0
  473. package/build/logger/localDiagnostics.d.ts +5 -0
  474. package/build/logger/localDiagnostics.d.ts.map +1 -0
  475. package/build/logger/localDiagnostics.js +116 -0
  476. package/build/logger/localDiagnostics.js.map +1 -0
  477. package/build/logger/logger.d.ts +39 -37
  478. package/build/logger/logger.d.ts.map +1 -1
  479. package/build/logger/logger.js +120 -154
  480. package/build/logger/logger.js.map +1 -1
  481. package/build/logger/secureLogger.d.ts +3 -9
  482. package/build/logger/secureLogger.d.ts.map +1 -1
  483. package/build/logger/secureLogger.js +4 -30
  484. package/build/logger/secureLogger.js.map +1 -1
  485. package/build/observability/events/normalize.d.ts +14 -0
  486. package/build/observability/events/normalize.d.ts.map +1 -0
  487. package/build/observability/events/normalize.js +39 -0
  488. package/build/observability/events/normalize.js.map +1 -0
  489. package/build/observability/events/registry.d.ts +5697 -0
  490. package/build/observability/events/registry.d.ts.map +1 -0
  491. package/build/observability/events/registry.js +5674 -0
  492. package/build/observability/events/registry.js.map +1 -0
  493. package/build/observability/privacy/fields.d.ts +25 -0
  494. package/build/observability/privacy/fields.d.ts.map +1 -0
  495. package/build/observability/privacy/fields.js +195 -0
  496. package/build/observability/privacy/fields.js.map +1 -0
  497. package/build/observability/tracing/bootstrap.d.ts +3 -0
  498. package/build/observability/tracing/bootstrap.d.ts.map +1 -0
  499. package/build/observability/tracing/bootstrap.js +6 -0
  500. package/build/observability/tracing/bootstrap.js.map +1 -0
  501. package/build/observability/tracing/context.d.ts +4 -0
  502. package/build/observability/tracing/context.d.ts.map +1 -0
  503. package/build/observability/tracing/context.js +3 -0
  504. package/build/observability/tracing/context.js.map +1 -0
  505. package/build/observability/tracing/otelAdapter.d.ts +17 -0
  506. package/build/observability/tracing/otelAdapter.d.ts.map +1 -0
  507. package/build/observability/tracing/otelAdapter.js +160 -0
  508. package/build/observability/tracing/otelAdapter.js.map +1 -0
  509. package/build/sdk/contracts/catalogCoverageInvalidation.d.ts +4 -0
  510. package/build/sdk/contracts/catalogCoverageInvalidation.d.ts.map +1 -0
  511. package/build/sdk/contracts/catalogCoverageInvalidation.js +13 -0
  512. package/build/sdk/contracts/catalogCoverageInvalidation.js.map +1 -0
  513. package/build/sdk/contracts/jsonValue.d.ts +30 -7
  514. package/build/sdk/contracts/jsonValue.d.ts.map +1 -1
  515. package/build/sdk/contracts/jsonValue.js +37 -9
  516. package/build/sdk/contracts/jsonValue.js.map +1 -1
  517. package/build/sdk/contracts/mcpParamHeaders.d.ts +17 -0
  518. package/build/sdk/contracts/mcpParamHeaders.d.ts.map +1 -0
  519. package/build/sdk/contracts/mcpParamHeaders.js +134 -0
  520. package/build/sdk/contracts/mcpParamHeaders.js.map +1 -0
  521. package/build/sdk/contracts/requestProgress.d.ts +29 -0
  522. package/build/sdk/contracts/requestProgress.d.ts.map +1 -0
  523. package/build/sdk/contracts/requestProgress.js +126 -0
  524. package/build/sdk/contracts/requestProgress.js.map +1 -0
  525. package/build/sdk/legacy/auth/sdkOAuthClientProvider.d.ts +77 -84
  526. package/build/sdk/legacy/auth/sdkOAuthClientProvider.d.ts.map +1 -1
  527. package/build/sdk/legacy/auth/sdkOAuthClientProvider.js +632 -209
  528. package/build/sdk/legacy/auth/sdkOAuthClientProvider.js.map +1 -1
  529. package/build/sdk/legacy/auth/sdkOAuthServerProvider.d.ts.map +1 -1
  530. package/build/sdk/legacy/auth/sdkOAuthServerProvider.js +42 -37
  531. package/build/sdk/legacy/auth/sdkOAuthServerProvider.js.map +1 -1
  532. package/build/sdk/legacy/client/runtime/clientManager.d.ts +5 -1
  533. package/build/sdk/legacy/client/runtime/clientManager.d.ts.map +1 -1
  534. package/build/sdk/legacy/client/runtime/clientManager.js +247 -93
  535. package/build/sdk/legacy/client/runtime/clientManager.js.map +1 -1
  536. package/build/sdk/legacy/client/runtime/connectionHandler.d.ts.map +1 -1
  537. package/build/sdk/legacy/client/runtime/connectionHandler.js +77 -15
  538. package/build/sdk/legacy/client/runtime/connectionHandler.js.map +1 -1
  539. package/build/sdk/legacy/client/runtime/legacyInteractionLease.d.ts +2 -1
  540. package/build/sdk/legacy/client/runtime/legacyInteractionLease.d.ts.map +1 -1
  541. package/build/sdk/legacy/client/runtime/legacyInteractionLease.js +11 -2
  542. package/build/sdk/legacy/client/runtime/legacyInteractionLease.js.map +1 -1
  543. package/build/sdk/legacy/client/runtime/legacySdkClientAdapter.d.ts.map +1 -1
  544. package/build/sdk/legacy/client/runtime/legacySdkClientAdapter.js +40 -12
  545. package/build/sdk/legacy/client/runtime/legacySdkClientAdapter.js.map +1 -1
  546. package/build/sdk/legacy/client/runtime/mcpParamHeaders.d.ts +2 -0
  547. package/build/sdk/legacy/client/runtime/mcpParamHeaders.d.ts.map +1 -0
  548. package/build/sdk/legacy/client/runtime/mcpParamHeaders.js +2 -0
  549. package/build/sdk/legacy/client/runtime/mcpParamHeaders.js.map +1 -0
  550. package/build/sdk/legacy/client/runtime/modernSdkClientAdapter.d.ts +6 -0
  551. package/build/sdk/legacy/client/runtime/modernSdkClientAdapter.d.ts.map +1 -1
  552. package/build/sdk/legacy/client/runtime/modernSdkClientAdapter.js +119 -6
  553. package/build/sdk/legacy/client/runtime/modernSdkClientAdapter.js.map +1 -1
  554. package/build/sdk/legacy/client/runtime/oauthFlowHandler.d.ts +1 -1
  555. package/build/sdk/legacy/client/runtime/oauthFlowHandler.d.ts.map +1 -1
  556. package/build/sdk/legacy/client/runtime/oauthFlowHandler.js +73 -21
  557. package/build/sdk/legacy/client/runtime/oauthFlowHandler.js.map +1 -1
  558. package/build/sdk/legacy/client/runtime/serveClient.js +1 -1
  559. package/build/sdk/legacy/client/runtime/serveClient.js.map +1 -1
  560. package/build/sdk/legacy/commands/serve.d.ts +1 -0
  561. package/build/sdk/legacy/commands/serve.d.ts.map +1 -1
  562. package/build/sdk/legacy/commands/serve.js +99 -88
  563. package/build/sdk/legacy/commands/serve.js.map +1 -1
  564. package/build/sdk/legacy/server/protocol/notificationHandlers.d.ts.map +1 -1
  565. package/build/sdk/legacy/server/protocol/notificationHandlers.js +9 -14
  566. package/build/sdk/legacy/server/protocol/notificationHandlers.js.map +1 -1
  567. package/build/sdk/legacy/server/protocol/privateInteractionConnection.d.ts +1 -1
  568. package/build/sdk/legacy/server/protocol/privateInteractionConnection.d.ts.map +1 -1
  569. package/build/sdk/legacy/server/protocol/privateInteractionConnection.js +31 -11
  570. package/build/sdk/legacy/server/protocol/privateInteractionConnection.js.map +1 -1
  571. package/build/sdk/legacy/server/protocol/promptRequestHandlers.d.ts.map +1 -1
  572. package/build/sdk/legacy/server/protocol/promptRequestHandlers.js +10 -5
  573. package/build/sdk/legacy/server/protocol/promptRequestHandlers.js.map +1 -1
  574. package/build/sdk/legacy/server/protocol/requestHandlers.js +4 -4
  575. package/build/sdk/legacy/server/protocol/requestHandlers.js.map +1 -1
  576. package/build/sdk/legacy/server/protocol/requestInteractionScope.d.ts.map +1 -1
  577. package/build/sdk/legacy/server/protocol/requestInteractionScope.js +68 -12
  578. package/build/sdk/legacy/server/protocol/requestInteractionScope.js.map +1 -1
  579. package/build/sdk/legacy/server/protocol/requestProviderProgress.d.ts +8 -0
  580. package/build/sdk/legacy/server/protocol/requestProviderProgress.d.ts.map +1 -0
  581. package/build/sdk/legacy/server/protocol/requestProviderProgress.js +29 -0
  582. package/build/sdk/legacy/server/protocol/requestProviderProgress.js.map +1 -0
  583. package/build/sdk/legacy/server/protocol/resourceRequestHandlers.d.ts.map +1 -1
  584. package/build/sdk/legacy/server/protocol/resourceRequestHandlers.js +23 -2
  585. package/build/sdk/legacy/server/protocol/resourceRequestHandlers.js.map +1 -1
  586. package/build/sdk/legacy/server/protocol/resourceSubscriptions.js +1 -1
  587. package/build/sdk/legacy/server/protocol/resourceSubscriptions.js.map +1 -1
  588. package/build/sdk/legacy/server/protocol/toolRequestHandlers.d.ts.map +1 -1
  589. package/build/sdk/legacy/server/protocol/toolRequestHandlers.js +157 -62
  590. package/build/sdk/legacy/server/protocol/toolRequestHandlers.js.map +1 -1
  591. package/build/sdk/legacy/server/retained-sdk/LICENSE +21 -0
  592. package/build/sdk/legacy/server/retained-sdk/provenance.json +17 -0
  593. package/build/sdk/legacy/server/retained-sdk/streamableHttp.js +160 -0
  594. package/build/sdk/legacy/server/retained-sdk/webStandardStreamableHttp.js +950 -0
  595. package/build/sdk/legacy/server/runtime/clientInstancePool.d.ts.map +1 -1
  596. package/build/sdk/legacy/server/runtime/clientInstancePool.js +45 -76
  597. package/build/sdk/legacy/server/runtime/clientInstancePool.js.map +1 -1
  598. package/build/sdk/legacy/server/runtime/connectionManager.d.ts.map +1 -1
  599. package/build/sdk/legacy/server/runtime/connectionManager.js +25 -18
  600. package/build/sdk/legacy/server/runtime/connectionManager.js.map +1 -1
  601. package/build/sdk/legacy/server/runtime/legacySdkServerAdapter.d.ts +2 -0
  602. package/build/sdk/legacy/server/runtime/legacySdkServerAdapter.d.ts.map +1 -1
  603. package/build/sdk/legacy/server/runtime/legacySdkServerAdapter.js +17 -1
  604. package/build/sdk/legacy/server/runtime/legacySdkServerAdapter.js.map +1 -1
  605. package/build/sdk/legacy/server/runtime/mcpLoggingEnhancer.d.ts.map +1 -1
  606. package/build/sdk/legacy/server/runtime/mcpLoggingEnhancer.js +17 -32
  607. package/build/sdk/legacy/server/runtime/mcpLoggingEnhancer.js.map +1 -1
  608. package/build/sdk/legacy/server/runtime/mcpServerLifecycleManager.d.ts.map +1 -1
  609. package/build/sdk/legacy/server/runtime/mcpServerLifecycleManager.js +33 -42
  610. package/build/sdk/legacy/server/runtime/mcpServerLifecycleManager.js.map +1 -1
  611. package/build/sdk/legacy/server/runtime/serverManager.d.ts.map +1 -1
  612. package/build/sdk/legacy/server/runtime/serverManager.js +26 -32
  613. package/build/sdk/legacy/server/runtime/serverManager.js.map +1 -1
  614. package/build/sdk/legacy/server/runtime/templateServerCleanup.d.ts.map +1 -1
  615. package/build/sdk/legacy/server/runtime/templateServerCleanup.js +15 -43
  616. package/build/sdk/legacy/server/runtime/templateServerCleanup.js.map +1 -1
  617. package/build/sdk/legacy/server/runtime/templateServerManager.d.ts.map +1 -1
  618. package/build/sdk/legacy/server/runtime/templateServerManager.js +37 -38
  619. package/build/sdk/legacy/server/runtime/templateServerManager.js.map +1 -1
  620. package/build/sdk/legacy/server/streamableHttp.js +1 -1
  621. package/build/sdk/legacy/shared/capabilityListCapture.d.ts +2 -2
  622. package/build/sdk/legacy/shared/capabilityListCapture.d.ts.map +1 -1
  623. package/build/sdk/legacy/shared/capabilityListCapture.js +3 -3
  624. package/build/sdk/legacy/shared/capabilityListCapture.js.map +1 -1
  625. package/build/sdk/legacy/shared/resourceTemplateRouting.d.ts.map +1 -1
  626. package/build/sdk/legacy/shared/resourceTemplateRouting.js +29 -11
  627. package/build/sdk/legacy/shared/resourceTemplateRouting.js.map +1 -1
  628. package/build/sdk/legacy/shared/schemaProjection.d.ts +3 -1
  629. package/build/sdk/legacy/shared/schemaProjection.d.ts.map +1 -1
  630. package/build/sdk/legacy/shared/schemaProjection.js +7 -2
  631. package/build/sdk/legacy/shared/schemaProjection.js.map +1 -1
  632. package/build/sdk/legacy/transport/http/loggingSseTransport.d.ts.map +1 -1
  633. package/build/sdk/legacy/transport/http/loggingSseTransport.js +2 -11
  634. package/build/sdk/legacy/transport/http/loggingSseTransport.js.map +1 -1
  635. package/build/sdk/legacy/transport/http/middlewares/scopeAuthMiddleware.d.ts.map +1 -1
  636. package/build/sdk/legacy/transport/http/middlewares/scopeAuthMiddleware.js +13 -2
  637. package/build/sdk/legacy/transport/http/middlewares/scopeAuthMiddleware.js.map +1 -1
  638. package/build/sdk/legacy/transport/http/modernInboundLegacyBridge.d.ts +4 -0
  639. package/build/sdk/legacy/transport/http/modernInboundLegacyBridge.d.ts.map +1 -1
  640. package/build/sdk/legacy/transport/http/modernInboundLegacyBridge.js +14 -2
  641. package/build/sdk/legacy/transport/http/modernInboundLegacyBridge.js.map +1 -1
  642. package/build/sdk/legacy/transport/http/routes/sseRoutes.js +5 -5
  643. package/build/sdk/legacy/transport/http/routes/sseRoutes.js.map +1 -1
  644. package/build/sdk/legacy/transport/http/server.d.ts.map +1 -1
  645. package/build/sdk/legacy/transport/http/server.js +20 -7
  646. package/build/sdk/legacy/transport/http/server.js.map +1 -1
  647. package/build/sdk/legacy/transport/http/streamableSessionLifecycle.d.ts.map +1 -1
  648. package/build/sdk/legacy/transport/http/streamableSessionLifecycle.js +28 -45
  649. package/build/sdk/legacy/transport/http/streamableSessionLifecycle.js.map +1 -1
  650. package/build/sdk/legacy/transport/restartableStdioTransport.d.ts.map +1 -1
  651. package/build/sdk/legacy/transport/restartableStdioTransport.js +8 -11
  652. package/build/sdk/legacy/transport/restartableStdioTransport.js.map +1 -1
  653. package/build/sdk/legacy/transport/stdioProxyTransport.d.ts.map +1 -1
  654. package/build/sdk/legacy/transport/stdioProxyTransport.js +28 -36
  655. package/build/sdk/legacy/transport/stdioProxyTransport.js.map +1 -1
  656. package/build/sdk/legacy/transport/transportFactory.d.ts +1 -1
  657. package/build/sdk/legacy/transport/transportFactory.d.ts.map +1 -1
  658. package/build/sdk/legacy/transport/transportFactory.js +53 -40
  659. package/build/sdk/legacy/transport/transportFactory.js.map +1 -1
  660. package/build/server.d.ts.map +1 -1
  661. package/build/server.js +19 -24
  662. package/build/server.js.map +1 -1
  663. package/build/transport/http/middlewares/errorHandler.js +1 -1
  664. package/build/transport/http/middlewares/errorHandler.js.map +1 -1
  665. package/build/transport/http/middlewares/httpRequestLogger.d.ts +4 -14
  666. package/build/transport/http/middlewares/httpRequestLogger.d.ts.map +1 -1
  667. package/build/transport/http/middlewares/httpRequestLogger.js +134 -40
  668. package/build/transport/http/middlewares/httpRequestLogger.js.map +1 -1
  669. package/build/transport/http/middlewares/mcpAvailabilityMiddleware.d.ts.map +1 -1
  670. package/build/transport/http/middlewares/mcpAvailabilityMiddleware.js +8 -20
  671. package/build/transport/http/middlewares/mcpAvailabilityMiddleware.js.map +1 -1
  672. package/build/transport/http/middlewares/securityMiddleware.d.ts.map +1 -1
  673. package/build/transport/http/middlewares/securityMiddleware.js +7 -38
  674. package/build/transport/http/middlewares/securityMiddleware.js.map +1 -1
  675. package/build/transport/http/middlewares/tagsExtractor.js +2 -2
  676. package/build/transport/http/middlewares/tagsExtractor.js.map +1 -1
  677. package/build/transport/http/routes/cliTokenRoute.d.ts.map +1 -1
  678. package/build/transport/http/routes/cliTokenRoute.js +2 -1
  679. package/build/transport/http/routes/cliTokenRoute.js.map +1 -1
  680. package/build/transport/http/routes/healthRoutes.d.ts +11 -1
  681. package/build/transport/http/routes/healthRoutes.d.ts.map +1 -1
  682. package/build/transport/http/routes/healthRoutes.js +12 -8
  683. package/build/transport/http/routes/healthRoutes.js.map +1 -1
  684. package/build/transport/http/routes/inspectHelpers.d.ts.map +1 -1
  685. package/build/transport/http/routes/inspectHelpers.js +4 -3
  686. package/build/transport/http/routes/inspectHelpers.js.map +1 -1
  687. package/build/transport/http/routes/inspectRoutes.js +3 -3
  688. package/build/transport/http/routes/inspectRoutes.js.map +1 -1
  689. package/build/transport/http/routes/instructionsRoutes.js +1 -1
  690. package/build/transport/http/routes/instructionsRoutes.js.map +1 -1
  691. package/build/transport/http/routes/modernHttpRoutes.d.ts +4 -0
  692. package/build/transport/http/routes/modernHttpRoutes.d.ts.map +1 -1
  693. package/build/transport/http/routes/modernHttpRoutes.js +169 -24
  694. package/build/transport/http/routes/modernHttpRoutes.js.map +1 -1
  695. package/build/transport/http/routes/modernInteractionBinding.d.ts +2 -1
  696. package/build/transport/http/routes/modernInteractionBinding.d.ts.map +1 -1
  697. package/build/transport/http/routes/modernInteractionBinding.js +7 -4
  698. package/build/transport/http/routes/modernInteractionBinding.js.map +1 -1
  699. package/build/transport/http/routes/modernToolHeaderRegistry.d.ts +16 -0
  700. package/build/transport/http/routes/modernToolHeaderRegistry.d.ts.map +1 -0
  701. package/build/transport/http/routes/modernToolHeaderRegistry.js +161 -0
  702. package/build/transport/http/routes/modernToolHeaderRegistry.js.map +1 -0
  703. package/build/transport/http/routes/oauthRoutes.d.ts.map +1 -1
  704. package/build/transport/http/routes/oauthRoutes.js +12 -9
  705. package/build/transport/http/routes/oauthRoutes.js.map +1 -1
  706. package/build/transport/http/routes/streamableHttpRoutes.d.ts.map +1 -1
  707. package/build/transport/http/routes/streamableHttpRoutes.js +11 -21
  708. package/build/transport/http/routes/streamableHttpRoutes.js.map +1 -1
  709. package/build/transport/http/routes/toolRoutes.d.ts.map +1 -1
  710. package/build/transport/http/routes/toolRoutes.js +25 -9
  711. package/build/transport/http/routes/toolRoutes.js.map +1 -1
  712. package/build/transport/http/storage/streamableSessionRepository.d.ts.map +1 -1
  713. package/build/transport/http/storage/streamableSessionRepository.js +21 -36
  714. package/build/transport/http/storage/streamableSessionRepository.js.map +1 -1
  715. package/build/transport/http/utils/contextExtractor.d.ts.map +1 -1
  716. package/build/transport/http/utils/contextExtractor.js +6 -6
  717. package/build/transport/http/utils/contextExtractor.js.map +1 -1
  718. package/build/transport/http/utils/httpErrorHandler.d.ts +1 -1
  719. package/build/transport/http/utils/httpErrorHandler.d.ts.map +1 -1
  720. package/build/transport/http/utils/httpErrorHandler.js +5 -19
  721. package/build/transport/http/utils/httpErrorHandler.js.map +1 -1
  722. package/build/transport/http/utils/templateContextAuthority.d.ts.map +1 -1
  723. package/build/transport/http/utils/templateContextAuthority.js +6 -21
  724. package/build/transport/http/utils/templateContextAuthority.js.map +1 -1
  725. package/build/transport/http/utils/unifiedLogger.d.ts +10 -50
  726. package/build/transport/http/utils/unifiedLogger.d.ts.map +1 -1
  727. package/build/transport/http/utils/unifiedLogger.js +9 -77
  728. package/build/transport/http/utils/unifiedLogger.js.map +1 -1
  729. package/build/transport/managedStdioStderr.d.ts.map +1 -1
  730. package/build/transport/managedStdioStderr.js +2 -6
  731. package/build/transport/managedStdioStderr.js.map +1 -1
  732. package/build/utils/core/errorHandling.js +1 -1
  733. package/build/utils/core/errorHandling.js.map +1 -1
  734. package/build/utils/core/operationExecution.js +2 -2
  735. package/build/utils/core/operationExecution.js.map +1 -1
  736. package/build/utils/core/parsing.d.ts +2 -0
  737. package/build/utils/core/parsing.d.ts.map +1 -1
  738. package/build/utils/core/parsing.js +19 -0
  739. package/build/utils/core/parsing.js.map +1 -1
  740. package/build/utils/core/resourceUris.d.ts +6 -0
  741. package/build/utils/core/resourceUris.d.ts.map +1 -0
  742. package/build/utils/core/resourceUris.js +104 -0
  743. package/build/utils/core/resourceUris.js.map +1 -0
  744. package/build/utils/core/toolNames.d.ts +8 -0
  745. package/build/utils/core/toolNames.d.ts.map +1 -0
  746. package/build/utils/core/toolNames.js +56 -0
  747. package/build/utils/core/toolNames.js.map +1 -0
  748. package/build/utils/filePermissions.d.ts.map +1 -1
  749. package/build/utils/filePermissions.js +6 -6
  750. package/build/utils/filePermissions.js.map +1 -1
  751. package/build/utils/ui/interactiveSelector.js +1 -1
  752. package/build/utils/ui/interactiveSelector.js.map +1 -1
  753. package/build/utils/ui/urlGenerator.d.ts.map +1 -1
  754. package/build/utils/ui/urlGenerator.js +6 -10
  755. package/build/utils/ui/urlGenerator.js.map +1 -1
  756. package/build/utils/validation/scopeValidation.d.ts.map +1 -1
  757. package/build/utils/validation/scopeValidation.js +4 -12
  758. package/build/utils/validation/scopeValidation.js.map +1 -1
  759. package/build/utils/validation/urlDetection.js +4 -4
  760. package/build/utils/validation/urlDetection.js.map +1 -1
  761. package/package.json +70 -61
@@ -1,243 +1,666 @@
1
- import { randomUUID } from 'node:crypto';
1
+ import { AsyncLocalStorage } from 'node:async_hooks';
2
+ import { createHash, createHmac, randomBytes, randomUUID } from 'node:crypto';
3
+ import { authoritySlot, matchesAuthorityContext, OAUTH_ATTEMPT_TTL_MS, oauthAuthorityError, OAuthAuthorizationDeniedError, oauthDigest, sameAuthority, } from '../../../auth/oauthAuthority.js';
4
+ import { createOAuthEndpointFetch, validateOAuthEndpoint } from '../../../auth/oauthEndpointFetch.js';
2
5
  import { ClientSessionRepository } from '../../../auth/storage/clientSessionRepository.js';
3
- import { FileStorageService } from '../../../auth/storage/fileStorageService.js';
6
+ import { createUpstreamOAuthStorage } from '../../../auth/storage/upstreamOAuthStorage.js';
4
7
  import { AUTH_CONFIG } from '../../../constants.js';
5
- import logger from '../../../logger/logger.js';
6
- /**
7
- * SDK-compatible OAuth client provider that replaces the custom implementation.
8
- *
9
- * This provider implements the OAuth 2.1 Authorization Code Grant flow using
10
- * the SDK's OAuthClientProvider interface while maintaining compatibility with
11
- * the existing session storage system.
12
- */
8
+ import { AgentConfigManager } from '../../../core/server/agentConfig.js';
9
+ import { OAuthClientInformationFullSchema, OAuthTokensSchema, } from '../shared/auth.js';
10
+ /** Shared by the released modern and legacy SDK adapters. SDK cache objects are never authority. */
13
11
  export class SDKOAuthClientProvider {
14
- _clientMetadata;
15
- _clientInfo;
16
- _tokens;
17
- _codeVerifier;
18
- _state;
19
- sessionRepository;
20
- fileStorage;
21
12
  serverName;
22
13
  config;
23
- _authorizationUrl;
14
+ sessionRepository;
15
+ fileStorage;
16
+ context;
17
+ slot;
18
+ record;
19
+ verifiers = new Map();
20
+ callbacks = new AsyncLocalStorage();
21
+ authorizationAttempt;
22
+ callbackTail = Promise.resolve();
23
+ operations = new AsyncLocalStorage();
24
+ sseEndpoint;
25
+ tokenRequests = new WeakMap();
26
+ tokenResponses = new Map();
27
+ registrationResponses = new Map();
28
+ discoveryResponses = new Map();
29
+ // These tickets are process-local; a random key protects secret-bearing response correlation.
30
+ responseKey = randomBytes(32);
31
+ migration;
32
+ shutdownSignal = new AbortController();
33
+ claim;
34
+ fetch;
24
35
  constructor(serverName, config, sessionStoragePath) {
25
36
  this.serverName = serverName;
26
37
  this.config = config;
27
- // Create FileStorageService and ClientSessionRepository with 'client' subdirectory
28
- this.fileStorage = new FileStorageService(sessionStoragePath, AUTH_CONFIG.CLIENT.SESSION.SUBDIR);
38
+ const runtimeScope = AgentConfigManager.getInstance().get('runtimeScopeStoragePath');
39
+ this.fileStorage = createUpstreamOAuthStorage({
40
+ baseDir: sessionStoragePath,
41
+ runtimeScope: typeof runtimeScope === 'string' ? runtimeScope : undefined,
42
+ mode: AgentConfigManager.getInstance().get('auth').credentialStore ?? 'file',
43
+ });
29
44
  this.sessionRepository = new ClientSessionRepository(this.fileStorage);
30
- // Set up client metadata for registration with better defaults
31
- this._clientMetadata = {
32
- client_name: `1MCP Agent - ${serverName}`,
33
- redirect_uris: [config.redirectUrl || ''],
45
+ this.context = config.authority;
46
+ this.slot = this.context ? authoritySlot(this.context) : undefined;
47
+ const restore = () => {
48
+ if (this.slot && this.context) {
49
+ const stored = this.sessionRepository.getBound(this.slot);
50
+ if (stored && matchesAuthorityContext(stored.authority, this.context)) {
51
+ if (!config.issuer || config.issuer === stored.authority.issuer)
52
+ this.record = stored;
53
+ }
54
+ }
55
+ return this.slot ? (this.sessionRepository.getClaim(this.slot)?.generation ?? null) : null;
56
+ };
57
+ const alreadyReady = this.fileStorage.isReady();
58
+ const observed = alreadyReady ? restore() : null;
59
+ this.migration = this.fileStorage.ready().then(async () => {
60
+ const observedGeneration = alreadyReady ? observed : restore();
61
+ // Quarantine preserves unbound ownership: moving secrets never grants an authority.
62
+ await this.sessionRepository.quarantine(serverName);
63
+ if (this.slot && this.context)
64
+ this.claim = await this.sessionRepository.claimContext(this.slot, this.context, observedGeneration, this.shutdownSignal.signal);
65
+ });
66
+ void this.migration.catch(() => undefined);
67
+ this.fetch = createOAuthEndpointFetch({
68
+ resource: this.context?.route.url ?? 'https://invalid.invalid/',
69
+ issuer: this.config.issuer,
70
+ isResource: (url) => url.href === this.context?.route.url || url.href === this.sseEndpoint,
71
+ acceptSseEndpoint: this.context?.route.kind === 'sse'
72
+ ? (endpoint) => {
73
+ const configured = new URL(this.context.route.url);
74
+ const target = new URL(endpoint, configured);
75
+ if (target.origin !== configured.origin || target.username || target.password || target.hash)
76
+ throw oauthAuthorityError();
77
+ this.sseEndpoint = target.href;
78
+ }
79
+ : undefined,
80
+ beforeRequest: (url, init) => this.prepareFetch(url, init),
81
+ pinDestination: async (host, addresses, init) => {
82
+ await this.migration;
83
+ if (!this.slot || !this.claim)
84
+ throw oauthAuthorityError();
85
+ await this.sessionRepository.pinDestination(this.slot, this.tokenRequests.get(init)?.generation ?? this.claim, host, addresses);
86
+ },
87
+ onFailure: (resourceRequest) => {
88
+ const operation = this.operations.getStore();
89
+ if (!resourceRequest && operation)
90
+ operation.failed = true;
91
+ },
92
+ response: (value, _url, init) => {
93
+ const ticket = this.tokenRequests.get(init);
94
+ if (!ticket)
95
+ return;
96
+ if (ticket.kind === 'token') {
97
+ const tokens = { ...value };
98
+ if (tokens.refresh_token === undefined)
99
+ tokens.refresh_token = new URLSearchParams(String(init.body ?? '')).get('refresh_token') ?? undefined;
100
+ const key = this.responseDigest(OAuthTokensSchema.parse(tokens));
101
+ this.recordResponse(this.responseMap('token'), key, ticket);
102
+ }
103
+ else if (ticket.kind === 'registration') {
104
+ const key = this.responseDigest(OAuthClientInformationFullSchema.parse({ ...this.clientMetadata, ...value }));
105
+ this.recordResponse(this.responseMap('registration'), key, ticket);
106
+ }
107
+ },
108
+ metadata: (value, url, init) => {
109
+ const validated = this.validateMetadata(value, url);
110
+ const ticket = this.tokenRequests.get(init);
111
+ if (typeof value.issuer === 'string' && ticket)
112
+ this.recordResponse(this.responseMap('discovery'), this.discoveryKey(value), ticket);
113
+ return validated;
114
+ },
115
+ });
116
+ }
117
+ get redirectUrl() {
118
+ return this.config.redirectUrl || '';
119
+ }
120
+ get clientMetadataUrl() {
121
+ return this.config.clientMetadataUrl;
122
+ }
123
+ get clientMetadata() {
124
+ return {
125
+ client_name: `1MCP Agent - ${this.serverName}`,
126
+ redirect_uris: [this.redirectUrl],
34
127
  grant_types: ['authorization_code', 'refresh_token'],
35
128
  response_types: ['code'],
36
- token_endpoint_auth_method: config.clientSecret ? 'client_secret_post' : 'none',
37
- scope: config.scopes?.join(' ') || AUTH_CONFIG.CLIENT.OAUTH.DEFAULT_SCOPES.join(' '),
129
+ token_endpoint_auth_method: this.config.clientSecret ? 'client_secret_post' : 'none',
130
+ scope: this.config.scopes?.join(' ') ?? AUTH_CONFIG.CLIENT.OAUTH.DEFAULT_SCOPES.join(' '),
38
131
  };
39
- logger.debug(`OAuth client configured for ${this.serverName} with redirect URL configured: ${!!this._clientMetadata.redirect_uris?.[0]}`);
40
- // Load existing client info and tokens if available
41
- this.loadPersistedData();
42
- // Seed client info from a pre-registered clientId so the SDK skips Dynamic
43
- // Client Registration for servers without a registration_endpoint (e.g. Slack).
44
- // Guarded so persisted client info always wins.
45
- if (!this._clientInfo && config.clientId) {
46
- this._clientInfo = {
47
- ...this._clientMetadata,
48
- client_id: config.clientId,
49
- client_secret: config.clientSecret,
132
+ }
133
+ clientInformation(ctx) {
134
+ this.checkIssuer(ctx);
135
+ if (this.record)
136
+ this.requireCurrent();
137
+ if (this.config.clientId) {
138
+ return {
139
+ ...this.clientMetadata,
140
+ client_id: this.config.clientId,
141
+ client_secret: this.config.clientSecret,
142
+ ...(this.record ? { issuer: this.record.authority.issuer } : {}),
50
143
  };
51
144
  }
145
+ const record = this.current();
146
+ if (!record?.clientInfo)
147
+ return undefined;
148
+ try {
149
+ return {
150
+ ...OAuthClientInformationFullSchema.parse(JSON.parse(record.clientInfo)),
151
+ issuer: record.authority.issuer,
152
+ };
153
+ }
154
+ catch {
155
+ throw oauthAuthorityError();
156
+ }
52
157
  }
53
- get redirectUrl() {
54
- return this.config.redirectUrl || '';
158
+ async saveClientInformation(clientInfo, ctx) {
159
+ this.assertOperation();
160
+ this.checkIssuer(ctx);
161
+ const record = this.requireCurrent();
162
+ const stamped = clientInfo;
163
+ if (stamped.issuer && stamped.issuer !== record.authority.issuer)
164
+ throw oauthAuthorityError();
165
+ if (this.config.clientId)
166
+ return;
167
+ const parsed = OAuthClientInformationFullSchema.parse({ ...this.clientMetadata, ...clientInfo });
168
+ const key = this.responseDigest(parsed);
169
+ const ticket = this.responseMap('registration').get(key);
170
+ this.responseMap('registration').delete(key);
171
+ if (!ticket && parsed.client_id !== this.config.clientMetadataUrl)
172
+ throw oauthAuthorityError();
173
+ if (ticket && (ticket.ambiguous || ticket.generation !== record.generation))
174
+ throw oauthAuthorityError();
175
+ this.record = await this.sessionRepository.updateBound(this.slot, record.generation, (current) => {
176
+ if (ticket && current.revision !== ticket.revision)
177
+ throw oauthAuthorityError();
178
+ current.clientInfo = JSON.stringify(parsed);
179
+ current.revision++;
180
+ }, ticket?.requestVersion ?? this.operations.getStore()?.requestVersion);
181
+ this.advanceOperation();
182
+ }
183
+ tokens(ctx) {
184
+ this.checkIssuer(ctx);
185
+ const record = this.current();
186
+ if (!record?.tokens)
187
+ return undefined;
188
+ try {
189
+ return { ...OAuthTokensSchema.parse(JSON.parse(record.tokens)), issuer: record.authority.issuer };
190
+ }
191
+ catch {
192
+ throw oauthAuthorityError();
193
+ }
194
+ }
195
+ async saveTokens(tokens, ctx) {
196
+ this.assertOperation();
197
+ this.checkIssuer(ctx);
198
+ const record = this.requireCurrent();
199
+ const stamped = tokens;
200
+ if (stamped.issuer && stamped.issuer !== record.authority.issuer)
201
+ throw oauthAuthorityError();
202
+ const parsed = OAuthTokensSchema.parse(tokens);
203
+ if (this.config.scopes && parsed.scope?.split(' ').some((scope) => !this.config.scopes.includes(scope)))
204
+ throw oauthAuthorityError();
205
+ const responseKey = this.responseDigest(parsed);
206
+ const ticket = this.responseMap('token').get(responseKey);
207
+ this.responseMap('token').delete(responseKey);
208
+ if (!ticket || ticket.ambiguous || ticket.generation !== record.generation)
209
+ this.rejectOperation();
210
+ const expectedRevision = ticket.revision;
211
+ this.record = await this.sessionRepository.updateBound(this.slot, record.generation, (current) => {
212
+ if (current.revision !== expectedRevision)
213
+ throw oauthAuthorityError();
214
+ current.tokens = JSON.stringify(parsed);
215
+ current.revision++;
216
+ }, ticket.requestVersion);
217
+ this.authorizationAttempt = undefined;
218
+ }
219
+ async invalidateCredentials(scope) {
220
+ const record = this.current();
221
+ this.authorizationAttempt = undefined;
222
+ this.verifiers.clear();
223
+ if (!record)
224
+ return;
225
+ this.record = await this.sessionRepository.updateBound(this.slot, record.generation, (current) => {
226
+ current.generation = randomUUID();
227
+ current.revision++;
228
+ current.attempts = {};
229
+ if (scope !== 'verifier')
230
+ current.tokens = undefined;
231
+ if (scope === 'all' || scope === 'client' || scope === 'discovery')
232
+ current.clientInfo = undefined;
233
+ if (scope === 'all' || scope === 'discovery')
234
+ current.discovery = '';
235
+ });
236
+ this.claim = this.record.generation;
237
+ // In-flight work retains its old revision and cannot publish into this generation.
238
+ }
239
+ state() {
240
+ return randomUUID();
241
+ }
242
+ saveCodeVerifier(verifier) {
243
+ if (!/^[A-Za-z0-9._~-]{43,128}$/.test(verifier) || this.verifiers.size >= 32)
244
+ throw oauthAuthorityError();
245
+ this.verifiers.set(createHash('sha256').update(verifier).digest('base64url'), verifier);
246
+ }
247
+ codeVerifier() {
248
+ const callback = this.callbacks.getStore();
249
+ if (!callback || callback.generation !== this.requireCurrent().generation)
250
+ throw oauthAuthorityError();
251
+ return callback.verifier;
252
+ }
253
+ async redirectToAuthorization(url) {
254
+ this.assertOperation();
255
+ const record = this.requireCurrent();
256
+ const target = new URL(url);
257
+ const state = target.searchParams.get('state');
258
+ const challenge = target.searchParams.get('code_challenge');
259
+ const verifier = challenge ? this.verifiers.get(challenge) : undefined;
260
+ target.search = '';
261
+ const endpoint = new URL(record.authority.authorizationEndpoint);
262
+ endpoint.search = '';
263
+ if (target.href !== endpoint.href ||
264
+ !state ||
265
+ !verifier ||
266
+ url.searchParams.get('redirect_uri') !== this.redirectUrl ||
267
+ url.searchParams.get('resource') !== record.authority.resource)
268
+ throw oauthAuthorityError();
269
+ this.assertScopes(url.searchParams.get('scope'));
270
+ await this.sessionRepository.addAttempt(this.slot, record.generation, state, {
271
+ authority: record.authority,
272
+ generation: record.generation,
273
+ redirect: this.redirectUrl,
274
+ verifier,
275
+ createdAt: Date.now(),
276
+ expires: Date.now() + OAUTH_ATTEMPT_TTL_MS,
277
+ consumed: false,
278
+ });
279
+ this.verifiers.delete(challenge);
280
+ this.authorizationAttempt = { url: url.toString(), key: oauthDigest(state) };
55
281
  }
56
- get clientMetadata() {
57
- return this._clientMetadata;
58
- }
59
- /**
60
- * Returns current client registration information
61
- */
62
- clientInformation() {
63
- return this._clientInfo;
64
- }
65
- /**
66
- * Saves client registration information from dynamic registration
67
- */
68
- saveClientInformation(clientInfo) {
69
- this._clientInfo = clientInfo;
70
- this.persistAllData();
71
- logger.info(`OAuth client registered for ${this.serverName}: ${clientInfo.client_id}`);
72
- }
73
- /**
74
- * Returns current OAuth tokens
75
- */
76
- tokens() {
77
- return this._tokens;
78
- }
79
- /**
80
- * Saves OAuth tokens after successful authorization
81
- */
82
- saveTokens(tokens) {
83
- this._tokens = tokens;
84
- this.persistAllData();
85
- logger.info(`OAuth tokens saved for ${this.serverName}`);
86
- }
87
- /**
88
- * Invalidates persisted OAuth credentials as requested by the MCP SDK.
89
- */
90
- invalidateCredentials(scope) {
91
- switch (scope) {
92
- case 'all':
93
- this._clientInfo = undefined;
94
- this._tokens = undefined;
95
- this._codeVerifier = undefined;
96
- this._state = undefined;
97
- this._authorizationUrl = undefined;
98
- break;
99
- case 'client':
100
- this._clientInfo = undefined;
101
- break;
102
- case 'tokens':
103
- this._tokens = undefined;
104
- this._state = undefined;
105
- this._authorizationUrl = undefined;
106
- break;
107
- case 'verifier':
108
- this._codeVerifier = undefined;
109
- break;
110
- case 'discovery':
111
- return;
112
- }
113
- this.persistAllData();
114
- logger.info(`OAuth credentials invalidated for ${this.serverName}: ${scope}`);
115
- }
116
- /**
117
- * Stores authorization URL instead of prompting user in console
118
- */
119
- redirectToAuthorization(authorizationUrl) {
120
- this._authorizationUrl = authorizationUrl.toString();
121
- }
122
- /**
123
- * Gets the current authorization URL
124
- */
125
282
  getAuthorizationUrl() {
126
- return this._authorizationUrl;
283
+ return this.authorizationAttempt?.url;
284
+ }
285
+ /** Only a live, unconsumed attempt owned by this provider can be resumed. */
286
+ getPendingAuthorizationUrl() {
287
+ const authorization = this.authorizationAttempt;
288
+ if (!authorization)
289
+ return undefined;
290
+ const record = this.current();
291
+ if (!record)
292
+ return undefined;
293
+ // The durable key was bound to this URL at creation, before it was exposed
294
+ // through transport/provider APIs. Resumption never reinterprets a URL.
295
+ const attempt = record.attempts[authorization.key];
296
+ if (!attempt || attempt.consumed || attempt.expires <= Date.now())
297
+ return undefined;
298
+ if (attempt.generation !== record.generation || !sameAuthority(attempt.authority, record.authority))
299
+ return undefined;
300
+ if (attempt.redirect !== this.redirectUrl)
301
+ return undefined;
302
+ return this.authorizationAttempt?.url;
127
303
  }
128
- /**
129
- * Clears the stored authorization URL
130
- */
131
304
  clearAuthorizationUrl() {
132
- this._authorizationUrl = undefined;
133
- }
134
- /**
135
- * Saves PKCE code verifier for the authorization session
136
- */
137
- saveCodeVerifier(codeVerifier) {
138
- this._codeVerifier = codeVerifier;
139
- this.persistAllData();
140
- }
141
- /**
142
- * Returns the PKCE code verifier for token exchange
143
- */
144
- codeVerifier() {
145
- return this._codeVerifier || '';
305
+ this.authorizationAttempt = undefined;
146
306
  }
147
- /**
148
- * Returns the OAuth state parameter for CSRF protection
149
- */
150
- state() {
151
- if (!this._state) {
152
- this._state = randomUUID();
153
- this.persistAllData();
154
- }
155
- return this._state;
307
+ /** Validation and durable consumption happen before the SDK can see a code, for both eras. */
308
+ async withAuthorizationCallback(response, operation) {
309
+ const run = async () => {
310
+ await this.migration;
311
+ const record = this.requireCurrent();
312
+ for (const key of ['state', 'code', 'iss', 'error', 'redirect_uri']) {
313
+ if (response.getAll(key).length > 1)
314
+ throw oauthAuthorityError();
315
+ }
316
+ const state = response.get('state');
317
+ if (!state)
318
+ throw oauthAuthorityError();
319
+ const attempt = await this.sessionRepository.consumeAttempt(this.slot, record.generation, state, (candidate) => {
320
+ if (!sameAuthority(candidate.authority, record.authority) ||
321
+ candidate.generation !== record.generation ||
322
+ candidate.redirect !== this.redirectUrl)
323
+ throw oauthAuthorityError();
324
+ const redirect = response.get('redirect_uri');
325
+ if (redirect && redirect !== candidate.redirect)
326
+ throw oauthAuthorityError();
327
+ const issuer = response.get('iss');
328
+ if (candidate.authority.requireIssuer && !issuer)
329
+ throw oauthAuthorityError();
330
+ if (issuer !== null && issuer !== candidate.authority.issuer)
331
+ throw oauthAuthorityError();
332
+ if (!response.get('code') && !response.get('error'))
333
+ throw oauthAuthorityError();
334
+ });
335
+ if (response.has('error'))
336
+ throw new OAuthAuthorizationDeniedError(response.get('error') === 'access_denied' ? 'access_denied' : 'provider_error');
337
+ return this.callbacks.run({ verifier: attempt.verifier, generation: attempt.generation }, operation);
338
+ };
339
+ const pending = this.callbackTail.then(run, run);
340
+ this.callbackTail = pending.catch(() => undefined);
341
+ return pending;
342
+ }
343
+ async bindAdminReturn(state, origin) {
344
+ const record = this.requireCurrent();
345
+ await this.sessionRepository.updateBound(this.slot, record.generation, (current) => {
346
+ const attempt = current.attempts[oauthDigest(state)];
347
+ if (!attempt || attempt.consumed || attempt.expires <= Date.now())
348
+ throw oauthAuthorityError();
349
+ attempt.adminReturnOrigin = origin;
350
+ });
351
+ }
352
+ getAdminReturn(state) {
353
+ const attempt = this.current()?.attempts[oauthDigest(state)];
354
+ return attempt && attempt.consumed && attempt.expires > Date.now() ? attempt.adminReturnOrigin : undefined;
156
355
  }
157
- /**
158
- * Custom resource validation (optional)
159
- */
160
356
  async validateResourceURL(serverUrl, resource) {
161
- const url = typeof serverUrl === 'string' ? new URL(serverUrl) : serverUrl;
162
- // Basic validation - can be extended for specific requirements
163
- if (resource && !resource.startsWith(url.origin)) {
357
+ return this.selectResourceURL(serverUrl, resource);
358
+ }
359
+ selectResourceURL(serverUrl, resource) {
360
+ try {
361
+ const configured = new URL(this.context?.route.url ?? serverUrl);
362
+ configured.hash = '';
363
+ const requested = new URL(serverUrl);
364
+ requested.hash = '';
365
+ if (requested.href !== configured.href)
366
+ throw oauthAuthorityError();
367
+ if (resource === undefined)
368
+ return configured;
369
+ const advertised = new URL(resource);
370
+ if (advertised.username || advertised.password || resource.includes('#'))
371
+ throw oauthAuthorityError();
372
+ if (advertised.origin !== configured.origin || advertised.search !== configured.search)
373
+ throw oauthAuthorityError();
374
+ // Resource Indicators may describe a parent resource; the transport route remains exact.
375
+ const resourcePath = advertised.pathname.endsWith('/') ? advertised.pathname : advertised.pathname + '/';
376
+ const routePath = configured.pathname.endsWith('/') ? configured.pathname : configured.pathname + '/';
377
+ if (configured.pathname.length < advertised.pathname.length || !routePath.startsWith(resourcePath))
378
+ throw oauthAuthorityError();
379
+ return advertised;
380
+ }
381
+ catch {
382
+ throw oauthAuthorityError();
383
+ }
384
+ }
385
+ discoveryState() {
386
+ // A new SDK auth operation may retry transient transport failures. The failed
387
+ // operation itself remains blocked from inferred fallback or credential writes.
388
+ this.operations.enterWith({
389
+ failed: false,
390
+ responses: { token: new Map(), registration: new Map(), discovery: new Map() },
391
+ });
392
+ const current = this.current();
393
+ // Refresh/new authorization re-discovers current destinations. Only a validated
394
+ // callback resumes the exact discovery snapshot captured by its durable attempt.
395
+ if (!this.callbacks.getStore() || !current?.discovery)
396
+ return undefined;
397
+ try {
398
+ return JSON.parse(current.discovery);
399
+ }
400
+ catch {
401
+ throw oauthAuthorityError();
402
+ }
403
+ }
404
+ async saveDiscoveryState(state) {
405
+ await this.migration;
406
+ this.assertOperation();
407
+ if (!this.context || !this.slot)
408
+ throw oauthAuthorityError();
409
+ const metadata = state.authorizationServerMetadata;
410
+ let requestVersion = this.operations.getStore()?.requestVersion;
411
+ if (metadata) {
412
+ const key = this.discoveryKey(metadata);
413
+ const ticket = this.responseMap('discovery').get(key);
414
+ this.responseMap('discovery').delete(key);
415
+ if (ticket && (ticket.ambiguous || ticket.generation !== this.claim))
416
+ throw oauthAuthorityError();
417
+ if (ticket)
418
+ requestVersion = ticket.requestVersion;
419
+ }
420
+ const issuer = state.authorizationServerUrl;
421
+ if (this.config.issuer && this.config.issuer !== issuer)
422
+ throw oauthAuthorityError();
423
+ if (metadata?.issuer && metadata.issuer !== issuer)
424
+ throw oauthAuthorityError();
425
+ const approved = this.record?.authority.issuer;
426
+ const advertised = state.resourceMetadata?.authorization_servers;
427
+ if (advertised?.length) {
428
+ const selected = this.config.issuer ?? (approved && advertised.includes(approved) ? approved : undefined);
429
+ if (selected ? selected !== issuer : advertised.length !== 1 || advertised[0] !== issuer)
430
+ throw oauthAuthorityError();
431
+ }
432
+ else if (!this.config.legacy && !this.config.issuer) {
433
+ throw oauthAuthorityError();
434
+ }
435
+ const issuerUrl = validateOAuthEndpoint(issuer, this.context.route.url, undefined, this.config.issuer);
436
+ if (issuerUrl.search || issuerUrl.hash)
437
+ throw oauthAuthorityError();
438
+ const fallback = this.config.legacy && issuerUrl.origin === new URL(this.context.route.url).origin;
439
+ if (!metadata && !fallback)
440
+ throw oauthAuthorityError();
441
+ const resource = await this.validateResourceURL(this.context.route.url, state.resourceMetadata?.resource);
442
+ const endpoint = (value, pathname) => {
443
+ if (!value && !fallback)
444
+ throw oauthAuthorityError();
445
+ return validateOAuthEndpoint(value ?? new URL(pathname, issuerUrl).href, this.context.route.url, value ? undefined : issuerUrl.origin, this.config.issuer).href;
446
+ };
447
+ let registrationEndpoint;
448
+ if (metadata?.registration_endpoint)
449
+ registrationEndpoint = endpoint(metadata.registration_endpoint, '/register');
450
+ else if (!metadata && fallback)
451
+ registrationEndpoint = endpoint(undefined, '/register');
452
+ const authority = {
453
+ ...this.context,
454
+ version: 1,
455
+ issuer,
456
+ resource: resource.href,
457
+ authorizationEndpoint: endpoint(metadata?.authorization_endpoint, '/authorize'),
458
+ tokenEndpoint: endpoint(metadata?.token_endpoint, '/token'),
459
+ registrationEndpoint,
460
+ requireIssuer: metadata
461
+ ?.authorization_response_iss_parameter_supported === true,
462
+ };
463
+ this.record = await this.sessionRepository.activate(this.slot, authority, JSON.stringify(state), this.claim, requestVersion);
464
+ this.claim = this.record.generation;
465
+ this.advanceOperation();
466
+ }
467
+ current() {
468
+ if (!this.record || !this.slot || !this.context)
164
469
  return undefined;
470
+ const current = this.sessionRepository.getBound(this.slot);
471
+ if (this.sessionRepository.getClaim(this.slot)?.generation !== this.record.generation)
472
+ throw oauthAuthorityError();
473
+ if (!current ||
474
+ current.generation !== this.record.generation ||
475
+ !sameAuthority(current.authority, this.record.authority) ||
476
+ !matchesAuthorityContext(current.authority, this.context))
477
+ throw oauthAuthorityError();
478
+ return current;
479
+ }
480
+ requireCurrent() {
481
+ const current = this.current();
482
+ if (!current)
483
+ throw oauthAuthorityError();
484
+ return current;
485
+ }
486
+ checkIssuer(ctx) {
487
+ if (!ctx)
488
+ return;
489
+ const issuer = this.record?.authority.issuer ?? this.config.issuer;
490
+ if (!issuer || ctx.issuer !== issuer)
491
+ throw oauthAuthorityError();
492
+ }
493
+ assertScopes(scope) {
494
+ if (this.config.scopes && scope?.split(' ').some((item) => !this.config.scopes.includes(item)))
495
+ throw oauthAuthorityError();
496
+ }
497
+ validateMetadata(value, url) {
498
+ if (!this.context)
499
+ throw oauthAuthorityError();
500
+ if (Array.isArray(value.authorization_servers)) {
501
+ const issuers = value.authorization_servers;
502
+ if (!issuers.length || issuers.length > 16 || issuers.some((issuer) => typeof issuer !== 'string'))
503
+ throw oauthAuthorityError();
504
+ for (const issuer of issuers)
505
+ validateOAuthEndpoint(String(issuer), this.context.route.url, undefined, this.config.issuer);
506
+ const approved = this.config.issuer ?? this.record?.authority.issuer;
507
+ let selected;
508
+ if (approved && issuers.includes(approved))
509
+ selected = approved;
510
+ else if (issuers.length === 1)
511
+ selected = String(issuers[0]);
512
+ if (!selected || (this.config.issuer && selected !== this.config.issuer))
513
+ throw oauthAuthorityError();
514
+ if (typeof value.resource !== 'string')
515
+ throw oauthAuthorityError();
516
+ this.selectResourceURL(this.context.route.url, value.resource);
517
+ return {
518
+ ...value,
519
+ authorization_servers: [selected],
520
+ ...(this.config.scopes ? { scopes_supported: this.config.scopes } : {}),
521
+ };
165
522
  }
166
- return url;
167
- }
168
- /**
169
- * Load persisted OAuth data from unified client session storage
170
- */
171
- loadPersistedData() {
172
- const clientSession = this.sessionRepository.get(this.serverName);
173
- if (clientSession) {
174
- // Load client info
175
- if (clientSession.clientInfo) {
176
- this._clientInfo = JSON.parse(clientSession.clientInfo);
523
+ if (typeof value.issuer === 'string') {
524
+ const issuer = validateOAuthEndpoint(value.issuer, this.context.route.url, undefined, this.config.issuer);
525
+ if (issuer.origin !== url.origin || (this.config.issuer && value.issuer !== this.config.issuer))
526
+ throw oauthAuthorityError();
527
+ for (const key of ['authorization_endpoint', 'token_endpoint', 'registration_endpoint', 'jwks_uri']) {
528
+ if (value[key] !== undefined)
529
+ validateOAuthEndpoint(String(value[key]), this.context.route.url, undefined, this.config.issuer);
177
530
  }
178
- // Load tokens
179
- if (clientSession.tokens) {
180
- this._tokens = JSON.parse(clientSession.tokens);
181
- // Check if tokens are expired
182
- if (this._tokens && this.isTokenExpired(this._tokens)) {
183
- logger.warn(`OAuth tokens expired for ${this.serverName}, clearing`);
184
- this._tokens = undefined;
185
- this.persistAllData();
531
+ }
532
+ return value;
533
+ }
534
+ async prepareFetch(url, init) {
535
+ await this.migration;
536
+ if (!this.context)
537
+ throw oauthAuthorityError();
538
+ const resource = new URL(this.context.route.url);
539
+ const headers = new Headers(init.headers);
540
+ const isDiscovery = (init.method ?? 'GET') === 'GET' && url.href !== resource.href && url.href !== this.sseEndpoint;
541
+ if (isDiscovery) {
542
+ this.assertOperation();
543
+ const requestVersion = await this.reserveRequest();
544
+ if (url.search)
545
+ throw oauthAuthorityError();
546
+ const request = { ...init, headers: { accept: 'application/json' }, redirect: 'error' };
547
+ this.tokenRequests.set(request, {
548
+ generation: this.claim,
549
+ revision: this.record?.revision ?? 0,
550
+ kind: 'discovery',
551
+ requestVersion,
552
+ });
553
+ return request;
554
+ }
555
+ // Resource requests need the generation check in pinDestination, not credential loading.
556
+ if (url.href === resource.href || url.href === this.sseEndpoint)
557
+ return { ...init, redirect: 'error' };
558
+ const record = this.current();
559
+ const isToken = record?.authority.tokenEndpoint === url.href;
560
+ const isRegistration = record?.authority.registrationEndpoint === url.href;
561
+ if (isToken || isRegistration) {
562
+ this.assertOperation();
563
+ const requestVersion = await this.reserveRequest();
564
+ if ((init.method ?? 'GET') !== 'POST')
565
+ throw oauthAuthorityError();
566
+ const safeHeaders = new Headers();
567
+ safeHeaders.set('content-type', isToken ? 'application/x-www-form-urlencoded' : 'application/json');
568
+ if (isToken) {
569
+ const params = new URLSearchParams(String(init.body ?? ''));
570
+ if (params.get('resource') !== record.authority.resource)
571
+ throw oauthAuthorityError();
572
+ this.assertScopes(params.get('scope'));
573
+ if (params.get('grant_type') === 'authorization_code') {
574
+ if (this.callbacks.getStore()?.generation !== record.generation)
575
+ throw oauthAuthorityError();
186
576
  }
577
+ const client = this.clientInformation();
578
+ const authorization = headers.get('authorization');
579
+ if (authorization?.startsWith('Basic ') && client?.client_secret) {
580
+ const expected = `Basic ${Buffer.from(`${client.client_id}:${client.client_secret}`).toString('base64')}`;
581
+ if (authorization !== expected)
582
+ throw oauthAuthorityError();
583
+ safeHeaders.set('authorization', authorization);
584
+ }
585
+ if (params.has('client_id') && params.get('client_id') !== client?.client_id)
586
+ throw oauthAuthorityError();
587
+ if (params.has('client_secret') && params.get('client_secret') !== client?.client_secret)
588
+ throw oauthAuthorityError();
187
589
  }
188
- // Load code verifier
189
- if (clientSession.codeVerifier) {
190
- this._codeVerifier = clientSession.codeVerifier;
191
- }
192
- // Load state
193
- if (clientSession.state) {
194
- this._state = clientSession.state;
590
+ else {
591
+ const registration = JSON.parse(String(init.body ?? '{}'));
592
+ this.assertScopes(registration.scope ?? null);
593
+ if (this.config.clientId || this.config.autoRegister === false)
594
+ throw oauthAuthorityError();
195
595
  }
596
+ const request = { ...init, headers: safeHeaders, redirect: 'error' };
597
+ this.tokenRequests.set(request, {
598
+ generation: record.generation,
599
+ revision: record.revision,
600
+ kind: isToken ? 'token' : 'registration',
601
+ requestVersion,
602
+ });
603
+ return request;
196
604
  }
605
+ throw oauthAuthorityError();
197
606
  }
198
- /**
199
- * Persist all OAuth data to unified client session storage
200
- */
201
- persistAllData() {
202
- // Calculate the longest TTL based on the data we have
203
- let maxTtl = AUTH_CONFIG.CLIENT.OAUTH.TTL_MS; // Default to 30 days
204
- // If we have tokens, use their expiry time
205
- if (this._tokens && this._tokens.expires_in) {
206
- const tokenTtl = this._tokens.expires_in * 1000;
207
- maxTtl = Math.max(maxTtl, tokenTtl);
208
- }
209
- // Code verifier and state have shorter TTL, but we keep them for completeness
210
- const clientSessionData = {
211
- serverName: this.serverName,
212
- clientInfo: this._clientInfo ? JSON.stringify(this._clientInfo) : undefined,
213
- tokens: this._tokens ? JSON.stringify(this._tokens) : undefined,
214
- codeVerifier: this._codeVerifier,
215
- state: this._state,
216
- expires: Date.now() + maxTtl,
217
- createdAt: Date.now(),
218
- };
219
- this.sessionRepository.save(this.serverName, clientSessionData, maxTtl);
220
- }
221
- /**
222
- * Check if OAuth tokens are expired
223
- */
224
- isTokenExpired(tokens) {
225
- if (!tokens.expires_in) {
226
- return false; // No expiration info, assume valid
227
- }
228
- // This is a simple check - in practice, you might want to store the issued_at time
229
- // For now, we'll rely on the session storage TTL for expiration
230
- return false;
231
- }
232
- /**
233
- * Clean up resources
234
- */
235
- shutdown() {
236
- // Clean up temporary session data by clearing verifier and state
237
- this._codeVerifier = undefined;
238
- this._state = undefined;
239
- this.persistAllData();
607
+ responseMap(kind) {
608
+ const operation = this.operations.getStore();
609
+ if (operation)
610
+ return operation.responses[kind];
611
+ if (kind === 'token')
612
+ return this.tokenResponses;
613
+ if (kind === 'registration')
614
+ return this.registrationResponses;
615
+ return this.discoveryResponses;
616
+ }
617
+ advanceOperation() {
618
+ const operation = this.operations.getStore();
619
+ if (operation && this.slot)
620
+ operation.requestVersion = this.sessionRepository.getClaim(this.slot)?.requestVersion;
621
+ }
622
+ rejectOperation() {
623
+ const operation = this.operations.getStore();
624
+ if (operation)
625
+ operation.failed = true;
626
+ throw oauthAuthorityError();
627
+ }
628
+ assertOperation() {
629
+ if (this.operations.getStore()?.failed)
630
+ throw oauthAuthorityError();
631
+ }
632
+ async reserveRequest() {
633
+ const requestVersion = await this.sessionRepository.reserveRequest(this.slot, this.claim);
634
+ const operation = this.operations.getStore();
635
+ if (operation)
636
+ operation.requestVersion = requestVersion;
637
+ return requestVersion;
638
+ }
639
+ responseDigest(value) {
640
+ return createHmac('sha256', this.responseKey).update(JSON.stringify(value)).digest('hex');
641
+ }
642
+ discoveryKey(metadata) {
643
+ return this.responseDigest([
644
+ metadata.issuer,
645
+ metadata.authorization_endpoint,
646
+ metadata.token_endpoint,
647
+ metadata.registration_endpoint,
648
+ ]);
649
+ }
650
+ recordResponse(target, key, ticket) {
651
+ if (target.size >= 32 && !target.has(key))
652
+ throw oauthAuthorityError();
653
+ const previous = target.get(key);
654
+ if (previous) {
655
+ previous.ambiguous = true;
656
+ return;
657
+ }
658
+ target.set(key, ticket);
659
+ }
660
+ async shutdown() {
661
+ this.shutdownSignal.abort();
240
662
  this.fileStorage.shutdown();
663
+ await this.migration.catch(() => undefined);
241
664
  }
242
665
  }
243
666
  //# sourceMappingURL=sdkOAuthClientProvider.js.map