@superblocksteam/gateway 2.0.162 → 2.0.163-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.
- package/dist/capabilities/lifecycle.d.ts +7 -0
- package/dist/capabilities/lifecycle.js +36 -2
- package/dist/capabilities/lifecycle.js.map +1 -1
- package/dist/capabilities/types.d.ts +13 -3
- package/dist/capabilities/types.js.map +1 -1
- package/dist/sabs/editor-client-methods.js +11 -1
- package/dist/sabs/editor-client-methods.js.map +1 -1
- package/dist/sabs/websocket-session-peer.js +11 -3
- package/dist/sabs/websocket-session-peer.js.map +1 -1
- package/dist/transports/mcp/app-status-html.d.ts +2 -2
- package/dist/transports/mcp/app-status-html.js +7 -5
- package/dist/transports/mcp/app-status-html.js.map +1 -1
- package/dist/transports/mcp/mount.d.ts +1 -1
- package/dist/transports/mcp/mount.js +28 -12
- package/dist/transports/mcp/mount.js.map +1 -1
- package/package.json +6 -6
|
@@ -7,5 +7,5 @@
|
|
|
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-
|
|
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. The prompt\n * is the commit message createCommit needs; the card supplies a fixed one\n * so the user does not have to type through the model.\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 prompt: \"Published from Gateway status card\",\n };\n if (commitId) {\n args.commitId = commitId;\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-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";
|
|
@@ -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-
|
|
11
|
+
export const APP_STATUS_RESOURCE_URI = "ui://gateway/app-status-v38.html";
|
|
12
12
|
export const APP_STATUS_HTML = `<!DOCTYPE html>
|
|
13
13
|
<html lang="en">
|
|
14
14
|
<head>
|
|
@@ -718,9 +718,10 @@ ${MCP_APP_BRAND_CSS}
|
|
|
718
718
|
}
|
|
719
719
|
|
|
720
720
|
/**
|
|
721
|
-
* Asks the host to proxy publish_app back to this MCP server.
|
|
722
|
-
* is
|
|
723
|
-
*
|
|
721
|
+
* Asks the host to proxy publish_app back to this MCP server. A named
|
|
722
|
+
* commit is published as-is. Otherwise the card supplies a fixed
|
|
723
|
+
* commitMessage: the button is a click, so there is no model turn here
|
|
724
|
+
* to summarize what changed.
|
|
724
725
|
*/
|
|
725
726
|
function publish() {
|
|
726
727
|
if (!applicationId || !canCallTools || publishing) {
|
|
@@ -739,10 +740,11 @@ ${MCP_APP_BRAND_CSS}
|
|
|
739
740
|
applicationId,
|
|
740
741
|
idempotencyKey:
|
|
741
742
|
"mcp-app-publish:" + applicationId + ":" + Date.now(),
|
|
742
|
-
prompt: "Published from Gateway status card",
|
|
743
743
|
};
|
|
744
744
|
if (commitId) {
|
|
745
745
|
args.commitId = commitId;
|
|
746
|
+
} else {
|
|
747
|
+
args.commitMessage = "Publish application";
|
|
746
748
|
}
|
|
747
749
|
if (branch) {
|
|
748
750
|
args.branch = branch;
|
|
@@ -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
|
|
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"}
|
|
@@ -12,7 +12,7 @@ import { type EditorDocumentProbe } from "./editor-document-probe.js";
|
|
|
12
12
|
* is input-only, because a client that reads "Clark" here repeats it back and
|
|
13
13
|
* reintroduces the retired name to the user.
|
|
14
14
|
*/
|
|
15
|
-
export declare const SERVER_INSTRUCTIONS = "Superblocks builds, edits, and publishes internal web applications. Prompts sent through these tools are handed to Superblocks, which writes the application code in a live-edit session.\n\nName the builder \"Superblocks\" in every word you write. Users sometimes call it \"Clark\", an older name for this same system: understand them, and answer about Superblocks. Never write \"Clark\" yourself \u2014 not as a name, not as an aside, not even when the user just used it, and never as a separate agent or persona. If Superblocks' own words come back naming Clark, relay the substance and say Superblocks.\n\nThe user you are interacting with is a non-technical business user. Keep discussions focused on requirements, and avoid technical jargon, discussing code, or implementation details. If errors or problems occur, give the user easy-to-follow, actionable instructions for how they can resolve the issue.\n\nUse these tools whenever the user asks to build, change, import, or ship an app, whichever of those names they reach for. They can also inspect what data the org has rather than building an app to explore it: list_integrations names the datasources, and get_integration_metadata reads the tables and columns inside one. Create a persistent app or API only when the user explicitly asks for one.\n\nAfter create_integration creates an integration or list_integrations selects one for an app, include the returned mention unchanged in the next edit_app prompt. The mention gives Superblocks the exact integration ID; do not construct one from the display name.\n\nSuperblocks is itself an agent, not a code library: prompts sent through start_app and edit_app are handed to it verbatim, and it decides how to build the application. Your role is to facilitate the user's interaction with Superblocks, not to build anything yourself \u2014 pass the user's own request through unchanged, without inventing, embellishing, or adding requirements, scope, or design detail they did not ask for.\n\nAfter each tool call, check for agentInstructions in the result and follow them. These instructions are tailored to the scenario.\n\nSuperblocks has an interactive flow: when it needs a person to decide something, it stops rather than guessing. Follow the result's agentInstructions to use the decision surface this client supports. Never supply that answer yourself.\n\nBuilding or editing an app follows one loop: start_app hands a new application to Superblocks, edit_app continues an existing one, and both return immediately with status \"building\". Call check_app_progress to follow the turn, relaying what Superblocks says as it happens. When it stops for a decision, follow agentInstructions and send the answer back through edit_app. Once status is \"ready\", call get_app so the user can open the result, and offer publish_app when they want to deploy it. Each tool's own description covers its exact inputs, return fields, and retry/error behavior.\n\nYour automatic verification is a load check and inspection of visible state, not a feature-by-feature test run. Run interactive feature tests only when the user requests testing. Do not click app controls or inspect API traffic as part of a load check; normal navigation and authentication are allowed. Keep relaying Superblocks' own test results. Do not claim features passed from a load check alone.\n\nWhen the user attached a file in this chat (a log, CSV, screenshot, image, zip, or anything else), or when migrating source visible in this conversation, call upload_artifact. Pass upload_artifact filePath with the full host path when you have it; a bare file name falls back to the gateway's search folders. If the file exists only in this chat's scratchpad path (for example /tmp/claude-.../scratchpad), send text source through files: [{ path, content }] instead of filePath. The gateway reads filePath bytes itself, so an image or PDF costs nothing to send. Only source you are writing out yourself goes in files, which is archived as text - never base64 a file into it. Then pass the returned artifact in start_app or edit_app artifacts. Do not create a Claude artifact or use the host's own file-upload UI.\n\nWhen the source is a readable tree on this machine, archive the source and assets with their original relative paths, excluding .git, node_modules, build output, secrets, and production data. Inspect the archive, upload it with upload_artifact filePath, then pass the returned artifact unchanged in start_app or edit_app artifacts. Local paths and prose descriptions are not a substitute for the source artifact: Superblocks cannot read the host's workspace. Ask Superblocks to read the attached source and preserve its UI and behavior. Reuse the artifact on retries. Follow the superblocks-import skill when available; Superblocks writes the application, not the host.\n\nFor a migrated app with missing integrations, call list_integrations first. Reuse only the same plugin and the same connection: the same REST base URL, or the same host, port, and database. A similar name is not a match. list_integrations and get_integration_metadata do not expose connection URLs or hosts, so do not use them to guess a match. When there is no exact match, follow the result's agentInstructions to create and wire every declared integration.\n\nThis connector is the single Superblocks MCP: Builder tools (upload_artifact, start_app, edit_app, check_app_progress, ask_user, get_app, build_app, publish_app, check_publish_progress) and Admin tools (integrations, apps, users, folders, deploy_application, and the rest of the customer Admin surface) share this endpoint
|
|
15
|
+
export declare const SERVER_INSTRUCTIONS = "Superblocks builds, edits, and publishes internal web applications. Prompts sent through these tools are handed to Superblocks, which writes the application code in a live-edit session.\n\nName the builder \"Superblocks\" in every word you write. Users sometimes call it \"Clark\", an older name for this same system: understand them, and answer about Superblocks. Never write \"Clark\" yourself \u2014 not as a name, not as an aside, not even when the user just used it, and never as a separate agent or persona. If Superblocks' own words come back naming Clark, relay the substance and say Superblocks.\n\nThe user you are interacting with is a non-technical business user. Keep discussions focused on requirements, and avoid technical jargon, discussing code, or implementation details. If errors or problems occur, give the user easy-to-follow, actionable instructions for how they can resolve the issue.\n\nUse these tools whenever the user asks to build, change, import, or ship an app, whichever of those names they reach for. They can also inspect what data the org has rather than building an app to explore it: list_integrations names the datasources, and get_integration_metadata reads the tables and columns inside one. Create a persistent app or API only when the user explicitly asks for one.\n\nAfter create_integration creates an integration or list_integrations selects one for an app, include the returned mention unchanged in the next edit_app prompt. The mention gives Superblocks the exact integration ID; do not construct one from the display name.\n\nSuperblocks is itself an agent, not a code library: prompts sent through start_app and edit_app are handed to it verbatim, and it decides how to build the application. Your role is to facilitate the user's interaction with Superblocks, not to build anything yourself \u2014 pass the user's own request through unchanged, without inventing, embellishing, or adding requirements, scope, or design detail they did not ask for.\n\nAfter each tool call, check for agentInstructions in the result and follow them. These instructions are tailored to the scenario.\n\nSuperblocks has an interactive flow: when it needs a person to decide something, it stops rather than guessing. Follow the result's agentInstructions to use the decision surface this client supports. Never supply that answer yourself.\n\nBuilding or editing an app follows one loop: start_app hands a new application to Superblocks, edit_app continues an existing one, and both return immediately with status \"building\". Call check_app_progress to follow the turn, relaying what Superblocks says as it happens. When it stops for a decision, follow agentInstructions and send the answer back through edit_app. Once status is \"ready\", call get_app so the user can open the result, and offer publish_app when they want to deploy it. Each tool's own description covers its exact inputs, return fields, and retry/error behavior.\n\nYour automatic verification is a load check and inspection of visible state, not a feature-by-feature test run. Run interactive feature tests only when the user requests testing. Do not click app controls or inspect API traffic as part of a load check; normal navigation and authentication are allowed. Keep relaying Superblocks' own test results. Do not claim features passed from a load check alone.\n\nWhen the user attached a file in this chat (a log, CSV, screenshot, image, zip, or anything else), or when migrating source visible in this conversation, call upload_artifact. Pass upload_artifact filePath with the full host path when you have it; a bare file name falls back to the gateway's search folders. If the file exists only in this chat's scratchpad path (for example /tmp/claude-.../scratchpad), send text source through files: [{ path, content }] instead of filePath. The gateway reads filePath bytes itself, so an image or PDF costs nothing to send. Only source you are writing out yourself goes in files, which is archived as text - never base64 a file into it. Then pass the returned artifact in start_app or edit_app artifacts. Do not create a Claude artifact or use the host's own file-upload UI.\n\nWhen the source is a readable tree on this machine, archive the source and assets with their original relative paths, excluding .git, node_modules, build output, secrets, and production data. Inspect the archive, upload it with upload_artifact filePath, then pass the returned artifact unchanged in start_app or edit_app artifacts. Local paths and prose descriptions are not a substitute for the source artifact: Superblocks cannot read the host's workspace. Ask Superblocks to read the attached source and preserve its UI and behavior. Reuse the artifact on retries. Follow the superblocks-import skill when available; Superblocks writes the application, not the host.\n\nFor a migrated app with missing integrations, call list_integrations first. Reuse only the same plugin and the same connection: the same REST base URL, or the same host, port, and database. A similar name is not a match. list_integrations and get_integration_metadata do not expose connection URLs or hosts, so do not use them to guess a match. When there is no exact match, follow the result's agentInstructions to create and wire every declared integration.\n\nThis connector is the single Superblocks MCP: Builder tools (upload_artifact, start_app, edit_app, check_app_progress, ask_user, get_app, build_app, publish_app, check_publish_progress) and Admin tools (integrations, apps, users, folders, deploy_application, and the rest of the customer Admin surface) share this endpoint. Prefer create_integration / list_integrations here over sending the user to a second MCP. create_integration takes name, plugin_id, and configuration, never the raw integrations API envelope. create_integration is Admin CRUD for org datasources; start_app creates an application and hands it a prompt. deploy_application is Admin deploy of an existing commit; publish_app is the Builder path that commits current work and waits for it to go live. Omit base_url on Admin tools unless targeting a different control plane. checkout_application is not exposed on this network surface (host filesystem writes); use the CLI/workspace checkout path instead.\n\nThis connection is already authenticated against one Superblocks Server \u2014 there is no setup, login, or auth-status call to make first. Call the tool that does the job and read its error if something is genuinely wrong; there is no tool that reports credentials or environments.\n\nNever tell the user to restart the MCP server; keep the MCP server running.\n\nA cancelled tool call does not undo work Superblocks already did. The application still exists; read applicationId on the error and follow agentInstructions (or pendingAction) instead of starting over.\n\nget_app's previewUrl opens the current development app with existing app permissions; it is not a published end-user URL. For a requested live-preview link, return that exact URL; do not open Share, change permissions, invite anyone, or publish. Call build_app only when the user explicitly requests an unpublished build or a shareable versioned preview, never automatically after an ordinary app creation, edit, or get_app. It creates a commit preview without publishing; retain its previewUrl and use get_preview_status for subsequent checks. If a sharing request is ambiguous (including \"Can I share this app?\"), ask before calling any tools whether they mean live preview, an unpublished commit preview, or publishing. Access permissions and deployment history cannot resolve this intent; an empty deployment history does not mean publishing is required to share a preview. Call publish_app or deploy_application only when the user explicitly asks to publish or deploy. Otherwise prefer MCP Apps Open editor / Open preview buttons over dumping editUrl / previewUrl / publishUrl into chat, especially preview JWTs. Claude Desktop can only openLink https URLs; when a URL is http, say so and rely on any screenshot instead.\n\nBrowser capture (MUST):\n1. Prefer host browser tools (Playwright MCP, chrome-devtools, agent-browser) over opening Superblocks URLs yourself. Honor the structured \"browser\" field on start_app / get_app / idp_step_up; do not paraphrase it into a different URL.\n2. When canvas.openWhileBuilding is \"claude_cowork_side_panel_only\", open canvas.editUrl while status is \"building\" only for a Claude Cowork task whose built-in browser is available, and use its embedded side panel. Every other host MUST NOT open it mid-build because that can steal the live-edit turn.\n3. NEVER paste tokens, JWTs, or API keys into browser evaluate or fill. Tokens are not in tool JSON; do not invent them.\n4. Playwright MCP MUST NOT use --isolated for Superblocks IdP. Cookies must survive the session.\n5. MUST NOT call browser_close until the Superblocks task is done (see driver.mustNotCloseUntil).\n6. agent-browser MUST always pass --profile and a stable --session for the same Superblocks origin.\n7. Claude-in-Chrome is not a mid-turn canvas. Do not use it to screenshot the live Vite app while a Gateway turn is held.";
|
|
16
16
|
/**
|
|
17
17
|
* The MCP server behind one stdio session.
|
|
18
18
|
*
|
|
@@ -5,7 +5,7 @@ import { z } from "zod";
|
|
|
5
5
|
import { URL_PARAMS } from "@superblocksteam/library-shared";
|
|
6
6
|
import { assertEnterprisePlan, EntitlementError, } from "@superblocksteam/mcp-server";
|
|
7
7
|
import { getIntegrationMetadata } from "../../capabilities/integration-metadata.js";
|
|
8
|
-
import { askUser, checkAppProgress, checkPublishProgress, editApp, getApp, getPreviewStatus, previewApp, publishApp, startApp, uploadArtifact, } from "../../capabilities/lifecycle.js";
|
|
8
|
+
import { askUser, checkAppProgress, checkPublishProgress, editApp, getApp, getPreviewStatus, previewApp, publishApp, publishAppInput, startApp, uploadArtifact, } from "../../capabilities/lifecycle.js";
|
|
9
9
|
import { IMPORT_ZIP_BASE64_MAX_CHARS } from "../../capabilities/types.js";
|
|
10
10
|
import { HOST_BROWSER_TOOLS_COWORK, HOST_BROWSER_TOOLS_UNKNOWN, } from "../../capture/browser-contract.js";
|
|
11
11
|
import { BROWSER_DRIVER_INSTRUCTIONS } from "../../capture/browser-instructions.js";
|
|
@@ -194,7 +194,7 @@ ${SOURCE_ARTIFACT_INSTRUCTIONS}
|
|
|
194
194
|
|
|
195
195
|
For a migrated app with missing integrations, call list_integrations first. Reuse only the same plugin and the same connection: the same REST base URL, or the same host, port, and database. A similar name is not a match. list_integrations and get_integration_metadata do not expose connection URLs or hosts, so do not use them to guess a match. When there is no exact match, follow the result's agentInstructions to create and wire every declared integration.
|
|
196
196
|
|
|
197
|
-
This connector is the single Superblocks MCP: Builder tools (upload_artifact, start_app, edit_app, check_app_progress, ask_user, get_app, build_app, publish_app, check_publish_progress) and Admin tools (integrations, apps, users, folders, deploy_application, and the rest of the customer Admin surface) share this endpoint
|
|
197
|
+
This connector is the single Superblocks MCP: Builder tools (upload_artifact, start_app, edit_app, check_app_progress, ask_user, get_app, build_app, publish_app, check_publish_progress) and Admin tools (integrations, apps, users, folders, deploy_application, and the rest of the customer Admin surface) share this endpoint. Prefer create_integration / list_integrations here over sending the user to a second MCP. create_integration takes name, plugin_id, and configuration, never the raw integrations API envelope. create_integration is Admin CRUD for org datasources; start_app creates an application and hands it a prompt. deploy_application is Admin deploy of an existing commit; publish_app is the Builder path that commits current work and waits for it to go live. Omit base_url on Admin tools unless targeting a different control plane. checkout_application is not exposed on this network surface (host filesystem writes); use the CLI/workspace checkout path instead.
|
|
198
198
|
|
|
199
199
|
This connection is already authenticated against one Superblocks Server — there is no setup, login, or auth-status call to make first. Call the tool that does the job and read its error if something is genuinely wrong; there is no tool that reports credentials or environments.
|
|
200
200
|
|
|
@@ -214,7 +214,7 @@ function serverInstructionsFor(client) {
|
|
|
214
214
|
|
|
215
215
|
${COWORK_EMBEDDED_BROWSER_TOOLS}`;
|
|
216
216
|
}
|
|
217
|
-
const PUBLISH_APP_DESCRIPTION_PREFIX = 'Publish/deploy the recent or specified Superblocks application.
|
|
217
|
+
const PUBLISH_APP_DESCRIPTION_PREFIX = 'Publish/deploy the recent or specified Superblocks application. Pass exactly one of commitMessage or commitId. commitMessage snapshots current work as a new commit: you write it yourself, as a short summary of what changed in the app since the last publish, like a git commit message ("Add a login page"). It is the message on that commit and it is shown in the app\'s history. commitId publishes an earlier commit and then omit commitMessage. Returns status "deployed" once the app is live, or status "publishing" when the deploy was accepted and is still rolling out - that is a success, not a failure: the commit is made and the policy gates passed. On "publishing", tell the user the publish went through and is rolling out, then follow it with check_publish_progress until it reports "deployed"; carry the returned commitId back on every check_publish_progress poll. ';
|
|
218
218
|
function publishAppDescription(hasNativeBrowser) {
|
|
219
219
|
return (PUBLISH_APP_DESCRIPTION_PREFIX +
|
|
220
220
|
(hasNativeBrowser
|
|
@@ -1027,18 +1027,34 @@ export function createMcpServer(deps, probeEditorDocument = createEditorDocument
|
|
|
1027
1027
|
inputSchema: {
|
|
1028
1028
|
applicationId: z.string().uuid().optional(),
|
|
1029
1029
|
branch: z.string().optional(),
|
|
1030
|
-
commitId: z
|
|
1030
|
+
commitId: z
|
|
1031
|
+
.string()
|
|
1032
|
+
.trim()
|
|
1033
|
+
.min(1)
|
|
1034
|
+
.optional()
|
|
1035
|
+
.describe("Existing commit to deploy. Omit commitMessage when this is set."),
|
|
1036
|
+
commitMessage: z
|
|
1037
|
+
.string()
|
|
1038
|
+
.trim()
|
|
1039
|
+
.min(1)
|
|
1040
|
+
.optional()
|
|
1041
|
+
.describe("Message for a new commit of current work. Write it yourself, as a short summary of what changed in the app since the last publish. Omit when publishing an existing commitId."),
|
|
1031
1042
|
idempotencyKey: z.string().optional(),
|
|
1032
|
-
prompt: z.string().min(1),
|
|
1033
1043
|
},
|
|
1034
1044
|
title: "Publish App",
|
|
1035
|
-
}, async ({ applicationId, branch, commitId,
|
|
1036
|
-
|
|
1037
|
-
|
|
1038
|
-
|
|
1039
|
-
|
|
1040
|
-
|
|
1041
|
-
|
|
1045
|
+
}, async ({ applicationId, branch, commitId, commitMessage, idempotencyKey }, extra) => run("publish_app", (context) => {
|
|
1046
|
+
const parsed = publishAppInput({
|
|
1047
|
+
applicationId,
|
|
1048
|
+
branch,
|
|
1049
|
+
commitId,
|
|
1050
|
+
commitMessage,
|
|
1051
|
+
idempotencyKey: idempotencyKey ?? `mcp-publish:${randomUUID()}`,
|
|
1052
|
+
});
|
|
1053
|
+
if (parsed.kind !== "ok") {
|
|
1054
|
+
return Promise.resolve(parsed);
|
|
1055
|
+
}
|
|
1056
|
+
return publishApp(context, parsed.value);
|
|
1057
|
+
}, extra, { applicationId, branch, commitId, commitMessage, idempotencyKey }));
|
|
1042
1058
|
server.registerTool("check_publish_progress", {
|
|
1043
1059
|
description: 'Report on the status of a publish. Each call watches the rollout for up to about 25 seconds and returns as soon as it completes. Returns status "deployed" once the app is live and "publishing" while the deploy is still rolling out; call it again until it is no longer "publishing". Follows the commit publish_app queued, so commitId is only needed to follow a different one. Publishing can take a long time, depending on the number of configured policy gates. Continue to poll until the app is live. Never re-deploys, and never claim the app is live while status is "publishing".',
|
|
1044
1060
|
inputSchema: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mount.js","sourceRoot":"","sources":["../../../src/transports/mcp/mount.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"mount.js","sourceRoot":"","sources":["../../../src/transports/mcp/mount.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@superblocksteam/gateway",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.163-next.1",
|
|
4
4
|
"description": "Gateway v0 — MCP entry for app start/edit/publish",
|
|
5
5
|
"license": "Superblocks Community Software License",
|
|
6
6
|
"bin": {
|
|
@@ -25,10 +25,10 @@
|
|
|
25
25
|
"@modelcontextprotocol/ext-apps": "^1.7.5",
|
|
26
26
|
"@modelcontextprotocol/sdk": "^1.30.0",
|
|
27
27
|
"@opentelemetry/api": "^1.9.1",
|
|
28
|
-
"@superblocksteam/library-shared": "2.0.
|
|
29
|
-
"@superblocksteam/mcp-server": "2.0.
|
|
30
|
-
"@superblocksteam/shared": "0.
|
|
31
|
-
"@superblocksteam/telemetry": "2.0.
|
|
28
|
+
"@superblocksteam/library-shared": "2.0.163-next.1",
|
|
29
|
+
"@superblocksteam/mcp-server": "2.0.163-next.1",
|
|
30
|
+
"@superblocksteam/shared": "0.9614.1",
|
|
31
|
+
"@superblocksteam/telemetry": "2.0.163-next.1",
|
|
32
32
|
"fflate": "^0.8.3",
|
|
33
33
|
"libpg-query": "^17.7.4",
|
|
34
34
|
"mdast-util-from-markdown": "2.0.2",
|
|
@@ -55,7 +55,7 @@
|
|
|
55
55
|
"tsx": "^4.20.3",
|
|
56
56
|
"typescript": "^6.0.3",
|
|
57
57
|
"typescript-eslint": "^8.59.2",
|
|
58
|
-
"vitest": "^4.
|
|
58
|
+
"vitest": "^4.1.11"
|
|
59
59
|
},
|
|
60
60
|
"engines": {
|
|
61
61
|
"node": ">=24",
|