# perk host floor — the FOURTH parsed cross-plane contract (sibling of registry.yaml,
# bindings.yaml and providers.yaml). Authored once, bundled into both artifacts
# (wheel -> perk/_shared/, npm tarball -> shared/), parsed directly by both planes:
# perk/substrate/host_floor.py and extension/substrate/hostFloor.ts. No codegen.
#
# A FLOOR is a minimum (>=), compared with semver precedence: a prerelease of the floor
# triple is below it; a later release is admitted. It is NOT a dev pin (package.json
# devDependencies, exact), NOT the pi-subagents supplier pin, NOT the doctor guidance stamp,
# and NOT the adopted Pi pin / remote install pin (`perk/substrate/pi_host.py`, carried by
# `perk/run/workflow_artifacts.py`) — those stay in their own homes. Every host observation
# (the PATH `pi` CLI, a loaded SDK) is admitted independently against the same minimum;
# equality between observations is never required.
#
# Node's floor is a CLOSED supported-line table: the supported release lines are
# node.min_version's major plus the major of each node.line_floors entry, and an observed
# Node is admitted iff its major is one of those lines AND it is at or above that line's
# floor. A major outside the table is refused as an unsupported release line.
# node.min_version stays the lowest line's floor (the remote action's `node-version`).
# node.line_floors is consumed only by the Python environment rows; the TS reader reads
# only min_version.
schema_version: 1
pi:
  min_version: "1.4.0"
node:
  min_version: "22.23.4"
  line_floors:
    - "24.22.1"
    - "26.12.1"
