@frontmcp/uipack 0.6.1 → 0.6.2

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 (315) hide show
  1. package/CLAUDE.md +88 -105
  2. package/README.md +1 -0
  3. package/adapters/index.d.ts +1 -1
  4. package/adapters/index.d.ts.map +1 -1
  5. package/adapters/index.js +35 -2
  6. package/adapters/platform-meta.d.ts +29 -0
  7. package/adapters/platform-meta.d.ts.map +1 -1
  8. package/base-template/default-base-template.d.ts +0 -1
  9. package/base-template/default-base-template.d.ts.map +1 -1
  10. package/base-template/index.js +32 -37
  11. package/build/builders/base-builder.d.ts +122 -0
  12. package/build/builders/base-builder.d.ts.map +1 -0
  13. package/build/builders/esbuild-config.d.ts +94 -0
  14. package/build/builders/esbuild-config.d.ts.map +1 -0
  15. package/build/builders/hybrid-builder.d.ts +93 -0
  16. package/build/builders/hybrid-builder.d.ts.map +1 -0
  17. package/build/builders/index.d.ts +17 -0
  18. package/build/builders/index.d.ts.map +1 -0
  19. package/build/builders/inline-builder.d.ts +83 -0
  20. package/build/builders/inline-builder.d.ts.map +1 -0
  21. package/build/builders/static-builder.d.ts +78 -0
  22. package/build/builders/static-builder.d.ts.map +1 -0
  23. package/build/builders/types.d.ts +341 -0
  24. package/build/builders/types.d.ts.map +1 -0
  25. package/build/cdn-resources.d.ts +3 -2
  26. package/build/cdn-resources.d.ts.map +1 -1
  27. package/build/hybrid-data.d.ts +127 -0
  28. package/build/hybrid-data.d.ts.map +1 -0
  29. package/build/index.d.ts +4 -0
  30. package/build/index.d.ts.map +1 -1
  31. package/build/index.js +1885 -171
  32. package/build/ui-components-browser.d.ts +64 -0
  33. package/build/ui-components-browser.d.ts.map +1 -0
  34. package/build/widget-manifest.d.ts.map +1 -1
  35. package/bundler/file-cache/component-builder.d.ts.map +1 -1
  36. package/bundler/file-cache/storage/redis.d.ts.map +1 -1
  37. package/bundler/index.js +6 -4
  38. package/dependency/cdn-registry.d.ts +1 -1
  39. package/dependency/cdn-registry.d.ts.map +1 -1
  40. package/dependency/import-map.d.ts.map +1 -1
  41. package/dependency/index.js +93 -121
  42. package/dependency/resolver.d.ts.map +1 -1
  43. package/esm/adapters/{index.js → index.mjs} +34 -2
  44. package/esm/base-template/{index.js → index.mjs} +32 -37
  45. package/esm/build/{index.js → index.mjs} +1855 -170
  46. package/esm/bundler/{index.js → index.mjs} +6 -4
  47. package/esm/dependency/{index.js → index.mjs} +93 -121
  48. package/esm/handlebars/{index.js → index.mjs} +0 -1
  49. package/esm/{index.js → index.mjs} +2516 -830
  50. package/esm/package.json +7 -6
  51. package/esm/registry/{index.js → index.mjs} +196 -264
  52. package/esm/renderers/{index.js → index.mjs} +106 -200
  53. package/esm/runtime/{index.js → index.mjs} +44 -35
  54. package/esm/styles/{index.js → index.mjs} +6 -6
  55. package/esm/theme/{index.js → index.mjs} +90 -42
  56. package/esm/tool-template/{index.js → index.mjs} +35 -28
  57. package/esm/typings/{index.js → index.mjs} +157 -1
  58. package/esm/utils/{index.js → index.mjs} +24 -0
  59. package/esm/validation/{index.js → index.mjs} +0 -1
  60. package/handlebars/expression-extractor.d.ts.map +1 -1
  61. package/handlebars/index.d.ts.map +1 -1
  62. package/handlebars/index.js +0 -1
  63. package/index.d.ts +2 -1
  64. package/index.d.ts.map +1 -1
  65. package/index.js +2545 -835
  66. package/package.json +7 -6
  67. package/preview/claude-preview.d.ts +67 -0
  68. package/preview/claude-preview.d.ts.map +1 -0
  69. package/preview/generic-preview.d.ts +67 -0
  70. package/preview/generic-preview.d.ts.map +1 -0
  71. package/preview/index.d.ts +36 -0
  72. package/preview/index.d.ts.map +1 -0
  73. package/preview/openai-preview.d.ts +70 -0
  74. package/preview/openai-preview.d.ts.map +1 -0
  75. package/preview/types.d.ts +185 -0
  76. package/preview/types.d.ts.map +1 -0
  77. package/registry/index.js +196 -264
  78. package/registry/render-template.d.ts.map +1 -1
  79. package/renderers/index.d.ts +2 -2
  80. package/renderers/index.d.ts.map +1 -1
  81. package/renderers/index.js +110 -204
  82. package/renderers/mdx-client.renderer.d.ts +124 -0
  83. package/renderers/mdx-client.renderer.d.ts.map +1 -0
  84. package/renderers/registry.d.ts +2 -2
  85. package/renderers/registry.d.ts.map +1 -1
  86. package/renderers/types.d.ts +3 -2
  87. package/renderers/types.d.ts.map +1 -1
  88. package/renderers/utils/transpiler.d.ts +8 -27
  89. package/renderers/utils/transpiler.d.ts.map +1 -1
  90. package/runtime/index.js +44 -35
  91. package/runtime/mcp-bridge.d.ts.map +1 -1
  92. package/runtime/renderer-runtime.d.ts.map +1 -1
  93. package/runtime/wrapper.d.ts.map +1 -1
  94. package/styles/index.js +6 -6
  95. package/styles/variants.d.ts +1 -1
  96. package/styles/variants.d.ts.map +1 -1
  97. package/theme/cdn.d.ts.map +1 -1
  98. package/theme/css-to-theme.d.ts +91 -0
  99. package/theme/css-to-theme.d.ts.map +1 -0
  100. package/theme/index.d.ts +2 -1
  101. package/theme/index.d.ts.map +1 -1
  102. package/theme/index.js +92 -43
  103. package/theme/platforms.d.ts +1 -6
  104. package/theme/platforms.d.ts.map +1 -1
  105. package/theme/theme.d.ts.map +1 -1
  106. package/tool-template/builder.d.ts.map +1 -1
  107. package/tool-template/index.js +35 -28
  108. package/typings/index.d.ts +4 -4
  109. package/typings/index.d.ts.map +1 -1
  110. package/typings/index.js +162 -1
  111. package/typings/schemas.d.ts +30 -0
  112. package/typings/schemas.d.ts.map +1 -1
  113. package/typings/type-fetcher.d.ts +74 -1
  114. package/typings/type-fetcher.d.ts.map +1 -1
  115. package/typings/types.d.ts +72 -1
  116. package/typings/types.d.ts.map +1 -1
  117. package/utils/escape-html.d.ts +44 -0
  118. package/utils/escape-html.d.ts.map +1 -1
  119. package/utils/index.d.ts +1 -1
  120. package/utils/index.d.ts.map +1 -1
  121. package/utils/index.js +26 -0
  122. package/validation/index.js +0 -1
  123. package/validation/template-validator.d.ts.map +1 -1
  124. package/esm/adapters/index.d.ts +0 -13
  125. package/esm/adapters/index.d.ts.map +0 -1
  126. package/esm/adapters/platform-meta.d.ts +0 -166
  127. package/esm/adapters/platform-meta.d.ts.map +0 -1
  128. package/esm/adapters/response-builder.d.ts +0 -108
  129. package/esm/adapters/response-builder.d.ts.map +0 -1
  130. package/esm/adapters/serving-mode.d.ts +0 -107
  131. package/esm/adapters/serving-mode.d.ts.map +0 -1
  132. package/esm/base-template/bridge.d.ts +0 -90
  133. package/esm/base-template/bridge.d.ts.map +0 -1
  134. package/esm/base-template/default-base-template.d.ts +0 -92
  135. package/esm/base-template/default-base-template.d.ts.map +0 -1
  136. package/esm/base-template/index.d.ts +0 -15
  137. package/esm/base-template/index.d.ts.map +0 -1
  138. package/esm/base-template/polyfills.d.ts +0 -31
  139. package/esm/base-template/polyfills.d.ts.map +0 -1
  140. package/esm/base-template/theme-styles.d.ts +0 -74
  141. package/esm/base-template/theme-styles.d.ts.map +0 -1
  142. package/esm/bridge-runtime/iife-generator.d.ts +0 -62
  143. package/esm/bridge-runtime/iife-generator.d.ts.map +0 -1
  144. package/esm/bridge-runtime/index.d.ts +0 -10
  145. package/esm/bridge-runtime/index.d.ts.map +0 -1
  146. package/esm/build/cdn-resources.d.ts +0 -243
  147. package/esm/build/cdn-resources.d.ts.map +0 -1
  148. package/esm/build/index.d.ts +0 -295
  149. package/esm/build/index.d.ts.map +0 -1
  150. package/esm/build/widget-manifest.d.ts +0 -362
  151. package/esm/build/widget-manifest.d.ts.map +0 -1
  152. package/esm/bundler/cache.d.ts +0 -173
  153. package/esm/bundler/cache.d.ts.map +0 -1
  154. package/esm/bundler/file-cache/component-builder.d.ts +0 -167
  155. package/esm/bundler/file-cache/component-builder.d.ts.map +0 -1
  156. package/esm/bundler/file-cache/hash-calculator.d.ts +0 -155
  157. package/esm/bundler/file-cache/hash-calculator.d.ts.map +0 -1
  158. package/esm/bundler/file-cache/index.d.ts +0 -12
  159. package/esm/bundler/file-cache/index.d.ts.map +0 -1
  160. package/esm/bundler/file-cache/storage/filesystem.d.ts +0 -149
  161. package/esm/bundler/file-cache/storage/filesystem.d.ts.map +0 -1
  162. package/esm/bundler/file-cache/storage/index.d.ts +0 -11
  163. package/esm/bundler/file-cache/storage/index.d.ts.map +0 -1
  164. package/esm/bundler/file-cache/storage/interface.d.ts +0 -152
  165. package/esm/bundler/file-cache/storage/interface.d.ts.map +0 -1
  166. package/esm/bundler/file-cache/storage/redis.d.ts +0 -139
  167. package/esm/bundler/file-cache/storage/redis.d.ts.map +0 -1
  168. package/esm/bundler/index.d.ts +0 -35
  169. package/esm/bundler/index.d.ts.map +0 -1
  170. package/esm/bundler/sandbox/enclave-adapter.d.ts +0 -121
  171. package/esm/bundler/sandbox/enclave-adapter.d.ts.map +0 -1
  172. package/esm/bundler/sandbox/executor.d.ts +0 -14
  173. package/esm/bundler/sandbox/executor.d.ts.map +0 -1
  174. package/esm/bundler/sandbox/policy.d.ts +0 -62
  175. package/esm/bundler/sandbox/policy.d.ts.map +0 -1
  176. package/esm/bundler/types.d.ts +0 -702
  177. package/esm/bundler/types.d.ts.map +0 -1
  178. package/esm/dependency/cdn-registry.d.ts +0 -98
  179. package/esm/dependency/cdn-registry.d.ts.map +0 -1
  180. package/esm/dependency/import-map.d.ts +0 -186
  181. package/esm/dependency/import-map.d.ts.map +0 -1
  182. package/esm/dependency/import-parser.d.ts +0 -82
  183. package/esm/dependency/import-parser.d.ts.map +0 -1
  184. package/esm/dependency/index.d.ts +0 -17
  185. package/esm/dependency/index.d.ts.map +0 -1
  186. package/esm/dependency/resolver.d.ts +0 -164
  187. package/esm/dependency/resolver.d.ts.map +0 -1
  188. package/esm/dependency/schemas.d.ts +0 -486
  189. package/esm/dependency/schemas.d.ts.map +0 -1
  190. package/esm/dependency/template-loader.d.ts +0 -204
  191. package/esm/dependency/template-loader.d.ts.map +0 -1
  192. package/esm/dependency/template-processor.d.ts +0 -118
  193. package/esm/dependency/template-processor.d.ts.map +0 -1
  194. package/esm/dependency/types.d.ts +0 -739
  195. package/esm/dependency/types.d.ts.map +0 -1
  196. package/esm/handlebars/expression-extractor.d.ts +0 -147
  197. package/esm/handlebars/expression-extractor.d.ts.map +0 -1
  198. package/esm/handlebars/helpers.d.ts +0 -339
  199. package/esm/handlebars/helpers.d.ts.map +0 -1
  200. package/esm/handlebars/index.d.ts +0 -195
  201. package/esm/handlebars/index.d.ts.map +0 -1
  202. package/esm/index.d.ts +0 -50
  203. package/esm/index.d.ts.map +0 -1
  204. package/esm/registry/index.d.ts +0 -46
  205. package/esm/registry/index.d.ts.map +0 -1
  206. package/esm/registry/render-template.d.ts +0 -91
  207. package/esm/registry/render-template.d.ts.map +0 -1
  208. package/esm/registry/tool-ui.registry.d.ts +0 -294
  209. package/esm/registry/tool-ui.registry.d.ts.map +0 -1
  210. package/esm/registry/uri-utils.d.ts +0 -56
  211. package/esm/registry/uri-utils.d.ts.map +0 -1
  212. package/esm/renderers/cache.d.ts +0 -145
  213. package/esm/renderers/cache.d.ts.map +0 -1
  214. package/esm/renderers/html.renderer.d.ts +0 -123
  215. package/esm/renderers/html.renderer.d.ts.map +0 -1
  216. package/esm/renderers/index.d.ts +0 -36
  217. package/esm/renderers/index.d.ts.map +0 -1
  218. package/esm/renderers/mdx.renderer.d.ts +0 -120
  219. package/esm/renderers/mdx.renderer.d.ts.map +0 -1
  220. package/esm/renderers/registry.d.ts +0 -133
  221. package/esm/renderers/registry.d.ts.map +0 -1
  222. package/esm/renderers/types.d.ts +0 -342
  223. package/esm/renderers/types.d.ts.map +0 -1
  224. package/esm/renderers/utils/detect.d.ts +0 -107
  225. package/esm/renderers/utils/detect.d.ts.map +0 -1
  226. package/esm/renderers/utils/hash.d.ts +0 -40
  227. package/esm/renderers/utils/hash.d.ts.map +0 -1
  228. package/esm/renderers/utils/index.d.ts +0 -9
  229. package/esm/renderers/utils/index.d.ts.map +0 -1
  230. package/esm/renderers/utils/transpiler.d.ts +0 -89
  231. package/esm/renderers/utils/transpiler.d.ts.map +0 -1
  232. package/esm/runtime/adapters/html.adapter.d.ts +0 -59
  233. package/esm/runtime/adapters/html.adapter.d.ts.map +0 -1
  234. package/esm/runtime/adapters/index.d.ts +0 -26
  235. package/esm/runtime/adapters/index.d.ts.map +0 -1
  236. package/esm/runtime/adapters/mdx.adapter.d.ts +0 -73
  237. package/esm/runtime/adapters/mdx.adapter.d.ts.map +0 -1
  238. package/esm/runtime/adapters/types.d.ts +0 -95
  239. package/esm/runtime/adapters/types.d.ts.map +0 -1
  240. package/esm/runtime/csp.d.ts +0 -48
  241. package/esm/runtime/csp.d.ts.map +0 -1
  242. package/esm/runtime/index.d.ts +0 -17
  243. package/esm/runtime/index.d.ts.map +0 -1
  244. package/esm/runtime/mcp-bridge.d.ts +0 -101
  245. package/esm/runtime/mcp-bridge.d.ts.map +0 -1
  246. package/esm/runtime/renderer-runtime.d.ts +0 -133
  247. package/esm/runtime/renderer-runtime.d.ts.map +0 -1
  248. package/esm/runtime/sanitizer.d.ts +0 -172
  249. package/esm/runtime/sanitizer.d.ts.map +0 -1
  250. package/esm/runtime/types.d.ts +0 -415
  251. package/esm/runtime/types.d.ts.map +0 -1
  252. package/esm/runtime/wrapper.d.ts +0 -421
  253. package/esm/runtime/wrapper.d.ts.map +0 -1
  254. package/esm/styles/index.d.ts +0 -8
  255. package/esm/styles/index.d.ts.map +0 -1
  256. package/esm/styles/variants.d.ts +0 -51
  257. package/esm/styles/variants.d.ts.map +0 -1
  258. package/esm/theme/cdn.d.ts +0 -195
  259. package/esm/theme/cdn.d.ts.map +0 -1
  260. package/esm/theme/index.d.ts +0 -18
  261. package/esm/theme/index.d.ts.map +0 -1
  262. package/esm/theme/platforms.d.ts +0 -107
  263. package/esm/theme/platforms.d.ts.map +0 -1
  264. package/esm/theme/presets/github-openai.d.ts +0 -50
  265. package/esm/theme/presets/github-openai.d.ts.map +0 -1
  266. package/esm/theme/presets/index.d.ts +0 -11
  267. package/esm/theme/presets/index.d.ts.map +0 -1
  268. package/esm/theme/theme.d.ts +0 -396
  269. package/esm/theme/theme.d.ts.map +0 -1
  270. package/esm/tool-template/builder.d.ts +0 -213
  271. package/esm/tool-template/builder.d.ts.map +0 -1
  272. package/esm/tool-template/index.d.ts +0 -16
  273. package/esm/tool-template/index.d.ts.map +0 -1
  274. package/esm/types/index.d.ts +0 -14
  275. package/esm/types/index.d.ts.map +0 -1
  276. package/esm/types/ui-config.d.ts +0 -641
  277. package/esm/types/ui-config.d.ts.map +0 -1
  278. package/esm/types/ui-runtime.d.ts +0 -1008
  279. package/esm/types/ui-runtime.d.ts.map +0 -1
  280. package/esm/typings/cache/cache-adapter.d.ts +0 -125
  281. package/esm/typings/cache/cache-adapter.d.ts.map +0 -1
  282. package/esm/typings/cache/index.d.ts +0 -10
  283. package/esm/typings/cache/index.d.ts.map +0 -1
  284. package/esm/typings/cache/memory-cache.d.ts +0 -92
  285. package/esm/typings/cache/memory-cache.d.ts.map +0 -1
  286. package/esm/typings/dts-parser.d.ts +0 -90
  287. package/esm/typings/dts-parser.d.ts.map +0 -1
  288. package/esm/typings/index.d.ts +0 -48
  289. package/esm/typings/index.d.ts.map +0 -1
  290. package/esm/typings/schemas.d.ts +0 -232
  291. package/esm/typings/schemas.d.ts.map +0 -1
  292. package/esm/typings/type-fetcher.d.ts +0 -89
  293. package/esm/typings/type-fetcher.d.ts.map +0 -1
  294. package/esm/typings/types.d.ts +0 -320
  295. package/esm/typings/types.d.ts.map +0 -1
  296. package/esm/utils/escape-html.d.ts +0 -58
  297. package/esm/utils/escape-html.d.ts.map +0 -1
  298. package/esm/utils/index.d.ts +0 -10
  299. package/esm/utils/index.d.ts.map +0 -1
  300. package/esm/utils/safe-stringify.d.ts +0 -30
  301. package/esm/utils/safe-stringify.d.ts.map +0 -1
  302. package/esm/validation/error-box.d.ts +0 -56
  303. package/esm/validation/error-box.d.ts.map +0 -1
  304. package/esm/validation/index.d.ts +0 -13
  305. package/esm/validation/index.d.ts.map +0 -1
  306. package/esm/validation/schema-paths.d.ts +0 -118
  307. package/esm/validation/schema-paths.d.ts.map +0 -1
  308. package/esm/validation/template-validator.d.ts +0 -143
  309. package/esm/validation/template-validator.d.ts.map +0 -1
  310. package/esm/validation/wrapper.d.ts +0 -97
  311. package/esm/validation/wrapper.d.ts.map +0 -1
  312. package/renderers/mdx.renderer.d.ts +0 -120
  313. package/renderers/mdx.renderer.d.ts.map +0 -1
  314. /package/esm/bridge-runtime/{index.js → index.mjs} +0 -0
  315. /package/esm/types/{index.js → index.mjs} +0 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@frontmcp/uipack",
3
- "version": "0.6.1",
3
+ "version": "0.6.2",
4
4
  "description": "FrontMCP UIpack - Bundling, build tools, and platform adapters for MCP UI development (React-free core)",
5
5
  "author": "AgentFront <info@agentfront.dev>",
6
6
  "homepage": "https://docs.agentfront.dev",
@@ -27,8 +27,9 @@
27
27
  },
28
28
  "type": "commonjs",
29
29
  "main": "./index.js",
30
- "module": "./esm/index.js",
30
+ "module": "./esm/index.mjs",
31
31
  "types": "./index.d.ts",
32
+ "sideEffects": false,
32
33
  "exports": {
33
34
  "./package.json": "./package.json",
34
35
  ".": {
@@ -37,8 +38,8 @@
37
38
  "default": "./index.js"
38
39
  },
39
40
  "import": {
40
- "types": "./esm/index.d.ts",
41
- "default": "./esm/index.js"
41
+ "types": "./index.d.ts",
42
+ "default": "./esm/index.mjs"
42
43
  }
43
44
  },
44
45
  "./*": {
@@ -47,8 +48,8 @@
47
48
  "default": "./*/index.js"
48
49
  },
49
50
  "import": {
50
- "types": "./esm/*/index.d.ts",
51
- "default": "./esm/*/index.js"
51
+ "types": "./*/index.d.ts",
52
+ "default": "./esm/*/index.mjs"
52
53
  }
53
54
  },
54
55
  "./esm": null
@@ -0,0 +1,67 @@
1
+ /**
2
+ * Claude Preview Handler
3
+ *
4
+ * Generates metadata for Anthropic Claude platform.
5
+ *
6
+ * Claude is always inline-only (cannot fetch resources).
7
+ * Uses Cloudflare CDN which is trusted by Claude's sandbox.
8
+ *
9
+ * Discovery (tools/list):
10
+ * - No resource registration (Claude can't fetch)
11
+ * - Optional loader HTML in _meta for streaming scenarios
12
+ *
13
+ * Execution (tool/call):
14
+ * - Full HTML with injected input/output
15
+ * - Uses Cloudflare CDN for dependencies
16
+ *
17
+ * @packageDocumentation
18
+ */
19
+ import type { PreviewHandler, DiscoveryPreviewOptions, ExecutionPreviewOptions, DiscoveryMeta, ExecutionMeta } from './types';
20
+ /**
21
+ * Preview handler for Anthropic Claude platform.
22
+ *
23
+ * @example
24
+ * ```typescript
25
+ * const preview = new ClaudePreview();
26
+ *
27
+ * // For tool/call (Claude is always inline)
28
+ * const executionMeta = preview.forExecution({
29
+ * buildResult: staticResult,
30
+ * input: { location: 'NYC' },
31
+ * output: { temperature: 72 },
32
+ * });
33
+ * ```
34
+ */
35
+ export declare class ClaudePreview implements PreviewHandler {
36
+ readonly platform: "claude";
37
+ /**
38
+ * Generate metadata for tool discovery (tools/list).
39
+ *
40
+ * Claude cannot fetch resources, so discovery is minimal.
41
+ * We may include a loader HTML for streaming scenarios.
42
+ */
43
+ forDiscovery(options: DiscoveryPreviewOptions): DiscoveryMeta;
44
+ /**
45
+ * Generate metadata for tool execution (tool/call).
46
+ *
47
+ * Always returns complete HTML with embedded data.
48
+ */
49
+ forExecution(options: ExecutionPreviewOptions): ExecutionMeta;
50
+ private forExecutionStatic;
51
+ private forExecutionHybrid;
52
+ private forExecutionInline;
53
+ /**
54
+ * Replace esm.sh CDN URLs with Cloudflare CDN.
55
+ *
56
+ * Claude's sandbox trusts Cloudflare but not esm.sh.
57
+ */
58
+ private replaceWithCloudfareCdn;
59
+ /**
60
+ * Build simple inline HTML for Claude.
61
+ *
62
+ * Uses safeJsonForScript for script context and escapeHtml for HTML context
63
+ * to prevent XSS attacks from malicious data.
64
+ */
65
+ private buildClaudeInlineHtml;
66
+ }
67
+ //# sourceMappingURL=claude-preview.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claude-preview.d.ts","sourceRoot":"","sources":["../../src/preview/claude-preview.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAAK,EACV,cAAc,EACd,uBAAuB,EACvB,uBAAuB,EACvB,aAAa,EACb,aAAa,EAEd,MAAM,SAAS,CAAC;AAwBjB;;;;;;;;;;;;;;GAcG;AACH,qBAAa,aAAc,YAAW,cAAc;IAClD,QAAQ,CAAC,QAAQ,EAAG,QAAQ,CAAU;IAEtC;;;;;OAKG;IACH,YAAY,CAAC,OAAO,EAAE,uBAAuB,GAAG,aAAa;IAe7D;;;;OAIG;IACH,YAAY,CAAC,OAAO,EAAE,uBAAuB,GAAG,aAAa;IAsB7D,OAAO,CAAC,kBAAkB;IAoB1B,OAAO,CAAC,kBAAkB;IAsC1B,OAAO,CAAC,kBAAkB;IAwB1B;;;;OAIG;IACH,OAAO,CAAC,uBAAuB;IAkB/B;;;;;OAKG;IACH,OAAO,CAAC,qBAAqB;CAmC9B"}
@@ -0,0 +1,67 @@
1
+ /**
2
+ * Generic Preview Handler
3
+ *
4
+ * Generates metadata for generic MCP clients.
5
+ * Uses frontmcp/* namespace with ui/* fallback for compatibility.
6
+ *
7
+ * Behaves like OpenAI but with different metadata namespaces.
8
+ *
9
+ * @packageDocumentation
10
+ */
11
+ import type { PreviewHandler, DiscoveryPreviewOptions, ExecutionPreviewOptions, DiscoveryMeta, ExecutionMeta } from './types';
12
+ /**
13
+ * Preview handler for generic MCP clients.
14
+ *
15
+ * Uses the same patterns as OpenAI but with frontmcp/* namespace
16
+ * and ui/* fallback for maximum compatibility.
17
+ *
18
+ * @example
19
+ * ```typescript
20
+ * const preview = new GenericPreview();
21
+ *
22
+ * // For tools/list
23
+ * const discoveryMeta = preview.forDiscovery({
24
+ * buildResult: hybridResult,
25
+ * toolName: 'get_weather',
26
+ * });
27
+ *
28
+ * // For tool/call
29
+ * const executionMeta = preview.forExecution({
30
+ * buildResult: hybridResult,
31
+ * input: { location: 'NYC' },
32
+ * output: { temperature: 72 },
33
+ * });
34
+ * ```
35
+ */
36
+ export declare class GenericPreview implements PreviewHandler {
37
+ readonly platform: "generic";
38
+ /**
39
+ * Generate metadata for tool discovery (tools/list).
40
+ */
41
+ forDiscovery(options: DiscoveryPreviewOptions): DiscoveryMeta;
42
+ /**
43
+ * Generate metadata for tool execution (tool/call).
44
+ */
45
+ forExecution(options: ExecutionPreviewOptions): ExecutionMeta;
46
+ private forDiscoveryStatic;
47
+ private forDiscoveryHybrid;
48
+ private forDiscoveryInline;
49
+ private forExecutionStatic;
50
+ private forExecutionHybrid;
51
+ private forExecutionInline;
52
+ /**
53
+ * Inject builder mode mock APIs into HTML.
54
+ *
55
+ * Uses safeJsonForScript to prevent XSS attacks from malicious data
56
+ * containing `</script>` or other HTML-sensitive sequences.
57
+ */
58
+ private injectBuilderMode;
59
+ /**
60
+ * Combine hybrid shell + component for builder mode.
61
+ *
62
+ * Uses regex patterns for robust placeholder matching and
63
+ * safeJsonForScript to prevent XSS attacks.
64
+ */
65
+ private combineHybridForBuilder;
66
+ }
67
+ //# sourceMappingURL=generic-preview.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generic-preview.d.ts","sourceRoot":"","sources":["../../src/preview/generic-preview.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EACV,cAAc,EACd,uBAAuB,EACvB,uBAAuB,EACvB,aAAa,EACb,aAAa,EAGd,MAAM,SAAS,CAAC;AAsBjB;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,qBAAa,cAAe,YAAW,cAAc;IACnD,QAAQ,CAAC,QAAQ,EAAG,SAAS,CAAU;IAEvC;;OAEG;IACH,YAAY,CAAC,OAAO,EAAE,uBAAuB,GAAG,aAAa;IAkB7D;;OAEG;IACH,YAAY,CAAC,OAAO,EAAE,uBAAuB,GAAG,aAAa;IAsB7D,OAAO,CAAC,kBAAkB;IAqB1B,OAAO,CAAC,kBAAkB;IAiB1B,OAAO,CAAC,kBAAkB;IAgB1B,OAAO,CAAC,kBAAkB;IA4B1B,OAAO,CAAC,kBAAkB;IA+B1B,OAAO,CAAC,kBAAkB;IAwB1B;;;;;OAKG;IACH,OAAO,CAAC,iBAAiB;IAuCzB;;;;;OAKG;IACH,OAAO,CAAC,uBAAuB;CA6BhC"}
@@ -0,0 +1,36 @@
1
+ /**
2
+ * Preview Handlers
3
+ *
4
+ * Platform-specific preview handlers for generating metadata.
5
+ *
6
+ * @packageDocumentation
7
+ */
8
+ export type { Platform, AIPlatformType, DiscoveryPreviewOptions, ExecutionPreviewOptions, BuilderMockData, DiscoveryMeta, ExecutionMeta, PreviewHandler, OpenAIMetaFields, ClaudeMetaFields, FrontMCPMetaFields, UIMetaFields, } from './types';
9
+ export { OpenAIPreview } from './openai-preview';
10
+ export { ClaudePreview } from './claude-preview';
11
+ export { GenericPreview } from './generic-preview';
12
+ import type { Platform, PreviewHandler } from './types';
13
+ /**
14
+ * Create a preview handler for the specified platform.
15
+ *
16
+ * @param platform - Target platform
17
+ * @returns Preview handler instance
18
+ *
19
+ * @example
20
+ * ```typescript
21
+ * const preview = createPreviewHandler('openai');
22
+ * const meta = preview.forExecution({ buildResult, input, output });
23
+ * ```
24
+ */
25
+ export declare function createPreviewHandler(platform: Platform): PreviewHandler;
26
+ /**
27
+ * Detect platform from client info or environment.
28
+ *
29
+ * @param clientInfo - Optional client info object
30
+ * @returns Detected platform
31
+ */
32
+ export declare function detectPlatform(clientInfo?: {
33
+ name?: string;
34
+ version?: string;
35
+ }): Platform;
36
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/preview/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,YAAY,EACV,QAAQ,EACR,cAAc,EACd,uBAAuB,EACvB,uBAAuB,EACvB,eAAe,EACf,aAAa,EACb,aAAa,EACb,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EAChB,kBAAkB,EAClB,YAAY,GACb,MAAM,SAAS,CAAC;AAGjB,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AASnD,OAAO,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAExD;;;;;;;;;;;GAWG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,QAAQ,GAAG,cAAc,CAWvE;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,UAAU,CAAC,EAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,QAAQ,CAgBzF"}
@@ -0,0 +1,70 @@
1
+ /**
2
+ * OpenAI Preview Handler
3
+ *
4
+ * Generates metadata for OpenAI ChatGPT platform.
5
+ *
6
+ * Discovery (tools/list):
7
+ * - Static/Hybrid: Return shell via resource:// URI
8
+ * - Inline: Return minimal loader in _meta
9
+ *
10
+ * Execution (tool/call):
11
+ * - Static: Empty _meta, data via window.openai.toolOutput
12
+ * - Hybrid: Component chunk in _meta['ui/component']
13
+ * - Inline: Full HTML in _meta['ui/html']
14
+ *
15
+ * @packageDocumentation
16
+ */
17
+ import type { PreviewHandler, DiscoveryPreviewOptions, ExecutionPreviewOptions, DiscoveryMeta, ExecutionMeta } from './types';
18
+ /**
19
+ * Preview handler for OpenAI ChatGPT platform.
20
+ *
21
+ * @example
22
+ * ```typescript
23
+ * const preview = new OpenAIPreview();
24
+ *
25
+ * // For tools/list
26
+ * const discoveryMeta = preview.forDiscovery({
27
+ * buildResult: hybridResult,
28
+ * toolName: 'get_weather',
29
+ * });
30
+ *
31
+ * // For tool/call
32
+ * const executionMeta = preview.forExecution({
33
+ * buildResult: hybridResult,
34
+ * input: { location: 'NYC' },
35
+ * output: { temperature: 72 },
36
+ * });
37
+ * ```
38
+ */
39
+ export declare class OpenAIPreview implements PreviewHandler {
40
+ readonly platform: "openai";
41
+ /**
42
+ * Generate metadata for tool discovery (tools/list).
43
+ */
44
+ forDiscovery(options: DiscoveryPreviewOptions): DiscoveryMeta;
45
+ /**
46
+ * Generate metadata for tool execution (tool/call).
47
+ */
48
+ forExecution(options: ExecutionPreviewOptions): ExecutionMeta;
49
+ private forDiscoveryStatic;
50
+ private forDiscoveryHybrid;
51
+ private forDiscoveryInline;
52
+ private forExecutionStatic;
53
+ private forExecutionHybrid;
54
+ private forExecutionInline;
55
+ /**
56
+ * Inject builder mode mock APIs into HTML.
57
+ *
58
+ * Uses safeJsonForScript to prevent XSS attacks from malicious data
59
+ * containing `</script>` or other HTML-sensitive sequences.
60
+ */
61
+ private injectBuilderMode;
62
+ /**
63
+ * Combine hybrid shell + component for builder mode.
64
+ *
65
+ * Uses regex patterns for robust placeholder matching and
66
+ * safeJsonForScript to prevent XSS attacks.
67
+ */
68
+ private combineHybridForBuilder;
69
+ }
70
+ //# sourceMappingURL=openai-preview.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openai-preview.d.ts","sourceRoot":"","sources":["../../src/preview/openai-preview.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,KAAK,EACV,cAAc,EACd,uBAAuB,EACvB,uBAAuB,EACvB,aAAa,EACb,aAAa,EAGd,MAAM,SAAS,CAAC;AAmCjB;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,qBAAa,aAAc,YAAW,cAAc;IAClD,QAAQ,CAAC,QAAQ,EAAG,QAAQ,CAAU;IAEtC;;OAEG;IACH,YAAY,CAAC,OAAO,EAAE,uBAAuB,GAAG,aAAa;IAkB7D;;OAEG;IACH,YAAY,CAAC,OAAO,EAAE,uBAAuB,GAAG,aAAa;IAsB7D,OAAO,CAAC,kBAAkB;IAmB1B,OAAO,CAAC,kBAAkB;IAiB1B,OAAO,CAAC,kBAAkB;IAmB1B,OAAO,CAAC,kBAAkB;IA+B1B,OAAO,CAAC,kBAAkB;IAiC1B,OAAO,CAAC,kBAAkB;IAgC1B;;;;;OAKG;IACH,OAAO,CAAC,iBAAiB;IAgDzB;;;;;OAKG;IACH,OAAO,CAAC,uBAAuB;CA+BhC"}
@@ -0,0 +1,185 @@
1
+ /**
2
+ * Preview Types
3
+ *
4
+ * Type definitions for platform-specific preview handlers.
5
+ *
6
+ * @packageDocumentation
7
+ */
8
+ import type { BuilderResult } from '../build/builders/types';
9
+ export type { AIPlatformType } from '../adapters/platform-meta';
10
+ /**
11
+ * Supported MCP platforms for preview handlers.
12
+ *
13
+ * This is a strict subset used for preview handler routing.
14
+ * - 'openai': OpenAI ChatGPT platform
15
+ * - 'claude': Anthropic Claude platform
16
+ * - 'generic': All other MCP clients
17
+ *
18
+ * For broader platform detection (including IDEs), see AIPlatformType
19
+ * from the adapters module, which is the canonical source for that type.
20
+ */
21
+ export type Platform = 'openai' | 'claude' | 'generic';
22
+ /**
23
+ * Options for generating discovery metadata (tools/list).
24
+ */
25
+ export interface DiscoveryPreviewOptions {
26
+ /**
27
+ * Build result from a builder.
28
+ */
29
+ buildResult: BuilderResult;
30
+ /**
31
+ * Name of the tool.
32
+ */
33
+ toolName: string;
34
+ /**
35
+ * Optional description for the widget.
36
+ */
37
+ description?: string;
38
+ }
39
+ /**
40
+ * Options for generating execution metadata (tool/call).
41
+ */
42
+ export interface ExecutionPreviewOptions {
43
+ /**
44
+ * Build result from a builder.
45
+ */
46
+ buildResult: BuilderResult;
47
+ /**
48
+ * Tool input arguments.
49
+ */
50
+ input: unknown;
51
+ /**
52
+ * Tool output/result data.
53
+ */
54
+ output: unknown;
55
+ /**
56
+ * Whether to enable builder mode (inject mock platform APIs).
57
+ * @default false
58
+ */
59
+ builderMode?: boolean;
60
+ /**
61
+ * Mock data for builder mode.
62
+ */
63
+ mockData?: BuilderMockData;
64
+ }
65
+ /**
66
+ * Mock data for builder mode preview.
67
+ */
68
+ export interface BuilderMockData {
69
+ /**
70
+ * Theme to use ('light' | 'dark').
71
+ */
72
+ theme?: 'light' | 'dark';
73
+ /**
74
+ * Display mode.
75
+ */
76
+ displayMode?: 'inline' | 'immersive';
77
+ /**
78
+ * Mock tool call responses.
79
+ */
80
+ toolResponses?: Record<string, unknown>;
81
+ }
82
+ /**
83
+ * Result from discovery preview (tools/list).
84
+ */
85
+ export interface DiscoveryMeta {
86
+ /**
87
+ * Metadata fields for the tool response.
88
+ */
89
+ _meta: Record<string, unknown>;
90
+ /**
91
+ * Resource URI (if static/hybrid mode with resource delivery).
92
+ */
93
+ resourceUri?: string;
94
+ /**
95
+ * Resource content (if resource needs to be registered).
96
+ */
97
+ resourceContent?: string;
98
+ }
99
+ /**
100
+ * Result from execution preview (tool/call).
101
+ */
102
+ export interface ExecutionMeta {
103
+ /**
104
+ * Metadata fields for the tool response.
105
+ */
106
+ _meta: Record<string, unknown>;
107
+ /**
108
+ * Complete HTML (for inline delivery).
109
+ */
110
+ html?: string;
111
+ /**
112
+ * Structured content for the response.
113
+ */
114
+ structuredContent?: unknown;
115
+ /**
116
+ * Text content for fallback display.
117
+ */
118
+ textContent?: string;
119
+ }
120
+ /**
121
+ * Interface for platform-specific preview handlers.
122
+ */
123
+ export interface PreviewHandler {
124
+ /**
125
+ * Platform this handler is for.
126
+ */
127
+ readonly platform: Platform;
128
+ /**
129
+ * Generate metadata for tool discovery (tools/list).
130
+ *
131
+ * @param options - Discovery options
132
+ * @returns Discovery metadata
133
+ */
134
+ forDiscovery(options: DiscoveryPreviewOptions): DiscoveryMeta;
135
+ /**
136
+ * Generate metadata for tool execution (tool/call).
137
+ *
138
+ * @param options - Execution options
139
+ * @returns Execution metadata
140
+ */
141
+ forExecution(options: ExecutionPreviewOptions): ExecutionMeta;
142
+ }
143
+ /**
144
+ * OpenAI-specific metadata fields.
145
+ */
146
+ export interface OpenAIMetaFields {
147
+ 'openai/outputTemplate'?: string;
148
+ 'openai/html'?: string;
149
+ 'openai/component'?: string;
150
+ 'openai/widgetCSP'?: {
151
+ connect_domains?: string[];
152
+ resource_domains?: string[];
153
+ };
154
+ 'openai/widgetAccessible'?: boolean;
155
+ 'openai/displayMode'?: 'inline' | 'immersive';
156
+ 'openai/resultCanProduceWidget'?: boolean;
157
+ }
158
+ /**
159
+ * Claude-specific metadata fields.
160
+ */
161
+ export interface ClaudeMetaFields {
162
+ 'ui/html'?: string;
163
+ 'ui/mimeType'?: string;
164
+ 'claude/widgetDescription'?: string;
165
+ 'claude/prefersBorder'?: boolean;
166
+ }
167
+ /**
168
+ * FrontMCP/Generic metadata fields.
169
+ */
170
+ export interface FrontMCPMetaFields {
171
+ 'frontmcp/html'?: string;
172
+ 'frontmcp/outputTemplate'?: string;
173
+ 'frontmcp/component'?: string;
174
+ 'frontmcp/widgetCSP'?: {
175
+ connect_domains?: string[];
176
+ resource_domains?: string[];
177
+ };
178
+ 'ui/html'?: string;
179
+ 'ui/mimeType'?: string;
180
+ }
181
+ /**
182
+ * Combined metadata fields for all platforms.
183
+ */
184
+ export type UIMetaFields = OpenAIMetaFields & ClaudeMetaFields & FrontMCPMetaFields;
185
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/preview/types.ts"],"names":[],"mappings":"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"}