@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
@@ -2,16 +2,8 @@ import { FlowBase, FlowRunOptions } from '../../common';
2
2
  import 'reflect-metadata';
3
3
  import { z } from 'zod';
4
4
  declare const inputSchema: z.ZodObject<{
5
- request: z.ZodObject<{}, "passthrough", z.ZodTypeAny, z.objectOutputType<{}, z.ZodTypeAny, "passthrough">, z.objectInputType<{}, z.ZodTypeAny, "passthrough">>;
6
- }, "strip", z.ZodTypeAny, {
7
- request: {} & {
8
- [k: string]: unknown;
9
- };
10
- }, {
11
- request: {} & {
12
- [k: string]: unknown;
13
- };
14
- }>;
5
+ request: z.ZodObject<{}, z.core.$loose>;
6
+ }, z.core.$strip>;
15
7
  declare const stateSchema: z.ZodObject<{
16
8
  baseUrl: z.ZodString;
17
9
  authorizationHeader: z.ZodOptional<z.ZodString>;
@@ -20,357 +12,101 @@ declare const stateSchema: z.ZodObject<{
20
12
  sessionProtocol: z.ZodOptional<z.ZodString>;
21
13
  prmMetadataPath: z.ZodOptional<z.ZodString>;
22
14
  prmMetadataHeader: z.ZodOptional<z.ZodString>;
23
- jwtPayload: z.ZodOptional<z.ZodObject<{}, "passthrough", z.ZodTypeAny, z.objectOutputType<{}, z.ZodTypeAny, "passthrough">, z.objectInputType<{}, z.ZodTypeAny, "passthrough">>>;
15
+ jwtPayload: z.ZodOptional<z.ZodObject<{}, z.core.$loose>>;
24
16
  user: z.ZodOptional<z.ZodObject<{
25
17
  iss: z.ZodString;
26
18
  sid: z.ZodOptional<z.ZodString>;
27
19
  sub: z.ZodString;
28
20
  exp: z.ZodOptional<z.ZodNumber>;
29
21
  iat: z.ZodOptional<z.ZodNumber>;
30
- aud: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodArray<z.ZodString, "many">]>>;
22
+ aud: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>;
31
23
  email: z.ZodOptional<z.ZodString>;
32
24
  username: z.ZodOptional<z.ZodString>;
33
25
  preferred_username: z.ZodOptional<z.ZodString>;
34
26
  name: z.ZodOptional<z.ZodString>;
35
27
  picture: z.ZodOptional<z.ZodString>;
36
- }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
37
- iss: z.ZodString;
38
- sid: z.ZodOptional<z.ZodString>;
39
- sub: z.ZodString;
40
- exp: z.ZodOptional<z.ZodNumber>;
41
- iat: z.ZodOptional<z.ZodNumber>;
42
- aud: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodArray<z.ZodString, "many">]>>;
43
- email: z.ZodOptional<z.ZodString>;
44
- username: z.ZodOptional<z.ZodString>;
45
- preferred_username: z.ZodOptional<z.ZodString>;
46
- name: z.ZodOptional<z.ZodString>;
47
- picture: z.ZodOptional<z.ZodString>;
48
- }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
49
- iss: z.ZodString;
50
- sid: z.ZodOptional<z.ZodString>;
51
- sub: z.ZodString;
52
- exp: z.ZodOptional<z.ZodNumber>;
53
- iat: z.ZodOptional<z.ZodNumber>;
54
- aud: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodArray<z.ZodString, "many">]>>;
55
- email: z.ZodOptional<z.ZodString>;
56
- username: z.ZodOptional<z.ZodString>;
57
- preferred_username: z.ZodOptional<z.ZodString>;
58
- name: z.ZodOptional<z.ZodString>;
59
- picture: z.ZodOptional<z.ZodString>;
60
- }, z.ZodTypeAny, "passthrough">>>;
28
+ }, z.core.$loose>>;
61
29
  session: z.ZodOptional<z.ZodObject<{
62
30
  id: z.ZodString;
63
- payload: z.ZodObject<{
31
+ payload: z.ZodOptional<z.ZodObject<{
64
32
  nodeId: z.ZodString;
65
33
  authSig: z.ZodString;
66
34
  uuid: z.ZodString;
67
35
  iat: z.ZodNumber;
68
- protocol: z.ZodEnum<["legacy-sse", "sse", "streamable-http", "stateful-http", "stateless-http"]>;
69
- }, "strip", z.ZodTypeAny, {
70
- uuid: string;
71
- nodeId: string;
72
- authSig: string;
73
- iat: number;
74
- protocol: "sse" | "legacy-sse" | "streamable-http" | "stateful-http" | "stateless-http";
75
- }, {
76
- uuid: string;
77
- nodeId: string;
78
- authSig: string;
79
- iat: number;
80
- protocol: "sse" | "legacy-sse" | "streamable-http" | "stateful-http" | "stateless-http";
81
- }>;
82
- }, "strip", z.ZodTypeAny, {
83
- id: string;
84
- payload: {
85
- uuid: string;
86
- nodeId: string;
87
- authSig: string;
88
- iat: number;
89
- protocol: "sse" | "legacy-sse" | "streamable-http" | "stateful-http" | "stateless-http";
90
- };
91
- }, {
92
- id: string;
93
- payload: {
94
- uuid: string;
95
- nodeId: string;
96
- authSig: string;
97
- iat: number;
98
- protocol: "sse" | "legacy-sse" | "streamable-http" | "stateful-http" | "stateless-http";
99
- };
100
- }>>;
101
- }, "strip", z.ZodTypeAny, {
102
- baseUrl: string;
103
- session?: {
104
- id: string;
105
- payload: {
106
- uuid: string;
107
- nodeId: string;
108
- authSig: string;
109
- iat: number;
110
- protocol: "sse" | "legacy-sse" | "streamable-http" | "stateful-http" | "stateless-http";
111
- };
112
- } | undefined;
113
- prmMetadataHeader?: string | undefined;
114
- token?: string | undefined;
115
- user?: z.objectOutputType<{
116
- iss: z.ZodString;
117
- sid: z.ZodOptional<z.ZodString>;
118
- sub: z.ZodString;
119
- exp: z.ZodOptional<z.ZodNumber>;
120
- iat: z.ZodOptional<z.ZodNumber>;
121
- aud: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodArray<z.ZodString, "many">]>>;
122
- email: z.ZodOptional<z.ZodString>;
123
- username: z.ZodOptional<z.ZodString>;
124
- preferred_username: z.ZodOptional<z.ZodString>;
125
- name: z.ZodOptional<z.ZodString>;
126
- picture: z.ZodOptional<z.ZodString>;
127
- }, z.ZodTypeAny, "passthrough"> | undefined;
128
- authorizationHeader?: string | undefined;
129
- sessionIdHeader?: string | undefined;
130
- sessionProtocol?: string | undefined;
131
- prmMetadataPath?: string | undefined;
132
- jwtPayload?: z.objectOutputType<{}, z.ZodTypeAny, "passthrough"> | undefined;
133
- }, {
134
- baseUrl: string;
135
- session?: {
136
- id: string;
137
- payload: {
138
- uuid: string;
139
- nodeId: string;
140
- authSig: string;
141
- iat: number;
142
- protocol: "sse" | "legacy-sse" | "streamable-http" | "stateful-http" | "stateless-http";
143
- };
144
- } | undefined;
145
- prmMetadataHeader?: string | undefined;
146
- token?: string | undefined;
147
- user?: z.objectInputType<{
148
- iss: z.ZodString;
149
- sid: z.ZodOptional<z.ZodString>;
150
- sub: z.ZodString;
151
- exp: z.ZodOptional<z.ZodNumber>;
152
- iat: z.ZodOptional<z.ZodNumber>;
153
- aud: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodArray<z.ZodString, "many">]>>;
154
- email: z.ZodOptional<z.ZodString>;
155
- username: z.ZodOptional<z.ZodString>;
156
- preferred_username: z.ZodOptional<z.ZodString>;
157
- name: z.ZodOptional<z.ZodString>;
158
- picture: z.ZodOptional<z.ZodString>;
159
- }, z.ZodTypeAny, "passthrough"> | undefined;
160
- authorizationHeader?: string | undefined;
161
- sessionIdHeader?: string | undefined;
162
- sessionProtocol?: string | undefined;
163
- prmMetadataPath?: string | undefined;
164
- jwtPayload?: z.objectInputType<{}, z.ZodTypeAny, "passthrough"> | undefined;
165
- }>;
166
- export declare const sessionVerifyOutputSchema: z.ZodUnion<[z.ZodObject<{
36
+ protocol: z.ZodOptional<z.ZodEnum<{
37
+ "legacy-sse": "legacy-sse";
38
+ sse: "sse";
39
+ "streamable-http": "streamable-http";
40
+ "stateful-http": "stateful-http";
41
+ "stateless-http": "stateless-http";
42
+ }>>;
43
+ isPublic: z.ZodOptional<z.ZodBoolean>;
44
+ platformType: z.ZodOptional<z.ZodEnum<{
45
+ unknown: "unknown";
46
+ continue: "continue";
47
+ openai: "openai";
48
+ claude: "claude";
49
+ gemini: "gemini";
50
+ cursor: "cursor";
51
+ cody: "cody";
52
+ "generic-mcp": "generic-mcp";
53
+ "ext-apps": "ext-apps";
54
+ }>>;
55
+ }, z.core.$strip>>;
56
+ }, z.core.$strip>>;
57
+ }, z.core.$strip>;
58
+ export declare const sessionVerifyOutputSchema: z.ZodUnion<readonly [z.ZodObject<{
167
59
  kind: z.ZodLiteral<"unauthorized">;
168
60
  prmMetadataHeader: z.ZodString;
169
- }, "strip", z.ZodTypeAny, {
170
- kind: "unauthorized";
171
- prmMetadataHeader: string;
172
- }, {
173
- kind: "unauthorized";
174
- prmMetadataHeader: string;
175
- }>, z.ZodObject<{
61
+ }, z.core.$strip>, z.ZodObject<{
176
62
  kind: z.ZodLiteral<"authorized">;
177
63
  authorization: z.ZodObject<{
178
64
  token: z.ZodString;
179
65
  session: z.ZodOptional<z.ZodObject<{
180
66
  id: z.ZodString;
181
- payload: z.ZodObject<{
67
+ payload: z.ZodOptional<z.ZodObject<{
182
68
  nodeId: z.ZodString;
183
69
  authSig: z.ZodString;
184
70
  uuid: z.ZodString;
185
71
  iat: z.ZodNumber;
186
- protocol: z.ZodEnum<["legacy-sse", "sse", "streamable-http", "stateful-http", "stateless-http"]>;
187
- }, "strip", z.ZodTypeAny, {
188
- uuid: string;
189
- nodeId: string;
190
- authSig: string;
191
- iat: number;
192
- protocol: "sse" | "legacy-sse" | "streamable-http" | "stateful-http" | "stateless-http";
193
- }, {
194
- uuid: string;
195
- nodeId: string;
196
- authSig: string;
197
- iat: number;
198
- protocol: "sse" | "legacy-sse" | "streamable-http" | "stateful-http" | "stateless-http";
199
- }>;
200
- }, "strip", z.ZodTypeAny, {
201
- id: string;
202
- payload: {
203
- uuid: string;
204
- nodeId: string;
205
- authSig: string;
206
- iat: number;
207
- protocol: "sse" | "legacy-sse" | "streamable-http" | "stateful-http" | "stateless-http";
208
- };
209
- }, {
210
- id: string;
211
- payload: {
212
- uuid: string;
213
- nodeId: string;
214
- authSig: string;
215
- iat: number;
216
- protocol: "sse" | "legacy-sse" | "streamable-http" | "stateful-http" | "stateless-http";
217
- };
218
- }>>;
72
+ protocol: z.ZodOptional<z.ZodEnum<{
73
+ "legacy-sse": "legacy-sse";
74
+ sse: "sse";
75
+ "streamable-http": "streamable-http";
76
+ "stateful-http": "stateful-http";
77
+ "stateless-http": "stateless-http";
78
+ }>>;
79
+ isPublic: z.ZodOptional<z.ZodBoolean>;
80
+ platformType: z.ZodOptional<z.ZodEnum<{
81
+ unknown: "unknown";
82
+ continue: "continue";
83
+ openai: "openai";
84
+ claude: "claude";
85
+ gemini: "gemini";
86
+ cursor: "cursor";
87
+ cody: "cody";
88
+ "generic-mcp": "generic-mcp";
89
+ "ext-apps": "ext-apps";
90
+ }>>;
91
+ }, z.core.$strip>>;
92
+ }, z.core.$strip>>;
219
93
  user: z.ZodObject<{
220
94
  iss: z.ZodString;
221
95
  sid: z.ZodOptional<z.ZodString>;
222
96
  sub: z.ZodString;
223
97
  exp: z.ZodOptional<z.ZodNumber>;
224
98
  iat: z.ZodOptional<z.ZodNumber>;
225
- aud: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodArray<z.ZodString, "many">]>>;
99
+ aud: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodArray<z.ZodString>]>>;
226
100
  email: z.ZodOptional<z.ZodString>;
227
101
  username: z.ZodOptional<z.ZodString>;
228
102
  preferred_username: z.ZodOptional<z.ZodString>;
229
103
  name: z.ZodOptional<z.ZodString>;
230
104
  picture: z.ZodOptional<z.ZodString>;
231
- }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
232
- iss: z.ZodString;
233
- sid: z.ZodOptional<z.ZodString>;
234
- sub: z.ZodString;
235
- exp: z.ZodOptional<z.ZodNumber>;
236
- iat: z.ZodOptional<z.ZodNumber>;
237
- aud: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodArray<z.ZodString, "many">]>>;
238
- email: z.ZodOptional<z.ZodString>;
239
- username: z.ZodOptional<z.ZodString>;
240
- preferred_username: z.ZodOptional<z.ZodString>;
241
- name: z.ZodOptional<z.ZodString>;
242
- picture: z.ZodOptional<z.ZodString>;
243
- }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
244
- iss: z.ZodString;
245
- sid: z.ZodOptional<z.ZodString>;
246
- sub: z.ZodString;
247
- exp: z.ZodOptional<z.ZodNumber>;
248
- iat: z.ZodOptional<z.ZodNumber>;
249
- aud: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodArray<z.ZodString, "many">]>>;
250
- email: z.ZodOptional<z.ZodString>;
251
- username: z.ZodOptional<z.ZodString>;
252
- preferred_username: z.ZodOptional<z.ZodString>;
253
- name: z.ZodOptional<z.ZodString>;
254
- picture: z.ZodOptional<z.ZodString>;
255
- }, z.ZodTypeAny, "passthrough">>;
256
- }, "strip", z.ZodTypeAny, {
257
- token: string;
258
- user: {
259
- sub: string;
260
- iss: string;
261
- name?: string | undefined;
262
- email?: string | undefined;
263
- iat?: number | undefined;
264
- sid?: string | undefined;
265
- exp?: number | undefined;
266
- aud?: string | string[] | undefined;
267
- username?: string | undefined;
268
- preferred_username?: string | undefined;
269
- picture?: string | undefined;
270
- } & {
271
- [k: string]: unknown;
272
- };
273
- session?: {
274
- id: string;
275
- payload: {
276
- uuid: string;
277
- nodeId: string;
278
- authSig: string;
279
- iat: number;
280
- protocol: "sse" | "legacy-sse" | "streamable-http" | "stateful-http" | "stateless-http";
281
- };
282
- } | undefined;
283
- }, {
284
- token: string;
285
- user: {
286
- sub: string;
287
- iss: string;
288
- name?: string | undefined;
289
- email?: string | undefined;
290
- iat?: number | undefined;
291
- sid?: string | undefined;
292
- exp?: number | undefined;
293
- aud?: string | string[] | undefined;
294
- username?: string | undefined;
295
- preferred_username?: string | undefined;
296
- picture?: string | undefined;
297
- } & {
298
- [k: string]: unknown;
299
- };
300
- session?: {
301
- id: string;
302
- payload: {
303
- uuid: string;
304
- nodeId: string;
305
- authSig: string;
306
- iat: number;
307
- protocol: "sse" | "legacy-sse" | "streamable-http" | "stateful-http" | "stateless-http";
308
- };
309
- } | undefined;
310
- }>;
311
- }, "strip", z.ZodTypeAny, {
312
- kind: "authorized";
313
- authorization: {
314
- token: string;
315
- user: {
316
- sub: string;
317
- iss: string;
318
- name?: string | undefined;
319
- email?: string | undefined;
320
- iat?: number | undefined;
321
- sid?: string | undefined;
322
- exp?: number | undefined;
323
- aud?: string | string[] | undefined;
324
- username?: string | undefined;
325
- preferred_username?: string | undefined;
326
- picture?: string | undefined;
327
- } & {
328
- [k: string]: unknown;
329
- };
330
- session?: {
331
- id: string;
332
- payload: {
333
- uuid: string;
334
- nodeId: string;
335
- authSig: string;
336
- iat: number;
337
- protocol: "sse" | "legacy-sse" | "streamable-http" | "stateful-http" | "stateless-http";
338
- };
339
- } | undefined;
340
- };
341
- }, {
342
- kind: "authorized";
343
- authorization: {
344
- token: string;
345
- user: {
346
- sub: string;
347
- iss: string;
348
- name?: string | undefined;
349
- email?: string | undefined;
350
- iat?: number | undefined;
351
- sid?: string | undefined;
352
- exp?: number | undefined;
353
- aud?: string | string[] | undefined;
354
- username?: string | undefined;
355
- preferred_username?: string | undefined;
356
- picture?: string | undefined;
357
- } & {
358
- [k: string]: unknown;
359
- };
360
- session?: {
361
- id: string;
362
- payload: {
363
- uuid: string;
364
- nodeId: string;
365
- authSig: string;
366
- iat: number;
367
- protocol: "sse" | "legacy-sse" | "streamable-http" | "stateful-http" | "stateless-http";
368
- };
369
- } | undefined;
370
- };
371
- }>]>;
105
+ }, z.core.$loose>;
106
+ }, z.core.$strip>;
107
+ }, z.core.$strip>]>;
372
108
  declare const plan: {
373
- readonly pre: ["parseInput", "requireAuthorizationHeader", "verifyIfJwt"];
109
+ readonly pre: ["parseInput", "handlePublicMode", "requireAuthorizationHeader", "verifyIfJwt"];
374
110
  readonly execute: ["deriveUser", "parseSessionHeader", "buildAuthorizedOutput"];
375
111
  };
376
112
  declare global {
@@ -381,6 +117,15 @@ declare global {
381
117
  declare const name: "session:verify";
382
118
  export default class SessionVerifyFlow extends FlowBase<typeof name> {
383
119
  parseInput(): Promise<void>;
120
+ /**
121
+ * Handle public mode - allow anonymous access without requiring authorization
122
+ * In public mode, we create an anonymous authorization with a stateful session
123
+ * but NO token. This allows public docs/CI to work without Authorization header.
124
+ *
125
+ * CRITICAL: When client sends mcp-session-id header, we MUST use that exact ID
126
+ * for transport registry lookup. Creating a new session ID would cause mismatch.
127
+ */
128
+ handlePublicMode(): Promise<void>;
384
129
  requireAuthorizationOrChallenge(): Promise<void>;
385
130
  /**
386
131
  * If Authorization is a JWT:
@@ -6,10 +6,10 @@ const tslib_1 = require("tslib");
6
6
  const common_1 = require("../../common");
7
7
  require("reflect-metadata");
8
8
  const zod_1 = require("zod");
9
- const path_utils_1 = require("../path.utils");
10
9
  const auth_token_utils_1 = require("../session/utils/auth-token.utils");
11
10
  const jwks_1 = require("../jwks");
12
11
  const session_id_utils_1 = require("../session/utils/session-id.utils");
12
+ const authorization_1 = require("../authorization");
13
13
  const inputSchema = common_1.httpRequestInputSchema;
14
14
  const stateSchema = zod_1.z.object({
15
15
  baseUrl: zod_1.z.string().min(1),
@@ -28,7 +28,7 @@ const UnauthorizedSchema = zod_1.z
28
28
  kind: zod_1.z.literal('unauthorized'),
29
29
  prmMetadataHeader: zod_1.z.string().describe('Path to protected resource metadata'),
30
30
  })
31
- .describe('401 Unauthorized with \'WWW-Authenticate\' header for requesting authentication\'');
31
+ .describe("401 Unauthorized with 'WWW-Authenticate' header for requesting authentication");
32
32
  const AuthorizedSchema = zod_1.z
33
33
  .object({
34
34
  kind: zod_1.z.literal('authorized'),
@@ -37,7 +37,7 @@ const AuthorizedSchema = zod_1.z
37
37
  .describe('Authorized session information');
38
38
  exports.sessionVerifyOutputSchema = zod_1.z.union([UnauthorizedSchema, AuthorizedSchema]);
39
39
  const plan = {
40
- pre: ['parseInput', 'requireAuthorizationHeader', 'verifyIfJwt'],
40
+ pre: ['parseInput', 'handlePublicMode', 'requireAuthorizationHeader', 'verifyIfJwt'],
41
41
  execute: ['deriveUser', 'parseSessionHeader', 'buildAuthorizedOutput'],
42
42
  };
43
43
  const name = 'session:verify';
@@ -45,17 +45,19 @@ const Stage = (0, common_1.StageHookOf)(name);
45
45
  let SessionVerifyFlow = class SessionVerifyFlow extends common_1.FlowBase {
46
46
  async parseInput() {
47
47
  const { request } = this.rawInput;
48
- const entryPath = (0, path_utils_1.normalizeEntryPrefix)(this.scope.entryPath);
49
- const routeBase = (0, path_utils_1.normalizeScopeBase)(this.scope.routeBase);
50
- const baseUrl = (0, path_utils_1.getRequestBaseUrl)(request, entryPath);
48
+ const entryPath = (0, common_1.normalizeEntryPrefix)(this.scope.entryPath);
49
+ const routeBase = (0, common_1.normalizeScopeBase)(this.scope.routeBase);
50
+ const baseUrl = (0, common_1.getRequestBaseUrl)(request, entryPath);
51
51
  const authorizationHeader = request.headers?.['authorization'] ?? undefined;
52
52
  const httpTransportHeader = request.headers?.['http-transport'];
53
53
  const sessionIdRawHeader = request.headers?.['mcp-session-id'];
54
54
  const sessionIdQuery = request.query['sessionId'];
55
55
  const sessionIdHeader = sessionIdRawHeader ?? sessionIdQuery ?? undefined;
56
+ // Use sessionIdRawHeader (not sessionIdHeader) to distinguish header vs query param
57
+ // sessionIdHeader is the merged value, but we need to know the source for protocol selection
56
58
  const sessionProtocol = httpTransportHeader
57
59
  ? 'http'
58
- : sessionIdHeader
60
+ : sessionIdRawHeader
59
61
  ? 'streamable-http'
60
62
  : sessionIdQuery
61
63
  ? 'sse'
@@ -73,6 +75,75 @@ let SessionVerifyFlow = class SessionVerifyFlow extends common_1.FlowBase {
73
75
  prmMetadataHeader,
74
76
  });
75
77
  }
78
+ /**
79
+ * Handle public mode - allow anonymous access without requiring authorization
80
+ * In public mode, we create an anonymous authorization with a stateful session
81
+ * but NO token. This allows public docs/CI to work without Authorization header.
82
+ *
83
+ * CRITICAL: When client sends mcp-session-id header, we MUST use that exact ID
84
+ * for transport registry lookup. Creating a new session ID would cause mismatch.
85
+ */
86
+ async handlePublicMode() {
87
+ const authOptions = this.scope.auth?.options;
88
+ // Skip if not public mode or if authorization header is present (authenticated public)
89
+ if (!authOptions || !(0, common_1.isPublicMode)(authOptions)) {
90
+ return;
91
+ }
92
+ // If token is present, let the normal verification flow handle it
93
+ if (this.state.token) {
94
+ return;
95
+ }
96
+ const sessionIdHeader = this.state.sessionIdHeader;
97
+ const machineId = (0, authorization_1.getMachineId)();
98
+ // CRITICAL: If client sent session ID, ALWAYS use it for transport lookup.
99
+ // The transport registry uses this ID as the key. Creating a different ID
100
+ // would cause "session not initialized" error.
101
+ if (sessionIdHeader) {
102
+ // Try to decrypt/validate for payload extraction (optional - for nodeId validation)
103
+ const existingPayload = (0, session_id_utils_1.decryptPublicSession)(sessionIdHeader);
104
+ // Determine user based on whether we could extract payload
105
+ const user = existingPayload
106
+ ? { sub: `anon:${existingPayload.iat * 1000}`, iss: 'public', name: 'Anonymous' }
107
+ : { sub: `anon:${crypto.randomUUID()}`, iss: 'public', name: 'Anonymous' };
108
+ // ALWAYS use client's session ID, regardless of validation result.
109
+ // If payload is valid and nodeId matches, include payload for protocol detection.
110
+ // If validation failed, transport layer will handle the error appropriately.
111
+ this.respond({
112
+ kind: 'authorized',
113
+ authorization: {
114
+ token: '',
115
+ user,
116
+ session: {
117
+ id: sessionIdHeader, // ← CRITICAL: Always use client's session ID
118
+ payload: existingPayload && existingPayload.nodeId === machineId ? existingPayload : undefined,
119
+ },
120
+ },
121
+ });
122
+ return;
123
+ }
124
+ // No session header → create new session (initialize request)
125
+ // For new sessions, don't pre-determine protocol. Let transport handler detect it.
126
+ const now = Date.now();
127
+ const user = { sub: `anon:${crypto.randomUUID()}`, iss: 'public', name: 'Anonymous' };
128
+ const uuid = crypto.randomUUID();
129
+ // Create a valid session payload matching the SessionIdPayload schema
130
+ const payload = {
131
+ uuid,
132
+ nodeId: machineId,
133
+ authSig: 'public',
134
+ iat: Math.floor(now / 1000),
135
+ isPublic: true,
136
+ };
137
+ const sessionId = (0, session_id_utils_1.encryptJson)(payload);
138
+ this.respond({
139
+ kind: 'authorized',
140
+ authorization: {
141
+ token: '',
142
+ user,
143
+ session: { id: sessionId, payload },
144
+ },
145
+ });
146
+ }
76
147
  async requireAuthorizationOrChallenge() {
77
148
  this.respond({
78
149
  kind: 'unauthorized',
@@ -91,7 +162,7 @@ let SessionVerifyFlow = class SessionVerifyFlow extends common_1.FlowBase {
91
162
  const jwks = this.get(jwks_1.JwksService); // TODO: fix providers
92
163
  const token = this.state.required.token;
93
164
  if (!(0, auth_token_utils_1.isJwt)(token)) {
94
- // Non-JWT tokens are passed through; user will be mostly empty (the best effort later).
165
+ // Non-JWT tokens are not supported - require JWT for verification
95
166
  this.respond({
96
167
  kind: 'unauthorized',
97
168
  prmMetadataHeader: this.state.required.prmMetadataHeader,
@@ -99,23 +170,35 @@ let SessionVerifyFlow = class SessionVerifyFlow extends common_1.FlowBase {
99
170
  return;
100
171
  }
101
172
  // Best-effort verification using locally known keys (gateway/local provider cache).
102
- let verify;
103
- if (this.scope.auth.options.type === 'local') { // TODO: fix
104
- verify = jwks.verifyGatewayToken(token, this.state.required.baseUrl);
173
+ // Add defensive null check for this.scope.auth (consistent with line 130)
174
+ const auth = this.scope.auth;
175
+ if (!auth) {
176
+ this.respond({
177
+ kind: 'unauthorized',
178
+ prmMetadataHeader: this.state.required.prmMetadataHeader,
179
+ });
180
+ return;
105
181
  }
106
- else {
107
- const primary = this.scope.auth.options;
108
- const issuer = this.scope.auth.issuer;
182
+ let verify;
183
+ const authOptions = auth.options;
184
+ // Transparent mode uses remote provider's keys, all other modes use local keys
185
+ if ((0, common_1.isTransparentMode)(authOptions)) {
186
+ const primary = authOptions;
187
+ const issuer = auth.issuer;
109
188
  const providerRefs = [
110
189
  {
111
- id: primary.id ?? 'default',
190
+ id: primary.remote.id ?? 'default',
112
191
  issuerUrl: issuer,
113
- jwks: primary.jwks,
114
- jwksUri: primary.jwksUri,
192
+ jwks: primary.remote.jwks,
193
+ jwksUri: primary.remote.jwksUri,
115
194
  },
116
195
  ];
117
196
  verify = jwks.verifyTransparentToken(token, providerRefs);
118
197
  }
198
+ else {
199
+ // Public or orchestrated mode - verify against local gateway keys
200
+ verify = jwks.verifyGatewayToken(token, this.state.required.baseUrl);
201
+ }
119
202
  const result = await verify;
120
203
  if (result.ok) {
121
204
  this.state.set({ jwtPayload: result.payload });
@@ -136,7 +219,7 @@ let SessionVerifyFlow = class SessionVerifyFlow extends common_1.FlowBase {
136
219
  * - If NOT valid, ignore (no session)
137
220
  */
138
221
  async parseSessionHeader() {
139
- const { sessionIdHeader, required: { token } } = this.state;
222
+ const { sessionIdHeader, required: { token }, } = this.state;
140
223
  const session = (0, session_id_utils_1.parseSessionHeader)(sessionIdHeader, token);
141
224
  if (session) {
142
225
  this.state.set('session', session);
@@ -160,6 +243,12 @@ tslib_1.__decorate([
160
243
  tslib_1.__metadata("design:paramtypes", []),
161
244
  tslib_1.__metadata("design:returntype", Promise)
162
245
  ], SessionVerifyFlow.prototype, "parseInput", null);
246
+ tslib_1.__decorate([
247
+ Stage('handlePublicMode'),
248
+ tslib_1.__metadata("design:type", Function),
249
+ tslib_1.__metadata("design:paramtypes", []),
250
+ tslib_1.__metadata("design:returntype", Promise)
251
+ ], SessionVerifyFlow.prototype, "handlePublicMode", null);
163
252
  tslib_1.__decorate([
164
253
  Stage('requireAuthorizationHeader', {
165
254
  filter: ({ state }) => !state.authorizationHeader,