Skip to main content
wiring/next-root
<file> is the exact layout or _app file doctor found covering your pages; <children> is whatever that file already renders ({children} on the App Router, <Component {...pageProps} /> on the Pages Router). check: wiring/next-root · error_code: E-WIRE-004 · doctor exits: 1

What you’re seeing

The app builds, every route renders, and npx vendo doctor still fails. There is no way for a user to reach the agent because the provider that carries the wire down to the UI was never mounted.

Why

vendo init scaffolds the server route and the .vendo/ contract, but it never edits your source files. Mounting <VendoProvider> in your layout is the one step init hands back to you, and it’s printed as the last line of init’s own output.

The fix

Wrap the children in whichever layout covers your pages.
app/layout.tsx
On the Pages Router, wrap <Component {...pageProps} /> in pages/_app.tsx the same way. If you have host components, declare the registry in your own "use client" file and mount the provider there instead: a Server Component layout cannot pass component references to a client provider without crashing every page.
  • E-WIRE-003: the route this provider needs to reach is missing
  • E-WIRE-006: the provider is mounted but nothing visible sits inside it
  • E-WIRE-010: the same mount, still using the retired <VendoRoot> name