Initial boilerplate scaffold for continuum-schemas

Protobuf data model (Template/PrintJob/MaterialProfile/PrintParameters)
with codegen targets for TypeBox+TS types (packages/ts-types) and
prost-derived Rust structs (packages/rust-types).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
2026-08-28 16:12:03 +00:00
commit 660855ecd6
21 changed files with 309 additions and 0 deletions
+35
View File
@@ -0,0 +1,35 @@
# continuum-schemas
Single source of truth for the Continuum data model. Protobuf definitions in
`proto/` are compiled into two consumer packages:
- `packages/ts-types` — TypeScript types generated via `ts-proto`, plus
hand-written [TypeBox](https://github.com/sinclairzx81/typebox) schemas
under `src/schemas/` used for runtime validation in `continuum-backend`'s
ElysiaJS routes.
- `packages/rust-types` — a Rust crate (`continuum-rust-types`) that compiles
the same `.proto` files with `prost-build` (via `build.rs`), producing
`serde`-derived structs for `continuum-proxy` and `continuum-ai-worker`.
## Layout
```
proto/continuum/v1/ canonical .proto message definitions
packages/ts-types/ TypeBox schemas + generated TS proto types
packages/rust-types/ prost-generated Rust structs (build.rs codegen)
```
## Build
Requires `protoc` on `PATH` and `npm install` run at the repo root first.
```
npm install
npm run build:ts # protoc + ts-proto -> packages/ts-types/src/generated
npm run build:rust # cargo build, runs build.rs -> prost-generated structs
npm run build # both
```
Generated TS output under `packages/ts-types/src/generated` is build-derived
and gitignored. The Rust crate's generated code lands in `OUT_DIR` per
standard `prost-build` conventions and is never committed.