Hand-scaffolded from the packages/core-events shape: the core-package turbo generator only covers its eight pre-curated snapshot names (analytics, audit, consent, dsr, events, realtime, trpc, ui) and rejects 'runner-protocol' at the name prompt. Flagged in the package AGENTS.md as a future generator snapshot candidate. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016j8z4VHjedXDTjEDNg7qHK
1.1 KiB
@repo/core-runner-protocol
Owns the versioned runner-protocol wire contract (ADR-027): the message envelope (protocolVersion: "0" + workspace-scoped auth token) and .strict() zod schemas for every message exchanged between the control plane/editor and any runner implementation (cloud, local CLI, later Tauri-embedded). Schemas only — the WS server/client implementations live in apps/runner and its consumers, never here.
Boundary tag: core. May be imported by feature, core, core-composition, app. May import from tooling.
Public surface: PROTOCOL_VERSION, the envelope schema, the per-message .strict() schemas + the runnerMessageSchema discriminated union, and their inferred types — all through the single index barrel.
Scaffolding note: hand-scaffolded from the packages/core-events shape — the core-package turbo generator only covers the eight pre-curated snapshot names (analytics, audit, consent, dsr, events, realtime, trpc, ui). Candidate for a future generator snapshot.
See: docs/decisions/adr-027-hosted-saas-and-runner-split.md, docs/work/prds/walking-skeleton.prd.md, docs/glossary.md § "Runner protocol".