@1mcp/agent 0.39.0-beta.3 → 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 (391) hide show
  1. package/build/admin/assets/{admin-OAuthServicesWorkspace-D_GlqLxL.js → admin-OAuthServicesWorkspace-CKR1HA-8.js} +1 -1
  2. package/build/admin/assets/{admin-console-CMRxMjQo.js → admin-console-OfHKqRm-.js} +3 -3
  3. package/build/admin/index.html +1 -1
  4. package/build/auth/oauthAuthority.d.ts +149 -0
  5. package/build/auth/oauthAuthority.d.ts.map +1 -0
  6. package/build/auth/oauthAuthority.js +101 -0
  7. package/build/auth/oauthAuthority.js.map +1 -0
  8. package/build/auth/oauthAuthorizationFlow.d.ts +7 -1
  9. package/build/auth/oauthAuthorizationFlow.d.ts.map +1 -1
  10. package/build/auth/oauthAuthorizationFlow.js +60 -74
  11. package/build/auth/oauthAuthorizationFlow.js.map +1 -1
  12. package/build/auth/oauthEndpointFetch.d.ts +20 -0
  13. package/build/auth/oauthEndpointFetch.d.ts.map +1 -0
  14. package/build/auth/oauthEndpointFetch.js +246 -0
  15. package/build/auth/oauthEndpointFetch.js.map +1 -0
  16. package/build/auth/sessionTypes.d.ts +1 -1
  17. package/build/auth/storage/clientSessionRepository.d.ts +19 -0
  18. package/build/auth/storage/clientSessionRepository.d.ts.map +1 -1
  19. package/build/auth/storage/clientSessionRepository.js +178 -0
  20. package/build/auth/storage/clientSessionRepository.js.map +1 -1
  21. package/build/auth/storage/fileStorageService.d.ts +9 -1
  22. package/build/auth/storage/fileStorageService.d.ts.map +1 -1
  23. package/build/auth/storage/fileStorageService.js +32 -5
  24. package/build/auth/storage/fileStorageService.js.map +1 -1
  25. package/build/auth/storage/inboundOAuthStorage.d.ts +14 -0
  26. package/build/auth/storage/inboundOAuthStorage.d.ts.map +1 -0
  27. package/build/auth/storage/inboundOAuthStorage.js +29 -0
  28. package/build/auth/storage/inboundOAuthStorage.js.map +1 -0
  29. package/build/auth/storage/nativeCredentialStore.d.ts +44 -0
  30. package/build/auth/storage/nativeCredentialStore.d.ts.map +1 -0
  31. package/build/auth/storage/nativeCredentialStore.js +177 -0
  32. package/build/auth/storage/nativeCredentialStore.js.map +1 -0
  33. package/build/auth/storage/oauthStorageService.d.ts +8 -1
  34. package/build/auth/storage/oauthStorageService.d.ts.map +1 -1
  35. package/build/auth/storage/oauthStorageService.js +69 -47
  36. package/build/auth/storage/oauthStorageService.js.map +1 -1
  37. package/build/auth/storage/protectedRecordStorage.d.ts +129 -0
  38. package/build/auth/storage/protectedRecordStorage.d.ts.map +1 -0
  39. package/build/auth/storage/protectedRecordStorage.js +1139 -0
  40. package/build/auth/storage/protectedRecordStorage.js.map +1 -0
  41. package/build/auth/storage/sessionRepository.d.ts.map +1 -1
  42. package/build/auth/storage/sessionRepository.js +10 -0
  43. package/build/auth/storage/sessionRepository.js.map +1 -1
  44. package/build/auth/storage/upstreamOAuthStorage.d.ts +15 -0
  45. package/build/auth/storage/upstreamOAuthStorage.d.ts.map +1 -0
  46. package/build/auth/storage/upstreamOAuthStorage.js +25 -0
  47. package/build/auth/storage/upstreamOAuthStorage.js.map +1 -0
  48. package/build/auth/storage/upstreamOAuthStoragePath.d.ts +3 -0
  49. package/build/auth/storage/upstreamOAuthStoragePath.d.ts.map +1 -0
  50. package/build/auth/storage/upstreamOAuthStoragePath.js +8 -0
  51. package/build/auth/storage/upstreamOAuthStoragePath.js.map +1 -0
  52. package/build/commands/auth/exportOAuthCredentials.d.ts +9 -0
  53. package/build/commands/auth/exportOAuthCredentials.d.ts.map +1 -0
  54. package/build/commands/auth/exportOAuthCredentials.js +71 -0
  55. package/build/commands/auth/exportOAuthCredentials.js.map +1 -0
  56. package/build/commands/auth/exportUpstreamCredentials.d.ts +5 -0
  57. package/build/commands/auth/exportUpstreamCredentials.d.ts.map +1 -0
  58. package/build/commands/auth/exportUpstreamCredentials.js +6 -0
  59. package/build/commands/auth/exportUpstreamCredentials.js.map +1 -0
  60. package/build/commands/auth/index.d.ts.map +1 -1
  61. package/build/commands/auth/index.js +23 -1
  62. package/build/commands/auth/index.js.map +1 -1
  63. package/build/commands/inspect/inspectUtils.d.ts.map +1 -1
  64. package/build/commands/inspect/inspectUtils.js +2 -3
  65. package/build/commands/inspect/inspectUtils.js.map +1 -1
  66. package/build/commands/run/runUtils.js +2 -2
  67. package/build/commands/run/runUtils.js.map +1 -1
  68. package/build/commands/serve/index.d.ts +5 -0
  69. package/build/commands/serve/index.d.ts.map +1 -1
  70. package/build/commands/serve/index.js +5 -0
  71. package/build/commands/serve/index.js.map +1 -1
  72. package/build/commands/serve/serveBackground.d.ts.map +1 -1
  73. package/build/commands/serve/serveBackground.js +1 -0
  74. package/build/commands/serve/serveBackground.js.map +1 -1
  75. package/build/config/configLoader.d.ts.map +1 -1
  76. package/build/config/configLoader.js +13 -0
  77. package/build/config/configLoader.js.map +1 -1
  78. package/build/config/configManager.d.ts.map +1 -1
  79. package/build/config/configManager.js +44 -2
  80. package/build/config/configManager.js.map +1 -1
  81. package/build/config/configWatcher.d.ts.map +1 -1
  82. package/build/config/configWatcher.js +3 -1
  83. package/build/config/configWatcher.js.map +1 -1
  84. package/build/config/envProcessor.d.ts.map +1 -1
  85. package/build/config/envProcessor.js +3 -1
  86. package/build/config/envProcessor.js.map +1 -1
  87. package/build/config/mcpConfigManager.d.ts.map +1 -1
  88. package/build/config/mcpConfigManager.js +4 -1
  89. package/build/config/mcpConfigManager.js.map +1 -1
  90. package/build/config/projectConfigLoader.d.ts.map +1 -1
  91. package/build/config/projectConfigLoader.js +7 -0
  92. package/build/config/projectConfigLoader.js.map +1 -1
  93. package/build/constants/mcp.d.ts +1 -1
  94. package/build/constants/mcp.js +1 -1
  95. package/build/core/capabilities/asyncLoadingOrchestrator.d.ts.map +1 -1
  96. package/build/core/capabilities/asyncLoadingOrchestrator.js +31 -2
  97. package/build/core/capabilities/asyncLoadingOrchestrator.js.map +1 -1
  98. package/build/core/capabilities/capabilityAggregator.d.ts +3 -1
  99. package/build/core/capabilities/capabilityAggregator.d.ts.map +1 -1
  100. package/build/core/capabilities/capabilityAggregator.js +9 -2
  101. package/build/core/capabilities/capabilityAggregator.js.map +1 -1
  102. package/build/core/capabilities/capabilityCatalog.d.ts +24 -1
  103. package/build/core/capabilities/capabilityCatalog.d.ts.map +1 -1
  104. package/build/core/capabilities/capabilityCatalog.js +410 -39
  105. package/build/core/capabilities/capabilityCatalog.js.map +1 -1
  106. package/build/core/capabilities/capabilityPagination.d.ts +18 -1
  107. package/build/core/capabilities/capabilityPagination.d.ts.map +1 -1
  108. package/build/core/capabilities/capabilityPagination.js +101 -15
  109. package/build/core/capabilities/capabilityPagination.js.map +1 -1
  110. package/build/core/capabilities/capabilityVisibility.d.ts +13 -1
  111. package/build/core/capabilities/capabilityVisibility.d.ts.map +1 -1
  112. package/build/core/capabilities/capabilityVisibility.js +24 -1
  113. package/build/core/capabilities/capabilityVisibility.js.map +1 -1
  114. package/build/core/capabilities/catalogGeneration.d.ts.map +1 -1
  115. package/build/core/capabilities/catalogGeneration.js +20 -1
  116. package/build/core/capabilities/catalogGeneration.js.map +1 -1
  117. package/build/core/capabilities/configuredToolSnapshot.d.ts +1 -0
  118. package/build/core/capabilities/configuredToolSnapshot.d.ts.map +1 -1
  119. package/build/core/capabilities/configuredToolSnapshot.js +30 -4
  120. package/build/core/capabilities/configuredToolSnapshot.js.map +1 -1
  121. package/build/core/capabilities/lazyLoadingOrchestrator.d.ts +2 -0
  122. package/build/core/capabilities/lazyLoadingOrchestrator.d.ts.map +1 -1
  123. package/build/core/capabilities/lazyLoadingOrchestrator.js +20 -4
  124. package/build/core/capabilities/lazyLoadingOrchestrator.js.map +1 -1
  125. package/build/core/capabilities/metaToolProvider.d.ts +3 -1
  126. package/build/core/capabilities/metaToolProvider.d.ts.map +1 -1
  127. package/build/core/capabilities/metaToolProvider.js +42 -4
  128. package/build/core/capabilities/metaToolProvider.js.map +1 -1
  129. package/build/core/capabilities/runtimeCapabilityCatalog.d.ts +15 -2
  130. package/build/core/capabilities/runtimeCapabilityCatalog.d.ts.map +1 -1
  131. package/build/core/capabilities/runtimeCapabilityCatalog.js +153 -16
  132. package/build/core/capabilities/runtimeCapabilityCatalog.js.map +1 -1
  133. package/build/core/capabilities/schemaCache.d.ts.map +1 -1
  134. package/build/core/capabilities/schemaCache.js +41 -0
  135. package/build/core/capabilities/schemaCache.js.map +1 -1
  136. package/build/core/capabilities/schemas/metaToolSchemas.d.ts +1 -0
  137. package/build/core/capabilities/schemas/metaToolSchemas.d.ts.map +1 -1
  138. package/build/core/capabilities/schemas/metaToolSchemas.js +1 -0
  139. package/build/core/capabilities/schemas/metaToolSchemas.js.map +1 -1
  140. package/build/core/capabilities/toolRegistry.d.ts +7 -3
  141. package/build/core/capabilities/toolRegistry.d.ts.map +1 -1
  142. package/build/core/capabilities/toolRegistry.js +28 -9
  143. package/build/core/capabilities/toolRegistry.js.map +1 -1
  144. package/build/core/instructions/instructionAggregator.d.ts.map +1 -1
  145. package/build/core/instructions/instructionAggregator.js +3 -1
  146. package/build/core/instructions/instructionAggregator.js.map +1 -1
  147. package/build/core/instructions/templateTypes.d.ts +1 -1
  148. package/build/core/instructions/templateTypes.d.ts.map +1 -1
  149. package/build/core/instructions/templateTypes.js +3 -3
  150. package/build/core/loading/loadingStateTracker.d.ts.map +1 -1
  151. package/build/core/loading/loadingStateTracker.js +11 -2
  152. package/build/core/loading/loadingStateTracker.js.map +1 -1
  153. package/build/core/loading/mcpLoadingManager.d.ts.map +1 -1
  154. package/build/core/loading/mcpLoadingManager.js +6 -2
  155. package/build/core/loading/mcpLoadingManager.js.map +1 -1
  156. package/build/core/protocol/requestHandlerUtils.d.ts +2 -2
  157. package/build/core/protocol/requestHandlerUtils.d.ts.map +1 -1
  158. package/build/core/protocol/requestHandlerUtils.js +7 -4
  159. package/build/core/protocol/requestHandlerUtils.js.map +1 -1
  160. package/build/core/server/agentConfig.d.ts +1 -0
  161. package/build/core/server/agentConfig.d.ts.map +1 -1
  162. package/build/core/server/agentConfig.js +1 -0
  163. package/build/core/server/agentConfig.js.map +1 -1
  164. package/build/core/server/disabledTools.d.ts +1 -1
  165. package/build/core/server/disabledTools.d.ts.map +1 -1
  166. package/build/core/server/disabledTools.js +18 -25
  167. package/build/core/server/disabledTools.js.map +1 -1
  168. package/build/core/server/processIdentity.d.ts.map +1 -1
  169. package/build/core/server/processIdentity.js +67 -18
  170. package/build/core/server/processIdentity.js.map +1 -1
  171. package/build/core/server/runtimeLaunchIpc.d.ts +14 -1
  172. package/build/core/server/runtimeLaunchIpc.d.ts.map +1 -1
  173. package/build/core/server/runtimeReplacementConfig.d.ts +14 -1
  174. package/build/core/server/runtimeReplacementConfig.d.ts.map +1 -1
  175. package/build/core/server/toolDescriptionOverrides.d.ts +1 -0
  176. package/build/core/server/toolDescriptionOverrides.d.ts.map +1 -1
  177. package/build/core/server/toolDescriptionOverrides.js +30 -5
  178. package/build/core/server/toolDescriptionOverrides.js.map +1 -1
  179. package/build/core/tools/handlers/serverManagementHandler.d.ts +21 -0
  180. package/build/core/tools/handlers/serverManagementHandler.d.ts.map +1 -1
  181. package/build/core/tools/internal/adapters/helpers/configTransformers.d.ts +3 -0
  182. package/build/core/tools/internal/adapters/helpers/configTransformers.d.ts.map +1 -1
  183. package/build/core/tools/internal/schemas/discovery.d.ts +1 -1
  184. package/build/core/tools/internal/schemas/index.d.ts +1 -1
  185. package/build/core/types/transport.d.ts +25 -2
  186. package/build/core/types/transport.d.ts.map +1 -1
  187. package/build/core/types/transport.js +12 -0
  188. package/build/core/types/transport.js.map +1 -1
  189. package/build/domains/admin/configuredToolInventory.d.ts.map +1 -1
  190. package/build/domains/admin/configuredToolInventory.js +47 -9
  191. package/build/domains/admin/configuredToolInventory.js.map +1 -1
  192. package/build/domains/admin/runtimeConfiguredToolInspectionService.d.ts.map +1 -1
  193. package/build/domains/admin/runtimeConfiguredToolInspectionService.js +13 -3
  194. package/build/domains/admin/runtimeConfiguredToolInspectionService.js.map +1 -1
  195. package/build/gateway/adapters/modern/modernInboundEraAdapter.d.ts.map +1 -1
  196. package/build/gateway/adapters/modern/modernInboundEraAdapter.js +3 -3
  197. package/build/gateway/adapters/modern/modernInboundEraAdapter.js.map +1 -1
  198. package/build/gateway/adapters/modern/modernOutboundEraAdapter.d.ts.map +1 -1
  199. package/build/gateway/adapters/modern/modernOutboundEraAdapter.js +4 -0
  200. package/build/gateway/adapters/modern/modernOutboundEraAdapter.js.map +1 -1
  201. package/build/gateway/contracts/gatewayFailure.d.ts +39 -1
  202. package/build/gateway/contracts/gatewayFailure.d.ts.map +1 -1
  203. package/build/gateway/contracts/gatewayFailure.js +139 -0
  204. package/build/gateway/contracts/gatewayFailure.js.map +1 -1
  205. package/build/gateway/interactions/nativeInputResponses.d.ts +16 -0
  206. package/build/gateway/interactions/nativeInputResponses.d.ts.map +1 -0
  207. package/build/gateway/interactions/nativeInputResponses.js +76 -0
  208. package/build/gateway/interactions/nativeInputResponses.js.map +1 -0
  209. package/build/gateway/interactions/validateInteractionResponse.d.ts.map +1 -1
  210. package/build/gateway/interactions/validateInteractionResponse.js +20 -1
  211. package/build/gateway/interactions/validateInteractionResponse.js.map +1 -1
  212. package/build/gateway/ports/outboundEraAdapter.d.ts +2 -0
  213. package/build/gateway/ports/outboundEraAdapter.d.ts.map +1 -1
  214. package/build/logger/diagnosticRedaction.d.ts +3 -0
  215. package/build/logger/diagnosticRedaction.d.ts.map +1 -0
  216. package/build/logger/diagnosticRedaction.js +12 -0
  217. package/build/logger/diagnosticRedaction.js.map +1 -0
  218. package/build/logger/httpDiagnostics.d.ts +25 -0
  219. package/build/logger/httpDiagnostics.d.ts.map +1 -0
  220. package/build/logger/httpDiagnostics.js +125 -0
  221. package/build/logger/httpDiagnostics.js.map +1 -0
  222. package/build/logger/localDiagnosticRecord.d.ts +11 -0
  223. package/build/logger/localDiagnosticRecord.d.ts.map +1 -0
  224. package/build/logger/localDiagnosticRecord.js +9 -0
  225. package/build/logger/localDiagnosticRecord.js.map +1 -0
  226. package/build/logger/localDiagnostics.d.ts +5 -0
  227. package/build/logger/localDiagnostics.d.ts.map +1 -0
  228. package/build/logger/localDiagnostics.js +116 -0
  229. package/build/logger/localDiagnostics.js.map +1 -0
  230. package/build/logger/logger.d.ts +7 -0
  231. package/build/logger/logger.d.ts.map +1 -1
  232. package/build/logger/logger.js +14 -0
  233. package/build/logger/logger.js.map +1 -1
  234. package/build/observability/events/registry.d.ts +163 -49
  235. package/build/observability/events/registry.d.ts.map +1 -1
  236. package/build/observability/events/registry.js +136 -49
  237. package/build/observability/events/registry.js.map +1 -1
  238. package/build/observability/privacy/fields.d.ts +3 -1
  239. package/build/observability/privacy/fields.d.ts.map +1 -1
  240. package/build/observability/privacy/fields.js +23 -0
  241. package/build/observability/privacy/fields.js.map +1 -1
  242. package/build/sdk/contracts/catalogCoverageInvalidation.d.ts +4 -0
  243. package/build/sdk/contracts/catalogCoverageInvalidation.d.ts.map +1 -0
  244. package/build/sdk/contracts/catalogCoverageInvalidation.js +13 -0
  245. package/build/sdk/contracts/catalogCoverageInvalidation.js.map +1 -0
  246. package/build/sdk/contracts/mcpParamHeaders.d.ts +17 -0
  247. package/build/sdk/contracts/mcpParamHeaders.d.ts.map +1 -0
  248. package/build/sdk/contracts/mcpParamHeaders.js +134 -0
  249. package/build/sdk/contracts/mcpParamHeaders.js.map +1 -0
  250. package/build/sdk/contracts/requestProgress.d.ts +29 -0
  251. package/build/sdk/contracts/requestProgress.d.ts.map +1 -0
  252. package/build/sdk/contracts/requestProgress.js +126 -0
  253. package/build/sdk/contracts/requestProgress.js.map +1 -0
  254. package/build/sdk/legacy/auth/sdkOAuthClientProvider.d.ts +77 -84
  255. package/build/sdk/legacy/auth/sdkOAuthClientProvider.d.ts.map +1 -1
  256. package/build/sdk/legacy/auth/sdkOAuthClientProvider.js +632 -209
  257. package/build/sdk/legacy/auth/sdkOAuthClientProvider.js.map +1 -1
  258. package/build/sdk/legacy/auth/sdkOAuthServerProvider.d.ts.map +1 -1
  259. package/build/sdk/legacy/auth/sdkOAuthServerProvider.js +25 -7
  260. package/build/sdk/legacy/auth/sdkOAuthServerProvider.js.map +1 -1
  261. package/build/sdk/legacy/client/runtime/clientManager.d.ts +5 -1
  262. package/build/sdk/legacy/client/runtime/clientManager.d.ts.map +1 -1
  263. package/build/sdk/legacy/client/runtime/clientManager.js +213 -6
  264. package/build/sdk/legacy/client/runtime/clientManager.js.map +1 -1
  265. package/build/sdk/legacy/client/runtime/connectionHandler.d.ts.map +1 -1
  266. package/build/sdk/legacy/client/runtime/connectionHandler.js +70 -4
  267. package/build/sdk/legacy/client/runtime/connectionHandler.js.map +1 -1
  268. package/build/sdk/legacy/client/runtime/legacyInteractionLease.d.ts +2 -1
  269. package/build/sdk/legacy/client/runtime/legacyInteractionLease.d.ts.map +1 -1
  270. package/build/sdk/legacy/client/runtime/legacyInteractionLease.js +11 -2
  271. package/build/sdk/legacy/client/runtime/legacyInteractionLease.js.map +1 -1
  272. package/build/sdk/legacy/client/runtime/legacySdkClientAdapter.d.ts.map +1 -1
  273. package/build/sdk/legacy/client/runtime/legacySdkClientAdapter.js +28 -2
  274. package/build/sdk/legacy/client/runtime/legacySdkClientAdapter.js.map +1 -1
  275. package/build/sdk/legacy/client/runtime/mcpParamHeaders.d.ts +2 -0
  276. package/build/sdk/legacy/client/runtime/mcpParamHeaders.d.ts.map +1 -0
  277. package/build/sdk/legacy/client/runtime/mcpParamHeaders.js +2 -0
  278. package/build/sdk/legacy/client/runtime/mcpParamHeaders.js.map +1 -0
  279. package/build/sdk/legacy/client/runtime/modernSdkClientAdapter.d.ts +6 -0
  280. package/build/sdk/legacy/client/runtime/modernSdkClientAdapter.d.ts.map +1 -1
  281. package/build/sdk/legacy/client/runtime/modernSdkClientAdapter.js +117 -6
  282. package/build/sdk/legacy/client/runtime/modernSdkClientAdapter.js.map +1 -1
  283. package/build/sdk/legacy/client/runtime/oauthFlowHandler.d.ts +1 -1
  284. package/build/sdk/legacy/client/runtime/oauthFlowHandler.d.ts.map +1 -1
  285. package/build/sdk/legacy/client/runtime/oauthFlowHandler.js +68 -16
  286. package/build/sdk/legacy/client/runtime/oauthFlowHandler.js.map +1 -1
  287. package/build/sdk/legacy/commands/serve.d.ts +1 -0
  288. package/build/sdk/legacy/commands/serve.d.ts.map +1 -1
  289. package/build/sdk/legacy/commands/serve.js +28 -2
  290. package/build/sdk/legacy/commands/serve.js.map +1 -1
  291. package/build/sdk/legacy/server/protocol/notificationHandlers.d.ts.map +1 -1
  292. package/build/sdk/legacy/server/protocol/notificationHandlers.js +2 -6
  293. package/build/sdk/legacy/server/protocol/notificationHandlers.js.map +1 -1
  294. package/build/sdk/legacy/server/protocol/privateInteractionConnection.d.ts +1 -1
  295. package/build/sdk/legacy/server/protocol/privateInteractionConnection.d.ts.map +1 -1
  296. package/build/sdk/legacy/server/protocol/privateInteractionConnection.js +31 -11
  297. package/build/sdk/legacy/server/protocol/privateInteractionConnection.js.map +1 -1
  298. package/build/sdk/legacy/server/protocol/promptRequestHandlers.d.ts.map +1 -1
  299. package/build/sdk/legacy/server/protocol/promptRequestHandlers.js +4 -4
  300. package/build/sdk/legacy/server/protocol/promptRequestHandlers.js.map +1 -1
  301. package/build/sdk/legacy/server/protocol/requestInteractionScope.d.ts.map +1 -1
  302. package/build/sdk/legacy/server/protocol/requestInteractionScope.js +62 -10
  303. package/build/sdk/legacy/server/protocol/requestInteractionScope.js.map +1 -1
  304. package/build/sdk/legacy/server/protocol/requestProviderProgress.d.ts +8 -0
  305. package/build/sdk/legacy/server/protocol/requestProviderProgress.d.ts.map +1 -0
  306. package/build/sdk/legacy/server/protocol/requestProviderProgress.js +29 -0
  307. package/build/sdk/legacy/server/protocol/requestProviderProgress.js.map +1 -0
  308. package/build/sdk/legacy/server/protocol/resourceRequestHandlers.d.ts.map +1 -1
  309. package/build/sdk/legacy/server/protocol/resourceRequestHandlers.js +20 -2
  310. package/build/sdk/legacy/server/protocol/resourceRequestHandlers.js.map +1 -1
  311. package/build/sdk/legacy/server/protocol/toolRequestHandlers.d.ts.map +1 -1
  312. package/build/sdk/legacy/server/protocol/toolRequestHandlers.js +151 -60
  313. package/build/sdk/legacy/server/protocol/toolRequestHandlers.js.map +1 -1
  314. package/build/sdk/legacy/server/retained-sdk/LICENSE +21 -0
  315. package/build/sdk/legacy/server/retained-sdk/provenance.json +17 -0
  316. package/build/sdk/legacy/server/retained-sdk/streamableHttp.js +160 -0
  317. package/build/sdk/legacy/server/retained-sdk/webStandardStreamableHttp.js +950 -0
  318. package/build/sdk/legacy/server/runtime/clientInstancePool.d.ts.map +1 -1
  319. package/build/sdk/legacy/server/runtime/clientInstancePool.js +34 -6
  320. package/build/sdk/legacy/server/runtime/clientInstancePool.js.map +1 -1
  321. package/build/sdk/legacy/server/runtime/mcpLoggingEnhancer.d.ts.map +1 -1
  322. package/build/sdk/legacy/server/runtime/mcpLoggingEnhancer.js +4 -2
  323. package/build/sdk/legacy/server/runtime/mcpLoggingEnhancer.js.map +1 -1
  324. package/build/sdk/legacy/server/runtime/serverManager.d.ts.map +1 -1
  325. package/build/sdk/legacy/server/runtime/serverManager.js +3 -1
  326. package/build/sdk/legacy/server/runtime/serverManager.js.map +1 -1
  327. package/build/sdk/legacy/server/runtime/templateServerManager.d.ts.map +1 -1
  328. package/build/sdk/legacy/server/runtime/templateServerManager.js +32 -7
  329. package/build/sdk/legacy/server/runtime/templateServerManager.js.map +1 -1
  330. package/build/sdk/legacy/server/streamableHttp.js +1 -1
  331. package/build/sdk/legacy/shared/resourceTemplateRouting.d.ts.map +1 -1
  332. package/build/sdk/legacy/shared/resourceTemplateRouting.js +29 -11
  333. package/build/sdk/legacy/shared/resourceTemplateRouting.js.map +1 -1
  334. package/build/sdk/legacy/transport/http/middlewares/scopeAuthMiddleware.d.ts.map +1 -1
  335. package/build/sdk/legacy/transport/http/middlewares/scopeAuthMiddleware.js +12 -1
  336. package/build/sdk/legacy/transport/http/middlewares/scopeAuthMiddleware.js.map +1 -1
  337. package/build/sdk/legacy/transport/http/modernInboundLegacyBridge.d.ts +4 -0
  338. package/build/sdk/legacy/transport/http/modernInboundLegacyBridge.d.ts.map +1 -1
  339. package/build/sdk/legacy/transport/http/modernInboundLegacyBridge.js +11 -0
  340. package/build/sdk/legacy/transport/http/modernInboundLegacyBridge.js.map +1 -1
  341. package/build/sdk/legacy/transport/http/server.d.ts.map +1 -1
  342. package/build/sdk/legacy/transport/http/server.js +16 -2
  343. package/build/sdk/legacy/transport/http/server.js.map +1 -1
  344. package/build/sdk/legacy/transport/transportFactory.d.ts.map +1 -1
  345. package/build/sdk/legacy/transport/transportFactory.js +34 -12
  346. package/build/sdk/legacy/transport/transportFactory.js.map +1 -1
  347. package/build/transport/http/middlewares/httpRequestLogger.d.ts +4 -2
  348. package/build/transport/http/middlewares/httpRequestLogger.d.ts.map +1 -1
  349. package/build/transport/http/middlewares/httpRequestLogger.js +135 -16
  350. package/build/transport/http/middlewares/httpRequestLogger.js.map +1 -1
  351. package/build/transport/http/routes/cliTokenRoute.d.ts.map +1 -1
  352. package/build/transport/http/routes/cliTokenRoute.js +1 -0
  353. package/build/transport/http/routes/cliTokenRoute.js.map +1 -1
  354. package/build/transport/http/routes/healthRoutes.d.ts +11 -1
  355. package/build/transport/http/routes/healthRoutes.d.ts.map +1 -1
  356. package/build/transport/http/routes/healthRoutes.js +6 -2
  357. package/build/transport/http/routes/healthRoutes.js.map +1 -1
  358. package/build/transport/http/routes/inspectHelpers.d.ts.map +1 -1
  359. package/build/transport/http/routes/inspectHelpers.js +4 -3
  360. package/build/transport/http/routes/inspectHelpers.js.map +1 -1
  361. package/build/transport/http/routes/modernHttpRoutes.d.ts +4 -0
  362. package/build/transport/http/routes/modernHttpRoutes.d.ts.map +1 -1
  363. package/build/transport/http/routes/modernHttpRoutes.js +168 -24
  364. package/build/transport/http/routes/modernHttpRoutes.js.map +1 -1
  365. package/build/transport/http/routes/modernInteractionBinding.d.ts +2 -1
  366. package/build/transport/http/routes/modernInteractionBinding.d.ts.map +1 -1
  367. package/build/transport/http/routes/modernInteractionBinding.js +7 -4
  368. package/build/transport/http/routes/modernInteractionBinding.js.map +1 -1
  369. package/build/transport/http/routes/modernToolHeaderRegistry.d.ts +16 -0
  370. package/build/transport/http/routes/modernToolHeaderRegistry.d.ts.map +1 -0
  371. package/build/transport/http/routes/modernToolHeaderRegistry.js +161 -0
  372. package/build/transport/http/routes/modernToolHeaderRegistry.js.map +1 -0
  373. package/build/transport/http/routes/oauthRoutes.d.ts.map +1 -1
  374. package/build/transport/http/routes/oauthRoutes.js +6 -3
  375. package/build/transport/http/routes/oauthRoutes.js.map +1 -1
  376. package/build/transport/http/routes/toolRoutes.d.ts.map +1 -1
  377. package/build/transport/http/routes/toolRoutes.js +18 -2
  378. package/build/transport/http/routes/toolRoutes.js.map +1 -1
  379. package/build/utils/core/parsing.d.ts +2 -0
  380. package/build/utils/core/parsing.d.ts.map +1 -1
  381. package/build/utils/core/parsing.js +19 -0
  382. package/build/utils/core/parsing.js.map +1 -1
  383. package/build/utils/core/resourceUris.d.ts +6 -0
  384. package/build/utils/core/resourceUris.d.ts.map +1 -0
  385. package/build/utils/core/resourceUris.js +104 -0
  386. package/build/utils/core/resourceUris.js.map +1 -0
  387. package/build/utils/core/toolNames.d.ts +8 -0
  388. package/build/utils/core/toolNames.d.ts.map +1 -0
  389. package/build/utils/core/toolNames.js +56 -0
  390. package/build/utils/core/toolNames.js.map +1 -0
  391. package/package.json +68 -64
@@ -0,0 +1,246 @@
1
+ import { lookup } from 'node:dns/promises';
2
+ import http from 'node:http';
3
+ import https from 'node:https';
4
+ import { isIP } from 'node:net';
5
+ import { Readable, Transform } from 'node:stream';
6
+ import { oauthAuthorityError } from './oauthAuthority.js';
7
+ export const OAUTH_RESPONSE_LIMIT = 1024 * 1024;
8
+ export const OAUTH_FETCH_TIMEOUT_MS = 10_000;
9
+ export class OAuthResourceRedirectError extends Error {
10
+ constructor() {
11
+ super('Configured MCP resource redirects; configure the upstream URL to its final destination');
12
+ }
13
+ }
14
+ export function isPrivateOAuthAddress(address) {
15
+ const ip = address.toLowerCase().replace(/^\[|\]$/g, '');
16
+ if (ip.includes(':')) {
17
+ if (ip.startsWith('::ffff:'))
18
+ return isPrivateOAuthAddress(ip.slice(7));
19
+ // Fail closed for non-global unicast IPv6, including mapped/transition forms.
20
+ return (!/^[23][0-9a-f]{3}:/.test(ip) ||
21
+ ip.startsWith('2001:db8:') ||
22
+ ip.startsWith('2002:') ||
23
+ ip.startsWith('2001:0:') ||
24
+ ip.startsWith('2001::'));
25
+ }
26
+ const parts = ip.split('.').map(Number);
27
+ if (parts.length !== 4 || parts.some((part) => !Number.isInteger(part) || part < 0 || part > 255))
28
+ return true;
29
+ const [a, b] = parts;
30
+ return (a === 0 ||
31
+ a === 10 ||
32
+ a === 127 ||
33
+ a >= 224 ||
34
+ (a === 169 && b === 254) ||
35
+ (a === 172 && b >= 16 && b <= 31) ||
36
+ (a === 192 && (b === 168 || b === 0)) ||
37
+ (a === 100 && b >= 64 && b <= 127) ||
38
+ (a === 198 && (b === 18 || b === 19)));
39
+ }
40
+ function isConfiguredLocalOrigin(url, configuredResource, configuredIssuer) {
41
+ for (const configuredValue of [configuredResource, configuredIssuer]) {
42
+ if (!configuredValue)
43
+ continue;
44
+ const configured = new URL(configuredValue);
45
+ const hostname = configured.hostname.replace(/^\[|\]$/g, '');
46
+ const local = configured.hostname === 'localhost' || (isIP(hostname) !== 0 && isPrivateOAuthAddress(hostname));
47
+ if (local && url.origin === configured.origin)
48
+ return true;
49
+ }
50
+ return false;
51
+ }
52
+ export function validateOAuthEndpoint(value, configuredResource, expectedOrigin, configuredIssuer) {
53
+ try {
54
+ const url = new URL(value);
55
+ const localException = isConfiguredLocalOrigin(url, configuredResource, configuredIssuer);
56
+ if (url.username || url.password || url.hash)
57
+ throw oauthAuthorityError();
58
+ if (url.protocol !== 'https:' && !(localException && url.protocol === 'http:'))
59
+ throw oauthAuthorityError();
60
+ if (expectedOrigin && url.origin !== expectedOrigin)
61
+ throw oauthAuthorityError();
62
+ if (url.hostname === 'localhost' && !localException)
63
+ throw oauthAuthorityError();
64
+ if (isIP(url.hostname.replace(/^\[|\]$/g, '')) && isPrivateOAuthAddress(url.hostname) && !localException)
65
+ throw oauthAuthorityError();
66
+ return url;
67
+ }
68
+ catch {
69
+ throw oauthAuthorityError();
70
+ }
71
+ }
72
+ /** Pin the DNS result into the actual socket lookup, not just a preflight check. */
73
+ export function createOAuthEndpointFetch(options) {
74
+ return async (input, init) => {
75
+ let resourceRequest = false;
76
+ try {
77
+ const request = input instanceof Request ? input : undefined;
78
+ const target = new URL(request?.url ?? String(input));
79
+ const resource = new URL(options.resource);
80
+ const isResource = options.isResource(target);
81
+ const url = isResource ? target : validateOAuthEndpoint(target.href, options.resource, undefined, options.issuer);
82
+ if (!['http:', 'https:'].includes(url.protocol) || url.username || url.password || url.hash)
83
+ throw oauthAuthorityError();
84
+ resourceRequest = isResource;
85
+ const deadline = AbortSignal.timeout(OAUTH_FETCH_TIMEOUT_MS);
86
+ const signal = init?.signal ?? request?.signal;
87
+ const boundedSignal = signal ? AbortSignal.any([signal, deadline]) : deadline;
88
+ const inputInit = request
89
+ ? {
90
+ method: request.method,
91
+ headers: request.headers,
92
+ body: request.method === 'GET' || request.method === 'HEAD' ? undefined : await request.text(),
93
+ ...init,
94
+ }
95
+ : init;
96
+ const safeInit = await options.beforeRequest(url, { ...inputInit, signal: isResource ? signal : boundedSignal });
97
+ const hostname = url.hostname.replace(/^\[|\]$/g, '');
98
+ const addresses = isIP(hostname)
99
+ ? [{ address: hostname, family: isIP(hostname) }]
100
+ : await Promise.race([
101
+ lookup(hostname, { all: true }),
102
+ new Promise((_resolve, reject) => boundedSignal.addEventListener('abort', () => reject(oauthAuthorityError()), { once: true })),
103
+ ]);
104
+ const localException = isResource || isConfiguredLocalOrigin(url, options.resource, options.issuer);
105
+ if (!addresses.length || (!localException && addresses.some((item) => isPrivateOAuthAddress(item.address))))
106
+ throw oauthAuthorityError();
107
+ const resolved = addresses
108
+ .map((item) => item.address)
109
+ .sort()
110
+ .join(',');
111
+ await options.pinDestination(url.host, resolved, safeInit);
112
+ if (boundedSignal.aborted)
113
+ throw oauthAuthorityError();
114
+ const headers = new Headers(safeInit.headers);
115
+ const body = safeInit.body;
116
+ if (body !== undefined && body !== null && typeof body !== 'string' && !(body instanceof URLSearchParams))
117
+ throw oauthAuthorityError();
118
+ const response = await new Promise((resolve, reject) => {
119
+ const outgoing = (url.protocol === 'https:' ? https : http).request(url, {
120
+ family: addresses[0].family,
121
+ method: safeInit.method ?? 'GET',
122
+ headers: Object.fromEntries(headers.entries()),
123
+ signal: safeInit.signal ?? undefined,
124
+ lookup: (_name, options, callback) => {
125
+ if (options.all)
126
+ callback(null, addresses);
127
+ else
128
+ callback(null, addresses[0].address, addresses[0].family);
129
+ },
130
+ }, resolve);
131
+ outgoing.on('error', reject);
132
+ if (!isResource)
133
+ outgoing.setTimeout(OAUTH_FETCH_TIMEOUT_MS, () => outgoing.destroy(oauthAuthorityError()));
134
+ outgoing.end(body?.toString());
135
+ });
136
+ const status = response.statusCode ?? 500;
137
+ if (status >= 300 && status < 400) {
138
+ response.destroy();
139
+ if (isResource)
140
+ throw new OAuthResourceRedirectError();
141
+ throw oauthAuthorityError();
142
+ }
143
+ const responseHeaders = new Headers();
144
+ for (const [key, value] of Object.entries(response.headers)) {
145
+ if (Array.isArray(value))
146
+ value.forEach((item) => responseHeaders.append(key, item));
147
+ else if (value !== undefined)
148
+ responseHeaders.set(key, value);
149
+ }
150
+ // MCP response streams remain streaming; OAuth metadata/token bodies are bounded.
151
+ const oauthResponse = !isResource;
152
+ if (!oauthResponse) {
153
+ let stream = response;
154
+ if (url.href === resource.href &&
155
+ options.acceptSseEndpoint &&
156
+ responseHeaders.get('content-type')?.includes('text/event-stream')) {
157
+ let pending = '';
158
+ let observed = false;
159
+ const parser = new Transform({
160
+ transform(chunk, _encoding, callback) {
161
+ if (!observed) {
162
+ pending += chunk.toString('utf8');
163
+ if (pending.length > 16 * 1024) {
164
+ callback(oauthAuthorityError());
165
+ return;
166
+ }
167
+ const end = pending.search(/\r?\n\r?\n/);
168
+ if (end >= 0) {
169
+ const event = pending.slice(0, end);
170
+ if (/^event:\s*endpoint$/m.test(event)) {
171
+ const data = /^data:\s*(.+)$/m.exec(event)?.[1];
172
+ try {
173
+ if (data)
174
+ options.acceptSseEndpoint(data);
175
+ }
176
+ catch {
177
+ callback(oauthAuthorityError());
178
+ return;
179
+ }
180
+ observed = true;
181
+ }
182
+ pending = pending.slice(end).replace(/^\s+/, '');
183
+ }
184
+ }
185
+ callback(null, chunk);
186
+ },
187
+ });
188
+ stream = response.pipe(parser);
189
+ }
190
+ return new Response(status === 204 || status === 205 || status === 304
191
+ ? null
192
+ : Readable.toWeb(stream), { status, headers: responseHeaders });
193
+ }
194
+ const chunks = [];
195
+ let size = 0;
196
+ for await (const chunk of response) {
197
+ const bytes = Buffer.from(chunk);
198
+ size += bytes.length;
199
+ if (size > OAUTH_RESPONSE_LIMIT) {
200
+ response.destroy();
201
+ throw oauthAuthorityError();
202
+ }
203
+ chunks.push(bytes);
204
+ }
205
+ let text = Buffer.concat(chunks).toString('utf8');
206
+ if (status >= 200 && status < 300 && (safeInit.method ?? 'GET') === 'GET') {
207
+ const value = JSON.parse(text);
208
+ if (!value || typeof value !== 'object' || Array.isArray(value))
209
+ throw oauthAuthorityError();
210
+ text = JSON.stringify(options.metadata(value, url, safeInit));
211
+ }
212
+ if (status >= 200 && status < 300 && (safeInit.method ?? 'GET') === 'POST') {
213
+ const value = JSON.parse(text);
214
+ if (!value || typeof value !== 'object' || Array.isArray(value))
215
+ throw oauthAuthorityError();
216
+ options.response(value, url, safeInit);
217
+ }
218
+ // Provider error descriptions are untrusted and may echo secrets.
219
+ if (status >= 400) {
220
+ let code = 'server_error';
221
+ try {
222
+ const value = JSON.parse(text);
223
+ if (value &&
224
+ typeof value === 'object' &&
225
+ 'error' in value &&
226
+ ['invalid_client', 'invalid_grant', 'invalid_scope', 'unauthorized_client', 'access_denied'].includes(String(value.error)))
227
+ code = String(value.error);
228
+ }
229
+ catch {
230
+ /* Return bounded non-secret OAuth error. */
231
+ }
232
+ text = JSON.stringify({ error: code });
233
+ }
234
+ responseHeaders.delete('content-length');
235
+ responseHeaders.delete('content-encoding');
236
+ return new Response(status === 204 || status === 205 ? null : text, { status, headers: responseHeaders });
237
+ }
238
+ catch (error) {
239
+ options.onFailure(resourceRequest);
240
+ if (error instanceof OAuthResourceRedirectError)
241
+ throw error;
242
+ throw oauthAuthorityError();
243
+ }
244
+ };
245
+ }
246
+ //# sourceMappingURL=oauthEndpointFetch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oauthEndpointFetch.js","sourceRoot":"","sources":["../../src/auth/oauthEndpointFetch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,KAAK,MAAM,YAAY,CAAC;AAC/B,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAChC,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAElD,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAE1D,MAAM,CAAC,MAAM,oBAAoB,GAAG,IAAI,GAAG,IAAI,CAAC;AAChD,MAAM,CAAC,MAAM,sBAAsB,GAAG,MAAM,CAAC;AAE7C,MAAM,OAAO,0BAA2B,SAAQ,KAAK;IACnD;QACE,KAAK,CAAC,wFAAwF,CAAC,CAAC;IAClG,CAAC;CACF;AAED,MAAM,UAAU,qBAAqB,CAAC,OAAe;IACnD,MAAM,EAAE,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;IACzD,IAAI,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QACrB,IAAI,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC;YAAE,OAAO,qBAAqB,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACxE,8EAA8E;QAC9E,OAAO,CACL,CAAC,mBAAmB,CAAC,IAAI,CAAC,EAAE,CAAC;YAC7B,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC;YAC1B,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC;YACtB,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC;YACxB,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CACxB,CAAC;IACJ,CAAC;IACD,MAAM,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACxC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IAC/G,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC;IACrB,OAAO,CACL,CAAC,KAAK,CAAC;QACP,CAAC,KAAK,EAAE;QACR,CAAC,KAAK,GAAG;QACT,CAAC,IAAI,GAAG;QACR,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC;QACxB,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC;QACjC,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;QACrC,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,GAAG,CAAC;QAClC,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CACtC,CAAC;AACJ,CAAC;AAED,SAAS,uBAAuB,CAAC,GAAQ,EAAE,kBAA0B,EAAE,gBAAyB;IAC9F,KAAK,MAAM,eAAe,IAAI,CAAC,kBAAkB,EAAE,gBAAgB,CAAC,EAAE,CAAC;QACrE,IAAI,CAAC,eAAe;YAAE,SAAS;QAC/B,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,eAAe,CAAC,CAAC;QAC5C,MAAM,QAAQ,GAAG,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;QAC7D,MAAM,KAAK,GAAG,UAAU,CAAC,QAAQ,KAAK,WAAW,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,qBAAqB,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC/G,IAAI,KAAK,IAAI,GAAG,CAAC,MAAM,KAAK,UAAU,CAAC,MAAM;YAAE,OAAO,IAAI,CAAC;IAC7D,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,qBAAqB,CACnC,KAAa,EACb,kBAA0B,EAC1B,cAAuB,EACvB,gBAAyB;IAEzB,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC;QAC3B,MAAM,cAAc,GAAG,uBAAuB,CAAC,GAAG,EAAE,kBAAkB,EAAE,gBAAgB,CAAC,CAAC;QAC1F,IAAI,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,IAAI;YAAE,MAAM,mBAAmB,EAAE,CAAC;QAC1E,IAAI,GAAG,CAAC,QAAQ,KAAK,QAAQ,IAAI,CAAC,CAAC,cAAc,IAAI,GAAG,CAAC,QAAQ,KAAK,OAAO,CAAC;YAAE,MAAM,mBAAmB,EAAE,CAAC;QAC5G,IAAI,cAAc,IAAI,GAAG,CAAC,MAAM,KAAK,cAAc;YAAE,MAAM,mBAAmB,EAAE,CAAC;QACjF,IAAI,GAAG,CAAC,QAAQ,KAAK,WAAW,IAAI,CAAC,cAAc;YAAE,MAAM,mBAAmB,EAAE,CAAC;QACjF,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,IAAI,qBAAqB,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,cAAc;YACtG,MAAM,mBAAmB,EAAE,CAAC;QAC9B,OAAO,GAAG,CAAC;IACb,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,mBAAmB,EAAE,CAAC;IAC9B,CAAC;AACH,CAAC;AAED,oFAAoF;AACpF,MAAM,UAAU,wBAAwB,CAAC,OAUxC;IACC,OAAO,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;QAC3B,IAAI,eAAe,GAAG,KAAK,CAAC;QAC5B,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,KAAK,YAAY,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;YAC7D,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,OAAO,EAAE,GAAG,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;YACtD,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YAC3C,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;YAC9C,MAAM,GAAG,GAAG,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,qBAAqB,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,QAAQ,EAAE,SAAS,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;YAClH,IAAI,CAAC,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,IAAI;gBACzF,MAAM,mBAAmB,EAAE,CAAC;YAC9B,eAAe,GAAG,UAAU,CAAC;YAC7B,MAAM,QAAQ,GAAG,WAAW,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC;YAC7D,MAAM,MAAM,GAAG,IAAI,EAAE,MAAM,IAAI,OAAO,EAAE,MAAM,CAAC;YAC/C,MAAM,aAAa,GAAG,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;YAC9E,MAAM,SAAS,GAAG,OAAO;gBACvB,CAAC,CAAC;oBACE,MAAM,EAAE,OAAO,CAAC,MAAM;oBACtB,OAAO,EAAE,OAAO,CAAC,OAAO;oBACxB,IAAI,EAAE,OAAO,CAAC,MAAM,KAAK,KAAK,IAAI,OAAO,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,OAAO,CAAC,IAAI,EAAE;oBAC9F,GAAG,IAAI;iBACR;gBACH,CAAC,CAAC,IAAI,CAAC;YACT,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,aAAa,CAAC,GAAG,EAAE,EAAE,GAAG,SAAS,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,aAAa,EAAE,CAAC,CAAC;YACjH,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;YACtD,MAAM,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC;gBAC9B,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACjD,CAAC,CAAC,MAAM,OAAO,CAAC,IAAI,CAAC;oBACjB,MAAM,CAAC,QAAQ,EAAE,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC;oBAC/B,IAAI,OAAO,CAAQ,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,CACtC,aAAa,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,mBAAmB,EAAE,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAC7F;iBACF,CAAC,CAAC;YACP,MAAM,cAAc,GAAG,UAAU,IAAI,uBAAuB,CAAC,GAAG,EAAE,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;YACpG,IAAI,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,CAAC,cAAc,IAAI,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,qBAAqB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;gBACzG,MAAM,mBAAmB,EAAE,CAAC;YAC9B,MAAM,QAAQ,GAAG,SAAS;iBACvB,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC;iBAC3B,IAAI,EAAE;iBACN,IAAI,CAAC,GAAG,CAAC,CAAC;YACb,MAAM,OAAO,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;YAC3D,IAAI,aAAa,CAAC,OAAO;gBAAE,MAAM,mBAAmB,EAAE,CAAC;YACvD,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YAC9C,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC;YAC3B,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,CAAC,CAAC,IAAI,YAAY,eAAe,CAAC;gBACvG,MAAM,mBAAmB,EAAE,CAAC;YAC9B,MAAM,QAAQ,GAAG,MAAM,IAAI,OAAO,CAAuB,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;gBAC3E,MAAM,QAAQ,GAAG,CAAC,GAAG,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CACjE,GAAG,EACH;oBACE,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM;oBAC3B,MAAM,EAAE,QAAQ,CAAC,MAAM,IAAI,KAAK;oBAChC,OAAO,EAAE,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;oBAC9C,MAAM,EAAE,QAAQ,CAAC,MAAM,IAAI,SAAS;oBACpC,MAAM,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE;wBACnC,IAAI,OAAO,CAAC,GAAG;4BAAE,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;;4BACtC,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;oBACjE,CAAC;iBACF,EACD,OAAO,CACR,CAAC;gBACF,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;gBAC7B,IAAI,CAAC,UAAU;oBAAE,QAAQ,CAAC,UAAU,CAAC,sBAAsB,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,mBAAmB,EAAE,CAAC,CAAC,CAAC;gBAC5G,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;YACjC,CAAC,CAAC,CAAC;YACH,MAAM,MAAM,GAAG,QAAQ,CAAC,UAAU,IAAI,GAAG,CAAC;YAC1C,IAAI,MAAM,IAAI,GAAG,IAAI,MAAM,GAAG,GAAG,EAAE,CAAC;gBAClC,QAAQ,CAAC,OAAO,EAAE,CAAC;gBACnB,IAAI,UAAU;oBAAE,MAAM,IAAI,0BAA0B,EAAE,CAAC;gBACvD,MAAM,mBAAmB,EAAE,CAAC;YAC9B,CAAC;YACD,MAAM,eAAe,GAAG,IAAI,OAAO,EAAE,CAAC;YACtC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC5D,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;oBAAE,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,eAAe,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC;qBAChF,IAAI,KAAK,KAAK,SAAS;oBAAE,eAAe,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YAChE,CAAC;YACD,kFAAkF;YAClF,MAAM,aAAa,GAAG,CAAC,UAAU,CAAC;YAClC,IAAI,CAAC,aAAa,EAAE,CAAC;gBACnB,IAAI,MAAM,GAAa,QAAQ,CAAC;gBAChC,IACE,GAAG,CAAC,IAAI,KAAK,QAAQ,CAAC,IAAI;oBAC1B,OAAO,CAAC,iBAAiB;oBACzB,eAAe,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,QAAQ,CAAC,mBAAmB,CAAC,EAClE,CAAC;oBACD,IAAI,OAAO,GAAG,EAAE,CAAC;oBACjB,IAAI,QAAQ,GAAG,KAAK,CAAC;oBACrB,MAAM,MAAM,GAAG,IAAI,SAAS,CAAC;wBAC3B,SAAS,CAAC,KAAa,EAAE,SAAS,EAAE,QAAQ;4BAC1C,IAAI,CAAC,QAAQ,EAAE,CAAC;gCACd,OAAO,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;gCAClC,IAAI,OAAO,CAAC,MAAM,GAAG,EAAE,GAAG,IAAI,EAAE,CAAC;oCAC/B,QAAQ,CAAC,mBAAmB,EAAE,CAAC,CAAC;oCAChC,OAAO;gCACT,CAAC;gCACD,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;gCACzC,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC;oCACb,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;oCACpC,IAAI,sBAAsB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;wCACvC,MAAM,IAAI,GAAG,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;wCAChD,IAAI,CAAC;4CACH,IAAI,IAAI;gDAAE,OAAO,CAAC,iBAAkB,CAAC,IAAI,CAAC,CAAC;wCAC7C,CAAC;wCAAC,MAAM,CAAC;4CACP,QAAQ,CAAC,mBAAmB,EAAE,CAAC,CAAC;4CAChC,OAAO;wCACT,CAAC;wCACD,QAAQ,GAAG,IAAI,CAAC;oCAClB,CAAC;oCACD,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;gCACnD,CAAC;4BACH,CAAC;4BACD,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;wBACxB,CAAC;qBACF,CAAC,CAAC;oBACH,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACjC,CAAC;gBACD,OAAO,IAAI,QAAQ,CACjB,MAAM,KAAK,GAAG,IAAI,MAAM,KAAK,GAAG,IAAI,MAAM,KAAK,GAAG;oBAChD,CAAC,CAAC,IAAI;oBACN,CAAC,CAAE,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAgC,EAC1D,EAAE,MAAM,EAAE,OAAO,EAAE,eAAe,EAAE,CACrC,CAAC;YACJ,CAAC;YACD,MAAM,MAAM,GAAa,EAAE,CAAC;YAC5B,IAAI,IAAI,GAAG,CAAC,CAAC;YACb,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,QAAQ,EAAE,CAAC;gBACnC,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,KAAmB,CAAC,CAAC;gBAC/C,IAAI,IAAI,KAAK,CAAC,MAAM,CAAC;gBACrB,IAAI,IAAI,GAAG,oBAAoB,EAAE,CAAC;oBAChC,QAAQ,CAAC,OAAO,EAAE,CAAC;oBACnB,MAAM,mBAAmB,EAAE,CAAC;gBAC9B,CAAC;gBACD,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACrB,CAAC;YACD,IAAI,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YAClD,IAAI,MAAM,IAAI,GAAG,IAAI,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,IAAI,KAAK,CAAC,KAAK,KAAK,EAAE,CAAC;gBAC1E,MAAM,KAAK,GAAY,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBACxC,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;oBAAE,MAAM,mBAAmB,EAAE,CAAC;gBAC7F,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAgC,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC;YAC3F,CAAC;YACD,IAAI,MAAM,IAAI,GAAG,IAAI,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,IAAI,KAAK,CAAC,KAAK,MAAM,EAAE,CAAC;gBAC3E,MAAM,KAAK,GAAY,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBACxC,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;oBAAE,MAAM,mBAAmB,EAAE,CAAC;gBAC7F,OAAO,CAAC,QAAQ,CAAC,KAAgC,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC;YACpE,CAAC;YACD,kEAAkE;YAClE,IAAI,MAAM,IAAI,GAAG,EAAE,CAAC;gBAClB,IAAI,IAAI,GAAG,cAAc,CAAC;gBAC1B,IAAI,CAAC;oBACH,MAAM,KAAK,GAAY,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;oBACxC,IACE,KAAK;wBACL,OAAO,KAAK,KAAK,QAAQ;wBACzB,OAAO,IAAI,KAAK;wBAChB,CAAC,gBAAgB,EAAE,eAAe,EAAE,eAAe,EAAE,qBAAqB,EAAE,eAAe,CAAC,CAAC,QAAQ,CACnG,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CACpB;wBAED,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gBAC/B,CAAC;gBAAC,MAAM,CAAC;oBACP,4CAA4C;gBAC9C,CAAC;gBACD,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YACzC,CAAC;YACD,eAAe,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;YACzC,eAAe,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC;YAC3C,OAAO,IAAI,QAAQ,CAAC,MAAM,KAAK,GAAG,IAAI,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,eAAe,EAAE,CAAC,CAAC;QAC5G,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC;YACnC,IAAI,KAAK,YAAY,0BAA0B;gBAAE,MAAM,KAAK,CAAC;YAC7D,MAAM,mBAAmB,EAAE,CAAC;QAC9B,CAAC;IACH,CAAC,CAAC;AACJ,CAAC"}
@@ -41,8 +41,8 @@ export declare const RefreshTokenLookupDataSchema: z.ZodObject<{
41
41
  runtimeScopeId: z.ZodString;
42
42
  tokenDigest: z.ZodString;
43
43
  state: z.ZodEnum<{
44
- current: "current";
45
44
  consumed: "consumed";
45
+ current: "current";
46
46
  }>;
47
47
  expires: z.ZodNumber;
48
48
  createdAt: z.ZodNumber;
@@ -1,3 +1,4 @@
1
+ import { type BoundClientSession, type OAuthAttempt, type OAuthAuthority, type OAuthAuthorityContext } from '../oauthAuthority.js';
1
2
  import { ClientSessionData } from '../sessionTypes.js';
2
3
  import { FileStorageService } from './fileStorageService.js';
3
4
  /**
@@ -34,6 +35,24 @@ import { FileStorageService } from './fileStorageService.js';
34
35
  export declare class ClientSessionRepository {
35
36
  private storage;
36
37
  constructor(storage: FileStorageService);
38
+ claimContext(slot: string, context: OAuthAuthorityContext, observedGeneration: string | null, signal?: AbortSignal): Promise<string>;
39
+ getClaim(slot: string): {
40
+ requestVersion: number;
41
+ joinable: boolean;
42
+ fingerprint: string;
43
+ generation: string;
44
+ destinations: Record<string, string>;
45
+ createdAt: number;
46
+ expires: number;
47
+ } | null;
48
+ reserveRequest(slot: string, generation: string): Promise<number>;
49
+ pinDestination(slot: string, generation: string, host: string, addresses: string): Promise<void>;
50
+ getBound(slot: string): BoundClientSession | null;
51
+ activate(slot: string, authority: OAuthAuthority, discovery: string, claim: string, requestVersion?: number): Promise<BoundClientSession>;
52
+ updateBound(slot: string, generation: string, operation: (record: BoundClientSession) => void, requestVersion?: number): Promise<BoundClientSession>;
53
+ addAttempt(slot: string, generation: string, state: string, attempt: OAuthAttempt, requestVersion?: number): Promise<void>;
54
+ consumeAttempt(slot: string, generation: string, state: string, validate: (attempt: OAuthAttempt) => void): Promise<OAuthAttempt>;
55
+ quarantine(serverName: string): Promise<void>;
37
56
  /**
38
57
  * Saves or updates a client session.
39
58
  *
@@ -1 +1 @@
1
- {"version":3,"file":"clientSessionRepository.d.ts","sourceRoot":"","sources":["../../../src/auth/storage/clientSessionRepository.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAK9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAE7D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,qBAAa,uBAAuB;IACtB,OAAO,CAAC,OAAO;gBAAP,OAAO,EAAE,kBAAkB;IAE/C;;;;;;;OAOG;IACH,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM;IAerF;;;;;OAKG;IACH,GAAG,CAAC,UAAU,EAAE,MAAM,GAAG,iBAAiB,GAAG,IAAI;IAOjD;;;;;OAKG;IACH,MAAM,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO;IAOnC;;;;;;;OAOG;IACH,IAAI,IAAI,MAAM,EAAE;IA0BhB;;;;;OAKG;IACH,OAAO,CAAC,YAAY;CAGrB"}
1
+ {"version":3,"file":"clientSessionRepository.d.ts","sourceRoot":"","sources":["../../../src/auth/storage/clientSessionRepository.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,KAAK,kBAAkB,EAIvB,KAAK,YAAY,EACjB,KAAK,cAAc,EACnB,KAAK,qBAAqB,EAK3B,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAO9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAE7D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,qBAAa,uBAAuB;IACtB,OAAO,CAAC,OAAO;gBAAP,OAAO,EAAE,kBAAkB;IAEzC,YAAY,CAChB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,qBAAqB,EAC9B,kBAAkB,EAAE,MAAM,GAAG,IAAI,EACjC,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,MAAM,CAAC;IA0BlB,QAAQ,CAAC,IAAI,EAAE,MAAM;;;;;;;;;IAgBf,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAQjE,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA0BtG,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,kBAAkB,GAAG,IAAI;IAI3C,QAAQ,CACZ,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,cAAc,EACzB,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,EACb,cAAc,CAAC,EAAE,MAAM,GACtB,OAAO,CAAC,kBAAkB,CAAC;IAkCxB,WAAW,CACf,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,CAAC,MAAM,EAAE,kBAAkB,KAAK,IAAI,EAC/C,cAAc,CAAC,EAAE,MAAM,GACtB,OAAO,CAAC,kBAAkB,CAAC;IAqBxB,UAAU,CACd,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,YAAY,EACrB,cAAc,CAAC,EAAE,MAAM,GACtB,OAAO,CAAC,IAAI,CAAC;IAkBV,cAAc,CAClB,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,MAAM,EAClB,KAAK,EAAE,MAAM,EACb,QAAQ,EAAE,CAAC,OAAO,EAAE,YAAY,KAAK,IAAI,GACxC,OAAO,CAAC,YAAY,CAAC;IAclB,UAAU,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAWnD;;;;;;;OAOG;IACH,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM;IAerF;;;;;OAKG;IACH,GAAG,CAAC,UAAU,EAAE,MAAM,GAAG,iBAAiB,GAAG,IAAI;IAOjD;;;;;OAKG;IACH,MAAM,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO;IAOnC;;;;;;;OAOG;IACH,IAAI,IAAI,MAAM,EAAE;IA0BhB;;;;;OAKG;IACH,OAAO,CAAC,YAAY;CAGrB"}
@@ -1,6 +1,9 @@
1
+ import { randomUUID } from 'node:crypto';
2
+ import { BoundClientSessionSchema, OAUTH_AUTHORITY_TTL_MS, OAUTH_MAX_ATTEMPTS, oauthAuthorityError, oauthConfigurationFingerprintAsync, oauthDigest, sameAuthority, } from '../oauthAuthority.js';
1
3
  import { AUTH_CONFIG } from '../../constants.js';
2
4
  import logger from '../../logger/logger.js';
3
5
  import { sanitizeServerName } from '../../utils/validation/sanitization.js';
6
+ import { z } from 'zod';
4
7
  /**
5
8
  * ClientSessionRepository handles OAuth 2.1 client session storage using the layered storage architecture.
6
9
  *
@@ -37,6 +40,181 @@ export class ClientSessionRepository {
37
40
  constructor(storage) {
38
41
  this.storage = storage;
39
42
  }
43
+ async claimContext(slot, context, observedGeneration, signal) {
44
+ signal?.throwIfAborted();
45
+ // Derivation must not block the event loop or hold the cross-process slot lock.
46
+ const fingerprint = await oauthConfigurationFingerprintAsync(context, slot);
47
+ signal?.throwIfAborted();
48
+ return this.storage.withExclusiveLock(`oauth-${slot}`, () => {
49
+ signal?.throwIfAborted();
50
+ const current = this.getClaim(slot);
51
+ const joiningInitial = observedGeneration === null && current?.joinable === true && current.fingerprint === fingerprint;
52
+ if (!joiningInitial && (current?.generation ?? null) !== observedGeneration)
53
+ throw oauthAuthorityError();
54
+ if (current?.fingerprint === fingerprint)
55
+ return current.generation;
56
+ const generation = randomUUID();
57
+ this.storage.writeDataDurable('oauth-context-', slot, {
58
+ fingerprint,
59
+ generation,
60
+ destinations: {},
61
+ requestVersion: 0,
62
+ joinable: current === null,
63
+ createdAt: Date.now(),
64
+ expires: Date.now() + OAUTH_AUTHORITY_TTL_MS,
65
+ });
66
+ return generation;
67
+ });
68
+ }
69
+ getClaim(slot) {
70
+ return this.storage.readData('oauth-context-', slot, z.object({
71
+ requestVersion: z.number().int().nonnegative().default(0),
72
+ joinable: z.boolean().default(false),
73
+ fingerprint: z.string(),
74
+ generation: z.string(),
75
+ destinations: z.record(z.string(), z.string()).default({}),
76
+ createdAt: z.number(),
77
+ expires: z.number(),
78
+ }));
79
+ }
80
+ async reserveRequest(slot, generation) {
81
+ return this.storage.withExclusiveLock(`oauth-${slot}`, () => {
82
+ const claim = this.getClaim(slot);
83
+ if (!claim || claim.generation !== generation)
84
+ throw oauthAuthorityError();
85
+ return claim.requestVersion;
86
+ });
87
+ }
88
+ async pinDestination(slot, generation, host, addresses) {
89
+ const current = this.getClaim(slot);
90
+ if (!current || current.generation !== generation)
91
+ throw oauthAuthorityError();
92
+ const renewBefore = Date.now() + OAUTH_AUTHORITY_TTL_MS - 24 * 60 * 60 * 1000;
93
+ const bound = this.getBound(slot);
94
+ const boundNeedsRenewal = bound ? bound.generation !== generation || bound.expires <= renewBefore : false;
95
+ // Read current ownership on every request; caching it would miss another process's invalidation.
96
+ if (current.destinations[host] === addresses && current.expires > renewBefore && !boundNeedsRenewal)
97
+ return;
98
+ await this.storage.withExclusiveLock(`oauth-${slot}`, () => {
99
+ const claim = this.getClaim(slot);
100
+ if (!claim || claim.generation !== generation)
101
+ throw oauthAuthorityError();
102
+ const renewBefore = Date.now() + OAUTH_AUTHORITY_TTL_MS - 24 * 60 * 60 * 1000;
103
+ const record = this.getBound(slot);
104
+ if (record?.generation === generation && record.expires <= renewBefore) {
105
+ record.expires = Date.now() + OAUTH_AUTHORITY_TTL_MS;
106
+ this.storage.writeDataDurable('oauth-bound-', slot, record);
107
+ }
108
+ if (claim.destinations[host] === addresses && claim.expires > renewBefore)
109
+ return;
110
+ if (!claim.destinations[host] && Object.keys(claim.destinations).length >= 32)
111
+ throw oauthAuthorityError();
112
+ // Each request validates DNS and pins its own socket; public answers may rotate.
113
+ claim.destinations[host] = addresses;
114
+ claim.expires = Date.now() + OAUTH_AUTHORITY_TTL_MS;
115
+ this.storage.writeDataDurable('oauth-context-', slot, claim);
116
+ });
117
+ }
118
+ getBound(slot) {
119
+ return this.storage.readData('oauth-bound-', slot, BoundClientSessionSchema);
120
+ }
121
+ async activate(slot, authority, discovery, claim, requestVersion) {
122
+ return this.storage.withExclusiveLock(`oauth-${slot}`, () => {
123
+ const authorityClaim = this.getClaim(slot);
124
+ if (authorityClaim?.generation !== claim)
125
+ throw oauthAuthorityError();
126
+ if (requestVersion !== undefined && authorityClaim.requestVersion !== requestVersion)
127
+ throw oauthAuthorityError();
128
+ authorityClaim.requestVersion++;
129
+ authorityClaim.expires = Date.now() + OAUTH_AUTHORITY_TTL_MS;
130
+ this.storage.writeDataDurable('oauth-context-', slot, authorityClaim);
131
+ const current = this.getBound(slot);
132
+ if (current && current.generation === claim && sameAuthority(current.authority, authority)) {
133
+ current.discovery = discovery;
134
+ current.expires = Date.now() + OAUTH_AUTHORITY_TTL_MS;
135
+ this.storage.writeDataDurable('oauth-bound-', slot, current);
136
+ return current;
137
+ }
138
+ let generation = claim;
139
+ if (current && current.generation === claim) {
140
+ generation = randomUUID();
141
+ this.storage.writeDataDurable('oauth-context-', slot, { ...this.getClaim(slot), generation, joinable: false });
142
+ }
143
+ const record = {
144
+ authority,
145
+ discovery,
146
+ generation,
147
+ revision: 0,
148
+ attempts: {},
149
+ createdAt: Date.now(),
150
+ expires: Date.now() + OAUTH_AUTHORITY_TTL_MS,
151
+ };
152
+ this.storage.writeDataDurable('oauth-bound-', slot, record);
153
+ return record;
154
+ });
155
+ }
156
+ async updateBound(slot, generation, operation, requestVersion) {
157
+ return this.storage.withExclusiveLock(`oauth-${slot}`, () => {
158
+ const record = this.getBound(slot);
159
+ const claim = this.getClaim(slot);
160
+ if (!record || record.generation !== generation || claim?.generation !== generation)
161
+ throw oauthAuthorityError();
162
+ if (requestVersion !== undefined && claim.requestVersion !== requestVersion)
163
+ throw oauthAuthorityError();
164
+ operation(record);
165
+ if (requestVersion !== undefined)
166
+ claim.requestVersion++;
167
+ if (record.generation !== generation) {
168
+ claim.generation = record.generation;
169
+ claim.destinations = {};
170
+ claim.joinable = false;
171
+ }
172
+ claim.expires = Date.now() + OAUTH_AUTHORITY_TTL_MS;
173
+ record.expires = claim.expires;
174
+ this.storage.writeDataDurable('oauth-context-', slot, claim);
175
+ this.storage.writeDataDurable('oauth-bound-', slot, record);
176
+ return record;
177
+ });
178
+ }
179
+ async addAttempt(slot, generation, state, attempt, requestVersion) {
180
+ await this.updateBound(slot, generation, (record) => {
181
+ for (const [key, value] of Object.entries(record.attempts)) {
182
+ if (value.expires <= Date.now())
183
+ delete record.attempts[key];
184
+ }
185
+ if (Object.keys(record.attempts).length >= OAUTH_MAX_ATTEMPTS)
186
+ throw new Error('Too many pending OAuth authorizations; wait fifteen minutes');
187
+ const key = oauthDigest(state);
188
+ if (record.attempts[key])
189
+ throw oauthAuthorityError();
190
+ record.attempts[key] = attempt;
191
+ }, requestVersion);
192
+ }
193
+ async consumeAttempt(slot, generation, state, validate) {
194
+ let consumed;
195
+ await this.updateBound(slot, generation, (record) => {
196
+ const attempt = record.attempts[oauthDigest(state)];
197
+ if (!attempt || attempt.consumed || attempt.expires <= Date.now())
198
+ throw oauthAuthorityError();
199
+ validate(attempt);
200
+ consumed = structuredClone(attempt);
201
+ attempt.consumed = true;
202
+ // Keep a durable tombstone; never retain PKCE after consumption.
203
+ attempt.verifier = 'x'.repeat(43);
204
+ });
205
+ return consumed;
206
+ }
207
+ async quarantine(serverName) {
208
+ const key = oauthDigest(serverName);
209
+ await this.storage.withExclusiveLock(`oauth-migration-${key}`, () => {
210
+ const old = this.get(serverName);
211
+ if (!old)
212
+ return;
213
+ // Write protected rollback data before deleting the old source; retry is idempotent.
214
+ this.storage.writeDataDurable('oauth-quarantine-', key, old);
215
+ this.delete(serverName);
216
+ });
217
+ }
40
218
  /**
41
219
  * Saves or updates a client session.
42
220
  *
@@ -1 +1 @@
1
- {"version":3,"file":"clientSessionRepository.js","sourceRoot":"","sources":["../../../src/auth/storage/clientSessionRepository.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"clientSessionRepository.js","sourceRoot":"","sources":["../../../src/auth/storage/clientSessionRepository.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,9 @@ import { ExpirableData } from '../sessionTypes.js';
2
2
  import { InsecureFilePermissionsError } from '../../utils/filePermissions.js';
3
3
  import { type ZodType } from 'zod';
4
4
  export { InsecureFilePermissionsError };
5
+ export declare class StorageLockBusyError extends Error {
6
+ constructor();
7
+ }
5
8
  /**
6
9
  * Generic file storage service with unified cleanup for all expirable data types.
7
10
  *
@@ -18,7 +21,10 @@ export { InsecureFilePermissionsError };
18
21
  export declare class FileStorageService {
19
22
  private storageDir;
20
23
  private cleanupInterval;
21
- constructor(baseDir?: string, subDir?: string);
24
+ constructor(baseDir?: string, subDir?: string, options?: {
25
+ manageLifecycle?: boolean;
26
+ initializeDirectory?: boolean;
27
+ });
22
28
  /**
23
29
  * Hardens file or directory permissions on POSIX systems.
24
30
  * Tolerates filesystems that lack POSIX permission capabilities (e.g. FAT, exFAT, FUSE)
@@ -118,6 +124,8 @@ export declare class FileStorageService {
118
124
  * cannot block the Runtime Scope permanently.
119
125
  */
120
126
  withExclusiveLock<T>(lockName: string, operation: () => Promise<T> | T): Promise<T>;
127
+ /** Synchronous callers cannot wait on a suspended async owner; fail busy and retry. */
128
+ withExclusiveLockSync<T>(lockName: string, operation: () => T): T;
121
129
  /**
122
130
  * Starts periodic cleanup of expired data files
123
131
  */
@@ -1 +1 @@
1
- {"version":3,"file":"fileStorageService.d.ts","sourceRoot":"","sources":["../../../src/auth/storage/fileStorageService.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAG1D,OAAO,EAIL,4BAA4B,EAE7B,MAAM,+BAA+B,CAAC;AAEvC,OAAO,EAAK,KAAK,OAAO,EAAE,MAAM,KAAK,CAAC;AAItC,OAAO,EAAE,4BAA4B,EAAE,CAAC;AAQxC;;;;;;;;;;;;GAYG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,eAAe,CAA+C;gBAE1D,OAAO,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM;IAY7C;;;;;;OAMG;IACH,OAAO,CAAC,uBAAuB;IA2B/B;;OAEG;IACH,OAAO,CAAC,eAAe;IAevB;;OAEG;IACH,OAAO,CAAC,eAAe;IAQvB;;;;;;OAMG;IACH,OAAO,CAAC,uBAAuB;IAqF/B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAsB3B;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAUxB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAczB;;OAEG;IACI,WAAW,CAAC,UAAU,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM;IAmB1D;;OAEG;IACH,OAAO,CAAC,SAAS;IAiEjB,OAAO,CAAC,MAAM,CAAC,oBAAoB;IASnC;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAKzB;;OAEG;IACH,OAAO,CAAC,aAAa;IAOrB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAU3B;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAUxB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAY3B;;OAEG;IACH,OAAO,CAAC,2BAA2B;IAUnC;;;;OAIG;IACH,OAAO,CAAC,eAAe;IA4CvB;;OAEG;IACH,SAAS,CAAC,CAAC,SAAS,aAAa,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,GAAG,IAAI;IAIjF;;OAEG;IACH,gBAAgB,CAAC,CAAC,SAAS,aAAa,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,GAAG,IAAI;IAIxF;;;OAGG;IACH,QAAQ,CAAC,CAAC,SAAS,aAAa,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI;IA6ChG;;OAEG;IACH,UAAU,CAAC,UAAU,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO;IAoBnD;;;;;OAKG;IACG,iBAAiB,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAuBzF;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAU5B;;OAEG;IACI,kBAAkB,IAAI,MAAM;IA+EnC;;;;;OAKG;IACH,SAAS,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE;IA2BxC;;OAEG;IACH,aAAa,IAAI,MAAM;IAIvB;;OAEG;IACH,QAAQ,IAAI,IAAI;IAQhB,OAAO,CAAC,qBAAqB;IAqB7B,OAAO,CAAC,cAAc;IAmCtB,OAAO,CAAC,oBAAoB;IAqC5B,OAAO,CAAC,WAAW;IAqDnB,OAAO,CAAC,aAAa;CAStB"}
1
+ {"version":3,"file":"fileStorageService.d.ts","sourceRoot":"","sources":["../../../src/auth/storage/fileStorageService.ts"],"names":[],"mappings":"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"}