/** * Where this workspace's Copilot MCP config lives. * * Copilot's own config (~/.copilot/mcp-config.json) is GLOBAL, so on a box with * several agents each sync clobbered the last and every copilot agent ended up * driving whichever workspace synced most recently. We therefore keep a * per-workspace file and hand it to copilot with `--additional-mcp-config @`. * * Exported so the writer (syncProjectMcpServers) and the reader * (buildCopilotCliCommand) can never disagree about the path. */ export declare function copilotMcpConfigPath(root: string): string; export declare class ConfigManager { /** * Bypass all permission prompts for autonomous runs: defaultMode * 'bypassPermissions' at the user level and, if a workspace root is given, the * project level too. * * NB: this used to write `permissions.allow: ["*"]` to the project settings, * but a wildcard tool name is INVALID in Claude Code allow rules — Claude prints * a "Settings Warning … Invalid permission rule '*' was skipped" and drops it * (a glob is only allowed after a literal `mcp____` prefix). defaultMode * achieves the same "allow everything" without the warning, so we set that and * strip any stale "*" an older version left in `allow`. */ static applyClaudePermissions(root?: string, log?: (m: string) => void): void; /** * Write permission:{"*":"allow"} to the OpenCode user config and optionally * to /opencode.json (project-level). */ static applyOpenCodePermissions(root?: string, log?: (m: string) => void): void; /** * Enable or disable `setCacheKey: true` for all provider sections in the * project-level `opencode.json`. When `enabled` is true, every existing * provider entry gets `options.setCacheKey = true` added. When false, the * key is deleted (options object is pruned if it becomes empty). */ static applyOpenCodeCacheSettings(root: string, enabled: boolean, log?: (m: string) => void): void; /** * Apply `timeout` and `chunkTimeout` to every provider section in the * project-level `opencode.json`. Values of 0 mean "remove the key" so the * OpenCode default applies. */ static applyOpenCodeTimeoutSettings(root: string, timeoutMs: number, chunkTimeoutMs: number, log?: (m: string) => void): void; /** * Write MCP server definitions to project-local config files only. * Covers: .claude/settings.local.json, .vscode/mcp.json, opencode.json, .mcp.json * The memory server uses its own default store (memory.jsonl beside the * installed @modelcontextprotocol/server-memory package). * * The full server set is `DEFAULT_MCP_SERVERS` ∪ user-defined entries from * `.autodev/settings.json:mcpServers`. User entries with the same name as * a default override the default — that lets users tune env vars / args of * the built-in servers (e.g. point `memory` at a different file). */ static syncProjectMcpServers(root: string, log?: (m: string) => void): void; /** * Report the agent's effective MCP servers to pixel-office so the profile's * MCP tab can show what the agent actually has (built-ins + the pixel-office * A2A server + user entries). Sends names/kind/detail ONLY — never headers, * tokens, or env values. Best-effort and fire-and-forget. */ static reportProjectMcp(root: string, log?: (m: string) => void): Promise; /** * Report the applied skill slugs back to pixel-office so the office UI can show * which skills the agent actually took. Mirrors reportProjectMcp: derives the * office origin from the workspace binding (no hardcoded URL), sends names ONLY, * best-effort / fire-and-forget. */ static reportProjectSkills(root: string, skills: string[], log?: (m: string) => void): Promise; /** * @deprecated Use syncProjectMcpServers(root) instead. * Kept for backwards compat — no longer called from applyAll. */ static syncDefaultMcpServers(log?: (m: string) => void): void; static applyAll(root?: string, log?: (m: string) => void): void; }