import type { Agent, AgentSessionConfig, GuardrailPackRef, GuardrailStage, RunOptions } from "./contracts.js"; /** Report format revision. Any shape change bumps this so pinned digests cannot compare across formats. */ export declare const RUN_BUNDLE_SCHEMA_VERSION = 1; /** Inspectable projection of the inputs a run actually resolves to. Frozen JSON, safe to persist and diff. */ export interface RunBundleSnapshot { readonly schemaVersion: number; /** `sha256:<64 hex>` over the canonicalized, redacted snapshot (this field excluded). */ readonly digest: string; /** `agentFingerprint()` of the same agent/revision: the durable-resume identity behind this snapshot. */ readonly fingerprint: string; readonly agent: { readonly id: string; readonly definitionRevision: string | null; }; readonly systemPrompt: { readonly disabled: boolean; /** Digest of `AgentConfig.instructions`; the body never leaves the process. */ readonly instructionsDigest: string | null; readonly contributions: readonly { readonly id: string; readonly mode: string | null; readonly source: string | null; readonly digest: string; }[]; }; readonly skills: readonly { readonly name: string; readonly instructionsDigest: string | null; readonly toolNames: readonly string[]; }[]; /** Effective tool set: `run.toolNames` narrowing already applied, schemas reduced to digests. */ readonly tools: readonly { readonly name: string; readonly schemaDigest: string; readonly exclusive: boolean; readonly effect: string | null; }[]; readonly activeSkills: readonly string[] | null; readonly guardrails: readonly { readonly name: string; readonly stage: GuardrailStage; readonly revision: string | null; }[]; readonly loop: { readonly strategy: string; readonly revision: string | null; }; readonly thinkingLevel: string | null; readonly limits: Readonly; /** Host-shaped JSON as configured (`true`/`false`/options); `null` when unset. */ readonly attentionCompiler: unknown; readonly model: { readonly provider: string | null; readonly model: string | null; }; readonly requestPolicies: readonly string[]; /** Kinds only — never a connection string, path, or credential. */ readonly storage: { readonly sessionStore: { readonly kind: string; readonly durable: boolean; }; readonly checkpoints: { readonly kind: string; readonly durable: boolean; }; readonly effectStore: { readonly kind: string; readonly durable: boolean; }; readonly memory: { readonly kind: string; readonly durable: boolean; }; }; } export interface RunBundleSnapshotInput { readonly agent: Agent; /** Session-level inputs (store, leaf, cache TTL) that change what the run reads and writes. */ readonly config?: AgentSessionConfig; readonly run?: RunOptions; /** Optional memory store instance; only its kind/durability label is read, never its contents. */ readonly memory?: unknown; /** * Plan 104 Task 2: effective pack refs (`session.guardrailPackRefs`) to report instead of the * caller-supplied `config.guardrailPacks` — a resumed session's enforced rows. */ readonly packs?: readonly GuardrailPackRef[]; } /** * Snapshots the effective run bundle: synchronous, in-memory, zero network and zero store reads. * The counterpart of `agentFingerprint` for humans — same inputs, named fields, one stable digest to pin. */ export declare function snapshotRunBundle(input: RunBundleSnapshotInput): RunBundleSnapshot;