Internal and experimental. Every package and app here is
"private": true. Nothing is published to npm, APIs change without notice, and code outside this repository should not depend on it. If you want to depend on something here, open an issue: the package should move to a published home first.
A pnpm workspace of prototypes and packages that are not stable enough to publish: the httpeers
mesh (core, conformance suite, a reference deployment and prototype ladders), MVC and file-manager
blueprints, a few app prototypes, and older service packages scheduled for refactor or
replacement. Published @statewalker/* packages are consumed from npm like any other dependency.
packages/ libraries (private)
apps/ runnable apps, demos and prototype ladders (private)
pnpm-workspace.yaml workspace globs and the dependency catalog
| Package | Status | What it is |
|---|---|---|
| @statewalker/httpeers.core | active | Contracts, Biscuit membership tokens, rules, hub registries, router and libp2p transport for the httpeers mesh |
| @statewalker/httpeers-conformance | active | One test per criterion of the httpeers block API; measures an implementation against it |
| @statewalker/service-http | refactor | Transport-free HTTP routing contract over a context object |
| @statewalker/service-http-impl | refactor | Hono server for service-http, with WebSocket RPC at /rpc |
| @statewalker/service-rpc | evaluate | RPC over MessagePort and WebSocket, built on Comlink, with streaming |
| @statewalker/service-pg | replace | PostgreSQL pool stored in a context object; no consumer here |
| @statewalker/layout-reconstructor-core | evaluate | Rebuilds a CSS-grid layout from absolutely positioned blocks |
| App | What it is |
|---|---|
| httpeers-stack | Installable reference deployment of the httpeers mesh (relay, hub, browser pages) |
| httpeers-protos | Runnable httpeers demos: HTTP over libp2p with proven peer identity |
| httpeers-lib-protos | Test-suite prototypes for the httpeers library |
| httpeers-shell-protos | Test-suite ladder for a shell that renders apps served by peers |
| fm-protos | File-manager prototype ladder over one fm-core / fm-app / fm-ui |
| mvc-blueprint-00 … 03 | MVC blueprint TODO apps, four variants |
| flue-workbench | Browser Flue agent workbench over a local directory, using Gemini |
| notes-demo | React notes app served without a bundler by @statewalker/webrun-modules-build |
| openai-proxy.app | OpenAI v1 HTTP proxy in front of a local llama.cpp server |
| byok-config-prototype | Throwaway UI prototype for editing an LLM connections config file |
Each folder has a README with its own run instructions.
Requirements: Node 24 and pnpm 10.16.1 (corepack enable picks the version from packageManager).
pnpm installpnpm run build— builds the packages that have abuildscript.pnpm run test— runs every package'stestscript.- For the browser suites (vitest browser mode, httpeers-stack e2e), install the browsers once:
pnpm --filter @statewalker/httpeers-stack exec playwright install --with-deps chromium firefox.
Work on one package with pnpm --filter <name> <script>, e.g.
pnpm --filter @statewalker/service-rpc test.
- Nothing is published. All packages are private and there is no release workflow. The
.changeset/config and thechangeset/publish-all/release-packagesscripts exist, but with every package private they publish nothing. - Dependencies come from the catalog. External versions, including published
@statewalker/*packages, are declared once inpnpm-workspace.yaml(catalog:); packages in this repository refer to each other withworkspace:^. - The repository has its own CI workflow (
.github/workflows/ci.yml), because a few checks cannot run in a plain checkout and are excluded there. On every push tomainand every pull request it: installs with--frozen-lockfileon Node 24, installs Playwright's Chromium and Firefox, runslint:checkandformat:check,build,typecheckfor every package excepthttpeers-lib-protos,testfor every package excepthttpeers-lib-protosandhttpeers-conformance, and then the conformance tests withouttests/coverage.test.tsandtests/parse-ids.test.ts. - Only
node-datachannelmay run install scripts. pnpm 10 blocks dependency build scripts by default;onlyBuiltDependenciesallows this one because it fetches the native WebRTC binary that@libp2p/webrtcneeds in Node.
httpeers-lib-protosdoes not typecheck. Several rungs pass{ port }to@statewalker/webrun-rpc's portconnect/serve, whosePortParamshas no such field:error TS2353: Object literal may only specify known properties, and 'port' does not exist in type 'PortParams'.CI skips this app's typecheck and tests.httpeers-conformance's coverage and parse-ids tests need the httpeers specification, a file outside this repository. Without it both suites fail at load withsync-criteria: could not find docs/superpowers/specs/2026-08-20-httpeers-api-design.md above ... Set HTTPEERS_SPEC to point at it.SetHTTPEERS_SPEC, or run the other tests as CI does.- Without the
node-datachannelbuild (for example after an install that skipped scripts), every test that starts a Node libp2p peer fails at import:build/Release/node_datachannel.nodeis missing. pnpm run lintrewrites files (biome check --write). Uselint:checkandformat:checkto check without changing anything, as CI does.
| Command | What it does |
|---|---|
pnpm run build |
pnpm -r run build |
pnpm run test |
pnpm -r run test |
pnpm run typecheck |
pnpm -r run typecheck |
pnpm run lint / lint:check |
Biome check, with / without writing fixes |
pnpm run format / format:check |
Biome format, with / without writing |
| File | Purpose |
|---|---|
pnpm-workspace.yaml |
Workspace globs (packages/*, apps/*), onlyBuiltDependencies, the version catalog |
biome.json |
Lint and format rules (2-space indent, line width 100) |
tsconfig.base.json |
Shared TypeScript options |
packages/PACKAGE_README.template.md |
Skeleton for a new package README |
MIT licensed; see LICENSE.