raptor.schema.manifest

raptor.schema.manifest#

The bird-neutral (neutral across the family’s own eagle/hawk/raptor packages) kernel-manifest schema — the layer hawk touches.

This module MUST stay clean of the extension family’s vocabulary (declared in raptor.schema.blocks, the sibling module this file never imports — the purity direction is one-way: blocks may reference manifest, never the reverse). This is what lets hawk’s writer bind against this module alone and keep its own core-purity gate green.

Mirrors eagle/python/eagle/roles.py (the Python half of the schema-v1 protocol) for the bird-neutral subset of its vocabulary, and the C++ twin eagle/plugin/roles.h / eagle/plugin/plugin_registry/manifest.h.

NOTE on the top-level key order: the full order for the EXTENDED manifest kind (see raptor.schema.blocks) is schema_version, pattern, aether_abi, blocks, plugins — spelling the literal blocks here would tie this neutral module to the extension’s carriage key, so the FULL order is housed in raptor.schema.blocks instead; TOP_LEVEL_KEY_ORDER below is the neutral 4-key order for an ordinary (unextended) manifest.

A toy manifest document, just enough to pass check_schema_version() and check_execution_axis():

doc = {
    "schema_version": 1,
    "pattern": "pure",
    "aether_abi": "aether-abi/1",
    "plugins": [],
}
check_schema_version(doc)        # -> 1
check_execution_axis(doc, 1)     # -> None (no exec keys allowed at v1)

Module Attributes

SCHEMA_VERSION

raptor's own plugin-schema version — the schema triad's number of record.

MAX_SCHEMA_VERSION

the highest schema_version this loader ACCEPTS today — a TRANSITION BRIDGE: raptor accepts SCHEMA_VERSION 1 AND 2 on the aether branches.

KERNEL_NAME

entry-point symbol of every kernel artifact, generated or hand-written (verbatim value of eagle.launch.KERNEL_NAME).

AETHER_ABI_FIELD

the FIELD name carrying the AETHER ABI tag on a manifest/sidecar.

AETHER_ABI_V1

the aether_abi WIRE VALUE a schema-v1 document must carry, when the field is present (schema v1 does not require the field at all — see check_execution_axis()).

AETHER_ABI_V2

the aether_abi WIRE VALUE a schema-v2 document must carry, when the field is present.

EXEC_TARGETS

the exec_targets vocabulary a schema-v2 manifest may name (the two structural entry points device kernels and host teams launch through).

EXEC_ACCESS_CLASSES

how the plugin body touches sample-local vs.

EXEC_OPS

the reduction-operator vocabulary a schema-v2 manifest's exec_op may declare — REQUIRED iff exec_access == "mapreduce" and FORBIDDEN otherwise (the mapreduce(op) declared aether functor).

EXEC_KEYS

the v2-only FLAT top-level keys naming the execution axis.

TOP_LEVEL_KEY_ORDER

top-level key order of an ORDINARY (unextended) manifest — contractual for the C++ text scanner.

TOP_LEVEL_KEY_ORDER_V2

TOP_LEVEL_KEY_ORDER with EXEC_KEYS inserted between aether_abi and plugins (the execution axis is a new, versioned block of top-level keys).

BASE_PATTERNS

the base plugin-family vocabulary a bird-neutral manifest/sidecar may name (schema v1).

EXEC_REF_KINDS

the kind discriminant of an exec reference ({"kind": ..., "kernel": ...}).

MANIFEST_FORMATS

the manifest-entry format vocabulary (schema v1) — the artifact container a plugin manifest entry names.

Functions

check_execution_axis(…)

Validate the schema-v2 execution axis, given the ALREADY-resolved version (check_schema_version()'s return).

check_schema_version(…)

Return the artifact's plugin-schema version, rejecting one too new to load.