import type { CodingAgent } from "./coding-agents/shared.js"; export type { CodingAgent } from "./coding-agents/shared.js"; export { platformPath, claudeConfigDir, codexHome, hermesHome, openclawHome, piHome } from "./coding-agents/shared.js"; /** * The ten runtimes `connect` knows, in the order the help lists them. * This is the one table: detection, the "Supported agents" line, the prompt, * the plan and the tests all read it, so the list cannot drift between screens. * * Ruled 2026-09-10 (_artifacts/cli-connect-targets-20260910): an agent ships * when at least three of the seven installers that publish a target list carry * it; Hermes and OpenClaw ship because the plugins are ours. Claude Desktop was * dropped 2026-09-11: it has no native wake (remote-MCP connectors only), so an * MCP-file connect could never make it answer a Relay message on its own. * Identifiers are the ones Smithery and Docker MCP share, Docker's where they * differ; `claude` stays as an alias of `claude-code` so this week's docs and * scripts keep working. Install checks are Docker's `installCheckPaths` * (docker/mcp-gateway pkg/client/config.yml) and Vercel's `detect(home)` * (vercel/vercel packages/cli/src/util/ai-gateway/coding-agents/agents/*): * does the agent's own folder exist under home. No binaries are run. */ export type CodingAgentId = "claude-code" | "codex" | "cursor" | "opencode" | "cline" | "vscode" | "gemini-cli" | "hermes" | "openclaw" | "pi"; export interface AgentPaths { env: NodeJS.ProcessEnv; home: string; platform: NodeJS.Platform; /** The folder connect runs in: the project scope of an agent that has one. */ cwd: string; } /** * How Relay reaches the agent once its token is saved on this computer. Every * MCP entry is Relay's hosted server with the agent's token (hosted-mcp.ts). * - `claude-bridge`: Relay drives Claude Code through the Agent SDK, without config files. * - `mcp-command`: the agent's own `mcp add` writes its config. * - `codex-project`: Relay writes `[mcp_servers.relay]` into the folder's own * `.codex/config.toml`, Codex's project layer (codex-rs/core/src/config.rs, * `project_config`), loaded when the folder is trusted. * - `mcp-file`: Relay adds one entry to the agent's MCP config file. * - `acp-bridge`: Relay hands the hosted MCP server to the agent's ACP session * and drives the agent's turns (acp-bridge.ts). An agent that ignores the * servers a session hands it names `mcpSettings`, the MCP settings file it * reads instead, and Relay adds its server there. * - `hermes-plugin`, `openclaw-plugin`: our plugins, as Relay-Docs describe. */ export type ConnectMethod = { kind: "claude-bridge"; } | { kind: "mcp-command"; file: (paths: AgentPaths) => string; } | { kind: "codex-project"; file: (paths: AgentPaths) => string; } | { kind: "mcp-file"; file: (paths: AgentPaths) => string; shape: "vscode"; } | { kind: "acp-bridge"; mcpSettings?: (paths: AgentPaths) => string; } | { kind: "pi-channel"; } | { kind: "hermes-plugin"; } | { kind: "openclaw-plugin"; }; export declare const CODING_AGENTS: readonly CodingAgent[]; export declare const CODING_AGENT_IDS: readonly CodingAgentId[]; export declare const codingAgent: (id: CodingAgentId) => CodingAgent; /** The line the help prints under Usage, the way Docker MCP prints its clients. */ export declare const supportedAgentsLine: () => string; /** Accepts an id or one of its aliases, in any case, with spaces around it. */ export declare const normalizeAgentId: (value: string) => CodingAgentId | undefined; /** * The agent `@vercel/detect-agent` says we are running inside, when we know it. * The package answers with its own short names, or with whatever `AI_AGENT` * holds; its README asks tools to set `` or `@`, and * Claude Code 2.1 sets `claude-code__agent` (measured 2026-09-10 on * the owner's Mac mini), so the leading word is what is matched. */ export declare const agentDetectedAs: (name: string) => CodingAgentId | undefined; //# sourceMappingURL=coding-agents.d.ts.map