import type { ExecutableSurfaceDependency, ExecutableSurfaceDependencyResolution } from "./executable-dependency-resolution.js"; import type { ExecutableInvocationOwningSkillResolution, ExecutableSurfaceInventory, ExecutableSurfaceInventorySummary, ExecutableSurfaceInvocation, StaticInvocationReachability } from "./executable-surface-inventory.js"; export type ExecutableSurfaceChangeReason = "content" | "scope" | "interpreter" | "reachability" | "references" | "invocations" | "invocation-governance" | "dependency-graph" | "invocation-reachability" | "security-policy"; export interface ExecutableSurfaceChange { path: string; reasons: ExecutableSurfaceChangeReason[]; fromFingerprint: string; toFingerprint: string; } export interface ExecutableSurfaceInvocationDelta { sourcePath: string; launcher: string; target: string; occurrenceOrdinal: number; resolution: ExecutableSurfaceInvocation["resolution"]; line: number; } export interface ExecutableSurfaceInvocationResolutionChange { sourcePath: string; launcher: string; target: string; occurrenceOrdinal: number; fromResolution: ExecutableSurfaceInvocation["resolution"]; toResolution: ExecutableSurfaceInvocation["resolution"]; fromLine: number; toLine: number; } export interface ExecutableSurfaceDependencyDelta { sourcePath: string; analyzer: ExecutableSurfaceDependency["analyzer"]; relation: ExecutableSurfaceDependency["relation"]; target: string; occurrenceOrdinal: number; resolution: ExecutableSurfaceDependencyResolution; line: number; } export interface ExecutableSurfaceDependencyResolutionChange { sourcePath: string; analyzer: ExecutableSurfaceDependency["analyzer"]; relation: ExecutableSurfaceDependency["relation"]; target: string; occurrenceOrdinal: number; fromResolution: ExecutableSurfaceDependencyResolution; toResolution: ExecutableSurfaceDependencyResolution; fromLine: number; toLine: number; } export interface ExecutableSurfaceInvocationDepthChange { path: string; fromReachability: StaticInvocationReachability; toReachability: StaticInvocationReachability; fromDepth?: number; toDepth?: number; } export interface ExecutableInvocationGovernanceDelta { sourcePath: string; launcher: string; target: string; occurrenceOrdinal: number; hasEffectivePolicyEvidence: boolean; distinctEffectivePolicyFingerprints: string[]; owningSkillResolution: ExecutableInvocationOwningSkillResolution; resolution: ExecutableSurfaceInvocation["resolution"]; line: number; } export interface ExecutableInvocationGovernanceChange { sourcePath: string; launcher: string; target: string; occurrenceOrdinal: number; fromHasEffectivePolicyEvidence: boolean; toHasEffectivePolicyEvidence: boolean; fromDistinctEffectivePolicyFingerprints: string[]; toDistinctEffectivePolicyFingerprints: string[]; fromOwningSkillResolution: ExecutableInvocationOwningSkillResolution; toOwningSkillResolution: ExecutableInvocationOwningSkillResolution; fromGovernanceFingerprint: string; toGovernanceFingerprint: string; fromLine: number; toLine: number; } export interface ExecutableSurfaceDiff { summary: { totalSurfacesDelta: number; skillLocalSurfacesDelta: number; repositoryToolSurfacesDelta: number; noncanonicalSurfacesDelta: number; reachableSkillLocalSurfacesDelta: number; unreachableSkillLocalSurfacesDelta: number; referencedSurfacesDelta: number; invokedSurfacesDelta: number; surfacesWithEffectivePolicyDelta: number; surfacesWithoutEffectivePolicyDelta: number; totalInvocationsDelta: number; resolvedInvocationsDelta: number; missingInvocationsDelta: number; unsafeInvocationsDelta: number; unscopedInvocationsDelta: number; noncanonicalInvocationsDelta: number; unavailableInvocationsDelta: number; invocationsWithEffectivePolicyEvidenceDelta: number; invocationsWithoutEffectivePolicyEvidenceDelta: number; resolvedInvocationsWithEffectivePolicyEvidenceDelta: number; resolvedInvocationsWithoutEffectivePolicyEvidenceDelta: number; invocationsWithMultipleEffectivePolicyFingerprintsDelta: number; sourceArtifactPolicyEvidenceRelationsDelta: number; owningSkillPolicyEvidenceRelationsDelta: number; effectivePolicyCoverageDelta: number; totalDependenciesDelta: number; resolvedDependenciesDelta: number; missingDependenciesDelta: number; unsafeDependenciesDelta: number; ambiguousDependenciesDelta: number; noncanonicalDependenciesDelta: number; notInventoryDependenciesDelta: number; unavailableDependenciesDelta: number; directlyInvokedSurfacesDelta: number; transitivelyReachableSurfacesDelta: number; unreachedFromInvocationSurfacesDelta: number; }; fromSummary: ExecutableSurfaceInventorySummary; toSummary: ExecutableSurfaceInventorySummary; addedSurfacePaths: string[]; removedSurfacePaths: string[]; changedSurfaces: ExecutableSurfaceChange[]; invocationResolutionChanges: ExecutableSurfaceInvocationResolutionChange[]; invocationGovernanceChanges: ExecutableInvocationGovernanceChange[]; newInvocationsWithoutEffectivePolicyEvidence: ExecutableInvocationGovernanceDelta[]; newInvocationsWithMultipleEffectivePolicyFingerprints: ExecutableInvocationGovernanceDelta[]; invocationsGainedEffectivePolicyEvidence: ExecutableInvocationGovernanceChange[]; invocationsLostEffectivePolicyEvidence: ExecutableInvocationGovernanceChange[]; invocationGovernanceChangesWithMultipleEffectivePolicyFingerprints: ExecutableInvocationGovernanceChange[]; newProblematicInvocations: ExecutableSurfaceInvocationDelta[]; addedDependencies: ExecutableSurfaceDependencyDelta[]; removedDependencies: ExecutableSurfaceDependencyDelta[]; dependencyResolutionChanges: ExecutableSurfaceDependencyResolutionChange[]; newProblematicDependencies: ExecutableSurfaceDependencyDelta[]; newlyTransitivelyReachableSurfacePaths: string[]; surfacesLostStaticInvocationReachability: string[]; invocationDependencyDepthChanges: ExecutableSurfaceInvocationDepthChange[]; newlyReachableSkillLocalPaths: string[]; newlyUnreachableSkillLocalPaths: string[]; } /** Compare semantic surface identity and line-insensitive invocation identity. */ export declare function buildExecutableSurfaceDiff(from: ExecutableSurfaceInventory, to: ExecutableSurfaceInventory): ExecutableSurfaceDiff;