import type { Transport } from "@modelcontextprotocol/server"; import { clearGodotPathCache, getCachedGodotPath } from './core/godot-finder.js'; import type { WebGuiServerOptions } from './web-gui/server.js'; export { clearGodotPathCache, getCachedGodotPath }; export interface ServerOptions { mode?: string; connectionMode?: 'headless' | 'editor'; readOnly?: boolean; noFallback?: boolean; /** P2-1: --overrides CLI flag 指定的默认 override 脚本路径列表,graceful shutdown 时批量卸载 */ overrides?: string[]; } export declare class GodotServer { private server; private opsScript; private options; private readOnlyGuard; private dispatcher; private connectionMode; private editorMgr; private noFallback; private agentCtx; private stateStore; private orphanScanTimer; private httpReceiver; private instanceHeartbeatTimer; private selfInstanceId; private resourceSubscriptions; private webGuiServer; /** run() 完成后已定(设计 B-2):index.ts 的 TUI 决策查询点。 */ webGuiActive: boolean; constructor(opsScript: string, options?: ServerOptions); private setupHandlers; /** Phase 2b: Multi-instance initialization (async fs — C-02). * 2026-08-10 行225:补全接收端 HTTP server——此前 send-side only,现 verifyApiToken 闭环。 */ private initMultiInstance; /** Send tools/list_changed notification to client. Called when active groups change. */ sendToolListChanged(): void; /** daemon 批(spec §3.3):transport 注入点,从 run() 拆出。stdio 路径由 run() 传 * StdioServerTransport(原 run() 前两行等价搬移,行为零变化);daemon 路径由 * src/daemon/main.ts(Task 5)传 HTTP transport 调用本方法。 * 本方法只做 connect——不注册任何 process.stdin 钩子(daemon 纪律:detached 进程 * stdin 立即 end,stdio 式自杀钩子会让 daemon 启动即死,spec 第 2 轮 m-1; * stdio 入口的 stdin-end 钩子在 index.ts 入口层注册,不在本类)。 */ connectTransport(transport: Transport): Promise; /** daemon 批 A(2026-09-30 Task 5):WebGuiServer 注入面工厂——run()(stdio 路径)与 * src/daemon/main.ts runDaemon()(daemon 路径)共用的单一构造点(spec §3.2 N-3 * 透传原则:十余注入点不复制两份)。做成实例方法而非模块级导出函数:注入闭包引用 * this.dispatcher / this.close(私有成员,模块级函数触达需再开访问器),方法体内 * this 引用原样保留 = 从 run() 的纯搬移,注入面零变化(等价性由既有 test/web-gui/ * server-http 等全套用例守护)。overrides 仅 daemon 侧使用(strictPort/portStart/ * instanceKind/token/mcpHandler/onSelfRestart 特化);spread 语义下 overrides 的 * undefined 值会覆盖基座,daemon 侧仅传确定值键。 */ buildWebGuiOptions(overrides?: Partial): WebGuiServerOptions; run(): Promise; /** 标记状态为脏,触发防抖刷盘。 */ private markStateDirty; close(): Promise; }