Product Map
Dokime is one product assembled from a contract crate, an SDK kit crate, an app
crate, and the shells over it. Harmos supplies the general durable runtime
substrate. The dependency direction never reverses: dokime-api ← dokime ←
dokime-app ← shells, and dokime-api ← dokime ← plugins. Nothing depends on
a plugin crate.
flowchart TD
A[dokime-api\ncontracts · data · serde] --> V[dokime\nplugin SDK kit · execution · transport]
V --> R[dokime-app\nstate · transactions · streams · machinery]
A --> R
H[Harmos\njournal · work · streams · artifacts · installed artifacts] --> R
R --> S[dokime-server\nnative gRPC services]
R --> C[dokime-cli\ncommand-line interface]
R --> G[dokime-gui\nTauri + React]
V --> P[Plugins and sidecars]
P -. admitted at runtime .-> R
S --> G
R --> Y[dokime-python\nauthoring bindings]
A --> O[dokime-host\nplatform collectors]
O --> R
Workspace Crates
Section titled “Workspace Crates”| Crate | Role |
|---|---|
dokime-api | The contracts every party compiles: definitions, records, telemetry, prompts, settings, documents, and domain contributions. Data and serde only, wasm32-clean. |
dokime | The plugin SDK kit layered on dokime-api: authoring macros, the execution context, registration, transport, and evaluators. It re-exports every contract, so a plugin compiles the kit and names dokime::…. |
dokime-app | What the application is and how a runtime runs it: state, transactions, streams, entry verbs, and every capability. |
dokime-protocol | The host-to-shell gRPC contract: public protobuf messages and native service bindings. |
dokime-server | Native gRPC services and bounded content transfers. |
dokime-cli | Command-line service, diagnostics, skills, and version operations. |
dokime-host | Native host telemetry collectors and task helpers; compiled against dokime-api. |
dokime-python | Typed Python authoring and PyO3 runtime bridge. |
dokime-gui | Tauri desktop shell and React operator application. |
dokime-xtask | Repository automation and product packaging commands. |
mini-sidecar | Single-crate authoring specimen for suites, workflows, and continuous streams. |
The implementations under plugins/ and the isolated route fixture are also
workspace members, so the normal Rust gates validate the whole composition.