Practical reference for a future packages/server split after the opencode
server moved to the Effect HttpApi backend.
packages/opencode.src/effect/app-runtime.ts and
src/effect/run-service.ts.src/server/routes/instance/httpapi and is hosted
from src/server/server.ts.src/server/routes/instance/httpapi/public.ts.packages/server workspace yet.Target package layout:
packages/core - shared domain services and schemaspackages/server - HTTP contracts, handlers, OpenAPI generation, and an
embeddable server APIpackages/cli - TUI and CLI entrypointspackages/sdk - generated from the server OpenAPI specpackages/plugin - plugin authoring surfaceDo not create a package cycle.
Until enough shared service code lives outside packages/opencode, a future
packages/server should either:
packages/opencodeIt should not import packages/opencode services while packages/opencode
imports it to host routes.
httpapi/public.ts.packages/server once the contract
can compile without importing packages/opencode implementation details.