@frontmcp/sdk 0.4.1 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (558) hide show
  1. package/README.md +30 -18
  2. package/package.json +20 -5
  3. package/src/app/app.registry.d.ts +3 -2
  4. package/src/app/app.registry.js +3 -1
  5. package/src/app/app.registry.js.map +1 -1
  6. package/src/app/instances/app.local.instance.js +2 -2
  7. package/src/app/instances/app.local.instance.js.map +1 -1
  8. package/src/auth/auth.registry.d.ts +34 -2
  9. package/src/auth/auth.registry.js +162 -24
  10. package/src/auth/auth.registry.js.map +1 -1
  11. package/src/auth/auth.utils.js +8 -9
  12. package/src/auth/auth.utils.js.map +1 -1
  13. package/src/auth/authorization/authorization.class.d.ts +125 -0
  14. package/src/auth/authorization/authorization.class.js +224 -0
  15. package/src/auth/authorization/authorization.class.js.map +1 -0
  16. package/src/auth/authorization/authorization.types.d.ts +300 -0
  17. package/src/auth/authorization/authorization.types.js +79 -0
  18. package/src/auth/authorization/authorization.types.js.map +1 -0
  19. package/src/auth/authorization/index.d.ts +5 -0
  20. package/src/auth/authorization/index.js +19 -0
  21. package/src/auth/authorization/index.js.map +1 -0
  22. package/src/auth/authorization/orchestrated.authorization.d.ts +242 -0
  23. package/src/auth/authorization/orchestrated.authorization.js +306 -0
  24. package/src/auth/authorization/orchestrated.authorization.js.map +1 -0
  25. package/src/auth/authorization/public.authorization.d.ts +91 -0
  26. package/src/auth/authorization/public.authorization.js +132 -0
  27. package/src/auth/authorization/public.authorization.js.map +1 -0
  28. package/src/auth/authorization/transparent.authorization.d.ts +130 -0
  29. package/src/auth/authorization/transparent.authorization.js +147 -0
  30. package/src/auth/authorization/transparent.authorization.js.map +1 -0
  31. package/src/auth/consent/consent.types.d.ts +111 -0
  32. package/src/auth/consent/consent.types.js +119 -0
  33. package/src/auth/consent/consent.types.js.map +1 -0
  34. package/src/auth/consent/index.d.ts +1 -0
  35. package/src/auth/consent/index.js +13 -0
  36. package/src/auth/consent/index.js.map +1 -0
  37. package/src/auth/detection/auth-provider-detection.d.ts +84 -0
  38. package/src/auth/detection/auth-provider-detection.js +230 -0
  39. package/src/auth/detection/auth-provider-detection.js.map +1 -0
  40. package/src/auth/detection/index.d.ts +1 -0
  41. package/src/auth/detection/index.js +15 -0
  42. package/src/auth/detection/index.js.map +1 -0
  43. package/src/auth/flows/auth.verify.flow.d.ts +110 -0
  44. package/src/auth/flows/auth.verify.flow.js +379 -0
  45. package/src/auth/flows/auth.verify.flow.js.map +1 -0
  46. package/src/auth/flows/oauth.authorize.flow.d.ts +118 -164
  47. package/src/auth/flows/oauth.authorize.flow.js +701 -33
  48. package/src/auth/flows/oauth.authorize.flow.js.map +1 -1
  49. package/src/auth/flows/oauth.callback.flow.d.ts +117 -0
  50. package/src/auth/flows/oauth.callback.flow.js +357 -0
  51. package/src/auth/flows/oauth.callback.flow.js.map +1 -0
  52. package/src/auth/flows/oauth.register.flow.d.ts +32 -125
  53. package/src/auth/flows/oauth.token.flow.d.ts +52 -154
  54. package/src/auth/flows/oauth.token.flow.js +193 -55
  55. package/src/auth/flows/oauth.token.flow.js.map +1 -1
  56. package/src/auth/flows/session.verify.flow.d.ts +66 -321
  57. package/src/auth/flows/session.verify.flow.js +107 -18
  58. package/src/auth/flows/session.verify.flow.js.map +1 -1
  59. package/src/auth/flows/well-known.jwks.flow.d.ts +34 -205
  60. package/src/auth/flows/well-known.jwks.flow.js +15 -8
  61. package/src/auth/flows/well-known.jwks.flow.js.map +1 -1
  62. package/src/auth/flows/well-known.oauth-authorization-server.flow.d.ts +48 -223
  63. package/src/auth/flows/well-known.oauth-authorization-server.flow.js +2 -3
  64. package/src/auth/flows/well-known.oauth-authorization-server.flow.js.map +1 -1
  65. package/src/auth/flows/well-known.prm.flow.d.ts +19 -120
  66. package/src/auth/flows/well-known.prm.flow.js +3 -4
  67. package/src/auth/flows/well-known.prm.flow.js.map +1 -1
  68. package/src/auth/instances/instance.local-primary-auth.d.ts +91 -4
  69. package/src/auth/instances/instance.local-primary-auth.js +236 -6
  70. package/src/auth/instances/instance.local-primary-auth.js.map +1 -1
  71. package/src/auth/instances/instance.remote-primary-auth.d.ts +4 -3
  72. package/src/auth/instances/instance.remote-primary-auth.js +2 -2
  73. package/src/auth/instances/instance.remote-primary-auth.js.map +1 -1
  74. package/src/auth/session/authorization-vault.d.ts +611 -0
  75. package/src/auth/session/authorization-vault.js +817 -0
  76. package/src/auth/session/authorization-vault.js.map +1 -0
  77. package/src/auth/session/authorization.store.d.ts +301 -0
  78. package/src/auth/session/authorization.store.js +323 -0
  79. package/src/auth/session/authorization.store.js.map +1 -0
  80. package/src/auth/session/encrypted-authorization-vault.d.ts +181 -0
  81. package/src/auth/session/encrypted-authorization-vault.js +493 -0
  82. package/src/auth/session/encrypted-authorization-vault.js.map +1 -0
  83. package/src/auth/session/index.d.ts +4 -4
  84. package/src/auth/session/index.js +11 -7
  85. package/src/auth/session/index.js.map +1 -1
  86. package/src/auth/session/session.schema.d.ts +1 -1
  87. package/src/auth/session/session.service.d.ts +1 -1
  88. package/src/auth/session/transport-session.manager.d.ts +101 -0
  89. package/src/auth/session/transport-session.manager.js +300 -0
  90. package/src/auth/session/transport-session.manager.js.map +1 -0
  91. package/src/auth/session/transport-session.types.d.ts +457 -0
  92. package/src/auth/session/transport-session.types.js +110 -0
  93. package/src/auth/session/transport-session.types.js.map +1 -0
  94. package/src/auth/session/utils/session-id.utils.d.ts +14 -2
  95. package/src/auth/session/utils/session-id.utils.js +68 -19
  96. package/src/auth/session/utils/session-id.utils.js.map +1 -1
  97. package/src/auth/session/vault-encryption.d.ts +189 -0
  98. package/src/auth/session/vault-encryption.js +263 -0
  99. package/src/auth/session/vault-encryption.js.map +1 -0
  100. package/src/auth/ui/base-layout.d.ts +188 -0
  101. package/src/auth/ui/base-layout.js +292 -0
  102. package/src/auth/ui/base-layout.js.map +1 -0
  103. package/src/auth/ui/htmx-templates.d.ts +135 -0
  104. package/src/auth/ui/htmx-templates.js +433 -0
  105. package/src/auth/ui/htmx-templates.js.map +1 -0
  106. package/src/auth/ui/index.d.ts +11 -0
  107. package/src/auth/ui/index.js +35 -0
  108. package/src/auth/ui/index.js.map +1 -0
  109. package/src/auth/utils/audience.validator.d.ts +129 -0
  110. package/src/auth/utils/audience.validator.js +196 -0
  111. package/src/auth/utils/audience.validator.js.map +1 -0
  112. package/src/auth/utils/index.d.ts +2 -0
  113. package/src/auth/utils/index.js +7 -0
  114. package/src/auth/utils/index.js.map +1 -0
  115. package/src/auth/utils/www-authenticate.utils.d.ts +97 -0
  116. package/src/auth/utils/www-authenticate.utils.js +183 -0
  117. package/src/auth/utils/www-authenticate.utils.js.map +1 -0
  118. package/src/common/common.schema.d.ts +2 -16
  119. package/src/common/constants.d.ts +3 -0
  120. package/src/common/constants.js +6 -1
  121. package/src/common/constants.js.map +1 -1
  122. package/src/common/decorators/decorator-utils.d.ts +131 -0
  123. package/src/common/decorators/decorator-utils.js +195 -0
  124. package/src/common/decorators/decorator-utils.js.map +1 -0
  125. package/src/common/decorators/front-mcp.decorator.js +3 -2
  126. package/src/common/decorators/front-mcp.decorator.js.map +1 -1
  127. package/src/common/decorators/hook.decorator.d.ts +58 -2
  128. package/src/common/decorators/hook.decorator.js +127 -17
  129. package/src/common/decorators/hook.decorator.js.map +1 -1
  130. package/src/common/decorators/plugin.decorator.d.ts +1 -1
  131. package/src/common/decorators/plugin.decorator.js +11 -10
  132. package/src/common/decorators/plugin.decorator.js.map +1 -1
  133. package/src/common/decorators/resource.decorator.d.ts +32 -3
  134. package/src/common/decorators/resource.decorator.js +46 -4
  135. package/src/common/decorators/resource.decorator.js.map +1 -1
  136. package/src/common/decorators/tool.decorator.d.ts +54 -5
  137. package/src/common/decorators/tool.decorator.js.map +1 -1
  138. package/src/common/dynamic/dynamic.plugin.d.ts +22 -11
  139. package/src/common/dynamic/dynamic.plugin.js +7 -1
  140. package/src/common/dynamic/dynamic.plugin.js.map +1 -1
  141. package/src/common/entries/prompt.entry.d.ts +46 -2
  142. package/src/common/entries/prompt.entry.js +10 -0
  143. package/src/common/entries/prompt.entry.js.map +1 -1
  144. package/src/common/entries/resource.entry.d.ts +69 -6
  145. package/src/common/entries/resource.entry.js +27 -3
  146. package/src/common/entries/resource.entry.js.map +1 -1
  147. package/src/common/entries/scope.entry.d.ts +5 -1
  148. package/src/common/entries/scope.entry.js +3 -3
  149. package/src/common/entries/scope.entry.js.map +1 -1
  150. package/src/common/flow/flow.utils.d.ts +56 -0
  151. package/src/common/flow/flow.utils.js +96 -0
  152. package/src/common/flow/flow.utils.js.map +1 -0
  153. package/src/common/index.d.ts +2 -2
  154. package/src/common/index.js +2 -2
  155. package/src/common/index.js.map +1 -1
  156. package/src/common/interfaces/execution-context.interface.d.ts +59 -0
  157. package/src/common/interfaces/execution-context.interface.js +81 -0
  158. package/src/common/interfaces/execution-context.interface.js.map +1 -0
  159. package/src/common/interfaces/flow.interface.d.ts +1 -1
  160. package/src/common/interfaces/flow.interface.js.map +1 -1
  161. package/src/common/interfaces/index.d.ts +1 -0
  162. package/src/common/interfaces/index.js +1 -0
  163. package/src/common/interfaces/index.js.map +1 -1
  164. package/src/common/interfaces/internal/primary-auth-provider.interface.d.ts +17 -2
  165. package/src/common/interfaces/internal/primary-auth-provider.interface.js +52 -4
  166. package/src/common/interfaces/internal/primary-auth-provider.interface.js.map +1 -1
  167. package/src/common/interfaces/internal/registry.interface.d.ts +16 -2
  168. package/src/common/interfaces/internal/registry.interface.js.map +1 -1
  169. package/src/common/interfaces/plugin.interface.js.map +1 -1
  170. package/src/common/interfaces/prompt.interface.d.ts +53 -4
  171. package/src/common/interfaces/prompt.interface.js +78 -0
  172. package/src/common/interfaces/prompt.interface.js.map +1 -1
  173. package/src/common/interfaces/resource.interface.d.ts +47 -17
  174. package/src/common/interfaces/resource.interface.js +53 -0
  175. package/src/common/interfaces/resource.interface.js.map +1 -1
  176. package/src/common/interfaces/tool.interface.d.ts +39 -22
  177. package/src/common/interfaces/tool.interface.js +61 -34
  178. package/src/common/interfaces/tool.interface.js.map +1 -1
  179. package/src/common/metadata/adapter.metadata.d.ts +1 -9
  180. package/src/common/metadata/app.metadata.d.ts +425 -730
  181. package/src/common/metadata/auth-provider.metadata.d.ts +2 -12
  182. package/src/common/metadata/flow.metadata.d.ts +10 -25
  183. package/src/common/metadata/front-mcp.metadata.d.ts +602 -1023
  184. package/src/common/metadata/front-mcp.metadata.js +6 -4
  185. package/src/common/metadata/front-mcp.metadata.js.map +1 -1
  186. package/src/common/metadata/hook.metadata.d.ts +1 -1
  187. package/src/common/metadata/hook.metadata.js.map +1 -1
  188. package/src/common/metadata/index.d.ts +1 -0
  189. package/src/common/metadata/index.js +1 -0
  190. package/src/common/metadata/index.js.map +1 -1
  191. package/src/common/metadata/logger.metadata.d.ts +1 -9
  192. package/src/common/metadata/plugin.metadata.d.ts +8 -30
  193. package/src/common/metadata/prompt.metadata.d.ts +4 -161
  194. package/src/common/metadata/provider.metadata.d.ts +2 -12
  195. package/src/common/metadata/resource.metadata.d.ts +6 -98
  196. package/src/common/metadata/resource.metadata.js +15 -6
  197. package/src/common/metadata/resource.metadata.js.map +1 -1
  198. package/src/common/metadata/tool-ui.metadata.d.ts +10 -0
  199. package/src/common/metadata/tool-ui.metadata.js +12 -0
  200. package/src/common/metadata/tool-ui.metadata.js.map +1 -0
  201. package/src/common/metadata/tool.metadata.d.ts +78 -199
  202. package/src/common/metadata/tool.metadata.js +11 -14
  203. package/src/common/metadata/tool.metadata.js.map +1 -1
  204. package/src/common/providers/base-config.provider.d.ts +84 -0
  205. package/src/common/providers/base-config.provider.js +128 -0
  206. package/src/common/providers/base-config.provider.js.map +1 -0
  207. package/src/common/records/plugin.record.d.ts +5 -6
  208. package/src/common/records/plugin.record.js.map +1 -1
  209. package/src/common/records/prompt.record.js.map +1 -1
  210. package/src/common/records/resource.record.d.ts +17 -1
  211. package/src/common/records/resource.record.js +12 -6
  212. package/src/common/records/resource.record.js.map +1 -1
  213. package/src/common/records/tool.record.js.map +1 -1
  214. package/src/common/schemas/annotated-class.schema.d.ts +9 -9
  215. package/src/common/schemas/annotated-class.schema.js +92 -27
  216. package/src/common/schemas/annotated-class.schema.js.map +1 -1
  217. package/src/common/schemas/http-input.schema.d.ts +6 -30
  218. package/src/common/schemas/http-output.schema.d.ts +326 -1630
  219. package/src/common/schemas/http-output.schema.js +39 -1
  220. package/src/common/schemas/http-output.schema.js.map +1 -1
  221. package/src/common/tokens/front-mcp.tokens.js +4 -1
  222. package/src/common/tokens/front-mcp.tokens.js.map +1 -1
  223. package/src/common/tokens/resource.tokens.d.ts +2 -0
  224. package/src/common/tokens/resource.tokens.js +4 -1
  225. package/src/common/tokens/resource.tokens.js.map +1 -1
  226. package/src/common/tokens/tool.tokens.d.ts +2 -0
  227. package/src/common/tokens/tool.tokens.js +2 -0
  228. package/src/common/tokens/tool.tokens.js.map +1 -1
  229. package/src/common/types/auth/jwt.types.d.ts +5 -31
  230. package/src/common/types/auth/session.types.d.ts +97 -192
  231. package/src/common/types/auth/session.types.js +24 -11
  232. package/src/common/types/auth/session.types.js.map +1 -1
  233. package/src/common/types/options/auth.options.d.ts +1013 -490
  234. package/src/common/types/options/auth.options.js +554 -36
  235. package/src/common/types/options/auth.options.js.map +1 -1
  236. package/src/common/types/options/http.options.d.ts +1 -9
  237. package/src/common/types/options/logging.options.d.ts +7 -13
  238. package/src/common/types/options/logging.options.js +4 -0
  239. package/src/common/types/options/logging.options.js.map +1 -1
  240. package/src/common/types/options/server-info.options.d.ts +3 -31
  241. package/src/common/types/options/session.options.d.ts +90 -10
  242. package/src/common/types/options/session.options.js +26 -3
  243. package/src/common/types/options/session.options.js.map +1 -1
  244. package/src/common/utils/decide-request-intent.utils.d.ts +8 -46
  245. package/src/common/utils/decide-request-intent.utils.js +88 -23
  246. package/src/common/utils/decide-request-intent.utils.js.map +1 -1
  247. package/src/completion/flows/complete.flow.d.ts +74 -0
  248. package/src/completion/flows/complete.flow.js +199 -0
  249. package/src/completion/flows/complete.flow.js.map +1 -0
  250. package/src/errors/authorization-required.error.d.ts +189 -0
  251. package/src/errors/authorization-required.error.js +274 -0
  252. package/src/errors/authorization-required.error.js.map +1 -0
  253. package/src/errors/index.d.ts +2 -1
  254. package/src/errors/index.js +17 -1
  255. package/src/errors/index.js.map +1 -1
  256. package/src/errors/mcp.error.d.ts +101 -1
  257. package/src/errors/mcp.error.js +147 -2
  258. package/src/errors/mcp.error.js.map +1 -1
  259. package/src/flows/flow.instance.js +4 -3
  260. package/src/flows/flow.instance.js.map +1 -1
  261. package/src/flows/flow.registry.js.map +1 -1
  262. package/src/flows/flow.stages.js +14 -11
  263. package/src/flows/flow.stages.js.map +1 -1
  264. package/src/front-mcp/front-mcp.providers.d.ts +464 -102
  265. package/src/front-mcp/front-mcp.providers.js +3 -5
  266. package/src/front-mcp/front-mcp.providers.js.map +1 -1
  267. package/src/hooks/hook.instance.d.ts +1 -1
  268. package/src/hooks/hook.instance.js +5 -2
  269. package/src/hooks/hook.instance.js.map +1 -1
  270. package/src/hooks/hook.registry.js +7 -5
  271. package/src/hooks/hook.registry.js.map +1 -1
  272. package/src/index.d.ts +28 -9
  273. package/src/index.js +5 -1
  274. package/src/index.js.map +1 -1
  275. package/src/logger/instances/instance.logger.js +3 -2
  276. package/src/logger/instances/instance.logger.js.map +1 -1
  277. package/src/logger/logger.registry.js +7 -2
  278. package/src/logger/logger.registry.js.map +1 -1
  279. package/src/logging/flows/set-level.flow.d.ts +62 -0
  280. package/src/logging/flows/set-level.flow.js +108 -0
  281. package/src/logging/flows/set-level.flow.js.map +1 -0
  282. package/src/mcp-apps/csp.d.ts +111 -0
  283. package/src/mcp-apps/csp.js +267 -0
  284. package/src/mcp-apps/csp.js.map +1 -0
  285. package/src/mcp-apps/index.d.ts +23 -0
  286. package/src/mcp-apps/index.js +91 -0
  287. package/src/mcp-apps/index.js.map +1 -0
  288. package/src/mcp-apps/schemas.d.ts +403 -0
  289. package/src/mcp-apps/schemas.js +345 -0
  290. package/src/mcp-apps/schemas.js.map +1 -0
  291. package/src/mcp-apps/template.d.ts +94 -0
  292. package/src/mcp-apps/template.js +419 -0
  293. package/src/mcp-apps/template.js.map +1 -0
  294. package/src/mcp-apps/types.d.ts +323 -0
  295. package/src/mcp-apps/types.js +59 -0
  296. package/src/mcp-apps/types.js.map +1 -0
  297. package/src/notification/index.d.ts +1 -0
  298. package/src/notification/index.js +13 -0
  299. package/src/notification/index.js.map +1 -0
  300. package/src/notification/notification.service.d.ts +378 -0
  301. package/src/notification/notification.service.js +727 -0
  302. package/src/notification/notification.service.js.map +1 -0
  303. package/src/plugin/plugin.registry.js +12 -9
  304. package/src/plugin/plugin.registry.js.map +1 -1
  305. package/src/prompt/flows/get-prompt.flow.d.ts +153 -0
  306. package/src/prompt/flows/get-prompt.flow.js +214 -0
  307. package/src/prompt/flows/get-prompt.flow.js.map +1 -0
  308. package/src/prompt/flows/prompts-list.flow.d.ts +67 -0
  309. package/src/prompt/flows/prompts-list.flow.js +176 -0
  310. package/src/prompt/flows/prompts-list.flow.js.map +1 -0
  311. package/src/prompt/index.d.ts +7 -0
  312. package/src/prompt/index.js +17 -0
  313. package/src/prompt/index.js.map +1 -0
  314. package/src/prompt/prompt.events.d.ts +17 -0
  315. package/src/prompt/prompt.events.js +25 -0
  316. package/src/prompt/prompt.events.js.map +1 -0
  317. package/src/prompt/prompt.instance.d.ts +30 -0
  318. package/src/prompt/prompt.instance.js +120 -0
  319. package/src/prompt/prompt.instance.js.map +1 -0
  320. package/src/prompt/prompt.registry.d.ts +79 -12
  321. package/src/prompt/prompt.registry.js +360 -15
  322. package/src/prompt/prompt.registry.js.map +1 -1
  323. package/src/prompt/prompt.types.d.ts +26 -0
  324. package/src/prompt/prompt.types.js +11 -0
  325. package/src/prompt/prompt.types.js.map +1 -0
  326. package/src/prompt/prompt.utils.d.ts +26 -0
  327. package/src/prompt/prompt.utils.js +136 -0
  328. package/src/prompt/prompt.utils.js.map +1 -0
  329. package/src/provider/provider.registry.d.ts +12 -5
  330. package/src/provider/provider.registry.js +30 -138
  331. package/src/provider/provider.registry.js.map +1 -1
  332. package/src/regsitry/registry.base.d.ts +1 -1
  333. package/src/regsitry/registry.base.js.map +1 -1
  334. package/src/resource/flows/read-resource.flow.d.ts +91 -0
  335. package/src/resource/flows/read-resource.flow.js +270 -0
  336. package/src/resource/flows/read-resource.flow.js.map +1 -0
  337. package/src/resource/flows/resource-templates-list.flow.d.ts +64 -0
  338. package/src/resource/flows/resource-templates-list.flow.js +191 -0
  339. package/src/resource/flows/resource-templates-list.flow.js.map +1 -0
  340. package/src/resource/flows/resources-list.flow.d.ts +64 -0
  341. package/src/resource/flows/resources-list.flow.js +196 -0
  342. package/src/resource/flows/resources-list.flow.js.map +1 -0
  343. package/src/resource/flows/subscribe-resource.flow.d.ts +45 -0
  344. package/src/resource/flows/subscribe-resource.flow.js +123 -0
  345. package/src/resource/flows/subscribe-resource.flow.js.map +1 -0
  346. package/src/resource/flows/unsubscribe-resource.flow.d.ts +44 -0
  347. package/src/resource/flows/unsubscribe-resource.flow.js +107 -0
  348. package/src/resource/flows/unsubscribe-resource.flow.js.map +1 -0
  349. package/src/resource/index.d.ts +8 -0
  350. package/src/resource/index.js +20 -0
  351. package/src/resource/index.js.map +1 -0
  352. package/src/resource/resource.events.d.ts +24 -0
  353. package/src/resource/resource.events.js +17 -0
  354. package/src/resource/resource.events.js.map +1 -0
  355. package/src/resource/resource.instance.d.ts +35 -0
  356. package/src/resource/resource.instance.js +163 -0
  357. package/src/resource/resource.instance.js.map +1 -0
  358. package/src/resource/resource.registry.d.ts +106 -12
  359. package/src/resource/resource.registry.js +449 -13
  360. package/src/resource/resource.registry.js.map +1 -1
  361. package/src/resource/resource.types.d.ts +35 -0
  362. package/src/resource/resource.types.js +11 -0
  363. package/src/resource/resource.types.js.map +1 -0
  364. package/src/resource/resource.utils.d.ts +30 -0
  365. package/src/resource/resource.utils.js +151 -0
  366. package/src/resource/resource.utils.js.map +1 -0
  367. package/src/scope/flows/http.request.flow.d.ts +48 -330
  368. package/src/scope/flows/http.request.flow.js +306 -78
  369. package/src/scope/flows/http.request.flow.js.map +1 -1
  370. package/src/scope/scope.instance.d.ts +12 -0
  371. package/src/scope/scope.instance.js +145 -15
  372. package/src/scope/scope.instance.js.map +1 -1
  373. package/src/tool/flows/call-tool.flow.d.ts +64 -1110
  374. package/src/tool/flows/call-tool.flow.js +303 -15
  375. package/src/tool/flows/call-tool.flow.js.map +1 -1
  376. package/src/tool/flows/tools-list.flow.d.ts +32 -473
  377. package/src/tool/flows/tools-list.flow.js +121 -40
  378. package/src/tool/flows/tools-list.flow.js.map +1 -1
  379. package/src/tool/tool.events.d.ts +8 -1
  380. package/src/tool/tool.events.js.map +1 -1
  381. package/src/tool/tool.instance.d.ts +3 -1
  382. package/src/tool/tool.instance.js +17 -3
  383. package/src/tool/tool.instance.js.map +1 -1
  384. package/src/tool/tool.registry.d.ts +7 -1
  385. package/src/tool/tool.registry.js +26 -10
  386. package/src/tool/tool.registry.js.map +1 -1
  387. package/src/tool/tool.types.d.ts +4 -4
  388. package/src/tool/tool.types.js.map +1 -1
  389. package/src/tool/tool.utils.d.ts +3 -12
  390. package/src/tool/tool.utils.js +39 -193
  391. package/src/tool/tool.utils.js.map +1 -1
  392. package/src/tool/ui/index.d.ts +22 -0
  393. package/src/tool/ui/index.js +63 -0
  394. package/src/tool/ui/index.js.map +1 -0
  395. package/src/tool/ui/platform-adapters.d.ts +10 -0
  396. package/src/tool/ui/platform-adapters.js +18 -0
  397. package/src/tool/ui/platform-adapters.js.map +1 -0
  398. package/src/tool/ui/template-helpers.d.ts +46 -0
  399. package/src/tool/ui/template-helpers.js +112 -0
  400. package/src/tool/ui/template-helpers.js.map +1 -0
  401. package/src/tool/ui/ui-resource-template.d.ts +34 -0
  402. package/src/tool/ui/ui-resource-template.js +64 -0
  403. package/src/tool/ui/ui-resource-template.js.map +1 -0
  404. package/src/tool/ui/ui-resource.handler.d.ts +74 -0
  405. package/src/tool/ui/ui-resource.handler.js +129 -0
  406. package/src/tool/ui/ui-resource.handler.js.map +1 -0
  407. package/src/transport/adapters/transport.local.adapter.d.ts +2 -2
  408. package/src/transport/adapters/transport.local.adapter.js +28 -7
  409. package/src/transport/adapters/transport.local.adapter.js.map +1 -1
  410. package/src/transport/adapters/transport.sse.adapter.d.ts +2 -2
  411. package/src/transport/adapters/transport.sse.adapter.js +4 -3
  412. package/src/transport/adapters/transport.sse.adapter.js.map +1 -1
  413. package/src/transport/adapters/transport.streamable-http.adapter.d.ts +10 -3
  414. package/src/transport/adapters/transport.streamable-http.adapter.js +54 -8
  415. package/src/transport/adapters/transport.streamable-http.adapter.js.map +1 -1
  416. package/src/transport/flows/handle.sse.flow.d.ts +29 -63
  417. package/src/transport/flows/handle.sse.flow.js +78 -10
  418. package/src/transport/flows/handle.sse.flow.js.map +1 -1
  419. package/src/transport/flows/handle.stateless-http.flow.d.ts +29 -0
  420. package/src/transport/flows/handle.stateless-http.flow.js +102 -0
  421. package/src/transport/flows/handle.stateless-http.flow.js.map +1 -0
  422. package/src/transport/flows/handle.streamable-http.flow.d.ts +32 -64
  423. package/src/transport/flows/handle.streamable-http.flow.js +158 -26
  424. package/src/transport/flows/handle.streamable-http.flow.js.map +1 -1
  425. package/src/transport/legacy/legacy.sse.tranporter.d.ts +9 -0
  426. package/src/transport/legacy/legacy.sse.tranporter.js +17 -2
  427. package/src/transport/legacy/legacy.sse.tranporter.js.map +1 -1
  428. package/src/transport/mcp-handlers/call-tool-request.handler.js +27 -1
  429. package/src/transport/mcp-handlers/call-tool-request.handler.js.map +1 -1
  430. package/src/transport/mcp-handlers/complete-request.handler.d.ts +69 -0
  431. package/src/transport/mcp-handlers/complete-request.handler.js +11 -0
  432. package/src/transport/mcp-handlers/complete-request.handler.js.map +1 -0
  433. package/src/transport/mcp-handlers/get-prompt-request.handler.d.ts +87 -0
  434. package/src/transport/mcp-handlers/get-prompt-request.handler.js +11 -0
  435. package/src/transport/mcp-handlers/get-prompt-request.handler.js.map +1 -0
  436. package/src/transport/mcp-handlers/index.d.ts +517 -208
  437. package/src/transport/mcp-handlers/index.js +39 -2
  438. package/src/transport/mcp-handlers/index.js.map +1 -1
  439. package/src/transport/mcp-handlers/initialize-request.handler.d.ts +1 -1
  440. package/src/transport/mcp-handlers/initialize-request.handler.js +73 -7
  441. package/src/transport/mcp-handlers/initialize-request.handler.js.map +1 -1
  442. package/src/transport/mcp-handlers/list-prompts-request.handler.d.ts +54 -0
  443. package/src/transport/mcp-handlers/list-prompts-request.handler.js +11 -0
  444. package/src/transport/mcp-handlers/list-prompts-request.handler.js.map +1 -0
  445. package/src/transport/mcp-handlers/list-resource-templates-request.handler.d.ts +51 -0
  446. package/src/transport/mcp-handlers/list-resource-templates-request.handler.js +12 -0
  447. package/src/transport/mcp-handlers/list-resource-templates-request.handler.js.map +1 -0
  448. package/src/transport/mcp-handlers/list-resources-request.handler.d.ts +51 -0
  449. package/src/transport/mcp-handlers/list-resources-request.handler.js +12 -0
  450. package/src/transport/mcp-handlers/list-resources-request.handler.js.map +1 -0
  451. package/src/transport/mcp-handlers/list-tools-request.handler.d.ts +19 -146
  452. package/src/transport/mcp-handlers/logging-set-level-request.handler.d.ts +46 -0
  453. package/src/transport/mcp-handlers/logging-set-level-request.handler.js +34 -0
  454. package/src/transport/mcp-handlers/logging-set-level-request.handler.js.map +1 -0
  455. package/src/transport/mcp-handlers/mcp-handlers.types.d.ts +3 -7
  456. package/src/transport/mcp-handlers/mcp-handlers.types.js.map +1 -1
  457. package/src/transport/mcp-handlers/read-resource-request.handler.d.ts +46 -0
  458. package/src/transport/mcp-handlers/read-resource-request.handler.js +12 -0
  459. package/src/transport/mcp-handlers/read-resource-request.handler.js.map +1 -0
  460. package/src/transport/mcp-handlers/roots-list-changed-notification.handler.d.ts +11 -0
  461. package/src/transport/mcp-handlers/roots-list-changed-notification.handler.js +26 -0
  462. package/src/transport/mcp-handlers/roots-list-changed-notification.handler.js.map +1 -0
  463. package/src/transport/mcp-handlers/subscribe-request.handler.d.ts +37 -0
  464. package/src/transport/mcp-handlers/subscribe-request.handler.js +34 -0
  465. package/src/transport/mcp-handlers/subscribe-request.handler.js.map +1 -0
  466. package/src/transport/mcp-handlers/unsubscribe-request.handler.d.ts +37 -0
  467. package/src/transport/mcp-handlers/unsubscribe-request.handler.js +34 -0
  468. package/src/transport/mcp-handlers/unsubscribe-request.handler.js.map +1 -0
  469. package/src/transport/transport.local.js +7 -2
  470. package/src/transport/transport.local.js.map +1 -1
  471. package/src/transport/transport.registry.d.ts +30 -0
  472. package/src/transport/transport.registry.js +84 -1
  473. package/src/transport/transport.registry.js.map +1 -1
  474. package/src/transport/transport.types.d.ts +3 -3
  475. package/src/transport/transport.types.js.map +1 -1
  476. package/src/utils/content.utils.d.ts +48 -0
  477. package/src/utils/content.utils.js +194 -0
  478. package/src/utils/content.utils.js.map +1 -0
  479. package/src/utils/index.d.ts +8 -0
  480. package/src/utils/index.js +55 -0
  481. package/src/utils/index.js.map +1 -0
  482. package/src/utils/lineage.utils.d.ts +40 -0
  483. package/src/utils/lineage.utils.js +82 -0
  484. package/src/utils/lineage.utils.js.map +1 -0
  485. package/src/utils/naming.utils.d.ts +46 -0
  486. package/src/utils/naming.utils.js +136 -0
  487. package/src/utils/naming.utils.js.map +1 -0
  488. package/src/utils/types.utils.d.ts +2 -2
  489. package/src/utils/types.utils.js.map +1 -1
  490. package/src/utils/uri-template.utils.d.ts +57 -0
  491. package/src/utils/uri-template.utils.js +113 -0
  492. package/src/utils/uri-template.utils.js.map +1 -0
  493. package/src/utils/uri-validation.utils.d.ts +40 -0
  494. package/src/utils/uri-validation.utils.js +76 -0
  495. package/src/utils/uri-validation.utils.js.map +1 -0
  496. package/src/__test-utils__/fixtures/hook.fixtures.d.ts +0 -46
  497. package/src/__test-utils__/fixtures/hook.fixtures.js +0 -114
  498. package/src/__test-utils__/fixtures/hook.fixtures.js.map +0 -1
  499. package/src/__test-utils__/fixtures/index.d.ts +0 -7
  500. package/src/__test-utils__/fixtures/index.js +0 -11
  501. package/src/__test-utils__/fixtures/index.js.map +0 -1
  502. package/src/__test-utils__/fixtures/plugin.fixtures.d.ts +0 -46
  503. package/src/__test-utils__/fixtures/plugin.fixtures.js +0 -127
  504. package/src/__test-utils__/fixtures/plugin.fixtures.js.map +0 -1
  505. package/src/__test-utils__/fixtures/provider.fixtures.d.ts +0 -69
  506. package/src/__test-utils__/fixtures/provider.fixtures.js +0 -131
  507. package/src/__test-utils__/fixtures/provider.fixtures.js.map +0 -1
  508. package/src/__test-utils__/fixtures/scope.fixtures.d.ts +0 -14
  509. package/src/__test-utils__/fixtures/scope.fixtures.js +0 -59
  510. package/src/__test-utils__/fixtures/scope.fixtures.js.map +0 -1
  511. package/src/__test-utils__/fixtures/tool.fixtures.d.ts +0 -36
  512. package/src/__test-utils__/fixtures/tool.fixtures.js +0 -91
  513. package/src/__test-utils__/fixtures/tool.fixtures.js.map +0 -1
  514. package/src/__test-utils__/helpers/assertion.helpers.d.ts +0 -45
  515. package/src/__test-utils__/helpers/assertion.helpers.js +0 -153
  516. package/src/__test-utils__/helpers/assertion.helpers.js.map +0 -1
  517. package/src/__test-utils__/helpers/async.helpers.d.ts +0 -48
  518. package/src/__test-utils__/helpers/async.helpers.js +0 -112
  519. package/src/__test-utils__/helpers/async.helpers.js.map +0 -1
  520. package/src/__test-utils__/helpers/index.d.ts +0 -6
  521. package/src/__test-utils__/helpers/index.js +0 -10
  522. package/src/__test-utils__/helpers/index.js.map +0 -1
  523. package/src/__test-utils__/helpers/setup.helpers.d.ts +0 -54
  524. package/src/__test-utils__/helpers/setup.helpers.js +0 -106
  525. package/src/__test-utils__/helpers/setup.helpers.js.map +0 -1
  526. package/src/__test-utils__/index.d.ts +0 -9
  527. package/src/__test-utils__/index.js +0 -14
  528. package/src/__test-utils__/index.js.map +0 -1
  529. package/src/__test-utils__/mocks/flow-instance.mock.d.ts +0 -50
  530. package/src/__test-utils__/mocks/flow-instance.mock.js +0 -72
  531. package/src/__test-utils__/mocks/flow-instance.mock.js.map +0 -1
  532. package/src/__test-utils__/mocks/hook-registry.mock.d.ts +0 -25
  533. package/src/__test-utils__/mocks/hook-registry.mock.js +0 -65
  534. package/src/__test-utils__/mocks/hook-registry.mock.js.map +0 -1
  535. package/src/__test-utils__/mocks/index.d.ts +0 -8
  536. package/src/__test-utils__/mocks/index.js +0 -12
  537. package/src/__test-utils__/mocks/index.js.map +0 -1
  538. package/src/__test-utils__/mocks/plugin-registry.mock.d.ts +0 -43
  539. package/src/__test-utils__/mocks/plugin-registry.mock.js +0 -70
  540. package/src/__test-utils__/mocks/plugin-registry.mock.js.map +0 -1
  541. package/src/__test-utils__/mocks/provider-registry.mock.d.ts +0 -39
  542. package/src/__test-utils__/mocks/provider-registry.mock.js +0 -72
  543. package/src/__test-utils__/mocks/provider-registry.mock.js.map +0 -1
  544. package/src/__test-utils__/mocks/tool-registry.mock.d.ts +0 -43
  545. package/src/__test-utils__/mocks/tool-registry.mock.js +0 -79
  546. package/src/__test-utils__/mocks/tool-registry.mock.js.map +0 -1
  547. package/src/auth/path.utils.d.ts +0 -20
  548. package/src/auth/path.utils.js +0 -71
  549. package/src/auth/path.utils.js.map +0 -1
  550. package/src/common/decorators-old/async-with.decorator.d.ts +0 -10
  551. package/src/common/decorators-old/async-with.decorator.js +0 -24
  552. package/src/common/decorators-old/async-with.decorator.js.map +0 -1
  553. package/src/common/decorators-old/auth-hook.decorator.d.ts +0 -14
  554. package/src/common/decorators-old/auth-hook.decorator.js +0 -27
  555. package/src/common/decorators-old/auth-hook.decorator.js.map +0 -1
  556. package/src/common/decorators-old/session-hook.decorator.d.ts +0 -14
  557. package/src/common/decorators-old/session-hook.decorator.js +0 -27
  558. package/src/common/decorators-old/session-hook.decorator.js.map +0 -1
@@ -0,0 +1,323 @@
1
+ /**
2
+ * @file types.ts
3
+ * @description MCP Apps specification types.
4
+ *
5
+ * Implements types from the MCP Apps extension specification:
6
+ * https://github.com/modelcontextprotocol/ext-apps/blob/main/specification/draft/apps.mdx
7
+ *
8
+ * @module @frontmcp/sdk/mcp-apps/types
9
+ */
10
+ /**
11
+ * MCP Apps content MIME type.
12
+ * MVP specification supports only HTML5 documents.
13
+ */
14
+ export declare const MCP_APPS_MIME_TYPE: "text/html+mcp";
15
+ /**
16
+ * Supported MIME types for MCP Apps resources.
17
+ */
18
+ export type McpAppsMimeType = typeof MCP_APPS_MIME_TYPE;
19
+ /**
20
+ * Content Security Policy configuration for UI resources.
21
+ * Hosts construct CSP headers from these declared domains.
22
+ */
23
+ export interface McpAppsCSP {
24
+ /** Domains allowed for network requests (fetch, XHR, WebSocket) */
25
+ connectDomains?: string[];
26
+ /** Domains allowed for static assets (images, scripts, fonts) */
27
+ resourceDomains?: string[];
28
+ }
29
+ /**
30
+ * UI Resource metadata as defined in MCP Apps spec.
31
+ * Included in `_meta.ui` field of resource declarations.
32
+ */
33
+ export interface UIResourceMeta {
34
+ /** Content Security Policy configuration */
35
+ csp?: McpAppsCSP;
36
+ /** Dedicated sandbox origin for this resource */
37
+ domain?: string;
38
+ /** Whether host should render visual boundary around UI */
39
+ prefersBorder?: boolean;
40
+ }
41
+ /**
42
+ * Complete UI Resource declaration for MCP Apps.
43
+ */
44
+ export interface UIResource {
45
+ /** Resource URI (must start with "ui://") */
46
+ uri: string;
47
+ /** Human-readable display name */
48
+ name: string;
49
+ /** Optional description */
50
+ description?: string;
51
+ /** MIME type - must be "text/html+mcp" for MVP */
52
+ mimeType: McpAppsMimeType;
53
+ /** UI-specific metadata */
54
+ _meta?: {
55
+ ui?: UIResourceMeta;
56
+ };
57
+ }
58
+ /**
59
+ * Display modes for UI rendering.
60
+ */
61
+ export type McpAppsDisplayMode = 'inline' | 'fullscreen' | 'pip';
62
+ /**
63
+ * Platform types for host environment.
64
+ */
65
+ export type McpAppsPlatform = 'web' | 'desktop' | 'mobile';
66
+ /**
67
+ * Device capability flags.
68
+ */
69
+ export interface DeviceCapabilities {
70
+ /** Touch input available */
71
+ touch?: boolean;
72
+ /** Hover interactions available */
73
+ hover?: boolean;
74
+ }
75
+ /**
76
+ * Safe area insets for device screens.
77
+ */
78
+ export interface SafeAreaInsets {
79
+ top: number;
80
+ right: number;
81
+ bottom: number;
82
+ left: number;
83
+ }
84
+ /**
85
+ * Viewport dimensions.
86
+ */
87
+ export interface ViewportInfo {
88
+ width: number;
89
+ height: number;
90
+ maxHeight?: number;
91
+ maxWidth?: number;
92
+ }
93
+ /**
94
+ * Tool information passed to UI.
95
+ */
96
+ export interface ToolInfo {
97
+ /** Request ID for this tool invocation */
98
+ id?: string | number;
99
+ /** Tool definition */
100
+ tool: {
101
+ name: string;
102
+ description?: string;
103
+ inputSchema?: Record<string, unknown>;
104
+ };
105
+ }
106
+ /**
107
+ * Host context provided to UI on initialization.
108
+ * Contains environment information from the host.
109
+ */
110
+ export interface McpAppsHostContext {
111
+ /** Tool information for this UI context */
112
+ toolInfo?: ToolInfo;
113
+ /** Current theme */
114
+ theme?: 'light' | 'dark';
115
+ /** Current display mode */
116
+ displayMode?: McpAppsDisplayMode;
117
+ /** Viewport dimensions */
118
+ viewport?: ViewportInfo;
119
+ /** User's locale (BCP 47 tag) */
120
+ locale?: string;
121
+ /** User's timezone (IANA name) */
122
+ timeZone?: string;
123
+ /** Host platform type */
124
+ platform?: McpAppsPlatform;
125
+ /** Device capabilities */
126
+ deviceCapabilities?: DeviceCapabilities;
127
+ /** Safe area insets */
128
+ safeAreaInsets?: SafeAreaInsets;
129
+ }
130
+ /**
131
+ * Base JSON-RPC 2.0 message.
132
+ */
133
+ export interface JsonRpcMessage {
134
+ jsonrpc: '2.0';
135
+ }
136
+ /**
137
+ * JSON-RPC request message.
138
+ */
139
+ export interface JsonRpcRequest extends JsonRpcMessage {
140
+ id: string | number;
141
+ method: string;
142
+ params?: unknown;
143
+ }
144
+ /**
145
+ * JSON-RPC response message.
146
+ */
147
+ export interface JsonRpcResponse extends JsonRpcMessage {
148
+ id: string | number;
149
+ result?: unknown;
150
+ error?: JsonRpcError;
151
+ }
152
+ /**
153
+ * JSON-RPC notification (no response expected).
154
+ */
155
+ export interface JsonRpcNotification extends JsonRpcMessage {
156
+ method: string;
157
+ params?: unknown;
158
+ }
159
+ /**
160
+ * JSON-RPC error object.
161
+ */
162
+ export interface JsonRpcError {
163
+ code: number;
164
+ message: string;
165
+ data?: unknown;
166
+ }
167
+ /**
168
+ * UI Initialize request parameters.
169
+ * Sent by UI to host on startup.
170
+ */
171
+ export interface McpUiInitializeParams {
172
+ /** Protocol version */
173
+ protocolVersion: string;
174
+ /** UI capabilities */
175
+ capabilities?: {
176
+ /** Supported message types */
177
+ messages?: string[];
178
+ };
179
+ }
180
+ /**
181
+ * UI Initialize response from host.
182
+ */
183
+ export interface McpUiInitializeResult {
184
+ /** Protocol version (should match request) */
185
+ protocolVersion: string;
186
+ /** Host capabilities */
187
+ capabilities: {
188
+ /** Host-provided extensions */
189
+ extensions?: Record<string, unknown>;
190
+ };
191
+ /** Host context information */
192
+ hostContext: McpAppsHostContext;
193
+ }
194
+ /**
195
+ * Tool input notification parameters.
196
+ * Sent by host to UI with complete tool arguments.
197
+ */
198
+ export interface McpUiToolInputParams {
199
+ /** Tool arguments */
200
+ arguments: Record<string, unknown>;
201
+ }
202
+ /**
203
+ * Tool input partial notification parameters.
204
+ * Sent by host to UI during streaming.
205
+ */
206
+ export interface McpUiToolInputPartialParams {
207
+ /** Partial tool arguments (incremental) */
208
+ argumentsDelta: string;
209
+ }
210
+ /**
211
+ * Tool result notification parameters.
212
+ * Sent by host to UI after tool execution.
213
+ */
214
+ export interface McpUiToolResultParams {
215
+ /** Tool execution result */
216
+ content: Array<{
217
+ type: 'text' | 'image' | 'resource';
218
+ text?: string;
219
+ data?: string;
220
+ mimeType?: string;
221
+ uri?: string;
222
+ }>;
223
+ /** Structured content for UI rendering only */
224
+ structuredContent?: Record<string, unknown>;
225
+ /** Additional metadata */
226
+ _meta?: Record<string, unknown>;
227
+ }
228
+ /**
229
+ * Tool cancelled notification parameters.
230
+ */
231
+ export interface McpUiToolCancelledParams {
232
+ /** Reason for cancellation */
233
+ reason?: string;
234
+ }
235
+ /**
236
+ * Size change notification parameters.
237
+ * Sent by host when UI viewport changes.
238
+ */
239
+ export interface McpUiSizeChangeParams {
240
+ /** New viewport dimensions */
241
+ viewport: ViewportInfo;
242
+ }
243
+ /**
244
+ * Host context change notification parameters.
245
+ */
246
+ export interface McpUiHostContextChangeParams {
247
+ /** Changed context fields */
248
+ changes: Partial<McpAppsHostContext>;
249
+ }
250
+ /**
251
+ * Open link request parameters.
252
+ * Sent by UI to request host open a URL.
253
+ */
254
+ export interface McpUiOpenLinkParams {
255
+ /** URL to open */
256
+ url: string;
257
+ }
258
+ /**
259
+ * Send message request parameters.
260
+ * Sent by UI to send content to host's chat.
261
+ */
262
+ export interface McpUiMessageParams {
263
+ /** Message content */
264
+ content: string;
265
+ }
266
+ /**
267
+ * MCP Apps protocol method names.
268
+ */
269
+ export declare const MCP_APPS_METHODS: {
270
+ readonly INITIALIZE: "ui/initialize";
271
+ readonly INITIALIZED: "ui/notifications/initialized";
272
+ readonly TOOL_INPUT: "ui/notifications/tool-input";
273
+ readonly TOOL_INPUT_PARTIAL: "ui/notifications/tool-input-partial";
274
+ readonly TOOL_RESULT: "ui/notifications/tool-result";
275
+ readonly TOOL_CANCELLED: "ui/notifications/tool-cancelled";
276
+ readonly SIZE_CHANGE: "ui/notifications/size-change";
277
+ readonly HOST_CONTEXT_CHANGE: "ui/host-context-change";
278
+ readonly RESOURCE_TEARDOWN: "ui/resource-teardown";
279
+ readonly OPEN_LINK: "ui/open-link";
280
+ readonly MESSAGE: "ui/message";
281
+ readonly TOOLS_CALL: "tools/call";
282
+ readonly RESOURCES_READ: "resources/read";
283
+ readonly NOTIFICATIONS_MESSAGE: "notifications/message";
284
+ readonly PING: "ping";
285
+ readonly SANDBOX_READY: "ui/notifications/sandbox-ready";
286
+ readonly SANDBOX_RESOURCE_READY: "ui/notifications/sandbox-resource-ready";
287
+ };
288
+ /**
289
+ * MCP Apps extension capability declaration.
290
+ * Advertised by clients during connection.
291
+ */
292
+ export interface McpAppsExtensionCapability {
293
+ /** Supported MIME types */
294
+ mimeTypes: McpAppsMimeType[];
295
+ }
296
+ /**
297
+ * Client extensions object including MCP Apps.
298
+ */
299
+ export interface McpClientExtensions {
300
+ 'io.modelcontextprotocol/ui'?: McpAppsExtensionCapability;
301
+ [key: string]: unknown;
302
+ }
303
+ /**
304
+ * Tool metadata extension for MCP Apps.
305
+ * Added to tool's `_meta` field to link to UI resource.
306
+ */
307
+ export interface ToolUIMeta {
308
+ /** URI of the UI resource template */
309
+ 'ui/resourceUri'?: string;
310
+ /** MIME type of the UI resource */
311
+ 'ui/mimeType'?: McpAppsMimeType;
312
+ }
313
+ /**
314
+ * Extended tool result metadata including MCP Apps fields.
315
+ */
316
+ export interface McpAppsToolResultMeta extends ToolUIMeta {
317
+ /** Additional platform-specific metadata */
318
+ [key: string]: unknown;
319
+ }
320
+ /**
321
+ * Current MCP Apps protocol version.
322
+ */
323
+ export declare const MCP_APPS_PROTOCOL_VERSION: "2025-01-01";
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+ /**
3
+ * @file types.ts
4
+ * @description MCP Apps specification types.
5
+ *
6
+ * Implements types from the MCP Apps extension specification:
7
+ * https://github.com/modelcontextprotocol/ext-apps/blob/main/specification/draft/apps.mdx
8
+ *
9
+ * @module @frontmcp/sdk/mcp-apps/types
10
+ */
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.MCP_APPS_PROTOCOL_VERSION = exports.MCP_APPS_METHODS = exports.MCP_APPS_MIME_TYPE = void 0;
13
+ // ============================================
14
+ // MIME Types
15
+ // ============================================
16
+ /**
17
+ * MCP Apps content MIME type.
18
+ * MVP specification supports only HTML5 documents.
19
+ */
20
+ exports.MCP_APPS_MIME_TYPE = 'text/html+mcp';
21
+ // ============================================
22
+ // MCP Apps Method Names
23
+ // ============================================
24
+ /**
25
+ * MCP Apps protocol method names.
26
+ */
27
+ exports.MCP_APPS_METHODS = {
28
+ // Lifecycle
29
+ INITIALIZE: 'ui/initialize',
30
+ INITIALIZED: 'ui/notifications/initialized',
31
+ // Tool lifecycle notifications (Host → UI)
32
+ TOOL_INPUT: 'ui/notifications/tool-input',
33
+ TOOL_INPUT_PARTIAL: 'ui/notifications/tool-input-partial',
34
+ TOOL_RESULT: 'ui/notifications/tool-result',
35
+ TOOL_CANCELLED: 'ui/notifications/tool-cancelled',
36
+ // Context notifications (Host → UI)
37
+ SIZE_CHANGE: 'ui/notifications/size-change',
38
+ HOST_CONTEXT_CHANGE: 'ui/host-context-change',
39
+ RESOURCE_TEARDOWN: 'ui/resource-teardown',
40
+ // UI Requests (UI → Host)
41
+ OPEN_LINK: 'ui/open-link',
42
+ MESSAGE: 'ui/message',
43
+ // Standard MCP methods that UI can use
44
+ TOOLS_CALL: 'tools/call',
45
+ RESOURCES_READ: 'resources/read',
46
+ NOTIFICATIONS_MESSAGE: 'notifications/message',
47
+ PING: 'ping',
48
+ // Sandbox proxy (web hosts only)
49
+ SANDBOX_READY: 'ui/notifications/sandbox-ready',
50
+ SANDBOX_RESOURCE_READY: 'ui/notifications/sandbox-resource-ready',
51
+ };
52
+ // ============================================
53
+ // Protocol Version
54
+ // ============================================
55
+ /**
56
+ * Current MCP Apps protocol version.
57
+ */
58
+ exports.MCP_APPS_PROTOCOL_VERSION = '2025-01-01';
59
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/mcp-apps/types.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;;AAEH,+CAA+C;AAC/C,aAAa;AACb,+CAA+C;AAE/C;;;GAGG;AACU,QAAA,kBAAkB,GAAG,eAAwB,CAAC;AAuS3D,+CAA+C;AAC/C,wBAAwB;AACxB,+CAA+C;AAE/C;;GAEG;AACU,QAAA,gBAAgB,GAAG;IAC9B,YAAY;IACZ,UAAU,EAAE,eAAe;IAC3B,WAAW,EAAE,8BAA8B;IAE3C,2CAA2C;IAC3C,UAAU,EAAE,6BAA6B;IACzC,kBAAkB,EAAE,qCAAqC;IACzD,WAAW,EAAE,8BAA8B;IAC3C,cAAc,EAAE,iCAAiC;IAEjD,oCAAoC;IACpC,WAAW,EAAE,8BAA8B;IAC3C,mBAAmB,EAAE,wBAAwB;IAC7C,iBAAiB,EAAE,sBAAsB;IAEzC,0BAA0B;IAC1B,SAAS,EAAE,cAAc;IACzB,OAAO,EAAE,YAAY;IAErB,uCAAuC;IACvC,UAAU,EAAE,YAAY;IACxB,cAAc,EAAE,gBAAgB;IAChC,qBAAqB,EAAE,uBAAuB;IAC9C,IAAI,EAAE,MAAM;IAEZ,iCAAiC;IACjC,aAAa,EAAE,gCAAgC;IAC/C,sBAAsB,EAAE,yCAAyC;CACzD,CAAC;AA8CX,+CAA+C;AAC/C,mBAAmB;AACnB,+CAA+C;AAE/C;;GAEG;AACU,QAAA,yBAAyB,GAAG,YAAqB,CAAC","sourcesContent":["/**\n * @file types.ts\n * @description MCP Apps specification types.\n *\n * Implements types from the MCP Apps extension specification:\n * https://github.com/modelcontextprotocol/ext-apps/blob/main/specification/draft/apps.mdx\n *\n * @module @frontmcp/sdk/mcp-apps/types\n */\n\n// ============================================\n// MIME Types\n// ============================================\n\n/**\n * MCP Apps content MIME type.\n * MVP specification supports only HTML5 documents.\n */\nexport const MCP_APPS_MIME_TYPE = 'text/html+mcp' as const;\n\n/**\n * Supported MIME types for MCP Apps resources.\n */\nexport type McpAppsMimeType = typeof MCP_APPS_MIME_TYPE;\n\n// ============================================\n// UI Resource Types\n// ============================================\n\n/**\n * Content Security Policy configuration for UI resources.\n * Hosts construct CSP headers from these declared domains.\n */\nexport interface McpAppsCSP {\n /** Domains allowed for network requests (fetch, XHR, WebSocket) */\n connectDomains?: string[];\n /** Domains allowed for static assets (images, scripts, fonts) */\n resourceDomains?: string[];\n}\n\n/**\n * UI Resource metadata as defined in MCP Apps spec.\n * Included in `_meta.ui` field of resource declarations.\n */\nexport interface UIResourceMeta {\n /** Content Security Policy configuration */\n csp?: McpAppsCSP;\n /** Dedicated sandbox origin for this resource */\n domain?: string;\n /** Whether host should render visual boundary around UI */\n prefersBorder?: boolean;\n}\n\n/**\n * Complete UI Resource declaration for MCP Apps.\n */\nexport interface UIResource {\n /** Resource URI (must start with \"ui://\") */\n uri: string;\n /** Human-readable display name */\n name: string;\n /** Optional description */\n description?: string;\n /** MIME type - must be \"text/html+mcp\" for MVP */\n mimeType: McpAppsMimeType;\n /** UI-specific metadata */\n _meta?: {\n ui?: UIResourceMeta;\n };\n}\n\n// ============================================\n// Host Context Types\n// ============================================\n\n/**\n * Display modes for UI rendering.\n */\nexport type McpAppsDisplayMode = 'inline' | 'fullscreen' | 'pip';\n\n/**\n * Platform types for host environment.\n */\nexport type McpAppsPlatform = 'web' | 'desktop' | 'mobile';\n\n/**\n * Device capability flags.\n */\nexport interface DeviceCapabilities {\n /** Touch input available */\n touch?: boolean;\n /** Hover interactions available */\n hover?: boolean;\n}\n\n/**\n * Safe area insets for device screens.\n */\nexport interface SafeAreaInsets {\n top: number;\n right: number;\n bottom: number;\n left: number;\n}\n\n/**\n * Viewport dimensions.\n */\nexport interface ViewportInfo {\n width: number;\n height: number;\n maxHeight?: number;\n maxWidth?: number;\n}\n\n/**\n * Tool information passed to UI.\n */\nexport interface ToolInfo {\n /** Request ID for this tool invocation */\n id?: string | number;\n /** Tool definition */\n tool: {\n name: string;\n description?: string;\n inputSchema?: Record<string, unknown>;\n };\n}\n\n/**\n * Host context provided to UI on initialization.\n * Contains environment information from the host.\n */\nexport interface McpAppsHostContext {\n /** Tool information for this UI context */\n toolInfo?: ToolInfo;\n /** Current theme */\n theme?: 'light' | 'dark';\n /** Current display mode */\n displayMode?: McpAppsDisplayMode;\n /** Viewport dimensions */\n viewport?: ViewportInfo;\n /** User's locale (BCP 47 tag) */\n locale?: string;\n /** User's timezone (IANA name) */\n timeZone?: string;\n /** Host platform type */\n platform?: McpAppsPlatform;\n /** Device capabilities */\n deviceCapabilities?: DeviceCapabilities;\n /** Safe area insets */\n safeAreaInsets?: SafeAreaInsets;\n}\n\n// ============================================\n// JSON-RPC Message Types\n// ============================================\n\n/**\n * Base JSON-RPC 2.0 message.\n */\nexport interface JsonRpcMessage {\n jsonrpc: '2.0';\n}\n\n/**\n * JSON-RPC request message.\n */\nexport interface JsonRpcRequest extends JsonRpcMessage {\n id: string | number;\n method: string;\n params?: unknown;\n}\n\n/**\n * JSON-RPC response message.\n */\nexport interface JsonRpcResponse extends JsonRpcMessage {\n id: string | number;\n result?: unknown;\n error?: JsonRpcError;\n}\n\n/**\n * JSON-RPC notification (no response expected).\n */\nexport interface JsonRpcNotification extends JsonRpcMessage {\n method: string;\n params?: unknown;\n}\n\n/**\n * JSON-RPC error object.\n */\nexport interface JsonRpcError {\n code: number;\n message: string;\n data?: unknown;\n}\n\n// ============================================\n// MCP Apps Protocol Messages\n// ============================================\n\n/**\n * UI Initialize request parameters.\n * Sent by UI to host on startup.\n */\nexport interface McpUiInitializeParams {\n /** Protocol version */\n protocolVersion: string;\n /** UI capabilities */\n capabilities?: {\n /** Supported message types */\n messages?: string[];\n };\n}\n\n/**\n * UI Initialize response from host.\n */\nexport interface McpUiInitializeResult {\n /** Protocol version (should match request) */\n protocolVersion: string;\n /** Host capabilities */\n capabilities: {\n /** Host-provided extensions */\n extensions?: Record<string, unknown>;\n };\n /** Host context information */\n hostContext: McpAppsHostContext;\n}\n\n/**\n * Tool input notification parameters.\n * Sent by host to UI with complete tool arguments.\n */\nexport interface McpUiToolInputParams {\n /** Tool arguments */\n arguments: Record<string, unknown>;\n}\n\n/**\n * Tool input partial notification parameters.\n * Sent by host to UI during streaming.\n */\nexport interface McpUiToolInputPartialParams {\n /** Partial tool arguments (incremental) */\n argumentsDelta: string;\n}\n\n/**\n * Tool result notification parameters.\n * Sent by host to UI after tool execution.\n */\nexport interface McpUiToolResultParams {\n /** Tool execution result */\n content: Array<{\n type: 'text' | 'image' | 'resource';\n text?: string;\n data?: string;\n mimeType?: string;\n uri?: string;\n }>;\n /** Structured content for UI rendering only */\n structuredContent?: Record<string, unknown>;\n /** Additional metadata */\n _meta?: Record<string, unknown>;\n}\n\n/**\n * Tool cancelled notification parameters.\n */\nexport interface McpUiToolCancelledParams {\n /** Reason for cancellation */\n reason?: string;\n}\n\n/**\n * Size change notification parameters.\n * Sent by host when UI viewport changes.\n */\nexport interface McpUiSizeChangeParams {\n /** New viewport dimensions */\n viewport: ViewportInfo;\n}\n\n/**\n * Host context change notification parameters.\n */\nexport interface McpUiHostContextChangeParams {\n /** Changed context fields */\n changes: Partial<McpAppsHostContext>;\n}\n\n/**\n * Open link request parameters.\n * Sent by UI to request host open a URL.\n */\nexport interface McpUiOpenLinkParams {\n /** URL to open */\n url: string;\n}\n\n/**\n * Send message request parameters.\n * Sent by UI to send content to host's chat.\n */\nexport interface McpUiMessageParams {\n /** Message content */\n content: string;\n}\n\n// ============================================\n// MCP Apps Method Names\n// ============================================\n\n/**\n * MCP Apps protocol method names.\n */\nexport const MCP_APPS_METHODS = {\n // Lifecycle\n INITIALIZE: 'ui/initialize',\n INITIALIZED: 'ui/notifications/initialized',\n\n // Tool lifecycle notifications (Host → UI)\n TOOL_INPUT: 'ui/notifications/tool-input',\n TOOL_INPUT_PARTIAL: 'ui/notifications/tool-input-partial',\n TOOL_RESULT: 'ui/notifications/tool-result',\n TOOL_CANCELLED: 'ui/notifications/tool-cancelled',\n\n // Context notifications (Host → UI)\n SIZE_CHANGE: 'ui/notifications/size-change',\n HOST_CONTEXT_CHANGE: 'ui/host-context-change',\n RESOURCE_TEARDOWN: 'ui/resource-teardown',\n\n // UI Requests (UI → Host)\n OPEN_LINK: 'ui/open-link',\n MESSAGE: 'ui/message',\n\n // Standard MCP methods that UI can use\n TOOLS_CALL: 'tools/call',\n RESOURCES_READ: 'resources/read',\n NOTIFICATIONS_MESSAGE: 'notifications/message',\n PING: 'ping',\n\n // Sandbox proxy (web hosts only)\n SANDBOX_READY: 'ui/notifications/sandbox-ready',\n SANDBOX_RESOURCE_READY: 'ui/notifications/sandbox-resource-ready',\n} as const;\n\n// ============================================\n// Extension Capability Types\n// ============================================\n\n/**\n * MCP Apps extension capability declaration.\n * Advertised by clients during connection.\n */\nexport interface McpAppsExtensionCapability {\n /** Supported MIME types */\n mimeTypes: McpAppsMimeType[];\n}\n\n/**\n * Client extensions object including MCP Apps.\n */\nexport interface McpClientExtensions {\n 'io.modelcontextprotocol/ui'?: McpAppsExtensionCapability;\n [key: string]: unknown;\n}\n\n// ============================================\n// Tool Metadata Extension\n// ============================================\n\n/**\n * Tool metadata extension for MCP Apps.\n * Added to tool's `_meta` field to link to UI resource.\n */\nexport interface ToolUIMeta {\n /** URI of the UI resource template */\n 'ui/resourceUri'?: string;\n /** MIME type of the UI resource */\n 'ui/mimeType'?: McpAppsMimeType;\n}\n\n/**\n * Extended tool result metadata including MCP Apps fields.\n */\nexport interface McpAppsToolResultMeta extends ToolUIMeta {\n /** Additional platform-specific metadata */\n [key: string]: unknown;\n}\n\n// ============================================\n// Protocol Version\n// ============================================\n\n/**\n * Current MCP Apps protocol version.\n */\nexport const MCP_APPS_PROTOCOL_VERSION = '2025-01-01' as const;\n"]}
@@ -0,0 +1 @@
1
+ export { NotificationService, type McpNotificationMethod, type RegisteredServer, type McpLoggingLevel, MCP_LOGGING_LEVEL_PRIORITY, type Root, type ClientCapabilities, type ClientInfo, type AIPlatformType, detectAIPlatform, detectPlatformFromUserAgent, detectPlatformFromCapabilities, hasMcpAppsExtension, MCP_APPS_EXTENSION_KEY, } from './notification.service';
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ // file: libs/sdk/src/notification/index.ts
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.MCP_APPS_EXTENSION_KEY = exports.hasMcpAppsExtension = exports.detectPlatformFromCapabilities = exports.detectPlatformFromUserAgent = exports.detectAIPlatform = exports.MCP_LOGGING_LEVEL_PRIORITY = exports.NotificationService = void 0;
5
+ var notification_service_1 = require("./notification.service");
6
+ Object.defineProperty(exports, "NotificationService", { enumerable: true, get: function () { return notification_service_1.NotificationService; } });
7
+ Object.defineProperty(exports, "MCP_LOGGING_LEVEL_PRIORITY", { enumerable: true, get: function () { return notification_service_1.MCP_LOGGING_LEVEL_PRIORITY; } });
8
+ Object.defineProperty(exports, "detectAIPlatform", { enumerable: true, get: function () { return notification_service_1.detectAIPlatform; } });
9
+ Object.defineProperty(exports, "detectPlatformFromUserAgent", { enumerable: true, get: function () { return notification_service_1.detectPlatformFromUserAgent; } });
10
+ Object.defineProperty(exports, "detectPlatformFromCapabilities", { enumerable: true, get: function () { return notification_service_1.detectPlatformFromCapabilities; } });
11
+ Object.defineProperty(exports, "hasMcpAppsExtension", { enumerable: true, get: function () { return notification_service_1.hasMcpAppsExtension; } });
12
+ Object.defineProperty(exports, "MCP_APPS_EXTENSION_KEY", { enumerable: true, get: function () { return notification_service_1.MCP_APPS_EXTENSION_KEY; } });
13
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/notification/index.ts"],"names":[],"mappings":";AAAA,2CAA2C;;;AAE3C,+DAegC;AAd9B,2HAAA,mBAAmB,OAAA;AAInB,kIAAA,0BAA0B,OAAA;AAK1B,wHAAA,gBAAgB,OAAA;AAChB,mIAAA,2BAA2B,OAAA;AAC3B,sIAAA,8BAA8B,OAAA;AAC9B,2HAAA,mBAAmB,OAAA;AACnB,8HAAA,sBAAsB,OAAA","sourcesContent":["// file: libs/sdk/src/notification/index.ts\n\nexport {\n NotificationService,\n type McpNotificationMethod,\n type RegisteredServer,\n type McpLoggingLevel,\n MCP_LOGGING_LEVEL_PRIORITY,\n type Root,\n type ClientCapabilities,\n type ClientInfo,\n type AIPlatformType,\n detectAIPlatform,\n detectPlatformFromUserAgent,\n detectPlatformFromCapabilities,\n hasMcpAppsExtension,\n MCP_APPS_EXTENSION_KEY,\n} from './notification.service';\n"]}