@tasq-run/core
v0.6.2
Published
Embed the Tasq task ledger in a TypeScript app: tasks, claims, attempts and evidence.
Readme
@tasq-run/core
Embed the Tasq task ledger in a TypeScript app: tasks, claims, attempts and evidence.
Start
npm install @tasq-run/coreThe normal embedded path owns database opening, compatible migrations and local coordination-space bootstrap while keeping the store, workspace, actor and clock explicit:
import { createLocalTasq, systemClock } from "@tasq-run/core";
const url = process.env.TASQ_DB_URL;
if (!url) throw new Error("Set TASQ_DB_URL=file:/absolute/path/to/db.sqlite");
const tasq = await createLocalTasq({
url,
workspaceId: "example/team",
actor: "app:example",
clock: systemClock,
});
try {
let [commitment] = await tasq.commitments.list({ limit: 1 });
if (!commitment) {
commitment = await tasq.commitments.create(
{ title: "Ship the embedded Tasq loop" },
{ idempotencyKey: "example:create" },
);
commitment = await tasq.commitments.start(commitment.id, {
expectedRevision: commitment.revision,
idempotencyKey: "example:start",
});
commitment = await tasq.commitments.complete(commitment.id, {
expectedRevision: commitment.revision,
idempotencyKey: "example:complete",
});
}
console.log(JSON.stringify({ id: commitment.id, status: commitment.status }));
} finally {
await tasq.close();
}Run the same program again against the same TASQ_DB_URL to reopen the ledger without recreating or losing the commitment. Lower-level kernel exports remain available for advanced trusted integrations; they require callers to compose storage, migrations and context themselves.
Runtime and support
Bun 1.3+ and Node.js 22+ are certified from the same compiled ESM package. This package is generated deterministically from the canonical Tasq source tree.
Source, full documentation, security policy and release provenance: https://github.com/gwendall/tasq
