sunpeak 0.19.2 → 0.19.4

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 (65) hide show
  1. package/dist/chatgpt/index.cjs +1 -1
  2. package/dist/chatgpt/index.js +1 -1
  3. package/dist/claude/index.cjs +1 -1
  4. package/dist/claude/index.js +1 -1
  5. package/dist/host/chatgpt/index.cjs +1 -1
  6. package/dist/host/chatgpt/index.js +1 -1
  7. package/dist/index.cjs +134 -124
  8. package/dist/index.cjs.map +1 -1
  9. package/dist/index.d.ts +3 -1
  10. package/dist/index.js +71 -62
  11. package/dist/index.js.map +1 -1
  12. package/dist/inspector/index.cjs +1 -1
  13. package/dist/inspector/index.js +1 -1
  14. package/dist/{inspector-Cdo5BK2D.js → inspector-Bp9jrHIu.js} +218 -80
  15. package/dist/inspector-Bp9jrHIu.js.map +1 -0
  16. package/dist/{inspector-8nPV2A-z.cjs → inspector-Cvq3yjNL.cjs} +219 -81
  17. package/dist/inspector-Cvq3yjNL.cjs.map +1 -0
  18. package/dist/mcp/index.cjs +235 -138
  19. package/dist/mcp/index.cjs.map +1 -1
  20. package/dist/mcp/index.d.ts +1 -1
  21. package/dist/mcp/index.js +228 -132
  22. package/dist/mcp/index.js.map +1 -1
  23. package/dist/mcp/production-server.d.ts +31 -0
  24. package/dist/{protocol-C7kTcBr_.cjs → protocol-C8pFDmcy.cjs} +8194 -8187
  25. package/dist/protocol-C8pFDmcy.cjs.map +1 -0
  26. package/dist/{protocol-BfAACnv0.js → protocol-CRqiPTLT.js} +8186 -8185
  27. package/dist/protocol-CRqiPTLT.js.map +1 -0
  28. package/dist/{use-app-CfP9VypY.js → use-app-Ck5kR1Sf.js} +193 -93
  29. package/dist/use-app-Ck5kR1Sf.js.map +1 -0
  30. package/dist/{use-app-CzcYw1Kz.cjs → use-app-DHYiev3D.cjs} +253 -147
  31. package/dist/use-app-DHYiev3D.cjs.map +1 -0
  32. package/package.json +2 -2
  33. package/template/dist/albums/albums.html +15 -15
  34. package/template/dist/albums/albums.json +1 -1
  35. package/template/dist/carousel/carousel.html +19 -19
  36. package/template/dist/carousel/carousel.json +1 -1
  37. package/template/dist/map/map.html +14 -14
  38. package/template/dist/map/map.json +1 -1
  39. package/template/dist/review/review.html +11 -11
  40. package/template/dist/review/review.json +1 -1
  41. package/template/node_modules/.vite/deps/_metadata.json +3 -3
  42. package/template/node_modules/.vite-mcp/deps/@modelcontextprotocol_ext-apps.js +192 -91
  43. package/template/node_modules/.vite-mcp/deps/@modelcontextprotocol_ext-apps.js.map +1 -1
  44. package/template/node_modules/.vite-mcp/deps/@modelcontextprotocol_ext-apps_app-bridge.js +231 -92
  45. package/template/node_modules/.vite-mcp/deps/@modelcontextprotocol_ext-apps_app-bridge.js.map +1 -1
  46. package/template/node_modules/.vite-mcp/deps/@modelcontextprotocol_ext-apps_react.js +208 -105
  47. package/template/node_modules/.vite-mcp/deps/@modelcontextprotocol_ext-apps_react.js.map +1 -1
  48. package/template/node_modules/.vite-mcp/deps/_metadata.json +24 -24
  49. package/template/node_modules/.vite-mcp/deps/{protocol-B_qKkui_.js → protocol-BqGB4zBx.js} +45 -45
  50. package/template/node_modules/.vite-mcp/deps/protocol-BqGB4zBx.js.map +1 -0
  51. package/template/tests/e2e/visual.spec.ts-snapshots/albums-dark-chatgpt-darwin.png +0 -0
  52. package/template/tests/e2e/visual.spec.ts-snapshots/albums-dark-claude-darwin.png +0 -0
  53. package/template/tests/e2e/visual.spec.ts-snapshots/albums-fullscreen-chatgpt-darwin.png +0 -0
  54. package/template/tests/e2e/visual.spec.ts-snapshots/albums-fullscreen-claude-darwin.png +0 -0
  55. package/template/tests/e2e/visual.spec.ts-snapshots/albums-light-chatgpt-darwin.png +0 -0
  56. package/template/tests/e2e/visual.spec.ts-snapshots/albums-light-claude-darwin.png +0 -0
  57. package/template/tests/e2e/visual.spec.ts-snapshots/albums-page-light-chatgpt-darwin.png +0 -0
  58. package/template/tests/e2e/visual.spec.ts-snapshots/albums-page-light-claude-darwin.png +0 -0
  59. package/dist/inspector-8nPV2A-z.cjs.map +0 -1
  60. package/dist/inspector-Cdo5BK2D.js.map +0 -1
  61. package/dist/protocol-BfAACnv0.js.map +0 -1
  62. package/dist/protocol-C7kTcBr_.cjs.map +0 -1
  63. package/dist/use-app-CfP9VypY.js.map +0 -1
  64. package/dist/use-app-CzcYw1Kz.cjs.map +0 -1
  65. package/template/node_modules/.vite-mcp/deps/protocol-B_qKkui_.js.map +0 -1
@@ -1,6 +1,6 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
2
  const require_chunk = require("../chunk-9hOWP6kD.cjs");
3
- const require_inspector = require("../inspector-8nPV2A-z.cjs");
3
+ const require_inspector = require("../inspector-Cvq3yjNL.cjs");
4
4
  const require_inspector_url = require("../inspector-url-C3LTKgXt.cjs");
5
5
  const require_discovery = require("../discovery-Clu4uHp1.cjs");
6
6
  //#region src/chatgpt/index.ts
@@ -1,5 +1,5 @@
1
1
  import { r as __exportAll } from "../chunk-D6g4UhsZ.js";
2
- import { _ as McpAppHost, d as ThemeProvider, f as useThemeContext, g as extractResourceCSP, h as IframeResource, n as resolveServerToolResult, t as Inspector, v as SCREEN_WIDTHS } from "../inspector-Cdo5BK2D.js";
2
+ import { _ as McpAppHost, d as ThemeProvider, f as useThemeContext, g as extractResourceCSP, h as IframeResource, n as resolveServerToolResult, t as Inspector, v as SCREEN_WIDTHS } from "../inspector-Bp9jrHIu.js";
3
3
  import { t as createInspectorUrl } from "../inspector-url-CyQcuBI9.js";
4
4
  import { c as toPascalCase, i as findResourceKey, n as extractSimulationKey, r as findResourceDirs, s as getComponentName, t as extractResourceKey } from "../discovery-Cgoegt62.js";
5
5
  //#region src/chatgpt/index.ts
@@ -1,4 +1,4 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
2
  require("../chunk-9hOWP6kD.cjs");
3
- const require_inspector = require("../inspector-8nPV2A-z.cjs");
3
+ const require_inspector = require("../inspector-Cvq3yjNL.cjs");
4
4
  exports.Inspector = require_inspector.Inspector;
@@ -1,2 +1,2 @@
1
- import { t as Inspector } from "../inspector-Cdo5BK2D.js";
1
+ import { t as Inspector } from "../inspector-Bp9jrHIu.js";
2
2
  export { Inspector };
@@ -1,6 +1,6 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
2
  require("../../chunk-9hOWP6kD.cjs");
3
- const require_use_app = require("../../use-app-CzcYw1Kz.cjs");
3
+ const require_use_app = require("../../use-app-DHYiev3D.cjs");
4
4
  let react = require("react");
5
5
  //#region src/host/chatgpt/openai-types.ts
6
6
  /**
@@ -1,4 +1,4 @@
1
- import { t as useApp } from "../../use-app-CfP9VypY.js";
1
+ import { t as useApp } from "../../use-app-Ck5kR1Sf.js";
2
2
  import { useCallback } from "react";
3
3
  //#region src/host/chatgpt/openai-types.ts
4
4
  /**
package/dist/index.cjs CHANGED
@@ -1,20 +1,20 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
2
  const require_chunk = require("./chunk-9hOWP6kD.cjs");
3
- const require_protocol = require("./protocol-C7kTcBr_.cjs");
4
- const require_use_app = require("./use-app-CzcYw1Kz.cjs");
5
- const require_inspector = require("./inspector-8nPV2A-z.cjs");
3
+ const require_protocol = require("./protocol-C8pFDmcy.cjs");
4
+ const require_use_app = require("./use-app-DHYiev3D.cjs");
5
+ const require_inspector = require("./inspector-Cvq3yjNL.cjs");
6
6
  const require_host_index = require("./host/index.cjs");
7
7
  const require_inspector_index = require("./inspector/index.cjs");
8
8
  const require_chatgpt_index = require("./chatgpt/index.cjs");
9
9
  let react = require("react");
10
10
  react = require_chunk.__toESM(react);
11
11
  let react_jsx_runtime = require("react/jsx-runtime");
12
- //#region ../../node_modules/.pnpm/@modelcontextprotocol+ext-apps@1.3.2_@modelcontextprotocol+sdk@1.29.0_zod@4.3.6__react-_38e5f6c50a4ca9cf3f1dffc73a60c951/node_modules/@modelcontextprotocol/ext-apps/dist/src/react/index.js
13
- var h = require_protocol.union([require_protocol.literal("light"), require_protocol.literal("dark")]).describe("Color theme preference for the host environment."), j = require_protocol.union([
12
+ //#region ../../node_modules/.pnpm/@modelcontextprotocol+ext-apps@1.5.0_@modelcontextprotocol+sdk@1.29.0_zod@4.3.6__react-_f4871531d9cf52c692eb6edc1ee416ef/node_modules/@modelcontextprotocol/ext-apps/dist/src/react/index.js
13
+ var m = require_protocol.union([require_protocol.literal("light"), require_protocol.literal("dark")]).describe("Color theme preference for the host environment."), N$1 = require_protocol.union([
14
14
  require_protocol.literal("inline"),
15
15
  require_protocol.literal("fullscreen"),
16
16
  require_protocol.literal("pip")
17
- ]).describe("Display mode for UI presentation."), OJ = require_protocol.union([
17
+ ]).describe("Display mode for UI presentation."), DJ = require_protocol.union([
18
18
  require_protocol.literal("--color-background-primary"),
19
19
  require_protocol.literal("--color-background-secondary"),
20
20
  require_protocol.literal("--color-background-tertiary"),
@@ -91,7 +91,7 @@ var h = require_protocol.union([require_protocol.literal("light"), require_proto
91
91
  require_protocol.literal("--shadow-sm"),
92
92
  require_protocol.literal("--shadow-md"),
93
93
  require_protocol.literal("--shadow-lg")
94
- ]).describe("CSS variable keys available to MCP apps for theming."), qJ = require_protocol.record(OJ.describe(`Style variables for theming MCP apps.
94
+ ]).describe("CSS variable keys available to MCP apps for theming."), IJ = require_protocol.record(DJ.describe(`Style variables for theming MCP apps.
95
95
 
96
96
  Individual style keys are optional - hosts may provide any subset of these values.
97
97
  Values are strings containing CSS values (colors, sizes, font stacks, etc.).
@@ -121,7 +121,7 @@ require_protocol.object({
121
121
  method: require_protocol.literal("ui/notifications/sandbox-proxy-ready"),
122
122
  params: require_protocol.object({})
123
123
  });
124
- var V$1 = require_protocol.object({
124
+ var V = require_protocol.object({
125
125
  connectDomains: require_protocol.array(require_protocol.string()).optional().describe(`Origins for network requests (fetch/XHR/WebSocket).
126
126
 
127
127
  - Maps to CSP \`connect-src\` directive
@@ -129,7 +129,7 @@ var V$1 = require_protocol.object({
129
129
  resourceDomains: require_protocol.array(require_protocol.string()).optional().describe("Origins for static resources (images, scripts, stylesheets, fonts, media).\n\n- Maps to CSP `img-src`, `script-src`, `style-src`, `font-src`, `media-src` directives\n- Wildcard subdomains supported: `https://*.example.com`\n- Empty or omitted → no network resources (secure default)"),
130
130
  frameDomains: require_protocol.array(require_protocol.string()).optional().describe("Origins for nested iframes.\n\n- Maps to CSP `frame-src` directive\n- Empty or omitted → no nested iframes allowed (`frame-src 'none'`)"),
131
131
  baseUriDomains: require_protocol.array(require_protocol.string()).optional().describe("Allowed base URIs for the document.\n\n- Maps to CSP `base-uri` directive\n- Empty or omitted → only same origin allowed (`base-uri 'self'`)")
132
- }), P$1 = require_protocol.object({
132
+ }), _$1 = require_protocol.object({
133
133
  camera: require_protocol.object({}).optional().describe("Request camera access.\n\nMaps to Permission Policy `camera` feature."),
134
134
  microphone: require_protocol.object({}).optional().describe("Request microphone access.\n\nMaps to Permission Policy `microphone` feature."),
135
135
  geolocation: require_protocol.object({}).optional().describe("Request geolocation access.\n\nMaps to Permission Policy `geolocation` feature."),
@@ -154,16 +154,16 @@ require_protocol.object({
154
154
  method: require_protocol.literal("ui/notifications/tool-cancelled"),
155
155
  params: require_protocol.object({ reason: require_protocol.string().optional().describe("Optional reason for the cancellation (e.g., \"user action\", \"timeout\").") })
156
156
  });
157
- var m$1 = require_protocol.object({ fonts: require_protocol.string().optional() }), c$1 = require_protocol.object({
158
- variables: qJ.optional().describe("CSS variables for theming the app."),
159
- css: m$1.optional().describe("CSS blocks that apps can inject.")
157
+ var c$1 = require_protocol.object({ fonts: require_protocol.string().optional() }), r$2 = require_protocol.object({
158
+ variables: IJ.optional().describe("CSS variables for theming the app."),
159
+ css: c$1.optional().describe("CSS blocks that apps can inject.")
160
160
  });
161
161
  require_protocol.object({
162
162
  method: require_protocol.literal("ui/resource-teardown"),
163
163
  params: require_protocol.object({})
164
164
  });
165
165
  require_protocol.record(require_protocol.string(), require_protocol.unknown());
166
- var U$1 = require_protocol.object({
166
+ var w$1 = require_protocol.object({
167
167
  text: require_protocol.object({}).optional().describe("Host supports text content blocks."),
168
168
  image: require_protocol.object({}).optional().describe("Host supports image content blocks."),
169
169
  audio: require_protocol.object({}).optional().describe("Host supports audio content blocks."),
@@ -175,7 +175,7 @@ require_protocol.object({
175
175
  method: require_protocol.literal("ui/notifications/request-teardown"),
176
176
  params: require_protocol.object({}).optional()
177
177
  });
178
- var r$2 = require_protocol.object({
178
+ var l$1 = require_protocol.object({
179
179
  experimental: require_protocol.object({}).optional().describe("Experimental features (structure TBD)."),
180
180
  openLinks: require_protocol.object({}).optional().describe("Host supports opening external URLs."),
181
181
  downloadFile: require_protocol.object({}).optional().describe("Host supports file downloads via ui/download-file."),
@@ -183,23 +183,23 @@ var r$2 = require_protocol.object({
183
183
  serverResources: require_protocol.object({ listChanged: require_protocol.boolean().optional().describe("Host supports resources/list_changed notifications.") }).optional().describe("Host can proxy resource reads to the MCP server."),
184
184
  logging: require_protocol.object({}).optional().describe("Host accepts log messages."),
185
185
  sandbox: require_protocol.object({
186
- permissions: P$1.optional().describe("Permissions granted by the host (camera, microphone, geolocation)."),
187
- csp: V$1.optional().describe("CSP domains approved by the host.")
186
+ permissions: _$1.optional().describe("Permissions granted by the host (camera, microphone, geolocation)."),
187
+ csp: V.optional().describe("CSP domains approved by the host.")
188
188
  }).optional().describe("Sandbox configuration applied by the host."),
189
- updateModelContext: U$1.optional().describe("Host accepts context updates (ui/update-model-context) to be included in the model's context for future turns."),
190
- message: U$1.optional().describe("Host supports receiving content messages (ui/message) from the view.")
191
- }), l$1 = require_protocol.object({
189
+ updateModelContext: w$1.optional().describe("Host accepts context updates (ui/update-model-context) to be included in the model's context for future turns."),
190
+ message: w$1.optional().describe("Host supports receiving content messages (ui/message) from the view.")
191
+ }), i = require_protocol.object({
192
192
  experimental: require_protocol.object({}).optional().describe("Experimental features (structure TBD)."),
193
193
  tools: require_protocol.object({ listChanged: require_protocol.boolean().optional().describe("App supports tools/list_changed notifications.") }).optional().describe("App exposes MCP-style tools that the host can call."),
194
- availableDisplayModes: require_protocol.array(j).optional().describe("Display modes the app supports.")
194
+ availableDisplayModes: require_protocol.array(N$1).optional().describe("Display modes the app supports.")
195
195
  });
196
196
  require_protocol.object({
197
197
  method: require_protocol.literal("ui/notifications/initialized"),
198
198
  params: require_protocol.object({}).optional()
199
199
  });
200
200
  require_protocol.object({
201
- csp: V$1.optional().describe("Content Security Policy configuration for UI resources."),
202
- permissions: P$1.optional().describe("Sandbox permissions requested by the UI resource."),
201
+ csp: V.optional().describe("Content Security Policy configuration for UI resources."),
202
+ permissions: _$1.optional().describe("Sandbox permissions requested by the UI resource."),
203
203
  domain: require_protocol.string().optional().describe(`Dedicated origin for view sandbox.
204
204
 
205
205
  Useful when views need stable, dedicated origins for OAuth callbacks, CORS policies, or API key allowlists.
@@ -219,13 +219,13 @@ Boolean requesting whether a visible border and background is provided by the ho
219
219
  });
220
220
  require_protocol.object({
221
221
  method: require_protocol.literal("ui/request-display-mode"),
222
- params: require_protocol.object({ mode: j.describe("The display mode being requested.") })
222
+ params: require_protocol.object({ mode: N$1.describe("The display mode being requested.") })
223
223
  });
224
- require_protocol.object({ mode: j.describe("The display mode that was actually set. May differ from requested if not supported.") }).passthrough();
225
- var i$1 = require_protocol.union([require_protocol.literal("model"), require_protocol.literal("app")]).describe("Tool visibility scope - who can access the tool.");
224
+ require_protocol.object({ mode: N$1.describe("The display mode that was actually set. May differ from requested if not supported.") }).passthrough();
225
+ var p$1 = require_protocol.union([require_protocol.literal("model"), require_protocol.literal("app")]).describe("Tool visibility scope - who can access the tool.");
226
226
  require_protocol.object({
227
227
  resourceUri: require_protocol.string().optional(),
228
- visibility: require_protocol.array(i$1).optional().describe(`Who can access this tool. Default: ["model", "app"]
228
+ visibility: require_protocol.array(p$1).optional().describe(`Who can access this tool. Default: ["model", "app"]
229
229
  - "model": Tool visible to and callable by the agent
230
230
  - "app": Tool callable by the app from this server only`)
231
231
  });
@@ -246,23 +246,23 @@ require_protocol.object({
246
246
  params: require_protocol.object({
247
247
  html: require_protocol.string().describe("HTML content to load into the inner iframe."),
248
248
  sandbox: require_protocol.string().optional().describe("Optional override for the inner iframe's sandbox attribute."),
249
- csp: V$1.optional().describe("CSP configuration from resource metadata."),
250
- permissions: P$1.optional().describe("Sandbox permissions from resource metadata.")
249
+ csp: V.optional().describe("CSP configuration from resource metadata."),
250
+ permissions: _$1.optional().describe("Sandbox permissions from resource metadata.")
251
251
  })
252
252
  });
253
253
  require_protocol.object({
254
254
  method: require_protocol.literal("ui/notifications/tool-result"),
255
255
  params: require_protocol.CallToolResultSchema.describe("Standard MCP tool execution result.")
256
256
  });
257
- var C$1 = require_protocol.object({
257
+ var v$1 = require_protocol.object({
258
258
  toolInfo: require_protocol.object({
259
259
  id: require_protocol.RequestIdSchema.optional().describe("JSON-RPC id of the tools/call request."),
260
260
  tool: require_protocol.ToolSchema.describe("Tool definition including name, inputSchema, etc.")
261
261
  }).optional().describe("Metadata of the tool call that instantiated this App."),
262
- theme: h.optional().describe("Current color theme preference."),
263
- styles: c$1.optional().describe("Style configuration for theming the app."),
264
- displayMode: j.optional().describe("How the UI is currently displayed."),
265
- availableDisplayModes: require_protocol.array(j).optional().describe("Display modes the host supports."),
262
+ theme: m.optional().describe("Current color theme preference."),
263
+ styles: r$2.optional().describe("Style configuration for theming the app."),
264
+ displayMode: N$1.optional().describe("How the UI is currently displayed."),
265
+ availableDisplayModes: require_protocol.array(N$1).optional().describe("Display modes the host supports."),
266
266
  containerDimensions: require_protocol.union([require_protocol.object({ height: require_protocol.number().describe("Fixed container height in pixels.") }), require_protocol.object({ maxHeight: require_protocol.union([require_protocol.number(), require_protocol._undefined()]).optional().describe("Maximum container height in pixels.") })]).and(require_protocol.union([require_protocol.object({ width: require_protocol.number().describe("Fixed container width in pixels.") }), require_protocol.object({ maxWidth: require_protocol.union([require_protocol.number(), require_protocol._undefined()]).optional().describe("Maximum container width in pixels.") })])).optional().describe(`Container dimensions. Represents the dimensions of the iframe or other
267
267
  container holding the app. Specify either width or maxWidth, and either height or maxHeight.`),
268
268
  locale: require_protocol.string().optional().describe("User's language and region preference in BCP 47 format."),
@@ -286,7 +286,7 @@ container holding the app. Specify either width or maxWidth, and either height o
286
286
  }).passthrough();
287
287
  require_protocol.object({
288
288
  method: require_protocol.literal("ui/notifications/host-context-changed"),
289
- params: C$1.describe("Partial context update containing only changed fields.")
289
+ params: v$1.describe("Partial context update containing only changed fields.")
290
290
  });
291
291
  require_protocol.object({
292
292
  method: require_protocol.literal("ui/update-model-context"),
@@ -299,44 +299,44 @@ require_protocol.object({
299
299
  method: require_protocol.literal("ui/initialize"),
300
300
  params: require_protocol.object({
301
301
  appInfo: require_protocol.ImplementationSchema.describe("App identification (name and version)."),
302
- appCapabilities: l$1.describe("Features and capabilities this app provides."),
302
+ appCapabilities: i.describe("Features and capabilities this app provides."),
303
303
  protocolVersion: require_protocol.string().describe("Protocol version this app supports.")
304
304
  })
305
305
  });
306
306
  require_protocol.object({
307
307
  protocolVersion: require_protocol.string().describe("Negotiated protocol version string (e.g., \"2025-11-21\")."),
308
308
  hostInfo: require_protocol.ImplementationSchema.describe("Host application identification and version."),
309
- hostCapabilities: r$2.describe("Features and capabilities provided by the host."),
310
- hostContext: C$1.describe("Rich context about the host environment.")
309
+ hostCapabilities: l$1.describe("Features and capabilities provided by the host."),
310
+ hostContext: v$1.describe("Rich context about the host environment.")
311
311
  }).passthrough();
312
- function _$1() {
312
+ function O$1() {
313
313
  let K = document.documentElement.getAttribute("data-theme");
314
314
  if (K === "dark" || K === "light") return K;
315
315
  return document.documentElement.classList.contains("dark") ? "dark" : "light";
316
316
  }
317
- function O$1(K) {
317
+ function P$1(K) {
318
318
  let Q = document.documentElement;
319
319
  Q.setAttribute("data-theme", K), Q.style.colorScheme = K;
320
320
  }
321
321
  function q$1(K, Q = document.documentElement) {
322
322
  for (let [X, Y] of Object.entries(K)) if (Y !== void 0) Q.style.setProperty(X, Y);
323
323
  }
324
- function D$1(K) {
324
+ function D(K) {
325
325
  if (document.getElementById("__mcp-host-fonts")) return;
326
326
  let X = document.createElement("style");
327
327
  X.id = "__mcp-host-fonts", X.textContent = K, document.head.appendChild(X);
328
328
  }
329
- function eK(K, Q) {
329
+ function QQ(K, Q) {
330
330
  (0, react.useEffect)(() => {
331
331
  if (!K) return;
332
332
  return K.setupSizeChangedNotifications();
333
333
  }, [K, Q]);
334
334
  }
335
- function XQ() {
336
- let [K, Q] = (0, react.useState)(_$1);
335
+ function $Q() {
336
+ let [K, Q] = (0, react.useState)(O$1);
337
337
  return (0, react.useEffect)(() => {
338
338
  let X = new MutationObserver(() => {
339
- Q(_$1());
339
+ Q(O$1());
340
340
  });
341
341
  return X.observe(document.documentElement, {
342
342
  attributes: !0,
@@ -347,35 +347,37 @@ function XQ() {
347
347
  }), () => X.disconnect();
348
348
  }, []), K;
349
349
  }
350
- function rJ(K, Q) {
350
+ function lJ(K, Q) {
351
351
  let X = (0, react.useRef)(!1);
352
352
  (0, react.useEffect)(() => {
353
353
  if (X.current) return;
354
- if (Q?.theme) O$1(Q.theme);
354
+ if (Q?.theme) P$1(Q.theme);
355
355
  if (Q?.styles?.variables) q$1(Q.styles.variables);
356
356
  if (Q?.theme || Q?.styles?.variables) X.current = !0;
357
357
  }, [Q]), (0, react.useEffect)(() => {
358
358
  if (!K) return;
359
- K.onhostcontextchanged = (Y) => {
360
- if (Y.theme) O$1(Y.theme);
361
- if (Y.styles?.variables) q$1(Y.styles.variables);
359
+ let Y = (Z) => {
360
+ if (Z.theme) P$1(Z.theme);
361
+ if (Z.styles?.variables) q$1(Z.styles.variables);
362
362
  };
363
+ return K.addEventListener("hostcontextchanged", Y), () => K.removeEventListener("hostcontextchanged", Y);
363
364
  }, [K]);
364
365
  }
365
- function lJ(K, Q) {
366
+ function iJ(K, Q) {
366
367
  let X = (0, react.useRef)(!1);
367
368
  (0, react.useEffect)(() => {
368
369
  if (X.current) return;
369
- if (Q?.styles?.css?.fonts) D$1(Q.styles.css.fonts), X.current = !0;
370
+ if (Q?.styles?.css?.fonts) D(Q.styles.css.fonts), X.current = !0;
370
371
  }, [Q]), (0, react.useEffect)(() => {
371
372
  if (!K) return;
372
- K.onhostcontextchanged = (Y) => {
373
- if (Y.styles?.css?.fonts) D$1(Y.styles.css.fonts);
373
+ let Y = (Z) => {
374
+ if (Z.styles?.css?.fonts) D(Z.styles.css.fonts);
374
375
  };
376
+ return K.addEventListener("hostcontextchanged", Y), () => K.removeEventListener("hostcontextchanged", Y);
375
377
  }, [K]);
376
378
  }
377
- function GQ$1(K, Q) {
378
- rJ(K, Q), lJ(K, Q);
379
+ function LQ$1(K, Q) {
380
+ lJ(K, Q), iJ(K, Q);
379
381
  }
380
382
  //#endregion
381
383
  //#region src/hooks/use-host-context.ts
@@ -394,8 +396,8 @@ var registries$1 = /* @__PURE__ */ new WeakMap();
394
396
  * Host-provided variables override defaults since they're applied after.
395
397
  */
396
398
  function applyStyles(variables) {
397
- require_use_app.FQ(require_inspector.DEFAULT_STYLE_VARIABLES);
398
- if (variables) require_use_app.FQ(variables);
399
+ require_use_app.qQ(require_inspector.DEFAULT_STYLE_VARIABLES);
400
+ if (variables) require_use_app.qQ(variables);
399
401
  }
400
402
  function getRegistry$1(app) {
401
403
  let subs = registries$1.get(app);
@@ -403,15 +405,15 @@ function getRegistry$1(app) {
403
405
  subs = /* @__PURE__ */ new Set();
404
406
  registries$1.set(app, subs);
405
407
  const ctx = app.getHostContext();
406
- if (ctx?.theme) require_use_app.AQ(ctx.theme);
408
+ if (ctx?.theme) require_use_app.PQ(ctx.theme);
407
409
  applyStyles(ctx?.styles?.variables);
408
- if (ctx?.styles?.css?.fonts) require_use_app.PQ(ctx.styles.css.fonts);
410
+ if (ctx?.styles?.css?.fonts) require_use_app.TQ(ctx.styles.css.fonts);
409
411
  let debounceTimer = null;
410
412
  app.onhostcontextchanged = () => {
411
413
  const ctx = app.getHostContext();
412
- if (ctx?.theme) require_use_app.AQ(ctx.theme);
414
+ if (ctx?.theme) require_use_app.PQ(ctx.theme);
413
415
  applyStyles(ctx?.styles?.variables);
414
- if (ctx?.styles?.css?.fonts) require_use_app.PQ(ctx.styles.css.fonts);
416
+ if (ctx?.styles?.css?.fonts) require_use_app.TQ(ctx.styles.css.fonts);
415
417
  if (debounceTimer) clearTimeout(debounceTimer);
416
418
  debounceTimer = setTimeout(() => {
417
419
  debounceTimer = null;
@@ -1141,7 +1143,14 @@ function useAppTools(config) {
1141
1143
  (0, react.useEffect)(() => {
1142
1144
  if (!app) return;
1143
1145
  app.onlisttools = () => {
1144
- return Promise.resolve({ tools: config.tools.map((t) => t.name) });
1146
+ return Promise.resolve({ tools: config.tools.map((t) => ({
1147
+ name: t.name,
1148
+ ...t.description ? { description: t.description } : {},
1149
+ inputSchema: {
1150
+ type: "object",
1151
+ ...t.inputSchema
1152
+ }
1153
+ })) });
1145
1154
  };
1146
1155
  app.oncalltool = (params) => {
1147
1156
  return Promise.resolve(config.onCallTool(params));
@@ -3207,64 +3216,65 @@ var prefersReducedMotion = createMediaQueryFn("(prefers-reduced-motion: reduce)"
3207
3216
  var isPrimarilyTouchDevice = createMediaQueryFn("(pointer: coarse)");
3208
3217
  var isHoverAvailable = createMediaQueryFn("(hover: hover)");
3209
3218
  //#endregion
3210
- exports.App = require_use_app.kQ;
3219
+ exports.App = require_use_app.gQ;
3211
3220
  exports.AppProvider = require_use_app.AppProvider;
3212
- exports.DOWNLOAD_FILE_METHOD = require_use_app.u;
3213
- exports.HOST_CONTEXT_CHANGED_METHOD = require_use_app.c;
3214
- exports.INITIALIZED_METHOD = require_use_app.o;
3215
- exports.INITIALIZE_METHOD = require_use_app.a;
3216
- exports.LATEST_PROTOCOL_VERSION = require_use_app.E;
3217
- exports.MESSAGE_METHOD = require_use_app.f;
3218
- exports.McpUiAppCapabilitiesSchema = require_use_app.x;
3219
- exports.McpUiDisplayModeSchema = require_use_app.D;
3220
- exports.McpUiDownloadFileRequestSchema = require_use_app.LQ;
3221
- exports.McpUiDownloadFileResultSchema = require_use_app._;
3222
- exports.McpUiHostCapabilitiesSchema = require_use_app.C;
3223
- exports.McpUiHostContextChangedNotificationSchema = require_use_app.R;
3224
- exports.McpUiHostContextSchema = require_use_app.T;
3225
- exports.McpUiHostCssSchema = require_use_app.b;
3226
- exports.McpUiHostStylesSchema = require_use_app.k;
3227
- exports.McpUiInitializeRequestSchema = require_use_app.IQ;
3228
- exports.McpUiInitializeResultSchema = require_use_app.U;
3229
- exports.McpUiInitializedNotificationSchema = require_use_app.NQ;
3230
- exports.McpUiMessageRequestSchema = require_use_app.BQ;
3231
- exports.McpUiMessageResultSchema = require_use_app.O;
3232
- exports.McpUiOpenLinkRequestSchema = require_use_app.JQ;
3233
- exports.McpUiOpenLinkResultSchema = require_use_app.B;
3234
- exports.McpUiRequestDisplayModeRequestSchema = require_use_app.EQ;
3235
- exports.McpUiRequestDisplayModeResultSchema = require_use_app.P;
3236
- exports.McpUiRequestTeardownNotificationSchema = require_use_app.WQ;
3237
- exports.McpUiResourceCspSchema = require_use_app.G;
3238
- exports.McpUiResourceMetaSchema = require_use_app.jQ;
3239
- exports.McpUiResourcePermissionsSchema = require_use_app.V;
3240
- exports.McpUiResourceTeardownRequestSchema = require_use_app.F;
3241
- exports.McpUiResourceTeardownResultSchema = require_use_app.VQ;
3242
- exports.McpUiSizeChangedNotificationSchema = require_use_app.GQ;
3243
- exports.McpUiSupportedContentBlockModalitiesSchema = require_use_app.L;
3244
- exports.McpUiThemeSchema = require_use_app.v;
3245
- exports.McpUiToolCancelledNotificationSchema = require_use_app.A;
3246
- exports.McpUiToolInputNotificationSchema = require_use_app.I;
3247
- exports.McpUiToolInputPartialNotificationSchema = require_use_app.w;
3248
- exports.McpUiToolMetaSchema = require_use_app.zQ;
3249
- exports.McpUiToolResultNotificationSchema = require_use_app.q;
3250
- exports.McpUiToolVisibilitySchema = require_use_app.g;
3251
- exports.McpUiUpdateModelContextRequestSchema = require_use_app.OQ;
3252
- exports.OPEN_LINK_METHOD = require_use_app.y;
3253
- exports.PostMessageTransport = require_use_app.K;
3254
- exports.REQUEST_DISPLAY_MODE_METHOD = require_use_app.s;
3255
- exports.REQUEST_TEARDOWN_METHOD = require_use_app.p;
3256
- exports.RESOURCE_MIME_TYPE = require_use_app.UX;
3257
- exports.RESOURCE_TEARDOWN_METHOD = require_use_app.n;
3258
- exports.RESOURCE_URI_META_KEY = require_use_app.RX;
3259
- exports.SIZE_CHANGED_METHOD = require_use_app.m;
3221
+ exports.DOWNLOAD_FILE_METHOD = require_use_app.d;
3222
+ exports.HOST_CONTEXT_CHANGED_METHOD = require_use_app.n;
3223
+ exports.INITIALIZED_METHOD = require_use_app.t;
3224
+ exports.INITIALIZE_METHOD = require_use_app.s;
3225
+ exports.LATEST_PROTOCOL_VERSION = require_use_app.B;
3226
+ exports.MESSAGE_METHOD = require_use_app.h;
3227
+ exports.McpUiAppCapabilitiesSchema = require_use_app.y;
3228
+ exports.McpUiDisplayModeSchema = require_use_app.K;
3229
+ exports.McpUiDownloadFileRequestSchema = require_use_app._Q;
3230
+ exports.McpUiDownloadFileResultSchema = require_use_app.I;
3231
+ exports.McpUiHostCapabilitiesSchema = require_use_app.S;
3232
+ exports.McpUiHostContextChangedNotificationSchema = require_use_app.H;
3233
+ exports.McpUiHostContextSchema = require_use_app.U;
3234
+ exports.McpUiHostCssSchema = require_use_app.g;
3235
+ exports.McpUiHostStylesSchema = require_use_app.x;
3236
+ exports.McpUiInitializeRequestSchema = require_use_app.AQ;
3237
+ exports.McpUiInitializeResultSchema = require_use_app.M;
3238
+ exports.McpUiInitializedNotificationSchema = require_use_app.LQ;
3239
+ exports.McpUiMessageRequestSchema = require_use_app.OQ;
3240
+ exports.McpUiMessageResultSchema = require_use_app.w;
3241
+ exports.McpUiOpenLinkRequestSchema = require_use_app.GQ;
3242
+ exports.McpUiOpenLinkResultSchema = require_use_app.O;
3243
+ exports.McpUiRequestDisplayModeRequestSchema = require_use_app.BQ;
3244
+ exports.McpUiRequestDisplayModeResultSchema = require_use_app.T;
3245
+ exports.McpUiRequestTeardownNotificationSchema = require_use_app.jQ;
3246
+ exports.McpUiResourceCspSchema = require_use_app.W;
3247
+ exports.McpUiResourceMetaSchema = require_use_app.zQ;
3248
+ exports.McpUiResourcePermissionsSchema = require_use_app.j;
3249
+ exports.McpUiResourceTeardownRequestSchema = require_use_app.q;
3250
+ exports.McpUiResourceTeardownResultSchema = require_use_app.WQ;
3251
+ exports.McpUiSizeChangedNotificationSchema = require_use_app.NQ;
3252
+ exports.McpUiSupportedContentBlockModalitiesSchema = require_use_app._;
3253
+ exports.McpUiThemeSchema = require_use_app.k;
3254
+ exports.McpUiToolCancelledNotificationSchema = require_use_app.P;
3255
+ exports.McpUiToolInputNotificationSchema = require_use_app.A;
3256
+ exports.McpUiToolInputPartialNotificationSchema = require_use_app.F;
3257
+ exports.McpUiToolMetaSchema = require_use_app.EQ;
3258
+ exports.McpUiToolResultNotificationSchema = require_use_app.R;
3259
+ exports.McpUiToolVisibilitySchema = require_use_app.v;
3260
+ exports.McpUiUpdateModelContextRequestSchema = require_use_app.wQ;
3261
+ exports.OPEN_LINK_METHOD = require_use_app.u;
3262
+ exports.PostMessageTransport = require_use_app.N;
3263
+ exports.ProtocolWithEvents = require_use_app.z;
3264
+ exports.REQUEST_DISPLAY_MODE_METHOD = require_use_app.e;
3265
+ exports.REQUEST_TEARDOWN_METHOD = require_use_app.a;
3266
+ exports.RESOURCE_MIME_TYPE = require_use_app.CX;
3267
+ exports.RESOURCE_TEARDOWN_METHOD = require_use_app.o;
3268
+ exports.RESOURCE_URI_META_KEY = require_use_app.MX;
3269
+ exports.SIZE_CHANGED_METHOD = require_use_app.p;
3260
3270
  exports.SafeArea = SafeArea;
3261
- exports.TOOL_CANCELLED_METHOD = require_use_app.r;
3262
- exports.TOOL_INPUT_METHOD = require_use_app.i;
3263
- exports.TOOL_INPUT_PARTIAL_METHOD = require_use_app.z;
3264
- exports.TOOL_RESULT_METHOD = require_use_app.l;
3265
- exports.applyDocumentTheme = require_use_app.AQ;
3266
- exports.applyHostFonts = require_use_app.PQ;
3267
- exports.applyHostStyleVariables = require_use_app.FQ;
3271
+ exports.TOOL_CANCELLED_METHOD = require_use_app.l;
3272
+ exports.TOOL_INPUT_METHOD = require_use_app.r;
3273
+ exports.TOOL_INPUT_PARTIAL_METHOD = require_use_app.E;
3274
+ exports.TOOL_RESULT_METHOD = require_use_app.c;
3275
+ exports.applyDocumentTheme = require_use_app.PQ;
3276
+ exports.applyHostFonts = require_use_app.TQ;
3277
+ exports.applyHostStyleVariables = require_use_app.qQ;
3268
3278
  Object.defineProperty(exports, "chatgpt", {
3269
3279
  enumerable: true,
3270
3280
  get: function() {
@@ -3273,7 +3283,7 @@ Object.defineProperty(exports, "chatgpt", {
3273
3283
  });
3274
3284
  exports.cn = cn;
3275
3285
  exports.detectHost = require_host_index.detectHost;
3276
- exports.getDocumentTheme = require_use_app.wQ;
3286
+ exports.getDocumentTheme = require_use_app.FQ;
3277
3287
  Object.defineProperty(exports, "inspector", {
3278
3288
  enumerable: true,
3279
3289
  get: function() {
@@ -3288,17 +3298,17 @@ exports.prefersReducedMotion = prefersReducedMotion;
3288
3298
  exports.useApp = require_use_app.useApp;
3289
3299
  exports.useAppState = useAppState;
3290
3300
  exports.useAppTools = useAppTools;
3291
- exports.useAutoResize = eK;
3301
+ exports.useAutoResize = QQ;
3292
3302
  exports.useCallServerTool = useCallServerTool;
3293
3303
  exports.useDeviceCapabilities = useDeviceCapabilities;
3294
3304
  exports.useDisplayMode = useDisplayMode;
3295
- exports.useDocumentTheme = XQ;
3305
+ exports.useDocumentTheme = $Q;
3296
3306
  exports.useDownloadFile = useDownloadFile;
3297
3307
  exports.useHostContext = useHostContext;
3298
- exports.useHostFonts = lJ;
3308
+ exports.useHostFonts = iJ;
3299
3309
  exports.useHostInfo = useHostInfo;
3300
- exports.useHostStyleVariables = rJ;
3301
- exports.useHostStyles = GQ$1;
3310
+ exports.useHostStyleVariables = lJ;
3311
+ exports.useHostStyles = LQ$1;
3302
3312
  exports.useIsMobile = useIsMobile;
3303
3313
  exports.useListServerResources = useListServerResources;
3304
3314
  exports.useLocale = useLocale;