export type DiscoveryEndpointKey = 'llmsTxt' | 'markdownIndexTxt' | 'cmsTxt' | 'siteInfoMd'; export type DiscoveryContentValidator = 'llms-txt' | 'markdown-index' | 'cms-txt' | 'site-info-md'; export type DiscoveryFailureReason = 'discovery_missing' | 'discovery_wrong_content_type' | 'discovery_invalid_content' | 'discovery_broken_link'; /** How discovery URL origins are validated against the smoke deployment base URL. */ export type DiscoveryUrlOriginMode = 'deployment' | 'auto'; /** Per-app smoke.cases.json — omit a key or set true to require; false to skip. */ export interface DiscoverySmokeConfig { llmsTxt?: boolean; markdownIndexTxt?: boolean; cmsTxt?: boolean; siteInfoMd?: boolean; /** * `auto` (default): accept a single consistent HTTPS origin in llms.txt / markdown-index.txt * when it differs from the deployment URL (production pre-alias deploys). * `deployment`: require all URLs to match the smoke base URL. */ urlOrigin?: DiscoveryUrlOriginMode; /** Explicit canonical origin for discovery URL checks; skips inference when set. */ canonicalBaseUrl?: string; } export interface ResolvedDiscoveryConfig { llmsTxt: boolean; markdownIndexTxt: boolean; cmsTxt: boolean; siteInfoMd: boolean; urlOrigin: DiscoveryUrlOriginMode; canonicalBaseUrl?: string; } export interface DiscoveryEndpointDefinition { key: DiscoveryEndpointKey; path: string; label: string; expectedContentType: string; validator: DiscoveryContentValidator; } export interface DiscoveryEndpointResult { key: DiscoveryEndpointKey; path: string; label: string; enabled: boolean; skipped: boolean; status: number; contentType: string | null; body: string | null; failures: DiscoveryFailureReason[]; contentErrors: string[]; spotCheckFailures: string[]; } export interface DiscoveryValidationOptions { config: ResolvedDiscoveryConfig; spotCheckLinks?: number; fetch?: typeof fetch; } export interface DiscoveryValidationResult { baseUrl: string; endpoints: DiscoveryEndpointResult[]; errorCount: number; skippedCount: number; } //# sourceMappingURL=types.d.ts.map