@uptimizr/db 2.0.1 → 2.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS.md +228 -3
- package/README.md +13 -0
- package/dist/duckdb/migrations.d.ts.map +1 -1
- package/dist/duckdb/migrations.js +169 -0
- package/dist/duckdb/migrations.js.map +1 -1
- package/dist/duckdb/panelSpecs.d.ts +29 -0
- package/dist/duckdb/panelSpecs.d.ts.map +1 -0
- package/dist/duckdb/panelSpecs.js +104 -0
- package/dist/duckdb/panelSpecs.js.map +1 -0
- package/dist/duckdb/projectMetadata.d.ts +43 -0
- package/dist/duckdb/projectMetadata.d.ts.map +1 -0
- package/dist/duckdb/projectMetadata.js +222 -0
- package/dist/duckdb/projectMetadata.js.map +1 -0
- package/dist/duckdb/subscriptions.d.ts +45 -0
- package/dist/duckdb/subscriptions.d.ts.map +1 -0
- package/dist/duckdb/subscriptions.js +202 -0
- package/dist/duckdb/subscriptions.js.map +1 -0
- package/dist/index.d.ts +18 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +48 -3
- package/dist/index.js.map +1 -1
- package/dist/insights/anomalies.d.ts +213 -0
- package/dist/insights/anomalies.d.ts.map +1 -0
- package/dist/insights/anomalies.js +340 -0
- package/dist/insights/anomalies.js.map +1 -0
- package/dist/insights/baseline.d.ts +51 -0
- package/dist/insights/baseline.d.ts.map +1 -0
- package/dist/insights/baseline.js +48 -0
- package/dist/insights/baseline.js.map +1 -0
- package/dist/insights/buckets.d.ts +114 -0
- package/dist/insights/buckets.d.ts.map +1 -0
- package/dist/insights/buckets.js +220 -0
- package/dist/insights/buckets.js.map +1 -0
- package/dist/insights/changepoint.d.ts +130 -0
- package/dist/insights/changepoint.d.ts.map +1 -0
- package/dist/insights/changepoint.js +209 -0
- package/dist/insights/changepoint.js.map +1 -0
- package/dist/insights/evaluate.d.ts +63 -0
- package/dist/insights/evaluate.d.ts.map +1 -0
- package/dist/insights/evaluate.js +158 -0
- package/dist/insights/evaluate.js.map +1 -0
- package/dist/insights/health.d.ts +219 -0
- package/dist/insights/health.d.ts.map +1 -0
- package/dist/insights/health.js +349 -0
- package/dist/insights/health.js.map +1 -0
- package/dist/insights/index.d.ts +45 -0
- package/dist/insights/index.d.ts.map +1 -0
- package/dist/insights/index.js +40 -0
- package/dist/insights/index.js.map +1 -0
- package/dist/insights/measures.d.ts +222 -0
- package/dist/insights/measures.d.ts.map +1 -0
- package/dist/insights/measures.js +431 -0
- package/dist/insights/measures.js.map +1 -0
- package/dist/insights/movers.d.ts +123 -0
- package/dist/insights/movers.d.ts.map +1 -0
- package/dist/insights/movers.js +166 -0
- package/dist/insights/movers.js.map +1 -0
- package/dist/insights/significance.d.ts +221 -0
- package/dist/insights/significance.d.ts.map +1 -0
- package/dist/insights/significance.js +531 -0
- package/dist/insights/significance.js.map +1 -0
- package/dist/insights/stats.d.ts +104 -0
- package/dist/insights/stats.d.ts.map +1 -0
- package/dist/insights/stats.js +181 -0
- package/dist/insights/stats.js.map +1 -0
- package/dist/insights/windows.d.ts +95 -0
- package/dist/insights/windows.d.ts.map +1 -0
- package/dist/insights/windows.js +97 -0
- package/dist/insights/windows.js.map +1 -0
- package/dist/metadata.d.ts +178 -1
- package/dist/metadata.d.ts.map +1 -1
- package/dist/metadata.js +80 -0
- package/dist/metadata.js.map +1 -1
- package/dist/narrative/build.d.ts +78 -0
- package/dist/narrative/build.d.ts.map +1 -0
- package/dist/narrative/build.js +437 -0
- package/dist/narrative/build.js.map +1 -0
- package/dist/narrative/index.d.ts +14 -0
- package/dist/narrative/index.d.ts.map +1 -0
- package/dist/narrative/index.js +13 -0
- package/dist/narrative/index.js.map +1 -0
- package/dist/narrative/text.d.ts +25 -0
- package/dist/narrative/text.d.ts.map +1 -0
- package/dist/narrative/text.js +41 -0
- package/dist/narrative/text.js.map +1 -0
- package/dist/parity/cases.d.ts +3 -0
- package/dist/parity/cases.d.ts.map +1 -1
- package/dist/parity/cases.js +387 -7
- package/dist/parity/cases.js.map +1 -1
- package/dist/parity/compare.d.ts +19 -0
- package/dist/parity/compare.d.ts.map +1 -1
- package/dist/parity/compare.js +19 -0
- package/dist/parity/compare.js.map +1 -1
- package/dist/parity/fixtures.d.ts.map +1 -1
- package/dist/parity/fixtures.js +25 -0
- package/dist/parity/fixtures.js.map +1 -1
- package/dist/query/aggregations.d.ts +46 -1
- package/dist/query/aggregations.d.ts.map +1 -1
- package/dist/query/aggregations.js +86 -0
- package/dist/query/aggregations.js.map +1 -1
- package/dist/query/clickhouseDialect.d.ts.map +1 -1
- package/dist/query/clickhouseDialect.js +5 -1
- package/dist/query/clickhouseDialect.js.map +1 -1
- package/dist/query/customEventVocabulary.d.ts +46 -0
- package/dist/query/customEventVocabulary.d.ts.map +1 -0
- package/dist/query/customEventVocabulary.js +127 -0
- package/dist/query/customEventVocabulary.js.map +1 -0
- package/dist/query/dsl/builders.d.ts +38 -0
- package/dist/query/dsl/builders.d.ts.map +1 -0
- package/dist/query/dsl/builders.js +35 -0
- package/dist/query/dsl/builders.js.map +1 -0
- package/dist/query/dsl/compare.d.ts +167 -0
- package/dist/query/dsl/compare.d.ts.map +1 -0
- package/dist/query/dsl/compare.js +358 -0
- package/dist/query/dsl/compare.js.map +1 -0
- package/dist/query/dsl/compile.d.ts +89 -0
- package/dist/query/dsl/compile.d.ts.map +1 -0
- package/dist/query/dsl/compile.js +174 -0
- package/dist/query/dsl/compile.js.map +1 -0
- package/dist/query/dsl/explain.d.ts +115 -0
- package/dist/query/dsl/explain.d.ts.map +1 -0
- package/dist/query/dsl/explain.js +143 -0
- package/dist/query/dsl/explain.js.map +1 -0
- package/dist/query/dsl/generic.d.ts +127 -0
- package/dist/query/dsl/generic.d.ts.map +1 -0
- package/dist/query/dsl/generic.js +323 -0
- package/dist/query/dsl/generic.js.map +1 -0
- package/dist/query/dsl/index.d.ts +30 -0
- package/dist/query/dsl/index.d.ts.map +1 -0
- package/dist/query/dsl/index.js +23 -0
- package/dist/query/dsl/index.js.map +1 -0
- package/dist/query/dsl/order.d.ts +41 -0
- package/dist/query/dsl/order.d.ts.map +1 -0
- package/dist/query/dsl/order.js +55 -0
- package/dist/query/dsl/order.js.map +1 -0
- package/dist/query/dsl/significance.d.ts +130 -0
- package/dist/query/dsl/significance.d.ts.map +1 -0
- package/dist/query/dsl/significance.js +224 -0
- package/dist/query/dsl/significance.js.map +1 -0
- package/dist/query/index.d.ts +2 -0
- package/dist/query/index.d.ts.map +1 -1
- package/dist/query/index.js +8 -0
- package/dist/query/index.js.map +1 -1
- package/dist/query/summary/index.d.ts +4 -2
- package/dist/query/summary/index.d.ts.map +1 -1
- package/dist/query/summary/index.js +2 -1
- package/dist/query/summary/index.js.map +1 -1
- package/dist/query/summary/labels.d.ts +101 -0
- package/dist/query/summary/labels.d.ts.map +1 -0
- package/dist/query/summary/labels.js +261 -0
- package/dist/query/summary/labels.js.map +1 -0
- package/dist/query/summary/reading.d.ts.map +1 -1
- package/dist/query/summary/reading.js +21 -2
- package/dist/query/summary/reading.js.map +1 -1
- package/dist/query/summary/schema.d.ts +250 -20
- package/dist/query/summary/schema.d.ts.map +1 -1
- package/dist/query/summary/schema.js +135 -123
- package/dist/query/summary/schema.js.map +1 -1
- package/dist/query/summary/summarize.d.ts.map +1 -1
- package/dist/query/summary/summarize.js +91 -5
- package/dist/query/summary/summarize.js.map +1 -1
- package/dist/query/summary/types.d.ts +77 -2
- package/dist/query/summary/types.d.ts.map +1 -1
- package/dist/query/types.d.ts +47 -1
- package/dist/query/types.d.ts.map +1 -1
- package/dist/subscriptions.d.ts +208 -0
- package/dist/subscriptions.d.ts.map +1 -0
- package/dist/subscriptions.js +153 -0
- package/dist/subscriptions.js.map +1 -0
- package/llms.txt +9 -0
- package/package.json +8 -8
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -19,6 +19,9 @@ export { hashApiKey, apiKeyPrefix, generateApiKey } from "./metadata.js";
|
|
|
19
19
|
// Agent-scoped key capabilities, per-key rate limits and the audit log
|
|
20
20
|
// (#309, ADR 0051 §7).
|
|
21
21
|
export { API_KEY_CAPABILITIES, AUDIT_PARAMS_MAX_LENGTH, AUDIT_TOOL_MAX_LENGTH, DEFAULT_API_KEY_CAPABILITIES, clampAuditTool, hasCapability, isApiKeyCapability, parseApiKeyCapabilities, parseCapabilityList, serializeApiKeyCapabilities, serializeAuditParams, toApiKeyColumns, toApiKeyRateLimit, } from "./metadata.js";
|
|
22
|
+
// Project metadata: annotations, glossary, saved analyses (#310, ADR 0051 §5)
|
|
23
|
+
// and the declarative panel specs pinned on the same path (#315, §7).
|
|
24
|
+
export { METADATA_LIMITS, MetadataLimitError, clampMetadataLimit, parsePanelSpec, parseSavedAnalysisQuery, } from "./metadata.js";
|
|
22
25
|
export { duckdbDialect, toDuckdbTimestamp } from "./query/duckdbDialect.js";
|
|
23
26
|
export { clickhouseDialect, toClickhouseTimestamp } from "./query/clickhouseDialect.js";
|
|
24
27
|
export { postgresDialect, toPostgresTimestamp, POSTGRES_NEAREST_ROW_JOIN, } from "./query/postgresDialect.js";
|
|
@@ -26,19 +29,52 @@ export { mssqlDialect, toMssqlTimestamp, toTsql, mssqlVectorElement, MSSQL_NEARE
|
|
|
26
29
|
// Relational building blocks shared by the row-store dialects (Postgres and SQL
|
|
27
30
|
// Server — #84, #85): ASOF emulation and named→positional param rewriting.
|
|
28
31
|
export { renderNativeAsofJoin, renderNearestRowJoin, toPositionalParams, } from "./query/relational.js";
|
|
29
|
-
export { buildListSessions, buildPointerHeatmap, buildMeshUvHeatmap, buildWorldHeatmap, buildWorldHeatmapStats, buildGazeHeatmap, buildGazeHeatmapStats, buildCameraDirectionHeatmap, buildViewCoverageHistogram, buildCameraPositionHeatmap, defaultCellSizeForBounds, buildSessionTrajectory, buildAggregateTrajectories, buildClickGazeRay, buildFlowHeatmap, buildTopMeshes, buildTopMeshesBySource, buildTopMeshesTrend, buildMeshDwell, buildMeshBlindSpots, buildMeshInteractionKinds, buildReachability, buildTopInputActions, buildDeadClicks, buildRageClicks, buildHoverDwell, buildCompileStalls, buildResourceSummary, buildCapabilityChanges, buildCameraGestures, buildPerfSummary, buildRenderScaleTruth, buildPerfDistribution, buildFpsHistogram, buildFrameTimePercentiles, buildJankRate, buildPerfChurn, buildPerfByDevice, buildPerfByScene, buildResourcePercentiles, buildStabilityCounts, buildGraphicsDiagnosticCounts, buildErrorHeatmap, buildBoundaryHeatmap, buildBoundaryHeatmapStats, buildBoundaryContacts, buildRenderingTechnology, buildPerfDaily, buildEventsDaily, buildDistinctScenes, buildTimeseries, buildEventTypeCounts, buildSceneCoverage, buildPerfHeatmap, buildCameraDistance, buildNavigationStats, buildBacktrackRatio, buildXrRotationRate, buildXrSourceUsage, buildXrAbandonment, buildXrLocomotionComfort, buildTrackingQuality, buildInteractionsBySource, buildArPlacementTimeToPlace, buildArPlacementAttempts, buildArPlacementSurfaces, buildFunnel, buildSceneRetention, buildLoadBounceFunnel, buildVariantLeaderboard, } from "./query/aggregations.js";
|
|
32
|
+
export { buildListSessions, buildPointerHeatmap, buildMeshUvHeatmap, buildWorldHeatmap, buildWorldHeatmapStats, buildGazeHeatmap, buildGazeHeatmapStats, buildCameraDirectionHeatmap, buildViewCoverageHistogram, buildCameraPositionHeatmap, defaultCellSizeForBounds, buildSessionTrajectory, buildAggregateTrajectories, buildClickGazeRay, buildFlowHeatmap, buildTopMeshes, buildTopMeshesBySource, buildTopMeshesTrend, buildMeshDwell, buildMeshBlindSpots, buildMeshInteractionKinds, buildReachability, buildTopInputActions, buildCustomEventVocabulary, CUSTOM_EVENT_VOCABULARY_LIMIT, CUSTOM_EVENT_VOCABULARY_MAX_LIMIT, CUSTOM_EVENT_VOCABULARY_SAMPLE_ROWS, CUSTOM_EVENT_VOCABULARY_MAX_SAMPLE_ROWS, buildDeadClicks, buildRageClicks, buildHoverDwell, buildCompileStalls, buildResourceSummary, buildCapabilityChanges, buildCameraGestures, buildPerfSummary, buildRenderScaleTruth, buildPerfDistribution, buildFpsHistogram, buildFrameTimePercentiles, buildJankRate, buildPerfChurn, buildPerfByDevice, buildPerfByScene, buildResourcePercentiles, buildStabilityCounts, buildGraphicsDiagnosticCounts, buildErrorHeatmap, buildBoundaryHeatmap, buildBoundaryHeatmapStats, buildBoundaryContacts, buildRenderingTechnology, buildPerfDaily, buildEventsDaily, buildDistinctScenes, buildTimeseries, buildEventTypeCounts, buildSceneCoverage, buildPerfHeatmap, buildCameraDistance, buildNavigationStats, buildBacktrackRatio, buildXrRotationRate, buildXrSourceUsage, buildXrAbandonment, buildXrLocomotionComfort, buildTrackingQuality, buildInteractionsBySource, buildArPlacementTimeToPlace, buildArPlacementAttempts, buildArPlacementSurfaces, buildFunnel, buildSceneRetention, buildLoadBounceFunnel, buildVariantLeaderboard, } from "./query/aggregations.js";
|
|
33
|
+
// --- Custom-event vocabulary fold (ADR 0051 §5, design sketch §E.1) ---
|
|
34
|
+
// The pure half of the vocabulary aggregation: prop-key discovery over the
|
|
35
|
+
// sampled payloads, kept out of SQL because key enumeration over an open JSON
|
|
36
|
+
// object has no portable spelling across the four supported engines.
|
|
37
|
+
export { foldCustomEventVocabulary, CUSTOM_EVENT_VOCABULARY_MAX_PROPS, } from "./query/customEventVocabulary.js";
|
|
30
38
|
// --- Numeric coercion at the store edge (ADR 0051 §2) ---
|
|
31
39
|
// Applied by every store's query runner so the collector always emits numbers.
|
|
32
40
|
// Lives on the root barrel rather than the browser-safe `/query` subpath because
|
|
33
41
|
// it reads the metric registry, which ships as its own dependency-free package
|
|
34
42
|
// (`@uptimizr/metrics`) so a browser bundle opts into that data explicitly.
|
|
35
43
|
export { coerceRows, numericColumns, numericColumnsOfMetric } from "./query/coerce.js";
|
|
44
|
+
// --- Query DSL (ADR 0051 §3, design sketch §C.2) ---
|
|
45
|
+
// A validated `queryV1` document → the metric's own aggregation builder
|
|
46
|
+
// (delegated) or the shared group-by builder (generic) → an ordinary
|
|
47
|
+
// `QuerySpec`; plus the pure layers that compare two runs, judge whether the
|
|
48
|
+
// difference is real, render the plan, and re-order a delegated result. Also
|
|
49
|
+
// published on the browser-safe `@uptimizr/db/query` subpath, alongside the
|
|
50
|
+
// builders it delegates to.
|
|
51
|
+
export { DEFAULT_ALPHA, ORDER_AFTER_CAP_CAVEAT, applyOrder, compileGenericGroupBy, builderFor, cameraTypeForMode, channelRows, compareRows, comparisonKeys, compileMetric, compileQuery, explainQuery, explainSpec, genericResultColumns,
|
|
52
|
+
// `normalCdf` is deliberately NOT re-exported from here: `query/dsl` and
|
|
53
|
+
// `insights` each implement one (#304 and #307), and an explicit re-export
|
|
54
|
+
// would shadow the `export * from "./insights/index.js"` below. The root
|
|
55
|
+
// exports the insights implementation, whose accuracy is pinned against
|
|
56
|
+
// published reference values; the DSL's stays internal to `query/dsl`, where
|
|
57
|
+
// `querySignificance.test.ts` imports it directly. Folding the two into one
|
|
58
|
+
// module is tracked as a follow-up.
|
|
59
|
+
planWarnings, reordersCappedResult, sampleOf, silentChannels, studentTTwoSided, summarizeComparison, toBuilderOptions, twoProportionZ, welchT, wilsonScoreInterval, } from "./query/dsl/index.js";
|
|
36
60
|
// --- Agent-shaped result envelopes (ADR 0051 §2, design sketch §B.1) ---
|
|
37
61
|
// `format=table | summary`: pure, registry-driven summarisation of a metric's
|
|
38
62
|
// rows. Re-exported here for the collector's convenience; also published on its
|
|
39
63
|
// own browser-safe `@uptimizr/db/summary` subpath, which — like `/registry` —
|
|
40
64
|
// carries no DuckDB driver and no `node:` import.
|
|
41
65
|
export * from "./query/summary/index.js";
|
|
66
|
+
// --- Insight primitives (ADR 0051 §4, design sketch §D) ---
|
|
67
|
+
// `baseline` and `movers`: one generic, dialect-agnostic bucket query
|
|
68
|
+
// (`buildMetricBuckets`) plus pure-TypeScript statistics over the series it
|
|
69
|
+
// returns. Re-exported on the root barrel rather than a subpath because the
|
|
70
|
+
// bucket builder is authored against the same `Dialect` contract as every other
|
|
71
|
+
// aggregation, and the statistics are what the collector imports beside them.
|
|
72
|
+
export * from "./insights/index.js";
|
|
73
|
+
// --- Conditional subscriptions (#311, ADR 0051 §6 / sketch §F.1-F.3) ---
|
|
74
|
+
// Engine-neutral record shape, row mapping and the store contract the four
|
|
75
|
+
// engine packages implement. The webhook secret is write-only: only
|
|
76
|
+
// `getWebhookSecret` returns it, and every record carries `MASKED_SECRET`.
|
|
77
|
+
export { DEFAULT_COOLDOWN, MASKED_SECRET, MAX_ENABLED_SUBSCRIPTIONS, MAX_SUBSCRIPTIONS_PER_PROJECT, MAX_SUBSCRIPTION_EVENTS, SUBSCRIPTION_ERROR_MAX_LENGTH, SubscriptionLimitError, clampEventLimit, clampSubscriptionError, rowToSubscription, rowToSubscriptionEvent, toSubscriptionColumns, } from "./subscriptions.js";
|
|
42
78
|
// --- DuckDB (OSS single-file store, ADR 0020) ---
|
|
43
79
|
export { createDuckdbClient, convertValue } from "./duckdb/client.js";
|
|
44
80
|
export { DUCKDB_MIGRATIONS, migrateDuckdb } from "./duckdb/migrations.js";
|
|
@@ -48,10 +84,19 @@ export { createProject as duckdbCreateProject, getProject as duckdbGetProject, c
|
|
|
48
84
|
export { recordAudit as duckdbRecordAudit, listAudit as duckdbListAudit, pruneAudit as duckdbPruneAudit, } from "./duckdb/audit.js";
|
|
49
85
|
export { upsertSceneProxy as duckdbUpsertSceneProxy, getSceneRepresentation as duckdbGetSceneRepresentation, listSceneRepresentations as duckdbListSceneRepresentations, } from "./duckdb/sceneRegistry.js";
|
|
50
86
|
export { putSceneRegions as duckdbPutSceneRegions, getSceneRegions as duckdbGetSceneRegions, listSceneRegions as duckdbListSceneRegions, } from "./duckdb/sceneRegions.js";
|
|
87
|
+
export { createAnnotation as duckdbCreateAnnotation, listAnnotations as duckdbListAnnotations, deleteAnnotation as duckdbDeleteAnnotation, putGlossaryEntry as duckdbPutGlossaryEntry, listGlossary as duckdbListGlossary, deleteGlossaryEntry as duckdbDeleteGlossaryEntry, createSavedAnalysis as duckdbCreateSavedAnalysis, listSavedAnalyses as duckdbListSavedAnalyses, deleteSavedAnalysis as duckdbDeleteSavedAnalysis, } from "./duckdb/projectMetadata.js";
|
|
88
|
+
export { createPanelSpec as duckdbCreatePanelSpec, listPanelSpecs as duckdbListPanelSpecs, updatePanelSpec as duckdbUpdatePanelSpec, deletePanelSpec as duckdbDeletePanelSpec, } from "./duckdb/panelSpecs.js";
|
|
89
|
+
export { listSubscriptions as duckdbListSubscriptions, listEnabledSubscriptions as duckdbListEnabledSubscriptions, getSubscription as duckdbGetSubscription, createSubscription as duckdbCreateSubscription, setSubscriptionEnabled as duckdbSetSubscriptionEnabled, deleteSubscription as duckdbDeleteSubscription, recordSubscriptionOutcome as duckdbRecordSubscriptionOutcome, getWebhookSecret as duckdbGetWebhookSecret, recordSubscriptionEvent as duckdbRecordSubscriptionEvent, listSubscriptionEvents as duckdbListSubscriptionEvents, } from "./duckdb/subscriptions.js";
|
|
51
90
|
// --- Cross-engine parity harness (ADR 0020) ---
|
|
52
91
|
// Shared fixtures, golden expectations, and a tolerance-aware comparator. OSS
|
|
53
92
|
// runs DuckDB-vs-golden; the scale tier reuses these to run DuckDB-vs-ClickHouse.
|
|
54
93
|
export { PARITY_PROJECT_ID, PARITY_T0, PARITY_RANGE, PARITY_DAY_RANGE, PARITY_DAY, PARITY_EVENTS, } from "./parity/fixtures.js";
|
|
55
|
-
export { PARITY_ABS_TOLERANCE, PARITY_REL_TOLERANCE, diffParity, numericColumnsForSpec, } from "./parity/compare.js";
|
|
56
|
-
export { PARITY_CASES } from "./parity/cases.js";
|
|
94
|
+
export { ENGINE_FORMATTED_COLUMNS, PARITY_ABS_TOLERANCE, PARITY_REL_TOLERANCE, diffParity, numericColumnsForSpec, } from "./parity/compare.js";
|
|
95
|
+
export { GENERIC_PARITY_CASE_NAMES, PARITY_CASES } from "./parity/cases.js";
|
|
96
|
+
// --- Session narrative (ADR 0051 §7, design sketch §G.2) ---
|
|
97
|
+
// The pure compaction of one session's raw event stream into an ordered,
|
|
98
|
+
// bounded account of what it did, plus its plain-text rendering. Served by the
|
|
99
|
+
// collector on `GET /api/v1/sessions/:id/narrative`, which is gated by
|
|
100
|
+
// `ENABLE_RAW_SESSION_RETENTION` **and** the `query:raw` capability (ADR 0003).
|
|
101
|
+
export { buildSessionNarrative, renderSessionNarrativeText } from "./narrative/index.js";
|
|
57
102
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAS1C,sDAAsD;AACtD,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAG7D,kFAAkF;AAClF,OAAO,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAGpE,+DAA+D;AAC/D,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AACzE,uEAAuE;AACvE,uBAAuB;AACvB,OAAO,EACL,oBAAoB,EACpB,uBAAuB,EACvB,qBAAqB,EACrB,4BAA4B,EAC5B,cAAc,EACd,aAAa,EACb,kBAAkB,EAClB,uBAAuB,EACvB,mBAAmB,EACnB,2BAA2B,EAC3B,oBAAoB,EACpB,eAAe,EACf,iBAAiB,GAClB,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,213 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* **`anomalies`** — "when did this go wrong, and what inside it went wrong?"
|
|
3
|
+
* (ADR 0051 §4, design sketch §D row `anomalies`).
|
|
4
|
+
*
|
|
5
|
+
* `baseline` says what normal looks like and `movers` says that something
|
|
6
|
+
* changed between two windows a caller had to choose. Neither names **a
|
|
7
|
+
* bucket**. This primitive walks one metric's bucket series and returns the
|
|
8
|
+
* buckets that do not belong in it, each labelled with what kind of departure it
|
|
9
|
+
* is and — where the metric declares a dimension it can be split by — which
|
|
10
|
+
* value inside the metric accounts for the excess.
|
|
11
|
+
*
|
|
12
|
+
* Pure, like the rest of `src/insights/`: it takes the rows `buildMetricBuckets`
|
|
13
|
+
* produced and returns rows. No store, no request, no dialect, so DuckDB,
|
|
14
|
+
* ClickHouse, Postgres and SQL Server cannot disagree about whether a Tuesday
|
|
15
|
+
* was abnormal.
|
|
16
|
+
*
|
|
17
|
+
* ## Three kinds, two detectors
|
|
18
|
+
*
|
|
19
|
+
* | `kind` | Detector | The shape it catches |
|
|
20
|
+
* | ------- | -------- | -------------------- |
|
|
21
|
+
* | `spike` | robust z vs the trailing window | one bucket far above what came before |
|
|
22
|
+
* | `drop` | the same, below | one bucket far below it |
|
|
23
|
+
* | `shift` | CUSUM over the whole series | a level that moved and *stayed* moved |
|
|
24
|
+
*
|
|
25
|
+
* The third is not a refinement of the first two, it is the case they
|
|
26
|
+
* structurally cannot see: a release that costs 6 FPS every day from Tuesday
|
|
27
|
+
* onward is never more than a MAD or two off on any single day, so no point
|
|
28
|
+
* detector will ever flag it, and yet it is the finding that matters most. Both
|
|
29
|
+
* detectors are driven by the *same* `sensitivity` dial and measured in the same
|
|
30
|
+
* unit (MADs of the series' own spread), so the two halves of a result are
|
|
31
|
+
* comparable rather than two unrelated alarms sharing an endpoint.
|
|
32
|
+
*
|
|
33
|
+
* ## The denominator: a scaled MAD, with a floor
|
|
34
|
+
*
|
|
35
|
+
* `sensitivity` is a **threshold**, not a ranking key, so the unit it counts has
|
|
36
|
+
* to be calibrated or the default is meaningless. The MAD of normally
|
|
37
|
+
* distributed data is about 0.674σ, so a raw `|z| > 3` on MADs is really "beyond
|
|
38
|
+
* 2σ" — a two-sided tail of roughly 4% *per bucket*, which over a 28-day window
|
|
39
|
+
* reports one or two perfectly ordinary days every time it is called. That is
|
|
40
|
+
* exactly the experience that makes people switch anomaly detection off.
|
|
41
|
+
*
|
|
42
|
+
* The spread is therefore `max(MAD × {@link MAD_TO_SIGMA}, 1% × |median|)`: the
|
|
43
|
+
* MAD rescaled into standard deviations, so `sensitivity: 3` means what a reader
|
|
44
|
+
* assumes it means, and then floored the way `movers` floors it. The floor is
|
|
45
|
+
* what stops a metric that sat at exactly 60 FPS for a fortnight — trailing MAD
|
|
46
|
+
* of 0 — from reporting a 59.9 FPS day as an infinite departure.
|
|
47
|
+
*
|
|
48
|
+
* `movers` reports the **unscaled** ratio, because there it ranks rather than
|
|
49
|
+
* thresholds and a constant factor changes no ordering. The two `z` columns
|
|
50
|
+
* therefore differ by that constant, which the registry entries both say.
|
|
51
|
+
*
|
|
52
|
+
* ## Cost is bounded, and declared
|
|
53
|
+
*
|
|
54
|
+
* The detection itself is one bucket read — the same grouped scan every insight
|
|
55
|
+
* makes. Attribution costs **at most {@link ANOMALY_MAX_CONTRIBUTOR_SCANS} extra
|
|
56
|
+
* grouped scans per request**, no matter how many buckets were anomalous:
|
|
57
|
+
* adjacent findings are merged into windows, the windows are ranked by how
|
|
58
|
+
* extreme they are, and only the top few are re-read. A metric with no declared
|
|
59
|
+
* split dimension pays for none.
|
|
60
|
+
*/
|
|
61
|
+
import type { MetricBucketRow } from "./buckets.js";
|
|
62
|
+
import { type BucketGrain, type BucketSplitDimension } from "./measures.js";
|
|
63
|
+
/** Default `sensitivity`: a bucket must be more than three MADs out. */
|
|
64
|
+
export declare const DEFAULT_ANOMALY_SENSITIVITY = 3;
|
|
65
|
+
/** Smallest `sensitivity` a caller may ask for. */
|
|
66
|
+
export declare const MIN_ANOMALY_SENSITIVITY = 1;
|
|
67
|
+
/**
|
|
68
|
+
* Largest `sensitivity` a caller may ask for.
|
|
69
|
+
*
|
|
70
|
+
* Bounded at both ends on purpose. Below 1 every bucket is an anomaly and the
|
|
71
|
+
* answer is noise; above 10 nothing short of a total outage is, and a caller who
|
|
72
|
+
* wants that has asked the wrong question — they want a threshold alert, which
|
|
73
|
+
* is stage 3's `subscriptions`, not a detector.
|
|
74
|
+
*/
|
|
75
|
+
export declare const MAX_ANOMALY_SENSITIVITY = 10;
|
|
76
|
+
/**
|
|
77
|
+
* How many buckets of history each bucket is judged against, per grain.
|
|
78
|
+
*
|
|
79
|
+
* A fortnight at day grain: long enough for the median to be stable, short
|
|
80
|
+
* enough that a month-old regime does not keep flagging today. A week at hour
|
|
81
|
+
* grain, which is 168 buckets — the shortest window that contains every hour of
|
|
82
|
+
* every weekday, so a quiet Sunday 03:00 is compared against a distribution that
|
|
83
|
+
* has seen quiet nights rather than against Tuesday lunchtime.
|
|
84
|
+
*/
|
|
85
|
+
export declare const ANOMALY_TRAILING_BUCKETS: Readonly<Record<BucketGrain, number>>;
|
|
86
|
+
/**
|
|
87
|
+
* Trailing values a bucket needs before it can be judged at all.
|
|
88
|
+
*
|
|
89
|
+
* Under five, the median and the MAD are describing the accident of which four
|
|
90
|
+
* buckets happened to exist. Buckets with less history than this are reported as
|
|
91
|
+
* nothing rather than as findings — which is why a brand-new project reads
|
|
92
|
+
* "no anomalies" instead of "every day is an anomaly".
|
|
93
|
+
*/
|
|
94
|
+
export declare const ANOMALY_MIN_TRAILING = 5;
|
|
95
|
+
/**
|
|
96
|
+
* The hard cap on extra grouped scans spent on attribution, per request.
|
|
97
|
+
*
|
|
98
|
+
* Contributor attribution re-reads the series grouped by one dimension over an
|
|
99
|
+
* anomalous window. Adjacent anomalous buckets are one window, and only the
|
|
100
|
+
* three most extreme windows are re-read, so the endpoint's cost is
|
|
101
|
+
* `1 + min(windows, 3)` grouped scans whatever the data looks like. A caller who
|
|
102
|
+
* wants attribution on a quieter finding narrows `since`/`until` around it; that
|
|
103
|
+
* is cheaper for the store than lifting the cap would be.
|
|
104
|
+
*/
|
|
105
|
+
export declare const ANOMALY_MAX_CONTRIBUTOR_SCANS = 3;
|
|
106
|
+
/** Decimals an anomaly's numbers are rounded to before they leave the API. */
|
|
107
|
+
export declare const ANOMALY_PRECISION = 6;
|
|
108
|
+
/** What kind of departure a row reports. */
|
|
109
|
+
export type AnomalyKind = "spike" | "drop" | "shift";
|
|
110
|
+
/** Which value inside the metric accounts for the excess. */
|
|
111
|
+
export interface AnomalyContributor {
|
|
112
|
+
/** The dimension the metric declared it can be split by. */
|
|
113
|
+
dimension: BucketSplitDimension;
|
|
114
|
+
/** The value holding the largest share of the excess; `''` is "unattributed". */
|
|
115
|
+
value: string;
|
|
116
|
+
/**
|
|
117
|
+
* That value's share of the total same-signed excess, `0..1`. `null` when the
|
|
118
|
+
* excess could not be apportioned (every split value moved the other way).
|
|
119
|
+
*/
|
|
120
|
+
share: number | null;
|
|
121
|
+
}
|
|
122
|
+
/** One anomalous bucket. */
|
|
123
|
+
export interface AnomalyRow {
|
|
124
|
+
/** The registry metric the series is of. */
|
|
125
|
+
metric: string;
|
|
126
|
+
/** The scene it was scoped to; `''` when the series spans every scene. */
|
|
127
|
+
scene: string;
|
|
128
|
+
/** Bucket start, epoch milliseconds (UTC, aligned to the grain). */
|
|
129
|
+
bucketStart: number;
|
|
130
|
+
/** The observed value — for a `shift`, the level that held *after* the change. */
|
|
131
|
+
value: number | null;
|
|
132
|
+
/** What was expected — the trailing median, or for a `shift` the level before it. */
|
|
133
|
+
expected: number | null;
|
|
134
|
+
/** Robust z: `(value − expected) / max(MAD, 1% × |median|)`. Signed. */
|
|
135
|
+
z: number | null;
|
|
136
|
+
kind: AnomalyKind;
|
|
137
|
+
/** The dimension value behind the excess, or `null` when none can be named. */
|
|
138
|
+
contributor: AnomalyContributor | null;
|
|
139
|
+
/** The bucket's own denominator — events, or distinct sessions. */
|
|
140
|
+
sampleSize: number;
|
|
141
|
+
}
|
|
142
|
+
/** How to score a series. */
|
|
143
|
+
export interface DetectAnomaliesOptions {
|
|
144
|
+
/** Time grain of the series; decides the trailing-window length. */
|
|
145
|
+
bucket: BucketGrain;
|
|
146
|
+
/** How many MADs out a bucket must be. Defaults to {@link DEFAULT_ANOMALY_SENSITIVITY}. */
|
|
147
|
+
sensitivity?: number;
|
|
148
|
+
}
|
|
149
|
+
/** A bucket-aligned half-open span of the series, `[since, until)`. */
|
|
150
|
+
export interface AnomalyWindow {
|
|
151
|
+
since: number;
|
|
152
|
+
until: number;
|
|
153
|
+
}
|
|
154
|
+
/** Clamp a caller's `sensitivity` into the supported range. */
|
|
155
|
+
export declare function clampSensitivity(value: number | undefined): number;
|
|
156
|
+
/**
|
|
157
|
+
* The dimension `anomalies` would attribute this metric's excess to, or `null`.
|
|
158
|
+
*
|
|
159
|
+
* `null` for a metric that declares none, and also for a `scene`-split metric on
|
|
160
|
+
* a request that is already scoped to one scene: the split would return a single
|
|
161
|
+
* value with a share of 1, which is not an explanation, and the scan that
|
|
162
|
+
* produced it would be wasted.
|
|
163
|
+
*/
|
|
164
|
+
export declare function contributorDimensionFor(metric: string, opts?: {
|
|
165
|
+
scene?: string;
|
|
166
|
+
}): BucketSplitDimension | null;
|
|
167
|
+
/**
|
|
168
|
+
* Score one metric's bucket series and return its anomalous buckets, ordered by
|
|
169
|
+
* bucket, `contributor` still `null`.
|
|
170
|
+
*
|
|
171
|
+
* Point findings come first in time order, then the change-points, and a bucket
|
|
172
|
+
* that is both a spike and the start of a shift is reported twice — deliberately:
|
|
173
|
+
* "Tuesday was the worst day" and "Tuesday is when it stopped recovering" are two
|
|
174
|
+
* different facts, and collapsing them loses the second one.
|
|
175
|
+
*/
|
|
176
|
+
export declare function detectAnomalies(metric: string, scene: string | undefined, rows: readonly MetricBucketRow[], opts: DetectAnomaliesOptions): AnomalyRow[];
|
|
177
|
+
/**
|
|
178
|
+
* Merge anomalous buckets into the windows a contributor scan has to cover, most
|
|
179
|
+
* extreme first, capped at {@link ANOMALY_MAX_CONTRIBUTOR_SCANS}.
|
|
180
|
+
*
|
|
181
|
+
* Adjacent findings — a three-day outage is three rows — share one window and
|
|
182
|
+
* therefore one scan. Each window is widened backwards by the trailing length so
|
|
183
|
+
* the same scan also carries the history each split value's own "expected" is
|
|
184
|
+
* computed from; without that the attribution would compare a value against
|
|
185
|
+
* nothing and name whichever dimension happens to be biggest.
|
|
186
|
+
*/
|
|
187
|
+
export declare function contributorWindows(rows: readonly AnomalyRow[], opts: {
|
|
188
|
+
bucket: BucketGrain;
|
|
189
|
+
seriesUntil: number;
|
|
190
|
+
}): AnomalyWindow[];
|
|
191
|
+
/** Whether an anomalous bucket falls inside a contributor window. */
|
|
192
|
+
export declare function inContributorWindow(row: AnomalyRow, window: AnomalyWindow): boolean;
|
|
193
|
+
/**
|
|
194
|
+
* Name the dimension value that accounts for one row's excess.
|
|
195
|
+
*
|
|
196
|
+
* `splitRows` are the same measure re-read grouped by `dimension` over the row's
|
|
197
|
+
* contributor window. For each value the excess is `observed − prior`, where
|
|
198
|
+
* `prior` is that value's median over the buckets *before* the finding and
|
|
199
|
+
* `observed` is its value in the anomalous bucket (or, for a `shift`, its median
|
|
200
|
+
* from the change-point onward — the same before/after comparison the row
|
|
201
|
+
* itself reports, done one dimension value at a time).
|
|
202
|
+
*
|
|
203
|
+
* The winner is the largest excess **with the same sign as the row's own**: a
|
|
204
|
+
* spike is explained by what went up, and a value that happened to fall during
|
|
205
|
+
* an error spike is not a contributor to it. `share` is that value's fraction of
|
|
206
|
+
* the summed same-signed excess, so the shares of all contributing values add to
|
|
207
|
+
* 1 and a reported share of 0.9 means what a reader thinks it means.
|
|
208
|
+
*
|
|
209
|
+
* Returns `null` when nothing can be named: no split rows, or an excess of zero,
|
|
210
|
+
* or every split value moving against the finding.
|
|
211
|
+
*/
|
|
212
|
+
export declare function attributeContributor(row: AnomalyRow, dimension: BucketSplitDimension, splitRows: readonly MetricBucketRow[]): AnomalyContributor | null;
|
|
213
|
+
//# sourceMappingURL=anomalies.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"anomalies.d.ts","sourceRoot":"","sources":["../../src/insights/anomalies.ts"],"names":[],"mappings":"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"}
|