/** * Agent-install DX (design 2026-07-19 §CLI-3) — the doctor error-code * registry. Every failure mode doctor can report has one stable, grep-able * code here: E--, where the area groups related checks (WIRE * wiring, CFG config files, STORE store persistence, DEP host dependency * versions, MCP door, CLOUD key, TOOLS catalog). Codes are * append-only: never renumber or reuse one — the verify page anchors * (`fix_ref`) and agents' remediation notes depend on them staying put. A * check that goes away leaves its entry behind, marked RETIRED, for the same * reason. Doctor reads only what is on disk, so every code that needed a * running app to observe (DEV, LIVE, AUTH, TURN, SCHED and the fetched half * of MCP) is retired below. * * This is the ONE module a CI check enumerates to assert every code has a * matching verify-page anchor (no registry rot). * * An AREA groups checks, not severities: E-MODEL-001 is a WARNING (doctor still * exits 0 — a host may keep its key outside the files doctor can read), and it * carries a code for the same reason every other finding does, so an agent can * grep it and follow the fix_ref. */ export declare const DOCTOR_ERROR_CODES: { readonly "E-WIRE-001": "Express server is not wired with createVendo from @vendoai/vendo/server"; readonly "E-WIRE-002": "Express client is not wrapped in "; readonly "E-WIRE-003": "the Next.js catch-all handler app/api/vendo/[...vendo]/route.ts is missing"; readonly "E-WIRE-004": "the Next.js root layout is not wrapped in "; readonly "E-WIRE-005": "the @vendoai/vendo (or vendoai alias) dependency is not declared"; readonly "E-WIRE-006": "no visible agent surface is mounted ( alone renders nothing)"; readonly "E-WIRE-007": "no createVendo server wiring found in an unknown-framework host"; readonly "E-WIRE-008": "no found in an unknown-framework host's source"; readonly "E-WIRE-009": "detected \"use server\" actions are not registered or not wired into createVendo"; readonly "E-WIRE-010": "the host still names the removed (swap it for )"; readonly "E-WIRE-011": "@vendoai/vendo is not resolvable from the app (a vendoai-alias-only install under pnpm)"; readonly "E-CFG-001": "a required .vendo/ config file is missing"; readonly "E-CFG-002": ".vendo/data/.gitignore is missing"; readonly "E-CFG-003": "the OpenAPI spec's relative server mount and VENDO_BASE_URL's path prefix disagree"; readonly "E-CFG-004": "the Next host's next.config does not keep PGlite and esbuild out of the server bundle (serverExternalPackages)"; readonly "E-STORE-001": "the store's data directory is on ephemeral disk (it will be wiped on redeploy)"; readonly "E-TENANT-001": "tenant connectors are wired but the store has no encryption key, so a tenant's pasted token has nowhere safe to live"; readonly "E-DEP-001": "the installed ai package is a major version @vendoai/vendo does not support"; readonly "E-DEP-002": "RETIRED — doctor no longer reads a running wire's version"; readonly "E-DEP-003": "the installed zod predates the zod/v3 + zod/v4 subpaths the AI SDK imports (zod < 3.25)"; readonly "E-UI-001": "RETIRED — `vendo eject` was removed, so no surface can drift from the installed @vendoai/vendo/ui"; readonly "E-DEV-001": "RETIRED — doctor no longer starts a dev server"; readonly "E-LIVE-001": "RETIRED — doctor no longer reads /status"; readonly "E-LIVE-002": "RETIRED — doctor no longer reads /status"; readonly "E-LIVE-003": "RETIRED — doctor no longer reads /status"; readonly "E-LIVE-004": "RETIRED — doctor no longer reads the execution venue off /status"; readonly "E-LIVE-005": "RETIRED — doctor no longer reads the execution venue off /status"; readonly "E-LIVE-006": "RETIRED — doctor no longer requests the app's root page"; readonly "E-LIVE-007": "RETIRED — doctor no longer emits this; E2B_API_KEY does not select an execution venue"; readonly "E-LIVE-008": "the host still calls store ops the wire has deprecated and will remove"; readonly "E-AUTH-001": "RETIRED — doctor no longer probes present credentials"; readonly "E-AUTH-002": "RETIRED — doctor no longer probes present credentials"; readonly "E-AUTH-003": "RETIRED — doctor no longer probes present credentials"; readonly "E-AUTH-004": "RETIRED — doctor no longer probes actAs"; readonly "E-AUTH-005": "RETIRED — doctor no longer probes actAs"; readonly "E-AUTH-006": "RETIRED — doctor no longer probes actAs"; readonly "E-AUTH-007": "RETIRED — doctor no longer probes actAs"; readonly "E-AUTH-008": "RETIRED — doctor no longer probes actAs"; readonly "E-AUTH-009": "supabase() is wired but neither SUPABASE_JWT_SECRET nor SUPABASE_URL is set"; readonly "E-AUTH-010": "clerk() is wired but neither CLERK_SECRET_KEY nor CLERK_JWT_KEY is set"; readonly "E-MCP-001": "RETIRED — doctor no longer fetches MCP discovery documents"; readonly "E-MCP-002": "RETIRED — doctor no longer fetches MCP discovery documents"; readonly "E-MCP-003": "RETIRED — doctor no longer fetches the MCP server card"; readonly "E-MCP-004": "server.json does not meet MCP registry discovery requirements"; readonly "E-MCP-005": "RETIRED — doctor no longer compares server.json against a live door"; readonly "E-MCP-006": "server.json is invalid JSON"; readonly "E-MCP-007": "the local MCP registry auth challenge is malformed"; readonly "E-MCP-008": "RETIRED — doctor no longer fetches the live registry auth challenge"; readonly "E-MCP-009": "the MCP door is wired but VENDO_BASE_URL is not set (discovery advertises the wrong origin)"; readonly "E-MCP-010": "a dev sign-in key (VENDO_SERVICE_KEY) is set alongside a Cloud key on an https deployment, so the door serves its own OAuth instead of the Cloud broker"; readonly "E-SCHED-001": "RETIRED — doctor no longer reads machines and schedules off a running app"; readonly "E-TURN-001": "RETIRED — doctor no longer runs a model turn"; readonly "E-TURN-002": "RETIRED — doctor no longer runs a model turn"; readonly "E-CLOUD-001": "VENDO_API_KEY is set but not usable"; readonly "E-MODEL-001": "the key this install's `models` wiring reads is not set (the wire is wired, but the agent cannot answer a single turn)"; readonly "E-TOOLS-001": "every extracted host tool is disabled or excluded (zero live host tools)"; readonly "E-TOOLS-002": "the extracted tool surface is empty (zero host tools)"; readonly "E-TOOLS-003": "part of the tool catalog is ungraded (nobody has graded it, so it asks on every call)"; readonly "E-TOOLS-004": "part of the tool catalog declares no request/response shape (the agent must pass whole outputs through / cannot know the arguments)"; readonly "E-TOOLS-005": "some extracted host tools are off, so the agent will never offer them (an audience grade or an explicit disable took them)"; }; export type DoctorErrorCode = keyof typeof DOCTOR_ERROR_CODES; /** Complete list of every code doctor can emit, for CI enumeration. */ export declare const doctorErrorCodes: readonly DoctorErrorCode[]; /** Where the per-code troubleshooting pages live: one page per code, named for the lowercased code (the 1:1 contract doctor-codes.docs.test.ts enforces). The docs host serves them directly — the marketing-site path 302s, and some agent HTTP clients refuse the hop (FINDINGS F7a). The retired `/agents/verify#` spelling was a dead link twice over: the page moved in the Cloud restructure, and a code in a URL FRAGMENT never reaches the server, so every fix_ref landed on the same index and left the reader to find their own code. */ export declare const TROUBLESHOOTING_URL = "https://docs.vendo.run/production/troubleshooting"; /** Full fix URL for a code: its own page, with the installed vendoai version as * a query param so the page can version-match its guidance. */ export declare function doctorFixRef(code: DoctorErrorCode, version?: string): string;