This commit is contained in:
2026-05-13 11:17:53 +02:00
parent 69385094ff
commit 24d21818cf
23 changed files with 736 additions and 65 deletions

View File

@@ -7,6 +7,7 @@ import type { DemoPipeline2LocalMissingTradeEventDiagnosticSample } from "./Demo
import type { DemoPipeline2LocalMissingTradeEventReasonSummary } from "./DemoPipeline2LocalMissingTradeEventReasonSummary";
import type { DemoPipeline2LocalMultiTradeSignaturePairDiagnosticSample } from "./DemoPipeline2LocalMultiTradeSignaturePairDiagnosticSample";
import type { DemoPipeline2LocalNonActionablePairDiagnosticSummary } from "./DemoPipeline2LocalNonActionablePairDiagnosticSummary";
import type { DemoPipeline2LocalPairActionabilityDiagnosticSummary } from "./DemoPipeline2LocalPairActionabilityDiagnosticSummary";
import type { DemoPipeline2LocalPairDiagnosticSummary } from "./DemoPipeline2LocalPairDiagnosticSummary";
import type { DemoPipeline2LocalPairGapDiagnosticSample } from "./DemoPipeline2LocalPairGapDiagnosticSample";
@@ -124,11 +125,51 @@ poolCount: number,
*/
pairCount: number,
/**
* Total pairs without trade.
* Stable explanation for legacy pair gap counters.
*/
pairGapCounterSemantics: string,
/**
* Total pairs without any persisted trade event.
*/
literalPairWithoutTradeCount: number,
/**
* Total pairs without any persisted candle.
*/
literalPairWithoutCandleCount: number,
/**
* Total pairs that have at least one persisted trade event.
*/
tradeMaterializedPairCount: number,
/**
* Total pairs that have at least one persisted candle bucket.
*/
candleMaterializedPairCount: number,
/**
* Total pairs with at least one successful decoded trade candidate.
*/
actionablePairCount: number,
/**
* Total distinct candle timeframes currently materialized.
*/
candleBucketTimeframeCount: number,
/**
* Whether candle rows are bucketed aggregates rather than one row per trade.
*/
candlesAreBucketed: boolean,
/**
* Total pairs without trade among actionable successful trade candidates.
*/
blockingPairWithoutTradeCount: number,
/**
* Total pairs without candle among actionable successful candle candidates.
*/
blockingPairWithoutCandleCount: number,
/**
* Total pairs without trade. Legacy alias for blocking/actionable gaps.
*/
pairWithoutTradeCount: number,
/**
* Total pairs without candle.
* Total pairs without candle. Legacy alias for blocking/actionable gaps.
*/
pairWithoutCandleCount: number,
/**
@@ -139,6 +180,10 @@ dexSummaries: Array<DemoPipeline2LocalDexDiagnosticSummary>,
* Diagnostics grouped by pair.
*/
pairSummaries: Array<DemoPipeline2LocalPairDiagnosticSummary>,
/**
* Diagnostics grouped by pair materialization/actionability class.
*/
pairActionabilitySummaries: Array<DemoPipeline2LocalPairActionabilityDiagnosticSummary>,
/**
* Diagnostics grouped by decoded event kind.
*/