AgentBlueprintProtocol.Extension (Agent Blueprint Protocol v0.1.0)

Copy Markdown View Source

The positional extension envelope shared by BOTH artifact tables: {"critical": {namespace → payload}, "optional": {namespace → payload}}, digest-covered, with namespace form and total cardinality. Extracted from Blueprint so the Deployment table carries the same judgment as DATA instead of a copy of it — one envelope, one definition, two tables.

Negotiation keeps its own region walk (its judgments — lifecycle states, schema pins — are different from the table's shape checks); this module is the TABLE-check and scan-walk surface only. Extension envelopes are inert data — an extension never authorizes an operation. Extension envelopes are inert data — an extension never authorizes an operation.

Summary

Functions

Every {namespace, body} pair in the envelope, both regions, in document order — the scan's walk over the open region.

The critical region's namespace set for THIS value — the authored-channel tie (a validated-critical list must sit inside this set).

The envelope shape check a table carries: exactly critical + optional regions, namespace form, total cardinality, no namespace in both.

Functions

bodies(members)

@spec bodies(list() | map()) :: [{binary(), AgentBlueprintProtocol.Json.value()}]

Every {namespace, body} pair in the envelope, both regions, in document order — the scan's walk over the open region.

critical_namespaces(members)

@spec critical_namespaces(list() | map()) :: MapSet.t()

The critical region's namespace set for THIS value — the authored-channel tie (a validated-critical list must sit inside this set).

envelope_ok?(arg1)

@spec envelope_ok?(AgentBlueprintProtocol.Json.value()) :: :ok | {:error, term()}

The envelope shape check a table carries: exactly critical + optional regions, namespace form, total cardinality, no namespace in both.