/** * An MCP App: the scene tree, rendered inline in the client instead of read as * a wall of indented text. * * This is the bidirectional pitch made visible. The model already gets the tree * as text; what it could never do is let the DEVELOPER point at a node. Here * they can — clicking one sends `ui/update-model-context`, so the next thing * the model reads is "the human is looking at Player/AttackBox". * * Extension: `io.modelcontextprotocol/ui` (SEP-1865), stable spec 2026-01-26. * Hosts that do not support it ignore the `_meta.ui` on the tool and the * resource, and the tool keeps returning exactly the text it returned before — * this adds a surface, it does not change one. * * No framework and no external fetch on purpose: the host frames this in a * sandboxed iframe under a CSP, and a dependency-free page needs no * `connectDomains` grant at all. */ export declare const SCENE_TREE_APP_URI = "ui://godot-mcp-bridge/scene-tree"; /** The one mimeType the spec allows for an app resource. */ export declare const MCP_APP_MIME = "text/html;profile=mcp-app"; export interface SceneTreeNode { name: string; type: string; script: string | null; hidden: number; children: SceneTreeNode[]; } /** * Turn the tool's indented text into nodes. * * Player (CharacterBody2D) [player.gd] * AttackBox (Area2D) (+1 descendant node(s), depth-limited) * * Parsing here rather than changing the Godot side means the text the MODEL * receives is byte-for-byte what it always was; the panel is additive. * * Defined as a standalone function with no closure so it can be both unit * tested here and stringified into the page below — the page runs this exact * code, not a copy that can drift from it. */ export declare function parseSceneTreeText(text: string): SceneTreeNode[]; export declare const SCENE_TREE_APP_HTML: string; /** The resource entry, in the shape resources/list and resources/read want. */ export declare const SCENE_TREE_APP_RESOURCE: { readonly uri: "ui://godot-mcp-bridge/scene-tree"; readonly name: "Scene tree (interactive)"; readonly description: "The open scene's node tree, rendered as a collapsible panel instead of indented text. Clicking a node tells the model what the developer is pointing at."; readonly mimeType: "text/html;profile=mcp-app"; readonly _meta: { readonly ui: { readonly csp: { readonly connectDomains: readonly []; readonly resourceDomains: readonly []; }; readonly prefersBorder: true; }; }; }; //# sourceMappingURL=scene-tree-app.d.ts.map