/** * Spans → Trajectory adapter (for the `profile` command). * * Converts a live coding-agent session's OTel spans into the same * `TrajectoryStep[]` shape the evaluation/judge pipeline already consumes, so a * real session can be analyzed with the very evaluator a customer uses on * synthetic evals — no separate runtime, same `improvementStrategies[]` schema. * * Two span shapes are handled: * - **Claude Code native** — content lives in span *attributes* keyed by * `span.type` (`interaction`, `tool`, `tool.execution`, `llm_request`, * `tool.blocked_on_user`). This is what real `claude_code.*` telemetry * emits; verified against a live cluster. * - **Generic / event-based** — OTel GenAI `llm.request`/`tool` spans with * events, via the shared `extractMessagesFromSpans` helper. * * Also runs a cheap, deterministic "signal scan" so the downstream reasoner * (the in-session coding agent, or a headless judge) gets structured evidence * instead of re-deriving it from raw spans. */ import { Span, TrajectoryStep } from '../../types/index.js'; export interface SessionSignal { id: string; title: string; severity: 'high' | 'medium' | 'low'; count: number; evidence: string; } /** Convert session spans into a chronological `TrajectoryStep[]`. */ export declare function spansToTrajectory(spans: Span[], serviceName?: string): TrajectoryStep[]; /** * Cheap, deterministic signal scan. Empty result ⇒ nothing notable happened * (caller may skip the LLM). */ export declare function scanSessionSignals(spans: Span[], serviceName?: string): SessionSignal[]; //# sourceMappingURL=spansToTrajectory.d.ts.map