/** * Trust store for custom `run:` actions in `.aidlc/actions.yaml`. * * `actions.yaml` is a tracked file, so in a cloned repository its contents are * whatever the repo author committed — including `run:` shell commands that the * event bus executes on ordinary lifecycle commands (`aidlc start`, * `aidlc transition`). Executing them without a machine-local trust decision * turns "clone and run aidlc" into arbitrary code execution. * * The store records SHA-256 hashes of the exact command strings the user has * approved, keyed per machine, never inside the tracked tree: * * - In a git repo it lives under the coordination root (`/ * aidlc/`), which a repository author cannot pre-populate via commit. * - Without a usable coordination root (no git, or a read-only common dir) it * lives in the per-user state dir, keyed by the project's real path. It never * falls back inside the project: a git-less copy is routine (a ZIP download, a * tarball), and an in-tree store would let that archive ship its own approvals * (security-review-findings/AC-1). With no per-user location either, nothing * is trusted (AC-3). * * Approval flows: `aidlc add action` records the hash at authoring time (the * user just confirmed the exact command), and the `trust-run-actions` doctor * migration (confirm tier) shows and approves commands that arrived by other * means — a clone, a pull, a hand edit. */ /** SHA-256 hex digest of a `run:` command string. */ export declare function runActionHash(command: string): string; /** * Machine-local path of the trust store for a project, or null when no location * outside the project can be found. Null means nothing is trusted. */ export declare function trustStorePath(projectRoot: string): string | null; /** Has this exact command string been approved on this machine? */ export declare function isRunCommandTrusted(projectRoot: string, command: string): boolean; /** * Record approval for command strings. Returns how many were newly added. */ export declare function trustRunCommands(projectRoot: string, commands: string[]): number; //# sourceMappingURL=action-trust.d.ts.map