@superblocksteam/gateway 2.0.177 → 2.0.178-next.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 (221) hide show
  1. package/README.md +52 -19
  2. package/dist/agents/hosted-boundary.d.ts +36 -0
  3. package/dist/agents/hosted-boundary.d.ts.map +1 -0
  4. package/dist/agents/hosted-boundary.js +66 -0
  5. package/dist/agents/hosted-boundary.js.map +1 -0
  6. package/dist/agents/resolve-orchestrator-url.d.ts +8 -0
  7. package/dist/agents/resolve-orchestrator-url.d.ts.map +1 -1
  8. package/dist/agents/resolve-orchestrator-url.js +5 -0
  9. package/dist/agents/resolve-orchestrator-url.js.map +1 -1
  10. package/dist/capabilities/integration-metadata.d.ts.map +1 -1
  11. package/dist/capabilities/integration-metadata.js +12 -1
  12. package/dist/capabilities/integration-metadata.js.map +1 -1
  13. package/dist/capabilities/lifecycle.d.ts +1 -6
  14. package/dist/capabilities/lifecycle.d.ts.map +1 -1
  15. package/dist/capabilities/lifecycle.js +339 -21
  16. package/dist/capabilities/lifecycle.js.map +1 -1
  17. package/dist/capabilities/live-state-attaches.d.ts +28 -0
  18. package/dist/capabilities/live-state-attaches.d.ts.map +1 -1
  19. package/dist/capabilities/live-state-attaches.js +33 -0
  20. package/dist/capabilities/live-state-attaches.js.map +1 -1
  21. package/dist/capabilities/query-integration.d.ts.map +1 -1
  22. package/dist/capabilities/query-integration.js +12 -1
  23. package/dist/capabilities/query-integration.js.map +1 -1
  24. package/dist/capabilities/tool-permission-reply.d.ts.map +1 -1
  25. package/dist/capabilities/tool-permission-reply.js.map +1 -1
  26. package/dist/capabilities/types.d.ts +3 -4
  27. package/dist/capabilities/types.d.ts.map +1 -1
  28. package/dist/capabilities/types.js.map +1 -1
  29. package/dist/capture/browser-contract.d.ts +1 -18
  30. package/dist/capture/browser-contract.d.ts.map +1 -1
  31. package/dist/capture/browser-contract.js +1 -13
  32. package/dist/capture/browser-contract.js.map +1 -1
  33. package/dist/capture/browser-instructions.d.ts +3 -3
  34. package/dist/capture/browser-instructions.d.ts.map +1 -1
  35. package/dist/capture/browser-instructions.js +4 -5
  36. package/dist/capture/browser-instructions.js.map +1 -1
  37. package/dist/capture/capture-library-probe.d.ts +0 -1
  38. package/dist/capture/capture-library-probe.d.ts.map +1 -1
  39. package/dist/capture/capture-library-probe.js +1 -1
  40. package/dist/capture/capture-library-probe.js.map +1 -1
  41. package/dist/capture/capture-library.d.ts +2 -1
  42. package/dist/capture/capture-library.d.ts.map +1 -1
  43. package/dist/capture/classify-library-paint.d.ts +2 -1
  44. package/dist/capture/classify-library-paint.d.ts.map +1 -1
  45. package/dist/capture/library-parent-script.d.ts +3 -2
  46. package/dist/capture/library-parent-script.d.ts.map +1 -1
  47. package/dist/capture/mode.d.ts +2 -3
  48. package/dist/capture/mode.d.ts.map +1 -1
  49. package/dist/capture/mode.js +2 -3
  50. package/dist/capture/mode.js.map +1 -1
  51. package/dist/config.d.ts +21 -1
  52. package/dist/config.d.ts.map +1 -1
  53. package/dist/config.js +3 -0
  54. package/dist/config.js.map +1 -1
  55. package/dist/debug.js.map +1 -1
  56. package/dist/deps.d.ts +3 -3
  57. package/dist/health/readiness.d.ts +2 -1
  58. package/dist/health/readiness.d.ts.map +1 -1
  59. package/dist/http/main.d.ts +3 -0
  60. package/dist/http/main.d.ts.map +1 -0
  61. package/dist/http/main.js +11 -0
  62. package/dist/http/main.js.map +1 -0
  63. package/dist/http/serve.d.ts +26 -0
  64. package/dist/http/serve.d.ts.map +1 -0
  65. package/dist/http/serve.js +298 -0
  66. package/dist/http/serve.js.map +1 -0
  67. package/dist/integrations/filters.d.ts.map +1 -1
  68. package/dist/integrations/filters.js +1 -16
  69. package/dist/integrations/filters.js.map +1 -1
  70. package/dist/integrations/map.d.ts +0 -5
  71. package/dist/integrations/map.d.ts.map +1 -1
  72. package/dist/integrations/map.js +1 -1
  73. package/dist/integrations/map.js.map +1 -1
  74. package/dist/internal-ingress.d.ts +47 -0
  75. package/dist/internal-ingress.d.ts.map +1 -0
  76. package/dist/internal-ingress.js +90 -0
  77. package/dist/internal-ingress.js.map +1 -0
  78. package/dist/orchestrator/client.d.ts +11 -5
  79. package/dist/orchestrator/client.d.ts.map +1 -1
  80. package/dist/orchestrator/client.js +14 -3
  81. package/dist/orchestrator/client.js.map +1 -1
  82. package/dist/playwright/ensure-chromium.js.map +1 -1
  83. package/dist/preview/capture-screenshot.d.ts +2 -2
  84. package/dist/preview/capture-screenshot.d.ts.map +1 -1
  85. package/dist/preview/capture-screenshot.js +2 -2
  86. package/dist/preview/capture-screenshot.js.map +1 -1
  87. package/dist/process/fault-barrier.d.ts +4 -3
  88. package/dist/process/fault-barrier.d.ts.map +1 -1
  89. package/dist/sabs/app-state.d.ts +2 -13
  90. package/dist/sabs/app-state.d.ts.map +1 -1
  91. package/dist/sabs/app-state.js +7 -2
  92. package/dist/sabs/app-state.js.map +1 -1
  93. package/dist/sabs/awaited-decision.d.ts.map +1 -1
  94. package/dist/sabs/browser-context.d.ts +4 -1
  95. package/dist/sabs/browser-context.d.ts.map +1 -1
  96. package/dist/sabs/browser-context.js +1 -0
  97. package/dist/sabs/browser-context.js.map +1 -1
  98. package/dist/sabs/editor-client-methods.d.ts.map +1 -1
  99. package/dist/sabs/editor-client-methods.js +1 -1
  100. package/dist/sabs/editor-client-methods.js.map +1 -1
  101. package/dist/sabs/editor-socket.d.ts.map +1 -1
  102. package/dist/sabs/editor-socket.js.map +1 -1
  103. package/dist/sabs/session-peer.d.ts +13 -1
  104. package/dist/sabs/session-peer.d.ts.map +1 -1
  105. package/dist/sabs/session-peer.js.map +1 -1
  106. package/dist/sabs/streamed-reply.d.ts.map +1 -1
  107. package/dist/sabs/streamed-reply.js.map +1 -1
  108. package/dist/sabs/turn-collector.d.ts.map +1 -1
  109. package/dist/sabs/turn-collector.js.map +1 -1
  110. package/dist/sabs/websocket-session-peer.d.ts +17 -1
  111. package/dist/sabs/websocket-session-peer.d.ts.map +1 -1
  112. package/dist/sabs/websocket-session-peer.js +89 -15
  113. package/dist/sabs/websocket-session-peer.js.map +1 -1
  114. package/dist/server/client.d.ts +48 -0
  115. package/dist/server/client.d.ts.map +1 -1
  116. package/dist/server/client.js +91 -173
  117. package/dist/server/client.js.map +1 -1
  118. package/dist/server/identity-reads.d.ts +5 -3
  119. package/dist/server/identity-reads.d.ts.map +1 -1
  120. package/dist/server/identity-reads.js +31 -4
  121. package/dist/server/identity-reads.js.map +1 -1
  122. package/dist/start.d.ts +5 -1
  123. package/dist/start.d.ts.map +1 -1
  124. package/dist/start.js +23 -9
  125. package/dist/start.js.map +1 -1
  126. package/dist/stores/memory.d.ts.map +1 -1
  127. package/dist/stores/types.d.ts +2 -1
  128. package/dist/stores/types.d.ts.map +1 -1
  129. package/dist/telemetry/mcp-client.d.ts +2 -1
  130. package/dist/telemetry/mcp-client.d.ts.map +1 -1
  131. package/dist/telemetry/mcp-client.js.map +1 -1
  132. package/dist/telemetry/mcp-usage.d.ts +22 -0
  133. package/dist/telemetry/mcp-usage.d.ts.map +1 -0
  134. package/dist/telemetry/mcp-usage.js +102 -0
  135. package/dist/telemetry/mcp-usage.js.map +1 -0
  136. package/dist/telemetry/metrics.d.ts +9 -0
  137. package/dist/telemetry/metrics.d.ts.map +1 -1
  138. package/dist/telemetry/metrics.js +21 -0
  139. package/dist/telemetry/metrics.js.map +1 -1
  140. package/dist/telemetry/runtime.d.ts +2 -1
  141. package/dist/telemetry/runtime.d.ts.map +1 -1
  142. package/dist/telemetry/runtime.js +18 -5
  143. package/dist/telemetry/runtime.js.map +1 -1
  144. package/dist/transports/mcp/admin-tools.d.ts +3 -7
  145. package/dist/transports/mcp/admin-tools.d.ts.map +1 -1
  146. package/dist/transports/mcp/admin-tools.js +9 -82
  147. package/dist/transports/mcp/admin-tools.js.map +1 -1
  148. package/dist/transports/mcp/app-status-html.d.ts +2 -2
  149. package/dist/transports/mcp/app-status-html.d.ts.map +1 -1
  150. package/dist/transports/mcp/app-status-html.js +1 -27
  151. package/dist/transports/mcp/app-status-html.js.map +1 -1
  152. package/dist/transports/mcp/client-presentation.d.ts +10 -13
  153. package/dist/transports/mcp/client-presentation.d.ts.map +1 -1
  154. package/dist/transports/mcp/client-presentation.js +2 -14
  155. package/dist/transports/mcp/client-presentation.js.map +1 -1
  156. package/dist/transports/mcp/decision-elicitation.js +23 -1
  157. package/dist/transports/mcp/decision-elicitation.js.map +1 -1
  158. package/dist/transports/mcp/dispatch-probe.js.map +1 -1
  159. package/dist/transports/mcp/editor-document-probe.js.map +1 -1
  160. package/dist/transports/mcp/editor-integration-setup-url.d.ts +0 -1
  161. package/dist/transports/mcp/editor-integration-setup-url.d.ts.map +1 -1
  162. package/dist/transports/mcp/editor-integration-setup-url.js +0 -3
  163. package/dist/transports/mcp/editor-integration-setup-url.js.map +1 -1
  164. package/dist/transports/mcp/format-tool-content.js +1 -1
  165. package/dist/transports/mcp/format-tool-content.js.map +1 -1
  166. package/dist/transports/mcp/instructions/tools/build-app.d.ts +2 -3
  167. package/dist/transports/mcp/instructions/tools/build-app.d.ts.map +1 -1
  168. package/dist/transports/mcp/instructions/tools/build-app.js +5 -11
  169. package/dist/transports/mcp/instructions/tools/build-app.js.map +1 -1
  170. package/dist/transports/mcp/instructions/tools/check-app-progress.d.ts.map +1 -1
  171. package/dist/transports/mcp/instructions/tools/check-app-progress.js +1 -25
  172. package/dist/transports/mcp/instructions/tools/check-app-progress.js.map +1 -1
  173. package/dist/transports/mcp/instructions/tools/check-publish-progress.d.ts +1 -2
  174. package/dist/transports/mcp/instructions/tools/check-publish-progress.d.ts.map +1 -1
  175. package/dist/transports/mcp/instructions/tools/check-publish-progress.js +2 -11
  176. package/dist/transports/mcp/instructions/tools/check-publish-progress.js.map +1 -1
  177. package/dist/transports/mcp/instructions/tools/copy.d.ts +1 -8
  178. package/dist/transports/mcp/instructions/tools/copy.d.ts.map +1 -1
  179. package/dist/transports/mcp/instructions/tools/copy.js +4 -28
  180. package/dist/transports/mcp/instructions/tools/copy.js.map +1 -1
  181. package/dist/transports/mcp/instructions/tools/create-integration.d.ts +1 -2
  182. package/dist/transports/mcp/instructions/tools/create-integration.d.ts.map +1 -1
  183. package/dist/transports/mcp/instructions/tools/create-integration.js +4 -8
  184. package/dist/transports/mcp/instructions/tools/create-integration.js.map +1 -1
  185. package/dist/transports/mcp/instructions/tools/edit-app.js +2 -2
  186. package/dist/transports/mcp/instructions/tools/edit-app.js.map +1 -1
  187. package/dist/transports/mcp/instructions/tools/get-app.d.ts.map +1 -1
  188. package/dist/transports/mcp/instructions/tools/get-app.js +1 -23
  189. package/dist/transports/mcp/instructions/tools/get-app.js.map +1 -1
  190. package/dist/transports/mcp/instructions/tools/index.d.ts.map +1 -1
  191. package/dist/transports/mcp/instructions/tools/index.js +0 -4
  192. package/dist/transports/mcp/instructions/tools/index.js.map +1 -1
  193. package/dist/transports/mcp/instructions/tools/publish-app.d.ts +1 -2
  194. package/dist/transports/mcp/instructions/tools/publish-app.d.ts.map +1 -1
  195. package/dist/transports/mcp/instructions/tools/publish-app.js +1 -10
  196. package/dist/transports/mcp/instructions/tools/publish-app.js.map +1 -1
  197. package/dist/transports/mcp/instructions/tools/start-app.d.ts +1 -2
  198. package/dist/transports/mcp/instructions/tools/start-app.d.ts.map +1 -1
  199. package/dist/transports/mcp/instructions/tools/start-app.js +3 -3
  200. package/dist/transports/mcp/instructions/tools/start-app.js.map +1 -1
  201. package/dist/transports/mcp/mount.d.ts +8 -15
  202. package/dist/transports/mcp/mount.d.ts.map +1 -1
  203. package/dist/transports/mcp/mount.js +233 -206
  204. package/dist/transports/mcp/mount.js.map +1 -1
  205. package/dist/transports/mcp/plan-approval.d.ts.map +1 -1
  206. package/dist/transports/mcp/plan-approval.js.map +1 -1
  207. package/dist/transports/mcp/tool-permissions.d.ts +30 -0
  208. package/dist/transports/mcp/tool-permissions.d.ts.map +1 -0
  209. package/dist/transports/mcp/tool-permissions.js +39 -0
  210. package/dist/transports/mcp/tool-permissions.js.map +1 -0
  211. package/package.json +28 -22
  212. package/skills/superblocks-import/SKILL.md +5 -3
  213. package/dist/capture/cowork-editor-url.d.ts +0 -7
  214. package/dist/capture/cowork-editor-url.d.ts.map +0 -1
  215. package/dist/capture/cowork-editor-url.js +0 -12
  216. package/dist/capture/cowork-editor-url.js.map +0 -1
  217. package/dist/transports/mcp/native-browser-presence.d.ts +0 -46
  218. package/dist/transports/mcp/native-browser-presence.d.ts.map +0 -1
  219. package/dist/transports/mcp/native-browser-presence.js +0 -158
  220. package/dist/transports/mcp/native-browser-presence.js.map +0 -1
  221. package/skills/superblocks-build/SKILL.md +0 -59
@@ -7,6 +7,6 @@
7
7
  * card (hosts cache UI resources; keep this file small and inline). Bump the
8
8
  * resource URI when the HTML changes so Claude Desktop refreshes its cache.
9
9
  */
10
- export declare const APP_STATUS_RESOURCE_URI = "ui://gateway/app-status-v38.html";
11
- export declare const APP_STATUS_HTML = "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n <meta charset=\"utf-8\" />\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\" />\n <title>Superblocks app</title>\n <style>\n .head {\n display: flex;\n min-width: 0;\n align-items: center;\n gap: 8px;\n }\n h1 {\n flex: 1;\n margin: 0;\n font-size: var(--font-text-md-size, 14px);\n font-weight: var(--font-weight-semibold, 600);\n }\n .status {\n padding: 2px 8px;\n border: var(--border-width-regular, 1px) solid var(--sb-app-border);\n border-radius: var(--border-radius-full, 999px);\n background: var(--sb-app-background-subtle);\n color: var(--sb-app-text-secondary);\n font-size: var(--font-text-xs-size, 12px);\n text-transform: lowercase;\n }\n .status[data-tone=\"info\"] {\n border-color: var(--sb-app-info-border);\n background: var(--sb-app-info-background);\n color: var(--sb-app-info-text);\n }\n .status[data-tone=\"success\"] {\n border-color: var(--sb-app-success-border);\n background: var(--sb-app-success-background);\n color: var(--sb-app-success-text);\n }\n .status[data-tone=\"warning\"] {\n border-color: var(--sb-app-warning-border);\n background: var(--sb-app-warning-background);\n color: var(--sb-app-warning-text);\n }\n .status[data-tone=\"danger\"] {\n border-color: var(--sb-app-danger-border);\n background: var(--sb-app-danger-background);\n color: var(--sb-app-danger-text);\n }\n .meta {\n color: var(--sb-app-text-tertiary);\n font-size: var(--font-text-xs-size, 12px);\n }\n .note {\n color: var(--sb-app-warning-text);\n font-size: var(--font-text-xs-size, 12px);\n }\n .shot {\n display: none;\n max-width: 100%;\n width: 100%;\n border: var(--border-width-regular, 1px) solid var(--sb-app-border);\n border-radius: var(--border-radius-md, 8px);\n }\n .shot.shown {\n display: block;\n }\n .actions {\n display: flex;\n flex-wrap: wrap;\n gap: 8px;\n }\n @media (max-width: 360px) {\n .head {\n align-items: flex-start;\n flex-direction: column;\n }\n }\n\n :root {\n color-scheme: light dark;\n --sb-app-background: var(\n --color-background-primary,\n light-dark(#ffffff, #1b1c1f)\n );\n --sb-app-background-subtle: var(\n --color-background-secondary,\n light-dark(#f9fafb, #24272b)\n );\n --sb-app-background-hover: var(\n --color-background-tertiary,\n light-dark(#f3f4f6, #2f3437)\n );\n --sb-app-background-inverse: var(\n --color-background-inverse,\n light-dark(#121517, #f9fafb)\n );\n --sb-app-text: var(\n --color-text-primary,\n light-dark(#121517, #f9fafb)\n );\n --sb-app-text-secondary: var(\n --color-text-secondary,\n light-dark(#5a6272, #c6cad2)\n );\n --sb-app-text-tertiary: var(\n --color-text-tertiary,\n light-dark(#6b7280, #a4aab7)\n );\n --sb-app-text-inverse: var(\n --color-text-inverse,\n light-dark(#ffffff, #121517)\n );\n --sb-app-border: var(\n --color-border-primary,\n light-dark(#e8eaed, #454d5f)\n );\n --sb-app-ring: var(\n --color-ring-primary,\n light-dark(#0077b6, #27bbff)\n );\n --sb-app-info-background: var(\n --color-background-info,\n light-dark(#e6f5ff, #083a50)\n );\n --sb-app-info-text: var(\n --color-text-info,\n light-dark(#00679e, #7dd3fc)\n );\n --sb-app-info-border: var(\n --color-border-info,\n light-dark(#c2e7ff, #075985)\n );\n --sb-app-success-background: var(\n --color-background-success,\n light-dark(#e8f8ef, #0a3926)\n );\n --sb-app-success-text: var(\n --color-text-success,\n light-dark(#087a43, #6ee7b7)\n );\n --sb-app-success-border: var(\n --color-border-success,\n light-dark(#b8e8cf, #087a43)\n );\n --sb-app-warning-background: var(\n --color-background-warning,\n light-dark(#fff7e6, #49350a)\n );\n --sb-app-warning-text: var(\n --color-text-warning,\n light-dark(#946200, #fcd34d)\n );\n --sb-app-warning-border: var(\n --color-border-warning,\n light-dark(#f5d996, #946200)\n );\n --sb-app-danger-background: var(\n --color-background-danger,\n light-dark(#fff1f1, #4a1d1d)\n );\n --sb-app-danger-text: var(\n --color-text-danger,\n light-dark(#c54141, #fca5a5)\n );\n --sb-app-danger-border: var(\n --color-border-danger,\n light-dark(#ffcaca, #c54141)\n );\n }\n * {\n box-sizing: border-box;\n }\n body {\n min-width: 0;\n margin: 0;\n overflow-x: hidden;\n background: transparent;\n color: var(--sb-app-text);\n font-family: var(--font-sans, system-ui, -apple-system, sans-serif);\n font-size: var(--font-text-sm-size, 13px);\n line-height: var(--font-text-sm-line-height, 1.45);\n }\n .card {\n display: flex;\n min-width: 0;\n flex-direction: column;\n gap: 12px;\n padding: 16px;\n border: var(--border-width-regular, 1px) solid var(--sb-app-border);\n border-radius: var(--border-radius-lg, 12px);\n background: var(--sb-app-background);\n box-shadow: var(--shadow-sm, 0 1px 2px rgba(18, 21, 23, 0.08));\n }\n h1,\n .meta,\n .note {\n min-width: 0;\n overflow-wrap: anywhere;\n }\n .note:empty {\n position: absolute;\n }\n button,\n textarea {\n font: inherit;\n }\n button {\n appearance: none;\n min-width: 0;\n padding: 8px 12px;\n border: var(--border-width-regular, 1px) solid var(--sb-app-border);\n border-radius: var(--border-radius-md, 8px);\n background: var(--sb-app-background-subtle);\n color: var(--sb-app-text);\n font-weight: var(--font-weight-medium, 500);\n line-height: var(--font-text-sm-line-height, 1.45);\n cursor: pointer;\n }\n button:hover:not(:disabled) {\n background: var(--sb-app-background-hover);\n }\n .button-primary {\n border-color: var(--sb-app-background-inverse);\n background: var(--sb-app-background-inverse);\n color: var(--sb-app-text-inverse);\n }\n .button-primary:hover:not(:disabled) {\n border-color: var(--sb-app-background-inverse);\n background: var(--sb-app-background-inverse);\n }\n button:focus-visible,\n textarea:focus-visible,\n a:focus-visible {\n outline: 2px solid var(--sb-app-ring);\n outline-offset: 2px;\n }\n button:disabled {\n opacity: 0.48;\n cursor: not-allowed;\n }\n .actions {\n min-width: 0;\n }\n .actions > button {\n overflow-wrap: anywhere;\n }\n @media (max-width: 360px) {\n .actions {\n flex-direction: column;\n flex-wrap: nowrap;\n }\n .actions > button {\n width: 100%;\n }\n }\n\n </style>\n</head>\n<body>\n <div class=\"card\">\n <div class=\"head\">\n <h1>Superblocks app</h1>\n <span id=\"status\" class=\"status\" data-tone=\"info\" aria-live=\"polite\">loading</span>\n </div>\n <div id=\"appId\" class=\"meta\"></div>\n <img id=\"shot\" class=\"shot\" alt=\"Preview of the running app\" />\n <div id=\"note\" class=\"note\" aria-live=\"polite\"></div>\n <div class=\"actions\">\n <button id=\"openEditor\" class=\"button-secondary\" type=\"button\" disabled>Open editor</button>\n <button id=\"openPreview\" class=\"button-secondary\" type=\"button\" disabled>Open preview</button>\n <button id=\"publishApp\" class=\"button-primary\" type=\"button\" disabled>Publish app</button>\n </div>\n </div>\n <script>\n (() => {\n const PROTOCOL_VERSION = \"2026-01-26\";\n // Statuses with no usable build to publish. \"building\" is deliberately\n // absent because a stale badge should not strand the button.\n const UNBUILT_STATUSES = [\n \"cancelled\",\n \"checkpoint_failed\",\n \"detached\",\n \"failed\",\n \"live_edit_terminated\",\n \"needs_decision\",\n \"no_changes\",\n \"timeout\",\n ];\n const BLOCKED_ACTIONS = [\n \"answer_question\",\n \"approve_plan\",\n \"open_editor\",\n \"retry_build\",\n ];\n const STATUS_TONES = {\n building: \"info\",\n cancelled: \"warning\",\n checkpoint_failed: \"danger\",\n deployed: \"success\",\n detached: \"warning\",\n failed: \"danger\",\n live_edit_terminated: \"danger\",\n loading: \"info\",\n needs_decision: \"warning\",\n no_changes: \"warning\",\n publish_failed: \"danger\",\n publishing: \"info\",\n ready: \"success\",\n timeout: \"danger\",\n waiting: \"info\",\n };\n let nextId = 1;\n const pending = new Map();\n let applicationId = \"\";\n let appName = \"\";\n let branch = \"\";\n let commitId = \"\";\n let directoryHash = \"\";\n let pendingAction = \"\";\n let editUrl = \"\";\n let previewUrl = \"\";\n let publishUrl = \"\";\n let canOpenLinks = false;\n let canCallTools = false;\n let publishing = false;\n let teardownRequested = false;\n let lastHeight = 0;\n let buildWatchStartedAtMs;\n let refreshInFlightGeneration = -1;\n let refreshTimer = 0;\n let refreshGeneration = 0;\n const BUILD_WATCH_MS = 20 * 60_000;\n const POLL_INTERVAL_MS = 2000;\n\n function post(message) {\n window.parent.postMessage(message, \"*\");\n }\n\n function notify(method, params) {\n post({ jsonrpc: \"2.0\", method, params });\n }\n\n function request(method, params) {\n const id = nextId++;\n return new Promise((resolve, reject) => {\n pending.set(id, { resolve, reject });\n post({ jsonrpc: \"2.0\", id, method, params });\n });\n }\n\n function element(id) {\n return document.getElementById(id);\n }\n\n function show(id, on) {\n const node = element(id);\n if (node && node.classList) {\n node.classList.toggle(\"shown\", on);\n }\n }\n\n function renderStatus(status) {\n const badge = element(\"status\");\n badge.textContent = status;\n badge.setAttribute(\n \"data-tone\",\n Object.hasOwn(STATUS_TONES, status) ? STATUS_TONES[status] : \"neutral\",\n );\n }\n\n // Hosts size the card from this notification alone; without it the card\n // is laid out at zero height and never appears.\n function reportSize() {\n if (teardownRequested) {\n return;\n }\n const height = Math.ceil(document.documentElement.scrollHeight || 0);\n if (height <= 0 || height === lastHeight) {\n return;\n }\n lastHeight = height;\n notify(\"ui/notifications/size-changed\", {\n height,\n width: Math.ceil(window.innerWidth || 0),\n });\n }\n\n function note(text) {\n element(\"note\").textContent = text;\n show(\"note\", Boolean(text));\n reportSize();\n }\n\n function isPlainHttp(url) {\n return url.slice(0, 5).toLowerCase() === \"http:\";\n }\n\n /** A UUID says nothing; the name the user asked Superblocks for does. */\n function renderIdentity() {\n element(\"appId\").textContent = appName || applicationId;\n }\n\n /**\n * Draws the screenshot the tool captured.\n *\n * Hosts that render an MCP App render it *instead of* the tool's content\n * blocks, so the image block get_app returns never reaches the user on\n * its own \u2014 the card has to take it out of the result and show it.\n */\n function showScreenshot(dataBase64, mimeType) {\n if (typeof dataBase64 !== \"string\" || !dataBase64) {\n return;\n }\n element(\"shot\").src =\n \"data:\" + (mimeType || \"image/jpeg\") + \";base64,\" + dataBase64;\n show(\"shot\", true);\n reportSize();\n }\n\n /** Applies every part of an MCP content array the card understands. */\n function applyContent(content) {\n for (const part of content || []) {\n if (!part) {\n continue;\n }\n if (part.type === \"text\" && typeof part.text === \"string\") {\n applyPayload(part.text);\n }\n if (part.type === \"image\") {\n showScreenshot(part.data, part.mimeType);\n }\n }\n }\n\n /**\n * True when publishing would deploy the empty starter template.\n * pendingAction is the server's own \"nothing to preview\" signal;\n * wait_for_build is the building exception. Status is only a fallback\n * when the payload omitted pendingAction. loading/waiting with no\n * preview fail closed so Publish is not clickable before get_app\n * returns.\n */\n function nothingToPublish() {\n const badge = element(\"status\").textContent;\n if (UNBUILT_STATUSES.indexOf(badge) !== -1) {\n return true;\n }\n if (previewUrl || publishUrl) {\n return false;\n }\n if (pendingAction === \"wait_for_build\") {\n return false;\n }\n if (BLOCKED_ACTIONS.indexOf(pendingAction) !== -1) {\n return true;\n }\n if (!badge || badge === \"loading\" || badge === \"waiting\") {\n return true;\n }\n return false;\n }\n\n /**\n * Keep URLs in memory for openLink \u2014 never print them (preview JWTs are\n * huge and ugly in the card).\n */\n function renderActions() {\n const status = element(\"status\").textContent;\n const previewReady = status === \"ready\";\n const rollingOut = status === \"publishing\";\n const published = Boolean(publishUrl) && !rollingOut;\n element(\"openEditor\").disabled = !editUrl || !canOpenLinks;\n element(\"openPreview\").disabled =\n !previewReady || !previewUrl || !canOpenLinks;\n // Once the app is live, publishing again is not what anyone wants from\n // this button \u2014 going to the live app is.\n element(\"publishApp\").textContent = rollingOut\n ? \"Publishing...\"\n : published\n ? \"Open published app\"\n : \"Publish app\";\n element(\"publishApp\").disabled = rollingOut\n ? true\n : published\n ? !canOpenLinks\n : !applicationId ||\n !canCallTools ||\n publishing ||\n nothingToPublish();\n // Only warn about what is actually broken. Hosts that do open links\n // handle local http fine; if one refuses, refused() says so then.\n if (!canOpenLinks && (editUrl || previewUrl) && !publishUrl) {\n note(\"This host cannot open links for me \u2014 ask the model for an https preview URL.\");\n }\n reportSize();\n }\n\n /** Only ever ask the host to open a real web address. */\n function webUrl(candidate) {\n try {\n const parsed = new URL(candidate);\n return parsed.protocol === \"http:\" || parsed.protocol === \"https:\"\n ? candidate\n : \"\";\n } catch {\n return \"\";\n }\n }\n\n /**\n * Merges whatever the host sent. Hosts replay tool input as well as tool\n * results, and the input carries no status or URLs \u2014 overwriting from a\n * partial payload is what showed the card as \"unknown\".\n *\n * Hosts also disagree on the shape: some pass the capability JSON, some\n * pass the MCP content/text envelope (Claude Desktop on initialize), and\n * some nest that under structuredContent.\n */\n function applyPayload(raw) {\n let data = raw;\n if (typeof raw === \"string\") {\n try {\n data = JSON.parse(raw);\n } catch {\n return;\n }\n }\n if (!data || typeof data !== \"object\") {\n return;\n }\n // MCP tool-result / initialize toolResult envelope.\n if (Array.isArray(data.content)) {\n applyContent(data.content);\n if (data.structuredContent) {\n applyPayload(data.structuredContent);\n }\n return;\n }\n if (data.result && typeof data.result === \"object\") {\n applyPayload(data.result);\n return;\n }\n const value = data.kind === \"ok\" ? data.value : data;\n if (!value || typeof value !== \"object\") {\n return;\n }\n if (\n value.browserNavigation &&\n typeof value.browserNavigation === \"object\" &&\n value.browserNavigation.action === \"open_editor\"\n ) {\n if (!teardownRequested) {\n teardownRequested = true;\n refreshGeneration += 1;\n clearRefreshTimer();\n document.body.hidden = true;\n notify(\"ui/notifications/size-changed\", { height: 0, width: 0 });\n notify(\"ui/notifications/request-teardown\", {});\n }\n return;\n }\n if (teardownRequested) {\n return;\n }\n if (typeof value.status === \"string\") {\n if (value.status !== \"building\") {\n buildWatchStartedAtMs = undefined;\n }\n renderStatus(value.status);\n }\n if (typeof value.applicationId === \"string\") {\n applicationId = value.applicationId;\n renderIdentity();\n }\n if (typeof value.name === \"string\" && value.name) {\n appName = value.name;\n renderIdentity();\n }\n if (typeof value.branch === \"string\") {\n branch = value.branch;\n }\n if (typeof value.directoryHash === \"string\") {\n directoryHash = value.directoryHash;\n }\n if (\n typeof value.commitId === \"string\" ||\n typeof value.previewUrl === \"string\" ||\n (typeof value.applicationId === \"string\" &&\n typeof value.status === \"string\")\n ) {\n commitId =\n typeof value.commitId === \"string\" ? value.commitId : \"\";\n }\n if (typeof value.pendingAction === \"string\") {\n pendingAction = value.pendingAction;\n } else if (typeof value.status === \"string\") {\n pendingAction = \"\";\n }\n if (typeof value.screenshotBase64 === \"string\") {\n showScreenshot(value.screenshotBase64, \"image/jpeg\");\n }\n if (typeof value.editUrl === \"string\") {\n editUrl = webUrl(value.editUrl);\n }\n if (typeof value.previewUrl === \"string\") {\n previewUrl = webUrl(value.previewUrl);\n } else if (typeof value.status === \"string\" && !commitId) {\n previewUrl = \"\";\n }\n if (typeof value.publishUrl === \"string\") {\n publishUrl = webUrl(value.publishUrl);\n }\n // Hosts that deliver URLs without a status left the badge on the HTML\n // default (\"loading\") even after the app was built.\n const badge = element(\"status\").textContent;\n if (\n !value.status &&\n editUrl &&\n (badge === \"\" || badge === \"loading\" || badge === \"waiting\")\n ) {\n renderStatus(previewUrl ? \"ready\" : \"building\");\n }\n renderActions();\n if (\n canCallTools &&\n commitId &&\n element(\"status\").textContent === \"publishing\"\n ) {\n scheduleRefresh(retryDelay());\n }\n }\n\n /**\n * Ask the app-only status tool when the host gave us no result, or while\n * status is still building.\n */\n function clearRefreshTimer() {\n if (refreshTimer) {\n clearTimeout(refreshTimer);\n refreshTimer = 0;\n }\n }\n\n function retryDelay() {\n return POLL_INTERVAL_MS;\n }\n\n function scheduleRefresh(delayMs) {\n clearRefreshTimer();\n if (\n element(\"status\").textContent !== \"publishing\" &&\n buildWatchStartedAtMs !== undefined &&\n Date.now() - buildWatchStartedAtMs >= BUILD_WATCH_MS\n ) {\n note(\"Stopped checking whether the app is still building.\");\n return;\n }\n refreshTimer = setTimeout(() => {\n refreshTimer = 0;\n refreshFromServer();\n }, delayMs);\n }\n\n function refreshFromServer() {\n clearRefreshTimer();\n if (\n teardownRequested ||\n !canCallTools ||\n refreshInFlightGeneration === refreshGeneration ||\n publishing\n ) {\n return;\n }\n if (typeof document.hidden === \"boolean\" && document.hidden) {\n scheduleRefresh(retryDelay());\n return;\n }\n const badge = element(\"status\").textContent;\n const publishStatus = badge === \"publishing\";\n if (editUrl && badge !== \"building\" && !publishStatus) {\n buildWatchStartedAtMs = undefined;\n return;\n }\n if (!publishStatus) {\n if (badge === \"building\") {\n if (buildWatchStartedAtMs === undefined) {\n buildWatchStartedAtMs = Date.now();\n }\n } else {\n buildWatchStartedAtMs = undefined;\n }\n if (\n buildWatchStartedAtMs !== undefined &&\n Date.now() - buildWatchStartedAtMs >= BUILD_WATCH_MS\n ) {\n note(\"Stopped checking whether the app is still building.\");\n return;\n }\n }\n const generation = refreshGeneration;\n refreshInFlightGeneration = generation;\n const previewStatus = !publishStatus && Boolean(commitId && directoryHash);\n request(\"tools/call\", {\n name: publishStatus\n ? \"check_publish_progress\"\n : previewStatus\n ? \"get_preview_status\"\n : \"get_app_status\",\n arguments: {\n ...(applicationId ? { applicationId } : {}),\n ...(!publishStatus && branch ? { branch } : {}),\n ...(publishStatus && commitId ? { commitId } : {}),\n ...(previewStatus ? { commitId, directoryHash, wait: false } : {}),\n },\n })\n .then((result) => {\n if (refreshInFlightGeneration === generation) {\n refreshInFlightGeneration = -1;\n }\n if (generation !== refreshGeneration) {\n if (\n !publishing &&\n element(\"status\").textContent === \"building\" &&\n refreshInFlightGeneration !== refreshGeneration\n ) {\n scheduleRefresh(retryDelay());\n }\n return;\n }\n const publishError = publishStatus\n ? terminalPublishErrorOf(result)\n : \"\";\n if (publishError) {\n refreshGeneration += 1;\n clearRefreshTimer();\n publishUrl = \"\";\n renderStatus(\"publish_failed\");\n note(publishError);\n renderActions();\n return;\n }\n if (!result || result.isError) {\n scheduleRefresh(retryDelay());\n return;\n }\n applyPayload(result);\n if (result.structuredContent) {\n applyPayload(result.structuredContent);\n }\n const status = element(\"status\").textContent;\n if (status === \"deployed\") {\n note(\n publishUrl\n ? \"Published - open the live app with Open published app.\"\n : \"Published - the app is live.\",\n );\n return;\n }\n if (status === \"publishing\") {\n scheduleRefresh(retryDelay());\n return;\n }\n if (status !== \"building\") {\n return;\n }\n scheduleRefresh(retryDelay());\n })\n .catch(() => {\n if (refreshInFlightGeneration === generation) {\n refreshInFlightGeneration = -1;\n }\n if (generation !== refreshGeneration) {\n return;\n }\n scheduleRefresh(retryDelay());\n });\n }\n\n function applyHostContext(context) {\n if (!context || typeof context !== \"object\") {\n return;\n }\n const root = document.documentElement;\n if (context.theme === \"light\" || context.theme === \"dark\") {\n root.setAttribute(\"data-theme\", context.theme);\n root.style.colorScheme = context.theme;\n }\n const variables = context.styles && context.styles.variables;\n const style = root.style;\n if (variables && style && typeof style.setProperty === \"function\") {\n for (const name of Object.keys(variables)) {\n const value = variables[name];\n if (typeof value === \"string\") {\n style.setProperty(name, value);\n }\n }\n }\n const fonts = context.styles && context.styles.css?.fonts;\n if (typeof fonts === \"string\") {\n let fontStyle = document.getElementById(\"__mcp-host-fonts\");\n if (!fontStyle) {\n fontStyle = document.createElement(\"style\");\n fontStyle.id = \"__mcp-host-fonts\";\n document.head.appendChild(fontStyle);\n }\n fontStyle.textContent = fonts;\n }\n reportSize();\n }\n\n function capabilityFailureOf(result) {\n if (!result || !Array.isArray(result.content)) {\n return null;\n }\n for (const block of result.content) {\n if (!block || block.type !== \"text\" || !block.text) {\n continue;\n }\n try {\n const parsed = JSON.parse(block.text);\n if (parsed && parsed.kind === \"error\") {\n return {\n code: parsed.code || \"\",\n message: parsed.message || parsed.code || \"Tool call failed.\",\n };\n }\n } catch {\n continue;\n }\n }\n return null;\n }\n\n function capabilityErrorOf(result) {\n return capabilityFailureOf(result)?.message || \"\";\n }\n\n function terminalPublishErrorOf(result) {\n const failure = capabilityFailureOf(result);\n if (\n !failure ||\n ![\n \"publish_failed\",\n \"publish_needs_acknowledgement\",\n \"publish_timeout\",\n ].includes(failure.code)\n ) {\n return \"\";\n }\n return failure.message;\n }\n\n /** First text block of a failed tool result, for the note line. */\n function errorTextOf(result, fallback) {\n const capabilityError = capabilityErrorOf(result);\n if (capabilityError) {\n return capabilityError;\n }\n const first =\n result && Array.isArray(result.content) ? result.content[0] : null;\n return first && first.text ? String(first.text).slice(0, 280) : fallback;\n }\n\n function refused(url) {\n note(\n isPlainHttp(url)\n ? \"This host only opens https links, and this app is served over http \u2014 ask for an https preview URL.\"\n : \"The host could not open the link \u2014 try again or ask the model for another URL.\",\n );\n }\n\n function openLink(url) {\n if (!url || !canOpenLinks) {\n return;\n }\n request(\"ui/open-link\", { url })\n .then((result) => {\n if (result && result.isError) {\n refused(url);\n return;\n }\n note(\"\");\n })\n .catch(() => refused(url));\n }\n\n /**\n * Asks the host to proxy publish_app back to this MCP server. A named\n * commit is published as-is. Otherwise the card supplies a fixed\n * commitMessage: the button is a click, so there is no model turn here\n * to summarize what changed.\n */\n function publish() {\n if (!applicationId || !canCallTools || publishing) {\n return;\n }\n if (nothingToPublish()) {\n note(\"Nothing to publish yet: this turn did not build the app.\");\n return;\n }\n publishing = true;\n refreshGeneration += 1;\n clearRefreshTimer();\n renderActions();\n note(\"Publishing\u2026\");\n const args = {\n applicationId,\n idempotencyKey:\n \"mcp-app-publish:\" + applicationId + \":\" + Date.now(),\n };\n if (commitId) {\n args.commitId = commitId;\n } else {\n args.commitMessage = \"Publish application\";\n }\n if (branch) {\n args.branch = branch;\n }\n request(\"tools/call\", { name: \"publish_app\", arguments: args })\n .then((result) => {\n publishing = false;\n const publishError = capabilityErrorOf(result);\n if (!result || result.isError || publishError) {\n note(errorTextOf(result, \"Publish failed.\"));\n renderActions();\n refreshFromServer();\n return;\n }\n applyContent(result.content || []);\n if (result.structuredContent) {\n applyPayload(result.structuredContent);\n }\n const status = element(\"status\").textContent;\n note(\n status === \"publishing\"\n ? \"Publish accepted; the deploy is still rolling out.\"\n : publishUrl\n ? \"Published - open the live app with Open published app.\"\n : \"Published - the app is live.\",\n );\n renderActions();\n })\n .catch((error) => {\n publishing = false;\n note(\n (error && error.message) ||\n \"The host could not call publish_app.\",\n );\n renderActions();\n refreshFromServer();\n });\n }\n\n function handleHostMessage(event) {\n // App documents are opaque-origin, so the host window is the only\n // identity available to authenticate a message against.\n if (event.source !== window.parent) {\n return;\n }\n const data = event.data;\n if (!data || typeof data !== \"object\") {\n return;\n }\n if (data.method === \"ping\") {\n post({ jsonrpc: \"2.0\", id: data.id, result: {} });\n return;\n }\n if (data.id != null && pending.has(data.id)) {\n const waiter = pending.get(data.id);\n pending.delete(data.id);\n if (data.error) {\n waiter.reject(data.error);\n } else {\n waiter.resolve(data.result);\n }\n return;\n }\n const method = data.method;\n const params = data.params || {};\n if (\n method === \"ui/notifications/tool-result\" ||\n method === \"ui/tool-result\" ||\n method === \"tools/call\"\n ) {\n applyContent(params.content || params.result?.content || []);\n if (params.structuredContent) {\n applyPayload(params.structuredContent);\n }\n refreshGeneration += 1;\n if (element(\"status\").textContent === \"building\") {\n refreshFromServer();\n }\n }\n if (method === \"ui/notifications/tool-input\" && params.arguments) {\n applyPayload(params.arguments);\n refreshFromServer();\n }\n if (method === \"ui/notifications/host-context-changed\") {\n applyHostContext(params);\n }\n }\n\n window.addEventListener(\"message\", handleHostMessage);\n\n element(\"openEditor\").addEventListener(\"click\", () => openLink(editUrl));\n element(\"openPreview\").addEventListener(\"click\", () =>\n openLink(previewUrl),\n );\n element(\"publishApp\").addEventListener(\"click\", () => {\n if (element(\"status\").textContent === \"publishing\") {\n return;\n }\n if (publishUrl) {\n openLink(publishUrl);\n return;\n }\n publish();\n });\n\n if (typeof ResizeObserver === \"function\") {\n new ResizeObserver(reportSize).observe(document.documentElement);\n }\n\n void request(\"ui/initialize\", {\n appCapabilities: {\n availableDisplayModes: [\"inline\"],\n },\n appInfo: { name: \"gateway-app-status\", version: \"0.0.8\" },\n protocolVersion: PROTOCOL_VERSION,\n })\n .then((result) => {\n // Hosts hold back tool results until the app confirms it is ready.\n notify(\"ui/notifications/initialized\", {});\n // Buttons that cannot work are worse than no buttons: hosts without\n // openLinks silently drop ui/open-link.\n canOpenLinks = Boolean(\n result && result.hostCapabilities && result.hostCapabilities.openLinks,\n );\n canCallTools = Boolean(\n result &&\n result.hostCapabilities &&\n result.hostCapabilities.serverTools,\n );\n if (result && result.toolResult) {\n applyPayload(result.toolResult);\n }\n if (teardownRequested) {\n return;\n }\n applyHostContext(result && result.hostContext);\n renderActions();\n const badge = element(\"status\").textContent;\n if (badge === \"publishing\") {\n return;\n }\n if (!applicationId && (!badge || badge === \"loading\")) {\n scheduleRefresh(500);\n } else {\n refreshFromServer();\n }\n })\n .catch(() => {\n // Hosts that push tool results via notification still work.\n })\n .finally(reportSize);\n })();\n </script>\n</body>\n</html>\n";
10
+ export declare const APP_STATUS_RESOURCE_URI = "ui://gateway/app-status-v39.html";
11
+ export declare const APP_STATUS_HTML = "<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n <meta charset=\"utf-8\" />\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\" />\n <title>Superblocks app</title>\n <style>\n .head {\n display: flex;\n min-width: 0;\n align-items: center;\n gap: 8px;\n }\n h1 {\n flex: 1;\n margin: 0;\n font-size: var(--font-text-md-size, 14px);\n font-weight: var(--font-weight-semibold, 600);\n }\n .status {\n padding: 2px 8px;\n border: var(--border-width-regular, 1px) solid var(--sb-app-border);\n border-radius: var(--border-radius-full, 999px);\n background: var(--sb-app-background-subtle);\n color: var(--sb-app-text-secondary);\n font-size: var(--font-text-xs-size, 12px);\n text-transform: lowercase;\n }\n .status[data-tone=\"info\"] {\n border-color: var(--sb-app-info-border);\n background: var(--sb-app-info-background);\n color: var(--sb-app-info-text);\n }\n .status[data-tone=\"success\"] {\n border-color: var(--sb-app-success-border);\n background: var(--sb-app-success-background);\n color: var(--sb-app-success-text);\n }\n .status[data-tone=\"warning\"] {\n border-color: var(--sb-app-warning-border);\n background: var(--sb-app-warning-background);\n color: var(--sb-app-warning-text);\n }\n .status[data-tone=\"danger\"] {\n border-color: var(--sb-app-danger-border);\n background: var(--sb-app-danger-background);\n color: var(--sb-app-danger-text);\n }\n .meta {\n color: var(--sb-app-text-tertiary);\n font-size: var(--font-text-xs-size, 12px);\n }\n .note {\n color: var(--sb-app-warning-text);\n font-size: var(--font-text-xs-size, 12px);\n }\n .shot {\n display: none;\n max-width: 100%;\n width: 100%;\n border: var(--border-width-regular, 1px) solid var(--sb-app-border);\n border-radius: var(--border-radius-md, 8px);\n }\n .shot.shown {\n display: block;\n }\n .actions {\n display: flex;\n flex-wrap: wrap;\n gap: 8px;\n }\n @media (max-width: 360px) {\n .head {\n align-items: flex-start;\n flex-direction: column;\n }\n }\n\n :root {\n color-scheme: light dark;\n --sb-app-background: var(\n --color-background-primary,\n light-dark(#ffffff, #1b1c1f)\n );\n --sb-app-background-subtle: var(\n --color-background-secondary,\n light-dark(#f9fafb, #24272b)\n );\n --sb-app-background-hover: var(\n --color-background-tertiary,\n light-dark(#f3f4f6, #2f3437)\n );\n --sb-app-background-inverse: var(\n --color-background-inverse,\n light-dark(#121517, #f9fafb)\n );\n --sb-app-text: var(\n --color-text-primary,\n light-dark(#121517, #f9fafb)\n );\n --sb-app-text-secondary: var(\n --color-text-secondary,\n light-dark(#5a6272, #c6cad2)\n );\n --sb-app-text-tertiary: var(\n --color-text-tertiary,\n light-dark(#6b7280, #a4aab7)\n );\n --sb-app-text-inverse: var(\n --color-text-inverse,\n light-dark(#ffffff, #121517)\n );\n --sb-app-border: var(\n --color-border-primary,\n light-dark(#e8eaed, #454d5f)\n );\n --sb-app-ring: var(\n --color-ring-primary,\n light-dark(#0077b6, #27bbff)\n );\n --sb-app-info-background: var(\n --color-background-info,\n light-dark(#e6f5ff, #083a50)\n );\n --sb-app-info-text: var(\n --color-text-info,\n light-dark(#00679e, #7dd3fc)\n );\n --sb-app-info-border: var(\n --color-border-info,\n light-dark(#c2e7ff, #075985)\n );\n --sb-app-success-background: var(\n --color-background-success,\n light-dark(#e8f8ef, #0a3926)\n );\n --sb-app-success-text: var(\n --color-text-success,\n light-dark(#087a43, #6ee7b7)\n );\n --sb-app-success-border: var(\n --color-border-success,\n light-dark(#b8e8cf, #087a43)\n );\n --sb-app-warning-background: var(\n --color-background-warning,\n light-dark(#fff7e6, #49350a)\n );\n --sb-app-warning-text: var(\n --color-text-warning,\n light-dark(#946200, #fcd34d)\n );\n --sb-app-warning-border: var(\n --color-border-warning,\n light-dark(#f5d996, #946200)\n );\n --sb-app-danger-background: var(\n --color-background-danger,\n light-dark(#fff1f1, #4a1d1d)\n );\n --sb-app-danger-text: var(\n --color-text-danger,\n light-dark(#c54141, #fca5a5)\n );\n --sb-app-danger-border: var(\n --color-border-danger,\n light-dark(#ffcaca, #c54141)\n );\n }\n * {\n box-sizing: border-box;\n }\n body {\n min-width: 0;\n margin: 0;\n overflow-x: hidden;\n background: transparent;\n color: var(--sb-app-text);\n font-family: var(--font-sans, system-ui, -apple-system, sans-serif);\n font-size: var(--font-text-sm-size, 13px);\n line-height: var(--font-text-sm-line-height, 1.45);\n }\n .card {\n display: flex;\n min-width: 0;\n flex-direction: column;\n gap: 12px;\n padding: 16px;\n border: var(--border-width-regular, 1px) solid var(--sb-app-border);\n border-radius: var(--border-radius-lg, 12px);\n background: var(--sb-app-background);\n box-shadow: var(--shadow-sm, 0 1px 2px rgba(18, 21, 23, 0.08));\n }\n h1,\n .meta,\n .note {\n min-width: 0;\n overflow-wrap: anywhere;\n }\n .note:empty {\n position: absolute;\n }\n button,\n textarea {\n font: inherit;\n }\n button {\n appearance: none;\n min-width: 0;\n padding: 8px 12px;\n border: var(--border-width-regular, 1px) solid var(--sb-app-border);\n border-radius: var(--border-radius-md, 8px);\n background: var(--sb-app-background-subtle);\n color: var(--sb-app-text);\n font-weight: var(--font-weight-medium, 500);\n line-height: var(--font-text-sm-line-height, 1.45);\n cursor: pointer;\n }\n button:hover:not(:disabled) {\n background: var(--sb-app-background-hover);\n }\n .button-primary {\n border-color: var(--sb-app-background-inverse);\n background: var(--sb-app-background-inverse);\n color: var(--sb-app-text-inverse);\n }\n .button-primary:hover:not(:disabled) {\n border-color: var(--sb-app-background-inverse);\n background: var(--sb-app-background-inverse);\n }\n button:focus-visible,\n textarea:focus-visible,\n a:focus-visible {\n outline: 2px solid var(--sb-app-ring);\n outline-offset: 2px;\n }\n button:disabled {\n opacity: 0.48;\n cursor: not-allowed;\n }\n .actions {\n min-width: 0;\n }\n .actions > button {\n overflow-wrap: anywhere;\n }\n @media (max-width: 360px) {\n .actions {\n flex-direction: column;\n flex-wrap: nowrap;\n }\n .actions > button {\n width: 100%;\n }\n }\n\n </style>\n</head>\n<body>\n <div class=\"card\">\n <div class=\"head\">\n <h1>Superblocks app</h1>\n <span id=\"status\" class=\"status\" data-tone=\"info\" aria-live=\"polite\">loading</span>\n </div>\n <div id=\"appId\" class=\"meta\"></div>\n <img id=\"shot\" class=\"shot\" alt=\"Preview of the running app\" />\n <div id=\"note\" class=\"note\" aria-live=\"polite\"></div>\n <div class=\"actions\">\n <button id=\"openEditor\" class=\"button-secondary\" type=\"button\" disabled>Open editor</button>\n <button id=\"openPreview\" class=\"button-secondary\" type=\"button\" disabled>Open preview</button>\n <button id=\"publishApp\" class=\"button-primary\" type=\"button\" disabled>Publish app</button>\n </div>\n </div>\n <script>\n (() => {\n const PROTOCOL_VERSION = \"2026-01-26\";\n // Statuses with no usable build to publish. \"building\" is deliberately\n // absent because a stale badge should not strand the button.\n const UNBUILT_STATUSES = [\n \"cancelled\",\n \"checkpoint_failed\",\n \"detached\",\n \"failed\",\n \"live_edit_terminated\",\n \"needs_decision\",\n \"no_changes\",\n \"timeout\",\n ];\n const BLOCKED_ACTIONS = [\n \"answer_question\",\n \"approve_plan\",\n \"open_editor\",\n \"retry_build\",\n ];\n const STATUS_TONES = {\n building: \"info\",\n cancelled: \"warning\",\n checkpoint_failed: \"danger\",\n deployed: \"success\",\n detached: \"warning\",\n failed: \"danger\",\n live_edit_terminated: \"danger\",\n loading: \"info\",\n needs_decision: \"warning\",\n no_changes: \"warning\",\n publish_failed: \"danger\",\n publishing: \"info\",\n ready: \"success\",\n timeout: \"danger\",\n waiting: \"info\",\n };\n let nextId = 1;\n const pending = new Map();\n let applicationId = \"\";\n let appName = \"\";\n let branch = \"\";\n let commitId = \"\";\n let directoryHash = \"\";\n let pendingAction = \"\";\n let editUrl = \"\";\n let previewUrl = \"\";\n let publishUrl = \"\";\n let canOpenLinks = false;\n let canCallTools = false;\n let publishing = false;\n let lastHeight = 0;\n let buildWatchStartedAtMs;\n let refreshInFlightGeneration = -1;\n let refreshTimer = 0;\n let refreshGeneration = 0;\n const BUILD_WATCH_MS = 20 * 60_000;\n const POLL_INTERVAL_MS = 2000;\n\n function post(message) {\n window.parent.postMessage(message, \"*\");\n }\n\n function notify(method, params) {\n post({ jsonrpc: \"2.0\", method, params });\n }\n\n function request(method, params) {\n const id = nextId++;\n return new Promise((resolve, reject) => {\n pending.set(id, { resolve, reject });\n post({ jsonrpc: \"2.0\", id, method, params });\n });\n }\n\n function element(id) {\n return document.getElementById(id);\n }\n\n function show(id, on) {\n const node = element(id);\n if (node && node.classList) {\n node.classList.toggle(\"shown\", on);\n }\n }\n\n function renderStatus(status) {\n const badge = element(\"status\");\n badge.textContent = status;\n badge.setAttribute(\n \"data-tone\",\n Object.hasOwn(STATUS_TONES, status) ? STATUS_TONES[status] : \"neutral\",\n );\n }\n\n // Hosts size the card from this notification alone; without it the card\n // is laid out at zero height and never appears.\n function reportSize() {\n const height = Math.ceil(document.documentElement.scrollHeight || 0);\n if (height <= 0 || height === lastHeight) {\n return;\n }\n lastHeight = height;\n notify(\"ui/notifications/size-changed\", {\n height,\n width: Math.ceil(window.innerWidth || 0),\n });\n }\n\n function note(text) {\n element(\"note\").textContent = text;\n show(\"note\", Boolean(text));\n reportSize();\n }\n\n function isPlainHttp(url) {\n return url.slice(0, 5).toLowerCase() === \"http:\";\n }\n\n /** A UUID says nothing; the name the user asked Superblocks for does. */\n function renderIdentity() {\n element(\"appId\").textContent = appName || applicationId;\n }\n\n /**\n * Draws the screenshot the tool captured.\n *\n * Hosts that render an MCP App render it *instead of* the tool's content\n * blocks, so the image block get_app returns never reaches the user on\n * its own \u2014 the card has to take it out of the result and show it.\n */\n function showScreenshot(dataBase64, mimeType) {\n if (typeof dataBase64 !== \"string\" || !dataBase64) {\n return;\n }\n element(\"shot\").src =\n \"data:\" + (mimeType || \"image/jpeg\") + \";base64,\" + dataBase64;\n show(\"shot\", true);\n reportSize();\n }\n\n /** Applies every part of an MCP content array the card understands. */\n function applyContent(content) {\n for (const part of content || []) {\n if (!part) {\n continue;\n }\n if (part.type === \"text\" && typeof part.text === \"string\") {\n applyPayload(part.text);\n }\n if (part.type === \"image\") {\n showScreenshot(part.data, part.mimeType);\n }\n }\n }\n\n /**\n * True when publishing would deploy the empty starter template.\n * pendingAction is the server's own \"nothing to preview\" signal;\n * wait_for_build is the building exception. Status is only a fallback\n * when the payload omitted pendingAction. loading/waiting with no\n * preview fail closed so Publish is not clickable before get_app\n * returns.\n */\n function nothingToPublish() {\n const badge = element(\"status\").textContent;\n if (UNBUILT_STATUSES.indexOf(badge) !== -1) {\n return true;\n }\n if (previewUrl || publishUrl) {\n return false;\n }\n if (pendingAction === \"wait_for_build\") {\n return false;\n }\n if (BLOCKED_ACTIONS.indexOf(pendingAction) !== -1) {\n return true;\n }\n if (!badge || badge === \"loading\" || badge === \"waiting\") {\n return true;\n }\n return false;\n }\n\n /**\n * Keep URLs in memory for openLink \u2014 never print them (preview JWTs are\n * huge and ugly in the card).\n */\n function renderActions() {\n const status = element(\"status\").textContent;\n const previewReady = status === \"ready\";\n const rollingOut = status === \"publishing\";\n const published = Boolean(publishUrl) && !rollingOut;\n element(\"openEditor\").disabled = !editUrl || !canOpenLinks;\n element(\"openPreview\").disabled =\n !previewReady || !previewUrl || !canOpenLinks;\n // Once the app is live, publishing again is not what anyone wants from\n // this button \u2014 going to the live app is.\n element(\"publishApp\").textContent = rollingOut\n ? \"Publishing...\"\n : published\n ? \"Open published app\"\n : \"Publish app\";\n element(\"publishApp\").disabled = rollingOut\n ? true\n : published\n ? !canOpenLinks\n : !applicationId ||\n !canCallTools ||\n publishing ||\n nothingToPublish();\n // Only warn about what is actually broken. Hosts that do open links\n // handle local http fine; if one refuses, refused() says so then.\n if (!canOpenLinks && (editUrl || previewUrl) && !publishUrl) {\n note(\"This host cannot open links for me \u2014 ask the model for an https preview URL.\");\n }\n reportSize();\n }\n\n /** Only ever ask the host to open a real web address. */\n function webUrl(candidate) {\n try {\n const parsed = new URL(candidate);\n return parsed.protocol === \"http:\" || parsed.protocol === \"https:\"\n ? candidate\n : \"\";\n } catch {\n return \"\";\n }\n }\n\n /**\n * Merges whatever the host sent. Hosts replay tool input as well as tool\n * results, and the input carries no status or URLs \u2014 overwriting from a\n * partial payload is what showed the card as \"unknown\".\n *\n * Hosts also disagree on the shape: some pass the capability JSON, some\n * pass the MCP content/text envelope (Claude Desktop on initialize), and\n * some nest that under structuredContent.\n */\n function applyPayload(raw) {\n let data = raw;\n if (typeof raw === \"string\") {\n try {\n data = JSON.parse(raw);\n } catch {\n return;\n }\n }\n if (!data || typeof data !== \"object\") {\n return;\n }\n // MCP tool-result / initialize toolResult envelope.\n if (Array.isArray(data.content)) {\n applyContent(data.content);\n if (data.structuredContent) {\n applyPayload(data.structuredContent);\n }\n return;\n }\n if (data.result && typeof data.result === \"object\") {\n applyPayload(data.result);\n return;\n }\n const value = data.kind === \"ok\" ? data.value : data;\n if (!value || typeof value !== \"object\") {\n return;\n }\n if (typeof value.status === \"string\") {\n if (value.status !== \"building\") {\n buildWatchStartedAtMs = undefined;\n }\n renderStatus(value.status);\n }\n if (typeof value.applicationId === \"string\") {\n applicationId = value.applicationId;\n renderIdentity();\n }\n if (typeof value.name === \"string\" && value.name) {\n appName = value.name;\n renderIdentity();\n }\n if (typeof value.branch === \"string\") {\n branch = value.branch;\n }\n if (typeof value.directoryHash === \"string\") {\n directoryHash = value.directoryHash;\n }\n if (\n typeof value.commitId === \"string\" ||\n typeof value.previewUrl === \"string\" ||\n (typeof value.applicationId === \"string\" &&\n typeof value.status === \"string\")\n ) {\n commitId =\n typeof value.commitId === \"string\" ? value.commitId : \"\";\n }\n if (typeof value.pendingAction === \"string\") {\n pendingAction = value.pendingAction;\n } else if (typeof value.status === \"string\") {\n pendingAction = \"\";\n }\n if (typeof value.screenshotBase64 === \"string\") {\n showScreenshot(value.screenshotBase64, \"image/jpeg\");\n }\n if (typeof value.editUrl === \"string\") {\n editUrl = webUrl(value.editUrl);\n }\n if (typeof value.previewUrl === \"string\") {\n previewUrl = webUrl(value.previewUrl);\n } else if (typeof value.status === \"string\" && !commitId) {\n previewUrl = \"\";\n }\n if (typeof value.publishUrl === \"string\") {\n publishUrl = webUrl(value.publishUrl);\n }\n // Hosts that deliver URLs without a status left the badge on the HTML\n // default (\"loading\") even after the app was built.\n const badge = element(\"status\").textContent;\n if (\n !value.status &&\n editUrl &&\n (badge === \"\" || badge === \"loading\" || badge === \"waiting\")\n ) {\n renderStatus(previewUrl ? \"ready\" : \"building\");\n }\n renderActions();\n if (\n canCallTools &&\n commitId &&\n element(\"status\").textContent === \"publishing\"\n ) {\n scheduleRefresh(retryDelay());\n }\n }\n\n /**\n * Ask the app-only status tool when the host gave us no result, or while\n * status is still building.\n */\n function clearRefreshTimer() {\n if (refreshTimer) {\n clearTimeout(refreshTimer);\n refreshTimer = 0;\n }\n }\n\n function retryDelay() {\n return POLL_INTERVAL_MS;\n }\n\n function scheduleRefresh(delayMs) {\n clearRefreshTimer();\n if (\n element(\"status\").textContent !== \"publishing\" &&\n buildWatchStartedAtMs !== undefined &&\n Date.now() - buildWatchStartedAtMs >= BUILD_WATCH_MS\n ) {\n note(\"Stopped checking whether the app is still building.\");\n return;\n }\n refreshTimer = setTimeout(() => {\n refreshTimer = 0;\n refreshFromServer();\n }, delayMs);\n }\n\n function refreshFromServer() {\n clearRefreshTimer();\n if (\n !canCallTools ||\n refreshInFlightGeneration === refreshGeneration ||\n publishing\n ) {\n return;\n }\n if (typeof document.hidden === \"boolean\" && document.hidden) {\n scheduleRefresh(retryDelay());\n return;\n }\n const badge = element(\"status\").textContent;\n const publishStatus = badge === \"publishing\";\n if (editUrl && badge !== \"building\" && !publishStatus) {\n buildWatchStartedAtMs = undefined;\n return;\n }\n if (!publishStatus) {\n if (badge === \"building\") {\n if (buildWatchStartedAtMs === undefined) {\n buildWatchStartedAtMs = Date.now();\n }\n } else {\n buildWatchStartedAtMs = undefined;\n }\n if (\n buildWatchStartedAtMs !== undefined &&\n Date.now() - buildWatchStartedAtMs >= BUILD_WATCH_MS\n ) {\n note(\"Stopped checking whether the app is still building.\");\n return;\n }\n }\n const generation = refreshGeneration;\n refreshInFlightGeneration = generation;\n const previewStatus = !publishStatus && Boolean(commitId && directoryHash);\n request(\"tools/call\", {\n name: publishStatus\n ? \"check_publish_progress\"\n : previewStatus\n ? \"get_preview_status\"\n : \"get_app_status\",\n arguments: {\n ...(applicationId ? { applicationId } : {}),\n ...(!publishStatus && branch ? { branch } : {}),\n ...(publishStatus && commitId ? { commitId } : {}),\n ...(previewStatus ? { commitId, directoryHash, wait: false } : {}),\n },\n })\n .then((result) => {\n if (refreshInFlightGeneration === generation) {\n refreshInFlightGeneration = -1;\n }\n if (generation !== refreshGeneration) {\n if (\n !publishing &&\n element(\"status\").textContent === \"building\" &&\n refreshInFlightGeneration !== refreshGeneration\n ) {\n scheduleRefresh(retryDelay());\n }\n return;\n }\n const publishError = publishStatus\n ? terminalPublishErrorOf(result)\n : \"\";\n if (publishError) {\n refreshGeneration += 1;\n clearRefreshTimer();\n publishUrl = \"\";\n renderStatus(\"publish_failed\");\n note(publishError);\n renderActions();\n return;\n }\n if (!result || result.isError) {\n scheduleRefresh(retryDelay());\n return;\n }\n applyPayload(result);\n if (result.structuredContent) {\n applyPayload(result.structuredContent);\n }\n const status = element(\"status\").textContent;\n if (status === \"deployed\") {\n note(\n publishUrl\n ? \"Published - open the live app with Open published app.\"\n : \"Published - the app is live.\",\n );\n return;\n }\n if (status === \"publishing\") {\n scheduleRefresh(retryDelay());\n return;\n }\n if (status !== \"building\") {\n return;\n }\n scheduleRefresh(retryDelay());\n })\n .catch(() => {\n if (refreshInFlightGeneration === generation) {\n refreshInFlightGeneration = -1;\n }\n if (generation !== refreshGeneration) {\n return;\n }\n scheduleRefresh(retryDelay());\n });\n }\n\n function applyHostContext(context) {\n if (!context || typeof context !== \"object\") {\n return;\n }\n const root = document.documentElement;\n if (context.theme === \"light\" || context.theme === \"dark\") {\n root.setAttribute(\"data-theme\", context.theme);\n root.style.colorScheme = context.theme;\n }\n const variables = context.styles && context.styles.variables;\n const style = root.style;\n if (variables && style && typeof style.setProperty === \"function\") {\n for (const name of Object.keys(variables)) {\n const value = variables[name];\n if (typeof value === \"string\") {\n style.setProperty(name, value);\n }\n }\n }\n const fonts = context.styles && context.styles.css?.fonts;\n if (typeof fonts === \"string\") {\n let fontStyle = document.getElementById(\"__mcp-host-fonts\");\n if (!fontStyle) {\n fontStyle = document.createElement(\"style\");\n fontStyle.id = \"__mcp-host-fonts\";\n document.head.appendChild(fontStyle);\n }\n fontStyle.textContent = fonts;\n }\n reportSize();\n }\n\n function capabilityFailureOf(result) {\n if (!result || !Array.isArray(result.content)) {\n return null;\n }\n for (const block of result.content) {\n if (!block || block.type !== \"text\" || !block.text) {\n continue;\n }\n try {\n const parsed = JSON.parse(block.text);\n if (parsed && parsed.kind === \"error\") {\n return {\n code: parsed.code || \"\",\n message: parsed.message || parsed.code || \"Tool call failed.\",\n };\n }\n } catch {\n continue;\n }\n }\n return null;\n }\n\n function capabilityErrorOf(result) {\n return capabilityFailureOf(result)?.message || \"\";\n }\n\n function terminalPublishErrorOf(result) {\n const failure = capabilityFailureOf(result);\n if (\n !failure ||\n ![\n \"publish_failed\",\n \"publish_needs_acknowledgement\",\n \"publish_timeout\",\n ].includes(failure.code)\n ) {\n return \"\";\n }\n return failure.message;\n }\n\n /** First text block of a failed tool result, for the note line. */\n function errorTextOf(result, fallback) {\n const capabilityError = capabilityErrorOf(result);\n if (capabilityError) {\n return capabilityError;\n }\n const first =\n result && Array.isArray(result.content) ? result.content[0] : null;\n return first && first.text ? String(first.text).slice(0, 280) : fallback;\n }\n\n function refused(url) {\n note(\n isPlainHttp(url)\n ? \"This host only opens https links, and this app is served over http \u2014 ask for an https preview URL.\"\n : \"The host could not open the link \u2014 try again or ask the model for another URL.\",\n );\n }\n\n function openLink(url) {\n if (!url || !canOpenLinks) {\n return;\n }\n request(\"ui/open-link\", { url })\n .then((result) => {\n if (result && result.isError) {\n refused(url);\n return;\n }\n note(\"\");\n })\n .catch(() => refused(url));\n }\n\n /**\n * Asks the host to proxy publish_app back to this MCP server. A named\n * commit is published as-is. Otherwise the card supplies a fixed\n * commitMessage: the button is a click, so there is no model turn here\n * to summarize what changed.\n */\n function publish() {\n if (!applicationId || !canCallTools || publishing) {\n return;\n }\n if (nothingToPublish()) {\n note(\"Nothing to publish yet: this turn did not build the app.\");\n return;\n }\n publishing = true;\n refreshGeneration += 1;\n clearRefreshTimer();\n renderActions();\n note(\"Publishing\u2026\");\n const args = {\n applicationId,\n idempotencyKey:\n \"mcp-app-publish:\" + applicationId + \":\" + Date.now(),\n };\n if (commitId) {\n args.commitId = commitId;\n } else {\n args.commitMessage = \"Publish application\";\n }\n if (branch) {\n args.branch = branch;\n }\n request(\"tools/call\", { name: \"publish_app\", arguments: args })\n .then((result) => {\n publishing = false;\n const publishError = capabilityErrorOf(result);\n if (!result || result.isError || publishError) {\n note(errorTextOf(result, \"Publish failed.\"));\n renderActions();\n refreshFromServer();\n return;\n }\n applyContent(result.content || []);\n if (result.structuredContent) {\n applyPayload(result.structuredContent);\n }\n const status = element(\"status\").textContent;\n note(\n status === \"publishing\"\n ? \"Publish accepted; the deploy is still rolling out.\"\n : publishUrl\n ? \"Published - open the live app with Open published app.\"\n : \"Published - the app is live.\",\n );\n renderActions();\n })\n .catch((error) => {\n publishing = false;\n note(\n (error && error.message) ||\n \"The host could not call publish_app.\",\n );\n renderActions();\n refreshFromServer();\n });\n }\n\n function handleHostMessage(event) {\n // App documents are opaque-origin, so the host window is the only\n // identity available to authenticate a message against.\n if (event.source !== window.parent) {\n return;\n }\n const data = event.data;\n if (!data || typeof data !== \"object\") {\n return;\n }\n if (data.method === \"ping\") {\n post({ jsonrpc: \"2.0\", id: data.id, result: {} });\n return;\n }\n if (data.id != null && pending.has(data.id)) {\n const waiter = pending.get(data.id);\n pending.delete(data.id);\n if (data.error) {\n waiter.reject(data.error);\n } else {\n waiter.resolve(data.result);\n }\n return;\n }\n const method = data.method;\n const params = data.params || {};\n if (\n method === \"ui/notifications/tool-result\" ||\n method === \"ui/tool-result\" ||\n method === \"tools/call\"\n ) {\n applyContent(params.content || params.result?.content || []);\n if (params.structuredContent) {\n applyPayload(params.structuredContent);\n }\n refreshGeneration += 1;\n if (element(\"status\").textContent === \"building\") {\n refreshFromServer();\n }\n }\n if (method === \"ui/notifications/tool-input\" && params.arguments) {\n applyPayload(params.arguments);\n refreshFromServer();\n }\n if (method === \"ui/notifications/host-context-changed\") {\n applyHostContext(params);\n }\n }\n\n window.addEventListener(\"message\", handleHostMessage);\n\n element(\"openEditor\").addEventListener(\"click\", () => openLink(editUrl));\n element(\"openPreview\").addEventListener(\"click\", () =>\n openLink(previewUrl),\n );\n element(\"publishApp\").addEventListener(\"click\", () => {\n if (element(\"status\").textContent === \"publishing\") {\n return;\n }\n if (publishUrl) {\n openLink(publishUrl);\n return;\n }\n publish();\n });\n\n if (typeof ResizeObserver === \"function\") {\n new ResizeObserver(reportSize).observe(document.documentElement);\n }\n\n void request(\"ui/initialize\", {\n appCapabilities: {\n availableDisplayModes: [\"inline\"],\n },\n appInfo: { name: \"gateway-app-status\", version: \"0.0.8\" },\n protocolVersion: PROTOCOL_VERSION,\n })\n .then((result) => {\n // Hosts hold back tool results until the app confirms it is ready.\n notify(\"ui/notifications/initialized\", {});\n // Buttons that cannot work are worse than no buttons: hosts without\n // openLinks silently drop ui/open-link.\n canOpenLinks = Boolean(\n result && result.hostCapabilities && result.hostCapabilities.openLinks,\n );\n canCallTools = Boolean(\n result &&\n result.hostCapabilities &&\n result.hostCapabilities.serverTools,\n );\n if (result && result.toolResult) {\n applyPayload(result.toolResult);\n }\n applyHostContext(result && result.hostContext);\n renderActions();\n const badge = element(\"status\").textContent;\n if (badge === \"publishing\") {\n return;\n }\n if (!applicationId && (!badge || badge === \"loading\")) {\n scheduleRefresh(500);\n } else {\n refreshFromServer();\n }\n })\n .catch(() => {\n // Hosts that push tool results via notification still work.\n })\n .finally(reportSize);\n })();\n </script>\n</body>\n</html>\n";
12
12
  //# sourceMappingURL=app-status-html.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"app-status-html.d.ts","sourceRoot":"","sources":["../../../src/transports/mcp/app-status-html.ts"],"names":[],"mappings":"AAEA;;;;;;;;GAQG;AACH,eAAO,MAAM,uBAAuB,qCAAqC,CAAC;AAE1E,eAAO,MAAM,eAAe,2mlCA23B3B,CAAC"}
1
+ {"version":3,"file":"app-status-html.d.ts","sourceRoot":"","sources":["../../../src/transports/mcp/app-status-html.ts"],"names":[],"mappings":"AAEA;;;;;;;;GAQG;AACH,eAAO,MAAM,uBAAuB,qCAAqC,CAAC;AAE1E,eAAO,MAAM,eAAe,2yjCAi2B3B,CAAC"}
@@ -8,7 +8,7 @@ import { MCP_APP_BRAND_CSS } from "./mcp-app-brand-css.js";
8
8
  * card (hosts cache UI resources; keep this file small and inline). Bump the
9
9
  * resource URI when the HTML changes so Claude Desktop refreshes its cache.
10
10
  */
11
- export const APP_STATUS_RESOURCE_URI = "ui://gateway/app-status-v38.html";
11
+ export const APP_STATUS_RESOURCE_URI = "ui://gateway/app-status-v39.html";
12
12
  export const APP_STATUS_HTML = `<!DOCTYPE html>
13
13
  <html lang="en">
14
14
  <head>
@@ -156,7 +156,6 @@ ${MCP_APP_BRAND_CSS}
156
156
  let canOpenLinks = false;
157
157
  let canCallTools = false;
158
158
  let publishing = false;
159
- let teardownRequested = false;
160
159
  let lastHeight = 0;
161
160
  let buildWatchStartedAtMs;
162
161
  let refreshInFlightGeneration = -1;
@@ -204,9 +203,6 @@ ${MCP_APP_BRAND_CSS}
204
203
  // Hosts size the card from this notification alone; without it the card
205
204
  // is laid out at zero height and never appears.
206
205
  function reportSize() {
207
- if (teardownRequested) {
208
- return;
209
- }
210
206
  const height = Math.ceil(document.documentElement.scrollHeight || 0);
211
207
  if (height <= 0 || height === lastHeight) {
212
208
  return;
@@ -377,24 +373,6 @@ ${MCP_APP_BRAND_CSS}
377
373
  if (!value || typeof value !== "object") {
378
374
  return;
379
375
  }
380
- if (
381
- value.browserNavigation &&
382
- typeof value.browserNavigation === "object" &&
383
- value.browserNavigation.action === "open_editor"
384
- ) {
385
- if (!teardownRequested) {
386
- teardownRequested = true;
387
- refreshGeneration += 1;
388
- clearRefreshTimer();
389
- document.body.hidden = true;
390
- notify("ui/notifications/size-changed", { height: 0, width: 0 });
391
- notify("ui/notifications/request-teardown", {});
392
- }
393
- return;
394
- }
395
- if (teardownRequested) {
396
- return;
397
- }
398
376
  if (typeof value.status === "string") {
399
377
  if (value.status !== "building") {
400
378
  buildWatchStartedAtMs = undefined;
@@ -497,7 +475,6 @@ ${MCP_APP_BRAND_CSS}
497
475
  function refreshFromServer() {
498
476
  clearRefreshTimer();
499
477
  if (
500
- teardownRequested ||
501
478
  !canCallTools ||
502
479
  refreshInFlightGeneration === refreshGeneration ||
503
480
  publishing
@@ -877,9 +854,6 @@ ${MCP_APP_BRAND_CSS}
877
854
  if (result && result.toolResult) {
878
855
  applyPayload(result.toolResult);
879
856
  }
880
- if (teardownRequested) {
881
- return;
882
- }
883
857
  applyHostContext(result && result.hostContext);
884
858
  renderActions();
885
859
  const badge = element("status").textContent;
@@ -1 +1 @@
1
- {"version":3,"file":"app-status-html.js","sourceRoot":"","sources":["../../../src/transports/mcp/app-status-html.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAE3D;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,kCAAkC,CAAC;AAE1E,MAAM,CAAC,MAAM,eAAe,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA6E7B,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA8yBlB,CAAC"}
1
+ {"version":3,"file":"app-status-html.js","sourceRoot":"","sources":["../../../src/transports/mcp/app-status-html.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAE3D;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,kCAAkC,CAAC;AAE1E,MAAM,CAAC,MAAM,eAAe,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA6E7B,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoxBlB,CAAC"}
@@ -1,25 +1,22 @@
1
1
  /**
2
- * What surfaces a host has. MCP advertises no capability for a host's own
3
- * browser or ask/choice UI, so `clientInfo.name` is the only signal.
2
+ * What a client can show the user, from the capabilities it declared and the
3
+ * flags the gateway was started with. Never from the client's name.
4
4
  */
5
- export type ClientPresentationCapabilities = {
6
- /** Cowork puts a decision to the user with its own choice UI, so ask_user is wrong there. */
7
- hasNativeAskForm: boolean;
8
- hasNativeBrowser: boolean;
9
- };
10
- /** Presentation surfaces plus the capabilities MCP does advertise. */
11
- export type ClientProfile = ClientPresentationCapabilities & {
5
+ export type ClientProfile = {
6
+ /**
7
+ * The host puts decisions to the user with its own question form and shows
8
+ * the app in its own browser pane. Only the plugin that starts the gateway
9
+ * can say so (see `hostCollectsApprovalsAndShowsApp` in mount.ts).
10
+ */
11
+ hostCollectsApprovalsAndShowsApp: boolean;
12
12
  /** Renders the MCP Apps decision card, whose confirm step attests an approval. */
13
13
  supportsDecisionCard: boolean;
14
14
  supportsFormElicitation: boolean;
15
15
  };
16
16
  /**
17
17
  * Whether the user can answer a decision through a surface the Gateway trusts
18
- * as theirs: Cowork's native form, the decision card, or form elicitation. An
18
+ * as theirs: the host's own form, the decision card, or form elicitation. An
19
19
  * approval the agent sends on its own is never accepted.
20
20
  */
21
21
  export declare function collectsUserApproval(profile: ClientProfile): boolean;
22
- export declare function clientPresentationCapabilities(client: {
23
- name: string;
24
- } | undefined): ClientPresentationCapabilities;
25
22
  //# sourceMappingURL=client-presentation.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"client-presentation.d.ts","sourceRoot":"","sources":["../../../src/transports/mcp/client-presentation.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,MAAM,8BAA8B,GAAG;IAC3C,6FAA6F;IAC7F,gBAAgB,EAAE,OAAO,CAAC;IAC1B,gBAAgB,EAAE,OAAO,CAAC;CAC3B,CAAC;AAEF,sEAAsE;AACtE,MAAM,MAAM,aAAa,GAAG,8BAA8B,GAAG;IAC3D,kFAAkF;IAClF,oBAAoB,EAAE,OAAO,CAAC;IAC9B,uBAAuB,EAAE,OAAO,CAAC;CAClC,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAMpE;AAED,wBAAgB,8BAA8B,CAC5C,MAAM,EAAE;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,GACnC,8BAA8B,CAQhC"}
1
+ {"version":3,"file":"client-presentation.d.ts","sourceRoot":"","sources":["../../../src/transports/mcp/client-presentation.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,MAAM,aAAa,GAAG;IAC1B;;;;OAIG;IACH,gCAAgC,EAAE,OAAO,CAAC;IAC1C,kFAAkF;IAClF,oBAAoB,EAAE,OAAO,CAAC;IAC9B,uBAAuB,EAAE,OAAO,CAAC;CAClC,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAMpE"}
@@ -1,23 +1,11 @@
1
- /**
2
- * What surfaces a host has. MCP advertises no capability for a host's own
3
- * browser or ask/choice UI, so `clientInfo.name` is the only signal.
4
- */
5
1
  /**
6
2
  * Whether the user can answer a decision through a surface the Gateway trusts
7
- * as theirs: Cowork's native form, the decision card, or form elicitation. An
3
+ * as theirs: the host's own form, the decision card, or form elicitation. An
8
4
  * approval the agent sends on its own is never accepted.
9
5
  */
10
6
  export function collectsUserApproval(profile) {
11
- return (profile.hasNativeAskForm ||
7
+ return (profile.hostCollectsApprovalsAndShowsApp ||
12
8
  profile.supportsDecisionCard ||
13
9
  profile.supportsFormElicitation);
14
10
  }
15
- export function clientPresentationCapabilities(client) {
16
- const isCowork = client?.name === "local-agent-mode-superblocks" ||
17
- client?.name.startsWith("local-agent-mode-plugin:") === true;
18
- return {
19
- hasNativeAskForm: isCowork,
20
- hasNativeBrowser: isCowork,
21
- };
22
- }
23
11
  //# sourceMappingURL=client-presentation.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"client-presentation.js","sourceRoot":"","sources":["../../../src/transports/mcp/client-presentation.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAeH;;;;GAIG;AACH,MAAM,UAAU,oBAAoB,CAAC,OAAsB;IACzD,OAAO,CACL,OAAO,CAAC,gBAAgB;QACxB,OAAO,CAAC,oBAAoB;QAC5B,OAAO,CAAC,uBAAuB,CAChC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,8BAA8B,CAC5C,MAAoC;IAEpC,MAAM,QAAQ,GACZ,MAAM,EAAE,IAAI,KAAK,8BAA8B;QAC/C,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,0BAA0B,CAAC,KAAK,IAAI,CAAC;IAC/D,OAAO;QACL,gBAAgB,EAAE,QAAQ;QAC1B,gBAAgB,EAAE,QAAQ;KAC3B,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"client-presentation.js","sourceRoot":"","sources":["../../../src/transports/mcp/client-presentation.ts"],"names":[],"mappings":"AAgBA;;;;GAIG;AACH,MAAM,UAAU,oBAAoB,CAAC,OAAsB;IACzD,OAAO,CACL,OAAO,CAAC,gCAAgC;QACxC,OAAO,CAAC,oBAAoB;QAC5B,OAAO,CAAC,uBAAuB,CAChC,CAAC;AACJ,CAAC"}
@@ -352,6 +352,28 @@ export async function resolveDecisionByElicitation(args) {
352
352
  "decision.resolved": true,
353
353
  "result.kind": result.kind,
354
354
  });
355
- return result;
355
+ return withFormAnswer(result, answer);
356
+ }
357
+ /**
358
+ * Says what the user did in the form. The model never sees the form, so
359
+ * without this it finds the answer in Superblocks' history and cannot tell
360
+ * the user gave it. Only the chosen option or text the user typed is repeated.
361
+ */
362
+ function withFormAnswer(result, answer) {
363
+ if (result.kind !== "ok" ||
364
+ !result.value ||
365
+ typeof result.value !== "object" ||
366
+ Array.isArray(result.value)) {
367
+ return result;
368
+ }
369
+ // JSON quoting, so an option label or feedback that contains a quote cannot
370
+ // close the quote and add words to the sentence about the user.
371
+ const what = answer.kind === "approve"
372
+ ? "approved the plan"
373
+ : answer.kind === "refine"
374
+ ? `asked for changes to the plan: ${JSON.stringify(answer.feedback)}`
375
+ : `answered ${JSON.stringify(answer.prompt)}`;
376
+ const answeredInForm = `Your host showed the user Superblocks' form, and the user ${what}. This answer came from the user; Superblocks is continuing with it.`;
377
+ return { ...result, value: { ...result.value, answeredInForm } };
356
378
  }
357
379
  //# sourceMappingURL=decision-elicitation.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"decision-elicitation.js","sourceRoot":"","sources":["../../../src/transports/mcp/decision-elicitation.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"decision-elicitation.js","sourceRoot":"","sources":["../../../src/transports/mcp/decision-elicitation.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"dispatch-probe.js","sourceRoot":"","sources":["../../../src/transports/mcp/dispatch-probe.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AACnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAC;AAK1E,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAE7C;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,sBAAsB,CACpC,IAAa,EACb,UAA8C,EAAE;IAEhD,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,IAAI,CAAC,GAAG,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC;IAC3E,OAAO,KAAK,IAAI,EAAE;QAChB,MAAM,MAAM,GAAG,YAAY,EAAE,CAAC;QAC9B,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC;YACxB,IAAI,EAAE,wBAAwB;YAC9B,OAAO,EAAE,OAAO;SACjB,CAAC,CAAC;QACH,MAAM,CAAC,eAAe,EAAE,eAAe,CAAC,GACtC,iBAAiB,CAAC,gBAAgB,EAAE,CAAC;QACvC,IAAI,CAAC;YACH,MAAM,OAAO,CAAC,GAAG,CAAC;gBAChB,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC;gBAC/B,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC;aAChC,CAAC,CAAC;YACH,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,SAAS,EAAE,CAAC;YAC3C,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACvB,MAAM,IAAI,KAAK,CACb,8EAA8E,CAC/E,CAAC;YACJ,CAAC;QACH,CAAC;gBAAS,CAAC;YACT,wEAAwE;YACxE,qEAAqE;YACrE,MAAM,OAAO,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QAC7D,CAAC;IACH,CAAC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"dispatch-probe.js","sourceRoot":"","sources":["../../../src/transports/mcp/dispatch-probe.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AACnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAC;AAK1E,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAE7C;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,sBAAsB,CACpC,IAAa,EACb,OAAO,GAAuC,EAAE;IAEhD,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,IAAI,CAAC,GAAG,EAAE,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC;IAC3E,OAAO,KAAK,IAAI,EAAE;QAChB,MAAM,MAAM,GAAG,YAAY,EAAE,CAAC;QAC9B,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC;YACxB,IAAI,EAAE,wBAAwB;YAC9B,OAAO,EAAE,OAAO;SACjB,CAAC,CAAC;QACH,MAAM,CAAC,eAAe,EAAE,eAAe,CAAC,GACtC,iBAAiB,CAAC,gBAAgB,EAAE,CAAC;QACvC,IAAI,CAAC;YACH,MAAM,OAAO,CAAC,GAAG,CAAC;gBAChB,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC;gBAC/B,MAAM,CAAC,OAAO,CAAC,eAAe,CAAC;aAChC,CAAC,CAAC;YACH,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,SAAS,EAAE,CAAC;YAC3C,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACvB,MAAM,IAAI,KAAK,CACb,8EAA8E,CAC/E,CAAC;YACJ,CAAC;QACH,CAAC;gBAAS,CAAC;YACT,wEAAwE;YACxE,qEAAqE;YACrE,MAAM,OAAO,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QAC7D,CAAC;IACH,CAAC,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"editor-document-probe.js","sourceRoot":"","sources":["../../../src/transports/mcp/editor-document-probe.ts"],"names":[],"mappings":"AAKA,MAAM,2BAA2B,GAAG,KAAK,CAAC;AAE1C,MAAM,UAAU,yBAAyB,CACvC,UAAwC,EAAE;IAE1C,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,KAAK,CAAC;IAC7C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE;QAC/B,IAAI,MAAM,EAAE,OAAO,EAAE,CAAC;YACpB,OAAO,KAAK,CAAC;QACf,CAAC;QACD,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;QACzC,MAAM,KAAK,GAAG,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACrD,MAAM,EAAE,gBAAgB,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QACzD,MAAM,QAAQ,GAAG,UAAU,CACzB,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EACxB,2BAA2B,CAC5B,CAAC;QACF,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC;QACnB,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,EAAE;gBACjD,MAAM,EAAE,KAAK;gBACb,QAAQ,EAAE,QAAQ;gBAClB,MAAM,EAAE,UAAU,CAAC,MAAM;aAC1B,CAAC,CAAC;YACH,MAAM,SAAS,GACb,QAAQ,CAAC,EAAE;gBACX,CAAC,QAAQ,CAAC,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,MAAM,GAAG,GAAG,CAAC;gBACjD,QAAQ,CAAC,MAAM,KAAK,GAAG;gBACvB,QAAQ,CAAC,MAAM,KAAK,GAAG,CAAC;YAC1B,MAAM,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;YACrD,OAAO,SAAS,CAAC;QACnB,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAC;QACf,CAAC;gBAAS,CAAC;YACT,YAAY,CAAC,QAAQ,CAAC,CAAC;YACvB,MAAM,EAAE,mBAAmB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAC9C,CAAC;IACH,CAAC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"editor-document-probe.js","sourceRoot":"","sources":["../../../src/transports/mcp/editor-document-probe.ts"],"names":[],"mappings":"AAKA,MAAM,2BAA2B,GAAG,KAAK,CAAC;AAE1C,MAAM,UAAU,yBAAyB,CACvC,OAAO,GAAiC,EAAE;IAE1C,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,KAAK,CAAC;IAC7C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE;QAC/B,IAAI,MAAM,EAAE,OAAO,EAAE,CAAC;YACpB,OAAO,KAAK,CAAC;QACf,CAAC;QACD,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;QACzC,MAAM,KAAK,GAAG,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACrD,MAAM,EAAE,gBAAgB,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QACzD,MAAM,QAAQ,GAAG,UAAU,CACzB,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EACxB,2BAA2B,CAC5B,CAAC;QACF,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC;QACnB,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,SAAS,CAAC,IAAI,GAAG,CAAC,OAAO,CAAC,EAAE;gBACjD,MAAM,EAAE,KAAK;gBACb,QAAQ,EAAE,QAAQ;gBAClB,MAAM,EAAE,UAAU,CAAC,MAAM;aAC1B,CAAC,CAAC;YACH,MAAM,SAAS,GACb,QAAQ,CAAC,EAAE;gBACX,CAAC,QAAQ,CAAC,MAAM,IAAI,GAAG,IAAI,QAAQ,CAAC,MAAM,GAAG,GAAG,CAAC;gBACjD,QAAQ,CAAC,MAAM,KAAK,GAAG;gBACvB,QAAQ,CAAC,MAAM,KAAK,GAAG,CAAC;YAC1B,MAAM,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;YACrD,OAAO,SAAS,CAAC;QACnB,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,KAAK,CAAC;QACf,CAAC;gBAAS,CAAC;YACT,YAAY,CAAC,QAAQ,CAAC,CAAC;YACvB,MAAM,EAAE,mBAAmB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAC9C,CAAC;IACH,CAAC,CAAC;AACJ,CAAC"}
@@ -7,7 +7,6 @@ export declare const EDITOR_SETUP_RECENT_APP_WINDOW_MS: number;
7
7
  export declare function editorIntegrationSetupUrl(input: {
8
8
  applicationId: string;
9
9
  branch?: string;
10
- cowork?: boolean;
11
10
  integrationId: string;
12
11
  uiBaseUrl: string;
13
12
  }): string;
@@ -1 +1 @@
1
- {"version":3,"file":"editor-integration-setup-url.d.ts","sourceRoot":"","sources":["../../../src/transports/mcp/editor-integration-setup-url.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,eAAO,MAAM,iCAAiC,QAAiB,CAAC;AAEhE,wBAAgB,yBAAyB,CAAC,KAAK,EAAE;IAC/C,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;CACnB,GAAG,MAAM,CAYT;AAED,wBAAgB,2BAA2B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAUhE"}
1
+ {"version":3,"file":"editor-integration-setup-url.d.ts","sourceRoot":"","sources":["../../../src/transports/mcp/editor-integration-setup-url.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,eAAO,MAAM,iCAAiC,QAAiB,CAAC;AAEhE,wBAAgB,yBAAyB,CAAC,KAAK,EAAE;IAC/C,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,MAAM,CAAC;CACnB,GAAG,MAAM,CAST;AAED,wBAAgB,2BAA2B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAUhE"}
@@ -11,9 +11,6 @@ export function editorIntegrationSetupUrl(input) {
11
11
  url.searchParams.set("branch", input.branch);
12
12
  }
13
13
  url.searchParams.set(URL_PARAMS.integrationSetup, input.integrationId);
14
- if (input.cowork) {
15
- url.searchParams.set(URL_PARAMS.editorHost, "cowork");
16
- }
17
14
  return url.toString();
18
15
  }
19
16
  export function isEditorIntegrationSetupUrl(url) {
@@ -1 +1 @@
1
- {"version":3,"file":"editor-integration-setup-url.js","sourceRoot":"","sources":["../../../src/transports/mcp/editor-integration-setup-url.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAE7D;;;;GAIG;AACH,MAAM,CAAC,MAAM,iCAAiC,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAEhE,MAAM,UAAU,yBAAyB,CAAC,KAMzC;IACC,MAAM,GAAG,GAAG,IAAI,GAAG,CACjB,GAAG,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,gCAAgC,kBAAkB,CAAC,KAAK,CAAC,aAAa,CAAC,EAAE,CAC/G,CAAC;IACF,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;QACjB,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IAC/C,CAAC;IACD,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC,gBAAgB,EAAE,KAAK,CAAC,aAAa,CAAC,CAAC;IACvE,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;QACjB,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;IACxD,CAAC;IACD,OAAO,GAAG,CAAC,QAAQ,EAAE,CAAC;AACxB,CAAC;AAED,MAAM,UAAU,2BAA2B,CAAC,GAAW;IACrD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;QAC5B,OAAO,CACL,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,qBAAqB,CAAC;YAC/C,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC,gBAAgB,CAAC,CACrD,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"editor-integration-setup-url.js","sourceRoot":"","sources":["../../../src/transports/mcp/editor-integration-setup-url.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAE7D;;;;GAIG;AACH,MAAM,CAAC,MAAM,iCAAiC,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;AAEhE,MAAM,UAAU,yBAAyB,CAAC,KAKzC;IACC,MAAM,GAAG,GAAG,IAAI,GAAG,CACjB,GAAG,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,gCAAgC,kBAAkB,CAAC,KAAK,CAAC,aAAa,CAAC,EAAE,CAC/G,CAAC;IACF,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;QACjB,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;IAC/C,CAAC;IACD,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC,gBAAgB,EAAE,KAAK,CAAC,aAAa,CAAC,CAAC;IACvE,OAAO,GAAG,CAAC,QAAQ,EAAE,CAAC;AACxB,CAAC;AAED,MAAM,UAAU,2BAA2B,CAAC,GAAW;IACrD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,CAAC;QAC5B,OAAO,CACL,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,qBAAqB,CAAC;YAC/C,MAAM,CAAC,YAAY,CAAC,GAAG,CAAC,UAAU,CAAC,gBAAgB,CAAC,CACrD,CAAC;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC"}
@@ -27,7 +27,7 @@ export function formatMcpToolContent(result, progress = [], profile) {
27
27
  text: `${JSON.stringify(textResult, null, 2)}\n`,
28
28
  type: "text",
29
29
  });
30
- if (profile?.hasNativeAskForm) {
30
+ if (profile?.hostCollectsApprovalsAndShowsApp) {
31
31
  const plan = planMarkdown(displayed);
32
32
  if (plan) {
33
33
  content.push({ text: `\n${plan}\n\n`, type: "text" });
@@ -1 +1 @@
1
- {"version":3,"file":"format-tool-content.js","sourceRoot":"","sources":["../../../src/transports/mcp/format-tool-content.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"format-tool-content.js","sourceRoot":"","sources":["../../../src/transports/mcp/format-tool-content.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,4 @@
1
- import type { ClientProfile } from "../../client-presentation.js";
2
1
  import type { ToolResult } from "../result.js";
3
- export declare function instructBuildApp(result: ToolResult, profile: ClientProfile): string | undefined;
4
- export declare function instructGetPreviewStatus(result: ToolResult, profile: ClientProfile): string | undefined;
2
+ export declare function instructBuildApp(result: ToolResult): string | undefined;
3
+ export declare function instructGetPreviewStatus(result: ToolResult): string | undefined;
5
4
  //# sourceMappingURL=build-app.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"build-app.d.ts","sourceRoot":"","sources":["../../../../../src/transports/mcp/instructions/tools/build-app.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAK/C,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,UAAU,EAClB,OAAO,EAAE,aAAa,GACrB,MAAM,GAAG,SAAS,CA0BpB;AAED,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,UAAU,EAClB,OAAO,EAAE,aAAa,GACrB,MAAM,GAAG,SAAS,CAcpB"}
1
+ {"version":3,"file":"build-app.d.ts","sourceRoot":"","sources":["../../../../../src/transports/mcp/instructions/tools/build-app.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAK/C,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,GAAG,SAAS,CAuBvE;AAED,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,UAAU,GACjB,MAAM,GAAG,SAAS,CAWpB"}
@@ -1,5 +1,5 @@
1
1
  const PRIVATE_PREVIEW = "This is an unpublished preview. Building it did not change app permissions; do not publish it or change permissions unless the user explicitly asks. The URL may carry a scoped preview credential, so give it only to the user or recipient who requested it and do not post it publicly.";
2
- export function instructBuildApp(result, profile) {
2
+ export function instructBuildApp(result) {
3
3
  if (result.status === "building") {
4
4
  const cursor = previewStatusCursor(result);
5
5
  if (!cursor) {
@@ -17,20 +17,14 @@ export function instructBuildApp(result, profile) {
17
17
  !previewUrl) {
18
18
  return undefined;
19
19
  }
20
- const action = profile.hasNativeBrowser
21
- ? `Before any other action, ensure ${previewUrl} is open in Cowork's embedded Page browser and verify only that the commit preview loaded.`
22
- : `Give the user ${previewUrl}, the exact URL for this commit preview.`;
23
- return `${action} ${PRIVATE_PREVIEW}`;
20
+ return `Give the user ${previewUrl}, the exact URL for this commit preview. ${PRIVATE_PREVIEW}`;
24
21
  }
25
- export function instructGetPreviewStatus(result, profile) {
22
+ export function instructGetPreviewStatus(result) {
26
23
  if (result.status === "building") {
27
- return instructBuildApp(result, profile);
24
+ return instructBuildApp(result);
28
25
  }
29
26
  if (result.status === "ready") {
30
- const action = profile.hasNativeBrowser
31
- ? "Before any other action, open the exact `previewUrl` from the original `build_app` result in Cowork's embedded Page browser and verify only that the commit preview loaded."
32
- : "Give the user the exact `previewUrl` from the original `build_app` result.";
33
- return `${action} ${PRIVATE_PREVIEW}`;
27
+ return `Give the user the exact \`previewUrl\` from the original \`build_app\` result. ${PRIVATE_PREVIEW}`;
34
28
  }
35
29
  if (result.status === "failed") {
36
30
  return "The commit preview build failed. Tell the user it is not ready. Do not open the preview URL, call `build_app` again, or publish it; wait for the user to decide what to do next.";
@@ -1 +1 @@
1
- {"version":3,"file":"build-app.js","sourceRoot":"","sources":["../../../../../src/transports/mcp/instructions/tools/build-app.ts"],"names":[],"mappings":"AAGA,MAAM,eAAe,GACnB,4RAA4R,CAAC;AAE/R,MAAM,UAAU,gBAAgB,CAC9B,MAAkB,EAClB,OAAsB;IAEtB,IAAI,MAAM,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;QACjC,MAAM,MAAM,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC;QAC3C,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC;QAC3C,MAAM,QAAQ,GACZ,OAAO,UAAU,KAAK,QAAQ,IAAI,UAAU;YAC1C,CAAC,CAAC,SAAS,UAAU,sCAAsC;YAC3D,CAAC,CAAC,EAAE,CAAC;QACT,OAAO,wCAAwC,QAAQ,qCAAqC,MAAM,8HAA8H,CAAC;IACnO,CAAC;IAED,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC;IAC3C,IACE,MAAM,CAAC,MAAM,KAAK,OAAO;QACzB,OAAO,UAAU,KAAK,QAAQ;QAC9B,CAAC,UAAU,EACX,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,MAAM,MAAM,GAAG,OAAO,CAAC,gBAAgB;QACrC,CAAC,CAAC,mCAAmC,UAAU,4FAA4F;QAC3I,CAAC,CAAC,iBAAiB,UAAU,0CAA0C,CAAC;IAC1E,OAAO,GAAG,MAAM,IAAI,eAAe,EAAE,CAAC;AACxC,CAAC;AAED,MAAM,UAAU,wBAAwB,CACtC,MAAkB,EAClB,OAAsB;IAEtB,IAAI,MAAM,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;QACjC,OAAO,gBAAgB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC3C,CAAC;IACD,IAAI,MAAM,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC;QAC9B,MAAM,MAAM,GAAG,OAAO,CAAC,gBAAgB;YACrC,CAAC,CAAC,6KAA6K;YAC/K,CAAC,CAAC,4EAA4E,CAAC;QACjF,OAAO,GAAG,MAAM,IAAI,eAAe,EAAE,CAAC;IACxC,CAAC;IACD,IAAI,MAAM,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC/B,OAAO,kLAAkL,CAAC;IAC5L,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,mBAAmB,CAAC,MAAkB;IAC7C,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC;IACxE,IACE,OAAO,aAAa,KAAK,QAAQ;QACjC,OAAO,QAAQ,KAAK,QAAQ;QAC5B,OAAO,aAAa,KAAK,QAAQ,EACjC,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO,IAAI,CAAC,SAAS,CAAC;QACpB,aAAa;QACb,GAAG,CAAC,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACjD,QAAQ;QACR,aAAa;KACd,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"build-app.js","sourceRoot":"","sources":["../../../../../src/transports/mcp/instructions/tools/build-app.ts"],"names":[],"mappings":"AAEA,MAAM,eAAe,GACnB,4RAA4R,CAAC;AAE/R,MAAM,UAAU,gBAAgB,CAAC,MAAkB;IACjD,IAAI,MAAM,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;QACjC,MAAM,MAAM,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC;QAC3C,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC;QAC3C,MAAM,QAAQ,GACZ,OAAO,UAAU,KAAK,QAAQ,IAAI,UAAU;YAC1C,CAAC,CAAC,SAAS,UAAU,sCAAsC;YAC3D,CAAC,CAAC,EAAE,CAAC;QACT,OAAO,wCAAwC,QAAQ,qCAAqC,MAAM,8HAA8H,CAAC;IACnO,CAAC;IAED,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC;IAC3C,IACE,MAAM,CAAC,MAAM,KAAK,OAAO;QACzB,OAAO,UAAU,KAAK,QAAQ;QAC9B,CAAC,UAAU,EACX,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO,iBAAiB,UAAU,4CAA4C,eAAe,EAAE,CAAC;AAClG,CAAC;AAED,MAAM,UAAU,wBAAwB,CACtC,MAAkB;IAElB,IAAI,MAAM,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;QACjC,OAAO,gBAAgB,CAAC,MAAM,CAAC,CAAC;IAClC,CAAC;IACD,IAAI,MAAM,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC;QAC9B,OAAO,kFAAkF,eAAe,EAAE,CAAC;IAC7G,CAAC;IACD,IAAI,MAAM,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC/B,OAAO,kLAAkL,CAAC;IAC5L,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,mBAAmB,CAAC,MAAkB;IAC7C,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC;IACxE,IACE,OAAO,aAAa,KAAK,QAAQ;QACjC,OAAO,QAAQ,KAAK,QAAQ;QAC5B,OAAO,aAAa,KAAK,QAAQ,EACjC,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO,IAAI,CAAC,SAAS,CAAC;QACpB,aAAa;QACb,GAAG,CAAC,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACjD,QAAQ;QACR,aAAa;KACd,CAAC,CAAC;AACL,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"check-app-progress.d.ts","sourceRoot":"","sources":["../../../../../src/transports/mcp/instructions/tools/check-app-progress.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAU/C,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,UAAU,EAClB,OAAO,EAAE,aAAa,GACrB,MAAM,GAAG,SAAS,CAepB"}
1
+ {"version":3,"file":"check-app-progress.d.ts","sourceRoot":"","sources":["../../../../../src/transports/mcp/instructions/tools/check-app-progress.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAClE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAS/C,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,UAAU,EAClB,OAAO,EAAE,aAAa,GACrB,MAAM,GAAG,SAAS,CAuDpB"}