Project Architecture
This repository is intentionally split by layer so protocol models, runtimes, apps, docs, and automation can evolve without collapsing into one package.
Change flow
If a change crosses layers, update them in this order:
- protocol types
- runtime implementation
- tests
- smoke coverage when needed
- docs
That order keeps contracts stable first, then moves behavior, then proves the change, then documents it.
Core architecture
packages/protocolowns message schema, guards, errors, and the protocol contractpackages/serverowns registration lifecycle, routing, transports, and the fixed MCP bridgepackages/clientowns client SDK behavior, browser entry points, and transport clientsapps/*own host-specific integrations such as Chrome and VSCodedocsown protocol explanations, examples, guides, and site navigation.githubowns CI, release workflows, and reusable GitHub Actions building blocks
Contribution rules that follow from the architecture
- Start protocol-shape changes in
packages/protocol. - Keep server behavior free of browser-specific assumptions.
- Keep client behavior free of server implementation details.
- Treat docs as descriptions of intended behavior, not incidental implementation details.
- Reuse shared CI setup only for repeated steps such as environment preparation and shared package builds.
Validation path
Use the narrowest validation that proves the change, then expand only when the change crosses layers:
bash
pnpm test:unit
pnpm build
pnpm test
pnpm docs:buildThe root scripts are intentionally layered:
pnpm buildis the recursive workspace build.pnpm testis the broad repo-level verification path and includes the smoke-test rebuild step.pnpm docs:buildprepares docs assets before building the site.