import type { FinalizedSignals } from './apply-suppressions.js'; import type { GraphCommandOptions } from './graph-options.js'; import type { GraphSessionPayload } from '../persistence/session-payload.js'; import type { Rule } from '../types.js'; import type { Signal, ToolSessionContribution } from '@opensip-cli/core'; /** Headline verdict fields copied onto the generic session contribution row. */ export interface SessionVerdict { readonly score: number; readonly passed: boolean; } /** * Build the generic-session contribution for a single-process graph run from * branded finalized signals and the same envelope verdict the delivery path * already computed (ADR-0177). The host run plane stamps timing + id and * persists the row after the handler returns; graph never writes the generic * session row. */ export declare function buildGraphSessionContribution(opts: Pick, finalized: FinalizedSignals, verdict: SessionVerdict): ToolSessionContribution; /** * Build the aggregate generic-session contribution for a `--workspace` run. * Child envelopes carry Option-A-mapped OpenSIP rule IDs; reverse-map back to * engine slugs so dashboard per-rule metric columns keep working. A failed * child makes the aggregate incomplete, so its session is explicitly an * error with a score of zero regardless of the surviving signals. */ export declare function buildWorkspaceSessionContribution(opts: Pick, signals: readonly Signal[], anyChildFailed: boolean): ToolSessionContribution; /** * Engine slugs of every rule a run evaluated. Prefer the explicitly-resolved * rule set the run actually used; otherwise read the current scope's full * registry, matching `runGraph`'s own `args.rules ?? currentRules()` default. */ export declare function evaluatedRuleSlugs(explicitRules?: readonly Rule[]): readonly string[]; /** * Build graph's generic-session contribution from engine-slug signals plus the * engine slugs of the rules evaluated. Shared by static dispatch and live Ink * so the contribution shape cannot drift. * * Score/passed come from {@link buildGraphEnvelope} (ADR-0177) — the same pure * assembly the live delivery path uses — not from `passRate` over the * all-evaluated payload summary (clean-rule inventory stays in payload only). */ export declare function contributionFromSignals(opts: Pick, signals: readonly Signal[], evaluatedSlugs?: readonly string[]): ToolSessionContribution; /** * Finalize a graph-owned payload into the host's generic session contribution. * Ordinary graph and impact runs share this score/verdict assembly while * retaining explicit payload construction at their two call sites. * * `verdict` MUST be the envelope's `score`/`passed` (ADR-0177). Payload detail * may list every evaluated rule; it must not recompute the headline. */ export declare function contributionFromGraphPayload(opts: Pick, payload: GraphSessionPayload, verdict: SessionVerdict): ToolSessionContribution; //# sourceMappingURL=graph-session-contribution.d.ts.map