@frontmcp/sdk 0.4.1 → 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 +121 -40
  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,53 +1,571 @@
1
1
  "use strict";
2
+ // common/types/options/auth.options.ts
2
3
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.appAuthOptionsSchema = exports.authOptionsSchema = exports.localAuthOptionsSchema = exports.remoteAuthOptionsSchema = void 0;
4
+ exports.appAuthOptionsSchema = exports.authOptionsSchema = exports.orchestratedAuthOptionsSchema = exports.orchestratedRemoteSchema = exports.orchestratedLocalSchema = exports.transparentAuthOptionsSchema = exports.publicAuthOptionsSchema = exports.transportConfigSchema = exports.incrementalAuthConfigSchema = exports.consentConfigSchema = exports.skippedAppBehaviorSchema = exports.tokenRefreshConfigSchema = exports.tokenStorageConfigSchema = exports.remoteProviderConfigSchema = exports.localSigningConfigSchema = exports.publicAccessConfigSchema = void 0;
5
+ exports.parseAuthOptions = parseAuthOptions;
6
+ exports.isPublicMode = isPublicMode;
7
+ exports.isTransparentMode = isTransparentMode;
8
+ exports.isOrchestratedMode = isOrchestratedMode;
9
+ exports.isOrchestratedLocal = isOrchestratedLocal;
10
+ exports.isOrchestratedRemote = isOrchestratedRemote;
11
+ exports.allowsPublicAccess = allowsPublicAccess;
4
12
  const zod_1 = require("zod");
5
13
  const auth_1 = require("../auth");
6
- exports.remoteAuthOptionsSchema = zod_1.z.object({
7
- type: zod_1.z.literal('remote'),
14
+ const transport_session_types_1 = require("../../../auth/session/transport-session.types");
15
+ // ============================================
16
+ // SHARED SCHEMAS
17
+ // ============================================
18
+ /**
19
+ * Public access configuration for tools/prompts
20
+ */
21
+ exports.publicAccessConfigSchema = zod_1.z.object({
22
+ /**
23
+ * Allow all tools or explicit whitelist
24
+ * @default 'all'
25
+ */
26
+ tools: zod_1.z.union([zod_1.z.literal('all'), zod_1.z.array(zod_1.z.string())]).default('all'),
27
+ /**
28
+ * Allow all prompts or explicit whitelist
29
+ * @default 'all'
30
+ */
31
+ prompts: zod_1.z.union([zod_1.z.literal('all'), zod_1.z.array(zod_1.z.string())]).default('all'),
32
+ /**
33
+ * Rate limit per IP per minute
34
+ * @default 60
35
+ */
36
+ rateLimit: zod_1.z.number().default(60),
37
+ });
38
+ /**
39
+ * Local signing configuration (for orchestrated local type)
40
+ */
41
+ exports.localSigningConfigSchema = zod_1.z.object({
42
+ /**
43
+ * Private key for signing orchestrated tokens
44
+ * @default auto-generated
45
+ */
46
+ signKey: auth_1.jwkSchema.or(zod_1.z.instanceof(Uint8Array)).optional(),
47
+ /**
48
+ * JWKS for token verification
49
+ * @default auto-generated
50
+ */
51
+ jwks: auth_1.jsonWebKeySetSchema.optional(),
52
+ /**
53
+ * Issuer identifier for orchestrated tokens
54
+ * @default auto-derived from server URL
55
+ */
56
+ issuer: zod_1.z.string().optional(),
57
+ });
58
+ /**
59
+ * Remote OAuth provider configuration (for orchestrated remote and transparent)
60
+ */
61
+ exports.remoteProviderConfigSchema = zod_1.z.object({
62
+ /**
63
+ * OAuth provider base URL
64
+ * @example 'https://auth.example.com'
65
+ */
66
+ provider: zod_1.z.string().url(),
67
+ /**
68
+ * Provider display name
69
+ */
70
+ name: zod_1.z.string().optional(),
71
+ /**
72
+ * Unique identifier for this provider
73
+ * @default derived from provider URL
74
+ */
8
75
  id: zod_1.z.string().optional(),
9
- name: zod_1.z.string(),
10
- baseUrl: zod_1.z.string(),
11
- dcrEnabled: zod_1.z.boolean().optional(),
12
- clientId: zod_1.z
13
- .union([
14
- zod_1.z.string(),
15
- zod_1.z.function().args(zod_1.z.object({ clientId: zod_1.z.string() })).returns(zod_1.z.string())
16
- ])
17
- .optional(),
18
- mode: zod_1.z.union([zod_1.z.literal('orchestrated'), zod_1.z.literal('transparent')]).optional(),
19
- allowAnonymous: zod_1.z.boolean().optional(),
20
- consent: zod_1.z.boolean().optional(),
76
+ /**
77
+ * Inline JWKS for offline token verification
78
+ * Falls back to fetching from provider's /.well-known/jwks.json
79
+ */
21
80
  jwks: auth_1.jsonWebKeySetSchema.optional(),
81
+ /**
82
+ * Custom JWKS URI if not at standard path
83
+ */
84
+ jwksUri: zod_1.z.string().url().optional(),
85
+ /**
86
+ * Client ID for this MCP server (for orchestrated mode)
87
+ */
88
+ clientId: zod_1.z.string().optional(),
89
+ /**
90
+ * Client secret (for confidential clients in orchestrated mode)
91
+ */
92
+ clientSecret: zod_1.z.string().optional(),
93
+ /**
94
+ * Scopes to request from the upstream provider
95
+ */
22
96
  scopes: zod_1.z.array(zod_1.z.string()).optional(),
23
- grantTypes: zod_1.z.array(zod_1.z.union([zod_1.z.literal('authorization_code'), zod_1.z.literal('refresh_token')])).optional(),
24
- authEndpoint: zod_1.z.string().optional(),
25
- tokenEndpoint: zod_1.z.string().optional(),
26
- registrationEndpoint: zod_1.z.string().optional(),
27
- userInfoEndpoint: zod_1.z.string().optional(),
28
- jwksUri: zod_1.z.string().optional(),
29
- });
30
- exports.localAuthOptionsSchema = zod_1.z.object({
31
- type: zod_1.z.literal('local'),
32
- id: zod_1.z.string(),
33
- name: zod_1.z.string(),
34
- scopes: zod_1.z.array(zod_1.z.string()).optional(),
35
- grantTypes: zod_1.z.array(zod_1.z.union([zod_1.z.literal('authorization_code'), zod_1.z.literal('refresh_token')])).optional(),
36
- allowAnonymous: zod_1.z.boolean().optional(),
37
- consent: zod_1.z.boolean().optional(),
97
+ /**
98
+ * Enable Dynamic Client Registration (DCR)
99
+ * @default false
100
+ */
101
+ dcrEnabled: zod_1.z.boolean().default(false),
102
+ /**
103
+ * Authorization endpoint override
104
+ */
105
+ authEndpoint: zod_1.z.string().url().optional(),
106
+ /**
107
+ * Token endpoint override
108
+ */
109
+ tokenEndpoint: zod_1.z.string().url().optional(),
110
+ /**
111
+ * Registration endpoint override (for DCR)
112
+ */
113
+ registrationEndpoint: zod_1.z.string().url().optional(),
114
+ /**
115
+ * User info endpoint override
116
+ */
117
+ userInfoEndpoint: zod_1.z.string().url().optional(),
118
+ });
119
+ /**
120
+ * Token storage configuration for orchestrated mode
121
+ */
122
+ exports.tokenStorageConfigSchema = zod_1.z.discriminatedUnion('type', [
123
+ zod_1.z.object({ type: zod_1.z.literal('memory') }),
124
+ zod_1.z.object({ type: zod_1.z.literal('redis'), config: transport_session_types_1.redisConfigSchema }),
125
+ ]);
126
+ /**
127
+ * Token refresh configuration
128
+ */
129
+ exports.tokenRefreshConfigSchema = zod_1.z.object({
130
+ /**
131
+ * Enable automatic token refresh
132
+ * @default true
133
+ */
134
+ enabled: zod_1.z.boolean().default(true),
135
+ /**
136
+ * Refresh token before expiry by this many seconds
137
+ * @default 60
138
+ */
139
+ skewSeconds: zod_1.z.number().default(60),
140
+ });
141
+ /**
142
+ * Behavior when a tool from a skipped (not yet authorized) app is called
143
+ */
144
+ exports.skippedAppBehaviorSchema = zod_1.z.enum(['anonymous', 'require-auth']);
145
+ /**
146
+ * Consent configuration for tool selection
147
+ * Allows users to choose which MCP tools to expose to the LLM
148
+ *
149
+ * Note: This schema is the canonical definition. It is duplicated in
150
+ * auth/consent/consent.types.ts for domain-specific use. Both schemas
151
+ * MUST be kept in sync. The duplication exists to avoid circular
152
+ * dependencies between common/ and auth/ modules.
153
+ */
154
+ exports.consentConfigSchema = zod_1.z.object({
155
+ /**
156
+ * Enable consent flow for tool selection
157
+ * When enabled, users can choose which tools to expose to the LLM
158
+ * @default false
159
+ */
160
+ enabled: zod_1.z.boolean().default(false),
161
+ /**
162
+ * Group tools by app in the consent UI
163
+ * @default true
164
+ */
165
+ groupByApp: zod_1.z.boolean().default(true),
166
+ /**
167
+ * Show tool descriptions in consent UI
168
+ * @default true
169
+ */
170
+ showDescriptions: zod_1.z.boolean().default(true),
171
+ /**
172
+ * Allow selecting all tools at once
173
+ * @default true
174
+ */
175
+ allowSelectAll: zod_1.z.boolean().default(true),
176
+ /**
177
+ * Require at least one tool to be selected
178
+ * @default true
179
+ */
180
+ requireSelection: zod_1.z.boolean().default(true),
181
+ /**
182
+ * Custom message to display on consent page
183
+ */
184
+ customMessage: zod_1.z.string().optional(),
185
+ /**
186
+ * Remember consent for future sessions
187
+ * @default true
188
+ */
189
+ rememberConsent: zod_1.z.boolean().default(true),
190
+ /**
191
+ * Tools to exclude from consent (always available)
192
+ * Useful for essential tools that should always be accessible
193
+ */
194
+ excludedTools: zod_1.z.array(zod_1.z.string()).optional(),
195
+ /**
196
+ * Tools to always include in consent (pre-selected)
197
+ */
198
+ defaultSelectedTools: zod_1.z.array(zod_1.z.string()).optional(),
199
+ });
200
+ /**
201
+ * Progressive/Incremental authorization configuration
202
+ * Allows users to authorize apps one at a time after initial auth
203
+ */
204
+ exports.incrementalAuthConfigSchema = zod_1.z.object({
205
+ /**
206
+ * Enable incremental (progressive) authorization
207
+ * When enabled, users can skip app authorizations during initial auth
208
+ * and authorize individual apps later when needed
209
+ * @default true
210
+ */
211
+ enabled: zod_1.z.boolean().default(true),
212
+ /**
213
+ * Behavior when a tool from a skipped app is called
214
+ * - 'anonymous': If app supports anonymous access, use it; otherwise require auth
215
+ * - 'require-auth': Always require authorization (return auth_url)
216
+ * @default 'anonymous'
217
+ */
218
+ skippedAppBehavior: exports.skippedAppBehaviorSchema.default('anonymous'),
219
+ /**
220
+ * Allow users to skip app authorization during initial auth flow
221
+ * @default true
222
+ */
223
+ allowSkip: zod_1.z.boolean().default(true),
224
+ /**
225
+ * Show all apps in a single authorization page (vs step-by-step)
226
+ * @default true
227
+ */
228
+ showAllAppsAtOnce: zod_1.z.boolean().default(true),
229
+ });
230
+ // ============================================
231
+ // TRANSPORT CONFIG
232
+ // Protocol enablement and behavior settings
233
+ // ============================================
234
+ /**
235
+ * Transport protocol configuration
236
+ * Controls which transport protocols are enabled and their behavior
237
+ */
238
+ exports.transportConfigSchema = zod_1.z.object({
239
+ /**
240
+ * Enable legacy SSE transport (old HTTP+SSE protocol)
241
+ * @default false
242
+ */
243
+ enableLegacySSE: zod_1.z.boolean().default(false),
244
+ /**
245
+ * Enable SSE listener for server-initiated messages (GET /mcp with Accept: text/event-stream)
246
+ * @default true
247
+ */
248
+ enableSseListener: zod_1.z.boolean().default(true),
249
+ /**
250
+ * Enable streamable HTTP transport (POST with SSE response)
251
+ * @default true
252
+ */
253
+ enableStreamableHttp: zod_1.z.boolean().default(true),
254
+ /**
255
+ * Enable stateless HTTP mode (requests without session ID)
256
+ * When enabled, allows requests without prior initialize
257
+ * Uses shared singleton transport for anonymous, per-token singleton for authenticated
258
+ * @default false
259
+ */
260
+ enableStatelessHttp: zod_1.z.boolean().default(false),
261
+ /**
262
+ * Enable stateful HTTP transport (JSON-only responses)
263
+ * @default false
264
+ */
265
+ enableStatefulHttp: zod_1.z.boolean().default(false),
266
+ /**
267
+ * Require session ID for streamable HTTP (non-stateless mode)
268
+ * When false, streamable HTTP requests don't require prior initialize
269
+ * @default true
270
+ */
271
+ requireSessionForStreamable: zod_1.z.boolean().default(true),
272
+ });
273
+ // ============================================
274
+ // PUBLIC MODE
275
+ // No authentication required, anonymous access
276
+ // ============================================
277
+ exports.publicAuthOptionsSchema = zod_1.z.object({
278
+ mode: zod_1.z.literal('public'),
279
+ /**
280
+ * Issuer identifier for anonymous JWTs
281
+ * @default auto-derived from server URL
282
+ */
283
+ issuer: zod_1.z.string().optional(),
284
+ /**
285
+ * Anonymous session TTL in seconds
286
+ * @default 3600 (1 hour)
287
+ */
288
+ sessionTtl: zod_1.z.number().default(3600),
289
+ /**
290
+ * Scopes granted to anonymous sessions
291
+ * @default ['anonymous']
292
+ */
293
+ anonymousScopes: zod_1.z.array(zod_1.z.string()).default(['anonymous']),
294
+ /**
295
+ * Tool/prompt access configuration for anonymous users
296
+ */
297
+ publicAccess: exports.publicAccessConfigSchema.optional(),
298
+ /**
299
+ * JWKS for token verification
300
+ * @default auto-generated
301
+ */
38
302
  jwks: auth_1.jsonWebKeySetSchema.optional(),
303
+ /**
304
+ * Private key for signing anonymous tokens
305
+ * @default auto-generated
306
+ */
39
307
  signKey: auth_1.jwkSchema.or(zod_1.z.instanceof(Uint8Array)).optional(),
308
+ /**
309
+ * Transport protocol configuration
310
+ * Controls which transports are enabled and their behavior
311
+ */
312
+ transport: exports.transportConfigSchema.optional(),
40
313
  });
41
- exports.authOptionsSchema = zod_1.z.discriminatedUnion('type', [
42
- exports.remoteAuthOptionsSchema,
43
- exports.localAuthOptionsSchema,
314
+ // ============================================
315
+ // TRANSPARENT MODE
316
+ // Pass-through OAuth tokens from remote provider
317
+ // ============================================
318
+ exports.transparentAuthOptionsSchema = zod_1.z.object({
319
+ mode: zod_1.z.literal('transparent'),
320
+ /**
321
+ * Remote OAuth provider configuration (required)
322
+ */
323
+ remote: exports.remoteProviderConfigSchema,
324
+ /**
325
+ * Expected token audience
326
+ * If not set, defaults to the resource URL
327
+ */
328
+ expectedAudience: zod_1.z.union([zod_1.z.string(), zod_1.z.array(zod_1.z.string())]).optional(),
329
+ /**
330
+ * Required scopes for access
331
+ * Empty array means any valid token is accepted
332
+ * @default []
333
+ */
334
+ requiredScopes: zod_1.z.array(zod_1.z.string()).default([]),
335
+ /**
336
+ * Allow anonymous fallback when no token is provided
337
+ * @default false
338
+ */
339
+ allowAnonymous: zod_1.z.boolean().default(false),
340
+ /**
341
+ * Scopes granted to anonymous sessions (when allowAnonymous=true)
342
+ * @default ['anonymous']
343
+ */
344
+ anonymousScopes: zod_1.z.array(zod_1.z.string()).default(['anonymous']),
345
+ /**
346
+ * Public access config for anonymous users (when allowAnonymous=true)
347
+ */
348
+ publicAccess: exports.publicAccessConfigSchema.optional(),
349
+ /**
350
+ * Transport protocol configuration
351
+ * Controls which transports are enabled and their behavior
352
+ */
353
+ transport: exports.transportConfigSchema.optional(),
354
+ });
355
+ // ============================================
356
+ // ORCHESTRATED MODE
357
+ // Local auth server that can proxy to remote or be fully local
358
+ // ============================================
359
+ /**
360
+ * Orchestrated mode with local authentication only
361
+ */
362
+ exports.orchestratedLocalSchema = zod_1.z.object({
363
+ mode: zod_1.z.literal('orchestrated'),
364
+ type: zod_1.z.literal('local'),
365
+ /**
366
+ * Local signing configuration
367
+ */
368
+ local: exports.localSigningConfigSchema.optional(),
369
+ /**
370
+ * Token storage configuration
371
+ * @default { type: 'memory' }
372
+ */
373
+ tokenStorage: exports.tokenStorageConfigSchema.default({ type: 'memory' }),
374
+ /**
375
+ * Session storage mode
376
+ * - 'stateful': Store sessions in Redis/memory, JWT contains only reference
377
+ * - 'stateless': All state encrypted in JWT
378
+ * @default 'stateful'
379
+ */
380
+ sessionMode: zod_1.z.enum(['stateful', 'stateless']).default('stateful'),
381
+ /**
382
+ * Allow default public access for unauthenticated requests
383
+ * When true: all tools are public by default, only tools marked with scopes require auth
384
+ * When false: all tools require authentication by default
385
+ * @default false
386
+ */
387
+ allowDefaultPublic: zod_1.z.boolean().default(false),
388
+ /**
389
+ * Scopes granted to anonymous sessions (when allowDefaultPublic=true)
390
+ * @default ['anonymous']
391
+ */
392
+ anonymousScopes: zod_1.z.array(zod_1.z.string()).default(['anonymous']),
393
+ /**
394
+ * Public access config (when allowDefaultPublic=true)
395
+ */
396
+ publicAccess: exports.publicAccessConfigSchema.optional(),
397
+ /**
398
+ * Consent flow configuration for tool selection
399
+ * Allows users to choose which MCP tools to expose to the LLM
400
+ * @default { enabled: false }
401
+ */
402
+ consent: exports.consentConfigSchema.optional(),
403
+ /**
404
+ * Token refresh settings
405
+ */
406
+ refresh: exports.tokenRefreshConfigSchema.optional(),
407
+ /**
408
+ * Expected token audience for validation
409
+ */
410
+ expectedAudience: zod_1.z.union([zod_1.z.string(), zod_1.z.array(zod_1.z.string())]).optional(),
411
+ /**
412
+ * Incremental (progressive) authorization configuration
413
+ * Allows users to skip app authorizations initially and authorize later
414
+ * @default { enabled: true, skippedAppBehavior: 'anonymous' }
415
+ */
416
+ incrementalAuth: exports.incrementalAuthConfigSchema.optional(),
417
+ /**
418
+ * Transport protocol configuration
419
+ * Controls which transports are enabled and their behavior
420
+ */
421
+ transport: exports.transportConfigSchema.optional(),
422
+ });
423
+ /**
424
+ * Orchestrated mode with remote OAuth provider
425
+ */
426
+ exports.orchestratedRemoteSchema = zod_1.z.object({
427
+ mode: zod_1.z.literal('orchestrated'),
428
+ type: zod_1.z.literal('remote'),
429
+ /**
430
+ * Remote OAuth provider configuration (required for remote type)
431
+ */
432
+ remote: exports.remoteProviderConfigSchema,
433
+ /**
434
+ * Local signing configuration (for issuing local tokens after upstream auth)
435
+ */
436
+ local: exports.localSigningConfigSchema.optional(),
437
+ /**
438
+ * Token storage configuration
439
+ * @default { type: 'memory' }
440
+ */
441
+ tokenStorage: exports.tokenStorageConfigSchema.default({ type: 'memory' }),
442
+ /**
443
+ * Session storage mode
444
+ * - 'stateful': Store sessions in Redis/memory, JWT contains only reference
445
+ * - 'stateless': All state encrypted in JWT
446
+ * @default 'stateful'
447
+ */
448
+ sessionMode: zod_1.z.enum(['stateful', 'stateless']).default('stateful'),
449
+ /**
450
+ * Allow default public access for unauthenticated requests
451
+ * When true: all tools are public by default, only tools marked with scopes require auth
452
+ * When false: all tools require authentication by default
453
+ * @default false
454
+ */
455
+ allowDefaultPublic: zod_1.z.boolean().default(false),
456
+ /**
457
+ * Scopes granted to anonymous sessions (when allowDefaultPublic=true)
458
+ * @default ['anonymous']
459
+ */
460
+ anonymousScopes: zod_1.z.array(zod_1.z.string()).default(['anonymous']),
461
+ /**
462
+ * Public access config (when allowDefaultPublic=true)
463
+ */
464
+ publicAccess: exports.publicAccessConfigSchema.optional(),
465
+ /**
466
+ * Consent flow configuration for tool selection
467
+ * Allows users to choose which MCP tools to expose to the LLM
468
+ * @default { enabled: false }
469
+ */
470
+ consent: exports.consentConfigSchema.optional(),
471
+ /**
472
+ * Token refresh settings
473
+ */
474
+ refresh: exports.tokenRefreshConfigSchema.optional(),
475
+ /**
476
+ * Expected token audience for validation
477
+ */
478
+ expectedAudience: zod_1.z.union([zod_1.z.string(), zod_1.z.array(zod_1.z.string())]).optional(),
479
+ /**
480
+ * Incremental (progressive) authorization configuration
481
+ * Allows users to skip app authorizations initially and authorize later
482
+ * @default { enabled: true, skippedAppBehavior: 'anonymous' }
483
+ */
484
+ incrementalAuth: exports.incrementalAuthConfigSchema.optional(),
485
+ /**
486
+ * Transport protocol configuration
487
+ * Controls which transports are enabled and their behavior
488
+ */
489
+ transport: exports.transportConfigSchema.optional(),
490
+ });
491
+ // Combined orchestrated schema
492
+ exports.orchestratedAuthOptionsSchema = zod_1.z.discriminatedUnion('type', [
493
+ exports.orchestratedLocalSchema,
494
+ exports.orchestratedRemoteSchema,
495
+ ]);
496
+ // ============================================
497
+ // UNIFIED AUTH OPTIONS
498
+ // ============================================
499
+ /**
500
+ * Main auth options schema - discriminated by 'mode'
501
+ *
502
+ * Uses z.union because we have nested discriminators (orchestrated has 'type')
503
+ */
504
+ exports.authOptionsSchema = zod_1.z.union([
505
+ exports.publicAuthOptionsSchema,
506
+ exports.transparentAuthOptionsSchema,
507
+ exports.orchestratedLocalSchema,
508
+ exports.orchestratedRemoteSchema,
44
509
  ]);
45
510
  const standaloneOptionSchema = {
46
511
  standalone: zod_1.z.boolean().optional(),
47
512
  excludeFromParent: zod_1.z.boolean().optional(),
48
513
  };
49
- exports.appAuthOptionsSchema = zod_1.z.discriminatedUnion('type', [
50
- exports.remoteAuthOptionsSchema.extend(standaloneOptionSchema),
51
- exports.localAuthOptionsSchema.extend(standaloneOptionSchema),
514
+ exports.appAuthOptionsSchema = zod_1.z.union([
515
+ exports.publicAuthOptionsSchema.extend(standaloneOptionSchema),
516
+ exports.transparentAuthOptionsSchema.extend(standaloneOptionSchema),
517
+ exports.orchestratedLocalSchema.extend(standaloneOptionSchema),
518
+ exports.orchestratedRemoteSchema.extend(standaloneOptionSchema),
52
519
  ]);
520
+ // ============================================
521
+ // HELPER FUNCTIONS
522
+ // ============================================
523
+ /**
524
+ * Parse and validate auth options with defaults
525
+ */
526
+ function parseAuthOptions(input) {
527
+ return exports.authOptionsSchema.parse(input);
528
+ }
529
+ /**
530
+ * Check if options are public mode
531
+ */
532
+ function isPublicMode(options) {
533
+ return options.mode === 'public';
534
+ }
535
+ /**
536
+ * Check if options are transparent mode
537
+ */
538
+ function isTransparentMode(options) {
539
+ return options.mode === 'transparent';
540
+ }
541
+ /**
542
+ * Check if options are orchestrated mode
543
+ */
544
+ function isOrchestratedMode(options) {
545
+ return options.mode === 'orchestrated';
546
+ }
547
+ /**
548
+ * Check if orchestrated options are local type
549
+ */
550
+ function isOrchestratedLocal(options) {
551
+ return options.type === 'local';
552
+ }
553
+ /**
554
+ * Check if orchestrated options are remote type
555
+ */
556
+ function isOrchestratedRemote(options) {
557
+ return options.type === 'remote';
558
+ }
559
+ /**
560
+ * Check if options allow public/anonymous access
561
+ */
562
+ function allowsPublicAccess(options) {
563
+ if (options.mode === 'public')
564
+ return true;
565
+ if (options.mode === 'transparent')
566
+ return options.allowAnonymous;
567
+ if (options.mode === 'orchestrated')
568
+ return options.allowDefaultPublic;
569
+ return false;
570
+ }
53
571
  //# sourceMappingURL=auth.options.js.map