/** * Every markdown file under `dir`, vault-relative, unsorted. * * Dot-directories are skipped: `.git`, `.github`, `.obsidian`, `.claude` are * tool state. `.claude/skills/*.md` in particular is markdown an agent reads — * linting it as though someone had written it as a document would report * findings against files the format was never meant to govern. */ export declare function walkVault(dir: string, root?: string, acc?: string[]): string[]; /** * Every file under a SCANNED SOURCE — a checkout, not a vault — source-relative * with posix separators, unsorted. This is what `dj scan` turns into * `:///` citations. * * Three rules, each of which costs something if it goes the other way: * * · Every extension. A source file, a migration, a config and a README are all * things a row can cite, and an extension allowlist would turn a TRUE * citation into false drift — which is worse than shipping no scanner, since * it teaches people to ignore the check. * · No dot-entries, the same rule walkVault already applies: `.git` is tool * state, not evidence, and its object database would out-number the code by * two orders of magnitude. (The cost is real: a citation at * `.github/workflows/ci.yml` cannot resolve. Cite the workflow through a * path that is not tool state, or scan that directory as its own source.) * · No `node_modules`, which is not a dot-entry but is dependency state by the * same argument — nobody documents a feature by citing a package they did * not write, and a single install would add a six-figure number of URIs to * an artifacts.json meant to be read in a diff. * * Symlinks are skipped rather than followed: their target is either already in * this walk (a duplicate) or outside the source (a URI naming a file the source * does not contain), and a cycle would hang the command. */ export declare function walkSource(dir: string, root?: string, acc?: string[]): string[]; /** Every record sidecar under `dir`, vault-relative, unsorted. Same * dot-directory exclusion as walkVault, for the same reason. * * Deliberately NOT part of walkVault: a sidecar is companion data, not a * document. Letting it into the file list would move every "N file(s)" count, * make `[x](/Flows/Checkout.yaml)` a resolving internal link, and send it * through `classifyFiles` — which has no slot for companion data and would * file it under `ignored`, silently. */ export declare function walkSidecars(dir: string, root?: string, acc?: string[]): string[]; /** Non-markdown files in the vault (vault-relative path → bytes) — what local * media resolves against. Same exclusions, for the same reason. * * Record sidecars are excluded too: a file cannot be both a document's data * and a binary blob. As an asset a sidecar would be a candidate for * `broken-media` resolution and for `dj media push`'s size filter — i.e. one * push away from being uploaded to a CDN and deleted from the vault. */ export declare function walkAssets(dir: string, root?: string, acc?: Map): Map;