@frontmcp/sdk 0.6.1 → 0.6.3

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 (1066) hide show
  1. package/{src/auth → auth}/instances/instance.local-primary-auth.d.ts +1 -1
  2. package/{src/auth → auth}/instances/instance.remote-primary-auth.d.ts +1 -1
  3. package/auth/session/index.d.ts +8 -0
  4. package/{src/auth → auth}/session/redis-session.store.d.ts +26 -3
  5. package/auth/session/session-crypto.d.ts +86 -0
  6. package/auth/session/session-rate-limiter.d.ts +113 -0
  7. package/{src/auth → auth}/session/transport-session.types.d.ts +51 -34
  8. package/{src/auth → auth}/session/vercel-kv-session.store.d.ts +22 -2
  9. package/{src/common → common}/interfaces/internal/primary-auth-provider.interface.d.ts +1 -4
  10. package/{src/common → common}/metadata/front-mcp.metadata.d.ts +1074 -44
  11. package/common/types/options/auth/app-auth.schema.d.ts +275 -0
  12. package/common/types/options/auth/auth.interfaces.d.ts +461 -0
  13. package/common/types/options/auth/auth.schema.d.ts +284 -0
  14. package/common/types/options/auth/auth.utils.d.ts +32 -0
  15. package/common/types/options/auth/index.d.ts +16 -0
  16. package/common/types/options/auth/orchestrated.schema.d.ts +381 -0
  17. package/common/types/options/auth/public.schema.d.ts +42 -0
  18. package/common/types/options/auth/shared.schemas.d.ts +120 -0
  19. package/common/types/options/auth/transparent.schema.d.ts +56 -0
  20. package/common/types/options/auth/transport.deprecated.d.ts +63 -0
  21. package/{src/common → common}/types/options/index.d.ts +1 -1
  22. package/{src/common → common}/types/options/transport.options.d.ts +6 -1
  23. package/{src/common → common}/utils/decide-request-intent.utils.d.ts +6 -7
  24. package/esm/index.mjs +23219 -0
  25. package/esm/mcp-apps/index.mjs +723 -0
  26. package/esm/package.json +89 -0
  27. package/index.js +23513 -0
  28. package/logger/logger.tokens.d.ts +1 -0
  29. package/mcp-apps/index.js +799 -0
  30. package/package.json +36 -13
  31. package/transport/adapters/sse-transport.d.ts +65 -0
  32. package/transport/adapters/streamable-http-transport.d.ts +69 -0
  33. package/{src/transport → transport}/adapters/transport.local.adapter.d.ts +15 -1
  34. package/transport/adapters/transport.sse.adapter.d.ts +27 -0
  35. package/{src/transport → transport}/adapters/transport.streamable-http.adapter.d.ts +12 -3
  36. package/transport/index.d.ts +21 -0
  37. package/{src/transport → transport}/transport.local.d.ts +6 -0
  38. package/{src/transport → transport}/transport.registry.d.ts +7 -1
  39. package/{src/transport → transport}/transport.remote.d.ts +1 -0
  40. package/{src/transport → transport}/transport.types.d.ts +6 -0
  41. package/README.md +0 -461
  42. package/src/adapter/adapter.instance.js +0 -70
  43. package/src/adapter/adapter.instance.js.map +0 -1
  44. package/src/adapter/adapter.regsitry.js +0 -54
  45. package/src/adapter/adapter.regsitry.js.map +0 -1
  46. package/src/adapter/adapter.utils.js +0 -83
  47. package/src/adapter/adapter.utils.js.map +0 -1
  48. package/src/app/app.registry.js +0 -66
  49. package/src/app/app.registry.js.map +0 -1
  50. package/src/app/app.utils.js +0 -58
  51. package/src/app/app.utils.js.map +0 -1
  52. package/src/app/instances/app.local.instance.js +0 -67
  53. package/src/app/instances/app.local.instance.js.map +0 -1
  54. package/src/app/instances/app.remote.instance.js +0 -36
  55. package/src/app/instances/app.remote.instance.js.map +0 -1
  56. package/src/app/instances/index.js +0 -6
  57. package/src/app/instances/index.js.map +0 -1
  58. package/src/auth/auth.registry.js +0 -219
  59. package/src/auth/auth.registry.js.map +0 -1
  60. package/src/auth/auth.utils.js +0 -84
  61. package/src/auth/auth.utils.js.map +0 -1
  62. package/src/auth/authorization/authorization.class.js +0 -217
  63. package/src/auth/authorization/authorization.class.js.map +0 -1
  64. package/src/auth/authorization/authorization.types.js +0 -79
  65. package/src/auth/authorization/authorization.types.js.map +0 -1
  66. package/src/auth/authorization/index.js +0 -19
  67. package/src/auth/authorization/index.js.map +0 -1
  68. package/src/auth/authorization/orchestrated.authorization.js +0 -306
  69. package/src/auth/authorization/orchestrated.authorization.js.map +0 -1
  70. package/src/auth/authorization/public.authorization.js +0 -132
  71. package/src/auth/authorization/public.authorization.js.map +0 -1
  72. package/src/auth/authorization/transparent.authorization.js +0 -147
  73. package/src/auth/authorization/transparent.authorization.js.map +0 -1
  74. package/src/auth/consent/consent.types.js +0 -119
  75. package/src/auth/consent/consent.types.js.map +0 -1
  76. package/src/auth/consent/index.js +0 -13
  77. package/src/auth/consent/index.js.map +0 -1
  78. package/src/auth/detection/auth-provider-detection.js +0 -230
  79. package/src/auth/detection/auth-provider-detection.js.map +0 -1
  80. package/src/auth/detection/index.js +0 -15
  81. package/src/auth/detection/index.js.map +0 -1
  82. package/src/auth/flows/auth.verify.flow.js +0 -379
  83. package/src/auth/flows/auth.verify.flow.js.map +0 -1
  84. package/src/auth/flows/oauth.authorize.flow.js +0 -822
  85. package/src/auth/flows/oauth.authorize.flow.js.map +0 -1
  86. package/src/auth/flows/oauth.callback.flow.js +0 -357
  87. package/src/auth/flows/oauth.callback.flow.js.map +0 -1
  88. package/src/auth/flows/oauth.register.flow.js +0 -201
  89. package/src/auth/flows/oauth.register.flow.js.map +0 -1
  90. package/src/auth/flows/oauth.token.flow.js +0 -319
  91. package/src/auth/flows/oauth.token.flow.js.map +0 -1
  92. package/src/auth/flows/session.verify.flow.js +0 -304
  93. package/src/auth/flows/session.verify.flow.js.map +0 -1
  94. package/src/auth/flows/well-known.jwks.flow.js +0 -89
  95. package/src/auth/flows/well-known.jwks.flow.js.map +0 -1
  96. package/src/auth/flows/well-known.oauth-authorization-server.flow.js +0 -122
  97. package/src/auth/flows/well-known.oauth-authorization-server.flow.js.map +0 -1
  98. package/src/auth/flows/well-known.prm.flow.js +0 -106
  99. package/src/auth/flows/well-known.prm.flow.js.map +0 -1
  100. package/src/auth/instances/instance.local-primary-auth.js +0 -308
  101. package/src/auth/instances/instance.local-primary-auth.js.map +0 -1
  102. package/src/auth/instances/instance.remote-primary-auth.js +0 -49
  103. package/src/auth/instances/instance.remote-primary-auth.js.map +0 -1
  104. package/src/auth/jwks/dev-key-persistence.js +0 -219
  105. package/src/auth/jwks/dev-key-persistence.js.map +0 -1
  106. package/src/auth/jwks/index.js +0 -7
  107. package/src/auth/jwks/index.js.map +0 -1
  108. package/src/auth/jwks/jwks.service.js +0 -303
  109. package/src/auth/jwks/jwks.service.js.map +0 -1
  110. package/src/auth/jwks/jwks.types.js +0 -3
  111. package/src/auth/jwks/jwks.types.js.map +0 -1
  112. package/src/auth/jwks/jwks.utils.js +0 -32
  113. package/src/auth/jwks/jwks.utils.js.map +0 -1
  114. package/src/auth/machine-id.js +0 -32
  115. package/src/auth/machine-id.js.map +0 -1
  116. package/src/auth/oauth/flows/oauth.authorize.flow.js +0 -33
  117. package/src/auth/oauth/flows/oauth.authorize.flow.js.map +0 -1
  118. package/src/auth/oauth/flows/oauth.device-authorization.flow.js +0 -48
  119. package/src/auth/oauth/flows/oauth.device-authorization.flow.js.map +0 -1
  120. package/src/auth/oauth/flows/oauth.introspect.flow.js +0 -28
  121. package/src/auth/oauth/flows/oauth.introspect.flow.js.map +0 -1
  122. package/src/auth/oauth/flows/oauth.par.flow.js +0 -29
  123. package/src/auth/oauth/flows/oauth.par.flow.js.map +0 -1
  124. package/src/auth/oauth/flows/oauth.revoke.flow.js +0 -27
  125. package/src/auth/oauth/flows/oauth.revoke.flow.js.map +0 -1
  126. package/src/auth/oauth/flows/oauth.token.flow.js +0 -59
  127. package/src/auth/oauth/flows/oauth.token.flow.js.map +0 -1
  128. package/src/auth/oauth/flows/oauth.userinfo.flow.js +0 -24
  129. package/src/auth/oauth/flows/oauth.userinfo.flow.js.map +0 -1
  130. package/src/auth/oauth/flows/oidc.logout.flow.js +0 -20
  131. package/src/auth/oauth/flows/oidc.logout.flow.js.map +0 -1
  132. package/src/auth/session/authorization-vault.js +0 -817
  133. package/src/auth/session/authorization-vault.js.map +0 -1
  134. package/src/auth/session/authorization.store.js +0 -323
  135. package/src/auth/session/authorization.store.js.map +0 -1
  136. package/src/auth/session/encrypted-authorization-vault.js +0 -493
  137. package/src/auth/session/encrypted-authorization-vault.js.map +0 -1
  138. package/src/auth/session/index.d.ts +0 -6
  139. package/src/auth/session/index.js +0 -18
  140. package/src/auth/session/index.js.map +0 -1
  141. package/src/auth/session/record/session.base.js +0 -125
  142. package/src/auth/session/record/session.base.js.map +0 -1
  143. package/src/auth/session/record/session.stateful.js +0 -55
  144. package/src/auth/session/record/session.stateful.js.map +0 -1
  145. package/src/auth/session/record/session.stateless.js +0 -32
  146. package/src/auth/session/record/session.stateless.js.map +0 -1
  147. package/src/auth/session/record/session.transparent.js +0 -22
  148. package/src/auth/session/record/session.transparent.js.map +0 -1
  149. package/src/auth/session/redis-session.store.js +0 -204
  150. package/src/auth/session/redis-session.store.js.map +0 -1
  151. package/src/auth/session/session.crypto.js +0 -47
  152. package/src/auth/session/session.crypto.js.map +0 -1
  153. package/src/auth/session/session.schema.js +0 -13
  154. package/src/auth/session/session.schema.js.map +0 -1
  155. package/src/auth/session/session.service.js +0 -105
  156. package/src/auth/session/session.service.js.map +0 -1
  157. package/src/auth/session/session.transport.js +0 -20
  158. package/src/auth/session/session.transport.js.map +0 -1
  159. package/src/auth/session/session.types.js +0 -4
  160. package/src/auth/session/session.types.js.map +0 -1
  161. package/src/auth/session/token.refresh.js +0 -63
  162. package/src/auth/session/token.refresh.js.map +0 -1
  163. package/src/auth/session/token.store.js +0 -53
  164. package/src/auth/session/token.store.js.map +0 -1
  165. package/src/auth/session/token.vault.js +0 -54
  166. package/src/auth/session/token.vault.js.map +0 -1
  167. package/src/auth/session/transport-session.manager.js +0 -298
  168. package/src/auth/session/transport-session.manager.js.map +0 -1
  169. package/src/auth/session/transport-session.types.js +0 -111
  170. package/src/auth/session/transport-session.types.js.map +0 -1
  171. package/src/auth/session/utils/auth-token.utils.js +0 -57
  172. package/src/auth/session/utils/auth-token.utils.js.map +0 -1
  173. package/src/auth/session/utils/session-id.utils.js +0 -217
  174. package/src/auth/session/utils/session-id.utils.js.map +0 -1
  175. package/src/auth/session/utils/tiny-ttl-cache.js +0 -26
  176. package/src/auth/session/utils/tiny-ttl-cache.js.map +0 -1
  177. package/src/auth/session/vault-encryption.js +0 -263
  178. package/src/auth/session/vault-encryption.js.map +0 -1
  179. package/src/auth/session/vercel-kv-session.store.js +0 -216
  180. package/src/auth/session/vercel-kv-session.store.js.map +0 -1
  181. package/src/auth/ui/base-layout.js +0 -279
  182. package/src/auth/ui/base-layout.js.map +0 -1
  183. package/src/auth/ui/index.js +0 -34
  184. package/src/auth/ui/index.js.map +0 -1
  185. package/src/auth/ui/templates.js +0 -426
  186. package/src/auth/ui/templates.js.map +0 -1
  187. package/src/auth/utils/audience.validator.js +0 -196
  188. package/src/auth/utils/audience.validator.js.map +0 -1
  189. package/src/auth/utils/index.js +0 -7
  190. package/src/auth/utils/index.js.map +0 -1
  191. package/src/auth/utils/www-authenticate.utils.js +0 -183
  192. package/src/auth/utils/www-authenticate.utils.js.map +0 -1
  193. package/src/common/common.schema.js +0 -35
  194. package/src/common/common.schema.js.map +0 -1
  195. package/src/common/constants.js +0 -13
  196. package/src/common/constants.js.map +0 -1
  197. package/src/common/decorators/adapter.decorator.js +0 -20
  198. package/src/common/decorators/adapter.decorator.js.map +0 -1
  199. package/src/common/decorators/app.decorator.js +0 -44
  200. package/src/common/decorators/app.decorator.js.map +0 -1
  201. package/src/common/decorators/auth-provider.decorator.js +0 -20
  202. package/src/common/decorators/auth-provider.decorator.js.map +0 -1
  203. package/src/common/decorators/decorator-utils.js +0 -195
  204. package/src/common/decorators/decorator-utils.js.map +0 -1
  205. package/src/common/decorators/flow.decorator.js +0 -19
  206. package/src/common/decorators/flow.decorator.js.map +0 -1
  207. package/src/common/decorators/front-mcp.decorator.js +0 -64
  208. package/src/common/decorators/front-mcp.decorator.js.map +0 -1
  209. package/src/common/decorators/hook.decorator.js +0 -178
  210. package/src/common/decorators/hook.decorator.js.map +0 -1
  211. package/src/common/decorators/index.js +0 -16
  212. package/src/common/decorators/index.js.map +0 -1
  213. package/src/common/decorators/logger.decorator.js +0 -20
  214. package/src/common/decorators/logger.decorator.js.map +0 -1
  215. package/src/common/decorators/plugin.decorator.js +0 -39
  216. package/src/common/decorators/plugin.decorator.js.map +0 -1
  217. package/src/common/decorators/prompt.decorator.js +0 -38
  218. package/src/common/decorators/prompt.decorator.js.map +0 -1
  219. package/src/common/decorators/provider.decorator.js +0 -20
  220. package/src/common/decorators/provider.decorator.js.map +0 -1
  221. package/src/common/decorators/resource.decorator.js +0 -94
  222. package/src/common/decorators/resource.decorator.js.map +0 -1
  223. package/src/common/decorators/tool.decorator.js +0 -45
  224. package/src/common/decorators/tool.decorator.js.map +0 -1
  225. package/src/common/dynamic/dynamic.adapter.js +0 -28
  226. package/src/common/dynamic/dynamic.adapter.js.map +0 -1
  227. package/src/common/dynamic/dynamic.plugin.js +0 -42
  228. package/src/common/dynamic/dynamic.plugin.js.map +0 -1
  229. package/src/common/dynamic/dynamic.utils.js +0 -27
  230. package/src/common/dynamic/dynamic.utils.js.map +0 -1
  231. package/src/common/dynamic/index.js +0 -6
  232. package/src/common/dynamic/index.js.map +0 -1
  233. package/src/common/entries/adapter.entry.js +0 -8
  234. package/src/common/entries/adapter.entry.js.map +0 -1
  235. package/src/common/entries/app.entry.js +0 -9
  236. package/src/common/entries/app.entry.js.map +0 -1
  237. package/src/common/entries/auth-provider.entry.js +0 -8
  238. package/src/common/entries/auth-provider.entry.js.map +0 -1
  239. package/src/common/entries/base.entry.js +0 -17
  240. package/src/common/entries/base.entry.js.map +0 -1
  241. package/src/common/entries/flow.entry.js +0 -21
  242. package/src/common/entries/flow.entry.js.map +0 -1
  243. package/src/common/entries/hook.entry.js +0 -20
  244. package/src/common/entries/hook.entry.js.map +0 -1
  245. package/src/common/entries/index.js +0 -17
  246. package/src/common/entries/index.js.map +0 -1
  247. package/src/common/entries/logger.entry.js +0 -8
  248. package/src/common/entries/logger.entry.js.map +0 -1
  249. package/src/common/entries/plugin.entry.js +0 -8
  250. package/src/common/entries/plugin.entry.js.map +0 -1
  251. package/src/common/entries/prompt.entry.js +0 -18
  252. package/src/common/entries/prompt.entry.js.map +0 -1
  253. package/src/common/entries/provider.entry.js +0 -8
  254. package/src/common/entries/provider.entry.js.map +0 -1
  255. package/src/common/entries/resource.entry.js +0 -35
  256. package/src/common/entries/resource.entry.js.map +0 -1
  257. package/src/common/entries/scope.entry.js +0 -14
  258. package/src/common/entries/scope.entry.js.map +0 -1
  259. package/src/common/entries/tool.entry.js +0 -31
  260. package/src/common/entries/tool.entry.js.map +0 -1
  261. package/src/common/flow/flow.utils.js +0 -96
  262. package/src/common/flow/flow.utils.js.map +0 -1
  263. package/src/common/index.js +0 -20
  264. package/src/common/index.js.map +0 -1
  265. package/src/common/interfaces/adapter.interface.js +0 -3
  266. package/src/common/interfaces/adapter.interface.js.map +0 -1
  267. package/src/common/interfaces/app.interface.js +0 -3
  268. package/src/common/interfaces/app.interface.js.map +0 -1
  269. package/src/common/interfaces/auth-hook.interface.js +0 -135
  270. package/src/common/interfaces/auth-hook.interface.js.map +0 -1
  271. package/src/common/interfaces/auth-provider.interface.js +0 -18
  272. package/src/common/interfaces/auth-provider.interface.js.map +0 -1
  273. package/src/common/interfaces/base.interface.js +0 -3
  274. package/src/common/interfaces/base.interface.js.map +0 -1
  275. package/src/common/interfaces/execution-context.interface.js +0 -166
  276. package/src/common/interfaces/execution-context.interface.js.map +0 -1
  277. package/src/common/interfaces/flow.interface.js +0 -95
  278. package/src/common/interfaces/flow.interface.js.map +0 -1
  279. package/src/common/interfaces/front-mcp.interface.js +0 -3
  280. package/src/common/interfaces/front-mcp.interface.js.map +0 -1
  281. package/src/common/interfaces/hook.interface.js +0 -3
  282. package/src/common/interfaces/hook.interface.js.map +0 -1
  283. package/src/common/interfaces/index.js +0 -21
  284. package/src/common/interfaces/index.js.map +0 -1
  285. package/src/common/interfaces/internal/flow.utils.js +0 -83
  286. package/src/common/interfaces/internal/flow.utils.js.map +0 -1
  287. package/src/common/interfaces/internal/index.js +0 -7
  288. package/src/common/interfaces/internal/index.js.map +0 -1
  289. package/src/common/interfaces/internal/primary-auth-provider.interface.js +0 -81
  290. package/src/common/interfaces/internal/primary-auth-provider.interface.js.map +0 -1
  291. package/src/common/interfaces/internal/registry.interface.js +0 -3
  292. package/src/common/interfaces/internal/registry.interface.js.map +0 -1
  293. package/src/common/interfaces/logger.interface.js +0 -10
  294. package/src/common/interfaces/logger.interface.js.map +0 -1
  295. package/src/common/interfaces/plugin.interface.js +0 -3
  296. package/src/common/interfaces/plugin.interface.js.map +0 -1
  297. package/src/common/interfaces/prompt.interface.js +0 -81
  298. package/src/common/interfaces/prompt.interface.js.map +0 -1
  299. package/src/common/interfaces/provider.interface.js +0 -18
  300. package/src/common/interfaces/provider.interface.js.map +0 -1
  301. package/src/common/interfaces/resource.interface.js +0 -56
  302. package/src/common/interfaces/resource.interface.js.map +0 -1
  303. package/src/common/interfaces/scope.interface.js +0 -3
  304. package/src/common/interfaces/scope.interface.js.map +0 -1
  305. package/src/common/interfaces/server.interface.js +0 -18
  306. package/src/common/interfaces/server.interface.js.map +0 -1
  307. package/src/common/interfaces/session-hook.interface.js +0 -140
  308. package/src/common/interfaces/session-hook.interface.js.map +0 -1
  309. package/src/common/interfaces/tool-hook.interface.js +0 -92
  310. package/src/common/interfaces/tool-hook.interface.js.map +0 -1
  311. package/src/common/interfaces/tool.interface.js +0 -117
  312. package/src/common/interfaces/tool.interface.js.map +0 -1
  313. package/src/common/metadata/adapter.metadata.js +0 -10
  314. package/src/common/metadata/adapter.metadata.js.map +0 -1
  315. package/src/common/metadata/app.metadata.js +0 -30
  316. package/src/common/metadata/app.metadata.js.map +0 -1
  317. package/src/common/metadata/auth-provider.metadata.js +0 -19
  318. package/src/common/metadata/auth-provider.metadata.js.map +0 -1
  319. package/src/common/metadata/flow.metadata.js +0 -15
  320. package/src/common/metadata/flow.metadata.js.map +0 -1
  321. package/src/common/metadata/front-mcp.metadata.js +0 -30
  322. package/src/common/metadata/front-mcp.metadata.js.map +0 -1
  323. package/src/common/metadata/hook.metadata.js +0 -3
  324. package/src/common/metadata/hook.metadata.js.map +0 -1
  325. package/src/common/metadata/index.js +0 -17
  326. package/src/common/metadata/index.js.map +0 -1
  327. package/src/common/metadata/logger.metadata.js +0 -10
  328. package/src/common/metadata/logger.metadata.js.map +0 -1
  329. package/src/common/metadata/plugin.metadata.js +0 -18
  330. package/src/common/metadata/plugin.metadata.js.map +0 -1
  331. package/src/common/metadata/prompt.metadata.js +0 -27
  332. package/src/common/metadata/prompt.metadata.js.map +0 -1
  333. package/src/common/metadata/provider.metadata.js +0 -36
  334. package/src/common/metadata/provider.metadata.js.map +0 -1
  335. package/src/common/metadata/resource.metadata.js +0 -31
  336. package/src/common/metadata/resource.metadata.js.map +0 -1
  337. package/src/common/metadata/tool-ui.metadata.js +0 -12
  338. package/src/common/metadata/tool-ui.metadata.js.map +0 -1
  339. package/src/common/metadata/tool.metadata.js +0 -55
  340. package/src/common/metadata/tool.metadata.js.map +0 -1
  341. package/src/common/migrate/auth-transport.migrate.js +0 -140
  342. package/src/common/migrate/auth-transport.migrate.js.map +0 -1
  343. package/src/common/migrate/index.js +0 -6
  344. package/src/common/migrate/index.js.map +0 -1
  345. package/src/common/providers/base-config.provider.js +0 -128
  346. package/src/common/providers/base-config.provider.js.map +0 -1
  347. package/src/common/records/adapter.record.js +0 -11
  348. package/src/common/records/adapter.record.js.map +0 -1
  349. package/src/common/records/app.record.js +0 -9
  350. package/src/common/records/app.record.js.map +0 -1
  351. package/src/common/records/auth-provider.record.js +0 -12
  352. package/src/common/records/auth-provider.record.js.map +0 -1
  353. package/src/common/records/flow.record.js +0 -8
  354. package/src/common/records/flow.record.js.map +0 -1
  355. package/src/common/records/hook.record.js +0 -8
  356. package/src/common/records/hook.record.js.map +0 -1
  357. package/src/common/records/index.js +0 -16
  358. package/src/common/records/index.js.map +0 -1
  359. package/src/common/records/logger.record.js +0 -8
  360. package/src/common/records/logger.record.js.map +0 -1
  361. package/src/common/records/plugin.record.js +0 -11
  362. package/src/common/records/plugin.record.js.map +0 -1
  363. package/src/common/records/prompt.record.js +0 -9
  364. package/src/common/records/prompt.record.js.map +0 -1
  365. package/src/common/records/provider.record.js +0 -14
  366. package/src/common/records/provider.record.js.map +0 -1
  367. package/src/common/records/resource.record.js +0 -20
  368. package/src/common/records/resource.record.js.map +0 -1
  369. package/src/common/records/scope.record.js +0 -9
  370. package/src/common/records/scope.record.js.map +0 -1
  371. package/src/common/records/tool.record.js +0 -9
  372. package/src/common/records/tool.record.js.map +0 -1
  373. package/src/common/schemas/annotated-class.schema.js +0 -109
  374. package/src/common/schemas/annotated-class.schema.js.map +0 -1
  375. package/src/common/schemas/http-input.schema.js +0 -13
  376. package/src/common/schemas/http-input.schema.js.map +0 -1
  377. package/src/common/schemas/http-output.schema.js +0 -321
  378. package/src/common/schemas/http-output.schema.js.map +0 -1
  379. package/src/common/schemas/index.js +0 -8
  380. package/src/common/schemas/index.js.map +0 -1
  381. package/src/common/schemas/session-header.schema.js +0 -42
  382. package/src/common/schemas/session-header.schema.js.map +0 -1
  383. package/src/common/tokens/adapter.tokens.js +0 -11
  384. package/src/common/tokens/adapter.tokens.js.map +0 -1
  385. package/src/common/tokens/app.tokens.js +0 -30
  386. package/src/common/tokens/app.tokens.js.map +0 -1
  387. package/src/common/tokens/auth-provider.tokens.js +0 -12
  388. package/src/common/tokens/auth-provider.tokens.js.map +0 -1
  389. package/src/common/tokens/base.tokens.js +0 -9
  390. package/src/common/tokens/base.tokens.js.map +0 -1
  391. package/src/common/tokens/flow-hook.tokens.js +0 -9
  392. package/src/common/tokens/flow-hook.tokens.js.map +0 -1
  393. package/src/common/tokens/flow.tokens.js +0 -16
  394. package/src/common/tokens/flow.tokens.js.map +0 -1
  395. package/src/common/tokens/front-mcp.tokens.js +0 -25
  396. package/src/common/tokens/front-mcp.tokens.js.map +0 -1
  397. package/src/common/tokens/index.js +0 -17
  398. package/src/common/tokens/index.js.map +0 -1
  399. package/src/common/tokens/logger.tokens.js +0 -11
  400. package/src/common/tokens/logger.tokens.js.map +0 -1
  401. package/src/common/tokens/plugin.tokens.js +0 -18
  402. package/src/common/tokens/plugin.tokens.js.map +0 -1
  403. package/src/common/tokens/prompt.tokens.js +0 -14
  404. package/src/common/tokens/prompt.tokens.js.map +0 -1
  405. package/src/common/tokens/provider.tokens.js +0 -12
  406. package/src/common/tokens/provider.tokens.js.map +0 -1
  407. package/src/common/tokens/resource.tokens.js +0 -28
  408. package/src/common/tokens/resource.tokens.js.map +0 -1
  409. package/src/common/tokens/server.tokens.js +0 -11
  410. package/src/common/tokens/server.tokens.js.map +0 -1
  411. package/src/common/tokens/tool.tokens.js +0 -21
  412. package/src/common/tokens/tool.tokens.js.map +0 -1
  413. package/src/common/types/auth/index.js +0 -6
  414. package/src/common/types/auth/index.js.map +0 -1
  415. package/src/common/types/auth/jwt.types.js +0 -36
  416. package/src/common/types/auth/jwt.types.js.map +0 -1
  417. package/src/common/types/auth/session.types.js +0 -53
  418. package/src/common/types/auth/session.types.js.map +0 -1
  419. package/src/common/types/common.types.js +0 -3
  420. package/src/common/types/common.types.js.map +0 -1
  421. package/src/common/types/index.js +0 -7
  422. package/src/common/types/index.js.map +0 -1
  423. package/src/common/types/options/auth.options.d.ts +0 -1266
  424. package/src/common/types/options/auth.options.js +0 -560
  425. package/src/common/types/options/auth.options.js.map +0 -1
  426. package/src/common/types/options/http.options.js +0 -10
  427. package/src/common/types/options/http.options.js.map +0 -1
  428. package/src/common/types/options/index.js +0 -11
  429. package/src/common/types/options/index.js.map +0 -1
  430. package/src/common/types/options/logging.options.js +0 -33
  431. package/src/common/types/options/logging.options.js.map +0 -1
  432. package/src/common/types/options/redis.options.js +0 -191
  433. package/src/common/types/options/redis.options.js.map +0 -1
  434. package/src/common/types/options/server-info.options.js +0 -13
  435. package/src/common/types/options/server-info.options.js.map +0 -1
  436. package/src/common/types/options/session.options.js +0 -32
  437. package/src/common/types/options/session.options.js.map +0 -1
  438. package/src/common/types/options/transport.options.js +0 -121
  439. package/src/common/types/options/transport.options.js.map +0 -1
  440. package/src/common/utils/decide-request-intent.utils.js +0 -391
  441. package/src/common/utils/decide-request-intent.utils.js.map +0 -1
  442. package/src/common/utils/global-config.utils.js +0 -44
  443. package/src/common/utils/global-config.utils.js.map +0 -1
  444. package/src/common/utils/index.js +0 -7
  445. package/src/common/utils/index.js.map +0 -1
  446. package/src/common/utils/path.utils.js +0 -66
  447. package/src/common/utils/path.utils.js.map +0 -1
  448. package/src/completion/flows/complete.flow.js +0 -199
  449. package/src/completion/flows/complete.flow.js.map +0 -1
  450. package/src/context/frontmcp-context-storage.js +0 -183
  451. package/src/context/frontmcp-context-storage.js.map +0 -1
  452. package/src/context/frontmcp-context.js +0 -360
  453. package/src/context/frontmcp-context.js.map +0 -1
  454. package/src/context/frontmcp-context.provider.js +0 -61
  455. package/src/context/frontmcp-context.provider.js.map +0 -1
  456. package/src/context/index.js +0 -64
  457. package/src/context/index.js.map +0 -1
  458. package/src/context/request-context-storage.js +0 -183
  459. package/src/context/request-context-storage.js.map +0 -1
  460. package/src/context/request-context.js +0 -209
  461. package/src/context/request-context.js.map +0 -1
  462. package/src/context/request-context.provider.js +0 -51
  463. package/src/context/request-context.provider.js.map +0 -1
  464. package/src/context/session-key.provider.js +0 -65
  465. package/src/context/session-key.provider.js.map +0 -1
  466. package/src/context/trace-context.js +0 -142
  467. package/src/context/trace-context.js.map +0 -1
  468. package/src/errors/authorization-required.error.js +0 -274
  469. package/src/errors/authorization-required.error.js.map +0 -1
  470. package/src/errors/error-handler.js +0 -107
  471. package/src/errors/error-handler.js.map +0 -1
  472. package/src/errors/index.js +0 -45
  473. package/src/errors/index.js.map +0 -1
  474. package/src/errors/mcp.error.js +0 -416
  475. package/src/errors/mcp.error.js.map +0 -1
  476. package/src/exceptions/mcp-exceptions/session-missing.exception.js +0 -11
  477. package/src/exceptions/mcp-exceptions/session-missing.exception.js.map +0 -1
  478. package/src/exceptions/mcp-exceptions/unsupported-client-version.exception.js +0 -15
  479. package/src/exceptions/mcp-exceptions/unsupported-client-version.exception.js.map +0 -1
  480. package/src/flows/flow.instance.js +0 -420
  481. package/src/flows/flow.instance.js.map +0 -1
  482. package/src/flows/flow.registry.js +0 -121
  483. package/src/flows/flow.registry.js.map +0 -1
  484. package/src/flows/flow.stages.js +0 -113
  485. package/src/flows/flow.stages.js.map +0 -1
  486. package/src/flows/flow.utils.js +0 -36
  487. package/src/flows/flow.utils.js.map +0 -1
  488. package/src/front-mcp/front-mcp.js +0 -63
  489. package/src/front-mcp/front-mcp.js.map +0 -1
  490. package/src/front-mcp/front-mcp.providers.js +0 -29
  491. package/src/front-mcp/front-mcp.providers.js.map +0 -1
  492. package/src/front-mcp/front-mcp.tokens.js +0 -5
  493. package/src/front-mcp/front-mcp.tokens.js.map +0 -1
  494. package/src/front-mcp/index.js +0 -8
  495. package/src/front-mcp/index.js.map +0 -1
  496. package/src/front-mcp/serverless-handler.js +0 -61
  497. package/src/front-mcp/serverless-handler.js.map +0 -1
  498. package/src/hooks/hook.instance.js +0 -26
  499. package/src/hooks/hook.instance.js.map +0 -1
  500. package/src/hooks/hook.registry.js +0 -152
  501. package/src/hooks/hook.registry.js.map +0 -1
  502. package/src/hooks/hooks.utils.js +0 -34
  503. package/src/hooks/hooks.utils.js.map +0 -1
  504. package/src/index.js +0 -37
  505. package/src/index.js.map +0 -1
  506. package/src/logger/instances/instance.console-logger.js +0 -75
  507. package/src/logger/instances/instance.console-logger.js.map +0 -1
  508. package/src/logger/instances/instance.logger.js +0 -77
  509. package/src/logger/instances/instance.logger.js.map +0 -1
  510. package/src/logger/logger.registry.js +0 -96
  511. package/src/logger/logger.registry.js.map +0 -1
  512. package/src/logger/logger.tokens.js +0 -3
  513. package/src/logger/logger.tokens.js.map +0 -1
  514. package/src/logger/logger.types.js +0 -8
  515. package/src/logger/logger.types.js.map +0 -1
  516. package/src/logger/logger.utils.js +0 -42
  517. package/src/logger/logger.utils.js.map +0 -1
  518. package/src/logging/flows/set-level.flow.js +0 -108
  519. package/src/logging/flows/set-level.flow.js.map +0 -1
  520. package/src/mcp-apps/csp.js +0 -267
  521. package/src/mcp-apps/csp.js.map +0 -1
  522. package/src/mcp-apps/index.js +0 -91
  523. package/src/mcp-apps/index.js.map +0 -1
  524. package/src/mcp-apps/schemas.js +0 -345
  525. package/src/mcp-apps/schemas.js.map +0 -1
  526. package/src/mcp-apps/template.js +0 -419
  527. package/src/mcp-apps/template.js.map +0 -1
  528. package/src/mcp-apps/types.js +0 -59
  529. package/src/mcp-apps/types.js.map +0 -1
  530. package/src/notification/index.js +0 -13
  531. package/src/notification/index.js.map +0 -1
  532. package/src/notification/notification.service.js +0 -731
  533. package/src/notification/notification.service.js.map +0 -1
  534. package/src/plugin/plugin.registry.js +0 -152
  535. package/src/plugin/plugin.registry.js.map +0 -1
  536. package/src/plugin/plugin.utils.js +0 -88
  537. package/src/plugin/plugin.utils.js.map +0 -1
  538. package/src/prompt/flows/get-prompt.flow.js +0 -214
  539. package/src/prompt/flows/get-prompt.flow.js.map +0 -1
  540. package/src/prompt/flows/prompts-list.flow.js +0 -176
  541. package/src/prompt/flows/prompts-list.flow.js.map +0 -1
  542. package/src/prompt/index.js +0 -17
  543. package/src/prompt/index.js.map +0 -1
  544. package/src/prompt/prompt.events.js +0 -25
  545. package/src/prompt/prompt.events.js.map +0 -1
  546. package/src/prompt/prompt.instance.js +0 -120
  547. package/src/prompt/prompt.instance.js.map +0 -1
  548. package/src/prompt/prompt.registry.js +0 -380
  549. package/src/prompt/prompt.registry.js.map +0 -1
  550. package/src/prompt/prompt.types.js +0 -11
  551. package/src/prompt/prompt.types.js.map +0 -1
  552. package/src/prompt/prompt.utils.js +0 -136
  553. package/src/prompt/prompt.utils.js.map +0 -1
  554. package/src/provider/provider.registry.js +0 -868
  555. package/src/provider/provider.registry.js.map +0 -1
  556. package/src/provider/provider.types.js +0 -3
  557. package/src/provider/provider.types.js.map +0 -1
  558. package/src/provider/provider.utils.js +0 -103
  559. package/src/provider/provider.utils.js.map +0 -1
  560. package/src/regsitry/index.js +0 -5
  561. package/src/regsitry/index.js.map +0 -1
  562. package/src/regsitry/registry.base.js +0 -32
  563. package/src/regsitry/registry.base.js.map +0 -1
  564. package/src/resource/flows/read-resource.flow.js +0 -270
  565. package/src/resource/flows/read-resource.flow.js.map +0 -1
  566. package/src/resource/flows/resource-templates-list.flow.js +0 -191
  567. package/src/resource/flows/resource-templates-list.flow.js.map +0 -1
  568. package/src/resource/flows/resources-list.flow.js +0 -196
  569. package/src/resource/flows/resources-list.flow.js.map +0 -1
  570. package/src/resource/flows/subscribe-resource.flow.js +0 -123
  571. package/src/resource/flows/subscribe-resource.flow.js.map +0 -1
  572. package/src/resource/flows/unsubscribe-resource.flow.js +0 -107
  573. package/src/resource/flows/unsubscribe-resource.flow.js.map +0 -1
  574. package/src/resource/index.js +0 -20
  575. package/src/resource/index.js.map +0 -1
  576. package/src/resource/resource.events.js +0 -17
  577. package/src/resource/resource.events.js.map +0 -1
  578. package/src/resource/resource.instance.js +0 -163
  579. package/src/resource/resource.instance.js.map +0 -1
  580. package/src/resource/resource.registry.js +0 -468
  581. package/src/resource/resource.registry.js.map +0 -1
  582. package/src/resource/resource.types.js +0 -11
  583. package/src/resource/resource.types.js.map +0 -1
  584. package/src/resource/resource.utils.js +0 -151
  585. package/src/resource/resource.utils.js.map +0 -1
  586. package/src/scope/flows/http.request.flow.js +0 -474
  587. package/src/scope/flows/http.request.flow.js.map +0 -1
  588. package/src/scope/index.js +0 -6
  589. package/src/scope/index.js.map +0 -1
  590. package/src/scope/scope.instance.js +0 -263
  591. package/src/scope/scope.instance.js.map +0 -1
  592. package/src/scope/scope.registry.js +0 -94
  593. package/src/scope/scope.registry.js.map +0 -1
  594. package/src/scope/scope.utils.js +0 -61
  595. package/src/scope/scope.utils.js.map +0 -1
  596. package/src/server/adapters/base.host.adapter.js +0 -8
  597. package/src/server/adapters/base.host.adapter.js.map +0 -1
  598. package/src/server/adapters/express.host.adapter.js +0 -70
  599. package/src/server/adapters/express.host.adapter.js.map +0 -1
  600. package/src/server/server.instance.js +0 -54
  601. package/src/server/server.instance.js.map +0 -1
  602. package/src/server/server.types.js +0 -3
  603. package/src/server/server.types.js.map +0 -1
  604. package/src/server/server.validation.js +0 -192
  605. package/src/server/server.validation.js.map +0 -1
  606. package/src/store/adapters/store.base.adapter.js +0 -16
  607. package/src/store/adapters/store.base.adapter.js.map +0 -1
  608. package/src/store/adapters/store.memory.adapter.js +0 -89
  609. package/src/store/adapters/store.memory.adapter.js.map +0 -1
  610. package/src/store/adapters/store.redis.adapter.js +0 -104
  611. package/src/store/adapters/store.redis.adapter.js.map +0 -1
  612. package/src/store/adapters/store.vercel-kv.adapter.js +0 -155
  613. package/src/store/adapters/store.vercel-kv.adapter.js.map +0 -1
  614. package/src/store/index.js +0 -14
  615. package/src/store/index.js.map +0 -1
  616. package/src/store/store.factory.js +0 -194
  617. package/src/store/store.factory.js.map +0 -1
  618. package/src/store/store.helpers.js +0 -67
  619. package/src/store/store.helpers.js.map +0 -1
  620. package/src/store/store.registry.js +0 -37
  621. package/src/store/store.registry.js.map +0 -1
  622. package/src/store/store.tokens.js +0 -7
  623. package/src/store/store.tokens.js.map +0 -1
  624. package/src/store/store.types.js +0 -11
  625. package/src/store/store.types.js.map +0 -1
  626. package/src/store/store.utils.js +0 -18
  627. package/src/store/store.utils.js.map +0 -1
  628. package/src/tool/flows/call-tool.flow.js +0 -616
  629. package/src/tool/flows/call-tool.flow.js.map +0 -1
  630. package/src/tool/flows/tools-list.flow.js +0 -328
  631. package/src/tool/flows/tools-list.flow.js.map +0 -1
  632. package/src/tool/tool.events.js +0 -16
  633. package/src/tool/tool.events.js.map +0 -1
  634. package/src/tool/tool.instance.js +0 -117
  635. package/src/tool/tool.instance.js.map +0 -1
  636. package/src/tool/tool.registry.js +0 -353
  637. package/src/tool/tool.registry.js.map +0 -1
  638. package/src/tool/tool.types.js +0 -10
  639. package/src/tool/tool.types.js.map +0 -1
  640. package/src/tool/tool.utils.js +0 -366
  641. package/src/tool/tool.utils.js.map +0 -1
  642. package/src/tool/ui/index.js +0 -63
  643. package/src/tool/ui/index.js.map +0 -1
  644. package/src/tool/ui/platform-adapters.js +0 -18
  645. package/src/tool/ui/platform-adapters.js.map +0 -1
  646. package/src/tool/ui/template-helpers.js +0 -95
  647. package/src/tool/ui/template-helpers.js.map +0 -1
  648. package/src/tool/ui/ui-resource-template.js +0 -64
  649. package/src/tool/ui/ui-resource-template.js.map +0 -1
  650. package/src/tool/ui/ui-resource.handler.js +0 -129
  651. package/src/tool/ui/ui-resource.handler.js.map +0 -1
  652. package/src/transport/adapters/transport.local.adapter.js +0 -148
  653. package/src/transport/adapters/transport.local.adapter.js.map +0 -1
  654. package/src/transport/adapters/transport.sse.adapter.d.ts +0 -14
  655. package/src/transport/adapters/transport.sse.adapter.js +0 -65
  656. package/src/transport/adapters/transport.sse.adapter.js.map +0 -1
  657. package/src/transport/adapters/transport.streamable-http.adapter.js +0 -112
  658. package/src/transport/adapters/transport.streamable-http.adapter.js.map +0 -1
  659. package/src/transport/flows/handle.sse.flow.js +0 -197
  660. package/src/transport/flows/handle.sse.flow.js.map +0 -1
  661. package/src/transport/flows/handle.stateless-http.flow.js +0 -102
  662. package/src/transport/flows/handle.stateless-http.flow.js.map +0 -1
  663. package/src/transport/flows/handle.streamable-http.flow.js +0 -315
  664. package/src/transport/flows/handle.streamable-http.flow.js.map +0 -1
  665. package/src/transport/legacy/legacy.sse.tranporter.js +0 -185
  666. package/src/transport/legacy/legacy.sse.tranporter.js.map +0 -1
  667. package/src/transport/mcp-handlers/Initialized-notification.hanlder.js +0 -14
  668. package/src/transport/mcp-handlers/Initialized-notification.hanlder.js.map +0 -1
  669. package/src/transport/mcp-handlers/call-tool-request.handler.js +0 -46
  670. package/src/transport/mcp-handlers/call-tool-request.handler.js.map +0 -1
  671. package/src/transport/mcp-handlers/complete-request.handler.js +0 -11
  672. package/src/transport/mcp-handlers/complete-request.handler.js.map +0 -1
  673. package/src/transport/mcp-handlers/get-prompt-request.handler.js +0 -11
  674. package/src/transport/mcp-handlers/get-prompt-request.handler.js.map +0 -1
  675. package/src/transport/mcp-handlers/index.js +0 -57
  676. package/src/transport/mcp-handlers/index.js.map +0 -1
  677. package/src/transport/mcp-handlers/initialize-request.handler.js +0 -109
  678. package/src/transport/mcp-handlers/initialize-request.handler.js.map +0 -1
  679. package/src/transport/mcp-handlers/list-prompts-request.handler.js +0 -11
  680. package/src/transport/mcp-handlers/list-prompts-request.handler.js.map +0 -1
  681. package/src/transport/mcp-handlers/list-resource-templates-request.handler.js +0 -12
  682. package/src/transport/mcp-handlers/list-resource-templates-request.handler.js.map +0 -1
  683. package/src/transport/mcp-handlers/list-resources-request.handler.js +0 -12
  684. package/src/transport/mcp-handlers/list-resources-request.handler.js.map +0 -1
  685. package/src/transport/mcp-handlers/list-tools-request.handler.js +0 -11
  686. package/src/transport/mcp-handlers/list-tools-request.handler.js.map +0 -1
  687. package/src/transport/mcp-handlers/logging-set-level-request.handler.js +0 -34
  688. package/src/transport/mcp-handlers/logging-set-level-request.handler.js.map +0 -1
  689. package/src/transport/mcp-handlers/mcp-handlers.types.js +0 -3
  690. package/src/transport/mcp-handlers/mcp-handlers.types.js.map +0 -1
  691. package/src/transport/mcp-handlers/read-resource-request.handler.js +0 -12
  692. package/src/transport/mcp-handlers/read-resource-request.handler.js.map +0 -1
  693. package/src/transport/mcp-handlers/roots-list-changed-notification.handler.js +0 -26
  694. package/src/transport/mcp-handlers/roots-list-changed-notification.handler.js.map +0 -1
  695. package/src/transport/mcp-handlers/subscribe-request.handler.js +0 -34
  696. package/src/transport/mcp-handlers/subscribe-request.handler.js.map +0 -1
  697. package/src/transport/mcp-handlers/unsubscribe-request.handler.js +0 -34
  698. package/src/transport/mcp-handlers/unsubscribe-request.handler.js.map +0 -1
  699. package/src/transport/transport.error.js +0 -25
  700. package/src/transport/transport.error.js.map +0 -1
  701. package/src/transport/transport.event-store.js +0 -36
  702. package/src/transport/transport.event-store.js.map +0 -1
  703. package/src/transport/transport.local.js +0 -71
  704. package/src/transport/transport.local.js.map +0 -1
  705. package/src/transport/transport.registry.js +0 -552
  706. package/src/transport/transport.registry.js.map +0 -1
  707. package/src/transport/transport.remote.js +0 -31
  708. package/src/transport/transport.remote.js.map +0 -1
  709. package/src/transport/transport.types.js +0 -3
  710. package/src/transport/transport.types.js.map +0 -1
  711. package/src/types/drinen-hooks.types.js +0 -3
  712. package/src/types/drinen-hooks.types.js.map +0 -1
  713. package/src/types/invoke.type.js +0 -34
  714. package/src/types/invoke.type.js.map +0 -1
  715. package/src/types/token.types.js +0 -3
  716. package/src/types/token.types.js.map +0 -1
  717. package/src/utils/content.utils.js +0 -194
  718. package/src/utils/content.utils.js.map +0 -1
  719. package/src/utils/index.js +0 -55
  720. package/src/utils/index.js.map +0 -1
  721. package/src/utils/lineage.utils.js +0 -82
  722. package/src/utils/lineage.utils.js.map +0 -1
  723. package/src/utils/metadata.utils.js +0 -26
  724. package/src/utils/metadata.utils.js.map +0 -1
  725. package/src/utils/naming.utils.js +0 -136
  726. package/src/utils/naming.utils.js.map +0 -1
  727. package/src/utils/server.utils.js +0 -59
  728. package/src/utils/server.utils.js.map +0 -1
  729. package/src/utils/string.utils.js +0 -10
  730. package/src/utils/string.utils.js.map +0 -1
  731. package/src/utils/token.utils.js +0 -65
  732. package/src/utils/token.utils.js.map +0 -1
  733. package/src/utils/types.utils.js +0 -3
  734. package/src/utils/types.utils.js.map +0 -1
  735. package/src/utils/uri-template.utils.js +0 -113
  736. package/src/utils/uri-template.utils.js.map +0 -1
  737. package/src/utils/uri-validation.utils.js +0 -76
  738. package/src/utils/uri-validation.utils.js.map +0 -1
  739. package/{src/adapter → adapter}/adapter.instance.d.ts +0 -0
  740. package/{src/adapter → adapter}/adapter.regsitry.d.ts +0 -0
  741. package/{src/adapter → adapter}/adapter.utils.d.ts +0 -0
  742. package/{src/app → app}/app.registry.d.ts +0 -0
  743. package/{src/app → app}/app.utils.d.ts +0 -0
  744. package/{src/app → app}/instances/app.local.instance.d.ts +0 -0
  745. package/{src/app → app}/instances/app.remote.instance.d.ts +0 -0
  746. package/{src/app → app}/instances/index.d.ts +0 -0
  747. package/{src/auth → auth}/auth.registry.d.ts +0 -0
  748. package/{src/auth → auth}/auth.utils.d.ts +0 -0
  749. package/{src/auth → auth}/authorization/authorization.class.d.ts +0 -0
  750. package/{src/auth → auth}/authorization/authorization.types.d.ts +0 -0
  751. package/{src/auth → auth}/authorization/index.d.ts +0 -0
  752. package/{src/auth → auth}/authorization/orchestrated.authorization.d.ts +0 -0
  753. package/{src/auth → auth}/authorization/public.authorization.d.ts +0 -0
  754. package/{src/auth → auth}/authorization/transparent.authorization.d.ts +0 -0
  755. package/{src/auth → auth}/consent/consent.types.d.ts +0 -0
  756. package/{src/auth → auth}/consent/index.d.ts +0 -0
  757. package/{src/auth → auth}/detection/auth-provider-detection.d.ts +0 -0
  758. package/{src/auth → auth}/detection/index.d.ts +0 -0
  759. package/{src/auth → auth}/flows/auth.verify.flow.d.ts +0 -0
  760. package/{src/auth → auth}/flows/oauth.authorize.flow.d.ts +0 -0
  761. package/{src/auth → auth}/flows/oauth.callback.flow.d.ts +0 -0
  762. package/{src/auth → auth}/flows/oauth.register.flow.d.ts +0 -0
  763. package/{src/auth → auth}/flows/oauth.token.flow.d.ts +0 -0
  764. package/{src/auth → auth}/flows/session.verify.flow.d.ts +0 -0
  765. package/{src/auth → auth}/flows/well-known.jwks.flow.d.ts +0 -0
  766. package/{src/auth → auth}/flows/well-known.oauth-authorization-server.flow.d.ts +0 -0
  767. package/{src/auth → auth}/flows/well-known.prm.flow.d.ts +0 -0
  768. package/{src/auth → auth}/jwks/dev-key-persistence.d.ts +0 -0
  769. package/{src/auth → auth}/jwks/index.d.ts +0 -0
  770. package/{src/auth → auth}/jwks/jwks.service.d.ts +0 -0
  771. package/{src/auth → auth}/jwks/jwks.types.d.ts +0 -0
  772. package/{src/auth → auth}/jwks/jwks.utils.d.ts +0 -0
  773. package/{src/auth → auth}/machine-id.d.ts +0 -0
  774. package/{src/auth → auth}/oauth/flows/oauth.authorize.flow.d.ts +0 -0
  775. package/{src/auth → auth}/oauth/flows/oauth.device-authorization.flow.d.ts +0 -0
  776. package/{src/auth → auth}/oauth/flows/oauth.introspect.flow.d.ts +0 -0
  777. package/{src/auth → auth}/oauth/flows/oauth.par.flow.d.ts +0 -0
  778. package/{src/auth → auth}/oauth/flows/oauth.revoke.flow.d.ts +0 -0
  779. package/{src/auth → auth}/oauth/flows/oauth.token.flow.d.ts +0 -0
  780. package/{src/auth → auth}/oauth/flows/oauth.userinfo.flow.d.ts +0 -0
  781. package/{src/auth → auth}/oauth/flows/oidc.logout.flow.d.ts +0 -0
  782. package/{src/auth → auth}/session/authorization-vault.d.ts +0 -0
  783. package/{src/auth → auth}/session/authorization.store.d.ts +0 -0
  784. package/{src/auth → auth}/session/encrypted-authorization-vault.d.ts +0 -0
  785. package/{src/auth → auth}/session/record/session.base.d.ts +0 -0
  786. package/{src/auth → auth}/session/record/session.stateful.d.ts +0 -0
  787. package/{src/auth → auth}/session/record/session.stateless.d.ts +0 -0
  788. package/{src/auth → auth}/session/record/session.transparent.d.ts +0 -0
  789. package/{src/auth → auth}/session/session.crypto.d.ts +0 -0
  790. package/{src/auth → auth}/session/session.schema.d.ts +0 -0
  791. package/{src/auth → auth}/session/session.service.d.ts +0 -0
  792. package/{src/auth → auth}/session/session.transport.d.ts +0 -0
  793. package/{src/auth → auth}/session/session.types.d.ts +0 -0
  794. package/{src/auth → auth}/session/token.refresh.d.ts +0 -0
  795. package/{src/auth → auth}/session/token.store.d.ts +0 -0
  796. package/{src/auth → auth}/session/token.vault.d.ts +0 -0
  797. package/{src/auth → auth}/session/transport-session.manager.d.ts +0 -0
  798. package/{src/auth → auth}/session/utils/auth-token.utils.d.ts +0 -0
  799. package/{src/auth → auth}/session/utils/session-id.utils.d.ts +0 -0
  800. package/{src/auth → auth}/session/utils/tiny-ttl-cache.d.ts +0 -0
  801. package/{src/auth → auth}/session/vault-encryption.d.ts +0 -0
  802. package/{src/auth → auth}/ui/base-layout.d.ts +0 -0
  803. package/{src/auth → auth}/ui/index.d.ts +0 -0
  804. package/{src/auth → auth}/ui/templates.d.ts +0 -0
  805. package/{src/auth → auth}/utils/audience.validator.d.ts +0 -0
  806. package/{src/auth → auth}/utils/index.d.ts +0 -0
  807. package/{src/auth → auth}/utils/www-authenticate.utils.d.ts +0 -0
  808. package/{src/common → common}/common.schema.d.ts +0 -0
  809. package/{src/common → common}/constants.d.ts +0 -0
  810. package/{src/common → common}/decorators/adapter.decorator.d.ts +0 -0
  811. package/{src/common → common}/decorators/app.decorator.d.ts +0 -0
  812. package/{src/common → common}/decorators/auth-provider.decorator.d.ts +0 -0
  813. package/{src/common → common}/decorators/decorator-utils.d.ts +0 -0
  814. package/{src/common → common}/decorators/flow.decorator.d.ts +0 -0
  815. package/{src/common → common}/decorators/front-mcp.decorator.d.ts +0 -0
  816. package/{src/common → common}/decorators/hook.decorator.d.ts +0 -0
  817. package/{src/common → common}/decorators/index.d.ts +0 -0
  818. package/{src/common → common}/decorators/logger.decorator.d.ts +0 -0
  819. package/{src/common → common}/decorators/plugin.decorator.d.ts +0 -0
  820. package/{src/common → common}/decorators/prompt.decorator.d.ts +0 -0
  821. package/{src/common → common}/decorators/provider.decorator.d.ts +0 -0
  822. package/{src/common → common}/decorators/resource.decorator.d.ts +0 -0
  823. package/{src/common → common}/decorators/tool.decorator.d.ts +0 -0
  824. package/{src/common → common}/dynamic/dynamic.adapter.d.ts +0 -0
  825. package/{src/common → common}/dynamic/dynamic.plugin.d.ts +0 -0
  826. package/{src/common → common}/dynamic/dynamic.utils.d.ts +0 -0
  827. package/{src/common → common}/dynamic/index.d.ts +0 -0
  828. package/{src/common → common}/entries/adapter.entry.d.ts +0 -0
  829. package/{src/common → common}/entries/app.entry.d.ts +0 -0
  830. package/{src/common → common}/entries/auth-provider.entry.d.ts +0 -0
  831. package/{src/common → common}/entries/base.entry.d.ts +0 -0
  832. package/{src/common → common}/entries/flow.entry.d.ts +0 -0
  833. package/{src/common → common}/entries/hook.entry.d.ts +0 -0
  834. package/{src/common → common}/entries/index.d.ts +0 -0
  835. package/{src/common → common}/entries/logger.entry.d.ts +0 -0
  836. package/{src/common → common}/entries/plugin.entry.d.ts +0 -0
  837. package/{src/common → common}/entries/prompt.entry.d.ts +0 -0
  838. package/{src/common → common}/entries/provider.entry.d.ts +0 -0
  839. package/{src/common → common}/entries/resource.entry.d.ts +0 -0
  840. package/{src/common → common}/entries/scope.entry.d.ts +0 -0
  841. package/{src/common → common}/entries/tool.entry.d.ts +0 -0
  842. package/{src/common → common}/flow/flow.utils.d.ts +0 -0
  843. package/{src/common → common}/index.d.ts +0 -0
  844. package/{src/common → common}/interfaces/adapter.interface.d.ts +0 -0
  845. package/{src/common → common}/interfaces/app.interface.d.ts +0 -0
  846. package/{src/common → common}/interfaces/auth-hook.interface.d.ts +0 -0
  847. package/{src/common → common}/interfaces/auth-provider.interface.d.ts +0 -0
  848. package/{src/common → common}/interfaces/base.interface.d.ts +0 -0
  849. package/{src/common → common}/interfaces/execution-context.interface.d.ts +0 -0
  850. package/{src/common → common}/interfaces/flow.interface.d.ts +0 -0
  851. package/{src/common → common}/interfaces/front-mcp.interface.d.ts +0 -0
  852. package/{src/common → common}/interfaces/hook.interface.d.ts +0 -0
  853. package/{src/common → common}/interfaces/index.d.ts +0 -0
  854. package/{src/common → common}/interfaces/internal/flow.utils.d.ts +0 -0
  855. package/{src/common → common}/interfaces/internal/index.d.ts +0 -0
  856. package/{src/common → common}/interfaces/internal/registry.interface.d.ts +0 -0
  857. package/{src/common → common}/interfaces/logger.interface.d.ts +0 -0
  858. package/{src/common → common}/interfaces/plugin.interface.d.ts +0 -0
  859. package/{src/common → common}/interfaces/prompt.interface.d.ts +0 -0
  860. package/{src/common → common}/interfaces/provider.interface.d.ts +0 -0
  861. package/{src/common → common}/interfaces/resource.interface.d.ts +0 -0
  862. package/{src/common → common}/interfaces/scope.interface.d.ts +0 -0
  863. package/{src/common → common}/interfaces/server.interface.d.ts +0 -0
  864. package/{src/common → common}/interfaces/session-hook.interface.d.ts +0 -0
  865. package/{src/common → common}/interfaces/tool-hook.interface.d.ts +0 -0
  866. package/{src/common → common}/interfaces/tool.interface.d.ts +0 -0
  867. package/{src/common → common}/metadata/adapter.metadata.d.ts +0 -0
  868. package/{src/common → common}/metadata/app.metadata.d.ts +42 -42
  869. package/{src/common → common}/metadata/auth-provider.metadata.d.ts +0 -0
  870. package/{src/common → common}/metadata/flow.metadata.d.ts +0 -0
  871. package/{src/common → common}/metadata/hook.metadata.d.ts +0 -0
  872. package/{src/common → common}/metadata/index.d.ts +0 -0
  873. package/{src/common → common}/metadata/logger.metadata.d.ts +0 -0
  874. package/{src/common → common}/metadata/plugin.metadata.d.ts +0 -0
  875. package/{src/common → common}/metadata/prompt.metadata.d.ts +0 -0
  876. package/{src/common → common}/metadata/provider.metadata.d.ts +0 -0
  877. package/{src/common → common}/metadata/resource.metadata.d.ts +0 -0
  878. package/{src/common → common}/metadata/tool-ui.metadata.d.ts +0 -0
  879. package/{src/common → common}/metadata/tool.metadata.d.ts +0 -0
  880. package/{src/common → common}/migrate/auth-transport.migrate.d.ts +0 -0
  881. package/{src/common → common}/migrate/index.d.ts +0 -0
  882. package/{src/common → common}/providers/base-config.provider.d.ts +0 -0
  883. package/{src/common → common}/records/adapter.record.d.ts +0 -0
  884. package/{src/common → common}/records/app.record.d.ts +0 -0
  885. package/{src/common → common}/records/auth-provider.record.d.ts +0 -0
  886. package/{src/common → common}/records/flow.record.d.ts +0 -0
  887. package/{src/common → common}/records/hook.record.d.ts +0 -0
  888. package/{src/common → common}/records/index.d.ts +0 -0
  889. package/{src/common → common}/records/logger.record.d.ts +0 -0
  890. package/{src/common → common}/records/plugin.record.d.ts +0 -0
  891. package/{src/common → common}/records/prompt.record.d.ts +0 -0
  892. package/{src/common → common}/records/provider.record.d.ts +0 -0
  893. package/{src/common → common}/records/resource.record.d.ts +0 -0
  894. package/{src/common → common}/records/scope.record.d.ts +0 -0
  895. package/{src/common → common}/records/tool.record.d.ts +0 -0
  896. package/{src/common → common}/schemas/annotated-class.schema.d.ts +0 -0
  897. package/{src/common → common}/schemas/http-input.schema.d.ts +0 -0
  898. package/{src/common → common}/schemas/http-output.schema.d.ts +0 -0
  899. package/{src/common → common}/schemas/index.d.ts +0 -0
  900. package/{src/common → common}/schemas/session-header.schema.d.ts +0 -0
  901. package/{src/common → common}/tokens/adapter.tokens.d.ts +0 -0
  902. package/{src/common → common}/tokens/app.tokens.d.ts +0 -0
  903. package/{src/common → common}/tokens/auth-provider.tokens.d.ts +0 -0
  904. package/{src/common → common}/tokens/base.tokens.d.ts +0 -0
  905. package/{src/common → common}/tokens/flow-hook.tokens.d.ts +0 -0
  906. package/{src/common → common}/tokens/flow.tokens.d.ts +0 -0
  907. package/{src/common → common}/tokens/front-mcp.tokens.d.ts +0 -0
  908. package/{src/common → common}/tokens/index.d.ts +0 -0
  909. package/{src/common → common}/tokens/logger.tokens.d.ts +0 -0
  910. package/{src/common → common}/tokens/plugin.tokens.d.ts +0 -0
  911. package/{src/common → common}/tokens/prompt.tokens.d.ts +0 -0
  912. package/{src/common → common}/tokens/provider.tokens.d.ts +0 -0
  913. package/{src/common → common}/tokens/resource.tokens.d.ts +0 -0
  914. package/{src/common → common}/tokens/server.tokens.d.ts +0 -0
  915. package/{src/common → common}/tokens/tool.tokens.d.ts +0 -0
  916. package/{src/common → common}/types/auth/index.d.ts +0 -0
  917. package/{src/common → common}/types/auth/jwt.types.d.ts +0 -0
  918. package/{src/common → common}/types/auth/session.types.d.ts +0 -0
  919. package/{src/common → common}/types/common.types.d.ts +0 -0
  920. package/{src/common → common}/types/index.d.ts +0 -0
  921. package/{src/logger/logger.tokens.d.ts → common/types/options/auth/auth.typecheck.d.ts} +0 -0
  922. package/{src/common → common}/types/options/http.options.d.ts +0 -0
  923. package/{src/common → common}/types/options/logging.options.d.ts +0 -0
  924. package/{src/common → common}/types/options/redis.options.d.ts +0 -0
  925. package/{src/common → common}/types/options/server-info.options.d.ts +0 -0
  926. package/{src/common → common}/types/options/session.options.d.ts +0 -0
  927. package/{src/common → common}/utils/global-config.utils.d.ts +0 -0
  928. package/{src/common → common}/utils/index.d.ts +0 -0
  929. package/{src/common → common}/utils/path.utils.d.ts +0 -0
  930. package/{src/completion → completion}/flows/complete.flow.d.ts +0 -0
  931. package/{src/context → context}/frontmcp-context-storage.d.ts +0 -0
  932. package/{src/context → context}/frontmcp-context.d.ts +0 -0
  933. package/{src/context → context}/frontmcp-context.provider.d.ts +0 -0
  934. package/{src/context → context}/index.d.ts +0 -0
  935. package/{src/context → context}/request-context-storage.d.ts +0 -0
  936. package/{src/context → context}/request-context.d.ts +0 -0
  937. package/{src/context → context}/request-context.provider.d.ts +0 -0
  938. package/{src/context → context}/session-key.provider.d.ts +0 -0
  939. package/{src/context → context}/trace-context.d.ts +0 -0
  940. package/{src/errors → errors}/authorization-required.error.d.ts +0 -0
  941. package/{src/errors → errors}/error-handler.d.ts +0 -0
  942. package/{src/errors → errors}/index.d.ts +0 -0
  943. package/{src/errors → errors}/mcp.error.d.ts +0 -0
  944. package/{src/exceptions → exceptions}/mcp-exceptions/session-missing.exception.d.ts +0 -0
  945. package/{src/exceptions → exceptions}/mcp-exceptions/unsupported-client-version.exception.d.ts +0 -0
  946. package/{src/flows → flows}/flow.instance.d.ts +0 -0
  947. package/{src/flows → flows}/flow.registry.d.ts +0 -0
  948. package/{src/flows → flows}/flow.stages.d.ts +0 -0
  949. package/{src/flows → flows}/flow.utils.d.ts +0 -0
  950. package/{src/front-mcp → front-mcp}/front-mcp.d.ts +0 -0
  951. package/{src/front-mcp → front-mcp}/front-mcp.providers.d.ts +38 -38
  952. /package/{src/front-mcp → front-mcp}/front-mcp.tokens.d.ts +0 -0
  953. /package/{src/front-mcp → front-mcp}/index.d.ts +0 -0
  954. /package/{src/front-mcp → front-mcp}/serverless-handler.d.ts +0 -0
  955. /package/{src/hooks → hooks}/hook.instance.d.ts +0 -0
  956. /package/{src/hooks → hooks}/hook.registry.d.ts +0 -0
  957. /package/{src/hooks → hooks}/hooks.utils.d.ts +0 -0
  958. /package/{src/index.d.ts → index.d.ts} +0 -0
  959. /package/{src/logger → logger}/instances/instance.console-logger.d.ts +0 -0
  960. /package/{src/logger → logger}/instances/instance.logger.d.ts +0 -0
  961. /package/{src/logger → logger}/logger.registry.d.ts +0 -0
  962. /package/{src/logger → logger}/logger.types.d.ts +0 -0
  963. /package/{src/logger → logger}/logger.utils.d.ts +0 -0
  964. /package/{src/logging → logging}/flows/set-level.flow.d.ts +0 -0
  965. /package/{src/mcp-apps → mcp-apps}/csp.d.ts +0 -0
  966. /package/{src/mcp-apps → mcp-apps}/index.d.ts +0 -0
  967. /package/{src/mcp-apps → mcp-apps}/schemas.d.ts +0 -0
  968. /package/{src/mcp-apps → mcp-apps}/template.d.ts +0 -0
  969. /package/{src/mcp-apps → mcp-apps}/types.d.ts +0 -0
  970. /package/{src/notification → notification}/index.d.ts +0 -0
  971. /package/{src/notification → notification}/notification.service.d.ts +0 -0
  972. /package/{src/plugin → plugin}/plugin.registry.d.ts +0 -0
  973. /package/{src/plugin → plugin}/plugin.utils.d.ts +0 -0
  974. /package/{src/prompt → prompt}/flows/get-prompt.flow.d.ts +0 -0
  975. /package/{src/prompt → prompt}/flows/prompts-list.flow.d.ts +0 -0
  976. /package/{src/prompt → prompt}/index.d.ts +0 -0
  977. /package/{src/prompt → prompt}/prompt.events.d.ts +0 -0
  978. /package/{src/prompt → prompt}/prompt.instance.d.ts +0 -0
  979. /package/{src/prompt → prompt}/prompt.registry.d.ts +0 -0
  980. /package/{src/prompt → prompt}/prompt.types.d.ts +0 -0
  981. /package/{src/prompt → prompt}/prompt.utils.d.ts +0 -0
  982. /package/{src/provider → provider}/provider.registry.d.ts +0 -0
  983. /package/{src/provider → provider}/provider.types.d.ts +0 -0
  984. /package/{src/provider → provider}/provider.utils.d.ts +0 -0
  985. /package/{src/regsitry → regsitry}/index.d.ts +0 -0
  986. /package/{src/regsitry → regsitry}/registry.base.d.ts +0 -0
  987. /package/{src/resource → resource}/flows/read-resource.flow.d.ts +0 -0
  988. /package/{src/resource → resource}/flows/resource-templates-list.flow.d.ts +0 -0
  989. /package/{src/resource → resource}/flows/resources-list.flow.d.ts +0 -0
  990. /package/{src/resource → resource}/flows/subscribe-resource.flow.d.ts +0 -0
  991. /package/{src/resource → resource}/flows/unsubscribe-resource.flow.d.ts +0 -0
  992. /package/{src/resource → resource}/index.d.ts +0 -0
  993. /package/{src/resource → resource}/resource.events.d.ts +0 -0
  994. /package/{src/resource → resource}/resource.instance.d.ts +0 -0
  995. /package/{src/resource → resource}/resource.registry.d.ts +0 -0
  996. /package/{src/resource → resource}/resource.types.d.ts +0 -0
  997. /package/{src/resource → resource}/resource.utils.d.ts +0 -0
  998. /package/{src/scope → scope}/flows/http.request.flow.d.ts +0 -0
  999. /package/{src/scope → scope}/index.d.ts +0 -0
  1000. /package/{src/scope → scope}/scope.instance.d.ts +0 -0
  1001. /package/{src/scope → scope}/scope.registry.d.ts +0 -0
  1002. /package/{src/scope → scope}/scope.utils.d.ts +0 -0
  1003. /package/{src/server → server}/adapters/base.host.adapter.d.ts +0 -0
  1004. /package/{src/server → server}/adapters/express.host.adapter.d.ts +0 -0
  1005. /package/{src/server → server}/server.instance.d.ts +0 -0
  1006. /package/{src/server → server}/server.types.d.ts +0 -0
  1007. /package/{src/server → server}/server.validation.d.ts +0 -0
  1008. /package/{src/store → store}/adapters/store.base.adapter.d.ts +0 -0
  1009. /package/{src/store → store}/adapters/store.memory.adapter.d.ts +0 -0
  1010. /package/{src/store → store}/adapters/store.redis.adapter.d.ts +0 -0
  1011. /package/{src/store → store}/adapters/store.vercel-kv.adapter.d.ts +0 -0
  1012. /package/{src/store → store}/index.d.ts +0 -0
  1013. /package/{src/store → store}/store.factory.d.ts +0 -0
  1014. /package/{src/store → store}/store.helpers.d.ts +0 -0
  1015. /package/{src/store → store}/store.registry.d.ts +0 -0
  1016. /package/{src/store → store}/store.tokens.d.ts +0 -0
  1017. /package/{src/store → store}/store.types.d.ts +0 -0
  1018. /package/{src/store → store}/store.utils.d.ts +0 -0
  1019. /package/{src/tool → tool}/flows/call-tool.flow.d.ts +0 -0
  1020. /package/{src/tool → tool}/flows/tools-list.flow.d.ts +0 -0
  1021. /package/{src/tool → tool}/tool.events.d.ts +0 -0
  1022. /package/{src/tool → tool}/tool.instance.d.ts +0 -0
  1023. /package/{src/tool → tool}/tool.registry.d.ts +0 -0
  1024. /package/{src/tool → tool}/tool.types.d.ts +0 -0
  1025. /package/{src/tool → tool}/tool.utils.d.ts +0 -0
  1026. /package/{src/tool → tool}/ui/index.d.ts +0 -0
  1027. /package/{src/tool → tool}/ui/platform-adapters.d.ts +0 -0
  1028. /package/{src/tool → tool}/ui/template-helpers.d.ts +0 -0
  1029. /package/{src/tool → tool}/ui/ui-resource-template.d.ts +0 -0
  1030. /package/{src/tool → tool}/ui/ui-resource.handler.d.ts +0 -0
  1031. /package/{src/transport → transport}/flows/handle.sse.flow.d.ts +0 -0
  1032. /package/{src/transport → transport}/flows/handle.stateless-http.flow.d.ts +0 -0
  1033. /package/{src/transport → transport}/flows/handle.streamable-http.flow.d.ts +0 -0
  1034. /package/{src/transport → transport}/legacy/legacy.sse.tranporter.d.ts +0 -0
  1035. /package/{src/transport → transport}/mcp-handlers/Initialized-notification.hanlder.d.ts +0 -0
  1036. /package/{src/transport → transport}/mcp-handlers/call-tool-request.handler.d.ts +0 -0
  1037. /package/{src/transport → transport}/mcp-handlers/complete-request.handler.d.ts +0 -0
  1038. /package/{src/transport → transport}/mcp-handlers/get-prompt-request.handler.d.ts +0 -0
  1039. /package/{src/transport → transport}/mcp-handlers/index.d.ts +0 -0
  1040. /package/{src/transport → transport}/mcp-handlers/initialize-request.handler.d.ts +0 -0
  1041. /package/{src/transport → transport}/mcp-handlers/list-prompts-request.handler.d.ts +0 -0
  1042. /package/{src/transport → transport}/mcp-handlers/list-resource-templates-request.handler.d.ts +0 -0
  1043. /package/{src/transport → transport}/mcp-handlers/list-resources-request.handler.d.ts +0 -0
  1044. /package/{src/transport → transport}/mcp-handlers/list-tools-request.handler.d.ts +0 -0
  1045. /package/{src/transport → transport}/mcp-handlers/logging-set-level-request.handler.d.ts +0 -0
  1046. /package/{src/transport → transport}/mcp-handlers/mcp-handlers.types.d.ts +0 -0
  1047. /package/{src/transport → transport}/mcp-handlers/read-resource-request.handler.d.ts +0 -0
  1048. /package/{src/transport → transport}/mcp-handlers/roots-list-changed-notification.handler.d.ts +0 -0
  1049. /package/{src/transport → transport}/mcp-handlers/subscribe-request.handler.d.ts +0 -0
  1050. /package/{src/transport → transport}/mcp-handlers/unsubscribe-request.handler.d.ts +0 -0
  1051. /package/{src/transport → transport}/transport.error.d.ts +0 -0
  1052. /package/{src/transport → transport}/transport.event-store.d.ts +0 -0
  1053. /package/{src/types → types}/drinen-hooks.types.d.ts +0 -0
  1054. /package/{src/types → types}/invoke.type.d.ts +0 -0
  1055. /package/{src/types → types}/token.types.d.ts +0 -0
  1056. /package/{src/utils → utils}/content.utils.d.ts +0 -0
  1057. /package/{src/utils → utils}/index.d.ts +0 -0
  1058. /package/{src/utils → utils}/lineage.utils.d.ts +0 -0
  1059. /package/{src/utils → utils}/metadata.utils.d.ts +0 -0
  1060. /package/{src/utils → utils}/naming.utils.d.ts +0 -0
  1061. /package/{src/utils → utils}/server.utils.d.ts +0 -0
  1062. /package/{src/utils → utils}/string.utils.d.ts +0 -0
  1063. /package/{src/utils → utils}/token.utils.d.ts +0 -0
  1064. /package/{src/utils → utils}/types.utils.d.ts +0 -0
  1065. /package/{src/utils → utils}/uri-template.utils.d.ts +0 -0
  1066. /package/{src/utils → utils}/uri-validation.utils.d.ts +0 -0
@@ -1,552 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.TransportService = void 0;
4
- const tslib_1 = require("tslib");
5
- // server/transport/transport.registry.ts
6
- const crypto_1 = require("crypto");
7
- const transport_remote_1 = require("./transport.remote");
8
- const transport_local_1 = require("./transport.local");
9
- const handle_streamable_http_flow_1 = tslib_1.__importDefault(require("./flows/handle.streamable-http.flow"));
10
- const handle_sse_flow_1 = tslib_1.__importDefault(require("./flows/handle.sse.flow"));
11
- const handle_stateless_http_flow_1 = tslib_1.__importDefault(require("./flows/handle.stateless-http.flow"));
12
- const store_1 = require("../store");
13
- const authorization_class_1 = require("../auth/authorization/authorization.class");
14
- class TransportService {
15
- ready;
16
- byType = new Map();
17
- distributed;
18
- bus;
19
- scope;
20
- /**
21
- * Session history cache for tracking if sessions were ever created.
22
- * Used to differentiate between "session never initialized" (HTTP 400) and
23
- * "session expired/terminated" (HTTP 404) per MCP Spec 2025-11-25.
24
- *
25
- * Key: JSON-encoded {type, tokenHash, sessionId}, Value: creation timestamp
26
- * Note: We use JSON instead of colon-delimiter because sessionId can contain colons.
27
- */
28
- sessionHistory = new Map();
29
- MAX_SESSION_HISTORY = 10000;
30
- /**
31
- * Session store for transport persistence (Redis or Vercel KV)
32
- * Used to persist session metadata across server restarts
33
- */
34
- sessionStore;
35
- /**
36
- * Transport persistence configuration
37
- */
38
- persistenceConfig;
39
- /**
40
- * Pending store configuration for async initialization
41
- */
42
- pendingStoreConfig;
43
- /**
44
- * Mutex map for preventing concurrent transport creation for the same key.
45
- * Key: JSON-encoded {t: type, h: tokenHash, s: sessionId}, Value: Promise that resolves when creation completes
46
- */
47
- creationMutex = new Map();
48
- constructor(scope, persistenceConfig) {
49
- this.scope = scope;
50
- this.persistenceConfig = persistenceConfig;
51
- this.distributed = false; // get from scope metadata
52
- this.bus = undefined; // get from scope metadata
53
- if (this.distributed && !this.bus) {
54
- throw new Error('TransportRegistry: distributed=true requires a TransportBus implementation.');
55
- }
56
- // Initialize session store if persistence is enabled (Redis or Vercel KV)
57
- if (persistenceConfig?.enabled && persistenceConfig.redis) {
58
- // Use factory to create appropriate session store based on provider
59
- const redisConfig = persistenceConfig.redis;
60
- const providerType = 'provider' in redisConfig ? redisConfig.provider : 'redis';
61
- // Override keyPrefix for transport persistence (separate from auth sessions)
62
- // Cast to RedisOptions since we're modifying the config
63
- this.pendingStoreConfig = {
64
- ...redisConfig,
65
- keyPrefix: redisConfig.keyPrefix ?? 'mcp:transport:',
66
- defaultTtlMs: persistenceConfig.defaultTtlMs ?? 3600000, // 1 hour default
67
- };
68
- this.scope.logger.info(`[TransportService] ${providerType} session store will be initialized for transport persistence`);
69
- }
70
- this.ready = this.initialize();
71
- }
72
- async initialize() {
73
- // Create session store if configuration is pending
74
- if (this.pendingStoreConfig) {
75
- try {
76
- const store = await (0, store_1.createSessionStore)(this.pendingStoreConfig, this.scope.logger.child('SessionStore'));
77
- // Cast to our extended type (both RedisSessionStore and VercelKvSessionStore have ping/disconnect)
78
- this.sessionStore = store;
79
- this.pendingStoreConfig = undefined;
80
- }
81
- catch (error) {
82
- this.scope.logger.error('[TransportService] Failed to create session store - session persistence disabled', {
83
- error: error.message,
84
- });
85
- }
86
- }
87
- // Validate connection if session store is configured
88
- if (this.sessionStore) {
89
- const isConnected = this.sessionStore.ping ? await this.sessionStore.ping() : true;
90
- if (!isConnected) {
91
- const providerType = this.persistenceConfig?.redis && 'provider' in this.persistenceConfig.redis
92
- ? this.persistenceConfig.redis.provider
93
- : 'redis';
94
- this.scope.logger.error(`[TransportService] Failed to connect to ${providerType} - session persistence disabled`);
95
- // Nullify sessionStore to prevent silent failures on all subsequent operations
96
- // This ensures clean graceful degradation - sessions will only persist in memory
97
- if (this.sessionStore.disconnect) {
98
- await this.sessionStore.disconnect().catch(() => void 0);
99
- }
100
- this.sessionStore = undefined;
101
- }
102
- else {
103
- this.scope.logger.info('[TransportService] Session store connection validated successfully');
104
- }
105
- }
106
- await this.scope.registryFlows(handle_streamable_http_flow_1.default, handle_sse_flow_1.default, handle_stateless_http_flow_1.default);
107
- }
108
- async destroy() {
109
- // Close session store connection if it was created
110
- if (this.sessionStore && this.sessionStore.disconnect) {
111
- try {
112
- await this.sessionStore.disconnect();
113
- this.scope.logger.info('[TransportService] Session store disconnected');
114
- }
115
- catch (error) {
116
- this.scope.logger.warn('[TransportService] Error disconnecting session store', {
117
- error: error.message,
118
- });
119
- }
120
- }
121
- }
122
- async getTransporter(type, token, sessionId) {
123
- const key = this.keyOf(type, token, sessionId);
124
- // 1. Check local in-memory cache first
125
- const local = this.lookupLocal(key);
126
- if (local)
127
- return local;
128
- // 2. Check distributed bus (if enabled)
129
- if (this.distributed && this.bus) {
130
- const location = await this.bus.lookup(key);
131
- if (location) {
132
- return new transport_remote_1.RemoteTransporter(key, this.bus);
133
- }
134
- }
135
- // Note: Redis-stored sessions require recreation via recreateTransporter()
136
- // Flows should use getStoredSession() to check if session exists in Redis,
137
- // then call recreateTransporter() with the response object.
138
- return undefined;
139
- }
140
- /**
141
- * Get stored session from Redis (without creating a transport).
142
- * Used by flows to check if session exists and can be recreated.
143
- *
144
- * @param type - Transport type
145
- * @param token - Authorization token
146
- * @param sessionId - Session ID
147
- * @returns Stored session data if exists and token matches, undefined otherwise
148
- */
149
- async getStoredSession(type, token, sessionId) {
150
- if (!this.sessionStore || type !== 'streamable-http')
151
- return undefined;
152
- const tokenHash = this.sha256(token);
153
- const stored = await this.sessionStore.get(sessionId);
154
- if (!stored)
155
- return undefined;
156
- // Verify the token hash matches
157
- if (stored.authorizationId !== tokenHash) {
158
- this.scope.logger.warn('[TransportService] Session token mismatch during lookup', {
159
- sessionId: sessionId.slice(0, 20),
160
- storedTokenHash: stored.authorizationId.slice(0, 8),
161
- requestTokenHash: tokenHash.slice(0, 8),
162
- });
163
- return undefined;
164
- }
165
- return stored;
166
- }
167
- /**
168
- * Recreate a transport from stored session data.
169
- * Must be called with a valid response object to create the actual transport.
170
- *
171
- * @param type - Transport type
172
- * @param token - Authorization token
173
- * @param sessionId - Session ID
174
- * @param storedSession - Previously stored session data
175
- * @param res - Server response object for the new transport
176
- * @returns The recreated transport
177
- */
178
- async recreateTransporter(type, token, sessionId, storedSession, res) {
179
- const key = this.keyOf(type, token, sessionId);
180
- // Check if already recreated in memory
181
- const existing = this.lookupLocal(key);
182
- if (existing)
183
- return existing;
184
- // Use mutex to prevent concurrent recreation of the same transport
185
- // Use JSON encoding for mutex key (consistent with history key format, handles colons in sessionId)
186
- const mutexKey = JSON.stringify({ t: type, h: key.tokenHash, s: sessionId });
187
- const pendingCreation = this.creationMutex.get(mutexKey);
188
- if (pendingCreation) {
189
- // Another request is already recreating this transport - wait for it
190
- return pendingCreation;
191
- }
192
- // Recreate the transport with mutex protection
193
- const recreationPromise = this.doRecreateTransporter(key, sessionId, storedSession, res);
194
- this.creationMutex.set(mutexKey, recreationPromise);
195
- try {
196
- return await recreationPromise;
197
- }
198
- catch (error) {
199
- // Log recreation errors for debugging
200
- this.scope.logger.error('[TransportService] Failed to recreate transport from stored session', {
201
- sessionId: sessionId.slice(0, 20),
202
- error: error instanceof Error ? { name: error.name, message: error.message } : String(error),
203
- });
204
- throw error;
205
- }
206
- finally {
207
- this.creationMutex.delete(mutexKey);
208
- }
209
- }
210
- /**
211
- * Internal method to actually recreate the transport (called with mutex protection)
212
- */
213
- async doRecreateTransporter(key, sessionId, storedSession, res) {
214
- // Double-check in case another request completed while we were waiting
215
- const existing = this.lookupLocal(key);
216
- if (existing)
217
- return existing;
218
- this.scope.logger.info('[TransportService] Recreating transport from stored session', {
219
- sessionId: sessionId.slice(0, 20),
220
- protocol: storedSession.session.protocol,
221
- createdAt: storedSession.createdAt,
222
- });
223
- // Mark session as recreated in history
224
- const historyKey = this.makeHistoryKey(key.type, key.tokenHash, sessionId);
225
- this.sessionHistory.set(historyKey, storedSession.createdAt);
226
- const sessionStore = this.sessionStore;
227
- const persistenceConfig = this.persistenceConfig;
228
- // Create new transport
229
- const transporter = new transport_local_1.LocalTransporter(this.scope, key, res, () => {
230
- key.sessionId = sessionId;
231
- this.evictLocal(key);
232
- if (this.distributed && this.bus) {
233
- this.bus.revoke(key).catch(() => void 0);
234
- }
235
- // Remove from Redis on dispose
236
- if (sessionStore) {
237
- sessionStore.delete(sessionId).catch(() => void 0);
238
- }
239
- });
240
- await transporter.ready();
241
- this.insertLocal(key, transporter);
242
- // Update session access time in Redis
243
- if (sessionStore) {
244
- const updatedSession = {
245
- ...storedSession,
246
- lastAccessedAt: Date.now(),
247
- };
248
- sessionStore.set(sessionId, updatedSession, persistenceConfig?.defaultTtlMs).catch((err) => {
249
- this.scope.logger.warn('[TransportService] Failed to update session in Redis', {
250
- sessionId: sessionId.slice(0, 20),
251
- error: err instanceof Error ? err.message : String(err),
252
- });
253
- });
254
- }
255
- if (this.distributed && this.bus) {
256
- await this.bus.advertise(key);
257
- }
258
- return transporter;
259
- }
260
- async createTransporter(type, token, sessionId, res) {
261
- const key = this.keyOf(type, token, sessionId);
262
- // Check if already exists
263
- const existing = this.lookupLocal(key);
264
- if (existing)
265
- return existing;
266
- // Use mutex to prevent concurrent creation of the same transport
267
- // Use JSON encoding for mutex key (consistent with history key format, handles colons in sessionId)
268
- const mutexKey = JSON.stringify({ t: type, h: key.tokenHash, s: sessionId });
269
- const pendingCreation = this.creationMutex.get(mutexKey);
270
- if (pendingCreation) {
271
- // Another request is already creating this transport - wait for it
272
- return pendingCreation;
273
- }
274
- // Create the transport with mutex protection
275
- const creationPromise = this.doCreateTransporter(key, sessionId, res, type);
276
- this.creationMutex.set(mutexKey, creationPromise);
277
- try {
278
- return await creationPromise;
279
- }
280
- finally {
281
- this.creationMutex.delete(mutexKey);
282
- }
283
- }
284
- /**
285
- * Internal method to actually create the transport (called with mutex protection)
286
- */
287
- async doCreateTransporter(key, sessionId, res, type) {
288
- // Double-check in case another request completed while we were waiting
289
- const existing = this.lookupLocal(key);
290
- if (existing)
291
- return existing;
292
- const sessionStore = this.sessionStore;
293
- const persistenceConfig = this.persistenceConfig;
294
- const transporter = new transport_local_1.LocalTransporter(this.scope, key, res, () => {
295
- key.sessionId = sessionId;
296
- this.evictLocal(key);
297
- if (this.distributed && this.bus) {
298
- this.bus.revoke(key).catch(() => void 0);
299
- }
300
- // Remove from Redis on dispose
301
- if (sessionStore) {
302
- sessionStore.delete(sessionId).catch(() => void 0);
303
- }
304
- });
305
- await transporter.ready();
306
- this.insertLocal(key, transporter);
307
- // Persist session to Redis (streamable-http only for now)
308
- if (sessionStore && type === 'streamable-http') {
309
- const storedSession = {
310
- session: {
311
- id: sessionId,
312
- authorizationId: key.tokenHash,
313
- protocol: 'streamable-http',
314
- createdAt: Date.now(),
315
- nodeId: (0, authorization_class_1.getMachineId)(),
316
- },
317
- authorizationId: key.tokenHash,
318
- createdAt: Date.now(),
319
- lastAccessedAt: Date.now(),
320
- };
321
- sessionStore.set(sessionId, storedSession, persistenceConfig?.defaultTtlMs).catch((err) => {
322
- this.scope.logger.warn('[TransportService] Failed to persist session to Redis', {
323
- sessionId: sessionId.slice(0, 20),
324
- error: err instanceof Error ? err.message : String(err),
325
- });
326
- });
327
- }
328
- if (this.distributed && this.bus) {
329
- await this.bus.advertise(key);
330
- }
331
- return transporter;
332
- }
333
- async destroyTransporter(type, token, sessionId, reason) {
334
- const key = this.keyOf(type, token, sessionId);
335
- const local = this.lookupLocal(key);
336
- if (local) {
337
- await local.destroy(reason);
338
- return;
339
- }
340
- if (this.distributed && this.bus) {
341
- const location = await this.bus.lookup(key);
342
- if (location) {
343
- await this.bus.destroyRemote(key, reason);
344
- return;
345
- }
346
- }
347
- throw new Error('Invalid session: cannot destroy non-existent transporter.');
348
- }
349
- /**
350
- * Get or create a shared singleton transport for anonymous stateless requests.
351
- * All anonymous requests share the same transport instance.
352
- */
353
- async getOrCreateAnonymousStatelessTransport(type, res) {
354
- const key = this.keyOf(type, '__anonymous__', '__stateless__');
355
- const existing = this.lookupLocal(key);
356
- if (existing)
357
- return existing;
358
- // Create shared transport for all anonymous requests
359
- const transporter = new transport_local_1.LocalTransporter(this.scope, key, res, () => {
360
- this.evictLocal(key);
361
- if (this.distributed && this.bus) {
362
- this.bus.revoke(key).catch(() => void 0);
363
- }
364
- });
365
- await transporter.ready();
366
- this.insertLocal(key, transporter);
367
- if (this.distributed && this.bus) {
368
- await this.bus.advertise(key);
369
- }
370
- return transporter;
371
- }
372
- /**
373
- * Get or create a singleton transport for authenticated stateless requests.
374
- * Each unique token gets its own singleton transport.
375
- */
376
- async getOrCreateAuthenticatedStatelessTransport(type, token, res) {
377
- const key = this.keyOf(type, token, '__stateless__');
378
- const existing = this.lookupLocal(key);
379
- if (existing)
380
- return existing;
381
- // Create singleton transport for this token
382
- const transporter = new transport_local_1.LocalTransporter(this.scope, key, res, () => {
383
- this.evictLocal(key);
384
- if (this.distributed && this.bus) {
385
- this.bus.revoke(key).catch(() => void 0);
386
- }
387
- });
388
- await transporter.ready();
389
- this.insertLocal(key, transporter);
390
- if (this.distributed && this.bus) {
391
- await this.bus.advertise(key);
392
- }
393
- return transporter;
394
- }
395
- /**
396
- * Check if a session was ever created (even if it's been terminated/evicted).
397
- * Used to differentiate between "session never initialized" (HTTP 400) and
398
- * "session expired/terminated" (HTTP 404) per MCP Spec 2025-11-25.
399
- *
400
- * Note: This is synchronous and only checks local history. For async Redis check,
401
- * use wasSessionCreatedAsync.
402
- *
403
- * @param type - Transport type (e.g., 'streamable-http', 'sse')
404
- * @param token - The authorization token
405
- * @param sessionId - The session ID to check
406
- * @returns true if session was ever created locally, false otherwise
407
- */
408
- wasSessionCreated(type, token, sessionId) {
409
- const tokenHash = this.sha256(token);
410
- const historyKey = this.makeHistoryKey(type, tokenHash, sessionId);
411
- return this.sessionHistory.has(historyKey);
412
- }
413
- /**
414
- * Async version that also checks Redis for session existence.
415
- * Used when we need to check if session was ever created across server restarts.
416
- */
417
- async wasSessionCreatedAsync(type, token, sessionId) {
418
- // Check local history first (fast path)
419
- if (this.wasSessionCreated(type, token, sessionId)) {
420
- return true;
421
- }
422
- // Check Redis if available - use getStoredSession() to verify token hash
423
- // (sessionStore.exists() would leak session existence to unauthorized callers)
424
- if (this.sessionStore && type === 'streamable-http') {
425
- const stored = await this.getStoredSession(type, token, sessionId);
426
- return stored !== undefined;
427
- }
428
- return false;
429
- }
430
- /* --------------------------------- internals -------------------------------- */
431
- sha256(value) {
432
- return (0, crypto_1.createHash)('sha256').update(value, 'utf8').digest('hex');
433
- }
434
- /**
435
- * Create a history key from components.
436
- * Uses JSON encoding to handle sessionIds that contain special characters.
437
- */
438
- makeHistoryKey(type, tokenHash, sessionId) {
439
- return JSON.stringify({ t: type, h: tokenHash, s: sessionId });
440
- }
441
- /**
442
- * Parse a history key back into components.
443
- * Returns undefined if the key is malformed.
444
- */
445
- parseHistoryKey(key) {
446
- try {
447
- const parsed = JSON.parse(key);
448
- if (typeof parsed.t === 'string' && typeof parsed.h === 'string' && typeof parsed.s === 'string') {
449
- return { type: parsed.t, tokenHash: parsed.h, sessionId: parsed.s };
450
- }
451
- return undefined;
452
- }
453
- catch {
454
- return undefined;
455
- }
456
- }
457
- keyOf(type, token, sessionId, sessionIdSse) {
458
- return {
459
- type,
460
- token,
461
- tokenHash: this.sha256(token),
462
- sessionId,
463
- sessionIdSse,
464
- };
465
- }
466
- ensureTypeBucket(type) {
467
- let bucket = this.byType.get(type);
468
- if (!bucket) {
469
- bucket = new Map();
470
- this.byType.set(type, bucket);
471
- }
472
- return bucket;
473
- }
474
- ensureTokenBucket(typeBucket, tokenHash) {
475
- let bucket = typeBucket.get(tokenHash);
476
- if (!bucket) {
477
- bucket = new Map();
478
- typeBucket.set(tokenHash, bucket);
479
- }
480
- return bucket;
481
- }
482
- lookupLocal(key) {
483
- const typeBucket = this.byType.get(key.type);
484
- if (!typeBucket)
485
- return undefined;
486
- const tokenBucket = typeBucket.get(key.tokenHash);
487
- if (!tokenBucket)
488
- return undefined;
489
- return tokenBucket.get(key.sessionId);
490
- }
491
- insertLocal(key, t) {
492
- const typeBucket = this.ensureTypeBucket(key.type);
493
- const tokenBucket = this.ensureTokenBucket(typeBucket, key.tokenHash);
494
- tokenBucket.set(key.sessionId, t);
495
- // Record session creation in history for HTTP 404 detection
496
- const historyKey = this.makeHistoryKey(key.type, key.tokenHash, key.sessionId);
497
- this.sessionHistory.set(historyKey, Date.now());
498
- // Evict oldest entries if cache exceeds max size
499
- // Only evict entries that don't have active transports (to avoid inconsistent state)
500
- if (this.sessionHistory.size > this.MAX_SESSION_HISTORY) {
501
- const entries = [...this.sessionHistory.entries()].sort((a, b) => a[1] - b[1]);
502
- // Try to remove oldest 10% of entries (skip those with active transports)
503
- const targetEvictions = Math.ceil(this.MAX_SESSION_HISTORY * 0.1);
504
- let evicted = 0;
505
- for (const [histKey] of entries) {
506
- if (evicted >= targetEvictions)
507
- break;
508
- // Parse history key to check if transport still exists
509
- const parsed = this.parseHistoryKey(histKey);
510
- if (!parsed) {
511
- // Invalid key format - safe to evict
512
- this.sessionHistory.delete(histKey);
513
- evicted++;
514
- continue;
515
- }
516
- const { type, tokenHash, sessionId } = parsed;
517
- const typeBucket = this.byType.get(type);
518
- const tokenBucket = typeBucket?.get(tokenHash);
519
- const hasActiveTransport = tokenBucket?.has(sessionId) ?? false;
520
- // Only evict if there's no active transport for this session
521
- if (!hasActiveTransport) {
522
- this.sessionHistory.delete(histKey);
523
- evicted++;
524
- }
525
- }
526
- // Log warning if we couldn't evict enough entries (all have active transports)
527
- if (evicted < targetEvictions) {
528
- this.scope.logger.warn('[TransportService] Session history eviction: unable to free target memory', {
529
- targetEvictions,
530
- actualEvictions: evicted,
531
- currentSize: this.sessionHistory.size,
532
- maxSize: this.MAX_SESSION_HISTORY,
533
- });
534
- }
535
- }
536
- }
537
- evictLocal(key) {
538
- const typeBucket = this.byType.get(key.type);
539
- if (!typeBucket)
540
- return;
541
- const tokenBucket = typeBucket.get(key.tokenHash);
542
- if (!tokenBucket)
543
- return;
544
- tokenBucket.delete(key.sessionId);
545
- if (tokenBucket.size === 0)
546
- typeBucket.delete(key.tokenHash);
547
- if (typeBucket.size === 0)
548
- this.byType.delete(key.type);
549
- }
550
- }
551
- exports.TransportService = TransportService;
552
- //# sourceMappingURL=transport.registry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"transport.registry.js","sourceRoot":"","sources":["../../../src/transport/transport.registry.ts"],"names":[],"mappings":"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","sourcesContent":["// server/transport/transport.registry.ts\nimport { createHash } from 'crypto';\nimport {\n TransportBus,\n Transporter,\n TransportKey,\n TransportRegistryBucket,\n TransportTokenBucket,\n TransportType,\n TransportTypeBucket,\n} from './transport.types';\nimport { RemoteTransporter } from './transport.remote';\nimport { LocalTransporter } from './transport.local';\nimport { ServerResponse, TransportPersistenceConfigInput } from '../common';\nimport { Scope } from '../scope';\nimport HandleStreamableHttpFlow from './flows/handle.streamable-http.flow';\nimport HandleSseFlow from './flows/handle.sse.flow';\nimport HandleStatelessHttpFlow from './flows/handle.stateless-http.flow';\nimport { StoredSession } from '../auth/session';\nimport type { SessionStore } from '../auth/session/transport-session.types';\nimport { createSessionStore } from '../store';\nimport type { RedisOptions } from '../common/types/options/redis.options';\nimport { getMachineId } from '../auth/authorization/authorization.class';\n\nexport class TransportService {\n readonly ready: Promise<void>;\n private readonly byType: TransportRegistryBucket = new Map();\n private readonly distributed: boolean;\n private readonly bus?: TransportBus;\n private readonly scope: Scope;\n\n /**\n * Session history cache for tracking if sessions were ever created.\n * Used to differentiate between \"session never initialized\" (HTTP 400) and\n * \"session expired/terminated\" (HTTP 404) per MCP Spec 2025-11-25.\n *\n * Key: JSON-encoded {type, tokenHash, sessionId}, Value: creation timestamp\n * Note: We use JSON instead of colon-delimiter because sessionId can contain colons.\n */\n private readonly sessionHistory: Map<string, number> = new Map();\n private readonly MAX_SESSION_HISTORY = 10000;\n\n /**\n * Session store for transport persistence (Redis or Vercel KV)\n * Used to persist session metadata across server restarts\n */\n private sessionStore?: SessionStore & { ping?: () => Promise<boolean>; disconnect?: () => Promise<void> };\n\n /**\n * Transport persistence configuration\n */\n private persistenceConfig?: TransportPersistenceConfigInput;\n\n /**\n * Pending store configuration for async initialization\n */\n private pendingStoreConfig?: RedisOptions;\n\n /**\n * Mutex map for preventing concurrent transport creation for the same key.\n * Key: JSON-encoded {t: type, h: tokenHash, s: sessionId}, Value: Promise that resolves when creation completes\n */\n private readonly creationMutex: Map<string, Promise<Transporter>> = new Map();\n\n constructor(scope: Scope, persistenceConfig?: TransportPersistenceConfigInput) {\n this.scope = scope;\n this.persistenceConfig = persistenceConfig;\n this.distributed = false; // get from scope metadata\n this.bus = undefined; // get from scope metadata\n if (this.distributed && !this.bus) {\n throw new Error('TransportRegistry: distributed=true requires a TransportBus implementation.');\n }\n\n // Initialize session store if persistence is enabled (Redis or Vercel KV)\n if (persistenceConfig?.enabled && persistenceConfig.redis) {\n // Use factory to create appropriate session store based on provider\n const redisConfig = persistenceConfig.redis;\n const providerType = 'provider' in redisConfig ? redisConfig.provider : 'redis';\n\n // Override keyPrefix for transport persistence (separate from auth sessions)\n // Cast to RedisOptions since we're modifying the config\n this.pendingStoreConfig = {\n ...redisConfig,\n keyPrefix: redisConfig.keyPrefix ?? 'mcp:transport:',\n defaultTtlMs: persistenceConfig.defaultTtlMs ?? 3600000, // 1 hour default\n } as RedisOptions;\n\n this.scope.logger.info(\n `[TransportService] ${providerType} session store will be initialized for transport persistence`,\n );\n }\n\n this.ready = this.initialize();\n }\n\n private async initialize() {\n // Create session store if configuration is pending\n if (this.pendingStoreConfig) {\n try {\n const store = await createSessionStore(this.pendingStoreConfig, this.scope.logger.child('SessionStore'));\n // Cast to our extended type (both RedisSessionStore and VercelKvSessionStore have ping/disconnect)\n this.sessionStore = store as SessionStore & { ping?: () => Promise<boolean>; disconnect?: () => Promise<void> };\n this.pendingStoreConfig = undefined;\n } catch (error) {\n this.scope.logger.error('[TransportService] Failed to create session store - session persistence disabled', {\n error: (error as Error).message,\n });\n }\n }\n\n // Validate connection if session store is configured\n if (this.sessionStore) {\n const isConnected = this.sessionStore.ping ? await this.sessionStore.ping() : true;\n if (!isConnected) {\n const providerType =\n this.persistenceConfig?.redis && 'provider' in this.persistenceConfig.redis\n ? this.persistenceConfig.redis.provider\n : 'redis';\n this.scope.logger.error(\n `[TransportService] Failed to connect to ${providerType} - session persistence disabled`,\n );\n // Nullify sessionStore to prevent silent failures on all subsequent operations\n // This ensures clean graceful degradation - sessions will only persist in memory\n if (this.sessionStore.disconnect) {\n await this.sessionStore.disconnect().catch(() => void 0);\n }\n this.sessionStore = undefined;\n } else {\n this.scope.logger.info('[TransportService] Session store connection validated successfully');\n }\n }\n\n await this.scope.registryFlows(HandleStreamableHttpFlow, HandleSseFlow, HandleStatelessHttpFlow);\n }\n\n async destroy() {\n // Close session store connection if it was created\n if (this.sessionStore && this.sessionStore.disconnect) {\n try {\n await this.sessionStore.disconnect();\n this.scope.logger.info('[TransportService] Session store disconnected');\n } catch (error) {\n this.scope.logger.warn('[TransportService] Error disconnecting session store', {\n error: (error as Error).message,\n });\n }\n }\n }\n\n async getTransporter(type: TransportType, token: string, sessionId: string): Promise<Transporter | undefined> {\n const key = this.keyOf(type, token, sessionId);\n\n // 1. Check local in-memory cache first\n const local = this.lookupLocal(key);\n if (local) return local;\n\n // 2. Check distributed bus (if enabled)\n if (this.distributed && this.bus) {\n const location = await this.bus.lookup(key);\n if (location) {\n return new RemoteTransporter(key, this.bus);\n }\n }\n\n // Note: Redis-stored sessions require recreation via recreateTransporter()\n // Flows should use getStoredSession() to check if session exists in Redis,\n // then call recreateTransporter() with the response object.\n\n return undefined;\n }\n\n /**\n * Get stored session from Redis (without creating a transport).\n * Used by flows to check if session exists and can be recreated.\n *\n * @param type - Transport type\n * @param token - Authorization token\n * @param sessionId - Session ID\n * @returns Stored session data if exists and token matches, undefined otherwise\n */\n async getStoredSession(type: TransportType, token: string, sessionId: string): Promise<StoredSession | undefined> {\n if (!this.sessionStore || type !== 'streamable-http') return undefined;\n\n const tokenHash = this.sha256(token);\n const stored = await this.sessionStore.get(sessionId);\n if (!stored) return undefined;\n\n // Verify the token hash matches\n if (stored.authorizationId !== tokenHash) {\n this.scope.logger.warn('[TransportService] Session token mismatch during lookup', {\n sessionId: sessionId.slice(0, 20),\n storedTokenHash: stored.authorizationId.slice(0, 8),\n requestTokenHash: tokenHash.slice(0, 8),\n });\n return undefined;\n }\n\n return stored;\n }\n\n /**\n * Recreate a transport from stored session data.\n * Must be called with a valid response object to create the actual transport.\n *\n * @param type - Transport type\n * @param token - Authorization token\n * @param sessionId - Session ID\n * @param storedSession - Previously stored session data\n * @param res - Server response object for the new transport\n * @returns The recreated transport\n */\n async recreateTransporter(\n type: TransportType,\n token: string,\n sessionId: string,\n storedSession: StoredSession,\n res: ServerResponse,\n ): Promise<Transporter> {\n const key = this.keyOf(type, token, sessionId);\n\n // Check if already recreated in memory\n const existing = this.lookupLocal(key);\n if (existing) return existing;\n\n // Use mutex to prevent concurrent recreation of the same transport\n // Use JSON encoding for mutex key (consistent with history key format, handles colons in sessionId)\n const mutexKey = JSON.stringify({ t: type, h: key.tokenHash, s: sessionId });\n const pendingCreation = this.creationMutex.get(mutexKey);\n if (pendingCreation) {\n // Another request is already recreating this transport - wait for it\n return pendingCreation;\n }\n\n // Recreate the transport with mutex protection\n const recreationPromise = this.doRecreateTransporter(key, sessionId, storedSession, res);\n this.creationMutex.set(mutexKey, recreationPromise);\n\n try {\n return await recreationPromise;\n } catch (error) {\n // Log recreation errors for debugging\n this.scope.logger.error('[TransportService] Failed to recreate transport from stored session', {\n sessionId: sessionId.slice(0, 20),\n error: error instanceof Error ? { name: error.name, message: error.message } : String(error),\n });\n throw error;\n } finally {\n this.creationMutex.delete(mutexKey);\n }\n }\n\n /**\n * Internal method to actually recreate the transport (called with mutex protection)\n */\n private async doRecreateTransporter(\n key: TransportKey,\n sessionId: string,\n storedSession: StoredSession,\n res: ServerResponse,\n ): Promise<Transporter> {\n // Double-check in case another request completed while we were waiting\n const existing = this.lookupLocal(key);\n if (existing) return existing;\n\n this.scope.logger.info('[TransportService] Recreating transport from stored session', {\n sessionId: sessionId.slice(0, 20),\n protocol: storedSession.session.protocol,\n createdAt: storedSession.createdAt,\n });\n\n // Mark session as recreated in history\n const historyKey = this.makeHistoryKey(key.type, key.tokenHash, sessionId);\n this.sessionHistory.set(historyKey, storedSession.createdAt);\n\n const sessionStore = this.sessionStore;\n const persistenceConfig = this.persistenceConfig;\n\n // Create new transport\n const transporter = new LocalTransporter(this.scope, key, res, () => {\n key.sessionId = sessionId;\n this.evictLocal(key);\n if (this.distributed && this.bus) {\n this.bus.revoke(key).catch(() => void 0);\n }\n // Remove from Redis on dispose\n if (sessionStore) {\n sessionStore.delete(sessionId).catch(() => void 0);\n }\n });\n\n await transporter.ready();\n this.insertLocal(key, transporter);\n\n // Update session access time in Redis\n if (sessionStore) {\n const updatedSession: StoredSession = {\n ...storedSession,\n lastAccessedAt: Date.now(),\n };\n sessionStore.set(sessionId, updatedSession, persistenceConfig?.defaultTtlMs).catch((err) => {\n this.scope.logger.warn('[TransportService] Failed to update session in Redis', {\n sessionId: sessionId.slice(0, 20),\n error: err instanceof Error ? err.message : String(err),\n });\n });\n }\n\n if (this.distributed && this.bus) {\n await this.bus.advertise(key);\n }\n\n return transporter;\n }\n\n async createTransporter(\n type: TransportType,\n token: string,\n sessionId: string,\n res: ServerResponse,\n ): Promise<Transporter> {\n const key = this.keyOf(type, token, sessionId);\n\n // Check if already exists\n const existing = this.lookupLocal(key);\n if (existing) return existing;\n\n // Use mutex to prevent concurrent creation of the same transport\n // Use JSON encoding for mutex key (consistent with history key format, handles colons in sessionId)\n const mutexKey = JSON.stringify({ t: type, h: key.tokenHash, s: sessionId });\n const pendingCreation = this.creationMutex.get(mutexKey);\n if (pendingCreation) {\n // Another request is already creating this transport - wait for it\n return pendingCreation;\n }\n\n // Create the transport with mutex protection\n const creationPromise = this.doCreateTransporter(key, sessionId, res, type);\n this.creationMutex.set(mutexKey, creationPromise);\n\n try {\n return await creationPromise;\n } finally {\n this.creationMutex.delete(mutexKey);\n }\n }\n\n /**\n * Internal method to actually create the transport (called with mutex protection)\n */\n private async doCreateTransporter(\n key: TransportKey,\n sessionId: string,\n res: ServerResponse,\n type: TransportType,\n ): Promise<Transporter> {\n // Double-check in case another request completed while we were waiting\n const existing = this.lookupLocal(key);\n if (existing) return existing;\n\n const sessionStore = this.sessionStore;\n const persistenceConfig = this.persistenceConfig;\n\n const transporter = new LocalTransporter(this.scope, key, res, () => {\n key.sessionId = sessionId;\n this.evictLocal(key);\n if (this.distributed && this.bus) {\n this.bus.revoke(key).catch(() => void 0);\n }\n // Remove from Redis on dispose\n if (sessionStore) {\n sessionStore.delete(sessionId).catch(() => void 0);\n }\n });\n\n await transporter.ready();\n\n this.insertLocal(key, transporter);\n\n // Persist session to Redis (streamable-http only for now)\n if (sessionStore && type === 'streamable-http') {\n const storedSession: StoredSession = {\n session: {\n id: sessionId,\n authorizationId: key.tokenHash,\n protocol: 'streamable-http',\n createdAt: Date.now(),\n nodeId: getMachineId(),\n },\n authorizationId: key.tokenHash,\n createdAt: Date.now(),\n lastAccessedAt: Date.now(),\n };\n sessionStore.set(sessionId, storedSession, persistenceConfig?.defaultTtlMs).catch((err) => {\n this.scope.logger.warn('[TransportService] Failed to persist session to Redis', {\n sessionId: sessionId.slice(0, 20),\n error: err instanceof Error ? err.message : String(err),\n });\n });\n }\n\n if (this.distributed && this.bus) {\n await this.bus.advertise(key);\n }\n\n return transporter;\n }\n\n async destroyTransporter(type: TransportType, token: string, sessionId: string, reason?: string): Promise<void> {\n const key = this.keyOf(type, token, sessionId);\n\n const local = this.lookupLocal(key);\n if (local) {\n await local.destroy(reason);\n return;\n }\n\n if (this.distributed && this.bus) {\n const location = await this.bus.lookup(key);\n if (location) {\n await this.bus.destroyRemote(key, reason);\n return;\n }\n }\n\n throw new Error('Invalid session: cannot destroy non-existent transporter.');\n }\n\n /**\n * Get or create a shared singleton transport for anonymous stateless requests.\n * All anonymous requests share the same transport instance.\n */\n async getOrCreateAnonymousStatelessTransport(type: TransportType, res: ServerResponse): Promise<Transporter> {\n const key = this.keyOf(type, '__anonymous__', '__stateless__');\n const existing = this.lookupLocal(key);\n if (existing) return existing;\n\n // Create shared transport for all anonymous requests\n const transporter = new LocalTransporter(this.scope, key, res, () => {\n this.evictLocal(key);\n if (this.distributed && this.bus) {\n this.bus.revoke(key).catch(() => void 0);\n }\n });\n\n await transporter.ready();\n this.insertLocal(key, transporter);\n\n if (this.distributed && this.bus) {\n await this.bus.advertise(key);\n }\n\n return transporter;\n }\n\n /**\n * Get or create a singleton transport for authenticated stateless requests.\n * Each unique token gets its own singleton transport.\n */\n async getOrCreateAuthenticatedStatelessTransport(\n type: TransportType,\n token: string,\n res: ServerResponse,\n ): Promise<Transporter> {\n const key = this.keyOf(type, token, '__stateless__');\n const existing = this.lookupLocal(key);\n if (existing) return existing;\n\n // Create singleton transport for this token\n const transporter = new LocalTransporter(this.scope, key, res, () => {\n this.evictLocal(key);\n if (this.distributed && this.bus) {\n this.bus.revoke(key).catch(() => void 0);\n }\n });\n\n await transporter.ready();\n this.insertLocal(key, transporter);\n\n if (this.distributed && this.bus) {\n await this.bus.advertise(key);\n }\n\n return transporter;\n }\n\n /**\n * Check if a session was ever created (even if it's been terminated/evicted).\n * Used to differentiate between \"session never initialized\" (HTTP 400) and\n * \"session expired/terminated\" (HTTP 404) per MCP Spec 2025-11-25.\n *\n * Note: This is synchronous and only checks local history. For async Redis check,\n * use wasSessionCreatedAsync.\n *\n * @param type - Transport type (e.g., 'streamable-http', 'sse')\n * @param token - The authorization token\n * @param sessionId - The session ID to check\n * @returns true if session was ever created locally, false otherwise\n */\n wasSessionCreated(type: TransportType, token: string, sessionId: string): boolean {\n const tokenHash = this.sha256(token);\n const historyKey = this.makeHistoryKey(type, tokenHash, sessionId);\n return this.sessionHistory.has(historyKey);\n }\n\n /**\n * Async version that also checks Redis for session existence.\n * Used when we need to check if session was ever created across server restarts.\n */\n async wasSessionCreatedAsync(type: TransportType, token: string, sessionId: string): Promise<boolean> {\n // Check local history first (fast path)\n if (this.wasSessionCreated(type, token, sessionId)) {\n return true;\n }\n\n // Check Redis if available - use getStoredSession() to verify token hash\n // (sessionStore.exists() would leak session existence to unauthorized callers)\n if (this.sessionStore && type === 'streamable-http') {\n const stored = await this.getStoredSession(type, token, sessionId);\n return stored !== undefined;\n }\n\n return false;\n }\n\n /* --------------------------------- internals -------------------------------- */\n\n private sha256(value: string): string {\n return createHash('sha256').update(value, 'utf8').digest('hex');\n }\n\n /**\n * Create a history key from components.\n * Uses JSON encoding to handle sessionIds that contain special characters.\n */\n private makeHistoryKey(type: string, tokenHash: string, sessionId: string): string {\n return JSON.stringify({ t: type, h: tokenHash, s: sessionId });\n }\n\n /**\n * Parse a history key back into components.\n * Returns undefined if the key is malformed.\n */\n private parseHistoryKey(key: string): { type: string; tokenHash: string; sessionId: string } | undefined {\n try {\n const parsed = JSON.parse(key);\n if (typeof parsed.t === 'string' && typeof parsed.h === 'string' && typeof parsed.s === 'string') {\n return { type: parsed.t, tokenHash: parsed.h, sessionId: parsed.s };\n }\n return undefined;\n } catch {\n return undefined;\n }\n }\n\n private keyOf(type: TransportType, token: string, sessionId: string, sessionIdSse?: string): TransportKey {\n return {\n type,\n token,\n tokenHash: this.sha256(token),\n sessionId,\n sessionIdSse,\n };\n }\n\n private ensureTypeBucket(type: TransportType): TransportTypeBucket {\n let bucket = this.byType.get(type);\n if (!bucket) {\n bucket = new Map<string, TransportTokenBucket>();\n this.byType.set(type, bucket);\n }\n return bucket;\n }\n\n private ensureTokenBucket(typeBucket: TransportTypeBucket, tokenHash: string): TransportTokenBucket {\n let bucket = typeBucket.get(tokenHash);\n if (!bucket) {\n bucket = new Map<string, Transporter>();\n typeBucket.set(tokenHash, bucket);\n }\n return bucket;\n }\n\n private lookupLocal(key: TransportKey): Transporter | undefined {\n const typeBucket = this.byType.get(key.type);\n if (!typeBucket) return undefined;\n const tokenBucket = typeBucket.get(key.tokenHash);\n if (!tokenBucket) return undefined;\n return tokenBucket.get(key.sessionId);\n }\n\n private insertLocal(key: TransportKey, t: Transporter): void {\n const typeBucket = this.ensureTypeBucket(key.type);\n const tokenBucket = this.ensureTokenBucket(typeBucket, key.tokenHash);\n tokenBucket.set(key.sessionId, t);\n\n // Record session creation in history for HTTP 404 detection\n const historyKey = this.makeHistoryKey(key.type, key.tokenHash, key.sessionId);\n this.sessionHistory.set(historyKey, Date.now());\n\n // Evict oldest entries if cache exceeds max size\n // Only evict entries that don't have active transports (to avoid inconsistent state)\n if (this.sessionHistory.size > this.MAX_SESSION_HISTORY) {\n const entries = [...this.sessionHistory.entries()].sort((a, b) => a[1] - b[1]);\n // Try to remove oldest 10% of entries (skip those with active transports)\n const targetEvictions = Math.ceil(this.MAX_SESSION_HISTORY * 0.1);\n let evicted = 0;\n\n for (const [histKey] of entries) {\n if (evicted >= targetEvictions) break;\n\n // Parse history key to check if transport still exists\n const parsed = this.parseHistoryKey(histKey);\n if (!parsed) {\n // Invalid key format - safe to evict\n this.sessionHistory.delete(histKey);\n evicted++;\n continue;\n }\n\n const { type, tokenHash, sessionId } = parsed;\n const typeBucket = this.byType.get(type as TransportType);\n const tokenBucket = typeBucket?.get(tokenHash);\n const hasActiveTransport = tokenBucket?.has(sessionId) ?? false;\n\n // Only evict if there's no active transport for this session\n if (!hasActiveTransport) {\n this.sessionHistory.delete(histKey);\n evicted++;\n }\n }\n\n // Log warning if we couldn't evict enough entries (all have active transports)\n if (evicted < targetEvictions) {\n this.scope.logger.warn('[TransportService] Session history eviction: unable to free target memory', {\n targetEvictions,\n actualEvictions: evicted,\n currentSize: this.sessionHistory.size,\n maxSize: this.MAX_SESSION_HISTORY,\n });\n }\n }\n }\n\n private evictLocal(key: TransportKey): void {\n const typeBucket = this.byType.get(key.type);\n if (!typeBucket) return;\n const tokenBucket = typeBucket.get(key.tokenHash);\n if (!tokenBucket) return;\n tokenBucket.delete(key.sessionId);\n if (tokenBucket.size === 0) typeBucket.delete(key.tokenHash);\n if (typeBucket.size === 0) this.byType.delete(key.type);\n }\n}\n"]}