import { type AgentResult } from "@vercel/detect-agent"; import { type CodingAgentId } from "./coding-agents.js"; export interface DrivingAgent { /** The name `@vercel/detect-agent` gives it. */ name: string; /** Our id for it, when it is one of the ten `connect` knows. */ id?: CodingAgentId; } /** * The agent running this command, when one says so. The rules are Vercel's * package, the same twelve Supabase ported and Smithery inherits; we use the * package rather than copy its variables. */ export declare const drivingAgent: (detect?: () => Promise) => Promise; export declare const AGENT_MODES: readonly ["auto", "yes", "no"]; export type AgentMode = (typeof AGENT_MODES)[number]; /** * Supabase's global flag, verbatim (`--agent <[ auto | yes | no ]> Override * agent detection: yes, no, or auto (default auto)`, ledger captures/tools/ * supabase.help.plain:23; row P53). Read before commander parses, because the * answer decides whether there is a menu to parse into. `auto` is the package's * verdict; `yes` is an agent even when nothing says so; `no` is a person even * inside one. An unknown value is left to commander, whose choices refuse it. */ export declare const agentMode: (argv: readonly string[]) => AgentMode; /** The agent driving this command once the override has spoken. */ export declare const resolveDrivingAgent: (mode: AgentMode, detect?: () => Promise, env?: NodeJS.ProcessEnv) => Promise; /** * Said once per run, to stderr, when an agent is driving: Vercel's skills line * (`● claude Agent detected — installing non-interactively`, ledger README * P51) with the docs an agent can read in one request under it, Railway's * headless shape (row 17 of the decision page). */ export declare const agentDetectedLines: (agent: DrivingAgent) => string; /** * The machine tag Vercel's CLI (packages/cli/src/index.ts:179-184) and * Supabase's (login-claude-hint.ts:12) write to stderr inside Claude Code, so it * can offer the plugin. Ours names our plugin and marketplace. */ export declare const CLAUDE_CODE_HINT = ""; /** Relay's documentation, written for an agent to read in one request. */ export declare const DOCS_LLMS_URL = "https://docs.relayapp.im/llms.txt"; /** * llms.txt is one H1 and a list of H2 sections (llmstxt.org). `docs --list` * names the sections and `docs
` prints one, so an agent can take the * part it needs instead of 32,825 bytes (Anthropic, "Writing tools for agents": * pagination or range selection for any response that could fill the context; * ledger rows P45 and P47). Bare `docs` still prints the whole file. */ export declare const docsSections: (text: string) => string[]; /** The named section, heading included, up to the next H2; undefined when there is no such section. */ export declare const docsSection: (text: string, name: string) => string | undefined; export declare const readDocs: (fetchImplementation?: typeof globalThis.fetch) => Promise; /** * The installer names a target by agent, not by folder. `cline` is the agent * whose global folder is `~/.agents/skills`, the place every runtime-neutral * agent reads, and `claude-code` is `~/.claude/skills` (skills@1.5.25 README, * "Supported Agents"). Claude Code is added only when this computer has it. */ export declare const skillTargets: (home: string, env: NodeJS.ProcessEnv) => Promise; //# sourceMappingURL=agent-driver.d.ts.map