rulvar API reference / @rulvar/core / JournalEntry
Type Alias: JournalEntry
type JournalEntry = {
abandon?: AbandonPayload;
artifacts?: Json;
checkpointRef?: string;
deadlineAt?: string;
endedAt?: string;
error?: WireError;
escalation?: Json;
hashVersion: HashVersion;
key: string;
kind: EntryKind;
memoizeOutcome?: boolean;
ordinal: number;
ref?: number;
resolution?: ResolutionPayload;
scope: string;
seq: number;
servedBy?: ModelRef;
spanId: string;
startedAt: string;
status: EntryStatus;
transcriptRef?: string;
usage?: Usage;
usageApprox?: boolean;
value?: Json;
};Defined in: packages/core/src/l0/entries.ts:95
Final entry form (hashVersion 2). All journaled values MUST be JSON-serializable; a violation raises a typed NonSerializableValueError at the call site. append is serialized by a per-run queue.
Properties
abandon?
optional abandon?: AbandonPayload;Defined in: packages/core/src/l0/entries.ts:135
Only when kind === 'abandon'.
artifacts?
optional artifacts?: Json;Defined in: packages/core/src/l0/entries.ts:125
Terminal agent entries: the Artifact list (worktree patch refs and inline values); rides the terminal payload so replay reconstructs AgentResult.artifacts without live calls.
checkpointRef?
optional checkpointRef?: string;Defined in: packages/core/src/l0/entries.ts:119
deadlineAt?
optional deadlineAt?: string;Defined in: packages/core/src/l0/entries.ts:144
On suspended entries: the journaled deadline.
endedAt?
optional endedAt?: string;Defined in: packages/core/src/l0/entries.ts:147
error?
optional error?: WireError;Defined in: packages/core/src/l0/entries.ts:112
escalation?
optional escalation?: Json;Defined in: packages/core/src/l0/entries.ts:131
Terminal escalated entries ONLY: the schema-validated EscalationReport with runtime-filled costToDate and salvage; replay synthesizes the byte-identical report from here (DEF-1).
hashVersion
hashVersion: HashVersion;Defined in: packages/core/src/l0/entries.ts:97
Identity-derivation and replay-semantics version of THIS entry.
key
key: string;Defined in: packages/core/src/l0/entries.ts:107
kind
kind: EntryKind;Defined in: packages/core/src/l0/entries.ts:109
memoizeOutcome?
optional memoizeOutcome?: boolean;Defined in: packages/core/src/l0/entries.ts:142
Policy field on agent entries, fixed in the payload at dispatch time: the M2 predicate reads the flag from the ENTRY, never from current code. Excluded from identity like every policy field.
ordinal
ordinal: number;Defined in: packages/core/src/l0/entries.ts:108
ref?
optional ref?: number;Defined in: packages/core/src/l0/entries.ts:105
Backward reference by seq, always ref < seq: on ref-entries (resolution/abandon) the seq of the target; on terminal phase entries the seq of the running entry.
resolution?
optional resolution?: ResolutionPayload;Defined in: packages/core/src/l0/entries.ts:133
Only when kind === 'resolution'.
scope
scope: string;Defined in: packages/core/src/l0/entries.ts:106
seq
seq: number;Defined in: packages/core/src/l0/entries.ts:99
Total order per run; canonical EntryRef = seq.
servedBy?
optional servedBy?: ModelRef;Defined in: packages/core/src/l0/entries.ts:117
Who actually served (failover changes only this, never the key).
spanId
spanId: string;Defined in: packages/core/src/l0/entries.ts:145
startedAt
startedAt: string;Defined in: packages/core/src/l0/entries.ts:146
status
status: EntryStatus;Defined in: packages/core/src/l0/entries.ts:110
transcriptRef?
optional transcriptRef?: string;Defined in: packages/core/src/l0/entries.ts:118
usage?
optional usage?: Usage;Defined in: packages/core/src/l0/entries.ts:113
usageApprox?
optional usageApprox?: boolean;Defined in: packages/core/src/l0/entries.ts:115
True when the stream was cut at the budget ceiling or by a stream failure.
value?
optional value?: Json;Defined in: packages/core/src/l0/entries.ts:111