@frontmcp/ui 0.5.0 → 0.6.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 (1134) hide show
  1. package/adapters/index.d.ts +13 -0
  2. package/adapters/index.d.ts.map +1 -0
  3. package/adapters/index.js +462 -0
  4. package/adapters/platform-meta.d.ts +166 -0
  5. package/adapters/platform-meta.d.ts.map +1 -0
  6. package/adapters/response-builder.d.ts +108 -0
  7. package/adapters/response-builder.d.ts.map +1 -0
  8. package/adapters/serving-mode.d.ts +107 -0
  9. package/adapters/serving-mode.d.ts.map +1 -0
  10. package/base-template/bridge.d.ts +90 -0
  11. package/base-template/bridge.d.ts.map +1 -0
  12. package/base-template/default-base-template.d.ts +92 -0
  13. package/base-template/default-base-template.d.ts.map +1 -0
  14. package/base-template/index.d.ts +15 -0
  15. package/base-template/index.d.ts.map +1 -0
  16. package/base-template/index.js +1398 -0
  17. package/base-template/polyfills.d.ts +31 -0
  18. package/base-template/polyfills.d.ts.map +1 -0
  19. package/base-template/theme-styles.d.ts +74 -0
  20. package/base-template/theme-styles.d.ts.map +1 -0
  21. package/bridge/adapters/base-adapter.d.ts +104 -0
  22. package/bridge/adapters/base-adapter.d.ts.map +1 -0
  23. package/bridge/adapters/claude.adapter.d.ts +67 -0
  24. package/bridge/adapters/claude.adapter.d.ts.map +1 -0
  25. package/bridge/adapters/ext-apps.adapter.d.ts +143 -0
  26. package/bridge/adapters/ext-apps.adapter.d.ts.map +1 -0
  27. package/bridge/adapters/gemini.adapter.d.ts +64 -0
  28. package/bridge/adapters/gemini.adapter.d.ts.map +1 -0
  29. package/bridge/adapters/generic.adapter.d.ts +56 -0
  30. package/bridge/adapters/generic.adapter.d.ts.map +1 -0
  31. package/bridge/adapters/index.d.ts +26 -0
  32. package/bridge/adapters/index.d.ts.map +1 -0
  33. package/bridge/adapters/openai.adapter.d.ts +65 -0
  34. package/bridge/adapters/openai.adapter.d.ts.map +1 -0
  35. package/bridge/core/adapter-registry.d.ts +122 -0
  36. package/bridge/core/adapter-registry.d.ts.map +1 -0
  37. package/bridge/core/bridge-factory.d.ts +199 -0
  38. package/bridge/core/bridge-factory.d.ts.map +1 -0
  39. package/bridge/core/index.d.ts +10 -0
  40. package/bridge/core/index.d.ts.map +1 -0
  41. package/bridge/index.d.ts +62 -0
  42. package/bridge/index.d.ts.map +1 -0
  43. package/bridge/index.js +2540 -0
  44. package/bridge/runtime/iife-generator.d.ts +62 -0
  45. package/bridge/runtime/iife-generator.d.ts.map +1 -0
  46. package/bridge/runtime/index.d.ts +9 -0
  47. package/bridge/runtime/index.d.ts.map +1 -0
  48. package/bridge/types.d.ts +386 -0
  49. package/bridge/types.d.ts.map +1 -0
  50. package/build/cdn-resources.d.ts +243 -0
  51. package/build/cdn-resources.d.ts.map +1 -0
  52. package/build/index.d.ts +295 -0
  53. package/build/index.d.ts.map +1 -0
  54. package/build/index.js +7096 -0
  55. package/build/widget-manifest.d.ts +362 -0
  56. package/build/widget-manifest.d.ts.map +1 -0
  57. package/bundler/bundler.d.ts +208 -0
  58. package/bundler/bundler.d.ts.map +1 -0
  59. package/bundler/cache.d.ts +173 -0
  60. package/bundler/cache.d.ts.map +1 -0
  61. package/bundler/file-cache/component-builder.d.ts +167 -0
  62. package/bundler/file-cache/component-builder.d.ts.map +1 -0
  63. package/bundler/file-cache/hash-calculator.d.ts +155 -0
  64. package/bundler/file-cache/hash-calculator.d.ts.map +1 -0
  65. package/bundler/file-cache/index.d.ts +12 -0
  66. package/bundler/file-cache/index.d.ts.map +1 -0
  67. package/bundler/file-cache/storage/filesystem.d.ts +149 -0
  68. package/bundler/file-cache/storage/filesystem.d.ts.map +1 -0
  69. package/bundler/file-cache/storage/index.d.ts +11 -0
  70. package/bundler/file-cache/storage/index.d.ts.map +1 -0
  71. package/bundler/file-cache/storage/interface.d.ts +152 -0
  72. package/bundler/file-cache/storage/interface.d.ts.map +1 -0
  73. package/bundler/file-cache/storage/redis.d.ts +139 -0
  74. package/bundler/file-cache/storage/redis.d.ts.map +1 -0
  75. package/bundler/index.d.ts +43 -0
  76. package/bundler/index.d.ts.map +1 -0
  77. package/bundler/index.js +4754 -0
  78. package/bundler/sandbox/enclave-adapter.d.ts +121 -0
  79. package/bundler/sandbox/enclave-adapter.d.ts.map +1 -0
  80. package/bundler/sandbox/executor.d.ts +14 -0
  81. package/bundler/sandbox/executor.d.ts.map +1 -0
  82. package/bundler/sandbox/policy.d.ts +62 -0
  83. package/bundler/sandbox/policy.d.ts.map +1 -0
  84. package/bundler/types.d.ts +702 -0
  85. package/bundler/types.d.ts.map +1 -0
  86. package/components/alert.d.ts +66 -0
  87. package/components/alert.d.ts.map +1 -0
  88. package/components/alert.schema.d.ts +98 -0
  89. package/components/alert.schema.d.ts.map +1 -0
  90. package/components/avatar.d.ts +77 -0
  91. package/components/avatar.d.ts.map +1 -0
  92. package/components/avatar.schema.d.ts +170 -0
  93. package/components/avatar.schema.d.ts.map +1 -0
  94. package/components/badge.d.ts +64 -0
  95. package/components/badge.d.ts.map +1 -0
  96. package/components/badge.schema.d.ts +91 -0
  97. package/components/badge.schema.d.ts.map +1 -0
  98. package/components/button.d.ts +100 -0
  99. package/components/button.d.ts.map +1 -0
  100. package/components/button.schema.d.ts +120 -0
  101. package/components/button.schema.d.ts.map +1 -0
  102. package/components/card.d.ts +53 -0
  103. package/components/card.d.ts.map +1 -0
  104. package/components/card.schema.d.ts +93 -0
  105. package/components/card.schema.d.ts.map +1 -0
  106. package/components/form.d.ts +212 -0
  107. package/components/form.d.ts.map +1 -0
  108. package/components/form.schema.d.ts +365 -0
  109. package/components/form.schema.d.ts.map +1 -0
  110. package/components/index.d.ts +29 -0
  111. package/components/index.d.ts.map +1 -0
  112. package/components/index.js +2595 -0
  113. package/components/list.d.ts +121 -0
  114. package/components/list.d.ts.map +1 -0
  115. package/components/list.schema.d.ts +129 -0
  116. package/components/list.schema.d.ts.map +1 -0
  117. package/components/modal.d.ts +100 -0
  118. package/components/modal.d.ts.map +1 -0
  119. package/components/modal.schema.d.ts +151 -0
  120. package/components/modal.schema.d.ts.map +1 -0
  121. package/components/table.d.ts +91 -0
  122. package/components/table.d.ts.map +1 -0
  123. package/components/table.schema.d.ts +123 -0
  124. package/components/table.schema.d.ts.map +1 -0
  125. package/dependency/cdn-registry.d.ts +98 -0
  126. package/dependency/cdn-registry.d.ts.map +1 -0
  127. package/dependency/import-map.d.ts +186 -0
  128. package/dependency/import-map.d.ts.map +1 -0
  129. package/dependency/import-parser.d.ts +82 -0
  130. package/dependency/import-parser.d.ts.map +1 -0
  131. package/dependency/index.d.ts +17 -0
  132. package/dependency/index.d.ts.map +1 -0
  133. package/dependency/resolver.d.ts +164 -0
  134. package/dependency/resolver.d.ts.map +1 -0
  135. package/dependency/schemas.d.ts +486 -0
  136. package/dependency/schemas.d.ts.map +1 -0
  137. package/dependency/template-loader.d.ts +204 -0
  138. package/dependency/template-loader.d.ts.map +1 -0
  139. package/dependency/template-processor.d.ts +118 -0
  140. package/dependency/template-processor.d.ts.map +1 -0
  141. package/dependency/types.d.ts +739 -0
  142. package/dependency/types.d.ts.map +1 -0
  143. package/esm/adapters/index.d.ts +13 -0
  144. package/esm/adapters/index.d.ts.map +1 -0
  145. package/esm/adapters/index.js +427 -0
  146. package/esm/adapters/platform-meta.d.ts +166 -0
  147. package/esm/adapters/platform-meta.d.ts.map +1 -0
  148. package/esm/adapters/response-builder.d.ts +108 -0
  149. package/esm/adapters/response-builder.d.ts.map +1 -0
  150. package/esm/adapters/serving-mode.d.ts +107 -0
  151. package/esm/adapters/serving-mode.d.ts.map +1 -0
  152. package/esm/base-template/bridge.d.ts +90 -0
  153. package/esm/base-template/bridge.d.ts.map +1 -0
  154. package/esm/base-template/default-base-template.d.ts +92 -0
  155. package/esm/base-template/default-base-template.d.ts.map +1 -0
  156. package/esm/base-template/index.d.ts +15 -0
  157. package/esm/base-template/index.d.ts.map +1 -0
  158. package/esm/base-template/index.js +1364 -0
  159. package/esm/base-template/polyfills.d.ts +31 -0
  160. package/esm/base-template/polyfills.d.ts.map +1 -0
  161. package/esm/base-template/theme-styles.d.ts +74 -0
  162. package/esm/base-template/theme-styles.d.ts.map +1 -0
  163. package/esm/bridge/adapters/base-adapter.d.ts +104 -0
  164. package/esm/bridge/adapters/base-adapter.d.ts.map +1 -0
  165. package/esm/bridge/adapters/claude.adapter.d.ts +67 -0
  166. package/esm/bridge/adapters/claude.adapter.d.ts.map +1 -0
  167. package/esm/bridge/adapters/ext-apps.adapter.d.ts +143 -0
  168. package/esm/bridge/adapters/ext-apps.adapter.d.ts.map +1 -0
  169. package/esm/bridge/adapters/gemini.adapter.d.ts +64 -0
  170. package/esm/bridge/adapters/gemini.adapter.d.ts.map +1 -0
  171. package/esm/bridge/adapters/generic.adapter.d.ts +56 -0
  172. package/esm/bridge/adapters/generic.adapter.d.ts.map +1 -0
  173. package/esm/bridge/adapters/index.d.ts +26 -0
  174. package/esm/bridge/adapters/index.d.ts.map +1 -0
  175. package/esm/bridge/adapters/openai.adapter.d.ts +65 -0
  176. package/esm/bridge/adapters/openai.adapter.d.ts.map +1 -0
  177. package/esm/bridge/core/adapter-registry.d.ts +122 -0
  178. package/esm/bridge/core/adapter-registry.d.ts.map +1 -0
  179. package/esm/bridge/core/bridge-factory.d.ts +199 -0
  180. package/esm/bridge/core/bridge-factory.d.ts.map +1 -0
  181. package/esm/bridge/core/index.d.ts +10 -0
  182. package/esm/bridge/core/index.d.ts.map +1 -0
  183. package/esm/bridge/index.d.ts +62 -0
  184. package/esm/bridge/index.d.ts.map +1 -0
  185. package/esm/bridge/index.js +2487 -0
  186. package/esm/bridge/runtime/iife-generator.d.ts +62 -0
  187. package/esm/bridge/runtime/iife-generator.d.ts.map +1 -0
  188. package/esm/bridge/runtime/index.d.ts +9 -0
  189. package/esm/bridge/runtime/index.d.ts.map +1 -0
  190. package/esm/bridge/types.d.ts +386 -0
  191. package/esm/bridge/types.d.ts.map +1 -0
  192. package/esm/build/cdn-resources.d.ts +243 -0
  193. package/esm/build/cdn-resources.d.ts.map +1 -0
  194. package/esm/build/index.d.ts +295 -0
  195. package/esm/build/index.d.ts.map +1 -0
  196. package/esm/build/index.js +7021 -0
  197. package/esm/build/widget-manifest.d.ts +362 -0
  198. package/esm/build/widget-manifest.d.ts.map +1 -0
  199. package/esm/bundler/bundler.d.ts +208 -0
  200. package/esm/bundler/bundler.d.ts.map +1 -0
  201. package/esm/bundler/cache.d.ts +173 -0
  202. package/esm/bundler/cache.d.ts.map +1 -0
  203. package/esm/bundler/file-cache/component-builder.d.ts +167 -0
  204. package/esm/bundler/file-cache/component-builder.d.ts.map +1 -0
  205. package/esm/bundler/file-cache/hash-calculator.d.ts +155 -0
  206. package/esm/bundler/file-cache/hash-calculator.d.ts.map +1 -0
  207. package/esm/bundler/file-cache/index.d.ts +12 -0
  208. package/esm/bundler/file-cache/index.d.ts.map +1 -0
  209. package/esm/bundler/file-cache/storage/filesystem.d.ts +149 -0
  210. package/esm/bundler/file-cache/storage/filesystem.d.ts.map +1 -0
  211. package/esm/bundler/file-cache/storage/index.d.ts +11 -0
  212. package/esm/bundler/file-cache/storage/index.d.ts.map +1 -0
  213. package/esm/bundler/file-cache/storage/interface.d.ts +152 -0
  214. package/esm/bundler/file-cache/storage/interface.d.ts.map +1 -0
  215. package/esm/bundler/file-cache/storage/redis.d.ts +139 -0
  216. package/esm/bundler/file-cache/storage/redis.d.ts.map +1 -0
  217. package/esm/bundler/index.d.ts +43 -0
  218. package/esm/bundler/index.d.ts.map +1 -0
  219. package/esm/bundler/index.js +4687 -0
  220. package/esm/bundler/sandbox/enclave-adapter.d.ts +121 -0
  221. package/esm/bundler/sandbox/enclave-adapter.d.ts.map +1 -0
  222. package/esm/bundler/sandbox/executor.d.ts +14 -0
  223. package/esm/bundler/sandbox/executor.d.ts.map +1 -0
  224. package/esm/bundler/sandbox/policy.d.ts +62 -0
  225. package/esm/bundler/sandbox/policy.d.ts.map +1 -0
  226. package/esm/bundler/types.d.ts +702 -0
  227. package/esm/bundler/types.d.ts.map +1 -0
  228. package/esm/components/alert.d.ts +66 -0
  229. package/esm/components/alert.d.ts.map +1 -0
  230. package/esm/components/alert.schema.d.ts +98 -0
  231. package/esm/components/alert.schema.d.ts.map +1 -0
  232. package/esm/components/avatar.d.ts +77 -0
  233. package/esm/components/avatar.d.ts.map +1 -0
  234. package/esm/components/avatar.schema.d.ts +170 -0
  235. package/esm/components/avatar.schema.d.ts.map +1 -0
  236. package/esm/components/badge.d.ts +64 -0
  237. package/esm/components/badge.d.ts.map +1 -0
  238. package/esm/components/badge.schema.d.ts +91 -0
  239. package/esm/components/badge.schema.d.ts.map +1 -0
  240. package/esm/components/button.d.ts +100 -0
  241. package/esm/components/button.d.ts.map +1 -0
  242. package/esm/components/button.schema.d.ts +120 -0
  243. package/esm/components/button.schema.d.ts.map +1 -0
  244. package/esm/components/card.d.ts +53 -0
  245. package/esm/components/card.d.ts.map +1 -0
  246. package/esm/components/card.schema.d.ts +93 -0
  247. package/esm/components/card.schema.d.ts.map +1 -0
  248. package/esm/components/form.d.ts +212 -0
  249. package/esm/components/form.d.ts.map +1 -0
  250. package/esm/components/form.schema.d.ts +365 -0
  251. package/esm/components/form.schema.d.ts.map +1 -0
  252. package/esm/components/index.d.ts +29 -0
  253. package/esm/components/index.d.ts.map +1 -0
  254. package/esm/components/index.js +2456 -0
  255. package/esm/components/list.d.ts +121 -0
  256. package/esm/components/list.d.ts.map +1 -0
  257. package/esm/components/list.schema.d.ts +129 -0
  258. package/esm/components/list.schema.d.ts.map +1 -0
  259. package/esm/components/modal.d.ts +100 -0
  260. package/esm/components/modal.d.ts.map +1 -0
  261. package/esm/components/modal.schema.d.ts +151 -0
  262. package/esm/components/modal.schema.d.ts.map +1 -0
  263. package/esm/components/table.d.ts +91 -0
  264. package/esm/components/table.d.ts.map +1 -0
  265. package/esm/components/table.schema.d.ts +123 -0
  266. package/esm/components/table.schema.d.ts.map +1 -0
  267. package/esm/dependency/cdn-registry.d.ts +98 -0
  268. package/esm/dependency/cdn-registry.d.ts.map +1 -0
  269. package/esm/dependency/import-map.d.ts +186 -0
  270. package/esm/dependency/import-map.d.ts.map +1 -0
  271. package/esm/dependency/import-parser.d.ts +82 -0
  272. package/esm/dependency/import-parser.d.ts.map +1 -0
  273. package/esm/dependency/index.d.ts +17 -0
  274. package/esm/dependency/index.d.ts.map +1 -0
  275. package/esm/dependency/resolver.d.ts +164 -0
  276. package/esm/dependency/resolver.d.ts.map +1 -0
  277. package/esm/dependency/schemas.d.ts +486 -0
  278. package/esm/dependency/schemas.d.ts.map +1 -0
  279. package/esm/dependency/template-loader.d.ts +204 -0
  280. package/esm/dependency/template-loader.d.ts.map +1 -0
  281. package/esm/dependency/template-processor.d.ts +118 -0
  282. package/esm/dependency/template-processor.d.ts.map +1 -0
  283. package/esm/dependency/types.d.ts +739 -0
  284. package/esm/dependency/types.d.ts.map +1 -0
  285. package/esm/handlebars/expression-extractor.d.ts +147 -0
  286. package/esm/handlebars/expression-extractor.d.ts.map +1 -0
  287. package/esm/handlebars/helpers.d.ts +339 -0
  288. package/esm/handlebars/helpers.d.ts.map +1 -0
  289. package/esm/handlebars/index.d.ts +195 -0
  290. package/esm/handlebars/index.d.ts.map +1 -0
  291. package/esm/handlebars/index.js +587 -0
  292. package/esm/index.d.ts +56 -0
  293. package/esm/index.d.ts.map +1 -0
  294. package/esm/index.js +20511 -0
  295. package/esm/layouts/base.d.ts +86 -0
  296. package/esm/layouts/base.d.ts.map +1 -0
  297. package/esm/layouts/index.d.ts +8 -0
  298. package/esm/layouts/index.d.ts.map +1 -0
  299. package/esm/layouts/index.js +892 -0
  300. package/esm/layouts/presets.d.ts +134 -0
  301. package/esm/layouts/presets.d.ts.map +1 -0
  302. package/esm/package.json +90 -0
  303. package/esm/pages/consent.d.ts +117 -0
  304. package/esm/pages/consent.d.ts.map +1 -0
  305. package/esm/pages/error.d.ts +101 -0
  306. package/esm/pages/error.d.ts.map +1 -0
  307. package/esm/pages/index.d.ts +9 -0
  308. package/esm/pages/index.d.ts.map +1 -0
  309. package/esm/pages/index.js +1563 -0
  310. package/esm/react/Alert.d.ts +102 -0
  311. package/esm/react/Alert.d.ts.map +1 -0
  312. package/esm/react/Badge.d.ts +101 -0
  313. package/esm/react/Badge.d.ts.map +1 -0
  314. package/esm/react/Button.d.ts +109 -0
  315. package/esm/react/Button.d.ts.map +1 -0
  316. package/esm/react/Card.d.ts +104 -0
  317. package/esm/react/Card.d.ts.map +1 -0
  318. package/esm/react/hooks/context.d.ts +179 -0
  319. package/esm/react/hooks/context.d.ts.map +1 -0
  320. package/esm/react/hooks/index.d.ts +42 -0
  321. package/esm/react/hooks/index.d.ts.map +1 -0
  322. package/esm/react/hooks/tools.d.ts +284 -0
  323. package/esm/react/hooks/tools.d.ts.map +1 -0
  324. package/esm/react/index.d.ts +81 -0
  325. package/esm/react/index.d.ts.map +1 -0
  326. package/esm/react/index.js +1372 -0
  327. package/esm/react/types.d.ts +106 -0
  328. package/esm/react/types.d.ts.map +1 -0
  329. package/esm/react/utils.d.ts +43 -0
  330. package/esm/react/utils.d.ts.map +1 -0
  331. package/esm/registry/index.d.ts +46 -0
  332. package/esm/registry/index.d.ts.map +1 -0
  333. package/esm/registry/index.js +6422 -0
  334. package/esm/registry/render-template.d.ts +91 -0
  335. package/esm/registry/render-template.d.ts.map +1 -0
  336. package/esm/registry/tool-ui.registry.d.ts +294 -0
  337. package/esm/registry/tool-ui.registry.d.ts.map +1 -0
  338. package/esm/registry/uri-utils.d.ts +56 -0
  339. package/esm/registry/uri-utils.d.ts.map +1 -0
  340. package/esm/render/index.d.ts +8 -0
  341. package/esm/render/index.d.ts.map +1 -0
  342. package/esm/render/index.js +45 -0
  343. package/esm/render/prerender.d.ts +57 -0
  344. package/esm/render/prerender.d.ts.map +1 -0
  345. package/esm/renderers/cache.d.ts +145 -0
  346. package/esm/renderers/cache.d.ts.map +1 -0
  347. package/esm/renderers/html.renderer.d.ts +123 -0
  348. package/esm/renderers/html.renderer.d.ts.map +1 -0
  349. package/esm/renderers/index.d.ts +36 -0
  350. package/esm/renderers/index.d.ts.map +1 -0
  351. package/esm/renderers/index.js +1827 -0
  352. package/esm/renderers/mdx.renderer.d.ts +120 -0
  353. package/esm/renderers/mdx.renderer.d.ts.map +1 -0
  354. package/esm/renderers/react.renderer.d.ts +96 -0
  355. package/esm/renderers/react.renderer.d.ts.map +1 -0
  356. package/esm/renderers/registry.d.ts +134 -0
  357. package/esm/renderers/registry.d.ts.map +1 -0
  358. package/esm/renderers/types.d.ts +342 -0
  359. package/esm/renderers/types.d.ts.map +1 -0
  360. package/esm/renderers/utils/detect.d.ts +107 -0
  361. package/esm/renderers/utils/detect.d.ts.map +1 -0
  362. package/esm/renderers/utils/hash.d.ts +40 -0
  363. package/esm/renderers/utils/hash.d.ts.map +1 -0
  364. package/esm/renderers/utils/index.d.ts +9 -0
  365. package/esm/renderers/utils/index.d.ts.map +1 -0
  366. package/esm/renderers/utils/transpiler.d.ts +89 -0
  367. package/esm/renderers/utils/transpiler.d.ts.map +1 -0
  368. package/esm/runtime/adapters/html.adapter.d.ts +59 -0
  369. package/esm/runtime/adapters/html.adapter.d.ts.map +1 -0
  370. package/esm/runtime/adapters/index.d.ts +26 -0
  371. package/esm/runtime/adapters/index.d.ts.map +1 -0
  372. package/esm/runtime/adapters/mdx.adapter.d.ts +73 -0
  373. package/esm/runtime/adapters/mdx.adapter.d.ts.map +1 -0
  374. package/esm/runtime/adapters/react.adapter.d.ts +70 -0
  375. package/esm/runtime/adapters/react.adapter.d.ts.map +1 -0
  376. package/esm/runtime/adapters/types.d.ts +95 -0
  377. package/esm/runtime/adapters/types.d.ts.map +1 -0
  378. package/esm/runtime/csp.d.ts +48 -0
  379. package/esm/runtime/csp.d.ts.map +1 -0
  380. package/esm/runtime/index.d.ts +17 -0
  381. package/esm/runtime/index.d.ts.map +1 -0
  382. package/esm/runtime/index.js +5186 -0
  383. package/esm/runtime/mcp-bridge.d.ts +101 -0
  384. package/esm/runtime/mcp-bridge.d.ts.map +1 -0
  385. package/esm/runtime/renderer-runtime.d.ts +133 -0
  386. package/esm/runtime/renderer-runtime.d.ts.map +1 -0
  387. package/esm/runtime/sanitizer.d.ts +172 -0
  388. package/esm/runtime/sanitizer.d.ts.map +1 -0
  389. package/esm/runtime/types.d.ts +415 -0
  390. package/esm/runtime/types.d.ts.map +1 -0
  391. package/esm/runtime/wrapper.d.ts +421 -0
  392. package/esm/runtime/wrapper.d.ts.map +1 -0
  393. package/esm/styles/index.d.ts +8 -0
  394. package/esm/styles/index.d.ts.map +1 -0
  395. package/esm/styles/index.js +171 -0
  396. package/esm/styles/variants.d.ts +51 -0
  397. package/esm/styles/variants.d.ts.map +1 -0
  398. package/esm/theme/cdn.d.ts +195 -0
  399. package/esm/theme/cdn.d.ts.map +1 -0
  400. package/esm/theme/index.d.ts +18 -0
  401. package/esm/theme/index.d.ts.map +1 -0
  402. package/esm/theme/index.js +700 -0
  403. package/esm/theme/platforms.d.ts +107 -0
  404. package/esm/theme/platforms.d.ts.map +1 -0
  405. package/esm/theme/presets/github-openai.d.ts +50 -0
  406. package/esm/theme/presets/github-openai.d.ts.map +1 -0
  407. package/esm/theme/presets/index.d.ts +11 -0
  408. package/esm/theme/presets/index.d.ts.map +1 -0
  409. package/esm/theme/theme.d.ts +396 -0
  410. package/esm/theme/theme.d.ts.map +1 -0
  411. package/esm/tool-template/builder.d.ts +213 -0
  412. package/esm/tool-template/builder.d.ts.map +1 -0
  413. package/esm/tool-template/index.d.ts +16 -0
  414. package/esm/tool-template/index.d.ts.map +1 -0
  415. package/esm/tool-template/index.js +3515 -0
  416. package/esm/types/index.d.ts +14 -0
  417. package/esm/types/index.d.ts.map +1 -0
  418. package/esm/types/index.js +75 -0
  419. package/esm/types/ui-config.d.ts +639 -0
  420. package/esm/types/ui-config.d.ts.map +1 -0
  421. package/esm/types/ui-runtime.d.ts +1007 -0
  422. package/esm/types/ui-runtime.d.ts.map +1 -0
  423. package/esm/typings/cache/cache-adapter.d.ts +125 -0
  424. package/esm/typings/cache/cache-adapter.d.ts.map +1 -0
  425. package/esm/typings/cache/index.d.ts +10 -0
  426. package/esm/typings/cache/index.d.ts.map +1 -0
  427. package/esm/typings/cache/memory-cache.d.ts +92 -0
  428. package/esm/typings/cache/memory-cache.d.ts.map +1 -0
  429. package/esm/typings/dts-parser.d.ts +90 -0
  430. package/esm/typings/dts-parser.d.ts.map +1 -0
  431. package/esm/typings/index.d.ts +48 -0
  432. package/esm/typings/index.d.ts.map +1 -0
  433. package/esm/typings/schemas.d.ts +232 -0
  434. package/esm/typings/schemas.d.ts.map +1 -0
  435. package/esm/typings/type-fetcher.d.ts +89 -0
  436. package/esm/typings/type-fetcher.d.ts.map +1 -0
  437. package/esm/typings/types.d.ts +320 -0
  438. package/esm/typings/types.d.ts.map +1 -0
  439. package/esm/universal/UniversalApp.d.ts +108 -0
  440. package/esm/universal/UniversalApp.d.ts.map +1 -0
  441. package/esm/universal/cached-runtime.d.ts +115 -0
  442. package/esm/universal/cached-runtime.d.ts.map +1 -0
  443. package/esm/universal/context.d.ts +122 -0
  444. package/esm/universal/context.d.ts.map +1 -0
  445. package/esm/universal/index.d.ts +57 -0
  446. package/esm/universal/index.d.ts.map +1 -0
  447. package/esm/universal/renderers/html.renderer.d.ts +37 -0
  448. package/esm/universal/renderers/html.renderer.d.ts.map +1 -0
  449. package/esm/universal/renderers/index.d.ts +112 -0
  450. package/esm/universal/renderers/index.d.ts.map +1 -0
  451. package/esm/universal/renderers/markdown.renderer.d.ts +33 -0
  452. package/esm/universal/renderers/markdown.renderer.d.ts.map +1 -0
  453. package/esm/universal/renderers/mdx.renderer.d.ts +38 -0
  454. package/esm/universal/renderers/mdx.renderer.d.ts.map +1 -0
  455. package/esm/universal/renderers/react.renderer.d.ts +46 -0
  456. package/esm/universal/renderers/react.renderer.d.ts.map +1 -0
  457. package/esm/universal/runtime-builder.d.ts +33 -0
  458. package/esm/universal/runtime-builder.d.ts.map +1 -0
  459. package/esm/universal/store.d.ts +135 -0
  460. package/esm/universal/store.d.ts.map +1 -0
  461. package/esm/universal/types.d.ts +199 -0
  462. package/esm/universal/types.d.ts.map +1 -0
  463. package/esm/utils/escape-html.d.ts +58 -0
  464. package/esm/utils/escape-html.d.ts.map +1 -0
  465. package/esm/utils/index.d.ts +10 -0
  466. package/esm/utils/index.d.ts.map +1 -0
  467. package/esm/utils/index.js +40 -0
  468. package/esm/utils/safe-stringify.d.ts +30 -0
  469. package/esm/utils/safe-stringify.d.ts.map +1 -0
  470. package/esm/validation/error-box.d.ts +56 -0
  471. package/esm/validation/error-box.d.ts.map +1 -0
  472. package/esm/validation/index.d.ts +13 -0
  473. package/esm/validation/index.d.ts.map +1 -0
  474. package/esm/validation/index.js +562 -0
  475. package/esm/validation/schema-paths.d.ts +118 -0
  476. package/esm/validation/schema-paths.d.ts.map +1 -0
  477. package/esm/validation/template-validator.d.ts +143 -0
  478. package/esm/validation/template-validator.d.ts.map +1 -0
  479. package/esm/validation/wrapper.d.ts +97 -0
  480. package/esm/validation/wrapper.d.ts.map +1 -0
  481. package/esm/web-components/core/attribute-parser.d.ts +82 -0
  482. package/esm/web-components/core/attribute-parser.d.ts.map +1 -0
  483. package/esm/web-components/core/base-element.d.ts +197 -0
  484. package/esm/web-components/core/base-element.d.ts.map +1 -0
  485. package/esm/web-components/core/index.d.ts +9 -0
  486. package/esm/web-components/core/index.d.ts.map +1 -0
  487. package/esm/web-components/elements/fmcp-alert.d.ts +46 -0
  488. package/esm/web-components/elements/fmcp-alert.d.ts.map +1 -0
  489. package/esm/web-components/elements/fmcp-badge.d.ts +47 -0
  490. package/esm/web-components/elements/fmcp-badge.d.ts.map +1 -0
  491. package/esm/web-components/elements/fmcp-button.d.ts +117 -0
  492. package/esm/web-components/elements/fmcp-button.d.ts.map +1 -0
  493. package/esm/web-components/elements/fmcp-card.d.ts +53 -0
  494. package/esm/web-components/elements/fmcp-card.d.ts.map +1 -0
  495. package/esm/web-components/elements/fmcp-input.d.ts +96 -0
  496. package/esm/web-components/elements/fmcp-input.d.ts.map +1 -0
  497. package/esm/web-components/elements/fmcp-select.d.ts +100 -0
  498. package/esm/web-components/elements/fmcp-select.d.ts.map +1 -0
  499. package/esm/web-components/elements/index.d.ts +13 -0
  500. package/esm/web-components/elements/index.d.ts.map +1 -0
  501. package/esm/web-components/index.d.ts +50 -0
  502. package/esm/web-components/index.d.ts.map +1 -0
  503. package/esm/web-components/index.js +2048 -0
  504. package/esm/web-components/register.d.ts +57 -0
  505. package/esm/web-components/register.d.ts.map +1 -0
  506. package/esm/web-components/types.d.ts +122 -0
  507. package/esm/web-components/types.d.ts.map +1 -0
  508. package/esm/widgets/index.d.ts +8 -0
  509. package/esm/widgets/index.d.ts.map +1 -0
  510. package/esm/widgets/index.js +941 -0
  511. package/esm/widgets/progress.d.ts +133 -0
  512. package/esm/widgets/progress.d.ts.map +1 -0
  513. package/esm/widgets/resource.d.ts +163 -0
  514. package/esm/widgets/resource.d.ts.map +1 -0
  515. package/handlebars/expression-extractor.d.ts +147 -0
  516. package/handlebars/expression-extractor.d.ts.map +1 -0
  517. package/handlebars/helpers.d.ts +339 -0
  518. package/handlebars/helpers.d.ts.map +1 -0
  519. package/handlebars/index.d.ts +195 -0
  520. package/handlebars/index.d.ts.map +1 -0
  521. package/handlebars/index.js +666 -0
  522. package/index.d.ts +56 -0
  523. package/index.d.ts.map +1 -0
  524. package/index.js +20942 -0
  525. package/layouts/base.d.ts +86 -0
  526. package/layouts/base.d.ts.map +1 -0
  527. package/layouts/index.d.ts +8 -0
  528. package/layouts/index.d.ts.map +1 -0
  529. package/layouts/index.js +930 -0
  530. package/layouts/presets.d.ts +134 -0
  531. package/layouts/presets.d.ts.map +1 -0
  532. package/package.json +28 -87
  533. package/pages/consent.d.ts +117 -0
  534. package/pages/consent.d.ts.map +1 -0
  535. package/pages/error.d.ts +101 -0
  536. package/pages/error.d.ts.map +1 -0
  537. package/pages/index.d.ts +9 -0
  538. package/pages/index.d.ts.map +1 -0
  539. package/pages/index.js +1602 -0
  540. package/react/Alert.d.ts +102 -0
  541. package/react/Alert.d.ts.map +1 -0
  542. package/react/Badge.d.ts +101 -0
  543. package/react/Badge.d.ts.map +1 -0
  544. package/react/Button.d.ts +109 -0
  545. package/react/Button.d.ts.map +1 -0
  546. package/react/Card.d.ts +104 -0
  547. package/react/Card.d.ts.map +1 -0
  548. package/react/hooks/context.d.ts +179 -0
  549. package/react/hooks/context.d.ts.map +1 -0
  550. package/react/hooks/index.d.ts +42 -0
  551. package/react/hooks/index.d.ts.map +1 -0
  552. package/react/hooks/tools.d.ts +284 -0
  553. package/react/hooks/tools.d.ts.map +1 -0
  554. package/react/index.d.ts +81 -0
  555. package/react/index.d.ts.map +1 -0
  556. package/react/index.js +1430 -0
  557. package/react/types.d.ts +106 -0
  558. package/react/types.d.ts.map +1 -0
  559. package/react/utils.d.ts +43 -0
  560. package/react/utils.d.ts.map +1 -0
  561. package/registry/index.d.ts +46 -0
  562. package/registry/index.d.ts.map +1 -0
  563. package/registry/index.js +6465 -0
  564. package/registry/render-template.d.ts +91 -0
  565. package/registry/render-template.d.ts.map +1 -0
  566. package/registry/tool-ui.registry.d.ts +294 -0
  567. package/registry/tool-ui.registry.d.ts.map +1 -0
  568. package/registry/uri-utils.d.ts +56 -0
  569. package/registry/uri-utils.d.ts.map +1 -0
  570. package/render/index.d.ts +8 -0
  571. package/render/index.d.ts.map +1 -0
  572. package/render/index.js +77 -0
  573. package/render/prerender.d.ts +57 -0
  574. package/render/prerender.d.ts.map +1 -0
  575. package/renderers/cache.d.ts +145 -0
  576. package/renderers/cache.d.ts.map +1 -0
  577. package/renderers/html.renderer.d.ts +123 -0
  578. package/renderers/html.renderer.d.ts.map +1 -0
  579. package/renderers/index.d.ts +36 -0
  580. package/renderers/index.d.ts.map +1 -0
  581. package/renderers/index.js +1882 -0
  582. package/renderers/mdx.renderer.d.ts +120 -0
  583. package/renderers/mdx.renderer.d.ts.map +1 -0
  584. package/renderers/react.renderer.d.ts +96 -0
  585. package/renderers/react.renderer.d.ts.map +1 -0
  586. package/renderers/registry.d.ts +134 -0
  587. package/renderers/registry.d.ts.map +1 -0
  588. package/renderers/types.d.ts +342 -0
  589. package/renderers/types.d.ts.map +1 -0
  590. package/renderers/utils/detect.d.ts +107 -0
  591. package/renderers/utils/detect.d.ts.map +1 -0
  592. package/renderers/utils/hash.d.ts +40 -0
  593. package/renderers/utils/hash.d.ts.map +1 -0
  594. package/renderers/utils/index.d.ts +9 -0
  595. package/renderers/utils/index.d.ts.map +1 -0
  596. package/renderers/utils/transpiler.d.ts +89 -0
  597. package/renderers/utils/transpiler.d.ts.map +1 -0
  598. package/runtime/adapters/html.adapter.d.ts +59 -0
  599. package/runtime/adapters/html.adapter.d.ts.map +1 -0
  600. package/runtime/adapters/index.d.ts +26 -0
  601. package/runtime/adapters/index.d.ts.map +1 -0
  602. package/runtime/adapters/mdx.adapter.d.ts +73 -0
  603. package/runtime/adapters/mdx.adapter.d.ts.map +1 -0
  604. package/runtime/adapters/react.adapter.d.ts +70 -0
  605. package/runtime/adapters/react.adapter.d.ts.map +1 -0
  606. package/runtime/adapters/types.d.ts +95 -0
  607. package/runtime/adapters/types.d.ts.map +1 -0
  608. package/runtime/csp.d.ts +48 -0
  609. package/runtime/csp.d.ts.map +1 -0
  610. package/runtime/index.d.ts +17 -0
  611. package/runtime/index.d.ts.map +1 -0
  612. package/runtime/index.js +5264 -0
  613. package/runtime/mcp-bridge.d.ts +101 -0
  614. package/runtime/mcp-bridge.d.ts.map +1 -0
  615. package/runtime/renderer-runtime.d.ts +133 -0
  616. package/runtime/renderer-runtime.d.ts.map +1 -0
  617. package/runtime/sanitizer.d.ts +172 -0
  618. package/runtime/sanitizer.d.ts.map +1 -0
  619. package/runtime/types.d.ts +415 -0
  620. package/runtime/types.d.ts.map +1 -0
  621. package/runtime/wrapper.d.ts +421 -0
  622. package/runtime/wrapper.d.ts.map +1 -0
  623. package/styles/index.d.ts +8 -0
  624. package/styles/index.d.ts.map +1 -0
  625. package/styles/index.js +222 -0
  626. package/styles/variants.d.ts +51 -0
  627. package/styles/variants.d.ts.map +1 -0
  628. package/theme/cdn.d.ts +195 -0
  629. package/theme/cdn.d.ts.map +1 -0
  630. package/theme/index.d.ts +18 -0
  631. package/theme/index.d.ts.map +1 -0
  632. package/theme/index.js +757 -0
  633. package/theme/platforms.d.ts +107 -0
  634. package/theme/platforms.d.ts.map +1 -0
  635. package/theme/presets/github-openai.d.ts +50 -0
  636. package/theme/presets/github-openai.d.ts.map +1 -0
  637. package/theme/presets/index.d.ts +11 -0
  638. package/theme/presets/index.d.ts.map +1 -0
  639. package/theme/theme.d.ts +396 -0
  640. package/theme/theme.d.ts.map +1 -0
  641. package/tool-template/builder.d.ts +213 -0
  642. package/tool-template/builder.d.ts.map +1 -0
  643. package/tool-template/index.d.ts +16 -0
  644. package/tool-template/index.d.ts.map +1 -0
  645. package/tool-template/index.js +3559 -0
  646. package/types/index.d.ts +14 -0
  647. package/types/index.d.ts.map +1 -0
  648. package/types/index.js +108 -0
  649. package/types/ui-config.d.ts +639 -0
  650. package/types/ui-config.d.ts.map +1 -0
  651. package/types/ui-runtime.d.ts +1007 -0
  652. package/types/ui-runtime.d.ts.map +1 -0
  653. package/typings/cache/cache-adapter.d.ts +125 -0
  654. package/typings/cache/cache-adapter.d.ts.map +1 -0
  655. package/typings/cache/index.d.ts +10 -0
  656. package/typings/cache/index.d.ts.map +1 -0
  657. package/typings/cache/memory-cache.d.ts +92 -0
  658. package/typings/cache/memory-cache.d.ts.map +1 -0
  659. package/typings/dts-parser.d.ts +90 -0
  660. package/typings/dts-parser.d.ts.map +1 -0
  661. package/typings/index.d.ts +48 -0
  662. package/typings/index.d.ts.map +1 -0
  663. package/typings/schemas.d.ts +232 -0
  664. package/typings/schemas.d.ts.map +1 -0
  665. package/typings/type-fetcher.d.ts +89 -0
  666. package/typings/type-fetcher.d.ts.map +1 -0
  667. package/typings/types.d.ts +320 -0
  668. package/typings/types.d.ts.map +1 -0
  669. package/universal/UniversalApp.d.ts +108 -0
  670. package/universal/UniversalApp.d.ts.map +1 -0
  671. package/universal/cached-runtime.d.ts +115 -0
  672. package/universal/cached-runtime.d.ts.map +1 -0
  673. package/universal/context.d.ts +122 -0
  674. package/universal/context.d.ts.map +1 -0
  675. package/universal/index.d.ts +57 -0
  676. package/universal/index.d.ts.map +1 -0
  677. package/universal/renderers/html.renderer.d.ts +37 -0
  678. package/universal/renderers/html.renderer.d.ts.map +1 -0
  679. package/universal/renderers/index.d.ts +112 -0
  680. package/universal/renderers/index.d.ts.map +1 -0
  681. package/universal/renderers/markdown.renderer.d.ts +33 -0
  682. package/universal/renderers/markdown.renderer.d.ts.map +1 -0
  683. package/universal/renderers/mdx.renderer.d.ts +38 -0
  684. package/universal/renderers/mdx.renderer.d.ts.map +1 -0
  685. package/universal/renderers/react.renderer.d.ts +46 -0
  686. package/universal/renderers/react.renderer.d.ts.map +1 -0
  687. package/universal/runtime-builder.d.ts +33 -0
  688. package/universal/runtime-builder.d.ts.map +1 -0
  689. package/universal/store.d.ts +135 -0
  690. package/universal/store.d.ts.map +1 -0
  691. package/universal/types.d.ts +199 -0
  692. package/universal/types.d.ts.map +1 -0
  693. package/utils/escape-html.d.ts +58 -0
  694. package/utils/escape-html.d.ts.map +1 -0
  695. package/utils/index.d.ts +10 -0
  696. package/utils/index.d.ts.map +1 -0
  697. package/utils/index.js +70 -0
  698. package/utils/safe-stringify.d.ts +30 -0
  699. package/utils/safe-stringify.d.ts.map +1 -0
  700. package/validation/error-box.d.ts +56 -0
  701. package/validation/error-box.d.ts.map +1 -0
  702. package/validation/index.d.ts +13 -0
  703. package/validation/index.d.ts.map +1 -0
  704. package/validation/index.js +603 -0
  705. package/validation/schema-paths.d.ts +118 -0
  706. package/validation/schema-paths.d.ts.map +1 -0
  707. package/validation/template-validator.d.ts +143 -0
  708. package/validation/template-validator.d.ts.map +1 -0
  709. package/validation/wrapper.d.ts +97 -0
  710. package/validation/wrapper.d.ts.map +1 -0
  711. package/web-components/core/attribute-parser.d.ts +82 -0
  712. package/web-components/core/attribute-parser.d.ts.map +1 -0
  713. package/web-components/core/base-element.d.ts +197 -0
  714. package/web-components/core/base-element.d.ts.map +1 -0
  715. package/web-components/core/index.d.ts +9 -0
  716. package/web-components/core/index.d.ts.map +1 -0
  717. package/web-components/elements/fmcp-alert.d.ts +46 -0
  718. package/web-components/elements/fmcp-alert.d.ts.map +1 -0
  719. package/web-components/elements/fmcp-badge.d.ts +47 -0
  720. package/web-components/elements/fmcp-badge.d.ts.map +1 -0
  721. package/web-components/elements/fmcp-button.d.ts +117 -0
  722. package/web-components/elements/fmcp-button.d.ts.map +1 -0
  723. package/web-components/elements/fmcp-card.d.ts +53 -0
  724. package/web-components/elements/fmcp-card.d.ts.map +1 -0
  725. package/web-components/elements/fmcp-input.d.ts +96 -0
  726. package/web-components/elements/fmcp-input.d.ts.map +1 -0
  727. package/web-components/elements/fmcp-select.d.ts +100 -0
  728. package/web-components/elements/fmcp-select.d.ts.map +1 -0
  729. package/web-components/elements/index.d.ts +13 -0
  730. package/web-components/elements/index.d.ts.map +1 -0
  731. package/web-components/index.d.ts +50 -0
  732. package/web-components/index.d.ts.map +1 -0
  733. package/web-components/index.js +2093 -0
  734. package/web-components/register.d.ts +57 -0
  735. package/web-components/register.d.ts.map +1 -0
  736. package/web-components/types.d.ts +122 -0
  737. package/web-components/types.d.ts.map +1 -0
  738. package/widgets/index.d.ts +8 -0
  739. package/widgets/index.d.ts.map +1 -0
  740. package/widgets/index.js +978 -0
  741. package/widgets/progress.d.ts +133 -0
  742. package/widgets/progress.d.ts.map +1 -0
  743. package/widgets/resource.d.ts +163 -0
  744. package/widgets/resource.d.ts.map +1 -0
  745. package/src/adapters/index.d.ts +0 -10
  746. package/src/adapters/index.js +0 -18
  747. package/src/adapters/index.js.map +0 -1
  748. package/src/adapters/platform-meta.d.ts +0 -165
  749. package/src/adapters/platform-meta.js +0 -310
  750. package/src/adapters/platform-meta.js.map +0 -1
  751. package/src/base-template/bridge.d.ts +0 -89
  752. package/src/base-template/bridge.js +0 -452
  753. package/src/base-template/bridge.js.map +0 -1
  754. package/src/base-template/default-base-template.d.ts +0 -91
  755. package/src/base-template/default-base-template.js +0 -435
  756. package/src/base-template/default-base-template.js.map +0 -1
  757. package/src/base-template/index.d.ts +0 -14
  758. package/src/base-template/index.js +0 -30
  759. package/src/base-template/index.js.map +0 -1
  760. package/src/base-template/polyfills.d.ts +0 -30
  761. package/src/base-template/polyfills.js +0 -190
  762. package/src/base-template/polyfills.js.map +0 -1
  763. package/src/base-template/theme-styles.d.ts +0 -73
  764. package/src/base-template/theme-styles.js +0 -95
  765. package/src/base-template/theme-styles.js.map +0 -1
  766. package/src/bridge/adapters/base-adapter.d.ts +0 -103
  767. package/src/bridge/adapters/base-adapter.js +0 -314
  768. package/src/bridge/adapters/base-adapter.js.map +0 -1
  769. package/src/bridge/adapters/claude.adapter.d.ts +0 -66
  770. package/src/bridge/adapters/claude.adapter.js +0 -145
  771. package/src/bridge/adapters/claude.adapter.js.map +0 -1
  772. package/src/bridge/adapters/ext-apps.adapter.d.ts +0 -142
  773. package/src/bridge/adapters/ext-apps.adapter.js +0 -416
  774. package/src/bridge/adapters/ext-apps.adapter.js.map +0 -1
  775. package/src/bridge/adapters/gemini.adapter.d.ts +0 -63
  776. package/src/bridge/adapters/gemini.adapter.js +0 -160
  777. package/src/bridge/adapters/gemini.adapter.js.map +0 -1
  778. package/src/bridge/adapters/generic.adapter.d.ts +0 -55
  779. package/src/bridge/adapters/generic.adapter.js +0 -108
  780. package/src/bridge/adapters/generic.adapter.js.map +0 -1
  781. package/src/bridge/adapters/index.d.ts +0 -25
  782. package/src/bridge/adapters/index.js +0 -65
  783. package/src/bridge/adapters/index.js.map +0 -1
  784. package/src/bridge/adapters/openai.adapter.d.ts +0 -64
  785. package/src/bridge/adapters/openai.adapter.js +0 -194
  786. package/src/bridge/adapters/openai.adapter.js.map +0 -1
  787. package/src/bridge/core/adapter-registry.d.ts +0 -121
  788. package/src/bridge/core/adapter-registry.js +0 -271
  789. package/src/bridge/core/adapter-registry.js.map +0 -1
  790. package/src/bridge/core/bridge-factory.d.ts +0 -198
  791. package/src/bridge/core/bridge-factory.js +0 -428
  792. package/src/bridge/core/bridge-factory.js.map +0 -1
  793. package/src/bridge/core/index.d.ts +0 -9
  794. package/src/bridge/core/index.js +0 -22
  795. package/src/bridge/core/index.js.map +0 -1
  796. package/src/bridge/index.d.ts +0 -61
  797. package/src/bridge/index.js +0 -94
  798. package/src/bridge/index.js.map +0 -1
  799. package/src/bridge/runtime/iife-generator.d.ts +0 -61
  800. package/src/bridge/runtime/iife-generator.js +0 -940
  801. package/src/bridge/runtime/iife-generator.js.map +0 -1
  802. package/src/bridge/runtime/index.d.ts +0 -8
  803. package/src/bridge/runtime/index.js +0 -16
  804. package/src/bridge/runtime/index.js.map +0 -1
  805. package/src/bridge/types.d.ts +0 -385
  806. package/src/bridge/types.js +0 -11
  807. package/src/bridge/types.js.map +0 -1
  808. package/src/build/cdn-resources.d.ts +0 -140
  809. package/src/build/cdn-resources.js +0 -314
  810. package/src/build/cdn-resources.js.map +0 -1
  811. package/src/build/index.d.ts +0 -294
  812. package/src/build/index.js +0 -325
  813. package/src/build/index.js.map +0 -1
  814. package/src/build/widget-manifest.d.ts +0 -212
  815. package/src/build/widget-manifest.js +0 -652
  816. package/src/build/widget-manifest.js.map +0 -1
  817. package/src/bundler/bundler.d.ts +0 -110
  818. package/src/bundler/bundler.js +0 -432
  819. package/src/bundler/bundler.js.map +0 -1
  820. package/src/bundler/cache.d.ts +0 -172
  821. package/src/bundler/cache.js +0 -250
  822. package/src/bundler/cache.js.map +0 -1
  823. package/src/bundler/index.d.ts +0 -41
  824. package/src/bundler/index.js +0 -73
  825. package/src/bundler/index.js.map +0 -1
  826. package/src/bundler/sandbox/enclave-adapter.d.ts +0 -120
  827. package/src/bundler/sandbox/enclave-adapter.js +0 -339
  828. package/src/bundler/sandbox/enclave-adapter.js.map +0 -1
  829. package/src/bundler/sandbox/executor.d.ts +0 -13
  830. package/src/bundler/sandbox/executor.js +0 -22
  831. package/src/bundler/sandbox/executor.js.map +0 -1
  832. package/src/bundler/sandbox/policy.d.ts +0 -61
  833. package/src/bundler/sandbox/policy.js +0 -238
  834. package/src/bundler/sandbox/policy.js.map +0 -1
  835. package/src/bundler/types.d.ts +0 -347
  836. package/src/bundler/types.js +0 -132
  837. package/src/bundler/types.js.map +0 -1
  838. package/src/components/alert.d.ts +0 -71
  839. package/src/components/alert.js +0 -189
  840. package/src/components/alert.js.map +0 -1
  841. package/src/components/alert.schema.d.ts +0 -114
  842. package/src/components/alert.schema.js +0 -105
  843. package/src/components/alert.schema.js.map +0 -1
  844. package/src/components/avatar.d.ts +0 -76
  845. package/src/components/avatar.js +0 -176
  846. package/src/components/avatar.js.map +0 -1
  847. package/src/components/avatar.schema.d.ts +0 -169
  848. package/src/components/avatar.schema.js +0 -103
  849. package/src/components/avatar.schema.js.map +0 -1
  850. package/src/components/badge.d.ts +0 -70
  851. package/src/components/badge.js +0 -149
  852. package/src/components/badge.js.map +0 -1
  853. package/src/components/badge.schema.d.ts +0 -109
  854. package/src/components/badge.schema.js +0 -96
  855. package/src/components/badge.schema.js.map +0 -1
  856. package/src/components/button.d.ts +0 -111
  857. package/src/components/button.js +0 -336
  858. package/src/components/button.js.map +0 -1
  859. package/src/components/button.schema.d.ts +0 -148
  860. package/src/components/button.schema.js +0 -121
  861. package/src/components/button.schema.js.map +0 -1
  862. package/src/components/card.d.ts +0 -60
  863. package/src/components/card.js +0 -117
  864. package/src/components/card.js.map +0 -1
  865. package/src/components/card.schema.d.ts +0 -113
  866. package/src/components/card.schema.js +0 -98
  867. package/src/components/card.schema.js.map +0 -1
  868. package/src/components/form.d.ts +0 -239
  869. package/src/components/form.js +0 -420
  870. package/src/components/form.js.map +0 -1
  871. package/src/components/form.schema.d.ts +0 -441
  872. package/src/components/form.schema.js +0 -406
  873. package/src/components/form.schema.js.map +0 -1
  874. package/src/components/index.d.ts +0 -29
  875. package/src/components/index.js +0 -98
  876. package/src/components/index.js.map +0 -1
  877. package/src/components/list.d.ts +0 -127
  878. package/src/components/list.js +0 -279
  879. package/src/components/list.js.map +0 -1
  880. package/src/components/list.schema.d.ts +0 -134
  881. package/src/components/list.schema.js +0 -168
  882. package/src/components/list.schema.js.map +0 -1
  883. package/src/components/modal.d.ts +0 -111
  884. package/src/components/modal.js +0 -260
  885. package/src/components/modal.js.map +0 -1
  886. package/src/components/modal.schema.d.ts +0 -186
  887. package/src/components/modal.schema.js +0 -167
  888. package/src/components/modal.schema.js.map +0 -1
  889. package/src/components/table.d.ts +0 -105
  890. package/src/components/table.js +0 -283
  891. package/src/components/table.js.map +0 -1
  892. package/src/components/table.schema.d.ts +0 -159
  893. package/src/components/table.schema.js +0 -173
  894. package/src/components/table.schema.js.map +0 -1
  895. package/src/handlebars/helpers.d.ts +0 -348
  896. package/src/handlebars/helpers.js +0 -605
  897. package/src/handlebars/helpers.js.map +0 -1
  898. package/src/handlebars/index.d.ts +0 -193
  899. package/src/handlebars/index.js +0 -350
  900. package/src/handlebars/index.js.map +0 -1
  901. package/src/index.d.ts +0 -50
  902. package/src/index.js +0 -192
  903. package/src/index.js.map +0 -1
  904. package/src/layouts/base.d.ts +0 -88
  905. package/src/layouts/base.js +0 -227
  906. package/src/layouts/base.js.map +0 -1
  907. package/src/layouts/index.d.ts +0 -7
  908. package/src/layouts/index.js +0 -25
  909. package/src/layouts/index.js.map +0 -1
  910. package/src/layouts/presets.d.ts +0 -133
  911. package/src/layouts/presets.js +0 -277
  912. package/src/layouts/presets.js.map +0 -1
  913. package/src/pages/consent.d.ts +0 -116
  914. package/src/pages/consent.js +0 -218
  915. package/src/pages/consent.js.map +0 -1
  916. package/src/pages/error.d.ts +0 -100
  917. package/src/pages/error.js +0 -263
  918. package/src/pages/error.js.map +0 -1
  919. package/src/pages/index.d.ts +0 -8
  920. package/src/pages/index.js +0 -27
  921. package/src/pages/index.js.map +0 -1
  922. package/src/react/Alert.d.ts +0 -101
  923. package/src/react/Alert.js +0 -51
  924. package/src/react/Alert.js.map +0 -1
  925. package/src/react/Badge.d.ts +0 -100
  926. package/src/react/Badge.js +0 -55
  927. package/src/react/Badge.js.map +0 -1
  928. package/src/react/Button.d.ts +0 -108
  929. package/src/react/Button.js +0 -52
  930. package/src/react/Button.js.map +0 -1
  931. package/src/react/Card.d.ts +0 -103
  932. package/src/react/Card.js +0 -55
  933. package/src/react/Card.js.map +0 -1
  934. package/src/react/hooks/context.d.ts +0 -178
  935. package/src/react/hooks/context.js +0 -287
  936. package/src/react/hooks/context.js.map +0 -1
  937. package/src/react/hooks/index.d.ts +0 -41
  938. package/src/react/hooks/index.js +0 -61
  939. package/src/react/hooks/index.js.map +0 -1
  940. package/src/react/hooks/tools.d.ts +0 -283
  941. package/src/react/hooks/tools.js +0 -465
  942. package/src/react/hooks/tools.js.map +0 -1
  943. package/src/react/index.d.ts +0 -80
  944. package/src/react/index.js +0 -113
  945. package/src/react/index.js.map +0 -1
  946. package/src/react/types.d.ts +0 -105
  947. package/src/react/types.js +0 -12
  948. package/src/react/types.js.map +0 -1
  949. package/src/react/utils.d.ts +0 -42
  950. package/src/react/utils.js +0 -99
  951. package/src/react/utils.js.map +0 -1
  952. package/src/registry/index.d.ts +0 -45
  953. package/src/registry/index.js +0 -67
  954. package/src/registry/index.js.map +0 -1
  955. package/src/registry/render-template.d.ts +0 -86
  956. package/src/registry/render-template.js +0 -239
  957. package/src/registry/render-template.js.map +0 -1
  958. package/src/registry/tool-ui.registry.d.ts +0 -260
  959. package/src/registry/tool-ui.registry.js +0 -438
  960. package/src/registry/tool-ui.registry.js.map +0 -1
  961. package/src/registry/uri-utils.d.ts +0 -55
  962. package/src/registry/uri-utils.js +0 -97
  963. package/src/registry/uri-utils.js.map +0 -1
  964. package/src/render/index.d.ts +0 -7
  965. package/src/render/index.js +0 -14
  966. package/src/render/index.js.map +0 -1
  967. package/src/render/prerender.d.ts +0 -56
  968. package/src/render/prerender.js +0 -98
  969. package/src/render/prerender.js.map +0 -1
  970. package/src/renderers/cache.d.ts +0 -144
  971. package/src/renderers/cache.js +0 -240
  972. package/src/renderers/cache.js.map +0 -1
  973. package/src/renderers/html.renderer.d.ts +0 -122
  974. package/src/renderers/html.renderer.js +0 -204
  975. package/src/renderers/html.renderer.js.map +0 -1
  976. package/src/renderers/index.d.ts +0 -35
  977. package/src/renderers/index.js +0 -70
  978. package/src/renderers/index.js.map +0 -1
  979. package/src/renderers/mdx.renderer.d.ts +0 -119
  980. package/src/renderers/mdx.renderer.js +0 -305
  981. package/src/renderers/mdx.renderer.js.map +0 -1
  982. package/src/renderers/react.renderer.d.ts +0 -95
  983. package/src/renderers/react.renderer.js +0 -260
  984. package/src/renderers/react.renderer.js.map +0 -1
  985. package/src/renderers/registry.d.ts +0 -133
  986. package/src/renderers/registry.js +0 -232
  987. package/src/renderers/registry.js.map +0 -1
  988. package/src/renderers/types.d.ts +0 -341
  989. package/src/renderers/types.js +0 -9
  990. package/src/renderers/types.js.map +0 -1
  991. package/src/renderers/utils/detect.d.ts +0 -106
  992. package/src/renderers/utils/detect.js +0 -267
  993. package/src/renderers/utils/detect.js.map +0 -1
  994. package/src/renderers/utils/hash.d.ts +0 -39
  995. package/src/renderers/utils/hash.js +0 -75
  996. package/src/renderers/utils/hash.js.map +0 -1
  997. package/src/renderers/utils/index.d.ts +0 -8
  998. package/src/renderers/utils/index.js +0 -28
  999. package/src/renderers/utils/index.js.map +0 -1
  1000. package/src/renderers/utils/transpiler.d.ts +0 -88
  1001. package/src/renderers/utils/transpiler.js +0 -215
  1002. package/src/renderers/utils/transpiler.js.map +0 -1
  1003. package/src/runtime/adapters/html.adapter.d.ts +0 -58
  1004. package/src/runtime/adapters/html.adapter.js +0 -131
  1005. package/src/runtime/adapters/html.adapter.js.map +0 -1
  1006. package/src/runtime/adapters/index.d.ts +0 -25
  1007. package/src/runtime/adapters/index.js +0 -54
  1008. package/src/runtime/adapters/index.js.map +0 -1
  1009. package/src/runtime/adapters/mdx.adapter.d.ts +0 -72
  1010. package/src/runtime/adapters/mdx.adapter.js +0 -241
  1011. package/src/runtime/adapters/mdx.adapter.js.map +0 -1
  1012. package/src/runtime/adapters/react.adapter.d.ts +0 -69
  1013. package/src/runtime/adapters/react.adapter.js +0 -245
  1014. package/src/runtime/adapters/react.adapter.js.map +0 -1
  1015. package/src/runtime/adapters/types.d.ts +0 -94
  1016. package/src/runtime/adapters/types.js +0 -11
  1017. package/src/runtime/adapters/types.js.map +0 -1
  1018. package/src/runtime/csp.d.ts +0 -37
  1019. package/src/runtime/csp.js +0 -140
  1020. package/src/runtime/csp.js.map +0 -1
  1021. package/src/runtime/index.d.ts +0 -16
  1022. package/src/runtime/index.js +0 -72
  1023. package/src/runtime/index.js.map +0 -1
  1024. package/src/runtime/mcp-bridge.d.ts +0 -100
  1025. package/src/runtime/mcp-bridge.js +0 -581
  1026. package/src/runtime/mcp-bridge.js.map +0 -1
  1027. package/src/runtime/renderer-runtime.d.ts +0 -132
  1028. package/src/runtime/renderer-runtime.js +0 -389
  1029. package/src/runtime/renderer-runtime.js.map +0 -1
  1030. package/src/runtime/sanitizer.d.ts +0 -171
  1031. package/src/runtime/sanitizer.js +0 -318
  1032. package/src/runtime/sanitizer.js.map +0 -1
  1033. package/src/runtime/types.d.ts +0 -414
  1034. package/src/runtime/types.js +0 -12
  1035. package/src/runtime/types.js.map +0 -1
  1036. package/src/runtime/wrapper.d.ts +0 -375
  1037. package/src/runtime/wrapper.js +0 -1793
  1038. package/src/runtime/wrapper.js.map +0 -1
  1039. package/src/styles/index.d.ts +0 -7
  1040. package/src/styles/index.js +0 -11
  1041. package/src/styles/index.js.map +0 -1
  1042. package/src/styles/variants.d.ts +0 -50
  1043. package/src/styles/variants.js +0 -175
  1044. package/src/styles/variants.js.map +0 -1
  1045. package/src/theme/cdn.d.ts +0 -194
  1046. package/src/theme/cdn.js +0 -375
  1047. package/src/theme/cdn.js.map +0 -1
  1048. package/src/theme/index.d.ts +0 -17
  1049. package/src/theme/index.js +0 -57
  1050. package/src/theme/index.js.map +0 -1
  1051. package/src/theme/platforms.d.ts +0 -106
  1052. package/src/theme/platforms.js +0 -161
  1053. package/src/theme/platforms.js.map +0 -1
  1054. package/src/theme/presets/github-openai.d.ts +0 -49
  1055. package/src/theme/presets/github-openai.js +0 -189
  1056. package/src/theme/presets/github-openai.js.map +0 -1
  1057. package/src/theme/presets/index.d.ts +0 -10
  1058. package/src/theme/presets/index.js +0 -17
  1059. package/src/theme/presets/index.js.map +0 -1
  1060. package/src/theme/theme.d.ts +0 -395
  1061. package/src/theme/theme.js +0 -332
  1062. package/src/theme/theme.js.map +0 -1
  1063. package/src/tool-template/builder.d.ts +0 -212
  1064. package/src/tool-template/builder.js +0 -397
  1065. package/src/tool-template/builder.js.map +0 -1
  1066. package/src/tool-template/index.d.ts +0 -15
  1067. package/src/tool-template/index.js +0 -38
  1068. package/src/tool-template/index.js.map +0 -1
  1069. package/src/types/index.d.ts +0 -13
  1070. package/src/types/index.js +0 -26
  1071. package/src/types/index.js.map +0 -1
  1072. package/src/types/ui-config.d.ts +0 -357
  1073. package/src/types/ui-config.js +0 -12
  1074. package/src/types/ui-config.js.map +0 -1
  1075. package/src/types/ui-runtime.d.ts +0 -965
  1076. package/src/types/ui-runtime.js +0 -117
  1077. package/src/types/ui-runtime.js.map +0 -1
  1078. package/src/validation/error-box.d.ts +0 -55
  1079. package/src/validation/error-box.js +0 -75
  1080. package/src/validation/error-box.js.map +0 -1
  1081. package/src/validation/index.d.ts +0 -12
  1082. package/src/validation/index.js +0 -21
  1083. package/src/validation/index.js.map +0 -1
  1084. package/src/validation/wrapper.d.ts +0 -96
  1085. package/src/validation/wrapper.js +0 -117
  1086. package/src/validation/wrapper.js.map +0 -1
  1087. package/src/web-components/core/attribute-parser.d.ts +0 -85
  1088. package/src/web-components/core/attribute-parser.js +0 -189
  1089. package/src/web-components/core/attribute-parser.js.map +0 -1
  1090. package/src/web-components/core/base-element.d.ts +0 -197
  1091. package/src/web-components/core/base-element.js +0 -289
  1092. package/src/web-components/core/base-element.js.map +0 -1
  1093. package/src/web-components/core/index.d.ts +0 -8
  1094. package/src/web-components/core/index.js +0 -18
  1095. package/src/web-components/core/index.js.map +0 -1
  1096. package/src/web-components/elements/fmcp-alert.d.ts +0 -45
  1097. package/src/web-components/elements/fmcp-alert.js +0 -93
  1098. package/src/web-components/elements/fmcp-alert.js.map +0 -1
  1099. package/src/web-components/elements/fmcp-badge.d.ts +0 -46
  1100. package/src/web-components/elements/fmcp-badge.js +0 -99
  1101. package/src/web-components/elements/fmcp-badge.js.map +0 -1
  1102. package/src/web-components/elements/fmcp-button.d.ts +0 -124
  1103. package/src/web-components/elements/fmcp-button.js +0 -233
  1104. package/src/web-components/elements/fmcp-button.js.map +0 -1
  1105. package/src/web-components/elements/fmcp-card.d.ts +0 -52
  1106. package/src/web-components/elements/fmcp-card.js +0 -115
  1107. package/src/web-components/elements/fmcp-card.js.map +0 -1
  1108. package/src/web-components/elements/fmcp-input.d.ts +0 -95
  1109. package/src/web-components/elements/fmcp-input.js +0 -248
  1110. package/src/web-components/elements/fmcp-input.js.map +0 -1
  1111. package/src/web-components/elements/fmcp-select.d.ts +0 -99
  1112. package/src/web-components/elements/fmcp-select.js +0 -243
  1113. package/src/web-components/elements/fmcp-select.js.map +0 -1
  1114. package/src/web-components/elements/index.d.ts +0 -12
  1115. package/src/web-components/elements/index.js +0 -34
  1116. package/src/web-components/elements/index.js.map +0 -1
  1117. package/src/web-components/index.d.ts +0 -49
  1118. package/src/web-components/index.js +0 -75
  1119. package/src/web-components/index.js.map +0 -1
  1120. package/src/web-components/register.d.ts +0 -56
  1121. package/src/web-components/register.js +0 -80
  1122. package/src/web-components/register.js.map +0 -1
  1123. package/src/web-components/types.d.ts +0 -121
  1124. package/src/web-components/types.js +0 -25
  1125. package/src/web-components/types.js.map +0 -1
  1126. package/src/widgets/index.d.ts +0 -7
  1127. package/src/widgets/index.js +0 -24
  1128. package/src/widgets/index.js.map +0 -1
  1129. package/src/widgets/progress.d.ts +0 -132
  1130. package/src/widgets/progress.js +0 -303
  1131. package/src/widgets/progress.js.map +0 -1
  1132. package/src/widgets/resource.d.ts +0 -162
  1133. package/src/widgets/resource.js +0 -340
  1134. package/src/widgets/resource.js.map +0 -1
@@ -1,940 +0,0 @@
1
- "use strict";
2
- /**
3
- * IIFE Generator for FrontMcpBridge Runtime
4
- *
5
- * Generates vanilla JavaScript IIFE scripts that can be embedded
6
- * in HTML templates for runtime platform detection and bridge setup.
7
- *
8
- * @packageDocumentation
9
- */
10
- Object.defineProperty(exports, "__esModule", { value: true });
11
- exports.BRIDGE_SCRIPT_TAGS = exports.UNIVERSAL_BRIDGE_SCRIPT = void 0;
12
- exports.generateBridgeIIFE = generateBridgeIIFE;
13
- exports.generatePlatformBundle = generatePlatformBundle;
14
- /**
15
- * Generate the bridge runtime IIFE script.
16
- *
17
- * This generates a self-contained vanilla JavaScript script that:
18
- * 1. Detects the current platform
19
- * 2. Initializes the appropriate adapter
20
- * 3. Exposes window.FrontMcpBridge global
21
- *
22
- * @example
23
- * ```typescript
24
- * import { generateBridgeIIFE } from '@frontmcp/ui/bridge';
25
- *
26
- * const script = generateBridgeIIFE({ debug: true });
27
- * const html = `<script>${script}</script>`;
28
- * ```
29
- */
30
- function generateBridgeIIFE(options = {}) {
31
- const { debug = false, trustedOrigins = [], minify = false } = options;
32
- const adapters = options.adapters || ['openai', 'ext-apps', 'claude', 'gemini', 'generic'];
33
- const parts = [];
34
- // Start IIFE
35
- parts.push('(function() {');
36
- parts.push('"use strict";');
37
- parts.push('');
38
- // Debug logging
39
- if (debug) {
40
- parts.push('function log(msg) { console.log("[FrontMcpBridge] " + msg); }');
41
- }
42
- else {
43
- parts.push('function log() {}');
44
- }
45
- parts.push('');
46
- // Default safe area
47
- parts.push('var DEFAULT_SAFE_AREA = { top: 0, bottom: 0, left: 0, right: 0 };');
48
- parts.push('');
49
- // Host context detection
50
- parts.push(generateContextDetection());
51
- parts.push('');
52
- // Base adapter capabilities
53
- parts.push(generateBaseCapabilities());
54
- parts.push('');
55
- // Generate selected adapters
56
- if (adapters.includes('openai')) {
57
- parts.push(generateOpenAIAdapter());
58
- parts.push('');
59
- }
60
- if (adapters.includes('ext-apps')) {
61
- parts.push(generateExtAppsAdapter(trustedOrigins));
62
- parts.push('');
63
- }
64
- if (adapters.includes('claude')) {
65
- parts.push(generateClaudeAdapter());
66
- parts.push('');
67
- }
68
- if (adapters.includes('gemini')) {
69
- parts.push(generateGeminiAdapter());
70
- parts.push('');
71
- }
72
- if (adapters.includes('generic')) {
73
- parts.push(generateGenericAdapter());
74
- parts.push('');
75
- }
76
- // Platform detection and initialization
77
- parts.push(generatePlatformDetection(adapters));
78
- parts.push('');
79
- // Bridge class
80
- parts.push(generateBridgeClass());
81
- parts.push('');
82
- // Initialize and expose
83
- parts.push('var bridge = new FrontMcpBridge();');
84
- parts.push('bridge.initialize().then(function() {');
85
- parts.push(' log("Bridge initialized with adapter: " + bridge.adapterId);');
86
- parts.push(' window.dispatchEvent(new CustomEvent("bridge:ready", { detail: { adapter: bridge.adapterId } }));');
87
- parts.push('}).catch(function(err) {');
88
- parts.push(' console.error("[FrontMcpBridge] Init failed:", err);');
89
- parts.push(' window.dispatchEvent(new CustomEvent("bridge:error", { detail: { error: err } }));');
90
- parts.push('});');
91
- parts.push('');
92
- // Expose global
93
- parts.push('window.FrontMcpBridge = bridge;');
94
- // End IIFE
95
- parts.push('})();');
96
- const code = parts.join('\n');
97
- if (minify) {
98
- return minifyJS(code);
99
- }
100
- return code;
101
- }
102
- /**
103
- * Generate context detection helper.
104
- */
105
- function generateContextDetection() {
106
- return `
107
- function detectTheme() {
108
- if (typeof window !== 'undefined' && window.matchMedia) {
109
- return window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light';
110
- }
111
- return 'light';
112
- }
113
-
114
- function detectLocale() {
115
- if (typeof navigator !== 'undefined') {
116
- return navigator.language || 'en-US';
117
- }
118
- return 'en-US';
119
- }
120
-
121
- function detectUserAgent() {
122
- if (typeof navigator === 'undefined') {
123
- return { type: 'web', hover: true, touch: false };
124
- }
125
- var ua = navigator.userAgent || '';
126
- var isMobile = /iPhone|iPad|iPod|Android/i.test(ua);
127
- var hasTouch = 'ontouchstart' in window || navigator.maxTouchPoints > 0;
128
- var hasHover = window.matchMedia && window.matchMedia('(hover: hover)').matches;
129
- return { type: isMobile ? 'mobile' : 'web', hover: hasHover !== false, touch: hasTouch };
130
- }
131
-
132
- function detectViewport() {
133
- if (typeof window !== 'undefined') {
134
- return { width: window.innerWidth, height: window.innerHeight };
135
- }
136
- return undefined;
137
- }
138
-
139
- function readInjectedData() {
140
- var data = { toolInput: {}, toolOutput: undefined, structuredContent: undefined };
141
- if (typeof window !== 'undefined') {
142
- if (window.__mcpToolInput) data.toolInput = window.__mcpToolInput;
143
- if (window.__mcpToolOutput) data.toolOutput = window.__mcpToolOutput;
144
- if (window.__mcpStructuredContent) data.structuredContent = window.__mcpStructuredContent;
145
- }
146
- return data;
147
- }
148
- `.trim();
149
- }
150
- /**
151
- * Generate base capabilities object.
152
- */
153
- function generateBaseCapabilities() {
154
- return `
155
- var DEFAULT_CAPABILITIES = {
156
- canCallTools: false,
157
- canSendMessages: false,
158
- canOpenLinks: false,
159
- canPersistState: true,
160
- hasNetworkAccess: true,
161
- supportsDisplayModes: false,
162
- supportsTheme: true
163
- };
164
- `.trim();
165
- }
166
- /**
167
- * Generate OpenAI adapter code.
168
- */
169
- function generateOpenAIAdapter() {
170
- return `
171
- var OpenAIAdapter = {
172
- id: 'openai',
173
- name: 'OpenAI ChatGPT',
174
- priority: 100,
175
- capabilities: Object.assign({}, DEFAULT_CAPABILITIES, {
176
- canCallTools: true,
177
- canSendMessages: true,
178
- canOpenLinks: true,
179
- supportsDisplayModes: true
180
- }),
181
- canHandle: function() {
182
- if (typeof window === 'undefined') return false;
183
- // Check for window.openai.callTool (the actual OpenAI SDK API)
184
- if (window.openai && typeof window.openai.callTool === 'function') return true;
185
- // Also check if we're being injected with tool metadata (OpenAI injects toolOutput)
186
- if (window.openai && (window.openai.toolOutput !== undefined || window.openai.toolInput !== undefined)) return true;
187
- return false;
188
- },
189
- initialize: function(context) {
190
- var sdk = window.openai;
191
- context.sdk = sdk;
192
- // OpenAI SDK exposes theme and displayMode directly as properties
193
- if (sdk.theme) {
194
- context.hostContext.theme = sdk.theme;
195
- }
196
- if (sdk.displayMode) {
197
- context.hostContext.displayMode = sdk.displayMode;
198
- }
199
- // Note: OpenAI SDK does not have an onContextChange equivalent
200
- return Promise.resolve();
201
- },
202
- callTool: function(context, name, args) {
203
- return context.sdk.callTool(name, args);
204
- },
205
- sendMessage: function(context, content) {
206
- if (typeof context.sdk.sendFollowUpMessage === 'function') {
207
- return context.sdk.sendFollowUpMessage(content);
208
- }
209
- return Promise.reject(new Error('Messages not supported'));
210
- },
211
- openLink: function(context, url) {
212
- window.open(url, '_blank', 'noopener,noreferrer');
213
- return Promise.resolve();
214
- },
215
- requestDisplayMode: function(context, mode) {
216
- return Promise.resolve();
217
- },
218
- requestClose: function(context) {
219
- return Promise.resolve();
220
- }
221
- };
222
- `.trim();
223
- }
224
- /**
225
- * Generate ext-apps adapter code.
226
- */
227
- function generateExtAppsAdapter(trustedOrigins) {
228
- const originsArray = trustedOrigins.length > 0 ? JSON.stringify(trustedOrigins) : '[]';
229
- return `
230
- var ExtAppsAdapter = {
231
- id: 'ext-apps',
232
- name: 'ext-apps (SEP-1865)',
233
- priority: 80,
234
- capabilities: Object.assign({}, DEFAULT_CAPABILITIES, { canPersistState: true, hasNetworkAccess: true }),
235
- trustedOrigins: ${originsArray},
236
- trustedOrigin: null,
237
- pendingRequests: {},
238
- requestId: 0,
239
- hostCapabilities: {},
240
- canHandle: function() {
241
- if (typeof window === 'undefined') return false;
242
- if (window.parent === window) return false;
243
- // Check for OpenAI SDK (window.openai.callTool) - defer to OpenAIAdapter
244
- if (window.openai && typeof window.openai.callTool === 'function') return false;
245
- if (window.__mcpPlatform === 'ext-apps') return true;
246
- return true;
247
- },
248
- initialize: function(context) {
249
- var self = this;
250
- context.extApps = this;
251
-
252
- window.addEventListener('message', function(event) {
253
- self.handleMessage(context, event);
254
- });
255
-
256
- return self.performHandshake(context);
257
- },
258
- handleMessage: function(context, event) {
259
- if (!this.isOriginTrusted(event.origin)) return;
260
- var data = event.data;
261
- if (!data || typeof data !== 'object' || data.jsonrpc !== '2.0') return;
262
-
263
- if ('id' in data && (data.result !== undefined || data.error !== undefined)) {
264
- var pending = this.pendingRequests[data.id];
265
- if (pending) {
266
- clearTimeout(pending.timeout);
267
- delete this.pendingRequests[data.id];
268
- if (data.error) {
269
- pending.reject(new Error(data.error.message + ' (code: ' + data.error.code + ')'));
270
- } else {
271
- pending.resolve(data.result);
272
- }
273
- }
274
- return;
275
- }
276
-
277
- if ('method' in data && !('id' in data)) {
278
- this.handleNotification(context, data);
279
- }
280
- },
281
- handleNotification: function(context, notification) {
282
- var params = notification.params || {};
283
- switch (notification.method) {
284
- case 'ui/notifications/tool-input':
285
- context.toolInput = params.arguments || {};
286
- window.dispatchEvent(new CustomEvent('tool:input', { detail: { arguments: context.toolInput } }));
287
- break;
288
- case 'ui/notifications/tool-result':
289
- context.toolOutput = params.content;
290
- context.structuredContent = params.structuredContent;
291
- context.notifyToolResult(params.content);
292
- window.dispatchEvent(new CustomEvent('tool:result', { detail: params }));
293
- break;
294
- case 'ui/notifications/host-context-changed':
295
- Object.assign(context.hostContext, params);
296
- context.notifyContextChange(params);
297
- break;
298
- }
299
- },
300
- isOriginTrusted: function(origin) {
301
- if (this.trustedOrigins.length > 0) {
302
- return this.trustedOrigins.indexOf(origin) !== -1;
303
- }
304
- // When no trusted origins configured, only trust first message in iframe context
305
- // This helps mitigate race conditions where a malicious iframe could establish trust
306
- if (!this.trustedOrigin) {
307
- if (window.parent !== window && origin) {
308
- this.trustedOrigin = origin;
309
- return true;
310
- }
311
- return false;
312
- }
313
- return this.trustedOrigin === origin;
314
- },
315
- sendRequest: function(method, params) {
316
- var self = this;
317
- return new Promise(function(resolve, reject) {
318
- // Security: Require trusted origin before sending requests to prevent message leaks
319
- if (!self.trustedOrigin && self.trustedOrigins.length === 0) {
320
- reject(new Error('Cannot send request: no trusted origin established'));
321
- return;
322
- }
323
-
324
- var id = ++self.requestId;
325
- var timeout = setTimeout(function() {
326
- delete self.pendingRequests[id];
327
- reject(new Error('Request ' + method + ' timed out'));
328
- }, 10000);
329
-
330
- self.pendingRequests[id] = { resolve: resolve, reject: reject, timeout: timeout };
331
-
332
- var targetOrigin = self.trustedOrigin || self.trustedOrigins[0];
333
- window.parent.postMessage({ jsonrpc: '2.0', id: id, method: method, params: params }, targetOrigin);
334
- });
335
- },
336
- performHandshake: function(context) {
337
- var self = this;
338
- var params = {
339
- appInfo: { name: 'FrontMCP Widget', version: '1.0.0' },
340
- appCapabilities: { tools: { listChanged: false } },
341
- protocolVersion: '2024-11-05'
342
- };
343
-
344
- return this.sendRequest('ui/initialize', params).then(function(result) {
345
- self.hostCapabilities = result.hostCapabilities || {};
346
- self.capabilities = Object.assign({}, self.capabilities, {
347
- canCallTools: Boolean(self.hostCapabilities.serverToolProxy),
348
- canSendMessages: true,
349
- canOpenLinks: Boolean(self.hostCapabilities.openLink),
350
- supportsDisplayModes: true
351
- });
352
- if (result.hostContext) {
353
- Object.assign(context.hostContext, result.hostContext);
354
- }
355
- });
356
- },
357
- callTool: function(context, name, args) {
358
- if (!this.hostCapabilities.serverToolProxy) {
359
- return Promise.reject(new Error('Server tool proxy not supported'));
360
- }
361
- return this.sendRequest('ui/callServerTool', { name: name, arguments: args });
362
- },
363
- sendMessage: function(context, content) {
364
- return this.sendRequest('ui/message', { content: content });
365
- },
366
- openLink: function(context, url) {
367
- if (!this.hostCapabilities.openLink) {
368
- window.open(url, '_blank', 'noopener,noreferrer');
369
- return Promise.resolve();
370
- }
371
- return this.sendRequest('ui/openLink', { url: url });
372
- },
373
- requestDisplayMode: function(context, mode) {
374
- return this.sendRequest('ui/setDisplayMode', { mode: mode });
375
- },
376
- requestClose: function(context) {
377
- return this.sendRequest('ui/close', {});
378
- }
379
- };
380
- `.trim();
381
- }
382
- /**
383
- * Generate Claude adapter code.
384
- */
385
- function generateClaudeAdapter() {
386
- return `
387
- var ClaudeAdapter = {
388
- id: 'claude',
389
- name: 'Claude (Anthropic)',
390
- priority: 60,
391
- capabilities: Object.assign({}, DEFAULT_CAPABILITIES, {
392
- canCallTools: false,
393
- canSendMessages: false,
394
- canOpenLinks: true,
395
- hasNetworkAccess: false,
396
- supportsDisplayModes: false
397
- }),
398
- canHandle: function() {
399
- if (typeof window === 'undefined') return false;
400
- if (window.__mcpPlatform === 'claude') return true;
401
- if (window.claude) return true;
402
- if (window.__claudeArtifact) return true;
403
- if (typeof location !== 'undefined') {
404
- var href = location.href;
405
- if (href.indexOf('claude.ai') !== -1 || href.indexOf('anthropic.com') !== -1) return true;
406
- }
407
- return false;
408
- },
409
- initialize: function(context) {
410
- return Promise.resolve();
411
- },
412
- callTool: function() {
413
- return Promise.reject(new Error('Tool calls not supported in Claude'));
414
- },
415
- sendMessage: function() {
416
- return Promise.reject(new Error('Messages not supported in Claude'));
417
- },
418
- openLink: function(context, url) {
419
- window.open(url, '_blank', 'noopener,noreferrer');
420
- return Promise.resolve();
421
- },
422
- requestDisplayMode: function() {
423
- return Promise.resolve();
424
- },
425
- requestClose: function() {
426
- return Promise.resolve();
427
- }
428
- };
429
- `.trim();
430
- }
431
- /**
432
- * Generate Gemini adapter code.
433
- */
434
- function generateGeminiAdapter() {
435
- return `
436
- var GeminiAdapter = {
437
- id: 'gemini',
438
- name: 'Google Gemini',
439
- priority: 40,
440
- capabilities: Object.assign({}, DEFAULT_CAPABILITIES, {
441
- canOpenLinks: true,
442
- hasNetworkAccess: true
443
- }),
444
- canHandle: function() {
445
- if (typeof window === 'undefined') return false;
446
- if (window.__mcpPlatform === 'gemini') return true;
447
- if (window.gemini) return true;
448
- if (typeof location !== 'undefined') {
449
- var href = location.href;
450
- if (href.indexOf('gemini.google.com') !== -1 || href.indexOf('bard.google.com') !== -1) return true;
451
- }
452
- return false;
453
- },
454
- initialize: function(context) {
455
- if (window.gemini && window.gemini.ui && window.gemini.ui.getTheme) {
456
- context.hostContext.theme = window.gemini.ui.getTheme() === 'dark' ? 'dark' : 'light';
457
- }
458
- return Promise.resolve();
459
- },
460
- callTool: function() {
461
- return Promise.reject(new Error('Tool calls not supported in Gemini'));
462
- },
463
- sendMessage: function(context, content) {
464
- if (window.gemini && window.gemini.ui && window.gemini.ui.sendMessage) {
465
- return window.gemini.ui.sendMessage(content);
466
- }
467
- return Promise.reject(new Error('Messages not supported in Gemini'));
468
- },
469
- openLink: function(context, url) {
470
- if (window.gemini && window.gemini.ui && window.gemini.ui.openLink) {
471
- return window.gemini.ui.openLink(url);
472
- }
473
- window.open(url, '_blank', 'noopener,noreferrer');
474
- return Promise.resolve();
475
- },
476
- requestDisplayMode: function() {
477
- return Promise.resolve();
478
- },
479
- requestClose: function() {
480
- return Promise.resolve();
481
- }
482
- };
483
- `.trim();
484
- }
485
- /**
486
- * Generate Generic adapter code.
487
- */
488
- function generateGenericAdapter() {
489
- return `
490
- var GenericAdapter = {
491
- id: 'generic',
492
- name: 'Generic Web',
493
- priority: 0,
494
- capabilities: Object.assign({}, DEFAULT_CAPABILITIES, {
495
- canOpenLinks: true,
496
- hasNetworkAccess: true
497
- }),
498
- canHandle: function() {
499
- return typeof window !== 'undefined';
500
- },
501
- initialize: function(context) {
502
- return Promise.resolve();
503
- },
504
- callTool: function() {
505
- return Promise.reject(new Error('Tool calls not supported'));
506
- },
507
- sendMessage: function() {
508
- return Promise.reject(new Error('Messages not supported'));
509
- },
510
- openLink: function(context, url) {
511
- window.open(url, '_blank', 'noopener,noreferrer');
512
- return Promise.resolve();
513
- },
514
- requestDisplayMode: function() {
515
- return Promise.resolve();
516
- },
517
- requestClose: function() {
518
- return Promise.resolve();
519
- }
520
- };
521
- `.trim();
522
- }
523
- /**
524
- * Generate platform detection logic.
525
- */
526
- function generatePlatformDetection(adapters) {
527
- const adapterVars = adapters
528
- .map((a) => {
529
- switch (a) {
530
- case 'openai':
531
- return 'OpenAIAdapter';
532
- case 'ext-apps':
533
- return 'ExtAppsAdapter';
534
- case 'claude':
535
- return 'ClaudeAdapter';
536
- case 'gemini':
537
- return 'GeminiAdapter';
538
- case 'generic':
539
- return 'GenericAdapter';
540
- default:
541
- return '';
542
- }
543
- })
544
- .filter(Boolean);
545
- return `
546
- var ADAPTERS = [${adapterVars.join(', ')}].sort(function(a, b) { return b.priority - a.priority; });
547
-
548
- function detectPlatform() {
549
- for (var i = 0; i < ADAPTERS.length; i++) {
550
- if (ADAPTERS[i].canHandle()) {
551
- log('Detected platform: ' + ADAPTERS[i].id);
552
- return ADAPTERS[i];
553
- }
554
- }
555
- log('No platform detected, using generic');
556
- return GenericAdapter;
557
- }
558
- `.trim();
559
- }
560
- /**
561
- * Generate the main bridge class.
562
- */
563
- function generateBridgeClass() {
564
- return `
565
- function FrontMcpBridge() {
566
- this._adapter = null;
567
- this._initialized = false;
568
- this._context = {
569
- hostContext: {
570
- theme: detectTheme(),
571
- displayMode: 'inline',
572
- locale: detectLocale(),
573
- userAgent: detectUserAgent(),
574
- safeArea: DEFAULT_SAFE_AREA,
575
- viewport: detectViewport()
576
- },
577
- toolInput: {},
578
- toolOutput: undefined,
579
- structuredContent: undefined,
580
- widgetState: {},
581
- contextListeners: [],
582
- toolResultListeners: [],
583
- notifyContextChange: function(changes) {
584
- Object.assign(this.hostContext, changes);
585
- for (var i = 0; i < this.contextListeners.length; i++) {
586
- try { this.contextListeners[i](changes); } catch(e) {}
587
- }
588
- },
589
- notifyToolResult: function(result) {
590
- this.toolOutput = result;
591
- for (var i = 0; i < this.toolResultListeners.length; i++) {
592
- try { this.toolResultListeners[i](result); } catch(e) {}
593
- }
594
- }
595
- };
596
-
597
- var injected = readInjectedData();
598
- this._context.toolInput = injected.toolInput;
599
- this._context.toolOutput = injected.toolOutput;
600
- this._context.structuredContent = injected.structuredContent;
601
-
602
- this._loadWidgetState();
603
- }
604
-
605
- FrontMcpBridge.prototype._loadWidgetState = function() {
606
- try {
607
- var key = 'frontmcp:widget:' + (window.__mcpToolName || 'unknown');
608
- var stored = localStorage.getItem(key);
609
- if (stored) this._context.widgetState = JSON.parse(stored);
610
- } catch(e) {}
611
- };
612
-
613
- FrontMcpBridge.prototype._saveWidgetState = function() {
614
- try {
615
- var key = 'frontmcp:widget:' + (window.__mcpToolName || 'unknown');
616
- localStorage.setItem(key, JSON.stringify(this._context.widgetState));
617
- } catch(e) {}
618
- };
619
-
620
- FrontMcpBridge.prototype.initialize = function() {
621
- if (this._initialized) return Promise.resolve();
622
- var self = this;
623
- this._adapter = detectPlatform();
624
- return this._adapter.initialize(this._context).then(function() {
625
- self._initialized = true;
626
- // Set up the data-tool-call click handler after initialization
627
- self._setupDataToolCallHandler();
628
- });
629
- };
630
-
631
- Object.defineProperty(FrontMcpBridge.prototype, 'initialized', { get: function() { return this._initialized; } });
632
- Object.defineProperty(FrontMcpBridge.prototype, 'adapterId', { get: function() { return this._adapter ? this._adapter.id : undefined; } });
633
- Object.defineProperty(FrontMcpBridge.prototype, 'capabilities', { get: function() { return this._adapter ? this._adapter.capabilities : DEFAULT_CAPABILITIES; } });
634
-
635
- FrontMcpBridge.prototype.getTheme = function() { return this._context.hostContext.theme; };
636
- FrontMcpBridge.prototype.getDisplayMode = function() { return this._context.hostContext.displayMode; };
637
- FrontMcpBridge.prototype.getToolInput = function() { return this._context.toolInput; };
638
- FrontMcpBridge.prototype.getToolOutput = function() { return this._context.toolOutput; };
639
- FrontMcpBridge.prototype.getStructuredContent = function() { return this._context.structuredContent; };
640
- FrontMcpBridge.prototype.getWidgetState = function() { return this._context.widgetState; };
641
- FrontMcpBridge.prototype.getHostContext = function() { return Object.assign({}, this._context.hostContext); };
642
- FrontMcpBridge.prototype.hasCapability = function(cap) { return this._adapter && this._adapter.capabilities[cap] === true; };
643
-
644
- // Get tool response metadata (platform-agnostic)
645
- // Used by inline mode widgets to detect when ui/html arrives
646
- FrontMcpBridge.prototype.getToolResponseMetadata = function() {
647
- // OpenAI injects toolResponseMetadata for widget-producing tools
648
- if (typeof window !== 'undefined' && window.openai && window.openai.toolResponseMetadata) {
649
- return window.openai.toolResponseMetadata;
650
- }
651
- // Claude (future support)
652
- if (typeof window !== 'undefined' && window.claude && window.claude.toolResponseMetadata) {
653
- return window.claude.toolResponseMetadata;
654
- }
655
- // FrontMCP direct injection (for testing/ext-apps)
656
- if (typeof window !== 'undefined' && window.__mcpToolResponseMetadata) {
657
- return window.__mcpToolResponseMetadata;
658
- }
659
- return null;
660
- };
661
-
662
- // Subscribe to tool response metadata changes (for inline mode injection)
663
- FrontMcpBridge.prototype.onToolResponseMetadata = function(callback) {
664
- var self = this;
665
- var called = false;
666
-
667
- // Check if already available
668
- var existing = self.getToolResponseMetadata();
669
- if (existing) {
670
- called = true;
671
- callback(existing);
672
- }
673
-
674
- // Set up property interceptors for OpenAI
675
- if (typeof window !== 'undefined') {
676
- // OpenAI: Intercept toolResponseMetadata assignment
677
- if (!window.__frontmcpMetadataIntercepted) {
678
- window.__frontmcpMetadataIntercepted = true;
679
- window.__frontmcpMetadataCallbacks = [];
680
-
681
- // Create openai object if it doesn't exist
682
- if (!window.openai) window.openai = {};
683
-
684
- var originalMetadata = window.openai.toolResponseMetadata;
685
- Object.defineProperty(window.openai, 'toolResponseMetadata', {
686
- get: function() { return originalMetadata; },
687
- set: function(val) {
688
- originalMetadata = val;
689
- log('toolResponseMetadata set, notifying ' + window.__frontmcpMetadataCallbacks.length + ' listeners');
690
- for (var i = 0; i < window.__frontmcpMetadataCallbacks.length; i++) {
691
- try { window.__frontmcpMetadataCallbacks[i](val); } catch(e) {}
692
- }
693
- },
694
- configurable: true
695
- });
696
- }
697
-
698
- // Register callback wrapper (store reference for unsubscribe)
699
- var wrapper = function(metadata) {
700
- if (!called) {
701
- called = true;
702
- callback(metadata);
703
- }
704
- };
705
- window.__frontmcpMetadataCallbacks.push(wrapper);
706
-
707
- // Return unsubscribe function that removes the wrapper (not the original callback)
708
- return function() {
709
- if (window.__frontmcpMetadataCallbacks) {
710
- var idx = window.__frontmcpMetadataCallbacks.indexOf(wrapper);
711
- if (idx !== -1) window.__frontmcpMetadataCallbacks.splice(idx, 1);
712
- }
713
- };
714
- }
715
-
716
- // Return no-op unsubscribe for non-window environments
717
- return function() {};
718
- };
719
-
720
- FrontMcpBridge.prototype.callTool = function(name, args) {
721
- // Priority 1: Direct OpenAI SDK call (most reliable in OpenAI iframe)
722
- // This bypasses adapter abstraction for maximum compatibility
723
- if (typeof window !== 'undefined' && window.openai && typeof window.openai.callTool === 'function') {
724
- log('callTool: Using OpenAI SDK directly');
725
- return window.openai.callTool(name, args);
726
- }
727
-
728
- // Priority 2: Use adapter (if initialized and supports tool calls)
729
- if (this._adapter && this._adapter.capabilities && this._adapter.capabilities.canCallTools) {
730
- log('callTool: Using adapter ' + this._adapter.id);
731
- return this._adapter.callTool(this._context, name, args);
732
- }
733
-
734
- // Not initialized or no tool support
735
- if (!this._adapter) {
736
- return Promise.reject(new Error('Bridge not initialized. Wait for bridge:ready event.'));
737
- }
738
- return Promise.reject(new Error('Tool calls not supported on this platform (' + this._adapter.id + ')'));
739
- };
740
-
741
- FrontMcpBridge.prototype.sendMessage = function(content) {
742
- if (!this._adapter) return Promise.reject(new Error('Not initialized'));
743
- return this._adapter.sendMessage(this._context, content);
744
- };
745
-
746
- FrontMcpBridge.prototype.openLink = function(url) {
747
- if (!this._adapter) return Promise.reject(new Error('Not initialized'));
748
- return this._adapter.openLink(this._context, url);
749
- };
750
-
751
- FrontMcpBridge.prototype.requestDisplayMode = function(mode) {
752
- if (!this._adapter) return Promise.reject(new Error('Not initialized'));
753
- var self = this;
754
- return this._adapter.requestDisplayMode(this._context, mode).then(function() {
755
- self._context.hostContext.displayMode = mode;
756
- });
757
- };
758
-
759
- FrontMcpBridge.prototype.requestClose = function() {
760
- if (!this._adapter) return Promise.reject(new Error('Not initialized'));
761
- return this._adapter.requestClose(this._context);
762
- };
763
-
764
- FrontMcpBridge.prototype.setWidgetState = function(state) {
765
- Object.assign(this._context.widgetState, state);
766
- this._saveWidgetState();
767
- };
768
-
769
- FrontMcpBridge.prototype.onContextChange = function(callback) {
770
- var listeners = this._context.contextListeners;
771
- listeners.push(callback);
772
- return function() {
773
- var idx = listeners.indexOf(callback);
774
- if (idx !== -1) listeners.splice(idx, 1);
775
- };
776
- };
777
-
778
- FrontMcpBridge.prototype.onToolResult = function(callback) {
779
- var listeners = this._context.toolResultListeners;
780
- listeners.push(callback);
781
- return function() {
782
- var idx = listeners.indexOf(callback);
783
- if (idx !== -1) listeners.splice(idx, 1);
784
- };
785
- };
786
-
787
- // ==================== data-tool-call Click Handler ====================
788
-
789
- FrontMcpBridge.prototype._setupDataToolCallHandler = function() {
790
- var self = this;
791
-
792
- document.addEventListener('click', function(e) {
793
- // Find the closest element with data-tool-call attribute
794
- var target = e.target;
795
- while (target && target !== document) {
796
- if (target.hasAttribute && target.hasAttribute('data-tool-call')) {
797
- var toolName = target.getAttribute('data-tool-call');
798
- var argsAttr = target.getAttribute('data-tool-args');
799
- var args = {};
800
-
801
- try {
802
- if (argsAttr) {
803
- args = JSON.parse(argsAttr);
804
- }
805
- } catch (parseErr) {
806
- console.error('[frontmcp] Failed to parse data-tool-args:', parseErr);
807
- }
808
-
809
- log('data-tool-call clicked: ' + toolName);
810
-
811
- // Show loading state - save original content first
812
- var originalContent = target.innerHTML;
813
- var originalDisabled = target.disabled;
814
- target.disabled = true;
815
- target.classList.add('opacity-50', 'cursor-not-allowed');
816
-
817
- // Add spinner for buttons
818
- var spinner = '<svg class="animate-spin -ml-1 mr-2 h-4 w-4 inline" xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 24 24"><circle class="opacity-25" cx="12" cy="12" r="10" stroke="currentColor" stroke-width="4"></circle><path class="opacity-75" fill="currentColor" d="M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"></path></svg>';
819
- if (target.tagName === 'BUTTON') {
820
- target.innerHTML = spinner + 'Loading...';
821
- }
822
-
823
- // Helper to reset button state
824
- function resetButton() {
825
- target.innerHTML = originalContent;
826
- target.disabled = originalDisabled;
827
- target.classList.remove('opacity-50', 'cursor-not-allowed');
828
- }
829
-
830
- // Determine how to call the tool
831
- var toolCallPromise;
832
-
833
- // Priority 1: Direct OpenAI SDK call (bypasses adapter abstraction)
834
- if (typeof window !== 'undefined' && window.openai && typeof window.openai.callTool === 'function') {
835
- log('Using OpenAI SDK directly for tool call');
836
- toolCallPromise = window.openai.callTool(toolName, args);
837
- }
838
- // Priority 2: Use adapter (if it supports tool calls)
839
- else if (self.hasCapability('canCallTools')) {
840
- log('Using adapter for tool call');
841
- toolCallPromise = self.callTool(toolName, args);
842
- }
843
- // No tool call capability
844
- else {
845
- console.error('[frontmcp] Tool calls not supported on this platform (' + self.adapterId + ')');
846
- resetButton();
847
- target.dispatchEvent(new CustomEvent('tool:error', {
848
- detail: { name: toolName, args: args, error: 'Tool calls not supported on this platform' },
849
- bubbles: true
850
- }));
851
- e.preventDefault();
852
- return;
853
- }
854
-
855
- // Handle the tool call result
856
- toolCallPromise.then(function(result) {
857
- log('Tool call succeeded: ' + toolName);
858
- resetButton();
859
-
860
- // Update bridge state to trigger widget re-render
861
- // React isn't hydrated in OpenAI iframe, so useState doesn't work
862
- // Instead, we use the bridge's reactive state system
863
- if (result && window.__frontmcp && window.__frontmcp.bridge && typeof window.__frontmcp.bridge.setWidgetState === 'function') {
864
- var newData = result.structuredContent || result;
865
- log('Updating bridge state with new data');
866
- window.__frontmcp.bridge.setWidgetState(newData);
867
- }
868
-
869
- // Dispatch success event
870
- target.dispatchEvent(new CustomEvent('tool:success', {
871
- detail: { name: toolName, args: args, result: result },
872
- bubbles: true
873
- }));
874
- }).catch(function(err) {
875
- console.error('[frontmcp] Tool call failed: ' + toolName, err);
876
- resetButton();
877
- // Dispatch error event
878
- target.dispatchEvent(new CustomEvent('tool:error', {
879
- detail: { name: toolName, args: args, error: err.message || err },
880
- bubbles: true
881
- }));
882
- });
883
-
884
- // Prevent default behavior (e.g., form submission)
885
- e.preventDefault();
886
- return;
887
- }
888
- target = target.parentElement;
889
- }
890
- }, true); // Use capture phase to handle before React handlers
891
- };
892
- `.trim();
893
- }
894
- /**
895
- * Simple JS minification (removes extra whitespace and newlines).
896
- */
897
- function minifyJS(code) {
898
- return code
899
- .replace(/\/\*[\s\S]*?\*\//g, '') // Remove block comments
900
- .replace(/\/\/.*$/gm, '') // Remove line comments
901
- .replace(/\s+/g, ' ') // Collapse whitespace
902
- .replace(/\s*([{};,:()\[\]])\s*/g, '$1') // Remove space around punctuation
903
- .replace(/;\}/g, '}') // Remove trailing semicolons before }
904
- .trim();
905
- }
906
- /**
907
- * Generate platform-specific bundle IIFE.
908
- *
909
- * @example ChatGPT-specific bundle
910
- * ```typescript
911
- * const script = generatePlatformBundle('chatgpt');
912
- * ```
913
- */
914
- function generatePlatformBundle(platform, options = {}) {
915
- const platformAdapters = {
916
- chatgpt: ['openai', 'generic'],
917
- claude: ['claude', 'generic'],
918
- gemini: ['gemini', 'generic'],
919
- universal: ['openai', 'ext-apps', 'claude', 'gemini', 'generic'],
920
- };
921
- return generateBridgeIIFE({
922
- ...options,
923
- adapters: platformAdapters[platform],
924
- });
925
- }
926
- /**
927
- * Pre-generated universal bridge script (includes all adapters).
928
- * Use this for the simplest integration.
929
- */
930
- exports.UNIVERSAL_BRIDGE_SCRIPT = generateBridgeIIFE();
931
- /**
932
- * Pre-generated bridge scripts wrapped in script tags.
933
- */
934
- exports.BRIDGE_SCRIPT_TAGS = {
935
- universal: `<script>${exports.UNIVERSAL_BRIDGE_SCRIPT}</script>`,
936
- chatgpt: `<script>${generatePlatformBundle('chatgpt')}</script>`,
937
- claude: `<script>${generatePlatformBundle('claude')}</script>`,
938
- gemini: `<script>${generatePlatformBundle('gemini')}</script>`,
939
- };
940
- //# sourceMappingURL=iife-generator.js.map