/** * Pack resolution — the only module that reads pack sources. * * Every other part of the feature (install, review, gate, check, report) goes * through `listPacks` and `resolvePack` and never builds a path into a pack * directory itself. That is what makes adding a licensed pack later a change to * this file rather than a change to how everything loads, and it is asserted at * source level rather than left as an intention. * * **Packs come only from the content package in this release.** A pack's control * text becomes instructions an agent executes during review, so the pack source is * a trust boundary of the same kind `security/action-trust.ts` was built for: in a * cloned repository, a project-local file's contents are the repo author's. A * `.aidlc/packs/` directory is therefore not enumerated and cannot be installed. * Admitting a non-bundled source later needs a trust decision, not just a code * path. * * **A pack id from the command line is matched, never joined.** `resolvePack` * compares the requested id against the enumerated set before any path is built * from it, so `aidlc compliance add ../../etc` takes the unknown-pack exit rather * than reaching the filesystem. * * Requirements: compliance-packs/AC-8, AC-16, AC-47, AC-53, AC-64, AC-66, AC-67, AC-99 */ import type { Pack, PackError, PackMeta, PackResult } from './types.js'; /** * Absolute path of the bundled packs directory. * * The single place a pack path originates. Exported for tests and for the * publish-reachability assertion, not for callers wanting to read a pack. */ export declare function packsRoot(): string; /** * Resolve one pack by id. * * The id is matched against the enumerated set **before** any path is built from * it, so a traversal-shaped argument is an unknown pack rather than a filesystem * read. Never returns null: an absent pack carries a reason. */ export declare function resolvePack(id: string): PackResult; /** Outcome of enumerating the available packs. */ export interface PackListing { /** Packs that resolved. */ packs: PackMeta[]; /** * Packs that exist but did not resolve. Listed rather than hidden: a pack that * is present and broken is a different situation from one that is absent, and * silently dropping it is how a shipping defect stays invisible. */ errors: PackError[]; } /** * Enumerate every available pack. * * Reads the content package only. Takes no project root, so there is no parameter * through which a project-local pack could be offered. */ export declare function listPacks(): PackListing; /** * Every pack id available, for exact-match validation of a command argument. */ export declare function availablePackIds(): string[]; /** Resolve a pack and return only its controls, for the phases given. */ export declare function controlsForPhase(pack: Pack, phase: string): import("./types.js").Control[]; //# sourceMappingURL=resolver.d.ts.map