Repository Layout
SillyStage is a Rust multi-crate monorepo. Crate boundaries are intentional and should stay explicit.
Crate Responsibilities
ss-llm-api: provider-neutral LLM client abstraction and provider implementationsss-agents: planner, architect, director, actor, narrator, keeperss-engine: runtime state, orchestration, manager, and LLM registryss-store: persistent storage for characters, resources, stories, sessions, and configss-protocol: transport-neutral request, response, and event payloadsss-handler: application operations and protocol dispatchss-server: transport adapters such as HTTP and SSEss-app: application startup, config loading, assembly, and server bootss-state/ss-story: shared domain models
Layering Rules
ss-protocoldefines wire shapesss-handlerowns application operationsss-serverstays transport-onlyss-appwires the system togetherss-storepersists long-lived objects only
Frontend and Docs
webapp/: product application frontendwebsite/: docs and blog websitewebsite/docs/en/api/andwebsite/docs/zh/api/: canonical protocol source docs
If an API or backend behavior changes, update the website docs directly.