@boshu2/vibe-check 1.8.0 → 2.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/.claude/settings.local.json +1 -1
- package/CHANGELOG.md +10 -0
- package/CLAUDE.md +58 -0
- package/Makefile +43 -6
- package/README.md +80 -27
- package/bin/vibe-check.js +1 -1
- package/claude-progress.json +18 -0
- package/dist/analysis/cross-session-analysis.d.ts +1 -1
- package/dist/analysis/cross-session-analysis.d.ts.map +1 -1
- package/dist/analysis/cross-session-analysis.js +9 -18
- package/dist/analysis/cross-session-analysis.js.map +1 -1
- package/dist/analysis/index.d.ts +1 -1
- package/dist/analysis/index.d.ts.map +1 -1
- package/dist/analysis/index.js +1 -11
- package/dist/analysis/index.js.map +1 -1
- package/dist/analyzers/audit.d.ts +28 -0
- package/dist/analyzers/audit.d.ts.map +1 -0
- package/dist/analyzers/audit.js +86 -0
- package/dist/analyzers/audit.js.map +1 -0
- package/dist/analyzers/patterns.d.ts +1 -1
- package/dist/analyzers/patterns.d.ts.map +1 -1
- package/dist/analyzers/patterns.js +4 -10
- package/dist/analyzers/patterns.js.map +1 -1
- package/dist/analyzers/quality.d.ts +1 -1
- package/dist/analyzers/quality.d.ts.map +1 -1
- package/dist/analyzers/quality.js +5 -12
- package/dist/analyzers/quality.js.map +1 -1
- package/dist/analyzers/sessions.d.ts +1 -1
- package/dist/analyzers/sessions.d.ts.map +1 -1
- package/dist/analyzers/sessions.js +1 -4
- package/dist/analyzers/sessions.js.map +1 -1
- package/dist/cli.js +20 -20
- package/dist/cli.js.map +1 -1
- package/dist/commands/analyze.d.ts.map +1 -1
- package/dist/commands/analyze.js +114 -149
- package/dist/commands/analyze.js.map +1 -1
- package/dist/commands/audit.d.ts +3 -0
- package/dist/commands/audit.d.ts.map +1 -0
- package/dist/commands/audit.js +77 -0
- package/dist/commands/audit.js.map +1 -0
- package/dist/commands/cache.js +31 -70
- package/dist/commands/cache.js.map +1 -1
- package/dist/commands/dashboard.d.ts.map +1 -1
- package/dist/commands/dashboard.js +22 -58
- package/dist/commands/dashboard.js.map +1 -1
- package/dist/commands/forensics.d.ts +2 -2
- package/dist/commands/forensics.d.ts.map +1 -1
- package/dist/commands/forensics.js +41 -48
- package/dist/commands/forensics.js.map +1 -1
- package/dist/commands/index.d.ts +14 -13
- package/dist/commands/index.d.ts.map +1 -1
- package/dist/commands/index.js +14 -33
- package/dist/commands/index.js.map +1 -1
- package/dist/commands/init-hook.js +26 -32
- package/dist/commands/init-hook.js.map +1 -1
- package/dist/commands/insights.js +39 -45
- package/dist/commands/insights.js.map +1 -1
- package/dist/commands/pipeline.js +39 -78
- package/dist/commands/pipeline.js.map +1 -1
- package/dist/commands/profile.js +68 -74
- package/dist/commands/profile.js.map +1 -1
- package/dist/commands/session.d.ts +9 -0
- package/dist/commands/session.d.ts.map +1 -1
- package/dist/commands/session.js +134 -118
- package/dist/commands/session.js.map +1 -1
- package/dist/commands/sessions.d.ts +1 -1
- package/dist/commands/sessions.d.ts.map +1 -1
- package/dist/commands/sessions.js +42 -49
- package/dist/commands/sessions.js.map +1 -1
- package/dist/commands/start.js +22 -67
- package/dist/commands/start.js.map +1 -1
- package/dist/commands/timeline.js +74 -81
- package/dist/commands/timeline.js.map +1 -1
- package/dist/commands/watch.d.ts.map +1 -1
- package/dist/commands/watch.js +117 -47
- package/dist/commands/watch.js.map +1 -1
- package/dist/gamification/achievements.d.ts +1 -1
- package/dist/gamification/achievements.d.ts.map +1 -1
- package/dist/gamification/achievements.js +7 -13
- package/dist/gamification/achievements.js.map +1 -1
- package/dist/gamification/index.d.ts +8 -8
- package/dist/gamification/index.d.ts.map +1 -1
- package/dist/gamification/index.js +8 -28
- package/dist/gamification/index.js.map +1 -1
- package/dist/gamification/profile.d.ts +2 -2
- package/dist/gamification/profile.d.ts.map +1 -1
- package/dist/gamification/profile.js +21 -64
- package/dist/gamification/profile.js.map +1 -1
- package/dist/gamification/stats.d.ts +1 -1
- package/dist/gamification/stats.d.ts.map +1 -1
- package/dist/gamification/stats.js +4 -10
- package/dist/gamification/stats.js.map +1 -1
- package/dist/gamification/streaks.d.ts +1 -1
- package/dist/gamification/streaks.d.ts.map +1 -1
- package/dist/gamification/streaks.js +8 -18
- package/dist/gamification/streaks.js.map +1 -1
- package/dist/gamification/types.js +3 -6
- package/dist/gamification/types.js.map +1 -1
- package/dist/gamification/xp.d.ts +1 -1
- package/dist/gamification/xp.d.ts.map +1 -1
- package/dist/gamification/xp.js +29 -38
- package/dist/gamification/xp.js.map +1 -1
- package/dist/git.d.ts +1 -1
- package/dist/git.d.ts.map +1 -1
- package/dist/git.js +15 -27
- package/dist/git.js.map +1 -1
- package/dist/inner-loop/context-amnesia.d.ts +20 -0
- package/dist/inner-loop/context-amnesia.d.ts.map +1 -0
- package/dist/inner-loop/context-amnesia.js +246 -0
- package/dist/inner-loop/context-amnesia.js.map +1 -0
- package/dist/inner-loop/index.d.ts +39 -0
- package/dist/inner-loop/index.d.ts.map +1 -0
- package/dist/inner-loop/index.js +181 -0
- package/dist/inner-loop/index.js.map +1 -0
- package/dist/inner-loop/instruction-drift.d.ts +28 -0
- package/dist/inner-loop/instruction-drift.d.ts.map +1 -0
- package/dist/inner-loop/instruction-drift.js +255 -0
- package/dist/inner-loop/instruction-drift.js.map +1 -0
- package/dist/inner-loop/logging-only.d.ts +30 -0
- package/dist/inner-loop/logging-only.d.ts.map +1 -0
- package/dist/inner-loop/logging-only.js +256 -0
- package/dist/inner-loop/logging-only.js.map +1 -0
- package/dist/inner-loop/tests-passing-lie.d.ts +34 -0
- package/dist/inner-loop/tests-passing-lie.d.ts.map +1 -0
- package/dist/inner-loop/tests-passing-lie.js +208 -0
- package/dist/inner-loop/tests-passing-lie.js.map +1 -0
- package/dist/inner-loop/types.d.ts +111 -0
- package/dist/inner-loop/types.d.ts.map +1 -0
- package/dist/inner-loop/types.js +26 -0
- package/dist/inner-loop/types.js.map +1 -0
- package/dist/insights/generators.d.ts +4 -4
- package/dist/insights/generators.d.ts.map +1 -1
- package/dist/insights/generators.js +9 -20
- package/dist/insights/generators.js.map +1 -1
- package/dist/insights/index.d.ts +4 -4
- package/dist/insights/index.d.ts.map +1 -1
- package/dist/insights/index.js +23 -27
- package/dist/insights/index.js.map +1 -1
- package/dist/insights/types.js +1 -2
- package/dist/insights/types.js.map +1 -1
- package/dist/metrics/code-stability.d.ts +1 -1
- package/dist/metrics/code-stability.d.ts.map +1 -1
- package/dist/metrics/code-stability.js +1 -4
- package/dist/metrics/code-stability.js.map +1 -1
- package/dist/metrics/file-churn.d.ts +1 -1
- package/dist/metrics/file-churn.d.ts.map +1 -1
- package/dist/metrics/file-churn.js +1 -4
- package/dist/metrics/file-churn.js.map +1 -1
- package/dist/metrics/flow.d.ts +1 -1
- package/dist/metrics/flow.d.ts.map +1 -1
- package/dist/metrics/flow.js +1 -4
- package/dist/metrics/flow.js.map +1 -1
- package/dist/metrics/index.d.ts +2 -2
- package/dist/metrics/index.d.ts.map +1 -1
- package/dist/metrics/index.js +15 -20
- package/dist/metrics/index.js.map +1 -1
- package/dist/metrics/rework.d.ts +1 -1
- package/dist/metrics/rework.d.ts.map +1 -1
- package/dist/metrics/rework.js +1 -4
- package/dist/metrics/rework.js.map +1 -1
- package/dist/metrics/spirals.d.ts +1 -1
- package/dist/metrics/spirals.d.ts.map +1 -1
- package/dist/metrics/spirals.js +5 -10
- package/dist/metrics/spirals.js.map +1 -1
- package/dist/metrics/time-spiral.d.ts +1 -1
- package/dist/metrics/time-spiral.d.ts.map +1 -1
- package/dist/metrics/time-spiral.js +1 -4
- package/dist/metrics/time-spiral.js.map +1 -1
- package/dist/metrics/trust.d.ts +1 -1
- package/dist/metrics/trust.d.ts.map +1 -1
- package/dist/metrics/trust.js +3 -6
- package/dist/metrics/trust.js.map +1 -1
- package/dist/metrics/velocity-anomaly.d.ts +1 -1
- package/dist/metrics/velocity-anomaly.d.ts.map +1 -1
- package/dist/metrics/velocity-anomaly.js +3 -6
- package/dist/metrics/velocity-anomaly.js.map +1 -1
- package/dist/metrics/velocity.d.ts +1 -1
- package/dist/metrics/velocity.d.ts.map +1 -1
- package/dist/metrics/velocity.js +6 -10
- package/dist/metrics/velocity.js.map +1 -1
- package/dist/output/index.d.ts +4 -4
- package/dist/output/index.d.ts.map +1 -1
- package/dist/output/index.js +10 -18
- package/dist/output/index.js.map +1 -1
- package/dist/output/json.d.ts +1 -1
- package/dist/output/json.d.ts.map +1 -1
- package/dist/output/json.js +1 -4
- package/dist/output/json.js.map +1 -1
- package/dist/output/markdown.d.ts +1 -1
- package/dist/output/markdown.d.ts.map +1 -1
- package/dist/output/markdown.js +5 -8
- package/dist/output/markdown.js.map +1 -1
- package/dist/output/terminal.d.ts +1 -1
- package/dist/output/terminal.d.ts.map +1 -1
- package/dist/output/terminal.js +55 -62
- package/dist/output/terminal.js.map +1 -1
- package/dist/output/timeline-html.d.ts +1 -1
- package/dist/output/timeline-html.d.ts.map +1 -1
- package/dist/output/timeline-html.js +5 -8
- package/dist/output/timeline-html.js.map +1 -1
- package/dist/output/timeline-markdown.d.ts +1 -1
- package/dist/output/timeline-markdown.d.ts.map +1 -1
- package/dist/output/timeline-markdown.js +5 -8
- package/dist/output/timeline-markdown.js.map +1 -1
- package/dist/output/timeline.d.ts +1 -1
- package/dist/output/timeline.d.ts.map +1 -1
- package/dist/output/timeline.js +46 -52
- package/dist/output/timeline.js.map +1 -1
- package/dist/patterns/detour.d.ts +1 -1
- package/dist/patterns/detour.d.ts.map +1 -1
- package/dist/patterns/detour.js +1 -4
- package/dist/patterns/detour.js.map +1 -1
- package/dist/patterns/flow-state.d.ts +1 -1
- package/dist/patterns/flow-state.d.ts.map +1 -1
- package/dist/patterns/flow-state.js +1 -4
- package/dist/patterns/flow-state.js.map +1 -1
- package/dist/patterns/index.d.ts +7 -7
- package/dist/patterns/index.d.ts.map +1 -1
- package/dist/patterns/index.js +7 -21
- package/dist/patterns/index.js.map +1 -1
- package/dist/patterns/intervention-effectiveness.d.ts +1 -1
- package/dist/patterns/intervention-effectiveness.d.ts.map +1 -1
- package/dist/patterns/intervention-effectiveness.js +3 -8
- package/dist/patterns/intervention-effectiveness.js.map +1 -1
- package/dist/patterns/late-night.d.ts +1 -1
- package/dist/patterns/late-night.d.ts.map +1 -1
- package/dist/patterns/late-night.js +1 -4
- package/dist/patterns/late-night.js.map +1 -1
- package/dist/patterns/post-delete-sprint.d.ts +1 -1
- package/dist/patterns/post-delete-sprint.d.ts.map +1 -1
- package/dist/patterns/post-delete-sprint.js +1 -4
- package/dist/patterns/post-delete-sprint.js.map +1 -1
- package/dist/patterns/spiral-regression.d.ts +1 -1
- package/dist/patterns/spiral-regression.d.ts.map +1 -1
- package/dist/patterns/spiral-regression.js +3 -8
- package/dist/patterns/spiral-regression.js.map +1 -1
- package/dist/patterns/thrashing.d.ts +1 -1
- package/dist/patterns/thrashing.d.ts.map +1 -1
- package/dist/patterns/thrashing.js +3 -6
- package/dist/patterns/thrashing.js.map +1 -1
- package/dist/score/index.d.ts +3 -3
- package/dist/score/index.d.ts.map +1 -1
- package/dist/score/index.js +4 -10
- package/dist/score/index.js.map +1 -1
- package/dist/score/weights.js +2 -6
- package/dist/score/weights.js.map +1 -1
- package/dist/sessions/index.js +9 -51
- package/dist/sessions/index.js.map +1 -1
- package/dist/storage/atomic.js +10 -51
- package/dist/storage/atomic.js.map +1 -1
- package/dist/storage/commit-log.d.ts +1 -1
- package/dist/storage/commit-log.d.ts.map +1 -1
- package/dist/storage/commit-log.js +11 -51
- package/dist/storage/commit-log.js.map +1 -1
- package/dist/storage/index.d.ts +5 -5
- package/dist/storage/index.d.ts.map +1 -1
- package/dist/storage/index.js +5 -37
- package/dist/storage/index.js.map +1 -1
- package/dist/storage/schema.js +4 -9
- package/dist/storage/schema.js.map +1 -1
- package/dist/storage/spiral-history.js +14 -57
- package/dist/storage/spiral-history.js.map +1 -1
- package/dist/storage/timeline-store.d.ts +2 -2
- package/dist/storage/timeline-store.d.ts.map +1 -1
- package/dist/storage/timeline-store.js +17 -61
- package/dist/storage/timeline-store.js.map +1 -1
- package/dist/types.js +1 -2
- package/docs/ENHANCEMENT-PLAN.md +361 -0
- package/docs/FEATURES.md +340 -0
- package/feature-list.json +6 -0
- package/package.json +8 -7
- package/dist/calibration/ece.d.ts +0 -26
- package/dist/calibration/ece.d.ts.map +0 -1
- package/dist/calibration/ece.js +0 -93
- package/dist/calibration/ece.js.map +0 -1
- package/dist/calibration/index.d.ts +0 -3
- package/dist/calibration/index.d.ts.map +0 -1
- package/dist/calibration/index.js +0 -15
- package/dist/calibration/index.js.map +0 -1
- package/dist/calibration/storage.d.ts +0 -34
- package/dist/calibration/storage.d.ts.map +0 -1
- package/dist/calibration/storage.js +0 -188
- package/dist/calibration/storage.js.map +0 -1
- package/dist/commands/intervene.d.ts +0 -15
- package/dist/commands/intervene.d.ts.map +0 -1
- package/dist/commands/intervene.js +0 -183
- package/dist/commands/intervene.js.map +0 -1
- package/dist/commands/learn.d.ts +0 -3
- package/dist/commands/learn.d.ts.map +0 -1
- package/dist/commands/learn.js +0 -161
- package/dist/commands/learn.js.map +0 -1
- package/dist/commands/lesson.d.ts +0 -8
- package/dist/commands/lesson.d.ts.map +0 -1
- package/dist/commands/lesson.js +0 -206
- package/dist/commands/lesson.js.map +0 -1
- package/dist/commands/level.d.ts +0 -3
- package/dist/commands/level.d.ts.map +0 -1
- package/dist/commands/level.js +0 -277
- package/dist/commands/level.js.map +0 -1
- package/dist/gamification/badges.d.ts +0 -29
- package/dist/gamification/badges.d.ts.map +0 -1
- package/dist/gamification/badges.js +0 -114
- package/dist/gamification/badges.js.map +0 -1
- package/dist/gamification/challenges.d.ts +0 -42
- package/dist/gamification/challenges.d.ts.map +0 -1
- package/dist/gamification/challenges.js +0 -184
- package/dist/gamification/challenges.js.map +0 -1
- package/dist/gamification/hall-of-fame.d.ts +0 -17
- package/dist/gamification/hall-of-fame.d.ts.map +0 -1
- package/dist/gamification/hall-of-fame.js +0 -64
- package/dist/gamification/hall-of-fame.js.map +0 -1
- package/dist/gamification/intervention-memory.d.ts +0 -61
- package/dist/gamification/intervention-memory.d.ts.map +0 -1
- package/dist/gamification/intervention-memory.js +0 -229
- package/dist/gamification/intervention-memory.js.map +0 -1
- package/dist/gamification/leaderboards.d.ts +0 -49
- package/dist/gamification/leaderboards.d.ts.map +0 -1
- package/dist/gamification/leaderboards.js +0 -179
- package/dist/gamification/leaderboards.js.map +0 -1
- package/dist/gamification/pattern-memory.d.ts +0 -45
- package/dist/gamification/pattern-memory.d.ts.map +0 -1
- package/dist/gamification/pattern-memory.js +0 -188
- package/dist/gamification/pattern-memory.js.map +0 -1
- package/dist/gamification/share.d.ts +0 -29
- package/dist/gamification/share.d.ts.map +0 -1
- package/dist/gamification/share.js +0 -57
- package/dist/gamification/share.js.map +0 -1
- package/dist/learning/cadence.d.ts +0 -15
- package/dist/learning/cadence.d.ts.map +0 -1
- package/dist/learning/cadence.js +0 -130
- package/dist/learning/cadence.js.map +0 -1
- package/dist/learning/index.d.ts +0 -19
- package/dist/learning/index.d.ts.map +0 -1
- package/dist/learning/index.js +0 -35
- package/dist/learning/index.js.map +0 -1
- package/dist/learning/lessons-storage.d.ts +0 -48
- package/dist/learning/lessons-storage.d.ts.map +0 -1
- package/dist/learning/lessons-storage.js +0 -266
- package/dist/learning/lessons-storage.js.map +0 -1
- package/dist/learning/lessons-types.d.ts +0 -83
- package/dist/learning/lessons-types.d.ts.map +0 -1
- package/dist/learning/lessons-types.js +0 -15
- package/dist/learning/lessons-types.js.map +0 -1
- package/dist/learning/nudges.d.ts +0 -20
- package/dist/learning/nudges.d.ts.map +0 -1
- package/dist/learning/nudges.js +0 -68
- package/dist/learning/nudges.js.map +0 -1
- package/dist/learning/retrospective.d.ts +0 -27
- package/dist/learning/retrospective.d.ts.map +0 -1
- package/dist/learning/retrospective.js +0 -184
- package/dist/learning/retrospective.js.map +0 -1
- package/dist/learning/storage.d.ts +0 -44
- package/dist/learning/storage.d.ts.map +0 -1
- package/dist/learning/storage.js +0 -194
- package/dist/learning/storage.js.map +0 -1
- package/dist/learning/surfacing.d.ts +0 -36
- package/dist/learning/surfacing.d.ts.map +0 -1
- package/dist/learning/surfacing.js +0 -255
- package/dist/learning/surfacing.js.map +0 -1
- package/dist/learning/synthesis.d.ts +0 -17
- package/dist/learning/synthesis.d.ts.map +0 -1
- package/dist/learning/synthesis.js +0 -293
- package/dist/learning/synthesis.js.map +0 -1
- package/dist/learning/types.d.ts +0 -60
- package/dist/learning/types.d.ts.map +0 -1
- package/dist/learning/types.js +0 -17
- package/dist/learning/types.js.map +0 -1
- package/dist/recommend/index.d.ts +0 -3
- package/dist/recommend/index.d.ts.map +0 -1
- package/dist/recommend/index.js +0 -14
- package/dist/recommend/index.js.map +0 -1
- package/dist/recommend/ordered-logistic.d.ts +0 -49
- package/dist/recommend/ordered-logistic.d.ts.map +0 -1
- package/dist/recommend/ordered-logistic.js +0 -153
- package/dist/recommend/ordered-logistic.js.map +0 -1
- package/dist/recommend/questions.d.ts +0 -19
- package/dist/recommend/questions.d.ts.map +0 -1
- package/dist/recommend/questions.js +0 -73
- package/dist/recommend/questions.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/insights/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/insights/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EACL,wBAAwB,EACxB,gCAAgC,EAChC,gCAAgC,EAChC,yBAAyB,EACzB,2BAA2B,EAC3B,4BAA4B,EAC5B,wBAAwB,EACxB,gCAAgC,EAChC,sBAAsB,GACvB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAe,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAK/D;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAC9B,OAAoB,EACpB,OAAiB,EACjB,QAAgB;IAEhB,MAAM,KAAK,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;IAClC,MAAM,QAAQ,GAAc,EAAE,CAAC;IAE/B,qBAAqB;IACrB,MAAM,UAAU,GAAG;QACjB,GAAG,EAAE,CAAC,wBAAwB,CAAC,OAAO,CAAC;QACvC,GAAG,EAAE,CAAC,sBAAsB,CAAC,OAAO,CAAC;QACrC,GAAG,EAAE,CAAC,gCAAgC,CAAC,KAAK,CAAC;QAC7C,GAAG,EAAE,CAAC,gCAAgC,CAAC,OAAO,CAAC;QAC/C,GAAG,EAAE,CAAC,yBAAyB,CAAC,OAAO,CAAC;QACxC,GAAG,EAAE,CAAC,2BAA2B,CAAC,OAAO,CAAC;QAC1C,GAAG,EAAE,CAAC,4BAA4B,CAAC,OAAO,CAAC;QAC3C,GAAG,EAAE,CAAC,wBAAwB,CAAC,OAAO,CAAC;QACvC,GAAG,EAAE,CAAC,gCAAgC,CAAC,OAAO,CAAC;KAChD,CAAC;IAEF,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;QAC7B,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,GAAG,EAAE,CAAC;YACtB,IAAI,OAAO;gBAAE,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACtC,CAAC;QAAC,MAAM,CAAC;YACP,yBAAyB;QAC3B,CAAC;IACH,CAAC;IAED,mCAAmC;IACnC,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC;AAC1D,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAAC,WAAmB,OAAO,CAAC,GAAG,EAAE;IACjE,MAAM,OAAO,GAAG,WAAW,EAAE,CAAC;IAC9B,MAAM,OAAO,GAAG,aAAa,CAAC,QAAQ,CAAC,CAAC;IACxC,MAAM,KAAK,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;IAElC,aAAa;IACb,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC;IAE9E,qBAAqB;IACrB,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;IAClC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IACvB,MAAM,YAAY,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;QACvC,MAAM,CAAC,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAC3B,OAAO,GAAG,GAAG,CAAC,CAAC,OAAO,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;IACrD,CAAC,CAAC,CAAC;IACH,MAAM,aAAa,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE;QACxC,MAAM,CAAC,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAC3B,OAAO,GAAG,GAAG,CAAC,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;IACtD,CAAC,CAAC,CAAC;IAEH,MAAM,GAAG,GAAG,CAAC,GAAa,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAE5G,uDAAuD;IACvD,MAAM,kBAAkB,GAA2B,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;IAC5F,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;QACzB,kBAAkB,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;IAC3E,CAAC;IAED,+BAA+B;IAC/B,MAAM,cAAc,GAA2B,EAAE,CAAC;IAClD,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,CAAC;QAC/C,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;IACzD,CAAC;IAED,eAAe;IACf,MAAM,UAAU,GAAG,IAAI,GAAG,EAA4C,CAAC;IACvE,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,YAAY,CAAC;QAC3C,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC;YAAE,UAAU,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;QAC1E,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,CAAC,KAAK,CAAE,CAAC;QACrC,KAAK,CAAC,KAAK,EAAE,CAAC;QACd,IAAI,MAAM,CAAC,IAAI,KAAK,KAAK;YAAE,KAAK,CAAC,KAAK,EAAE,CAAC;IAC3C,CAAC;IACD,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;SACjD,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;QACxB,KAAK;QACL,OAAO,EAAE,KAAK,CAAC,KAAK;QACpB,QAAQ,EAAE,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;KAC9E,CAAC,CAAC;SACF,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC;SACrC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAEhB,yDAAyD;IACzD,MAAM,UAAU,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAC/C,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,KAAK,EAAE,CAAC,CAAC,SAAS;QAClB,MAAM,EAAE,CAAC,CAAC,OAAO,EAAG,6BAA6B;KAClD,CAAC,CAAC,CAAC;IAEJ,mEAAmE;IACnE,MAAM,MAAM,GAAG,CAAC,GAAa,EAAE,EAAE,CAAC,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IACnG,MAAM,iBAAiB,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;IACrE,MAAM,UAAU,GAAG,iBAAiB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;QAChD,iBAAiB,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAQ,CAAC,iBAAiB,CAAC,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE;QACzG,WAAW,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAQ,CAAC,WAAW,CAAC,CAAC,CAAC;QACnF,aAAa,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAQ,CAAC,aAAa,CAAC,CAAC,CAAC;QACvF,cAAc,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAQ,CAAC,cAAc,CAAC,CAAC,CAAC;QACzF,mBAAmB,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAQ,CAAC,mBAAmB,CAAC,CAAC,CAAC;KACpG,CAAC,CAAC,CAAC,IAAI,CAAC;IAET,oBAAoB;IACpB,MAAM,QAAQ,GAAG,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;IAE9D,mBAAmB;IACnB,MAAM,eAAe,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;QAC3C,MAAM,QAAQ,GAAG,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;QACjE,OAAO;YACL,EAAE,EAAE,CAAC,CAAC,EAAE;YACR,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,WAAW,EAAE,CAAC,CAAC,WAAW;YAC1B,UAAU,EAAE,QAAQ,EAAE,UAAU;SACjC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,uCAAuC;IACvC,MAAM,aAAa,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAEjF,OAAO;QACL,OAAO,EAAE,OAAO;QAChB,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACrC,IAAI,EAAE,QAAQ;QAEd,OAAO,EAAE;YACP,KAAK,EAAE,OAAO,CAAC,EAAE,CAAC,KAAK;YACvB,SAAS,EAAE,OAAO,CAAC,EAAE,CAAC,SAAS;YAC/B,SAAS,EAAE,SAAS,CAAC,IAAI;YACzB,EAAE,EAAE;gBACF,OAAO,EAAE,OAAO,CAAC,EAAE,CAAC,cAAc;gBAClC,IAAI,EAAE,OAAO,CAAC,EAAE,CAAC,WAAW;gBAC5B,KAAK,EAAE,OAAO,CAAC,EAAE,CAAC,KAAK;aACxB;YACD,MAAM,EAAE;gBACN,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,OAAO;gBAC/B,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,OAAO;aAChC;YACD,gBAAgB,EAAE,OAAO,CAAC,YAAY,CAAC,MAAM;YAC7C,iBAAiB,EAAE,YAAY,CAAC,MAAM;SACvC;QAED,KAAK,EAAE;YACL,OAAO,EAAE;gBACP,SAAS,EAAE,aAAa,EAAE,SAAS,IAAI,CAAC;gBACxC,MAAM,EAAE,aAAa,EAAE,OAAO,IAAI,KAAK,EAAG,6BAA6B;aACxE;YACD,QAAQ,EAAE;gBACR,IAAI,EAAE,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;gBAC7C,KAAK,EAAE,GAAG,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;gBAC/C,OAAO,EAAE,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;aAC7C;YACD,MAAM,EAAE;gBACN,QAAQ,EAAE,QAAQ,CAAC,MAAM;gBACzB,OAAO,EAAE,OAAO,CAAC,MAAM;gBACvB,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;gBACxD,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;aACpE;SACF;QAED,MAAM,EAAE;YACN,UAAU;YACV,kBAAkB;YAClB,cAAc;YACd,WAAW;YACX,UAAU,EAAG,kCAAkC;SAChD;QAED,QAAQ;QAER,QAAQ,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YAChD,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,SAAS,EAAE,CAAC,CAAC,SAAS;YACtB,MAAM,EAAE,CAAC,CAAC,OAAO,EAAG,6BAA6B;YACjD,OAAO,EAAE,CAAC,CAAC,OAAO;YAClB,OAAO,EAAE,CAAC,CAAC,OAAO;YAClB,QAAQ,EAAE,CAAC,CAAC,QAAQ;YACpB,OAAO,EAAE,CAAC,CAAC,OAAO,IAAI,IAAI,EAAG,wCAAwC;SACtE,CAAC,CAAC;QAEH,YAAY,EAAE,eAAe;KAC9B,CAAC;AACJ,CAAC"}
|
package/dist/insights/types.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/insights/types.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/insights/types.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"code-stability.d.ts","sourceRoot":"","sources":["../../src/metrics/code-stability.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,mBAAmB,EAAU,MAAM,
|
|
1
|
+
{"version":3,"file":"code-stability.d.ts","sourceRoot":"","sources":["../../src/metrics/code-stability.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,mBAAmB,EAAU,MAAM,aAAa,CAAC;AAElE;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,MAAM,EAAE,EACjB,KAAK,CAAC,EAAE;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,EAAE,GACjD,mBAAmB,CAiCrB"}
|
|
@@ -1,6 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.calculateCodeStability = calculateCodeStability;
|
|
4
1
|
/**
|
|
5
2
|
* Calculate code stability score.
|
|
6
3
|
* Measures what percentage of added lines survive.
|
|
@@ -8,7 +5,7 @@ exports.calculateCodeStability = calculateCodeStability;
|
|
|
8
5
|
* NOTE: Full implementation requires git blame analysis.
|
|
9
6
|
* This is a simplified version using addition/deletion ratios.
|
|
10
7
|
*/
|
|
11
|
-
function calculateCodeStability(commits, stats) {
|
|
8
|
+
export function calculateCodeStability(commits, stats) {
|
|
12
9
|
if (!stats || stats.length === 0) {
|
|
13
10
|
// Without stats, estimate from commit patterns
|
|
14
11
|
return estimateStability(commits);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"code-stability.js","sourceRoot":"","sources":["../../src/metrics/code-stability.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"code-stability.js","sourceRoot":"","sources":["../../src/metrics/code-stability.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file-churn.d.ts","sourceRoot":"","sources":["../../src/metrics/file-churn.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,eAAe,EAAU,MAAM,
|
|
1
|
+
{"version":3,"file":"file-churn.d.ts","sourceRoot":"","sources":["../../src/metrics/file-churn.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,eAAe,EAAU,MAAM,aAAa,CAAC;AAiB9D;;;;GAIG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,MAAM,EAAE,EACjB,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,GACpC,eAAe,CAuCjB"}
|
|
@@ -1,6 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.calculateFileChurn = calculateFileChurn;
|
|
4
1
|
const ONE_HOUR_MS = 60 * 60 * 1000;
|
|
5
2
|
/**
|
|
6
3
|
* Churn threshold: 3+ touches to same file within 1 hour suggests thrashing.
|
|
@@ -19,7 +16,7 @@ const CHURN_THRESHOLD = 3;
|
|
|
19
16
|
* Files touched 3+ times within 1 hour indicate thrashing.
|
|
20
17
|
* Works WITHOUT semantic commits.
|
|
21
18
|
*/
|
|
22
|
-
function calculateFileChurn(commits, filesPerCommit) {
|
|
19
|
+
export function calculateFileChurn(commits, filesPerCommit) {
|
|
23
20
|
// Track file touch timestamps
|
|
24
21
|
const fileTouchTimes = new Map();
|
|
25
22
|
for (const commit of commits) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file-churn.js","sourceRoot":"","sources":["../../src/metrics/file-churn.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"file-churn.js","sourceRoot":"","sources":["../../src/metrics/file-churn.ts"],"names":[],"mappings":"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"}
|
package/dist/metrics/flow.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"flow.d.ts","sourceRoot":"","sources":["../../src/metrics/flow.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAU,MAAM,
|
|
1
|
+
{"version":3,"file":"flow.d.ts","sourceRoot":"","sources":["../../src/metrics/flow.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAU,MAAM,aAAa,CAAC;AAE7D,wBAAgB,uBAAuB,CACrC,aAAa,EAAE,MAAM,EACrB,OAAO,EAAE,QAAQ,EAAE,GAClB,YAAY,CAwBd"}
|
package/dist/metrics/flow.js
CHANGED
|
@@ -1,7 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.calculateFlowEfficiency = calculateFlowEfficiency;
|
|
4
|
-
function calculateFlowEfficiency(activeMinutes, spirals) {
|
|
1
|
+
export function calculateFlowEfficiency(activeMinutes, spirals) {
|
|
5
2
|
if (activeMinutes === 0) {
|
|
6
3
|
return {
|
|
7
4
|
value: 100,
|
package/dist/metrics/flow.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"flow.js","sourceRoot":"","sources":["../../src/metrics/flow.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"flow.js","sourceRoot":"","sources":["../../src/metrics/flow.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,uBAAuB,CACrC,aAAqB,EACrB,OAAmB;IAEnB,IAAI,aAAa,KAAK,CAAC,EAAE,CAAC;QACxB,OAAO;YACL,KAAK,EAAE,GAAG;YACV,IAAI,EAAE,GAAG;YACT,MAAM,EAAE,OAAO;YACf,WAAW,EAAE,yBAAyB;SACvC,CAAC;IACJ,CAAC;IAED,MAAM,aAAa,GAAG,OAAO;SAC1B,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC;SACzB,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;IAE3C,MAAM,UAAU,GAAG,CAAC,CAAC,aAAa,GAAG,aAAa,CAAC,GAAG,aAAa,CAAC,GAAG,GAAG,CAAC;IAC3E,MAAM,iBAAiB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC;IACjE,MAAM,MAAM,GAAG,SAAS,CAAC,iBAAiB,CAAC,CAAC;IAE5C,OAAO;QACL,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC;QACpC,IAAI,EAAE,GAAG;QACT,MAAM;QACN,WAAW,EAAE,cAAc,CAAC,MAAM,EAAE,aAAa,CAAC;KACnD,CAAC;AACJ,CAAC;AAED,SAAS,SAAS,CAAC,UAAkB;IACnC,IAAI,UAAU,GAAG,EAAE;QAAE,OAAO,OAAO,CAAC;IACpC,IAAI,UAAU,IAAI,EAAE;QAAE,OAAO,MAAM,CAAC;IACpC,IAAI,UAAU,IAAI,EAAE;QAAE,OAAO,QAAQ,CAAC;IACtC,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,cAAc,CAAC,MAAc,EAAE,aAAqB;IAC3D,MAAM,UAAU,GACd,aAAa,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,aAAa,0BAA0B,CAAC,CAAC,CAAC,kBAAkB,CAAC;IAEtF,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,OAAO;YACV,OAAO,GAAG,UAAU,6BAA6B,CAAC;QACpD,KAAK,MAAM;YACT,OAAO,GAAG,UAAU,gBAAgB,CAAC;QACvC,KAAK,QAAQ;YACX,OAAO,GAAG,UAAU,kCAAkC,CAAC;QACzD,KAAK,KAAK;YACR,OAAO,GAAG,UAAU,gCAAgC,CAAC;IACzD,CAAC;AACH,CAAC"}
|
package/dist/metrics/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Commit, VibeCheckResult } from '../types';
|
|
1
|
+
import { Commit, VibeCheckResult } from '../types.js';
|
|
2
2
|
export declare function analyzeCommits(commits: Commit[]): VibeCheckResult;
|
|
3
|
-
export { calculateActiveHours } from './velocity';
|
|
3
|
+
export { calculateActiveHours } from './velocity.js';
|
|
4
4
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/metrics/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,eAAe,EAAyB,MAAM,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/metrics/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,eAAe,EAAyB,MAAM,aAAa,CAAC;AAW7E,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,eAAe,CAsDjE;AAuGD,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC"}
|
package/dist/metrics/index.js
CHANGED
|
@@ -1,13 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
const trust_1 = require("./trust");
|
|
8
|
-
const spirals_1 = require("./spirals");
|
|
9
|
-
const flow_1 = require("./flow");
|
|
10
|
-
function analyzeCommits(commits) {
|
|
1
|
+
import { calculateIterationVelocity, calculateActiveHours } from './velocity.js';
|
|
2
|
+
import { calculateReworkRatio } from './rework.js';
|
|
3
|
+
import { calculateTrustPassRate } from './trust.js';
|
|
4
|
+
import { detectFixChains, calculateDebugSpiralDuration, calculatePatternSummary, } from './spirals.js';
|
|
5
|
+
import { calculateFlowEfficiency } from './flow.js';
|
|
6
|
+
export function analyzeCommits(commits) {
|
|
11
7
|
if (commits.length === 0) {
|
|
12
8
|
return emptyResult();
|
|
13
9
|
}
|
|
@@ -15,19 +11,19 @@ function analyzeCommits(commits) {
|
|
|
15
11
|
const sorted = [...commits].sort((a, b) => a.date.getTime() - b.date.getTime());
|
|
16
12
|
const from = sorted[0].date;
|
|
17
13
|
const to = sorted[sorted.length - 1].date;
|
|
18
|
-
const activeHours =
|
|
14
|
+
const activeHours = calculateActiveHours(sorted);
|
|
19
15
|
// Count commit types
|
|
20
16
|
const commitCounts = countCommitTypes(sorted);
|
|
21
17
|
// Detect fix chains
|
|
22
|
-
const fixChains =
|
|
18
|
+
const fixChains = detectFixChains(sorted);
|
|
23
19
|
// Calculate all metrics
|
|
24
|
-
const iterationVelocity =
|
|
25
|
-
const reworkRatio =
|
|
26
|
-
const trustPassRate =
|
|
27
|
-
const debugSpiralDuration =
|
|
28
|
-
const flowEfficiency =
|
|
20
|
+
const iterationVelocity = calculateIterationVelocity(sorted);
|
|
21
|
+
const reworkRatio = calculateReworkRatio(sorted);
|
|
22
|
+
const trustPassRate = calculateTrustPassRate(sorted);
|
|
23
|
+
const debugSpiralDuration = calculateDebugSpiralDuration(fixChains);
|
|
24
|
+
const flowEfficiency = calculateFlowEfficiency(activeHours * 60, fixChains);
|
|
29
25
|
// Calculate pattern summary
|
|
30
|
-
const patterns =
|
|
26
|
+
const patterns = calculatePatternSummary(fixChains);
|
|
31
27
|
// Determine overall rating
|
|
32
28
|
const overall = calculateOverallRating([
|
|
33
29
|
iterationVelocity.rating,
|
|
@@ -151,6 +147,5 @@ function emptyResult() {
|
|
|
151
147
|
overall: 'HIGH',
|
|
152
148
|
};
|
|
153
149
|
}
|
|
154
|
-
|
|
155
|
-
Object.defineProperty(exports, "calculateActiveHours", { enumerable: true, get: function () { return velocity_2.calculateActiveHours; } });
|
|
150
|
+
export { calculateActiveHours } from './velocity.js';
|
|
156
151
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/metrics/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/metrics/index.ts"],"names":[],"mappings":"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"}
|
package/dist/metrics/rework.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rework.d.ts","sourceRoot":"","sources":["../../src/metrics/rework.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,YAAY,EAAU,MAAM,
|
|
1
|
+
{"version":3,"file":"rework.d.ts","sourceRoot":"","sources":["../../src/metrics/rework.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,YAAY,EAAU,MAAM,aAAa,CAAC;AAE3D,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,YAAY,CAoBpE"}
|
package/dist/metrics/rework.js
CHANGED
|
@@ -1,7 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.calculateReworkRatio = calculateReworkRatio;
|
|
4
|
-
function calculateReworkRatio(commits) {
|
|
1
|
+
export function calculateReworkRatio(commits) {
|
|
5
2
|
if (commits.length === 0) {
|
|
6
3
|
return {
|
|
7
4
|
value: 0,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rework.js","sourceRoot":"","sources":["../../src/metrics/rework.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"rework.js","sourceRoot":"","sources":["../../src/metrics/rework.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,oBAAoB,CAAC,OAAiB;IACpD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO;YACL,KAAK,EAAE,CAAC;YACR,IAAI,EAAE,GAAG;YACT,MAAM,EAAE,OAAO;YACf,WAAW,EAAE,kBAAkB;SAChC,CAAC;IACJ,CAAC;IAED,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,MAAM,CAAC;IAClE,MAAM,KAAK,GAAG,CAAC,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,GAAG,CAAC;IAClD,MAAM,MAAM,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;IAEhC,OAAO;QACL,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;QACxB,IAAI,EAAE,GAAG;QACT,MAAM;QACN,WAAW,EAAE,cAAc,CAAC,MAAM,EAAE,UAAU,EAAE,OAAO,CAAC,MAAM,CAAC;KAChE,CAAC;AACJ,CAAC;AAED,SAAS,SAAS,CAAC,KAAa;IAC9B,IAAI,KAAK,GAAG,EAAE;QAAE,OAAO,OAAO,CAAC;IAC/B,IAAI,KAAK,GAAG,EAAE;QAAE,OAAO,MAAM,CAAC;IAC9B,IAAI,KAAK,GAAG,EAAE;QAAE,OAAO,QAAQ,CAAC;IAChC,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,cAAc,CAAC,MAAc,EAAE,KAAa,EAAE,KAAa;IAClE,MAAM,OAAO,GAAG,GAAG,KAAK,IAAI,KAAK,oBAAoB,CAAC;IAEtD,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,OAAO;YACV,OAAO,GAAG,OAAO,2BAA2B,CAAC;QAC/C,KAAK,MAAM;YACT,OAAO,GAAG,OAAO,2BAA2B,CAAC;QAC/C,KAAK,QAAQ;YACX,OAAO,GAAG,OAAO,iDAAiD,CAAC;QACrE,KAAK,KAAK;YACR,OAAO,GAAG,OAAO,2CAA2C,CAAC;IACjE,CAAC;AACH,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Commit, FixChain, MetricResult } from '../types';
|
|
1
|
+
import { Commit, FixChain, MetricResult } from '../types.js';
|
|
2
2
|
export declare function detectFixChains(commits: Commit[]): FixChain[];
|
|
3
3
|
export declare function calculateDebugSpiralDuration(chains: FixChain[]): MetricResult;
|
|
4
4
|
export declare function calculatePatternSummary(chains: FixChain[]): {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spirals.d.ts","sourceRoot":"","sources":["../../src/metrics/spirals.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAU,MAAM,
|
|
1
|
+
{"version":3,"file":"spirals.d.ts","sourceRoot":"","sources":["../../src/metrics/spirals.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAU,MAAM,aAAa,CAAC;AAcrE,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,QAAQ,EAAE,CAyC7D;AA8CD,wBAAgB,4BAA4B,CAAC,MAAM,EAAE,QAAQ,EAAE,GAAG,YAAY,CAsB7E;AAwBD,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,QAAQ,EAAE,GAAG;IAC3D,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,eAAe,EAAE,MAAM,CAAC;CACzB,CAoBA"}
|
package/dist/metrics/spirals.js
CHANGED
|
@@ -1,9 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.detectFixChains = detectFixChains;
|
|
4
|
-
exports.calculateDebugSpiralDuration = calculateDebugSpiralDuration;
|
|
5
|
-
exports.calculatePatternSummary = calculatePatternSummary;
|
|
6
|
-
const date_fns_1 = require("date-fns");
|
|
1
|
+
import { differenceInMinutes } from 'date-fns';
|
|
7
2
|
const SPIRAL_THRESHOLD = 3; // 3+ consecutive fixes = spiral
|
|
8
3
|
// Pattern detection regexes
|
|
9
4
|
const PATTERNS = {
|
|
@@ -14,7 +9,7 @@ const PATTERNS = {
|
|
|
14
9
|
IMAGE_REGISTRY: /image|pull|registry|docker|tag/i,
|
|
15
10
|
GITOPS_DRIFT: /drift|sync|argocd|reconcil|outof/i,
|
|
16
11
|
};
|
|
17
|
-
function detectFixChains(commits) {
|
|
12
|
+
export function detectFixChains(commits) {
|
|
18
13
|
if (commits.length === 0)
|
|
19
14
|
return [];
|
|
20
15
|
// Sort by date ascending
|
|
@@ -68,7 +63,7 @@ function getComponent(commit) {
|
|
|
68
63
|
function createFixChain(commits, component) {
|
|
69
64
|
const firstCommit = commits[0].date;
|
|
70
65
|
const lastCommit = commits[commits.length - 1].date;
|
|
71
|
-
const duration =
|
|
66
|
+
const duration = differenceInMinutes(lastCommit, firstCommit);
|
|
72
67
|
// Detect pattern from commit messages
|
|
73
68
|
const allMessages = commits.map((c) => c.message).join(' ');
|
|
74
69
|
const pattern = detectPattern(allMessages);
|
|
@@ -90,7 +85,7 @@ function detectPattern(text) {
|
|
|
90
85
|
}
|
|
91
86
|
return null;
|
|
92
87
|
}
|
|
93
|
-
function calculateDebugSpiralDuration(chains) {
|
|
88
|
+
export function calculateDebugSpiralDuration(chains) {
|
|
94
89
|
const spirals = chains.filter((c) => c.isSpiral);
|
|
95
90
|
if (spirals.length === 0) {
|
|
96
91
|
return {
|
|
@@ -132,7 +127,7 @@ function getDescription(rating, spiralCount) {
|
|
|
132
127
|
return `${spiralText}, extended debugging. Use tracer tests before implementation`;
|
|
133
128
|
}
|
|
134
129
|
}
|
|
135
|
-
function calculatePatternSummary(chains) {
|
|
130
|
+
export function calculatePatternSummary(chains) {
|
|
136
131
|
const categories = {};
|
|
137
132
|
let total = 0;
|
|
138
133
|
let withTracer = 0;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spirals.js","sourceRoot":"","sources":["../../src/metrics/spirals.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"spirals.js","sourceRoot":"","sources":["../../src/metrics/spirals.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"time-spiral.d.ts","sourceRoot":"","sources":["../../src/metrics/time-spiral.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAU,MAAM,
|
|
1
|
+
{"version":3,"file":"time-spiral.d.ts","sourceRoot":"","sources":["../../src/metrics/time-spiral.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAU,MAAM,aAAa,CAAC;AAe/D;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,gBAAgB,CAiCvE"}
|
|
@@ -1,6 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.calculateTimeSpiral = calculateTimeSpiral;
|
|
4
1
|
/**
|
|
5
2
|
* Spiral threshold: commits < 5 minutes apart suggest frustrated iteration.
|
|
6
3
|
*
|
|
@@ -18,7 +15,7 @@ const SPIRAL_THRESHOLD_MS = 5 * 60 * 1000;
|
|
|
18
15
|
* Commits <5 minutes apart indicate frustrated rapid iteration.
|
|
19
16
|
* Works WITHOUT semantic commits.
|
|
20
17
|
*/
|
|
21
|
-
function calculateTimeSpiral(commits) {
|
|
18
|
+
export function calculateTimeSpiral(commits) {
|
|
22
19
|
if (commits.length < 2) {
|
|
23
20
|
return {
|
|
24
21
|
value: 100,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"time-spiral.js","sourceRoot":"","sources":["../../src/metrics/time-spiral.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"time-spiral.js","sourceRoot":"","sources":["../../src/metrics/time-spiral.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;GAUG;AACH,MAAM,mBAAmB,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC;AAE1C;;;;GAIG;AACH,MAAM,UAAU,mBAAmB,CAAC,OAAiB;IACnD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,OAAO;YACL,KAAK,EAAE,GAAG;YACV,IAAI,EAAE,GAAG;YACT,MAAM,EAAE,OAAO;YACf,WAAW,EAAE,mCAAmC;YAChD,aAAa,EAAE,CAAC;YAChB,YAAY,EAAE,OAAO,CAAC,MAAM;SAC7B,CAAC;IACJ,CAAC;IAED,MAAM,MAAM,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;IAChF,IAAI,aAAa,GAAG,CAAC,CAAC;IAEtB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACvC,MAAM,GAAG,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;QACpE,IAAI,GAAG,GAAG,mBAAmB,EAAE,CAAC;YAC9B,aAAa,EAAE,CAAC;QAClB,CAAC;IACH,CAAC;IAED,MAAM,WAAW,GAAG,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC;IACnD,MAAM,KAAK,GAAG,CAAC,GAAG,WAAW,CAAC,CAAC,qCAAqC;IAEpE,OAAO;QACL,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,CAAC;QAC9B,IAAI,EAAE,GAAG;QACT,MAAM,EAAE,eAAe,CAAC,WAAW,CAAC;QACpC,WAAW,EAAE,oBAAoB,CAAC,WAAW,EAAE,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC;QAC7E,aAAa;QACb,YAAY,EAAE,OAAO,CAAC,MAAM;KAC7B,CAAC;AACJ,CAAC;AAED,SAAS,eAAe,CAAC,WAAmB;IAC1C,IAAI,WAAW,GAAG,IAAI;QAAE,OAAO,OAAO,CAAC;IACvC,IAAI,WAAW,GAAG,IAAI;QAAE,OAAO,MAAM,CAAC;IACtC,IAAI,WAAW,GAAG,IAAI;QAAE,OAAO,QAAQ,CAAC;IACxC,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,oBAAoB,CAAC,KAAa,EAAE,MAAc,EAAE,KAAa;IACxE,IAAI,KAAK,GAAG,IAAI;QAAE,OAAO,UAAU,MAAM,IAAI,KAAK,uBAAuB,CAAC;IAC1E,IAAI,KAAK,GAAG,IAAI;QAAE,OAAO,SAAS,MAAM,IAAI,KAAK,yBAAyB,CAAC;IAC3E,IAAI,KAAK,GAAG,IAAI;QAAE,OAAO,WAAW,MAAM,IAAI,KAAK,yBAAyB,CAAC;IAC7E,OAAO,QAAQ,MAAM,IAAI,KAAK,8CAA8C,CAAC;AAC/E,CAAC"}
|
package/dist/metrics/trust.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"trust.d.ts","sourceRoot":"","sources":["../../src/metrics/trust.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,YAAY,EAAU,MAAM,
|
|
1
|
+
{"version":3,"file":"trust.d.ts","sourceRoot":"","sources":["../../src/metrics/trust.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,YAAY,EAAU,MAAM,aAAa,CAAC;AAI3D,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,YAAY,CAwCtE"}
|
package/dist/metrics/trust.js
CHANGED
|
@@ -1,9 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.calculateTrustPassRate = calculateTrustPassRate;
|
|
4
|
-
const date_fns_1 = require("date-fns");
|
|
1
|
+
import { differenceInMinutes } from 'date-fns';
|
|
5
2
|
const FOLLOWUP_WINDOW_MINUTES = 30;
|
|
6
|
-
function calculateTrustPassRate(commits) {
|
|
3
|
+
export function calculateTrustPassRate(commits) {
|
|
7
4
|
if (commits.length === 0) {
|
|
8
5
|
return {
|
|
9
6
|
value: 100,
|
|
@@ -22,7 +19,7 @@ function calculateTrustPassRate(commits) {
|
|
|
22
19
|
const needsFollowup = nextCommit &&
|
|
23
20
|
nextCommit.type === 'fix' &&
|
|
24
21
|
sameComponent(commit, nextCommit) &&
|
|
25
|
-
|
|
22
|
+
differenceInMinutes(nextCommit.date, commit.date) < FOLLOWUP_WINDOW_MINUTES;
|
|
26
23
|
if (!needsFollowup) {
|
|
27
24
|
trustedCommits++;
|
|
28
25
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"trust.js","sourceRoot":"","sources":["../../src/metrics/trust.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"trust.js","sourceRoot":"","sources":["../../src/metrics/trust.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"velocity-anomaly.d.ts","sourceRoot":"","sources":["../../src/metrics/velocity-anomaly.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,qBAAqB,EAAU,MAAM,
|
|
1
|
+
{"version":3,"file":"velocity-anomaly.d.ts","sourceRoot":"","sources":["../../src/metrics/velocity-anomaly.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,qBAAqB,EAAU,MAAM,aAAa,CAAC;AAGpE,UAAU,QAAQ;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,MAAM,EAAE,EACjB,QAAQ,CAAC,EAAE,QAAQ,GAClB,qBAAqB,CAwCvB"}
|
|
@@ -1,14 +1,11 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.calculateVelocityAnomaly = calculateVelocityAnomaly;
|
|
4
|
-
const velocity_1 = require("./velocity");
|
|
1
|
+
import { calculateActiveHours } from './velocity.js';
|
|
5
2
|
/**
|
|
6
3
|
* Calculate velocity anomaly score.
|
|
7
4
|
* Measures how far current velocity is from personal baseline.
|
|
8
5
|
* Works WITHOUT semantic commits.
|
|
9
6
|
*/
|
|
10
|
-
function calculateVelocityAnomaly(commits, baseline) {
|
|
11
|
-
const activeHours =
|
|
7
|
+
export function calculateVelocityAnomaly(commits, baseline) {
|
|
8
|
+
const activeHours = calculateActiveHours(commits);
|
|
12
9
|
const currentVelocity = activeHours > 0 ? commits.length / activeHours : 0;
|
|
13
10
|
/**
|
|
14
11
|
* Default baseline when no historical data exists.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"velocity-anomaly.js","sourceRoot":"","sources":["../../src/metrics/velocity-anomaly.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"velocity-anomaly.js","sourceRoot":"","sources":["../../src/metrics/velocity-anomaly.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAOrD;;;;GAIG;AACH,MAAM,UAAU,wBAAwB,CACtC,OAAiB,EACjB,QAAmB;IAEnB,MAAM,WAAW,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAC;IAClD,MAAM,eAAe,GAAG,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;IAE3E;;;;;;;;;;;OAWG;IACH,MAAM,eAAe,GAAa;QAChC,IAAI,EAAE,GAAG;QACT,MAAM,EAAE,GAAG;KACZ,CAAC;IACF,MAAM,IAAI,GAAG,QAAQ,IAAI,eAAe,CAAC;IAEzC,gDAAgD;IAChD,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC;QAC5B,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM;QACrD,CAAC,CAAC,CAAC,CAAC;IAEN,uDAAuD;IACvD,MAAM,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC;IAE/C,OAAO;QACL,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,CAAC;QAC9B,IAAI,EAAE,GAAG;QACT,MAAM,EAAE,gBAAgB,CAAC,MAAM,CAAC;QAChC,WAAW,EAAE,qBAAqB,CAAC,MAAM,EAAE,eAAe,EAAE,IAAI,CAAC;QACjE,eAAe,EAAE,IAAI,CAAC,KAAK,CAAC,eAAe,GAAG,EAAE,CAAC,GAAG,EAAE;QACtD,YAAY,EAAE,IAAI,CAAC,IAAI;QACvB,cAAc,EAAE,IAAI,CAAC,MAAM;QAC3B,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG;KACvC,CAAC;AACJ,CAAC;AAED,SAAS,gBAAgB,CAAC,MAAc;IACtC,IAAI,MAAM,GAAG,GAAG;QAAE,OAAO,OAAO,CAAC;IACjC,IAAI,MAAM,GAAG,GAAG;QAAE,OAAO,MAAM,CAAC;IAChC,IAAI,MAAM,GAAG,GAAG;QAAE,OAAO,QAAQ,CAAC;IAClC,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,qBAAqB,CAAC,MAAc,EAAE,QAAgB,EAAE,IAAc;IAC7E,MAAM,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IACnC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAErC,IAAI,MAAM,GAAG,GAAG;QAAE,OAAO,UAAU,MAAM,sBAAsB,OAAO,MAAM,CAAC;IAC7E,IAAI,MAAM,GAAG,GAAG;QAAE,OAAO,SAAS,MAAM,QAAQ,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,kBAAkB,CAAC;IACpF,IAAI,MAAM,GAAG,GAAG;QAAE,OAAO,WAAW,MAAM,QAAQ,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,kBAAkB,CAAC;IACtF,OAAO,QAAQ,MAAM,QAAQ,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,oCAAoC,CAAC;AACrF,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Commit, MetricResult } from '../types';
|
|
1
|
+
import { Commit, MetricResult } from '../types.js';
|
|
2
2
|
export declare function calculateIterationVelocity(commits: Commit[]): MetricResult;
|
|
3
3
|
export declare function calculateActiveHours(commits: Commit[]): number;
|
|
4
4
|
//# sourceMappingURL=velocity.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"velocity.d.ts","sourceRoot":"","sources":["../../src/metrics/velocity.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,YAAY,EAAU,MAAM,
|
|
1
|
+
{"version":3,"file":"velocity.d.ts","sourceRoot":"","sources":["../../src/metrics/velocity.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,YAAY,EAAU,MAAM,aAAa,CAAC;AAI3D,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,YAAY,CA8B1E;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,MAAM,CA4B9D"}
|
package/dist/metrics/velocity.js
CHANGED
|
@@ -1,10 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.calculateIterationVelocity = calculateIterationVelocity;
|
|
4
|
-
exports.calculateActiveHours = calculateActiveHours;
|
|
5
|
-
const date_fns_1 = require("date-fns");
|
|
1
|
+
import { differenceInMinutes } from 'date-fns';
|
|
6
2
|
const SESSION_GAP_MINUTES = 120; // 2 hours = new session
|
|
7
|
-
function calculateIterationVelocity(commits) {
|
|
3
|
+
export function calculateIterationVelocity(commits) {
|
|
8
4
|
if (commits.length === 0) {
|
|
9
5
|
return {
|
|
10
6
|
value: 0,
|
|
@@ -31,7 +27,7 @@ function calculateIterationVelocity(commits) {
|
|
|
31
27
|
description: getDescription(rating),
|
|
32
28
|
};
|
|
33
29
|
}
|
|
34
|
-
function calculateActiveHours(commits) {
|
|
30
|
+
export function calculateActiveHours(commits) {
|
|
35
31
|
if (commits.length < 2) {
|
|
36
32
|
return 0.1; // Minimum to avoid division by zero
|
|
37
33
|
}
|
|
@@ -40,15 +36,15 @@ function calculateActiveHours(commits) {
|
|
|
40
36
|
let totalMinutes = 0;
|
|
41
37
|
let sessionStart = sorted[0].date;
|
|
42
38
|
for (let i = 1; i < sorted.length; i++) {
|
|
43
|
-
const gap =
|
|
39
|
+
const gap = differenceInMinutes(sorted[i].date, sorted[i - 1].date);
|
|
44
40
|
if (gap > SESSION_GAP_MINUTES) {
|
|
45
41
|
// End current session, start new one
|
|
46
|
-
totalMinutes +=
|
|
42
|
+
totalMinutes += differenceInMinutes(sorted[i - 1].date, sessionStart);
|
|
47
43
|
sessionStart = sorted[i].date;
|
|
48
44
|
}
|
|
49
45
|
}
|
|
50
46
|
// Add final session
|
|
51
|
-
totalMinutes +=
|
|
47
|
+
totalMinutes += differenceInMinutes(sorted[sorted.length - 1].date, sessionStart);
|
|
52
48
|
// Minimum of 10 minutes per session to account for work between commits
|
|
53
49
|
const minMinutes = Math.max(totalMinutes, commits.length * 10);
|
|
54
50
|
return minMinutes / 60;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"velocity.js","sourceRoot":"","sources":["../../src/metrics/velocity.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"velocity.js","sourceRoot":"","sources":["../../src/metrics/velocity.ts"],"names":[],"mappings":"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"}
|