@boshu2/vibe-check 1.8.1 → 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/Makefile +4 -4
- 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.js +88 -129
- 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.js +54 -60
- 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 +2 -2
- package/dist/inner-loop/context-amnesia.d.ts.map +1 -1
- package/dist/inner-loop/context-amnesia.js +7 -10
- package/dist/inner-loop/context-amnesia.js.map +1 -1
- package/dist/inner-loop/index.d.ts +7 -7
- package/dist/inner-loop/index.d.ts.map +1 -1
- package/dist/inner-loop/index.js +18 -45
- package/dist/inner-loop/index.js.map +1 -1
- package/dist/inner-loop/instruction-drift.d.ts +2 -2
- package/dist/inner-loop/instruction-drift.d.ts.map +1 -1
- package/dist/inner-loop/instruction-drift.js +5 -10
- package/dist/inner-loop/instruction-drift.js.map +1 -1
- package/dist/inner-loop/logging-only.d.ts +2 -2
- package/dist/inner-loop/logging-only.d.ts.map +1 -1
- package/dist/inner-loop/logging-only.js +9 -17
- package/dist/inner-loop/logging-only.js.map +1 -1
- package/dist/inner-loop/tests-passing-lie.d.ts +2 -2
- package/dist/inner-loop/tests-passing-lie.d.ts.map +1 -1
- package/dist/inner-loop/tests-passing-lie.js +12 -17
- package/dist/inner-loop/tests-passing-lie.js.map +1 -1
- package/dist/inner-loop/types.js +1 -4
- package/dist/inner-loop/types.js.map +1 -1
- 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/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,188 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* Pattern Memory - Track your spiral triggers over time
|
|
4
|
-
*
|
|
5
|
-
* This module stores and aggregates spiral pattern data to help users
|
|
6
|
-
* identify their most common debugging pitfalls.
|
|
7
|
-
*/
|
|
8
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
-
exports.createInitialPatternMemory = createInitialPatternMemory;
|
|
10
|
-
exports.updatePatternMemory = updatePatternMemory;
|
|
11
|
-
exports.getPatternDisplayName = getPatternDisplayName;
|
|
12
|
-
exports.getPatternAdvice = getPatternAdvice;
|
|
13
|
-
exports.formatPatternMemory = formatPatternMemory;
|
|
14
|
-
const MAX_RECORDS = 100;
|
|
15
|
-
const PATTERN_MEMORY_VERSION = '1.0.0';
|
|
16
|
-
/**
|
|
17
|
-
* Create initial empty pattern memory
|
|
18
|
-
*/
|
|
19
|
-
function createInitialPatternMemory() {
|
|
20
|
-
return {
|
|
21
|
-
version: PATTERN_MEMORY_VERSION,
|
|
22
|
-
records: [],
|
|
23
|
-
patternCounts: {},
|
|
24
|
-
componentCounts: {},
|
|
25
|
-
patternDurations: {},
|
|
26
|
-
topPatterns: [],
|
|
27
|
-
topComponents: [],
|
|
28
|
-
avgRecoveryTime: 0,
|
|
29
|
-
totalSpirals: 0,
|
|
30
|
-
};
|
|
31
|
-
}
|
|
32
|
-
/**
|
|
33
|
-
* Add spiral records from fix chains and recompute aggregates
|
|
34
|
-
*/
|
|
35
|
-
function updatePatternMemory(memory, fixChains) {
|
|
36
|
-
const current = memory || createInitialPatternMemory();
|
|
37
|
-
// Filter to only spirals (3+ consecutive fixes)
|
|
38
|
-
const spirals = fixChains.filter((chain) => chain.isSpiral);
|
|
39
|
-
if (spirals.length === 0) {
|
|
40
|
-
return current;
|
|
41
|
-
}
|
|
42
|
-
// Create new records from fix chains
|
|
43
|
-
const today = new Date().toISOString().split('T')[0];
|
|
44
|
-
const newRecords = spirals.map((chain) => ({
|
|
45
|
-
pattern: chain.pattern || 'OTHER',
|
|
46
|
-
component: chain.component,
|
|
47
|
-
duration: chain.duration,
|
|
48
|
-
commits: chain.commits,
|
|
49
|
-
date: today,
|
|
50
|
-
}));
|
|
51
|
-
// Merge with existing records (keep last MAX_RECORDS)
|
|
52
|
-
const allRecords = [...current.records, ...newRecords];
|
|
53
|
-
const trimmedRecords = allRecords.slice(-MAX_RECORDS);
|
|
54
|
-
// Recompute all aggregates from records
|
|
55
|
-
return computeAggregates({
|
|
56
|
-
...current,
|
|
57
|
-
records: trimmedRecords,
|
|
58
|
-
});
|
|
59
|
-
}
|
|
60
|
-
/**
|
|
61
|
-
* Compute all aggregate statistics from records
|
|
62
|
-
*/
|
|
63
|
-
function computeAggregates(memory) {
|
|
64
|
-
const records = memory.records;
|
|
65
|
-
if (records.length === 0) {
|
|
66
|
-
return createInitialPatternMemory();
|
|
67
|
-
}
|
|
68
|
-
// Count patterns
|
|
69
|
-
const patternCounts = {};
|
|
70
|
-
const componentCounts = {};
|
|
71
|
-
const patternDurations = {};
|
|
72
|
-
let totalDuration = 0;
|
|
73
|
-
for (const record of records) {
|
|
74
|
-
// Pattern counts
|
|
75
|
-
patternCounts[record.pattern] = (patternCounts[record.pattern] || 0) + 1;
|
|
76
|
-
// Component counts
|
|
77
|
-
componentCounts[record.component] =
|
|
78
|
-
(componentCounts[record.component] || 0) + 1;
|
|
79
|
-
// Pattern durations
|
|
80
|
-
patternDurations[record.pattern] =
|
|
81
|
-
(patternDurations[record.pattern] || 0) + record.duration;
|
|
82
|
-
totalDuration += record.duration;
|
|
83
|
-
}
|
|
84
|
-
// Get top 3 patterns by frequency
|
|
85
|
-
const topPatterns = Object.entries(patternCounts)
|
|
86
|
-
.sort((a, b) => b[1] - a[1])
|
|
87
|
-
.slice(0, 3)
|
|
88
|
-
.map(([pattern]) => pattern);
|
|
89
|
-
// Get top 3 components by frequency
|
|
90
|
-
const topComponents = Object.entries(componentCounts)
|
|
91
|
-
.sort((a, b) => b[1] - a[1])
|
|
92
|
-
.slice(0, 3)
|
|
93
|
-
.map(([component]) => component);
|
|
94
|
-
// Average recovery time
|
|
95
|
-
const avgRecoveryTime = records.length > 0 ? Math.round(totalDuration / records.length) : 0;
|
|
96
|
-
return {
|
|
97
|
-
version: PATTERN_MEMORY_VERSION,
|
|
98
|
-
records,
|
|
99
|
-
patternCounts,
|
|
100
|
-
componentCounts,
|
|
101
|
-
patternDurations,
|
|
102
|
-
topPatterns,
|
|
103
|
-
topComponents,
|
|
104
|
-
avgRecoveryTime,
|
|
105
|
-
totalSpirals: records.length,
|
|
106
|
-
};
|
|
107
|
-
}
|
|
108
|
-
/**
|
|
109
|
-
* Get human-readable pattern name
|
|
110
|
-
*/
|
|
111
|
-
function getPatternDisplayName(pattern) {
|
|
112
|
-
const names = {
|
|
113
|
-
SECRETS_AUTH: 'Secrets & Auth',
|
|
114
|
-
VOLUME_CONFIG: 'Volume Config',
|
|
115
|
-
API_MISMATCH: 'API Mismatch',
|
|
116
|
-
SSL_TLS: 'SSL/TLS',
|
|
117
|
-
IMAGE_REGISTRY: 'Image/Registry',
|
|
118
|
-
GITOPS_DRIFT: 'GitOps Drift',
|
|
119
|
-
OTHER: 'Other',
|
|
120
|
-
};
|
|
121
|
-
return names[pattern] || pattern;
|
|
122
|
-
}
|
|
123
|
-
/**
|
|
124
|
-
* Get pattern-specific advice
|
|
125
|
-
*/
|
|
126
|
-
function getPatternAdvice(pattern) {
|
|
127
|
-
const advice = {
|
|
128
|
-
SECRETS_AUTH: 'Consider using a secrets manager or validating auth configs before deploy',
|
|
129
|
-
VOLUME_CONFIG: 'Add volume mount tests to your CI pipeline and validate paths early',
|
|
130
|
-
API_MISMATCH: 'Use schema validation and version checks before integration',
|
|
131
|
-
SSL_TLS: 'Test certificate chains in staging and automate renewal checks',
|
|
132
|
-
IMAGE_REGISTRY: 'Verify image tags exist before deploy, consider digest-based pulls',
|
|
133
|
-
GITOPS_DRIFT: 'Run drift detection in CI and enforce reconciliation timeouts',
|
|
134
|
-
OTHER: 'Consider adding pre-deployment validation for this component',
|
|
135
|
-
};
|
|
136
|
-
return advice[pattern] || advice.OTHER;
|
|
137
|
-
}
|
|
138
|
-
/**
|
|
139
|
-
* Format pattern memory for display
|
|
140
|
-
*/
|
|
141
|
-
function formatPatternMemory(memory) {
|
|
142
|
-
if (!memory || memory.records.length === 0) {
|
|
143
|
-
return {
|
|
144
|
-
hasData: false,
|
|
145
|
-
summary: 'No spiral patterns recorded yet',
|
|
146
|
-
topPatterns: [],
|
|
147
|
-
topComponents: [],
|
|
148
|
-
avgRecoveryTime: 0,
|
|
149
|
-
totalSpirals: 0,
|
|
150
|
-
};
|
|
151
|
-
}
|
|
152
|
-
const topPatterns = memory.topPatterns.map((pattern) => ({
|
|
153
|
-
pattern,
|
|
154
|
-
displayName: getPatternDisplayName(pattern),
|
|
155
|
-
count: memory.patternCounts[pattern] || 0,
|
|
156
|
-
totalMinutes: memory.patternDurations[pattern] || 0,
|
|
157
|
-
advice: getPatternAdvice(pattern),
|
|
158
|
-
}));
|
|
159
|
-
const topComponents = memory.topComponents.map((component) => ({
|
|
160
|
-
component,
|
|
161
|
-
count: memory.componentCounts[component] || 0,
|
|
162
|
-
}));
|
|
163
|
-
// Generate summary
|
|
164
|
-
let summary;
|
|
165
|
-
if (memory.totalSpirals === 1) {
|
|
166
|
-
summary = '1 spiral recorded';
|
|
167
|
-
}
|
|
168
|
-
else if (memory.totalSpirals < 5) {
|
|
169
|
-
summary = `${memory.totalSpirals} spirals recorded`;
|
|
170
|
-
}
|
|
171
|
-
else if (topPatterns.length > 0) {
|
|
172
|
-
const topPattern = topPatterns[0];
|
|
173
|
-
const pct = Math.round((topPattern.count / memory.totalSpirals) * 100);
|
|
174
|
-
summary = `${memory.totalSpirals} spirals total - ${topPattern.displayName} is your top trigger (${pct}%)`;
|
|
175
|
-
}
|
|
176
|
-
else {
|
|
177
|
-
summary = `${memory.totalSpirals} spirals recorded`;
|
|
178
|
-
}
|
|
179
|
-
return {
|
|
180
|
-
hasData: true,
|
|
181
|
-
summary,
|
|
182
|
-
topPatterns,
|
|
183
|
-
topComponents,
|
|
184
|
-
avgRecoveryTime: memory.avgRecoveryTime,
|
|
185
|
-
totalSpirals: memory.totalSpirals,
|
|
186
|
-
};
|
|
187
|
-
}
|
|
188
|
-
//# sourceMappingURL=pattern-memory.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"pattern-memory.js","sourceRoot":"","sources":["../../src/gamification/pattern-memory.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
import { UserProfile } from './types';
|
|
2
|
-
export interface ShareableProfile {
|
|
3
|
-
username?: string;
|
|
4
|
-
level: number;
|
|
5
|
-
levelName: string;
|
|
6
|
-
totalXP: number;
|
|
7
|
-
badge: string | null;
|
|
8
|
-
streak: number;
|
|
9
|
-
longestStreak: number;
|
|
10
|
-
totalSessions: number;
|
|
11
|
-
avgScore: number;
|
|
12
|
-
bestScore: number;
|
|
13
|
-
achievementCount: number;
|
|
14
|
-
prestigeTier?: number;
|
|
15
|
-
generatedAt: string;
|
|
16
|
-
}
|
|
17
|
-
/**
|
|
18
|
-
* Create shareable profile data
|
|
19
|
-
*/
|
|
20
|
-
export declare function createShareableProfile(profile: UserProfile, username?: string): ShareableProfile;
|
|
21
|
-
/**
|
|
22
|
-
* Format profile for sharing (text format)
|
|
23
|
-
*/
|
|
24
|
-
export declare function formatShareText(shareable: ShareableProfile): string;
|
|
25
|
-
/**
|
|
26
|
-
* Format profile as JSON for clipboard
|
|
27
|
-
*/
|
|
28
|
-
export declare function formatShareJSON(shareable: ShareableProfile): string;
|
|
29
|
-
//# sourceMappingURL=share.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"share.d.ts","sourceRoot":"","sources":["../../src/gamification/share.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAkB,MAAM,SAAS,CAAC;AAGtD,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,EAAE,MAAM,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,WAAW,EACpB,QAAQ,CAAC,EAAE,MAAM,GAChB,gBAAgB,CAsBlB;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,SAAS,EAAE,gBAAgB,GAAG,MAAM,CAqBnE;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,SAAS,EAAE,gBAAgB,GAAG,MAAM,CAEnE"}
|
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.createShareableProfile = createShareableProfile;
|
|
4
|
-
exports.formatShareText = formatShareText;
|
|
5
|
-
exports.formatShareJSON = formatShareJSON;
|
|
6
|
-
const types_1 = require("./types");
|
|
7
|
-
const badges_1 = require("./badges");
|
|
8
|
-
/**
|
|
9
|
-
* Create shareable profile data
|
|
10
|
-
*/
|
|
11
|
-
function createShareableProfile(profile, username) {
|
|
12
|
-
const badge = (0, badges_1.getCurrentBadge)(profile.stats.totalSessions, profile.streak.longest, profile.xp.total);
|
|
13
|
-
return {
|
|
14
|
-
username,
|
|
15
|
-
level: profile.xp.level,
|
|
16
|
-
levelName: profile.xp.levelName,
|
|
17
|
-
totalXP: profile.xp.total,
|
|
18
|
-
badge: badge?.name || null,
|
|
19
|
-
streak: profile.streak.current,
|
|
20
|
-
longestStreak: profile.streak.longest,
|
|
21
|
-
totalSessions: profile.stats.totalSessions,
|
|
22
|
-
avgScore: profile.stats.avgVibeScore,
|
|
23
|
-
bestScore: profile.stats.bestVibeScore,
|
|
24
|
-
achievementCount: profile.achievements.length,
|
|
25
|
-
prestigeTier: profile.xp.prestigeTier,
|
|
26
|
-
generatedAt: new Date().toISOString(),
|
|
27
|
-
};
|
|
28
|
-
}
|
|
29
|
-
/**
|
|
30
|
-
* Format profile for sharing (text format)
|
|
31
|
-
*/
|
|
32
|
-
function formatShareText(shareable) {
|
|
33
|
-
const lines = [];
|
|
34
|
-
const name = shareable.username || 'Anonymous Coder';
|
|
35
|
-
const badgeStr = shareable.badge ? ` ${shareable.badge}` : '';
|
|
36
|
-
const prestigeStr = shareable.prestigeTier
|
|
37
|
-
? ` (${types_1.PRESTIGE_TIERS[shareable.prestigeTier - 1].name})`
|
|
38
|
-
: '';
|
|
39
|
-
lines.push(`🎮 ${name}'s Vibe-Check Profile`);
|
|
40
|
-
lines.push('');
|
|
41
|
-
lines.push(`Level ${shareable.level} ${shareable.levelName}${prestigeStr}${badgeStr}`);
|
|
42
|
-
lines.push(`${shareable.totalXP.toLocaleString()} Total XP`);
|
|
43
|
-
lines.push('');
|
|
44
|
-
lines.push(`🔥 ${shareable.streak}-day streak (Best: ${shareable.longestStreak})`);
|
|
45
|
-
lines.push(`📊 ${shareable.totalSessions} sessions | Avg: ${shareable.avgScore}% | Best: ${shareable.bestScore}%`);
|
|
46
|
-
lines.push(`🏆 ${shareable.achievementCount} achievements unlocked`);
|
|
47
|
-
lines.push('');
|
|
48
|
-
lines.push('Track your coding vibes: npx @boshu2/vibe-check');
|
|
49
|
-
return lines.join('\n');
|
|
50
|
-
}
|
|
51
|
-
/**
|
|
52
|
-
* Format profile as JSON for clipboard
|
|
53
|
-
*/
|
|
54
|
-
function formatShareJSON(shareable) {
|
|
55
|
-
return JSON.stringify(shareable, null, 2);
|
|
56
|
-
}
|
|
57
|
-
//# sourceMappingURL=share.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"share.js","sourceRoot":"","sources":["../../src/gamification/share.ts"],"names":[],"mappings":";;AAsBA,wDAyBC;AAKD,0CAqBC;AAKD,0CAEC;AAhFD,mCAAsD;AACtD,qCAA2C;AAkB3C;;GAEG;AACH,SAAgB,sBAAsB,CACpC,OAAoB,EACpB,QAAiB;IAEjB,MAAM,KAAK,GAAG,IAAA,wBAAe,EAC3B,OAAO,CAAC,KAAK,CAAC,aAAa,EAC3B,OAAO,CAAC,MAAM,CAAC,OAAO,EACtB,OAAO,CAAC,EAAE,CAAC,KAAK,CACjB,CAAC;IAEF,OAAO;QACL,QAAQ;QACR,KAAK,EAAE,OAAO,CAAC,EAAE,CAAC,KAAK;QACvB,SAAS,EAAE,OAAO,CAAC,EAAE,CAAC,SAAS;QAC/B,OAAO,EAAE,OAAO,CAAC,EAAE,CAAC,KAAK;QACzB,KAAK,EAAE,KAAK,EAAE,IAAI,IAAI,IAAI;QAC1B,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,OAAO;QAC9B,aAAa,EAAE,OAAO,CAAC,MAAM,CAAC,OAAO;QACrC,aAAa,EAAE,OAAO,CAAC,KAAK,CAAC,aAAa;QAC1C,QAAQ,EAAE,OAAO,CAAC,KAAK,CAAC,YAAY;QACpC,SAAS,EAAE,OAAO,CAAC,KAAK,CAAC,aAAa;QACtC,gBAAgB,EAAE,OAAO,CAAC,YAAY,CAAC,MAAM;QAC7C,YAAY,EAAE,OAAO,CAAC,EAAE,CAAC,YAAY;QACrC,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;KACtC,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,SAAgB,eAAe,CAAC,SAA2B;IACzD,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,MAAM,IAAI,GAAG,SAAS,CAAC,QAAQ,IAAI,iBAAiB,CAAC;IACrD,MAAM,QAAQ,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAC9D,MAAM,WAAW,GAAG,SAAS,CAAC,YAAY;QACxC,CAAC,CAAC,KAAK,sBAAc,CAAC,SAAS,CAAC,YAAY,GAAG,CAAC,CAAC,CAAC,IAAI,GAAG;QACzD,CAAC,CAAC,EAAE,CAAC;IAEP,KAAK,CAAC,IAAI,CAAC,MAAM,IAAI,uBAAuB,CAAC,CAAC;IAC9C,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,SAAS,SAAS,CAAC,KAAK,IAAI,SAAS,CAAC,SAAS,GAAG,WAAW,GAAG,QAAQ,EAAE,CAAC,CAAC;IACvF,KAAK,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,OAAO,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;IAC7D,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,MAAM,SAAS,CAAC,MAAM,sBAAsB,SAAS,CAAC,aAAa,GAAG,CAAC,CAAC;IACnF,KAAK,CAAC,IAAI,CAAC,MAAM,SAAS,CAAC,aAAa,oBAAoB,SAAS,CAAC,QAAQ,aAAa,SAAS,CAAC,SAAS,GAAG,CAAC,CAAC;IACnH,KAAK,CAAC,IAAI,CAAC,MAAM,SAAS,CAAC,gBAAgB,wBAAwB,CAAC,CAAC;IACrE,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACf,KAAK,CAAC,IAAI,CAAC,iDAAiD,CAAC,CAAC;IAE9D,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED;;GAEG;AACH,SAAgB,eAAe,CAAC,SAA2B;IACzD,OAAO,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AAC5C,CAAC"}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Learning Cadence Scheduler
|
|
3
|
-
*
|
|
4
|
-
* Checks time-based and event-based triggers to generate nudges
|
|
5
|
-
* and determine when retrospectives are due.
|
|
6
|
-
*/
|
|
7
|
-
import { CadenceResult } from './types';
|
|
8
|
-
import { PatternMemory } from '../gamification/types';
|
|
9
|
-
/**
|
|
10
|
-
* Run learning cadence check after a session
|
|
11
|
-
*
|
|
12
|
-
* Called from recordSession() to check all triggers and generate nudges.
|
|
13
|
-
*/
|
|
14
|
-
export declare function runLearningCadence(patternMemory: PatternMemory | undefined, streakCurrent: number, xpToNextLevel: number, totalXp: number): CadenceResult;
|
|
15
|
-
//# sourceMappingURL=cadence.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cadence.d.ts","sourceRoot":"","sources":["../../src/learning/cadence.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAEL,aAAa,EAKd,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAGtD;;;;GAIG;AACH,wBAAgB,kBAAkB,CAChC,aAAa,EAAE,aAAa,GAAG,SAAS,EACxC,aAAa,EAAE,MAAM,EACrB,aAAa,EAAE,MAAM,EACrB,OAAO,EAAE,MAAM,GACd,aAAa,CA8Ef"}
|
package/dist/learning/cadence.js
DELETED
|
@@ -1,130 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* Learning Cadence Scheduler
|
|
4
|
-
*
|
|
5
|
-
* Checks time-based and event-based triggers to generate nudges
|
|
6
|
-
* and determine when retrospectives are due.
|
|
7
|
-
*/
|
|
8
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
-
exports.runLearningCadence = runLearningCadence;
|
|
10
|
-
const types_1 = require("./types");
|
|
11
|
-
const storage_1 = require("./storage");
|
|
12
|
-
const pattern_memory_1 = require("../gamification/pattern-memory");
|
|
13
|
-
/**
|
|
14
|
-
* Run learning cadence check after a session
|
|
15
|
-
*
|
|
16
|
-
* Called from recordSession() to check all triggers and generate nudges.
|
|
17
|
-
*/
|
|
18
|
-
function runLearningCadence(patternMemory, streakCurrent, xpToNextLevel, totalXp) {
|
|
19
|
-
const state = (0, storage_1.loadLearningState)();
|
|
20
|
-
const today = new Date().toISOString().split('T')[0];
|
|
21
|
-
let updatedState = { ...state };
|
|
22
|
-
// 1. Check daily trigger (first session of day)
|
|
23
|
-
if (state.lastDailyCheck !== today) {
|
|
24
|
-
updatedState.lastDailyCheck = today;
|
|
25
|
-
// Could add daily summary nudge here if desired
|
|
26
|
-
}
|
|
27
|
-
// 2. Check weekly retro trigger
|
|
28
|
-
const daysSinceRetro = getDaysSince(state.lastWeeklyRetro);
|
|
29
|
-
if (daysSinceRetro >= types_1.RETRO_CADENCE_DAYS) {
|
|
30
|
-
updatedState.retroDue = true;
|
|
31
|
-
updatedState.retroDueReason = `${daysSinceRetro} days since last retrospective`;
|
|
32
|
-
}
|
|
33
|
-
// 3. Check pattern repeat threshold
|
|
34
|
-
const repeatedPattern = getRepeatedPattern(patternMemory);
|
|
35
|
-
if (repeatedPattern) {
|
|
36
|
-
const displayName = (0, pattern_memory_1.getPatternDisplayName)(repeatedPattern.pattern);
|
|
37
|
-
updatedState = (0, storage_1.addNudge)(updatedState, {
|
|
38
|
-
type: 'pattern',
|
|
39
|
-
icon: '⚠️',
|
|
40
|
-
title: `${displayName} Pattern Detected`,
|
|
41
|
-
message: `${displayName} caused ${repeatedPattern.count} spirals this week (${repeatedPattern.totalMinutes} min)`,
|
|
42
|
-
action: 'Try a tracer test to validate assumptions',
|
|
43
|
-
priority: 8,
|
|
44
|
-
});
|
|
45
|
-
}
|
|
46
|
-
// 4. Check achievement proximity (within 20% of next level)
|
|
47
|
-
const xpProgress = xpToNextLevel > 0 ? (totalXp % xpToNextLevel) / xpToNextLevel : 0;
|
|
48
|
-
if (xpProgress >= 0.8) {
|
|
49
|
-
const xpNeeded = Math.round(xpToNextLevel * (1 - xpProgress));
|
|
50
|
-
updatedState = (0, storage_1.addNudge)(updatedState, {
|
|
51
|
-
type: 'achievement',
|
|
52
|
-
icon: '📈',
|
|
53
|
-
title: 'Level Up Soon!',
|
|
54
|
-
message: `Only ${xpNeeded} XP to your next level`,
|
|
55
|
-
priority: 5,
|
|
56
|
-
});
|
|
57
|
-
}
|
|
58
|
-
// 5. Check streak milestone proximity
|
|
59
|
-
if (streakCurrent > 0 && streakCurrent % 7 === 6) {
|
|
60
|
-
updatedState = (0, storage_1.addNudge)(updatedState, {
|
|
61
|
-
type: 'achievement',
|
|
62
|
-
icon: '🔥',
|
|
63
|
-
title: 'Streak Milestone Tomorrow!',
|
|
64
|
-
message: `One more day for a ${streakCurrent + 1}-day streak`,
|
|
65
|
-
priority: 6,
|
|
66
|
-
});
|
|
67
|
-
}
|
|
68
|
-
// 6. Add retro nudge if due
|
|
69
|
-
if (updatedState.retroDue) {
|
|
70
|
-
updatedState = (0, storage_1.addNudge)(updatedState, {
|
|
71
|
-
type: 'retro',
|
|
72
|
-
icon: '📅',
|
|
73
|
-
title: 'Weekly Retro Due',
|
|
74
|
-
message: updatedState.retroDueReason,
|
|
75
|
-
action: 'Run `vibe-check learn --retro` to review your week',
|
|
76
|
-
priority: 7,
|
|
77
|
-
});
|
|
78
|
-
}
|
|
79
|
-
// Save updated state
|
|
80
|
-
(0, storage_1.saveLearningState)(updatedState);
|
|
81
|
-
return {
|
|
82
|
-
nudges: updatedState.pendingNudges.filter(n => !n.dismissed),
|
|
83
|
-
retroDue: updatedState.retroDue,
|
|
84
|
-
retroDueReason: updatedState.retroDueReason,
|
|
85
|
-
learningState: updatedState,
|
|
86
|
-
};
|
|
87
|
-
}
|
|
88
|
-
/**
|
|
89
|
-
* Get days since a date string
|
|
90
|
-
*/
|
|
91
|
-
function getDaysSince(dateStr) {
|
|
92
|
-
if (!dateStr)
|
|
93
|
-
return types_1.RETRO_CADENCE_DAYS + 1; // Force retro if no date
|
|
94
|
-
const date = new Date(dateStr);
|
|
95
|
-
const now = new Date();
|
|
96
|
-
return Math.floor((now.getTime() - date.getTime()) / (1000 * 60 * 60 * 24));
|
|
97
|
-
}
|
|
98
|
-
/**
|
|
99
|
-
* Check if any pattern has repeated >= threshold times in the window
|
|
100
|
-
*/
|
|
101
|
-
function getRepeatedPattern(patternMemory) {
|
|
102
|
-
if (!patternMemory || patternMemory.records.length === 0) {
|
|
103
|
-
return null;
|
|
104
|
-
}
|
|
105
|
-
const cutoff = new Date();
|
|
106
|
-
cutoff.setDate(cutoff.getDate() - types_1.PATTERN_WINDOW_DAYS);
|
|
107
|
-
const cutoffStr = cutoff.toISOString().split('T')[0];
|
|
108
|
-
// Count patterns in the window
|
|
109
|
-
const recentRecords = patternMemory.records.filter(r => r.date >= cutoffStr);
|
|
110
|
-
const patternCounts = new Map();
|
|
111
|
-
for (const record of recentRecords) {
|
|
112
|
-
const current = patternCounts.get(record.pattern) || { count: 0, minutes: 0 };
|
|
113
|
-
patternCounts.set(record.pattern, {
|
|
114
|
-
count: current.count + 1,
|
|
115
|
-
minutes: current.minutes + record.duration,
|
|
116
|
-
});
|
|
117
|
-
}
|
|
118
|
-
// Find first pattern exceeding threshold
|
|
119
|
-
for (const [pattern, data] of patternCounts) {
|
|
120
|
-
if (data.count >= types_1.PATTERN_REPEAT_THRESHOLD) {
|
|
121
|
-
return {
|
|
122
|
-
pattern,
|
|
123
|
-
count: data.count,
|
|
124
|
-
totalMinutes: data.minutes,
|
|
125
|
-
};
|
|
126
|
-
}
|
|
127
|
-
}
|
|
128
|
-
return null;
|
|
129
|
-
}
|
|
130
|
-
//# sourceMappingURL=cadence.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cadence.js","sourceRoot":"","sources":["../../src/learning/cadence.ts"],"names":[],"mappings":"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"}
|
package/dist/learning/index.d.ts
DELETED
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Learning System - Automatic learning cadence for vibe-check
|
|
3
|
-
*
|
|
4
|
-
* This module provides:
|
|
5
|
-
* - Cadence-based triggers for learning
|
|
6
|
-
* - Nudge generation and display
|
|
7
|
-
* - Weekly retrospectives
|
|
8
|
-
* - Lessons database with synthesis and surfacing
|
|
9
|
-
*/
|
|
10
|
-
export * from './types';
|
|
11
|
-
export * from './storage';
|
|
12
|
-
export * from './cadence';
|
|
13
|
-
export * from './nudges';
|
|
14
|
-
export * from './retrospective';
|
|
15
|
-
export * from './lessons-types';
|
|
16
|
-
export * from './lessons-storage';
|
|
17
|
-
export * from './synthesis';
|
|
18
|
-
export * from './surfacing';
|
|
19
|
-
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/learning/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,cAAc,SAAS,CAAC;AACxB,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC"}
|
package/dist/learning/index.js
DELETED
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* Learning System - Automatic learning cadence for vibe-check
|
|
4
|
-
*
|
|
5
|
-
* This module provides:
|
|
6
|
-
* - Cadence-based triggers for learning
|
|
7
|
-
* - Nudge generation and display
|
|
8
|
-
* - Weekly retrospectives
|
|
9
|
-
* - Lessons database with synthesis and surfacing
|
|
10
|
-
*/
|
|
11
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
12
|
-
if (k2 === undefined) k2 = k;
|
|
13
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
14
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
15
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
16
|
-
}
|
|
17
|
-
Object.defineProperty(o, k2, desc);
|
|
18
|
-
}) : (function(o, m, k, k2) {
|
|
19
|
-
if (k2 === undefined) k2 = k;
|
|
20
|
-
o[k2] = m[k];
|
|
21
|
-
}));
|
|
22
|
-
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
23
|
-
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
24
|
-
};
|
|
25
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
-
__exportStar(require("./types"), exports);
|
|
27
|
-
__exportStar(require("./storage"), exports);
|
|
28
|
-
__exportStar(require("./cadence"), exports);
|
|
29
|
-
__exportStar(require("./nudges"), exports);
|
|
30
|
-
__exportStar(require("./retrospective"), exports);
|
|
31
|
-
__exportStar(require("./lessons-types"), exports);
|
|
32
|
-
__exportStar(require("./lessons-storage"), exports);
|
|
33
|
-
__exportStar(require("./synthesis"), exports);
|
|
34
|
-
__exportStar(require("./surfacing"), exports);
|
|
35
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/learning/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;;;;;;;;;;;;;;;AAEH,0CAAwB;AACxB,4CAA0B;AAC1B,4CAA0B;AAC1B,2CAAyB;AACzB,kDAAgC;AAChC,kDAAgC;AAChC,oDAAkC;AAClC,8CAA4B;AAC5B,8CAA4B"}
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Lessons Database Storage
|
|
3
|
-
*
|
|
4
|
-
* Persists lessons to ~/.vibe-check/lessons.json (global, not per-repo).
|
|
5
|
-
* Lessons are meant to accumulate across all repositories.
|
|
6
|
-
*/
|
|
7
|
-
import { LessonsDatabase, Lesson } from './lessons-types';
|
|
8
|
-
/**
|
|
9
|
-
* Get lessons database file path (global)
|
|
10
|
-
*/
|
|
11
|
-
export declare function getLessonsPath(): string;
|
|
12
|
-
/**
|
|
13
|
-
* Create initial empty lessons database
|
|
14
|
-
*/
|
|
15
|
-
export declare function createInitialLessonsDatabase(): LessonsDatabase;
|
|
16
|
-
/**
|
|
17
|
-
* Load lessons database from disk
|
|
18
|
-
*/
|
|
19
|
-
export declare function loadLessons(): LessonsDatabase;
|
|
20
|
-
/**
|
|
21
|
-
* Save lessons database to disk
|
|
22
|
-
*/
|
|
23
|
-
export declare function saveLessons(db: LessonsDatabase): void;
|
|
24
|
-
/**
|
|
25
|
-
* Add or update a lesson in the database
|
|
26
|
-
*/
|
|
27
|
-
export declare function upsertLesson(db: LessonsDatabase, lesson: Lesson): LessonsDatabase;
|
|
28
|
-
/**
|
|
29
|
-
* Get lesson by ID
|
|
30
|
-
*/
|
|
31
|
-
export declare function getLessonById(db: LessonsDatabase, id: string): Lesson | undefined;
|
|
32
|
-
/**
|
|
33
|
-
* Get lessons for a pattern
|
|
34
|
-
*/
|
|
35
|
-
export declare function getLessonsForPattern(db: LessonsDatabase, pattern: string): Lesson[];
|
|
36
|
-
/**
|
|
37
|
-
* Get all active (non-dismissed) lessons
|
|
38
|
-
*/
|
|
39
|
-
export declare function getActiveLessons(db: LessonsDatabase): Lesson[];
|
|
40
|
-
/**
|
|
41
|
-
* Dismiss a lesson
|
|
42
|
-
*/
|
|
43
|
-
export declare function dismissLesson(db: LessonsDatabase, lessonId: string): LessonsDatabase;
|
|
44
|
-
/**
|
|
45
|
-
* Mark a lesson as applied with effectiveness score
|
|
46
|
-
*/
|
|
47
|
-
export declare function applyLesson(db: LessonsDatabase, lessonId: string, effectiveness: number): LessonsDatabase;
|
|
48
|
-
//# sourceMappingURL=lessons-storage.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"lessons-storage.d.ts","sourceRoot":"","sources":["../../src/learning/lessons-storage.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,EACL,eAAe,EACf,MAAM,EAGP,MAAM,iBAAiB,CAAC;AAKzB;;GAEG;AACH,wBAAgB,cAAc,IAAI,MAAM,CAEvC;AAED;;GAEG;AACH,wBAAgB,4BAA4B,IAAI,eAAe,CAiB9D;AAED;;GAEG;AACH,wBAAgB,WAAW,IAAI,eAAe,CAc7C;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,EAAE,EAAE,eAAe,GAAG,IAAI,CAqBrD;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,EAAE,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,GAAG,eAAe,CAmBjF;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,EAAE,EAAE,eAAe,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAEjF;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAKnF;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,eAAe,GAAG,MAAM,EAAE,CAE9D;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,EAAE,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,GAAG,eAAe,CAOpF;AAED;;GAEG;AACH,wBAAgB,WAAW,CACzB,EAAE,EAAE,eAAe,EACnB,QAAQ,EAAE,MAAM,EAChB,aAAa,EAAE,MAAM,GACpB,eAAe,CAgBjB"}
|