/** * EVERY name the daemon can ever create directly under `/skills/` and under its * `snapshots/` slot — settled AND transient — in one table (design v3.5 §2; codex round 8 on #480). * * The worker Read fence (wicked-core) classifies the children of `skills/` and of `snapshots/` from * the shared fixture `tests/fixtures/state-home-subtrees.json` (byte-identical in core and crew) and * REFUSES a launch naming a child it does not know — so a transient name the store creates during a * mutation (a `.staging-*` park-and-place directory, the `manifest.json.tmp-*` of a commit, a * generation being written under `snapshots/.staging-*`, the `snapshots/.tmp-current-*` link before * its rename) that is missing from the fixture is a live race between a mutation and a worker launch. * * This table is the store's side of that contract: the store binds its own constants to it * (`store.ts`, `tree.ts`), `tests/skills-fence-names.test.ts` asserts the fixture's `skills` entry * lists EXACTLY these patterns with these kinds (a static audit over the store's source backs it — * every `join(this.rootDir, …)` / `join(this.snapshotsDir(), …)` the store writes must resolve to a * row here), and a paused-operation test observes the transient names at the moment they exist. * Adding a name the store writes means adding it HERE first; the tests then demand the fixture (and, * through the coordinator, core) follow. * * Not listed: `baseline/.staging-*` (a capture being written) — `baseline/` is denied WHOLE, so its * children are never classified individually. */ export type SkillsRootNameKind = 'dir' | 'file' | 'link'; export interface SkillsRootName { /** Exact name, or a `prefix-*` glob; `snapshots/…` for a child of the slot. */ pattern: string; kind: SkillsRootNameKind; /** Exists only for the width of one mutation (created, then renamed away or removed). */ transient: boolean; /** Where the store creates it — prose for the reader and the audit. */ created_by: string; } /** The park-and-place staging prefix (`.staging--` under the root; `.staging-` under `baseline/` and `snapshots/`). */ export declare const STAGING_PREFIX = ".staging-"; /** The transient `current` link's prefix inside `snapshots/` (created there, renamed over `skills/current`). */ export declare const CURRENT_TMP_PREFIX = ".tmp-current-"; /** `writeFileAtomic`'s temp-file infix: `.tmp-`, renamed over `` — `manifest.json.tmp-*` at the root. */ export declare const ATOMIC_TMP_INFIX = ".tmp-"; /** The refusal sentinel directory name (`/refused/skills.{blocked,config}`) — NAMED, never created. */ export declare const REFUSED_DIRNAME = "refused"; export declare const SKILLS_ROOT_NAMES: ReadonlyArray; //# sourceMappingURL=root-names.d.ts.map