Storage
Pluggable backends for saving conversations and run artifacts.
@tally-evals/core provides storage primitives used by both Trajectories and Tally to persist artifacts (conversations, step traces, and evaluation reports).
Storage structure (local)
By default, artifacts live under .tally/:
.tally/
└── conversations/
└── <conversation-id>/
├── meta.json
├── conversation.jsonl
├── stepTraces.json
└── runs/
└── tally/
└── run-*.jsonLocal storage
import { LocalStorage } from '@tally-evals/core';
const storage = new LocalStorage({ rootPath: './.tally' });
await storage.write('reports/latest.json', JSON.stringify({ ok: true }));TallyStore
TallyStore is a higher-level API for reading/writing conversations and runs.
import { TallyStore } from '@tally-evals/core';
const store = await TallyStore.open({ cwd: process.cwd() });
// e.g. used by @tally-evals/trajectories runTrajectory({ store, trajectoryId })