@frontmcp/sdk 0.1.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 (353) hide show
  1. package/README.md +11 -0
  2. package/package.json +29 -0
  3. package/src/constants.d.ts +30 -0
  4. package/src/constants.js +36 -0
  5. package/src/constants.js.map +1 -0
  6. package/src/decorators/adapter.decorator.d.ts +7 -0
  7. package/src/decorators/adapter.decorator.js +20 -0
  8. package/src/decorators/adapter.decorator.js.map +1 -0
  9. package/src/decorators/app.decorator.d.ts +7 -0
  10. package/src/decorators/app.decorator.js +44 -0
  11. package/src/decorators/app.decorator.js.map +1 -0
  12. package/src/decorators/auth-provider.decorator.d.ts +7 -0
  13. package/src/decorators/auth-provider.decorator.js +20 -0
  14. package/src/decorators/auth-provider.decorator.js.map +1 -0
  15. package/src/decorators/flow-hooks.decorator.d.ts +12 -0
  16. package/src/decorators/flow-hooks.decorator.js +63 -0
  17. package/src/decorators/flow-hooks.decorator.js.map +1 -0
  18. package/src/decorators/flow.decorator.d.ts +6 -0
  19. package/src/decorators/flow.decorator.js +19 -0
  20. package/src/decorators/flow.decorator.js.map +1 -0
  21. package/src/decorators/front-mcp.decorator.d.ts +6 -0
  22. package/src/decorators/front-mcp.decorator.js +40 -0
  23. package/src/decorators/front-mcp.decorator.js.map +1 -0
  24. package/src/decorators/index.d.ts +12 -0
  25. package/src/decorators/index.js +16 -0
  26. package/src/decorators/index.js.map +1 -0
  27. package/src/decorators/logger.decorator.d.ts +7 -0
  28. package/src/decorators/logger.decorator.js +20 -0
  29. package/src/decorators/logger.decorator.js.map +1 -0
  30. package/src/decorators/plugin.decorator.d.ts +7 -0
  31. package/src/decorators/plugin.decorator.js +38 -0
  32. package/src/decorators/plugin.decorator.js.map +1 -0
  33. package/src/decorators/prompt.decorator.d.ts +13 -0
  34. package/src/decorators/prompt.decorator.js +38 -0
  35. package/src/decorators/prompt.decorator.js.map +1 -0
  36. package/src/decorators/provider.decorator.d.ts +7 -0
  37. package/src/decorators/provider.decorator.js +20 -0
  38. package/src/decorators/provider.decorator.js.map +1 -0
  39. package/src/decorators/resource.decorator.d.ts +17 -0
  40. package/src/decorators/resource.decorator.js +52 -0
  41. package/src/decorators/resource.decorator.js.map +1 -0
  42. package/src/decorators/tool.decorator.d.ts +14 -0
  43. package/src/decorators/tool.decorator.js +38 -0
  44. package/src/decorators/tool.decorator.js.map +1 -0
  45. package/src/decorators-old/async-with.decorator.d.ts +9 -0
  46. package/src/decorators-old/async-with.decorator.js +23 -0
  47. package/src/decorators-old/async-with.decorator.js.map +1 -0
  48. package/src/decorators-old/auth-hook.decorator.d.ts +14 -0
  49. package/src/decorators-old/auth-hook.decorator.js +27 -0
  50. package/src/decorators-old/auth-hook.decorator.js.map +1 -0
  51. package/src/decorators-old/session-hook.decorator.d.ts +14 -0
  52. package/src/decorators-old/session-hook.decorator.js +27 -0
  53. package/src/decorators-old/session-hook.decorator.js.map +1 -0
  54. package/src/decorators-old/tool-hook.decorator.d.ts +14 -0
  55. package/src/decorators-old/tool-hook.decorator.js +27 -0
  56. package/src/decorators-old/tool-hook.decorator.js.map +1 -0
  57. package/src/dynamic/dynamic.adapter.d.ts +42 -0
  58. package/src/dynamic/dynamic.adapter.js +28 -0
  59. package/src/dynamic/dynamic.adapter.js.map +1 -0
  60. package/src/dynamic/dynamic.plugin.d.ts +52 -0
  61. package/src/dynamic/dynamic.plugin.js +33 -0
  62. package/src/dynamic/dynamic.plugin.js.map +1 -0
  63. package/src/dynamic/dynamic.utils.d.ts +3 -0
  64. package/src/dynamic/dynamic.utils.js +27 -0
  65. package/src/dynamic/dynamic.utils.js.map +1 -0
  66. package/src/dynamic/index.d.ts +2 -0
  67. package/src/dynamic/index.js +6 -0
  68. package/src/dynamic/index.js.map +1 -0
  69. package/src/entries/adapter.entry.d.ts +6 -0
  70. package/src/entries/adapter.entry.js +8 -0
  71. package/src/entries/adapter.entry.js.map +1 -0
  72. package/src/entries/app.entry.d.ts +13 -0
  73. package/src/entries/app.entry.js +9 -0
  74. package/src/entries/app.entry.js.map +1 -0
  75. package/src/entries/auth-provider.entry.d.ts +6 -0
  76. package/src/entries/auth-provider.entry.js +8 -0
  77. package/src/entries/auth-provider.entry.js.map +1 -0
  78. package/src/entries/base.entry.d.ts +20 -0
  79. package/src/entries/base.entry.js +17 -0
  80. package/src/entries/base.entry.js.map +1 -0
  81. package/src/entries/flow.entry.d.ts +15 -0
  82. package/src/entries/flow.entry.js +21 -0
  83. package/src/entries/flow.entry.js.map +1 -0
  84. package/src/entries/index.d.ts +12 -0
  85. package/src/entries/index.js +16 -0
  86. package/src/entries/index.js.map +1 -0
  87. package/src/entries/logger.entry.d.ts +6 -0
  88. package/src/entries/logger.entry.js +8 -0
  89. package/src/entries/logger.entry.js.map +1 -0
  90. package/src/entries/plugin.entry.d.ts +6 -0
  91. package/src/entries/plugin.entry.js +8 -0
  92. package/src/entries/plugin.entry.js.map +1 -0
  93. package/src/entries/prompt.entry.d.ts +6 -0
  94. package/src/entries/prompt.entry.js +8 -0
  95. package/src/entries/prompt.entry.js.map +1 -0
  96. package/src/entries/provider.entry.d.ts +7 -0
  97. package/src/entries/provider.entry.js +8 -0
  98. package/src/entries/provider.entry.js.map +1 -0
  99. package/src/entries/resource.entry.d.ts +7 -0
  100. package/src/entries/resource.entry.js +11 -0
  101. package/src/entries/resource.entry.js.map +1 -0
  102. package/src/entries/scope.entry.d.ts +17 -0
  103. package/src/entries/scope.entry.js +8 -0
  104. package/src/entries/scope.entry.js.map +1 -0
  105. package/src/entries/tool.entry.d.ts +15 -0
  106. package/src/entries/tool.entry.js +11 -0
  107. package/src/entries/tool.entry.js.map +1 -0
  108. package/src/index.d.ts +18 -0
  109. package/src/index.js +22 -0
  110. package/src/index.js.map +1 -0
  111. package/src/interfaces/adapter.interface.d.ts +20 -0
  112. package/src/interfaces/adapter.interface.js +3 -0
  113. package/src/interfaces/adapter.interface.js.map +1 -0
  114. package/src/interfaces/app.interface.d.ts +6 -0
  115. package/src/interfaces/app.interface.js +3 -0
  116. package/src/interfaces/app.interface.js.map +1 -0
  117. package/src/interfaces/auth-hook.interface.d.ts +126 -0
  118. package/src/interfaces/auth-hook.interface.js +135 -0
  119. package/src/interfaces/auth-hook.interface.js.map +1 -0
  120. package/src/interfaces/auth-provider.interface.d.ts +22 -0
  121. package/src/interfaces/auth-provider.interface.js +18 -0
  122. package/src/interfaces/auth-provider.interface.js.map +1 -0
  123. package/src/interfaces/base.interface.d.ts +77 -0
  124. package/src/interfaces/base.interface.js +3 -0
  125. package/src/interfaces/base.interface.js.map +1 -0
  126. package/src/interfaces/flow.interface.d.ts +38 -0
  127. package/src/interfaces/flow.interface.js +69 -0
  128. package/src/interfaces/flow.interface.js.map +1 -0
  129. package/src/interfaces/front-mcp.interface.d.ts +5 -0
  130. package/src/interfaces/front-mcp.interface.js +3 -0
  131. package/src/interfaces/front-mcp.interface.js.map +1 -0
  132. package/src/interfaces/index.d.ts +15 -0
  133. package/src/interfaces/index.js +19 -0
  134. package/src/interfaces/index.js.map +1 -0
  135. package/src/interfaces/internal/flow.utils.d.ts +24 -0
  136. package/src/interfaces/internal/flow.utils.js +83 -0
  137. package/src/interfaces/internal/flow.utils.js.map +1 -0
  138. package/src/interfaces/internal/index.d.ts +2 -0
  139. package/src/interfaces/internal/index.js +7 -0
  140. package/src/interfaces/internal/index.js.map +1 -0
  141. package/src/interfaces/internal/primary-auth-provider.interface.d.ts +24 -0
  142. package/src/interfaces/internal/primary-auth-provider.interface.js +33 -0
  143. package/src/interfaces/internal/primary-auth-provider.interface.js.map +1 -0
  144. package/src/interfaces/internal/registry.interface.d.ts +71 -0
  145. package/src/interfaces/internal/registry.interface.js +3 -0
  146. package/src/interfaces/internal/registry.interface.js.map +1 -0
  147. package/src/interfaces/logger.interface.d.ts +42 -0
  148. package/src/interfaces/logger.interface.js +10 -0
  149. package/src/interfaces/logger.interface.js.map +1 -0
  150. package/src/interfaces/plugin.interface.d.ts +8 -0
  151. package/src/interfaces/plugin.interface.js +3 -0
  152. package/src/interfaces/plugin.interface.js.map +1 -0
  153. package/src/interfaces/prompt.interface.d.ts +5 -0
  154. package/src/interfaces/prompt.interface.js +3 -0
  155. package/src/interfaces/prompt.interface.js.map +1 -0
  156. package/src/interfaces/provider.interface.d.ts +20 -0
  157. package/src/interfaces/provider.interface.js +18 -0
  158. package/src/interfaces/provider.interface.js.map +1 -0
  159. package/src/interfaces/resource.interface.d.ts +21 -0
  160. package/src/interfaces/resource.interface.js +3 -0
  161. package/src/interfaces/resource.interface.js.map +1 -0
  162. package/src/interfaces/scope.interface.d.ts +5 -0
  163. package/src/interfaces/scope.interface.js +3 -0
  164. package/src/interfaces/scope.interface.js.map +1 -0
  165. package/src/interfaces/server.interface.d.ts +46 -0
  166. package/src/interfaces/server.interface.js +18 -0
  167. package/src/interfaces/server.interface.js.map +1 -0
  168. package/src/interfaces/session-hook.interface.d.ts +131 -0
  169. package/src/interfaces/session-hook.interface.js +140 -0
  170. package/src/interfaces/session-hook.interface.js.map +1 -0
  171. package/src/interfaces/tool-hook.interface.d.ts +80 -0
  172. package/src/interfaces/tool-hook.interface.js +92 -0
  173. package/src/interfaces/tool-hook.interface.js.map +1 -0
  174. package/src/interfaces/tool.interface.d.ts +45 -0
  175. package/src/interfaces/tool.interface.js +89 -0
  176. package/src/interfaces/tool.interface.js.map +1 -0
  177. package/src/metadata/adapter.metadata.d.ts +22 -0
  178. package/src/metadata/adapter.metadata.js +10 -0
  179. package/src/metadata/adapter.metadata.js.map +1 -0
  180. package/src/metadata/app.metadata.d.ts +872 -0
  181. package/src/metadata/app.metadata.js +30 -0
  182. package/src/metadata/app.metadata.js.map +1 -0
  183. package/src/metadata/auth-provider.metadata.d.ts +33 -0
  184. package/src/metadata/auth-provider.metadata.js +19 -0
  185. package/src/metadata/auth-provider.metadata.js.map +1 -0
  186. package/src/metadata/flow-hooks.metadata.d.ts +20 -0
  187. package/src/metadata/flow-hooks.metadata.js +3 -0
  188. package/src/metadata/flow-hooks.metadata.js.map +1 -0
  189. package/src/metadata/flow.metadata.d.ts +75 -0
  190. package/src/metadata/flow.metadata.js +15 -0
  191. package/src/metadata/flow.metadata.js.map +1 -0
  192. package/src/metadata/front-mcp.metadata.d.ts +1144 -0
  193. package/src/metadata/front-mcp.metadata.js +25 -0
  194. package/src/metadata/front-mcp.metadata.js.map +1 -0
  195. package/src/metadata/index.d.ts +12 -0
  196. package/src/metadata/index.js +16 -0
  197. package/src/metadata/index.js.map +1 -0
  198. package/src/metadata/logger.metadata.d.ts +39 -0
  199. package/src/metadata/logger.metadata.js +10 -0
  200. package/src/metadata/logger.metadata.js.map +1 -0
  201. package/src/metadata/plugin.metadata.d.ts +93 -0
  202. package/src/metadata/plugin.metadata.js +18 -0
  203. package/src/metadata/plugin.metadata.js.map +1 -0
  204. package/src/metadata/prompt.metadata.d.ts +226 -0
  205. package/src/metadata/prompt.metadata.js +27 -0
  206. package/src/metadata/prompt.metadata.js.map +1 -0
  207. package/src/metadata/provider.metadata.d.ts +34 -0
  208. package/src/metadata/provider.metadata.js +20 -0
  209. package/src/metadata/provider.metadata.js.map +1 -0
  210. package/src/metadata/resource.metadata.d.ts +199 -0
  211. package/src/metadata/resource.metadata.js +22 -0
  212. package/src/metadata/resource.metadata.js.map +1 -0
  213. package/src/metadata/tool.metadata.d.ts +278 -0
  214. package/src/metadata/tool.metadata.js +28 -0
  215. package/src/metadata/tool.metadata.js.map +1 -0
  216. package/src/providers/session.provider.d.ts +13 -0
  217. package/src/providers/session.provider.js +27 -0
  218. package/src/providers/session.provider.js.map +1 -0
  219. package/src/records/adapter.record.d.ts +26 -0
  220. package/src/records/adapter.record.js +11 -0
  221. package/src/records/adapter.record.js.map +1 -0
  222. package/src/records/app.record.d.ts +19 -0
  223. package/src/records/app.record.js +9 -0
  224. package/src/records/app.record.js.map +1 -0
  225. package/src/records/auth-provider.record.d.ts +37 -0
  226. package/src/records/auth-provider.record.js +12 -0
  227. package/src/records/auth-provider.record.js.map +1 -0
  228. package/src/records/flow.record.d.ts +11 -0
  229. package/src/records/flow.record.js +8 -0
  230. package/src/records/flow.record.js.map +1 -0
  231. package/src/records/index.d.ts +11 -0
  232. package/src/records/index.js +15 -0
  233. package/src/records/index.js.map +1 -0
  234. package/src/records/logger.record.d.ts +11 -0
  235. package/src/records/logger.record.js +8 -0
  236. package/src/records/logger.record.js.map +1 -0
  237. package/src/records/plugin.record.d.ts +21 -0
  238. package/src/records/plugin.record.js +11 -0
  239. package/src/records/plugin.record.js.map +1 -0
  240. package/src/records/prompt.record.d.ts +18 -0
  241. package/src/records/prompt.record.js +9 -0
  242. package/src/records/prompt.record.js.map +1 -0
  243. package/src/records/provider.record.d.ts +36 -0
  244. package/src/records/provider.record.js +14 -0
  245. package/src/records/provider.record.js.map +1 -0
  246. package/src/records/resource.record.d.ts +18 -0
  247. package/src/records/resource.record.js +14 -0
  248. package/src/records/resource.record.js.map +1 -0
  249. package/src/records/scope.record.d.ts +18 -0
  250. package/src/records/scope.record.js +9 -0
  251. package/src/records/scope.record.js.map +1 -0
  252. package/src/records/tool.record.d.ts +17 -0
  253. package/src/records/tool.record.js +9 -0
  254. package/src/records/tool.record.js.map +1 -0
  255. package/src/schemas/annotated-class.schema.d.ts +11 -0
  256. package/src/schemas/annotated-class.schema.js +40 -0
  257. package/src/schemas/annotated-class.schema.js.map +1 -0
  258. package/src/schemas/http-input.schema.d.ts +33 -0
  259. package/src/schemas/http-input.schema.js +13 -0
  260. package/src/schemas/http-input.schema.js.map +1 -0
  261. package/src/schemas/http-output.schema.d.ts +2011 -0
  262. package/src/schemas/http-output.schema.js +283 -0
  263. package/src/schemas/http-output.schema.js.map +1 -0
  264. package/src/schemas/index.d.ts +3 -0
  265. package/src/schemas/index.js +7 -0
  266. package/src/schemas/index.js.map +1 -0
  267. package/src/tokens/adapter.tokens.d.ts +3 -0
  268. package/src/tokens/adapter.tokens.js +11 -0
  269. package/src/tokens/adapter.tokens.js.map +1 -0
  270. package/src/tokens/app.tokens.d.ts +4 -0
  271. package/src/tokens/app.tokens.js +30 -0
  272. package/src/tokens/app.tokens.js.map +1 -0
  273. package/src/tokens/auth-provider.tokens.d.ts +3 -0
  274. package/src/tokens/auth-provider.tokens.js +12 -0
  275. package/src/tokens/auth-provider.tokens.js.map +1 -0
  276. package/src/tokens/base.tokens.d.ts +5 -0
  277. package/src/tokens/base.tokens.js +9 -0
  278. package/src/tokens/base.tokens.js.map +1 -0
  279. package/src/tokens/flow-hook.tokens.d.ts +4 -0
  280. package/src/tokens/flow-hook.tokens.js +9 -0
  281. package/src/tokens/flow-hook.tokens.js.map +1 -0
  282. package/src/tokens/flow.tokens.d.ts +11 -0
  283. package/src/tokens/flow.tokens.js +16 -0
  284. package/src/tokens/flow.tokens.js.map +1 -0
  285. package/src/tokens/front-mcp.tokens.d.ts +3 -0
  286. package/src/tokens/front-mcp.tokens.js +19 -0
  287. package/src/tokens/front-mcp.tokens.js.map +1 -0
  288. package/src/tokens/index.d.ts +13 -0
  289. package/src/tokens/index.js +17 -0
  290. package/src/tokens/index.js.map +1 -0
  291. package/src/tokens/logger.tokens.d.ts +3 -0
  292. package/src/tokens/logger.tokens.js +11 -0
  293. package/src/tokens/logger.tokens.js.map +1 -0
  294. package/src/tokens/plugin.tokens.d.ts +13 -0
  295. package/src/tokens/plugin.tokens.js +18 -0
  296. package/src/tokens/plugin.tokens.js.map +1 -0
  297. package/src/tokens/prompt.tokens.d.ts +9 -0
  298. package/src/tokens/prompt.tokens.js +14 -0
  299. package/src/tokens/prompt.tokens.js.map +1 -0
  300. package/src/tokens/provider.tokens.d.ts +3 -0
  301. package/src/tokens/provider.tokens.js +12 -0
  302. package/src/tokens/provider.tokens.js.map +1 -0
  303. package/src/tokens/resource.tokens.d.ts +20 -0
  304. package/src/tokens/resource.tokens.js +25 -0
  305. package/src/tokens/resource.tokens.js.map +1 -0
  306. package/src/tokens/server.tokens.d.ts +6 -0
  307. package/src/tokens/server.tokens.js +11 -0
  308. package/src/tokens/server.tokens.js.map +1 -0
  309. package/src/tokens/tool.tokens.d.ts +13 -0
  310. package/src/tokens/tool.tokens.js +18 -0
  311. package/src/tokens/tool.tokens.js.map +1 -0
  312. package/src/types/auth/index.d.ts +2 -0
  313. package/src/types/auth/index.js +6 -0
  314. package/src/types/auth/index.js.map +1 -0
  315. package/src/types/auth/jwt.types.d.ts +112 -0
  316. package/src/types/auth/jwt.types.js +36 -0
  317. package/src/types/auth/jwt.types.js.map +1 -0
  318. package/src/types/auth/session.types.d.ts +263 -0
  319. package/src/types/auth/session.types.js +40 -0
  320. package/src/types/auth/session.types.js.map +1 -0
  321. package/src/types/common.types.d.ts +11 -0
  322. package/src/types/common.types.js +3 -0
  323. package/src/types/common.types.js.map +1 -0
  324. package/src/types/index.d.ts +3 -0
  325. package/src/types/index.js +7 -0
  326. package/src/types/index.js.map +1 -0
  327. package/src/types/options/auth.options.d.ts +513 -0
  328. package/src/types/options/auth.options.js +53 -0
  329. package/src/types/options/auth.options.js.map +1 -0
  330. package/src/types/options/http.options.d.ts +22 -0
  331. package/src/types/options/http.options.js +10 -0
  332. package/src/types/options/http.options.js.map +1 -0
  333. package/src/types/options/index.d.ts +5 -0
  334. package/src/types/options/index.js +9 -0
  335. package/src/types/options/index.js.map +1 -0
  336. package/src/types/options/logging.options.d.ts +39 -0
  337. package/src/types/options/logging.options.js +37 -0
  338. package/src/types/options/logging.options.js.map +1 -0
  339. package/src/types/options/server-info.options.d.ts +48 -0
  340. package/src/types/options/server-info.options.js +13 -0
  341. package/src/types/options/server-info.options.js.map +1 -0
  342. package/src/types/options/session.options.d.ts +67 -0
  343. package/src/types/options/session.options.js +9 -0
  344. package/src/types/options/session.options.js.map +1 -0
  345. package/src/utils/decide-request-intent.utils.d.ts +79 -0
  346. package/src/utils/decide-request-intent.utils.js +326 -0
  347. package/src/utils/decide-request-intent.utils.js.map +1 -0
  348. package/src/utils/index.d.ts +2 -0
  349. package/src/utils/index.js +6 -0
  350. package/src/utils/index.js.map +1 -0
  351. package/src/utils/path.utils.d.ts +20 -0
  352. package/src/utils/path.utils.js +66 -0
  353. package/src/utils/path.utils.js.map +1 -0
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.frontMcpRemoteAppMetadataSchema = exports.frontMcpLocalAppMetadataSchema = void 0;
4
+ const zod_1 = require("zod");
5
+ const types_1 = require("../types");
6
+ const schemas_1 = require("../schemas");
7
+ exports.frontMcpLocalAppMetadataSchema = zod_1.z.object({
8
+ id: zod_1.z.string().optional(),
9
+ name: zod_1.z.string().min(1),
10
+ description: zod_1.z.string().optional(),
11
+ providers: zod_1.z.array(schemas_1.annotatedFrontMcpProvidersSchema).optional().default([]),
12
+ authProviders: zod_1.z.array(schemas_1.annotatedFrontMcpAuthProvidersSchema).optional().default([]),
13
+ plugins: zod_1.z.array(schemas_1.annotatedFrontMcpPluginsSchema).optional(),
14
+ adapters: zod_1.z.array(schemas_1.annotatedFrontMcpAdaptersSchema).optional(),
15
+ tools: zod_1.z.array(schemas_1.annotatedFrontMcpToolsSchema).optional(),
16
+ resources: zod_1.z.array(schemas_1.annotatedFrontMcpResourcesSchema).optional(),
17
+ prompts: zod_1.z.array(schemas_1.annotatedFrontMcpPromptsSchema).optional(),
18
+ auth: types_1.authOptionsSchema.optional(),
19
+ standalone: zod_1.z.union([zod_1.z.literal('includeInParent'), zod_1.z.boolean()]).optional().default(false),
20
+ }).passthrough();
21
+ exports.frontMcpRemoteAppMetadataSchema = zod_1.z.object({
22
+ id: zod_1.z.string().optional(),
23
+ name: zod_1.z.string().min(1),
24
+ description: zod_1.z.string().optional(),
25
+ urlType: zod_1.z.enum(['worker', 'url']),
26
+ url: zod_1.z.string().url(),
27
+ auth: types_1.authOptionsSchema.optional(),
28
+ standalone: zod_1.z.union([zod_1.z.literal('includeInParent'), zod_1.z.boolean()]).optional().default(false),
29
+ }).passthrough();
30
+ //# sourceMappingURL=app.metadata.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app.metadata.js","sourceRoot":"","sources":["../../../src/metadata/app.metadata.ts"],"names":[],"mappings":";;;AAAA,6BAAwB;AACxB,oCAAuE;AAUvE,wCAIoB;AA0FP,QAAA,8BAA8B,GAAG,OAAC,CAAC,MAAM,CAAC;IACrD,EAAE,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACzB,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACvB,WAAW,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,SAAS,EAAE,OAAC,CAAC,KAAK,CAAC,0CAAgC,CAAC,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;IAC3E,aAAa,EAAE,OAAC,CAAC,KAAK,CAAC,8CAAoC,CAAC,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC;IACnF,OAAO,EAAE,OAAC,CAAC,KAAK,CAAC,wCAA8B,CAAC,CAAC,QAAQ,EAAE;IAC3D,QAAQ,EAAE,OAAC,CAAC,KAAK,CAAC,yCAA+B,CAAC,CAAC,QAAQ,EAAE;IAC7D,KAAK,EAAE,OAAC,CAAC,KAAK,CAAC,sCAA4B,CAAC,CAAC,QAAQ,EAAE;IACvD,SAAS,EAAE,OAAC,CAAC,KAAK,CAAC,0CAAgC,CAAC,CAAC,QAAQ,EAAE;IAC/D,OAAO,EAAE,OAAC,CAAC,KAAK,CAAC,wCAA8B,CAAC,CAAC,QAAQ,EAAE;IAC3D,IAAI,EAAE,yBAAiB,CAAC,QAAQ,EAAE;IAClC,UAAU,EAAE,OAAC,CAAC,KAAK,CAAC,CAAC,OAAC,CAAC,OAAO,CAAC,iBAAiB,CAAC,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;CACnD,CAAC,CAAC,WAAW,EAAE,CAAC;AAmD5C,QAAA,+BAA+B,GAAG,OAAC,CAAC,MAAM,CAAC;IACtD,EAAE,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACzB,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACvB,WAAW,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,OAAO,EAAE,OAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IAClC,GAAG,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;IACrB,IAAI,EAAE,yBAAiB,CAAC,QAAQ,EAAE;IAClC,UAAU,EAAE,OAAC,CAAC,KAAK,CAAC,CAAC,OAAC,CAAC,OAAO,CAAC,iBAAiB,CAAC,EAAE,OAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;CAClD,CAAC,CAAC,WAAW,EAAE,CAAC","sourcesContent":["import { z } from 'zod';\nimport { RawZodShape, AuthOptions, authOptionsSchema } from '../types';\nimport {\n ProviderType,\n PromptType,\n ResourceType,\n ToolType,\n AuthProviderType,\n PluginType,\n AdapterType,\n} from '../interfaces';\nimport {\n annotatedFrontMcpAdaptersSchema, annotatedFrontMcpAuthProvidersSchema,\n annotatedFrontMcpPluginsSchema, annotatedFrontMcpPromptsSchema,\n annotatedFrontMcpProvidersSchema, annotatedFrontMcpResourcesSchema, annotatedFrontMcpToolsSchema,\n} from '../schemas';\n\n\n/**\n * Declarative metadata describing what a local mcp app contributes at app scope.\n *\n * Includes dependency providers, app-scoped plugins, adapters (that can\n * generate tools/resources/prompts from external definitions), and any\n * inline tools authored in the app. Adapter-generated items inherit the\n * app’s plugins and policies and are tagged with provenance.\n */\nexport interface LocalAppMetadata {\n /**\n * Human-friendly name for this app as shown in UIs, logs, and describe reports.\n * Keep it short, stable, and unique within a gateway (consider prefixes).\n */\n id?: string;\n /**\n * Human-friendly name for this app as shown in UIs, logs, and describe reports.\n * Keep it short, stable, and unique within a gateway (consider prefixes).\n */\n name: string;\n\n /**\n * Optional longer explanation of what the app does and what it exposes.\n * Used for documentation, describe reports, and UIs. Avoid secrets/PII.\n */\n description?: string;\n\n /**\n * Named singleton (or scoped-singleton) dependencies used by tools/plugins at runtime\n * — e.g., config, database pools, Redis clients, queues, KMS.\n *\n * Resolution is hierarchical (tool → app → gateway). Providers may depend on\n * other providers and are usually initialized lazily on first use.\n */\n providers?: ProviderType[];\n\n /**\n * Named singleton / session auth provider to be used by tools/plugins at runtime\n * — e.g., GithubAuthProvider, GoogleAuthProvider, etc.\n *\n * Note: this is different from providers, which are used for calling fetch request\n * with specific auth context headers.\n *\n * Resolution is hierarchical (tool → app → gateway). Providers may depend on\n * other providers and are usually initialized lazily on first use.\n */\n authProviders?: AuthProviderType[];\n\n /**\n * App-scoped plugins that participate in lifecycle events and can contribute\n * additional capabilities (tools, resources, prompts, providers, adapters).\n * Use plugins to enforce policy, auth, PII reduction, tracing, etc.\n */\n plugins?: PluginType[];\n\n /**\n * Adapters attached to this app that convert external definitions or sources\n * (e.g., OpenAPI, Lambda, Custom) into generated tools/resources/prompts.\n * Common options include include/exclude filters, name prefixes, base URLs,\n * and authentication (often provided by plugins).\n */\n adapters?: AdapterType[];\n\n /**\n * Inline tools authored by this app (via builder or class). These are active\n * actions with input/output schemas that the model can call. Tools generated\n * by adapters do not need to be listed here.\n */\n tools?: ToolType[];\n resources?: ResourceType[];\n prompts?: PromptType[];\n\n\n /**\n * Configures the app's default authentication provider.\n * If not provided, the app will use the gateway's default auth provider.\n */\n auth?: AuthOptions;\n\n /**\n * If true, the app will NOT be included and will act as a separated scope.\n * If false, the app will be included in MultiApp frontmcp server.\n * If 'includeInParent', the app will be included in the gateway's\n * standalone app list and will act as a separated scope under the appName prefix\n */\n standalone?: 'includeInParent' | boolean;\n}\n\nexport const frontMcpLocalAppMetadataSchema = z.object({\n id: z.string().optional(),\n name: z.string().min(1),\n description: z.string().optional(),\n providers: z.array(annotatedFrontMcpProvidersSchema).optional().default([]),\n authProviders: z.array(annotatedFrontMcpAuthProvidersSchema).optional().default([]),\n plugins: z.array(annotatedFrontMcpPluginsSchema).optional(),\n adapters: z.array(annotatedFrontMcpAdaptersSchema).optional(),\n tools: z.array(annotatedFrontMcpToolsSchema).optional(),\n resources: z.array(annotatedFrontMcpResourcesSchema).optional(),\n prompts: z.array(annotatedFrontMcpPromptsSchema).optional(),\n auth: authOptionsSchema.optional(),\n standalone: z.union([z.literal('includeInParent'), z.boolean()]).optional().default(false),\n} satisfies RawZodShape<LocalAppMetadata>).passthrough();\n\n\n/**\n * Declarative metadata describing what a remote encapsulated mcp app.\n */\nexport interface RemoteAppMetadata {\n /**\n * Human-friendly name for this app as shown in UIs, logs, and describe reports.\n * Keep it short, stable, and unique within a gateway (consider prefixes).\n */\n id?: string;\n /**\n * Human-friendly name for this app as shown in UIs, logs, and describe reports.\n * Keep it short, stable, and unique within a gateway (consider prefixes).\n */\n name: string;\n\n /**\n * Optional longer explanation of what the app does and what it exposes.\n * Used for documentation, describe reports, and UIs. Avoid secrets/PII.\n */\n description?: string;\n\n /**\n * The type of the remote app.\n * - 'worker': The remote app is a worker file.\n * - 'url': The remote app is a remote URL.\n */\n urlType: 'worker' | 'url';\n /**\n * The URL of the remote app. This can be a local worker file or a remote URL.\n */\n url: string;\n\n /**\n * Configures the app's default authentication provider.\n * If not provided, the app will use the gateway's default auth provider.\n */\n auth?: AuthOptions;\n\n /**\n * If true, the app will NOT be included and will act as a separated scope.\n * If false, the app will be included in MultiApp frontmcp server.\n * If 'includeInParent', the app will be included in the gateway's\n * standalone app list and will act as a separated scope under the appName prefix\n */\n standalone: 'includeInParent' | boolean;\n\n}\n\nexport const frontMcpRemoteAppMetadataSchema = z.object({\n id: z.string().optional(),\n name: z.string().min(1),\n description: z.string().optional(),\n urlType: z.enum(['worker', 'url']),\n url: z.string().url(),\n auth: authOptionsSchema.optional(),\n standalone: z.union([z.literal('includeInParent'), z.boolean()]).optional().default(false),\n} satisfies RawZodShape<RemoteAppMetadata>).passthrough();\n\n\nexport type AppMetadata = LocalAppMetadata | RemoteAppMetadata;\n"]}
@@ -0,0 +1,33 @@
1
+ import { z } from 'zod';
2
+ /**
3
+ * Declarative metadata describing what a FrontMcpProvider contributes at app scope.
4
+ */
5
+ export interface AuthProviderMetadata {
6
+ id?: string;
7
+ name: string;
8
+ description?: string;
9
+ scope?: AuthProviderScope;
10
+ }
11
+ /**
12
+ * Provider lifetime scope semantics.
13
+ */
14
+ export declare enum AuthProviderScope {
15
+ GLOBAL = "global",
16
+ SESSION = "session"
17
+ }
18
+ export declare const frontMcpAuthProviderMetadataSchema: z.ZodObject<{
19
+ id: z.ZodOptional<z.ZodString>;
20
+ name: z.ZodString;
21
+ description: z.ZodOptional<z.ZodString>;
22
+ scope: z.ZodDefault<z.ZodOptional<z.ZodNativeEnum<typeof AuthProviderScope>>>;
23
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
24
+ id: z.ZodOptional<z.ZodString>;
25
+ name: z.ZodString;
26
+ description: z.ZodOptional<z.ZodString>;
27
+ scope: z.ZodDefault<z.ZodOptional<z.ZodNativeEnum<typeof AuthProviderScope>>>;
28
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
29
+ id: z.ZodOptional<z.ZodString>;
30
+ name: z.ZodString;
31
+ description: z.ZodOptional<z.ZodString>;
32
+ scope: z.ZodDefault<z.ZodOptional<z.ZodNativeEnum<typeof AuthProviderScope>>>;
33
+ }, z.ZodTypeAny, "passthrough">>;
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.frontMcpAuthProviderMetadataSchema = exports.AuthProviderScope = void 0;
4
+ const zod_1 = require("zod");
5
+ /**
6
+ * Provider lifetime scope semantics.
7
+ */
8
+ var AuthProviderScope;
9
+ (function (AuthProviderScope) {
10
+ AuthProviderScope["GLOBAL"] = "global";
11
+ AuthProviderScope["SESSION"] = "session";
12
+ })(AuthProviderScope || (exports.AuthProviderScope = AuthProviderScope = {}));
13
+ exports.frontMcpAuthProviderMetadataSchema = zod_1.z.object({
14
+ id: zod_1.z.string().optional(),
15
+ name: zod_1.z.string().min(1),
16
+ description: zod_1.z.string().optional(),
17
+ scope: zod_1.z.nativeEnum(AuthProviderScope).optional().default(AuthProviderScope.GLOBAL),
18
+ }).passthrough();
19
+ //# sourceMappingURL=auth-provider.metadata.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth-provider.metadata.js","sourceRoot":"","sources":["../../../src/metadata/auth-provider.metadata.ts"],"names":[],"mappings":";;;AAAA,6BAAwB;AAaxB;;GAEG;AACH,IAAY,iBAGX;AAHD,WAAY,iBAAiB;IAC3B,sCAAiB,CAAA;IACjB,wCAAmB,CAAA;AACrB,CAAC,EAHW,iBAAiB,iCAAjB,iBAAiB,QAG5B;AAEY,QAAA,kCAAkC,GAAG,OAAC,CAAC,MAAM,CAAC;IACzD,EAAE,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACzB,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACvB,WAAW,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,KAAK,EAAE,OAAC,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,iBAAiB,CAAC,MAAM,CAAC;CACxC,CAAC,CAAC,WAAW,EAAE,CAAC","sourcesContent":["import { z } from 'zod';\nimport { RawZodShape } from '../types';\n\n/**\n * Declarative metadata describing what a FrontMcpProvider contributes at app scope.\n */\nexport interface AuthProviderMetadata {\n id?: string;\n name: string;\n description?: string;\n scope?: AuthProviderScope;\n}\n\n/**\n * Provider lifetime scope semantics.\n */\nexport enum AuthProviderScope {\n GLOBAL = 'global',\n SESSION = 'session',\n}\n\nexport const frontMcpAuthProviderMetadataSchema = z.object({\n id: z.string().optional(),\n name: z.string().min(1),\n description: z.string().optional(),\n scope: z.nativeEnum(AuthProviderScope).optional().default(AuthProviderScope.GLOBAL),\n} satisfies RawZodShape<AuthProviderMetadata>).passthrough();\n"]}
@@ -0,0 +1,20 @@
1
+ export type FlowHookKind = 'stage' | 'will' | 'did' | 'around';
2
+ export type FlowHookMetadata<Ctx = any> = {
3
+ type: 'flow';
4
+ hooks: FlowHookMeta<Ctx>[];
5
+ };
6
+ export type FlowHookMeta<Ctx = any> = {
7
+ kind: FlowHookKind;
8
+ stage: string;
9
+ method: string;
10
+ priority?: number;
11
+ filter?: (ctx: Ctx) => boolean | Promise<boolean>;
12
+ static?: boolean;
13
+ };
14
+ export type HookKind = 'stage' | 'will' | 'did' | 'around';
15
+ export type Priority = number;
16
+ export interface FlowHookOptions<Ctx> {
17
+ priority?: Priority;
18
+ filter?: (ctx: Ctx) => boolean | Promise<boolean>;
19
+ name?: string;
20
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=flow-hooks.metadata.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flow-hooks.metadata.js","sourceRoot":"","sources":["../../../src/metadata/flow-hooks.metadata.ts"],"names":[],"mappings":"","sourcesContent":["export type FlowHookKind = 'stage' | 'will' | 'did' | 'around';\n\nexport type FlowHookMetadata<Ctx = any> = {\n type: 'flow';\n hooks: FlowHookMeta<Ctx>[];\n};\n\nexport type FlowHookMeta<Ctx = any> = {\n kind: FlowHookKind;\n stage: string;\n method: string;\n priority?: number;\n filter?: (ctx: Ctx) => boolean | Promise<boolean>;\n static?: boolean;\n};\n\n\nexport type HookKind = 'stage' | 'will' | 'did' | 'around';\nexport type Priority = number;\n\nexport interface FlowHookOptions<Ctx> {\n priority?: Priority;\n filter?: (ctx: Ctx) => boolean | Promise<boolean>;\n name?: string;\n}"]}
@@ -0,0 +1,75 @@
1
+ import { z } from 'zod';
2
+ import { HttpMethod, ServerRequest, Token } from '../interfaces';
3
+ import { ScopeEntry } from '../entries';
4
+ declare global {
5
+ export interface ExtendFlows {
6
+ }
7
+ }
8
+ export type FlowName = keyof ExtendFlows;
9
+ export type CanActivateFlow = (request: ServerRequest, scope: ScopeEntry) => Promise<boolean>;
10
+ export interface FlowMiddlewareOptions {
11
+ path?: RegExp | string;
12
+ method?: HttpMethod;
13
+ canActivate?: CanActivateFlow[];
14
+ }
15
+ export type FlowRunOptions<Ctx, Plan extends FlowPlan<string>, Input, Output extends (z.ZodObject<any> | z.ZodUnion<any> | z.ZodDiscriminatedUnion<any, any>), State extends z.ZodObject<any>> = {
16
+ ctx: Ctx;
17
+ plan: Plan;
18
+ input: Input;
19
+ output: Output;
20
+ state: State;
21
+ stage: StagesFromPlan<Plan>;
22
+ };
23
+ /**
24
+ * Declarative metadata describing what a FrontMcpFlow contributes at app scope.
25
+ */
26
+ export interface FlowMetadata<Name extends FlowName> {
27
+ name: Name;
28
+ description?: string;
29
+ plan: FlowPlan<ExtendFlows[Name]['stage']>;
30
+ inputSchema: ExtendFlows[Name]['input'];
31
+ outputSchema: ExtendFlows[Name]['output'];
32
+ access: 'public' | 'authorized';
33
+ dependsOn?: Token[];
34
+ middleware?: FlowMiddlewareOptions;
35
+ }
36
+ export type StepInfo = string | {
37
+ title?: string;
38
+ description?: string;
39
+ };
40
+ export type FlowPhase = 'pre' | 'execute' | 'post' | 'finalize' | 'error';
41
+ type Values<T> = T[keyof T];
42
+ type ArrayElem<T> = T extends ReadonlyArray<infer U> ? U : never;
43
+ export type StagesFromPlan<P extends FlowPlan<string>> = ArrayElem<Values<Required<P>>>;
44
+ export type FlowPlan<Base extends string> = {
45
+ steps?: Record<Base, StepInfo>;
46
+ } & Partial<Record<FlowPhase, Base[]>>;
47
+ export declare const frontMcpFlowMetadataSchema: z.ZodObject<{
48
+ name: z.ZodString;
49
+ description: z.ZodOptional<z.ZodString>;
50
+ access: z.ZodDefault<z.ZodOptional<z.ZodEnum<["public", "authorized"]>>>;
51
+ inputSchema: z.ZodType<Object, z.ZodTypeDef, Object>;
52
+ outputSchema: z.ZodOptional<z.ZodType<Object, z.ZodTypeDef, Object>>;
53
+ plan: z.ZodType<Object, z.ZodTypeDef, Object>;
54
+ dependsOn: z.ZodOptional<z.ZodArray<z.ZodAny, "many">>;
55
+ middleware: z.ZodOptional<z.ZodType<Object, z.ZodTypeDef, Object>>;
56
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
57
+ name: z.ZodString;
58
+ description: z.ZodOptional<z.ZodString>;
59
+ access: z.ZodDefault<z.ZodOptional<z.ZodEnum<["public", "authorized"]>>>;
60
+ inputSchema: z.ZodType<Object, z.ZodTypeDef, Object>;
61
+ outputSchema: z.ZodOptional<z.ZodType<Object, z.ZodTypeDef, Object>>;
62
+ plan: z.ZodType<Object, z.ZodTypeDef, Object>;
63
+ dependsOn: z.ZodOptional<z.ZodArray<z.ZodAny, "many">>;
64
+ middleware: z.ZodOptional<z.ZodType<Object, z.ZodTypeDef, Object>>;
65
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
66
+ name: z.ZodString;
67
+ description: z.ZodOptional<z.ZodString>;
68
+ access: z.ZodDefault<z.ZodOptional<z.ZodEnum<["public", "authorized"]>>>;
69
+ inputSchema: z.ZodType<Object, z.ZodTypeDef, Object>;
70
+ outputSchema: z.ZodOptional<z.ZodType<Object, z.ZodTypeDef, Object>>;
71
+ plan: z.ZodType<Object, z.ZodTypeDef, Object>;
72
+ dependsOn: z.ZodOptional<z.ZodArray<z.ZodAny, "many">>;
73
+ middleware: z.ZodOptional<z.ZodType<Object, z.ZodTypeDef, Object>>;
74
+ }, z.ZodTypeAny, "passthrough">>;
75
+ export {};
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.frontMcpFlowMetadataSchema = void 0;
4
+ const zod_1 = require("zod");
5
+ exports.frontMcpFlowMetadataSchema = zod_1.z.object({
6
+ name: zod_1.z.string().min(1),
7
+ description: zod_1.z.string().optional(),
8
+ access: zod_1.z.enum(['public', 'authorized']).optional().default('public'),
9
+ inputSchema: zod_1.z.instanceof(Object),
10
+ outputSchema: zod_1.z.instanceof(Object).optional(),
11
+ plan: zod_1.z.instanceof(Object),
12
+ dependsOn: zod_1.z.array(zod_1.z.any()).optional(),
13
+ middleware: zod_1.z.instanceof(Object).optional(),
14
+ }).passthrough();
15
+ //# sourceMappingURL=flow.metadata.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"flow.metadata.js","sourceRoot":"","sources":["../../../src/metadata/flow.metadata.ts"],"names":[],"mappings":";;;AAAA,6BAAsB;AA0DT,QAAA,0BAA0B,GAAG,OAAC,CAAC,MAAM,CAAC;IACjD,IAAI,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACvB,WAAW,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAClC,MAAM,EAAE,OAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC;IACrE,WAAW,EAAE,OAAC,CAAC,UAAU,CAAC,MAAM,CAAC;IACjC,YAAY,EAAE,OAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE;IAC7C,IAAI,EAAE,OAAC,CAAC,UAAU,CAAC,MAAM,CAAC;IAC1B,SAAS,EAAE,OAAC,CAAC,KAAK,CAAC,OAAC,CAAC,GAAG,EAAE,CAAC,CAAC,QAAQ,EAAE;IACtC,UAAU,EAAE,OAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE;CACD,CAAC,CAAC,WAAW,EAAE,CAAC","sourcesContent":["import {z} from 'zod';\nimport {RawZodShape} from '../types';\nimport {HttpMethod, ServerRequest, Token} from '../interfaces';\nimport {ScopeEntry} from '../entries';\n\ndeclare global {\n // eslint-disable-next-line\n export interface ExtendFlows {\n\n }\n}\n\nexport type FlowName = keyof ExtendFlows;\n\nexport type CanActivateFlow = (request: ServerRequest, scope: ScopeEntry) => Promise<boolean>;\n\nexport interface FlowMiddlewareOptions {\n path?: RegExp | string; // string can be \"/test/**\" or \"/test/*/asds\", default to all paths\n method?: HttpMethod; // default to all methods\n canActivate?: CanActivateFlow[];\n}\n\nexport type FlowRunOptions<Ctx, Plan extends FlowPlan<string>, Input, Output extends (z.ZodObject<any> | z.ZodUnion<any> | z.ZodDiscriminatedUnion<any, any>), State extends z.ZodObject<any>> = {\n ctx: Ctx;\n plan: Plan;\n input: Input;\n output: Output;\n state: State;\n stage: StagesFromPlan<Plan>;\n}\n\n/**\n * Declarative metadata describing what a FrontMcpFlow contributes at app scope.\n */\nexport interface FlowMetadata<Name extends FlowName> {\n name: Name;\n description?: string;\n plan: FlowPlan<ExtendFlows[Name]['stage']>;\n inputSchema: ExtendFlows[Name]['input'];\n outputSchema: ExtendFlows[Name]['output'];\n access: 'public' | 'authorized';\n dependsOn?: Token[];\n middleware?: FlowMiddlewareOptions;\n}\n\n\nexport type StepInfo = string | { title?: string; description?: string; };\nexport type FlowPhase = 'pre' | 'execute' | 'post' | 'finalize' | 'error';\ntype Values<T> = T[keyof T];\ntype ArrayElem<T> = T extends ReadonlyArray<infer U> ? U : never;\n\nexport type StagesFromPlan<P extends FlowPlan<string>> = ArrayElem<Values<Required<P>>>;\n\nexport type FlowPlan<Base extends string> = {\n steps?: Record<Base, StepInfo>;\n} & Partial<Record<FlowPhase, Base[]>>;\n\n\nexport const frontMcpFlowMetadataSchema = z.object({\n name: z.string().min(1),\n description: z.string().optional(),\n access: z.enum(['public', 'authorized']).optional().default('public'),\n inputSchema: z.instanceof(Object),\n outputSchema: z.instanceof(Object).optional(),\n plan: z.instanceof(Object),\n dependsOn: z.array(z.any()).optional(),\n middleware: z.instanceof(Object).optional(),\n} satisfies RawZodShape<FlowMetadata<never>>).passthrough();\n"]}