/** * Assignment Compatibility Engine (2.11.0). * * Deterministic, explainable capability matching between a structured * MissionRequirements and an executor's effective capabilities. No scoring, no * ranking, no fuzzy model matching, and no scheduler placement. * * `compatible` (capability match) is intentionally distinct from `assignable` * (capability match + executor state policy). The two are collapsed only by the * caller when it actually creates an assignment. */ import type { ExecutorCapabilities, ExecutorLivenessStatus } from "../executor-registry/executor-registry-types.js"; import type { AssignabilityResult, CompatibilityResult, ExecutorAssignabilityStatus, MissionRequirements } from "./assignment-types.js"; /** * Effective capabilities for assignment evaluation: the union of the stable * configured definition and the current runtime advertisement. Platform is * taken from the runtime advertisement when present (it is an observation of * the actual process), falling back to the configured platform. */ export declare function mergeExecutorCapabilities(configured: ExecutorCapabilities, advertised?: ExecutorCapabilities): ExecutorCapabilities; /** * Evaluate requirements against effective capabilities. Every requirement that * cannot be satisfied is recorded in `unsatisfied` with the observed value, so * operators and the future scheduler can see *why* an executor did not match. */ export declare function evaluateCompatibility(requirements: MissionRequirements | undefined, capabilities: ExecutorCapabilities): CompatibilityResult; export interface AssignabilityInput { requirements?: MissionRequirements; capabilities: ExecutorCapabilities; status: ExecutorAssignabilityStatus; retired: boolean; } /** * Assignability is compatibility plus state policy: a retired/offline/stale * executor may be capability-compatible but is not presently assignable. The * distinction is surfaced so a future failover/scheduler policy can reason * about it without parsing prose. */ export declare function evaluateAssignability(input: AssignabilityInput): AssignabilityResult; /** Normalize an executor registry liveness status to the assignment domain. */ export declare function toAssignabilityStatus(status: ExecutorLivenessStatus): ExecutorAssignabilityStatus; //# sourceMappingURL=compatibility.d.ts.map