AgentBlueprintProtocol.BoundsAlgebra (Agent Blueprint Protocol v0.1.0)

Copy Markdown View Source

The bounds algebra: the pointwise narrowest intersection of the Blueprint's declared bounds, the Deployment Manifest's host_bounds, and the host's live policy, over the closed 13-bound vocabulary.

Distinct from parse bounds: AgentBlueprintProtocol.Bounds are tighten-only decoder ceilings and are never intersection inputs (the two families are never conflated).

The direction law

"Narrowest" is taken in each family's own narrowness order: for the scope families (classification, disclosure) a lower ceiling is narrower, so the meet is the written-order minimum; for the obligation families (authority, approval, effect impact) the STRICTER value is narrower, so the meet is the strictest value. Classification markers ({pci, phi}) are retained regulatory obligations: the effective marker set is the UNION of the sources' sets — dropping a marker silently disables regulated-data handling and is the widening the mutation gate names.

Posture

A protected narrowing never happens silently. Under the default :deny posture it denies with :protected_bound_clamp_denied carrying the field/requested/effective triple; under :acknowledge it clamps and ALWAYS emits acknowledged: true evidence. Because decoded artifacts lift marker sets empty and the Blueprint derives disclosure_ceiling as :full (it declares no disclosure member), a host asserting any marker or any sub-full disclosure policy narrows a protected bound on every import — a regulated or disclosure-limiting host therefore runs the :acknowledge posture and records every narrowing. That is the designed default, not a defect.

Lifters

from_blueprint/1 derives the Blueprint side totally: the operational eight from its ceilings member; classification as the WIDEST across all five declaration sites (top-level, both port arrays, output_contract, capability_requirements); approval/authority as the strictest claim across capabilities (empty array → :none); effect impact as the strictest across capabilities and effect intents (empty → :ordinary); disclosure as :full, the identity element for the meet — the Blueprint makes no disclosure claim, so the deployment and host policies govern, and this derivation is a total function over the artifact's members, not a missing-source default. from_deployment/1 lifts the host_bounds member only: model_policy ceilings are the deployment-local model policy (not intersection inputs) and data_bindings classification is per-dataset metadata checked against the effective bound by the composed import. The algebra computes facts; it never authorizes an operation.

Summary

Functions

Lift a Blueprint's declared bounds. Present members validate (:bound_value_invalid); the derived envelope is total over the current registry; an absent ceilings/classification member lifts absent (totality is intersect/1's demand, never a default here).

Lift a Deployment's host_bounds member (the intersection's middle term, the Deployment table's row 13 — model_policy and data_bindings are not inputs).

Intersect the three sources: per-bound validation, totality (all three total over the 13 — an operational absence denies :missing_ceiling, a protected absence :bound_source_missing), the within-currency cost rule, then the pointwise narrowest meet. Operational narrowings emit unacknowledged evidence; a protected narrowing denies under :deny (carrying the triple) or clamps with acknowledged: true under :acknowledge. Clamps are emitted in the name-sorted vocabulary order.

true iff a (an effective set) widens b (e.g. the host policy) on any bound — per family, classification ordered lexicographically (ordinal, then marker strict subset at equal ordinals). Fail-closed: a bound missing from either set, or an incomparable money pair, is true (non-widening cannot be proven).

Functions

from_blueprint(arg1)

Lift a Blueprint's declared bounds. Present members validate (:bound_value_invalid); the derived envelope is total over the current registry; an absent ceilings/classification member lifts absent (totality is intersect/1's demand, never a default here).

from_deployment(arg1)

Lift a Deployment's host_bounds member (the intersection's middle term, the Deployment table's row 13 — model_policy and data_bindings are not inputs).

intersect(sources)

Intersect the three sources: per-bound validation, totality (all three total over the 13 — an operational absence denies :missing_ceiling, a protected absence :bound_source_missing), the within-currency cost rule, then the pointwise narrowest meet. Operational narrowings emit unacknowledged evidence; a protected narrowing denies under :deny (carrying the triple) or clamps with acknowledged: true under :acknowledge. Clamps are emitted in the name-sorted vocabulary order.

widens?(arg1, arg2)

true iff a (an effective set) widens b (e.g. the host policy) on any bound — per family, classification ordered lexicographically (ordinal, then marker strict subset at equal ordinals). Fail-closed: a bound missing from either set, or an incomparable money pair, is true (non-widening cannot be proven).