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

PackageWhat 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 postinstall hook builds core after every pnpm install. Fresh clones get usable dist/ artefacts immediately.
  • Editing core/src during extension dev needs a pnpm --filter @hover-dev/core build (or a dev watch terminal) so the staged engine picks it up; pnpm --filter hover-dev package re-packs core fresh into the .vsix.