Caller-supplied tuning for Graph.exportModel.

The IR is consumed by causl-check, the bounded model checker that lifts runtime race-detection into a CI gate. Hosts cap the IR's commit log to bound the workload the checker faces during replay-determinism enumeration: a recorded commit sequence replayed on a fresh graph must produce a byte-identical model state, and exhaustively exploring that property over an unbounded log would defeat the checker's CI budget.

interface ExportModelOptions {
    captureCallGraph?: boolean;
    maxCommits?: number;
}

Properties

captureCallGraph?: boolean

Whether to attach a bounded call-graph annotation to every exported import('./ir.js').IRCommit. Defaults to true.

When enabled, the exporter walks the synchronous JS call stack at commit-issue time, captures up to D = 32 frames, and emits them as IRCommit.callGraph. Per SPEC.md §16.2.1.3, frames beyond the bound are dropped and the truncatedDeeper flag is set so consumers can tell partial captures apart from genuinely-shallow stacks. Hosts that cannot afford the stack-trace API cost in production builds set this to false — schema-3 IRs with the field absent are still wire-format-valid, the field is optional by design.

maxCommits?: number

Cap on number of commits included; defaults to 100.