@frontmcp/uipack 0.12.2 → 1.0.0-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (298) hide show
  1. package/CLAUDE.md +56 -154
  2. package/README.md +367 -62
  3. package/adapters/base-template.d.ts +30 -0
  4. package/adapters/base-template.d.ts.map +1 -0
  5. package/adapters/cdn-info.d.ts +34 -0
  6. package/adapters/cdn-info.d.ts.map +1 -0
  7. package/adapters/constants.d.ts +18 -0
  8. package/adapters/constants.d.ts.map +1 -0
  9. package/adapters/content-detector.d.ts +19 -0
  10. package/adapters/content-detector.d.ts.map +1 -0
  11. package/adapters/content-renderers.d.ts +27 -0
  12. package/adapters/content-renderers.d.ts.map +1 -0
  13. package/adapters/index.d.ts +14 -7
  14. package/adapters/index.d.ts.map +1 -1
  15. package/adapters/index.js +2343 -426
  16. package/adapters/render-failure.d.ts +18 -0
  17. package/adapters/render-failure.d.ts.map +1 -0
  18. package/adapters/response-builder.d.ts +34 -104
  19. package/adapters/response-builder.d.ts.map +1 -1
  20. package/adapters/serving-mode.d.ts +28 -91
  21. package/adapters/serving-mode.d.ts.map +1 -1
  22. package/adapters/template-renderer.d.ts +50 -0
  23. package/adapters/template-renderer.d.ts.map +1 -0
  24. package/adapters/type-detector.d.ts +18 -0
  25. package/adapters/type-detector.d.ts.map +1 -0
  26. package/bridge-runtime/index.js +1 -1
  27. package/component/index.d.ts +14 -0
  28. package/component/index.d.ts.map +1 -0
  29. package/component/index.js +2043 -0
  30. package/component/loader.d.ts +36 -0
  31. package/component/loader.d.ts.map +1 -0
  32. package/component/renderer.d.ts +30 -0
  33. package/component/renderer.d.ts.map +1 -0
  34. package/component/transpiler.d.ts +49 -0
  35. package/component/transpiler.d.ts.map +1 -0
  36. package/component/types.d.ts +82 -0
  37. package/component/types.d.ts.map +1 -0
  38. package/esm/adapters/index.mjs +2337 -422
  39. package/esm/bridge-runtime/index.mjs +1 -1
  40. package/esm/component/index.mjs +2013 -0
  41. package/esm/index.mjs +3446 -13935
  42. package/esm/package.json +3 -12
  43. package/esm/resolver/index.mjs +661 -0
  44. package/esm/shell/index.mjs +1406 -0
  45. package/esm/types/index.mjs +11 -11
  46. package/esm/utils/index.mjs +53 -8
  47. package/index.d.ts +12 -40
  48. package/index.d.ts.map +1 -1
  49. package/index.js +3579 -14218
  50. package/package.json +3 -12
  51. package/resolver/cdn-registry.d.ts +39 -0
  52. package/resolver/cdn-registry.d.ts.map +1 -0
  53. package/resolver/esm-sh.resolver.d.ts +54 -0
  54. package/resolver/esm-sh.resolver.d.ts.map +1 -0
  55. package/resolver/import-map.d.ts +47 -0
  56. package/resolver/import-map.d.ts.map +1 -0
  57. package/resolver/import-parser.d.ts +28 -0
  58. package/resolver/import-parser.d.ts.map +1 -0
  59. package/resolver/import-rewriter.d.ts +29 -0
  60. package/resolver/import-rewriter.d.ts.map +1 -0
  61. package/resolver/index.d.ts +15 -0
  62. package/resolver/index.d.ts.map +1 -0
  63. package/resolver/index.js +708 -0
  64. package/resolver/types.d.ts +191 -0
  65. package/resolver/types.d.ts.map +1 -0
  66. package/shell/builder.d.ts +31 -0
  67. package/shell/builder.d.ts.map +1 -0
  68. package/shell/csp.d.ts +37 -0
  69. package/shell/csp.d.ts.map +1 -0
  70. package/shell/custom-shell-applier.d.ts +33 -0
  71. package/shell/custom-shell-applier.d.ts.map +1 -0
  72. package/shell/custom-shell-resolver.d.ts +47 -0
  73. package/shell/custom-shell-resolver.d.ts.map +1 -0
  74. package/shell/custom-shell-types.d.ts +75 -0
  75. package/shell/custom-shell-types.d.ts.map +1 -0
  76. package/shell/custom-shell-validator.d.ts +26 -0
  77. package/shell/custom-shell-validator.d.ts.map +1 -0
  78. package/shell/data-injector.d.ts +40 -0
  79. package/shell/data-injector.d.ts.map +1 -0
  80. package/shell/index.d.ts +19 -0
  81. package/shell/index.d.ts.map +1 -0
  82. package/shell/index.js +1453 -0
  83. package/shell/types.d.ts +54 -0
  84. package/shell/types.d.ts.map +1 -0
  85. package/types/index.d.ts +1 -3
  86. package/types/index.d.ts.map +1 -1
  87. package/types/index.js +11 -11
  88. package/types/ui-config.d.ts +50 -11
  89. package/types/ui-config.d.ts.map +1 -1
  90. package/types/ui-runtime.d.ts +8 -82
  91. package/types/ui-runtime.d.ts.map +1 -1
  92. package/utils/index.d.ts +9 -3
  93. package/utils/index.d.ts.map +1 -1
  94. package/utils/index.js +59 -7
  95. package/adapters/platform-meta.constants.d.ts +0 -26
  96. package/adapters/platform-meta.constants.d.ts.map +0 -1
  97. package/adapters/platform-meta.d.ts +0 -234
  98. package/adapters/platform-meta.d.ts.map +0 -1
  99. package/base-template/bridge.d.ts +0 -90
  100. package/base-template/bridge.d.ts.map +0 -1
  101. package/base-template/default-base-template.d.ts +0 -91
  102. package/base-template/default-base-template.d.ts.map +0 -1
  103. package/base-template/index.d.ts +0 -15
  104. package/base-template/index.d.ts.map +0 -1
  105. package/base-template/index.js +0 -1393
  106. package/base-template/polyfills.d.ts +0 -31
  107. package/base-template/polyfills.d.ts.map +0 -1
  108. package/base-template/theme-styles.d.ts +0 -74
  109. package/base-template/theme-styles.d.ts.map +0 -1
  110. package/build/builders/base-builder.d.ts +0 -124
  111. package/build/builders/base-builder.d.ts.map +0 -1
  112. package/build/builders/esbuild-config.d.ts +0 -94
  113. package/build/builders/esbuild-config.d.ts.map +0 -1
  114. package/build/builders/hybrid-builder.d.ts +0 -93
  115. package/build/builders/hybrid-builder.d.ts.map +0 -1
  116. package/build/builders/index.d.ts +0 -17
  117. package/build/builders/index.d.ts.map +0 -1
  118. package/build/builders/inline-builder.d.ts +0 -83
  119. package/build/builders/inline-builder.d.ts.map +0 -1
  120. package/build/builders/static-builder.d.ts +0 -78
  121. package/build/builders/static-builder.d.ts.map +0 -1
  122. package/build/builders/types.d.ts +0 -341
  123. package/build/builders/types.d.ts.map +0 -1
  124. package/build/cdn-resources.d.ts +0 -244
  125. package/build/cdn-resources.d.ts.map +0 -1
  126. package/build/hybrid-data.d.ts +0 -127
  127. package/build/hybrid-data.d.ts.map +0 -1
  128. package/build/index.d.ts +0 -299
  129. package/build/index.d.ts.map +0 -1
  130. package/build/index.js +0 -8699
  131. package/build/ui-components-browser.d.ts +0 -64
  132. package/build/ui-components-browser.d.ts.map +0 -1
  133. package/build/widget-manifest.d.ts +0 -362
  134. package/build/widget-manifest.d.ts.map +0 -1
  135. package/bundler/cache.d.ts +0 -173
  136. package/bundler/cache.d.ts.map +0 -1
  137. package/bundler/file-cache/component-builder.d.ts +0 -167
  138. package/bundler/file-cache/component-builder.d.ts.map +0 -1
  139. package/bundler/file-cache/hash-calculator.d.ts +0 -155
  140. package/bundler/file-cache/hash-calculator.d.ts.map +0 -1
  141. package/bundler/file-cache/index.d.ts +0 -12
  142. package/bundler/file-cache/index.d.ts.map +0 -1
  143. package/bundler/file-cache/storage/filesystem.d.ts +0 -149
  144. package/bundler/file-cache/storage/filesystem.d.ts.map +0 -1
  145. package/bundler/file-cache/storage/index.d.ts +0 -11
  146. package/bundler/file-cache/storage/index.d.ts.map +0 -1
  147. package/bundler/file-cache/storage/interface.d.ts +0 -152
  148. package/bundler/file-cache/storage/interface.d.ts.map +0 -1
  149. package/bundler/file-cache/storage/redis.d.ts +0 -139
  150. package/bundler/file-cache/storage/redis.d.ts.map +0 -1
  151. package/bundler/index.d.ts +0 -35
  152. package/bundler/index.d.ts.map +0 -1
  153. package/bundler/index.js +0 -2953
  154. package/bundler/sandbox/enclave-adapter.d.ts +0 -121
  155. package/bundler/sandbox/enclave-adapter.d.ts.map +0 -1
  156. package/bundler/sandbox/executor.d.ts +0 -14
  157. package/bundler/sandbox/executor.d.ts.map +0 -1
  158. package/bundler/sandbox/policy.d.ts +0 -62
  159. package/bundler/sandbox/policy.d.ts.map +0 -1
  160. package/bundler/types.d.ts +0 -702
  161. package/bundler/types.d.ts.map +0 -1
  162. package/dependency/cdn-registry.d.ts +0 -98
  163. package/dependency/cdn-registry.d.ts.map +0 -1
  164. package/dependency/import-map.d.ts +0 -186
  165. package/dependency/import-map.d.ts.map +0 -1
  166. package/dependency/import-parser.d.ts +0 -82
  167. package/dependency/import-parser.d.ts.map +0 -1
  168. package/dependency/index.d.ts +0 -17
  169. package/dependency/index.d.ts.map +0 -1
  170. package/dependency/index.js +0 -3180
  171. package/dependency/resolver.d.ts +0 -164
  172. package/dependency/resolver.d.ts.map +0 -1
  173. package/dependency/schemas.d.ts +0 -486
  174. package/dependency/schemas.d.ts.map +0 -1
  175. package/dependency/template-loader.d.ts +0 -204
  176. package/dependency/template-loader.d.ts.map +0 -1
  177. package/dependency/template-processor.d.ts +0 -118
  178. package/dependency/template-processor.d.ts.map +0 -1
  179. package/dependency/types.d.ts +0 -739
  180. package/dependency/types.d.ts.map +0 -1
  181. package/esm/base-template/index.mjs +0 -1359
  182. package/esm/build/index.mjs +0 -8601
  183. package/esm/bundler/index.mjs +0 -2895
  184. package/esm/dependency/index.mjs +0 -3068
  185. package/esm/handlebars/index.mjs +0 -587
  186. package/esm/registry/index.mjs +0 -6305
  187. package/esm/renderers/index.mjs +0 -1557
  188. package/esm/runtime/index.mjs +0 -5361
  189. package/esm/styles/index.mjs +0 -171
  190. package/esm/theme/index.mjs +0 -756
  191. package/esm/tool-template/index.mjs +0 -3652
  192. package/esm/validation/index.mjs +0 -542
  193. package/handlebars/expression-extractor.d.ts +0 -147
  194. package/handlebars/expression-extractor.d.ts.map +0 -1
  195. package/handlebars/helpers.d.ts +0 -339
  196. package/handlebars/helpers.d.ts.map +0 -1
  197. package/handlebars/index.d.ts +0 -195
  198. package/handlebars/index.d.ts.map +0 -1
  199. package/handlebars/index.js +0 -659
  200. package/preview/claude-preview.d.ts +0 -67
  201. package/preview/claude-preview.d.ts.map +0 -1
  202. package/preview/generic-preview.d.ts +0 -66
  203. package/preview/generic-preview.d.ts.map +0 -1
  204. package/preview/index.d.ts +0 -36
  205. package/preview/index.d.ts.map +0 -1
  206. package/preview/openai-preview.d.ts +0 -70
  207. package/preview/openai-preview.d.ts.map +0 -1
  208. package/preview/types.d.ts +0 -199
  209. package/preview/types.d.ts.map +0 -1
  210. package/registry/index.d.ts +0 -46
  211. package/registry/index.d.ts.map +0 -1
  212. package/registry/index.js +0 -6342
  213. package/registry/render-template.d.ts +0 -91
  214. package/registry/render-template.d.ts.map +0 -1
  215. package/registry/tool-ui.registry.d.ts +0 -294
  216. package/registry/tool-ui.registry.d.ts.map +0 -1
  217. package/registry/uri-utils.d.ts +0 -56
  218. package/registry/uri-utils.d.ts.map +0 -1
  219. package/renderers/cache.d.ts +0 -145
  220. package/renderers/cache.d.ts.map +0 -1
  221. package/renderers/html.renderer.d.ts +0 -123
  222. package/renderers/html.renderer.d.ts.map +0 -1
  223. package/renderers/index.d.ts +0 -36
  224. package/renderers/index.d.ts.map +0 -1
  225. package/renderers/index.js +0 -1603
  226. package/renderers/mdx-client.renderer.d.ts +0 -124
  227. package/renderers/mdx-client.renderer.d.ts.map +0 -1
  228. package/renderers/registry.d.ts +0 -133
  229. package/renderers/registry.d.ts.map +0 -1
  230. package/renderers/types.d.ts +0 -343
  231. package/renderers/types.d.ts.map +0 -1
  232. package/renderers/utils/detect.d.ts +0 -107
  233. package/renderers/utils/detect.d.ts.map +0 -1
  234. package/renderers/utils/hash.d.ts +0 -40
  235. package/renderers/utils/hash.d.ts.map +0 -1
  236. package/renderers/utils/index.d.ts +0 -9
  237. package/renderers/utils/index.d.ts.map +0 -1
  238. package/renderers/utils/transpiler.d.ts +0 -70
  239. package/renderers/utils/transpiler.d.ts.map +0 -1
  240. package/runtime/adapters/html.adapter.d.ts +0 -59
  241. package/runtime/adapters/html.adapter.d.ts.map +0 -1
  242. package/runtime/adapters/index.d.ts +0 -26
  243. package/runtime/adapters/index.d.ts.map +0 -1
  244. package/runtime/adapters/mdx.adapter.d.ts +0 -73
  245. package/runtime/adapters/mdx.adapter.d.ts.map +0 -1
  246. package/runtime/adapters/types.d.ts +0 -95
  247. package/runtime/adapters/types.d.ts.map +0 -1
  248. package/runtime/csp.d.ts +0 -48
  249. package/runtime/csp.d.ts.map +0 -1
  250. package/runtime/index.d.ts +0 -17
  251. package/runtime/index.d.ts.map +0 -1
  252. package/runtime/index.js +0 -5432
  253. package/runtime/mcp-bridge.d.ts +0 -101
  254. package/runtime/mcp-bridge.d.ts.map +0 -1
  255. package/runtime/renderer-runtime.d.ts +0 -133
  256. package/runtime/renderer-runtime.d.ts.map +0 -1
  257. package/runtime/sanitizer.d.ts +0 -180
  258. package/runtime/sanitizer.d.ts.map +0 -1
  259. package/runtime/types.d.ts +0 -415
  260. package/runtime/types.d.ts.map +0 -1
  261. package/runtime/wrapper.d.ts +0 -421
  262. package/runtime/wrapper.d.ts.map +0 -1
  263. package/styles/index.d.ts +0 -8
  264. package/styles/index.d.ts.map +0 -1
  265. package/styles/index.js +0 -222
  266. package/styles/variants.d.ts +0 -51
  267. package/styles/variants.d.ts.map +0 -1
  268. package/theme/cdn.d.ts +0 -195
  269. package/theme/cdn.d.ts.map +0 -1
  270. package/theme/css-to-theme.d.ts +0 -64
  271. package/theme/css-to-theme.d.ts.map +0 -1
  272. package/theme/index.d.ts +0 -19
  273. package/theme/index.d.ts.map +0 -1
  274. package/theme/index.js +0 -814
  275. package/theme/platforms.d.ts +0 -102
  276. package/theme/platforms.d.ts.map +0 -1
  277. package/theme/presets/github-openai.d.ts +0 -50
  278. package/theme/presets/github-openai.d.ts.map +0 -1
  279. package/theme/presets/index.d.ts +0 -11
  280. package/theme/presets/index.d.ts.map +0 -1
  281. package/theme/theme.d.ts +0 -396
  282. package/theme/theme.d.ts.map +0 -1
  283. package/tool-template/builder.d.ts +0 -213
  284. package/tool-template/builder.d.ts.map +0 -1
  285. package/tool-template/index.d.ts +0 -16
  286. package/tool-template/index.d.ts.map +0 -1
  287. package/tool-template/index.js +0 -3690
  288. package/validation/error-box.d.ts +0 -56
  289. package/validation/error-box.d.ts.map +0 -1
  290. package/validation/index.d.ts +0 -13
  291. package/validation/index.d.ts.map +0 -1
  292. package/validation/index.js +0 -576
  293. package/validation/schema-paths.d.ts +0 -118
  294. package/validation/schema-paths.d.ts.map +0 -1
  295. package/validation/template-validator.d.ts +0 -143
  296. package/validation/template-validator.d.ts.map +0 -1
  297. package/validation/wrapper.d.ts +0 -97
  298. package/validation/wrapper.d.ts.map +0 -1
@@ -1,415 +0,0 @@
1
- /**
2
- * Runtime Types for Tool UI Templates
3
- *
4
- * Types for the MCP Bridge runtime that adapts to different host environments
5
- * (OpenAI Apps SDK, ext-apps, Claude, etc.).
6
- *
7
- * Note: UI-related types are defined locally to avoid circular dependency with @frontmcp/sdk.
8
- * These are kept in sync with the SDK's tool-ui.metadata.ts definitions.
9
- */
10
- /**
11
- * Content Security Policy for UI templates rendered in sandboxed iframes.
12
- * Based on OpenAI Apps SDK and ext-apps (SEP-1865) specifications.
13
- */
14
- export interface UIContentSecurityPolicy {
15
- /**
16
- * Origins allowed for fetch/XHR/WebSocket connections.
17
- * Maps to CSP `connect-src` directive.
18
- */
19
- connectDomains?: string[];
20
- /**
21
- * Origins allowed for images, scripts, fonts, and styles.
22
- * Maps to CSP `img-src`, `script-src`, `style-src`, `font-src` directives.
23
- */
24
- resourceDomains?: string[];
25
- }
26
- /**
27
- * Helper functions available in template context.
28
- */
29
- export interface TemplateHelpers {
30
- /** Escape HTML special characters to prevent XSS. Handles null/undefined gracefully. */
31
- escapeHtml: (str: unknown) => string;
32
- /** Format a date for display. */
33
- formatDate: (date: Date | string, format?: string) => string;
34
- /** Format a number as currency. */
35
- formatCurrency: (amount: number, currency?: string) => string;
36
- /** Generate a unique ID for DOM elements. */
37
- uniqueId: (prefix?: string) => string;
38
- /** Safely embed JSON data in HTML (escapes script-breaking characters). */
39
- jsonEmbed: (data: unknown) => string;
40
- }
41
- /**
42
- * Context passed to template builder functions.
43
- */
44
- export interface TemplateContext<In, Out> {
45
- /** The input arguments passed to the tool. */
46
- input: In;
47
- /** The raw output returned by the tool's execute method. */
48
- output: Out;
49
- /** The structured content parsed from the output (if outputSchema was provided). */
50
- structuredContent?: unknown;
51
- /** Helper functions for template rendering. */
52
- helpers: TemplateHelpers;
53
- }
54
- /**
55
- * Template builder function type.
56
- */
57
- export type TemplateBuilderFn<In, Out> = (ctx: TemplateContext<In, Out>) => string;
58
- /**
59
- * Widget serving mode determines how the widget HTML is delivered to the client.
60
- */
61
- export type WidgetServingMode = 'auto' | 'inline' | 'static' | 'hybrid' | 'direct-url' | 'custom-url';
62
- /**
63
- * Template type - can be:
64
- * - HTML string
65
- * - Template builder function: (ctx) => string
66
- * - React component function (imported from .tsx file)
67
- * - JSX string (transpiled at runtime)
68
- * - MDX string (Markdown + JSX, transpiled at runtime)
69
- *
70
- * The renderer is auto-detected based on template type.
71
- */
72
- export type ToolUITemplate<In = unknown, Out = unknown> = TemplateBuilderFn<In, Out> | string | ((props: any) => any);
73
- /**
74
- * UI template configuration for tools.
75
- */
76
- export interface ToolUIConfig<In = unknown, Out = unknown> {
77
- /**
78
- * Template for rendering the tool UI.
79
- *
80
- * Supports multiple formats (auto-detected):
81
- * - HTML string: `"<div>Hello</div>"`
82
- * - Template builder: `(ctx) => \`<div>\${ctx.output.name}</div>\``
83
- * - React component: `import { MyWidget } from './widget.tsx'`
84
- * - JSX string: `"function Widget({ output }) { return <div>{output.name}</div>; }"`
85
- * - MDX string: `"# Title\n<Card name={output.name} />"`
86
- *
87
- * @example HTML template builder
88
- * ```typescript
89
- * template: (ctx) => `<div>${ctx.helpers.escapeHtml(ctx.output.name)}</div>`
90
- * ```
91
- *
92
- * @example React component
93
- * ```typescript
94
- * import { MyWidget } from './my-widget.tsx';
95
- * template: MyWidget
96
- * ```
97
- *
98
- * @example MDX content
99
- * ```typescript
100
- * template: `
101
- * # User Profile
102
- * <UserCard name={output.name} />
103
- * `
104
- * ```
105
- */
106
- template: ToolUITemplate<In, Out>;
107
- /** Content Security Policy for the sandboxed widget. */
108
- csp?: UIContentSecurityPolicy;
109
- /** Whether the widget can invoke tools via the MCP bridge. */
110
- widgetAccessible?: boolean;
111
- /** Preferred display mode for the widget. */
112
- displayMode?: 'inline' | 'fullscreen' | 'pip';
113
- /** Human-readable description shown to users about what the widget does. */
114
- widgetDescription?: string;
115
- /** Status messages shown during tool invocation. */
116
- invocationStatus?: {
117
- invoking?: string;
118
- invoked?: string;
119
- };
120
- /** How the widget HTML should be served to the client. */
121
- servingMode?: WidgetServingMode;
122
- /** Custom URL for widget serving when `servingMode: 'custom-url'`. */
123
- customWidgetUrl?: string;
124
- /** Path for direct URL serving when `servingMode: 'direct-url'`. */
125
- directPath?: string;
126
- /**
127
- * Enable client-side hydration for React/MDX components.
128
- * When true, the rendered HTML includes hydration markers and
129
- * the React runtime is included for client-side interactivity.
130
- *
131
- * @default false
132
- */
133
- hydrate?: boolean;
134
- /**
135
- * Custom React components to make available in MDX templates.
136
- * These components can be used directly in MDX content.
137
- *
138
- * @example
139
- * ```typescript
140
- * import { Card, Badge } from './components';
141
- *
142
- * mdxComponents: { Card, Badge }
143
- * // Now in MDX: # Title\n<Card><Badge>New</Badge></Card>
144
- * ```
145
- */
146
- mdxComponents?: Record<string, any>;
147
- /**
148
- * Custom wrapper function for the rendered content.
149
- * Allows per-tool customization of the HTML document structure.
150
- *
151
- * @example
152
- * ```typescript
153
- * wrapper: (content, ctx) => `
154
- * <div class="custom-wrapper">
155
- * ${content}
156
- * </div>
157
- * `
158
- * ```
159
- */
160
- wrapper?: (content: string, ctx: TemplateContext<In, Out>) => string;
161
- }
162
- type UICSPType = UIContentSecurityPolicy;
163
- /**
164
- * Provider identifier for the host environment
165
- */
166
- export type ProviderType = 'openai' | 'ext-apps' | 'claude' | 'unknown';
167
- /**
168
- * Display mode for the widget
169
- */
170
- export type DisplayMode = 'inline' | 'fullscreen' | 'pip' | 'carousel';
171
- /**
172
- * Theme mode
173
- */
174
- export type ThemeMode = 'light' | 'dark' | 'system';
175
- /**
176
- * Host context provided by the environment
177
- */
178
- export interface HostContext {
179
- /** Current theme mode */
180
- theme: ThemeMode;
181
- /** Current display mode */
182
- displayMode: DisplayMode;
183
- /** Available display modes */
184
- availableDisplayModes?: DisplayMode[];
185
- /** Viewport dimensions */
186
- viewport?: {
187
- width: number;
188
- height: number;
189
- maxHeight?: number;
190
- maxWidth?: number;
191
- };
192
- /** BCP 47 locale code */
193
- locale?: string;
194
- /** IANA timezone */
195
- timeZone?: string;
196
- /** User agent string */
197
- userAgent?: string;
198
- /** Platform type */
199
- platform?: 'web' | 'desktop' | 'mobile';
200
- /** Device capabilities */
201
- deviceCapabilities?: {
202
- touch?: boolean;
203
- hover?: boolean;
204
- };
205
- /** Safe area insets (for mobile) */
206
- safeAreaInsets?: {
207
- top: number;
208
- right: number;
209
- bottom: number;
210
- left: number;
211
- };
212
- }
213
- /**
214
- * MCP Bridge interface available as window.mcpBridge
215
- */
216
- export interface MCPBridge {
217
- /**
218
- * Detected provider type
219
- */
220
- readonly provider: ProviderType;
221
- /**
222
- * Call a tool on the MCP server
223
- */
224
- callTool(name: string, params: Record<string, unknown>): Promise<unknown>;
225
- /**
226
- * Send a message to the chat interface
227
- */
228
- sendMessage(content: string): Promise<void>;
229
- /**
230
- * Open an external link
231
- */
232
- openLink(url: string): Promise<void>;
233
- /**
234
- * Get the tool input arguments
235
- */
236
- readonly toolInput: Record<string, unknown>;
237
- /**
238
- * Get the tool output/result
239
- */
240
- readonly toolOutput: unknown;
241
- /**
242
- * Get the structured content from the tool result
243
- */
244
- readonly structuredContent: unknown;
245
- /**
246
- * Get the current widget state
247
- */
248
- readonly widgetState: Record<string, unknown>;
249
- /**
250
- * Set the widget state (persisted)
251
- */
252
- setWidgetState(state: Record<string, unknown>): void;
253
- /**
254
- * Get the host context (theme, display mode, etc.)
255
- */
256
- readonly context: HostContext;
257
- /**
258
- * Subscribe to host context changes
259
- */
260
- onContextChange(callback: (context: Partial<HostContext>) => void): () => void;
261
- /**
262
- * Subscribe to tool result updates
263
- */
264
- onToolResult(callback: (result: unknown) => void): () => void;
265
- }
266
- /**
267
- * Options for wrapping tool UI templates
268
- */
269
- export interface WrapToolUIOptions {
270
- /** HTML content of the template */
271
- content: string;
272
- /** Tool name */
273
- toolName: string;
274
- /** Tool input arguments */
275
- input?: Record<string, unknown>;
276
- /** Tool output */
277
- output?: unknown;
278
- /** Structured content from parsing */
279
- structuredContent?: unknown;
280
- /** Content Security Policy */
281
- csp?: UICSPType;
282
- /** Whether widget can call tools */
283
- widgetAccessible?: boolean;
284
- /** Title for the page */
285
- title?: string;
286
- }
287
- declare global {
288
- interface Window {
289
- mcpBridge?: MCPBridge | MCPBridgeExtended;
290
- openai?: OpenAIRuntime;
291
- claude?: unknown;
292
- __mcpPlatform?: string;
293
- __mcpToolName?: string;
294
- __mcpToolInput?: Record<string, unknown>;
295
- __mcpToolOutput?: unknown;
296
- __mcpStructuredContent?: unknown;
297
- __mcpToolResponseMetadata?: Record<string, unknown>;
298
- __mcpHostContext?: HostContext;
299
- __mcpWidgetToken?: string;
300
- }
301
- }
302
- /**
303
- * User agent information from OpenAI
304
- */
305
- export interface OpenAIUserAgent {
306
- /** Device type */
307
- type?: 'web' | 'mobile' | 'desktop';
308
- /** Whether device supports hover interactions */
309
- hover?: boolean;
310
- /** Whether device supports touch interactions */
311
- touch?: boolean;
312
- }
313
- /**
314
- * Safe area insets (for mobile devices with notches, etc.)
315
- */
316
- export interface SafeAreaInsets {
317
- top: number;
318
- bottom: number;
319
- left: number;
320
- right: number;
321
- }
322
- /**
323
- * Full OpenAI runtime interface matching window.openai API
324
- * @see https://developers.openai.com/apps-sdk/build/chatgpt-ui
325
- */
326
- export interface OpenAIRuntime {
327
- /** Display theme */
328
- theme?: 'light' | 'dark';
329
- /** User agent information */
330
- userAgent?: OpenAIUserAgent;
331
- /** BCP 47 locale string */
332
- locale?: string;
333
- /** Maximum height available for widget (pixels) */
334
- maxHeight?: number;
335
- /** Current display mode */
336
- displayMode?: DisplayMode;
337
- /** Safe area insets for mobile devices */
338
- safeArea?: SafeAreaInsets;
339
- /** Tool input arguments passed to the tool */
340
- toolInput?: Record<string, unknown>;
341
- /** Structured tool output/result */
342
- toolOutput?: unknown;
343
- /** Additional metadata from tool response */
344
- toolResponseMetadata?: Record<string, unknown>;
345
- /** Persisted widget state */
346
- widgetState?: Record<string, unknown>;
347
- /**
348
- * Invoke an MCP tool
349
- * @param name - Tool name
350
- * @param args - Tool arguments
351
- * @returns Promise resolving to tool result
352
- */
353
- callTool?: (name: string, args: Record<string, unknown>) => Promise<unknown>;
354
- /**
355
- * Request a display mode change
356
- * @param options - Display mode options
357
- */
358
- requestDisplayMode?: (options: {
359
- mode: DisplayMode;
360
- }) => Promise<void>;
361
- /**
362
- * Request to close the widget
363
- */
364
- requestClose?: () => Promise<void>;
365
- /**
366
- * Open an external URL
367
- * @param options - URL options
368
- */
369
- openExternal?: (options: {
370
- href: string;
371
- }) => Promise<void>;
372
- /**
373
- * Send a follow-up message to the chat
374
- * @param options - Message options
375
- */
376
- sendFollowUpMessage?: (options: {
377
- prompt: string;
378
- }) => Promise<void>;
379
- /**
380
- * Set widget state (persisted across sessions)
381
- * @param state - State object to persist
382
- */
383
- setWidgetState?: (state: Record<string, unknown>) => void;
384
- }
385
- /**
386
- * Extended MCP Bridge interface with full OpenAI API compatibility
387
- */
388
- export interface MCPBridgeExtended extends MCPBridge {
389
- /** Display theme (proxied from window.openai or polyfilled) */
390
- readonly theme: 'light' | 'dark';
391
- /** User agent info */
392
- readonly userAgent: OpenAIUserAgent;
393
- /** BCP 47 locale */
394
- readonly locale: string;
395
- /** Max height for widget */
396
- readonly maxHeight: number | undefined;
397
- /** Current display mode */
398
- readonly displayMode: DisplayMode;
399
- /** Safe area insets */
400
- readonly safeArea: SafeAreaInsets;
401
- /** Tool response metadata */
402
- readonly toolResponseMetadata: Record<string, unknown>;
403
- /**
404
- * Request display mode change
405
- */
406
- requestDisplayMode(options: {
407
- mode: DisplayMode;
408
- }): Promise<void>;
409
- /**
410
- * Request to close the widget
411
- */
412
- requestClose(): Promise<void>;
413
- }
414
- export {};
415
- //# sourceMappingURL=types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/runtime/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAMH;;;GAGG;AACH,MAAM,WAAW,uBAAuB;IACtC;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAE1B;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;CAC5B;AAMD;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,wFAAwF;IACxF,UAAU,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,MAAM,CAAC;IAErC,iCAAiC;IACjC,UAAU,EAAE,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;IAE7D,mCAAmC;IACnC,cAAc,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;IAE9D,6CAA6C;IAC7C,QAAQ,EAAE,CAAC,MAAM,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;IAEtC,2EAA2E;IAC3E,SAAS,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,MAAM,CAAC;CACtC;AAED;;GAEG;AACH,MAAM,WAAW,eAAe,CAAC,EAAE,EAAE,GAAG;IACtC,8CAA8C;IAC9C,KAAK,EAAE,EAAE,CAAC;IAEV,4DAA4D;IAC5D,MAAM,EAAE,GAAG,CAAC;IAEZ,oFAAoF;IACpF,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAE5B,+CAA+C;IAC/C,OAAO,EAAE,eAAe,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,MAAM,iBAAiB,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,eAAe,CAAC,EAAE,EAAE,GAAG,CAAC,KAAK,MAAM,CAAC;AAEnF;;GAEG;AACH,MAAM,MAAM,iBAAiB,GACzB,MAAM,GACN,QAAQ,GACR,QAAQ,GACR,QAAQ,GACR,YAAY,GACZ,YAAY,CAAC;AAEjB;;;;;;;;;GASG;AAEH,MAAM,MAAM,cAAc,CAAC,EAAE,GAAG,OAAO,EAAE,GAAG,GAAG,OAAO,IAAI,iBAAiB,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG,MAAM,GAAG,CAAC,CAAC,KAAK,EAAE,GAAG,KAAK,GAAG,CAAC,CAAC;AAEtH;;GAEG;AACH,MAAM,WAAW,YAAY,CAAC,EAAE,GAAG,OAAO,EAAE,GAAG,GAAG,OAAO;IACvD;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4BG;IACH,QAAQ,EAAE,cAAc,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;IAElC,wDAAwD;IACxD,GAAG,CAAC,EAAE,uBAAuB,CAAC;IAE9B,8DAA8D;IAC9D,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAE3B,6CAA6C;IAC7C,WAAW,CAAC,EAAE,QAAQ,GAAG,YAAY,GAAG,KAAK,CAAC;IAE9C,4EAA4E;IAC5E,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3B,oDAAoD;IACpD,gBAAgB,CAAC,EAAE;QACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;IAEF,0DAA0D;IAC1D,WAAW,CAAC,EAAE,iBAAiB,CAAC;IAEhC,sEAAsE;IACtE,eAAe,CAAC,EAAE,MAAM,CAAC;IAEzB,oEAAoE;IACpE,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB;;;;;;;;;;;OAWG;IAEH,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAEpC;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,eAAe,CAAC,EAAE,EAAE,GAAG,CAAC,KAAK,MAAM,CAAC;CACtE;AAGD,KAAK,SAAS,GAAG,uBAAuB,CAAC;AAEzC;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,UAAU,GAAG,QAAQ,GAAG,SAAS,CAAC;AAExE;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,YAAY,GAAG,KAAK,GAAG,UAAU,CAAC;AAEvE;;GAEG;AACH,MAAM,MAAM,SAAS,GAAG,OAAO,GAAG,MAAM,GAAG,QAAQ,CAAC;AAEpD;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,yBAAyB;IACzB,KAAK,EAAE,SAAS,CAAC;IAEjB,2BAA2B;IAC3B,WAAW,EAAE,WAAW,CAAC;IAEzB,8BAA8B;IAC9B,qBAAqB,CAAC,EAAE,WAAW,EAAE,CAAC;IAEtC,0BAA0B;IAC1B,QAAQ,CAAC,EAAE;QACT,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC;IAEF,yBAAyB;IACzB,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,oBAAoB;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,wBAAwB;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,oBAAoB;IACpB,QAAQ,CAAC,EAAE,KAAK,GAAG,SAAS,GAAG,QAAQ,CAAC;IAExC,0BAA0B;IAC1B,kBAAkB,CAAC,EAAE;QACnB,KAAK,CAAC,EAAE,OAAO,CAAC;QAChB,KAAK,CAAC,EAAE,OAAO,CAAC;KACjB,CAAC;IAEF,oCAAoC;IACpC,cAAc,CAAC,EAAE;QACf,GAAG,EAAE,MAAM,CAAC;QACZ,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;CACH;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB;;OAEG;IACH,QAAQ,CAAC,QAAQ,EAAE,YAAY,CAAC;IAEhC;;OAEG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAE1E;;OAEG;IACH,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE5C;;OAEG;IACH,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAErC;;OAEG;IACH,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAE5C;;OAEG;IACH,QAAQ,CAAC,UAAU,EAAE,OAAO,CAAC;IAE7B;;OAEG;IACH,QAAQ,CAAC,iBAAiB,EAAE,OAAO,CAAC;IAEpC;;OAEG;IACH,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAE9C;;OAEG;IACH,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAErD;;OAEG;IACH,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC;IAE9B;;OAEG;IACH,eAAe,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,WAAW,CAAC,KAAK,IAAI,GAAG,MAAM,IAAI,CAAC;IAE/E;;OAEG;IACH,YAAY,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,GAAG,MAAM,IAAI,CAAC;CAC/D;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,mCAAmC;IACnC,OAAO,EAAE,MAAM,CAAC;IAEhB,gBAAgB;IAChB,QAAQ,EAAE,MAAM,CAAC;IAEjB,2BAA2B;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAEhC,kBAAkB;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;IAEjB,sCAAsC;IACtC,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAE5B,8BAA8B;IAC9B,GAAG,CAAC,EAAE,SAAS,CAAC;IAEhB,oCAAoC;IACpC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAE3B,yBAAyB;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAGD,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,MAAM;QACd,SAAS,CAAC,EAAE,SAAS,GAAG,iBAAiB,CAAC;QAC1C,MAAM,CAAC,EAAE,aAAa,CAAC;QACvB,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACzC,eAAe,CAAC,EAAE,OAAO,CAAC;QAC1B,sBAAsB,CAAC,EAAE,OAAO,CAAC;QACjC,yBAAyB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACpD,gBAAgB,CAAC,EAAE,WAAW,CAAC;QAC/B,gBAAgB,CAAC,EAAE,MAAM,CAAC;KAC3B;CACF;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,kBAAkB;IAClB,IAAI,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,SAAS,CAAC;IACpC,iDAAiD;IACjD,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,iDAAiD;IACjD,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;GAGG;AACH,MAAM,WAAW,aAAa;IAG5B,oBAAoB;IACpB,KAAK,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;IAEzB,6BAA6B;IAC7B,SAAS,CAAC,EAAE,eAAe,CAAC;IAE5B,2BAA2B;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,mDAAmD;IACnD,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,2BAA2B;IAC3B,WAAW,CAAC,EAAE,WAAW,CAAC;IAE1B,0CAA0C;IAC1C,QAAQ,CAAC,EAAE,cAAc,CAAC;IAE1B,8CAA8C;IAC9C,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAEpC,oCAAoC;IACpC,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB,6CAA6C;IAC7C,oBAAoB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAE/C,6BAA6B;IAC7B,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAItC;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAE7E;;;OAGG;IACH,kBAAkB,CAAC,EAAE,CAAC,OAAO,EAAE;QAAE,IAAI,EAAE,WAAW,CAAA;KAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAEvE;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAEnC;;;OAGG;IACH,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAE5D;;;OAGG;IACH,mBAAmB,CAAC,EAAE,CAAC,OAAO,EAAE;QAAE,MAAM,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAErE;;;OAGG;IACH,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;CAC3D;AAED;;GAEG;AACH,MAAM,WAAW,iBAAkB,SAAQ,SAAS;IAGlD,+DAA+D;IAC/D,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAAC;IAEjC,sBAAsB;IACtB,QAAQ,CAAC,SAAS,EAAE,eAAe,CAAC;IAEpC,oBAAoB;IACpB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAExB,4BAA4B;IAC5B,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IAEvC,2BAA2B;IAC3B,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAElC,uBAAuB;IACvB,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC;IAElC,6BAA6B;IAC7B,QAAQ,CAAC,oBAAoB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAIvD;;OAEG;IACH,kBAAkB,CAAC,OAAO,EAAE;QAAE,IAAI,EAAE,WAAW,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAElE;;OAEG;IACH,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC/B"}