Skip to main content

Database API

The Smithers database provides persistent storage using PGlite (embedded PostgreSQL).

Creating a Database

import { createSmithersDB } from "smithers/smithers-orchestrator/src/db";

const db = await createSmithersDB({
  path: ".smithers/my-workflow"
});

// Always close when done
await db.close();

Database Structure

NamespacePurpose
db.stateKey-value state storage
db.memoriesLong-term knowledge storage
db.executionExecution tracking
db.phasesPhase tracking
db.stepsStep tracking
db.agentsAgent invocation tracking
db.toolsTool call tracking
db.artifactsArtifact tracking
db.vcsVCS operations (commits, reviews)

Raw Queries

For advanced use cases:
const results = await db.query<{ count: number }>(
  "SELECT COUNT(*) as count FROM agents WHERE model = $1",
  ["sonnet"]
);

Closing

Always close the database to ensure writes are flushed:
await db.close();