@frontmcp/sdk 0.6.0 → 0.6.2

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 (1053) 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/{src/auth → auth}/session/index.d.ts +1 -0
  4. package/auth/session/vercel-kv-session.store.d.ts +96 -0
  5. package/{src/common → common}/interfaces/internal/primary-auth-provider.interface.d.ts +1 -4
  6. package/{src/common → common}/metadata/front-mcp.metadata.d.ts +1779 -67
  7. package/{src/common → common}/metadata/prompt.metadata.d.ts +4 -0
  8. package/{src/common → common}/metadata/resource.metadata.d.ts +8 -0
  9. package/{src/common → common}/metadata/tool-ui.metadata.d.ts +2 -2
  10. package/{src/common → common}/metadata/tool.metadata.d.ts +4 -0
  11. package/{src/common → common}/schemas/http-output.schema.d.ts +24 -6
  12. package/common/types/options/auth/app-auth.schema.d.ts +275 -0
  13. package/common/types/options/auth/auth.interfaces.d.ts +461 -0
  14. package/common/types/options/auth/auth.schema.d.ts +284 -0
  15. package/common/types/options/auth/auth.utils.d.ts +32 -0
  16. package/common/types/options/auth/index.d.ts +16 -0
  17. package/common/types/options/auth/orchestrated.schema.d.ts +381 -0
  18. package/common/types/options/auth/public.schema.d.ts +42 -0
  19. package/common/types/options/auth/shared.schemas.d.ts +120 -0
  20. package/common/types/options/auth/transparent.schema.d.ts +56 -0
  21. package/common/types/options/auth/transport.deprecated.d.ts +63 -0
  22. package/{src/common → common}/types/options/index.d.ts +1 -1
  23. package/common/types/options/redis.options.d.ts +190 -0
  24. package/{src/common → common}/types/options/server-info.options.d.ts +4 -0
  25. package/{src/common → common}/types/options/transport.options.d.ts +74 -5
  26. package/{src/common → common}/utils/decide-request-intent.utils.d.ts +6 -7
  27. package/common/utils/global-config.utils.d.ts +36 -0
  28. package/{src/common → common}/utils/index.d.ts +1 -0
  29. package/{src/completion → completion}/flows/complete.flow.d.ts +6 -8
  30. package/{src/errors → errors}/index.d.ts +1 -1
  31. package/{src/errors → errors}/mcp.error.d.ts +9 -0
  32. package/esm/index.mjs +22664 -0
  33. package/esm/mcp-apps/index.mjs +723 -0
  34. package/esm/package.json +81 -0
  35. package/{src/front-mcp → front-mcp}/front-mcp.providers.d.ts +246 -38
  36. package/front-mcp/index.d.ts +2 -0
  37. package/{src/index.d.ts → index.d.ts} +1 -1
  38. package/index.js +22957 -0
  39. package/logger/logger.tokens.d.ts +1 -0
  40. package/{src/logging → logging}/flows/set-level.flow.d.ts +6 -8
  41. package/mcp-apps/index.js +799 -0
  42. package/package.json +37 -17
  43. package/{src/prompt → prompt}/flows/get-prompt.flow.d.ts +14 -8
  44. package/{src/prompt → prompt}/flows/prompts-list.flow.d.ts +8 -7
  45. package/{src/resource → resource}/flows/read-resource.flow.d.ts +8 -9
  46. package/{src/resource → resource}/flows/resource-templates-list.flow.d.ts +8 -7
  47. package/{src/resource → resource}/flows/resources-list.flow.d.ts +8 -7
  48. package/{src/resource → resource}/flows/subscribe-resource.flow.d.ts +6 -8
  49. package/{src/resource → resource}/flows/unsubscribe-resource.flow.d.ts +6 -8
  50. package/store/adapters/store.vercel-kv.adapter.d.ts +86 -0
  51. package/{src/store → store}/index.d.ts +2 -0
  52. package/store/store.factory.d.ts +86 -0
  53. package/{src/tool → tool}/flows/call-tool.flow.d.ts +18 -9
  54. package/{src/tool → tool}/flows/tools-list.flow.d.ts +9 -8
  55. package/{src/tool → tool}/ui/index.d.ts +4 -4
  56. package/{src/tool → tool}/ui/platform-adapters.d.ts +2 -2
  57. package/{src/tool → tool}/ui/template-helpers.d.ts +5 -7
  58. package/{src/tool → tool}/ui/ui-resource.handler.d.ts +1 -1
  59. package/{src/transport → transport}/mcp-handlers/complete-request.handler.d.ts +4 -15
  60. package/{src/transport → transport}/mcp-handlers/get-prompt-request.handler.d.ts +5 -15
  61. package/{src/transport → transport}/mcp-handlers/index.d.ts +67 -195
  62. package/{src/transport → transport}/mcp-handlers/list-prompts-request.handler.d.ts +5 -15
  63. package/{src/transport → transport}/mcp-handlers/list-resource-templates-request.handler.d.ts +5 -15
  64. package/{src/transport → transport}/mcp-handlers/list-resources-request.handler.d.ts +5 -15
  65. package/{src/transport → transport}/mcp-handlers/list-tools-request.handler.d.ts +5 -15
  66. package/{src/transport → transport}/mcp-handlers/logging-set-level-request.handler.d.ts +3 -14
  67. package/{src/transport → transport}/mcp-handlers/read-resource-request.handler.d.ts +4 -15
  68. package/{src/transport → transport}/mcp-handlers/subscribe-request.handler.d.ts +3 -14
  69. package/{src/transport → transport}/mcp-handlers/unsubscribe-request.handler.d.ts +3 -14
  70. package/{src/transport → transport}/transport.registry.d.ts +5 -1
  71. package/README.md +0 -460
  72. package/src/adapter/adapter.instance.js +0 -70
  73. package/src/adapter/adapter.instance.js.map +0 -1
  74. package/src/adapter/adapter.regsitry.js +0 -54
  75. package/src/adapter/adapter.regsitry.js.map +0 -1
  76. package/src/adapter/adapter.utils.js +0 -83
  77. package/src/adapter/adapter.utils.js.map +0 -1
  78. package/src/app/app.registry.js +0 -66
  79. package/src/app/app.registry.js.map +0 -1
  80. package/src/app/app.utils.js +0 -58
  81. package/src/app/app.utils.js.map +0 -1
  82. package/src/app/instances/app.local.instance.js +0 -67
  83. package/src/app/instances/app.local.instance.js.map +0 -1
  84. package/src/app/instances/app.remote.instance.js +0 -36
  85. package/src/app/instances/app.remote.instance.js.map +0 -1
  86. package/src/app/instances/index.js +0 -6
  87. package/src/app/instances/index.js.map +0 -1
  88. package/src/auth/auth.registry.js +0 -219
  89. package/src/auth/auth.registry.js.map +0 -1
  90. package/src/auth/auth.utils.js +0 -84
  91. package/src/auth/auth.utils.js.map +0 -1
  92. package/src/auth/authorization/authorization.class.js +0 -217
  93. package/src/auth/authorization/authorization.class.js.map +0 -1
  94. package/src/auth/authorization/authorization.types.js +0 -79
  95. package/src/auth/authorization/authorization.types.js.map +0 -1
  96. package/src/auth/authorization/index.js +0 -19
  97. package/src/auth/authorization/index.js.map +0 -1
  98. package/src/auth/authorization/orchestrated.authorization.js +0 -306
  99. package/src/auth/authorization/orchestrated.authorization.js.map +0 -1
  100. package/src/auth/authorization/public.authorization.js +0 -132
  101. package/src/auth/authorization/public.authorization.js.map +0 -1
  102. package/src/auth/authorization/transparent.authorization.js +0 -147
  103. package/src/auth/authorization/transparent.authorization.js.map +0 -1
  104. package/src/auth/consent/consent.types.js +0 -119
  105. package/src/auth/consent/consent.types.js.map +0 -1
  106. package/src/auth/consent/index.js +0 -13
  107. package/src/auth/consent/index.js.map +0 -1
  108. package/src/auth/detection/auth-provider-detection.js +0 -230
  109. package/src/auth/detection/auth-provider-detection.js.map +0 -1
  110. package/src/auth/detection/index.js +0 -15
  111. package/src/auth/detection/index.js.map +0 -1
  112. package/src/auth/flows/auth.verify.flow.js +0 -379
  113. package/src/auth/flows/auth.verify.flow.js.map +0 -1
  114. package/src/auth/flows/oauth.authorize.flow.js +0 -822
  115. package/src/auth/flows/oauth.authorize.flow.js.map +0 -1
  116. package/src/auth/flows/oauth.callback.flow.js +0 -357
  117. package/src/auth/flows/oauth.callback.flow.js.map +0 -1
  118. package/src/auth/flows/oauth.register.flow.js +0 -201
  119. package/src/auth/flows/oauth.register.flow.js.map +0 -1
  120. package/src/auth/flows/oauth.token.flow.js +0 -319
  121. package/src/auth/flows/oauth.token.flow.js.map +0 -1
  122. package/src/auth/flows/session.verify.flow.js +0 -304
  123. package/src/auth/flows/session.verify.flow.js.map +0 -1
  124. package/src/auth/flows/well-known.jwks.flow.js +0 -89
  125. package/src/auth/flows/well-known.jwks.flow.js.map +0 -1
  126. package/src/auth/flows/well-known.oauth-authorization-server.flow.js +0 -122
  127. package/src/auth/flows/well-known.oauth-authorization-server.flow.js.map +0 -1
  128. package/src/auth/flows/well-known.prm.flow.js +0 -106
  129. package/src/auth/flows/well-known.prm.flow.js.map +0 -1
  130. package/src/auth/instances/instance.local-primary-auth.js +0 -308
  131. package/src/auth/instances/instance.local-primary-auth.js.map +0 -1
  132. package/src/auth/instances/instance.remote-primary-auth.js +0 -49
  133. package/src/auth/instances/instance.remote-primary-auth.js.map +0 -1
  134. package/src/auth/jwks/dev-key-persistence.js +0 -219
  135. package/src/auth/jwks/dev-key-persistence.js.map +0 -1
  136. package/src/auth/jwks/index.js +0 -7
  137. package/src/auth/jwks/index.js.map +0 -1
  138. package/src/auth/jwks/jwks.service.js +0 -303
  139. package/src/auth/jwks/jwks.service.js.map +0 -1
  140. package/src/auth/jwks/jwks.types.js +0 -3
  141. package/src/auth/jwks/jwks.types.js.map +0 -1
  142. package/src/auth/jwks/jwks.utils.js +0 -32
  143. package/src/auth/jwks/jwks.utils.js.map +0 -1
  144. package/src/auth/machine-id.js +0 -32
  145. package/src/auth/machine-id.js.map +0 -1
  146. package/src/auth/oauth/flows/oauth.authorize.flow.js +0 -33
  147. package/src/auth/oauth/flows/oauth.authorize.flow.js.map +0 -1
  148. package/src/auth/oauth/flows/oauth.device-authorization.flow.js +0 -48
  149. package/src/auth/oauth/flows/oauth.device-authorization.flow.js.map +0 -1
  150. package/src/auth/oauth/flows/oauth.introspect.flow.js +0 -28
  151. package/src/auth/oauth/flows/oauth.introspect.flow.js.map +0 -1
  152. package/src/auth/oauth/flows/oauth.par.flow.js +0 -29
  153. package/src/auth/oauth/flows/oauth.par.flow.js.map +0 -1
  154. package/src/auth/oauth/flows/oauth.revoke.flow.js +0 -27
  155. package/src/auth/oauth/flows/oauth.revoke.flow.js.map +0 -1
  156. package/src/auth/oauth/flows/oauth.token.flow.js +0 -59
  157. package/src/auth/oauth/flows/oauth.token.flow.js.map +0 -1
  158. package/src/auth/oauth/flows/oauth.userinfo.flow.js +0 -24
  159. package/src/auth/oauth/flows/oauth.userinfo.flow.js.map +0 -1
  160. package/src/auth/oauth/flows/oidc.logout.flow.js +0 -20
  161. package/src/auth/oauth/flows/oidc.logout.flow.js.map +0 -1
  162. package/src/auth/session/authorization-vault.js +0 -817
  163. package/src/auth/session/authorization-vault.js.map +0 -1
  164. package/src/auth/session/authorization.store.js +0 -323
  165. package/src/auth/session/authorization.store.js.map +0 -1
  166. package/src/auth/session/encrypted-authorization-vault.js +0 -493
  167. package/src/auth/session/encrypted-authorization-vault.js.map +0 -1
  168. package/src/auth/session/index.js +0 -16
  169. package/src/auth/session/index.js.map +0 -1
  170. package/src/auth/session/record/session.base.js +0 -125
  171. package/src/auth/session/record/session.base.js.map +0 -1
  172. package/src/auth/session/record/session.stateful.js +0 -55
  173. package/src/auth/session/record/session.stateful.js.map +0 -1
  174. package/src/auth/session/record/session.stateless.js +0 -32
  175. package/src/auth/session/record/session.stateless.js.map +0 -1
  176. package/src/auth/session/record/session.transparent.js +0 -22
  177. package/src/auth/session/record/session.transparent.js.map +0 -1
  178. package/src/auth/session/redis-session.store.js +0 -204
  179. package/src/auth/session/redis-session.store.js.map +0 -1
  180. package/src/auth/session/session.crypto.js +0 -47
  181. package/src/auth/session/session.crypto.js.map +0 -1
  182. package/src/auth/session/session.schema.js +0 -13
  183. package/src/auth/session/session.schema.js.map +0 -1
  184. package/src/auth/session/session.service.js +0 -105
  185. package/src/auth/session/session.service.js.map +0 -1
  186. package/src/auth/session/session.transport.js +0 -20
  187. package/src/auth/session/session.transport.js.map +0 -1
  188. package/src/auth/session/session.types.js +0 -4
  189. package/src/auth/session/session.types.js.map +0 -1
  190. package/src/auth/session/token.refresh.js +0 -63
  191. package/src/auth/session/token.refresh.js.map +0 -1
  192. package/src/auth/session/token.store.js +0 -53
  193. package/src/auth/session/token.store.js.map +0 -1
  194. package/src/auth/session/token.vault.js +0 -54
  195. package/src/auth/session/token.vault.js.map +0 -1
  196. package/src/auth/session/transport-session.manager.js +0 -298
  197. package/src/auth/session/transport-session.manager.js.map +0 -1
  198. package/src/auth/session/transport-session.types.js +0 -111
  199. package/src/auth/session/transport-session.types.js.map +0 -1
  200. package/src/auth/session/utils/auth-token.utils.js +0 -57
  201. package/src/auth/session/utils/auth-token.utils.js.map +0 -1
  202. package/src/auth/session/utils/session-id.utils.js +0 -217
  203. package/src/auth/session/utils/session-id.utils.js.map +0 -1
  204. package/src/auth/session/utils/tiny-ttl-cache.js +0 -26
  205. package/src/auth/session/utils/tiny-ttl-cache.js.map +0 -1
  206. package/src/auth/session/vault-encryption.js +0 -263
  207. package/src/auth/session/vault-encryption.js.map +0 -1
  208. package/src/auth/ui/base-layout.js +0 -279
  209. package/src/auth/ui/base-layout.js.map +0 -1
  210. package/src/auth/ui/index.js +0 -34
  211. package/src/auth/ui/index.js.map +0 -1
  212. package/src/auth/ui/templates.js +0 -426
  213. package/src/auth/ui/templates.js.map +0 -1
  214. package/src/auth/utils/audience.validator.js +0 -196
  215. package/src/auth/utils/audience.validator.js.map +0 -1
  216. package/src/auth/utils/index.js +0 -7
  217. package/src/auth/utils/index.js.map +0 -1
  218. package/src/auth/utils/www-authenticate.utils.js +0 -183
  219. package/src/auth/utils/www-authenticate.utils.js.map +0 -1
  220. package/src/common/common.schema.js +0 -35
  221. package/src/common/common.schema.js.map +0 -1
  222. package/src/common/constants.js +0 -13
  223. package/src/common/constants.js.map +0 -1
  224. package/src/common/decorators/adapter.decorator.js +0 -20
  225. package/src/common/decorators/adapter.decorator.js.map +0 -1
  226. package/src/common/decorators/app.decorator.js +0 -44
  227. package/src/common/decorators/app.decorator.js.map +0 -1
  228. package/src/common/decorators/auth-provider.decorator.js +0 -20
  229. package/src/common/decorators/auth-provider.decorator.js.map +0 -1
  230. package/src/common/decorators/decorator-utils.js +0 -195
  231. package/src/common/decorators/decorator-utils.js.map +0 -1
  232. package/src/common/decorators/flow.decorator.js +0 -19
  233. package/src/common/decorators/flow.decorator.js.map +0 -1
  234. package/src/common/decorators/front-mcp.decorator.js +0 -67
  235. package/src/common/decorators/front-mcp.decorator.js.map +0 -1
  236. package/src/common/decorators/hook.decorator.js +0 -178
  237. package/src/common/decorators/hook.decorator.js.map +0 -1
  238. package/src/common/decorators/index.js +0 -16
  239. package/src/common/decorators/index.js.map +0 -1
  240. package/src/common/decorators/logger.decorator.js +0 -20
  241. package/src/common/decorators/logger.decorator.js.map +0 -1
  242. package/src/common/decorators/plugin.decorator.js +0 -39
  243. package/src/common/decorators/plugin.decorator.js.map +0 -1
  244. package/src/common/decorators/prompt.decorator.js +0 -38
  245. package/src/common/decorators/prompt.decorator.js.map +0 -1
  246. package/src/common/decorators/provider.decorator.js +0 -20
  247. package/src/common/decorators/provider.decorator.js.map +0 -1
  248. package/src/common/decorators/resource.decorator.js +0 -94
  249. package/src/common/decorators/resource.decorator.js.map +0 -1
  250. package/src/common/decorators/tool.decorator.js +0 -45
  251. package/src/common/decorators/tool.decorator.js.map +0 -1
  252. package/src/common/dynamic/dynamic.adapter.js +0 -28
  253. package/src/common/dynamic/dynamic.adapter.js.map +0 -1
  254. package/src/common/dynamic/dynamic.plugin.js +0 -42
  255. package/src/common/dynamic/dynamic.plugin.js.map +0 -1
  256. package/src/common/dynamic/dynamic.utils.js +0 -27
  257. package/src/common/dynamic/dynamic.utils.js.map +0 -1
  258. package/src/common/dynamic/index.js +0 -6
  259. package/src/common/dynamic/index.js.map +0 -1
  260. package/src/common/entries/adapter.entry.js +0 -8
  261. package/src/common/entries/adapter.entry.js.map +0 -1
  262. package/src/common/entries/app.entry.js +0 -9
  263. package/src/common/entries/app.entry.js.map +0 -1
  264. package/src/common/entries/auth-provider.entry.js +0 -8
  265. package/src/common/entries/auth-provider.entry.js.map +0 -1
  266. package/src/common/entries/base.entry.js +0 -17
  267. package/src/common/entries/base.entry.js.map +0 -1
  268. package/src/common/entries/flow.entry.js +0 -21
  269. package/src/common/entries/flow.entry.js.map +0 -1
  270. package/src/common/entries/hook.entry.js +0 -20
  271. package/src/common/entries/hook.entry.js.map +0 -1
  272. package/src/common/entries/index.js +0 -17
  273. package/src/common/entries/index.js.map +0 -1
  274. package/src/common/entries/logger.entry.js +0 -8
  275. package/src/common/entries/logger.entry.js.map +0 -1
  276. package/src/common/entries/plugin.entry.js +0 -8
  277. package/src/common/entries/plugin.entry.js.map +0 -1
  278. package/src/common/entries/prompt.entry.js +0 -18
  279. package/src/common/entries/prompt.entry.js.map +0 -1
  280. package/src/common/entries/provider.entry.js +0 -8
  281. package/src/common/entries/provider.entry.js.map +0 -1
  282. package/src/common/entries/resource.entry.js +0 -35
  283. package/src/common/entries/resource.entry.js.map +0 -1
  284. package/src/common/entries/scope.entry.js +0 -14
  285. package/src/common/entries/scope.entry.js.map +0 -1
  286. package/src/common/entries/tool.entry.js +0 -31
  287. package/src/common/entries/tool.entry.js.map +0 -1
  288. package/src/common/flow/flow.utils.js +0 -96
  289. package/src/common/flow/flow.utils.js.map +0 -1
  290. package/src/common/index.js +0 -20
  291. package/src/common/index.js.map +0 -1
  292. package/src/common/interfaces/adapter.interface.js +0 -3
  293. package/src/common/interfaces/adapter.interface.js.map +0 -1
  294. package/src/common/interfaces/app.interface.js +0 -3
  295. package/src/common/interfaces/app.interface.js.map +0 -1
  296. package/src/common/interfaces/auth-hook.interface.js +0 -135
  297. package/src/common/interfaces/auth-hook.interface.js.map +0 -1
  298. package/src/common/interfaces/auth-provider.interface.js +0 -18
  299. package/src/common/interfaces/auth-provider.interface.js.map +0 -1
  300. package/src/common/interfaces/base.interface.js +0 -3
  301. package/src/common/interfaces/base.interface.js.map +0 -1
  302. package/src/common/interfaces/execution-context.interface.js +0 -166
  303. package/src/common/interfaces/execution-context.interface.js.map +0 -1
  304. package/src/common/interfaces/flow.interface.js +0 -95
  305. package/src/common/interfaces/flow.interface.js.map +0 -1
  306. package/src/common/interfaces/front-mcp.interface.js +0 -3
  307. package/src/common/interfaces/front-mcp.interface.js.map +0 -1
  308. package/src/common/interfaces/hook.interface.js +0 -3
  309. package/src/common/interfaces/hook.interface.js.map +0 -1
  310. package/src/common/interfaces/index.js +0 -21
  311. package/src/common/interfaces/index.js.map +0 -1
  312. package/src/common/interfaces/internal/flow.utils.js +0 -83
  313. package/src/common/interfaces/internal/flow.utils.js.map +0 -1
  314. package/src/common/interfaces/internal/index.js +0 -7
  315. package/src/common/interfaces/internal/index.js.map +0 -1
  316. package/src/common/interfaces/internal/primary-auth-provider.interface.js +0 -81
  317. package/src/common/interfaces/internal/primary-auth-provider.interface.js.map +0 -1
  318. package/src/common/interfaces/internal/registry.interface.js +0 -3
  319. package/src/common/interfaces/internal/registry.interface.js.map +0 -1
  320. package/src/common/interfaces/logger.interface.js +0 -10
  321. package/src/common/interfaces/logger.interface.js.map +0 -1
  322. package/src/common/interfaces/plugin.interface.js +0 -3
  323. package/src/common/interfaces/plugin.interface.js.map +0 -1
  324. package/src/common/interfaces/prompt.interface.js +0 -81
  325. package/src/common/interfaces/prompt.interface.js.map +0 -1
  326. package/src/common/interfaces/provider.interface.js +0 -18
  327. package/src/common/interfaces/provider.interface.js.map +0 -1
  328. package/src/common/interfaces/resource.interface.js +0 -56
  329. package/src/common/interfaces/resource.interface.js.map +0 -1
  330. package/src/common/interfaces/scope.interface.js +0 -3
  331. package/src/common/interfaces/scope.interface.js.map +0 -1
  332. package/src/common/interfaces/server.interface.js +0 -18
  333. package/src/common/interfaces/server.interface.js.map +0 -1
  334. package/src/common/interfaces/session-hook.interface.js +0 -140
  335. package/src/common/interfaces/session-hook.interface.js.map +0 -1
  336. package/src/common/interfaces/tool-hook.interface.js +0 -92
  337. package/src/common/interfaces/tool-hook.interface.js.map +0 -1
  338. package/src/common/interfaces/tool.interface.js +0 -117
  339. package/src/common/interfaces/tool.interface.js.map +0 -1
  340. package/src/common/metadata/adapter.metadata.js +0 -10
  341. package/src/common/metadata/adapter.metadata.js.map +0 -1
  342. package/src/common/metadata/app.metadata.js +0 -30
  343. package/src/common/metadata/app.metadata.js.map +0 -1
  344. package/src/common/metadata/auth-provider.metadata.js +0 -19
  345. package/src/common/metadata/auth-provider.metadata.js.map +0 -1
  346. package/src/common/metadata/flow.metadata.js +0 -15
  347. package/src/common/metadata/flow.metadata.js.map +0 -1
  348. package/src/common/metadata/front-mcp.metadata.js +0 -29
  349. package/src/common/metadata/front-mcp.metadata.js.map +0 -1
  350. package/src/common/metadata/hook.metadata.js +0 -3
  351. package/src/common/metadata/hook.metadata.js.map +0 -1
  352. package/src/common/metadata/index.js +0 -17
  353. package/src/common/metadata/index.js.map +0 -1
  354. package/src/common/metadata/logger.metadata.js +0 -10
  355. package/src/common/metadata/logger.metadata.js.map +0 -1
  356. package/src/common/metadata/plugin.metadata.js +0 -18
  357. package/src/common/metadata/plugin.metadata.js.map +0 -1
  358. package/src/common/metadata/prompt.metadata.js +0 -27
  359. package/src/common/metadata/prompt.metadata.js.map +0 -1
  360. package/src/common/metadata/provider.metadata.js +0 -36
  361. package/src/common/metadata/provider.metadata.js.map +0 -1
  362. package/src/common/metadata/resource.metadata.js +0 -31
  363. package/src/common/metadata/resource.metadata.js.map +0 -1
  364. package/src/common/metadata/tool-ui.metadata.js +0 -12
  365. package/src/common/metadata/tool-ui.metadata.js.map +0 -1
  366. package/src/common/metadata/tool.metadata.js +0 -55
  367. package/src/common/metadata/tool.metadata.js.map +0 -1
  368. package/src/common/migrate/auth-transport.migrate.js +0 -140
  369. package/src/common/migrate/auth-transport.migrate.js.map +0 -1
  370. package/src/common/migrate/index.js +0 -6
  371. package/src/common/migrate/index.js.map +0 -1
  372. package/src/common/providers/base-config.provider.js +0 -128
  373. package/src/common/providers/base-config.provider.js.map +0 -1
  374. package/src/common/records/adapter.record.js +0 -11
  375. package/src/common/records/adapter.record.js.map +0 -1
  376. package/src/common/records/app.record.js +0 -9
  377. package/src/common/records/app.record.js.map +0 -1
  378. package/src/common/records/auth-provider.record.js +0 -12
  379. package/src/common/records/auth-provider.record.js.map +0 -1
  380. package/src/common/records/flow.record.js +0 -8
  381. package/src/common/records/flow.record.js.map +0 -1
  382. package/src/common/records/hook.record.js +0 -8
  383. package/src/common/records/hook.record.js.map +0 -1
  384. package/src/common/records/index.js +0 -16
  385. package/src/common/records/index.js.map +0 -1
  386. package/src/common/records/logger.record.js +0 -8
  387. package/src/common/records/logger.record.js.map +0 -1
  388. package/src/common/records/plugin.record.js +0 -11
  389. package/src/common/records/plugin.record.js.map +0 -1
  390. package/src/common/records/prompt.record.js +0 -9
  391. package/src/common/records/prompt.record.js.map +0 -1
  392. package/src/common/records/provider.record.js +0 -14
  393. package/src/common/records/provider.record.js.map +0 -1
  394. package/src/common/records/resource.record.js +0 -20
  395. package/src/common/records/resource.record.js.map +0 -1
  396. package/src/common/records/scope.record.js +0 -9
  397. package/src/common/records/scope.record.js.map +0 -1
  398. package/src/common/records/tool.record.js +0 -9
  399. package/src/common/records/tool.record.js.map +0 -1
  400. package/src/common/schemas/annotated-class.schema.js +0 -109
  401. package/src/common/schemas/annotated-class.schema.js.map +0 -1
  402. package/src/common/schemas/http-input.schema.js +0 -13
  403. package/src/common/schemas/http-input.schema.js.map +0 -1
  404. package/src/common/schemas/http-output.schema.js +0 -321
  405. package/src/common/schemas/http-output.schema.js.map +0 -1
  406. package/src/common/schemas/index.js +0 -8
  407. package/src/common/schemas/index.js.map +0 -1
  408. package/src/common/schemas/session-header.schema.js +0 -42
  409. package/src/common/schemas/session-header.schema.js.map +0 -1
  410. package/src/common/tokens/adapter.tokens.js +0 -11
  411. package/src/common/tokens/adapter.tokens.js.map +0 -1
  412. package/src/common/tokens/app.tokens.js +0 -30
  413. package/src/common/tokens/app.tokens.js.map +0 -1
  414. package/src/common/tokens/auth-provider.tokens.js +0 -12
  415. package/src/common/tokens/auth-provider.tokens.js.map +0 -1
  416. package/src/common/tokens/base.tokens.js +0 -9
  417. package/src/common/tokens/base.tokens.js.map +0 -1
  418. package/src/common/tokens/flow-hook.tokens.js +0 -9
  419. package/src/common/tokens/flow-hook.tokens.js.map +0 -1
  420. package/src/common/tokens/flow.tokens.js +0 -16
  421. package/src/common/tokens/flow.tokens.js.map +0 -1
  422. package/src/common/tokens/front-mcp.tokens.js +0 -24
  423. package/src/common/tokens/front-mcp.tokens.js.map +0 -1
  424. package/src/common/tokens/index.js +0 -17
  425. package/src/common/tokens/index.js.map +0 -1
  426. package/src/common/tokens/logger.tokens.js +0 -11
  427. package/src/common/tokens/logger.tokens.js.map +0 -1
  428. package/src/common/tokens/plugin.tokens.js +0 -18
  429. package/src/common/tokens/plugin.tokens.js.map +0 -1
  430. package/src/common/tokens/prompt.tokens.js +0 -14
  431. package/src/common/tokens/prompt.tokens.js.map +0 -1
  432. package/src/common/tokens/provider.tokens.js +0 -12
  433. package/src/common/tokens/provider.tokens.js.map +0 -1
  434. package/src/common/tokens/resource.tokens.js +0 -28
  435. package/src/common/tokens/resource.tokens.js.map +0 -1
  436. package/src/common/tokens/server.tokens.js +0 -11
  437. package/src/common/tokens/server.tokens.js.map +0 -1
  438. package/src/common/tokens/tool.tokens.js +0 -21
  439. package/src/common/tokens/tool.tokens.js.map +0 -1
  440. package/src/common/types/auth/index.js +0 -6
  441. package/src/common/types/auth/index.js.map +0 -1
  442. package/src/common/types/auth/jwt.types.js +0 -36
  443. package/src/common/types/auth/jwt.types.js.map +0 -1
  444. package/src/common/types/auth/session.types.js +0 -53
  445. package/src/common/types/auth/session.types.js.map +0 -1
  446. package/src/common/types/common.types.js +0 -3
  447. package/src/common/types/common.types.js.map +0 -1
  448. package/src/common/types/index.js +0 -7
  449. package/src/common/types/index.js.map +0 -1
  450. package/src/common/types/options/auth.options.d.ts +0 -1266
  451. package/src/common/types/options/auth.options.js +0 -560
  452. package/src/common/types/options/auth.options.js.map +0 -1
  453. package/src/common/types/options/http.options.js +0 -10
  454. package/src/common/types/options/http.options.js.map +0 -1
  455. package/src/common/types/options/index.js +0 -11
  456. package/src/common/types/options/index.js.map +0 -1
  457. package/src/common/types/options/logging.options.js +0 -33
  458. package/src/common/types/options/logging.options.js.map +0 -1
  459. package/src/common/types/options/redis.options.d.ts +0 -22
  460. package/src/common/types/options/redis.options.js +0 -45
  461. package/src/common/types/options/redis.options.js.map +0 -1
  462. package/src/common/types/options/server-info.options.js +0 -13
  463. package/src/common/types/options/server-info.options.js.map +0 -1
  464. package/src/common/types/options/session.options.js +0 -32
  465. package/src/common/types/options/session.options.js.map +0 -1
  466. package/src/common/types/options/transport.options.js +0 -121
  467. package/src/common/types/options/transport.options.js.map +0 -1
  468. package/src/common/utils/decide-request-intent.utils.js +0 -391
  469. package/src/common/utils/decide-request-intent.utils.js.map +0 -1
  470. package/src/common/utils/index.js +0 -6
  471. package/src/common/utils/index.js.map +0 -1
  472. package/src/common/utils/path.utils.js +0 -66
  473. package/src/common/utils/path.utils.js.map +0 -1
  474. package/src/completion/flows/complete.flow.js +0 -199
  475. package/src/completion/flows/complete.flow.js.map +0 -1
  476. package/src/context/frontmcp-context-storage.js +0 -183
  477. package/src/context/frontmcp-context-storage.js.map +0 -1
  478. package/src/context/frontmcp-context.js +0 -360
  479. package/src/context/frontmcp-context.js.map +0 -1
  480. package/src/context/frontmcp-context.provider.js +0 -61
  481. package/src/context/frontmcp-context.provider.js.map +0 -1
  482. package/src/context/index.js +0 -64
  483. package/src/context/index.js.map +0 -1
  484. package/src/context/request-context-storage.js +0 -183
  485. package/src/context/request-context-storage.js.map +0 -1
  486. package/src/context/request-context.js +0 -209
  487. package/src/context/request-context.js.map +0 -1
  488. package/src/context/request-context.provider.js +0 -51
  489. package/src/context/request-context.provider.js.map +0 -1
  490. package/src/context/session-key.provider.js +0 -65
  491. package/src/context/session-key.provider.js.map +0 -1
  492. package/src/context/trace-context.js +0 -142
  493. package/src/context/trace-context.js.map +0 -1
  494. package/src/errors/authorization-required.error.js +0 -274
  495. package/src/errors/authorization-required.error.js.map +0 -1
  496. package/src/errors/error-handler.js +0 -107
  497. package/src/errors/error-handler.js.map +0 -1
  498. package/src/errors/index.js +0 -44
  499. package/src/errors/index.js.map +0 -1
  500. package/src/errors/mcp.error.js +0 -398
  501. package/src/errors/mcp.error.js.map +0 -1
  502. package/src/exceptions/mcp-exceptions/session-missing.exception.js +0 -11
  503. package/src/exceptions/mcp-exceptions/session-missing.exception.js.map +0 -1
  504. package/src/exceptions/mcp-exceptions/unsupported-client-version.exception.js +0 -15
  505. package/src/exceptions/mcp-exceptions/unsupported-client-version.exception.js.map +0 -1
  506. package/src/flows/flow.instance.js +0 -420
  507. package/src/flows/flow.instance.js.map +0 -1
  508. package/src/flows/flow.registry.js +0 -121
  509. package/src/flows/flow.registry.js.map +0 -1
  510. package/src/flows/flow.stages.js +0 -113
  511. package/src/flows/flow.stages.js.map +0 -1
  512. package/src/flows/flow.utils.js +0 -36
  513. package/src/flows/flow.utils.js.map +0 -1
  514. package/src/front-mcp/front-mcp.js +0 -63
  515. package/src/front-mcp/front-mcp.js.map +0 -1
  516. package/src/front-mcp/front-mcp.providers.js +0 -29
  517. package/src/front-mcp/front-mcp.providers.js.map +0 -1
  518. package/src/front-mcp/front-mcp.tokens.js +0 -5
  519. package/src/front-mcp/front-mcp.tokens.js.map +0 -1
  520. package/src/front-mcp/index.d.ts +0 -1
  521. package/src/front-mcp/index.js +0 -5
  522. package/src/front-mcp/index.js.map +0 -1
  523. package/src/front-mcp/serverless-handler.js +0 -61
  524. package/src/front-mcp/serverless-handler.js.map +0 -1
  525. package/src/hooks/hook.instance.js +0 -26
  526. package/src/hooks/hook.instance.js.map +0 -1
  527. package/src/hooks/hook.registry.js +0 -152
  528. package/src/hooks/hook.registry.js.map +0 -1
  529. package/src/hooks/hooks.utils.js +0 -34
  530. package/src/hooks/hooks.utils.js.map +0 -1
  531. package/src/index.js +0 -36
  532. package/src/index.js.map +0 -1
  533. package/src/logger/instances/instance.console-logger.js +0 -75
  534. package/src/logger/instances/instance.console-logger.js.map +0 -1
  535. package/src/logger/instances/instance.logger.js +0 -77
  536. package/src/logger/instances/instance.logger.js.map +0 -1
  537. package/src/logger/logger.registry.js +0 -96
  538. package/src/logger/logger.registry.js.map +0 -1
  539. package/src/logger/logger.tokens.js +0 -3
  540. package/src/logger/logger.tokens.js.map +0 -1
  541. package/src/logger/logger.types.js +0 -8
  542. package/src/logger/logger.types.js.map +0 -1
  543. package/src/logger/logger.utils.js +0 -42
  544. package/src/logger/logger.utils.js.map +0 -1
  545. package/src/logging/flows/set-level.flow.js +0 -108
  546. package/src/logging/flows/set-level.flow.js.map +0 -1
  547. package/src/mcp-apps/csp.js +0 -267
  548. package/src/mcp-apps/csp.js.map +0 -1
  549. package/src/mcp-apps/index.js +0 -91
  550. package/src/mcp-apps/index.js.map +0 -1
  551. package/src/mcp-apps/schemas.js +0 -345
  552. package/src/mcp-apps/schemas.js.map +0 -1
  553. package/src/mcp-apps/template.js +0 -419
  554. package/src/mcp-apps/template.js.map +0 -1
  555. package/src/mcp-apps/types.js +0 -59
  556. package/src/mcp-apps/types.js.map +0 -1
  557. package/src/notification/index.js +0 -13
  558. package/src/notification/index.js.map +0 -1
  559. package/src/notification/notification.service.js +0 -731
  560. package/src/notification/notification.service.js.map +0 -1
  561. package/src/plugin/plugin.registry.js +0 -152
  562. package/src/plugin/plugin.registry.js.map +0 -1
  563. package/src/plugin/plugin.utils.js +0 -88
  564. package/src/plugin/plugin.utils.js.map +0 -1
  565. package/src/prompt/flows/get-prompt.flow.js +0 -214
  566. package/src/prompt/flows/get-prompt.flow.js.map +0 -1
  567. package/src/prompt/flows/prompts-list.flow.js +0 -176
  568. package/src/prompt/flows/prompts-list.flow.js.map +0 -1
  569. package/src/prompt/index.js +0 -17
  570. package/src/prompt/index.js.map +0 -1
  571. package/src/prompt/prompt.events.js +0 -25
  572. package/src/prompt/prompt.events.js.map +0 -1
  573. package/src/prompt/prompt.instance.js +0 -120
  574. package/src/prompt/prompt.instance.js.map +0 -1
  575. package/src/prompt/prompt.registry.js +0 -380
  576. package/src/prompt/prompt.registry.js.map +0 -1
  577. package/src/prompt/prompt.types.js +0 -11
  578. package/src/prompt/prompt.types.js.map +0 -1
  579. package/src/prompt/prompt.utils.js +0 -136
  580. package/src/prompt/prompt.utils.js.map +0 -1
  581. package/src/provider/provider.registry.js +0 -868
  582. package/src/provider/provider.registry.js.map +0 -1
  583. package/src/provider/provider.types.js +0 -3
  584. package/src/provider/provider.types.js.map +0 -1
  585. package/src/provider/provider.utils.js +0 -103
  586. package/src/provider/provider.utils.js.map +0 -1
  587. package/src/regsitry/index.js +0 -5
  588. package/src/regsitry/index.js.map +0 -1
  589. package/src/regsitry/registry.base.js +0 -32
  590. package/src/regsitry/registry.base.js.map +0 -1
  591. package/src/resource/flows/read-resource.flow.js +0 -270
  592. package/src/resource/flows/read-resource.flow.js.map +0 -1
  593. package/src/resource/flows/resource-templates-list.flow.js +0 -191
  594. package/src/resource/flows/resource-templates-list.flow.js.map +0 -1
  595. package/src/resource/flows/resources-list.flow.js +0 -196
  596. package/src/resource/flows/resources-list.flow.js.map +0 -1
  597. package/src/resource/flows/subscribe-resource.flow.js +0 -123
  598. package/src/resource/flows/subscribe-resource.flow.js.map +0 -1
  599. package/src/resource/flows/unsubscribe-resource.flow.js +0 -107
  600. package/src/resource/flows/unsubscribe-resource.flow.js.map +0 -1
  601. package/src/resource/index.js +0 -20
  602. package/src/resource/index.js.map +0 -1
  603. package/src/resource/resource.events.js +0 -17
  604. package/src/resource/resource.events.js.map +0 -1
  605. package/src/resource/resource.instance.js +0 -163
  606. package/src/resource/resource.instance.js.map +0 -1
  607. package/src/resource/resource.registry.js +0 -468
  608. package/src/resource/resource.registry.js.map +0 -1
  609. package/src/resource/resource.types.js +0 -11
  610. package/src/resource/resource.types.js.map +0 -1
  611. package/src/resource/resource.utils.js +0 -151
  612. package/src/resource/resource.utils.js.map +0 -1
  613. package/src/scope/flows/http.request.flow.js +0 -474
  614. package/src/scope/flows/http.request.flow.js.map +0 -1
  615. package/src/scope/index.js +0 -6
  616. package/src/scope/index.js.map +0 -1
  617. package/src/scope/scope.instance.js +0 -263
  618. package/src/scope/scope.instance.js.map +0 -1
  619. package/src/scope/scope.registry.js +0 -94
  620. package/src/scope/scope.registry.js.map +0 -1
  621. package/src/scope/scope.utils.js +0 -61
  622. package/src/scope/scope.utils.js.map +0 -1
  623. package/src/server/adapters/base.host.adapter.js +0 -8
  624. package/src/server/adapters/base.host.adapter.js.map +0 -1
  625. package/src/server/adapters/express.host.adapter.js +0 -70
  626. package/src/server/adapters/express.host.adapter.js.map +0 -1
  627. package/src/server/server.instance.js +0 -54
  628. package/src/server/server.instance.js.map +0 -1
  629. package/src/server/server.types.js +0 -3
  630. package/src/server/server.types.js.map +0 -1
  631. package/src/server/server.validation.js +0 -192
  632. package/src/server/server.validation.js.map +0 -1
  633. package/src/store/adapters/store.base.adapter.js +0 -16
  634. package/src/store/adapters/store.base.adapter.js.map +0 -1
  635. package/src/store/adapters/store.memory.adapter.js +0 -89
  636. package/src/store/adapters/store.memory.adapter.js.map +0 -1
  637. package/src/store/adapters/store.redis.adapter.js +0 -104
  638. package/src/store/adapters/store.redis.adapter.js.map +0 -1
  639. package/src/store/index.js +0 -12
  640. package/src/store/index.js.map +0 -1
  641. package/src/store/store.helpers.js +0 -67
  642. package/src/store/store.helpers.js.map +0 -1
  643. package/src/store/store.registry.js +0 -37
  644. package/src/store/store.registry.js.map +0 -1
  645. package/src/store/store.tokens.js +0 -7
  646. package/src/store/store.tokens.js.map +0 -1
  647. package/src/store/store.types.js +0 -11
  648. package/src/store/store.types.js.map +0 -1
  649. package/src/store/store.utils.js +0 -18
  650. package/src/store/store.utils.js.map +0 -1
  651. package/src/tool/flows/call-tool.flow.js +0 -616
  652. package/src/tool/flows/call-tool.flow.js.map +0 -1
  653. package/src/tool/flows/tools-list.flow.js +0 -328
  654. package/src/tool/flows/tools-list.flow.js.map +0 -1
  655. package/src/tool/tool.events.js +0 -16
  656. package/src/tool/tool.events.js.map +0 -1
  657. package/src/tool/tool.instance.js +0 -117
  658. package/src/tool/tool.instance.js.map +0 -1
  659. package/src/tool/tool.registry.js +0 -353
  660. package/src/tool/tool.registry.js.map +0 -1
  661. package/src/tool/tool.types.js +0 -10
  662. package/src/tool/tool.types.js.map +0 -1
  663. package/src/tool/tool.utils.js +0 -366
  664. package/src/tool/tool.utils.js.map +0 -1
  665. package/src/tool/ui/index.js +0 -63
  666. package/src/tool/ui/index.js.map +0 -1
  667. package/src/tool/ui/platform-adapters.js +0 -18
  668. package/src/tool/ui/platform-adapters.js.map +0 -1
  669. package/src/tool/ui/template-helpers.js +0 -112
  670. package/src/tool/ui/template-helpers.js.map +0 -1
  671. package/src/tool/ui/ui-resource-template.js +0 -64
  672. package/src/tool/ui/ui-resource-template.js.map +0 -1
  673. package/src/tool/ui/ui-resource.handler.js +0 -129
  674. package/src/tool/ui/ui-resource.handler.js.map +0 -1
  675. package/src/transport/adapters/transport.local.adapter.js +0 -148
  676. package/src/transport/adapters/transport.local.adapter.js.map +0 -1
  677. package/src/transport/adapters/transport.sse.adapter.js +0 -65
  678. package/src/transport/adapters/transport.sse.adapter.js.map +0 -1
  679. package/src/transport/adapters/transport.streamable-http.adapter.js +0 -112
  680. package/src/transport/adapters/transport.streamable-http.adapter.js.map +0 -1
  681. package/src/transport/flows/handle.sse.flow.js +0 -197
  682. package/src/transport/flows/handle.sse.flow.js.map +0 -1
  683. package/src/transport/flows/handle.stateless-http.flow.js +0 -102
  684. package/src/transport/flows/handle.stateless-http.flow.js.map +0 -1
  685. package/src/transport/flows/handle.streamable-http.flow.js +0 -315
  686. package/src/transport/flows/handle.streamable-http.flow.js.map +0 -1
  687. package/src/transport/legacy/legacy.sse.tranporter.js +0 -185
  688. package/src/transport/legacy/legacy.sse.tranporter.js.map +0 -1
  689. package/src/transport/mcp-handlers/Initialized-notification.hanlder.js +0 -14
  690. package/src/transport/mcp-handlers/Initialized-notification.hanlder.js.map +0 -1
  691. package/src/transport/mcp-handlers/call-tool-request.handler.js +0 -46
  692. package/src/transport/mcp-handlers/call-tool-request.handler.js.map +0 -1
  693. package/src/transport/mcp-handlers/complete-request.handler.js +0 -11
  694. package/src/transport/mcp-handlers/complete-request.handler.js.map +0 -1
  695. package/src/transport/mcp-handlers/get-prompt-request.handler.js +0 -11
  696. package/src/transport/mcp-handlers/get-prompt-request.handler.js.map +0 -1
  697. package/src/transport/mcp-handlers/index.js +0 -57
  698. package/src/transport/mcp-handlers/index.js.map +0 -1
  699. package/src/transport/mcp-handlers/initialize-request.handler.js +0 -109
  700. package/src/transport/mcp-handlers/initialize-request.handler.js.map +0 -1
  701. package/src/transport/mcp-handlers/list-prompts-request.handler.js +0 -11
  702. package/src/transport/mcp-handlers/list-prompts-request.handler.js.map +0 -1
  703. package/src/transport/mcp-handlers/list-resource-templates-request.handler.js +0 -12
  704. package/src/transport/mcp-handlers/list-resource-templates-request.handler.js.map +0 -1
  705. package/src/transport/mcp-handlers/list-resources-request.handler.js +0 -12
  706. package/src/transport/mcp-handlers/list-resources-request.handler.js.map +0 -1
  707. package/src/transport/mcp-handlers/list-tools-request.handler.js +0 -11
  708. package/src/transport/mcp-handlers/list-tools-request.handler.js.map +0 -1
  709. package/src/transport/mcp-handlers/logging-set-level-request.handler.js +0 -34
  710. package/src/transport/mcp-handlers/logging-set-level-request.handler.js.map +0 -1
  711. package/src/transport/mcp-handlers/mcp-handlers.types.js +0 -3
  712. package/src/transport/mcp-handlers/mcp-handlers.types.js.map +0 -1
  713. package/src/transport/mcp-handlers/read-resource-request.handler.js +0 -12
  714. package/src/transport/mcp-handlers/read-resource-request.handler.js.map +0 -1
  715. package/src/transport/mcp-handlers/roots-list-changed-notification.handler.js +0 -26
  716. package/src/transport/mcp-handlers/roots-list-changed-notification.handler.js.map +0 -1
  717. package/src/transport/mcp-handlers/subscribe-request.handler.js +0 -34
  718. package/src/transport/mcp-handlers/subscribe-request.handler.js.map +0 -1
  719. package/src/transport/mcp-handlers/unsubscribe-request.handler.js +0 -34
  720. package/src/transport/mcp-handlers/unsubscribe-request.handler.js.map +0 -1
  721. package/src/transport/transport.error.js +0 -25
  722. package/src/transport/transport.error.js.map +0 -1
  723. package/src/transport/transport.event-store.js +0 -36
  724. package/src/transport/transport.event-store.js.map +0 -1
  725. package/src/transport/transport.local.js +0 -71
  726. package/src/transport/transport.local.js.map +0 -1
  727. package/src/transport/transport.registry.js +0 -523
  728. package/src/transport/transport.registry.js.map +0 -1
  729. package/src/transport/transport.remote.js +0 -31
  730. package/src/transport/transport.remote.js.map +0 -1
  731. package/src/transport/transport.types.js +0 -3
  732. package/src/transport/transport.types.js.map +0 -1
  733. package/src/types/drinen-hooks.types.js +0 -3
  734. package/src/types/drinen-hooks.types.js.map +0 -1
  735. package/src/types/invoke.type.js +0 -34
  736. package/src/types/invoke.type.js.map +0 -1
  737. package/src/types/token.types.js +0 -3
  738. package/src/types/token.types.js.map +0 -1
  739. package/src/utils/content.utils.js +0 -194
  740. package/src/utils/content.utils.js.map +0 -1
  741. package/src/utils/index.js +0 -55
  742. package/src/utils/index.js.map +0 -1
  743. package/src/utils/lineage.utils.js +0 -82
  744. package/src/utils/lineage.utils.js.map +0 -1
  745. package/src/utils/metadata.utils.js +0 -26
  746. package/src/utils/metadata.utils.js.map +0 -1
  747. package/src/utils/naming.utils.js +0 -136
  748. package/src/utils/naming.utils.js.map +0 -1
  749. package/src/utils/server.utils.js +0 -59
  750. package/src/utils/server.utils.js.map +0 -1
  751. package/src/utils/string.utils.js +0 -10
  752. package/src/utils/string.utils.js.map +0 -1
  753. package/src/utils/token.utils.js +0 -65
  754. package/src/utils/token.utils.js.map +0 -1
  755. package/src/utils/types.utils.js +0 -3
  756. package/src/utils/types.utils.js.map +0 -1
  757. package/src/utils/uri-template.utils.js +0 -113
  758. package/src/utils/uri-template.utils.js.map +0 -1
  759. package/src/utils/uri-validation.utils.js +0 -76
  760. package/src/utils/uri-validation.utils.js.map +0 -1
  761. package/{src/adapter → adapter}/adapter.instance.d.ts +0 -0
  762. package/{src/adapter → adapter}/adapter.regsitry.d.ts +0 -0
  763. package/{src/adapter → adapter}/adapter.utils.d.ts +0 -0
  764. package/{src/app → app}/app.registry.d.ts +0 -0
  765. package/{src/app → app}/app.utils.d.ts +0 -0
  766. package/{src/app → app}/instances/app.local.instance.d.ts +0 -0
  767. package/{src/app → app}/instances/app.remote.instance.d.ts +0 -0
  768. package/{src/app → app}/instances/index.d.ts +0 -0
  769. package/{src/auth → auth}/auth.registry.d.ts +0 -0
  770. package/{src/auth → auth}/auth.utils.d.ts +0 -0
  771. package/{src/auth → auth}/authorization/authorization.class.d.ts +0 -0
  772. package/{src/auth → auth}/authorization/authorization.types.d.ts +0 -0
  773. package/{src/auth → auth}/authorization/index.d.ts +0 -0
  774. package/{src/auth → auth}/authorization/orchestrated.authorization.d.ts +0 -0
  775. package/{src/auth → auth}/authorization/public.authorization.d.ts +0 -0
  776. package/{src/auth → auth}/authorization/transparent.authorization.d.ts +0 -0
  777. package/{src/auth → auth}/consent/consent.types.d.ts +0 -0
  778. package/{src/auth → auth}/consent/index.d.ts +0 -0
  779. package/{src/auth → auth}/detection/auth-provider-detection.d.ts +0 -0
  780. package/{src/auth → auth}/detection/index.d.ts +0 -0
  781. package/{src/auth → auth}/flows/auth.verify.flow.d.ts +0 -0
  782. package/{src/auth → auth}/flows/oauth.authorize.flow.d.ts +0 -0
  783. package/{src/auth → auth}/flows/oauth.callback.flow.d.ts +0 -0
  784. package/{src/auth → auth}/flows/oauth.register.flow.d.ts +0 -0
  785. package/{src/auth → auth}/flows/oauth.token.flow.d.ts +0 -0
  786. package/{src/auth → auth}/flows/session.verify.flow.d.ts +0 -0
  787. package/{src/auth → auth}/flows/well-known.jwks.flow.d.ts +0 -0
  788. package/{src/auth → auth}/flows/well-known.oauth-authorization-server.flow.d.ts +0 -0
  789. package/{src/auth → auth}/flows/well-known.prm.flow.d.ts +0 -0
  790. package/{src/auth → auth}/jwks/dev-key-persistence.d.ts +0 -0
  791. package/{src/auth → auth}/jwks/index.d.ts +0 -0
  792. package/{src/auth → auth}/jwks/jwks.service.d.ts +0 -0
  793. package/{src/auth → auth}/jwks/jwks.types.d.ts +0 -0
  794. package/{src/auth → auth}/jwks/jwks.utils.d.ts +0 -0
  795. package/{src/auth → auth}/machine-id.d.ts +0 -0
  796. package/{src/auth → auth}/oauth/flows/oauth.authorize.flow.d.ts +0 -0
  797. package/{src/auth → auth}/oauth/flows/oauth.device-authorization.flow.d.ts +0 -0
  798. package/{src/auth → auth}/oauth/flows/oauth.introspect.flow.d.ts +0 -0
  799. package/{src/auth → auth}/oauth/flows/oauth.par.flow.d.ts +0 -0
  800. package/{src/auth → auth}/oauth/flows/oauth.revoke.flow.d.ts +0 -0
  801. package/{src/auth → auth}/oauth/flows/oauth.token.flow.d.ts +0 -0
  802. package/{src/auth → auth}/oauth/flows/oauth.userinfo.flow.d.ts +0 -0
  803. package/{src/auth → auth}/oauth/flows/oidc.logout.flow.d.ts +0 -0
  804. package/{src/auth → auth}/session/authorization-vault.d.ts +0 -0
  805. package/{src/auth → auth}/session/authorization.store.d.ts +0 -0
  806. package/{src/auth → auth}/session/encrypted-authorization-vault.d.ts +0 -0
  807. package/{src/auth → auth}/session/record/session.base.d.ts +0 -0
  808. package/{src/auth → auth}/session/record/session.stateful.d.ts +0 -0
  809. package/{src/auth → auth}/session/record/session.stateless.d.ts +0 -0
  810. package/{src/auth → auth}/session/record/session.transparent.d.ts +0 -0
  811. package/{src/auth → auth}/session/redis-session.store.d.ts +0 -0
  812. package/{src/auth → auth}/session/session.crypto.d.ts +0 -0
  813. package/{src/auth → auth}/session/session.schema.d.ts +0 -0
  814. package/{src/auth → auth}/session/session.service.d.ts +0 -0
  815. package/{src/auth → auth}/session/session.transport.d.ts +0 -0
  816. package/{src/auth → auth}/session/session.types.d.ts +0 -0
  817. package/{src/auth → auth}/session/token.refresh.d.ts +0 -0
  818. package/{src/auth → auth}/session/token.store.d.ts +0 -0
  819. package/{src/auth → auth}/session/token.vault.d.ts +0 -0
  820. package/{src/auth → auth}/session/transport-session.manager.d.ts +0 -0
  821. package/{src/auth → auth}/session/transport-session.types.d.ts +0 -0
  822. package/{src/auth → auth}/session/utils/auth-token.utils.d.ts +0 -0
  823. package/{src/auth → auth}/session/utils/session-id.utils.d.ts +0 -0
  824. package/{src/auth → auth}/session/utils/tiny-ttl-cache.d.ts +0 -0
  825. package/{src/auth → auth}/session/vault-encryption.d.ts +0 -0
  826. package/{src/auth → auth}/ui/base-layout.d.ts +0 -0
  827. package/{src/auth → auth}/ui/index.d.ts +0 -0
  828. package/{src/auth → auth}/ui/templates.d.ts +0 -0
  829. package/{src/auth → auth}/utils/audience.validator.d.ts +0 -0
  830. package/{src/auth → auth}/utils/index.d.ts +0 -0
  831. package/{src/auth → auth}/utils/www-authenticate.utils.d.ts +0 -0
  832. package/{src/common → common}/common.schema.d.ts +0 -0
  833. package/{src/common → common}/constants.d.ts +0 -0
  834. package/{src/common → common}/decorators/adapter.decorator.d.ts +0 -0
  835. package/{src/common → common}/decorators/app.decorator.d.ts +0 -0
  836. package/{src/common → common}/decorators/auth-provider.decorator.d.ts +0 -0
  837. package/{src/common → common}/decorators/decorator-utils.d.ts +0 -0
  838. package/{src/common → common}/decorators/flow.decorator.d.ts +0 -0
  839. package/{src/common → common}/decorators/front-mcp.decorator.d.ts +0 -0
  840. package/{src/common → common}/decorators/hook.decorator.d.ts +0 -0
  841. package/{src/common → common}/decorators/index.d.ts +0 -0
  842. package/{src/common → common}/decorators/logger.decorator.d.ts +0 -0
  843. package/{src/common → common}/decorators/plugin.decorator.d.ts +0 -0
  844. package/{src/common → common}/decorators/prompt.decorator.d.ts +0 -0
  845. package/{src/common → common}/decorators/provider.decorator.d.ts +0 -0
  846. package/{src/common → common}/decorators/resource.decorator.d.ts +0 -0
  847. package/{src/common → common}/decorators/tool.decorator.d.ts +0 -0
  848. package/{src/common → common}/dynamic/dynamic.adapter.d.ts +0 -0
  849. package/{src/common → common}/dynamic/dynamic.plugin.d.ts +0 -0
  850. package/{src/common → common}/dynamic/dynamic.utils.d.ts +0 -0
  851. package/{src/common → common}/dynamic/index.d.ts +0 -0
  852. package/{src/common → common}/entries/adapter.entry.d.ts +0 -0
  853. package/{src/common → common}/entries/app.entry.d.ts +0 -0
  854. package/{src/common → common}/entries/auth-provider.entry.d.ts +0 -0
  855. package/{src/common → common}/entries/base.entry.d.ts +0 -0
  856. package/{src/common → common}/entries/flow.entry.d.ts +0 -0
  857. package/{src/common → common}/entries/hook.entry.d.ts +0 -0
  858. package/{src/common → common}/entries/index.d.ts +0 -0
  859. package/{src/common → common}/entries/logger.entry.d.ts +0 -0
  860. package/{src/common → common}/entries/plugin.entry.d.ts +0 -0
  861. package/{src/common → common}/entries/prompt.entry.d.ts +0 -0
  862. package/{src/common → common}/entries/provider.entry.d.ts +0 -0
  863. package/{src/common → common}/entries/resource.entry.d.ts +0 -0
  864. package/{src/common → common}/entries/scope.entry.d.ts +0 -0
  865. package/{src/common → common}/entries/tool.entry.d.ts +0 -0
  866. package/{src/common → common}/flow/flow.utils.d.ts +0 -0
  867. package/{src/common → common}/index.d.ts +0 -0
  868. package/{src/common → common}/interfaces/adapter.interface.d.ts +0 -0
  869. package/{src/common → common}/interfaces/app.interface.d.ts +0 -0
  870. package/{src/common → common}/interfaces/auth-hook.interface.d.ts +0 -0
  871. package/{src/common → common}/interfaces/auth-provider.interface.d.ts +0 -0
  872. package/{src/common → common}/interfaces/base.interface.d.ts +0 -0
  873. package/{src/common → common}/interfaces/execution-context.interface.d.ts +0 -0
  874. package/{src/common → common}/interfaces/flow.interface.d.ts +0 -0
  875. package/{src/common → common}/interfaces/front-mcp.interface.d.ts +0 -0
  876. package/{src/common → common}/interfaces/hook.interface.d.ts +0 -0
  877. package/{src/common → common}/interfaces/index.d.ts +0 -0
  878. package/{src/common → common}/interfaces/internal/flow.utils.d.ts +0 -0
  879. package/{src/common → common}/interfaces/internal/index.d.ts +0 -0
  880. package/{src/common → common}/interfaces/internal/registry.interface.d.ts +0 -0
  881. package/{src/common → common}/interfaces/logger.interface.d.ts +0 -0
  882. package/{src/common → common}/interfaces/plugin.interface.d.ts +0 -0
  883. package/{src/common → common}/interfaces/prompt.interface.d.ts +0 -0
  884. package/{src/common → common}/interfaces/provider.interface.d.ts +0 -0
  885. package/{src/common → common}/interfaces/resource.interface.d.ts +0 -0
  886. package/{src/common → common}/interfaces/scope.interface.d.ts +0 -0
  887. package/{src/common → common}/interfaces/server.interface.d.ts +0 -0
  888. package/{src/common → common}/interfaces/session-hook.interface.d.ts +0 -0
  889. package/{src/common → common}/interfaces/tool-hook.interface.d.ts +0 -0
  890. package/{src/common → common}/interfaces/tool.interface.d.ts +0 -0
  891. package/{src/common → common}/metadata/adapter.metadata.d.ts +0 -0
  892. package/{src/common → common}/metadata/app.metadata.d.ts +42 -42
  893. /package/{src/common → common}/metadata/auth-provider.metadata.d.ts +0 -0
  894. /package/{src/common → common}/metadata/flow.metadata.d.ts +0 -0
  895. /package/{src/common → common}/metadata/hook.metadata.d.ts +0 -0
  896. /package/{src/common → common}/metadata/index.d.ts +0 -0
  897. /package/{src/common → common}/metadata/logger.metadata.d.ts +0 -0
  898. /package/{src/common → common}/metadata/plugin.metadata.d.ts +0 -0
  899. /package/{src/common → common}/metadata/provider.metadata.d.ts +0 -0
  900. /package/{src/common → common}/migrate/auth-transport.migrate.d.ts +0 -0
  901. /package/{src/common → common}/migrate/index.d.ts +0 -0
  902. /package/{src/common → common}/providers/base-config.provider.d.ts +0 -0
  903. /package/{src/common → common}/records/adapter.record.d.ts +0 -0
  904. /package/{src/common → common}/records/app.record.d.ts +0 -0
  905. /package/{src/common → common}/records/auth-provider.record.d.ts +0 -0
  906. /package/{src/common → common}/records/flow.record.d.ts +0 -0
  907. /package/{src/common → common}/records/hook.record.d.ts +0 -0
  908. /package/{src/common → common}/records/index.d.ts +0 -0
  909. /package/{src/common → common}/records/logger.record.d.ts +0 -0
  910. /package/{src/common → common}/records/plugin.record.d.ts +0 -0
  911. /package/{src/common → common}/records/prompt.record.d.ts +0 -0
  912. /package/{src/common → common}/records/provider.record.d.ts +0 -0
  913. /package/{src/common → common}/records/resource.record.d.ts +0 -0
  914. /package/{src/common → common}/records/scope.record.d.ts +0 -0
  915. /package/{src/common → common}/records/tool.record.d.ts +0 -0
  916. /package/{src/common → common}/schemas/annotated-class.schema.d.ts +0 -0
  917. /package/{src/common → common}/schemas/http-input.schema.d.ts +0 -0
  918. /package/{src/common → common}/schemas/index.d.ts +0 -0
  919. /package/{src/common → common}/schemas/session-header.schema.d.ts +0 -0
  920. /package/{src/common → common}/tokens/adapter.tokens.d.ts +0 -0
  921. /package/{src/common → common}/tokens/app.tokens.d.ts +0 -0
  922. /package/{src/common → common}/tokens/auth-provider.tokens.d.ts +0 -0
  923. /package/{src/common → common}/tokens/base.tokens.d.ts +0 -0
  924. /package/{src/common → common}/tokens/flow-hook.tokens.d.ts +0 -0
  925. /package/{src/common → common}/tokens/flow.tokens.d.ts +0 -0
  926. /package/{src/common → common}/tokens/front-mcp.tokens.d.ts +0 -0
  927. /package/{src/common → common}/tokens/index.d.ts +0 -0
  928. /package/{src/common → common}/tokens/logger.tokens.d.ts +0 -0
  929. /package/{src/common → common}/tokens/plugin.tokens.d.ts +0 -0
  930. /package/{src/common → common}/tokens/prompt.tokens.d.ts +0 -0
  931. /package/{src/common → common}/tokens/provider.tokens.d.ts +0 -0
  932. /package/{src/common → common}/tokens/resource.tokens.d.ts +0 -0
  933. /package/{src/common → common}/tokens/server.tokens.d.ts +0 -0
  934. /package/{src/common → common}/tokens/tool.tokens.d.ts +0 -0
  935. /package/{src/common → common}/types/auth/index.d.ts +0 -0
  936. /package/{src/common → common}/types/auth/jwt.types.d.ts +0 -0
  937. /package/{src/common → common}/types/auth/session.types.d.ts +0 -0
  938. /package/{src/common → common}/types/common.types.d.ts +0 -0
  939. /package/{src/common → common}/types/index.d.ts +0 -0
  940. /package/{src/logger/logger.tokens.d.ts → common/types/options/auth/auth.typecheck.d.ts} +0 -0
  941. /package/{src/common → common}/types/options/http.options.d.ts +0 -0
  942. /package/{src/common → common}/types/options/logging.options.d.ts +0 -0
  943. /package/{src/common → common}/types/options/session.options.d.ts +0 -0
  944. /package/{src/common → common}/utils/path.utils.d.ts +0 -0
  945. /package/{src/context → context}/frontmcp-context-storage.d.ts +0 -0
  946. /package/{src/context → context}/frontmcp-context.d.ts +0 -0
  947. /package/{src/context → context}/frontmcp-context.provider.d.ts +0 -0
  948. /package/{src/context → context}/index.d.ts +0 -0
  949. /package/{src/context → context}/request-context-storage.d.ts +0 -0
  950. /package/{src/context → context}/request-context.d.ts +0 -0
  951. /package/{src/context → context}/request-context.provider.d.ts +0 -0
  952. /package/{src/context → context}/session-key.provider.d.ts +0 -0
  953. /package/{src/context → context}/trace-context.d.ts +0 -0
  954. /package/{src/errors → errors}/authorization-required.error.d.ts +0 -0
  955. /package/{src/errors → errors}/error-handler.d.ts +0 -0
  956. /package/{src/exceptions → exceptions}/mcp-exceptions/session-missing.exception.d.ts +0 -0
  957. /package/{src/exceptions → exceptions}/mcp-exceptions/unsupported-client-version.exception.d.ts +0 -0
  958. /package/{src/flows → flows}/flow.instance.d.ts +0 -0
  959. /package/{src/flows → flows}/flow.registry.d.ts +0 -0
  960. /package/{src/flows → flows}/flow.stages.d.ts +0 -0
  961. /package/{src/flows → flows}/flow.utils.d.ts +0 -0
  962. /package/{src/front-mcp → front-mcp}/front-mcp.d.ts +0 -0
  963. /package/{src/front-mcp → front-mcp}/front-mcp.tokens.d.ts +0 -0
  964. /package/{src/front-mcp → front-mcp}/serverless-handler.d.ts +0 -0
  965. /package/{src/hooks → hooks}/hook.instance.d.ts +0 -0
  966. /package/{src/hooks → hooks}/hook.registry.d.ts +0 -0
  967. /package/{src/hooks → hooks}/hooks.utils.d.ts +0 -0
  968. /package/{src/logger → logger}/instances/instance.console-logger.d.ts +0 -0
  969. /package/{src/logger → logger}/instances/instance.logger.d.ts +0 -0
  970. /package/{src/logger → logger}/logger.registry.d.ts +0 -0
  971. /package/{src/logger → logger}/logger.types.d.ts +0 -0
  972. /package/{src/logger → logger}/logger.utils.d.ts +0 -0
  973. /package/{src/mcp-apps → mcp-apps}/csp.d.ts +0 -0
  974. /package/{src/mcp-apps → mcp-apps}/index.d.ts +0 -0
  975. /package/{src/mcp-apps → mcp-apps}/schemas.d.ts +0 -0
  976. /package/{src/mcp-apps → mcp-apps}/template.d.ts +0 -0
  977. /package/{src/mcp-apps → mcp-apps}/types.d.ts +0 -0
  978. /package/{src/notification → notification}/index.d.ts +0 -0
  979. /package/{src/notification → notification}/notification.service.d.ts +0 -0
  980. /package/{src/plugin → plugin}/plugin.registry.d.ts +0 -0
  981. /package/{src/plugin → plugin}/plugin.utils.d.ts +0 -0
  982. /package/{src/prompt → prompt}/index.d.ts +0 -0
  983. /package/{src/prompt → prompt}/prompt.events.d.ts +0 -0
  984. /package/{src/prompt → prompt}/prompt.instance.d.ts +0 -0
  985. /package/{src/prompt → prompt}/prompt.registry.d.ts +0 -0
  986. /package/{src/prompt → prompt}/prompt.types.d.ts +0 -0
  987. /package/{src/prompt → prompt}/prompt.utils.d.ts +0 -0
  988. /package/{src/provider → provider}/provider.registry.d.ts +0 -0
  989. /package/{src/provider → provider}/provider.types.d.ts +0 -0
  990. /package/{src/provider → provider}/provider.utils.d.ts +0 -0
  991. /package/{src/regsitry → regsitry}/index.d.ts +0 -0
  992. /package/{src/regsitry → regsitry}/registry.base.d.ts +0 -0
  993. /package/{src/resource → resource}/index.d.ts +0 -0
  994. /package/{src/resource → resource}/resource.events.d.ts +0 -0
  995. /package/{src/resource → resource}/resource.instance.d.ts +0 -0
  996. /package/{src/resource → resource}/resource.registry.d.ts +0 -0
  997. /package/{src/resource → resource}/resource.types.d.ts +0 -0
  998. /package/{src/resource → resource}/resource.utils.d.ts +0 -0
  999. /package/{src/scope → scope}/flows/http.request.flow.d.ts +0 -0
  1000. /package/{src/scope → scope}/index.d.ts +0 -0
  1001. /package/{src/scope → scope}/scope.instance.d.ts +0 -0
  1002. /package/{src/scope → scope}/scope.registry.d.ts +0 -0
  1003. /package/{src/scope → scope}/scope.utils.d.ts +0 -0
  1004. /package/{src/server → server}/adapters/base.host.adapter.d.ts +0 -0
  1005. /package/{src/server → server}/adapters/express.host.adapter.d.ts +0 -0
  1006. /package/{src/server → server}/server.instance.d.ts +0 -0
  1007. /package/{src/server → server}/server.types.d.ts +0 -0
  1008. /package/{src/server → server}/server.validation.d.ts +0 -0
  1009. /package/{src/store → store}/adapters/store.base.adapter.d.ts +0 -0
  1010. /package/{src/store → store}/adapters/store.memory.adapter.d.ts +0 -0
  1011. /package/{src/store → store}/adapters/store.redis.adapter.d.ts +0 -0
  1012. /package/{src/store → store}/store.helpers.d.ts +0 -0
  1013. /package/{src/store → store}/store.registry.d.ts +0 -0
  1014. /package/{src/store → store}/store.tokens.d.ts +0 -0
  1015. /package/{src/store → store}/store.types.d.ts +0 -0
  1016. /package/{src/store → store}/store.utils.d.ts +0 -0
  1017. /package/{src/tool → tool}/tool.events.d.ts +0 -0
  1018. /package/{src/tool → tool}/tool.instance.d.ts +0 -0
  1019. /package/{src/tool → tool}/tool.registry.d.ts +0 -0
  1020. /package/{src/tool → tool}/tool.types.d.ts +0 -0
  1021. /package/{src/tool → tool}/tool.utils.d.ts +0 -0
  1022. /package/{src/tool → tool}/ui/ui-resource-template.d.ts +0 -0
  1023. /package/{src/transport → transport}/adapters/transport.local.adapter.d.ts +0 -0
  1024. /package/{src/transport → transport}/adapters/transport.sse.adapter.d.ts +0 -0
  1025. /package/{src/transport → transport}/adapters/transport.streamable-http.adapter.d.ts +0 -0
  1026. /package/{src/transport → transport}/flows/handle.sse.flow.d.ts +0 -0
  1027. /package/{src/transport → transport}/flows/handle.stateless-http.flow.d.ts +0 -0
  1028. /package/{src/transport → transport}/flows/handle.streamable-http.flow.d.ts +0 -0
  1029. /package/{src/transport → transport}/legacy/legacy.sse.tranporter.d.ts +0 -0
  1030. /package/{src/transport → transport}/mcp-handlers/Initialized-notification.hanlder.d.ts +0 -0
  1031. /package/{src/transport → transport}/mcp-handlers/call-tool-request.handler.d.ts +0 -0
  1032. /package/{src/transport → transport}/mcp-handlers/initialize-request.handler.d.ts +0 -0
  1033. /package/{src/transport → transport}/mcp-handlers/mcp-handlers.types.d.ts +0 -0
  1034. /package/{src/transport → transport}/mcp-handlers/roots-list-changed-notification.handler.d.ts +0 -0
  1035. /package/{src/transport → transport}/transport.error.d.ts +0 -0
  1036. /package/{src/transport → transport}/transport.event-store.d.ts +0 -0
  1037. /package/{src/transport → transport}/transport.local.d.ts +0 -0
  1038. /package/{src/transport → transport}/transport.remote.d.ts +0 -0
  1039. /package/{src/transport → transport}/transport.types.d.ts +0 -0
  1040. /package/{src/types → types}/drinen-hooks.types.d.ts +0 -0
  1041. /package/{src/types → types}/invoke.type.d.ts +0 -0
  1042. /package/{src/types → types}/token.types.d.ts +0 -0
  1043. /package/{src/utils → utils}/content.utils.d.ts +0 -0
  1044. /package/{src/utils → utils}/index.d.ts +0 -0
  1045. /package/{src/utils → utils}/lineage.utils.d.ts +0 -0
  1046. /package/{src/utils → utils}/metadata.utils.d.ts +0 -0
  1047. /package/{src/utils → utils}/naming.utils.d.ts +0 -0
  1048. /package/{src/utils → utils}/server.utils.d.ts +0 -0
  1049. /package/{src/utils → utils}/string.utils.d.ts +0 -0
  1050. /package/{src/utils → utils}/token.utils.d.ts +0 -0
  1051. /package/{src/utils → utils}/types.utils.d.ts +0 -0
  1052. /package/{src/utils → utils}/uri-template.utils.d.ts +0 -0
  1053. /package/{src/utils → utils}/uri-validation.utils.d.ts +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"file":"notification.service.js","sourceRoot":"","sources":["../../../src/notification/notification.service.ts"],"names":[],"mappings":"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","sourcesContent":["// file: libs/sdk/src/notification/notification.service.ts\n\nimport { Server as McpServer } from '@modelcontextprotocol/sdk/server/index.js';\nimport { ListRootsResultSchema, type LoggingLevel, type Root } from '@modelcontextprotocol/sdk/types.js';\nimport { FrontMcpLogger } from '../common';\nimport type { Scope } from '../scope';\nimport type { AIPlatformType } from '../common/types/auth/session.types';\nimport type { PlatformDetectionConfig, PlatformMappingEntry } from '../common/types/options/session.options';\n\n/**\n * Re-export Root from MCP SDK for convenience.\n * Per MCP 2025-11-25 specification.\n */\nexport type { Root };\n\n/**\n * Re-export AIPlatformType from session types for backwards compatibility.\n */\nexport type { AIPlatformType } from '../common/types/auth/session.types';\n\n/**\n * Alias for MCP SDK's LoggingLevel for backwards compatibility.\n * @deprecated Use LoggingLevel from @modelcontextprotocol/sdk/types.js directly\n */\nexport type McpLoggingLevel = LoggingLevel;\n\n/**\n * Client capabilities from the initialize request.\n * Stored per session to understand what the client supports.\n */\nexport interface ClientCapabilities {\n /** Whether the client supports roots and root change notifications */\n roots?: {\n listChanged?: boolean;\n };\n /** Other capabilities can be added here as needed */\n sampling?: Record<string, unknown>;\n /** Experimental capabilities including MCP Apps extension */\n experimental?: {\n /** MCP Apps (ext-apps) extension capability */\n 'io.modelcontextprotocol/ui'?: {\n /** Supported MIME types (e.g., ['text/html+mcp']) */\n mimeTypes?: string[];\n };\n [key: string]: unknown;\n };\n}\n\n/**\n * Client info from the MCP initialize request.\n * Contains the name and version of the calling client.\n */\nexport interface ClientInfo {\n /** Client application name (e.g., \"claude-desktop\", \"chatgpt\", \"cursor\") */\n name: string;\n /** Client version string */\n version: string;\n}\n\n/**\n * MCP Apps extension key in capabilities.experimental\n */\nexport const MCP_APPS_EXTENSION_KEY = 'io.modelcontextprotocol/ui' as const;\n\n/**\n * Check if client capabilities include MCP Apps extension.\n * @param capabilities - Client capabilities from initialize request\n * @returns true if the client supports MCP Apps\n */\nexport function hasMcpAppsExtension(capabilities?: ClientCapabilities): boolean {\n if (!capabilities?.experimental) {\n return false;\n }\n const uiExtension = capabilities.experimental[MCP_APPS_EXTENSION_KEY];\n return uiExtension !== undefined && uiExtension !== null;\n}\n\n/**\n * Detect platform from client capabilities.\n * Checks for known extension capabilities before falling back to client info.\n * @param capabilities - Client capabilities from initialize request\n * @returns Platform type if detected from capabilities, undefined otherwise\n */\nexport function detectPlatformFromCapabilities(capabilities?: ClientCapabilities): AIPlatformType | undefined {\n if (hasMcpAppsExtension(capabilities)) {\n return 'ext-apps';\n }\n return undefined;\n}\n\n/**\n * Match client name against custom mapping patterns.\n * @param clientName - The client name to match\n * @param mappings - Array of custom mapping entries\n * @returns The matched platform type, or undefined if no match\n */\nfunction matchCustomMappings(clientName: string, mappings?: PlatformMappingEntry[]): AIPlatformType | undefined {\n if (!mappings || mappings.length === 0) {\n return undefined;\n }\n\n const lowerClientName = clientName.toLowerCase();\n\n for (const mapping of mappings) {\n if (typeof mapping.pattern === 'string') {\n // Exact match (case-insensitive) - use RegExp for substring matching\n if (lowerClientName === mapping.pattern.toLowerCase()) {\n return mapping.platform;\n }\n } else {\n // RegExp match\n if (mapping.pattern.test(clientName)) {\n return mapping.platform;\n }\n }\n }\n\n return undefined;\n}\n\n/**\n * Default keyword-based platform detection.\n * Works with client names, user-agent strings, or any identifier.\n * @param identifier - The identifier to detect (clientInfo.name, user-agent, etc.)\n * @returns The detected platform type\n */\nfunction defaultPlatformDetection(identifier: string): AIPlatformType {\n const lowerIdentifier = identifier.toLowerCase();\n\n // OpenAI/ChatGPT clients (includes user-agent like 'openai-mcp/1.0.0')\n if (lowerIdentifier.includes('chatgpt') || lowerIdentifier.includes('openai') || lowerIdentifier.includes('gpt')) {\n return 'openai';\n }\n\n // Claude clients\n if (lowerIdentifier.includes('claude') || lowerIdentifier.includes('anthropic')) {\n return 'claude';\n }\n\n // Google Gemini clients (use specific patterns to prevent false positives like \"google-drive-connector\")\n if (\n lowerIdentifier.includes('gemini') ||\n lowerIdentifier.includes('bard') ||\n lowerIdentifier.includes('google-ai') ||\n lowerIdentifier.includes('google ai')\n ) {\n return 'gemini';\n }\n\n // Cursor IDE\n if (lowerIdentifier.includes('cursor')) {\n return 'cursor';\n }\n\n // Continue.dev\n if (lowerIdentifier.includes('continue')) {\n return 'continue';\n }\n\n // Sourcegraph Cody\n if (lowerIdentifier.includes('cody') || lowerIdentifier.includes('sourcegraph')) {\n return 'cody';\n }\n\n // Generic MCP client (fallback for known MCP implementations)\n if (lowerIdentifier.includes('mcp')) {\n return 'generic-mcp';\n }\n\n return 'unknown';\n}\n\n/**\n * Detect platform from user-agent header.\n * Called during session creation before MCP initialize.\n *\n * @param userAgent - The User-Agent header value\n * @param config - Optional platform detection configuration\n * @returns The detected platform type\n */\nexport function detectPlatformFromUserAgent(userAgent?: string, config?: PlatformDetectionConfig): AIPlatformType {\n if (!userAgent) {\n return 'unknown';\n }\n\n // Check custom mappings first\n const customMatch = matchCustomMappings(userAgent, config?.mappings);\n if (customMatch) {\n return customMatch;\n }\n\n // If customOnly, don't use default detection\n if (config?.customOnly) {\n return 'unknown';\n }\n\n // Use default detection on user-agent\n return defaultPlatformDetection(userAgent);\n}\n\n/**\n * Detect the AI platform type from client info.\n * Supports custom mappings that are checked before default detection.\n *\n * @param clientInfo - Client info from MCP initialize request\n * @param config - Optional platform detection configuration with custom mappings\n * @returns The detected platform type\n */\nexport function detectAIPlatform(clientInfo?: ClientInfo, config?: PlatformDetectionConfig): AIPlatformType {\n if (!clientInfo?.name) {\n return 'unknown';\n }\n\n // First, check custom mappings if provided\n const customMatch = matchCustomMappings(clientInfo.name, config?.mappings);\n if (customMatch) {\n return customMatch;\n }\n\n // If customOnly is true, don't fall back to default detection\n if (config?.customOnly) {\n return 'unknown';\n }\n\n // Fall back to default keyword-based detection\n return defaultPlatformDetection(clientInfo.name);\n}\n\n/**\n * MCP logging level priority (lower number = more verbose).\n * Uses LoggingLevel from MCP SDK for type safety.\n */\nexport const MCP_LOGGING_LEVEL_PRIORITY: Record<LoggingLevel, number> = {\n debug: 0,\n info: 1,\n notice: 2,\n warning: 3,\n error: 4,\n critical: 5,\n alert: 6,\n emergency: 7,\n};\n\n/**\n * MCP notification method types per the 2025-11-25 specification.\n */\nexport type McpNotificationMethod =\n | 'notifications/resources/list_changed'\n | 'notifications/tools/list_changed'\n | 'notifications/prompts/list_changed'\n | 'notifications/resources/updated'\n | 'notifications/message';\n\n/**\n * Information about a registered MCP server/transport connection.\n */\nexport interface RegisteredServer {\n /** Unique session identifier */\n sessionId: string;\n /** The MCP server instance */\n server: McpServer;\n /** Timestamp when the server was registered */\n registeredAt: number;\n /** Client capabilities from the initialize request */\n clientCapabilities?: ClientCapabilities;\n /** Client info (name/version) from the initialize request */\n clientInfo?: ClientInfo;\n /** Detected AI platform type based on client info */\n platformType?: AIPlatformType;\n /** Cached roots from the client (invalidated on roots/list_changed) */\n cachedRoots?: Root[];\n /** Timestamp when roots were last fetched */\n rootsFetchedAt?: number;\n}\n\n/**\n * NotificationService manages server→client notifications per MCP 2025-11-25 spec.\n *\n * It tracks all active MCP server instances and broadcasts notifications when\n * registries (resources, tools, prompts) change.\n *\n * It also manages resource subscriptions per session, allowing clients to\n * subscribe to specific resource URIs and receive notifications when they change.\n *\n * @example\n * ```typescript\n * // In LocalTransportAdapter after server.connect()\n * scope.notifications.registerServer(sessionId, this.server);\n *\n * // On session close\n * scope.notifications.unregisterServer(sessionId);\n *\n * // Resource subscriptions\n * scope.notifications.subscribeResource(sessionId, 'file://path/to/file');\n * scope.notifications.unsubscribeResource(sessionId, 'file://path/to/file');\n * ```\n */\nexport class NotificationService {\n private readonly logger: FrontMcpLogger;\n private readonly servers = new Map<string, RegisteredServer>();\n private readonly unsubscribers: Array<() => void> = [];\n /** Maps session ID to set of subscribed resource URIs */\n private readonly subscriptions = new Map<string, Set<string>>();\n /** Maps session ID to minimum log level for that session */\n private readonly logLevels = new Map<string, McpLoggingLevel>();\n /**\n * Set of terminated session IDs (for session invalidation on DELETE).\n * Uses LRU-style eviction to prevent unbounded memory growth.\n */\n private readonly terminatedSessions = new Set<string>();\n /** Maximum number of terminated sessions to track before eviction */\n private static readonly MAX_TERMINATED_SESSIONS = 10000;\n\n constructor(private readonly scope: Scope) {\n this.logger = scope.logger.child('NotificationService');\n }\n\n /**\n * Initialize the notification service and subscribe to registry changes.\n * Called after all registries are ready.\n */\n async initialize(): Promise<void> {\n this.logger.verbose('Initializing notification service');\n\n // Subscribe to resource changes\n const unsubResources = this.scope.resources.subscribe({ immediate: false }, (event) => {\n if (event.changeScope === 'global') {\n this.broadcastNotification('notifications/resources/list_changed');\n }\n });\n this.unsubscribers.push(unsubResources);\n\n // Subscribe to tool changes\n const unsubTools = this.scope.tools.subscribe({ immediate: false }, (event) => {\n if (event.changeScope === 'global') {\n this.broadcastNotification('notifications/tools/list_changed');\n }\n });\n this.unsubscribers.push(unsubTools);\n\n // Subscribe to prompt changes\n const unsubPrompts = this.scope.prompts.subscribe({ immediate: false }, (event) => {\n if (event.changeScope === 'global') {\n this.broadcastNotification('notifications/prompts/list_changed');\n }\n });\n this.unsubscribers.push(unsubPrompts);\n\n this.logger.info('Notification service initialized with registry subscriptions');\n }\n\n /**\n * Register an MCP server instance for receiving notifications.\n * Call this when a transport connection is established.\n *\n * @param sessionId - Unique session identifier\n * @param server - The MCP server instance\n */\n registerServer(sessionId: string, server: McpServer): void {\n if (this.servers.has(sessionId)) {\n this.logger.warn(`Server already registered for session: ${sessionId.slice(0, 20)}...`);\n return;\n }\n\n this.servers.set(sessionId, {\n sessionId,\n server,\n registeredAt: Date.now(),\n });\n\n this.logger.verbose(`Registered server for session: ${sessionId.slice(0, 20)}... (total: ${this.servers.size})`);\n }\n\n /**\n * Unregister an MCP server instance.\n * Call this when a transport connection is closed.\n * Also cleans up any resource subscriptions for this session.\n *\n * @param sessionId - The session identifier to unregister\n * @returns true if the server was registered and is now unregistered, false if not found\n */\n unregisterServer(sessionId: string): boolean {\n const deleted = this.servers.delete(sessionId);\n\n // Clean up resource subscriptions for this session\n const subCount = this.subscriptions.get(sessionId)?.size ?? 0;\n this.subscriptions.delete(sessionId);\n\n // Clean up log level setting for this session\n const hadLogLevel = this.logLevels.delete(sessionId);\n\n if (deleted) {\n this.logger.verbose(\n `Unregistered server for session: ${sessionId.slice(0, 20)}... (remaining: ${\n this.servers.size\n }, cleaned ${subCount} subscription(s)${hadLogLevel ? ', removed log level' : ''})`,\n );\n }\n return deleted;\n }\n\n /**\n * Terminate a session. This adds the session ID to the terminated set,\n * preventing further use of this session ID. This is called during DELETE\n * session handling per MCP 2025-11-25 spec.\n *\n * Note: For stateless sessions (encrypted JWTs), the session ID cannot be\n * truly \"invalidated\" cryptographically, but we track it in memory to reject\n * future requests with this session ID on this server instance.\n *\n * @param sessionId - The session ID to terminate\n * @returns true if the session was registered and is now terminated\n */\n terminateSession(sessionId: string): boolean {\n // First unregister the server (cleans up subscriptions, log levels, etc.)\n const wasRegistered = this.unregisterServer(sessionId);\n\n // Cleanup SESSION-scoped providers to prevent memory leak\n // This is critical: without cleanup, terminated session providers remain cached forever\n this.scope.providers.cleanupSession(sessionId);\n this.logger.verbose(`Cleaned up provider cache for terminated session: ${sessionId.slice(0, 20)}...`);\n\n // Add to terminated sessions set (even if not registered, to handle edge cases)\n // Implement LRU-style eviction to prevent unbounded memory growth\n if (this.terminatedSessions.size >= NotificationService.MAX_TERMINATED_SESSIONS) {\n // Remove the oldest entry (first item in Set maintains insertion order)\n const oldest = this.terminatedSessions.values().next().value;\n if (oldest) {\n this.terminatedSessions.delete(oldest);\n this.logger.verbose(`Evicted oldest terminated session to make room: ${oldest.slice(0, 20)}...`);\n }\n }\n this.terminatedSessions.add(sessionId);\n this.logger.verbose(\n `Terminated session: ${sessionId.slice(0, 20)}... (total terminated: ${this.terminatedSessions.size})`,\n );\n\n return wasRegistered;\n }\n\n /**\n * Check if a session has been terminated.\n * Used during session verification to reject requests with terminated session IDs.\n *\n * @param sessionId - The session ID to check\n * @returns true if the session has been terminated\n */\n isSessionTerminated(sessionId: string): boolean {\n return this.terminatedSessions.has(sessionId);\n }\n\n /**\n * Broadcast a notification to all registered servers.\n *\n * @param method - The MCP notification method\n * @param params - Optional notification parameters\n */\n broadcastNotification(method: McpNotificationMethod, params?: Record<string, unknown>): void {\n if (this.servers.size === 0) {\n this.logger.verbose(`No servers registered for notification: ${method}`);\n return;\n }\n\n this.logger.verbose(`Broadcasting ${method} to ${this.servers.size} server(s)`);\n\n for (const [sessionId, { server }] of this.servers) {\n this.sendNotificationToServer(server, sessionId, method, params);\n }\n }\n\n /**\n * Send a notification to a specific session.\n *\n * @param sessionId - The target session\n * @param method - The MCP notification method\n * @param params - Optional notification parameters\n */\n sendNotificationToSession(sessionId: string, method: McpNotificationMethod, params?: Record<string, unknown>): void {\n const registered = this.servers.get(sessionId);\n if (!registered) {\n this.logger.warn(`Cannot send notification to unregistered session: ${sessionId.slice(0, 20)}...`);\n return;\n }\n\n this.sendNotificationToServer(registered.server, sessionId, method, params);\n }\n\n /**\n * Subscribe a session to receive notifications when a specific resource changes.\n *\n * @param sessionId - The session to subscribe\n * @param uri - The resource URI to subscribe to\n * @returns true if this is a new subscription, false if already subscribed\n */\n subscribeResource(sessionId: string, uri: string): boolean {\n if (!this.servers.has(sessionId)) {\n this.logger.warn(`Cannot subscribe unregistered session ${sessionId.slice(0, 20)}... to resource ${uri}`);\n return false;\n }\n\n let sessionSubs = this.subscriptions.get(sessionId);\n if (!sessionSubs) {\n sessionSubs = new Set();\n this.subscriptions.set(sessionId, sessionSubs);\n }\n\n const isNew = !sessionSubs.has(uri);\n sessionSubs.add(uri);\n\n if (isNew) {\n this.logger.verbose(`Session ${sessionId.slice(0, 20)}... subscribed to resource ${uri}`);\n }\n\n return isNew;\n }\n\n /**\n * Unsubscribe a session from a specific resource.\n *\n * @param sessionId - The session to unsubscribe\n * @param uri - The resource URI to unsubscribe from\n * @returns true if the subscription was removed, false if not subscribed\n */\n unsubscribeResource(sessionId: string, uri: string): boolean {\n const sessionSubs = this.subscriptions.get(sessionId);\n if (!sessionSubs) {\n return false;\n }\n\n const wasSubscribed = sessionSubs.delete(uri);\n\n // Clean up empty subscription sets\n if (sessionSubs.size === 0) {\n this.subscriptions.delete(sessionId);\n }\n\n if (wasSubscribed) {\n this.logger.verbose(`Session ${sessionId.slice(0, 20)}... unsubscribed from resource ${uri}`);\n }\n\n return wasSubscribed;\n }\n\n /**\n * Check if a session is subscribed to a specific resource.\n *\n * @param sessionId - The session to check\n * @param uri - The resource URI\n * @returns true if subscribed\n */\n isSubscribed(sessionId: string, uri: string): boolean {\n return this.subscriptions.get(sessionId)?.has(uri) ?? false;\n }\n\n /**\n * Get all sessions subscribed to a specific resource.\n *\n * @param uri - The resource URI\n * @returns Array of session IDs subscribed to this resource\n */\n getSubscribersForResource(uri: string): string[] {\n const subscribers: string[] = [];\n for (const [sessionId, uris] of this.subscriptions) {\n if (uris.has(uri)) {\n subscribers.push(sessionId);\n }\n }\n return subscribers;\n }\n\n /**\n * Send a resource update notification to subscribed sessions only.\n * Per MCP 2025-11-25 spec, only sessions that have subscribed to this\n * resource via `resources/subscribe` will receive the notification.\n *\n * @param uri - The resource URI that was updated\n */\n notifyResourceUpdated(uri: string): void {\n const subscribers = this.getSubscribersForResource(uri);\n\n if (subscribers.length === 0) {\n this.logger.verbose(`No subscribers for resource ${uri}, skipping notification`);\n return;\n }\n\n this.logger.verbose(`Notifying ${subscribers.length} subscriber(s) of resource update: ${uri}`);\n\n for (const sessionId of subscribers) {\n this.sendNotificationToSession(sessionId, 'notifications/resources/updated', { uri });\n }\n }\n\n /**\n * Get the number of registered servers.\n */\n get serverCount(): number {\n return this.servers.size;\n }\n\n /**\n * Set the minimum log level for a session.\n * Only log messages at or above this level will be sent to the session.\n * Per MCP spec, the default level when not set is determined by the server.\n *\n * @param sessionId - The session to configure\n * @param level - The minimum log level\n * @returns true if the session was found and level was set\n */\n setLogLevel(sessionId: string, level: McpLoggingLevel): boolean {\n if (!this.servers.has(sessionId)) {\n this.logger.warn(`Cannot set log level for unregistered session: ${sessionId.slice(0, 20)}...`);\n return false;\n }\n\n this.logLevels.set(sessionId, level);\n this.logger.verbose(`Set log level to '${level}' for session ${sessionId.slice(0, 20)}...`);\n return true;\n }\n\n /**\n * Get the current log level for a session.\n *\n * @param sessionId - The session to query\n * @returns The log level, or undefined if not set\n */\n getLogLevel(sessionId: string): McpLoggingLevel | undefined {\n return this.logLevels.get(sessionId);\n }\n\n /**\n * Send a log message to all sessions that have enabled the given level.\n * Per MCP 2025-11-25 spec, this sends a 'notifications/message' notification\n * to sessions whose configured minimum level allows this message through.\n *\n * @param level - The log level of this message\n * @param loggerName - Optional logger name/component identifier\n * @param data - The log message data (string or structured data)\n */\n sendLogMessage(level: McpLoggingLevel, loggerName: string | undefined, data: unknown): void {\n const messagePriority = MCP_LOGGING_LEVEL_PRIORITY[level];\n\n for (const [sessionId, { server }] of this.servers) {\n const sessionLevel = this.logLevels.get(sessionId);\n\n // If session hasn't set a level, skip (server decides default behavior)\n // Here we default to NOT sending unless explicitly subscribed\n if (!sessionLevel) {\n continue;\n }\n\n const sessionPriority = MCP_LOGGING_LEVEL_PRIORITY[sessionLevel];\n\n // Only send if message level >= session's minimum level\n if (messagePriority >= sessionPriority) {\n const params: Record<string, unknown> = {\n level,\n data,\n };\n if (loggerName) {\n params['logger'] = loggerName;\n }\n\n this.sendNotificationToServer(server, sessionId, 'notifications/message', params);\n }\n }\n }\n\n /**\n * Send a log message to a specific session, respecting its log level.\n *\n * @param sessionId - The target session\n * @param level - The log level of this message\n * @param loggerName - Optional logger name/component identifier\n * @param data - The log message data\n * @returns true if the message was sent (session exists and level allows)\n */\n sendLogMessageToSession(\n sessionId: string,\n level: McpLoggingLevel,\n loggerName: string | undefined,\n data: unknown,\n ): boolean {\n const registered = this.servers.get(sessionId);\n if (!registered) {\n return false;\n }\n\n const sessionLevel = this.logLevels.get(sessionId);\n if (!sessionLevel) {\n // Session hasn't enabled logging\n return false;\n }\n\n const messagePriority = MCP_LOGGING_LEVEL_PRIORITY[level];\n const sessionPriority = MCP_LOGGING_LEVEL_PRIORITY[sessionLevel];\n\n if (messagePriority < sessionPriority) {\n // Message level is too verbose for this session\n return false;\n }\n\n const params: Record<string, unknown> = {\n level,\n data,\n };\n if (loggerName) {\n params['logger'] = loggerName;\n }\n\n this.sendNotificationToServer(registered.server, sessionId, 'notifications/message', params);\n return true;\n }\n\n // =====================================================\n // Client Capabilities & Roots API (MCP 2025-11-25)\n // =====================================================\n\n /**\n * Set client capabilities for a session.\n * Called during initialization to store what the client supports.\n *\n * @param sessionId - The session to configure\n * @param capabilities - The client's capabilities from the initialize request\n * @returns true if the session was found and capabilities were set\n */\n setClientCapabilities(sessionId: string, capabilities: ClientCapabilities): boolean {\n const registered = this.servers.get(sessionId);\n if (!registered) {\n this.logger.warn(`Cannot set client capabilities for unregistered session: ${sessionId.slice(0, 20)}...`);\n return false;\n }\n\n registered.clientCapabilities = capabilities;\n this.logger.verbose(\n `Set client capabilities for session ${sessionId.slice(0, 20)}...: roots.listChanged=${\n capabilities.roots?.listChanged ?? false\n }`,\n );\n return true;\n }\n\n /**\n * Get client capabilities for a session.\n *\n * @param sessionId - The session to query\n * @returns The client's capabilities, or undefined if not set\n */\n getClientCapabilities(sessionId: string): ClientCapabilities | undefined {\n return this.servers.get(sessionId)?.clientCapabilities;\n }\n\n /**\n * Set client info for a session and auto-detect the AI platform type.\n * Called during initialization to store who the client is.\n * Uses the scope's platform detection configuration for custom mappings.\n *\n * @param sessionId - The session to configure\n * @param clientInfo - The client's info (name/version) from the initialize request\n * @returns The detected platform type, or undefined if the session was not found\n */\n setClientInfo(sessionId: string, clientInfo: ClientInfo): AIPlatformType | undefined {\n const registered = this.servers.get(sessionId);\n if (!registered) {\n this.logger.warn(`Cannot set client info for unregistered session: ${sessionId.slice(0, 20)}...`);\n return undefined;\n }\n\n registered.clientInfo = clientInfo;\n // Use platform detection config from scope if available\n const platformDetectionConfig = this.scope.metadata.transport?.platformDetection;\n registered.platformType = detectAIPlatform(clientInfo, platformDetectionConfig);\n this.logger.verbose(\n `Set client info for session ${sessionId.slice(0, 20)}...: name=${clientInfo.name}, version=${\n clientInfo.version\n }, platform=${registered.platformType}`,\n );\n return registered.platformType;\n }\n\n /**\n * Get client info for a session.\n *\n * @param sessionId - The session to query\n * @returns The client's info, or undefined if not set\n */\n getClientInfo(sessionId: string): ClientInfo | undefined {\n return this.servers.get(sessionId)?.clientInfo;\n }\n\n /**\n * Get the detected AI platform type for a session.\n * This is auto-detected from client info during initialization.\n *\n * @param sessionId - The session to query\n * @returns The detected platform type, or 'unknown' if not detected\n */\n getPlatformType(sessionId: string): AIPlatformType {\n const session = this.servers.get(sessionId);\n return session?.platformType ?? 'unknown';\n }\n\n /**\n * Check if a session's client supports roots listing.\n *\n * @param sessionId - The session to check\n * @returns true if the client supports roots\n */\n supportsRoots(sessionId: string): boolean {\n const capabilities = this.getClientCapabilities(sessionId);\n return capabilities?.roots !== undefined;\n }\n\n /**\n * List roots from the client for a session.\n * This sends a `roots/list` request to the client and returns the roots.\n *\n * If the client doesn't support roots, returns an empty array.\n * Results are cached and invalidated when `notifications/roots/list_changed` is received.\n *\n * @param sessionId - The session to request roots from\n * @param options - Options for the request\n * @param options.forceRefresh - If true, bypass the cache and fetch fresh roots\n * @param options.timeout - Timeout in milliseconds (default: 30000)\n * @returns Array of roots from the client\n */\n async listRoots(sessionId: string, options?: { forceRefresh?: boolean; timeout?: number }): Promise<Root[]> {\n const registered = this.servers.get(sessionId);\n if (!registered) {\n this.logger.warn(`Cannot list roots for unregistered session: ${sessionId.slice(0, 20)}...`);\n return [];\n }\n\n // Check if client supports roots\n if (!this.supportsRoots(sessionId)) {\n this.logger.verbose(`Client for session ${sessionId.slice(0, 20)}... does not support roots`);\n return [];\n }\n\n // Return cached roots if available and not forcing refresh\n if (!options?.forceRefresh && registered.cachedRoots !== undefined) {\n this.logger.verbose(\n `Returning cached roots for session ${sessionId.slice(0, 20)}... (${registered.cachedRoots.length} roots)`,\n );\n return registered.cachedRoots;\n }\n\n try {\n this.logger.verbose(`Requesting roots from client for session ${sessionId.slice(0, 20)}...`);\n\n // Send roots/list request to client\n const result = await registered.server.request({ method: 'roots/list' }, ListRootsResultSchema, {\n timeout: options?.timeout ?? 30000,\n });\n\n // Cache the result\n registered.cachedRoots = result.roots as Root[];\n registered.rootsFetchedAt = Date.now();\n\n this.logger.verbose(\n `Received ${registered.cachedRoots.length} root(s) from client for session ${sessionId.slice(0, 20)}...`,\n );\n return registered.cachedRoots;\n } catch (error) {\n this.logger.warn(\n `Failed to list roots for session ${sessionId.slice(0, 20)}...: ${\n error instanceof Error ? error.message : 'Unknown error'\n }`,\n );\n // Return cached roots if available, otherwise empty array\n return registered.cachedRoots ?? [];\n }\n }\n\n /**\n * Invalidate cached roots for a session.\n * Call this when receiving `notifications/roots/list_changed` from the client.\n *\n * @param sessionId - The session whose roots cache should be invalidated\n * @returns true if the session was found and cache was invalidated\n */\n invalidateRootsCache(sessionId: string): boolean {\n const registered = this.servers.get(sessionId);\n if (!registered) {\n return false;\n }\n\n const hadCache = registered.cachedRoots !== undefined;\n registered.cachedRoots = undefined;\n registered.rootsFetchedAt = undefined;\n\n if (hadCache) {\n this.logger.verbose(`Invalidated roots cache for session ${sessionId.slice(0, 20)}...`);\n }\n return hadCache;\n }\n\n /**\n * Get the cached roots for a session without fetching from the client.\n *\n * @param sessionId - The session to query\n * @returns Cached roots, or undefined if not cached\n */\n getCachedRoots(sessionId: string): Root[] | undefined {\n return this.servers.get(sessionId)?.cachedRoots;\n }\n\n /**\n * Clean up subscriptions and resources.\n */\n async destroy(): Promise<void> {\n this.logger.verbose('Destroying notification service');\n\n // Unsubscribe from all registry listeners\n for (const unsub of this.unsubscribers) {\n unsub();\n }\n this.unsubscribers.length = 0;\n\n // Clear server registrations, resource subscriptions, log levels, and terminated sessions\n this.servers.clear();\n this.subscriptions.clear();\n this.logLevels.clear();\n this.terminatedSessions.clear();\n\n this.logger.info('Notification service destroyed');\n }\n\n private sendNotificationToServer(\n server: McpServer,\n sessionId: string,\n method: McpNotificationMethod,\n params?: Record<string, unknown>,\n ): void {\n try {\n // MCP SDK's server.notification() sends a JSON-RPC notification\n server.notification({ method, params: params ?? {} });\n this.logger.verbose(`Sent ${method} to session ${sessionId.slice(0, 20)}...`);\n } catch (error) {\n // Connection may have closed; log and continue\n this.logger.warn(\n `Failed to send notification ${method} to session ${sessionId.slice(0, 20)}...: ${\n error instanceof Error ? error.message : 'Unknown error'\n }`,\n );\n // Optionally unregister dead sessions\n this.unregisterServer(sessionId);\n }\n }\n}\n"]}
@@ -1,152 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const tslib_1 = require("tslib");
4
- // plugin-registry.ts
5
- require("reflect-metadata");
6
- const common_1 = require("../common");
7
- const plugin_utils_1 = require("./plugin.utils");
8
- const provider_registry_1 = tslib_1.__importDefault(require("../provider/provider.registry"));
9
- const token_utils_1 = require("../utils/token.utils");
10
- const adapter_regsitry_1 = tslib_1.__importDefault(require("../adapter/adapter.regsitry"));
11
- const tool_registry_1 = tslib_1.__importDefault(require("../tool/tool.registry"));
12
- const resource_registry_1 = tslib_1.__importDefault(require("../resource/resource.registry"));
13
- const prompt_registry_1 = tslib_1.__importDefault(require("../prompt/prompt.registry"));
14
- const provider_utils_1 = require("../provider/provider.utils");
15
- const regsitry_1 = require("../regsitry");
16
- const hooks_utils_1 = require("../hooks/hooks.utils");
17
- class PluginRegistry extends regsitry_1.RegistryAbstract {
18
- /** providers by token */
19
- pProviders = new Map();
20
- /** providers by token */
21
- pPlugins = new Map();
22
- /** adapters by token */
23
- pAdapters = new Map();
24
- /** tools by token */
25
- pTools = new Map();
26
- /** resources by token */
27
- pResources = new Map();
28
- /** prompts by token */
29
- pPrompts = new Map();
30
- scope;
31
- owner;
32
- constructor(providers, list, owner) {
33
- super('PluginRegistry', providers, list);
34
- this.scope = providers.getActiveScope();
35
- this.owner = owner;
36
- }
37
- getPlugins() {
38
- return [...this.instances.values()];
39
- }
40
- buildMap(list) {
41
- const tokens = new Set();
42
- const defs = new Map();
43
- const graph = new Map();
44
- for (const raw of list) {
45
- const rec = (0, plugin_utils_1.normalizePlugin)(raw);
46
- const provide = rec.provide;
47
- tokens.add(provide);
48
- defs.set(provide, rec);
49
- graph.set(provide, new Set());
50
- }
51
- return { tokens, defs, graph };
52
- }
53
- buildGraph() {
54
- for (const token of this.tokens) {
55
- const rec = this.defs.get(token);
56
- const deps = (0, plugin_utils_1.pluginDiscoveryDeps)(rec);
57
- for (const d of deps) {
58
- if (!this.providers.get(d)) {
59
- throw new Error(`Plugin ${(0, token_utils_1.tokenName)(token)} depends on ${(0, token_utils_1.tokenName)(d)}, which is not registered.`);
60
- }
61
- this.graph.get(token).add(d);
62
- }
63
- }
64
- }
65
- async initialize() {
66
- for (const token of this.tokens) {
67
- const rec = this.defs.get(token);
68
- const deps = this.graph.get(token);
69
- const providers = new provider_registry_1.default(rec.metadata.providers ?? [], this.providers);
70
- await providers.ready;
71
- // Create a plugin-specific owner (NOT the parent's owner)
72
- // This ensures plugin tools have kind='plugin' for proper filtering in adoption
73
- const pluginOwner = {
74
- kind: 'plugin',
75
- id: rec.metadata.name,
76
- ref: token,
77
- };
78
- const plugins = new PluginRegistry(providers, rec.metadata.plugins ?? [], pluginOwner);
79
- await plugins.ready;
80
- const adapters = new adapter_regsitry_1.default(providers, rec.metadata.adapters ?? []);
81
- await adapters.ready;
82
- const tools = new tool_registry_1.default(providers, rec.metadata.tools ?? [], pluginOwner);
83
- const resources = new resource_registry_1.default(providers, rec.metadata.resources ?? [], pluginOwner);
84
- const prompts = new prompt_registry_1.default(providers, rec.metadata.prompts ?? [], pluginOwner);
85
- await Promise.all([tools.ready, resources.ready, prompts.ready]);
86
- // Register plugin registries with parent provider registry (app's providers)
87
- // This makes plugin tools discoverable during app's ToolRegistry adoption (Path 2)
88
- // Note: We don't add to scope-level providers to maintain app isolation
89
- this.providers.addRegistry('ToolRegistry', tools);
90
- this.providers.addRegistry('ResourceRegistry', resources);
91
- this.providers.addRegistry('PromptRegistry', prompts);
92
- this.pProviders.set(token, providers);
93
- this.pPlugins.set(token, plugins);
94
- this.pAdapters.set(token, adapters);
95
- this.pTools.set(token, tools);
96
- this.pResources.set(token, resources);
97
- this.pPrompts.set(token, prompts);
98
- /**
99
- * Register exported providers to the parent providers registry.
100
- */
101
- const exported = (rec.metadata.exports ?? []).map((rawToken) => {
102
- const token = (0, provider_utils_1.normalizeProvider)(rawToken);
103
- return providers.getProviderInfo(token.provide);
104
- });
105
- this.providers.mergeFromRegistry(providers, exported);
106
- const depsTokens = [...deps];
107
- const depsInstances = await Promise.all(depsTokens.map((t) => this.providers.resolveBootstrapDep(t)));
108
- let pluginInstance;
109
- if (rec.kind === common_1.PluginKind.CLASS) {
110
- const klass = rec.useClass;
111
- pluginInstance = new klass(...depsInstances);
112
- }
113
- else if (rec.kind === common_1.PluginKind.CLASS_TOKEN) {
114
- const klass = rec.provide;
115
- pluginInstance = new klass(...depsInstances);
116
- }
117
- else if (rec.kind === common_1.PluginKind.FACTORY) {
118
- const deps = [...rec.inject()];
119
- const args = [];
120
- for (const d of deps)
121
- args.push(await this.providers.resolveBootstrapDep(d));
122
- pluginInstance = rec.useFactory(...args);
123
- }
124
- else if (rec.kind === common_1.PluginKind.VALUE) {
125
- pluginInstance = rec.useValue;
126
- }
127
- else {
128
- throw Error('Invalid plugin kind');
129
- }
130
- const hooks = (0, hooks_utils_1.normalizeHooksFromCls)(pluginInstance);
131
- if (hooks.length > 0) {
132
- // Add owner information to each hook before registering
133
- const hooksWithOwner = hooks.map((hook) => ({
134
- ...hook,
135
- metadata: {
136
- ...hook.metadata,
137
- owner: this.owner,
138
- },
139
- }));
140
- await this.scope.hooks.registerHooks(false, ...hooksWithOwner);
141
- }
142
- pluginInstance.get = providers.get.bind(providers);
143
- const dynamicProviders = rec.providers;
144
- if (dynamicProviders) {
145
- await providers.addDynamicProviders(dynamicProviders);
146
- }
147
- this.instances.set(token, pluginInstance);
148
- }
149
- }
150
- }
151
- exports.default = PluginRegistry;
152
- //# sourceMappingURL=plugin.registry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"plugin.registry.js","sourceRoot":"","sources":["../../../src/plugin/plugin.registry.ts"],"names":[],"mappings":"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","sourcesContent":["// plugin-registry.ts\nimport 'reflect-metadata';\nimport { PluginEntry, PluginKind, PluginRecord, PluginRegistryInterface, PluginType, Token } from '../common';\nimport { normalizePlugin, pluginDiscoveryDeps } from './plugin.utils';\nimport ProviderRegistry from '../provider/provider.registry';\nimport { tokenName } from '../utils/token.utils';\nimport AdapterRegistry from '../adapter/adapter.regsitry';\nimport ToolRegistry from '../tool/tool.registry';\nimport ResourceRegistry from '../resource/resource.registry';\nimport PromptRegistry from '../prompt/prompt.registry';\nimport { Ctor } from '../types/token.types';\nimport { normalizeProvider } from '../provider/provider.utils';\nimport { RegistryAbstract, RegistryBuildMapResult } from '../regsitry';\nimport { Scope } from '../scope';\nimport { normalizeHooksFromCls } from '../hooks/hooks.utils';\n\nexport default class PluginRegistry\n extends RegistryAbstract<PluginEntry, PluginRecord, PluginType[]>\n implements PluginRegistryInterface\n{\n /** providers by token */\n private readonly pProviders: Map<Token, ProviderRegistry> = new Map();\n /** providers by token */\n private readonly pPlugins: Map<Token, PluginRegistry> = new Map();\n /** adapters by token */\n private readonly pAdapters: Map<Token, AdapterRegistry> = new Map();\n /** tools by token */\n private readonly pTools: Map<Token, ToolRegistry> = new Map();\n /** resources by token */\n private readonly pResources: Map<Token, ResourceRegistry> = new Map();\n /** prompts by token */\n private readonly pPrompts: Map<Token, PromptRegistry> = new Map();\n\n private readonly scope: Scope;\n private readonly owner?: { kind: 'app' | 'plugin'; id: string; ref: Token };\n\n constructor(\n providers: ProviderRegistry,\n list: PluginType[],\n owner?: { kind: 'app' | 'plugin'; id: string; ref: Token },\n ) {\n super('PluginRegistry', providers, list);\n this.scope = providers.getActiveScope();\n this.owner = owner;\n }\n\n getPlugins(): PluginEntry[] {\n return [...this.instances.values()];\n }\n\n protected override buildMap(list: PluginType[]): RegistryBuildMapResult<PluginRecord> {\n const tokens = new Set<Token>();\n const defs = new Map<Token, PluginRecord>();\n const graph = new Map<Token, Set<Token>>();\n\n for (const raw of list) {\n const rec = normalizePlugin(raw);\n const provide = rec.provide;\n tokens.add(provide);\n defs.set(provide, rec);\n graph.set(provide, new Set());\n }\n\n return { tokens, defs, graph };\n }\n\n protected buildGraph() {\n for (const token of this.tokens) {\n const rec = this.defs.get(token)!;\n const deps = pluginDiscoveryDeps(rec);\n\n for (const d of deps) {\n if (!this.providers.get(d)) {\n throw new Error(`Plugin ${tokenName(token)} depends on ${tokenName(d)}, which is not registered.`);\n }\n this.graph.get(token)!.add(d);\n }\n }\n }\n\n protected async initialize() {\n for (const token of this.tokens) {\n const rec = this.defs.get(token)!;\n const deps = this.graph.get(token)!;\n\n const providers = new ProviderRegistry(rec.metadata.providers ?? [], this.providers);\n await providers.ready;\n\n // Create a plugin-specific owner (NOT the parent's owner)\n // This ensures plugin tools have kind='plugin' for proper filtering in adoption\n const pluginOwner = {\n kind: 'plugin' as const,\n id: rec.metadata.name,\n ref: token,\n };\n\n const plugins = new PluginRegistry(providers, rec.metadata.plugins ?? [], pluginOwner);\n await plugins.ready;\n\n const adapters = new AdapterRegistry(providers, rec.metadata.adapters ?? []);\n await adapters.ready;\n\n const tools = new ToolRegistry(providers, rec.metadata.tools ?? [], pluginOwner);\n const resources = new ResourceRegistry(providers, rec.metadata.resources ?? [], pluginOwner);\n const prompts = new PromptRegistry(providers, rec.metadata.prompts ?? [], pluginOwner);\n\n await Promise.all([tools.ready, resources.ready, prompts.ready]);\n\n // Register plugin registries with parent provider registry (app's providers)\n // This makes plugin tools discoverable during app's ToolRegistry adoption (Path 2)\n // Note: We don't add to scope-level providers to maintain app isolation\n this.providers.addRegistry('ToolRegistry', tools);\n this.providers.addRegistry('ResourceRegistry', resources);\n this.providers.addRegistry('PromptRegistry', prompts);\n\n this.pProviders.set(token, providers);\n this.pPlugins.set(token, plugins);\n this.pAdapters.set(token, adapters);\n this.pTools.set(token, tools);\n this.pResources.set(token, resources);\n this.pPrompts.set(token, prompts);\n\n /**\n * Register exported providers to the parent providers registry.\n */\n const exported = (rec.metadata.exports ?? []).map((rawToken) => {\n const token = normalizeProvider(rawToken);\n return providers.getProviderInfo(token.provide);\n });\n this.providers.mergeFromRegistry(providers, exported);\n\n const depsTokens = [...deps];\n const depsInstances = await Promise.all(depsTokens.map((t) => this.providers.resolveBootstrapDep(t)));\n\n let pluginInstance: PluginEntry;\n if (rec.kind === PluginKind.CLASS) {\n const klass = rec.useClass as any;\n pluginInstance = new klass(...depsInstances);\n } else if (rec.kind === PluginKind.CLASS_TOKEN) {\n const klass = rec.provide as any;\n pluginInstance = new (klass as Ctor<any>)(...depsInstances);\n } else if (rec.kind === PluginKind.FACTORY) {\n const deps = [...rec.inject()];\n const args: any[] = [];\n for (const d of deps) args.push(await this.providers.resolveBootstrapDep(d));\n pluginInstance = rec.useFactory(...args);\n } else if (rec.kind === PluginKind.VALUE) {\n pluginInstance = (rec as any).useValue;\n } else {\n throw Error('Invalid plugin kind');\n }\n\n const hooks = normalizeHooksFromCls(pluginInstance);\n if (hooks.length > 0) {\n // Add owner information to each hook before registering\n const hooksWithOwner = hooks.map((hook) => ({\n ...hook,\n metadata: {\n ...hook.metadata,\n owner: this.owner,\n },\n }));\n await this.scope.hooks.registerHooks(false, ...hooksWithOwner);\n }\n pluginInstance.get = providers.get.bind(providers) as any;\n const dynamicProviders = rec.providers;\n if (dynamicProviders) {\n await providers.addDynamicProviders(dynamicProviders);\n }\n this.instances.set(token, pluginInstance);\n }\n }\n}\n"]}
@@ -1,88 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.collectPluginMetadata = collectPluginMetadata;
4
- exports.normalizePlugin = normalizePlugin;
5
- exports.pluginDiscoveryDeps = pluginDiscoveryDeps;
6
- const common_1 = require("../common");
7
- const token_utils_1 = require("../utils/token.utils");
8
- const metadata_utils_1 = require("../utils/metadata.utils");
9
- function collectPluginMetadata(cls) {
10
- return Object.entries(common_1.FrontMcpPluginTokens).reduce((metadata, [key, token]) => {
11
- return Object.assign(metadata, {
12
- [key]: (0, metadata_utils_1.getMetadata)(token, cls),
13
- });
14
- }, {});
15
- }
16
- function normalizePlugin(item) {
17
- if ((0, token_utils_1.isClass)(item)) {
18
- // read McpPluginMetadata from class
19
- const metadata = collectPluginMetadata(item);
20
- return { kind: common_1.PluginKind.CLASS_TOKEN, provide: item, metadata };
21
- }
22
- if (item && typeof item === 'object') {
23
- const { provide, useClass, useFactory, useValue, inject, ...metadata } = item;
24
- if (!provide) {
25
- const name = item?.name ?? '[object]';
26
- throw new Error(`Plugin '${name}' is missing 'provide'.`);
27
- }
28
- if (useClass) {
29
- if (!(0, token_utils_1.isClass)(useClass)) {
30
- throw new Error(`'useClass' on plugin '${(0, token_utils_1.tokenName)(provide)}' must be a class.`);
31
- }
32
- return {
33
- kind: common_1.PluginKind.CLASS,
34
- provide,
35
- useClass,
36
- metadata,
37
- };
38
- }
39
- if (useFactory) {
40
- if (typeof useFactory !== 'function') {
41
- throw new Error(`'useFactory' on plugin '${(0, token_utils_1.tokenName)(provide)}' must be a function.`);
42
- }
43
- const inj = typeof inject === 'function' ? inject : () => [];
44
- return {
45
- kind: common_1.PluginKind.FACTORY,
46
- provide,
47
- inject: inj,
48
- useFactory,
49
- metadata,
50
- };
51
- }
52
- if ('useValue' in item) {
53
- if (useValue === undefined || useValue === null) {
54
- throw new Error(`'useValue' on plugin '${(0, token_utils_1.tokenName)(provide)}' must be defined.`);
55
- }
56
- const metadata = collectPluginMetadata(useValue.constructor);
57
- return {
58
- kind: common_1.PluginKind.VALUE,
59
- provide,
60
- useValue,
61
- metadata,
62
- providers: (item.providers ?? [])
63
- };
64
- }
65
- }
66
- const name = item?.name ?? String(item);
67
- throw new Error(`Invalid plugin '${name}'. Expected a class or a plugin object.`);
68
- }
69
- /**
70
- * For graph/cycle detection. Returns dependency tokens that should be graphed.
71
- * - VALUE: no deps
72
- * - FACTORY: only includes deps that are registered (others will be resolved)
73
- * - CLASS / CLASS_TOKEN: deps come from the class constructor or static with(...)
74
- */
75
- function pluginDiscoveryDeps(rec) {
76
- switch (rec.kind) {
77
- case common_1.PluginKind.VALUE:
78
- return [];
79
- case common_1.PluginKind.FACTORY: {
80
- return [...rec.inject()];
81
- }
82
- case common_1.PluginKind.CLASS:
83
- return (0, token_utils_1.depsOfClass)(rec.useClass, 'discovery').filter(v => v !== null && typeof v === 'object');
84
- case common_1.PluginKind.CLASS_TOKEN:
85
- return (0, token_utils_1.depsOfClass)(rec.provide, 'discovery').filter(v => v !== null && typeof v === 'object');
86
- }
87
- }
88
- //# sourceMappingURL=plugin.utils.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"plugin.utils.js","sourceRoot":"","sources":["../../../src/plugin/plugin.utils.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n PluginMetadata,\n PluginType,\n FrontMcpPluginTokens,\n Token, PluginRecord, PluginKind,\n} from '../common';\nimport {depsOfClass, isClass, tokenName} from '../utils/token.utils';\nimport {getMetadata} from '../utils/metadata.utils';\n\nexport function collectPluginMetadata(cls: PluginType): PluginMetadata {\n return Object.entries(FrontMcpPluginTokens).reduce((metadata, [key, token]) => {\n return Object.assign(metadata, {\n [key]: getMetadata(token, cls),\n });\n }, {} as PluginMetadata);\n}\n\n\nexport function normalizePlugin(item: PluginType): PluginRecord {\n if (isClass(item)) {\n // read McpPluginMetadata from class\n const metadata = collectPluginMetadata(item);\n return {kind: PluginKind.CLASS_TOKEN, provide: item, metadata};\n }\n if (item && typeof item === 'object') {\n const {provide, useClass, useFactory, useValue, inject, ...metadata} = item as any;\n\n if (!provide) {\n const name = (item as any)?.name ?? '[object]';\n throw new Error(`Plugin '${name}' is missing 'provide'.`);\n }\n\n if (useClass) {\n if (!isClass(useClass)) {\n throw new Error(\n `'useClass' on plugin '${tokenName(provide)}' must be a class.`,\n );\n }\n return {\n kind: PluginKind.CLASS,\n provide,\n useClass,\n metadata,\n };\n }\n\n if (useFactory) {\n if (typeof useFactory !== 'function') {\n throw new Error(\n `'useFactory' on plugin '${tokenName(provide)}' must be a function.`,\n );\n }\n const inj = typeof inject === 'function' ? inject : () => [] as const;\n return {\n kind: PluginKind.FACTORY,\n provide,\n inject: inj,\n useFactory,\n metadata,\n };\n }\n\n if ('useValue' in item) {\n if (useValue === undefined || useValue === null) {\n throw new Error(`'useValue' on plugin '${tokenName(provide)}' must be defined.`);\n }\n const metadata = collectPluginMetadata(useValue.constructor);\n return {\n kind: PluginKind.VALUE,\n provide,\n useValue,\n metadata,\n providers: (item.providers ?? []) as any\n };\n }\n }\n\n const name = (item as any)?.name ?? String(item);\n throw new Error(\n `Invalid plugin '${name}'. Expected a class or a plugin object.`,\n );\n}\n\n/**\n * For graph/cycle detection. Returns dependency tokens that should be graphed.\n * - VALUE: no deps\n * - FACTORY: only includes deps that are registered (others will be resolved)\n * - CLASS / CLASS_TOKEN: deps come from the class constructor or static with(...)\n */\nexport function pluginDiscoveryDeps(\n rec: PluginRecord,\n): Token[] {\n switch (rec.kind) {\n case PluginKind.VALUE:\n return []\n case PluginKind.FACTORY: {\n return [...rec.inject()];\n }\n case PluginKind.CLASS:\n return depsOfClass(rec.useClass, 'discovery').filter(v => v !== null && typeof v === 'object');\n\n case PluginKind.CLASS_TOKEN:\n return depsOfClass(rec.provide, 'discovery').filter(v => v !== null && typeof v === 'object');\n }\n}"]}
@@ -1,214 +0,0 @@
1
- "use strict";
2
- // file: libs/sdk/src/prompt/flows/get-prompt.flow.ts
3
- Object.defineProperty(exports, "__esModule", { value: true });
4
- const tslib_1 = require("tslib");
5
- const common_1 = require("../../common");
6
- const zod_1 = require("zod");
7
- const types_js_1 = require("@modelcontextprotocol/sdk/types.js");
8
- const errors_1 = require("../../errors");
9
- const inputSchema = zod_1.z.object({
10
- request: types_js_1.GetPromptRequestSchema,
11
- // z.any() used because ctx is the MCP SDK's PromptGetExtra type which varies by SDK version
12
- ctx: zod_1.z.any(),
13
- });
14
- const outputSchema = types_js_1.GetPromptResultSchema;
15
- const stateSchema = zod_1.z.object({
16
- input: zod_1.z.object({
17
- name: zod_1.z.string().min(1),
18
- arguments: zod_1.z.record(zod_1.z.string(), zod_1.z.string()).optional(),
19
- }),
20
- // Prompt owner ID for hook filtering during execution
21
- promptOwnerId: zod_1.z.string().optional(),
22
- // z.any() used because AuthInfo is a complex external type from @modelcontextprotocol/sdk
23
- authInfo: zod_1.z.any().optional(),
24
- // z.any() used because PromptEntry is a complex abstract class type
25
- prompt: zod_1.z.any(),
26
- // Cached parsed arguments to avoid parsing twice (once in createPromptContext, once in execute)
27
- parsedArgs: zod_1.z.record(zod_1.z.string(), zod_1.z.string()).optional(),
28
- // z.any() used because PromptContext is a complex abstract class type
29
- promptContext: zod_1.z.any(),
30
- // z.any() used because prompt output type varies by prompt implementation
31
- rawOutput: zod_1.z.any().optional(),
32
- output: outputSchema,
33
- });
34
- const plan = {
35
- pre: ['parseInput', 'findPrompt', 'createPromptContext'],
36
- execute: ['execute', 'validateOutput'],
37
- finalize: ['finalize'],
38
- };
39
- const name = 'prompts:get-prompt';
40
- const { Stage } = (0, common_1.FlowHooksOf)(name);
41
- let GetPromptFlow = class GetPromptFlow extends common_1.FlowBase {
42
- logger = this.scopeLogger.child('GetPromptFlow');
43
- async parseInput() {
44
- this.logger.verbose('parseInput:start');
45
- let method;
46
- let params;
47
- let ctx;
48
- try {
49
- const inputData = inputSchema.parse(this.rawInput);
50
- method = inputData.request.method;
51
- params = inputData.request.params;
52
- ctx = inputData.ctx;
53
- }
54
- catch (e) {
55
- throw new errors_1.InvalidInputError('Invalid Input', e instanceof zod_1.z.ZodError ? e.issues : undefined);
56
- }
57
- if (method !== 'prompts/get') {
58
- this.logger.warn(`parseInput: invalid method "${method}"`);
59
- throw new errors_1.InvalidMethodError(method, 'prompts/get');
60
- }
61
- this.state.set({
62
- input: {
63
- name: params.name,
64
- arguments: params.arguments,
65
- },
66
- authInfo: ctx.authInfo,
67
- });
68
- this.logger.verbose('parseInput:done');
69
- }
70
- async findPrompt() {
71
- this.logger.verbose('findPrompt:start');
72
- const { name } = this.state.required.input;
73
- this.logger.info(`findPrompt: looking for prompt with name "${name}"`);
74
- // Try to find a prompt that matches this name
75
- const prompt = this.scope.prompts.findByName(name);
76
- if (!prompt) {
77
- this.logger.warn(`findPrompt: prompt "${name}" not found`);
78
- throw new errors_1.PromptNotFoundError(name);
79
- }
80
- // Store prompt owner ID in state for hook filtering during execution
81
- this.state.set('promptOwnerId', prompt.owner?.id);
82
- this.logger = this.logger.child(`GetPromptFlow(${name})`);
83
- this.state.set('prompt', prompt);
84
- this.logger.info(`findPrompt: prompt "${prompt.name}" found`);
85
- this.logger.verbose('findPrompt:done');
86
- }
87
- async createPromptContext() {
88
- this.logger.verbose('createPromptContext:start');
89
- const { ctx } = this.input;
90
- const { prompt, input } = this.state.required;
91
- try {
92
- // Parse and validate arguments, cache for reuse in execute stage
93
- const parsedArgs = prompt.parseArguments(input.arguments);
94
- this.state.set('parsedArgs', parsedArgs);
95
- const context = prompt.create(parsedArgs, ctx);
96
- const promptHooks = this.scope.hooks.getClsHooks(prompt.record.provide).map((hook) => {
97
- hook.run = async () => {
98
- return context[hook.metadata.method]();
99
- };
100
- return hook;
101
- });
102
- this.appendContextHooks(promptHooks);
103
- context.mark('createPromptContext');
104
- this.state.set('promptContext', context);
105
- this.logger.verbose('createPromptContext:done');
106
- }
107
- catch (error) {
108
- this.logger.error('createPromptContext: failed to create context', error);
109
- throw new errors_1.PromptExecutionError(input.name, error instanceof Error ? error : undefined);
110
- }
111
- }
112
- async execute() {
113
- this.logger.verbose('execute:start');
114
- const promptContext = this.state.promptContext;
115
- const { input, parsedArgs } = this.state.required;
116
- if (!promptContext) {
117
- this.logger.warn('execute: promptContext not found, skipping execution');
118
- return;
119
- }
120
- promptContext.mark('execute');
121
- try {
122
- // Use cached parsed arguments from createPromptContext stage
123
- promptContext.output = await promptContext.execute(parsedArgs);
124
- this.logger.verbose('execute:done');
125
- }
126
- catch (error) {
127
- this.logger.error('execute: prompt execution failed', error);
128
- throw new errors_1.PromptExecutionError(input.name, error instanceof Error ? error : undefined);
129
- }
130
- }
131
- async validateOutput() {
132
- this.logger.verbose('validateOutput:start');
133
- const { promptContext } = this.state;
134
- if (!promptContext) {
135
- this.logger.warn('validateOutput: promptContext not found, skipping validation');
136
- return;
137
- }
138
- promptContext.mark('validateOutput');
139
- // Store the RAW output for plugins to inspect
140
- this.state.set('rawOutput', promptContext.output);
141
- this.logger.verbose('validateOutput:done');
142
- }
143
- async finalize() {
144
- this.logger.verbose('finalize:start');
145
- const { prompt, rawOutput, input } = this.state;
146
- if (!prompt) {
147
- this.logger.error('finalize: prompt not found in state');
148
- throw new errors_1.PromptExecutionError('unknown', new Error('Prompt not found in state'));
149
- }
150
- if (rawOutput === undefined) {
151
- this.logger.error('finalize: prompt output not found in state');
152
- throw new errors_1.PromptExecutionError(input?.name || 'unknown', new Error('Prompt output not found'));
153
- }
154
- // Parse and construct the MCP-compliant output using safeParseOutput
155
- const parseResult = prompt.safeParseOutput(rawOutput);
156
- if (!parseResult.success) {
157
- this.logger.error('finalize: output validation failed', {
158
- prompt: prompt.metadata.name,
159
- errors: parseResult.error,
160
- });
161
- throw new errors_1.InvalidOutputError();
162
- }
163
- // Respond with the properly formatted MCP result
164
- this.respond(parseResult.data);
165
- this.logger.verbose('finalize:done');
166
- }
167
- };
168
- tslib_1.__decorate([
169
- Stage('parseInput'),
170
- tslib_1.__metadata("design:type", Function),
171
- tslib_1.__metadata("design:paramtypes", []),
172
- tslib_1.__metadata("design:returntype", Promise)
173
- ], GetPromptFlow.prototype, "parseInput", null);
174
- tslib_1.__decorate([
175
- Stage('findPrompt'),
176
- tslib_1.__metadata("design:type", Function),
177
- tslib_1.__metadata("design:paramtypes", []),
178
- tslib_1.__metadata("design:returntype", Promise)
179
- ], GetPromptFlow.prototype, "findPrompt", null);
180
- tslib_1.__decorate([
181
- Stage('createPromptContext'),
182
- tslib_1.__metadata("design:type", Function),
183
- tslib_1.__metadata("design:paramtypes", []),
184
- tslib_1.__metadata("design:returntype", Promise)
185
- ], GetPromptFlow.prototype, "createPromptContext", null);
186
- tslib_1.__decorate([
187
- Stage('execute'),
188
- tslib_1.__metadata("design:type", Function),
189
- tslib_1.__metadata("design:paramtypes", []),
190
- tslib_1.__metadata("design:returntype", Promise)
191
- ], GetPromptFlow.prototype, "execute", null);
192
- tslib_1.__decorate([
193
- Stage('validateOutput'),
194
- tslib_1.__metadata("design:type", Function),
195
- tslib_1.__metadata("design:paramtypes", []),
196
- tslib_1.__metadata("design:returntype", Promise)
197
- ], GetPromptFlow.prototype, "validateOutput", null);
198
- tslib_1.__decorate([
199
- Stage('finalize'),
200
- tslib_1.__metadata("design:type", Function),
201
- tslib_1.__metadata("design:paramtypes", []),
202
- tslib_1.__metadata("design:returntype", Promise)
203
- ], GetPromptFlow.prototype, "finalize", null);
204
- GetPromptFlow = tslib_1.__decorate([
205
- (0, common_1.Flow)({
206
- name,
207
- plan,
208
- inputSchema,
209
- outputSchema,
210
- access: 'authorized',
211
- })
212
- ], GetPromptFlow);
213
- exports.default = GetPromptFlow;
214
- //# sourceMappingURL=get-prompt.flow.js.map