Skip to content

Latest commit

 

History

History

core-contracts

Folders and files

@cloudhal/core-contracts

The domain contracts of Cloudhal. schemas/*.schema.json is the only hand-edited source; everything else is generated by pnpm gen and drift-checked in CI (ADR-0001):

Generated From Used by
src/generated/*.ts json-schema-to-typescript 16 every TypeScript package
src/generated/schemas.ts bundler tooling, docs, MCP outputSchema
src/generated/validators.js ajv standalone (pure ESM, no eval) runtime validation on Node and Workers (ADR-0008)
crates/cloudhal-schema/src/generated/*.rs cargo-typify 0.8 Rust
import { assertValid, isValid, type Page } from "@cloudhal/core-contracts";

if (isValid("page", data)) data.sections; // narrowed to Page
assertValid("snapshot", snapshot);       // throws ContractValidationError

Fixtures under fixtures/{valid,invalid}/<contract>/ are validated in both languages and round-tripped through the Rust types. To change a contract follow .agents/skills/contract-change.