@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
@@ -0,0 +1,230 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.authProviderDetectionResultSchema = exports.detectedAuthProviderSchema = void 0;
4
+ exports.deriveProviderId = deriveProviderId;
5
+ exports.detectAuthProviders = detectAuthProviders;
6
+ exports.appRequiresOrchestration = appRequiresOrchestration;
7
+ exports.getProviderScopes = getProviderScopes;
8
+ exports.getProviderApps = getProviderApps;
9
+ /**
10
+ * Auth Provider Detection
11
+ *
12
+ * Detects unique auth providers across nested apps and determines
13
+ * if orchestrated mode is required at the parent scope level.
14
+ *
15
+ * When multiple apps have different auth providers, the parent MUST
16
+ * use orchestrated mode to properly manage tokens for each provider.
17
+ */
18
+ const zod_1 = require("zod");
19
+ const common_1 = require("../../common");
20
+ // ============================================
21
+ // Schemas
22
+ // ============================================
23
+ /**
24
+ * Schema for a detected auth provider
25
+ */
26
+ exports.detectedAuthProviderSchema = zod_1.z.object({
27
+ /** Unique provider ID (derived from URL or explicit id) */
28
+ id: zod_1.z.string(),
29
+ /** Provider URL (for remote providers) */
30
+ providerUrl: zod_1.z.string().optional(),
31
+ /** Auth mode of this provider */
32
+ mode: zod_1.z.enum(['public', 'transparent', 'orchestrated']),
33
+ /** App IDs that use this provider */
34
+ appIds: zod_1.z.array(zod_1.z.string()),
35
+ /** Collected OAuth scopes from all apps using this provider */
36
+ scopes: zod_1.z.array(zod_1.z.string()),
37
+ /** Whether this is the parent's provider */
38
+ isParentProvider: zod_1.z.boolean(),
39
+ });
40
+ /**
41
+ * Schema for auth provider detection result
42
+ */
43
+ exports.authProviderDetectionResultSchema = zod_1.z.object({
44
+ /** Map of provider ID to detected provider info */
45
+ providers: zod_1.z.map(zod_1.z.string(), exports.detectedAuthProviderSchema),
46
+ /** Whether orchestration is required at parent level */
47
+ requiresOrchestration: zod_1.z.boolean(),
48
+ /** Parent provider ID (if any) */
49
+ parentProviderId: zod_1.z.string().optional(),
50
+ /** Child provider IDs (excluding parent) */
51
+ childProviderIds: zod_1.z.array(zod_1.z.string()),
52
+ /** Total unique provider count */
53
+ uniqueProviderCount: zod_1.z.number(),
54
+ /** Validation errors (if any) */
55
+ validationErrors: zod_1.z.array(zod_1.z.string()),
56
+ /** Warnings (non-fatal issues) */
57
+ warnings: zod_1.z.array(zod_1.z.string()),
58
+ });
59
+ // ============================================
60
+ // Detection Functions
61
+ // ============================================
62
+ /**
63
+ * Derive a stable provider ID from auth options
64
+ */
65
+ function deriveProviderId(options) {
66
+ if ((0, common_1.isPublicMode)(options)) {
67
+ return options.issuer ?? 'public';
68
+ }
69
+ if ((0, common_1.isTransparentMode)(options)) {
70
+ return options.remote.id ?? urlToProviderId(options.remote.provider);
71
+ }
72
+ if ((0, common_1.isOrchestratedMode)(options)) {
73
+ if ((0, common_1.isOrchestratedRemote)(options)) {
74
+ return options.remote.id ?? urlToProviderId(options.remote.provider);
75
+ }
76
+ // Local orchestrated - use issuer or 'local'
77
+ return options.local?.issuer ?? 'local';
78
+ }
79
+ return 'unknown';
80
+ }
81
+ /**
82
+ * Convert URL to a safe provider ID
83
+ */
84
+ function urlToProviderId(url) {
85
+ try {
86
+ const parsed = new URL(url);
87
+ return parsed.hostname.replace(/\./g, '_');
88
+ }
89
+ catch {
90
+ return url.replace(/[^a-zA-Z0-9]/g, '_');
91
+ }
92
+ }
93
+ /**
94
+ * Extract OAuth scopes from auth options
95
+ */
96
+ function extractScopes(options) {
97
+ if ((0, common_1.isTransparentMode)(options)) {
98
+ return options.requiredScopes || [];
99
+ }
100
+ if ((0, common_1.isOrchestratedMode)(options)) {
101
+ if ((0, common_1.isOrchestratedRemote)(options)) {
102
+ return options.remote.scopes || [];
103
+ }
104
+ }
105
+ return [];
106
+ }
107
+ /**
108
+ * Detect all unique auth providers across parent and apps
109
+ *
110
+ * @param parentAuth - Parent scope's auth options (may be undefined)
111
+ * @param apps - Array of app auth info
112
+ * @returns Detection result with providers, validation, and requirements
113
+ */
114
+ function detectAuthProviders(parentAuth, apps) {
115
+ const providers = new Map();
116
+ const validationErrors = [];
117
+ const warnings = [];
118
+ let parentProviderId;
119
+ // Process parent auth if present
120
+ if (parentAuth) {
121
+ parentProviderId = deriveProviderId(parentAuth);
122
+ providers.set(parentProviderId, {
123
+ id: parentProviderId,
124
+ providerUrl: getProviderUrl(parentAuth),
125
+ mode: parentAuth.mode,
126
+ appIds: ['__parent__'],
127
+ scopes: extractScopes(parentAuth),
128
+ isParentProvider: true,
129
+ });
130
+ }
131
+ // Process each app's auth
132
+ for (const app of apps) {
133
+ if (!app.auth) {
134
+ // App inherits from parent - skip
135
+ continue;
136
+ }
137
+ const providerId = deriveProviderId(app.auth);
138
+ const existing = providers.get(providerId);
139
+ if (existing) {
140
+ // Same provider - merge app and scopes
141
+ existing.appIds.push(app.id);
142
+ const newScopes = extractScopes(app.auth);
143
+ existing.scopes = [...new Set([...existing.scopes, ...newScopes])];
144
+ }
145
+ else {
146
+ // New provider
147
+ providers.set(providerId, {
148
+ id: providerId,
149
+ providerUrl: getProviderUrl(app.auth),
150
+ mode: app.auth.mode,
151
+ appIds: [app.id],
152
+ scopes: extractScopes(app.auth),
153
+ isParentProvider: false,
154
+ });
155
+ }
156
+ }
157
+ // Determine child provider IDs (non-parent)
158
+ const childProviderIds = [...providers.keys()].filter((id) => id !== parentProviderId);
159
+ // Determine if orchestration is required
160
+ const uniqueProviderCount = providers.size;
161
+ const hasMultipleProviders = uniqueProviderCount > 1;
162
+ const hasChildOnlyProviders = childProviderIds.length > 0 && !parentProviderId;
163
+ const requiresOrchestration = hasMultipleProviders || hasChildOnlyProviders || (childProviderIds.length > 0 && parentProviderId !== undefined);
164
+ // Validate configuration
165
+ if (requiresOrchestration && parentAuth && (0, common_1.isTransparentMode)(parentAuth)) {
166
+ validationErrors.push(`Invalid auth configuration: Parent uses transparent mode but apps have their own auth providers. ` +
167
+ `Transparent mode passes tokens through without modification, which is incompatible with multi-provider setups. ` +
168
+ `Change parent auth to orchestrated mode to properly manage tokens for each provider. ` +
169
+ `Detected providers: ${[...providers.keys()].join(', ')}`);
170
+ }
171
+ // Add warnings for potential issues
172
+ if (uniqueProviderCount > 1 && parentAuth && (0, common_1.isPublicMode)(parentAuth)) {
173
+ warnings.push(`Parent uses public mode but apps have auth providers configured. ` +
174
+ `App-level auth will be used, but consider using orchestrated mode at parent for unified auth management.`);
175
+ }
176
+ return {
177
+ providers,
178
+ requiresOrchestration,
179
+ parentProviderId,
180
+ childProviderIds,
181
+ uniqueProviderCount,
182
+ validationErrors,
183
+ warnings,
184
+ };
185
+ }
186
+ /**
187
+ * Get provider URL from auth options (if remote)
188
+ */
189
+ function getProviderUrl(options) {
190
+ if ((0, common_1.isTransparentMode)(options)) {
191
+ return options.remote.provider;
192
+ }
193
+ if ((0, common_1.isOrchestratedMode)(options) && (0, common_1.isOrchestratedRemote)(options)) {
194
+ return options.remote.provider;
195
+ }
196
+ return undefined;
197
+ }
198
+ /**
199
+ * Check if a specific app requires orchestration
200
+ * (i.e., has a different provider than parent)
201
+ */
202
+ function appRequiresOrchestration(appAuth, parentAuth) {
203
+ // No app auth = inherits from parent
204
+ if (!appAuth) {
205
+ return false;
206
+ }
207
+ // No parent auth = app manages its own auth
208
+ if (!parentAuth) {
209
+ return appAuth.mode !== 'public';
210
+ }
211
+ // Compare provider IDs
212
+ const appProviderId = deriveProviderId(appAuth);
213
+ const parentProviderId = deriveProviderId(parentAuth);
214
+ return appProviderId !== parentProviderId;
215
+ }
216
+ /**
217
+ * Get all OAuth scopes needed for a provider across all apps
218
+ */
219
+ function getProviderScopes(detection, providerId) {
220
+ const provider = detection.providers.get(providerId);
221
+ return provider?.scopes ?? [];
222
+ }
223
+ /**
224
+ * Get apps that use a specific provider
225
+ */
226
+ function getProviderApps(detection, providerId) {
227
+ const provider = detection.providers.get(providerId);
228
+ return provider?.appIds.filter((id) => id !== '__parent__') ?? [];
229
+ }
230
+ //# sourceMappingURL=auth-provider-detection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth-provider-detection.js","sourceRoot":"","sources":["../../../../src/auth/detection/auth-provider-detection.ts"],"names":[],"mappings":";;;AA6EA,4CAkBC;AAsCD,kDAyFC;AAqBD,4DAmBC;AAKD,8CAGC;AAKD,0CAGC;AAtRD;;;;;;;;GAQG;AACH,6BAAwB;AACxB,yCAAsH;AAEtH,+CAA+C;AAC/C,UAAU;AACV,+CAA+C;AAE/C;;GAEG;AACU,QAAA,0BAA0B,GAAG,OAAC,CAAC,MAAM,CAAC;IACjD,2DAA2D;IAC3D,EAAE,EAAE,OAAC,CAAC,MAAM,EAAE;IACd,0CAA0C;IAC1C,WAAW,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,iCAAiC;IACjC,IAAI,EAAE,OAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,aAAa,EAAE,cAAc,CAAC,CAAC;IACvD,qCAAqC;IACrC,MAAM,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,MAAM,EAAE,CAAC;IAC3B,+DAA+D;IAC/D,MAAM,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,MAAM,EAAE,CAAC;IAC3B,4CAA4C;IAC5C,gBAAgB,EAAE,OAAC,CAAC,OAAO,EAAE;CAC9B,CAAC,CAAC;AAEH;;GAEG;AACU,QAAA,iCAAiC,GAAG,OAAC,CAAC,MAAM,CAAC;IACxD,mDAAmD;IACnD,SAAS,EAAE,OAAC,CAAC,GAAG,CAAC,OAAC,CAAC,MAAM,EAAE,EAAE,kCAA0B,CAAC;IACxD,wDAAwD;IACxD,qBAAqB,EAAE,OAAC,CAAC,OAAO,EAAE;IAClC,kCAAkC;IAClC,gBAAgB,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACvC,4CAA4C;IAC5C,gBAAgB,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,MAAM,EAAE,CAAC;IACrC,kCAAkC;IAClC,mBAAmB,EAAE,OAAC,CAAC,MAAM,EAAE;IAC/B,iCAAiC;IACjC,gBAAgB,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,MAAM,EAAE,CAAC;IACrC,kCAAkC;IAClC,QAAQ,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,MAAM,EAAE,CAAC;CAC9B,CAAC,CAAC;AAkBH,+CAA+C;AAC/C,sBAAsB;AACtB,+CAA+C;AAE/C;;GAEG;AACH,SAAgB,gBAAgB,CAAC,OAAoB;IACnD,IAAI,IAAA,qBAAY,EAAC,OAAO,CAAC,EAAE,CAAC;QAC1B,OAAO,OAAO,CAAC,MAAM,IAAI,QAAQ,CAAC;IACpC,CAAC;IAED,IAAI,IAAA,0BAAiB,EAAC,OAAO,CAAC,EAAE,CAAC;QAC/B,OAAO,OAAO,CAAC,MAAM,CAAC,EAAE,IAAI,eAAe,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IACvE,CAAC;IAED,IAAI,IAAA,2BAAkB,EAAC,OAAO,CAAC,EAAE,CAAC;QAChC,IAAI,IAAA,6BAAoB,EAAC,OAAO,CAAC,EAAE,CAAC;YAClC,OAAO,OAAO,CAAC,MAAM,CAAC,EAAE,IAAI,eAAe,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACvE,CAAC;QACD,6CAA6C;QAC7C,OAAO,OAAO,CAAC,KAAK,EAAE,MAAM,IAAI,OAAO,CAAC;IAC1C,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;GAEG;AACH,SAAS,eAAe,CAAC,GAAW;IAClC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;QAC5B,OAAO,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAC7C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,GAAG,CAAC,OAAO,CAAC,eAAe,EAAE,GAAG,CAAC,CAAC;IAC3C,CAAC;AACH,CAAC;AAED;;GAEG;AACH,SAAS,aAAa,CAAC,OAAoB;IACzC,IAAI,IAAA,0BAAiB,EAAC,OAAO,CAAC,EAAE,CAAC;QAC/B,OAAO,OAAO,CAAC,cAAc,IAAI,EAAE,CAAC;IACtC,CAAC;IAED,IAAI,IAAA,2BAAkB,EAAC,OAAO,CAAC,EAAE,CAAC;QAChC,IAAI,IAAA,6BAAoB,EAAC,OAAO,CAAC,EAAE,CAAC;YAClC,OAAO,OAAO,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC;QACrC,CAAC;IACH,CAAC;IAED,OAAO,EAAE,CAAC;AACZ,CAAC;AAED;;;;;;GAMG;AACH,SAAgB,mBAAmB,CACjC,UAAmC,EACnC,IAAmB;IAEnB,MAAM,SAAS,GAAG,IAAI,GAAG,EAAgC,CAAC;IAC1D,MAAM,gBAAgB,GAAa,EAAE,CAAC;IACtC,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,IAAI,gBAAoC,CAAC;IAEzC,iCAAiC;IACjC,IAAI,UAAU,EAAE,CAAC;QACf,gBAAgB,GAAG,gBAAgB,CAAC,UAAU,CAAC,CAAC;QAEhD,SAAS,CAAC,GAAG,CAAC,gBAAgB,EAAE;YAC9B,EAAE,EAAE,gBAAgB;YACpB,WAAW,EAAE,cAAc,CAAC,UAAU,CAAC;YACvC,IAAI,EAAE,UAAU,CAAC,IAAI;YACrB,MAAM,EAAE,CAAC,YAAY,CAAC;YACtB,MAAM,EAAE,aAAa,CAAC,UAAU,CAAC;YACjC,gBAAgB,EAAE,IAAI;SACvB,CAAC,CAAC;IACL,CAAC;IAED,0BAA0B;IAC1B,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACvB,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;YACd,kCAAkC;YAClC,SAAS;QACX,CAAC;QAED,MAAM,UAAU,GAAG,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC9C,MAAM,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAE3C,IAAI,QAAQ,EAAE,CAAC;YACb,uCAAuC;YACvC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YAC7B,MAAM,SAAS,GAAG,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAC1C,QAAQ,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;QACrE,CAAC;aAAM,CAAC;YACN,eAAe;YACf,SAAS,CAAC,GAAG,CAAC,UAAU,EAAE;gBACxB,EAAE,EAAE,UAAU;gBACd,WAAW,EAAE,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC;gBACrC,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,IAAI;gBACnB,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC;gBAChB,MAAM,EAAE,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC;gBAC/B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,4CAA4C;IAC5C,MAAM,gBAAgB,GAAG,CAAC,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,gBAAgB,CAAC,CAAC;IAEvF,yCAAyC;IACzC,MAAM,mBAAmB,GAAG,SAAS,CAAC,IAAI,CAAC;IAC3C,MAAM,oBAAoB,GAAG,mBAAmB,GAAG,CAAC,CAAC;IACrD,MAAM,qBAAqB,GAAG,gBAAgB,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC;IAE/E,MAAM,qBAAqB,GACzB,oBAAoB,IAAI,qBAAqB,IAAI,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,IAAI,gBAAgB,KAAK,SAAS,CAAC,CAAC;IAEnH,yBAAyB;IACzB,IAAI,qBAAqB,IAAI,UAAU,IAAI,IAAA,0BAAiB,EAAC,UAAU,CAAC,EAAE,CAAC;QACzE,gBAAgB,CAAC,IAAI,CACnB,mGAAmG;YACjG,iHAAiH;YACjH,uFAAuF;YACvF,uBAAuB,CAAC,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAC5D,CAAC;IACJ,CAAC;IAED,oCAAoC;IACpC,IAAI,mBAAmB,GAAG,CAAC,IAAI,UAAU,IAAI,IAAA,qBAAY,EAAC,UAAU,CAAC,EAAE,CAAC;QACtE,QAAQ,CAAC,IAAI,CACX,mEAAmE;YACjE,0GAA0G,CAC7G,CAAC;IACJ,CAAC;IAED,OAAO;QACL,SAAS;QACT,qBAAqB;QACrB,gBAAgB;QAChB,gBAAgB;QAChB,mBAAmB;QACnB,gBAAgB;QAChB,QAAQ;KACT,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAS,cAAc,CAAC,OAAoB;IAC1C,IAAI,IAAA,0BAAiB,EAAC,OAAO,CAAC,EAAE,CAAC;QAC/B,OAAO,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC;IACjC,CAAC;IAED,IAAI,IAAA,2BAAkB,EAAC,OAAO,CAAC,IAAI,IAAA,6BAAoB,EAAC,OAAO,CAAC,EAAE,CAAC;QACjE,OAAO,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC;IACjC,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;GAGG;AACH,SAAgB,wBAAwB,CACtC,OAAgC,EAChC,UAAmC;IAEnC,qCAAqC;IACrC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,KAAK,CAAC;IACf,CAAC;IAED,4CAA4C;IAC5C,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO,OAAO,CAAC,IAAI,KAAK,QAAQ,CAAC;IACnC,CAAC;IAED,uBAAuB;IACvB,MAAM,aAAa,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAChD,MAAM,gBAAgB,GAAG,gBAAgB,CAAC,UAAU,CAAC,CAAC;IAEtD,OAAO,aAAa,KAAK,gBAAgB,CAAC;AAC5C,CAAC;AAED;;GAEG;AACH,SAAgB,iBAAiB,CAAC,SAAsC,EAAE,UAAkB;IAC1F,MAAM,QAAQ,GAAG,SAAS,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IACrD,OAAO,QAAQ,EAAE,MAAM,IAAI,EAAE,CAAC;AAChC,CAAC;AAED;;GAEG;AACH,SAAgB,eAAe,CAAC,SAAsC,EAAE,UAAkB;IACxF,MAAM,QAAQ,GAAG,SAAS,CAAC,SAAS,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IACrD,OAAO,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,YAAY,CAAC,IAAI,EAAE,CAAC;AACpE,CAAC","sourcesContent":["/**\n * Auth Provider Detection\n *\n * Detects unique auth providers across nested apps and determines\n * if orchestrated mode is required at the parent scope level.\n *\n * When multiple apps have different auth providers, the parent MUST\n * use orchestrated mode to properly manage tokens for each provider.\n */\nimport { z } from 'zod';\nimport { AuthOptions, isPublicMode, isTransparentMode, isOrchestratedMode, isOrchestratedRemote } from '../../common';\n\n// ============================================\n// Schemas\n// ============================================\n\n/**\n * Schema for a detected auth provider\n */\nexport const detectedAuthProviderSchema = z.object({\n /** Unique provider ID (derived from URL or explicit id) */\n id: z.string(),\n /** Provider URL (for remote providers) */\n providerUrl: z.string().optional(),\n /** Auth mode of this provider */\n mode: z.enum(['public', 'transparent', 'orchestrated']),\n /** App IDs that use this provider */\n appIds: z.array(z.string()),\n /** Collected OAuth scopes from all apps using this provider */\n scopes: z.array(z.string()),\n /** Whether this is the parent's provider */\n isParentProvider: z.boolean(),\n});\n\n/**\n * Schema for auth provider detection result\n */\nexport const authProviderDetectionResultSchema = z.object({\n /** Map of provider ID to detected provider info */\n providers: z.map(z.string(), detectedAuthProviderSchema),\n /** Whether orchestration is required at parent level */\n requiresOrchestration: z.boolean(),\n /** Parent provider ID (if any) */\n parentProviderId: z.string().optional(),\n /** Child provider IDs (excluding parent) */\n childProviderIds: z.array(z.string()),\n /** Total unique provider count */\n uniqueProviderCount: z.number(),\n /** Validation errors (if any) */\n validationErrors: z.array(z.string()),\n /** Warnings (non-fatal issues) */\n warnings: z.array(z.string()),\n});\n\n// ============================================\n// Types\n// ============================================\n\nexport type DetectedAuthProvider = z.infer<typeof detectedAuthProviderSchema>;\nexport type AuthProviderDetectionResult = z.infer<typeof authProviderDetectionResultSchema>;\n\n/**\n * App auth info for detection (minimal interface)\n */\nexport interface AppAuthInfo {\n id: string;\n name: string;\n auth?: AuthOptions;\n}\n\n// ============================================\n// Detection Functions\n// ============================================\n\n/**\n * Derive a stable provider ID from auth options\n */\nexport function deriveProviderId(options: AuthOptions): string {\n if (isPublicMode(options)) {\n return options.issuer ?? 'public';\n }\n\n if (isTransparentMode(options)) {\n return options.remote.id ?? urlToProviderId(options.remote.provider);\n }\n\n if (isOrchestratedMode(options)) {\n if (isOrchestratedRemote(options)) {\n return options.remote.id ?? urlToProviderId(options.remote.provider);\n }\n // Local orchestrated - use issuer or 'local'\n return options.local?.issuer ?? 'local';\n }\n\n return 'unknown';\n}\n\n/**\n * Convert URL to a safe provider ID\n */\nfunction urlToProviderId(url: string): string {\n try {\n const parsed = new URL(url);\n return parsed.hostname.replace(/\\./g, '_');\n } catch {\n return url.replace(/[^a-zA-Z0-9]/g, '_');\n }\n}\n\n/**\n * Extract OAuth scopes from auth options\n */\nfunction extractScopes(options: AuthOptions): string[] {\n if (isTransparentMode(options)) {\n return options.requiredScopes || [];\n }\n\n if (isOrchestratedMode(options)) {\n if (isOrchestratedRemote(options)) {\n return options.remote.scopes || [];\n }\n }\n\n return [];\n}\n\n/**\n * Detect all unique auth providers across parent and apps\n *\n * @param parentAuth - Parent scope's auth options (may be undefined)\n * @param apps - Array of app auth info\n * @returns Detection result with providers, validation, and requirements\n */\nexport function detectAuthProviders(\n parentAuth: AuthOptions | undefined,\n apps: AppAuthInfo[],\n): AuthProviderDetectionResult {\n const providers = new Map<string, DetectedAuthProvider>();\n const validationErrors: string[] = [];\n const warnings: string[] = [];\n let parentProviderId: string | undefined;\n\n // Process parent auth if present\n if (parentAuth) {\n parentProviderId = deriveProviderId(parentAuth);\n\n providers.set(parentProviderId, {\n id: parentProviderId,\n providerUrl: getProviderUrl(parentAuth),\n mode: parentAuth.mode,\n appIds: ['__parent__'],\n scopes: extractScopes(parentAuth),\n isParentProvider: true,\n });\n }\n\n // Process each app's auth\n for (const app of apps) {\n if (!app.auth) {\n // App inherits from parent - skip\n continue;\n }\n\n const providerId = deriveProviderId(app.auth);\n const existing = providers.get(providerId);\n\n if (existing) {\n // Same provider - merge app and scopes\n existing.appIds.push(app.id);\n const newScopes = extractScopes(app.auth);\n existing.scopes = [...new Set([...existing.scopes, ...newScopes])];\n } else {\n // New provider\n providers.set(providerId, {\n id: providerId,\n providerUrl: getProviderUrl(app.auth),\n mode: app.auth.mode,\n appIds: [app.id],\n scopes: extractScopes(app.auth),\n isParentProvider: false,\n });\n }\n }\n\n // Determine child provider IDs (non-parent)\n const childProviderIds = [...providers.keys()].filter((id) => id !== parentProviderId);\n\n // Determine if orchestration is required\n const uniqueProviderCount = providers.size;\n const hasMultipleProviders = uniqueProviderCount > 1;\n const hasChildOnlyProviders = childProviderIds.length > 0 && !parentProviderId;\n\n const requiresOrchestration =\n hasMultipleProviders || hasChildOnlyProviders || (childProviderIds.length > 0 && parentProviderId !== undefined);\n\n // Validate configuration\n if (requiresOrchestration && parentAuth && isTransparentMode(parentAuth)) {\n validationErrors.push(\n `Invalid auth configuration: Parent uses transparent mode but apps have their own auth providers. ` +\n `Transparent mode passes tokens through without modification, which is incompatible with multi-provider setups. ` +\n `Change parent auth to orchestrated mode to properly manage tokens for each provider. ` +\n `Detected providers: ${[...providers.keys()].join(', ')}`,\n );\n }\n\n // Add warnings for potential issues\n if (uniqueProviderCount > 1 && parentAuth && isPublicMode(parentAuth)) {\n warnings.push(\n `Parent uses public mode but apps have auth providers configured. ` +\n `App-level auth will be used, but consider using orchestrated mode at parent for unified auth management.`,\n );\n }\n\n return {\n providers,\n requiresOrchestration,\n parentProviderId,\n childProviderIds,\n uniqueProviderCount,\n validationErrors,\n warnings,\n };\n}\n\n/**\n * Get provider URL from auth options (if remote)\n */\nfunction getProviderUrl(options: AuthOptions): string | undefined {\n if (isTransparentMode(options)) {\n return options.remote.provider;\n }\n\n if (isOrchestratedMode(options) && isOrchestratedRemote(options)) {\n return options.remote.provider;\n }\n\n return undefined;\n}\n\n/**\n * Check if a specific app requires orchestration\n * (i.e., has a different provider than parent)\n */\nexport function appRequiresOrchestration(\n appAuth: AuthOptions | undefined,\n parentAuth: AuthOptions | undefined,\n): boolean {\n // No app auth = inherits from parent\n if (!appAuth) {\n return false;\n }\n\n // No parent auth = app manages its own auth\n if (!parentAuth) {\n return appAuth.mode !== 'public';\n }\n\n // Compare provider IDs\n const appProviderId = deriveProviderId(appAuth);\n const parentProviderId = deriveProviderId(parentAuth);\n\n return appProviderId !== parentProviderId;\n}\n\n/**\n * Get all OAuth scopes needed for a provider across all apps\n */\nexport function getProviderScopes(detection: AuthProviderDetectionResult, providerId: string): string[] {\n const provider = detection.providers.get(providerId);\n return provider?.scopes ?? [];\n}\n\n/**\n * Get apps that use a specific provider\n */\nexport function getProviderApps(detection: AuthProviderDetectionResult, providerId: string): string[] {\n const provider = detection.providers.get(providerId);\n return provider?.appIds.filter((id) => id !== '__parent__') ?? [];\n}\n"]}
@@ -0,0 +1 @@
1
+ export { detectedAuthProviderSchema, authProviderDetectionResultSchema, DetectedAuthProvider, AuthProviderDetectionResult, AppAuthInfo, detectAuthProviders, deriveProviderId, appRequiresOrchestration, getProviderScopes, getProviderApps, } from './auth-provider-detection';
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getProviderApps = exports.getProviderScopes = exports.appRequiresOrchestration = exports.deriveProviderId = exports.detectAuthProviders = exports.authProviderDetectionResultSchema = exports.detectedAuthProviderSchema = void 0;
4
+ // Auth Provider Detection Module
5
+ var auth_provider_detection_1 = require("./auth-provider-detection");
6
+ // Schemas
7
+ Object.defineProperty(exports, "detectedAuthProviderSchema", { enumerable: true, get: function () { return auth_provider_detection_1.detectedAuthProviderSchema; } });
8
+ Object.defineProperty(exports, "authProviderDetectionResultSchema", { enumerable: true, get: function () { return auth_provider_detection_1.authProviderDetectionResultSchema; } });
9
+ // Functions
10
+ Object.defineProperty(exports, "detectAuthProviders", { enumerable: true, get: function () { return auth_provider_detection_1.detectAuthProviders; } });
11
+ Object.defineProperty(exports, "deriveProviderId", { enumerable: true, get: function () { return auth_provider_detection_1.deriveProviderId; } });
12
+ Object.defineProperty(exports, "appRequiresOrchestration", { enumerable: true, get: function () { return auth_provider_detection_1.appRequiresOrchestration; } });
13
+ Object.defineProperty(exports, "getProviderScopes", { enumerable: true, get: function () { return auth_provider_detection_1.getProviderScopes; } });
14
+ Object.defineProperty(exports, "getProviderApps", { enumerable: true, get: function () { return auth_provider_detection_1.getProviderApps; } });
15
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/auth/detection/index.ts"],"names":[],"mappings":";;;AAAA,iCAAiC;AACjC,qEAcmC;AAbjC,UAAU;AACV,qIAAA,0BAA0B,OAAA;AAC1B,4IAAA,iCAAiC,OAAA;AAKjC,YAAY;AACZ,8HAAA,mBAAmB,OAAA;AACnB,2HAAA,gBAAgB,OAAA;AAChB,mIAAA,wBAAwB,OAAA;AACxB,4HAAA,iBAAiB,OAAA;AACjB,0HAAA,eAAe,OAAA","sourcesContent":["// Auth Provider Detection Module\nexport {\n // Schemas\n detectedAuthProviderSchema,\n authProviderDetectionResultSchema,\n // Types\n DetectedAuthProvider,\n AuthProviderDetectionResult,\n AppAuthInfo,\n // Functions\n detectAuthProviders,\n deriveProviderId,\n appRequiresOrchestration,\n getProviderScopes,\n getProviderApps,\n} from './auth-provider-detection';\n"]}
@@ -0,0 +1,110 @@
1
+ import { FlowBase, FlowRunOptions } from '../../common';
2
+ import 'reflect-metadata';
3
+ import { z } from 'zod';
4
+ import { Authorization } from '../authorization';
5
+ declare const inputSchema: z.ZodObject<{
6
+ request: z.ZodObject<{}, z.core.$loose>;
7
+ }, z.core.$strip>;
8
+ declare const stateSchema: z.ZodObject<{
9
+ baseUrl: z.ZodString;
10
+ authorizationHeader: z.ZodOptional<z.ZodString>;
11
+ token: z.ZodOptional<z.ZodString>;
12
+ sessionIdHeader: z.ZodOptional<z.ZodString>;
13
+ prmUrl: z.ZodString;
14
+ wwwAuthenticateHeader: z.ZodString;
15
+ authMode: z.ZodOptional<z.ZodEnum<{
16
+ public: "public";
17
+ transparent: "transparent";
18
+ orchestrated: "orchestrated";
19
+ }>>;
20
+ jwtPayload: z.ZodOptional<z.ZodObject<{}, z.core.$loose>>;
21
+ user: z.ZodOptional<z.ZodObject<{
22
+ sub: z.ZodString;
23
+ name: z.ZodOptional<z.ZodString>;
24
+ email: z.ZodOptional<z.ZodString>;
25
+ picture: z.ZodOptional<z.ZodString>;
26
+ anonymous: z.ZodOptional<z.ZodBoolean>;
27
+ }, z.core.$strip>>;
28
+ }, z.core.$strip>;
29
+ export declare const authVerifyOutputSchema: z.ZodUnion<readonly [z.ZodObject<{
30
+ kind: z.ZodLiteral<"unauthorized">;
31
+ wwwAuthenticateHeader: z.ZodString;
32
+ reason: z.ZodOptional<z.ZodString>;
33
+ }, z.core.$strip>, z.ZodObject<{
34
+ kind: z.ZodLiteral<"authorized">;
35
+ authorization: z.ZodCustom<Authorization, Authorization>;
36
+ llmContext: z.ZodOptional<z.ZodObject<{
37
+ authorizationId: z.ZodString;
38
+ sessionId: z.ZodString;
39
+ mode: z.ZodEnum<{
40
+ public: "public";
41
+ transparent: "transparent";
42
+ orchestrated: "orchestrated";
43
+ }>;
44
+ isAnonymous: z.ZodBoolean;
45
+ user: z.ZodObject<{
46
+ sub: z.ZodString;
47
+ name: z.ZodOptional<z.ZodString>;
48
+ }, z.core.$strip>;
49
+ scopes: z.ZodArray<z.ZodString>;
50
+ authorizedToolIds: z.ZodArray<z.ZodString>;
51
+ authorizedPromptIds: z.ZodArray<z.ZodString>;
52
+ }, z.core.$strip>>;
53
+ }, z.core.$strip>]>;
54
+ export type AuthVerifyOutput = z.infer<typeof authVerifyOutputSchema>;
55
+ declare const plan: {
56
+ readonly pre: ["parseInput", "determineAuthMode", "handlePublicMode", "requireAuthorizationHeader", "verifyToken"];
57
+ readonly execute: ["buildAuthorization"];
58
+ };
59
+ declare global {
60
+ interface ExtendFlows {
61
+ 'auth:verify': FlowRunOptions<AuthVerifyFlow, typeof plan, typeof inputSchema, typeof authVerifyOutputSchema, typeof stateSchema>;
62
+ }
63
+ }
64
+ declare const name: "auth:verify";
65
+ /**
66
+ * Auth Verify Flow
67
+ *
68
+ * New authorization verification flow that supports the three auth modes:
69
+ * - public: Auto-generate anonymous authorization
70
+ * - transparent: Pass-through OAuth tokens from upstream provider
71
+ * - orchestrated: Local auth server with secure token storage
72
+ *
73
+ * This flow creates Authorization objects instead of legacy Session objects.
74
+ */
75
+ export default class AuthVerifyFlow extends FlowBase<typeof name> {
76
+ private logger;
77
+ /**
78
+ * Parse request headers and build WWW-Authenticate header
79
+ */
80
+ parseInput(): Promise<void>;
81
+ /**
82
+ * Determine which auth mode to use based on scope configuration
83
+ */
84
+ determineAuthMode(): Promise<void>;
85
+ /**
86
+ * Handle public mode - create anonymous authorization without requiring a token
87
+ */
88
+ handlePublicMode(): Promise<void>;
89
+ /**
90
+ * Require authorization header for non-public modes
91
+ */
92
+ requireAuthorizationHeader(): Promise<void>;
93
+ /**
94
+ * Verify the JWT token
95
+ */
96
+ verifyToken(): Promise<void>;
97
+ /**
98
+ * Build the Authorization object based on auth mode
99
+ */
100
+ buildAuthorization(): Promise<void>;
101
+ /**
102
+ * Parse TTL from string or number
103
+ */
104
+ private parseTtl;
105
+ /**
106
+ * Parse scopes from JWT claim
107
+ */
108
+ private parseScopes;
109
+ }
110
+ export {};