/** * graph-config-schema — the graph tool's namespaced Zod config schema * (launch, ADR-0023, Phase 4 Task 4.1). * * Mirrors {@link GraphConfig} (`types.ts`) one-for-one as a Zod object so the * host can compose it into the strict whole-document schema and the graph * loader can read a VALIDATED `graph:` block instead of hand-projecting an * arbitrary YAML object. Replaces the old permissive `projectGraphConfig`: * a typo inside the `graph:` block (e.g. `minCrossPackageDuplicatePackges`) * is now rejected, not silently dropped. * * The schema is exported two ways: * - `GraphConfigSchema` — the bare Zod object, used by `loadGraphConfig` * to parse just the `graph:` block (it `.strict()`-ens it locally). * - `graphConfigDeclaration` — the {@link ToolConfigDeclaration} the graph * tool hands the composition root (namespace `'graph'`), which makes the * namespace strict and optional at the document level. * * Every field is optional — an absent key means "use the rule's in-rule * default" (the historical projection semantics), so a config that omits the * whole `graph:` block, or any individual knob, is valid and yields `{}` / * partial overrides. */ import { z } from 'zod'; import type { ToolConfigDeclaration } from '@opensip-cli/config'; /** * Zod object mirroring {@link GraphConfig}. Field order follows the type * declaration. Numeric knobs are non-negative integers (line counts, param * counts, blast scores, SCC sizes — all whole, non-negative). `recipe` is a * bounded string (matches `fitness.recipe` / `simulation.recipe`). */ export declare const GraphConfigSchema: z.ZodObject<{ minDuplicateBodyLines: z.ZodOptional; minDuplicateBodySize: z.ZodOptional; minCrossPackageDuplicatePackages: z.ZodOptional; minCrossPackageDuplicateBodySize: z.ZodOptional; minNearDuplicateSimilarity: z.ZodOptional; minNearDuplicateBodySize: z.ZodOptional; nearDuplicateLshBands: z.ZodOptional; recipe: z.ZodOptional; partitionStrategy: z.ZodOptional>; entryPointHashes: z.ZodOptional>>; flagExportedOrphans: z.ZodOptional; flagTestOrphans: z.ZodOptional; largeFunctionWarnLines: z.ZodOptional; largeFunctionErrorLines: z.ZodOptional; wideFunctionWarnParams: z.ZodOptional; wideFunctionErrorParams: z.ZodOptional; highBlastWarnThreshold: z.ZodOptional; highBlastErrorThreshold: z.ZodOptional; cycleMinSize: z.ZodOptional; cycleSize2Severity: z.ZodOptional>; severityOverrides: z.ZodOptional>>>; auditTestSourceGlobs: z.ZodOptional>>; }, z.core.$strip>; /** * The graph tool's contribution to the composed configuration document * (Phase 4). `namespace: 'graph'` is graph's top-level key in * `opensip-cli.config.yml`; the composer makes it strict (typo-rejecting) * and optional. No defaults are declared here — every knob defaults inside * its rule, preserving the historical "absent → in-rule default" behaviour. */ export declare const graphConfigDeclaration: ToolConfigDeclaration; //# sourceMappingURL=graph-config-schema.d.ts.map