Skip to content

Rulvar API reference


Rulvar API reference / @rulvar/core / CriticalPath

Interface: CriticalPath

Defined in: packages/core/src/l0/telemetry-reduce.ts:242

The critical-path summary of one run (RV-211): the plan's post-fan-in gate ("synthesis takes at most 40% of wall time with four settled workers") computed as a pure fold over the same vocabulary, no heuristics beyond the role tags. Post-fan-in is the interval from the LAST settled non-coordination agent (any span whose primary role is neither 'orchestrate' nor 'synthesize') to run:end; the synthesis wall is the summed span wall of 'synthesize' spans. Wall numbers are LIVE fidelity: a replayed stream re-stamps emission times, so its intervals are degenerate, exactly like phase durations. Absent pieces (no run:end, no worker spans) leave the corresponding fields undefined rather than guessed at.

Properties

PropertyTypeDescriptionDefined in
citationJudgeMsnumberCompleted 'synthesize' spans that are the citation entailment audit judge (labels CITATION_JUDGE_LABEL and its suffixed variants), summed (RV4206). Until this bucket existed the audit judge folded into finalCompositionMs on BOTH surfaces: the sixth comparison run's 368889 ms "composition" was 214870 ms of composition plus 154019 ms of this judge, compositionSpans then counted the judge as a second composition (the legible signature of a repair round on a run that had none), and lastCandidateMs stretched to the judge's end while the candidate had settled 154 seconds earlier.packages/core/src/l0/telemetry-reduce.ts:298
citationJudgeSpansnumberCompleted citation-judge synthesize spans, counted (RV4206).packages/core/src/l0/telemetry-reduce.ts:300
compositionSpansnumberCompleted composition-side synthesize spans, counted (RV3404): two compositions on one run is the legible signature of the bounded repair round (RV3307), and a count survives where milliseconds invite guessing.packages/core/src/l0/telemetry-reduce.ts:318
draftJudgeMsnumberThe stage split of semanticJudgeMs (RV3404): the draft pass dispatches under the exact CLAIM_JUDGE_LABEL and every suffixed variant is a post draft pass (today the final pass and the repair round's re-judge, both -final, RV2509/RV3307). Always the exact partition: draftJudgeMs + finalJudgeMs equals semanticJudgeMs.packages/core/src/l0/telemetry-reduce.ts:283
finalCompositionMsnumberCompleted 'synthesize' spans that ARE final composition, summed (RV1604; classified through synthesizeSpanClassOf since RV4206): the engine's own composition labels plus every unlabelled span (composition was the only unlabelled engine dispatch before RV2901 named it). A span whose label this classifier does not know lands in unclassifiedSynthesisMs instead of here: the sixth comparison run read 368889 ms of "final composition" of which 154019 ms was the citation judge.packages/core/src/l0/telemetry-reduce.ts:268
finalJudgeMsnumberThe post draft half of the split; see draftJudgeMs.packages/core/src/l0/telemetry-reduce.ts:285
firstCandidateMs?numberrun:start to the FIRST completed composition-side synthesize span's end (RV3605): when a candidate deliverable first existed. The third comparison run held a mechanically accepted candidate from its 103rd journal seq onward and lost typed 25 minutes later; nothing on any surface said when the latent document materialized, and the judge had to dig spans by hand. Absent without a run:start or a completed composition span, and live fidelity like every wall figure here.packages/core/src/l0/telemetry-reduce.ts:331
hostRejectedSpansnumberSettled spans whose invocation was aborted by the host's finish rejection (RV3702): the hostRejected stamps counted. The count is unconditional (the stamp is self contained, no labelling condition applies) and zero when none: on the third comparison run's shape it reads 1, the round's composition, telling the host rejection apart from a provider death at the cut level.packages/core/src/l0/telemetry-reduce.ts:356
judgeSpansnumberCompleted judge-side synthesize spans, counted (RV3404).packages/core/src/l0/telemetry-reduce.ts:320
lastCandidateMs?numberrun:start to the LAST completed composition-side span's end (RV3605). On a run whose terminal carries deliverableAccepted: true this is when the accepted composition settled, the time to accepted deliverable; on a failed run it is when the last LOSING candidate settled, so pair it with the acceptance verdict and never read it as a win on an error terminal (the comparison rule the third experiment wrote down).packages/core/src/l0/telemetry-reduce.ts:341
postFanIn?PostFanInBreakdownThe RV710 decomposition of the window; present with postFanInMs.packages/core/src/l0/telemetry-reduce.ts:358
postFanInMs?numberLast non-coordination agent:end to run:end; absent without both.packages/core/src/l0/telemetry-reduce.ts:246
postFanInShare?numberpostFanInMs / runWallMs when both are defined and the wall is > 0.packages/core/src/l0/telemetry-reduce.ts:343
runWallMs?numberrun:start to run:end; absent while the run is open.packages/core/src/l0/telemetry-reduce.ts:244
semanticJudgeMsnumberCompleted 'synthesize' spans that are the claim-consistency judge (agent:start label CLAIM_JUDGE_LABEL), its extract phase included, summed (RV1604).packages/core/src/l0/telemetry-reduce.ts:274
synthesisMsnumberSummed wall of completed 'synthesize' spans (0 when none). Since RV4206 this is exactly finalCompositionMs + semanticJudgeMs + citationJudgeMs + unclassifiedSynthesisMs, kept whole for existing consumers: the name predates the judges riding the same role, and the eighteenth comparison benchmark read a 54-second synthesisMs as a second final composition when the run had SKIPPED synthesis and the bucket was entirely the judge and its extract. Read the split fields.packages/core/src/l0/telemetry-reduce.ts:257
synthesisShare?numbersynthesisMs / runWallMs under the same conditions.packages/core/src/l0/telemetry-reduce.ts:345
unclassifiedSynthesisMsnumberCompleted 'synthesize' spans whose label names NEITHER a judge nor a composition (RV4206): a vocabulary member this classifier does not know. Nonzero means the split beside it is a floor, and saying so is the whole point: an unknown synthesize label used to fold silently into finalCompositionMs, which is exactly how the citation judge hid there for four releases.packages/core/src/l0/telemetry-reduce.ts:309
unclassifiedSynthesisSpansnumberCompleted unclassified synthesize spans, counted; nonzero flags the split as a floor.packages/core/src/l0/telemetry-reduce.ts:311
workerSpansnumberSettled non-coordination agent spans that anchored the fan-in.packages/core/src/l0/telemetry-reduce.ts:347