@lumenflow/metrics 1.0.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/LICENSE +190 -0
- package/README.md +161 -0
- package/dist/dora/calculate-dora-metrics.d.ts +34 -0
- package/dist/dora/calculate-dora-metrics.d.ts.map +1 -0
- package/dist/dora/calculate-dora-metrics.js +178 -0
- package/dist/dora/calculate-dora-metrics.js.map +1 -0
- package/dist/dora/constants.d.ts +61 -0
- package/dist/dora/constants.d.ts.map +1 -0
- package/dist/dora/constants.js +65 -0
- package/dist/dora/constants.js.map +1 -0
- package/dist/dora/index.d.ts +11 -0
- package/dist/dora/index.d.ts.map +1 -0
- package/dist/dora/index.js +11 -0
- package/dist/dora/index.js.map +1 -0
- package/dist/flow/analyze-bottlenecks.d.ts +51 -0
- package/dist/flow/analyze-bottlenecks.d.ts.map +1 -0
- package/dist/flow/analyze-bottlenecks.js +253 -0
- package/dist/flow/analyze-bottlenecks.js.map +1 -0
- package/dist/flow/calculate-flow-state.d.ts +13 -0
- package/dist/flow/calculate-flow-state.d.ts.map +1 -0
- package/dist/flow/calculate-flow-state.js +27 -0
- package/dist/flow/calculate-flow-state.js.map +1 -0
- package/dist/flow/capture-metrics-snapshot.d.ts +13 -0
- package/dist/flow/capture-metrics-snapshot.d.ts.map +1 -0
- package/dist/flow/capture-metrics-snapshot.js +126 -0
- package/dist/flow/capture-metrics-snapshot.js.map +1 -0
- package/dist/flow/generate-flow-report.d.ts +13 -0
- package/dist/flow/generate-flow-report.d.ts.map +1 -0
- package/dist/flow/generate-flow-report.js +254 -0
- package/dist/flow/generate-flow-report.js.map +1 -0
- package/dist/flow/index.d.ts +12 -0
- package/dist/flow/index.d.ts.map +1 -0
- package/dist/flow/index.js +12 -0
- package/dist/flow/index.js.map +1 -0
- package/dist/index.d.ts +13 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +15 -0
- package/dist/index.js.map +1 -0
- package/dist/telemetry/emit-telemetry.d.ts +31 -0
- package/dist/telemetry/emit-telemetry.d.ts.map +1 -0
- package/dist/telemetry/emit-telemetry.js +103 -0
- package/dist/telemetry/emit-telemetry.js.map +1 -0
- package/dist/telemetry/index.d.ts +9 -0
- package/dist/telemetry/index.d.ts.map +1 -0
- package/dist/telemetry/index.js +9 -0
- package/dist/telemetry/index.js.map +1 -0
- package/dist/types.d.ts +332 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +10 -0
- package/dist/types.js.map +1 -0
- package/package.json +74 -0
package/dist/types.d.ts
ADDED
|
@@ -0,0 +1,332 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Types and Interfaces for @lumenflow/metrics
|
|
3
|
+
*
|
|
4
|
+
* DORA/SPACE analytics types for LumenFlow workflow framework.
|
|
5
|
+
* Based on "Accelerate" research by Nicole Forsgren, Jez Humble, Gene Kim.
|
|
6
|
+
*
|
|
7
|
+
* @module @lumenflow/metrics/types
|
|
8
|
+
*/
|
|
9
|
+
/**
|
|
10
|
+
* Status classification tier for DORA metrics
|
|
11
|
+
* Based on DORA research thresholds.
|
|
12
|
+
*/
|
|
13
|
+
export type DORAStatusTier = 'elite' | 'high' | 'medium' | 'low';
|
|
14
|
+
/**
|
|
15
|
+
* Work Unit lifecycle metadata
|
|
16
|
+
*/
|
|
17
|
+
export interface WUMetrics {
|
|
18
|
+
id: string;
|
|
19
|
+
title: string;
|
|
20
|
+
lane: string;
|
|
21
|
+
status: 'ready' | 'in_progress' | 'blocked' | 'waiting' | 'done';
|
|
22
|
+
priority?: string;
|
|
23
|
+
claimedAt?: Date;
|
|
24
|
+
completedAt?: Date;
|
|
25
|
+
cycleTimeHours?: number;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Git commit metadata for deployment frequency and lead time
|
|
29
|
+
*/
|
|
30
|
+
export interface GitCommit {
|
|
31
|
+
hash: string;
|
|
32
|
+
timestamp: Date;
|
|
33
|
+
message: string;
|
|
34
|
+
type?: string;
|
|
35
|
+
wuId?: string;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Skip-gates audit entry for Change Failure Rate calculation
|
|
39
|
+
*/
|
|
40
|
+
export interface SkipGatesEntry {
|
|
41
|
+
timestamp: Date;
|
|
42
|
+
wuId: string;
|
|
43
|
+
reason: string;
|
|
44
|
+
gate: string;
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Deployment Frequency metrics
|
|
48
|
+
*/
|
|
49
|
+
export interface DeploymentFrequencyMetrics {
|
|
50
|
+
deploysPerWeek: number;
|
|
51
|
+
status: DORAStatusTier;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Lead Time for Changes metrics
|
|
55
|
+
*/
|
|
56
|
+
export interface LeadTimeMetrics {
|
|
57
|
+
averageHours: number;
|
|
58
|
+
medianHours: number;
|
|
59
|
+
p90Hours: number;
|
|
60
|
+
status: DORAStatusTier;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Change Failure Rate metrics
|
|
64
|
+
*/
|
|
65
|
+
export interface ChangeFailureRateMetrics {
|
|
66
|
+
failurePercentage: number;
|
|
67
|
+
totalDeployments: number;
|
|
68
|
+
failures: number;
|
|
69
|
+
status: DORAStatusTier;
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Mean Time to Recovery metrics
|
|
73
|
+
*/
|
|
74
|
+
export interface MTTRMetrics {
|
|
75
|
+
averageHours: number;
|
|
76
|
+
incidents: number;
|
|
77
|
+
status: DORAStatusTier;
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Complete DORA metrics report
|
|
81
|
+
*/
|
|
82
|
+
export interface DORAMetrics {
|
|
83
|
+
deploymentFrequency: DeploymentFrequencyMetrics;
|
|
84
|
+
leadTimeForChanges: LeadTimeMetrics;
|
|
85
|
+
changeFailureRate: ChangeFailureRateMetrics;
|
|
86
|
+
meanTimeToRecovery: MTTRMetrics;
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Per-lane health aggregation
|
|
90
|
+
*/
|
|
91
|
+
export interface LaneHealth {
|
|
92
|
+
lane: string;
|
|
93
|
+
wusCompleted: number;
|
|
94
|
+
wusInProgress: number;
|
|
95
|
+
wusBlocked: number;
|
|
96
|
+
averageCycleTimeHours: number;
|
|
97
|
+
medianCycleTimeHours: number;
|
|
98
|
+
status: 'healthy' | 'at-risk' | 'blocked';
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* WU flow state aggregation
|
|
102
|
+
*/
|
|
103
|
+
export interface FlowState {
|
|
104
|
+
ready: number;
|
|
105
|
+
inProgress: number;
|
|
106
|
+
blocked: number;
|
|
107
|
+
waiting: number;
|
|
108
|
+
done: number;
|
|
109
|
+
totalActive: number;
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Gate execution telemetry event
|
|
113
|
+
*/
|
|
114
|
+
export interface GateTelemetryEvent {
|
|
115
|
+
timestamp: string;
|
|
116
|
+
wuId: string | null;
|
|
117
|
+
lane: string | null;
|
|
118
|
+
gateName: string;
|
|
119
|
+
passed: boolean;
|
|
120
|
+
durationMs: number;
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* LLM classification telemetry event
|
|
124
|
+
*/
|
|
125
|
+
export interface LLMTelemetryEvent {
|
|
126
|
+
timestamp: string;
|
|
127
|
+
eventType: 'llm.classification.start' | 'llm.classification.complete' | 'llm.classification.error';
|
|
128
|
+
classificationType: string;
|
|
129
|
+
durationMs?: number;
|
|
130
|
+
tokensUsed?: number;
|
|
131
|
+
estimatedCostUsd?: number;
|
|
132
|
+
confidence?: number;
|
|
133
|
+
fallbackUsed?: boolean;
|
|
134
|
+
fallbackReason?: string;
|
|
135
|
+
errorType?: string;
|
|
136
|
+
errorMessage?: string;
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* Gate metrics by name for flow report
|
|
140
|
+
*/
|
|
141
|
+
export interface GateMetricsByName {
|
|
142
|
+
[gateName: string]: {
|
|
143
|
+
total: number;
|
|
144
|
+
passed: number;
|
|
145
|
+
failed: number;
|
|
146
|
+
passRate: string;
|
|
147
|
+
};
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* LLM metrics summary
|
|
151
|
+
*/
|
|
152
|
+
export interface LLMMetrics {
|
|
153
|
+
totalClassifications: number;
|
|
154
|
+
errorRate: string;
|
|
155
|
+
fallbackRate: string;
|
|
156
|
+
avgLatencyMs: number;
|
|
157
|
+
p50LatencyMs: number;
|
|
158
|
+
p95LatencyMs: number;
|
|
159
|
+
p99LatencyMs: number;
|
|
160
|
+
totalTokens: number;
|
|
161
|
+
totalCostUsd: number;
|
|
162
|
+
avgConfidence: string;
|
|
163
|
+
byType: {
|
|
164
|
+
[type: string]: {
|
|
165
|
+
count: number;
|
|
166
|
+
avgLatencyMs: number;
|
|
167
|
+
totalCostUsd: number;
|
|
168
|
+
fallbackRate: string;
|
|
169
|
+
};
|
|
170
|
+
};
|
|
171
|
+
}
|
|
172
|
+
/**
|
|
173
|
+
* Flow report data structure
|
|
174
|
+
*/
|
|
175
|
+
export interface FlowReportData {
|
|
176
|
+
range: {
|
|
177
|
+
start: string;
|
|
178
|
+
end: string;
|
|
179
|
+
};
|
|
180
|
+
gates: {
|
|
181
|
+
passRate: string;
|
|
182
|
+
total: number;
|
|
183
|
+
passed: number;
|
|
184
|
+
failed: number;
|
|
185
|
+
p95: number;
|
|
186
|
+
byName: GateMetricsByName;
|
|
187
|
+
};
|
|
188
|
+
wus: {
|
|
189
|
+
completed: number;
|
|
190
|
+
list: Array<{
|
|
191
|
+
wuId: string;
|
|
192
|
+
completedDate: string;
|
|
193
|
+
lane: string;
|
|
194
|
+
title: string;
|
|
195
|
+
}>;
|
|
196
|
+
};
|
|
197
|
+
llm: LLMMetrics;
|
|
198
|
+
}
|
|
199
|
+
/**
|
|
200
|
+
* Bottleneck analysis result
|
|
201
|
+
*/
|
|
202
|
+
export interface BottleneckResult {
|
|
203
|
+
id: string;
|
|
204
|
+
score: number;
|
|
205
|
+
title?: string;
|
|
206
|
+
}
|
|
207
|
+
/**
|
|
208
|
+
* Critical path result
|
|
209
|
+
*/
|
|
210
|
+
export interface CriticalPathResult {
|
|
211
|
+
path: string[];
|
|
212
|
+
length: number;
|
|
213
|
+
warning?: string;
|
|
214
|
+
cycleNodes?: string[];
|
|
215
|
+
}
|
|
216
|
+
/**
|
|
217
|
+
* Bottleneck analysis output
|
|
218
|
+
*/
|
|
219
|
+
export interface BottleneckAnalysis {
|
|
220
|
+
bottlenecks: BottleneckResult[];
|
|
221
|
+
criticalPath: CriticalPathResult;
|
|
222
|
+
}
|
|
223
|
+
/**
|
|
224
|
+
* Dependency graph node
|
|
225
|
+
*/
|
|
226
|
+
export interface DependencyGraphNode {
|
|
227
|
+
id: string;
|
|
228
|
+
title: string;
|
|
229
|
+
blocks: string[];
|
|
230
|
+
blockedBy: string[];
|
|
231
|
+
status: string;
|
|
232
|
+
}
|
|
233
|
+
/**
|
|
234
|
+
* Metrics snapshot types
|
|
235
|
+
*/
|
|
236
|
+
export type MetricsSnapshotType = 'dora' | 'lanes' | 'flow' | 'all';
|
|
237
|
+
/**
|
|
238
|
+
* Metrics snapshot data
|
|
239
|
+
*/
|
|
240
|
+
export interface MetricsSnapshot {
|
|
241
|
+
dora?: DORAMetrics;
|
|
242
|
+
lanes?: {
|
|
243
|
+
lanes: LaneHealth[];
|
|
244
|
+
totalActive: number;
|
|
245
|
+
totalBlocked: number;
|
|
246
|
+
totalCompleted: number;
|
|
247
|
+
};
|
|
248
|
+
flow?: FlowState;
|
|
249
|
+
}
|
|
250
|
+
/**
|
|
251
|
+
* Telemetry emit function type
|
|
252
|
+
*/
|
|
253
|
+
export type TelemetryEmitFn = (filePath: string, event: Record<string, unknown>) => void;
|
|
254
|
+
/**
|
|
255
|
+
* Input for gate event emission
|
|
256
|
+
*/
|
|
257
|
+
export interface GateEventInput {
|
|
258
|
+
wuId?: string | null;
|
|
259
|
+
lane?: string | null;
|
|
260
|
+
gateName: string;
|
|
261
|
+
passed: boolean;
|
|
262
|
+
durationMs: number;
|
|
263
|
+
}
|
|
264
|
+
/**
|
|
265
|
+
* Input for LLM classification start
|
|
266
|
+
*/
|
|
267
|
+
export interface LLMClassificationStartInput {
|
|
268
|
+
classificationType: string;
|
|
269
|
+
hasContext?: boolean;
|
|
270
|
+
wuId?: string;
|
|
271
|
+
lane?: string;
|
|
272
|
+
}
|
|
273
|
+
/**
|
|
274
|
+
* Input for LLM classification complete
|
|
275
|
+
*/
|
|
276
|
+
export interface LLMClassificationCompleteInput {
|
|
277
|
+
classificationType: string;
|
|
278
|
+
durationMs: number;
|
|
279
|
+
tokensUsed: number;
|
|
280
|
+
estimatedCostUsd: number;
|
|
281
|
+
confidence: number;
|
|
282
|
+
fallbackUsed: boolean;
|
|
283
|
+
fallbackReason?: string;
|
|
284
|
+
wuId?: string;
|
|
285
|
+
lane?: string;
|
|
286
|
+
}
|
|
287
|
+
/**
|
|
288
|
+
* Input for LLM classification error
|
|
289
|
+
*/
|
|
290
|
+
export interface LLMClassificationErrorInput {
|
|
291
|
+
classificationType: string;
|
|
292
|
+
errorType: string;
|
|
293
|
+
errorMessage: string;
|
|
294
|
+
durationMs?: number;
|
|
295
|
+
inputTextPreview?: string;
|
|
296
|
+
wuId?: string;
|
|
297
|
+
lane?: string;
|
|
298
|
+
}
|
|
299
|
+
/**
|
|
300
|
+
* Input for WU flow event
|
|
301
|
+
*/
|
|
302
|
+
export interface WUFlowEventInput {
|
|
303
|
+
script: string;
|
|
304
|
+
wuId?: string;
|
|
305
|
+
lane?: string;
|
|
306
|
+
step?: string;
|
|
307
|
+
[key: string]: unknown;
|
|
308
|
+
}
|
|
309
|
+
/**
|
|
310
|
+
* Input for flow report generation
|
|
311
|
+
*/
|
|
312
|
+
export interface FlowReportInput {
|
|
313
|
+
gateEvents: GateTelemetryEvent[];
|
|
314
|
+
llmEvents: LLMTelemetryEvent[];
|
|
315
|
+
completedWUs: WUMetrics[];
|
|
316
|
+
dateRange: {
|
|
317
|
+
start: string;
|
|
318
|
+
end: string;
|
|
319
|
+
};
|
|
320
|
+
}
|
|
321
|
+
/**
|
|
322
|
+
* Input for metrics snapshot capture
|
|
323
|
+
*/
|
|
324
|
+
export interface MetricsSnapshotInput {
|
|
325
|
+
commits: GitCommit[];
|
|
326
|
+
wuMetrics: WUMetrics[];
|
|
327
|
+
skipGatesEntries: SkipGatesEntry[];
|
|
328
|
+
weekStart: Date;
|
|
329
|
+
weekEnd: Date;
|
|
330
|
+
type: MetricsSnapshotType;
|
|
331
|
+
}
|
|
332
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/types.js
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Types and Interfaces for @lumenflow/metrics
|
|
3
|
+
*
|
|
4
|
+
* DORA/SPACE analytics types for LumenFlow workflow framework.
|
|
5
|
+
* Based on "Accelerate" research by Nicole Forsgren, Jez Humble, Gene Kim.
|
|
6
|
+
*
|
|
7
|
+
* @module @lumenflow/metrics/types
|
|
8
|
+
*/
|
|
9
|
+
export {};
|
|
10
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG"}
|
package/package.json
ADDED
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@lumenflow/metrics",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "DORA/SPACE analytics and flow metrics for LumenFlow workflow framework",
|
|
5
|
+
"keywords": [
|
|
6
|
+
"lumenflow",
|
|
7
|
+
"metrics",
|
|
8
|
+
"dora",
|
|
9
|
+
"space",
|
|
10
|
+
"devops",
|
|
11
|
+
"analytics",
|
|
12
|
+
"workflow"
|
|
13
|
+
],
|
|
14
|
+
"homepage": "https://github.com/hellmai/os",
|
|
15
|
+
"repository": {
|
|
16
|
+
"type": "git",
|
|
17
|
+
"url": "https://github.com/hellmai/os.git",
|
|
18
|
+
"directory": "packages/@lumenflow/metrics"
|
|
19
|
+
},
|
|
20
|
+
"license": "Apache-2.0",
|
|
21
|
+
"author": {
|
|
22
|
+
"name": "HellmAI",
|
|
23
|
+
"url": "https://hellm.ai"
|
|
24
|
+
},
|
|
25
|
+
"type": "module",
|
|
26
|
+
"exports": {
|
|
27
|
+
".": {
|
|
28
|
+
"types": "./dist/index.d.ts",
|
|
29
|
+
"import": "./dist/index.js"
|
|
30
|
+
},
|
|
31
|
+
"./telemetry": {
|
|
32
|
+
"types": "./dist/telemetry/index.d.ts",
|
|
33
|
+
"import": "./dist/telemetry/index.js"
|
|
34
|
+
},
|
|
35
|
+
"./dora": {
|
|
36
|
+
"types": "./dist/dora/index.d.ts",
|
|
37
|
+
"import": "./dist/dora/index.js"
|
|
38
|
+
},
|
|
39
|
+
"./flow": {
|
|
40
|
+
"types": "./dist/flow/index.d.ts",
|
|
41
|
+
"import": "./dist/flow/index.js"
|
|
42
|
+
}
|
|
43
|
+
},
|
|
44
|
+
"main": "./dist/index.js",
|
|
45
|
+
"types": "./dist/index.d.ts",
|
|
46
|
+
"files": [
|
|
47
|
+
"dist",
|
|
48
|
+
"LICENSE",
|
|
49
|
+
"README.md"
|
|
50
|
+
],
|
|
51
|
+
"dependencies": {
|
|
52
|
+
"simple-statistics": "^7.8.8"
|
|
53
|
+
},
|
|
54
|
+
"devDependencies": {
|
|
55
|
+
"@vitest/coverage-v8": "^4.0.0"
|
|
56
|
+
},
|
|
57
|
+
"engines": {
|
|
58
|
+
"node": ">=22"
|
|
59
|
+
},
|
|
60
|
+
"publishConfig": {
|
|
61
|
+
"access": "public"
|
|
62
|
+
},
|
|
63
|
+
"scripts": {
|
|
64
|
+
"build": "tsc",
|
|
65
|
+
"build:dist": "tsc -p tsconfig.build.json",
|
|
66
|
+
"pack:dist": "pnpm pack",
|
|
67
|
+
"clean": "rm -rf dist *.tgz",
|
|
68
|
+
"dev": "tsc --watch",
|
|
69
|
+
"test": "vitest run",
|
|
70
|
+
"test:coverage": "vitest run --coverage",
|
|
71
|
+
"lint": "eslint src --max-warnings 0",
|
|
72
|
+
"typecheck": "tsc --noEmit"
|
|
73
|
+
}
|
|
74
|
+
}
|