Repository map
Where each part of the platform lives, from the two apps to the shared contract packages.
The repository is deliberately thin: two apps plus shared packages that define the contracts between them.
frontend
Next.js UI, port 3400
backend
Hono + Postgres control plane, port 3201
packages
agent-client
agent-harness
artifact-formats
artifact-workspace
conformance
infra
terraform/hetzner: self-host IaC
terraform/prod: Cloudflare DNS
deploy
hetzner: hosted release gates
memory
optional team-memory service docs
How the pieces depend on each other
Every arrow is a real file: dependency in a package.json; the dashed arrows are the conformance package’s contract tests over the client and harness.
What each path owns
| Path | What it owns |
|---|---|
frontend/ |
The Next.js UI: chat, agent sessions, skills, playbooks, wiki, artifacts, secrets, learnings review, automations, and settings. |
backend/ |
The Hono and Postgres control plane: auth, org scoping, runs, sandboxes, engines, knowledge, memory, skills, automations, artifacts, uploads, and connectors. |
packages/agent-client/ |
Runtime-neutral client for thread events, SSE reconnect, reducers, selectors, and typed API helpers. |
packages/agent-harness/ |
Provider-neutral canonical event and control contract for engine adapters. |
packages/artifact-formats/ |
Native DOCX, XLSX, PPTX, and PDF renderers plus bounded Office text extraction. |
packages/artifact-workspace/ |
Provider-neutral workpiece kinds, actions, and the native export capability matrix shared by backend and frontend. |
packages/conformance/ |
Deterministic, framework-free contract tests for the shared client and harness packages. It does not run live providers. |
infra/self-host/hetzner/ |
Self-host IaC: provisions a Hetzner host (Postgres 16 + pgvector, bun, Caddy) with one apply, and deploy-app.sh brings up the core stack. |
infra/prod/ |
Terraform for Cloudflare DNS only. |
deploy/ |
Hosted release gates and canaries invoked by the root release:* scripts. |
memory/ |
Optional team-memory service docs and bring-up notes. |
Notable product surfaces
frontend/app/page.tsxis the lightweight chat surface. It streams answers over SSE with read-only knowledge, wiki, and memory retrieval cited inline, and can promote a chat into a full agent run.frontend/app/agent/new/page.tsxis the task composer that starts agent runs.frontend/app/session/(thread)/[id]/page.tsxis the thread view for a live or settled run, rendering the canonical event log through one vendored session grammar.frontend/app/lab/session/renders one synthetic session through the real timeline components, so every event type can be reviewed on a single page.frontend/app/learnings/page.tsxis the human review queue for the self-improvement lane.
The Concepts section explains what runs, engines, sandboxes, and the gateway actually do.