- Clarify that `packages/contracts` is schema-only with no runtime logic - Add `packages/shared` as the home for shared runtime utilities and subpath exports
Unified · Split
| @@ -26,7 +26,8 @@ Long term maintainability is a core priority. If you add new functionality, firs · 25 unmodified lines | |||
| 26 | 26 | ||
| 27 | - `apps/server`: Node.js WebSocket server. Wraps Codex app-server (JSON-RPC over stdio), serves the React web app, and manages provider sessions. | 27 | - `apps/server`: Node.js WebSocket server. Wraps Codex app-server (JSON-RPC over stdio), serves the React web app, and manages provider sessions. |
| 28 | - `apps/web`: React/Vite UI. Owns session UX, conversation/event rendering, and client-side state. Connects to the server via WebSocket. | 28 | - `apps/web`: React/Vite UI. Owns session UX, conversation/event rendering, and client-side state. Connects to the server via WebSocket. |
| 29 | - `packages/contracts`: Shared effect/Schema schemas and TypeScript contracts for provider events, WebSocket protocol, and model/session types. | 29 | - `packages/contracts`: Shared effect/Schema schemas and TypeScript contracts for provider events, WebSocket protocol, and model/session types. Keep this package schema-only — no runtime logic. |
| 30 | - `packages/shared`: Shared runtime utilities consumed by both server and web. Uses explicit subpath exports (e.g. `@t3tools/shared/git`) — no barrel index. | ||
| 30 | 31 | ||
| 31 | ## Codex App Server (Important) | 32 | ## Codex App Server (Important) |
| 32 | 33 | ||