# a5c-ai/babysitter architecture

> Architecture diagram of the GitHub repository a5c-ai/babysitter, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-30). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/a5c-ai/babysitter
- Repository: https://github.com/a5c-ai/babysitter

## Overview

Babysitter is a code-defined orchestration platform: a process is invoked through a CLI or harness, the SDK executes its tasks under policy and quality gates, pauses for human approval where required, and journals decisions for replay. The repository also contains related operator interfaces and the Kradle inference platform. The README documents the product workflow; source-index references and excerpts establish only the internal links shown. Several broader capabilities are documented but their implementation was not sampled, so those links are documented rather than inferred from filenames.

Main entry points: [`packages/babysitter-sdk/src/runtime/processContext.ts`](https://github.com/a5c-ai/babysitter/blob/main/packages/babysitter-sdk/src/runtime/processContext.ts) (Process context), [`library`](https://github.com/a5c-ai/babysitter/tree/main/library) (Process definitions), [`packages/babysitter-sdk/src/runtime/replay/createReplayEngine.ts`](https://github.com/a5c-ai/babysitter/blob/main/packages/babysitter-sdk/src/runtime/replay/createReplayEngine.ts) (Replay engine), [`packages/babysitter-sdk/src/cli/main.ts`](https://github.com/a5c-ai/babysitter/blob/main/packages/babysitter-sdk/src/cli/main.ts) (Babysitter CLI)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_entry["Entry points"]
  node_cli["Babysitter CLI<br/>[main.ts]"]
  node_adapters["Harness adapters"]
  node_genty["Genty runtime CLI"]
end

subgraph group_runtime["Orchestration runtime"]
  node_context["Process context<br/>[processContext.ts]"]
  node_intrinsics["Task intrinsics<br/>[task.ts]"]
  node_policy["Policy engine<br/>[engine.ts]"]
  node_errors["Runtime errors<br/>[exceptions.ts]"]
  node_replay["Replay engine"]
  node_effectindex["Effect index<br/>[effectIndex.ts]"]
  node_journal[("Run journal<br/>[journal.ts]")]
end

subgraph group_processes["Process library"]
  node_processes["Process definitions"]
end

subgraph group_products["Operator products"]
  node_kanban["Kanban backlog"]
  node_runquery["Run queries"]
  node_kanbanstore[("Kanban storage<br/>[kanban-storage.ts]")]
  node_commander["Commander UI<br/>[App.tsx]"]
  node_kradlemanager["Inference manager"]
  node_kradleservices["Service cards"]
  node_kradleresources["Kradle resources"]
end

node_user(("Engineer"))
node_harness(("AI harnesses"))

node_user -->|"invokes"| node_cli
node_user -->|"starts session"| node_harness
node_cli -.->|"runs process"| node_context
node_harness -->|"uses adapter"| node_adapters
node_adapters -->|"runs same processes"| node_processes
node_genty -->|"invokes process"| node_processes
node_processes -->|"defines workflow"| node_context
node_context -->|"dispatches effects"| node_intrinsics
node_context -.->|"checks policy"| node_policy
node_context -->|"raises runtime errors"| node_errors
node_replay -->|"builds index"| node_effectindex
node_replay -->|"loads events"| node_journal
node_effectindex -->|"loads journal"| node_journal
node_kanban -->|"reads and writes"| node_kanbanstore
node_runquery -.->|"queries backlog"| node_kanban
node_kradlemanager -->|"renders cards"| node_kradleservices

click node_cli "https://github.com/a5c-ai/babysitter/blob/main/packages/babysitter-sdk/src/cli/main.ts"
click node_adapters "https://github.com/a5c-ai/babysitter/tree/main/packages/adapters"
click node_genty "https://github.com/a5c-ai/babysitter/tree/main/packages/genty/platform"
click node_processes "https://github.com/a5c-ai/babysitter/tree/main/library"
click node_context "https://github.com/a5c-ai/babysitter/blob/main/packages/babysitter-sdk/src/runtime/processContext.ts"
click node_intrinsics "https://github.com/a5c-ai/babysitter/blob/main/packages/babysitter-sdk/src/runtime/intrinsics/task.ts"
click node_policy "https://github.com/a5c-ai/babysitter/blob/main/packages/babysitter-sdk/src/runtime/policy/engine.ts"
click node_errors "https://github.com/a5c-ai/babysitter/blob/main/packages/babysitter-sdk/src/runtime/exceptions.ts"
click node_replay "https://github.com/a5c-ai/babysitter/blob/main/packages/babysitter-sdk/src/runtime/replay/createReplayEngine.ts"
click node_effectindex "https://github.com/a5c-ai/babysitter/blob/main/packages/babysitter-sdk/src/runtime/replay/effectIndex.ts"
click node_journal "https://github.com/a5c-ai/babysitter/blob/main/packages/babysitter-sdk/src/storage/journal.ts"
click node_kanban "https://github.com/a5c-ai/babysitter/blob/main/packages/adapters/gateway/src/kanban/lib/services/backlog-query-service.ts"
click node_runquery "https://github.com/a5c-ai/babysitter/blob/main/packages/adapters/gateway/src/kanban/lib/services/run-query-service.ts"
click node_kanbanstore "https://github.com/a5c-ai/babysitter/blob/main/packages/adapters/gateway/src/kanban/lib/services/kanban-storage.ts"
click node_commander "https://github.com/a5c-ai/babysitter/blob/main/apps/commander/src/App.tsx"
click node_kradlemanager "https://github.com/a5c-ai/babysitter/blob/main/packages/kradle/web/app/components/inference/inference-service-manager.jsx"
click node_kradleservices "https://github.com/a5c-ai/babysitter/blob/main/packages/kradle/web/app/components/inference/inference-service-list.jsx"
click node_kradleresources "https://github.com/a5c-ai/babysitter/blob/main/apps/commander/src/contracts/kradle-resources.ts"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_cli,node_adapters,node_genty toneBlue
class node_context,node_intrinsics,node_policy,node_errors,node_replay,node_effectindex,node_journal toneAmber
class node_processes toneMint
class node_kanban,node_runquery,node_kanbanstore,node_commander,node_kradlemanager,node_kradleservices,node_kradleresources toneRose
class node_user,node_harness toneIndigo
```

## Components

### Entry points

- [Babysitter CLI](https://github.com/a5c-ai/babysitter/blob/main/packages/babysitter-sdk/src/cli/main.ts): `packages/babysitter-sdk/src/cli/main.ts`
- [Harness adapters](https://github.com/a5c-ai/babysitter/tree/main/packages/adapters): `packages/adapters`
- [Genty runtime CLI](https://github.com/a5c-ai/babysitter/tree/main/packages/genty/platform): `packages/genty/platform`

### Orchestration runtime

- [Process context](https://github.com/a5c-ai/babysitter/blob/main/packages/babysitter-sdk/src/runtime/processContext.ts): `packages/babysitter-sdk/src/runtime/processContext.ts`
- [Task intrinsics](https://github.com/a5c-ai/babysitter/blob/main/packages/babysitter-sdk/src/runtime/intrinsics/task.ts): `packages/babysitter-sdk/src/runtime/intrinsics/task.ts`
- [Policy engine](https://github.com/a5c-ai/babysitter/blob/main/packages/babysitter-sdk/src/runtime/policy/engine.ts): `packages/babysitter-sdk/src/runtime/policy/engine.ts`
- [Runtime errors](https://github.com/a5c-ai/babysitter/blob/main/packages/babysitter-sdk/src/runtime/exceptions.ts): `packages/babysitter-sdk/src/runtime/exceptions.ts`
- [Replay engine](https://github.com/a5c-ai/babysitter/blob/main/packages/babysitter-sdk/src/runtime/replay/createReplayEngine.ts): `packages/babysitter-sdk/src/runtime/replay/createReplayEngine.ts`
- [Effect index](https://github.com/a5c-ai/babysitter/blob/main/packages/babysitter-sdk/src/runtime/replay/effectIndex.ts): `packages/babysitter-sdk/src/runtime/replay/effectIndex.ts`
- [Run journal](https://github.com/a5c-ai/babysitter/blob/main/packages/babysitter-sdk/src/storage/journal.ts): `packages/babysitter-sdk/src/storage/journal.ts`

### Process library

- [Process definitions](https://github.com/a5c-ai/babysitter/tree/main/library): `library`

### Operator products

- [Kanban backlog](https://github.com/a5c-ai/babysitter/blob/main/packages/adapters/gateway/src/kanban/lib/services/backlog-query-service.ts): `packages/adapters/gateway/src/kanban/lib/services/backlog-query-service.ts`
- [Run queries](https://github.com/a5c-ai/babysitter/blob/main/packages/adapters/gateway/src/kanban/lib/services/run-query-service.ts): `packages/adapters/gateway/src/kanban/lib/services/run-query-service.ts`
- [Kanban storage](https://github.com/a5c-ai/babysitter/blob/main/packages/adapters/gateway/src/kanban/lib/services/kanban-storage.ts): `packages/adapters/gateway/src/kanban/lib/services/kanban-storage.ts`
- [Commander UI](https://github.com/a5c-ai/babysitter/blob/main/apps/commander/src/App.tsx): `apps/commander/src/App.tsx`
- [Inference manager](https://github.com/a5c-ai/babysitter/blob/main/packages/kradle/web/app/components/inference/inference-service-manager.jsx): `packages/kradle/web/app/components/inference/inference-service-manager.jsx`
- [Service cards](https://github.com/a5c-ai/babysitter/blob/main/packages/kradle/web/app/components/inference/inference-service-list.jsx): `packages/kradle/web/app/components/inference/inference-service-list.jsx`
- [Kradle resources](https://github.com/a5c-ai/babysitter/blob/main/apps/commander/src/contracts/kradle-resources.ts): `apps/commander/src/contracts/kradle-resources.ts`

### Other components

- **Engineer**
- **AI harnesses**

## Connections

- Engineer → Babysitter CLI: invokes
- Engineer → AI harnesses: starts session
- Babysitter CLI → Process context: runs process
- AI harnesses → Harness adapters: uses adapter
- Harness adapters → Process definitions: runs same processes
- Genty runtime CLI → Process definitions: invokes process
- Process definitions → Process context: defines workflow
- Process context → Task intrinsics: dispatches effects (evidence: `packages/babysitter-sdk/src/runtime/processContext.ts`)
- Process context → Policy engine: checks policy
- Process context → Runtime errors: raises runtime errors (evidence: `packages/babysitter-sdk/src/runtime/processContext.ts`)
- Replay engine → Effect index: builds index (evidence: `packages/babysitter-sdk/src/runtime/replay/createReplayEngine.ts`)
- Replay engine → Run journal: loads events (evidence: `packages/babysitter-sdk/src/runtime/replay/createReplayEngine.ts`)
- Effect index → Run journal: loads journal (evidence: `packages/babysitter-sdk/src/runtime/replay/effectIndex.ts`)
- Kanban backlog → Kanban storage: reads and writes (evidence: `packages/adapters/gateway/src/kanban/lib/services/backlog-query-service.ts`)
- Run queries → Kanban backlog: queries backlog (evidence: `packages/adapters/gateway/src/kanban/lib/services/backlog-query-service.ts`)
- Inference manager → Service cards: renders cards (evidence: `packages/kradle/web/app/components/inference/inference-service-manager.jsx`)
