/** * Aexol MCP spectral extension. * * Loaded by the spectral wrapper via `--extension `. On startup it: * 1. Boots the Aexol backend MCP client via the shared * `createAexolBackendClient()` factory in ./aexol-backend-client.ts * (config load, token resolution, initial tools/list call, OAuth * re-auth on 401/403). * 2. Reads the local Studio binding (`.aexol/aexol.jsonc`) so remote tools * auto-inherit `teamId` / `projectId`; the binding itself is managed from * agent via the `local_bind_project` / `local_unbind_project` tools * registered at startup (see step 4). * 3. Registers every returned remote tool through ext.registerTool() so the * model can call them like built-in tools. * 4. Registers local binding-management tools (`local_bind_project`, * `local_unbind_project`, `local_get_binding`) so users can bind a * directory to an Aexol Studio project from within the agent. * * Each registered tool is just a thin proxy: when spectral's model invokes it, we * translate the call into a JSON-RPC tools/call POST and unwrap the response * into the `{ content: [{ type: "text", text }], details }` shape spectral expects. * * Failure modes are intentionally non-fatal: if config is missing or the * backend is unreachable we log a warning and return, leaving spectral to start * without Aexol tools rather than crashing the whole agent. */ import type { ExtensionAPI } from "../sdk/coding-agent/index.js"; export default function aexolMcpExtension(ext: ExtensionAPI): Promise; //# sourceMappingURL=aexol-mcp.d.ts.map