/** * Kernel persistence backend types. * Inlined from trellis-core for single-package publish. * * @module trellis/core */ import type { Fact, Link } from '../store/eav-store.js'; import type { OpProvenance } from './canonical-op.js'; export type KernelOpKind = 'addFacts' | 'addLinks' | 'deleteFacts' | 'deleteLinks'; export interface KernelOp { /** * Content hash of this operation (including previousHash). * Format: trellis:op:{hash} */ hash: string; /** * Kind of operation. */ kind: KernelOpKind; /** * ISO timestamp of when the op was created. */ timestamp: string; /** * The ID of the agent that performed the operation. */ agentId: string; /** * Hash of the previous operation in the local chain. */ previousHash?: string; /** * The actual data payload. */ facts?: Fact[]; links?: Link[]; /** * Facts to delete (for update/delete operations). */ deleteFacts?: Fact[]; /** * Links to delete (for update/delete operations). */ deleteLinks?: Link[]; /** * Preimage version (ADR 0021). Absent ⇒ v1 legacy op, whose hash is not * recomputable and is never reverified. */ v?: number; /** * Op-level provenance (ADR 0021 §2). Reserved in Phase A — normalized into * the hash preimage as `null` until Phase B populates it. */ provenance?: OpProvenance; } export interface KernelBackend { init(): void; append(op: KernelOp): void; readAll(): KernelOp[]; readUntil(hash: string): KernelOp[]; readAfter(hash: string): KernelOp[]; readUntilTimestamp(isoTimestamp: string): KernelOp[]; getByHash(hash: string): KernelOp | undefined; getLastOp(): KernelOp | undefined; getOpCount(): number; saveSnapshot(lastOpHash: string, data: any): void; loadLatestSnapshot(): { lastOpHash: string; data: any; } | undefined; close?(): void; } //# sourceMappingURL=backend.d.ts.map