@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,298 +0,0 @@
1
- "use strict";
2
- // auth/session/transport-session.manager.ts
3
- Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.TransportSessionManager = exports.InMemorySessionStore = void 0;
5
- const crypto_1 = require("crypto");
6
- const session_id_utils_1 = require("./utils/session-id.utils");
7
- const session_crypto_1 = require("./session.crypto");
8
- const authorization_class_1 = require("../authorization/authorization.class");
9
- const redis_session_store_1 = require("./redis-session.store");
10
- /**
11
- * In-memory session store implementation
12
- */
13
- class InMemorySessionStore {
14
- sessions = new Map();
15
- async get(sessionId) {
16
- const stored = this.sessions.get(sessionId);
17
- if (!stored)
18
- return null;
19
- // Check expiration
20
- if (stored.session.expiresAt && stored.session.expiresAt < Date.now()) {
21
- this.sessions.delete(sessionId);
22
- return null;
23
- }
24
- // Update last accessed
25
- stored.lastAccessedAt = Date.now();
26
- return stored;
27
- }
28
- async set(sessionId, session, ttlMs) {
29
- if (ttlMs) {
30
- session.session.expiresAt = Date.now() + ttlMs;
31
- }
32
- this.sessions.set(sessionId, session);
33
- }
34
- async delete(sessionId) {
35
- this.sessions.delete(sessionId);
36
- }
37
- async exists(sessionId) {
38
- const stored = this.sessions.get(sessionId);
39
- if (!stored)
40
- return false;
41
- // Check expiration
42
- if (stored.session.expiresAt && stored.session.expiresAt < Date.now()) {
43
- this.sessions.delete(sessionId);
44
- return false;
45
- }
46
- return true;
47
- }
48
- allocId() {
49
- return (0, crypto_1.randomUUID)();
50
- }
51
- /**
52
- * Clean up expired sessions
53
- */
54
- cleanup() {
55
- const now = Date.now();
56
- let cleaned = 0;
57
- for (const [id, stored] of this.sessions) {
58
- if (stored.session.expiresAt && stored.session.expiresAt < now) {
59
- this.sessions.delete(id);
60
- cleaned++;
61
- }
62
- }
63
- return cleaned;
64
- }
65
- /**
66
- * Get count of active sessions
67
- */
68
- get size() {
69
- return this.sessions.size;
70
- }
71
- }
72
- exports.InMemorySessionStore = InMemorySessionStore;
73
- /**
74
- * Transport Session Manager
75
- *
76
- * Manages transport sessions independent of authorization.
77
- * Supports both stateless (JWT-encrypted) and stateful (store-backed) modes.
78
- *
79
- * Key concepts:
80
- * - Authorization = User identity + permissions (1 per user token)
81
- * - TransportSession = Protocol-specific connection (N per authorization)
82
- * - One authorization can have multiple transport sessions (e.g., multiple browser tabs)
83
- */
84
- class TransportSessionManager {
85
- store;
86
- mode;
87
- encryptionKey;
88
- constructor(config) {
89
- this.mode = config.mode;
90
- if (config.mode === 'stateless') {
91
- this.store = new InMemorySessionStore(); // Used only for allocation
92
- }
93
- else if (config.store === 'memory') {
94
- this.store = new InMemorySessionStore();
95
- }
96
- else if (config.store === 'redis') {
97
- // Instantiate Redis session store
98
- this.store = new redis_session_store_1.RedisSessionStore(config.config);
99
- }
100
- else {
101
- this.store = new InMemorySessionStore();
102
- }
103
- // Derive encryption key from secret or generate one
104
- const secret = config.encryptionSecret || process.env['MCP_SESSION_SECRET'];
105
- if (!secret) {
106
- if (process.env['NODE_ENV'] === 'production') {
107
- throw new Error('[TransportSessionManager] MCP_SESSION_SECRET or encryptionSecret is required in production. ' +
108
- 'Set the MCP_SESSION_SECRET environment variable or provide encryptionSecret in config.');
109
- }
110
- // Development fallback - NOT secure for production
111
- console.warn('[TransportSessionManager] Using machine ID as session encryption secret - NOT SECURE FOR PRODUCTION. ' +
112
- 'Set MCP_SESSION_SECRET or provide encryptionSecret in config.');
113
- }
114
- const effectiveSecret = secret || (0, authorization_class_1.getMachineId)();
115
- this.encryptionKey = (0, session_crypto_1.hkdfSha256)(Buffer.from(effectiveSecret), Buffer.from('mcp-session-salt'), Buffer.from('transport-session'), 32);
116
- }
117
- /**
118
- * Create a new transport session for an authorization
119
- *
120
- * @param authorizationId - The authorization this session belongs to
121
- * @param protocol - Transport protocol (sse, streamable-http, etc.)
122
- * @param options - Additional session options
123
- * @returns The created transport session
124
- */
125
- async createSession(authorizationId, protocol, options = {}) {
126
- const sessionId = this.store.allocId();
127
- const session = {
128
- id: sessionId,
129
- authorizationId,
130
- protocol,
131
- createdAt: Date.now(),
132
- expiresAt: options.expiresAt,
133
- nodeId: (0, authorization_class_1.getMachineId)(),
134
- clientFingerprint: options.fingerprint,
135
- transportState: options.transportState,
136
- };
137
- if (this.mode === 'stateful') {
138
- // Store session in persistent store
139
- const stored = {
140
- session,
141
- authorizationId,
142
- tokens: options.tokens,
143
- createdAt: Date.now(),
144
- lastAccessedAt: Date.now(),
145
- };
146
- await this.store.set(sessionId, stored);
147
- }
148
- return session;
149
- }
150
- /**
151
- * Get an existing session by ID
152
- *
153
- * @param sessionId - The session ID (encrypted JWT or UUID)
154
- * @returns The session if found and valid, null otherwise
155
- */
156
- async getSession(sessionId) {
157
- if (this.mode === 'stateless') {
158
- // Decrypt session from JWT
159
- return this.decryptSessionJwt(sessionId);
160
- }
161
- // Stateful: lookup in store
162
- const stored = await this.store.get(sessionId);
163
- return stored?.session ?? null;
164
- }
165
- /**
166
- * Get stored session with tokens (for orchestrated mode)
167
- */
168
- async getStoredSession(sessionId) {
169
- if (this.mode === 'stateless') {
170
- // In stateless mode, we don't have stored sessions
171
- return null;
172
- }
173
- return this.store.get(sessionId);
174
- }
175
- /**
176
- * Update session state
177
- */
178
- async updateSession(sessionId, updates) {
179
- if (this.mode === 'stateless') {
180
- // Stateless sessions are immutable - caller should create new session JWT
181
- return false;
182
- }
183
- const stored = await this.store.get(sessionId);
184
- if (!stored)
185
- return false;
186
- if (updates.transportState) {
187
- stored.session.transportState = updates.transportState;
188
- }
189
- if (updates.expiresAt) {
190
- stored.session.expiresAt = updates.expiresAt;
191
- }
192
- stored.lastAccessedAt = Date.now();
193
- await this.store.set(sessionId, stored);
194
- return true;
195
- }
196
- /**
197
- * Delete a session
198
- */
199
- async deleteSession(sessionId) {
200
- if (this.mode === 'stateless') {
201
- // Stateless sessions can't be revoked
202
- return false;
203
- }
204
- const exists = await this.store.exists(sessionId);
205
- if (exists) {
206
- await this.store.delete(sessionId);
207
- }
208
- return exists;
209
- }
210
- /**
211
- * Encode a session as an encrypted JWT for the Mcp-Session-Id header
212
- *
213
- * @param session - The transport session to encode
214
- * @param additionalState - Additional encrypted state for stateless mode
215
- * @returns Encrypted session JWT
216
- */
217
- encodeSessionJwt(session, additionalState) {
218
- const payload = {
219
- sid: session.id,
220
- aid: session.authorizationId,
221
- proto: session.protocol,
222
- nid: session.nodeId,
223
- iat: Math.floor(Date.now() / 1000),
224
- exp: session.expiresAt ? Math.floor(session.expiresAt / 1000) : undefined,
225
- };
226
- if (this.mode === 'stateless' && additionalState) {
227
- const statelessPayload = payload;
228
- if (additionalState.state) {
229
- const encrypted = (0, session_crypto_1.encryptAesGcm)(this.encryptionKey, JSON.stringify(additionalState.state));
230
- statelessPayload.state = `${encrypted.iv}.${encrypted.tag}.${encrypted.data}`;
231
- }
232
- if (additionalState.tokens) {
233
- const encrypted = (0, session_crypto_1.encryptAesGcm)(this.encryptionKey, JSON.stringify(additionalState.tokens));
234
- statelessPayload.tokens = `${encrypted.iv}.${encrypted.tag}.${encrypted.data}`;
235
- }
236
- }
237
- return (0, session_id_utils_1.encryptJson)(payload);
238
- }
239
- /**
240
- * Decode an encrypted session JWT
241
- *
242
- * @param jwt - The encrypted session JWT
243
- * @returns Decoded session or null if invalid
244
- */
245
- decryptSessionJwt(jwt) {
246
- try {
247
- // The encryptJson format is iv.tag.ct (base64url)
248
- // We need to decrypt it using the same key
249
- const parts = jwt.split('.');
250
- if (parts.length !== 3)
251
- return null;
252
- const [ivB64, tagB64, ctB64] = parts;
253
- const iv = Buffer.from(ivB64.replace(/-/g, '+').replace(/_/g, '/'), 'base64');
254
- const tag = Buffer.from(tagB64.replace(/-/g, '+').replace(/_/g, '/'), 'base64');
255
- const data = Buffer.from(ctB64.replace(/-/g, '+').replace(/_/g, '/'), 'base64');
256
- const decrypted = (0, session_crypto_1.decryptAesGcm)(this.encryptionKey, {
257
- alg: 'A256GCM',
258
- iv: iv.toString('base64url'),
259
- tag: tag.toString('base64url'),
260
- data: data.toString('base64url'),
261
- });
262
- const payload = JSON.parse(decrypted);
263
- // Validate expiration
264
- if (payload.exp && payload.exp * 1000 < Date.now()) {
265
- return null;
266
- }
267
- return {
268
- id: payload.sid,
269
- authorizationId: payload.aid,
270
- protocol: payload.proto,
271
- createdAt: payload.iat * 1000,
272
- expiresAt: payload.exp ? payload.exp * 1000 : undefined,
273
- nodeId: payload.nid,
274
- };
275
- }
276
- catch {
277
- return null;
278
- }
279
- }
280
- /**
281
- * Check if a session exists and is valid
282
- */
283
- async sessionExists(sessionId) {
284
- if (this.mode === 'stateless') {
285
- const session = this.decryptSessionJwt(sessionId);
286
- return session !== null;
287
- }
288
- return this.store.exists(sessionId);
289
- }
290
- /**
291
- * Get the storage mode
292
- */
293
- get storageMode() {
294
- return this.mode;
295
- }
296
- }
297
- exports.TransportSessionManager = TransportSessionManager;
298
- //# sourceMappingURL=transport-session.manager.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"transport-session.manager.js","sourceRoot":"","sources":["../../../../src/auth/session/transport-session.manager.ts"],"names":[],"mappings":"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","sourcesContent":["// auth/session/transport-session.manager.ts\n\nimport { randomUUID } from 'crypto';\nimport {\n TransportSession,\n TransportProtocol,\n SessionJwtPayload,\n StatelessSessionJwtPayload,\n StoredSession,\n SessionStore,\n SessionStorageConfig,\n TransportState,\n EncryptedBlob,\n} from './transport-session.types';\nimport { encryptJson } from './utils/session-id.utils';\nimport { encryptAesGcm, decryptAesGcm, hkdfSha256 } from './session.crypto';\nimport { getMachineId } from '../authorization/authorization.class';\nimport { RedisSessionStore } from './redis-session.store';\n\n/**\n * In-memory session store implementation\n */\nexport class InMemorySessionStore implements SessionStore {\n private readonly sessions = new Map<string, StoredSession>();\n\n async get(sessionId: string): Promise<StoredSession | null> {\n const stored = this.sessions.get(sessionId);\n if (!stored) return null;\n\n // Check expiration\n if (stored.session.expiresAt && stored.session.expiresAt < Date.now()) {\n this.sessions.delete(sessionId);\n return null;\n }\n\n // Update last accessed\n stored.lastAccessedAt = Date.now();\n return stored;\n }\n\n async set(sessionId: string, session: StoredSession, ttlMs?: number): Promise<void> {\n if (ttlMs) {\n session.session.expiresAt = Date.now() + ttlMs;\n }\n this.sessions.set(sessionId, session);\n }\n\n async delete(sessionId: string): Promise<void> {\n this.sessions.delete(sessionId);\n }\n\n async exists(sessionId: string): Promise<boolean> {\n const stored = this.sessions.get(sessionId);\n if (!stored) return false;\n\n // Check expiration\n if (stored.session.expiresAt && stored.session.expiresAt < Date.now()) {\n this.sessions.delete(sessionId);\n return false;\n }\n return true;\n }\n\n allocId(): string {\n return randomUUID();\n }\n\n /**\n * Clean up expired sessions\n */\n cleanup(): number {\n const now = Date.now();\n let cleaned = 0;\n for (const [id, stored] of this.sessions) {\n if (stored.session.expiresAt && stored.session.expiresAt < now) {\n this.sessions.delete(id);\n cleaned++;\n }\n }\n return cleaned;\n }\n\n /**\n * Get count of active sessions\n */\n get size(): number {\n return this.sessions.size;\n }\n}\n\n/**\n * Transport Session Manager\n *\n * Manages transport sessions independent of authorization.\n * Supports both stateless (JWT-encrypted) and stateful (store-backed) modes.\n *\n * Key concepts:\n * - Authorization = User identity + permissions (1 per user token)\n * - TransportSession = Protocol-specific connection (N per authorization)\n * - One authorization can have multiple transport sessions (e.g., multiple browser tabs)\n */\nexport class TransportSessionManager {\n private readonly store: SessionStore;\n private readonly mode: 'stateless' | 'stateful';\n private readonly encryptionKey: Buffer;\n\n constructor(config: SessionStorageConfig & { encryptionSecret?: string }) {\n this.mode = config.mode;\n\n if (config.mode === 'stateless') {\n this.store = new InMemorySessionStore(); // Used only for allocation\n } else if (config.store === 'memory') {\n this.store = new InMemorySessionStore();\n } else if (config.store === 'redis') {\n // Instantiate Redis session store\n this.store = new RedisSessionStore(config.config);\n } else {\n this.store = new InMemorySessionStore();\n }\n\n // Derive encryption key from secret or generate one\n const secret = config.encryptionSecret || process.env['MCP_SESSION_SECRET'];\n if (!secret) {\n if (process.env['NODE_ENV'] === 'production') {\n throw new Error(\n '[TransportSessionManager] MCP_SESSION_SECRET or encryptionSecret is required in production. ' +\n 'Set the MCP_SESSION_SECRET environment variable or provide encryptionSecret in config.',\n );\n }\n // Development fallback - NOT secure for production\n console.warn(\n '[TransportSessionManager] Using machine ID as session encryption secret - NOT SECURE FOR PRODUCTION. ' +\n 'Set MCP_SESSION_SECRET or provide encryptionSecret in config.',\n );\n }\n const effectiveSecret = secret || getMachineId();\n this.encryptionKey = hkdfSha256(\n Buffer.from(effectiveSecret),\n Buffer.from('mcp-session-salt'),\n Buffer.from('transport-session'),\n 32,\n );\n }\n\n /**\n * Create a new transport session for an authorization\n *\n * @param authorizationId - The authorization this session belongs to\n * @param protocol - Transport protocol (sse, streamable-http, etc.)\n * @param options - Additional session options\n * @returns The created transport session\n */\n async createSession(\n authorizationId: string,\n protocol: TransportProtocol,\n options: {\n expiresAt?: number;\n fingerprint?: string;\n transportState?: TransportState;\n tokens?: Record<string, EncryptedBlob>;\n } = {},\n ): Promise<TransportSession> {\n const sessionId = this.store.allocId();\n\n const session: TransportSession = {\n id: sessionId,\n authorizationId,\n protocol,\n createdAt: Date.now(),\n expiresAt: options.expiresAt,\n nodeId: getMachineId(),\n clientFingerprint: options.fingerprint,\n transportState: options.transportState,\n };\n\n if (this.mode === 'stateful') {\n // Store session in persistent store\n const stored: StoredSession = {\n session,\n authorizationId,\n tokens: options.tokens,\n createdAt: Date.now(),\n lastAccessedAt: Date.now(),\n };\n await this.store.set(sessionId, stored);\n }\n\n return session;\n }\n\n /**\n * Get an existing session by ID\n *\n * @param sessionId - The session ID (encrypted JWT or UUID)\n * @returns The session if found and valid, null otherwise\n */\n async getSession(sessionId: string): Promise<TransportSession | null> {\n if (this.mode === 'stateless') {\n // Decrypt session from JWT\n return this.decryptSessionJwt(sessionId);\n }\n\n // Stateful: lookup in store\n const stored = await this.store.get(sessionId);\n return stored?.session ?? null;\n }\n\n /**\n * Get stored session with tokens (for orchestrated mode)\n */\n async getStoredSession(sessionId: string): Promise<StoredSession | null> {\n if (this.mode === 'stateless') {\n // In stateless mode, we don't have stored sessions\n return null;\n }\n return this.store.get(sessionId);\n }\n\n /**\n * Update session state\n */\n async updateSession(\n sessionId: string,\n updates: {\n transportState?: TransportState;\n expiresAt?: number;\n },\n ): Promise<boolean> {\n if (this.mode === 'stateless') {\n // Stateless sessions are immutable - caller should create new session JWT\n return false;\n }\n\n const stored = await this.store.get(sessionId);\n if (!stored) return false;\n\n if (updates.transportState) {\n stored.session.transportState = updates.transportState;\n }\n if (updates.expiresAt) {\n stored.session.expiresAt = updates.expiresAt;\n }\n stored.lastAccessedAt = Date.now();\n\n await this.store.set(sessionId, stored);\n return true;\n }\n\n /**\n * Delete a session\n */\n async deleteSession(sessionId: string): Promise<boolean> {\n if (this.mode === 'stateless') {\n // Stateless sessions can't be revoked\n return false;\n }\n\n const exists = await this.store.exists(sessionId);\n if (exists) {\n await this.store.delete(sessionId);\n }\n return exists;\n }\n\n /**\n * Encode a session as an encrypted JWT for the Mcp-Session-Id header\n *\n * @param session - The transport session to encode\n * @param additionalState - Additional encrypted state for stateless mode\n * @returns Encrypted session JWT\n */\n encodeSessionJwt(\n session: TransportSession,\n additionalState?: {\n state?: unknown;\n tokens?: Record<string, unknown>;\n },\n ): string {\n const payload: SessionJwtPayload = {\n sid: session.id,\n aid: session.authorizationId,\n proto: session.protocol,\n nid: session.nodeId,\n iat: Math.floor(Date.now() / 1000),\n exp: session.expiresAt ? Math.floor(session.expiresAt / 1000) : undefined,\n };\n\n if (this.mode === 'stateless' && additionalState) {\n const statelessPayload = payload as StatelessSessionJwtPayload;\n\n if (additionalState.state) {\n const encrypted = encryptAesGcm(this.encryptionKey, JSON.stringify(additionalState.state));\n statelessPayload.state = `${encrypted.iv}.${encrypted.tag}.${encrypted.data}`;\n }\n\n if (additionalState.tokens) {\n const encrypted = encryptAesGcm(this.encryptionKey, JSON.stringify(additionalState.tokens));\n statelessPayload.tokens = `${encrypted.iv}.${encrypted.tag}.${encrypted.data}`;\n }\n }\n\n return encryptJson(payload);\n }\n\n /**\n * Decode an encrypted session JWT\n *\n * @param jwt - The encrypted session JWT\n * @returns Decoded session or null if invalid\n */\n private decryptSessionJwt(jwt: string): TransportSession | null {\n try {\n // The encryptJson format is iv.tag.ct (base64url)\n // We need to decrypt it using the same key\n const parts = jwt.split('.');\n if (parts.length !== 3) return null;\n\n const [ivB64, tagB64, ctB64] = parts;\n const iv = Buffer.from(ivB64.replace(/-/g, '+').replace(/_/g, '/'), 'base64');\n const tag = Buffer.from(tagB64.replace(/-/g, '+').replace(/_/g, '/'), 'base64');\n const data = Buffer.from(ctB64.replace(/-/g, '+').replace(/_/g, '/'), 'base64');\n\n const decrypted = decryptAesGcm(this.encryptionKey, {\n alg: 'A256GCM',\n iv: iv.toString('base64url'),\n tag: tag.toString('base64url'),\n data: data.toString('base64url'),\n });\n\n const payload = JSON.parse(decrypted) as SessionJwtPayload;\n\n // Validate expiration\n if (payload.exp && payload.exp * 1000 < Date.now()) {\n return null;\n }\n\n return {\n id: payload.sid,\n authorizationId: payload.aid,\n protocol: payload.proto,\n createdAt: payload.iat * 1000,\n expiresAt: payload.exp ? payload.exp * 1000 : undefined,\n nodeId: payload.nid,\n };\n } catch {\n return null;\n }\n }\n\n /**\n * Check if a session exists and is valid\n */\n async sessionExists(sessionId: string): Promise<boolean> {\n if (this.mode === 'stateless') {\n const session = this.decryptSessionJwt(sessionId);\n return session !== null;\n }\n return this.store.exists(sessionId);\n }\n\n /**\n * Get the storage mode\n */\n get storageMode(): 'stateless' | 'stateful' {\n return this.mode;\n }\n}\n"]}
@@ -1,111 +0,0 @@
1
- "use strict";
2
- // auth/session/transport-session.types.ts
3
- Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.sessionStorageConfigSchema = exports.redisConfigSchema = exports.storedSessionSchema = exports.encryptedBlobSchema = exports.statelessSessionJwtPayloadSchema = exports.sessionJwtPayloadSchema = exports.transportSessionSchema = exports.transportStateSchema = exports.legacySseTransportStateSchema = exports.statelessHttpTransportStateSchema = exports.statefulHttpTransportStateSchema = exports.streamableHttpTransportStateSchema = exports.sseTransportStateSchema = exports.transportProtocolSchema = void 0;
5
- const zod_1 = require("zod");
6
- // ============================================
7
- // Zod Schemas
8
- // ============================================
9
- exports.transportProtocolSchema = zod_1.z.enum([
10
- 'legacy-sse',
11
- 'sse',
12
- 'streamable-http',
13
- 'stateful-http',
14
- 'stateless-http',
15
- ]);
16
- exports.sseTransportStateSchema = zod_1.z.object({
17
- type: zod_1.z.literal('sse'),
18
- lastEventId: zod_1.z.string().optional(),
19
- lastPing: zod_1.z.number().optional(),
20
- connectionState: zod_1.z.enum(['connecting', 'open', 'closed']).optional(),
21
- });
22
- exports.streamableHttpTransportStateSchema = zod_1.z.object({
23
- type: zod_1.z.literal('streamable-http'),
24
- requestSeq: zod_1.z.number(),
25
- activeStreamId: zod_1.z.string().optional(),
26
- pendingRequests: zod_1.z.array(zod_1.z.string()).optional(),
27
- });
28
- exports.statefulHttpTransportStateSchema = zod_1.z.object({
29
- type: zod_1.z.literal('stateful-http'),
30
- requestSeq: zod_1.z.number(),
31
- pendingResponses: zod_1.z.array(zod_1.z.string()).optional(),
32
- lastActivity: zod_1.z.number().optional(),
33
- });
34
- exports.statelessHttpTransportStateSchema = zod_1.z.object({
35
- type: zod_1.z.literal('stateless-http'),
36
- requestCount: zod_1.z.number(),
37
- windowStart: zod_1.z.number().optional(),
38
- });
39
- exports.legacySseTransportStateSchema = zod_1.z.object({
40
- type: zod_1.z.literal('legacy-sse'),
41
- messagePath: zod_1.z.string(),
42
- lastEventId: zod_1.z.string().optional(),
43
- connectionState: zod_1.z.enum(['connecting', 'open', 'closed']).optional(),
44
- });
45
- exports.transportStateSchema = zod_1.z.discriminatedUnion('type', [
46
- exports.sseTransportStateSchema,
47
- exports.streamableHttpTransportStateSchema,
48
- exports.statefulHttpTransportStateSchema,
49
- exports.statelessHttpTransportStateSchema,
50
- exports.legacySseTransportStateSchema,
51
- ]);
52
- exports.transportSessionSchema = zod_1.z.object({
53
- id: zod_1.z.string(),
54
- authorizationId: zod_1.z.string(),
55
- protocol: exports.transportProtocolSchema,
56
- createdAt: zod_1.z.number(),
57
- expiresAt: zod_1.z.number().optional(),
58
- nodeId: zod_1.z.string(),
59
- clientFingerprint: zod_1.z.string().optional(),
60
- transportState: exports.transportStateSchema.optional(),
61
- });
62
- exports.sessionJwtPayloadSchema = zod_1.z.object({
63
- sid: zod_1.z.string(),
64
- aid: zod_1.z.string(),
65
- proto: exports.transportProtocolSchema,
66
- nid: zod_1.z.string(),
67
- iat: zod_1.z.number(),
68
- exp: zod_1.z.number().optional(),
69
- });
70
- exports.statelessSessionJwtPayloadSchema = exports.sessionJwtPayloadSchema.extend({
71
- state: zod_1.z.string().optional(),
72
- tokens: zod_1.z.string().optional(),
73
- });
74
- exports.encryptedBlobSchema = zod_1.z.object({
75
- alg: zod_1.z.literal('A256GCM'),
76
- kid: zod_1.z.string().optional(),
77
- iv: zod_1.z.string(),
78
- tag: zod_1.z.string(),
79
- data: zod_1.z.string(),
80
- exp: zod_1.z.number().optional(),
81
- meta: zod_1.z.record(zod_1.z.string(), zod_1.z.unknown()).optional(),
82
- });
83
- exports.storedSessionSchema = zod_1.z.object({
84
- session: exports.transportSessionSchema,
85
- authorizationId: zod_1.z.string(),
86
- tokens: zod_1.z.record(zod_1.z.string(), exports.encryptedBlobSchema).optional(),
87
- createdAt: zod_1.z.number(),
88
- lastAccessedAt: zod_1.z.number(),
89
- });
90
- exports.redisConfigSchema = zod_1.z.object({
91
- host: zod_1.z.string().min(1),
92
- port: zod_1.z.number().int().positive().optional().default(6379),
93
- password: zod_1.z.string().optional(),
94
- db: zod_1.z.number().int().nonnegative().optional().default(0),
95
- tls: zod_1.z.boolean().optional().default(false),
96
- keyPrefix: zod_1.z.string().optional().default('mcp:session:'),
97
- defaultTtlMs: zod_1.z.number().int().positive().optional().default(3600000), // 1 hour default
98
- });
99
- // Stateful storage options (discriminated by store type)
100
- const statefulStorageSchema = zod_1.z.discriminatedUnion('store', [
101
- zod_1.z.object({ store: zod_1.z.literal('memory') }),
102
- zod_1.z.object({ store: zod_1.z.literal('redis'), config: exports.redisConfigSchema }),
103
- ]);
104
- // Session storage config using union instead of discriminatedUnion
105
- // to avoid duplicate mode values
106
- exports.sessionStorageConfigSchema = zod_1.z.union([
107
- zod_1.z.object({ mode: zod_1.z.literal('stateless') }),
108
- zod_1.z.object({ mode: zod_1.z.literal('stateful') }).merge(statefulStorageSchema.options[0]),
109
- zod_1.z.object({ mode: zod_1.z.literal('stateful') }).merge(statefulStorageSchema.options[1]),
110
- ]);
111
- //# sourceMappingURL=transport-session.types.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"transport-session.types.js","sourceRoot":"","sources":["../../../../src/auth/session/transport-session.types.ts"],"names":[],"mappings":"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","sourcesContent":["// auth/session/transport-session.types.ts\n\nimport { z } from 'zod';\n\n/**\n * Transport protocol types supported by MCP\n * These are the actual transport protocols for sessions (excludes 'delete-session' action)\n */\nexport type TransportProtocol = 'legacy-sse' | 'sse' | 'streamable-http' | 'stateful-http' | 'stateless-http';\n\n/**\n * Session storage mode for distributed systems\n */\nexport type SessionStorageMode = 'stateless' | 'stateful';\n\n/**\n * TransportSession represents a single client connection.\n * Multiple sessions can share the same authorization.\n * Each session is bound to a specific transport protocol.\n */\nexport interface TransportSession {\n /** Unique session ID (encrypted JWT or UUID) */\n id: string;\n\n /** Reference to the authorization this session uses */\n authorizationId: string;\n\n /** Transport protocol for this session */\n protocol: TransportProtocol;\n\n /** Session creation timestamp (epoch ms) */\n createdAt: number;\n\n /** Session expiration (epoch ms, independent of auth expiration) */\n expiresAt?: number;\n\n /** Node ID for distributed systems */\n nodeId: string;\n\n /** Client fingerprint for rate limiting/tracking */\n clientFingerprint?: string;\n\n /** Transport-specific state */\n transportState?: TransportState;\n}\n\n/**\n * Transport-specific state that varies by protocol\n */\nexport type TransportState =\n | SseTransportState\n | StreamableHttpTransportState\n | StatefulHttpTransportState\n | StatelessHttpTransportState\n | LegacySseTransportState;\n\n/**\n * SSE (Server-Sent Events) transport state\n */\nexport interface SseTransportState {\n type: 'sse';\n /** Last event ID for reconnection (per SSE spec) */\n lastEventId?: string;\n /** Connection keep-alive timestamp */\n lastPing?: number;\n /** Connection state */\n connectionState?: 'connecting' | 'open' | 'closed';\n}\n\n/**\n * Streamable HTTP transport state\n */\nexport interface StreamableHttpTransportState {\n type: 'streamable-http';\n /** Request sequence number */\n requestSeq: number;\n /** Active stream ID if streaming */\n activeStreamId?: string;\n /** Pending request IDs */\n pendingRequests?: string[];\n}\n\n/**\n * Stateful HTTP transport state\n */\nexport interface StatefulHttpTransportState {\n type: 'stateful-http';\n /** Request sequence number */\n requestSeq: number;\n /** Pending responses awaiting delivery */\n pendingResponses?: string[];\n /** Last activity timestamp */\n lastActivity?: number;\n}\n\n/**\n * Stateless HTTP transport state\n */\nexport interface StatelessHttpTransportState {\n type: 'stateless-http';\n /** Request count for rate limiting */\n requestCount: number;\n /** Window start for rate limiting */\n windowStart?: number;\n}\n\n/**\n * Legacy SSE transport state (for backwards compatibility)\n */\nexport interface LegacySseTransportState {\n type: 'legacy-sse';\n /** Message endpoint path */\n messagePath: string;\n /** Last event ID */\n lastEventId?: string;\n /** Connection state */\n connectionState?: 'connecting' | 'open' | 'closed';\n}\n\n/**\n * Session JWT payload - encodes both auth ref and transport context\n * This is the structure encrypted in the mcp-session-id header\n */\nexport interface SessionJwtPayload {\n /** Session ID (UUID) */\n sid: string;\n /** Authorization ID (token signature fingerprint) */\n aid: string;\n /** Transport protocol */\n proto: TransportProtocol;\n /** Node ID (for distributed systems) */\n nid: string;\n /** Issued at (epoch seconds) */\n iat: number;\n /** Expiration (epoch seconds) */\n exp?: number;\n}\n\n/**\n * Extended session JWT payload for stateless mode\n * Includes encrypted state and tokens\n */\nexport interface StatelessSessionJwtPayload extends SessionJwtPayload {\n /** Encrypted transport state (AES-256-GCM) */\n state?: string;\n /** Encrypted provider tokens (AES-256-GCM, for orchestrated mode) */\n tokens?: string;\n}\n\n/**\n * Stored session record (for stateful mode in Redis/memory)\n */\nexport interface StoredSession {\n /** The transport session data */\n session: TransportSession;\n /** Authorization ID reference */\n authorizationId: string;\n /** Encrypted provider tokens (for orchestrated mode) */\n tokens?: Record<string, EncryptedBlob>;\n /** Creation timestamp */\n createdAt: number;\n /** Last accessed timestamp */\n lastAccessedAt: number;\n}\n\n/**\n * Encrypted blob structure (AES-256-GCM)\n */\nexport interface EncryptedBlob {\n /** Algorithm identifier */\n alg: 'A256GCM';\n /** Key ID (for rotation) */\n kid?: string;\n /** Initialization vector (base64url) */\n iv: string;\n /** Authentication tag (base64url) */\n tag: string;\n /** Ciphertext (base64url) */\n data: string;\n /** Expiration hint (epoch seconds) */\n exp?: number;\n /** Additional metadata */\n meta?: Record<string, unknown>;\n}\n\n/**\n * Session store interface for stateful sessions\n */\nexport interface SessionStore {\n /**\n * Get a stored session by ID\n */\n get(sessionId: string): Promise<StoredSession | null>;\n\n /**\n * Store a session with optional TTL\n */\n set(sessionId: string, session: StoredSession, ttlMs?: number): Promise<void>;\n\n /**\n * Delete a session\n */\n delete(sessionId: string): Promise<void>;\n\n /**\n * Check if a session exists\n */\n exists(sessionId: string): Promise<boolean>;\n\n /**\n * Allocate a new session ID\n */\n allocId(): string;\n}\n\n/**\n * Session storage configuration\n */\nexport type SessionStorageConfig =\n | { mode: 'stateless' }\n | { mode: 'stateful'; store: 'memory' }\n | { mode: 'stateful'; store: 'redis'; config: RedisConfig };\n\n/**\n * Redis configuration\n */\nexport interface RedisConfig {\n host: string;\n port?: number;\n password?: string;\n db?: number;\n tls?: boolean;\n keyPrefix?: string;\n /** Default TTL in milliseconds for session extension on access (sliding expiration) */\n defaultTtlMs?: number;\n}\n\n// ============================================\n// Zod Schemas\n// ============================================\n\nexport const transportProtocolSchema = z.enum([\n 'legacy-sse',\n 'sse',\n 'streamable-http',\n 'stateful-http',\n 'stateless-http',\n]);\n\nexport const sseTransportStateSchema = z.object({\n type: z.literal('sse'),\n lastEventId: z.string().optional(),\n lastPing: z.number().optional(),\n connectionState: z.enum(['connecting', 'open', 'closed']).optional(),\n});\n\nexport const streamableHttpTransportStateSchema = z.object({\n type: z.literal('streamable-http'),\n requestSeq: z.number(),\n activeStreamId: z.string().optional(),\n pendingRequests: z.array(z.string()).optional(),\n});\n\nexport const statefulHttpTransportStateSchema = z.object({\n type: z.literal('stateful-http'),\n requestSeq: z.number(),\n pendingResponses: z.array(z.string()).optional(),\n lastActivity: z.number().optional(),\n});\n\nexport const statelessHttpTransportStateSchema = z.object({\n type: z.literal('stateless-http'),\n requestCount: z.number(),\n windowStart: z.number().optional(),\n});\n\nexport const legacySseTransportStateSchema = z.object({\n type: z.literal('legacy-sse'),\n messagePath: z.string(),\n lastEventId: z.string().optional(),\n connectionState: z.enum(['connecting', 'open', 'closed']).optional(),\n});\n\nexport const transportStateSchema = z.discriminatedUnion('type', [\n sseTransportStateSchema,\n streamableHttpTransportStateSchema,\n statefulHttpTransportStateSchema,\n statelessHttpTransportStateSchema,\n legacySseTransportStateSchema,\n]);\n\nexport const transportSessionSchema = z.object({\n id: z.string(),\n authorizationId: z.string(),\n protocol: transportProtocolSchema,\n createdAt: z.number(),\n expiresAt: z.number().optional(),\n nodeId: z.string(),\n clientFingerprint: z.string().optional(),\n transportState: transportStateSchema.optional(),\n});\n\nexport const sessionJwtPayloadSchema = z.object({\n sid: z.string(),\n aid: z.string(),\n proto: transportProtocolSchema,\n nid: z.string(),\n iat: z.number(),\n exp: z.number().optional(),\n});\n\nexport const statelessSessionJwtPayloadSchema = sessionJwtPayloadSchema.extend({\n state: z.string().optional(),\n tokens: z.string().optional(),\n});\n\nexport const encryptedBlobSchema = z.object({\n alg: z.literal('A256GCM'),\n kid: z.string().optional(),\n iv: z.string(),\n tag: z.string(),\n data: z.string(),\n exp: z.number().optional(),\n meta: z.record(z.string(), z.unknown()).optional(),\n});\n\nexport const storedSessionSchema = z.object({\n session: transportSessionSchema,\n authorizationId: z.string(),\n tokens: z.record(z.string(), encryptedBlobSchema).optional(),\n createdAt: z.number(),\n lastAccessedAt: z.number(),\n});\n\nexport const redisConfigSchema = z.object({\n host: z.string().min(1),\n port: z.number().int().positive().optional().default(6379),\n password: z.string().optional(),\n db: z.number().int().nonnegative().optional().default(0),\n tls: z.boolean().optional().default(false),\n keyPrefix: z.string().optional().default('mcp:session:'),\n defaultTtlMs: z.number().int().positive().optional().default(3600000), // 1 hour default\n});\n\n// Stateful storage options (discriminated by store type)\nconst statefulStorageSchema = z.discriminatedUnion('store', [\n z.object({ store: z.literal('memory') }),\n z.object({ store: z.literal('redis'), config: redisConfigSchema }),\n]);\n\n// Session storage config using union instead of discriminatedUnion\n// to avoid duplicate mode values\nexport const sessionStorageConfigSchema = z.union([\n z.object({ mode: z.literal('stateless') }),\n z.object({ mode: z.literal('stateful') }).merge(statefulStorageSchema.options[0]),\n z.object({ mode: z.literal('stateful') }).merge(statefulStorageSchema.options[1]),\n]);\n"]}
@@ -1,57 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isJwt = isJwt;
4
- exports.getTokenSignatureFingerprint = getTokenSignatureFingerprint;
5
- exports.deriveTypedUser = deriveTypedUser;
6
- exports.extractBearerToken = extractBearerToken;
7
- function isJwt(token) {
8
- if (!token)
9
- return false;
10
- return token.split('.').length === 3;
11
- }
12
- /**
13
- * If the token is a JWT, returns the raw signature segment (3rd part) as base64url.
14
- * Otherwise, returns a stable SHA-256(base64url) fingerprint of the whole token,
15
- * so we can still bind a session id to "this Authorization" deterministically.
16
- */
17
- function getTokenSignatureFingerprint(token) {
18
- if (isJwt(token)) {
19
- return token.split('.')[2];
20
- }
21
- const crypto = require('crypto');
22
- const digest = crypto.createHash('sha256').update(token).digest('base64');
23
- return digest.replace(/\+/g, '-').replace(/\//g, '_').replace(/=+$/g, '');
24
- }
25
- /** Safely extracts a claim value if it matches the expected type */
26
- function extractClaimValue(claims, key, validator) {
27
- const value = claims[key];
28
- return validator(value) ? value : undefined;
29
- }
30
- /** Type guards for claim validation */
31
- const isString = (value) => typeof value === 'string';
32
- const isNumber = (value) => typeof value === 'number';
33
- const isStringOrStringArray = (value) => typeof value === 'string' || Array.isArray(value);
34
- /** Best-effort typed user derivation from claims */
35
- function deriveTypedUser(claims) {
36
- return {
37
- ...claims,
38
- iss: extractClaimValue(claims, 'iss', isString),
39
- sid: extractClaimValue(claims, 'sid', isString),
40
- sub: extractClaimValue(claims, 'sub', isString),
41
- exp: extractClaimValue(claims, 'exp', isNumber),
42
- iat: extractClaimValue(claims, 'iat', isNumber),
43
- aud: extractClaimValue(claims, 'aud', isStringOrStringArray),
44
- email: extractClaimValue(claims, 'email', isString),
45
- preferred_username: extractClaimValue(claims, 'preferred_username', isString),
46
- username: extractClaimValue(claims, 'username', isString),
47
- name: extractClaimValue(claims, 'name', isString),
48
- picture: extractClaimValue(claims, 'picture', isString),
49
- };
50
- }
51
- function extractBearerToken(header) {
52
- if (!header)
53
- return undefined;
54
- const m = header.match(/^\s*Bearer\s+(.+)\s*$/i);
55
- return m ? m[1].trim() : undefined;
56
- }
57
- //# sourceMappingURL=auth-token.utils.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"auth-token.utils.js","sourceRoot":"","sources":["../../../../../src/auth/session/utils/auth-token.utils.ts"],"names":[],"mappings":"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","sourcesContent":["// auth/session/utils/auth-token.utils.ts\nimport { UserClaim } from '../../../common';\n\nexport function isJwt(token: string | undefined): boolean {\n if (!token) return false;\n return token.split('.').length === 3;\n}\n\n/**\n * If the token is a JWT, returns the raw signature segment (3rd part) as base64url.\n * Otherwise, returns a stable SHA-256(base64url) fingerprint of the whole token,\n * so we can still bind a session id to \"this Authorization\" deterministically.\n */\nexport function getTokenSignatureFingerprint(token: string): string {\n if (isJwt(token)) {\n return token.split('.')[2]!;\n }\n const crypto = require('crypto') as typeof import('crypto');\n const digest = crypto.createHash('sha256').update(token).digest('base64');\n return digest.replace(/\\+/g, '-').replace(/\\//g, '_').replace(/=+$/g, '');\n}\n\n/** Safely extracts a claim value if it matches the expected type */\nfunction extractClaimValue<T>(\n claims: Record<string, any>,\n key: string,\n validator: (value: any) => value is T,\n): T | undefined {\n const value = claims[key];\n return validator(value) ? value : undefined;\n}\n\n/** Type guards for claim validation */\nconst isString = (value: any): value is string => typeof value === 'string';\nconst isNumber = (value: any): value is number => typeof value === 'number';\nconst isStringOrStringArray = (value: any): value is string | string[] =>\n typeof value === 'string' || Array.isArray(value);\n\n/** Best-effort typed user derivation from claims */\nexport function deriveTypedUser(claims: Record<string, any>): UserClaim {\n return {\n ...claims,\n iss: extractClaimValue(claims, 'iss', isString)!,\n sid: extractClaimValue(claims, 'sid', isString),\n sub: extractClaimValue(claims, 'sub', isString)!,\n exp: extractClaimValue(claims, 'exp', isNumber),\n iat: extractClaimValue(claims, 'iat', isNumber),\n aud: extractClaimValue(claims, 'aud', isStringOrStringArray),\n email: extractClaimValue(claims, 'email', isString),\n preferred_username: extractClaimValue(claims, 'preferred_username', isString),\n username: extractClaimValue(claims, 'username', isString),\n name: extractClaimValue(claims, 'name', isString),\n picture: extractClaimValue(claims, 'picture', isString),\n };\n}\n\nexport function extractBearerToken(header?: string): string | undefined {\n if (!header) return undefined;\n const m = header.match(/^\\s*Bearer\\s+(.+)\\s*$/i);\n return m ? m[1].trim() : undefined;\n}\n"]}