/** * Single source of truth for the on-disk `.audit-tools/` layout shared by both * orchestrators. Every path is derived from a passed repository root (or, for * the per-artifacts-dir helpers, from an already-resolved artifacts dir) so the * literal directory names (`.audit-tools`, `audit`, `remediation`, `steps`, * `submissions`) live in exactly one place. CLI arg resolvers route through this * module instead of re-spelling the join literals — that is what keeps the two * tools from drifting and what the CLI-args guard test enforces. * * Rebasing rule: the default artifacts dir is ALWAYS rebased onto the supplied * root. A `--root ` with no explicit `--artifacts-dir` must resolve under * `/.audit-tools/...`, never under the process CWD. Callers that accept an * explicit artifacts-dir override should honor the override verbatim and fall * back to these helpers only for the default. */ /** * Canonical deliverable filenames shared by both halves of the pipeline. The * audit half renders `audit-report.md` (human) from `audit-findings.json` * (machine contract); the remediation half writes `remediation-report.md` / * `remediation-outcomes.json`. These live here, in exactly one place, so the * synthesis writer, the promote source/dest, the present_report prompt path, * and the remediation close writer cannot drift to different spellings — a * drift that previously surfaced as a promote-time ENOENT. */ /** * The single literal directory name for the runtime artifact tree. Single-sourced * here so the path builders, the repo-root resolver (`resolveRepoRoot`), and the * nested-tree guard all agree on the one spelling. */ export declare const AUDIT_TOOLS_DIRNAME = ".audit-tools"; /** * The single literal directory name for tool-created git worktrees under * `.audit-tools/` (remediate's per-node implement worktrees; audit's disposable * review snapshots). Single-sourced so the path builder and the node-worktree * context guard (`nodeWorktreeGuard.ts`) agree on the one spelling. */ export declare const WORKTREES_DIRNAME = "worktrees"; export declare const AUDIT_REPORT_FILENAME = "audit-report.md"; export declare const AUDIT_FINDINGS_FILENAME = "audit-findings.json"; export declare const REMEDIATION_REPORT_FILENAME = "remediation-report.md"; export declare const REMEDIATION_OUTCOMES_FILENAME = "remediation-outcomes.json"; /** * `/.audit-tools` (absolute). Refuses to build the tree under a `root` * that is itself already inside a `.audit-tools/` directory — that only happens * when the caller trusted a drifted cwd, and silently proceeding mints a phantom * nested `.audit-tools/.audit-tools/` run forked away from the real one. Callers * must anchor the repo root via `resolveRepoRoot()` first; this guard makes the * failure mode loud and impossible rather than silent (auditor-agnostic * robustness — the phantom tree can't be created by any code path). */ export declare function auditToolsDir(root: string): string; /** `/.audit-tools/audit` — audit-code's default artifacts dir (absolute). */ export declare function auditArtifactsDir(root: string): string; /** * `/.audit-tools/remediation` — remediate-code's default artifacts dir * (absolute). */ export declare function remediationArtifactsDir(root: string): string; /** * `/.audit-tools/worktrees` — the gitignored home for tool-created git * worktrees (remediate's per-node implement worktrees; audit's disposable * review snapshots). Single-sourced so every worktree producer/sweeper agrees * on the one location. */ export declare function auditToolsWorktreesDir(root: string): string; /** * `/steps` — where each orchestrator writes `current-step.json` * and `current-prompt.md`. Takes an already-resolved artifacts dir (audit or * remediation), not a root, because both halves share this child name. */ export declare function stepsDir(artifactsDir: string): string; /** * `/artifact-tree.lock` — the single pessimistic lock guarding * every artifact-tree read-modify-write (advance/persist/ingest, O2). All * mutators acquire THIS lock via `withFileLock` so concurrent next-step and * result-ingestion calls can never interleave a load against another writer's * partially-written bundle (the staleness-cascade wipe trap). Single-sourced so * every mutator agrees on the exact path. */ export declare function artifactTreeLockPath(artifactsDir: string): string; /** * `/submissions` — where host submissions land, one file per * tool-minted submission id (`.json`). Takes an * already-resolved artifacts dir. * * The name is the ONLY thing a host may not choose: the tool mints the id, the * tool derives the path, and the step contract declares it. A submission * written anywhere else is read by nothing. */ export declare function submissionsDir(artifactsDir: string): string; /** * `/submissions/expected-submissions.json` — the current * statement of which lanes still owe a submission. Deliberately UNREGISTERED * (outside `ARTIFACT_DEFINITIONS` and the staleness DAG): it is regenerable * bookkeeping rewritten at every emit, and hashing it into the DAG would churn * `artifact_metadata` and cascade phantom staleness downstream. */ export declare function expectedSubmissionsPath(artifactsDir: string): string; /** * `/lanes` — tool-WRITTEN lane inputs (lane prompt files, * per-kind evidence packets). Kept apart from `submissions/` because the two * populations have opposite ownership: the tool authors everything here and a * host only reads it, while `submissions/` holds what a host writes back. */ export declare function laneAssetsDir(artifactsDir: string): string; /** * `/scratch/` — the run-scoped directory host agents are * directed to use for any working files they improvise while driving a * dispatch (batch lists, helper scripts, notes). Lives under `.audit-tools/` * so it is gitignored and outside the audit intake scope by construction — * scratch dropped at the audited repo's root instead becomes untracked litter * the next audit's manifest walk picks up. */ export declare function hostScratchDir(artifactsDir: string, runId: string): string; /** * `/audit-report.md` — where synthesis renders the human report * and the promote step reads it FROM. Source and write target derive from this * one helper so they are byte-identical. */ export declare function auditReportPath(artifactsDir: string): string; /** `/audit-findings.json` — the canonical machine contract. */ export declare function auditFindingsPath(artifactsDir: string): string; /** * `/audit-report.md` — the promote destination, one * level up from the working artifacts dir (i.e. `.audit-tools/audit-report.md` * for the canonical `.audit-tools/audit/` artifacts dir). This is also where * the present_report prompt points and where remediate-code probes first. */ export declare function promotedAuditReportPath(artifactsDir: string): string; /** `/audit-findings.json` — promoted machine contract. */ export declare function promotedAuditFindingsPath(artifactsDir: string): string; /** * The directory deliverables are promoted INTO: the parent of the working * artifacts dir. Single-sourced so every promote/present consumer agrees. */ export declare function outputDirFor(artifactsDir: string): string; /** * `/.audit-tools/verification_report.json` — the closing-phase * verification report (FINDING-027), written at the root artifacts dir * alongside the promoted findings/report/outcomes files rather than under * either orchestrator's working artifacts dir. */ export declare function verificationReportPath(root: string): string; //# sourceMappingURL=auditToolsPaths.d.ts.map