@frontmcp/uipack 0.6.1

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 (417) hide show
  1. package/CLAUDE.md +246 -0
  2. package/LICENSE +201 -0
  3. package/README.md +150 -0
  4. package/adapters/index.d.ts +13 -0
  5. package/adapters/index.d.ts.map +1 -0
  6. package/adapters/index.js +462 -0
  7. package/adapters/platform-meta.d.ts +166 -0
  8. package/adapters/platform-meta.d.ts.map +1 -0
  9. package/adapters/response-builder.d.ts +108 -0
  10. package/adapters/response-builder.d.ts.map +1 -0
  11. package/adapters/serving-mode.d.ts +107 -0
  12. package/adapters/serving-mode.d.ts.map +1 -0
  13. package/base-template/bridge.d.ts +90 -0
  14. package/base-template/bridge.d.ts.map +1 -0
  15. package/base-template/default-base-template.d.ts +92 -0
  16. package/base-template/default-base-template.d.ts.map +1 -0
  17. package/base-template/index.d.ts +15 -0
  18. package/base-template/index.d.ts.map +1 -0
  19. package/base-template/index.js +1398 -0
  20. package/base-template/polyfills.d.ts +31 -0
  21. package/base-template/polyfills.d.ts.map +1 -0
  22. package/base-template/theme-styles.d.ts +74 -0
  23. package/base-template/theme-styles.d.ts.map +1 -0
  24. package/bridge-runtime/iife-generator.d.ts +62 -0
  25. package/bridge-runtime/iife-generator.d.ts.map +1 -0
  26. package/bridge-runtime/index.d.ts +10 -0
  27. package/bridge-runtime/index.d.ts.map +1 -0
  28. package/bridge-runtime/index.js +883 -0
  29. package/build/cdn-resources.d.ts +243 -0
  30. package/build/cdn-resources.d.ts.map +1 -0
  31. package/build/index.d.ts +295 -0
  32. package/build/index.d.ts.map +1 -0
  33. package/build/index.js +6861 -0
  34. package/build/widget-manifest.d.ts +362 -0
  35. package/build/widget-manifest.d.ts.map +1 -0
  36. package/bundler/cache.d.ts +173 -0
  37. package/bundler/cache.d.ts.map +1 -0
  38. package/bundler/file-cache/component-builder.d.ts +167 -0
  39. package/bundler/file-cache/component-builder.d.ts.map +1 -0
  40. package/bundler/file-cache/hash-calculator.d.ts +155 -0
  41. package/bundler/file-cache/hash-calculator.d.ts.map +1 -0
  42. package/bundler/file-cache/index.d.ts +12 -0
  43. package/bundler/file-cache/index.d.ts.map +1 -0
  44. package/bundler/file-cache/storage/filesystem.d.ts +149 -0
  45. package/bundler/file-cache/storage/filesystem.d.ts.map +1 -0
  46. package/bundler/file-cache/storage/index.d.ts +11 -0
  47. package/bundler/file-cache/storage/index.d.ts.map +1 -0
  48. package/bundler/file-cache/storage/interface.d.ts +152 -0
  49. package/bundler/file-cache/storage/interface.d.ts.map +1 -0
  50. package/bundler/file-cache/storage/redis.d.ts +139 -0
  51. package/bundler/file-cache/storage/redis.d.ts.map +1 -0
  52. package/bundler/index.d.ts +35 -0
  53. package/bundler/index.d.ts.map +1 -0
  54. package/bundler/index.js +2947 -0
  55. package/bundler/sandbox/enclave-adapter.d.ts +121 -0
  56. package/bundler/sandbox/enclave-adapter.d.ts.map +1 -0
  57. package/bundler/sandbox/executor.d.ts +14 -0
  58. package/bundler/sandbox/executor.d.ts.map +1 -0
  59. package/bundler/sandbox/policy.d.ts +62 -0
  60. package/bundler/sandbox/policy.d.ts.map +1 -0
  61. package/bundler/types.d.ts +702 -0
  62. package/bundler/types.d.ts.map +1 -0
  63. package/dependency/cdn-registry.d.ts +98 -0
  64. package/dependency/cdn-registry.d.ts.map +1 -0
  65. package/dependency/import-map.d.ts +186 -0
  66. package/dependency/import-map.d.ts.map +1 -0
  67. package/dependency/import-parser.d.ts +82 -0
  68. package/dependency/import-parser.d.ts.map +1 -0
  69. package/dependency/index.d.ts +17 -0
  70. package/dependency/index.d.ts.map +1 -0
  71. package/dependency/index.js +3215 -0
  72. package/dependency/resolver.d.ts +164 -0
  73. package/dependency/resolver.d.ts.map +1 -0
  74. package/dependency/schemas.d.ts +486 -0
  75. package/dependency/schemas.d.ts.map +1 -0
  76. package/dependency/template-loader.d.ts +204 -0
  77. package/dependency/template-loader.d.ts.map +1 -0
  78. package/dependency/template-processor.d.ts +118 -0
  79. package/dependency/template-processor.d.ts.map +1 -0
  80. package/dependency/types.d.ts +739 -0
  81. package/dependency/types.d.ts.map +1 -0
  82. package/esm/adapters/index.d.ts +13 -0
  83. package/esm/adapters/index.d.ts.map +1 -0
  84. package/esm/adapters/index.js +427 -0
  85. package/esm/adapters/platform-meta.d.ts +166 -0
  86. package/esm/adapters/platform-meta.d.ts.map +1 -0
  87. package/esm/adapters/response-builder.d.ts +108 -0
  88. package/esm/adapters/response-builder.d.ts.map +1 -0
  89. package/esm/adapters/serving-mode.d.ts +107 -0
  90. package/esm/adapters/serving-mode.d.ts.map +1 -0
  91. package/esm/base-template/bridge.d.ts +90 -0
  92. package/esm/base-template/bridge.d.ts.map +1 -0
  93. package/esm/base-template/default-base-template.d.ts +92 -0
  94. package/esm/base-template/default-base-template.d.ts.map +1 -0
  95. package/esm/base-template/index.d.ts +15 -0
  96. package/esm/base-template/index.d.ts.map +1 -0
  97. package/esm/base-template/index.js +1364 -0
  98. package/esm/base-template/polyfills.d.ts +31 -0
  99. package/esm/base-template/polyfills.d.ts.map +1 -0
  100. package/esm/base-template/theme-styles.d.ts +74 -0
  101. package/esm/base-template/theme-styles.d.ts.map +1 -0
  102. package/esm/bridge-runtime/iife-generator.d.ts +62 -0
  103. package/esm/bridge-runtime/iife-generator.d.ts.map +1 -0
  104. package/esm/bridge-runtime/index.d.ts +10 -0
  105. package/esm/bridge-runtime/index.d.ts.map +1 -0
  106. package/esm/bridge-runtime/index.js +853 -0
  107. package/esm/build/cdn-resources.d.ts +243 -0
  108. package/esm/build/cdn-resources.d.ts.map +1 -0
  109. package/esm/build/index.d.ts +295 -0
  110. package/esm/build/index.d.ts.map +1 -0
  111. package/esm/build/index.js +6786 -0
  112. package/esm/build/widget-manifest.d.ts +362 -0
  113. package/esm/build/widget-manifest.d.ts.map +1 -0
  114. package/esm/bundler/cache.d.ts +173 -0
  115. package/esm/bundler/cache.d.ts.map +1 -0
  116. package/esm/bundler/file-cache/component-builder.d.ts +167 -0
  117. package/esm/bundler/file-cache/component-builder.d.ts.map +1 -0
  118. package/esm/bundler/file-cache/hash-calculator.d.ts +155 -0
  119. package/esm/bundler/file-cache/hash-calculator.d.ts.map +1 -0
  120. package/esm/bundler/file-cache/index.d.ts +12 -0
  121. package/esm/bundler/file-cache/index.d.ts.map +1 -0
  122. package/esm/bundler/file-cache/storage/filesystem.d.ts +149 -0
  123. package/esm/bundler/file-cache/storage/filesystem.d.ts.map +1 -0
  124. package/esm/bundler/file-cache/storage/index.d.ts +11 -0
  125. package/esm/bundler/file-cache/storage/index.d.ts.map +1 -0
  126. package/esm/bundler/file-cache/storage/interface.d.ts +152 -0
  127. package/esm/bundler/file-cache/storage/interface.d.ts.map +1 -0
  128. package/esm/bundler/file-cache/storage/redis.d.ts +139 -0
  129. package/esm/bundler/file-cache/storage/redis.d.ts.map +1 -0
  130. package/esm/bundler/index.d.ts +35 -0
  131. package/esm/bundler/index.d.ts.map +1 -0
  132. package/esm/bundler/index.js +2882 -0
  133. package/esm/bundler/sandbox/enclave-adapter.d.ts +121 -0
  134. package/esm/bundler/sandbox/enclave-adapter.d.ts.map +1 -0
  135. package/esm/bundler/sandbox/executor.d.ts +14 -0
  136. package/esm/bundler/sandbox/executor.d.ts.map +1 -0
  137. package/esm/bundler/sandbox/policy.d.ts +62 -0
  138. package/esm/bundler/sandbox/policy.d.ts.map +1 -0
  139. package/esm/bundler/types.d.ts +702 -0
  140. package/esm/bundler/types.d.ts.map +1 -0
  141. package/esm/dependency/cdn-registry.d.ts +98 -0
  142. package/esm/dependency/cdn-registry.d.ts.map +1 -0
  143. package/esm/dependency/import-map.d.ts +186 -0
  144. package/esm/dependency/import-map.d.ts.map +1 -0
  145. package/esm/dependency/import-parser.d.ts +82 -0
  146. package/esm/dependency/import-parser.d.ts.map +1 -0
  147. package/esm/dependency/index.d.ts +17 -0
  148. package/esm/dependency/index.d.ts.map +1 -0
  149. package/esm/dependency/index.js +3096 -0
  150. package/esm/dependency/resolver.d.ts +164 -0
  151. package/esm/dependency/resolver.d.ts.map +1 -0
  152. package/esm/dependency/schemas.d.ts +486 -0
  153. package/esm/dependency/schemas.d.ts.map +1 -0
  154. package/esm/dependency/template-loader.d.ts +204 -0
  155. package/esm/dependency/template-loader.d.ts.map +1 -0
  156. package/esm/dependency/template-processor.d.ts +118 -0
  157. package/esm/dependency/template-processor.d.ts.map +1 -0
  158. package/esm/dependency/types.d.ts +739 -0
  159. package/esm/dependency/types.d.ts.map +1 -0
  160. package/esm/handlebars/expression-extractor.d.ts +147 -0
  161. package/esm/handlebars/expression-extractor.d.ts.map +1 -0
  162. package/esm/handlebars/helpers.d.ts +339 -0
  163. package/esm/handlebars/helpers.d.ts.map +1 -0
  164. package/esm/handlebars/index.d.ts +195 -0
  165. package/esm/handlebars/index.d.ts.map +1 -0
  166. package/esm/handlebars/index.js +587 -0
  167. package/esm/index.d.ts +50 -0
  168. package/esm/index.d.ts.map +1 -0
  169. package/esm/index.js +12434 -0
  170. package/esm/package.json +68 -0
  171. package/esm/registry/index.d.ts +46 -0
  172. package/esm/registry/index.d.ts.map +1 -0
  173. package/esm/registry/index.js +6237 -0
  174. package/esm/registry/render-template.d.ts +91 -0
  175. package/esm/registry/render-template.d.ts.map +1 -0
  176. package/esm/registry/tool-ui.registry.d.ts +294 -0
  177. package/esm/registry/tool-ui.registry.d.ts.map +1 -0
  178. package/esm/registry/uri-utils.d.ts +56 -0
  179. package/esm/registry/uri-utils.d.ts.map +1 -0
  180. package/esm/renderers/cache.d.ts +145 -0
  181. package/esm/renderers/cache.d.ts.map +1 -0
  182. package/esm/renderers/html.renderer.d.ts +123 -0
  183. package/esm/renderers/html.renderer.d.ts.map +1 -0
  184. package/esm/renderers/index.d.ts +36 -0
  185. package/esm/renderers/index.d.ts.map +1 -0
  186. package/esm/renderers/index.js +1654 -0
  187. package/esm/renderers/mdx.renderer.d.ts +120 -0
  188. package/esm/renderers/mdx.renderer.d.ts.map +1 -0
  189. package/esm/renderers/registry.d.ts +133 -0
  190. package/esm/renderers/registry.d.ts.map +1 -0
  191. package/esm/renderers/types.d.ts +342 -0
  192. package/esm/renderers/types.d.ts.map +1 -0
  193. package/esm/renderers/utils/detect.d.ts +107 -0
  194. package/esm/renderers/utils/detect.d.ts.map +1 -0
  195. package/esm/renderers/utils/hash.d.ts +40 -0
  196. package/esm/renderers/utils/hash.d.ts.map +1 -0
  197. package/esm/renderers/utils/index.d.ts +9 -0
  198. package/esm/renderers/utils/index.d.ts.map +1 -0
  199. package/esm/renderers/utils/transpiler.d.ts +89 -0
  200. package/esm/renderers/utils/transpiler.d.ts.map +1 -0
  201. package/esm/runtime/adapters/html.adapter.d.ts +59 -0
  202. package/esm/runtime/adapters/html.adapter.d.ts.map +1 -0
  203. package/esm/runtime/adapters/index.d.ts +26 -0
  204. package/esm/runtime/adapters/index.d.ts.map +1 -0
  205. package/esm/runtime/adapters/mdx.adapter.d.ts +73 -0
  206. package/esm/runtime/adapters/mdx.adapter.d.ts.map +1 -0
  207. package/esm/runtime/adapters/types.d.ts +95 -0
  208. package/esm/runtime/adapters/types.d.ts.map +1 -0
  209. package/esm/runtime/csp.d.ts +48 -0
  210. package/esm/runtime/csp.d.ts.map +1 -0
  211. package/esm/runtime/index.d.ts +17 -0
  212. package/esm/runtime/index.d.ts.map +1 -0
  213. package/esm/runtime/index.js +4976 -0
  214. package/esm/runtime/mcp-bridge.d.ts +101 -0
  215. package/esm/runtime/mcp-bridge.d.ts.map +1 -0
  216. package/esm/runtime/renderer-runtime.d.ts +133 -0
  217. package/esm/runtime/renderer-runtime.d.ts.map +1 -0
  218. package/esm/runtime/sanitizer.d.ts +172 -0
  219. package/esm/runtime/sanitizer.d.ts.map +1 -0
  220. package/esm/runtime/types.d.ts +415 -0
  221. package/esm/runtime/types.d.ts.map +1 -0
  222. package/esm/runtime/wrapper.d.ts +421 -0
  223. package/esm/runtime/wrapper.d.ts.map +1 -0
  224. package/esm/styles/index.d.ts +8 -0
  225. package/esm/styles/index.d.ts.map +1 -0
  226. package/esm/styles/index.js +171 -0
  227. package/esm/styles/variants.d.ts +51 -0
  228. package/esm/styles/variants.d.ts.map +1 -0
  229. package/esm/theme/cdn.d.ts +195 -0
  230. package/esm/theme/cdn.d.ts.map +1 -0
  231. package/esm/theme/index.d.ts +18 -0
  232. package/esm/theme/index.d.ts.map +1 -0
  233. package/esm/theme/index.js +700 -0
  234. package/esm/theme/platforms.d.ts +107 -0
  235. package/esm/theme/platforms.d.ts.map +1 -0
  236. package/esm/theme/presets/github-openai.d.ts +50 -0
  237. package/esm/theme/presets/github-openai.d.ts.map +1 -0
  238. package/esm/theme/presets/index.d.ts +11 -0
  239. package/esm/theme/presets/index.d.ts.map +1 -0
  240. package/esm/theme/theme.d.ts +396 -0
  241. package/esm/theme/theme.d.ts.map +1 -0
  242. package/esm/tool-template/builder.d.ts +213 -0
  243. package/esm/tool-template/builder.d.ts.map +1 -0
  244. package/esm/tool-template/index.d.ts +16 -0
  245. package/esm/tool-template/index.d.ts.map +1 -0
  246. package/esm/tool-template/index.js +3518 -0
  247. package/esm/types/index.d.ts +14 -0
  248. package/esm/types/index.d.ts.map +1 -0
  249. package/esm/types/index.js +75 -0
  250. package/esm/types/ui-config.d.ts +641 -0
  251. package/esm/types/ui-config.d.ts.map +1 -0
  252. package/esm/types/ui-runtime.d.ts +1008 -0
  253. package/esm/types/ui-runtime.d.ts.map +1 -0
  254. package/esm/typings/cache/cache-adapter.d.ts +125 -0
  255. package/esm/typings/cache/cache-adapter.d.ts.map +1 -0
  256. package/esm/typings/cache/index.d.ts +10 -0
  257. package/esm/typings/cache/index.d.ts.map +1 -0
  258. package/esm/typings/cache/memory-cache.d.ts +92 -0
  259. package/esm/typings/cache/memory-cache.d.ts.map +1 -0
  260. package/esm/typings/dts-parser.d.ts +90 -0
  261. package/esm/typings/dts-parser.d.ts.map +1 -0
  262. package/esm/typings/index.d.ts +48 -0
  263. package/esm/typings/index.d.ts.map +1 -0
  264. package/esm/typings/index.js +812 -0
  265. package/esm/typings/schemas.d.ts +232 -0
  266. package/esm/typings/schemas.d.ts.map +1 -0
  267. package/esm/typings/type-fetcher.d.ts +89 -0
  268. package/esm/typings/type-fetcher.d.ts.map +1 -0
  269. package/esm/typings/types.d.ts +320 -0
  270. package/esm/typings/types.d.ts.map +1 -0
  271. package/esm/utils/escape-html.d.ts +58 -0
  272. package/esm/utils/escape-html.d.ts.map +1 -0
  273. package/esm/utils/index.d.ts +10 -0
  274. package/esm/utils/index.d.ts.map +1 -0
  275. package/esm/utils/index.js +40 -0
  276. package/esm/utils/safe-stringify.d.ts +30 -0
  277. package/esm/utils/safe-stringify.d.ts.map +1 -0
  278. package/esm/validation/error-box.d.ts +56 -0
  279. package/esm/validation/error-box.d.ts.map +1 -0
  280. package/esm/validation/index.d.ts +13 -0
  281. package/esm/validation/index.d.ts.map +1 -0
  282. package/esm/validation/index.js +542 -0
  283. package/esm/validation/schema-paths.d.ts +118 -0
  284. package/esm/validation/schema-paths.d.ts.map +1 -0
  285. package/esm/validation/template-validator.d.ts +143 -0
  286. package/esm/validation/template-validator.d.ts.map +1 -0
  287. package/esm/validation/wrapper.d.ts +97 -0
  288. package/esm/validation/wrapper.d.ts.map +1 -0
  289. package/handlebars/expression-extractor.d.ts +147 -0
  290. package/handlebars/expression-extractor.d.ts.map +1 -0
  291. package/handlebars/helpers.d.ts +339 -0
  292. package/handlebars/helpers.d.ts.map +1 -0
  293. package/handlebars/index.d.ts +195 -0
  294. package/handlebars/index.d.ts.map +1 -0
  295. package/handlebars/index.js +666 -0
  296. package/index.d.ts +50 -0
  297. package/index.d.ts.map +1 -0
  298. package/index.js +12683 -0
  299. package/package.json +66 -0
  300. package/registry/index.d.ts +46 -0
  301. package/registry/index.d.ts.map +1 -0
  302. package/registry/index.js +6280 -0
  303. package/registry/render-template.d.ts +91 -0
  304. package/registry/render-template.d.ts.map +1 -0
  305. package/registry/tool-ui.registry.d.ts +294 -0
  306. package/registry/tool-ui.registry.d.ts.map +1 -0
  307. package/registry/uri-utils.d.ts +56 -0
  308. package/registry/uri-utils.d.ts.map +1 -0
  309. package/renderers/cache.d.ts +145 -0
  310. package/renderers/cache.d.ts.map +1 -0
  311. package/renderers/html.renderer.d.ts +123 -0
  312. package/renderers/html.renderer.d.ts.map +1 -0
  313. package/renderers/index.d.ts +36 -0
  314. package/renderers/index.d.ts.map +1 -0
  315. package/renderers/index.js +1706 -0
  316. package/renderers/mdx.renderer.d.ts +120 -0
  317. package/renderers/mdx.renderer.d.ts.map +1 -0
  318. package/renderers/registry.d.ts +133 -0
  319. package/renderers/registry.d.ts.map +1 -0
  320. package/renderers/types.d.ts +342 -0
  321. package/renderers/types.d.ts.map +1 -0
  322. package/renderers/utils/detect.d.ts +107 -0
  323. package/renderers/utils/detect.d.ts.map +1 -0
  324. package/renderers/utils/hash.d.ts +40 -0
  325. package/renderers/utils/hash.d.ts.map +1 -0
  326. package/renderers/utils/index.d.ts +9 -0
  327. package/renderers/utils/index.d.ts.map +1 -0
  328. package/renderers/utils/transpiler.d.ts +89 -0
  329. package/renderers/utils/transpiler.d.ts.map +1 -0
  330. package/runtime/adapters/html.adapter.d.ts +59 -0
  331. package/runtime/adapters/html.adapter.d.ts.map +1 -0
  332. package/runtime/adapters/index.d.ts +26 -0
  333. package/runtime/adapters/index.d.ts.map +1 -0
  334. package/runtime/adapters/mdx.adapter.d.ts +73 -0
  335. package/runtime/adapters/mdx.adapter.d.ts.map +1 -0
  336. package/runtime/adapters/types.d.ts +95 -0
  337. package/runtime/adapters/types.d.ts.map +1 -0
  338. package/runtime/csp.d.ts +48 -0
  339. package/runtime/csp.d.ts.map +1 -0
  340. package/runtime/index.d.ts +17 -0
  341. package/runtime/index.d.ts.map +1 -0
  342. package/runtime/index.js +5052 -0
  343. package/runtime/mcp-bridge.d.ts +101 -0
  344. package/runtime/mcp-bridge.d.ts.map +1 -0
  345. package/runtime/renderer-runtime.d.ts +133 -0
  346. package/runtime/renderer-runtime.d.ts.map +1 -0
  347. package/runtime/sanitizer.d.ts +172 -0
  348. package/runtime/sanitizer.d.ts.map +1 -0
  349. package/runtime/types.d.ts +415 -0
  350. package/runtime/types.d.ts.map +1 -0
  351. package/runtime/wrapper.d.ts +421 -0
  352. package/runtime/wrapper.d.ts.map +1 -0
  353. package/styles/index.d.ts +8 -0
  354. package/styles/index.d.ts.map +1 -0
  355. package/styles/index.js +222 -0
  356. package/styles/variants.d.ts +51 -0
  357. package/styles/variants.d.ts.map +1 -0
  358. package/theme/cdn.d.ts +195 -0
  359. package/theme/cdn.d.ts.map +1 -0
  360. package/theme/index.d.ts +18 -0
  361. package/theme/index.d.ts.map +1 -0
  362. package/theme/index.js +757 -0
  363. package/theme/platforms.d.ts +107 -0
  364. package/theme/platforms.d.ts.map +1 -0
  365. package/theme/presets/github-openai.d.ts +50 -0
  366. package/theme/presets/github-openai.d.ts.map +1 -0
  367. package/theme/presets/index.d.ts +11 -0
  368. package/theme/presets/index.d.ts.map +1 -0
  369. package/theme/theme.d.ts +396 -0
  370. package/theme/theme.d.ts.map +1 -0
  371. package/tool-template/builder.d.ts +213 -0
  372. package/tool-template/builder.d.ts.map +1 -0
  373. package/tool-template/index.d.ts +16 -0
  374. package/tool-template/index.d.ts.map +1 -0
  375. package/tool-template/index.js +3562 -0
  376. package/types/index.d.ts +14 -0
  377. package/types/index.d.ts.map +1 -0
  378. package/types/index.js +108 -0
  379. package/types/ui-config.d.ts +641 -0
  380. package/types/ui-config.d.ts.map +1 -0
  381. package/types/ui-runtime.d.ts +1008 -0
  382. package/types/ui-runtime.d.ts.map +1 -0
  383. package/typings/cache/cache-adapter.d.ts +125 -0
  384. package/typings/cache/cache-adapter.d.ts.map +1 -0
  385. package/typings/cache/index.d.ts +10 -0
  386. package/typings/cache/index.d.ts.map +1 -0
  387. package/typings/cache/memory-cache.d.ts +92 -0
  388. package/typings/cache/memory-cache.d.ts.map +1 -0
  389. package/typings/dts-parser.d.ts +90 -0
  390. package/typings/dts-parser.d.ts.map +1 -0
  391. package/typings/index.d.ts +48 -0
  392. package/typings/index.d.ts.map +1 -0
  393. package/typings/index.js +868 -0
  394. package/typings/schemas.d.ts +232 -0
  395. package/typings/schemas.d.ts.map +1 -0
  396. package/typings/type-fetcher.d.ts +89 -0
  397. package/typings/type-fetcher.d.ts.map +1 -0
  398. package/typings/types.d.ts +320 -0
  399. package/typings/types.d.ts.map +1 -0
  400. package/utils/escape-html.d.ts +58 -0
  401. package/utils/escape-html.d.ts.map +1 -0
  402. package/utils/index.d.ts +10 -0
  403. package/utils/index.d.ts.map +1 -0
  404. package/utils/index.js +70 -0
  405. package/utils/safe-stringify.d.ts +30 -0
  406. package/utils/safe-stringify.d.ts.map +1 -0
  407. package/validation/error-box.d.ts +56 -0
  408. package/validation/error-box.d.ts.map +1 -0
  409. package/validation/index.d.ts +13 -0
  410. package/validation/index.d.ts.map +1 -0
  411. package/validation/index.js +583 -0
  412. package/validation/schema-paths.d.ts +118 -0
  413. package/validation/schema-paths.d.ts.map +1 -0
  414. package/validation/template-validator.d.ts +143 -0
  415. package/validation/template-validator.d.ts.map +1 -0
  416. package/validation/wrapper.d.ts +97 -0
  417. package/validation/wrapper.d.ts.map +1 -0
@@ -0,0 +1,120 @@
1
+ /**
2
+ * MDX Renderer
3
+ *
4
+ * Handles MDX templates - Markdown with embedded JSX components.
5
+ * Uses @mdx-js/mdx for compilation and react-dom/server for SSR.
6
+ *
7
+ * MDX allows mixing Markdown with React components:
8
+ * - Markdown headings, lists, code blocks
9
+ * - JSX component tags: `<Card />`
10
+ * - JS expressions: `{output.items.map(...)}`
11
+ * - Frontmatter for metadata
12
+ */
13
+ import type { TemplateContext } from '../runtime/types';
14
+ import type { PlatformCapabilities } from '../theme';
15
+ import type { UIRenderer, TranspileResult, TranspileOptions, RenderOptions, RuntimeScripts } from './types';
16
+ /**
17
+ * Types this renderer can handle - MDX strings.
18
+ */
19
+ type MdxTemplate = string;
20
+ /**
21
+ * MDX Renderer Implementation.
22
+ *
23
+ * Compiles MDX (Markdown + JSX) to React components using @mdx-js/mdx,
24
+ * then renders to HTML using react-dom/server.
25
+ *
26
+ * @example Basic MDX template
27
+ * ```typescript
28
+ * @Tool({
29
+ * ui: {
30
+ * template: `
31
+ * # User Profile
32
+ *
33
+ * <UserCard name={output.name} email={output.email} />
34
+ *
35
+ * ## Recent Activity
36
+ * {output.items.map(item => <ActivityItem key={item.id} {...item} />)}
37
+ * `,
38
+ * mdxComponents: { UserCard, ActivityItem }
39
+ * }
40
+ * })
41
+ * ```
42
+ *
43
+ * @example MDX with frontmatter
44
+ * ```typescript
45
+ * @Tool({
46
+ * ui: {
47
+ * template: `
48
+ * ---
49
+ * title: Dashboard
50
+ * ---
51
+ *
52
+ * # {frontmatter.title}
53
+ *
54
+ * <Dashboard data={output} />
55
+ * `
56
+ * }
57
+ * })
58
+ * ```
59
+ */
60
+ export declare class MdxRenderer implements UIRenderer<MdxTemplate> {
61
+ readonly type: "mdx";
62
+ readonly priority = 10;
63
+ /**
64
+ * Lazy-loaded modules.
65
+ */
66
+ private React;
67
+ private ReactDOMServer;
68
+ private jsxRuntime;
69
+ private mdxEvaluate;
70
+ /**
71
+ * Check if this renderer can handle the given template.
72
+ *
73
+ * Accepts strings containing MDX syntax (Markdown + JSX).
74
+ */
75
+ canHandle(template: unknown): template is MdxTemplate;
76
+ /**
77
+ * Transpile MDX to executable JavaScript.
78
+ *
79
+ * Uses @mdx-js/mdx to compile MDX source to a module.
80
+ * Note: For MDX, we use evaluate() which combines compile + run,
81
+ * so this method just returns the source hash for caching purposes.
82
+ */
83
+ transpile(template: MdxTemplate, _options?: TranspileOptions): Promise<TranspileResult>;
84
+ /**
85
+ * Render MDX template to HTML string.
86
+ *
87
+ * Uses @mdx-js/mdx's evaluate() for clean compilation + execution,
88
+ * then renders the resulting React component to HTML via SSR.
89
+ */
90
+ render<In, Out>(template: MdxTemplate, context: TemplateContext<In, Out>, options?: RenderOptions): Promise<string>;
91
+ /**
92
+ * Get runtime scripts for client-side functionality.
93
+ */
94
+ getRuntimeScripts(platform: PlatformCapabilities): RuntimeScripts;
95
+ /**
96
+ * Load React and ReactDOMServer modules.
97
+ */
98
+ private loadReact;
99
+ /**
100
+ * Load @mdx-js/mdx evaluate function.
101
+ *
102
+ * evaluate() is the cleanest way to run MDX - it combines
103
+ * compile and run in a single step, handling all the runtime
104
+ * injection automatically.
105
+ */
106
+ private loadMdx;
107
+ }
108
+ /**
109
+ * Singleton instance of the MDX renderer.
110
+ */
111
+ export declare const mdxRenderer: MdxRenderer;
112
+ /**
113
+ * Build MDX hydration script for client-side interactivity.
114
+ *
115
+ * Note: MDX hydration is more complex than React hydration
116
+ * because it needs the MDX runtime and component definitions.
117
+ */
118
+ export declare function buildMdxHydrationScript(): string;
119
+ export {};
120
+ //# sourceMappingURL=mdx.renderer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mdx.renderer.d.ts","sourceRoot":"","sources":["../../src/renderers/mdx.renderer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AACrD,OAAO,KAAK,EACV,UAAU,EACV,eAAe,EACf,gBAAgB,EAChB,aAAa,EACb,cAAc,EAEf,MAAM,SAAS,CAAC;AAKjB;;GAEG;AACH,KAAK,WAAW,GAAG,MAAM,CAAC;AAmB1B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,qBAAa,WAAY,YAAW,UAAU,CAAC,WAAW,CAAC;IACzD,QAAQ,CAAC,IAAI,EAAG,KAAK,CAAU;IAC/B,QAAQ,CAAC,QAAQ,MAAM;IAEvB;;OAEG;IAEH,OAAO,CAAC,KAAK,CAAa;IAE1B,OAAO,CAAC,cAAc,CAAa;IAEnC,OAAO,CAAC,UAAU,CAAa;IAE/B,OAAO,CAAC,WAAW,CAAiF;IAEpG;;;;OAIG;IACH,SAAS,CAAC,QAAQ,EAAE,OAAO,GAAG,QAAQ,IAAI,WAAW;IAQrD;;;;;;OAMG;IACG,SAAS,CAAC,QAAQ,EAAE,WAAW,EAAE,QAAQ,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,eAAe,CAAC;IAsB7F;;;;;OAKG;IACG,MAAM,CAAC,EAAE,EAAE,GAAG,EAClB,QAAQ,EAAE,WAAW,EACrB,OAAO,EAAE,eAAe,CAAC,EAAE,EAAE,GAAG,CAAC,EACjC,OAAO,CAAC,EAAE,aAAa,GACtB,OAAO,CAAC,MAAM,CAAC;IAkFlB;;OAEG;IACH,iBAAiB,CAAC,QAAQ,EAAE,oBAAoB,GAAG,cAAc;IAoBjE;;OAEG;YACW,SAAS;IAoBvB;;;;;;OAMG;YACW,OAAO;CAgBtB;AAED;;GAEG;AACH,eAAO,MAAM,WAAW,aAAoB,CAAC;AAE7C;;;;;GAKG;AACH,wBAAgB,uBAAuB,IAAI,MAAM,CA+BhD"}
@@ -0,0 +1,133 @@
1
+ /**
2
+ * Renderer Registry
3
+ *
4
+ * Global registry for template renderers with auto-detection.
5
+ * Manages registration, detection, and rendering of templates.
6
+ */
7
+ import type { TemplateContext } from '../runtime/types';
8
+ import type { UIRenderer, RendererType, RendererRegistryOptions, DetectionResult, RenderResult, RenderOptions } from './types';
9
+ /**
10
+ * Renderer Registry.
11
+ *
12
+ * Manages a collection of renderers and provides:
13
+ * - Registration of custom renderers
14
+ * - Auto-detection of template types
15
+ * - Unified rendering interface
16
+ *
17
+ * @example
18
+ * ```typescript
19
+ * // Register a custom renderer
20
+ * registry.register(myCustomRenderer);
21
+ *
22
+ * // Auto-detect and render
23
+ * const result = await registry.render(template, context);
24
+ * ```
25
+ */
26
+ export declare class RendererRegistry {
27
+ private renderers;
28
+ private sortedRenderers;
29
+ private defaultRenderer;
30
+ private debug;
31
+ constructor(options?: RendererRegistryOptions);
32
+ /**
33
+ * Register a renderer.
34
+ *
35
+ * Renderers are sorted by priority (highest first) for detection.
36
+ *
37
+ * @param renderer - Renderer to register
38
+ */
39
+ register(renderer: UIRenderer): void;
40
+ /**
41
+ * Unregister a renderer.
42
+ *
43
+ * @param type - Type of renderer to remove
44
+ * @returns True if renderer was removed
45
+ */
46
+ unregister(type: RendererType): boolean;
47
+ /**
48
+ * Get a renderer by type.
49
+ *
50
+ * @param type - Renderer type
51
+ * @returns Renderer or undefined if not found
52
+ */
53
+ get(type: RendererType): UIRenderer | undefined;
54
+ /**
55
+ * Check if a renderer type is registered.
56
+ *
57
+ * @param type - Renderer type
58
+ * @returns True if registered
59
+ */
60
+ has(type: RendererType): boolean;
61
+ /**
62
+ * Get all registered renderer types.
63
+ *
64
+ * @returns Array of renderer types
65
+ */
66
+ getTypes(): RendererType[];
67
+ /**
68
+ * Auto-detect the renderer for a template.
69
+ *
70
+ * Checks renderers in priority order (highest first).
71
+ * Returns HTML renderer as fallback.
72
+ *
73
+ * @param template - Template to detect
74
+ * @returns Detection result with renderer and confidence
75
+ */
76
+ detect(template: unknown): DetectionResult;
77
+ /**
78
+ * Render a template with auto-detection.
79
+ *
80
+ * @param template - Template to render (React, MDX, or HTML)
81
+ * @param context - Template context with input/output
82
+ * @param options - Render options
83
+ * @returns Rendered result with HTML and metadata
84
+ */
85
+ render<In, Out>(template: unknown, context: TemplateContext<In, Out>, options?: RenderOptions): Promise<RenderResult>;
86
+ /**
87
+ * Render with a specific renderer type.
88
+ *
89
+ * @param type - Renderer type to use
90
+ * @param template - Template to render
91
+ * @param context - Template context
92
+ * @param options - Render options
93
+ * @returns Rendered result
94
+ */
95
+ renderWith<In, Out>(type: RendererType, template: unknown, context: TemplateContext<In, Out>, options?: RenderOptions): Promise<RenderResult>;
96
+ /**
97
+ * Update the sorted renderer list by priority.
98
+ */
99
+ private updateSortedList;
100
+ /**
101
+ * Set the default renderer type.
102
+ *
103
+ * @param type - Renderer type to use as default
104
+ */
105
+ setDefault(type: RendererType): void;
106
+ /**
107
+ * Get registry statistics.
108
+ */
109
+ getStats(): {
110
+ registeredRenderers: RendererType[];
111
+ defaultRenderer: RendererType;
112
+ priorityOrder: Array<{
113
+ type: RendererType;
114
+ priority: number;
115
+ }>;
116
+ };
117
+ }
118
+ /**
119
+ * Global renderer registry instance.
120
+ *
121
+ * Pre-configured with the HTML renderer.
122
+ * React and MDX renderers can be added:
123
+ *
124
+ * ```typescript
125
+ * import { rendererRegistry, mdxRenderer } from '@frontmcp/uipack/renderers';
126
+ * import { reactRenderer } from '@frontmcp/ui';
127
+ *
128
+ * rendererRegistry.register(reactRenderer);
129
+ * rendererRegistry.register(mdxRenderer);
130
+ * ```
131
+ */
132
+ export declare const rendererRegistry: RendererRegistry;
133
+ //# sourceMappingURL=registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/renderers/registry.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAGxD,OAAO,KAAK,EACV,UAAU,EACV,YAAY,EACZ,uBAAuB,EACvB,eAAe,EACf,YAAY,EACZ,aAAa,EACd,MAAM,SAAS,CAAC;AAGjB;;;;;;;;;;;;;;;;GAgBG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,SAAS,CAAuC;IACxD,OAAO,CAAC,eAAe,CAAoB;IAC3C,OAAO,CAAC,eAAe,CAAwB;IAC/C,OAAO,CAAC,KAAK,CAAU;gBAEX,OAAO,GAAE,uBAA4B;IAOjD;;;;;;OAMG;IACH,QAAQ,CAAC,QAAQ,EAAE,UAAU,GAAG,IAAI;IASpC;;;;;OAKG;IACH,UAAU,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO;IAQvC;;;;;OAKG;IACH,GAAG,CAAC,IAAI,EAAE,YAAY,GAAG,UAAU,GAAG,SAAS;IAI/C;;;;;OAKG;IACH,GAAG,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO;IAIhC;;;;OAIG;IACH,QAAQ,IAAI,YAAY,EAAE;IAI1B;;;;;;;;OAQG;IACH,MAAM,CAAC,QAAQ,EAAE,OAAO,GAAG,eAAe;IA+B1C;;;;;;;OAOG;IACG,MAAM,CAAC,EAAE,EAAE,GAAG,EAClB,QAAQ,EAAE,OAAO,EACjB,OAAO,EAAE,eAAe,CAAC,EAAE,EAAE,GAAG,CAAC,EACjC,OAAO,GAAE,aAAkB,GAC1B,OAAO,CAAC,YAAY,CAAC;IA4BxB;;;;;;;;OAQG;IACG,UAAU,CAAC,EAAE,EAAE,GAAG,EACtB,IAAI,EAAE,YAAY,EAClB,QAAQ,EAAE,OAAO,EACjB,OAAO,EAAE,eAAe,CAAC,EAAE,EAAE,GAAG,CAAC,EACjC,OAAO,GAAE,aAAkB,GAC1B,OAAO,CAAC,YAAY,CAAC;IAyBxB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAIxB;;;;OAIG;IACH,UAAU,CAAC,IAAI,EAAE,YAAY,GAAG,IAAI;IAOpC;;OAEG;IACH,QAAQ,IAAI;QACV,mBAAmB,EAAE,YAAY,EAAE,CAAC;QACpC,eAAe,EAAE,YAAY,CAAC;QAC9B,aAAa,EAAE,KAAK,CAAC;YAAE,IAAI,EAAE,YAAY,CAAC;YAAC,QAAQ,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;KAChE;CAUF;AAED;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,gBAAgB,kBAAyB,CAAC"}
@@ -0,0 +1,342 @@
1
+ /**
2
+ * Renderer System Types
3
+ *
4
+ * Core interfaces for the multi-framework rendering system.
5
+ * Supports HTML, React, and MDX templates with auto-detection.
6
+ */
7
+ import type { TemplateContext, TemplateHelpers, TemplateBuilderFn } from '../runtime/types';
8
+ import type { PlatformCapabilities } from '../theme';
9
+ /**
10
+ * Supported renderer types for template processing.
11
+ * - 'html': Plain HTML string or template function
12
+ * - 'react': React functional component
13
+ * - 'mdx': MDX content string
14
+ */
15
+ export type RendererType = 'html' | 'react' | 'mdx';
16
+ /**
17
+ * Props passed to React components used as templates.
18
+ *
19
+ * For SSR (server-side rendering), `output` is always available.
20
+ * For client-side hydration with the bridge, use `HydratedToolUIProps`.
21
+ */
22
+ export interface ToolUIProps<In = unknown, Out = unknown> {
23
+ /** Tool input arguments */
24
+ input: In;
25
+ /** Tool output result */
26
+ output: Out;
27
+ /** Structured content parsed from output */
28
+ structuredContent?: unknown;
29
+ /** Helper functions for rendering */
30
+ helpers: TemplateHelpers;
31
+ }
32
+ /**
33
+ * Props for client-side hydrated components using the Platform Bridge.
34
+ *
35
+ * These props include loading/error state for reactive rendering.
36
+ * Use with `useSyncExternalStore` from React 18+:
37
+ *
38
+ * @example
39
+ * ```tsx
40
+ * import { useSyncExternalStore } from 'react';
41
+ *
42
+ * function useToolBridge<T>(): HydratedToolUIProps<T> {
43
+ * const state = useSyncExternalStore(
44
+ * window.__frontmcp.bridge.subscribe,
45
+ * window.__frontmcp.bridge.getSnapshot,
46
+ * window.__frontmcp.bridge.getServerSnapshot
47
+ * );
48
+ * return {
49
+ * data: state.data as T,
50
+ * loading: state.loading,
51
+ * error: state.error,
52
+ * };
53
+ * }
54
+ *
55
+ * function MyWidget() {
56
+ * const { data, loading, error } = useToolBridge<WeatherData>();
57
+ *
58
+ * if (loading) return <Spinner />;
59
+ * if (error) return <Error message={error} />;
60
+ * if (!data) return <Empty />;
61
+ *
62
+ * return <WeatherCard {...data} />;
63
+ * }
64
+ * ```
65
+ */
66
+ export interface HydratedToolUIProps<Out = unknown> {
67
+ /** Tool output data (null when loading or no data) */
68
+ data: Out | null;
69
+ /** Whether the bridge is waiting for data */
70
+ loading: boolean;
71
+ /** Error message if data loading failed */
72
+ error: string | null;
73
+ }
74
+ /**
75
+ * Result of transpiling a template.
76
+ */
77
+ export interface TranspileResult {
78
+ /** Transpiled JavaScript code */
79
+ code: string;
80
+ /** Content hash for caching */
81
+ hash: string;
82
+ /** Whether result was retrieved from cache */
83
+ cached: boolean;
84
+ /** Source map for debugging (optional) */
85
+ sourceMap?: string;
86
+ }
87
+ /**
88
+ * Options for transpilation.
89
+ */
90
+ export interface TranspileOptions {
91
+ /** Enable source maps */
92
+ sourceMaps?: boolean;
93
+ /** Development mode (more detailed errors) */
94
+ development?: boolean;
95
+ }
96
+ /**
97
+ * Options for rendering a template.
98
+ */
99
+ export interface RenderOptions {
100
+ /** Target platform capabilities */
101
+ platform?: PlatformCapabilities;
102
+ /** Enable client-side hydration */
103
+ hydrate?: boolean;
104
+ /** Custom MDX components */
105
+ mdxComponents?: Record<string, unknown>;
106
+ }
107
+ /**
108
+ * Runtime scripts to inject for client-side functionality.
109
+ */
110
+ export interface RuntimeScripts {
111
+ /** Scripts to include in <head> */
112
+ headScripts: string;
113
+ /** Inline script content (for blocked-network platforms) */
114
+ inlineScripts?: string;
115
+ /** Whether scripts are inline or external */
116
+ isInline: boolean;
117
+ }
118
+ /**
119
+ * Result of rendering a template.
120
+ */
121
+ export interface RenderResult {
122
+ /** Rendered HTML content (body only) */
123
+ html: string;
124
+ /** Renderer type that was used */
125
+ rendererType: RendererType;
126
+ /** Whether transpilation was cached */
127
+ transpileCached: boolean;
128
+ /** Runtime scripts needed for this template */
129
+ runtimeScripts: RuntimeScripts;
130
+ }
131
+ /**
132
+ * Abstract renderer interface for processing templates.
133
+ *
134
+ * Each renderer handles a specific template type (HTML, React, MDX)
135
+ * and provides:
136
+ * - Template type detection
137
+ * - Transpilation (if needed)
138
+ * - HTML rendering
139
+ * - Client runtime script generation
140
+ */
141
+ export interface UIRenderer<T = unknown> {
142
+ /**
143
+ * Unique renderer type identifier.
144
+ */
145
+ readonly type: RendererType;
146
+ /**
147
+ * Priority for auto-detection.
148
+ * Higher values are checked first.
149
+ * - React: 20
150
+ * - MDX: 10
151
+ * - HTML: 0 (fallback)
152
+ */
153
+ readonly priority: number;
154
+ /**
155
+ * Check if this renderer can handle the given template.
156
+ *
157
+ * @param template - The template to check
158
+ * @returns True if this renderer can process the template
159
+ */
160
+ canHandle(template: unknown): template is T;
161
+ /**
162
+ * Transpile the template to executable JavaScript (if needed).
163
+ *
164
+ * For React components from imports, no transpilation is needed.
165
+ * For JSX strings, SWC transpilation is performed.
166
+ * Results are cached by content hash.
167
+ *
168
+ * @param template - Template to transpile
169
+ * @param options - Transpilation options
170
+ * @returns Transpiled result with caching metadata
171
+ */
172
+ transpile(template: T, options?: TranspileOptions): Promise<TranspileResult>;
173
+ /**
174
+ * Render the template to HTML string.
175
+ *
176
+ * @param template - Template to render
177
+ * @param context - Template context with input/output/helpers
178
+ * @param options - Render options (platform, hydration, etc.)
179
+ * @returns Rendered HTML string
180
+ */
181
+ render<In, Out>(template: T, context: TemplateContext<In, Out>, options?: RenderOptions): Promise<string>;
182
+ /**
183
+ * Get runtime scripts needed for client-side functionality.
184
+ *
185
+ * @param platform - Target platform capabilities
186
+ * @returns Scripts to inject (CDN or inline based on platform)
187
+ */
188
+ getRuntimeScripts(platform: PlatformCapabilities): RuntimeScripts;
189
+ }
190
+ /**
191
+ * Options for the renderer registry.
192
+ */
193
+ export interface RendererRegistryOptions {
194
+ /** Maximum cache size for transpiled results */
195
+ maxCacheSize?: number;
196
+ /** Enable debug logging */
197
+ debug?: boolean;
198
+ }
199
+ /**
200
+ * Result of detecting a template's renderer type.
201
+ */
202
+ export interface DetectionResult {
203
+ /** The detected renderer */
204
+ renderer: UIRenderer;
205
+ /** Confidence level (0-1) */
206
+ confidence: number;
207
+ /** Detection reason for debugging */
208
+ reason: string;
209
+ }
210
+ /**
211
+ * React component type for Tool UI templates.
212
+ *
213
+ * This is a generic function type that accepts props and returns JSX.
214
+ * We use a loose type here to avoid requiring React types at compile time.
215
+ */
216
+ export type ReactComponentType<In = unknown, Out = unknown> = (props: ToolUIProps<In, Out>) => any;
217
+ /**
218
+ * All possible template types.
219
+ * Auto-detected at runtime.
220
+ */
221
+ export type ToolUITemplate<In = unknown, Out = unknown> = TemplateBuilderFn<In, Out> | string | ReactComponentType<In, Out>;
222
+ /**
223
+ * Context passed to custom wrapper functions.
224
+ */
225
+ export interface WrapperContext {
226
+ /** Tool name */
227
+ toolName: string;
228
+ /** Rendered content HTML */
229
+ content: string;
230
+ /** Detected renderer type */
231
+ rendererType: RendererType;
232
+ /** Target platform */
233
+ platform: PlatformCapabilities;
234
+ /** Runtime scripts to inject */
235
+ runtimeScripts: RuntimeScripts;
236
+ }
237
+ /**
238
+ * Extended Tool UI configuration with multi-framework support.
239
+ *
240
+ * The template type is auto-detected - no need to specify a renderer!
241
+ *
242
+ * @example React component
243
+ * ```typescript
244
+ * import { UserCard } from './components/user-card.tsx';
245
+ *
246
+ * @Tool({
247
+ * ui: {
248
+ * template: UserCard, // Auto-detected as React
249
+ * hydrate: true, // Enable client-side interactivity
250
+ * }
251
+ * })
252
+ * ```
253
+ *
254
+ * @example MDX template
255
+ * ```typescript
256
+ * @Tool({
257
+ * ui: {
258
+ * template: `
259
+ * # Welcome
260
+ * <UserCard name={output.name} />
261
+ * `,
262
+ * mdxComponents: { UserCard },
263
+ * }
264
+ * })
265
+ * ```
266
+ *
267
+ * @example HTML template (unchanged)
268
+ * ```typescript
269
+ * @Tool({
270
+ * ui: {
271
+ * template: (ctx) => `<div>${ctx.output.name}</div>`,
272
+ * }
273
+ * })
274
+ * ```
275
+ */
276
+ export interface ExtendedToolUIConfig<In = unknown, Out = unknown> {
277
+ /**
278
+ * Template for rendering the UI.
279
+ *
280
+ * Can be:
281
+ * - React component: `({ input, output }) => <div>...</div>`
282
+ * - MDX string: `# Title\n<Component />`
283
+ * - HTML function: `(ctx) => \`<div>...</div>\``
284
+ * - Static HTML string
285
+ *
286
+ * Type is auto-detected at runtime.
287
+ */
288
+ template: ToolUITemplate<In, Out>;
289
+ /**
290
+ * Enable client-side hydration for React components.
291
+ * When true, the React runtime is included and components
292
+ * become interactive in the browser.
293
+ *
294
+ * @default false
295
+ */
296
+ hydrate?: boolean;
297
+ /**
298
+ * Custom wrapper function to override the default HTML document wrapper.
299
+ * Useful for completely custom document structures.
300
+ *
301
+ * @param content - Rendered template HTML
302
+ * @param ctx - Wrapper context with metadata
303
+ * @returns Complete HTML document string
304
+ */
305
+ wrapper?: (content: string, ctx: WrapperContext) => string;
306
+ /**
307
+ * Custom MDX components available in MDX templates.
308
+ * These components can be used directly in MDX content.
309
+ *
310
+ * @example
311
+ * ```typescript
312
+ * mdxComponents: {
313
+ * UserCard: ({ name }) => <div>{name}</div>,
314
+ * Badge: ({ type }) => <span className={type}>...</span>,
315
+ * }
316
+ * ```
317
+ */
318
+ mdxComponents?: Record<string, (props: any) => any>;
319
+ /** Content Security Policy for the sandboxed widget. */
320
+ csp?: {
321
+ connectDomains?: string[];
322
+ resourceDomains?: string[];
323
+ };
324
+ /** Whether the widget can invoke tools via the MCP bridge. */
325
+ widgetAccessible?: boolean;
326
+ /** Preferred display mode for the widget. */
327
+ displayMode?: 'inline' | 'fullscreen' | 'pip';
328
+ /** Human-readable description shown to users about what the widget does. */
329
+ widgetDescription?: string;
330
+ /** Status messages shown during tool invocation. */
331
+ invocationStatus?: {
332
+ invoking?: string;
333
+ invoked?: string;
334
+ };
335
+ /** How the widget HTML should be served to the client. */
336
+ servingMode?: 'inline' | 'static' | 'hybrid' | 'direct-url' | 'custom-url';
337
+ /** Custom URL for widget serving when `servingMode: 'custom-url'`. */
338
+ customWidgetUrl?: string;
339
+ /** Path for direct URL serving when `servingMode: 'direct-url'`. */
340
+ directPath?: string;
341
+ }
342
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/renderers/types.ts"],"names":[],"mappings":"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"}