/** * Runtime smoke check. * * Spins up a minimal in-memory RuntimeEngine wired with MemoryAuditSink * and MemoryOutboxStore, runs a single emit-event command, and asserts: * * 1. Exactly one AuditRecord was emitted, outcome=success. * 2. The audit record carries the tenant/actor/source from RuntimeContext. * 3. The audit record's emittedEventNames reflects the command's emit. * 4. The outbox enqueued exactly one entry, status='pending'. * * Purpose: prove the adapter contracts actually function in *this* build of * the package, end-to-end through `runCommand`. This is the difference * between "the AuditSink option type-checks" (v0.4.0) and "the runtime * actually calls AuditSink.emit" (v0.5.0+). If the smoke fails, the * package is published but the runtime contract isn't honored. * * Independent of the downstream repo. The smoke uses a tiny inline IR so * a wrong package install is caught even before the downstream's .manifest * files are read. The downstream's own command behavior is exercised * separately by `manifest harness`. */ export interface RuntimeSmokeAssertion { name: string; passed: boolean; expected: unknown; actual: unknown; } export interface RuntimeSmokeResult { /** Overall pass/fail. True only if every assertion passed. */ ok: boolean; assertions: RuntimeSmokeAssertion[]; /** Errors that prevented the smoke from running at all (import failures, etc.). */ fatal?: string; } /** * Run the runtime smoke. Catches package-import failures as `fatal` so * the caller can surface "the adapter subpaths are unresolvable" as a * distinct failure mode from "an assertion failed". */ export declare function runRuntimeSmoke(): Promise; //# sourceMappingURL=runtime-smoke.d.ts.map