Documentation JavaScript & TypeScript
JavaScript library
Research and resume stored Runs in Node, Workers, and browsers.
import { createLibrarium } from 'librarium';
const librarium = createLibrarium();
const question = 'Compare database providers';
const plan = await librarium.research(question, {
only: ['exa'], dryRun: true,
});
const started = await librarium.research(question, {
depth: 'deep', only: ['exa'],
maxCost: '1.00', wait: false,
});
const later = await librarium.get(started.id, { wait: true });
librarium.sources();
if (later !== null) {
const summary = await librarium.summarize(later);
}
research waits by default. With wait: false, durable work can be finished through get; quick inline work still depends on its process. summarize is a separate budgeted Run with summary_of, not a mutation of the source Run.
Import boundaries
| Import | Responsibility |
|---|---|
librarium |
Node client with v3 config and filesystem storage |
librarium/node |
Same client plus filesystem store and config loading/saving |
librarium/core |
Runtime-neutral client; inject config/environment/store, memory by default |
librarium/testing |
Disposable-store runStoreContract |
The root is Node-oriented. Use librarium/core for Workers or browsers; it does not inspect process state or files on import. Preserve a persistent custom client’s handleKey (32 random bytes) outside its store across restarts.
Public Run
JSON uses snake_case, JS options camelCase. The Run records spec, id, question, depth, status, timestamps, cost, results, skipped, and notices. Run status is planned, running, done, partial, or failed; results have queued, running, done, or failed.
Each result keeps a source, observation, Markdown answer, citations, cost, and provenance (provider, variant, model, and retrieval service). Errors are safe { code, message, retryable } values. See costs and limits for money fields and unknown charges.
The shared librarium-spec package owns schemas, source catalog, and semantic fixtures. It does not make private runtimes or task handles interchangeable. See output and evidence.