/** * Per-arg projection emitted by the build transformer for Tier-2 input capture. * * The projection turns a raw argument into a trace-safe payload, derived at * compile time from the parameter's type and the `.traceSafe()` markings in * the `pipe.define()` registry. The runtime then runs the projected value * through the bounded serializer before staging it on * `trace_step.captured_inputs`. * * The projection may return any JSON-shaped value, including `undefined` for * "this arg has no safe fields to capture" (fail-closed default). */ export type CaptureProjection = (arg: unknown) => unknown; /** * One `@touches Entity:verb` target baked into a step's meta. Mirrors the * `EntityTouch` shape the annotation parser produces — duplicated here so the * runtime has no compile-time dependency on `src/trace/annotation/*` (the * transformer is the only thing that bridges the two). */ export interface MetaTouch { readonly entity: string; readonly verb: string; } /** Trace metadata for one documented flow-step: its `path:symbol` graph node id and the per-argument capture projections. */ export interface FlowStepMeta { /** The `path:symbol` flow-graph node id of the documented function. */ readonly ref: string; /** * Per-arg capture projections, in parameter order. `null` at a slot means * "no projection — pass the raw arg through to the bounded serializer" * (primitives, or `any`-typed parameters with no registry entry). * * Absent entirely means the transformer chose to skip Tier-2 capture for * this step. The runtime stages `capturedInputs: null` and incurs no * per-arg cost. */ readonly capture?: ReadonlyArray; /** * `@touches Entity:verb` targets declared on this step. Empty / absent means * the step has no audit projection — the write surface emits vanilla DML * (no CTE) and the runtime emits no read-touches `audit_record` row. * * When present, the active step's touches surface through the trace's * `StepBuffer` for the executor's CTE generator (write-touches) and for * `__flowStep`'s step-completion path (read-touches). */ readonly touches?: ReadonlyArray; } //# sourceMappingURL=step-meta.d.ts.map