@1mcp/agent 0.38.1 → 0.39.0-beta.0

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 (374) hide show
  1. package/build/admin/assets/{admin-OAuthServicesWorkspace-C3DNmymC.js → admin-OAuthServicesWorkspace-Bmets2jv.js} +1 -1
  2. package/build/admin/assets/{admin-console-BmdH0cQS.js → admin-console-DyzxXXr5.js} +3 -3
  3. package/build/admin/index.html +1 -1
  4. package/build/commands/run/run.d.ts.map +1 -1
  5. package/build/commands/run/run.js +35 -14
  6. package/build/commands/run/run.js.map +1 -1
  7. package/build/commands/run/runUtils.d.ts +2 -3
  8. package/build/commands/run/runUtils.d.ts.map +1 -1
  9. package/build/commands/run/runUtils.js +12 -11
  10. package/build/commands/run/runUtils.js.map +1 -1
  11. package/build/commands/serve/cooperativeRuntime.d.ts +18 -0
  12. package/build/commands/serve/cooperativeRuntime.d.ts.map +1 -0
  13. package/build/commands/serve/cooperativeRuntime.js +588 -0
  14. package/build/commands/serve/cooperativeRuntime.js.map +1 -0
  15. package/build/commands/serve/index.d.ts +10 -0
  16. package/build/commands/serve/index.d.ts.map +1 -1
  17. package/build/commands/serve/index.js +10 -0
  18. package/build/commands/serve/index.js.map +1 -1
  19. package/build/commands/serve/legacyRuntimeStop.d.ts +16 -0
  20. package/build/commands/serve/legacyRuntimeStop.d.ts.map +1 -0
  21. package/build/commands/serve/legacyRuntimeStop.js +143 -0
  22. package/build/commands/serve/legacyRuntimeStop.js.map +1 -0
  23. package/build/commands/serve/serveStatus.d.ts +2 -0
  24. package/build/commands/serve/serveStatus.d.ts.map +1 -1
  25. package/build/commands/serve/serveStatus.js +37 -3
  26. package/build/commands/serve/serveStatus.js.map +1 -1
  27. package/build/commands/serve/serveStop.d.ts.map +1 -1
  28. package/build/commands/serve/serveStop.js +33 -4
  29. package/build/commands/serve/serveStop.js.map +1 -1
  30. package/build/commands/shared/apiClient.d.ts.map +1 -1
  31. package/build/commands/shared/apiClient.js +13 -9
  32. package/build/commands/shared/apiClient.js.map +1 -1
  33. package/build/commands/shared/clientSurfaceAttachment.d.ts.map +1 -1
  34. package/build/commands/shared/clientSurfaceAttachment.js +33 -7
  35. package/build/commands/shared/clientSurfaceAttachment.js.map +1 -1
  36. package/build/config/configLoader.d.ts.map +1 -1
  37. package/build/config/configLoader.js +9 -1
  38. package/build/config/configLoader.js.map +1 -1
  39. package/build/config/configManager.d.ts +4 -0
  40. package/build/config/configManager.d.ts.map +1 -1
  41. package/build/config/configManager.js +48 -1
  42. package/build/config/configManager.js.map +1 -1
  43. package/build/config/configWatcher.d.ts.map +1 -1
  44. package/build/config/configWatcher.js +3 -1
  45. package/build/config/configWatcher.js.map +1 -1
  46. package/build/config/envProcessor.d.ts.map +1 -1
  47. package/build/config/envProcessor.js +6 -5
  48. package/build/config/envProcessor.js.map +1 -1
  49. package/build/config/mcpConfigManager.d.ts +4 -0
  50. package/build/config/mcpConfigManager.d.ts.map +1 -1
  51. package/build/config/mcpConfigManager.js +48 -1
  52. package/build/config/mcpConfigManager.js.map +1 -1
  53. package/build/config/runtimeBootstrap.d.ts +15 -0
  54. package/build/config/runtimeBootstrap.d.ts.map +1 -0
  55. package/build/config/runtimeBootstrap.js +35 -0
  56. package/build/config/runtimeBootstrap.js.map +1 -0
  57. package/build/config/runtimeScopeEnv.d.ts.map +1 -1
  58. package/build/config/runtimeScopeEnv.js +4 -0
  59. package/build/config/runtimeScopeEnv.js.map +1 -1
  60. package/build/config/runtimeTargetFingerprint.d.ts.map +1 -1
  61. package/build/config/runtimeTargetFingerprint.js +5 -2
  62. package/build/config/runtimeTargetFingerprint.js.map +1 -1
  63. package/build/constants/mcp.d.ts +1 -1
  64. package/build/constants/mcp.d.ts.map +1 -1
  65. package/build/constants/mcp.js +1 -1
  66. package/build/constants/mcp.js.map +1 -1
  67. package/build/core/capabilities/asyncLoadingOrchestrator.d.ts +2 -1
  68. package/build/core/capabilities/asyncLoadingOrchestrator.d.ts.map +1 -1
  69. package/build/core/capabilities/asyncLoadingOrchestrator.js +2 -21
  70. package/build/core/capabilities/asyncLoadingOrchestrator.js.map +1 -1
  71. package/build/core/capabilities/capabilityAggregator.d.ts.map +1 -1
  72. package/build/core/capabilities/capabilityAggregator.js +12 -4
  73. package/build/core/capabilities/capabilityAggregator.js.map +1 -1
  74. package/build/core/capabilities/capabilityCatalog.d.ts +2 -1
  75. package/build/core/capabilities/capabilityCatalog.d.ts.map +1 -1
  76. package/build/core/capabilities/capabilityCatalog.js +94 -17
  77. package/build/core/capabilities/capabilityCatalog.js.map +1 -1
  78. package/build/core/capabilities/capabilityPagination.d.ts +11 -0
  79. package/build/core/capabilities/capabilityPagination.d.ts.map +1 -1
  80. package/build/core/capabilities/capabilityPagination.js +158 -40
  81. package/build/core/capabilities/capabilityPagination.js.map +1 -1
  82. package/build/core/capabilities/catalogGeneration.d.ts.map +1 -1
  83. package/build/core/capabilities/catalogGeneration.js +8 -2
  84. package/build/core/capabilities/catalogGeneration.js.map +1 -1
  85. package/build/core/capabilities/lazyLoadingOrchestrator.d.ts +1 -1
  86. package/build/core/capabilities/lazyLoadingOrchestrator.d.ts.map +1 -1
  87. package/build/core/capabilities/lazyLoadingOrchestrator.js +8 -8
  88. package/build/core/capabilities/lazyLoadingOrchestrator.js.map +1 -1
  89. package/build/core/capabilities/metaToolProvider.d.ts +2 -2
  90. package/build/core/capabilities/metaToolProvider.d.ts.map +1 -1
  91. package/build/core/capabilities/metaToolProvider.js +20 -30
  92. package/build/core/capabilities/metaToolProvider.js.map +1 -1
  93. package/build/core/capabilities/runtimeCapabilityCatalog.d.ts +8 -0
  94. package/build/core/capabilities/runtimeCapabilityCatalog.d.ts.map +1 -1
  95. package/build/core/capabilities/runtimeCapabilityCatalog.js +249 -64
  96. package/build/core/capabilities/runtimeCapabilityCatalog.js.map +1 -1
  97. package/build/core/capabilities/schemaCache.d.ts +6 -2
  98. package/build/core/capabilities/schemaCache.d.ts.map +1 -1
  99. package/build/core/capabilities/schemaCache.js +101 -19
  100. package/build/core/capabilities/schemaCache.js.map +1 -1
  101. package/build/core/client/legacyAdapterRequest.d.ts.map +1 -1
  102. package/build/core/client/legacyAdapterRequest.js +25 -21
  103. package/build/core/client/legacyAdapterRequest.js.map +1 -1
  104. package/build/core/client/postAuthOAuthRecovery.d.ts.map +1 -1
  105. package/build/core/client/postAuthOAuthRecovery.js +3 -1
  106. package/build/core/client/postAuthOAuthRecovery.js.map +1 -1
  107. package/build/core/configChangeHandler.d.ts.map +1 -1
  108. package/build/core/configChangeHandler.js +11 -2
  109. package/build/core/configChangeHandler.js.map +1 -1
  110. package/build/core/context/templateContextTrust.d.ts +3 -1
  111. package/build/core/context/templateContextTrust.d.ts.map +1 -1
  112. package/build/core/context/templateContextTrust.js +22 -6
  113. package/build/core/context/templateContextTrust.js.map +1 -1
  114. package/build/core/loading/mcpLoadingManager.d.ts +3 -0
  115. package/build/core/loading/mcpLoadingManager.d.ts.map +1 -1
  116. package/build/core/loading/mcpLoadingManager.js +11 -1
  117. package/build/core/loading/mcpLoadingManager.js.map +1 -1
  118. package/build/core/protocol/resourceTemplateRouting.d.ts +2 -0
  119. package/build/core/protocol/resourceTemplateRouting.d.ts.map +1 -0
  120. package/build/core/protocol/resourceTemplateRouting.js +2 -0
  121. package/build/core/protocol/resourceTemplateRouting.js.map +1 -0
  122. package/build/core/server/backgroundRuntimeSupervisor.d.ts +2 -0
  123. package/build/core/server/backgroundRuntimeSupervisor.d.ts.map +1 -1
  124. package/build/core/server/backgroundRuntimeSupervisor.js +11 -2
  125. package/build/core/server/backgroundRuntimeSupervisor.js.map +1 -1
  126. package/build/core/server/backgroundRuntimeSupervisorState.d.ts +2 -1
  127. package/build/core/server/backgroundRuntimeSupervisorState.d.ts.map +1 -1
  128. package/build/core/server/backgroundRuntimeSupervisorState.js +3 -2
  129. package/build/core/server/backgroundRuntimeSupervisorState.js.map +1 -1
  130. package/build/core/server/legacyRuntimeRecovery.d.ts +14 -0
  131. package/build/core/server/legacyRuntimeRecovery.d.ts.map +1 -0
  132. package/build/core/server/legacyRuntimeRecovery.js +209 -0
  133. package/build/core/server/legacyRuntimeRecovery.js.map +1 -0
  134. package/build/core/server/pidFileManager.d.ts +35 -0
  135. package/build/core/server/pidFileManager.d.ts.map +1 -1
  136. package/build/core/server/pidFileManager.js +16 -5
  137. package/build/core/server/pidFileManager.js.map +1 -1
  138. package/build/core/server/processEvidence.d.ts +23 -0
  139. package/build/core/server/processEvidence.d.ts.map +1 -0
  140. package/build/core/server/processEvidence.js +114 -0
  141. package/build/core/server/processEvidence.js.map +1 -0
  142. package/build/core/server/processIdentity.d.ts +3 -0
  143. package/build/core/server/processIdentity.d.ts.map +1 -1
  144. package/build/core/server/processIdentity.js +69 -17
  145. package/build/core/server/processIdentity.js.map +1 -1
  146. package/build/core/server/runtimeControl.d.ts +31 -0
  147. package/build/core/server/runtimeControl.d.ts.map +1 -0
  148. package/build/core/server/runtimeControl.js +288 -0
  149. package/build/core/server/runtimeControl.js.map +1 -0
  150. package/build/core/server/runtimeDrain.d.ts +68 -0
  151. package/build/core/server/runtimeDrain.d.ts.map +1 -0
  152. package/build/core/server/runtimeDrain.js +248 -0
  153. package/build/core/server/runtimeDrain.js.map +1 -0
  154. package/build/core/server/runtimeLaunchIpc.d.ts +285 -0
  155. package/build/core/server/runtimeLaunchIpc.d.ts.map +1 -0
  156. package/build/core/server/runtimeLaunchIpc.js +146 -0
  157. package/build/core/server/runtimeLaunchIpc.js.map +1 -0
  158. package/build/core/server/runtimeLifecycle.d.ts +3 -1
  159. package/build/core/server/runtimeLifecycle.d.ts.map +1 -1
  160. package/build/core/server/runtimeLifecycle.js +7 -5
  161. package/build/core/server/runtimeLifecycle.js.map +1 -1
  162. package/build/core/server/runtimeReplacementConfig.d.ts +295 -0
  163. package/build/core/server/runtimeReplacementConfig.d.ts.map +1 -0
  164. package/build/core/server/runtimeReplacementConfig.js +187 -0
  165. package/build/core/server/runtimeReplacementConfig.js.map +1 -0
  166. package/build/core/server/runtimeScopeOwnership.d.ts +3 -0
  167. package/build/core/server/runtimeScopeOwnership.d.ts.map +1 -1
  168. package/build/core/server/runtimeScopeOwnership.js +23 -4
  169. package/build/core/server/runtimeScopeOwnership.js.map +1 -1
  170. package/build/core/tools/internal/discoveryHandlers.d.ts.map +1 -1
  171. package/build/core/tools/internal/discoveryHandlers.js +8 -6
  172. package/build/core/tools/internal/discoveryHandlers.js.map +1 -1
  173. package/build/core/tools/internal/installationHandlers.d.ts.map +1 -1
  174. package/build/core/tools/internal/installationHandlers.js +46 -39
  175. package/build/core/tools/internal/installationHandlers.js.map +1 -1
  176. package/build/core/types/server.d.ts +2 -0
  177. package/build/core/types/server.d.ts.map +1 -1
  178. package/build/core/types/transport.d.ts +1 -1
  179. package/build/core/validation/schemaBoundary.d.ts +51 -0
  180. package/build/core/validation/schemaBoundary.d.ts.map +1 -0
  181. package/build/core/validation/schemaBoundary.js +237 -0
  182. package/build/core/validation/schemaBoundary.js.map +1 -0
  183. package/build/core/validation/schemaPolicy.d.ts +38 -0
  184. package/build/core/validation/schemaPolicy.d.ts.map +1 -0
  185. package/build/core/validation/schemaPolicy.js +127 -0
  186. package/build/core/validation/schemaPolicy.js.map +1 -0
  187. package/build/core/validation/schemaWorker.d.ts +2 -0
  188. package/build/core/validation/schemaWorker.d.ts.map +1 -0
  189. package/build/core/validation/schemaWorker.js +222 -0
  190. package/build/core/validation/schemaWorker.js.map +1 -0
  191. package/build/core/validation/toolSchemaBoundary.d.ts +19 -0
  192. package/build/core/validation/toolSchemaBoundary.d.ts.map +1 -0
  193. package/build/core/validation/toolSchemaBoundary.js +51 -0
  194. package/build/core/validation/toolSchemaBoundary.js.map +1 -0
  195. package/build/domains/admin/adminOperationService.d.ts +1 -0
  196. package/build/domains/admin/adminOperationService.d.ts.map +1 -1
  197. package/build/domains/admin/adminOperationService.js +4 -0
  198. package/build/domains/admin/adminOperationService.js.map +1 -1
  199. package/build/domains/config-change/configChange.d.ts.map +1 -1
  200. package/build/domains/config-change/configChange.js +36 -8
  201. package/build/domains/config-change/configChange.js.map +1 -1
  202. package/build/domains/installation/serverInstallationWorkflow.d.ts.map +1 -1
  203. package/build/domains/installation/serverInstallationWorkflow.js +21 -12
  204. package/build/domains/installation/serverInstallationWorkflow.js.map +1 -1
  205. package/build/domains/preset/manager/presetManager.d.ts.map +1 -1
  206. package/build/domains/preset/manager/presetManager.js +2 -1
  207. package/build/domains/preset/manager/presetManager.js.map +1 -1
  208. package/build/domains/registry/mcpRegistryClient.d.ts.map +1 -1
  209. package/build/domains/registry/mcpRegistryClient.js +10 -3
  210. package/build/domains/registry/mcpRegistryClient.js.map +1 -1
  211. package/build/gateway/adapters/modern/modernOutboundEraAdapter.d.ts +2 -1
  212. package/build/gateway/adapters/modern/modernOutboundEraAdapter.d.ts.map +1 -1
  213. package/build/gateway/adapters/modern/modernOutboundEraAdapter.js +77 -3
  214. package/build/gateway/adapters/modern/modernOutboundEraAdapter.js.map +1 -1
  215. package/build/gateway/contracts/gatewayFailure.d.ts +38 -0
  216. package/build/gateway/contracts/gatewayFailure.d.ts.map +1 -1
  217. package/build/gateway/contracts/gatewayFailure.js +137 -20
  218. package/build/gateway/contracts/gatewayFailure.js.map +1 -1
  219. package/build/gateway/core/gatewayDispatcher.d.ts +4 -0
  220. package/build/gateway/core/gatewayDispatcher.d.ts.map +1 -1
  221. package/build/gateway/core/gatewayDispatcher.js +35 -3
  222. package/build/gateway/core/gatewayDispatcher.js.map +1 -1
  223. package/build/gateway/interactions/interactionBroker.d.ts +29 -0
  224. package/build/gateway/interactions/interactionBroker.d.ts.map +1 -0
  225. package/build/gateway/interactions/interactionBroker.js +244 -0
  226. package/build/gateway/interactions/interactionBroker.js.map +1 -0
  227. package/build/gateway/interactions/interactionCapabilities.d.ts +4 -0
  228. package/build/gateway/interactions/interactionCapabilities.d.ts.map +1 -0
  229. package/build/gateway/interactions/interactionCapabilities.js +36 -0
  230. package/build/gateway/interactions/interactionCapabilities.js.map +1 -0
  231. package/build/gateway/interactions/interactionOwner.d.ts +45 -0
  232. package/build/gateway/interactions/interactionOwner.d.ts.map +1 -0
  233. package/build/gateway/interactions/interactionOwner.js +203 -0
  234. package/build/gateway/interactions/interactionOwner.js.map +1 -0
  235. package/build/gateway/interactions/interactionRoute.d.ts +16 -0
  236. package/build/gateway/interactions/interactionRoute.d.ts.map +1 -0
  237. package/build/gateway/interactions/interactionRoute.js +41 -0
  238. package/build/gateway/interactions/interactionRoute.js.map +1 -0
  239. package/build/gateway/interactions/validateInteractionResponse.d.ts +6 -0
  240. package/build/gateway/interactions/validateInteractionResponse.d.ts.map +1 -0
  241. package/build/gateway/interactions/validateInteractionResponse.js +175 -0
  242. package/build/gateway/interactions/validateInteractionResponse.js.map +1 -0
  243. package/build/gateway/ports/outboundEraAdapter.d.ts +10 -1
  244. package/build/gateway/ports/outboundEraAdapter.d.ts.map +1 -1
  245. package/build/sdk/contracts/legacySdkAdapter.d.ts +5 -0
  246. package/build/sdk/contracts/legacySdkAdapter.d.ts.map +1 -1
  247. package/build/sdk/contracts/protocol.d.ts +3 -3
  248. package/build/sdk/contracts/protocol.d.ts.map +1 -1
  249. package/build/sdk/contracts/protocol.js +3 -2
  250. package/build/sdk/contracts/protocol.js.map +1 -1
  251. package/build/sdk/legacy/client/runtime/backendDispatchLifetime.d.ts +8 -0
  252. package/build/sdk/legacy/client/runtime/backendDispatchLifetime.d.ts.map +1 -0
  253. package/build/sdk/legacy/client/runtime/backendDispatchLifetime.js +63 -0
  254. package/build/sdk/legacy/client/runtime/backendDispatchLifetime.js.map +1 -0
  255. package/build/sdk/legacy/client/runtime/clientFactory.d.ts +4 -1
  256. package/build/sdk/legacy/client/runtime/clientFactory.d.ts.map +1 -1
  257. package/build/sdk/legacy/client/runtime/clientFactory.js +41 -14
  258. package/build/sdk/legacy/client/runtime/clientFactory.js.map +1 -1
  259. package/build/sdk/legacy/client/runtime/clientManager.d.ts.map +1 -1
  260. package/build/sdk/legacy/client/runtime/clientManager.js +20 -7
  261. package/build/sdk/legacy/client/runtime/clientManager.js.map +1 -1
  262. package/build/sdk/legacy/client/runtime/legacyInteractionLease.d.ts +8 -0
  263. package/build/sdk/legacy/client/runtime/legacyInteractionLease.d.ts.map +1 -0
  264. package/build/sdk/legacy/client/runtime/legacyInteractionLease.js +44 -0
  265. package/build/sdk/legacy/client/runtime/legacyInteractionLease.js.map +1 -0
  266. package/build/sdk/legacy/client/runtime/legacySdkClientAdapter.d.ts +4 -0
  267. package/build/sdk/legacy/client/runtime/legacySdkClientAdapter.d.ts.map +1 -1
  268. package/build/sdk/legacy/client/runtime/legacySdkClientAdapter.js +20 -0
  269. package/build/sdk/legacy/client/runtime/legacySdkClientAdapter.js.map +1 -1
  270. package/build/sdk/legacy/client/runtime/legacyTransport.d.ts +2 -0
  271. package/build/sdk/legacy/client/runtime/legacyTransport.d.ts.map +1 -1
  272. package/build/sdk/legacy/client/runtime/modernSdkClientAdapter.d.ts +3 -0
  273. package/build/sdk/legacy/client/runtime/modernSdkClientAdapter.d.ts.map +1 -1
  274. package/build/sdk/legacy/client/runtime/modernSdkClientAdapter.js +98 -4
  275. package/build/sdk/legacy/client/runtime/modernSdkClientAdapter.js.map +1 -1
  276. package/build/sdk/legacy/commands/serve.d.ts +2 -0
  277. package/build/sdk/legacy/commands/serve.d.ts.map +1 -1
  278. package/build/sdk/legacy/commands/serve.js +40 -9
  279. package/build/sdk/legacy/commands/serve.js.map +1 -1
  280. package/build/sdk/legacy/server/protocol/notificationHandlers.d.ts.map +1 -1
  281. package/build/sdk/legacy/server/protocol/notificationHandlers.js +19 -47
  282. package/build/sdk/legacy/server/protocol/notificationHandlers.js.map +1 -1
  283. package/build/sdk/legacy/server/protocol/privateInteractionConnection.d.ts +7 -0
  284. package/build/sdk/legacy/server/protocol/privateInteractionConnection.d.ts.map +1 -0
  285. package/build/sdk/legacy/server/protocol/privateInteractionConnection.js +134 -0
  286. package/build/sdk/legacy/server/protocol/privateInteractionConnection.js.map +1 -0
  287. package/build/sdk/legacy/server/protocol/promptRequestHandlers.d.ts.map +1 -1
  288. package/build/sdk/legacy/server/protocol/promptRequestHandlers.js +4 -3
  289. package/build/sdk/legacy/server/protocol/promptRequestHandlers.js.map +1 -1
  290. package/build/sdk/legacy/server/protocol/requestHandlers.d.ts.map +1 -1
  291. package/build/sdk/legacy/server/protocol/requestHandlers.js +5 -47
  292. package/build/sdk/legacy/server/protocol/requestHandlers.js.map +1 -1
  293. package/build/sdk/legacy/server/protocol/requestInteractionScope.d.ts +17 -0
  294. package/build/sdk/legacy/server/protocol/requestInteractionScope.d.ts.map +1 -0
  295. package/build/sdk/legacy/server/protocol/requestInteractionScope.js +223 -0
  296. package/build/sdk/legacy/server/protocol/requestInteractionScope.js.map +1 -0
  297. package/build/sdk/legacy/server/protocol/resourceRequestHandlers.d.ts.map +1 -1
  298. package/build/sdk/legacy/server/protocol/resourceRequestHandlers.js +3 -2
  299. package/build/sdk/legacy/server/protocol/resourceRequestHandlers.js.map +1 -1
  300. package/build/sdk/legacy/server/protocol/toolRequestHandlers.d.ts.map +1 -1
  301. package/build/sdk/legacy/server/protocol/toolRequestHandlers.js +72 -17
  302. package/build/sdk/legacy/server/protocol/toolRequestHandlers.js.map +1 -1
  303. package/build/sdk/legacy/server/runtime/connectionManager.d.ts.map +1 -1
  304. package/build/sdk/legacy/server/runtime/connectionManager.js +3 -0
  305. package/build/sdk/legacy/server/runtime/connectionManager.js.map +1 -1
  306. package/build/sdk/legacy/server/runtime/serverManager.d.ts +2 -0
  307. package/build/sdk/legacy/server/runtime/serverManager.d.ts.map +1 -1
  308. package/build/sdk/legacy/server/runtime/serverManager.js +35 -8
  309. package/build/sdk/legacy/server/runtime/serverManager.js.map +1 -1
  310. package/build/sdk/legacy/shared/capabilityListCapture.d.ts.map +1 -1
  311. package/build/sdk/legacy/shared/capabilityListCapture.js +3 -0
  312. package/build/sdk/legacy/shared/capabilityListCapture.js.map +1 -1
  313. package/build/sdk/legacy/shared/schemaProjection.d.ts +11 -0
  314. package/build/sdk/legacy/shared/schemaProjection.d.ts.map +1 -0
  315. package/build/sdk/legacy/shared/schemaProjection.js +45 -0
  316. package/build/sdk/legacy/shared/schemaProjection.js.map +1 -0
  317. package/build/sdk/legacy/transport/http/middlewares/scopeAuthMiddleware.d.ts +2 -0
  318. package/build/sdk/legacy/transport/http/middlewares/scopeAuthMiddleware.d.ts.map +1 -1
  319. package/build/sdk/legacy/transport/http/middlewares/scopeAuthMiddleware.js +31 -0
  320. package/build/sdk/legacy/transport/http/middlewares/scopeAuthMiddleware.js.map +1 -1
  321. package/build/sdk/legacy/transport/http/modernInboundLegacyBridge.d.ts +7 -1
  322. package/build/sdk/legacy/transport/http/modernInboundLegacyBridge.d.ts.map +1 -1
  323. package/build/sdk/legacy/transport/http/modernInboundLegacyBridge.js +29 -4
  324. package/build/sdk/legacy/transport/http/modernInboundLegacyBridge.js.map +1 -1
  325. package/build/sdk/legacy/transport/http/server.d.ts +1 -1
  326. package/build/sdk/legacy/transport/http/server.d.ts.map +1 -1
  327. package/build/sdk/legacy/transport/http/server.js +2 -1
  328. package/build/sdk/legacy/transport/http/server.js.map +1 -1
  329. package/build/sdk/legacy/transport/transportFactory.d.ts.map +1 -1
  330. package/build/sdk/legacy/transport/transportFactory.js +4 -3
  331. package/build/sdk/legacy/transport/transportFactory.js.map +1 -1
  332. package/build/sdk/legacy/validation/CustomJsonSchemaValidator.d.ts +4 -52
  333. package/build/sdk/legacy/validation/CustomJsonSchemaValidator.d.ts.map +1 -1
  334. package/build/sdk/legacy/validation/CustomJsonSchemaValidator.js +5 -311
  335. package/build/sdk/legacy/validation/CustomJsonSchemaValidator.js.map +1 -1
  336. package/build/server.d.ts +2 -2
  337. package/build/server.d.ts.map +1 -1
  338. package/build/server.js +8 -6
  339. package/build/server.js.map +1 -1
  340. package/build/transport/http/routes/adminRoutes.d.ts.map +1 -1
  341. package/build/transport/http/routes/adminRoutes.js +37 -0
  342. package/build/transport/http/routes/adminRoutes.js.map +1 -1
  343. package/build/transport/http/routes/inspectRoutes.d.ts.map +1 -1
  344. package/build/transport/http/routes/inspectRoutes.js +77 -85
  345. package/build/transport/http/routes/inspectRoutes.js.map +1 -1
  346. package/build/transport/http/routes/modernHttpRoutes.d.ts +7 -1
  347. package/build/transport/http/routes/modernHttpRoutes.d.ts.map +1 -1
  348. package/build/transport/http/routes/modernHttpRoutes.js +121 -16
  349. package/build/transport/http/routes/modernHttpRoutes.js.map +1 -1
  350. package/build/transport/http/routes/modernInteractionBinding.d.ts +14 -0
  351. package/build/transport/http/routes/modernInteractionBinding.d.ts.map +1 -0
  352. package/build/transport/http/routes/modernInteractionBinding.js +142 -0
  353. package/build/transport/http/routes/modernInteractionBinding.js.map +1 -0
  354. package/build/transport/http/routes/toolRoutes.d.ts.map +1 -1
  355. package/build/transport/http/routes/toolRoutes.js +123 -27
  356. package/build/transport/http/routes/toolRoutes.js.map +1 -1
  357. package/build/transport/http/utils/contextExtractor.d.ts.map +1 -1
  358. package/build/transport/http/utils/contextExtractor.js +29 -0
  359. package/build/transport/http/utils/contextExtractor.js.map +1 -1
  360. package/build/utils/core/errorHandling.d.ts.map +1 -1
  361. package/build/utils/core/errorHandling.js +19 -4
  362. package/build/utils/core/errorHandling.js.map +1 -1
  363. package/build/utils/filePermissions.d.ts +3 -0
  364. package/build/utils/filePermissions.d.ts.map +1 -1
  365. package/build/utils/filePermissions.js +10 -0
  366. package/build/utils/filePermissions.js.map +1 -1
  367. package/build/utils/validation/urlDetection.d.ts.map +1 -1
  368. package/build/utils/validation/urlDetection.js +42 -2
  369. package/build/utils/validation/urlDetection.js.map +1 -1
  370. package/build/utils/watchPath.d.ts +3 -0
  371. package/build/utils/watchPath.d.ts.map +1 -0
  372. package/build/utils/watchPath.js +7 -0
  373. package/build/utils/watchPath.js.map +1 -0
  374. package/package.json +1 -1
@@ -3,6 +3,9 @@ import { ConnectionResolver } from '../server/connectionResolver.js';
3
3
  import { getDisabledSourceToolError, isSourceToolDisabled } from '../server/disabledTools.js';
4
4
  import { applySourceToolDescription } from '../server/toolDescriptionOverrides.js';
5
5
  import { ClientStatus, } from '../types/index.js';
6
+ import { SchemaBoundaryError } from '../validation/schemaBoundary.js';
7
+ import { admitToolSchemas, prepareToolValidation, projectToolSchemas, schemaInputErrorResult, } from '../validation/toolSchemaBoundary.js';
8
+ import { gatewayFailureFromUnknown } from '../../gateway/contracts/gatewayFailure.js';
6
9
  import logger from '../../logger/logger.js';
7
10
  import { walkCapabilityPages, } from './capabilityPagination.js';
8
11
  import { getCapabilityVisibleServerNames } from './capabilityVisibility.js';
@@ -84,7 +87,34 @@ export class CapabilityCatalog {
84
87
  async listVisibleTools(options = {}, visibility, queryOptions = {}) {
85
88
  const refresh = await this.resolveRefreshFacts(queryOptions.refreshIntent ?? 'never', 'list');
86
89
  const registry = this.visibleToolRegistry(visibility);
87
- const result = registry.listTools(options);
90
+ const admitted = [];
91
+ for (const tool of registry.getAllTools()) {
92
+ try {
93
+ const key = tool.connectionKey ?? tool.server;
94
+ const definition = tool.definition ??
95
+ this.deps.schemaCache.getIfCached(key, tool.name) ??
96
+ (this.deps.loadSchema ? await this.deps.loadSchema(key, tool.name, queryOptions.signal) : undefined);
97
+ if (!definition)
98
+ continue;
99
+ const contracts = await admitToolSchemas(definition, {
100
+ routeKey: JSON.stringify([key, tool.name]),
101
+ generation: this.deps.outboundConnections.get(key)?.adapter.connectionId ?? 'internal',
102
+ sourceRevision: this.deps.outboundConnections.get(key)?.adapter.protocolRevision,
103
+ signal: queryOptions.signal,
104
+ });
105
+ admitted.push({
106
+ tool: projectToolSchemas(definition, contracts),
107
+ server: tool.server,
108
+ connectionKey: key,
109
+ tags: tool.tags,
110
+ });
111
+ }
112
+ catch (error) {
113
+ if (!(error instanceof SchemaBoundaryError) || error.retryable)
114
+ throw error;
115
+ }
116
+ }
117
+ const result = ToolRegistry.fromToolsWithServer(admitted).listTools(options);
88
118
  const tools = result.tools;
89
119
  const servers = Array.from(new Set(tools.map((tool) => tool.server))).sort();
90
120
  const routes = tools
@@ -105,13 +135,20 @@ export class CapabilityCatalog {
105
135
  return { schema: {}, error: access.error, refresh };
106
136
  }
107
137
  const { route } = access;
108
- if (access.tool.definition && access.connection) {
138
+ const connection = access.connection;
139
+ if (access.tool.definition && connection) {
109
140
  const cached = this.deps.schemaCache.getIfCached(route.connectionKey, route.toolName);
110
141
  const fromCache = cached !== null && JSON.stringify(cached) === JSON.stringify(access.tool.definition);
142
+ const contracts = await admitToolSchemas(access.tool.definition, {
143
+ routeKey: JSON.stringify(route),
144
+ generation: connection.adapter.connectionId,
145
+ sourceRevision: connection.adapter.protocolRevision,
146
+ signal: queryOptions.signal,
147
+ });
111
148
  if (!fromCache)
112
149
  this.deps.schemaCache.set(route.connectionKey, route.toolName, access.tool.definition);
113
150
  return {
114
- schema: applySourceToolDescription(access.tool.definition, this.deps.getServerConfigs()[route.server], route.server),
151
+ schema: applySourceToolDescription(projectToolSchemas(access.tool.definition, contracts), this.deps.getServerConfigs()[route.server], route.server),
115
152
  fromCache,
116
153
  route,
117
154
  refresh,
@@ -119,8 +156,14 @@ export class CapabilityCatalog {
119
156
  }
120
157
  const cached = this.deps.schemaCache.getIfCached(route.connectionKey, route.toolName);
121
158
  if (cached) {
159
+ const contracts = await admitToolSchemas(cached, {
160
+ routeKey: JSON.stringify(route),
161
+ generation: this.deps.outboundConnections.get(route.connectionKey)?.adapter.connectionId ?? '',
162
+ sourceRevision: this.deps.outboundConnections.get(route.connectionKey)?.adapter.protocolRevision,
163
+ signal: queryOptions.signal,
164
+ });
122
165
  return {
123
- schema: applySourceToolDescription(cached, this.deps.getServerConfigs()[route.server], route.server),
166
+ schema: applySourceToolDescription(projectToolSchemas(cached, contracts), this.deps.getServerConfigs()[route.server], route.server),
124
167
  fromCache: true,
125
168
  route,
126
169
  refresh,
@@ -137,21 +180,28 @@ export class CapabilityCatalog {
137
180
  };
138
181
  }
139
182
  try {
140
- const tool = await this.deps.schemaCache.getOrLoad(route.connectionKey, route.toolName, this.deps.loadSchema);
183
+ const tool = await this.deps.schemaCache.getOrLoad(route.connectionKey, route.toolName, this.deps.loadSchema, queryOptions.signal);
184
+ const contracts = await admitToolSchemas(tool, {
185
+ routeKey: JSON.stringify(route),
186
+ generation: this.deps.outboundConnections.get(route.connectionKey)?.adapter.connectionId ?? '',
187
+ sourceRevision: this.deps.outboundConnections.get(route.connectionKey)?.adapter.protocolRevision,
188
+ signal: queryOptions.signal,
189
+ });
141
190
  return {
142
- schema: applySourceToolDescription(tool, this.deps.getServerConfigs()[route.server], route.server),
191
+ schema: applySourceToolDescription(projectToolSchemas(tool, contracts), this.deps.getServerConfigs()[route.server], route.server),
143
192
  fromCache: false,
144
193
  route,
145
194
  refresh,
146
195
  };
147
196
  }
148
197
  catch (error) {
149
- logger.error(`Failed to load tool schema from upstream server: ${route.server}:${route.toolName}`, { error });
198
+ const failure = gatewayFailureFromUnknown(error, 'transport');
199
+ logger.error('Failed to load upstream tool schema', { failure });
150
200
  return {
151
201
  schema: {},
152
202
  error: {
153
203
  type: 'upstream',
154
- message: `Failed to load schema from server: ${error}`,
204
+ message: failure.message,
155
205
  },
156
206
  refresh,
157
207
  };
@@ -187,27 +237,54 @@ export class CapabilityCatalog {
187
237
  };
188
238
  }
189
239
  try {
190
- const result = await requestLegacyAdapter(connection.adapter, 'tools/call', {
240
+ const adapter = connection.adapter;
241
+ const definition = access.tool.definition ??
242
+ this.deps.schemaCache.getIfCached(route.connectionKey, route.toolName) ??
243
+ (this.deps.loadSchema
244
+ ? await this.deps.loadSchema(route.connectionKey, route.toolName, queryOptions.signal)
245
+ : undefined);
246
+ if (!definition)
247
+ throw new SchemaBoundaryError('schema_invalid');
248
+ const binding = {
249
+ routeKey: JSON.stringify(route),
250
+ generation: adapter.connectionId,
251
+ sourceRevision: adapter.protocolRevision,
252
+ signal: queryOptions.signal,
253
+ };
254
+ const contracts = await admitToolSchemas(definition, binding);
255
+ const validateOutput = await prepareToolValidation(contracts, args.args, binding);
256
+ const current = this.resolveVisibleToolAccess(args, visibility);
257
+ if (queryOptions.signal?.aborted ||
258
+ current.error ||
259
+ this.deps.outboundConnections.get(route.connectionKey) !== connection ||
260
+ connection.adapter !== adapter ||
261
+ JSON.stringify(current.route) !== JSON.stringify(route) ||
262
+ (current.tool.definition && JSON.stringify(current.tool.definition) !== JSON.stringify(definition)))
263
+ throw new SchemaBoundaryError('schema_invalid');
264
+ const result = await requestLegacyAdapter(adapter, 'tools/call', {
191
265
  name: route.toolName,
192
266
  arguments: args.args,
193
- });
267
+ }, { signal: queryOptions.signal, timeoutMs: connection.requestTimeoutMs });
268
+ await validateOutput(result);
194
269
  return { result, server: route.server, tool: route.toolName, route, refresh };
195
270
  }
196
271
  catch (error) {
197
- logger.error(`Tool invocation failed: ${route.server}:${route.toolName}`, { error });
198
- if (error instanceof Error && error.message.includes('not found')) {
272
+ if (error instanceof SchemaBoundaryError && error.code === 'schema_input_invalid')
273
+ return { result: schemaInputErrorResult(), server: route.server, tool: route.toolName, route, refresh };
274
+ if (error instanceof SchemaBoundaryError)
199
275
  return {
200
276
  result: {},
201
277
  server: route.server,
202
278
  tool: route.toolName,
203
279
  route,
280
+ refresh,
204
281
  error: {
205
- type: 'not_found',
206
- message: `Tool not found: ${route.server}:${route.toolName}`,
282
+ type: !error.retryable && error.phase === 'input' ? 'validation' : 'upstream',
283
+ message: error.code,
207
284
  },
208
- refresh,
209
285
  };
210
- }
286
+ const failure = gatewayFailureFromUnknown(error, 'transport');
287
+ logger.error('Tool invocation failed', { failure });
211
288
  return {
212
289
  result: {},
213
290
  server: route.server,
@@ -215,7 +292,7 @@ export class CapabilityCatalog {
215
292
  route,
216
293
  error: {
217
294
  type: 'upstream',
218
- message: `Server Error: ${error}. This is an upstream server issue - please report it.`,
295
+ message: failure.message,
219
296
  },
220
297
  refresh,
221
298
  };
@@ -1 +1 @@
1
- {"version":3,"file":"capabilityCatalog.js","sourceRoot":"","sources":["../../../src/core/capabilities/capabilityCatalog.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"capabilityCatalog.js","sourceRoot":"","sources":["../../../src/core/capabilities/capabilityCatalog.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,11 @@
1
1
  import type { OutboundConnection, OutboundConnections } from '../types/index.js';
2
+ import { MCPError } from '../../utils/core/errorTypes.js';
3
+ export declare class CapabilityProvidersUnavailableError extends MCPError {
4
+ constructor();
5
+ }
6
+ export declare class CapabilityCursorCapacityError extends MCPError {
7
+ constructor();
8
+ }
2
9
  /** MCP result metadata key used to describe a partial aggregate walk. */
3
10
  export declare const CAPABILITY_PAGINATION_META_KEY = "app.1mcp/capability-pagination";
4
11
  /** Capability collections supported by aggregate pagination. */
@@ -18,6 +25,8 @@ export interface CapabilityPageProvider<T> {
18
25
  export interface CapabilityPaginationResult<T> extends CapabilityPage<T> {
19
26
  _meta?: Record<string, unknown>;
20
27
  }
28
+ /** Stable process-local invalidation epoch for operations pinned to these connections. */
29
+ export declare function getCapabilityPaginationGeneration(connections: OutboundConnections, kind: CapabilityKind): string;
21
30
  /** Invalidate outstanding cursors for one capability collection. */
22
31
  export declare function advanceCapabilityPaginationGeneration(connections: OutboundConnections, kind: CapabilityKind): void;
23
32
  /** Register generation invalidation for a provider created after inbound setup. */
@@ -29,6 +38,7 @@ export declare function registerCapabilityPaginationNotifications(connections: O
29
38
  export declare function unregisterCapabilityPaginationForwarder(connections: OutboundConnections, forwardingKey: object): void;
30
39
  /** Detach a disposed catalog scope from every adapter it observed, including replaced adapters. */
31
40
  export declare function unregisterCapabilityPaginationConnections(connections: OutboundConnections): void;
41
+ export declare function compareCodePoints(left: string, right: string): number;
32
42
  /** Walk visible capability providers using one aggregate cursor contract. */
33
43
  export declare function walkCapabilityPages<T>(options: {
34
44
  connections: OutboundConnections;
@@ -38,5 +48,6 @@ export declare function walkCapabilityPages<T>(options: {
38
48
  filterSelection: unknown;
39
49
  extraGenerationSignature?: unknown;
40
50
  enablePagination: boolean;
51
+ failedProviderIds?: readonly string[];
41
52
  }): Promise<CapabilityPaginationResult<T>>;
42
53
  //# sourceMappingURL=capabilityPagination.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"capabilityPagination.d.ts","sourceRoot":"","sources":["../../../src/core/capabilities/capabilityPagination.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAMxF,yEAAyE;AACzE,eAAO,MAAM,8BAA8B,mCAAmC,CAAC;AAE/E,gEAAgE;AAChE,MAAM,MAAM,cAAc,GAAG,OAAO,GAAG,WAAW,GAAG,mBAAmB,GAAG,SAAS,CAAC;AAErF,kDAAkD;AAClD,MAAM,WAAW,cAAc,CAAC,CAAC;IAC/B,KAAK,EAAE,CAAC,EAAE,CAAC;IACX,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,mEAAmE;AACnE,MAAM,WAAW,sBAAsB,CAAC,CAAC;IACvC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;CACnD;AAED,0DAA0D;AAC1D,MAAM,WAAW,0BAA0B,CAAC,CAAC,CAAE,SAAQ,cAAc,CAAC,CAAC,CAAC;IACtE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACjC;AAsDD,oEAAoE;AACpE,wBAAgB,qCAAqC,CAAC,WAAW,EAAE,mBAAmB,EAAE,IAAI,EAAE,cAAc,GAAG,IAAI,CAElH;AAED,mFAAmF;AACnF,wBAAgB,yCAAyC,CACvD,WAAW,EAAE,mBAAmB,EAChC,UAAU,EAAE,kBAAkB,EAC9B,aAAa,CAAC,EAAE,MAAM,EACtB,OAAO,CAAC,EAAE,CAAC,YAAY,EAAE;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,KAAK,OAAO,CAAC,IAAI,CAAC,GAC9F,IAAI,CAwBN;AAqCD,+EAA+E;AAC/E,wBAAgB,uCAAuC,CAAC,WAAW,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,GAAG,IAAI,CAIrH;AAED,mGAAmG;AACnG,wBAAgB,yCAAyC,CAAC,WAAW,EAAE,mBAAmB,GAAG,IAAI,CAMhG;AAmID,6EAA6E;AAC7E,wBAAsB,mBAAmB,CAAC,CAAC,EAAE,OAAO,EAAE;IACpD,WAAW,EAAE,mBAAmB,CAAC;IACjC,SAAS,EAAE,sBAAsB,CAAC,CAAC,CAAC,EAAE,CAAC;IACvC,IAAI,EAAE,cAAc,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,eAAe,EAAE,OAAO,CAAC;IACzB,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,gBAAgB,EAAE,OAAO,CAAC;CAC3B,GAAG,OAAO,CAAC,0BAA0B,CAAC,CAAC,CAAC,CAAC,CA4EzC"}
1
+ {"version":3,"file":"capabilityPagination.d.ts","sourceRoot":"","sources":["../../../src/core/capabilities/capabilityPagination.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAExF,OAAO,EAAE,QAAQ,EAAE,MAAM,+BAA+B,CAAC;AAIzD,qBAAa,mCAAoC,SAAQ,QAAQ;;CAKhE;AAED,qBAAa,6BAA8B,SAAQ,QAAQ;;CAO1D;AAED,yEAAyE;AACzE,eAAO,MAAM,8BAA8B,mCAAmC,CAAC;AAE/E,gEAAgE;AAChE,MAAM,MAAM,cAAc,GAAG,OAAO,GAAG,WAAW,GAAG,mBAAmB,GAAG,SAAS,CAAC;AAErF,kDAAkD;AAClD,MAAM,WAAW,cAAc,CAAC,CAAC;IAC/B,KAAK,EAAE,CAAC,EAAE,CAAC;IACX,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,mEAAmE;AACnE,MAAM,WAAW,sBAAsB,CAAC,CAAC;IACvC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC;CACnD;AAED,0DAA0D;AAC1D,MAAM,WAAW,0BAA0B,CAAC,CAAC,CAAE,SAAQ,cAAc,CAAC,CAAC,CAAC;IACtE,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACjC;AA0ED,0FAA0F;AAC1F,wBAAgB,iCAAiC,CAAC,WAAW,EAAE,mBAAmB,EAAE,IAAI,EAAE,cAAc,GAAG,MAAM,CAGhH;AAED,oEAAoE;AACpE,wBAAgB,qCAAqC,CAAC,WAAW,EAAE,mBAAmB,EAAE,IAAI,EAAE,cAAc,GAAG,IAAI,CAIlH;AAED,mFAAmF;AACnF,wBAAgB,yCAAyC,CACvD,WAAW,EAAE,mBAAmB,EAChC,UAAU,EAAE,kBAAkB,EAC9B,aAAa,CAAC,EAAE,MAAM,EACtB,OAAO,CAAC,EAAE,CAAC,YAAY,EAAE;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;CAAE,KAAK,OAAO,CAAC,IAAI,CAAC,GAC9F,IAAI,CAwBN;AAqCD,+EAA+E;AAC/E,wBAAgB,uCAAuC,CAAC,WAAW,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,GAAG,IAAI,CAIrH;AAED,mGAAmG;AACnG,wBAAgB,yCAAyC,CAAC,WAAW,EAAE,mBAAmB,GAAG,IAAI,CAWhG;AAoBD,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAQrE;AA+JD,6EAA6E;AAC7E,wBAAsB,mBAAmB,CAAC,CAAC,EAAE,OAAO,EAAE;IACpD,WAAW,EAAE,mBAAmB,CAAC;IACjC,SAAS,EAAE,sBAAsB,CAAC,CAAC,CAAC,EAAE,CAAC;IACvC,IAAI,EAAE,cAAc,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,eAAe,EAAE,OAAO,CAAC;IACzB,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,gBAAgB,EAAE,OAAO,CAAC;IAC1B,iBAAiB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CACvC,GAAG,OAAO,CAAC,0BAA0B,CAAC,CAAC,CAAC,CAAC,CA+GzC"}
@@ -1,7 +1,21 @@
1
- import { createHash, randomUUID } from 'node:crypto';
1
+ import { createHmac, randomBytes, randomUUID, timingSafeEqual } from 'node:crypto';
2
2
  import { ErrorCode } from '../../sdk/contracts/index.js';
3
3
  import { MCPError } from '../../utils/core/errorTypes.js';
4
4
  import { clearConfiguredToolSnapshot } from './configuredToolSnapshot.js';
5
+ export class CapabilityProvidersUnavailableError extends MCPError {
6
+ constructor() {
7
+ super('Capability providers are unavailable', -32000);
8
+ Object.setPrototypeOf(this, CapabilityProvidersUnavailableError.prototype);
9
+ }
10
+ }
11
+ export class CapabilityCursorCapacityError extends MCPError {
12
+ constructor() {
13
+ super('Capability cursor capacity exceeded', -32000, {
14
+ 'app.1mcp/failure': { kind: 'transport', code: 'gateway_overloaded' },
15
+ });
16
+ Object.setPrototypeOf(this, CapabilityCursorCapacityError.prototype);
17
+ }
18
+ }
5
19
  /** MCP result metadata key used to describe a partial aggregate walk. */
6
20
  export const CAPABILITY_PAGINATION_META_KEY = 'app.1mcp/capability-pagination';
7
21
  const runtimeStates = new WeakMap();
@@ -9,6 +23,14 @@ const notificationStates = new WeakMap();
9
23
  const registeredAdapters = new WeakMap();
10
24
  const clientIds = new WeakMap();
11
25
  const MAX_DISABLED_PAGINATION_PAGES = 1000;
26
+ const CURSOR_TTL_MS = 15 * 60 * 1000;
27
+ const MAX_CURSOR_LENGTH = 4 * 1024;
28
+ const upstreamCursors = new Map();
29
+ const MAX_GLOBAL_CURSOR_ENTRIES = 4000;
30
+ const MAX_SCOPE_CURSOR_ENTRIES = 1000;
31
+ const MAX_GLOBAL_CURSOR_BYTES = 64 * 1024 * 1024;
32
+ const MAX_SCOPE_CURSOR_BYTES = 32 * 1024 * 1024;
33
+ const cursorSecret = randomBytes(32);
12
34
  let nextClientId = 1;
13
35
  function getClientId(client) {
14
36
  let id = clientIds.get(client);
@@ -31,9 +53,16 @@ function getRuntimeState(connections) {
31
53
  }
32
54
  return state;
33
55
  }
56
+ /** Stable process-local invalidation epoch for operations pinned to these connections. */
57
+ export function getCapabilityPaginationGeneration(connections, kind) {
58
+ const state = getRuntimeState(connections);
59
+ return `${state.nonce}:${state.generation[kind]}`;
60
+ }
34
61
  /** Invalidate outstanding cursors for one capability collection. */
35
62
  export function advanceCapabilityPaginationGeneration(connections, kind) {
36
- getRuntimeState(connections).generation[kind] += 1;
63
+ const state = getRuntimeState(connections);
64
+ state.generation[kind] += 1;
65
+ pruneCursorStore(state);
37
66
  }
38
67
  /** Register generation invalidation for a provider created after inbound setup. */
39
68
  export function registerCapabilityPaginationNotifications(connections, connection, forwardingKey, forward) {
@@ -109,6 +138,12 @@ export function unregisterCapabilityPaginationConnections(connections) {
109
138
  notificationStates.get(adapter)?.connections.delete(connections);
110
139
  }
111
140
  registeredAdapters.delete(connections);
141
+ const state = runtimeStates.get(connections);
142
+ if (state)
143
+ for (const [key, entry] of upstreamCursors) {
144
+ if (entry.runtimeNonce === state.nonce)
145
+ upstreamCursors.delete(key);
146
+ }
112
147
  runtimeStates.delete(connections);
113
148
  }
114
149
  function stableValue(value) {
@@ -122,11 +157,11 @@ function stableValue(value) {
122
157
  return value;
123
158
  }
124
159
  function digest(value) {
125
- return createHash('sha256')
160
+ return createHmac('sha256', cursorSecret)
126
161
  .update(JSON.stringify(stableValue(value)))
127
162
  .digest('base64url');
128
163
  }
129
- function compareCodePoints(left, right) {
164
+ export function compareCodePoints(left, right) {
130
165
  const leftPoints = Array.from(left, (value) => value.codePointAt(0));
131
166
  const rightPoints = Array.from(right, (value) => value.codePointAt(0));
132
167
  const length = Math.min(leftPoints.length, rightPoints.length);
@@ -156,20 +191,78 @@ function observeGeneration(connections, kind, extraSignature) {
156
191
  state.generation[kind] += 1;
157
192
  }
158
193
  state.signature[kind] = signature;
194
+ pruneCursorStore(state);
159
195
  return `${state.nonce}:${state.generation[kind]}`;
160
196
  }
161
197
  function invalidCursor(reason) {
162
198
  throw new MCPError('Invalid capability pagination cursor', ErrorCode.InvalidParams, { reason });
163
199
  }
164
- function encodeCursor(cursor) {
165
- return Buffer.from(JSON.stringify(cursor)).toString('base64url');
200
+ function pruneCursorStore(state) {
201
+ const now = Date.now();
202
+ for (const [key, entry] of upstreamCursors) {
203
+ if (entry.expiresAt <= now ||
204
+ (state?.nonce === entry.runtimeNonce && entry.generation !== `${state.nonce}:${state.generation[entry.kind]}`))
205
+ upstreamCursors.delete(key);
206
+ }
207
+ }
208
+ function encodeCursor(cursor, scope, runtimeNonce) {
209
+ const bytes = cursor.u === undefined ? 0 : Buffer.byteLength(cursor.u);
210
+ if (bytes > 64 * 1024)
211
+ throw new Error('Upstream cursor exceeds the limit');
212
+ const upstreamKey = cursor.u === undefined ? undefined : digest([scope, cursor.g, cursor.u]);
213
+ const payload = Buffer.from(JSON.stringify({ ...cursor, u: upstreamKey })).toString('base64url');
214
+ const signature = createHmac('sha256', cursorSecret).update(payload).digest('base64url');
215
+ const encoded = `${payload}.${signature}`;
216
+ if (encoded.length > MAX_CURSOR_LENGTH)
217
+ throw new Error('Upstream pagination cursor exceeds the limit');
218
+ if (upstreamKey !== undefined && cursor.u !== undefined) {
219
+ pruneCursorStore();
220
+ const existing = upstreamCursors.get(upstreamKey);
221
+ if (!existing) {
222
+ let globalBytes = 0;
223
+ let scopeBytes = 0;
224
+ let scopeEntries = 0;
225
+ for (const entry of upstreamCursors.values()) {
226
+ globalBytes += entry.bytes;
227
+ if (entry.scope === scope) {
228
+ scopeBytes += entry.bytes;
229
+ scopeEntries++;
230
+ }
231
+ }
232
+ if (upstreamCursors.size >= MAX_GLOBAL_CURSOR_ENTRIES ||
233
+ scopeEntries >= MAX_SCOPE_CURSOR_ENTRIES ||
234
+ globalBytes + bytes > MAX_GLOBAL_CURSOR_BYTES ||
235
+ scopeBytes + bytes > MAX_SCOPE_CURSOR_BYTES) {
236
+ throw new CapabilityCursorCapacityError();
237
+ }
238
+ }
239
+ upstreamCursors.set(upstreamKey, {
240
+ value: cursor.u,
241
+ expiresAt: Math.max(cursor.e, existing?.expiresAt ?? 0),
242
+ scope,
243
+ runtimeNonce,
244
+ kind: cursor.k,
245
+ generation: cursor.g,
246
+ bytes,
247
+ });
248
+ }
249
+ return encoded;
166
250
  }
167
251
  function decodeCursor(value) {
168
- if (!/^[A-Za-z0-9_-]+$/.test(value))
252
+ if (value.length > MAX_CURSOR_LENGTH || !/^[A-Za-z0-9_-]+\.[A-Za-z0-9_-]{43}$/.test(value)) {
169
253
  invalidCursor('malformed');
254
+ }
255
+ const [payload, signature] = value.split('.');
256
+ const expected = createHmac('sha256', cursorSecret).update(payload).digest();
257
+ const actual = Buffer.from(signature, 'base64url');
258
+ if (actual.length !== expected.length ||
259
+ !timingSafeEqual(actual, expected) ||
260
+ actual.toString('base64url') !== signature) {
261
+ invalidCursor('authentication_failed');
262
+ }
170
263
  let decoded;
171
264
  try {
172
- decoded = JSON.parse(Buffer.from(value, 'base64url').toString('utf8'));
265
+ decoded = JSON.parse(Buffer.from(payload, 'base64url').toString('utf8'));
173
266
  }
174
267
  catch {
175
268
  invalidCursor('malformed');
@@ -177,34 +270,32 @@ function decodeCursor(value) {
177
270
  if (!decoded || typeof decoded !== 'object' || Array.isArray(decoded))
178
271
  invalidCursor('malformed');
179
272
  const cursor = decoded;
180
- const keys = Object.keys(cursor);
181
- const failuresValid = cursor.x === undefined || (typeof cursor.x === 'string' && /^[A-Za-z0-9_-]+$/.test(cursor.x));
182
- if (cursor.v !== 1 ||
183
- keys.some((key) => !['v', 'k', 'g', 'f', 'p', 'u', 'x'].includes(key)) ||
273
+ if (cursor.v !== 2 ||
274
+ !Number.isSafeInteger(cursor.e) ||
275
+ Object.keys(cursor).some((key) => !['v', 'e', 'k', 'g', 'f', 'p', 'u', 'x'].includes(key)) ||
184
276
  !['tools', 'resources', 'resourceTemplates', 'prompts'].includes(cursor.k ?? '') ||
185
277
  typeof cursor.g !== 'string' ||
186
278
  typeof cursor.f !== 'string' ||
187
279
  typeof cursor.p !== 'string' ||
188
280
  (cursor.u !== undefined && typeof cursor.u !== 'string') ||
189
- !failuresValid) {
281
+ (cursor.x !== undefined && (typeof cursor.x !== 'string' || !/^[A-Za-z0-9_-]+$/.test(cursor.x))))
190
282
  invalidCursor('malformed');
191
- }
283
+ if (cursor.e <= Date.now())
284
+ invalidCursor('expired');
192
285
  return cursor;
193
286
  }
194
- function partialMeta(failurePositions, providers) {
287
+ function partialMeta(failurePositions, generation) {
195
288
  if (failurePositions.length === 0)
196
289
  return undefined;
197
290
  return {
198
291
  [CAPABILITY_PAGINATION_META_KEY]: {
199
292
  partial: true,
200
- failures: failurePositions.map((position) => ({
201
- provider: providers[position].name,
202
- code: 'upstream_list_failed',
203
- })),
204
- recovery: {
205
- action: 'restart_without_cursor',
206
- description: 'Restart the capability listing without a cursor to retry unavailable providers.',
207
- },
293
+ complete: false,
294
+ generation,
295
+ failedSourceCount: failurePositions.length,
296
+ failureCategories: { upstream_list_failed: failurePositions.length },
297
+ retryable: true,
298
+ recovery: 'restart-walk',
208
299
  },
209
300
  };
210
301
  }
@@ -235,23 +326,39 @@ function decodeFailurePositions(value, providerCount) {
235
326
  /** Walk visible capability providers using one aggregate cursor contract. */
236
327
  export async function walkCapabilityPages(options) {
237
328
  const providers = [...options.providers].sort((left, right) => compareCodePoints(left.name, right.name) || compareCodePoints(left.id, right.id));
238
- const generation = observeGeneration(options.connections, options.kind, options.extraGenerationSignature);
239
- const filter = digest(options.filterSelection);
329
+ const generation = observeGeneration(options.connections, options.kind, {
330
+ providers: providers.map(({ id, name }) => ({ id, name })),
331
+ extra: options.extraGenerationSignature,
332
+ });
333
+ const filter = digest({ selection: options.filterSelection, enablePagination: options.enablePagination });
334
+ const runtimeNonce = getRuntimeState(options.connections).nonce;
335
+ const scope = digest([runtimeNonce, options.kind, filter]);
240
336
  let providerIndex = 0;
241
337
  let upstreamCursor;
242
- let failures = [];
243
- if (options.cursor) {
338
+ let failures = providers.flatMap((provider, index) => options.failedProviderIds?.includes(provider.id) ? [index] : []);
339
+ let expiresAt = Date.now() + CURSOR_TTL_MS;
340
+ if (options.cursor !== undefined) {
244
341
  const cursor = decodeCursor(options.cursor);
342
+ expiresAt = cursor.e;
245
343
  if (cursor.k !== options.kind)
246
344
  invalidCursor('capability_kind_mismatch');
247
345
  if (cursor.g !== generation)
248
346
  invalidCursor('stale_generation');
249
347
  if (cursor.f !== filter)
250
348
  invalidCursor('filter_mismatch');
251
- providerIndex = providers.findIndex((provider) => provider.id === cursor.p);
349
+ providerIndex = providers.findIndex((provider) => createHmac('sha256', cursorSecret).update(provider.id).digest('base64url') === cursor.p);
252
350
  if (providerIndex < 0)
253
351
  invalidCursor('provider_missing');
254
- upstreamCursor = cursor.u;
352
+ if (cursor.u !== undefined) {
353
+ const upstream = upstreamCursors.get(cursor.u);
354
+ if (!upstream ||
355
+ upstream.expiresAt <= Date.now() ||
356
+ upstream.scope !== scope ||
357
+ upstream.generation !== generation) {
358
+ invalidCursor('expired');
359
+ }
360
+ upstreamCursor = upstream.value;
361
+ }
255
362
  failures = decodeFailurePositions(cursor.x, providers.length);
256
363
  }
257
364
  if (!options.enablePagination) {
@@ -271,45 +378,56 @@ export async function walkCapabilityPages(options) {
271
378
  }
272
379
  if (cursor !== undefined)
273
380
  seenCursors.add(cursor);
274
- } while (cursor);
381
+ } while (cursor !== undefined);
275
382
  }
276
- catch {
383
+ catch (error) {
384
+ if (error instanceof CapabilityCursorCapacityError)
385
+ throw error;
277
386
  if (!failures.includes(position))
278
387
  failures.push(position);
279
388
  }
280
389
  }
281
- return { items, _meta: partialMeta(failures, providers) };
390
+ if (providers.length > 0 && failures.length === providers.length && items.length === 0) {
391
+ throw new CapabilityProvidersUnavailableError();
392
+ }
393
+ return { items, _meta: partialMeta(failures, generation) };
282
394
  }
283
395
  while (providerIndex < providers.length) {
284
396
  const provider = providers[providerIndex];
285
397
  try {
286
398
  const page = await provider.list(upstreamCursor);
287
- const nextProviderIndex = page.nextCursor ? providerIndex : providerIndex + 1;
399
+ const nextProviderIndex = page.nextCursor !== undefined ? providerIndex : providerIndex + 1;
288
400
  const nextProvider = providers[nextProviderIndex];
289
401
  const nextCursor = nextProvider
290
402
  ? encodeCursor({
291
- v: 1,
403
+ v: 2,
404
+ e: expiresAt,
292
405
  k: options.kind,
293
406
  g: generation,
294
407
  f: filter,
295
- p: nextProvider.id,
408
+ p: createHmac('sha256', cursorSecret).update(nextProvider.id).digest('base64url'),
296
409
  u: page.nextCursor,
297
410
  x: encodeFailurePositions(failures, providers.length),
298
- })
411
+ }, scope, runtimeNonce)
299
412
  : undefined;
300
- if (page.items.length > 0 || page.nextCursor) {
301
- return { items: page.items, nextCursor, _meta: partialMeta(failures, providers) };
413
+ if (page.items.length > 0 || page.nextCursor !== undefined) {
414
+ return { items: page.items, nextCursor, _meta: partialMeta(failures, generation) };
302
415
  }
303
416
  providerIndex += 1;
304
417
  upstreamCursor = undefined;
305
418
  }
306
- catch {
419
+ catch (error) {
420
+ if (error instanceof CapabilityCursorCapacityError)
421
+ throw error;
307
422
  if (!failures.includes(providerIndex))
308
423
  failures.push(providerIndex);
309
424
  providerIndex += 1;
310
425
  upstreamCursor = undefined;
311
426
  }
312
427
  }
313
- return { items: [], _meta: partialMeta(failures, providers) };
428
+ if (options.cursor === undefined && providers.length > 0 && failures.length === providers.length) {
429
+ throw new CapabilityProvidersUnavailableError();
430
+ }
431
+ return { items: [], _meta: partialMeta(failures, generation) };
314
432
  }
315
433
  //# sourceMappingURL=capabilityPagination.js.map