refactor(import): load the import engine as a dependency

This commit is contained in:
Mohamed Boudra
2026-07-20 15:05:57 +02:00
parent 194822b939
commit 9519c5ba99
61 changed files with 656 additions and 3811 deletions
+8 -8
View File
@@ -94,16 +94,16 @@ facade. App and CLI may import the low-level driver from
code imports from `@getpaseo/client`. Node automation uses
`@getpaseo/client/node`, which owns daemon discovery, authentication, transport
selection, and the capability-gated host automation facade shared by the CLI and
published migration tools.
published import tools.
### `packages/migrate` — Installation migration CLI
### External project import
Published as `@getpaseo/migrate`. It inspects third-party installation metadata
through source adapters, maps source-neutral projects/config/workspaces, and
applies them through the public Node host automation client. Source knowledge and
fixtures stay in this package; the daemon and shared app workflow remain
source-neutral. Desktop bundles the exact-version CLI and exposes a narrow,
local-only Electron bridge for supported migrations.
The private [`getpaseo/import`](https://github.com/getpaseo/import) repository publishes
`@getpaseo/import`. It owns source discovery, parsing, mapping, fixtures, the CLI, and the
programmatic import engine. Paseo Desktop pins an exact package version and calls its library
entrypoint from Electron main, passing the public Node host-automation facade and forwarding typed
progress events through a narrow IPC bridge. Paseo does not contain source databases, parsers, or
import-package release machinery.
### `packages/app` — Mobile + web client (Expo)
+5 -5
View File
@@ -156,13 +156,13 @@ Vitest picks up tests by suffix. The suffix tells the runner which category it b
App-level Playwright browser E2E lives in `packages/app/e2e/*.spec.ts` and runs via `npm run test:e2e --workspace=@getpaseo/app` (separate from Vitest E2E). App Playwright specs that hit real providers use `*.real.spec.ts` and run through `npm run test:e2e:real --workspace=@getpaseo/app`; the default app E2E project ignores that suffix so CI does not need provider credentials.
Desktop migration coverage starts from the real product Integrations row and crosses the real
Electron main process, compiled sandboxed preload, production migration IPC, a real
Desktop-managed daemon, and the bundled migration entrypoint. It covers confirmation, streamed
output, success, failure, and ineligible-host UI:
Desktop import coverage starts from the real product Integrations row and crosses the real Electron
main process, compiled sandboxed preload, production import IPC, the installed import library, and a
real Desktop-managed daemon. It covers confirmation, streamed output, success, failure, and
ineligible-host UI:
```bash
npm run test:migration-electron --workspace=@getpaseo/desktop
npm run test:import-electron --workspace=@getpaseo/desktop
```
Live provider smoke tests belong in `*.real.e2e.test.ts`, not `*.test.ts`, even when guarded by environment variables. Default unit suites must use deterministic provider adapters/fakes so missing credits, auth outages, and upstream model drift do not block normal CI.