Skip to content

Conversation

@LiGoldragon
Copy link
Contributor

Motivation

  • Provide a formal Cap’n Proto schema representing the inputs consumed by mkCrioSphere and the horizon outputs produced by mkCrioZones to enable serialization, tooling, and codegen.
  • Capture the important domain types (nodes, users, machines, IO, trust, pre-criomes, and horizon metadata) in a single schema to reduce ad-hoc mappings and improve type safety.
  • Make it easier to build integrations, validations, or RPCs that consume or emit the CrioSphere/CrioZones data structures.

Description

  • Added capnp/criosphere.capnp which defines the schema for CrioSphereProposal and CrioZones along with supporting enums and structs such as Magnitude, NodeSpecies, UserSpecies, Machine, Io, NodeProposal, UserProposal, Horizon, HorizonNode, and HorizonUser.
  • Introduced utility types including OptionalText, TrustEntry, BuilderConfig, NodeTypeFlags, SizedAtLeast, and other helper records that mirror the computed mkHorizonModule.nix structure (e.g. methods, behavesAs, computerIs).
  • The schema mirrors the shape and semantics found in nix/mkCrioSphere and nix/mkCrioZones so generated data can round-trip between Nix evaluation outputs and typed consumers.

Testing

  • No automated tests were executed because this is a schema-only change and does not affect runtime code paths.
  • The new file was added and committed as capnp/criosphere.capnp in the repository.
  • Consumers and codegen tooling have not yet been wired to this schema as part of this change.

Codex Task

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant