Monorepo layout
Hover is a single pnpm workspace. The workspace packages are core, mcp, and vscode-ext (plus the site docs app). The repo is pnpm + ESM throughout.
(Removed and living only in git history: the old bundler-plugin / in-page-widget packages — vite-plugin-hover, @hover-dev/astro / nuxt / next, webpack-plugin-hover, @hover-dev/cli, @hover-dev/widget-bootstrap, @hover-dev/transform-source — and the old probe packages @hover-dev/api-test / @hover-dev/pentest / probe-engine, whose HTTPS-MITM approach was replaced by passive CDP capture inside @hover-dev/mcp.)
Packages
| Package | What it does |
|---|---|
@hover-dev/mcp (packages/mcp) | The MCP-first surface. A thin MCP frontend over the engine: registers the grounded actuation tools + crystallize_spec + the test_app prompt, and connects over stdio to whatever agent adds it. Published to npm. |
@hover-dev/core (packages/core) | The Node engine: launch / connect the debug Chrome over CDP, grounded locate + actuate, the deterministic writeSpec crystallizer, and the .hover/ memory loaders. Exposes an ./engine barrel the MCP imports. Published to npm. |
hover-dev (packages/vscode-ext) | The optional VS Code review cockpit: a Business Map graph + a Dashboard. Ships the engine inside the .vsix (scripts/stage-engine.mjs npm packs local packages/core) and spawns it under VS Code's own Node. Publisher hyperyond. |
dist-entry package (@hover-dev/core)
Most packages set main / exports directly to src/*.ts, so consumers' transpilers see TypeScript source with zero build step.
The exception, @hover-dev/core, points main / exports at dist/*.js. The reason: the VS Code extension's staged engine and the @hover-dev/mcp package both import @hover-dev/core from its built dist, so core must build to dist.
Practical implications:
- A root
postinstallhook builds core after everypnpm install. Fresh clones get usabledist/artefacts immediately. - Editing
core/srcduring extension dev needs apnpm --filter @hover-dev/core build(or adevwatch terminal) so the staged engine picks it up;pnpm --filter hover-dev packagere-packs core fresh into the.vsix.