mirror of
https://github.com/norandom/OpenUltraSAST.git
synced 2026-10-16 11:49:28 +00:00
Add openultrasast.plane.manifests: frozen dataclasses and loaders for ax's Task, Workspace and Model kinds (ax.io/v1alpha1, ax's fields only) and the Run kind (openultrasast.io/v1alpha1: tasks, dependsOn, inputs, outputs, budget, serialize). Every violation raises ManifestError naming the kind, metadata.name and field path: unknown fields at any depth, wrong apiVersion or kind, a provider outside google/anthropic unless deepseek is declared via the openultrasast.io/provider-extension annotation, a Run with a dependency cycle, an input naming no task, and a Run task naming no loaded Task. load_manifests reads multi-document YAML files and indexes by kind and name. PyYAML becomes the one declared core dependency; the two zero-dependency guards now pin exactly that, and the module audit registers the plane package under the ai-service-plane spec. Co-Authored-By: Claude Fable 5.1 <[email protected]> Claude-Session: https://claude.ai/code/session_01EmM1j46qgKMh3zqD1QMwEo