@frontmcp/sdk 0.4.0 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (558) hide show
  1. package/README.md +30 -18
  2. package/package.json +20 -5
  3. package/src/app/app.registry.d.ts +3 -2
  4. package/src/app/app.registry.js +3 -1
  5. package/src/app/app.registry.js.map +1 -1
  6. package/src/app/instances/app.local.instance.js +2 -2
  7. package/src/app/instances/app.local.instance.js.map +1 -1
  8. package/src/auth/auth.registry.d.ts +34 -2
  9. package/src/auth/auth.registry.js +162 -24
  10. package/src/auth/auth.registry.js.map +1 -1
  11. package/src/auth/auth.utils.js +8 -9
  12. package/src/auth/auth.utils.js.map +1 -1
  13. package/src/auth/authorization/authorization.class.d.ts +125 -0
  14. package/src/auth/authorization/authorization.class.js +224 -0
  15. package/src/auth/authorization/authorization.class.js.map +1 -0
  16. package/src/auth/authorization/authorization.types.d.ts +300 -0
  17. package/src/auth/authorization/authorization.types.js +79 -0
  18. package/src/auth/authorization/authorization.types.js.map +1 -0
  19. package/src/auth/authorization/index.d.ts +5 -0
  20. package/src/auth/authorization/index.js +19 -0
  21. package/src/auth/authorization/index.js.map +1 -0
  22. package/src/auth/authorization/orchestrated.authorization.d.ts +242 -0
  23. package/src/auth/authorization/orchestrated.authorization.js +306 -0
  24. package/src/auth/authorization/orchestrated.authorization.js.map +1 -0
  25. package/src/auth/authorization/public.authorization.d.ts +91 -0
  26. package/src/auth/authorization/public.authorization.js +132 -0
  27. package/src/auth/authorization/public.authorization.js.map +1 -0
  28. package/src/auth/authorization/transparent.authorization.d.ts +130 -0
  29. package/src/auth/authorization/transparent.authorization.js +147 -0
  30. package/src/auth/authorization/transparent.authorization.js.map +1 -0
  31. package/src/auth/consent/consent.types.d.ts +111 -0
  32. package/src/auth/consent/consent.types.js +119 -0
  33. package/src/auth/consent/consent.types.js.map +1 -0
  34. package/src/auth/consent/index.d.ts +1 -0
  35. package/src/auth/consent/index.js +13 -0
  36. package/src/auth/consent/index.js.map +1 -0
  37. package/src/auth/detection/auth-provider-detection.d.ts +84 -0
  38. package/src/auth/detection/auth-provider-detection.js +230 -0
  39. package/src/auth/detection/auth-provider-detection.js.map +1 -0
  40. package/src/auth/detection/index.d.ts +1 -0
  41. package/src/auth/detection/index.js +15 -0
  42. package/src/auth/detection/index.js.map +1 -0
  43. package/src/auth/flows/auth.verify.flow.d.ts +110 -0
  44. package/src/auth/flows/auth.verify.flow.js +379 -0
  45. package/src/auth/flows/auth.verify.flow.js.map +1 -0
  46. package/src/auth/flows/oauth.authorize.flow.d.ts +118 -164
  47. package/src/auth/flows/oauth.authorize.flow.js +701 -33
  48. package/src/auth/flows/oauth.authorize.flow.js.map +1 -1
  49. package/src/auth/flows/oauth.callback.flow.d.ts +117 -0
  50. package/src/auth/flows/oauth.callback.flow.js +357 -0
  51. package/src/auth/flows/oauth.callback.flow.js.map +1 -0
  52. package/src/auth/flows/oauth.register.flow.d.ts +32 -125
  53. package/src/auth/flows/oauth.token.flow.d.ts +52 -154
  54. package/src/auth/flows/oauth.token.flow.js +193 -55
  55. package/src/auth/flows/oauth.token.flow.js.map +1 -1
  56. package/src/auth/flows/session.verify.flow.d.ts +66 -321
  57. package/src/auth/flows/session.verify.flow.js +107 -18
  58. package/src/auth/flows/session.verify.flow.js.map +1 -1
  59. package/src/auth/flows/well-known.jwks.flow.d.ts +34 -205
  60. package/src/auth/flows/well-known.jwks.flow.js +15 -8
  61. package/src/auth/flows/well-known.jwks.flow.js.map +1 -1
  62. package/src/auth/flows/well-known.oauth-authorization-server.flow.d.ts +48 -223
  63. package/src/auth/flows/well-known.oauth-authorization-server.flow.js +2 -3
  64. package/src/auth/flows/well-known.oauth-authorization-server.flow.js.map +1 -1
  65. package/src/auth/flows/well-known.prm.flow.d.ts +19 -120
  66. package/src/auth/flows/well-known.prm.flow.js +3 -4
  67. package/src/auth/flows/well-known.prm.flow.js.map +1 -1
  68. package/src/auth/instances/instance.local-primary-auth.d.ts +91 -4
  69. package/src/auth/instances/instance.local-primary-auth.js +236 -6
  70. package/src/auth/instances/instance.local-primary-auth.js.map +1 -1
  71. package/src/auth/instances/instance.remote-primary-auth.d.ts +4 -3
  72. package/src/auth/instances/instance.remote-primary-auth.js +2 -2
  73. package/src/auth/instances/instance.remote-primary-auth.js.map +1 -1
  74. package/src/auth/session/authorization-vault.d.ts +611 -0
  75. package/src/auth/session/authorization-vault.js +817 -0
  76. package/src/auth/session/authorization-vault.js.map +1 -0
  77. package/src/auth/session/authorization.store.d.ts +301 -0
  78. package/src/auth/session/authorization.store.js +323 -0
  79. package/src/auth/session/authorization.store.js.map +1 -0
  80. package/src/auth/session/encrypted-authorization-vault.d.ts +181 -0
  81. package/src/auth/session/encrypted-authorization-vault.js +493 -0
  82. package/src/auth/session/encrypted-authorization-vault.js.map +1 -0
  83. package/src/auth/session/index.d.ts +4 -4
  84. package/src/auth/session/index.js +11 -7
  85. package/src/auth/session/index.js.map +1 -1
  86. package/src/auth/session/session.schema.d.ts +1 -1
  87. package/src/auth/session/session.service.d.ts +1 -1
  88. package/src/auth/session/transport-session.manager.d.ts +101 -0
  89. package/src/auth/session/transport-session.manager.js +300 -0
  90. package/src/auth/session/transport-session.manager.js.map +1 -0
  91. package/src/auth/session/transport-session.types.d.ts +457 -0
  92. package/src/auth/session/transport-session.types.js +110 -0
  93. package/src/auth/session/transport-session.types.js.map +1 -0
  94. package/src/auth/session/utils/session-id.utils.d.ts +14 -2
  95. package/src/auth/session/utils/session-id.utils.js +68 -19
  96. package/src/auth/session/utils/session-id.utils.js.map +1 -1
  97. package/src/auth/session/vault-encryption.d.ts +189 -0
  98. package/src/auth/session/vault-encryption.js +263 -0
  99. package/src/auth/session/vault-encryption.js.map +1 -0
  100. package/src/auth/ui/base-layout.d.ts +188 -0
  101. package/src/auth/ui/base-layout.js +292 -0
  102. package/src/auth/ui/base-layout.js.map +1 -0
  103. package/src/auth/ui/htmx-templates.d.ts +135 -0
  104. package/src/auth/ui/htmx-templates.js +433 -0
  105. package/src/auth/ui/htmx-templates.js.map +1 -0
  106. package/src/auth/ui/index.d.ts +11 -0
  107. package/src/auth/ui/index.js +35 -0
  108. package/src/auth/ui/index.js.map +1 -0
  109. package/src/auth/utils/audience.validator.d.ts +129 -0
  110. package/src/auth/utils/audience.validator.js +196 -0
  111. package/src/auth/utils/audience.validator.js.map +1 -0
  112. package/src/auth/utils/index.d.ts +2 -0
  113. package/src/auth/utils/index.js +7 -0
  114. package/src/auth/utils/index.js.map +1 -0
  115. package/src/auth/utils/www-authenticate.utils.d.ts +97 -0
  116. package/src/auth/utils/www-authenticate.utils.js +183 -0
  117. package/src/auth/utils/www-authenticate.utils.js.map +1 -0
  118. package/src/common/common.schema.d.ts +2 -16
  119. package/src/common/constants.d.ts +3 -0
  120. package/src/common/constants.js +6 -1
  121. package/src/common/constants.js.map +1 -1
  122. package/src/common/decorators/decorator-utils.d.ts +131 -0
  123. package/src/common/decorators/decorator-utils.js +195 -0
  124. package/src/common/decorators/decorator-utils.js.map +1 -0
  125. package/src/common/decorators/front-mcp.decorator.js +3 -2
  126. package/src/common/decorators/front-mcp.decorator.js.map +1 -1
  127. package/src/common/decorators/hook.decorator.d.ts +58 -2
  128. package/src/common/decorators/hook.decorator.js +127 -17
  129. package/src/common/decorators/hook.decorator.js.map +1 -1
  130. package/src/common/decorators/plugin.decorator.d.ts +1 -1
  131. package/src/common/decorators/plugin.decorator.js +11 -10
  132. package/src/common/decorators/plugin.decorator.js.map +1 -1
  133. package/src/common/decorators/resource.decorator.d.ts +32 -3
  134. package/src/common/decorators/resource.decorator.js +46 -4
  135. package/src/common/decorators/resource.decorator.js.map +1 -1
  136. package/src/common/decorators/tool.decorator.d.ts +54 -5
  137. package/src/common/decorators/tool.decorator.js.map +1 -1
  138. package/src/common/dynamic/dynamic.plugin.d.ts +22 -11
  139. package/src/common/dynamic/dynamic.plugin.js +7 -1
  140. package/src/common/dynamic/dynamic.plugin.js.map +1 -1
  141. package/src/common/entries/prompt.entry.d.ts +46 -2
  142. package/src/common/entries/prompt.entry.js +10 -0
  143. package/src/common/entries/prompt.entry.js.map +1 -1
  144. package/src/common/entries/resource.entry.d.ts +69 -6
  145. package/src/common/entries/resource.entry.js +27 -3
  146. package/src/common/entries/resource.entry.js.map +1 -1
  147. package/src/common/entries/scope.entry.d.ts +5 -1
  148. package/src/common/entries/scope.entry.js +3 -3
  149. package/src/common/entries/scope.entry.js.map +1 -1
  150. package/src/common/flow/flow.utils.d.ts +56 -0
  151. package/src/common/flow/flow.utils.js +96 -0
  152. package/src/common/flow/flow.utils.js.map +1 -0
  153. package/src/common/index.d.ts +2 -2
  154. package/src/common/index.js +2 -2
  155. package/src/common/index.js.map +1 -1
  156. package/src/common/interfaces/execution-context.interface.d.ts +59 -0
  157. package/src/common/interfaces/execution-context.interface.js +81 -0
  158. package/src/common/interfaces/execution-context.interface.js.map +1 -0
  159. package/src/common/interfaces/flow.interface.d.ts +1 -1
  160. package/src/common/interfaces/flow.interface.js.map +1 -1
  161. package/src/common/interfaces/index.d.ts +1 -0
  162. package/src/common/interfaces/index.js +1 -0
  163. package/src/common/interfaces/index.js.map +1 -1
  164. package/src/common/interfaces/internal/primary-auth-provider.interface.d.ts +17 -2
  165. package/src/common/interfaces/internal/primary-auth-provider.interface.js +52 -4
  166. package/src/common/interfaces/internal/primary-auth-provider.interface.js.map +1 -1
  167. package/src/common/interfaces/internal/registry.interface.d.ts +16 -2
  168. package/src/common/interfaces/internal/registry.interface.js.map +1 -1
  169. package/src/common/interfaces/plugin.interface.js.map +1 -1
  170. package/src/common/interfaces/prompt.interface.d.ts +53 -4
  171. package/src/common/interfaces/prompt.interface.js +78 -0
  172. package/src/common/interfaces/prompt.interface.js.map +1 -1
  173. package/src/common/interfaces/resource.interface.d.ts +47 -17
  174. package/src/common/interfaces/resource.interface.js +53 -0
  175. package/src/common/interfaces/resource.interface.js.map +1 -1
  176. package/src/common/interfaces/tool.interface.d.ts +39 -22
  177. package/src/common/interfaces/tool.interface.js +61 -34
  178. package/src/common/interfaces/tool.interface.js.map +1 -1
  179. package/src/common/metadata/adapter.metadata.d.ts +1 -9
  180. package/src/common/metadata/app.metadata.d.ts +425 -730
  181. package/src/common/metadata/auth-provider.metadata.d.ts +2 -12
  182. package/src/common/metadata/flow.metadata.d.ts +10 -25
  183. package/src/common/metadata/front-mcp.metadata.d.ts +602 -1023
  184. package/src/common/metadata/front-mcp.metadata.js +6 -4
  185. package/src/common/metadata/front-mcp.metadata.js.map +1 -1
  186. package/src/common/metadata/hook.metadata.d.ts +1 -1
  187. package/src/common/metadata/hook.metadata.js.map +1 -1
  188. package/src/common/metadata/index.d.ts +1 -0
  189. package/src/common/metadata/index.js +1 -0
  190. package/src/common/metadata/index.js.map +1 -1
  191. package/src/common/metadata/logger.metadata.d.ts +1 -9
  192. package/src/common/metadata/plugin.metadata.d.ts +8 -30
  193. package/src/common/metadata/prompt.metadata.d.ts +4 -161
  194. package/src/common/metadata/provider.metadata.d.ts +2 -12
  195. package/src/common/metadata/resource.metadata.d.ts +6 -98
  196. package/src/common/metadata/resource.metadata.js +15 -6
  197. package/src/common/metadata/resource.metadata.js.map +1 -1
  198. package/src/common/metadata/tool-ui.metadata.d.ts +10 -0
  199. package/src/common/metadata/tool-ui.metadata.js +12 -0
  200. package/src/common/metadata/tool-ui.metadata.js.map +1 -0
  201. package/src/common/metadata/tool.metadata.d.ts +78 -199
  202. package/src/common/metadata/tool.metadata.js +11 -14
  203. package/src/common/metadata/tool.metadata.js.map +1 -1
  204. package/src/common/providers/base-config.provider.d.ts +84 -0
  205. package/src/common/providers/base-config.provider.js +128 -0
  206. package/src/common/providers/base-config.provider.js.map +1 -0
  207. package/src/common/records/plugin.record.d.ts +5 -6
  208. package/src/common/records/plugin.record.js.map +1 -1
  209. package/src/common/records/prompt.record.js.map +1 -1
  210. package/src/common/records/resource.record.d.ts +17 -1
  211. package/src/common/records/resource.record.js +12 -6
  212. package/src/common/records/resource.record.js.map +1 -1
  213. package/src/common/records/tool.record.js.map +1 -1
  214. package/src/common/schemas/annotated-class.schema.d.ts +9 -9
  215. package/src/common/schemas/annotated-class.schema.js +92 -27
  216. package/src/common/schemas/annotated-class.schema.js.map +1 -1
  217. package/src/common/schemas/http-input.schema.d.ts +6 -30
  218. package/src/common/schemas/http-output.schema.d.ts +326 -1630
  219. package/src/common/schemas/http-output.schema.js +39 -1
  220. package/src/common/schemas/http-output.schema.js.map +1 -1
  221. package/src/common/tokens/front-mcp.tokens.js +4 -1
  222. package/src/common/tokens/front-mcp.tokens.js.map +1 -1
  223. package/src/common/tokens/resource.tokens.d.ts +2 -0
  224. package/src/common/tokens/resource.tokens.js +4 -1
  225. package/src/common/tokens/resource.tokens.js.map +1 -1
  226. package/src/common/tokens/tool.tokens.d.ts +2 -0
  227. package/src/common/tokens/tool.tokens.js +2 -0
  228. package/src/common/tokens/tool.tokens.js.map +1 -1
  229. package/src/common/types/auth/jwt.types.d.ts +5 -31
  230. package/src/common/types/auth/session.types.d.ts +97 -192
  231. package/src/common/types/auth/session.types.js +24 -11
  232. package/src/common/types/auth/session.types.js.map +1 -1
  233. package/src/common/types/options/auth.options.d.ts +1013 -490
  234. package/src/common/types/options/auth.options.js +554 -36
  235. package/src/common/types/options/auth.options.js.map +1 -1
  236. package/src/common/types/options/http.options.d.ts +1 -9
  237. package/src/common/types/options/logging.options.d.ts +7 -13
  238. package/src/common/types/options/logging.options.js +4 -0
  239. package/src/common/types/options/logging.options.js.map +1 -1
  240. package/src/common/types/options/server-info.options.d.ts +3 -31
  241. package/src/common/types/options/session.options.d.ts +90 -10
  242. package/src/common/types/options/session.options.js +26 -3
  243. package/src/common/types/options/session.options.js.map +1 -1
  244. package/src/common/utils/decide-request-intent.utils.d.ts +8 -46
  245. package/src/common/utils/decide-request-intent.utils.js +88 -23
  246. package/src/common/utils/decide-request-intent.utils.js.map +1 -1
  247. package/src/completion/flows/complete.flow.d.ts +74 -0
  248. package/src/completion/flows/complete.flow.js +199 -0
  249. package/src/completion/flows/complete.flow.js.map +1 -0
  250. package/src/errors/authorization-required.error.d.ts +189 -0
  251. package/src/errors/authorization-required.error.js +274 -0
  252. package/src/errors/authorization-required.error.js.map +1 -0
  253. package/src/errors/index.d.ts +2 -1
  254. package/src/errors/index.js +17 -1
  255. package/src/errors/index.js.map +1 -1
  256. package/src/errors/mcp.error.d.ts +101 -1
  257. package/src/errors/mcp.error.js +147 -2
  258. package/src/errors/mcp.error.js.map +1 -1
  259. package/src/flows/flow.instance.js +4 -3
  260. package/src/flows/flow.instance.js.map +1 -1
  261. package/src/flows/flow.registry.js.map +1 -1
  262. package/src/flows/flow.stages.js +14 -11
  263. package/src/flows/flow.stages.js.map +1 -1
  264. package/src/front-mcp/front-mcp.providers.d.ts +464 -102
  265. package/src/front-mcp/front-mcp.providers.js +3 -5
  266. package/src/front-mcp/front-mcp.providers.js.map +1 -1
  267. package/src/hooks/hook.instance.d.ts +1 -1
  268. package/src/hooks/hook.instance.js +5 -2
  269. package/src/hooks/hook.instance.js.map +1 -1
  270. package/src/hooks/hook.registry.js +7 -5
  271. package/src/hooks/hook.registry.js.map +1 -1
  272. package/src/index.d.ts +28 -9
  273. package/src/index.js +5 -1
  274. package/src/index.js.map +1 -1
  275. package/src/logger/instances/instance.logger.js +3 -2
  276. package/src/logger/instances/instance.logger.js.map +1 -1
  277. package/src/logger/logger.registry.js +7 -2
  278. package/src/logger/logger.registry.js.map +1 -1
  279. package/src/logging/flows/set-level.flow.d.ts +62 -0
  280. package/src/logging/flows/set-level.flow.js +108 -0
  281. package/src/logging/flows/set-level.flow.js.map +1 -0
  282. package/src/mcp-apps/csp.d.ts +111 -0
  283. package/src/mcp-apps/csp.js +267 -0
  284. package/src/mcp-apps/csp.js.map +1 -0
  285. package/src/mcp-apps/index.d.ts +23 -0
  286. package/src/mcp-apps/index.js +91 -0
  287. package/src/mcp-apps/index.js.map +1 -0
  288. package/src/mcp-apps/schemas.d.ts +403 -0
  289. package/src/mcp-apps/schemas.js +345 -0
  290. package/src/mcp-apps/schemas.js.map +1 -0
  291. package/src/mcp-apps/template.d.ts +94 -0
  292. package/src/mcp-apps/template.js +419 -0
  293. package/src/mcp-apps/template.js.map +1 -0
  294. package/src/mcp-apps/types.d.ts +323 -0
  295. package/src/mcp-apps/types.js +59 -0
  296. package/src/mcp-apps/types.js.map +1 -0
  297. package/src/notification/index.d.ts +1 -0
  298. package/src/notification/index.js +13 -0
  299. package/src/notification/index.js.map +1 -0
  300. package/src/notification/notification.service.d.ts +378 -0
  301. package/src/notification/notification.service.js +727 -0
  302. package/src/notification/notification.service.js.map +1 -0
  303. package/src/plugin/plugin.registry.js +12 -9
  304. package/src/plugin/plugin.registry.js.map +1 -1
  305. package/src/prompt/flows/get-prompt.flow.d.ts +153 -0
  306. package/src/prompt/flows/get-prompt.flow.js +214 -0
  307. package/src/prompt/flows/get-prompt.flow.js.map +1 -0
  308. package/src/prompt/flows/prompts-list.flow.d.ts +67 -0
  309. package/src/prompt/flows/prompts-list.flow.js +176 -0
  310. package/src/prompt/flows/prompts-list.flow.js.map +1 -0
  311. package/src/prompt/index.d.ts +7 -0
  312. package/src/prompt/index.js +17 -0
  313. package/src/prompt/index.js.map +1 -0
  314. package/src/prompt/prompt.events.d.ts +17 -0
  315. package/src/prompt/prompt.events.js +25 -0
  316. package/src/prompt/prompt.events.js.map +1 -0
  317. package/src/prompt/prompt.instance.d.ts +30 -0
  318. package/src/prompt/prompt.instance.js +120 -0
  319. package/src/prompt/prompt.instance.js.map +1 -0
  320. package/src/prompt/prompt.registry.d.ts +79 -12
  321. package/src/prompt/prompt.registry.js +360 -15
  322. package/src/prompt/prompt.registry.js.map +1 -1
  323. package/src/prompt/prompt.types.d.ts +26 -0
  324. package/src/prompt/prompt.types.js +11 -0
  325. package/src/prompt/prompt.types.js.map +1 -0
  326. package/src/prompt/prompt.utils.d.ts +26 -0
  327. package/src/prompt/prompt.utils.js +136 -0
  328. package/src/prompt/prompt.utils.js.map +1 -0
  329. package/src/provider/provider.registry.d.ts +12 -5
  330. package/src/provider/provider.registry.js +30 -138
  331. package/src/provider/provider.registry.js.map +1 -1
  332. package/src/regsitry/registry.base.d.ts +1 -1
  333. package/src/regsitry/registry.base.js.map +1 -1
  334. package/src/resource/flows/read-resource.flow.d.ts +91 -0
  335. package/src/resource/flows/read-resource.flow.js +270 -0
  336. package/src/resource/flows/read-resource.flow.js.map +1 -0
  337. package/src/resource/flows/resource-templates-list.flow.d.ts +64 -0
  338. package/src/resource/flows/resource-templates-list.flow.js +191 -0
  339. package/src/resource/flows/resource-templates-list.flow.js.map +1 -0
  340. package/src/resource/flows/resources-list.flow.d.ts +64 -0
  341. package/src/resource/flows/resources-list.flow.js +196 -0
  342. package/src/resource/flows/resources-list.flow.js.map +1 -0
  343. package/src/resource/flows/subscribe-resource.flow.d.ts +45 -0
  344. package/src/resource/flows/subscribe-resource.flow.js +123 -0
  345. package/src/resource/flows/subscribe-resource.flow.js.map +1 -0
  346. package/src/resource/flows/unsubscribe-resource.flow.d.ts +44 -0
  347. package/src/resource/flows/unsubscribe-resource.flow.js +107 -0
  348. package/src/resource/flows/unsubscribe-resource.flow.js.map +1 -0
  349. package/src/resource/index.d.ts +8 -0
  350. package/src/resource/index.js +20 -0
  351. package/src/resource/index.js.map +1 -0
  352. package/src/resource/resource.events.d.ts +24 -0
  353. package/src/resource/resource.events.js +17 -0
  354. package/src/resource/resource.events.js.map +1 -0
  355. package/src/resource/resource.instance.d.ts +35 -0
  356. package/src/resource/resource.instance.js +163 -0
  357. package/src/resource/resource.instance.js.map +1 -0
  358. package/src/resource/resource.registry.d.ts +106 -12
  359. package/src/resource/resource.registry.js +449 -13
  360. package/src/resource/resource.registry.js.map +1 -1
  361. package/src/resource/resource.types.d.ts +35 -0
  362. package/src/resource/resource.types.js +11 -0
  363. package/src/resource/resource.types.js.map +1 -0
  364. package/src/resource/resource.utils.d.ts +30 -0
  365. package/src/resource/resource.utils.js +151 -0
  366. package/src/resource/resource.utils.js.map +1 -0
  367. package/src/scope/flows/http.request.flow.d.ts +48 -330
  368. package/src/scope/flows/http.request.flow.js +306 -78
  369. package/src/scope/flows/http.request.flow.js.map +1 -1
  370. package/src/scope/scope.instance.d.ts +12 -0
  371. package/src/scope/scope.instance.js +145 -15
  372. package/src/scope/scope.instance.js.map +1 -1
  373. package/src/tool/flows/call-tool.flow.d.ts +64 -1110
  374. package/src/tool/flows/call-tool.flow.js +303 -15
  375. package/src/tool/flows/call-tool.flow.js.map +1 -1
  376. package/src/tool/flows/tools-list.flow.d.ts +32 -473
  377. package/src/tool/flows/tools-list.flow.js +111 -10
  378. package/src/tool/flows/tools-list.flow.js.map +1 -1
  379. package/src/tool/tool.events.d.ts +8 -1
  380. package/src/tool/tool.events.js.map +1 -1
  381. package/src/tool/tool.instance.d.ts +3 -1
  382. package/src/tool/tool.instance.js +17 -3
  383. package/src/tool/tool.instance.js.map +1 -1
  384. package/src/tool/tool.registry.d.ts +7 -1
  385. package/src/tool/tool.registry.js +26 -10
  386. package/src/tool/tool.registry.js.map +1 -1
  387. package/src/tool/tool.types.d.ts +4 -4
  388. package/src/tool/tool.types.js.map +1 -1
  389. package/src/tool/tool.utils.d.ts +3 -12
  390. package/src/tool/tool.utils.js +39 -193
  391. package/src/tool/tool.utils.js.map +1 -1
  392. package/src/tool/ui/index.d.ts +22 -0
  393. package/src/tool/ui/index.js +63 -0
  394. package/src/tool/ui/index.js.map +1 -0
  395. package/src/tool/ui/platform-adapters.d.ts +10 -0
  396. package/src/tool/ui/platform-adapters.js +18 -0
  397. package/src/tool/ui/platform-adapters.js.map +1 -0
  398. package/src/tool/ui/template-helpers.d.ts +46 -0
  399. package/src/tool/ui/template-helpers.js +112 -0
  400. package/src/tool/ui/template-helpers.js.map +1 -0
  401. package/src/tool/ui/ui-resource-template.d.ts +34 -0
  402. package/src/tool/ui/ui-resource-template.js +64 -0
  403. package/src/tool/ui/ui-resource-template.js.map +1 -0
  404. package/src/tool/ui/ui-resource.handler.d.ts +74 -0
  405. package/src/tool/ui/ui-resource.handler.js +129 -0
  406. package/src/tool/ui/ui-resource.handler.js.map +1 -0
  407. package/src/transport/adapters/transport.local.adapter.d.ts +2 -2
  408. package/src/transport/adapters/transport.local.adapter.js +28 -7
  409. package/src/transport/adapters/transport.local.adapter.js.map +1 -1
  410. package/src/transport/adapters/transport.sse.adapter.d.ts +2 -2
  411. package/src/transport/adapters/transport.sse.adapter.js +4 -3
  412. package/src/transport/adapters/transport.sse.adapter.js.map +1 -1
  413. package/src/transport/adapters/transport.streamable-http.adapter.d.ts +10 -3
  414. package/src/transport/adapters/transport.streamable-http.adapter.js +54 -8
  415. package/src/transport/adapters/transport.streamable-http.adapter.js.map +1 -1
  416. package/src/transport/flows/handle.sse.flow.d.ts +29 -63
  417. package/src/transport/flows/handle.sse.flow.js +78 -10
  418. package/src/transport/flows/handle.sse.flow.js.map +1 -1
  419. package/src/transport/flows/handle.stateless-http.flow.d.ts +29 -0
  420. package/src/transport/flows/handle.stateless-http.flow.js +102 -0
  421. package/src/transport/flows/handle.stateless-http.flow.js.map +1 -0
  422. package/src/transport/flows/handle.streamable-http.flow.d.ts +32 -64
  423. package/src/transport/flows/handle.streamable-http.flow.js +158 -26
  424. package/src/transport/flows/handle.streamable-http.flow.js.map +1 -1
  425. package/src/transport/legacy/legacy.sse.tranporter.d.ts +9 -0
  426. package/src/transport/legacy/legacy.sse.tranporter.js +17 -2
  427. package/src/transport/legacy/legacy.sse.tranporter.js.map +1 -1
  428. package/src/transport/mcp-handlers/call-tool-request.handler.js +27 -1
  429. package/src/transport/mcp-handlers/call-tool-request.handler.js.map +1 -1
  430. package/src/transport/mcp-handlers/complete-request.handler.d.ts +69 -0
  431. package/src/transport/mcp-handlers/complete-request.handler.js +11 -0
  432. package/src/transport/mcp-handlers/complete-request.handler.js.map +1 -0
  433. package/src/transport/mcp-handlers/get-prompt-request.handler.d.ts +87 -0
  434. package/src/transport/mcp-handlers/get-prompt-request.handler.js +11 -0
  435. package/src/transport/mcp-handlers/get-prompt-request.handler.js.map +1 -0
  436. package/src/transport/mcp-handlers/index.d.ts +517 -208
  437. package/src/transport/mcp-handlers/index.js +39 -2
  438. package/src/transport/mcp-handlers/index.js.map +1 -1
  439. package/src/transport/mcp-handlers/initialize-request.handler.d.ts +1 -1
  440. package/src/transport/mcp-handlers/initialize-request.handler.js +73 -7
  441. package/src/transport/mcp-handlers/initialize-request.handler.js.map +1 -1
  442. package/src/transport/mcp-handlers/list-prompts-request.handler.d.ts +54 -0
  443. package/src/transport/mcp-handlers/list-prompts-request.handler.js +11 -0
  444. package/src/transport/mcp-handlers/list-prompts-request.handler.js.map +1 -0
  445. package/src/transport/mcp-handlers/list-resource-templates-request.handler.d.ts +51 -0
  446. package/src/transport/mcp-handlers/list-resource-templates-request.handler.js +12 -0
  447. package/src/transport/mcp-handlers/list-resource-templates-request.handler.js.map +1 -0
  448. package/src/transport/mcp-handlers/list-resources-request.handler.d.ts +51 -0
  449. package/src/transport/mcp-handlers/list-resources-request.handler.js +12 -0
  450. package/src/transport/mcp-handlers/list-resources-request.handler.js.map +1 -0
  451. package/src/transport/mcp-handlers/list-tools-request.handler.d.ts +19 -146
  452. package/src/transport/mcp-handlers/logging-set-level-request.handler.d.ts +46 -0
  453. package/src/transport/mcp-handlers/logging-set-level-request.handler.js +34 -0
  454. package/src/transport/mcp-handlers/logging-set-level-request.handler.js.map +1 -0
  455. package/src/transport/mcp-handlers/mcp-handlers.types.d.ts +3 -7
  456. package/src/transport/mcp-handlers/mcp-handlers.types.js.map +1 -1
  457. package/src/transport/mcp-handlers/read-resource-request.handler.d.ts +46 -0
  458. package/src/transport/mcp-handlers/read-resource-request.handler.js +12 -0
  459. package/src/transport/mcp-handlers/read-resource-request.handler.js.map +1 -0
  460. package/src/transport/mcp-handlers/roots-list-changed-notification.handler.d.ts +11 -0
  461. package/src/transport/mcp-handlers/roots-list-changed-notification.handler.js +26 -0
  462. package/src/transport/mcp-handlers/roots-list-changed-notification.handler.js.map +1 -0
  463. package/src/transport/mcp-handlers/subscribe-request.handler.d.ts +37 -0
  464. package/src/transport/mcp-handlers/subscribe-request.handler.js +34 -0
  465. package/src/transport/mcp-handlers/subscribe-request.handler.js.map +1 -0
  466. package/src/transport/mcp-handlers/unsubscribe-request.handler.d.ts +37 -0
  467. package/src/transport/mcp-handlers/unsubscribe-request.handler.js +34 -0
  468. package/src/transport/mcp-handlers/unsubscribe-request.handler.js.map +1 -0
  469. package/src/transport/transport.local.js +7 -2
  470. package/src/transport/transport.local.js.map +1 -1
  471. package/src/transport/transport.registry.d.ts +30 -0
  472. package/src/transport/transport.registry.js +84 -1
  473. package/src/transport/transport.registry.js.map +1 -1
  474. package/src/transport/transport.types.d.ts +3 -3
  475. package/src/transport/transport.types.js.map +1 -1
  476. package/src/utils/content.utils.d.ts +48 -0
  477. package/src/utils/content.utils.js +194 -0
  478. package/src/utils/content.utils.js.map +1 -0
  479. package/src/utils/index.d.ts +8 -0
  480. package/src/utils/index.js +55 -0
  481. package/src/utils/index.js.map +1 -0
  482. package/src/utils/lineage.utils.d.ts +40 -0
  483. package/src/utils/lineage.utils.js +82 -0
  484. package/src/utils/lineage.utils.js.map +1 -0
  485. package/src/utils/naming.utils.d.ts +46 -0
  486. package/src/utils/naming.utils.js +136 -0
  487. package/src/utils/naming.utils.js.map +1 -0
  488. package/src/utils/types.utils.d.ts +2 -2
  489. package/src/utils/types.utils.js.map +1 -1
  490. package/src/utils/uri-template.utils.d.ts +57 -0
  491. package/src/utils/uri-template.utils.js +113 -0
  492. package/src/utils/uri-template.utils.js.map +1 -0
  493. package/src/utils/uri-validation.utils.d.ts +40 -0
  494. package/src/utils/uri-validation.utils.js +76 -0
  495. package/src/utils/uri-validation.utils.js.map +1 -0
  496. package/src/__test-utils__/fixtures/hook.fixtures.d.ts +0 -46
  497. package/src/__test-utils__/fixtures/hook.fixtures.js +0 -114
  498. package/src/__test-utils__/fixtures/hook.fixtures.js.map +0 -1
  499. package/src/__test-utils__/fixtures/index.d.ts +0 -7
  500. package/src/__test-utils__/fixtures/index.js +0 -11
  501. package/src/__test-utils__/fixtures/index.js.map +0 -1
  502. package/src/__test-utils__/fixtures/plugin.fixtures.d.ts +0 -46
  503. package/src/__test-utils__/fixtures/plugin.fixtures.js +0 -127
  504. package/src/__test-utils__/fixtures/plugin.fixtures.js.map +0 -1
  505. package/src/__test-utils__/fixtures/provider.fixtures.d.ts +0 -69
  506. package/src/__test-utils__/fixtures/provider.fixtures.js +0 -131
  507. package/src/__test-utils__/fixtures/provider.fixtures.js.map +0 -1
  508. package/src/__test-utils__/fixtures/scope.fixtures.d.ts +0 -14
  509. package/src/__test-utils__/fixtures/scope.fixtures.js +0 -59
  510. package/src/__test-utils__/fixtures/scope.fixtures.js.map +0 -1
  511. package/src/__test-utils__/fixtures/tool.fixtures.d.ts +0 -36
  512. package/src/__test-utils__/fixtures/tool.fixtures.js +0 -91
  513. package/src/__test-utils__/fixtures/tool.fixtures.js.map +0 -1
  514. package/src/__test-utils__/helpers/assertion.helpers.d.ts +0 -45
  515. package/src/__test-utils__/helpers/assertion.helpers.js +0 -153
  516. package/src/__test-utils__/helpers/assertion.helpers.js.map +0 -1
  517. package/src/__test-utils__/helpers/async.helpers.d.ts +0 -48
  518. package/src/__test-utils__/helpers/async.helpers.js +0 -112
  519. package/src/__test-utils__/helpers/async.helpers.js.map +0 -1
  520. package/src/__test-utils__/helpers/index.d.ts +0 -6
  521. package/src/__test-utils__/helpers/index.js +0 -10
  522. package/src/__test-utils__/helpers/index.js.map +0 -1
  523. package/src/__test-utils__/helpers/setup.helpers.d.ts +0 -54
  524. package/src/__test-utils__/helpers/setup.helpers.js +0 -106
  525. package/src/__test-utils__/helpers/setup.helpers.js.map +0 -1
  526. package/src/__test-utils__/index.d.ts +0 -9
  527. package/src/__test-utils__/index.js +0 -14
  528. package/src/__test-utils__/index.js.map +0 -1
  529. package/src/__test-utils__/mocks/flow-instance.mock.d.ts +0 -50
  530. package/src/__test-utils__/mocks/flow-instance.mock.js +0 -72
  531. package/src/__test-utils__/mocks/flow-instance.mock.js.map +0 -1
  532. package/src/__test-utils__/mocks/hook-registry.mock.d.ts +0 -25
  533. package/src/__test-utils__/mocks/hook-registry.mock.js +0 -65
  534. package/src/__test-utils__/mocks/hook-registry.mock.js.map +0 -1
  535. package/src/__test-utils__/mocks/index.d.ts +0 -8
  536. package/src/__test-utils__/mocks/index.js +0 -12
  537. package/src/__test-utils__/mocks/index.js.map +0 -1
  538. package/src/__test-utils__/mocks/plugin-registry.mock.d.ts +0 -43
  539. package/src/__test-utils__/mocks/plugin-registry.mock.js +0 -70
  540. package/src/__test-utils__/mocks/plugin-registry.mock.js.map +0 -1
  541. package/src/__test-utils__/mocks/provider-registry.mock.d.ts +0 -39
  542. package/src/__test-utils__/mocks/provider-registry.mock.js +0 -72
  543. package/src/__test-utils__/mocks/provider-registry.mock.js.map +0 -1
  544. package/src/__test-utils__/mocks/tool-registry.mock.d.ts +0 -43
  545. package/src/__test-utils__/mocks/tool-registry.mock.js +0 -79
  546. package/src/__test-utils__/mocks/tool-registry.mock.js.map +0 -1
  547. package/src/auth/path.utils.d.ts +0 -20
  548. package/src/auth/path.utils.js +0 -71
  549. package/src/auth/path.utils.js.map +0 -1
  550. package/src/common/decorators-old/async-with.decorator.d.ts +0 -10
  551. package/src/common/decorators-old/async-with.decorator.js +0 -24
  552. package/src/common/decorators-old/async-with.decorator.js.map +0 -1
  553. package/src/common/decorators-old/auth-hook.decorator.d.ts +0 -14
  554. package/src/common/decorators-old/auth-hook.decorator.js +0 -27
  555. package/src/common/decorators-old/auth-hook.decorator.js.map +0 -1
  556. package/src/common/decorators-old/session-hook.decorator.d.ts +0 -14
  557. package/src/common/decorators-old/session-hook.decorator.js +0 -27
  558. package/src/common/decorators-old/session-hook.decorator.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"provider.registry.js","sourceRoot":"","sources":["../../../src/provider/provider.registry.ts"],"names":[],"mappings":"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","sourcesContent":["import 'reflect-metadata';\nimport {\n Ctor,\n ProviderInterface,\n ProviderType,\n ProviderScope,\n Token,\n ProviderRegistryInterface,\n ProviderRecord,\n ProviderKind,\n ProviderInjectedRecord,\n ScopeEntry,\n RegistryKind,\n RegistryType, ProviderEntry, FrontMcpServer,\n} from '../common';\nimport {normalizeProvider, providerDiscoveryDeps, providerInvocationTokens} from './provider.utils';\nimport {depsOfClass, isClass, isPromise, tokenName} from '../utils/token.utils';\nimport {hasAsyncWith} from '../utils/metadata.utils';\nimport {RegistryAbstract, RegistryBuildMapResult} from '../regsitry';\nimport {ProviderViews} from './provider.types';\nimport {Scope} from '../scope';\nimport HookRegistry from \"../hooks/hook.registry\";\n\nexport default class ProviderRegistry extends RegistryAbstract<\n ProviderEntry,\n ProviderRecord,\n ProviderType[],\n ProviderRegistry | undefined\n> implements ProviderRegistryInterface {\n /** used to track which registry provided which token */\n private readonly providedBy: Map<Token, ProviderRegistry>;\n /** topo order (deps first) */\n private order: Set<Token> = new Set();\n\n // /** scoped instance stores by key */\n // private scoped = new Map<string, Map<Token, any>>();\n\n private registries: Map<RegistryKind, Set<RegistryType>> = new Map();\n\n constructor(list: ProviderType[], private readonly parentProviders?: ProviderRegistry) {\n super('ProviderRegistry', parentProviders, list, false);\n\n this.providedBy = new Map();\n\n this.buildGraph();\n this.topoSort();\n\n this.ready = this.initialize();\n }\n\n\n getProviders(): ProviderEntry[] {\n return [...this.instances.values()] as const;\n }\n\n /* -------------------- Hierarchy helpers -------------------- */\n\n /** Walk up the registry chain to find a def for a token. */\n private lookupDefInHierarchy(token: Token):\n | { registry: ProviderRegistry; rec: ProviderRecord }\n | undefined {\n if (this.defs.has(token as any)) return {registry: this, rec: this.defs.get(token as any)!};\n return this.providers?.lookupDefInHierarchy(token);\n }\n\n /** Resolve a DEFAULT-scoped dependency from the hierarchy, enforcing scope & instantiation. */\n private resolveDefaultFromHierarchy(token: Token): any {\n const found = this.lookupDefInHierarchy(token);\n if (!found) throw new Error(`Cannot resolve token ${tokenName(token)}: not registered in hierarchy.`);\n const {registry, rec} = found;\n const sc = registry.getScope(rec);\n if (sc !== ProviderScope.GLOBAL) {\n const scName = ProviderScope[sc];\n throw new Error(\n `Dependency ${tokenName(token)} is scoped (${scName}) in ${registry.constructor.name}; cannot use as DEFAULT.`,\n );\n }\n const inst = registry.instances.get(token);\n if (inst === undefined) {\n throw new Error(\n `Dependency ${tokenName(token)} (DEFAULT) is not instantiated in ${registry.constructor.name}`,\n );\n }\n return inst;\n }\n\n /* -------------------- Build phase -------------------- */\n\n protected override buildMap(list: ProviderType[]): RegistryBuildMapResult<ProviderRecord> {\n const tokens = new Set<Token>();\n const defs = new Map<Token, ProviderRecord>();\n const graph = new Map<Token, Set<Token>>();\n\n for (const raw of list) {\n const rec = normalizeProvider(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 = this.discoveryDeps(rec);\n\n for (const d of deps) {\n const isLocal = this.tokens.has(d);\n const up = isLocal ? undefined : this.lookupDefInHierarchy(d);\n\n if (!isLocal && !up) {\n throw new Error(\n `Provider ${tokenName(token)} depends on ${tokenName(d)}, which is not registered (local or parent).`,\n );\n }\n\n const depRec = isLocal ? this.defs.get(d)! : up!.rec;\n const depScope =\n isLocal ? this.getScope(depRec) : up!.registry.getScope(depRec);\n\n if (this.getScope(rec) === ProviderScope.GLOBAL && depScope !== ProviderScope.GLOBAL) {\n throw new Error(\n `Invalid dependency: DEFAULT-scoped provider ${tokenName(\n token,\n )} cannot depend on scoped provider ${tokenName(d)}.`,\n );\n }\n\n // Only wire local -> local edges in our local graph; parent deps are external to this DAG.\n if (isLocal) this.graph.get(token)!.add(d);\n }\n }\n }\n\n protected topoSort() {\n const WHITE = 0,\n GRAY = 1,\n BLACK = 2;\n const color = new Map<Token, number>();\n const order: Set<Token> = new Set();\n const path: Token[] = [];\n\n const dfs = (n: Token) => {\n color.set(n, GRAY);\n path.push(n);\n for (const dep of this.graph.get(n) ?? []) {\n const c = color.get(dep) ?? WHITE;\n if (c === GRAY) {\n const idx = path.findIndex((p) => p === dep);\n const cycle = [...path.slice(idx), dep].map((t) => tokenName(t)).join(' -> ');\n throw new Error(`Dependency cycle detected: ${cycle}`);\n }\n if (c === WHITE) dfs(dep);\n }\n color.set(n, BLACK);\n order.add(n);\n path.pop();\n };\n\n for (const n of this.graph.keys()) if ((color.get(n) ?? WHITE) === WHITE) dfs(n);\n this.order = order;\n }\n\n /** Incremental instantiation for DEFAULT providers.\n * - Skips already-built singletons unless force:true.\n * - Can limit to a subset via onlyTokens.\n */\n protected async initialize(opts?: { force?: boolean; onlyTokens?: Iterable<Token> }) {\n const force = !!opts?.force;\n const only = opts?.onlyTokens ? new Set(opts.onlyTokens) : null;\n\n for (const token of this.order) {\n const rec = this.defs.get(token)!;\n if (this.getScope(rec) !== ProviderScope.GLOBAL) continue;\n\n if (only && !only.has(token)) continue;\n if (!force && this.instances.has(token)) continue;\n\n if (force && this.instances.has(token)) {\n this.instances.delete(token);\n }\n\n try {\n await this.initiateOne(token, rec);\n } catch (e: any) {\n const msg = e?.message ?? e;\n console.error(`Failed instantiating`, e);\n throw new Error(`Failed constructing ${tokenName(token)}: ${msg}`);\n }\n }\n }\n\n /* -------------------- Views & session stores -------------------- */\n\n /** Return the live singleton map as a read-only view. No copying. */\n getAllSingletons(): ReadonlyMap<Token, unknown> {\n return this.instances; // exposed as ReadonlyMap in the type\n }\n\n // /** Get (or create) the mutable session store for a sessionId. */\n // sessionMap(sessionId: string): Map<Token, unknown> {\n // let store = this.scoped.get(sessionId);\n // if (!store) {\n // store = new Map<Token, unknown>();\n // this.scoped.set(sessionId, store);\n // }\n // return store;\n // }\n\n // /** Try to build SessionProvider from registered DI definition (CLASS/FACTORY/etc.). */\n // private async tryBuildRegisteredSessionProvider(\n // sessionId: string,\n // requestId?: string | number,\n // ): Promise<SessionProvider | undefined> {\n // // Prefer local def; otherwise look up in hierarchy\n // const found = this.lookupDefInHierarchy(SessionProvider as unknown as Token);\n // const rec = found?.rec;\n // const reg = found?.registry;\n //\n // if (!rec) return undefined;\n //\n // const sc = (rec as any).scope ?? ProviderScope.GLOBAL;\n // if (sc === ProviderScope.GLOBAL) {\n // // If someone registered a DEFAULT-scoped SessionProvider, use the singleton instance (from the owning registry)\n // if (!reg!.instances.has(SessionProvider)) {\n // throw new Error(\n // `Registered ${tokenName(SessionProvider)} (DEFAULT) not instantiated at bootstrap`,\n // );\n // }\n // return reg!.instances.get(SessionProvider) as SessionProvider;\n // }\n //\n // // Build into the session store using the owning registry's factory (so its metadata/defs are used)\n // const store = this.sessionMap(sessionId);\n // await reg!.buildIntoStore(\n // SessionProvider as unknown as Token,\n // rec,\n // store,\n // sessionId,\n // [sessionId, requestId],\n // );\n // const sp = store.get(SessionProvider as unknown as Token) as SessionProvider | undefined;\n //\n // // Ensure request id is set/updated, if setter exists\n // if (sp && requestId && typeof sp.setRequestId === 'function') sp.setRequestId(requestId);\n // return sp;\n // }\n\n // /** Ensure a SessionProvider is present in the session map (registered or anonymous).\n // * @deprecated\n // */\n // async ensureSessionProvider(sessionId: string, requestId?: string | number): Promise<SessionProvider> {\n // const store = this.sessionMap(sessionId);\n //\n // // already present\n // if (store.has(SessionProvider)) {\n // const sp = store.get(SessionProvider) as SessionProvider;\n // if (requestId && typeof sp.setRequestId === 'function') sp.setRequestId(requestId);\n // return sp;\n // }\n //\n // // try registered provider first (local or parent)\n // const registered = await this.tryBuildRegisteredSessionProvider(sessionId, requestId);\n // return registered as SessionProvider;\n //\n // }\n\n // /**\n // * Create (or get) an authenticated session store, seed SessionProvider if missing.\n // * @deprecated\n // * */\n // bootstrapSession(sessionId: string, requestId?: string): Map<Token, unknown> {\n // let store = this.scoped.get(sessionId);\n // if (!store) {\n // store = new Map<Token, unknown>();\n // this.scoped.set(sessionId, store);\n // }\n // if (!store.has(SessionProvider)) {\n // store.set(SessionProvider, {}); // new SessionProvider(sessionId, requestId ?? '', false));\n // } else if (requestId) {\n // (store.get(SessionProvider) as SessionProvider).setRequestId(requestId);\n // }\n // return store;\n // }\n\n // /**\n // * Returns all tokens that are registered as session-scoped (including SessionProvider).\n // * @deprecated\n // */\n // listSessionScopedTokens(): Token[] {\n // const out: Token[] = [];\n // // Only local scoped tokens are known here; parent-scoped tokens will be pulled on demand.\n // for (const [tok, rec] of this.defs.entries()) {\n // if (this.getScope(rec) === ProviderScope.SESSION) out.push(tok);\n // }\n // return out;\n // }\n\n // /** Eager build selected session providers into the given session store. */\n // private async buildSelectedSessionProviders(sessionId: string, requestId?: string | number): Promise<void> {\n // const store = this.sessionMap(sessionId);\n // await this.ensureSessionProvider(sessionId, requestId);\n //\n // // Iterate over all session-scoped tokens (local list). Parent-scoped will resolve on demand.\n // for (const tok of this.listSessionScopedTokens()) {\n // if (tok === (SessionProvider as any)) continue;\n //\n // if (store.has(tok)) continue; // already built\n //\n // const rec = this.defs.get(tok);\n // if (!rec) continue; // should not happen\n //\n // // Recursively build into this session store (handles scoped/default deps)\n // await this.buildIntoStore(tok, rec, store, sessionId);\n // }\n // }\n\n // /** Convenience: build all three maps you can pass straight into an invoke ctx. */\n // async buildViews(sessionId: string, requestId?: string | number): Promise<ProviderViews> {\n // await this.buildSelectedSessionProviders(sessionId, requestId);\n // return {\n // global: this.getAllSingletons(),\n // session: this.sessionMap(sessionId),\n // request: new Map<Token, unknown>(),\n // };\n // }\n\n discoveryDeps(rec: ProviderRecord): Token[] {\n return providerDiscoveryDeps(rec, this.tokens, (k, phase) => depsOfClass(k, phase));\n }\n\n invocationTokens(_token: Token, rec: ProviderRecord): Token[] {\n return providerInvocationTokens(rec, (k, phase) => depsOfClass(k, phase));\n }\n\n getScope(rec: ProviderRecord): ProviderScope {\n return rec.metadata?.scope ?? ProviderScope.GLOBAL;\n }\n\n /* -------------------- Instantiation -------------------- */\n\n private async withTimeout<T>(p: Promise<T>, ms: number, label: string): Promise<T> {\n if (ms <= 0 || !Number.isFinite(ms)) return p;\n let timer: any;\n try {\n const tm = new Promise<never>(\n (_, rej) => (timer = setTimeout(() => rej(new Error(`Timeout after ${ms}ms: ${label}`)), ms)),\n );\n return await Promise.race([p, tm]);\n } finally {\n clearTimeout(timer);\n }\n }\n\n private async resolveFactoryArg(t: Token, store: Map<Token, any>, scopeKey?: string): Promise<any> {\n if (store.has(t)) return store.get(t);\n if (this.instances.has(t)) return this.instances.get(t);\n\n // Local def?\n const rec = this.defs.get(t as any);\n if (rec) {\n const sc = this.getScope(rec);\n if (sc === ProviderScope.GLOBAL) {\n if (!this.instances.has(t)) {\n throw new Error(`Dependency ${tokenName(t)} (DEFAULT scope) is not instantiated`);\n }\n return this.instances.get(t);\n } else {\n await this.buildIntoStore(t, rec, store, scopeKey);\n return store.get(t);\n }\n }\n\n // Parent def?\n const up = this.lookupDefInHierarchy(t);\n if (up) {\n const sc = up.registry.getScope(up.rec);\n if (sc === ProviderScope.GLOBAL) {\n const inst = up.registry.instances.get(t);\n if (inst === undefined) {\n throw new Error(`Dependency ${tokenName(t)} (DEFAULT scope) is not instantiated in parent`);\n }\n return inst;\n } else {\n await up.registry.buildIntoStore(t, up.rec, store, scopeKey);\n return store.get(t);\n }\n }\n\n // Constructable fallback (non-DI)\n if (isClass(t)) {\n if (hasAsyncWith(t)) {\n const out = (t as any).with();\n return isPromise(out) ? await this.withTimeout(out, this.asyncTimeoutMs, `${t.name}.with(...)`) : out;\n }\n const instance = new (t as Ctor<any>)();\n const init = (instance as any)?.init;\n if (typeof init === 'function') {\n const ret = init.call(instance);\n if (isPromise(ret)) await this.withTimeout(ret, this.asyncTimeoutMs, `${t.name}.init()`);\n }\n return instance;\n }\n\n throw new Error(`Cannot resolve token ${tokenName(t)}: not registered in hierarchy and not constructable.`);\n }\n\n /** Build a single DEFAULT-scoped singleton (used by incremental instantiating). */\n private async initiateOne(token: Token, rec: ProviderRecord): Promise<void> {\n switch (rec.kind) {\n case ProviderKind.VALUE: {\n this.instances.set(token, (rec as any).useValue);\n return;\n }\n case ProviderKind.FACTORY: {\n const deps = this.invocationTokens(token, rec);\n const args: any[] = [];\n for (const d of deps) args.push(await this.resolveFactoryArg(d, this.instances));\n const out = (rec as any).useFactory(...args);\n const val = isPromise(out)\n ? await this.withTimeout(out, this.asyncTimeoutMs, `${tokenName(token)}.useFactory(...)`)\n : out;\n this.instances.set(token, val);\n return;\n }\n case ProviderKind.CLASS: {\n const depTokens = this.invocationTokens(token, rec);\n const deps = depTokens.map((t) => this.resolveDefaultFromHierarchy(t));\n const klass = (rec as any).useClass;\n if (hasAsyncWith(klass)) {\n const out = (klass as any).with(...deps);\n const val = isPromise(out)\n ? await this.withTimeout(out, this.asyncTimeoutMs, `${klass.name}.with(...)`)\n : out;\n this.instances.set(token, val);\n } else {\n const instance = new (klass as Ctor<any>)(...deps);\n const init = (instance as any)?.init;\n if (typeof init === 'function') {\n const ret = init.call(instance);\n if (isPromise(ret)) await this.withTimeout(ret, this.asyncTimeoutMs, `${klass.name}.init()`);\n }\n this.instances.set(token, instance);\n }\n return;\n }\n case ProviderKind.CLASS_TOKEN: {\n const depTokens = this.invocationTokens(token, rec);\n const deps = depTokens.map((t) => this.resolveDefaultFromHierarchy(t));\n const klass = (rec as any).provide;\n if (hasAsyncWith(klass)) {\n const out = (klass as any).with(...deps);\n const val = isPromise(out)\n ? await this.withTimeout(out, this.asyncTimeoutMs, `${klass.name}.with(...)`)\n : out;\n this.instances.set(token, val);\n } else {\n const instance = new (klass as Ctor<any>)(...deps);\n const init = (instance as any)?.init;\n if (typeof init === 'function') {\n const ret = init.call(instance);\n if (isPromise(ret)) await this.withTimeout(ret, this.asyncTimeoutMs, `${klass.name}.init()`);\n }\n this.instances.set(token, instance);\n }\n return;\n }\n }\n }\n\n // Build a registered provider into the given scoped store (recursive for scoped deps).\n private async buildIntoStore(\n token: Token,\n rec: ProviderRecord,\n store: Map<Token, any>,\n scopeKey?: string,\n injectedDeps?: any[],\n ): Promise<void> {\n if (store.has(token)) return;\n\n try {\n switch (rec.kind) {\n case ProviderKind.VALUE: {\n store.set(token, (rec as any).useValue);\n return;\n }\n case ProviderKind.FACTORY: {\n const deps = this.invocationTokens(token, rec);\n const args: any[] = [];\n for (const d of deps) args.push(await this.resolveFactoryArg(d, store, scopeKey));\n const out = (rec as any).useFactory(...args);\n const val = isPromise(out)\n ? await this.withTimeout(out, this.asyncTimeoutMs, `${tokenName(token)}.useFactory(...)`)\n : out;\n store.set(token, val);\n return;\n }\n case ProviderKind.CLASS: {\n const depsTokens = this.invocationTokens(token, rec);\n const deps: any[] = [];\n for (const d of depsTokens) deps.push(await this.resolveManagedForClass(d, store, scopeKey));\n const klass = (rec as any).useClass as Ctor<any>;\n if (hasAsyncWith(klass)) {\n const out = (klass as any).with(...deps);\n const val = isPromise(out)\n ? await this.withTimeout(out, this.asyncTimeoutMs, `${klass.name}.with(...)`)\n : out;\n store.set(token, val);\n } else {\n const instance = new (klass as Ctor<any>)(...deps);\n const init = (instance as any)?.init;\n if (typeof init === 'function') {\n const ret = init.call(instance);\n if (isPromise(ret)) await this.withTimeout(ret, this.asyncTimeoutMs, `${klass.name}.init()`);\n }\n store.set(token, instance);\n }\n return;\n }\n case ProviderKind.CLASS_TOKEN: {\n const depsTokens = this.invocationTokens(token, rec);\n const deps: any[] = injectedDeps ?? [];\n for (const d of depsTokens) deps.push(await this.resolveManagedForClass(d, store, scopeKey));\n const klass = (rec as any).provide as Ctor<any>;\n if (hasAsyncWith(klass)) {\n const out = (klass as any).with(...deps);\n const val = isPromise(out)\n ? await this.withTimeout(out, this.asyncTimeoutMs, `${klass.name}.with(...)`)\n : out;\n store.set(token, val);\n } else {\n const instance = new (klass as Ctor<any>)(...deps);\n const init = (instance as any)?.init;\n if (typeof init === 'function') {\n const ret = init.call(instance);\n if (isPromise(ret)) await this.withTimeout(ret, this.asyncTimeoutMs, `${klass.name}.init()`);\n }\n store.set(token, instance);\n }\n return;\n }\n }\n } catch (e: any) {\n const msg = e?.message ?? e;\n console.error(`Failed constructing`, e);\n throw new Error(`Failed constructing (scoped) ${tokenName(token)}: ${msg}`);\n }\n }\n\n // Ensure managed dependency value for CLASS/CLASS_TOKEN providers:\n // prefer scoped store, then singleton; recursively build scoped deps.\n // If not local, climb the hierarchy and either read DEFAULT instance or build scoped into this store.\n private async resolveManagedForClass(d: Token, store: Map<Token, any>, scopeKey?: string): Promise<any> {\n if (store.has(d)) return store.get(d);\n if (this.instances.has(d)) return this.instances.get(d);\n\n // Local DI?\n const depRec = this.defs.get(d as any);\n if (depRec) {\n const sc = this.getScope(depRec);\n if (sc === ProviderScope.GLOBAL) {\n const v = this.instances.get(d);\n if (v === undefined) throw new Error(`${tokenName(d)} (DEFAULT scope) is not instantiated`);\n return v;\n } else {\n await this.buildIntoStore(d, depRec, store, scopeKey);\n return store.get(d);\n }\n }\n\n // Parent DI?\n const up = this.lookupDefInHierarchy(d);\n if (up) {\n const sc = up.registry.getScope(up.rec);\n if (sc === ProviderScope.GLOBAL) {\n const v = up.registry.instances.get(d);\n if (v === undefined) throw new Error(`${tokenName(d)} (DEFAULT scope) is not instantiated in parent`);\n return v;\n } else {\n await up.registry.buildIntoStore(d, up.rec, store, scopeKey);\n return store.get(d);\n }\n }\n\n throw new Error(`${tokenName(d)} is not instantiated`);\n }\n\n get<T>(token: Token<T>): T {\n if (this.instances.has(token)) return this.instances.get(token) as T;\n\n const rec = this.defs.get(token as any);\n if (rec && this.getScope(rec) !== ProviderScope.GLOBAL) {\n const scName = ProviderScope[this.getScope(rec)];\n throw new Error(`Provider ${tokenName(token)} is scoped (${scName}). Use getScoped(token, key).`);\n }\n\n // bubble to parent\n if (this.providers) return this.providers.get<T>(token);\n\n throw new Error(`Provider ${tokenName(token)} is not available in local or parent registries`);\n }\n\n // noinspection JSUnusedGlobalSymbols\n addRegistry(type: RegistryKind, value: RegistryType) {\n let registry = this.registries.get(type);\n if (!registry) {\n this.registries.set(type, new Set());\n registry = this.registries.get(type);\n }\n registry!.add(value);\n }\n\n getRegistries<T extends RegistryKind>(type: T): RegistryType[T][] {\n return [...this.registries.get(type) ?? []] as any;\n }\n\n getHooksRegistry() {\n return this.getRegistries('HookRegistry')[0] as HookRegistry\n }\n\n // noinspection JSUnusedGlobalSymbols\n getScopeRegistry() {\n return this.getRegistries('ScopeRegistry')[0]!;\n }\n\n /** bootstrap helper: resolve a dependency usable during app bootstrap (must be GLOBAL). */\n async resolveBootstrapDep(t: Token): Promise<any> {\n if (this.instances.has(t)) return this.instances.get(t);\n if (this.registries.has(t as RegistryKind)) return this.registries.get(t as RegistryKind);\n\n const found = this.lookupDefInHierarchy(t);\n if (found) {\n const {registry, rec} = found;\n const sc = registry.getScope(rec);\n if (sc !== ProviderScope.GLOBAL)\n throw new Error(`Plugin dependency ${tokenName(t)} must be DEFAULT-scoped at bootstrap`);\n const v = registry.instances.get(t);\n if (v === undefined)\n throw new Error(`Plugin dependency ${tokenName(t)} (DEFAULT scope) is not instantiated`);\n return v;\n }\n throw new Error(`Cannot resolve plugin dependency ${tokenName(t)} (local or parent)`);\n }\n\n /** Lightweight, synchronous resolver for app-scoped DI.\n * - If `cls` is a registered DEFAULT provider token, returns the singleton (must be instantiated).\n * - If `cls` is SCOPED in DI, throws (use getScoped/buildViews instead).\n * - Otherwise, if `cls` is a constructable class not registered in DI, returns `new cls()`.\n * If it defines a synchronous init(), it will be invoked (async init() is NOT awaited).\n */\n resolve<T>(cls: any): T {\n // 1) If it's a registered token (local or parent), handle via DI rules\n const found = this.lookupDefInHierarchy(cls as any);\n if (found) {\n const {registry, rec} = found;\n const sc = registry.getScope(rec);\n if (sc !== ProviderScope.GLOBAL) {\n const scName = ProviderScope[sc];\n throw new Error(\n `Provider ${tokenName(cls)} is scoped (${scName}). Use getScoped(token, key) or buildViews(...).`,\n );\n }\n if (!registry.instances.has(cls)) {\n throw new Error(\n `Provider ${tokenName(cls)} (DEFAULT scope) is not instantiated. Call providers.instantiate() first.`,\n );\n }\n return registry.instances.get(cls) as T;\n }\n\n // 2) Not a registered token — best-effort construct (for tools/hooks/wrappers)\n if (isClass(cls)) {\n const instance = new (cls as Ctor<any>)();\n\n // Call sync init() if present (do NOT await)\n const init = (instance as any)?.init;\n if (typeof init === 'function') {\n // If someone accidentally made init async here, we intentionally do NOT await to keep it sync.\n init.call(instance);\n }\n\n return instance as T;\n }\n\n // 3) Unsupported token type\n throw new Error(\n `Cannot resolve ${tokenName(cls)}: not a registered DEFAULT provider and not a constructable class.`,\n );\n }\n\n mergeFromRegistry(\n providedBy: ProviderRegistry,\n exported: {\n token: Token<ProviderInterface>;\n def: ProviderRecord;\n instance: ProviderEntry;\n }[],\n ) {\n for (const {token, def, instance} of exported) {\n if (def.metadata.scope === ProviderScope.GLOBAL) {\n this.instances.set(token, instance);\n }\n this.defs.set(token, def);\n this.providedBy.set(token, providedBy);\n }\n }\n\n /**\n * Used by plugins to get the exported provider definitions.\n */\n getProviderInfo(token: Token<ProviderInterface>) {\n const def = this.defs.get(token);\n const instance = this.instances.get(token);\n if (!def || !instance)\n throw new Error(\n `Cannot get provider info for ${tokenName(\n token,\n )}: not a registered DEFAULT provider and not a constructable class.`,\n );\n return {\n token,\n def,\n instance,\n };\n }\n\n injectProvider(injected: Omit<ProviderInjectedRecord, 'kind'>) {\n const rec: ProviderInjectedRecord = {\n ...injected,\n kind: ProviderKind.INJECTED,\n };\n this.tokens.add(rec.provide);\n this.defs.set(rec.provide, rec);\n this.graph.set(rec.provide, new Set());\n this.instances.set(rec.provide, rec.value);\n }\n\n async addDynamicProviders(dynamicProviders: ProviderRecord[]) {\n return Promise.all(dynamicProviders.map((rec) => this.initiateOne(rec.provide, rec)))\n }\n\n private getWithParents<T>(token: Token<T>): T {\n if (this.instances.has(token)) {\n return this.get(token)\n }\n const parent = this.parentProviders\n if (!parent) {\n return this.get(token)\n }\n return parent.getWithParents(token)\n }\n\n getActiveScope(): Scope {\n return this.getWithParents(Scope)\n }\n\n getActiveServer(): FrontMcpServer {\n return this.getWithParents(FrontMcpServer)\n }\n\n async buildViews(session: string): Promise<ProviderViews> {\n return {\n global: new Map<Token, any>(),\n session: new Map<Token, any>(),\n request: new Map<Token, any>(),\n };\n }\n}\n"]}
1
+ {"version":3,"file":"provider.registry.js","sourceRoot":"","sources":["../../../src/provider/provider.registry.ts"],"names":[],"mappings":"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","sourcesContent":["import 'reflect-metadata';\nimport {\n Ctor,\n ProviderInterface,\n ProviderType,\n ProviderScope,\n Token,\n ProviderRegistryInterface,\n ProviderRecord,\n ProviderKind,\n ProviderInjectedRecord,\n ScopeEntry,\n RegistryKind,\n RegistryType,\n ProviderEntry,\n FrontMcpServer,\n} from '../common';\nimport { normalizeProvider, providerDiscoveryDeps, providerInvocationTokens } from './provider.utils';\nimport { depsOfClass, isClass, isPromise, tokenName } from '../utils/token.utils';\nimport { hasAsyncWith } from '../utils/metadata.utils';\nimport { RegistryAbstract, RegistryBuildMapResult } from '../regsitry';\nimport { ProviderViews } from './provider.types';\nimport { Scope } from '../scope';\nimport HookRegistry from '../hooks/hook.registry';\n\nexport default class ProviderRegistry\n extends RegistryAbstract<ProviderEntry, ProviderRecord, ProviderType[], ProviderRegistry | undefined>\n implements ProviderRegistryInterface\n{\n /** used to track which registry provided which token */\n private readonly providedBy: Map<Token, ProviderRegistry>;\n /** topo order (deps first) */\n private order: Set<Token> = new Set();\n\n // /** scoped instance stores by key */\n // private scoped = new Map<string, Map<Token, any>>();\n\n private registries: Map<RegistryKind, Set<RegistryType>> = new Map();\n\n constructor(list: ProviderType[], private readonly parentProviders?: ProviderRegistry) {\n super('ProviderRegistry', parentProviders, list, false);\n\n this.providedBy = new Map();\n\n this.buildGraph();\n this.topoSort();\n\n this.ready = this.initialize();\n }\n\n getProviders(): ProviderEntry[] {\n return [...this.instances.values()] as const;\n }\n\n /* -------------------- Hierarchy helpers -------------------- */\n\n /** Walk up the registry chain to find a def for a token. */\n private lookupDefInHierarchy(token: Token): { registry: ProviderRegistry; rec: ProviderRecord } | undefined {\n if (this.defs.has(token as any)) return { registry: this, rec: this.defs.get(token as any)! };\n return this.providers?.lookupDefInHierarchy(token);\n }\n\n /** Resolve a DEFAULT-scoped dependency from the hierarchy, enforcing scope & instantiation. */\n private resolveDefaultFromHierarchy(token: Token): any {\n const found = this.lookupDefInHierarchy(token);\n if (!found) throw new Error(`Cannot resolve token ${tokenName(token)}: not registered in hierarchy.`);\n const { registry, rec } = found;\n const sc = registry.getProviderScope(rec);\n if (sc !== ProviderScope.GLOBAL) {\n const scName = ProviderScope[sc];\n throw new Error(\n `Dependency ${tokenName(token)} is scoped (${scName}) in ${registry.constructor.name}; cannot use as DEFAULT.`,\n );\n }\n const inst = registry.instances.get(token);\n if (inst === undefined) {\n throw new Error(`Dependency ${tokenName(token)} (DEFAULT) is not instantiated in ${registry.constructor.name}`);\n }\n return inst;\n }\n\n /* -------------------- Build phase -------------------- */\n\n protected override buildMap(list: ProviderType[]): RegistryBuildMapResult<ProviderRecord> {\n const tokens = new Set<Token>();\n const defs = new Map<Token, ProviderRecord>();\n const graph = new Map<Token, Set<Token>>();\n\n for (const raw of list) {\n const rec = normalizeProvider(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 = this.discoveryDeps(rec);\n\n for (const d of deps) {\n const isLocal = this.tokens.has(d);\n const up = isLocal ? undefined : this.lookupDefInHierarchy(d);\n\n if (!isLocal && !up) {\n throw new Error(\n `Provider ${tokenName(token)} depends on ${tokenName(d)}, which is not registered (local or parent).`,\n );\n }\n\n const depRec = isLocal ? this.defs.get(d)! : up!.rec;\n const depScope = isLocal ? this.getProviderScope(depRec) : up!.registry.getProviderScope(depRec);\n\n if (this.getProviderScope(rec) === ProviderScope.GLOBAL && depScope !== ProviderScope.GLOBAL) {\n throw new Error(\n `Invalid dependency: DEFAULT-scoped provider ${tokenName(\n token,\n )} cannot depend on scoped provider ${tokenName(d)}.`,\n );\n }\n\n // Only wire local -> local edges in our local graph; parent deps are external to this DAG.\n if (isLocal) this.graph.get(token)!.add(d);\n }\n }\n }\n\n protected topoSort() {\n const WHITE = 0,\n GRAY = 1,\n BLACK = 2;\n const color = new Map<Token, number>();\n const order: Set<Token> = new Set();\n const path: Token[] = [];\n\n const dfs = (n: Token) => {\n color.set(n, GRAY);\n path.push(n);\n for (const dep of this.graph.get(n) ?? []) {\n const c = color.get(dep) ?? WHITE;\n if (c === GRAY) {\n const idx = path.findIndex((p) => p === dep);\n const cycle = [...path.slice(idx), dep].map((t) => tokenName(t)).join(' -> ');\n throw new Error(`Dependency cycle detected: ${cycle}`);\n }\n if (c === WHITE) dfs(dep);\n }\n color.set(n, BLACK);\n order.add(n);\n path.pop();\n };\n\n for (const n of this.graph.keys()) if ((color.get(n) ?? WHITE) === WHITE) dfs(n);\n this.order = order;\n }\n\n /** Incremental instantiation for DEFAULT providers.\n * - Skips already-built singletons unless force:true.\n * - Can limit to a subset via onlyTokens.\n */\n protected async initialize(opts?: { force?: boolean; onlyTokens?: Iterable<Token> }) {\n const force = !!opts?.force;\n const only = opts?.onlyTokens ? new Set(opts.onlyTokens) : null;\n\n for (const token of this.order) {\n const rec = this.defs.get(token)!;\n if (this.getProviderScope(rec) !== ProviderScope.GLOBAL) continue;\n\n if (only && !only.has(token)) continue;\n if (!force && this.instances.has(token)) continue;\n\n if (force && this.instances.has(token)) {\n this.instances.delete(token);\n }\n\n try {\n await this.initiateOne(token, rec);\n } catch (e: any) {\n const msg = e?.message ?? e;\n // Use safe logging to avoid Node.js 24 util.inspect bug with Zod errors\n console.error(`Failed instantiating:`, msg);\n throw new Error(`Failed constructing ${tokenName(token)}: ${msg}`);\n }\n }\n }\n\n /* -------------------- Views & session stores -------------------- */\n\n /** Return the live singleton map as a read-only view. No copying. */\n getAllSingletons(): ReadonlyMap<Token, unknown> {\n return this.instances; // exposed as ReadonlyMap in the type\n }\n discoveryDeps(rec: ProviderRecord): Token[] {\n return providerDiscoveryDeps(rec, this.tokens, (k, phase) => depsOfClass(k, phase));\n }\n\n invocationTokens(_token: Token, rec: ProviderRecord): Token[] {\n return providerInvocationTokens(rec, (k, phase) => depsOfClass(k, phase));\n }\n\n getProviderScope(rec: ProviderRecord): ProviderScope {\n return rec.metadata?.scope ?? ProviderScope.GLOBAL;\n }\n\n getScope(): ScopeEntry {\n return this.getActiveScope();\n }\n\n /* -------------------- Instantiation -------------------- */\n\n private async withTimeout<T>(p: Promise<T>, ms: number, label: string): Promise<T> {\n if (ms <= 0 || !Number.isFinite(ms)) return p;\n let timer: any;\n try {\n const tm = new Promise<never>(\n (_, rej) => (timer = setTimeout(() => rej(new Error(`Timeout after ${ms}ms: ${label}`)), ms)),\n );\n return await Promise.race([p, tm]);\n } finally {\n clearTimeout(timer);\n }\n }\n\n private async resolveFactoryArg(t: Token, store: Map<Token, any>, scopeKey?: string): Promise<any> {\n if (store.has(t)) return store.get(t);\n if (this.instances.has(t)) return this.instances.get(t);\n\n // Local def?\n const rec = this.defs.get(t as any);\n if (rec) {\n const sc = this.getProviderScope(rec);\n if (sc === ProviderScope.GLOBAL) {\n if (!this.instances.has(t)) {\n throw new Error(`Dependency ${tokenName(t)} (DEFAULT scope) is not instantiated`);\n }\n return this.instances.get(t);\n } else {\n await this.buildIntoStore(t, rec, store, scopeKey);\n return store.get(t);\n }\n }\n\n // Parent def?\n const up = this.lookupDefInHierarchy(t);\n if (up) {\n const sc = up.registry.getProviderScope(up.rec);\n if (sc === ProviderScope.GLOBAL) {\n const inst = up.registry.instances.get(t);\n if (inst === undefined) {\n throw new Error(`Dependency ${tokenName(t)} (DEFAULT scope) is not instantiated in parent`);\n }\n return inst;\n } else {\n await up.registry.buildIntoStore(t, up.rec, store, scopeKey);\n return store.get(t);\n }\n }\n\n // Constructable fallback (non-DI)\n if (isClass(t)) {\n if (hasAsyncWith(t)) {\n const out = (t as any).with();\n return isPromise(out) ? await this.withTimeout(out, this.asyncTimeoutMs, `${t.name}.with(...)`) : out;\n }\n const instance = new (t as Ctor<any>)();\n const init = (instance as any)?.init;\n if (typeof init === 'function') {\n const ret = init.call(instance);\n if (isPromise(ret)) await this.withTimeout(ret, this.asyncTimeoutMs, `${t.name}.init()`);\n }\n return instance;\n }\n\n throw new Error(`Cannot resolve token ${tokenName(t)}: not registered in hierarchy and not constructable.`);\n }\n\n /** Build a single DEFAULT-scoped singleton (used by incremental instantiating). */\n private async initiateOne(token: Token, rec: ProviderRecord): Promise<void> {\n switch (rec.kind) {\n case ProviderKind.VALUE: {\n this.instances.set(token, (rec as any).useValue);\n return;\n }\n case ProviderKind.FACTORY: {\n const deps = this.invocationTokens(token, rec);\n const args: any[] = [];\n for (const d of deps) args.push(await this.resolveFactoryArg(d, this.instances));\n const out = (rec as any).useFactory(...args);\n const val = isPromise(out)\n ? await this.withTimeout(out, this.asyncTimeoutMs, `${tokenName(token)}.useFactory(...)`)\n : out;\n this.instances.set(token, val);\n return;\n }\n case ProviderKind.CLASS: {\n const depTokens = this.invocationTokens(token, rec);\n const deps = depTokens.map((t) => this.resolveDefaultFromHierarchy(t));\n const klass = (rec as any).useClass;\n if (hasAsyncWith(klass)) {\n const out = (klass as any).with(...deps);\n const val = isPromise(out)\n ? await this.withTimeout(out, this.asyncTimeoutMs, `${klass.name}.with(...)`)\n : out;\n this.instances.set(token, val);\n } else {\n const instance = new (klass as Ctor<any>)(...deps);\n const init = (instance as any)?.init;\n if (typeof init === 'function') {\n const ret = init.call(instance);\n if (isPromise(ret)) await this.withTimeout(ret, this.asyncTimeoutMs, `${klass.name}.init()`);\n }\n this.instances.set(token, instance);\n }\n return;\n }\n case ProviderKind.CLASS_TOKEN: {\n const depTokens = this.invocationTokens(token, rec);\n const deps = depTokens.map((t) => this.resolveDefaultFromHierarchy(t));\n const klass = (rec as any).provide;\n if (hasAsyncWith(klass)) {\n const out = (klass as any).with(...deps);\n const val = isPromise(out)\n ? await this.withTimeout(out, this.asyncTimeoutMs, `${klass.name}.with(...)`)\n : out;\n this.instances.set(token, val);\n } else {\n const instance = new (klass as Ctor<any>)(...deps);\n const init = (instance as any)?.init;\n if (typeof init === 'function') {\n const ret = init.call(instance);\n if (isPromise(ret)) await this.withTimeout(ret, this.asyncTimeoutMs, `${klass.name}.init()`);\n }\n this.instances.set(token, instance);\n }\n return;\n }\n }\n }\n\n // Build a registered provider into the given scoped store (recursive for scoped deps).\n private async buildIntoStore(\n token: Token,\n rec: ProviderRecord,\n store: Map<Token, any>,\n scopeKey?: string,\n injectedDeps?: any[],\n ): Promise<void> {\n if (store.has(token)) return;\n\n try {\n switch (rec.kind) {\n case ProviderKind.VALUE: {\n store.set(token, (rec as any).useValue);\n return;\n }\n case ProviderKind.FACTORY: {\n const deps = this.invocationTokens(token, rec);\n const args: any[] = [];\n for (const d of deps) args.push(await this.resolveFactoryArg(d, store, scopeKey));\n const out = (rec as any).useFactory(...args);\n const val = isPromise(out)\n ? await this.withTimeout(out, this.asyncTimeoutMs, `${tokenName(token)}.useFactory(...)`)\n : out;\n store.set(token, val);\n return;\n }\n case ProviderKind.CLASS: {\n const depsTokens = this.invocationTokens(token, rec);\n const deps: any[] = [];\n for (const d of depsTokens) deps.push(await this.resolveManagedForClass(d, store, scopeKey));\n const klass = (rec as any).useClass as Ctor<any>;\n if (hasAsyncWith(klass)) {\n const out = (klass as any).with(...deps);\n const val = isPromise(out)\n ? await this.withTimeout(out, this.asyncTimeoutMs, `${klass.name}.with(...)`)\n : out;\n store.set(token, val);\n } else {\n const instance = new (klass as Ctor<any>)(...deps);\n const init = (instance as any)?.init;\n if (typeof init === 'function') {\n const ret = init.call(instance);\n if (isPromise(ret)) await this.withTimeout(ret, this.asyncTimeoutMs, `${klass.name}.init()`);\n }\n store.set(token, instance);\n }\n return;\n }\n case ProviderKind.CLASS_TOKEN: {\n const depsTokens = this.invocationTokens(token, rec);\n const deps: any[] = injectedDeps ?? [];\n for (const d of depsTokens) deps.push(await this.resolveManagedForClass(d, store, scopeKey));\n const klass = (rec as any).provide as Ctor<any>;\n if (hasAsyncWith(klass)) {\n const out = (klass as any).with(...deps);\n const val = isPromise(out)\n ? await this.withTimeout(out, this.asyncTimeoutMs, `${klass.name}.with(...)`)\n : out;\n store.set(token, val);\n } else {\n const instance = new (klass as Ctor<any>)(...deps);\n const init = (instance as any)?.init;\n if (typeof init === 'function') {\n const ret = init.call(instance);\n if (isPromise(ret)) await this.withTimeout(ret, this.asyncTimeoutMs, `${klass.name}.init()`);\n }\n store.set(token, instance);\n }\n return;\n }\n }\n } catch (e: any) {\n const msg = e?.message ?? e;\n // Use safe logging to avoid Node.js 24 util.inspect bug with Zod errors\n console.error(`Failed constructing:`, msg);\n throw new Error(`Failed constructing (scoped) ${tokenName(token)}: ${msg}`);\n }\n }\n\n // Ensure managed dependency value for CLASS/CLASS_TOKEN providers:\n // prefer scoped store, then singleton; recursively build scoped deps.\n // If not local, climb the hierarchy and either read DEFAULT instance or build scoped into this store.\n private async resolveManagedForClass(d: Token, store: Map<Token, any>, scopeKey?: string): Promise<any> {\n if (store.has(d)) return store.get(d);\n if (this.instances.has(d)) return this.instances.get(d);\n\n // Local DI?\n const depRec = this.defs.get(d as any);\n if (depRec) {\n const sc = this.getProviderScope(depRec);\n if (sc === ProviderScope.GLOBAL) {\n const v = this.instances.get(d);\n if (v === undefined) throw new Error(`${tokenName(d)} (DEFAULT scope) is not instantiated`);\n return v;\n } else {\n await this.buildIntoStore(d, depRec, store, scopeKey);\n return store.get(d);\n }\n }\n\n // Parent DI?\n const up = this.lookupDefInHierarchy(d);\n if (up) {\n const sc = up.registry.getProviderScope(up.rec);\n if (sc === ProviderScope.GLOBAL) {\n const v = up.registry.instances.get(d);\n if (v === undefined) throw new Error(`${tokenName(d)} (DEFAULT scope) is not instantiated in parent`);\n return v;\n } else {\n await up.registry.buildIntoStore(d, up.rec, store, scopeKey);\n return store.get(d);\n }\n }\n\n throw new Error(`${tokenName(d)} is not instantiated`);\n }\n\n get<T>(token: Token<T>): T {\n if (this.instances.has(token)) return this.instances.get(token) as T;\n\n const rec = this.defs.get(token as any);\n if (rec && this.getProviderScope(rec) !== ProviderScope.GLOBAL) {\n const scName = ProviderScope[this.getProviderScope(rec)];\n throw new Error(`Provider ${tokenName(token)} is scoped (${scName}). Use getScoped(token, key).`);\n }\n\n // bubble to parent\n if (this.providers) return this.providers.get<T>(token);\n\n throw new Error(`Provider ${tokenName(token)} is not available in local or parent registries`);\n }\n\n // noinspection JSUnusedGlobalSymbols\n addRegistry<T extends RegistryKind>(type: T, value: RegistryType[T]) {\n let registry = this.registries.get(type);\n if (!registry) {\n this.registries.set(type, new Set());\n registry = this.registries.get(type);\n }\n registry!.add(value as any);\n }\n\n getRegistries<T extends RegistryKind>(type: T): RegistryType[T][] {\n return [...(this.registries.get(type) ?? [])] as any;\n }\n\n getHooksRegistry() {\n return this.getRegistries('HookRegistry')[0] as HookRegistry;\n }\n\n // noinspection JSUnusedGlobalSymbols\n getScopeRegistry() {\n return this.getRegistries('ScopeRegistry')[0]!;\n }\n\n /** bootstrap helper: resolve a dependency usable during app bootstrap (must be GLOBAL). */\n async resolveBootstrapDep(t: Token): Promise<any> {\n if (this.instances.has(t)) return this.instances.get(t);\n if (this.registries.has(t as RegistryKind)) return this.registries.get(t as RegistryKind);\n\n const found = this.lookupDefInHierarchy(t);\n if (found) {\n const { registry, rec } = found;\n const sc = registry.getProviderScope(rec);\n if (sc !== ProviderScope.GLOBAL)\n throw new Error(`Plugin dependency ${tokenName(t)} must be DEFAULT-scoped at bootstrap`);\n const v = registry.instances.get(t);\n if (v === undefined) throw new Error(`Plugin dependency ${tokenName(t)} (DEFAULT scope) is not instantiated`);\n return v;\n }\n throw new Error(`Cannot resolve plugin dependency ${tokenName(t)} (local or parent)`);\n }\n\n /** Lightweight, synchronous resolver for app-scoped DI.\n * - If `cls` is a registered DEFAULT provider token, returns the singleton (must be instantiated).\n * - If `cls` is SCOPED in DI, throws (use getScoped/buildViews instead).\n * - Otherwise, if `cls` is a constructable class not registered in DI, returns `new cls()`.\n * If it defines a synchronous init(), it will be invoked (async init() is NOT awaited).\n */\n resolve<T>(cls: any): T {\n // 1) If it's a registered token (local or parent), handle via DI rules\n const found = this.lookupDefInHierarchy(cls as any);\n if (found) {\n const { registry, rec } = found;\n const sc = registry.getProviderScope(rec);\n if (sc !== ProviderScope.GLOBAL) {\n const scName = ProviderScope[sc];\n throw new Error(\n `Provider ${tokenName(cls)} is scoped (${scName}). Use getScoped(token, key) or buildViews(...).`,\n );\n }\n if (!registry.instances.has(cls)) {\n throw new Error(\n `Provider ${tokenName(cls)} (DEFAULT scope) is not instantiated. Call providers.instantiate() first.`,\n );\n }\n return registry.instances.get(cls) as T;\n }\n\n // 2) Not a registered token — best-effort construct (for tools/hooks/wrappers)\n if (isClass(cls)) {\n const instance = new (cls as Ctor<any>)();\n\n // Call sync init() if present (do NOT await)\n const init = (instance as any)?.init;\n if (typeof init === 'function') {\n // If someone accidentally made init async here, we intentionally do NOT await to keep it sync.\n init.call(instance);\n }\n\n return instance as T;\n }\n\n // 3) Unsupported token type\n throw new Error(\n `Cannot resolve ${tokenName(cls)}: not a registered DEFAULT provider and not a constructable class.`,\n );\n }\n\n mergeFromRegistry(\n providedBy: ProviderRegistry,\n exported: {\n token: Token<ProviderInterface>;\n def: ProviderRecord;\n instance: ProviderEntry;\n }[],\n ) {\n for (const { token, def, instance } of exported) {\n if (def.metadata.scope === ProviderScope.GLOBAL) {\n this.instances.set(token, instance);\n }\n this.defs.set(token, def);\n this.providedBy.set(token, providedBy);\n }\n }\n\n /**\n * Used by plugins to get the exported provider definitions.\n */\n getProviderInfo(token: Token<ProviderInterface>) {\n const def = this.defs.get(token);\n const instance = this.instances.get(token);\n if (!def || !instance)\n throw new Error(\n `Cannot get provider info for ${tokenName(\n token,\n )}: not a registered DEFAULT provider and not a constructable class.`,\n );\n return {\n token,\n def,\n instance,\n };\n }\n\n injectProvider(injected: Omit<ProviderInjectedRecord, 'kind'>) {\n const rec: ProviderInjectedRecord = {\n ...injected,\n kind: ProviderKind.INJECTED,\n };\n this.tokens.add(rec.provide);\n this.defs.set(rec.provide, rec);\n this.graph.set(rec.provide, new Set());\n this.instances.set(rec.provide, rec.value);\n }\n\n async addDynamicProviders(dynamicProviders: ProviderType[]) {\n // Normalize ProviderType[] to ProviderRecord[] before instantiation\n const normalized = dynamicProviders.map((p) => normalizeProvider(p));\n return Promise.all(normalized.map((rec) => this.initiateOne(rec.provide, rec)));\n }\n\n private getWithParents<T>(token: Token<T>): T {\n if (this.instances.has(token)) {\n return this.get(token);\n }\n const parent = this.parentProviders;\n if (!parent) {\n return this.get(token);\n }\n return parent.getWithParents(token);\n }\n\n getActiveScope(): Scope {\n return this.getWithParents(Scope);\n }\n\n getActiveServer(): FrontMcpServer {\n return this.getWithParents(FrontMcpServer);\n }\n\n /**\n * Build provider instance views for different scopes\n * NOTE: This is currently a stub implementation returning empty maps.\n * Actual view building logic is planned as part of the session management refactoring.\n * See the ProviderRegistryInterface TODO for fixing the session type.\n */\n async buildViews(session: string): Promise<ProviderViews> {\n return {\n global: new Map<Token, any>(),\n session: new Map<Token, any>(),\n request: new Map<Token, any>(),\n };\n }\n}\n"]}
@@ -5,7 +5,7 @@ export type RegistryBuildMapResult<Record> = {
5
5
  defs: Map<Token, Record>;
6
6
  graph: Map<Token, Set<Token>>;
7
7
  };
8
- export declare abstract class RegistryAbstract<Interface, Record, MetadataType, ProviderRegistryType extends (ProviderRegistry | undefined) = ProviderRegistry> {
8
+ export declare abstract class RegistryAbstract<Interface, Record, MetadataType, ProviderRegistryType extends ProviderRegistry | undefined = ProviderRegistry> {
9
9
  protected asyncTimeoutMs: 30000;
10
10
  ready: Promise<void>;
11
11
  protected providers: ProviderRegistryType;
@@ -1 +1 @@
1
- {"version":3,"file":"registry.base.js","sourceRoot":"","sources":["../../../src/regsitry/registry.base.ts"],"names":[],"mappings":";;;AAUA,MAAsB,gBAAgB;IAM1B,cAAc,CAAQ;IAGhC,KAAK,CAAgB;IAEX,SAAS,CAAuB;IAChC,IAAI,CAAe;IAE7B,iDAAiD;IACvC,MAAM,CAAa;IAC7B,iCAAiC;IACvB,IAAI,CAAqB;IACnC,gCAAgC;IACtB,KAAK,CAAyB;IAGxC,+CAA+C;IAC5B,SAAS,GAAqC,IAAI,GAAG,EAAE,CAAC;IAE3E,YAAsB,IAAkB,EAAE,SAA+B,EAAE,QAAsB,EAAE,IAAI,GAAG,IAAI;QAC5G,SAAS,EAAE,WAAW,CAAC,IAAI,EAAE,IAA2B,CAAC,CAAC;QAC1D,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC;QAErB,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAExD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QAEnB,IAAI,IAAI,EAAE,CAAC;YACT,IAAI,CAAC,UAAU,EAAE,CAAC;YAClB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QACjC,CAAC;IACH,CAAC;CAOF;AA/CD,4CA+CC","sourcesContent":["import { RegistryKind, RegistryType, Token } from '../common';\nimport ProviderRegistry from '../provider/provider.registry';\n\n\nexport type RegistryBuildMapResult<Record> = {\n tokens: Set<Token>;\n defs: Map<Token, Record>;\n graph: Map<Token, Set<Token>>;\n}\n\nexport abstract class RegistryAbstract<\n Interface,\n Record,\n MetadataType,\n ProviderRegistryType extends (ProviderRegistry | undefined) = ProviderRegistry\n> {\n protected asyncTimeoutMs: 30000;\n\n\n ready: Promise<void>;\n\n protected providers: ProviderRegistryType;\n protected list: MetadataType;\n\n /** All tokens that are provided (graph nodes) */\n protected tokens: Set<Token>;\n /** Record definition by token */\n protected defs: Map<Token, Record>;\n /** Dependency graph by token */\n protected graph: Map<Token, Set<Token>>;\n\n\n /** All apps that are provided (graph nodes) */\n protected readonly instances: Map<Token<Interface>, Interface> = new Map();\n\n protected constructor(name: RegistryKind, providers: ProviderRegistryType, metadata: MetadataType, auto = true) {\n providers?.addRegistry(name, this as any as RegistryType);\n this.providers = providers;\n this.list = metadata;\n\n const { tokens, defs, graph } = this.buildMap(metadata);\n\n this.tokens = tokens;\n this.defs = defs;\n this.graph = graph;\n\n if (auto) {\n this.buildGraph();\n this.ready = this.initialize();\n }\n }\n\n protected abstract buildMap(list: MetadataType): RegistryBuildMapResult<Record>;\n\n protected abstract buildGraph(): void;\n\n protected abstract initialize(): Promise<void>;\n}\n"]}
1
+ {"version":3,"file":"registry.base.js","sourceRoot":"","sources":["../../../src/regsitry/registry.base.ts"],"names":[],"mappings":";;;AASA,MAAsB,gBAAgB;IAM1B,cAAc,CAAQ;IAEhC,KAAK,CAAgB;IAEX,SAAS,CAAuB;IAChC,IAAI,CAAe;IAE7B,iDAAiD;IACvC,MAAM,CAAa;IAC7B,iCAAiC;IACvB,IAAI,CAAqB;IACnC,gCAAgC;IACtB,KAAK,CAAyB;IAExC,+CAA+C;IAC5B,SAAS,GAAqC,IAAI,GAAG,EAAE,CAAC;IAE3E,YAAsB,IAAkB,EAAE,SAA+B,EAAE,QAAsB,EAAE,IAAI,GAAG,IAAI;QAC5G,SAAS,EAAE,WAAW,CAAC,IAAI,EAAE,IAAW,CAAC,CAAC;QAC1C,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC;QAErB,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAExD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QAEnB,IAAI,IAAI,EAAE,CAAC;YACT,IAAI,CAAC,UAAU,EAAE,CAAC;YAClB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;QACjC,CAAC;IACH,CAAC;CAOF;AA7CD,4CA6CC","sourcesContent":["import { RegistryKind, RegistryType, Token } from '../common';\nimport ProviderRegistry from '../provider/provider.registry';\n\nexport type RegistryBuildMapResult<Record> = {\n tokens: Set<Token>;\n defs: Map<Token, Record>;\n graph: Map<Token, Set<Token>>;\n};\n\nexport abstract class RegistryAbstract<\n Interface,\n Record,\n MetadataType,\n ProviderRegistryType extends ProviderRegistry | undefined = ProviderRegistry,\n> {\n protected asyncTimeoutMs: 30000;\n\n ready: Promise<void>;\n\n protected providers: ProviderRegistryType;\n protected list: MetadataType;\n\n /** All tokens that are provided (graph nodes) */\n protected tokens: Set<Token>;\n /** Record definition by token */\n protected defs: Map<Token, Record>;\n /** Dependency graph by token */\n protected graph: Map<Token, Set<Token>>;\n\n /** All apps that are provided (graph nodes) */\n protected readonly instances: Map<Token<Interface>, Interface> = new Map();\n\n protected constructor(name: RegistryKind, providers: ProviderRegistryType, metadata: MetadataType, auto = true) {\n providers?.addRegistry(name, this as any);\n this.providers = providers;\n this.list = metadata;\n\n const { tokens, defs, graph } = this.buildMap(metadata);\n\n this.tokens = tokens;\n this.defs = defs;\n this.graph = graph;\n\n if (auto) {\n this.buildGraph();\n this.ready = this.initialize();\n }\n }\n\n protected abstract buildMap(list: MetadataType): RegistryBuildMapResult<Record>;\n\n protected abstract buildGraph(): void;\n\n protected abstract initialize(): Promise<void>;\n}\n"]}
@@ -0,0 +1,91 @@
1
+ import { FlowBase, FlowRunOptions, ResourceContext, ResourceEntry } from '../../common';
2
+ import { z } from 'zod';
3
+ import { AuthInfo } from '@modelcontextprotocol/sdk/server/auth/types.js';
4
+ declare const inputSchema: z.ZodObject<{
5
+ request: z.ZodObject<{
6
+ method: z.ZodLiteral<"resources/read">;
7
+ params: z.ZodObject<{
8
+ _meta: z.ZodOptional<z.ZodObject<{
9
+ progressToken: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>>;
10
+ }, z.core.$loose>>;
11
+ uri: z.ZodString;
12
+ }, z.core.$loose>;
13
+ }, z.core.$strip>;
14
+ ctx: z.ZodAny;
15
+ }, z.core.$strip>;
16
+ declare const outputSchema: z.ZodObject<{
17
+ _meta: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
18
+ contents: z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{
19
+ uri: z.ZodString;
20
+ mimeType: z.ZodOptional<z.ZodString>;
21
+ _meta: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
22
+ text: z.ZodString;
23
+ }, z.core.$strip>, z.ZodObject<{
24
+ uri: z.ZodString;
25
+ mimeType: z.ZodOptional<z.ZodString>;
26
+ _meta: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
27
+ blob: z.ZodString;
28
+ }, z.core.$strip>]>>;
29
+ }, z.core.$loose>;
30
+ declare const stateSchema: z.ZodObject<{
31
+ input: z.ZodObject<{
32
+ uri: z.ZodString;
33
+ }, z.core.$strip>;
34
+ authInfo: z.ZodType<AuthInfo>;
35
+ params: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodString>>;
36
+ resource: z.ZodType<ResourceEntry>;
37
+ resourceContext: z.ZodType<ResourceContext>;
38
+ rawOutput: z.ZodOptional<z.ZodAny>;
39
+ output: z.ZodObject<{
40
+ _meta: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
41
+ contents: z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{
42
+ uri: z.ZodString;
43
+ mimeType: z.ZodOptional<z.ZodString>;
44
+ _meta: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
45
+ text: z.ZodString;
46
+ }, z.core.$strip>, z.ZodObject<{
47
+ uri: z.ZodString;
48
+ mimeType: z.ZodOptional<z.ZodString>;
49
+ _meta: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
50
+ blob: z.ZodString;
51
+ }, z.core.$strip>]>>;
52
+ }, z.core.$loose>;
53
+ resourceOwnerId: z.ZodOptional<z.ZodString>;
54
+ sessionId: z.ZodOptional<z.ZodString>;
55
+ isUIResource: z.ZodDefault<z.ZodBoolean>;
56
+ uiResourceResult: z.ZodOptional<z.ZodObject<{
57
+ _meta: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
58
+ contents: z.ZodArray<z.ZodUnion<readonly [z.ZodObject<{
59
+ uri: z.ZodString;
60
+ mimeType: z.ZodOptional<z.ZodString>;
61
+ _meta: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
62
+ text: z.ZodString;
63
+ }, z.core.$strip>, z.ZodObject<{
64
+ uri: z.ZodString;
65
+ mimeType: z.ZodOptional<z.ZodString>;
66
+ _meta: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
67
+ blob: z.ZodString;
68
+ }, z.core.$strip>]>>;
69
+ }, z.core.$loose>>;
70
+ }, z.core.$strip>;
71
+ declare const plan: {
72
+ readonly pre: ["parseInput", "findResource", "createResourceContext"];
73
+ readonly execute: ["execute", "validateOutput"];
74
+ readonly finalize: ["finalize"];
75
+ };
76
+ declare global {
77
+ interface ExtendFlows {
78
+ 'resources:read-resource': FlowRunOptions<ReadResourceFlow, typeof plan, typeof inputSchema, typeof outputSchema, typeof stateSchema>;
79
+ }
80
+ }
81
+ declare const name: "resources:read-resource";
82
+ export default class ReadResourceFlow extends FlowBase<typeof name> {
83
+ logger: import("../../common").FrontMcpLogger;
84
+ parseInput(): Promise<void>;
85
+ findResource(): Promise<void>;
86
+ createResourceContext(): Promise<void>;
87
+ execute(): Promise<void>;
88
+ validateOutput(): Promise<void>;
89
+ finalize(): Promise<void>;
90
+ }
91
+ export {};
@@ -0,0 +1,270 @@
1
+ "use strict";
2
+ // file: libs/sdk/src/resource/flows/read-resource.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 ui_1 = require("../../tool/ui");
10
+ const inputSchema = zod_1.z.object({
11
+ request: types_js_1.ReadResourceRequestSchema,
12
+ // z.any() used because ctx is the MCP SDK's ResourceReadExtra type which varies by SDK version
13
+ ctx: zod_1.z.any(),
14
+ });
15
+ const outputSchema = types_js_1.ReadResourceResultSchema;
16
+ const stateSchema = zod_1.z.object({
17
+ input: zod_1.z.object({
18
+ uri: zod_1.z.string().min(1),
19
+ }),
20
+ // z.any() used because AuthInfo is a complex external type from @modelcontextprotocol/sdk
21
+ authInfo: zod_1.z.any().optional(),
22
+ params: zod_1.z.record(zod_1.z.string(), zod_1.z.string()).default({}), // URI template parameters
23
+ // z.any() used because ResourceEntry is a complex abstract class type
24
+ resource: zod_1.z.any(),
25
+ // z.any() used because ResourceContext is a complex abstract class type
26
+ resourceContext: zod_1.z.any(),
27
+ // z.any() used because resource output type varies by resource implementation
28
+ rawOutput: zod_1.z.any().optional(),
29
+ output: outputSchema,
30
+ // Resource owner ID for hook filtering (stored in state instead of mutating rawInput)
31
+ resourceOwnerId: zod_1.z.string().optional(),
32
+ // Session ID for platform type detection
33
+ sessionId: zod_1.z.string().optional(),
34
+ // Flag indicating this is a UI resource (ui:// scheme)
35
+ isUIResource: zod_1.z.boolean().default(false),
36
+ // Pre-resolved UI resource result (if isUIResource is true)
37
+ uiResourceResult: outputSchema.optional(),
38
+ });
39
+ const plan = {
40
+ pre: ['parseInput', 'findResource', 'createResourceContext'],
41
+ execute: ['execute', 'validateOutput'],
42
+ finalize: ['finalize'],
43
+ };
44
+ const name = 'resources:read-resource';
45
+ const { Stage } = (0, common_1.FlowHooksOf)(name);
46
+ let ReadResourceFlow = class ReadResourceFlow extends common_1.FlowBase {
47
+ logger = this.scopeLogger.child('ReadResourceFlow');
48
+ async parseInput() {
49
+ this.logger.verbose('parseInput:start');
50
+ let method;
51
+ let params;
52
+ let ctx;
53
+ try {
54
+ const inputData = inputSchema.parse(this.rawInput);
55
+ method = inputData.request.method;
56
+ params = inputData.request.params;
57
+ ctx = inputData.ctx;
58
+ }
59
+ catch (e) {
60
+ throw new errors_1.InvalidInputError('Invalid Input', e instanceof zod_1.z.ZodError ? e.issues : undefined);
61
+ }
62
+ if (method !== 'resources/read') {
63
+ this.logger.warn(`parseInput: invalid method "${method}"`);
64
+ throw new errors_1.InvalidMethodError(method, 'resources/read');
65
+ }
66
+ // Extract sessionId from context for platform type detection
67
+ const sessionId = ctx?.['sessionId'];
68
+ this.state.set({
69
+ input: params,
70
+ authInfo: ctx.authInfo,
71
+ sessionId: typeof sessionId === 'string' ? sessionId : undefined,
72
+ });
73
+ this.logger.verbose('parseInput:done');
74
+ }
75
+ async findResource() {
76
+ this.logger.verbose('findResource:start');
77
+ const { uri } = this.state.required.input;
78
+ this.logger.info(`findResource: looking for resource with URI "${uri}"`);
79
+ // Check for UI resource URIs (ui://...) first
80
+ if ((0, ui_1.isUIResourceUri)(uri)) {
81
+ this.logger.info(`findResource: detected UI resource URI "${uri}"`);
82
+ // Get the ToolUIRegistry from the scope
83
+ const scope = this.scope;
84
+ // Get platform type: first check sessionIdPayload (detected from user-agent),
85
+ // then fall back to notification service (detected from MCP clientInfo)
86
+ const { sessionId, authInfo } = this.state;
87
+ const platformType = authInfo?.sessionIdPayload?.platformType ??
88
+ (sessionId ? scope.notifications.getPlatformType(sessionId) : undefined);
89
+ this.logger.verbose(`findResource: platform type for session: ${platformType ?? 'unknown'}`);
90
+ const uiResult = (0, ui_1.handleUIResourceRead)(uri, scope.toolUI, platformType);
91
+ if (uiResult.handled) {
92
+ if (uiResult.error) {
93
+ this.logger.warn(`findResource: UI resource error - ${uiResult.error}`);
94
+ throw new errors_1.ResourceNotFoundError(uri);
95
+ }
96
+ // Store the UI resource result and mark as UI resource
97
+ this.state.set('isUIResource', true);
98
+ this.state.set('uiResourceResult', uiResult.result);
99
+ this.logger.info(`findResource: UI resource "${uri}" resolved from cache`);
100
+ this.logger.verbose('findResource:done');
101
+ return;
102
+ }
103
+ }
104
+ // Try to find a resource that matches this URI
105
+ // First try exact URI match, then template matching
106
+ const match = this.scope.resources.findResourceForUri(uri);
107
+ if (!match) {
108
+ this.logger.warn(`findResource: resource for URI "${uri}" not found`);
109
+ throw new errors_1.ResourceNotFoundError(uri);
110
+ }
111
+ // Store resource owner ID in flow state for hook filtering
112
+ if (match.instance.owner) {
113
+ this.state.set('resourceOwnerId', match.instance.owner.id);
114
+ }
115
+ this.logger = this.logger.child(`ReadResourceFlow(${uri})`);
116
+ this.state.set('resource', match.instance);
117
+ this.state.set('params', match.params);
118
+ this.logger.info(`findResource: resource "${match.instance.name}" found (template: ${match.instance.isTemplate})`);
119
+ this.logger.verbose('findResource:done');
120
+ }
121
+ async createResourceContext() {
122
+ this.logger.verbose('createResourceContext:start');
123
+ // Skip for UI resources - they're already resolved
124
+ if (this.state.isUIResource) {
125
+ this.logger.verbose('createResourceContext: skipping for UI resource');
126
+ return;
127
+ }
128
+ const { ctx } = this.input;
129
+ const { resource, input, params } = this.state.required;
130
+ try {
131
+ const context = resource.create(input.uri, params, ctx);
132
+ const resourceHooks = this.scope.hooks.getClsHooks(resource.record.provide).map((hook) => {
133
+ hook.run = async () => {
134
+ return context[hook.metadata.method]();
135
+ };
136
+ return hook;
137
+ });
138
+ this.appendContextHooks(resourceHooks);
139
+ context.mark('createResourceContext');
140
+ this.state.set('resourceContext', context);
141
+ this.logger.verbose('createResourceContext:done');
142
+ }
143
+ catch (error) {
144
+ this.logger.error('createResourceContext: failed to create context', error);
145
+ throw new errors_1.ResourceReadError(input.uri, error instanceof Error ? error : undefined);
146
+ }
147
+ }
148
+ async execute() {
149
+ this.logger.verbose('execute:start');
150
+ // Skip for UI resources - they're already resolved
151
+ if (this.state.isUIResource) {
152
+ this.logger.verbose('execute: skipping for UI resource');
153
+ return;
154
+ }
155
+ const resourceContext = this.state.resourceContext;
156
+ const { input, params } = this.state.required;
157
+ if (!resourceContext) {
158
+ this.logger.warn('execute: resourceContext not found, skipping execution');
159
+ return;
160
+ }
161
+ resourceContext.mark('execute');
162
+ try {
163
+ resourceContext.output = await resourceContext.execute(input.uri, params);
164
+ this.logger.verbose('execute:done');
165
+ }
166
+ catch (error) {
167
+ this.logger.error('execute: resource read failed', error);
168
+ throw new errors_1.ResourceReadError(input.uri, error instanceof Error ? error : undefined);
169
+ }
170
+ }
171
+ async validateOutput() {
172
+ this.logger.verbose('validateOutput:start');
173
+ // Skip for UI resources - they're already resolved
174
+ if (this.state.isUIResource) {
175
+ this.logger.verbose('validateOutput: skipping for UI resource');
176
+ return;
177
+ }
178
+ const { resourceContext } = this.state;
179
+ if (!resourceContext) {
180
+ this.logger.warn('validateOutput: resourceContext not found, skipping validation');
181
+ return;
182
+ }
183
+ resourceContext.mark('validateOutput');
184
+ // Store the RAW output for plugins to inspect
185
+ this.state.set('rawOutput', resourceContext.output);
186
+ this.logger.verbose('validateOutput:done');
187
+ }
188
+ async finalize() {
189
+ this.logger.verbose('finalize:start');
190
+ // Handle UI resources - return the pre-resolved result
191
+ if (this.state.isUIResource) {
192
+ const { uiResourceResult, input } = this.state;
193
+ if (!uiResourceResult) {
194
+ this.logger.error('finalize: UI resource result not found in state');
195
+ throw new errors_1.ResourceReadError(input?.uri || 'unknown', new Error('UI resource result not found'));
196
+ }
197
+ this.respond(uiResourceResult);
198
+ this.logger.verbose('finalize:done (UI resource)');
199
+ return;
200
+ }
201
+ const { resource, rawOutput, input } = this.state;
202
+ if (!resource) {
203
+ this.logger.error('finalize: resource not found in state');
204
+ throw new errors_1.ResourceReadError('unknown', new Error('Resource not found in state'));
205
+ }
206
+ if (rawOutput === undefined) {
207
+ this.logger.error('finalize: resource output not found in state');
208
+ throw new errors_1.ResourceReadError(input?.uri || 'unknown', new Error('Resource output not found'));
209
+ }
210
+ // Parse and construct the MCP-compliant output using safeParseOutput
211
+ const parseResult = resource.safeParseOutput(rawOutput);
212
+ if (!parseResult.success) {
213
+ this.logger.error('finalize: output validation failed', {
214
+ resource: resource.metadata.name,
215
+ errors: parseResult.error,
216
+ });
217
+ throw new errors_1.InvalidOutputError();
218
+ }
219
+ // Respond with the properly formatted MCP result
220
+ this.respond(parseResult.data);
221
+ this.logger.verbose('finalize:done');
222
+ }
223
+ };
224
+ tslib_1.__decorate([
225
+ Stage('parseInput'),
226
+ tslib_1.__metadata("design:type", Function),
227
+ tslib_1.__metadata("design:paramtypes", []),
228
+ tslib_1.__metadata("design:returntype", Promise)
229
+ ], ReadResourceFlow.prototype, "parseInput", null);
230
+ tslib_1.__decorate([
231
+ Stage('findResource'),
232
+ tslib_1.__metadata("design:type", Function),
233
+ tslib_1.__metadata("design:paramtypes", []),
234
+ tslib_1.__metadata("design:returntype", Promise)
235
+ ], ReadResourceFlow.prototype, "findResource", null);
236
+ tslib_1.__decorate([
237
+ Stage('createResourceContext'),
238
+ tslib_1.__metadata("design:type", Function),
239
+ tslib_1.__metadata("design:paramtypes", []),
240
+ tslib_1.__metadata("design:returntype", Promise)
241
+ ], ReadResourceFlow.prototype, "createResourceContext", null);
242
+ tslib_1.__decorate([
243
+ Stage('execute'),
244
+ tslib_1.__metadata("design:type", Function),
245
+ tslib_1.__metadata("design:paramtypes", []),
246
+ tslib_1.__metadata("design:returntype", Promise)
247
+ ], ReadResourceFlow.prototype, "execute", null);
248
+ tslib_1.__decorate([
249
+ Stage('validateOutput'),
250
+ tslib_1.__metadata("design:type", Function),
251
+ tslib_1.__metadata("design:paramtypes", []),
252
+ tslib_1.__metadata("design:returntype", Promise)
253
+ ], ReadResourceFlow.prototype, "validateOutput", null);
254
+ tslib_1.__decorate([
255
+ Stage('finalize'),
256
+ tslib_1.__metadata("design:type", Function),
257
+ tslib_1.__metadata("design:paramtypes", []),
258
+ tslib_1.__metadata("design:returntype", Promise)
259
+ ], ReadResourceFlow.prototype, "finalize", null);
260
+ ReadResourceFlow = tslib_1.__decorate([
261
+ (0, common_1.Flow)({
262
+ name,
263
+ plan,
264
+ inputSchema,
265
+ outputSchema,
266
+ access: 'authorized',
267
+ })
268
+ ], ReadResourceFlow);
269
+ exports.default = ReadResourceFlow;
270
+ //# sourceMappingURL=read-resource.flow.js.map