/** * Unit tests for scope-aware download (US-005 wiring into `sync()`). * * Covers the contract added when `syncMode` / `prefixSet` were threaded * through `computePullPlan` + the scope-shrink pass: * * - `all` → no filtering (regression guard lives in sync.test.ts). * - `shared` → only keys covered by `prefixSet` download; the rest are * classified `skip-out-of-scope` (NOT downloaded). * - `custom` → same mechanism, driven by the explicit path list. * - Idempotency → a second `shared` pull downloads nothing and removes * nothing (the PullRecord makes scope-change a no-op). * - Scope shrink → narrowing `all → shared` prunes the now-out-of-scope * CLEAN local orphan; a DIRTY orphan aborts with * `ScopeShrinkBlockedError` unless `forceScopeShrink`. * * The security contract (this filter is footprint-only, never an authz * boundary) is asserted indirectly: out-of-scope keys are still LISTED and * accessible — the engine simply chooses not to materialize them. */ export {}; //# sourceMappingURL=sync-scope.test.d.ts.map