/** * The dependency-fingerprint contract shared by the compile manifest and * the doc cache: what does this module transitively depend on, and can * that answer be trusted for caching? * * Classified discovery failures (parse failures, filesystem errors while * reading candidates) degrade to `cacheable: false`; anything else * propagates — a blanket catch would hide resolver/AST bugs by silently * pinning modules stale. Splice-containing subtrees are never cacheable: * splices expand during compilation and may legally emit imports, so * raw-parse edges are not the true edges there. * * Runs on the record path, after the module already compiled and emitted; * a discovery problem must degrade to "don't cache this entry", never turn * that success into a failure. */ import { AgencyConfig } from "../config/config.js"; export type DependencyFingerprint = { /** Transitive .agency deps, absolute, unique, sorted, root excluded. */ deps: string[]; /** True if ANY module in the subtree (root included) has a pkg:: edge. */ hasPkgImports: boolean; /** False when the subtree could not be fully established. */ cacheable: boolean; /** Why cacheable is false — diagnostics/tests only, never persisted. */ reason?: string; }; export declare function dependencyFingerprint(rootAbsPath: string, config: AgencyConfig, opts: { resolveStdlib: boolean; }): DependencyFingerprint;