@slope-dev/slope 1.7.0 → 1.12.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/dist/cli/commands/analyze.d.ts +2 -0
- package/dist/cli/commands/analyze.d.ts.map +1 -0
- package/dist/cli/commands/analyze.js +106 -0
- package/dist/cli/commands/analyze.js.map +1 -0
- package/dist/cli/commands/guard.d.ts.map +1 -1
- package/dist/cli/commands/guard.js +4 -0
- package/dist/cli/commands/guard.js.map +1 -1
- package/dist/cli/commands/init.d.ts.map +1 -1
- package/dist/cli/commands/init.js +82 -3
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/review-state.d.ts +6 -0
- package/dist/cli/commands/review-state.d.ts.map +1 -1
- package/dist/cli/commands/review-state.js +264 -1
- package/dist/cli/commands/review-state.js.map +1 -1
- package/dist/cli/commands/transcript.d.ts +10 -0
- package/dist/cli/commands/transcript.d.ts.map +1 -0
- package/dist/cli/commands/transcript.js +188 -0
- package/dist/cli/commands/transcript.js.map +1 -0
- package/dist/cli/commands/vision.d.ts +2 -0
- package/dist/cli/commands/vision.d.ts.map +1 -0
- package/dist/cli/commands/vision.js +53 -0
- package/dist/cli/commands/vision.js.map +1 -0
- package/dist/cli/guards/next-action.d.ts +4 -0
- package/dist/cli/guards/next-action.d.ts.map +1 -1
- package/dist/cli/guards/next-action.js +35 -0
- package/dist/cli/guards/next-action.js.map +1 -1
- package/dist/cli/guards/pr-review.d.ts +7 -0
- package/dist/cli/guards/pr-review.d.ts.map +1 -0
- package/dist/cli/guards/pr-review.js +34 -0
- package/dist/cli/guards/pr-review.js.map +1 -0
- package/dist/cli/guards/transcript.d.ts +12 -0
- package/dist/cli/guards/transcript.d.ts.map +1 -0
- package/dist/cli/guards/transcript.js +79 -0
- package/dist/cli/guards/transcript.js.map +1 -0
- package/dist/cli/index.js +28 -1
- package/dist/cli/index.js.map +1 -1
- package/dist/core/analyzers/backlog-merged.d.ts +13 -0
- package/dist/core/analyzers/backlog-merged.d.ts.map +1 -0
- package/dist/core/analyzers/backlog-merged.js +16 -0
- package/dist/core/analyzers/backlog-merged.js.map +1 -0
- package/dist/core/analyzers/backlog.d.ts +16 -0
- package/dist/core/analyzers/backlog.d.ts.map +1 -0
- package/dist/core/analyzers/backlog.js +103 -0
- package/dist/core/analyzers/backlog.js.map +1 -0
- package/dist/core/analyzers/ci.d.ts +6 -0
- package/dist/core/analyzers/ci.d.ts.map +1 -0
- package/dist/core/analyzers/ci.js +62 -0
- package/dist/core/analyzers/ci.js.map +1 -0
- package/dist/core/analyzers/complexity.d.ts +21 -0
- package/dist/core/analyzers/complexity.d.ts.map +1 -0
- package/dist/core/analyzers/complexity.js +76 -0
- package/dist/core/analyzers/complexity.js.map +1 -0
- package/dist/core/analyzers/docs.d.ts +6 -0
- package/dist/core/analyzers/docs.d.ts.map +1 -0
- package/dist/core/analyzers/docs.js +54 -0
- package/dist/core/analyzers/docs.js.map +1 -0
- package/dist/core/analyzers/git.d.ts +3 -0
- package/dist/core/analyzers/git.d.ts.map +1 -0
- package/dist/core/analyzers/git.js +88 -0
- package/dist/core/analyzers/git.js.map +1 -0
- package/dist/core/analyzers/github-backlog.d.ts +14 -0
- package/dist/core/analyzers/github-backlog.d.ts.map +1 -0
- package/dist/core/analyzers/github-backlog.js +43 -0
- package/dist/core/analyzers/github-backlog.js.map +1 -0
- package/dist/core/analyzers/index.d.ts +9 -0
- package/dist/core/analyzers/index.d.ts.map +1 -0
- package/dist/core/analyzers/index.js +95 -0
- package/dist/core/analyzers/index.js.map +1 -0
- package/dist/core/analyzers/stack.d.ts +3 -0
- package/dist/core/analyzers/stack.d.ts.map +1 -0
- package/dist/core/analyzers/stack.js +161 -0
- package/dist/core/analyzers/stack.js.map +1 -0
- package/dist/core/analyzers/structure.d.ts +3 -0
- package/dist/core/analyzers/structure.d.ts.map +1 -0
- package/dist/core/analyzers/structure.js +106 -0
- package/dist/core/analyzers/structure.js.map +1 -0
- package/dist/core/analyzers/testing.d.ts +3 -0
- package/dist/core/analyzers/testing.d.ts.map +1 -0
- package/dist/core/analyzers/testing.js +119 -0
- package/dist/core/analyzers/testing.js.map +1 -0
- package/dist/core/analyzers/types.d.ts +83 -0
- package/dist/core/analyzers/types.d.ts.map +1 -0
- package/dist/core/analyzers/types.js +3 -0
- package/dist/core/analyzers/types.js.map +1 -0
- package/dist/core/analyzers/walk.d.ts +11 -0
- package/dist/core/analyzers/walk.d.ts.map +1 -0
- package/dist/core/analyzers/walk.js +33 -0
- package/dist/core/analyzers/walk.js.map +1 -0
- package/dist/core/config.d.ts +3 -0
- package/dist/core/config.d.ts.map +1 -1
- package/dist/core/config.js +3 -0
- package/dist/core/config.js.map +1 -1
- package/dist/core/constants.d.ts +3 -1
- package/dist/core/constants.d.ts.map +1 -1
- package/dist/core/constants.js +8 -0
- package/dist/core/constants.js.map +1 -1
- package/dist/core/dashboard.d.ts.map +1 -1
- package/dist/core/dashboard.js +3 -1
- package/dist/core/dashboard.js.map +1 -1
- package/dist/core/dispersion.d.ts.map +1 -1
- package/dist/core/dispersion.js +6 -4
- package/dist/core/dispersion.js.map +1 -1
- package/dist/core/generators/common-issues.d.ts +9 -0
- package/dist/core/generators/common-issues.d.ts.map +1 -0
- package/dist/core/generators/common-issues.js +71 -0
- package/dist/core/generators/common-issues.js.map +1 -0
- package/dist/core/generators/config.d.ts +14 -0
- package/dist/core/generators/config.d.ts.map +1 -0
- package/dist/core/generators/config.js +45 -0
- package/dist/core/generators/config.js.map +1 -0
- package/dist/core/generators/first-sprint.d.ts +28 -0
- package/dist/core/generators/first-sprint.d.ts.map +1 -0
- package/dist/core/generators/first-sprint.js +71 -0
- package/dist/core/generators/first-sprint.js.map +1 -0
- package/dist/core/generators/roadmap.d.ts +14 -0
- package/dist/core/generators/roadmap.d.ts.map +1 -0
- package/dist/core/generators/roadmap.js +228 -0
- package/dist/core/generators/roadmap.js.map +1 -0
- package/dist/core/github.d.ts +31 -0
- package/dist/core/github.d.ts.map +1 -1
- package/dist/core/github.js +59 -0
- package/dist/core/github.js.map +1 -1
- package/dist/core/guard.d.ts +1 -1
- package/dist/core/guard.d.ts.map +1 -1
- package/dist/core/guard.js +14 -0
- package/dist/core/guard.js.map +1 -1
- package/dist/core/index.d.ts +25 -3
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +22 -1
- package/dist/core/index.js.map +1 -1
- package/dist/core/report.d.ts.map +1 -1
- package/dist/core/report.js +6 -4
- package/dist/core/report.js.map +1 -1
- package/dist/core/review.d.ts +41 -0
- package/dist/core/review.d.ts.map +1 -0
- package/dist/core/review.js +142 -0
- package/dist/core/review.js.map +1 -0
- package/dist/core/transcript.d.ts +23 -0
- package/dist/core/transcript.d.ts.map +1 -0
- package/dist/core/transcript.js +64 -0
- package/dist/core/transcript.js.map +1 -0
- package/dist/core/types.d.ts +40 -0
- package/dist/core/types.d.ts.map +1 -1
- package/dist/core/vision.d.ts +5 -0
- package/dist/core/vision.d.ts.map +1 -0
- package/dist/core/vision.js +58 -0
- package/dist/core/vision.js.map +1 -0
- package/dist/mcp/registry.d.ts +1 -1
- package/dist/mcp/registry.d.ts.map +1 -1
- package/dist/mcp/registry.js +170 -0
- package/dist/mcp/registry.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
import { REVIEW_TYPE_HAZARD_MAP } from './constants.js';
|
|
2
|
+
import { buildScorecard } from './builder.js';
|
|
3
|
+
const SECURITY_PATTERNS = /\b(auth|crypto|token|secret|password|credential|session|oauth|jwt|certificate|ssl|tls)\b/i;
|
|
4
|
+
const ML_PATTERNS = /\b(ml|ai|model|neural|train|inference|embedding|llm|prompt|vector|tensor)\b/i;
|
|
5
|
+
const UX_PATTERNS = /\b(ui|ux|component|view|page|layout|style|css|theme|widget|modal|dialog|form|button)\b/i;
|
|
6
|
+
/**
|
|
7
|
+
* Recommend which review types to run based on sprint characteristics.
|
|
8
|
+
* Pure function — no side effects, easy to test.
|
|
9
|
+
*/
|
|
10
|
+
export function recommendReviews(input) {
|
|
11
|
+
const recommendations = [];
|
|
12
|
+
const patterns = input.filePatterns ?? [];
|
|
13
|
+
// Architect review: required for complex sprints
|
|
14
|
+
if (input.ticketCount >= 3 || input.slope >= 3 || input.hasNewInfra) {
|
|
15
|
+
recommendations.push({
|
|
16
|
+
review_type: 'architect',
|
|
17
|
+
reason: input.hasNewInfra
|
|
18
|
+
? 'New infrastructure requires architectural review'
|
|
19
|
+
: input.ticketCount >= 3
|
|
20
|
+
? `${input.ticketCount} tickets warrants architectural review`
|
|
21
|
+
: `Slope ${input.slope} indicates high complexity`,
|
|
22
|
+
priority: 'required',
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
else if (input.ticketCount >= 2) {
|
|
26
|
+
recommendations.push({
|
|
27
|
+
review_type: 'architect',
|
|
28
|
+
reason: `${input.ticketCount} tickets — architectural review recommended`,
|
|
29
|
+
priority: 'recommended',
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
// Security review: if file patterns include auth/crypto/token paths
|
|
33
|
+
if (patterns.some(p => SECURITY_PATTERNS.test(p))) {
|
|
34
|
+
recommendations.push({
|
|
35
|
+
review_type: 'security',
|
|
36
|
+
reason: 'File patterns include security-sensitive paths',
|
|
37
|
+
priority: 'required',
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
// ML engineer review: if file patterns include ML/AI paths or sprint type is research
|
|
41
|
+
if (patterns.some(p => ML_PATTERNS.test(p)) || input.sprintType === 'research') {
|
|
42
|
+
recommendations.push({
|
|
43
|
+
review_type: 'ml-engineer',
|
|
44
|
+
reason: input.sprintType === 'research'
|
|
45
|
+
? 'Research sprint benefits from ML engineer review'
|
|
46
|
+
: 'File patterns include ML/AI paths',
|
|
47
|
+
priority: 'recommended',
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
// UX review: if file patterns include UI/component paths
|
|
51
|
+
if (patterns.some(p => UX_PATTERNS.test(p))) {
|
|
52
|
+
recommendations.push({
|
|
53
|
+
review_type: 'ux',
|
|
54
|
+
reason: 'File patterns include UI/UX paths',
|
|
55
|
+
priority: 'recommended',
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
// Code review: always optional baseline
|
|
59
|
+
recommendations.push({
|
|
60
|
+
review_type: 'code',
|
|
61
|
+
reason: 'Baseline code review',
|
|
62
|
+
priority: 'optional',
|
|
63
|
+
});
|
|
64
|
+
return recommendations;
|
|
65
|
+
}
|
|
66
|
+
// --- Finding → Hazard Conversion ---
|
|
67
|
+
/**
|
|
68
|
+
* Convert a ReviewFinding into a HazardHit using the review type → hazard type mapping.
|
|
69
|
+
* Sets gotcha_id to `review:<review_type>` for deduplication and tracking.
|
|
70
|
+
*/
|
|
71
|
+
export function findingToHazard(finding) {
|
|
72
|
+
return {
|
|
73
|
+
type: REVIEW_TYPE_HAZARD_MAP[finding.review_type],
|
|
74
|
+
severity: finding.severity,
|
|
75
|
+
description: `[${finding.review_type} review] ${finding.description}`,
|
|
76
|
+
gotcha_id: `review:${finding.review_type}`,
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Amend a scorecard with review findings by injecting hazards into shots.
|
|
81
|
+
* Idempotent: findings with `gotcha_id: "review:*"` are deduplicated.
|
|
82
|
+
* Recomputes stats, score, and score_label via buildScorecard().
|
|
83
|
+
*/
|
|
84
|
+
export function amendScorecardWithFindings(scorecard, findings) {
|
|
85
|
+
const scoreBefore = scorecard.score;
|
|
86
|
+
const labelBefore = scorecard.score_label;
|
|
87
|
+
const amendments = [];
|
|
88
|
+
// Deep clone shots to avoid mutating original
|
|
89
|
+
const amendedShots = scorecard.shots.map(shot => ({
|
|
90
|
+
...shot,
|
|
91
|
+
hazards: [...shot.hazards],
|
|
92
|
+
}));
|
|
93
|
+
for (const finding of findings) {
|
|
94
|
+
const shot = amendedShots.find(s => s.ticket_key === finding.ticket_key);
|
|
95
|
+
if (!shot)
|
|
96
|
+
continue;
|
|
97
|
+
const hazard = findingToHazard(finding);
|
|
98
|
+
// Deduplicate: skip if a hazard with the same gotcha_id and description already exists
|
|
99
|
+
const duplicate = shot.hazards.some(h => h.gotcha_id === hazard.gotcha_id && h.description === hazard.description);
|
|
100
|
+
if (duplicate)
|
|
101
|
+
continue;
|
|
102
|
+
shot.hazards.push(hazard);
|
|
103
|
+
amendments.push({
|
|
104
|
+
ticket_key: finding.ticket_key,
|
|
105
|
+
description: finding.description,
|
|
106
|
+
hazard_type: hazard.type,
|
|
107
|
+
severity: finding.severity,
|
|
108
|
+
});
|
|
109
|
+
}
|
|
110
|
+
// Rebuild scorecard with amended shots to recompute stats + score
|
|
111
|
+
const input = {
|
|
112
|
+
sprint_number: scorecard.sprint_number,
|
|
113
|
+
theme: scorecard.theme,
|
|
114
|
+
par: scorecard.par,
|
|
115
|
+
slope: scorecard.slope,
|
|
116
|
+
date: scorecard.date,
|
|
117
|
+
shots: amendedShots,
|
|
118
|
+
putts: scorecard.stats.putts,
|
|
119
|
+
penalties: scorecard.stats.penalties,
|
|
120
|
+
type: scorecard.type,
|
|
121
|
+
conditions: scorecard.conditions,
|
|
122
|
+
special_plays: scorecard.special_plays,
|
|
123
|
+
training: scorecard.training,
|
|
124
|
+
nutrition: scorecard.nutrition,
|
|
125
|
+
nineteenth_hole: scorecard.nineteenth_hole,
|
|
126
|
+
bunker_locations: scorecard.bunker_locations,
|
|
127
|
+
yardage_book_updates: scorecard.yardage_book_updates,
|
|
128
|
+
course_management_notes: scorecard.course_management_notes,
|
|
129
|
+
...(scorecard.player ? { player: scorecard.player } : {}),
|
|
130
|
+
...(scorecard.agents ? { agents: scorecard.agents } : {}),
|
|
131
|
+
};
|
|
132
|
+
const amended = buildScorecard(input);
|
|
133
|
+
return {
|
|
134
|
+
scorecard: amended,
|
|
135
|
+
amendments,
|
|
136
|
+
score_before: scoreBefore,
|
|
137
|
+
score_after: amended.score,
|
|
138
|
+
label_before: labelBefore,
|
|
139
|
+
label_after: amended.score_label,
|
|
140
|
+
};
|
|
141
|
+
}
|
|
142
|
+
//# sourceMappingURL=review.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"review.js","sourceRoot":"","sources":["../../src/core/review.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAe9C,MAAM,iBAAiB,GAAG,2FAA2F,CAAC;AACtH,MAAM,WAAW,GAAG,8EAA8E,CAAC;AACnG,MAAM,WAAW,GAAG,yFAAyF,CAAC;AAE9G;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAA4B;IAC3D,MAAM,eAAe,GAA2B,EAAE,CAAC;IACnD,MAAM,QAAQ,GAAG,KAAK,CAAC,YAAY,IAAI,EAAE,CAAC;IAE1C,iDAAiD;IACjD,IAAI,KAAK,CAAC,WAAW,IAAI,CAAC,IAAI,KAAK,CAAC,KAAK,IAAI,CAAC,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC;QACpE,eAAe,CAAC,IAAI,CAAC;YACnB,WAAW,EAAE,WAAW;YACxB,MAAM,EAAE,KAAK,CAAC,WAAW;gBACvB,CAAC,CAAC,kDAAkD;gBACpD,CAAC,CAAC,KAAK,CAAC,WAAW,IAAI,CAAC;oBACtB,CAAC,CAAC,GAAG,KAAK,CAAC,WAAW,wCAAwC;oBAC9D,CAAC,CAAC,SAAS,KAAK,CAAC,KAAK,4BAA4B;YACtD,QAAQ,EAAE,UAAU;SACrB,CAAC,CAAC;IACL,CAAC;SAAM,IAAI,KAAK,CAAC,WAAW,IAAI,CAAC,EAAE,CAAC;QAClC,eAAe,CAAC,IAAI,CAAC;YACnB,WAAW,EAAE,WAAW;YACxB,MAAM,EAAE,GAAG,KAAK,CAAC,WAAW,6CAA6C;YACzE,QAAQ,EAAE,aAAa;SACxB,CAAC,CAAC;IACL,CAAC;IAED,oEAAoE;IACpE,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAClD,eAAe,CAAC,IAAI,CAAC;YACnB,WAAW,EAAE,UAAU;YACvB,MAAM,EAAE,gDAAgD;YACxD,QAAQ,EAAE,UAAU;SACrB,CAAC,CAAC;IACL,CAAC;IAED,sFAAsF;IACtF,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,UAAU,KAAK,UAAU,EAAE,CAAC;QAC/E,eAAe,CAAC,IAAI,CAAC;YACnB,WAAW,EAAE,aAAa;YAC1B,MAAM,EAAE,KAAK,CAAC,UAAU,KAAK,UAAU;gBACrC,CAAC,CAAC,kDAAkD;gBACpD,CAAC,CAAC,mCAAmC;YACvC,QAAQ,EAAE,aAAa;SACxB,CAAC,CAAC;IACL,CAAC;IAED,yDAAyD;IACzD,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5C,eAAe,CAAC,IAAI,CAAC;YACnB,WAAW,EAAE,IAAI;YACjB,MAAM,EAAE,mCAAmC;YAC3C,QAAQ,EAAE,aAAa;SACxB,CAAC,CAAC;IACL,CAAC;IAED,wCAAwC;IACxC,eAAe,CAAC,IAAI,CAAC;QACnB,WAAW,EAAE,MAAM;QACnB,MAAM,EAAE,sBAAsB;QAC9B,QAAQ,EAAE,UAAU;KACrB,CAAC,CAAC;IAEH,OAAO,eAAe,CAAC;AACzB,CAAC;AAED,sCAAsC;AAEtC;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,OAAsB;IACpD,OAAO;QACL,IAAI,EAAE,sBAAsB,CAAC,OAAO,CAAC,WAAW,CAAC;QACjD,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,WAAW,EAAE,IAAI,OAAO,CAAC,WAAW,YAAY,OAAO,CAAC,WAAW,EAAE;QACrE,SAAS,EAAE,UAAU,OAAO,CAAC,WAAW,EAAE;KAC3C,CAAC;AACJ,CAAC;AAmBD;;;;GAIG;AACH,MAAM,UAAU,0BAA0B,CACxC,SAAwB,EACxB,QAAyB;IAEzB,MAAM,WAAW,GAAG,SAAS,CAAC,KAAK,CAAC;IACpC,MAAM,WAAW,GAAG,SAAS,CAAC,WAAW,CAAC;IAC1C,MAAM,UAAU,GAA8B,EAAE,CAAC;IAEjD,8CAA8C;IAC9C,MAAM,YAAY,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAChD,GAAG,IAAI;QACP,OAAO,EAAE,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC;KAC3B,CAAC,CAAC,CAAC;IAEJ,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC;QACzE,IAAI,CAAC,IAAI;YAAE,SAAS;QAEpB,MAAM,MAAM,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;QAExC,uFAAuF;QACvF,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CACjC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,MAAM,CAAC,SAAS,IAAI,CAAC,CAAC,WAAW,KAAK,MAAM,CAAC,WAAW,CAC9E,CAAC;QACF,IAAI,SAAS;YAAE,SAAS;QAExB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC1B,UAAU,CAAC,IAAI,CAAC;YACd,UAAU,EAAE,OAAO,CAAC,UAAU;YAC9B,WAAW,EAAE,OAAO,CAAC,WAAW;YAChC,WAAW,EAAE,MAAM,CAAC,IAAI;YACxB,QAAQ,EAAE,OAAO,CAAC,QAAQ;SAC3B,CAAC,CAAC;IACL,CAAC;IAED,kEAAkE;IAClE,MAAM,KAAK,GAAmB;QAC5B,aAAa,EAAE,SAAS,CAAC,aAAa;QACtC,KAAK,EAAE,SAAS,CAAC,KAAK;QACtB,GAAG,EAAE,SAAS,CAAC,GAAG;QAClB,KAAK,EAAE,SAAS,CAAC,KAAK;QACtB,IAAI,EAAE,SAAS,CAAC,IAAI;QACpB,KAAK,EAAE,YAAY;QACnB,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,KAAK;QAC5B,SAAS,EAAE,SAAS,CAAC,KAAK,CAAC,SAAS;QACpC,IAAI,EAAE,SAAS,CAAC,IAAI;QACpB,UAAU,EAAE,SAAS,CAAC,UAAU;QAChC,aAAa,EAAE,SAAS,CAAC,aAAa;QACtC,QAAQ,EAAE,SAAS,CAAC,QAAQ;QAC5B,SAAS,EAAE,SAAS,CAAC,SAAS;QAC9B,eAAe,EAAE,SAAS,CAAC,eAAe;QAC1C,gBAAgB,EAAE,SAAS,CAAC,gBAAgB;QAC5C,oBAAoB,EAAE,SAAS,CAAC,oBAAoB;QACpD,uBAAuB,EAAE,SAAS,CAAC,uBAAuB;QAC1D,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QACzD,GAAG,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAC1D,CAAC;IAEF,MAAM,OAAO,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;IAEtC,OAAO;QACL,SAAS,EAAE,OAAO;QAClB,UAAU;QACV,YAAY,EAAE,WAAW;QACzB,WAAW,EAAE,OAAO,CAAC,KAAK;QAC1B,YAAY,EAAE,WAAW;QACzB,WAAW,EAAE,OAAO,CAAC,WAAW;KACjC,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { TranscriptTurn, TranscriptLine } from './types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Resolve the JSONL file path for a session transcript.
|
|
4
|
+
* Creates the transcripts directory if it doesn't exist.
|
|
5
|
+
*/
|
|
6
|
+
export declare function getTranscriptPath(transcriptsDir: string, sessionId: string): string;
|
|
7
|
+
/**
|
|
8
|
+
* Append a single turn to a session transcript (sync, append-only).
|
|
9
|
+
* Creates the file and directory if they don't exist.
|
|
10
|
+
*/
|
|
11
|
+
export declare function appendTurn(transcriptsDir: string, sessionId: string, line: TranscriptLine): void;
|
|
12
|
+
/**
|
|
13
|
+
* Read all turns from a session transcript.
|
|
14
|
+
* Assigns turn_number from line index (1-indexed).
|
|
15
|
+
* Returns empty array if file doesn't exist or is empty.
|
|
16
|
+
*/
|
|
17
|
+
export declare function readTranscript(transcriptsDir: string, sessionId: string): TranscriptTurn[];
|
|
18
|
+
/**
|
|
19
|
+
* List all session IDs that have transcripts.
|
|
20
|
+
* Returns session IDs sorted by file modification time (newest first).
|
|
21
|
+
*/
|
|
22
|
+
export declare function listTranscripts(transcriptsDir: string): string[];
|
|
23
|
+
//# sourceMappingURL=transcript.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transcript.d.ts","sourceRoot":"","sources":["../../src/core/transcript.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjE;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,cAAc,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAKnF;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,cAAc,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,GAAG,IAAI,CAGhG;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,cAAc,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,cAAc,EAAE,CAiB1F;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,cAAc,EAAE,MAAM,GAAG,MAAM,EAAE,CAYhE"}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
// SLOPE — Session Transcript Tracking (JSONL)
|
|
2
|
+
// Metadata-only tool call transcripts: append-only JSONL files per session.
|
|
3
|
+
import { readFileSync, appendFileSync, mkdirSync, readdirSync, existsSync, statSync } from 'node:fs';
|
|
4
|
+
import { join } from 'node:path';
|
|
5
|
+
/**
|
|
6
|
+
* Resolve the JSONL file path for a session transcript.
|
|
7
|
+
* Creates the transcripts directory if it doesn't exist.
|
|
8
|
+
*/
|
|
9
|
+
export function getTranscriptPath(transcriptsDir, sessionId) {
|
|
10
|
+
if (!existsSync(transcriptsDir)) {
|
|
11
|
+
mkdirSync(transcriptsDir, { recursive: true });
|
|
12
|
+
}
|
|
13
|
+
return join(transcriptsDir, `${sessionId}.jsonl`);
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Append a single turn to a session transcript (sync, append-only).
|
|
17
|
+
* Creates the file and directory if they don't exist.
|
|
18
|
+
*/
|
|
19
|
+
export function appendTurn(transcriptsDir, sessionId, line) {
|
|
20
|
+
const filePath = getTranscriptPath(transcriptsDir, sessionId);
|
|
21
|
+
appendFileSync(filePath, JSON.stringify(line) + '\n');
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Read all turns from a session transcript.
|
|
25
|
+
* Assigns turn_number from line index (1-indexed).
|
|
26
|
+
* Returns empty array if file doesn't exist or is empty.
|
|
27
|
+
*/
|
|
28
|
+
export function readTranscript(transcriptsDir, sessionId) {
|
|
29
|
+
const filePath = join(transcriptsDir, `${sessionId}.jsonl`);
|
|
30
|
+
if (!existsSync(filePath))
|
|
31
|
+
return [];
|
|
32
|
+
const content = readFileSync(filePath, 'utf8').trim();
|
|
33
|
+
if (!content)
|
|
34
|
+
return [];
|
|
35
|
+
const turns = [];
|
|
36
|
+
for (const [index, line] of content.split('\n').entries()) {
|
|
37
|
+
try {
|
|
38
|
+
const parsed = JSON.parse(line);
|
|
39
|
+
turns.push({ turn_number: index + 1, ...parsed });
|
|
40
|
+
}
|
|
41
|
+
catch {
|
|
42
|
+
// Skip malformed lines (e.g. truncated append from crash)
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
return turns;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* List all session IDs that have transcripts.
|
|
49
|
+
* Returns session IDs sorted by file modification time (newest first).
|
|
50
|
+
*/
|
|
51
|
+
export function listTranscripts(transcriptsDir) {
|
|
52
|
+
if (!existsSync(transcriptsDir))
|
|
53
|
+
return [];
|
|
54
|
+
const files = readdirSync(transcriptsDir).filter(f => f.endsWith('.jsonl'));
|
|
55
|
+
// Sort by mtime descending (newest first)
|
|
56
|
+
return files
|
|
57
|
+
.map(f => ({
|
|
58
|
+
name: f.replace('.jsonl', ''),
|
|
59
|
+
mtime: statSync(join(transcriptsDir, f)).mtimeMs,
|
|
60
|
+
}))
|
|
61
|
+
.sort((a, b) => b.mtime - a.mtime || a.name.localeCompare(b.name))
|
|
62
|
+
.map(f => f.name);
|
|
63
|
+
}
|
|
64
|
+
//# sourceMappingURL=transcript.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transcript.js","sourceRoot":"","sources":["../../src/core/transcript.ts"],"names":[],"mappings":"AAAA,8CAA8C;AAC9C,4EAA4E;AAE5E,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACrG,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAGjC;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAAC,cAAsB,EAAE,SAAiB;IACzE,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC;QAChC,SAAS,CAAC,cAAc,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACjD,CAAC;IACD,OAAO,IAAI,CAAC,cAAc,EAAE,GAAG,SAAS,QAAQ,CAAC,CAAC;AACpD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,UAAU,CAAC,cAAsB,EAAE,SAAiB,EAAE,IAAoB;IACxF,MAAM,QAAQ,GAAG,iBAAiB,CAAC,cAAc,EAAE,SAAS,CAAC,CAAC;IAC9D,cAAc,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC;AACxD,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAAC,cAAsB,EAAE,SAAiB;IACtE,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,EAAE,GAAG,SAAS,QAAQ,CAAC,CAAC;IAC5D,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;QAAE,OAAO,EAAE,CAAC;IAErC,MAAM,OAAO,GAAG,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;IACtD,IAAI,CAAC,OAAO;QAAE,OAAO,EAAE,CAAC;IAExB,MAAM,KAAK,GAAqB,EAAE,CAAC;IACnC,KAAK,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC;QAC1D,IAAI,CAAC;YACH,MAAM,MAAM,GAAmB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAChD,KAAK,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,KAAK,GAAG,CAAC,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC;QACpD,CAAC;QAAC,MAAM,CAAC;YACP,0DAA0D;QAC5D,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,cAAsB;IACpD,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC;QAAE,OAAO,EAAE,CAAC;IAE3C,MAAM,KAAK,GAAG,WAAW,CAAC,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC5E,0CAA0C;IAC1C,OAAO,KAAK;SACT,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACT,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC;QAC7B,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO;KACjD,CAAC,CAAC;SACF,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;SACjE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;AACtB,CAAC"}
|
package/dist/core/types.d.ts
CHANGED
|
@@ -336,4 +336,44 @@ export interface SlopeEvent {
|
|
|
336
336
|
sprint_number?: number;
|
|
337
337
|
ticket_key?: string;
|
|
338
338
|
}
|
|
339
|
+
/** Types of implementation reviews that can be run on a sprint */
|
|
340
|
+
export type ReviewType = 'architect' | 'code' | 'ml-engineer' | 'security' | 'ux';
|
|
341
|
+
/** A finding from an implementation review */
|
|
342
|
+
export interface ReviewFinding {
|
|
343
|
+
review_type: ReviewType;
|
|
344
|
+
ticket_key: string;
|
|
345
|
+
severity: HazardSeverity;
|
|
346
|
+
description: string;
|
|
347
|
+
resolved: boolean;
|
|
348
|
+
}
|
|
349
|
+
/** A recommendation to run a specific review type */
|
|
350
|
+
export interface ReviewRecommendation {
|
|
351
|
+
review_type: ReviewType;
|
|
352
|
+
reason: string;
|
|
353
|
+
priority: 'required' | 'recommended' | 'optional';
|
|
354
|
+
}
|
|
355
|
+
/** Summary of a single tool call within a turn */
|
|
356
|
+
export interface ToolCallSummary {
|
|
357
|
+
tool: string;
|
|
358
|
+
params_summary: string;
|
|
359
|
+
success: boolean;
|
|
360
|
+
duration_ms?: number;
|
|
361
|
+
}
|
|
362
|
+
/** A single turn in a session transcript */
|
|
363
|
+
export interface TranscriptTurn {
|
|
364
|
+
/** Assigned on read from line index (1-indexed), NOT written to JSONL */
|
|
365
|
+
turn_number: number;
|
|
366
|
+
role: 'user' | 'assistant' | 'tool_result';
|
|
367
|
+
timestamp: string;
|
|
368
|
+
input_tokens?: number;
|
|
369
|
+
output_tokens?: number;
|
|
370
|
+
cache_read_tokens?: number;
|
|
371
|
+
tool_calls?: ToolCallSummary[];
|
|
372
|
+
outcome?: 'success' | 'failure' | 'retry' | 'abandoned';
|
|
373
|
+
outcome_note?: string;
|
|
374
|
+
context_used_pct?: number;
|
|
375
|
+
compacted?: boolean;
|
|
376
|
+
}
|
|
377
|
+
/** What's actually written per JSONL line (turn_number derived on read) */
|
|
378
|
+
export type TranscriptLine = Omit<TranscriptTurn, 'turn_number'>;
|
|
339
379
|
//# sourceMappingURL=types.d.ts.map
|
package/dist/core/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { VisionDocument } from './analyzers/types.js';
|
|
2
|
+
export declare function loadVision(cwd?: string): VisionDocument | null;
|
|
3
|
+
export declare function saveVision(vision: VisionDocument, cwd?: string): void;
|
|
4
|
+
export declare function validateVision(vision: unknown): string[];
|
|
5
|
+
//# sourceMappingURL=vision.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vision.d.ts","sourceRoot":"","sources":["../../src/core/vision.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAI3D,wBAAgB,UAAU,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI,CAS9D;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,cAAc,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAQrE;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,EAAE,CAqCxD"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
// SLOPE — Vision Document: project intent and direction
|
|
2
|
+
import { readFileSync, writeFileSync, mkdirSync, existsSync } from 'node:fs';
|
|
3
|
+
import { join, dirname } from 'node:path';
|
|
4
|
+
const DEFAULT_VISION_PATH = '.slope/vision.json';
|
|
5
|
+
export function loadVision(cwd) {
|
|
6
|
+
const root = cwd ?? process.cwd();
|
|
7
|
+
const filePath = join(root, DEFAULT_VISION_PATH);
|
|
8
|
+
if (!existsSync(filePath))
|
|
9
|
+
return null;
|
|
10
|
+
try {
|
|
11
|
+
return JSON.parse(readFileSync(filePath, 'utf8'));
|
|
12
|
+
}
|
|
13
|
+
catch {
|
|
14
|
+
return null;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
export function saveVision(vision, cwd) {
|
|
18
|
+
const root = cwd ?? process.cwd();
|
|
19
|
+
const filePath = join(root, DEFAULT_VISION_PATH);
|
|
20
|
+
const dir = dirname(filePath);
|
|
21
|
+
if (!existsSync(dir)) {
|
|
22
|
+
mkdirSync(dir, { recursive: true });
|
|
23
|
+
}
|
|
24
|
+
writeFileSync(filePath, JSON.stringify(vision, null, 2) + '\n');
|
|
25
|
+
}
|
|
26
|
+
export function validateVision(vision) {
|
|
27
|
+
const errors = [];
|
|
28
|
+
if (!vision || typeof vision !== 'object') {
|
|
29
|
+
errors.push('Vision must be an object');
|
|
30
|
+
return errors;
|
|
31
|
+
}
|
|
32
|
+
const v = vision;
|
|
33
|
+
if (!v.purpose || typeof v.purpose !== 'string' || v.purpose.trim() === '') {
|
|
34
|
+
errors.push('purpose is required and must be a non-empty string');
|
|
35
|
+
}
|
|
36
|
+
if (!Array.isArray(v.priorities)) {
|
|
37
|
+
errors.push('priorities must be an array');
|
|
38
|
+
}
|
|
39
|
+
else {
|
|
40
|
+
for (let i = 0; i < v.priorities.length; i++) {
|
|
41
|
+
if (typeof v.priorities[i] !== 'string') {
|
|
42
|
+
errors.push(`priorities[${i}] must be a string`);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
if (v.createdAt !== undefined && typeof v.createdAt === 'string') {
|
|
47
|
+
if (isNaN(Date.parse(v.createdAt))) {
|
|
48
|
+
errors.push('createdAt must be a valid ISO date string');
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
if (v.updatedAt !== undefined && typeof v.updatedAt === 'string') {
|
|
52
|
+
if (isNaN(Date.parse(v.updatedAt))) {
|
|
53
|
+
errors.push('updatedAt must be a valid ISO date string');
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
return errors;
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=vision.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vision.js","sourceRoot":"","sources":["../../src/core/vision.ts"],"names":[],"mappings":"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"}
|
package/dist/mcp/registry.d.ts
CHANGED
|
@@ -13,5 +13,5 @@ export declare const SLOPE_REGISTRY: FunctionRegistryEntry[];
|
|
|
13
13
|
* Key TypeScript type definitions for agent reference.
|
|
14
14
|
* Agents call search({ module: 'types' }) to retrieve this.
|
|
15
15
|
*/
|
|
16
|
-
export declare const SLOPE_TYPES = "// \u2500\u2500\u2500 Core Scoring Enums \u2500\u2500\u2500\ntype ClubSelection = 'driver' | 'long_iron' | 'short_iron' | 'wedge' | 'putter';\ntype ShotResult = 'fairway' | 'green' | 'in_the_hole' | 'missed_long' | 'missed_short' | 'missed_left' | 'missed_right';\ntype HazardType = 'bunker' | 'water' | 'ob' | 'rough' | 'trees';\ntype ConditionType = 'wind' | 'rain' | 'frost_delay' | 'altitude' | 'pin_position';\ntype SpecialPlay = 'gimme' | 'mulligan' | 'provisional' | 'lay_up' | 'scramble';\ntype MissDirection = 'long' | 'short' | 'left' | 'right';\ntype ScoreLabel = 'eagle' | 'birdie' | 'par' | 'bogey' | 'double_bogey' | 'triple_plus';\ntype SprintType = 'feature' | 'feedback' | 'infra' | 'bugfix' | 'research' | 'flow' | 'test-coverage' | 'audit';\n\n// \u2500\u2500\u2500 Record Types \u2500\u2500\u2500\ninterface HazardHit { type: HazardType; description: string; gotcha_id?: string; }\ninterface ShotRecord { ticket_key: string; title: string; club: ClubSelection; result: ShotResult; hazards: HazardHit[]; provisional_declared?: boolean; notes?: string; }\ninterface ConditionRecord { type: ConditionType; description: string; impact: 'none' | 'minor' | 'major'; }\n\n// \u2500\u2500\u2500 Scoring Types \u2500\u2500\u2500\ninterface HoleStats { fairways_hit: number; fairways_total: number; greens_in_regulation: number; greens_total: number; putts: number; penalties: number; hazards_hit: number; hazard_penalties: number; miss_directions: Record<MissDirection, number>; }\ninterface HoleScore { sprint_number: number; theme: string; par: 3 | 4 | 5; slope: number; score: number; score_label: ScoreLabel; shots: ShotRecord[]; conditions: ConditionRecord[]; special_plays: SpecialPlay[]; stats: HoleStats; }\n\n// \u2500\u2500\u2500 Full Scorecard \u2500\u2500\u2500\ninterface GolfScorecard extends HoleScore { type?: SprintType; player?: string; date: string; training?: TrainingSession[]; nutrition?: NutritionEntry[]; yardage_book_updates: string[]; bunker_locations: string[]; course_management_notes: string[]; nineteenth_hole?: NineteenthHole; }\n\n// \u2500\u2500\u2500 Handicap \u2500\u2500\u2500\ninterface RollingStats { handicap: number; fairway_pct: number; gir_pct: number; avg_putts: number; penalties_per_round: number; miss_pattern: Record<MissDirection, number>; mulligans: number; gimmes: number; }\ninterface HandicapCard { last_5: RollingStats; last_10: RollingStats; all_time: RollingStats; }\n\n// \u2500\u2500\u2500 Dispersion \u2500\u2500\u2500\ninterface DispersionReport { total_shots: number; total_misses: number; miss_rate_pct: number; by_direction: Record<MissDirection, { count: number; pct: number; interpretation: string }>; dominant_miss: MissDirection | null; systemic_issues: string[]; }\ninterface AreaReport { by_sprint_type: Record<string, { count: number; avg_score_vs_par: number; fairway_pct: number; gir_pct: number }>; by_club: Record<string, { count: number; in_the_hole_rate: number; miss_rate: number }>; par_performance: Record<number, { count: number; avg_score_vs_par: number; over_par_rate: number }>; }\n\n// \u2500\u2500\u2500 Config & Loader \u2500\u2500\u2500\ninterface SlopeConfig { scorecardDir: string; scorecardPattern: string; minSprint: number; commonIssuesPath: string; sessionsPath: string; registry: 'file' | 'api'; claimsPath: string; registryApiUrl?: string; currentSprint?: number; store?: string; store_path?: string; }\n\n// \u2500\u2500\u2500 Store \u2500\u2500\u2500\ninterface SlopeSession { session_id: string; role: 'primary' | 'secondary' | 'observer'; ide: string; worktree_path?: string; branch?: string; started_at: string; last_heartbeat_at: string; metadata?: Record<string, unknown>; agent_role?: string; swarm_id?: string; }\ninterface SprintClaim { id: string; sprint_number: number; player: string; target: string; scope: ClaimScope; claimed_at: string; notes?: string; session_id?: string; expires_at?: string; metadata?: Record<string, unknown>; }\n\n// \u2500\u2500\u2500 Standup \u2500\u2500\u2500\ninterface StandupReport { sessionId: string; agent_role?: string; ticketKey?: string; status: 'working' | 'blocked' | 'complete'; progress: string; blockers: string[]; decisions: string[]; handoffs: HandoffEntry[]; timestamp: string; }\ninterface HandoffEntry { target: string; description: string; for_role?: string; }\n\n// \u2500\u2500\u2500 Roles \u2500\u2500\u2500\ninterface RoleDefinition { id: string; name: string; description: string; focusAreas: string[]; clubPreferences: Partial<Record<string, ClubSelection>>; briefingFilter: { emphasize: string[]; deemphasize: string[] }; }\n\n// \u2500\u2500\u2500 Builder Input \u2500\u2500\u2500\ninterface AgentBreakdown { session_id: string; agent_role: string; shots: ShotRecord[]; score: number; stats: HoleStats; }\ninterface AgentShotInput { session_id: string; agent_role: string; shots: ShotRecord[]; }\ninterface ScorecardInput { sprint_number: number; theme: string; par: 3 | 4 | 5; slope: number; date: string; shots: ShotRecord[]; putts?: number; penalties?: number; type?: SprintType; conditions?: ConditionRecord[]; special_plays?: SpecialPlay[]; training?: TrainingSession[]; nutrition?: NutritionEntry[]; nineteenth_hole?: NineteenthHole; bunker_locations?: string[]; yardage_book_updates?: string[]; course_management_notes?: string[]; agents?: AgentBreakdown[]; }\n\n// \u2500\u2500\u2500 Escalation \u2500\u2500\u2500\ntype EscalationTrigger = 'blocker_timeout' | 'claim_conflict' | 'test_failure_cascade' | 'manual';\ntype EscalationSeverity = 'warning' | 'critical';\ntype EscalationAction = 'log_event' | 'mark_blocked' | 'notify_standup';\ninterface EscalationConfig { blocker_timeout?: number; claim_conflict?: boolean; test_failure_cascade?: number; actions?: EscalationAction[]; }\ninterface EscalationResult { trigger: EscalationTrigger; severity: EscalationSeverity; description: string; session_id?: string; agent_role?: string; actions: EscalationAction[]; }\n\n// \u2500\u2500\u2500 Team Handicap \u2500\u2500\u2500\ninterface RoleHandicap { role: string; sprints_participated: number; total_shots: number; stats: RollingStats; }\ninterface SwarmEfficiency { total_sprints: number; total_agents: number; avg_agents_per_sprint: number; total_shots: number; total_score: number; avg_score_vs_par: number; coordination_events: number; efficiency_ratio: number; }\ninterface RoleCombinationStats { roles: string[]; sprint_count: number; avg_score_vs_par: number; total_hazards: number; }\ninterface TeamHandicapCard { overall: RollingStats; by_role: RoleHandicap[]; swarm_efficiency: SwarmEfficiency; role_combinations: RoleCombinationStats[]; }\n\n// \u2500\u2500\u2500 PR Signals \u2500\u2500\u2500\ntype PRPlatform = 'github' | 'gitlab' | 'bitbucket' | 'unknown';\ntype PRReviewDecision = 'APPROVED' | 'CHANGES_REQUESTED' | 'REVIEW_REQUIRED' | 'COMMENTED' | 'NONE';\ninterface PRSignal { platform: PRPlatform; pr_number: number; review_cycles: number; change_request_count: number; time_to_merge_minutes: number | null; ci_checks_passed: number; ci_checks_failed: number; file_count: number; additions: number; deletions: number; comment_count: number; review_decision: PRReviewDecision; }\n\n// \u2500\u2500\u2500 Advisor \u2500\u2500\u2500\ninterface ExecutionTrace { planned_scope_paths: string[]; modified_files: string[]; test_results: { suite: string; passed: boolean; first_run: boolean }[]; reverts: number; elapsed_minutes: number; hazards_encountered: HazardHit[]; }\ninterface ShotClassification { result: ShotResult; miss_direction: MissDirection | null; confidence: number; reasoning: string; }\ninterface CombinedSignals { trace: ExecutionTrace; ci?: CISignal; pr?: PRSignal; events?: SlopeEvent[]; }\ninterface ClubRecommendation { club: ClubSelection; confidence: number; reasoning: string; provisional_suggestion?: string; }\ninterface TrainingRecommendation { area: string; type: TrainingType; description: string; priority: 'high' | 'medium' | 'low'; instruction_adjustment?: string; }\ninterface RecommendClubInput { ticketComplexity: 'trivial' | 'small' | 'medium' | 'large'; scorecards: GolfScorecard[]; slopeFactors?: string[]; }\ninterface TrainingPlanInput { handicap: HandicapCard; dispersion: DispersionReport; recentScorecards: GolfScorecard[]; }\n\n// \u2500\u2500\u2500 Roadmap \u2500\u2500\u2500\ntype RoadmapClub = 'driver' | 'long_iron' | 'short_iron' | 'wedge' | 'putter';\ninterface RoadmapTicket { key: string; title: string; club: RoadmapClub; complexity: 'trivial' | 'small' | 'standard' | 'moderate'; depends_on?: string[]; }\ninterface RoadmapSprint { id: number; theme: string; par: 3 | 4 | 5; slope: number; type: string; tickets: RoadmapTicket[]; depends_on?: number[]; }\ninterface RoadmapPhase { name: string; sprints: number[]; }\ninterface RoadmapDefinition { name: string; description?: string; phases: RoadmapPhase[]; sprints: RoadmapSprint[]; }\ninterface RoadmapValidationResult { valid: boolean; errors: RoadmapValidationError[]; warnings: RoadmapValidationWarning[]; }\ninterface RoadmapValidationError { type: 'error'; sprint?: number; ticket?: string; message: string; }\ninterface RoadmapValidationWarning { type: 'warning'; sprint?: number; ticket?: string; message: string; }\ninterface CriticalPathResult { path: number[]; length: number; totalPar: number; }\ninterface ParallelGroup { sprints: number[]; reason: string; }\n\n// \u2500\u2500\u2500 Player (Multi-Developer) \u2500\u2500\u2500\ninterface PlayerHandicap { player: string; scorecardCount: number; handicapCard: HandicapCard; }\ninterface LeaderboardEntry { rank: number; player: string; handicap: number; scorecardCount: number; improvementTrend: number; fairwayPct: number; girPct: number; }\ninterface Leaderboard { entries: LeaderboardEntry[]; generatedAt: string; }\n\n// \u2500\u2500\u2500 Flows \u2500\u2500\u2500\ninterface FlowStep { name: string; description: string; file_paths: string[]; notes?: string; }\ninterface FlowDefinition { id: string; title: string; description: string; entry_point: string; steps: FlowStep[]; files: string[]; tags: string[]; last_verified_sha: string; last_verified_at: string; }\ninterface FlowsFile { version: '1'; last_generated: string; flows: FlowDefinition[]; }\n\n// \u2500\u2500\u2500 Briefing \u2500\u2500\u2500\ninterface RecurringPattern { id: number; title: string; category: string; sprints_hit: number[]; gotcha_refs: string[]; description: string; prevention: string; reported_by?: string[]; }\ninterface CommonIssuesFile { recurring_patterns: RecurringPattern[]; }\ninterface SessionEntry { id: number; date: string; sprint: string; summary: string; where_left_off: string; }\ninterface BriefingFilter { categories?: string[]; keywords?: string[]; }\n\n// \u2500\u2500\u2500 Tournament \u2500\u2500\u2500\ninterface TournamentReview { id: string; name: string; dateRange: { start: string; end: string }; sprints: TournamentSprintEntry[]; scoring: TournamentScoring; stats: TournamentStats; hazardIndex: TournamentHazard[]; clubPerformance: Record<string, { attempts: number; inTheHole: number; avgScore: number }>; takeaways: string[]; improvements: string[]; reflection?: string; }\ninterface TournamentSprintEntry { sprintNumber: number; theme: string; par: number; slope: number; score: number; scoreLabel: ScoreLabel; ticketCount: number; ticketsLanded: number; }\ninterface TournamentScoring { totalPar: number; totalScore: number; differential: number; avgScoreLabel: string; bestSprint: { sprintNumber: number; label: ScoreLabel }; worstSprint: { sprintNumber: number; label: ScoreLabel }; sprintCount: number; ticketCount: number; ticketsLanded: number; landingRate: number; }\n";
|
|
16
|
+
export declare const SLOPE_TYPES = "// \u2500\u2500\u2500 Core Scoring Enums \u2500\u2500\u2500\ntype ClubSelection = 'driver' | 'long_iron' | 'short_iron' | 'wedge' | 'putter';\ntype ShotResult = 'fairway' | 'green' | 'in_the_hole' | 'missed_long' | 'missed_short' | 'missed_left' | 'missed_right';\ntype HazardType = 'bunker' | 'water' | 'ob' | 'rough' | 'trees';\ntype ConditionType = 'wind' | 'rain' | 'frost_delay' | 'altitude' | 'pin_position';\ntype SpecialPlay = 'gimme' | 'mulligan' | 'provisional' | 'lay_up' | 'scramble';\ntype MissDirection = 'long' | 'short' | 'left' | 'right';\ntype ScoreLabel = 'eagle' | 'birdie' | 'par' | 'bogey' | 'double_bogey' | 'triple_plus';\ntype SprintType = 'feature' | 'feedback' | 'infra' | 'bugfix' | 'research' | 'flow' | 'test-coverage' | 'audit';\n\n// \u2500\u2500\u2500 Record Types \u2500\u2500\u2500\ninterface HazardHit { type: HazardType; description: string; gotcha_id?: string; }\ninterface ShotRecord { ticket_key: string; title: string; club: ClubSelection; result: ShotResult; hazards: HazardHit[]; provisional_declared?: boolean; notes?: string; }\ninterface ConditionRecord { type: ConditionType; description: string; impact: 'none' | 'minor' | 'major'; }\n\n// \u2500\u2500\u2500 Scoring Types \u2500\u2500\u2500\ninterface HoleStats { fairways_hit: number; fairways_total: number; greens_in_regulation: number; greens_total: number; putts: number; penalties: number; hazards_hit: number; hazard_penalties: number; miss_directions: Record<MissDirection, number>; }\ninterface HoleScore { sprint_number: number; theme: string; par: 3 | 4 | 5; slope: number; score: number; score_label: ScoreLabel; shots: ShotRecord[]; conditions: ConditionRecord[]; special_plays: SpecialPlay[]; stats: HoleStats; }\n\n// \u2500\u2500\u2500 Full Scorecard \u2500\u2500\u2500\ninterface GolfScorecard extends HoleScore { type?: SprintType; player?: string; date: string; training?: TrainingSession[]; nutrition?: NutritionEntry[]; yardage_book_updates: string[]; bunker_locations: string[]; course_management_notes: string[]; nineteenth_hole?: NineteenthHole; }\n\n// \u2500\u2500\u2500 Handicap \u2500\u2500\u2500\ninterface RollingStats { handicap: number; fairway_pct: number; gir_pct: number; avg_putts: number; penalties_per_round: number; miss_pattern: Record<MissDirection, number>; mulligans: number; gimmes: number; }\ninterface HandicapCard { last_5: RollingStats; last_10: RollingStats; all_time: RollingStats; }\n\n// \u2500\u2500\u2500 Dispersion \u2500\u2500\u2500\ninterface DispersionReport { total_shots: number; total_misses: number; miss_rate_pct: number; by_direction: Record<MissDirection, { count: number; pct: number; interpretation: string }>; dominant_miss: MissDirection | null; systemic_issues: string[]; }\ninterface AreaReport { by_sprint_type: Record<string, { count: number; avg_score_vs_par: number; fairway_pct: number; gir_pct: number }>; by_club: Record<string, { count: number; in_the_hole_rate: number; miss_rate: number }>; par_performance: Record<number, { count: number; avg_score_vs_par: number; over_par_rate: number }>; }\n\n// \u2500\u2500\u2500 Config & Loader \u2500\u2500\u2500\ninterface SlopeConfig { scorecardDir: string; scorecardPattern: string; minSprint: number; commonIssuesPath: string; sessionsPath: string; registry: 'file' | 'api'; claimsPath: string; registryApiUrl?: string; currentSprint?: number; store?: string; store_path?: string; }\n\n// \u2500\u2500\u2500 Store \u2500\u2500\u2500\ninterface SlopeSession { session_id: string; role: 'primary' | 'secondary' | 'observer'; ide: string; worktree_path?: string; branch?: string; started_at: string; last_heartbeat_at: string; metadata?: Record<string, unknown>; agent_role?: string; swarm_id?: string; }\ninterface SprintClaim { id: string; sprint_number: number; player: string; target: string; scope: ClaimScope; claimed_at: string; notes?: string; session_id?: string; expires_at?: string; metadata?: Record<string, unknown>; }\n\n// \u2500\u2500\u2500 Standup \u2500\u2500\u2500\ninterface StandupReport { sessionId: string; agent_role?: string; ticketKey?: string; status: 'working' | 'blocked' | 'complete'; progress: string; blockers: string[]; decisions: string[]; handoffs: HandoffEntry[]; timestamp: string; }\ninterface HandoffEntry { target: string; description: string; for_role?: string; }\n\n// \u2500\u2500\u2500 Roles \u2500\u2500\u2500\ninterface RoleDefinition { id: string; name: string; description: string; focusAreas: string[]; clubPreferences: Partial<Record<string, ClubSelection>>; briefingFilter: { emphasize: string[]; deemphasize: string[] }; }\n\n// \u2500\u2500\u2500 Builder Input \u2500\u2500\u2500\ninterface AgentBreakdown { session_id: string; agent_role: string; shots: ShotRecord[]; score: number; stats: HoleStats; }\ninterface AgentShotInput { session_id: string; agent_role: string; shots: ShotRecord[]; }\ninterface ScorecardInput { sprint_number: number; theme: string; par: 3 | 4 | 5; slope: number; date: string; shots: ShotRecord[]; putts?: number; penalties?: number; type?: SprintType; conditions?: ConditionRecord[]; special_plays?: SpecialPlay[]; training?: TrainingSession[]; nutrition?: NutritionEntry[]; nineteenth_hole?: NineteenthHole; bunker_locations?: string[]; yardage_book_updates?: string[]; course_management_notes?: string[]; agents?: AgentBreakdown[]; }\n\n// \u2500\u2500\u2500 Escalation \u2500\u2500\u2500\ntype EscalationTrigger = 'blocker_timeout' | 'claim_conflict' | 'test_failure_cascade' | 'manual';\ntype EscalationSeverity = 'warning' | 'critical';\ntype EscalationAction = 'log_event' | 'mark_blocked' | 'notify_standup';\ninterface EscalationConfig { blocker_timeout?: number; claim_conflict?: boolean; test_failure_cascade?: number; actions?: EscalationAction[]; }\ninterface EscalationResult { trigger: EscalationTrigger; severity: EscalationSeverity; description: string; session_id?: string; agent_role?: string; actions: EscalationAction[]; }\n\n// \u2500\u2500\u2500 Team Handicap \u2500\u2500\u2500\ninterface RoleHandicap { role: string; sprints_participated: number; total_shots: number; stats: RollingStats; }\ninterface SwarmEfficiency { total_sprints: number; total_agents: number; avg_agents_per_sprint: number; total_shots: number; total_score: number; avg_score_vs_par: number; coordination_events: number; efficiency_ratio: number; }\ninterface RoleCombinationStats { roles: string[]; sprint_count: number; avg_score_vs_par: number; total_hazards: number; }\ninterface TeamHandicapCard { overall: RollingStats; by_role: RoleHandicap[]; swarm_efficiency: SwarmEfficiency; role_combinations: RoleCombinationStats[]; }\n\n// \u2500\u2500\u2500 PR Signals \u2500\u2500\u2500\ntype PRPlatform = 'github' | 'gitlab' | 'bitbucket' | 'unknown';\ntype PRReviewDecision = 'APPROVED' | 'CHANGES_REQUESTED' | 'REVIEW_REQUIRED' | 'COMMENTED' | 'NONE';\ninterface PRSignal { platform: PRPlatform; pr_number: number; review_cycles: number; change_request_count: number; time_to_merge_minutes: number | null; ci_checks_passed: number; ci_checks_failed: number; file_count: number; additions: number; deletions: number; comment_count: number; review_decision: PRReviewDecision; }\n\n// \u2500\u2500\u2500 Advisor \u2500\u2500\u2500\ninterface ExecutionTrace { planned_scope_paths: string[]; modified_files: string[]; test_results: { suite: string; passed: boolean; first_run: boolean }[]; reverts: number; elapsed_minutes: number; hazards_encountered: HazardHit[]; }\ninterface ShotClassification { result: ShotResult; miss_direction: MissDirection | null; confidence: number; reasoning: string; }\ninterface CombinedSignals { trace: ExecutionTrace; ci?: CISignal; pr?: PRSignal; events?: SlopeEvent[]; }\ninterface ClubRecommendation { club: ClubSelection; confidence: number; reasoning: string; provisional_suggestion?: string; }\ninterface TrainingRecommendation { area: string; type: TrainingType; description: string; priority: 'high' | 'medium' | 'low'; instruction_adjustment?: string; }\ninterface RecommendClubInput { ticketComplexity: 'trivial' | 'small' | 'medium' | 'large'; scorecards: GolfScorecard[]; slopeFactors?: string[]; }\ninterface TrainingPlanInput { handicap: HandicapCard; dispersion: DispersionReport; recentScorecards: GolfScorecard[]; }\n\n// \u2500\u2500\u2500 Roadmap \u2500\u2500\u2500\ntype RoadmapClub = 'driver' | 'long_iron' | 'short_iron' | 'wedge' | 'putter';\ninterface RoadmapTicket { key: string; title: string; club: RoadmapClub; complexity: 'trivial' | 'small' | 'standard' | 'moderate'; depends_on?: string[]; }\ninterface RoadmapSprint { id: number; theme: string; par: 3 | 4 | 5; slope: number; type: string; tickets: RoadmapTicket[]; depends_on?: number[]; }\ninterface RoadmapPhase { name: string; sprints: number[]; }\ninterface RoadmapDefinition { name: string; description?: string; phases: RoadmapPhase[]; sprints: RoadmapSprint[]; }\ninterface RoadmapValidationResult { valid: boolean; errors: RoadmapValidationError[]; warnings: RoadmapValidationWarning[]; }\ninterface RoadmapValidationError { type: 'error'; sprint?: number; ticket?: string; message: string; }\ninterface RoadmapValidationWarning { type: 'warning'; sprint?: number; ticket?: string; message: string; }\ninterface CriticalPathResult { path: number[]; length: number; totalPar: number; }\ninterface ParallelGroup { sprints: number[]; reason: string; }\n\n// \u2500\u2500\u2500 Player (Multi-Developer) \u2500\u2500\u2500\ninterface PlayerHandicap { player: string; scorecardCount: number; handicapCard: HandicapCard; }\ninterface LeaderboardEntry { rank: number; player: string; handicap: number; scorecardCount: number; improvementTrend: number; fairwayPct: number; girPct: number; }\ninterface Leaderboard { entries: LeaderboardEntry[]; generatedAt: string; }\n\n// \u2500\u2500\u2500 Flows \u2500\u2500\u2500\ninterface FlowStep { name: string; description: string; file_paths: string[]; notes?: string; }\ninterface FlowDefinition { id: string; title: string; description: string; entry_point: string; steps: FlowStep[]; files: string[]; tags: string[]; last_verified_sha: string; last_verified_at: string; }\ninterface FlowsFile { version: '1'; last_generated: string; flows: FlowDefinition[]; }\n\n// \u2500\u2500\u2500 Briefing \u2500\u2500\u2500\ninterface RecurringPattern { id: number; title: string; category: string; sprints_hit: number[]; gotcha_refs: string[]; description: string; prevention: string; reported_by?: string[]; }\ninterface CommonIssuesFile { recurring_patterns: RecurringPattern[]; }\ninterface SessionEntry { id: number; date: string; sprint: string; summary: string; where_left_off: string; }\ninterface BriefingFilter { categories?: string[]; keywords?: string[]; }\n\n// \u2500\u2500\u2500 Tournament \u2500\u2500\u2500\ninterface TournamentReview { id: string; name: string; dateRange: { start: string; end: string }; sprints: TournamentSprintEntry[]; scoring: TournamentScoring; stats: TournamentStats; hazardIndex: TournamentHazard[]; clubPerformance: Record<string, { attempts: number; inTheHole: number; avgScore: number }>; takeaways: string[]; improvements: string[]; reflection?: string; }\ninterface TournamentSprintEntry { sprintNumber: number; theme: string; par: number; slope: number; score: number; scoreLabel: ScoreLabel; ticketCount: number; ticketsLanded: number; }\ninterface TournamentScoring { totalPar: number; totalScore: number; differential: number; avgScoreLabel: string; bestSprint: { sprintNumber: number; label: ScoreLabel }; worstSprint: { sprintNumber: number; label: ScoreLabel }; sprintCount: number; ticketCount: number; ticketsLanded: number; landingRate: number; }\n\n// \u2500\u2500\u2500 Analyzers \u2500\u2500\u2500\ntype AnalyzerName = 'stack' | 'structure' | 'git' | 'testing' | 'ci' | 'docs';\ninterface StackProfile { primaryLanguage: string; languages: Record<string, number>; frameworks: string[]; packageManager?: string; runtime?: string; buildTool?: string; }\ninterface StructureProfile { totalFiles: number; sourceFiles: number; testFiles: number; maxDepth: number; isMonorepo: boolean; modules: Array<{ name: string; path: string; fileCount: number }>; largeFiles: Array<{ path: string; lines: number }>; }\ninterface GitProfile { totalCommits: number; commitsLast90d: number; commitsPerWeek: number; contributors: Array<{ name: string; email: string; commits: number }>; activeBranches: string[]; lastRelease?: { tag: string; date: string }; inferredCadence: 'daily' | 'weekly' | 'biweekly' | 'monthly' | 'sporadic'; }\ninterface TestProfile { framework?: string; testFileCount: number; hasTestScript: boolean; hasCoverage: boolean; testDirs: string[]; }\ninterface CIProfile { system?: 'github-actions' | 'circleci' | 'gitlab-ci' | 'jenkins' | 'travis'; configFiles: string[]; hasTestStage: boolean; hasBuildStage: boolean; hasDeployStage: boolean; }\ninterface DocsProfile { hasReadme: boolean; readmeSummary?: string; hasContributing: boolean; hasChangelog: boolean; hasAdr: boolean; hasApiDocs: boolean; }\ninterface RepoProfile { analyzedAt: string; analyzersRun: AnalyzerName[]; stack: StackProfile; structure: StructureProfile; git: GitProfile; testing: TestProfile; ci: CIProfile; docs: DocsProfile; }\n\n// \u2500\u2500\u2500 Complexity \u2500\u2500\u2500\ninterface ComplexityProfile { estimatedPar: 3 | 4 | 5; estimatedSlope: number; slopeFactors: string[]; riskAreas: Array<{ module: string; reason: string }>; busFactor: Array<{ module: string; topContributor: string; pct: number }>; }\n\n// \u2500\u2500\u2500 Backlog \u2500\u2500\u2500\ninterface TodoEntry { type: 'TODO' | 'FIXME' | 'HACK' | 'XXX'; text: string; file: string; line: number; }\ninterface BacklogAnalysis { todos: TodoEntry[]; todosByModule: Record<string, TodoEntry[]>; changelogUnreleased?: string[]; }\n\n// \u2500\u2500\u2500 GitHub Backlog \u2500\u2500\u2500\ninterface GitHubIssue { number: number; title: string; state: 'open' | 'closed'; labels: string[]; milestone?: { number: number; title: string }; body?: string; createdAt: string; }\ninterface GitHubMilestone { number: number; title: string; description?: string; state: 'open' | 'closed'; openIssues: number; closedIssues: number; dueOn?: string; }\ninterface GitHubBacklogAnalysis { issues: GitHubIssue[]; issuesByLabel: Record<string, GitHubIssue[]>; issuesByMilestone: Record<string, GitHubIssue[]>; highPriority: GitHubIssue[]; milestones: GitHubMilestone[]; }\ninterface MergedBacklog { local: BacklogAnalysis; remote?: GitHubBacklogAnalysis; totalItems: number; }\n\n// \u2500\u2500\u2500 Generators \u2500\u2500\u2500\ninterface GeneratedConfig { projectName: string; metaphor: string; techStack: string[]; sprintCadence: 'weekly' | 'biweekly' | 'monthly'; team: Record<string, string>; }\ninterface GeneratedSprint { roadmap: RoadmapDefinition; sprint: RoadmapSprint; }\n\n// \u2500\u2500\u2500 Vision \u2500\u2500\u2500\ninterface VisionDocument { purpose: string; audience?: string; priorities: string[]; techDirection?: string; nonGoals?: string[]; createdAt: string; updatedAt: string; }\n";
|
|
17
17
|
//# sourceMappingURL=registry.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/mcp/registry.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,WAAW,GAAG,OAAO,GAAG,OAAO,CAAC;IACxD,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,eAAO,MAAM,cAAc,EAAE,qBAAqB,
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/mcp/registry.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,WAAW,GAAG,OAAO,GAAG,OAAO,CAAC;IACxD,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,eAAO,MAAM,cAAc,EAAE,qBAAqB,EAovBjD,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,WAAW,ktdA2IvB,CAAC"}
|