pub async fn install_pack(
db: &SqlitePool,
manifest: &PackManifest,
dry_run: bool,
) -> Result<InstallPackOutcome, CoreError>Expand description
Install (or dry-run preview) every rule in a fetched pack manifest.
Idempotency / supersede (roadmap §5 step 6): a rule already present at this
exact pack:<id>@<version> is left untouched; a rule present at a different
version of the same pack is deleted and replaced (version supersede), keyed
on its pack-rule:<ruleId> tag. All writes happen in one transaction; the
store’s updated_at is bumped so the cross-repo starter index rebuilds
lazily on next recall.