@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,33 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Auth = exports.FrontMcpAuth = void 0;
4
+ const utils_1 = require("../../utils");
5
+ /**
6
+ * Base class for primary auth provider.
7
+ * Used for easy access current auth context by dependency injection.
8
+ *
9
+ * In tool context, you can access current auth context by calling:
10
+ * this.get(FrontMcpAuth) | this.get(Auth)
11
+ *
12
+ * Or in session scoped Providers in constructor arguments:
13
+ * constructor(private readonly auth: FrontMcpAuth) {
14
+ * // auth.fetch('MY endpoint ')
15
+ * }
16
+ */
17
+ class FrontMcpAuth {
18
+ ready;
19
+ options;
20
+ id;
21
+ constructor(options) {
22
+ this.options = options;
23
+ if (options.type === 'local') {
24
+ this.id = options.id;
25
+ }
26
+ else {
27
+ this.id = options.id ?? (0, utils_1.urlToSafeId)(options.baseUrl);
28
+ }
29
+ }
30
+ }
31
+ exports.FrontMcpAuth = FrontMcpAuth;
32
+ exports.Auth = FrontMcpAuth;
33
+ //# sourceMappingURL=primary-auth-provider.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"primary-auth-provider.interface.js","sourceRoot":"","sources":["../../../../src/interfaces/internal/primary-auth-provider.interface.ts"],"names":[],"mappings":";;;AAEA,uCAA0C;AAG1C;;;;;;;;;;;GAWG;AACH,MAAsB,YAAY;IAChC,KAAK,CAAgB;IACZ,OAAO,CAAc;IACrB,EAAE,CAAS;IAEpB,YAAY,OAAoB;QAC9B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,OAAO,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YAC7B,IAAI,CAAC,EAAE,GAAG,OAAO,CAAC,EAAE,CAAC;QACvB,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,EAAE,GAAG,OAAO,CAAC,EAAE,IAAI,IAAA,mBAAW,EAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACvD,CAAC;IAEH,CAAC;CAOF;AApBD,oCAoBC;AAGiB,4BAAI","sourcesContent":["import { ServerRequest } from '../server.interface';\nimport { AuthOptions } from '../../types';\nimport { urlToSafeId } from '../../utils';\n\n\n/**\n * Base class for primary auth provider.\n * Used for easy access current auth context by dependency injection.\n *\n * In tool context, you can access current auth context by calling:\n * this.get(FrontMcpAuth) | this.get(Auth)\n *\n * Or in session scoped Providers in constructor arguments:\n * constructor(private readonly auth: FrontMcpAuth) {\n * // auth.fetch('MY endpoint ')\n * }\n */\nexport abstract class FrontMcpAuth {\n ready: Promise<void>;\n readonly options: AuthOptions;\n readonly id: string;\n\n constructor(options: AuthOptions) {\n this.options = options;\n if (options.type === 'local') {\n this.id = options.id;\n } else {\n this.id = options.id ?? urlToSafeId(options.baseUrl);\n }\n\n }\n\n abstract fetch(input: RequestInfo | URL, init?: RequestInit): Promise<Response>;\n\n abstract validate(request: ServerRequest): Promise<void>\n\n abstract get issuer(): string\n}\n\nexport {\n FrontMcpAuth as Auth,\n};"]}
@@ -0,0 +1,71 @@
1
+ import { ScopeEntry, FlowEntry, AuthProviderEntry, AppEntry, ProviderEntry, PluginEntry, AdapterEntry, PromptEntry, ResourceEntry, ToolEntry, LoggerEntry } from '../../entries';
2
+ import { Token } from '../base.interface';
3
+ import { EntryOwnerRef } from '../../entries/base.entry';
4
+ import { FrontMcpAuth } from './primary-auth-provider.interface';
5
+ import { FlowName } from '../../metadata';
6
+ export interface ScopeRegistryInterface {
7
+ getScopes(): ScopeEntry[];
8
+ }
9
+ export interface FlowRegistryInterface {
10
+ getFlows(): FlowEntry<FlowName>[];
11
+ }
12
+ export interface ProviderViews {
13
+ /** App-wide singletons, created at boot. Immutable from invoke’s POV. */
14
+ global: ReadonlyMap<Token, unknown>;
15
+ /** Session-scoped cache for this sessionId. Mutable. */
16
+ session: Map<Token, unknown>;
17
+ /** Request-scoped providers for this single invocation. Mutable. */
18
+ request: Map<Token, unknown>;
19
+ }
20
+ export interface ProviderRegistryInterface {
21
+ get<T>(token: Token<T>): T;
22
+ getProviders(): ProviderEntry[];
23
+ getRegistries<T extends RegistryKind>(type: T): RegistryType[T][];
24
+ buildViews(session: any): Promise<ProviderViews>;
25
+ }
26
+ export interface AuthRegistryInterface {
27
+ getPrimary(): FrontMcpAuth;
28
+ getAuthProviders(): AuthProviderEntry[];
29
+ }
30
+ export interface AppRegistryInterface {
31
+ getApps(): AppEntry[];
32
+ }
33
+ export interface PluginRegistryInterface {
34
+ getPlugins(): PluginEntry[];
35
+ }
36
+ export interface AdapterRegistryInterface {
37
+ getAdapters(): AdapterEntry[];
38
+ }
39
+ export interface ToolRegistryInterface {
40
+ owner: EntryOwnerRef;
41
+ getTools(includeHidden?: boolean): ToolEntry<any, any>[];
42
+ getInlineTools(): ToolEntry<any, any>[];
43
+ }
44
+ export interface ResourceRegistryInterface {
45
+ getResources(): ResourceEntry<any, any>[];
46
+ getInlineResources(): ResourceEntry<any, any>[];
47
+ }
48
+ export interface PromptRegistryInterface {
49
+ getPrompts(): PromptEntry[];
50
+ getInlinePrompts(): PromptEntry[];
51
+ }
52
+ export interface LoggerRegistryInterface {
53
+ getLoggers(): LoggerEntry[];
54
+ }
55
+ export type GlobalRegistryKind = 'LoggerRegistry' | 'ScopeRegistry';
56
+ export type ScopedRegistryKind = 'AppRegistry' | 'AuthRegistry' | 'FlowRegistry';
57
+ export type AppRegistryKind = 'ProviderRegistry' | 'PluginRegistry' | 'AdapterRegistry' | 'ToolRegistry' | 'PromptRegistry' | 'ResourceRegistry';
58
+ export type RegistryKind = GlobalRegistryKind | ScopedRegistryKind | AppRegistryKind;
59
+ export type RegistryType = {
60
+ LoggerRegistry: LoggerRegistryInterface;
61
+ ScopeRegistry: ScopeRegistryInterface;
62
+ FlowRegistry: FlowRegistryInterface;
63
+ AppRegistry: AppRegistryInterface;
64
+ AuthRegistry: AuthRegistryInterface;
65
+ ProviderRegistry: ProviderRegistryInterface;
66
+ PluginRegistry: PluginRegistryInterface;
67
+ AdapterRegistry: AdapterRegistryInterface;
68
+ ToolRegistry: ToolRegistryInterface;
69
+ ResourceRegistry: ResourceRegistryInterface;
70
+ PromptRegistry: PromptRegistryInterface;
71
+ };
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=registry.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.interface.js","sourceRoot":"","sources":["../../../../src/interfaces/internal/registry.interface.ts"],"names":[],"mappings":"","sourcesContent":["import {\n ScopeEntry,\n FlowEntry,\n AuthProviderEntry,\n AppEntry,\n ProviderEntry,\n PluginEntry,\n AdapterEntry,\n PromptEntry,\n ResourceEntry,\n ToolEntry, LoggerEntry,\n} from '../../entries';\nimport { Token } from '../base.interface';\nimport { EntryOwnerRef } from '../../entries/base.entry';\nimport { FrontMcpAuth } from './primary-auth-provider.interface';\nimport { FlowName } from '../../metadata';\n\nexport interface ScopeRegistryInterface {\n getScopes(): ScopeEntry[];\n}\n\nexport interface FlowRegistryInterface {\n getFlows(): FlowEntry<FlowName>[];\n}\n\n\nexport interface ProviderViews {\n /** App-wide singletons, created at boot. Immutable from invoke’s POV. */\n global: ReadonlyMap<Token, unknown>;\n /** Session-scoped cache for this sessionId. Mutable. */\n session: Map<Token, unknown>;\n /** Request-scoped providers for this single invocation. Mutable. */\n request: Map<Token, unknown>;\n}\n\n\nexport interface ProviderRegistryInterface {\n get<T>(token: Token<T>): T;\n\n getProviders(): ProviderEntry[];\n\n getRegistries<T extends RegistryKind>(type: T): RegistryType[T][];\n\n // TODO: fix session type\n buildViews(session: any): Promise<ProviderViews>;\n}\n\nexport interface AuthRegistryInterface {\n getPrimary(): FrontMcpAuth;\n\n getAuthProviders(): AuthProviderEntry[];\n}\n\nexport interface AppRegistryInterface {\n getApps(): AppEntry[];\n}\n\nexport interface PluginRegistryInterface {\n getPlugins(): PluginEntry[];\n\n //\n // // nested adapters\n // getAdapters(): AdapterEntry[];\n //\n // // plugin tools plus nested adapter's tools\n // getTools(): ToolEntry<any, any>[];\n //\n // // plugin resources plus nested adapter's tools\n // getResources(): ResourceEntry[];\n //\n // // plugin prompts plus nested adapter's tools\n // getPrompts(): PromptEntry[];\n}\n\nexport interface AdapterRegistryInterface {\n getAdapters(): AdapterEntry[];\n\n //\n // // nested tools\n // getTools(): ToolEntry<any, any>[];\n //\n // getResources(): ResourceEntry[];\n //\n // getPrompts(): PromptEntry[];\n}\n\nexport interface ToolRegistryInterface {\n owner: EntryOwnerRef;\n\n // inline tools plus discovered by nested tool registries\n getTools(includeHidden?:boolean): ToolEntry<any, any>[];\n\n // inline tools only\n getInlineTools(): ToolEntry<any, any>[];\n}\n\n\nexport interface ResourceRegistryInterface {\n // inline resources plus discovered by nested tool registries\n getResources(): ResourceEntry<any, any>[];\n\n // inline resources only\n getInlineResources(): ResourceEntry<any, any>[];\n}\n\n\nexport interface PromptRegistryInterface {\n // inline prompts plus discovered by nested tool registries\n getPrompts(): PromptEntry[];\n\n // inline prompts only\n getInlinePrompts(): PromptEntry[];\n}\n\n\nexport interface LoggerRegistryInterface {\n getLoggers(): LoggerEntry[];\n\n}\n\n\nexport type GlobalRegistryKind =\n | 'LoggerRegistry'\n | 'ScopeRegistry'\n\nexport type ScopedRegistryKind =\n | 'AppRegistry'\n | 'AuthRegistry'\n | 'FlowRegistry'\n\nexport type AppRegistryKind =\n | 'ProviderRegistry'\n | 'PluginRegistry'\n | 'AdapterRegistry'\n | 'ToolRegistry'\n | 'PromptRegistry'\n | 'ResourceRegistry'\n\n\nexport type RegistryKind = GlobalRegistryKind | ScopedRegistryKind | AppRegistryKind;\n\nexport type RegistryType = {\n LoggerRegistry: LoggerRegistryInterface;\n ScopeRegistry: ScopeRegistryInterface;\n FlowRegistry: FlowRegistryInterface;\n AppRegistry: AppRegistryInterface;\n AuthRegistry: AuthRegistryInterface,\n ProviderRegistry: ProviderRegistryInterface;\n PluginRegistry: PluginRegistryInterface;\n AdapterRegistry: AdapterRegistryInterface;\n ToolRegistry: ToolRegistryInterface;\n ResourceRegistry: ResourceRegistryInterface;\n PromptRegistry: PromptRegistryInterface;\n}"]}
@@ -0,0 +1,42 @@
1
+ import { Type } from './base.interface';
2
+ import { LogLevel } from '../types';
3
+ export interface LogRecord {
4
+ level: LogLevel;
5
+ levelName: string;
6
+ message: string;
7
+ args: unknown[];
8
+ timestamp: Date;
9
+ prefix: string;
10
+ }
11
+ export type LogFn = (msg?: any, ...args: any[]) => void;
12
+ export declare abstract class LogTransportInterface {
13
+ abstract log(rec: LogRecord): void;
14
+ }
15
+ export type LogTransportType<T = any> = Type<T>;
16
+ export declare abstract class FrontMcpLogger {
17
+ abstract child(prefix: string): FrontMcpLogger;
18
+ /**
19
+ * Verbose — extremely granular, high-volume logs useful when diagnosing tricky bugs
20
+ * (function entry/exit, detailed branches, low-level I/O). Disable in most environments.
21
+ */
22
+ abstract get verbose(): ((...args: any[]) => void);
23
+ /**
24
+ * Debug — development-focused diagnostics (state changes, computed values, API request params),
25
+ * still fairly verbose but less noisy than TRACE. Typically disabled in production.
26
+ */
27
+ abstract get debug(): ((...args: any[]) => void);
28
+ /**
29
+ * Info — key milestones in normal operation (server start, feature toggles, user actions,
30
+ * successful requests). Safe to keep enabled in production.
31
+ */
32
+ abstract get info(): ((...args: any[]) => void);
33
+ /**
34
+ * Warn — unexpected or suboptimal situations that the system handled and continued
35
+ * (fallbacks, retries, partial failures). Worth investigating but not service-breaking.
36
+ */
37
+ abstract get warn(): ((...args: any[]) => void);
38
+ /**
39
+ * Error — failures where an operation could not complete or data is invalid,
40
+ */
41
+ abstract get error(): ((...args: any[]) => void);
42
+ }
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FrontMcpLogger = exports.LogTransportInterface = void 0;
4
+ class LogTransportInterface {
5
+ }
6
+ exports.LogTransportInterface = LogTransportInterface;
7
+ class FrontMcpLogger {
8
+ }
9
+ exports.FrontMcpLogger = FrontMcpLogger;
10
+ //# sourceMappingURL=logger.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.interface.js","sourceRoot":"","sources":["../../../src/interfaces/logger.interface.ts"],"names":[],"mappings":";;;AAeA,MAAsB,qBAAqB;CAE1C;AAFD,sDAEC;AAOD,MAAsB,cAAc;CAgCnC;AAhCD,wCAgCC","sourcesContent":["import { Type } from './base.interface';\nimport { LogLevel } from '../types';\n\n\nexport interface LogRecord {\n level: LogLevel;\n levelName: string;\n message: string;\n args: unknown[];\n timestamp: Date;\n prefix: string;\n}\n\nexport type LogFn = (msg?: any, ...args: any[]) => void;\n\nexport abstract class LogTransportInterface {\n abstract log(rec: LogRecord): void\n}\n\n\nexport type LogTransportType<T = any> =\n | Type<T>\n\n\nexport abstract class FrontMcpLogger {\n abstract child(prefix: string): FrontMcpLogger;\n\n /**\n * Verbose — extremely granular, high-volume logs useful when diagnosing tricky bugs\n * (function entry/exit, detailed branches, low-level I/O). Disable in most environments.\n */\n abstract get verbose(): ((...args: any[]) => void);\n\n /**\n * Debug — development-focused diagnostics (state changes, computed values, API request params),\n * still fairly verbose but less noisy than TRACE. Typically disabled in production.\n */\n abstract get debug(): ((...args: any[]) => void);\n\n /**\n * Info — key milestones in normal operation (server start, feature toggles, user actions,\n * successful requests). Safe to keep enabled in production.\n */\n abstract get info(): ((...args: any[]) => void);\n\n /**\n * Warn — unexpected or suboptimal situations that the system handled and continued\n * (fallbacks, retries, partial failures). Worth investigating but not service-breaking.\n */\n abstract get warn(): ((...args: any[]) => void);\n\n /**\n * Error — failures where an operation could not complete or data is invalid,\n */\n abstract get error(): ((...args: any[]) => void);\n\n}\n"]}
@@ -0,0 +1,8 @@
1
+ import { Type, Token, ValueType, ClassType, FactoryType } from './base.interface';
2
+ import { PluginMetadata } from '../metadata';
3
+ export interface PluginInterface {
4
+ }
5
+ export type PluginClassType<Provide> = ClassType<Provide> & PluginMetadata;
6
+ export type PluginValueType<Provide> = ValueType<Provide> & PluginMetadata;
7
+ export type PluginFactoryType<Provide, Tokens extends readonly Token[]> = FactoryType<Provide, Tokens> & PluginMetadata;
8
+ export type PluginType<Provide extends PluginInterface = PluginInterface> = Type<Provide> | PluginClassType<Provide> | PluginValueType<Provide> | PluginFactoryType<Provide, any[]>;
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=plugin.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin.interface.js","sourceRoot":"","sources":["../../../src/interfaces/plugin.interface.ts"],"names":[],"mappings":"","sourcesContent":["import { Type, Token, ValueType, ClassType, FactoryType } from './base.interface';\nimport { PluginMetadata } from '../metadata';\n\nexport interface PluginInterface {\n\n}\n\n\nexport type PluginClassType<Provide> = ClassType<Provide> & PluginMetadata;\nexport type PluginValueType<Provide> = ValueType<Provide> & PluginMetadata;\nexport type PluginFactoryType<Provide, Tokens extends readonly Token[]> = FactoryType<Provide, Tokens> & PluginMetadata;\n\n\nexport type PluginType<Provide extends PluginInterface = PluginInterface> =\n | Type<Provide>\n | PluginClassType<Provide>\n | PluginValueType<Provide>\n | PluginFactoryType<Provide, any[]>\n\n"]}
@@ -0,0 +1,5 @@
1
+ import { FuncType, Type } from './base.interface';
2
+ interface PromptInterface {
3
+ }
4
+ type PromptType = Type<PromptInterface> | FuncType<PromptInterface>;
5
+ export { PromptInterface, PromptInterface as FrontMcpPromptInterface, PromptType, PromptType as FrontMcpPromptType, };
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=prompt.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompt.interface.js","sourceRoot":"","sources":["../../../src/interfaces/prompt.interface.ts"],"names":[],"mappings":"","sourcesContent":["import { FuncType, Type } from './base.interface';\n\n\ninterface PromptInterface {\n\n}\n\ntype PromptType =\n | Type<PromptInterface>\n | FuncType<PromptInterface>;\n\n\nexport {\n PromptInterface,\n PromptInterface as FrontMcpPromptInterface,\n PromptType,\n PromptType as FrontMcpPromptType,\n};\n\n"]}
@@ -0,0 +1,20 @@
1
+ import { Type, Token, ValueType, ClassType, FactoryType, ClassToken } from './base.interface';
2
+ import { ProviderMetadata } from '../metadata';
3
+ export interface ProviderInterface {
4
+ }
5
+ export type ProviderClassType<Provide> = ClassType<Provide> & ProviderMetadata;
6
+ export type ProviderValueType<Provide> = ValueType<Provide> & ProviderMetadata;
7
+ export type ProviderFactoryType<Provide, Tokens extends readonly (ClassToken | Token)[]> = FactoryType<Provide, Tokens> & ProviderMetadata;
8
+ export type ProviderType<Provide extends ProviderInterface = any, Tokens extends readonly (ClassToken | Token)[] = readonly (ClassToken | Token)[]> = Type<Provide> | ProviderClassType<Provide> | ProviderValueType<Provide> | ProviderFactoryType<Provide, Tokens>;
9
+ /**
10
+ * Helper to define factory providers without tuple widening.
11
+ * Enforces that `useFactory` params follow the `inject()` tokens (order + arity).
12
+ *
13
+ * Usage:
14
+ * const p = AsyncMcpProvider({
15
+ * provide: RedisProviderRef,
16
+ * inject: () => [ExpenseConfigRef, RedisType] as const,
17
+ * useFactory: async (config, redis) => new RedisProvider(redis),
18
+ * });
19
+ */
20
+ export declare function AsyncProvider<Provide, const Tokens extends readonly (ClassToken | Token)[]>(cfg: ProviderFactoryType<Provide, Tokens>): ProviderFactoryType<Provide, Tokens>;
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AsyncProvider = AsyncProvider;
4
+ /**
5
+ * Helper to define factory providers without tuple widening.
6
+ * Enforces that `useFactory` params follow the `inject()` tokens (order + arity).
7
+ *
8
+ * Usage:
9
+ * const p = AsyncMcpProvider({
10
+ * provide: RedisProviderRef,
11
+ * inject: () => [ExpenseConfigRef, RedisType] as const,
12
+ * useFactory: async (config, redis) => new RedisProvider(redis),
13
+ * });
14
+ */
15
+ function AsyncProvider(cfg) {
16
+ return cfg;
17
+ }
18
+ //# sourceMappingURL=provider.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider.interface.js","sourceRoot":"","sources":["../../../src/interfaces/provider.interface.ts"],"names":[],"mappings":";;AAgCA,sCAIC;AAfD;;;;;;;;;;GAUG;AACH,SAAgB,aAAa,CAC3B,GAAyC;IAEzC,OAAO,GAAG,CAAC;AACb,CAAC","sourcesContent":["import { Type, Token, ValueType, ClassType, FactoryType, ClassToken } from './base.interface';\nimport { ProviderMetadata } from '../metadata';\n\nexport interface ProviderInterface {\n}\n\nexport type ProviderClassType<Provide> = ClassType<Provide> & ProviderMetadata;\nexport type ProviderValueType<Provide> = ValueType<Provide> & ProviderMetadata;\nexport type ProviderFactoryType<Provide, Tokens extends readonly (ClassToken | Token)[]> = FactoryType<Provide, Tokens> & ProviderMetadata;\n\n\nexport type ProviderType<\n Provide extends ProviderInterface = any,\n Tokens extends readonly (ClassToken | Token)[] = readonly (ClassToken | Token)[]\n> =\n | Type<Provide>\n | ProviderClassType<Provide>\n | ProviderValueType<Provide>\n | ProviderFactoryType<Provide, Tokens>\n\n\n/**\n * Helper to define factory providers without tuple widening.\n * Enforces that `useFactory` params follow the `inject()` tokens (order + arity).\n *\n * Usage:\n * const p = AsyncMcpProvider({\n * provide: RedisProviderRef,\n * inject: () => [ExpenseConfigRef, RedisType] as const,\n * useFactory: async (config, redis) => new RedisProvider(redis),\n * });\n */\nexport function AsyncProvider<Provide, const Tokens extends readonly (ClassToken | Token)[]>(\n cfg: ProviderFactoryType<Provide, Tokens>,\n): ProviderFactoryType<Provide, Tokens> {\n return cfg;\n}\n"]}
@@ -0,0 +1,21 @@
1
+ import { ResourceMetadata } from '../metadata';
2
+ import { FuncType, Token, Type } from './base.interface';
3
+ export interface ResourceInterface<In = any, Out = any> {
4
+ execute(input: In, context: ResourceContext<In, Out>): Promise<Out>;
5
+ }
6
+ export type ResourceType<In = any, Out = any> = Type<ResourceInterface<In, Out>> | FuncType<ResourceInterface<In, Out>>;
7
+ export interface ResourceContext<In, Out> {
8
+ readonly resourceId: string;
9
+ readonly resourceName: string;
10
+ readonly metadata: ResourceMetadata;
11
+ get<T>(token: Token<T>): T;
12
+ tryGet<T>(token: Token<T>): T | undefined;
13
+ get inputHistory(): In[];
14
+ get outputHistory(): Out[];
15
+ set input(value: In);
16
+ get input(): In;
17
+ set output(value: Out);
18
+ get output(): Out | undefined;
19
+ respond(value: Out): never;
20
+ fail(reason: string, error: any): never;
21
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=resource.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resource.interface.js","sourceRoot":"","sources":["../../../src/interfaces/resource.interface.ts"],"names":[],"mappings":"","sourcesContent":["import { ResourceMetadata } from '../metadata';\nimport { FuncType, Token, Type } from './base.interface';\n\n\nexport interface ResourceInterface<In = any, Out = any> {\n execute(input: In, context: ResourceContext<In, Out>): Promise<Out>;\n}\n\nexport type ResourceType<In = any, Out = any> =\n | Type<ResourceInterface<In, Out>>\n | FuncType<ResourceInterface<In, Out>>\n\n\nexport interface ResourceContext<In, Out> {\n readonly resourceId: string;\n readonly resourceName: string;\n readonly metadata: ResourceMetadata;\n\n\n get<T>(token: Token<T>): T;\n\n tryGet<T>(token: Token<T>): T | undefined;\n\n get inputHistory(): In[];\n\n get outputHistory(): Out[];\n\n set input(value: In);\n\n get input(): In;\n\n set output(value: Out);\n\n get output(): Out | undefined;\n\n respond(value: Out): never;\n\n fail(reason: string, error: any): never;\n}"]}
@@ -0,0 +1,5 @@
1
+ import { Type } from './base.interface';
2
+ export interface ScopeInterface {
3
+ }
4
+ export type ScopeType = Type<ScopeInterface>;
5
+ export { ScopeInterface as FrontMcpScopeInterface, ScopeType as FrontMcpScopeType, };
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=scope.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scope.interface.js","sourceRoot":"","sources":["../../../src/interfaces/scope.interface.ts"],"names":[],"mappings":"","sourcesContent":["import { Type } from './base.interface';\n\nexport interface ScopeInterface {\n\n}\n\nexport type ScopeType = Type<ScopeInterface>\n\n\nexport {\n ScopeInterface as FrontMcpScopeInterface,\n ScopeType as FrontMcpScopeType,\n}"]}
@@ -0,0 +1,46 @@
1
+ import { IncomingMessage, ServerResponse as HttpServerResponse } from 'http';
2
+ import { Authorization } from '../types';
3
+ export type HttpMethod = 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE' | 'OPTIONS' | 'HEAD';
4
+ export declare class ServerRequest extends IncomingMessage {
5
+ method: HttpMethod;
6
+ path: string;
7
+ url: string;
8
+ headers: Record<string, string>;
9
+ query: Record<string, string | string[]>;
10
+ body?: any;
11
+ authSession?: Authorization;
12
+ }
13
+ export declare abstract class ServerResponse extends HttpServerResponse {
14
+ abstract status(code: number): ServerResponse;
15
+ abstract json(payload: any): void;
16
+ abstract send(payload: any): void;
17
+ abstract redirect(url: string): void;
18
+ abstract redirect(status: number, url: string): void;
19
+ }
20
+ export type NextFn = () => Promise<void> | void;
21
+ export type ServerRequestHandler = (req: ServerRequest, res: ServerResponse, next: NextFn) => Promise<void> | void;
22
+ export declare abstract class FrontMcpServer {
23
+ /**
24
+ * Register a middleware handler for a specific entry path.
25
+ * @param entryPath - e.g. '' or '/mcp'
26
+ * @param handler - (req, res, next) => {// middleware // next()}
27
+ */
28
+ abstract registerMiddleware(entryPath: string, handler: ServerRequestHandler): Promise<void> | void;
29
+ /**
30
+ * Register a route handler for a specific path.
31
+ * @param method - e.g. 'GET' or 'POST'
32
+ * @param path - e.g. '/mcp/invoke'
33
+ * @param handler - (req, res) => {// route handler // res.end() }
34
+ */
35
+ abstract registerRoute(method: HttpMethod, path: string, handler: ServerRequestHandler): Promise<void> | void;
36
+ /**
37
+ * Enhance a request handler with request/response processing and error handling.
38
+ * This handle will be stored as the first middleware in the chain to align adapter handler
39
+ * with the gateway's request/response processing.
40
+ */
41
+ abstract enhancedHandler(handler: ServerRequestHandler): (req: any, res: any, next: () => any) => Promise<void> | void;
42
+ /**
43
+ * Start the server on the specified port
44
+ */
45
+ abstract start(port?: number): Promise<void> | void;
46
+ }
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FrontMcpServer = exports.ServerResponse = exports.ServerRequest = void 0;
4
+ const http_1 = require("http");
5
+ class ServerRequest extends http_1.IncomingMessage {
6
+ path;
7
+ query;
8
+ body;
9
+ authSession;
10
+ }
11
+ exports.ServerRequest = ServerRequest;
12
+ class ServerResponse extends http_1.ServerResponse {
13
+ }
14
+ exports.ServerResponse = ServerResponse;
15
+ class FrontMcpServer {
16
+ }
17
+ exports.FrontMcpServer = FrontMcpServer;
18
+ //# sourceMappingURL=server.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.interface.js","sourceRoot":"","sources":["../../../src/interfaces/server.interface.ts"],"names":[],"mappings":";;;AAAA,+BAA6E;AAK7E,MAAa,aAAc,SAAQ,sBAAe;IAEhD,IAAI,CAAS;IAGb,KAAK,CAAoC;IACzC,IAAI,CAAO;IACX,WAAW,CAAiB;CAC7B;AARD,sCAQC;AAED,MAAsB,cAAe,SAAQ,qBAAkB;CAU9D;AAVD,wCAUC;AAMD,MAAsB,cAAc;CA+BnC;AA/BD,wCA+BC","sourcesContent":["import { IncomingMessage, ServerResponse as HttpServerResponse } from 'http';\nimport { Authorization } from '../types'; // TODO: move to internal\n\nexport type HttpMethod = 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE' | 'OPTIONS' | 'HEAD';\n\nexport class ServerRequest extends IncomingMessage {\n declare method: HttpMethod;\n path: string;\n declare url: string;\n declare headers: Record<string, string>;\n query: Record<string, string | string[]>;\n body?: any;\n authSession?: Authorization;\n}\n\nexport abstract class ServerResponse extends HttpServerResponse {\n abstract status(code: number): ServerResponse;\n\n abstract json(payload: any): void;\n\n abstract send(payload: any): void;\n\n abstract redirect(url: string): void;\n\n abstract redirect(status: number, url: string): void;\n}\n\nexport type NextFn = () => Promise<void> | void;\n\nexport type ServerRequestHandler = (req: ServerRequest, res: ServerResponse, next: NextFn) => Promise<void> | void;\n\nexport abstract class FrontMcpServer {\n\n /**\n * Register a middleware handler for a specific entry path.\n * @param entryPath - e.g. '' or '/mcp'\n * @param handler - (req, res, next) => {// middleware // next()}\n */\n abstract registerMiddleware(entryPath: string, handler: ServerRequestHandler): Promise<void> | void;\n\n /**\n * Register a route handler for a specific path.\n * @param method - e.g. 'GET' or 'POST'\n * @param path - e.g. '/mcp/invoke'\n * @param handler - (req, res) => {// route handler // res.end() }\n */\n abstract registerRoute(method: HttpMethod, path: string, handler: ServerRequestHandler): Promise<void> | void;\n\n /**\n * Enhance a request handler with request/response processing and error handling.\n * This handle will be stored as the first middleware in the chain to align adapter handler\n * with the gateway's request/response processing.\n */\n abstract enhancedHandler(\n handler: ServerRequestHandler,\n ): (req: any, res: any, next: () => any) => Promise<void> | void;\n\n\n /**\n * Start the server on the specified port\n */\n abstract start(port?: number): Promise<void> | void;\n}"]}
@@ -0,0 +1,131 @@
1
+ /**
2
+ * Lifecycle stages for session invocation.
3
+ *
4
+ * Ordering notes:
5
+ * - "will*" stages run before the action; "did*" stages run after.
6
+ * - Higher `priority()` runs earlier for "will*" (outermost), and later for "did*".
7
+ * - Finalization stages (`willFinalize`, `willAudit`, `didAudit`, `onMetrics`) should be placed
8
+ * in your plan’s `finalize` array to run on both success and error paths.
9
+ *
10
+ * Control flow:
11
+ * - Hooks may call `ctx.respond(value)` to short-circuit with a return value.
12
+ * - Hooks may call `ctx.abort(reason, code?, httpStatus?)` to stop with an error.
13
+ *
14
+ * Common context fields:
15
+ * - `ctx.sessionId` SecureMcp session id (== secureJwt) once created/validated.
16
+ * - `ctx.input`/`output` Arbitrary payloads for the current flow.
17
+ * - `ctx.data` Shared bag for cross-hook state.
18
+ * - `ctx.providers` Optional provider views if needed for UI/selection.
19
+ */
20
+ export declare enum SessionHookStage {
21
+ /** Prepare a new session (or re-register an incoming secureJwt).
22
+ * Responsibilities:
23
+ * - Validate incoming token (if any); compute defaults; attach user hints.
24
+ * - Initialize per-session resources and attach to `ctx.data`.
25
+ * Failure modes:
26
+ * - `ctx.abort('invalid jwt', 'INVALID_SESSION', 401)`.
27
+ */
28
+ willCreateSession = "willCreateSession",
29
+ /** Session created and registered.
30
+ * Responsibilities:
31
+ * - Announce readiness (mount handlers/streams), emit side-effects if needed.
32
+ * - Optionally shape `ctx.output` with a `SessionContextView`.
33
+ */
34
+ didCreateSession = "didCreateSession",
35
+ /** Bind DI providers needed for this session/request.
36
+ * Responsibilities:
37
+ * - Resolve and bind providers so later hooks can `ctx.get(...)`.
38
+ * - May set `ctx.bindProvider/bindProviders` helpers.
39
+ */
40
+ willBindProviders = "willBindProviders",
41
+ /** Signal the beginning of an auth sequence in the scope of this session.
42
+ * Responsibilities:
43
+ * - Initialize auth-related state (PKCE/state, CSRF, telemetry).
44
+ * - Decide transport (SSE/StreamableHTTP) for status/URL events if applicable.
45
+ */
46
+ willBeginAuth = "willBeginAuth",
47
+ /** Streamable authorization progress within the session.
48
+ * Responsibilities:
49
+ * - Emit URL/status events (e.g., “authorize_url”, “awaiting_callback”).
50
+ * - Optionally `ctx.respond({event: ...})` for push-style transports.
51
+ */
52
+ willAuthorize = "willAuthorize",// stream-able events (URL/status)
53
+ /** Prepare and gate the token exchange with the provider.
54
+ * Responsibilities:
55
+ * - Verify callback params; ensure prerequisites (sessionId present).
56
+ * - Compute exchange request; rate-limit/anti-replay checks.
57
+ * Failure modes:
58
+ * - `ctx.abort('invalid state/pkce', 'OAUTH_CALLBACK_ERROR', 400)`.
59
+ */
60
+ willExchangeToken = "willExchangeToken",
61
+ /** SecureMcp JWT has been minted/confirmed for this session.
62
+ * Responsibilities:
63
+ * - React to issuance (e.g., persist session claims, notify listeners).
64
+ * Notes:
65
+ * - Fired once the session’s secureJwt is known; avoid logging secrets.
66
+ */
67
+ didIssueSecureJwt = "didIssueSecureJwt",
68
+ /** Encrypt and store provider tokens for this session.
69
+ * Responsibilities:
70
+ * - Write encrypted blobs to the session record (per provider).
71
+ * - Derive minimal metadata (scopes/expiry) for later claims-only exposure.
72
+ */
73
+ willStoreTokens = "willStoreTokens",
74
+ /** Authorize and prepare a session read.
75
+ * Responsibilities:
76
+ * - Validate access to the session; attach read-scoped providers if required.
77
+ * - Optionally shape a partial view before execute.
78
+ */
79
+ willGetSession = "willGetSession",
80
+ /** Post-process the session view.
81
+ * Responsibilities:
82
+ * - Redact/transform/derive fields for the final response.
83
+ * - Set `ctx.output` to a `SessionContextView`.
84
+ */
85
+ didGetSession = "didGetSession",
86
+ /** Announce shutdown and allow flush/cleanup.
87
+ * Responsibilities:
88
+ * - Close streams, unsubscribe listeners, schedule disposers.
89
+ */
90
+ willDisposeSession = "willDisposeSession",
91
+ /** Confirm teardown and emit metrics.
92
+ * Responsibilities:
93
+ * - Final confirmation of resource release; summarize outcome.
94
+ */
95
+ didDisposeSession = "didDisposeSession",
96
+ /** Optional “late finally” hook if you need a single place before audit/metrics.
97
+ * Responsibilities:
98
+ * - Last-chance cleanup across success/error paths (idempotent, non-throwing).
99
+ * Notes:
100
+ * - Include this stage in your plan’s `finalize` array to activate.
101
+ */
102
+ willFinalize = "willFinalize",
103
+ /** Centralized error handler.
104
+ * Responsibilities:
105
+ * - Redact sensitive data; map internal errors to public codes.
106
+ * - Optionally `ctx.respond({ error })` or `ctx.abort(...)`.
107
+ * Notes:
108
+ * - Should not throw; runs before audit/metrics finalize.
109
+ */
110
+ onError = "onError",
111
+ /** Pre-audit collection on both success and error paths.
112
+ * Responsibilities:
113
+ * - Build audit envelope (actor, sessionId, providers touched).
114
+ * - Normalize and strip secrets (no raw tokens).
115
+ */
116
+ willAudit = "willAudit",
117
+ /** Persist/emit the audit record.
118
+ * Responsibilities:
119
+ * - Write to audit sink(s) with outcome and timings.
120
+ * - Correlate via `ctx.requestId`/`ctx.sessionId`.
121
+ */
122
+ didAudit = "didAudit",
123
+ /** Telemetry/metrics emission for both success and errors.
124
+ * Responsibilities:
125
+ * - Counters & timings (create/get/dispose/auth/exchange/store).
126
+ * - Error code/tag cardinality kept small for SLOs/alerts.
127
+ * Constraints:
128
+ * - Non-throwing; must not alter control flow.
129
+ */
130
+ onMetrics = "onMetrics"
131
+ }