@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.
Files changed (152) hide show
  1. package/dist/cli/commands/analyze.d.ts +2 -0
  2. package/dist/cli/commands/analyze.d.ts.map +1 -0
  3. package/dist/cli/commands/analyze.js +106 -0
  4. package/dist/cli/commands/analyze.js.map +1 -0
  5. package/dist/cli/commands/guard.d.ts.map +1 -1
  6. package/dist/cli/commands/guard.js +4 -0
  7. package/dist/cli/commands/guard.js.map +1 -1
  8. package/dist/cli/commands/init.d.ts.map +1 -1
  9. package/dist/cli/commands/init.js +82 -3
  10. package/dist/cli/commands/init.js.map +1 -1
  11. package/dist/cli/commands/review-state.d.ts +6 -0
  12. package/dist/cli/commands/review-state.d.ts.map +1 -1
  13. package/dist/cli/commands/review-state.js +264 -1
  14. package/dist/cli/commands/review-state.js.map +1 -1
  15. package/dist/cli/commands/transcript.d.ts +10 -0
  16. package/dist/cli/commands/transcript.d.ts.map +1 -0
  17. package/dist/cli/commands/transcript.js +188 -0
  18. package/dist/cli/commands/transcript.js.map +1 -0
  19. package/dist/cli/commands/vision.d.ts +2 -0
  20. package/dist/cli/commands/vision.d.ts.map +1 -0
  21. package/dist/cli/commands/vision.js +53 -0
  22. package/dist/cli/commands/vision.js.map +1 -0
  23. package/dist/cli/guards/next-action.d.ts +4 -0
  24. package/dist/cli/guards/next-action.d.ts.map +1 -1
  25. package/dist/cli/guards/next-action.js +35 -0
  26. package/dist/cli/guards/next-action.js.map +1 -1
  27. package/dist/cli/guards/pr-review.d.ts +7 -0
  28. package/dist/cli/guards/pr-review.d.ts.map +1 -0
  29. package/dist/cli/guards/pr-review.js +34 -0
  30. package/dist/cli/guards/pr-review.js.map +1 -0
  31. package/dist/cli/guards/transcript.d.ts +12 -0
  32. package/dist/cli/guards/transcript.d.ts.map +1 -0
  33. package/dist/cli/guards/transcript.js +79 -0
  34. package/dist/cli/guards/transcript.js.map +1 -0
  35. package/dist/cli/index.js +28 -1
  36. package/dist/cli/index.js.map +1 -1
  37. package/dist/core/analyzers/backlog-merged.d.ts +13 -0
  38. package/dist/core/analyzers/backlog-merged.d.ts.map +1 -0
  39. package/dist/core/analyzers/backlog-merged.js +16 -0
  40. package/dist/core/analyzers/backlog-merged.js.map +1 -0
  41. package/dist/core/analyzers/backlog.d.ts +16 -0
  42. package/dist/core/analyzers/backlog.d.ts.map +1 -0
  43. package/dist/core/analyzers/backlog.js +103 -0
  44. package/dist/core/analyzers/backlog.js.map +1 -0
  45. package/dist/core/analyzers/ci.d.ts +6 -0
  46. package/dist/core/analyzers/ci.d.ts.map +1 -0
  47. package/dist/core/analyzers/ci.js +62 -0
  48. package/dist/core/analyzers/ci.js.map +1 -0
  49. package/dist/core/analyzers/complexity.d.ts +21 -0
  50. package/dist/core/analyzers/complexity.d.ts.map +1 -0
  51. package/dist/core/analyzers/complexity.js +76 -0
  52. package/dist/core/analyzers/complexity.js.map +1 -0
  53. package/dist/core/analyzers/docs.d.ts +6 -0
  54. package/dist/core/analyzers/docs.d.ts.map +1 -0
  55. package/dist/core/analyzers/docs.js +54 -0
  56. package/dist/core/analyzers/docs.js.map +1 -0
  57. package/dist/core/analyzers/git.d.ts +3 -0
  58. package/dist/core/analyzers/git.d.ts.map +1 -0
  59. package/dist/core/analyzers/git.js +88 -0
  60. package/dist/core/analyzers/git.js.map +1 -0
  61. package/dist/core/analyzers/github-backlog.d.ts +14 -0
  62. package/dist/core/analyzers/github-backlog.d.ts.map +1 -0
  63. package/dist/core/analyzers/github-backlog.js +43 -0
  64. package/dist/core/analyzers/github-backlog.js.map +1 -0
  65. package/dist/core/analyzers/index.d.ts +9 -0
  66. package/dist/core/analyzers/index.d.ts.map +1 -0
  67. package/dist/core/analyzers/index.js +95 -0
  68. package/dist/core/analyzers/index.js.map +1 -0
  69. package/dist/core/analyzers/stack.d.ts +3 -0
  70. package/dist/core/analyzers/stack.d.ts.map +1 -0
  71. package/dist/core/analyzers/stack.js +161 -0
  72. package/dist/core/analyzers/stack.js.map +1 -0
  73. package/dist/core/analyzers/structure.d.ts +3 -0
  74. package/dist/core/analyzers/structure.d.ts.map +1 -0
  75. package/dist/core/analyzers/structure.js +106 -0
  76. package/dist/core/analyzers/structure.js.map +1 -0
  77. package/dist/core/analyzers/testing.d.ts +3 -0
  78. package/dist/core/analyzers/testing.d.ts.map +1 -0
  79. package/dist/core/analyzers/testing.js +119 -0
  80. package/dist/core/analyzers/testing.js.map +1 -0
  81. package/dist/core/analyzers/types.d.ts +83 -0
  82. package/dist/core/analyzers/types.d.ts.map +1 -0
  83. package/dist/core/analyzers/types.js +3 -0
  84. package/dist/core/analyzers/types.js.map +1 -0
  85. package/dist/core/analyzers/walk.d.ts +11 -0
  86. package/dist/core/analyzers/walk.d.ts.map +1 -0
  87. package/dist/core/analyzers/walk.js +33 -0
  88. package/dist/core/analyzers/walk.js.map +1 -0
  89. package/dist/core/config.d.ts +3 -0
  90. package/dist/core/config.d.ts.map +1 -1
  91. package/dist/core/config.js +3 -0
  92. package/dist/core/config.js.map +1 -1
  93. package/dist/core/constants.d.ts +3 -1
  94. package/dist/core/constants.d.ts.map +1 -1
  95. package/dist/core/constants.js +8 -0
  96. package/dist/core/constants.js.map +1 -1
  97. package/dist/core/dashboard.d.ts.map +1 -1
  98. package/dist/core/dashboard.js +3 -1
  99. package/dist/core/dashboard.js.map +1 -1
  100. package/dist/core/dispersion.d.ts.map +1 -1
  101. package/dist/core/dispersion.js +6 -4
  102. package/dist/core/dispersion.js.map +1 -1
  103. package/dist/core/generators/common-issues.d.ts +9 -0
  104. package/dist/core/generators/common-issues.d.ts.map +1 -0
  105. package/dist/core/generators/common-issues.js +71 -0
  106. package/dist/core/generators/common-issues.js.map +1 -0
  107. package/dist/core/generators/config.d.ts +14 -0
  108. package/dist/core/generators/config.d.ts.map +1 -0
  109. package/dist/core/generators/config.js +45 -0
  110. package/dist/core/generators/config.js.map +1 -0
  111. package/dist/core/generators/first-sprint.d.ts +28 -0
  112. package/dist/core/generators/first-sprint.d.ts.map +1 -0
  113. package/dist/core/generators/first-sprint.js +71 -0
  114. package/dist/core/generators/first-sprint.js.map +1 -0
  115. package/dist/core/generators/roadmap.d.ts +14 -0
  116. package/dist/core/generators/roadmap.d.ts.map +1 -0
  117. package/dist/core/generators/roadmap.js +228 -0
  118. package/dist/core/generators/roadmap.js.map +1 -0
  119. package/dist/core/github.d.ts +31 -0
  120. package/dist/core/github.d.ts.map +1 -1
  121. package/dist/core/github.js +59 -0
  122. package/dist/core/github.js.map +1 -1
  123. package/dist/core/guard.d.ts +1 -1
  124. package/dist/core/guard.d.ts.map +1 -1
  125. package/dist/core/guard.js +14 -0
  126. package/dist/core/guard.js.map +1 -1
  127. package/dist/core/index.d.ts +25 -3
  128. package/dist/core/index.d.ts.map +1 -1
  129. package/dist/core/index.js +22 -1
  130. package/dist/core/index.js.map +1 -1
  131. package/dist/core/report.d.ts.map +1 -1
  132. package/dist/core/report.js +6 -4
  133. package/dist/core/report.js.map +1 -1
  134. package/dist/core/review.d.ts +41 -0
  135. package/dist/core/review.d.ts.map +1 -0
  136. package/dist/core/review.js +142 -0
  137. package/dist/core/review.js.map +1 -0
  138. package/dist/core/transcript.d.ts +23 -0
  139. package/dist/core/transcript.d.ts.map +1 -0
  140. package/dist/core/transcript.js +64 -0
  141. package/dist/core/transcript.js.map +1 -0
  142. package/dist/core/types.d.ts +40 -0
  143. package/dist/core/types.d.ts.map +1 -1
  144. package/dist/core/vision.d.ts +5 -0
  145. package/dist/core/vision.d.ts.map +1 -0
  146. package/dist/core/vision.js +58 -0
  147. package/dist/core/vision.js.map +1 -0
  148. package/dist/mcp/registry.d.ts +1 -1
  149. package/dist/mcp/registry.d.ts.map +1 -1
  150. package/dist/mcp/registry.js +170 -0
  151. package/dist/mcp/registry.js.map +1 -1
  152. package/package.json +1 -1
@@ -0,0 +1,106 @@
1
+ // SLOPE — Structure Analyzer: file counts, depth, monorepo detection, modules, large files
2
+ import { readFileSync, existsSync } from 'node:fs';
3
+ import { join, extname } from 'node:path';
4
+ import { walkDir } from './walk.js';
5
+ const SOURCE_EXTS = new Set(['.ts', '.tsx', '.js', '.jsx', '.mjs', '.cjs', '.py', '.go', '.rs', '.rb', '.java', '.kt', '.cs', '.cpp', '.c', '.swift', '.php']);
6
+ const TEST_PATTERNS = ['.test.', '.spec.', '_test.', 'test_'];
7
+ const COUNTABLE_EXTS = new Set(['.ts', '.tsx', '.js', '.jsx', '.py', '.go', '.rs', '.rb', '.java', '.kt']);
8
+ const LARGE_FILE_THRESHOLD = 1000;
9
+ function isTestFile(path) {
10
+ return TEST_PATTERNS.some(p => path.includes(p));
11
+ }
12
+ function countLines(filePath) {
13
+ try {
14
+ const content = readFileSync(filePath, 'utf8');
15
+ return content.split('\n').length;
16
+ }
17
+ catch {
18
+ return 0;
19
+ }
20
+ }
21
+ export async function analyzeStructure(cwd) {
22
+ const entries = walkDir(cwd);
23
+ let totalFiles = 0;
24
+ let sourceFiles = 0;
25
+ let testFiles = 0;
26
+ let maxDepth = 0;
27
+ const moduleCounts = {};
28
+ const largeFiles = [];
29
+ for (const entry of entries) {
30
+ if (entry.isDirectory)
31
+ continue;
32
+ totalFiles++;
33
+ if (entry.depth > maxDepth)
34
+ maxDepth = entry.depth;
35
+ const ext = extname(entry.path);
36
+ if (!SOURCE_EXTS.has(ext))
37
+ continue;
38
+ if (isTestFile(entry.path)) {
39
+ testFiles++;
40
+ }
41
+ else {
42
+ sourceFiles++;
43
+ }
44
+ // Check for large files
45
+ if (COUNTABLE_EXTS.has(ext) && !isTestFile(entry.path)) {
46
+ const lines = countLines(entry.fullPath);
47
+ if (lines > LARGE_FILE_THRESHOLD) {
48
+ largeFiles.push({ path: entry.path, lines });
49
+ }
50
+ }
51
+ // Track modules: top-level directories under src/ (or root-level dirs)
52
+ const parts = entry.path.split('/');
53
+ if (parts[0] === 'src' && parts.length > 1) {
54
+ const modName = parts[1];
55
+ const modPath = `src/${modName}`;
56
+ if (!moduleCounts[modName])
57
+ moduleCounts[modName] = { path: modPath, count: 0 };
58
+ moduleCounts[modName].count++;
59
+ }
60
+ }
61
+ // Detect monorepo
62
+ const isMonorepo = detectMonorepo(cwd, entries);
63
+ // Build modules list (dirs with >5 source files)
64
+ const modules = Object.entries(moduleCounts)
65
+ .filter(([, v]) => v.count >= 5)
66
+ .map(([name, v]) => ({ name, path: v.path, fileCount: v.count }))
67
+ .sort((a, b) => b.fileCount - a.fileCount);
68
+ // Sort large files by line count descending
69
+ largeFiles.sort((a, b) => b.lines - a.lines);
70
+ return {
71
+ totalFiles,
72
+ sourceFiles,
73
+ testFiles,
74
+ maxDepth,
75
+ isMonorepo,
76
+ modules,
77
+ largeFiles: largeFiles.slice(0, 10),
78
+ };
79
+ }
80
+ function detectMonorepo(cwd, entries) {
81
+ // Multiple package.json files indicate monorepo
82
+ const packageJsons = entries.filter(e => !e.isDirectory && e.path.endsWith('package.json'));
83
+ if (packageJsons.length > 1)
84
+ return true;
85
+ // Workspaces in root package.json
86
+ try {
87
+ const rootPkg = JSON.parse(readFileSync(join(cwd, 'package.json'), 'utf8'));
88
+ if (rootPkg.workspaces)
89
+ return true;
90
+ }
91
+ catch { /* skip */ }
92
+ // pnpm-workspace.yaml
93
+ if (existsSync(join(cwd, 'pnpm-workspace.yaml')))
94
+ return true;
95
+ // packages/ or apps/ dirs with their own manifests
96
+ for (const dirName of ['packages', 'apps']) {
97
+ const dir = join(cwd, dirName);
98
+ if (existsSync(dir)) {
99
+ const subEntries = entries.filter(e => e.path.startsWith(dirName + '/') && e.path.endsWith('package.json'));
100
+ if (subEntries.length > 0)
101
+ return true;
102
+ }
103
+ }
104
+ return false;
105
+ }
106
+ //# sourceMappingURL=structure.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"structure.js","sourceRoot":"","sources":["../../../src/core/analyzers/structure.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { TestProfile } from './types.js';
2
+ export declare function analyzeTesting(cwd: string): Promise<TestProfile>;
3
+ //# sourceMappingURL=testing.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"testing.d.ts","sourceRoot":"","sources":["../../../src/core/analyzers/testing.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAwF9C,wBAAsB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAsCtE"}
@@ -0,0 +1,119 @@
1
+ // SLOPE — Testing Analyzer: framework, test files, coverage, test dirs
2
+ import { readFileSync, existsSync } from 'node:fs';
3
+ import { join } from 'node:path';
4
+ import { walkDir } from './walk.js';
5
+ const TEST_FILE_PATTERNS = ['.test.', '.spec.', '_test.', 'test_'];
6
+ const TEST_DIR_NAMES = ['tests', '__tests__', 'test', 'spec'];
7
+ const FRAMEWORK_DETECTORS = [
8
+ {
9
+ name: 'vitest',
10
+ check: (cwd, rootFiles) => rootFiles.some(f => f.startsWith('vitest.config')) || hasPkgDep(cwd, 'vitest'),
11
+ },
12
+ {
13
+ name: 'jest',
14
+ check: (cwd, rootFiles) => rootFiles.some(f => f.startsWith('jest.config')) || hasPkgDep(cwd, 'jest'),
15
+ },
16
+ {
17
+ name: 'pytest',
18
+ check: (cwd, rootFiles) => existsSync(join(cwd, 'pytest.ini')) ||
19
+ existsSync(join(cwd, 'conftest.py')) ||
20
+ hasPyprojectPytest(cwd),
21
+ },
22
+ {
23
+ name: 'rspec',
24
+ check: (cwd) => existsSync(join(cwd, '.rspec')),
25
+ },
26
+ {
27
+ name: 'go-test',
28
+ check: (cwd) => {
29
+ const entries = walkDir(cwd, { maxDepth: 3 });
30
+ return entries.some(e => !e.isDirectory && e.path.endsWith('_test.go'));
31
+ },
32
+ },
33
+ ];
34
+ function hasPkgDep(cwd, dep) {
35
+ try {
36
+ const pkg = JSON.parse(readFileSync(join(cwd, 'package.json'), 'utf8'));
37
+ return !!(pkg.dependencies?.[dep] || pkg.devDependencies?.[dep]);
38
+ }
39
+ catch {
40
+ return false;
41
+ }
42
+ }
43
+ function hasPyprojectPytest(cwd) {
44
+ try {
45
+ const content = readFileSync(join(cwd, 'pyproject.toml'), 'utf8');
46
+ return content.includes('[tool.pytest');
47
+ }
48
+ catch {
49
+ return false;
50
+ }
51
+ }
52
+ function detectCoverage(cwd) {
53
+ // Check vitest/jest config for coverage
54
+ for (const configPrefix of ['vitest.config', 'jest.config']) {
55
+ for (const ext of ['.ts', '.js', '.mjs', '.cjs']) {
56
+ const configPath = join(cwd, configPrefix + ext);
57
+ if (existsSync(configPath)) {
58
+ try {
59
+ const content = readFileSync(configPath, 'utf8');
60
+ if (content.includes('coverage'))
61
+ return true;
62
+ }
63
+ catch { /* skip */ }
64
+ }
65
+ }
66
+ }
67
+ // Check for coverage config files
68
+ if (existsSync(join(cwd, '.nycrc')) || existsSync(join(cwd, '.nycrc.json')))
69
+ return true;
70
+ if (existsSync(join(cwd, '.coveragerc')))
71
+ return true;
72
+ if (existsSync(join(cwd, 'coverage.py')))
73
+ return true;
74
+ // Check package.json for coverage script
75
+ try {
76
+ const pkg = JSON.parse(readFileSync(join(cwd, 'package.json'), 'utf8'));
77
+ const scripts = pkg.scripts ?? {};
78
+ return Object.values(scripts).some((s) => typeof s === 'string' && s.includes('coverage'));
79
+ }
80
+ catch {
81
+ return false;
82
+ }
83
+ }
84
+ export async function analyzeTesting(cwd) {
85
+ const entries = walkDir(cwd);
86
+ const rootFiles = entries.filter(e => e.depth === 0 && !e.isDirectory).map(e => e.path);
87
+ // Detect framework
88
+ let framework;
89
+ for (const detector of FRAMEWORK_DETECTORS) {
90
+ if (detector.check(cwd, rootFiles)) {
91
+ framework = detector.name;
92
+ break;
93
+ }
94
+ }
95
+ // Find test directories that exist
96
+ const testDirs = TEST_DIR_NAMES.filter(dir => existsSync(join(cwd, dir)));
97
+ // Count test files
98
+ const testFileCount = entries.filter(e => {
99
+ if (e.isDirectory)
100
+ return false;
101
+ return TEST_FILE_PATTERNS.some(p => e.path.includes(p));
102
+ }).length;
103
+ // Check for test script in package.json
104
+ let hasTestScript = false;
105
+ try {
106
+ const pkg = JSON.parse(readFileSync(join(cwd, 'package.json'), 'utf8'));
107
+ hasTestScript = !!(pkg.scripts?.test);
108
+ }
109
+ catch { /* skip */ }
110
+ const hasCoverage = detectCoverage(cwd);
111
+ return {
112
+ framework,
113
+ testFileCount,
114
+ hasTestScript,
115
+ hasCoverage,
116
+ testDirs,
117
+ };
118
+ }
119
+ //# sourceMappingURL=testing.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"testing.js","sourceRoot":"","sources":["../../../src/core/analyzers/testing.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,83 @@
1
+ export interface StackProfile {
2
+ primaryLanguage: string;
3
+ languages: Record<string, number>;
4
+ frameworks: string[];
5
+ packageManager?: string;
6
+ runtime?: string;
7
+ buildTool?: string;
8
+ }
9
+ export interface StructureProfile {
10
+ totalFiles: number;
11
+ sourceFiles: number;
12
+ testFiles: number;
13
+ maxDepth: number;
14
+ isMonorepo: boolean;
15
+ modules: Array<{
16
+ name: string;
17
+ path: string;
18
+ fileCount: number;
19
+ }>;
20
+ largeFiles: Array<{
21
+ path: string;
22
+ lines: number;
23
+ }>;
24
+ }
25
+ export interface GitProfile {
26
+ totalCommits: number;
27
+ commitsLast90d: number;
28
+ commitsPerWeek: number;
29
+ contributors: Array<{
30
+ name: string;
31
+ email: string;
32
+ commits: number;
33
+ }>;
34
+ activeBranches: string[];
35
+ lastRelease?: {
36
+ tag: string;
37
+ date: string;
38
+ };
39
+ inferredCadence: 'daily' | 'weekly' | 'biweekly' | 'monthly' | 'sporadic';
40
+ }
41
+ export interface TestProfile {
42
+ framework?: string;
43
+ testFileCount: number;
44
+ hasTestScript: boolean;
45
+ hasCoverage: boolean;
46
+ testDirs: string[];
47
+ }
48
+ export interface VisionDocument {
49
+ purpose: string;
50
+ audience?: string;
51
+ priorities: string[];
52
+ techDirection?: string;
53
+ nonGoals?: string[];
54
+ createdAt: string;
55
+ updatedAt: string;
56
+ }
57
+ export interface CIProfile {
58
+ system?: 'github-actions' | 'circleci' | 'gitlab-ci' | 'jenkins' | 'travis';
59
+ configFiles: string[];
60
+ hasTestStage: boolean;
61
+ hasBuildStage: boolean;
62
+ hasDeployStage: boolean;
63
+ }
64
+ export interface DocsProfile {
65
+ hasReadme: boolean;
66
+ readmeSummary?: string;
67
+ hasContributing: boolean;
68
+ hasChangelog: boolean;
69
+ hasAdr: boolean;
70
+ hasApiDocs: boolean;
71
+ }
72
+ export type AnalyzerName = 'stack' | 'structure' | 'git' | 'testing' | 'ci' | 'docs';
73
+ export interface RepoProfile {
74
+ analyzedAt: string;
75
+ analyzersRun: AnalyzerName[];
76
+ stack: StackProfile;
77
+ structure: StructureProfile;
78
+ git: GitProfile;
79
+ testing: TestProfile;
80
+ ci: CIProfile;
81
+ docs: DocsProfile;
82
+ }
83
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/core/analyzers/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ // SLOPE — Repo Profile Analyzer Types
2
+ export {};
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/core/analyzers/types.ts"],"names":[],"mappings":"AAAA,sCAAsC"}
@@ -0,0 +1,11 @@
1
+ export interface WalkEntry {
2
+ path: string;
3
+ fullPath: string;
4
+ isDirectory: boolean;
5
+ depth: number;
6
+ }
7
+ export declare function walkDir(root: string, opts?: {
8
+ skip?: string[];
9
+ maxDepth?: number;
10
+ }): WalkEntry[];
11
+ //# sourceMappingURL=walk.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"walk.d.ts","sourceRoot":"","sources":["../../../src/core/analyzers/walk.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,OAAO,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;CACf;AAID,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;IAC3C,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,GAAG,SAAS,EAAE,CA0Bd"}
@@ -0,0 +1,33 @@
1
+ // SLOPE — Shared recursive directory walker for analyzers
2
+ import { readdirSync } from 'node:fs';
3
+ import { join, relative } from 'node:path';
4
+ const DEFAULT_SKIP = ['node_modules', 'dist', '.git', '.slope', '.next', '__pycache__', 'target', 'vendor'];
5
+ export function walkDir(root, opts) {
6
+ const skip = new Set(opts?.skip ?? DEFAULT_SKIP);
7
+ const maxDepth = opts?.maxDepth ?? Infinity;
8
+ const entries = [];
9
+ function recurse(dir, depth) {
10
+ if (depth > maxDepth)
11
+ return;
12
+ let items;
13
+ try {
14
+ items = readdirSync(dir, { withFileTypes: true });
15
+ }
16
+ catch {
17
+ return;
18
+ }
19
+ for (const item of items) {
20
+ if (skip.has(item.name))
21
+ continue;
22
+ const fullPath = join(dir, item.name);
23
+ const relPath = relative(root, fullPath);
24
+ entries.push({ path: relPath, fullPath, isDirectory: item.isDirectory(), depth });
25
+ if (item.isDirectory()) {
26
+ recurse(fullPath, depth + 1);
27
+ }
28
+ }
29
+ }
30
+ recurse(root, 0);
31
+ return entries;
32
+ }
33
+ //# sourceMappingURL=walk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"walk.js","sourceRoot":"","sources":["../../../src/core/analyzers/walk.ts"],"names":[],"mappings":"AAAA,0DAA0D;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AACtC,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAS3C,MAAM,YAAY,GAAG,CAAC,cAAc,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;AAE5G,MAAM,UAAU,OAAO,CAAC,IAAY,EAAE,IAGrC;IACC,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,IAAI,EAAE,IAAI,IAAI,YAAY,CAAC,CAAC;IACjD,MAAM,QAAQ,GAAG,IAAI,EAAE,QAAQ,IAAI,QAAQ,CAAC;IAC5C,MAAM,OAAO,GAAgB,EAAE,CAAC;IAEhC,SAAS,OAAO,CAAC,GAAW,EAAE,KAAa;QACzC,IAAI,KAAK,GAAG,QAAQ;YAAE,OAAO;QAC7B,IAAI,KAAK,CAAC;QACV,IAAI,CAAC;YACH,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QACpD,CAAC;QAAC,MAAM,CAAC;YACP,OAAO;QACT,CAAC;QACD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;gBAAE,SAAS;YAClC,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;YACtC,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;YACzC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;YAClF,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;gBACvB,OAAO,CAAC,QAAQ,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;YAC/B,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;IACjB,OAAO,OAAO,CAAC;AACjB,CAAC"}
@@ -10,6 +10,9 @@ export interface SlopeConfig {
10
10
  claimsPath: string;
11
11
  roadmapPath: string;
12
12
  flowsPath: string;
13
+ visionPath: string;
14
+ repoProfilePath: string;
15
+ transcriptsPath: string;
13
16
  metaphor: string;
14
17
  registryApiUrl?: string;
15
18
  currentSprint?: number;
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/core/config.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAElD,MAAM,WAAW,WAAW;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,MAAM,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,EAAE,MAAM,CAAC;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,GAAG,KAAK,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE;QACT,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;QACpB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;QACtB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,UAAU,CAAC,EAAE,OAAO,CAAC;QACrB,oBAAoB,CAAC,EAAE,MAAM,CAAC;QAC9B,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAC3B,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;QAC/B,mBAAmB,CAAC,EAAE,MAAM,CAAC;QAC7B,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,CAAC;IACF,aAAa,CAAC,EAAE;QACd,UAAU,CAAC,EAAE,gBAAgB,CAAC;KAC/B,CAAC;IACF,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,SAAS,CAAC,EAAE;QACV,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,eAAe,CAAC,EAAE,MAAM,CAAC;KAC1B,CAAC;IACF,IAAI,CAAC,EAAE;QACL,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACjC,aAAa,CAAC,EAAE,MAAM,CAAC;KACxB,CAAC;IACF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE;QACT,gBAAgB,EAAE,MAAM,CAAC;QACzB,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;CACH;AAkBD,wBAAgB,UAAU,CAAC,GAAG,GAAE,MAAsB,GAAG,WAAW,CAWnE;AAED,wBAAgB,YAAY,CAAC,GAAG,GAAE,MAAsB,GAAG,MAAM,CAQhE;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,EAAE,GAAG,GAAE,MAAsB,GAAG,MAAM,CAEhH"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/core/config.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAElD,MAAM,WAAW,WAAW;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,MAAM,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,EAAE,MAAM,CAAC;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,GAAG,KAAK,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE;QACT,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;QACpB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;QACtB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,UAAU,CAAC,EAAE,OAAO,CAAC;QACrB,oBAAoB,CAAC,EAAE,MAAM,CAAC;QAC9B,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAC3B,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;QAC/B,mBAAmB,CAAC,EAAE,MAAM,CAAC;QAC7B,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,CAAC;IACF,aAAa,CAAC,EAAE;QACd,UAAU,CAAC,EAAE,gBAAgB,CAAC;KAC/B,CAAC;IACF,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,SAAS,CAAC,EAAE;QACV,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,eAAe,CAAC,EAAE,MAAM,CAAC;KAC1B,CAAC;IACF,IAAI,CAAC,EAAE;QACL,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACjC,aAAa,CAAC,EAAE,MAAM,CAAC;KACxB,CAAC;IACF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE;QACT,gBAAgB,EAAE,MAAM,CAAC;QACzB,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;CACH;AAqBD,wBAAgB,UAAU,CAAC,GAAG,GAAE,MAAsB,GAAG,WAAW,CAWnE;AAED,wBAAgB,YAAY,CAAC,GAAG,GAAE,MAAsB,GAAG,MAAM,CAQhE;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,EAAE,GAAG,GAAE,MAAsB,GAAG,MAAM,CAEhH"}
@@ -10,6 +10,9 @@ const DEFAULT_CONFIG = {
10
10
  claimsPath: '.slope/claims.json',
11
11
  roadmapPath: 'docs/backlog/roadmap.json',
12
12
  flowsPath: '.slope/flows.json',
13
+ visionPath: '.slope/vision.json',
14
+ repoProfilePath: '.slope/repo-profile.json',
15
+ transcriptsPath: '.slope/transcripts',
13
16
  metaphor: 'golf',
14
17
  };
15
18
  const CONFIG_DIR = '.slope';
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/core/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAC7E,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAqDjC,MAAM,cAAc,GAAgB;IAClC,YAAY,EAAE,aAAa;IAC3B,gBAAgB,EAAE,eAAe;IACjC,SAAS,EAAE,CAAC;IACZ,gBAAgB,EAAE,2BAA2B;IAC7C,YAAY,EAAE,sBAAsB;IACpC,QAAQ,EAAE,MAAM;IAChB,UAAU,EAAE,oBAAoB;IAChC,WAAW,EAAE,2BAA2B;IACxC,SAAS,EAAE,mBAAmB;IAC9B,QAAQ,EAAE,MAAM;CACjB,CAAC;AAEF,MAAM,UAAU,GAAG,QAAQ,CAAC;AAC5B,MAAM,WAAW,GAAG,aAAa,CAAC;AAElC,MAAM,UAAU,UAAU,CAAC,MAAc,OAAO,CAAC,GAAG,EAAE;IACpD,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;IACtD,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC5B,OAAO,EAAE,GAAG,cAAc,EAAE,CAAC;IAC/B,CAAC;IACD,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC;QACzD,OAAO,EAAE,GAAG,cAAc,EAAE,GAAG,GAAG,EAAE,CAAC;IACvC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,GAAG,cAAc,EAAE,CAAC;IAC/B,CAAC;AACH,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,MAAc,OAAO,CAAC,GAAG,EAAE;IACtD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;IAClC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACrB,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACtC,CAAC;IACD,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;IAC1C,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,cAAc,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;IAC1E,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,MAAmB,EAAE,YAAoB,EAAE,MAAc,OAAO,CAAC,GAAG,EAAE;IACtG,OAAO,IAAI,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;AACjC,CAAC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/core/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAC7E,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAwDjC,MAAM,cAAc,GAAgB;IAClC,YAAY,EAAE,aAAa;IAC3B,gBAAgB,EAAE,eAAe;IACjC,SAAS,EAAE,CAAC;IACZ,gBAAgB,EAAE,2BAA2B;IAC7C,YAAY,EAAE,sBAAsB;IACpC,QAAQ,EAAE,MAAM;IAChB,UAAU,EAAE,oBAAoB;IAChC,WAAW,EAAE,2BAA2B;IACxC,SAAS,EAAE,mBAAmB;IAC9B,UAAU,EAAE,oBAAoB;IAChC,eAAe,EAAE,0BAA0B;IAC3C,eAAe,EAAE,oBAAoB;IACrC,QAAQ,EAAE,MAAM;CACjB,CAAC;AAEF,MAAM,UAAU,GAAG,QAAQ,CAAC;AAC5B,MAAM,WAAW,GAAG,aAAa,CAAC;AAElC,MAAM,UAAU,UAAU,CAAC,MAAc,OAAO,CAAC,GAAG,EAAE;IACpD,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,UAAU,EAAE,WAAW,CAAC,CAAC;IACtD,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC5B,OAAO,EAAE,GAAG,cAAc,EAAE,CAAC;IAC/B,CAAC;IACD,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC;QACzD,OAAO,EAAE,GAAG,cAAc,EAAE,GAAG,GAAG,EAAE,CAAC;IACvC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,GAAG,cAAc,EAAE,CAAC;IAC/B,CAAC;AACH,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,MAAc,OAAO,CAAC,GAAG,EAAE;IACtD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;IAClC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACrB,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACtC,CAAC;IACD,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC;IAC1C,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,cAAc,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;IAC1E,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,MAAmB,EAAE,YAAoB,EAAE,MAAc,OAAO,CAAC,GAAG,EAAE;IACtG,OAAO,IAAI,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;AACjC,CAAC"}
@@ -1,4 +1,4 @@
1
- import type { ScoreLabel, TrainingType, NutritionCategory, SprintType, HazardSeverity } from './types.js';
1
+ import type { ScoreLabel, TrainingType, NutritionCategory, SprintType, HazardSeverity, ReviewType, HazardType } from './types.js';
2
2
  /** Maps ticket count ranges to par values */
3
3
  export declare const PAR_THRESHOLDS: Record<number, [number, number]>;
4
4
  /** Factors that increase sprint slope (difficulty) */
@@ -9,6 +9,8 @@ export declare const SCORE_LABELS: Record<number, ScoreLabel>;
9
9
  export declare const HAZARD_SEVERITY_PENALTIES: Record<HazardSeverity, number>;
10
10
  /** Maps sprint types to training types for training log categorization */
11
11
  export declare const TRAINING_TYPE_MAP: Partial<Record<SprintType, TrainingType>>;
12
+ /** Maps review types to hazard types for finding → hazard conversion */
13
+ export declare const REVIEW_TYPE_HAZARD_MAP: Record<ReviewType, HazardType>;
12
14
  /** Default nutrition items to assess per sprint */
13
15
  export declare const NUTRITION_CHECKLIST: NutritionCategory[];
14
16
  //# sourceMappingURL=constants.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/core/constants.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,iBAAiB,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE1G,6CAA6C;AAC7C,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAI3D,CAAC;AAEF,sDAAsD;AACtD,eAAO,MAAM,aAAa,iGAMhB,CAAC;AAEX,4CAA4C;AAC5C,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAMnD,CAAC;AAEF,8CAA8C;AAC9C,eAAO,MAAM,yBAAyB,EAAE,MAAM,CAAC,cAAc,EAAE,MAAM,CAKpE,CAAC;AAEF,0EAA0E;AAC1E,eAAO,MAAM,iBAAiB,EAAE,OAAO,CAAC,MAAM,CAAC,UAAU,EAAE,YAAY,CAAC,CAIvE,CAAC;AAEF,mDAAmD;AACnD,eAAO,MAAM,mBAAmB,EAAE,iBAAiB,EAMlD,CAAC"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/core/constants.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,iBAAiB,EAAE,UAAU,EAAE,cAAc,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAElI,6CAA6C;AAC7C,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAI3D,CAAC;AAEF,sDAAsD;AACtD,eAAO,MAAM,aAAa,iGAMhB,CAAC;AAEX,4CAA4C;AAC5C,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAMnD,CAAC;AAEF,8CAA8C;AAC9C,eAAO,MAAM,yBAAyB,EAAE,MAAM,CAAC,cAAc,EAAE,MAAM,CAKpE,CAAC;AAEF,0EAA0E;AAC1E,eAAO,MAAM,iBAAiB,EAAE,OAAO,CAAC,MAAM,CAAC,UAAU,EAAE,YAAY,CAAC,CAIvE,CAAC;AAEF,wEAAwE;AACxE,eAAO,MAAM,sBAAsB,EAAE,MAAM,CAAC,UAAU,EAAE,UAAU,CAMjE,CAAC;AAEF,mDAAmD;AACnD,eAAO,MAAM,mBAAmB,EAAE,iBAAiB,EAMlD,CAAC"}
@@ -33,6 +33,14 @@ export const TRAINING_TYPE_MAP = {
33
33
  feedback: 'chipping_practice',
34
34
  'test-coverage': 'putting_practice',
35
35
  };
36
+ /** Maps review types to hazard types for finding → hazard conversion */
37
+ export const REVIEW_TYPE_HAZARD_MAP = {
38
+ architect: 'bunker',
39
+ code: 'rough',
40
+ 'ml-engineer': 'rough',
41
+ security: 'water',
42
+ ux: 'trees',
43
+ };
36
44
  /** Default nutrition items to assess per sprint */
37
45
  export const NUTRITION_CHECKLIST = [
38
46
  'hydration',
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/core/constants.ts"],"names":[],"mappings":"AAEA,6CAA6C;AAC7C,MAAM,CAAC,MAAM,cAAc,GAAqC;IAC9D,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;IACT,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;IACT,CAAC,EAAE,CAAC,CAAC,EAAE,QAAQ,CAAC;CACjB,CAAC;AAEF,sDAAsD;AACtD,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,eAAe;IACf,kBAAkB;IAClB,UAAU;IACV,cAAc;IACd,mBAAmB;CACX,CAAC;AAEX,4CAA4C;AAC5C,MAAM,CAAC,MAAM,YAAY,GAA+B;IACtD,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO;IACb,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ;IACd,CAAC,CAAC,CAAC,EAAE,KAAK;IACV,CAAC,CAAC,CAAC,EAAE,OAAO;IACZ,CAAC,CAAC,CAAC,EAAE,cAAc;CACpB,CAAC;AAEF,8CAA8C;AAC9C,MAAM,CAAC,MAAM,yBAAyB,GAAmC;IACvE,KAAK,EAAE,CAAC;IACR,QAAQ,EAAE,GAAG;IACb,KAAK,EAAE,CAAC;IACR,QAAQ,EAAE,CAAC;CACZ,CAAC;AAEF,0EAA0E;AAC1E,MAAM,CAAC,MAAM,iBAAiB,GAA8C;IAC1E,QAAQ,EAAE,eAAe;IACzB,QAAQ,EAAE,mBAAmB;IAC7B,eAAe,EAAE,kBAAkB;CACpC,CAAC;AAEF,mDAAmD;AACnD,MAAM,CAAC,MAAM,mBAAmB,GAAwB;IACtD,WAAW;IACX,MAAM;IACN,UAAU;IACV,aAAa;IACb,YAAY;CACb,CAAC"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/core/constants.ts"],"names":[],"mappings":"AAEA,6CAA6C;AAC7C,MAAM,CAAC,MAAM,cAAc,GAAqC;IAC9D,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;IACT,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;IACT,CAAC,EAAE,CAAC,CAAC,EAAE,QAAQ,CAAC;CACjB,CAAC;AAEF,sDAAsD;AACtD,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,eAAe;IACf,kBAAkB;IAClB,UAAU;IACV,cAAc;IACd,mBAAmB;CACX,CAAC;AAEX,4CAA4C;AAC5C,MAAM,CAAC,MAAM,YAAY,GAA+B;IACtD,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO;IACb,CAAC,CAAC,CAAC,CAAC,EAAE,QAAQ;IACd,CAAC,CAAC,CAAC,EAAE,KAAK;IACV,CAAC,CAAC,CAAC,EAAE,OAAO;IACZ,CAAC,CAAC,CAAC,EAAE,cAAc;CACpB,CAAC;AAEF,8CAA8C;AAC9C,MAAM,CAAC,MAAM,yBAAyB,GAAmC;IACvE,KAAK,EAAE,CAAC;IACR,QAAQ,EAAE,GAAG;IACb,KAAK,EAAE,CAAC;IACR,QAAQ,EAAE,CAAC;CACZ,CAAC;AAEF,0EAA0E;AAC1E,MAAM,CAAC,MAAM,iBAAiB,GAA8C;IAC1E,QAAQ,EAAE,eAAe;IACzB,QAAQ,EAAE,mBAAmB;IAC7B,eAAe,EAAE,kBAAkB;CACpC,CAAC;AAEF,wEAAwE;AACxE,MAAM,CAAC,MAAM,sBAAsB,GAAmC;IACpE,SAAS,EAAE,QAAQ;IACnB,IAAI,EAAE,OAAO;IACb,aAAa,EAAE,OAAO;IACtB,QAAQ,EAAE,OAAO;IACjB,EAAE,EAAE,OAAO;CACZ,CAAC;AAEF,mDAAmD;AACnD,MAAM,CAAC,MAAM,mBAAmB,GAAwB;IACtD,WAAW;IACX,MAAM;IACN,UAAU;IACV,aAAa;IACb,YAAY;CACb,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"dashboard.d.ts","sourceRoot":"","sources":["../../src/core/dashboard.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC/D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACxD,OAAO,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAsBhE,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,OAAO,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,eAAO,MAAM,wBAAwB,EAAE,eAItC,CAAC;AAIF,MAAM,WAAW,WAAW;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,aAAa,CAAC;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,WAAW,EAAE,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,UAAU,EAAE,aAAa,EAAE,CAAC;CAC7B;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CAC/C;AAID,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,aAAa,EAAE,QAAQ,CAAC,EAAE,kBAAkB,GAAG,MAAM,CA4GlG;AAID,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,gBAAgB,EAAE,EAAE,QAAQ,CAAC,EAAE,kBAAkB,GAAG,MAAM,CA2DrG;AAID,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,aAAa,EAAE,GAAG,eAAe,CAsB/E;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,eAAe,EAAE,QAAQ,CAAC,EAAE,kBAAkB,GAAG,MAAM,CAmDjG;AAID,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,aAAa,EAAE,GAAG,eAAe,EAAE,CA2BjF;AAED,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,eAAe,EAAE,EAAE,QAAQ,CAAC,EAAE,kBAAkB,GAAG,MAAM,CA0BzG;AAID,wBAAgB,uBAAuB,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,GAAG,MAAM,CAoCjF;AAuBD,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,UAAU,EAChB,QAAQ,CAAC,EAAE,kBAAkB,EAC7B,MAAM,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,GAChC,MAAM,CAsER"}
1
+ {"version":3,"file":"dashboard.d.ts","sourceRoot":"","sources":["../../src/core/dashboard.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAC/D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACxD,OAAO,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAuBhE,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,OAAO,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,eAAO,MAAM,wBAAwB,EAAE,eAItC,CAAC;AAIF,MAAM,WAAW,WAAW;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,aAAa,CAAC;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,WAAW,EAAE,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,UAAU,EAAE,aAAa,EAAE,CAAC;CAC7B;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CAC/C;AAID,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,aAAa,EAAE,QAAQ,CAAC,EAAE,kBAAkB,GAAG,MAAM,CA4GlG;AAID,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,gBAAgB,EAAE,EAAE,QAAQ,CAAC,EAAE,kBAAkB,GAAG,MAAM,CA2DrG;AAID,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,aAAa,EAAE,GAAG,eAAe,CAuB/E;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,eAAe,EAAE,QAAQ,CAAC,EAAE,kBAAkB,GAAG,MAAM,CAmDjG;AAID,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,aAAa,EAAE,GAAG,eAAe,EAAE,CA2BjF;AAED,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,eAAe,EAAE,EAAE,QAAQ,CAAC,EAAE,kBAAkB,GAAG,MAAM,CA0BzG;AAID,wBAAgB,uBAAuB,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,GAAG,MAAM,CAoCjF;AAuBD,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,UAAU,EAChB,QAAQ,CAAC,EAAE,kBAAkB,EAC7B,MAAM,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,GAChC,MAAM,CAsER"}
@@ -1,3 +1,4 @@
1
+ import { normalizeStats } from './builder.js';
1
2
  import { background, text as textColor, border, chart, semantic, fontSize, fontWeight, spacing, radius, } from '../tokens/index.js';
2
3
  import { REPORT_CSS, escapeHtml, svgRect, svgText, renderSummaryCards, renderHandicapTrendChart, renderDispersionChart, renderAreaPerformanceChart, renderNutritionChart, renderSprintTable, } from './report.js';
3
4
  import { extractPlayers } from './player.js';
@@ -173,8 +174,9 @@ export function computeMissHeatmap(scorecards) {
173
174
  let maxCount = 0;
174
175
  const cells = [];
175
176
  for (const sc of sorted) {
177
+ const stats = normalizeStats(sc.stats, (sc.shots ?? []).length);
176
178
  for (const dir of directions) {
177
- const count = sc.stats.miss_directions[dir] ?? 0;
179
+ const count = stats.miss_directions[dir] ?? 0;
178
180
  if (count > maxCount)
179
181
  maxCount = count;
180
182
  cells.push({ sprintNumber: sc.sprint_number, direction: dir, count, intensity: 0 });
@@ -1 +1 @@
1
- {"version":3,"file":"dashboard.js","sourceRoot":"","sources":["../../src/core/dashboard.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,UAAU,EAAE,IAAI,IAAI,SAAS,EAAE,MAAM,EAAU,KAAK,EAAE,QAAQ,EAC9D,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,GACtC,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,UAAU,EACV,UAAU,EACV,OAAO,EACP,OAAO,EACP,kBAAkB,EAClB,wBAAwB,EACxB,qBAAqB,EACrB,0BAA0B,EAC1B,oBAAoB,EACpB,iBAAiB,GAClB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAU3E,MAAM,CAAC,MAAM,wBAAwB,GAAoB;IACvD,IAAI,EAAE,IAAI;IACV,QAAQ,EAAE,IAAI;IACd,eAAe,EAAE,EAAE;CACpB,CAAC;AA0BF,iCAAiC;AAEjC,MAAM,UAAU,kBAAkB,CAAC,SAAwB,EAAE,QAA6B;IACxF,MAAM,WAAW,GAAG,QAAQ,EAAE,UAAU,CAAC,MAAM,IAAI,QAAQ,CAAC;IAE5D,aAAa;IACb,IAAI,SAAS,GAAG,EAAE,CAAC;IACnB,IAAI,CAAC,SAAS,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvC,MAAM,UAAU,GAAG,QAAQ,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC;QACrE,MAAM,IAAI,GAAG,CAAC,SAAS,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;YAC9C,MAAM,SAAS,GAAG,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,IAAmC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC;YACzF,MAAM,WAAW,GAAG,QAAQ,EAAE,WAAW,CAAC,IAAI,CAAC,MAA2C,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC;YAC3G,MAAM,UAAU,GAAG,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;gBAC9C,MAAM,MAAM,GAAG,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,IAAqC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC;gBACpF,OAAO,UAAU,CAAC,GAAG,MAAM,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;YACnD,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG,CAAC;YACvB,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;YACxD,OAAO;cACC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC;cAC3B,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC;cACtB,UAAU,CAAC,SAAS,CAAC;cACrB,UAAU,CAAC,WAAW,CAAC;cACvB,UAAU;cACV,KAAK;YACP,CAAC;QACT,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEd,SAAS,GAAG;;;;+CAI+B,UAAU,CAAC,UAAU,CAAC;;eAEtD,IAAI;aACN,CAAC;IACZ,CAAC;IAED,aAAa;IACb,IAAI,cAAc,GAAG,EAAE,CAAC;IACxB,IAAI,SAAS,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpC,MAAM,QAAQ,GAAG,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;YAC5C,MAAM,SAAS,GAAG,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC,IAAwC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC;YAC7F,OAAO,WAAW,UAAU,CAAC,SAAS,CAAC,YAAY,UAAU,CAAC,CAAC,CAAC,WAAW,CAAC,YAAY,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC;QAC3H,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACd,cAAc,GAAG;;;;eAIN,QAAQ;aACV,CAAC;IACZ,CAAC;IAED,gBAAgB;IAChB,IAAI,gBAAgB,GAAG,EAAE,CAAC;IAC1B,IAAI,SAAS,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvC,MAAM,KAAK,GAAG,SAAS,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;YAC5C,MAAM,MAAM,GAAG,QAAQ,EAAE,YAAY,CAAC,CAAuC,CAAC,IAAI,CAAC,CAAC;YACpF,OAAO,qBAAqB,UAAU,CAAC,MAAM,CAAC,SAAS,CAAC;QAC1D,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACb,gBAAgB,GAAG,2CAA2C,KAAK,QAAQ,CAAC;IAC9E,CAAC;IAED,YAAY;IACZ,IAAI,aAAa,GAAG,EAAE,CAAC;IACvB,IAAI,SAAS,CAAC,SAAS,IAAI,SAAS,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1D,MAAM,OAAO,GAAG,SAAS,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;YAC1C,MAAM,QAAQ,GAAG,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC;YAC/D,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;YAClG,OAAO,WAAW,UAAU,CAAC,QAAQ,CAAC,YAAY,UAAU,CAAC,CAAC,CAAC,WAAW,CAAC,mBAAmB,WAAW,KAAK,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC;QACjJ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACd,aAAa,GAAG;;;;eAIL,OAAO;aACT,CAAC;IACZ,CAAC;IAED,YAAY;IACZ,IAAI,cAAc,GAAG,EAAE,CAAC;IACxB,IAAI,SAAS,CAAC,eAAe,EAAE,CAAC;QAC9B,MAAM,EAAE,GAAG,SAAS,CAAC,eAAe,CAAC;QACrC,MAAM,OAAO,GAAa,EAAE,CAAC;QAC7B,IAAI,EAAE,CAAC,eAAe;YAAE,OAAO,CAAC,IAAI,CAAC,gCAAgC,UAAU,CAAC,EAAE,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QAC5G,IAAI,EAAE,CAAC,sBAAsB;YAAE,OAAO,CAAC,IAAI,CAAC,sCAAsC,UAAU,CAAC,EAAE,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAC;QAChI,IAAI,EAAE,CAAC,kBAAkB;YAAE,OAAO,CAAC,IAAI,CAAC,mCAAmC,UAAU,CAAC,EAAE,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;QACrH,IAAI,EAAE,CAAC,kBAAkB;YAAE,OAAO,CAAC,IAAI,CAAC,kCAAkC,UAAU,CAAC,EAAE,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;QACpH,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,cAAc,GAAG,iDAAiD,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;QAC9F,CAAC;IACH,CAAC;IAED,MAAM,OAAO,GAAG,SAAS,CAAC,KAAK,GAAG,SAAS,CAAC,GAAG,CAAC;IAChD,MAAM,SAAS,GAAG,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,OAAO,EAAE,CAAC,CAAC,CAAC,GAAG,OAAO,EAAE,CAAC;IAC7D,MAAM,SAAS,GAAG,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC;IAExE,OAAO;;UAEC,UAAU,CAAC,WAAW,CAAC,IAAI,SAAS,CAAC,aAAa,KAAK,UAAU,CAAC,SAAS,CAAC,KAAK,CAAC;;kBAE1E,SAAS,CAAC,GAAG,YAAY,SAAS,CAAC,KAAK,kBAAkB,SAAS,KAAK,SAAS;oBAC/E,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC;qBACzB,UAAU,CAAC,SAAS,CAAC,WAAW,CAAC;;MAEhD,SAAS;MACT,cAAc;MACd,gBAAgB;MAChB,aAAa;MACb,cAAc;SACX,CAAC;AACV,CAAC;AAED,gCAAgC;AAEhC,MAAM,UAAU,oBAAoB,CAAC,KAAyB,EAAE,QAA6B;IAC3F,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,kCAAkC,CAAC;IAElE,MAAM,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC;IAC3E,MAAM,KAAK,GAAG,CAAC,GAAG,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC;IACvC,MAAM,KAAK,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC;IAEvC,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACxE,MAAM,SAAS,GAAG,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC;IACvC,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,GAAG,IAAI,EAAE,EAAE,CAAC,CAAC;IAC5C,MAAM,GAAG,GAAG,CAAC,CAAC;IAEd,IAAI,IAAI,GAAG,EAAE,CAAC;IACd,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QACnB,MAAM,MAAM,GAAG,GAAG,CAAC,IAAI,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,SAAS,GAAG,IAAI,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;QAE3E,iBAAiB;QACjB,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,KAAK,CAAC;QACtC,MAAM,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,KAAK,GAAG,IAAI,CAAC;QACpC,IAAI,IAAI,OAAO,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;QAExD,uBAAuB;QACvB,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC;QACjG,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,MAAM,CAAC,GAAG,KAAK,CAAC;QACxC,MAAM,IAAI,GAAG,GAAG,CAAC,GAAG,GAAG,KAAK,GAAG,IAAI,CAAC;QACpC,IAAI,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,GAAG,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;QAE9D,eAAe;QACf,IAAI,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,GAAG,GAAG,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,GAAG,EAAE,EAAE,IAAI,CAAC,CAAC,YAAY,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;QAElG,uDAAuD;QACvD,IAAI,IAAI,YAAY,MAAM,QAAQ,GAAG,CAAC,GAAG,YAAY,IAAI,GAAG,CAAC,GAAG,GAAG,aAAa,KAAK,qCAAqC,CAAC,CAAC,YAAY,uBAAuB,CAAC;IAClK,CAAC;IAED,gBAAgB;IAChB,IAAI,OAAO,GAAG,EAAE,CAAC;IACjB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACjC,MAAM,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,KAAK,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,GAAG,KAAK,CAAC;QACjD,OAAO,IAAI,aAAa,GAAG,CAAC,IAAI,SAAS,CAAC,SAAS,CAAC,GAAG,GAAG,CAAC,KAAK,SAAS,CAAC,aAAa,MAAM,CAAC,OAAO,wBAAwB,CAAC;QAC9H,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;IAC/E,CAAC;IAED,MAAM,WAAW,GAAG,QAAQ,EAAE,UAAU,CAAC,MAAM,IAAI,QAAQ,CAAC;IAE5D,OAAO;;UAEC,UAAU,CAAC,WAAW,CAAC;wBACT,CAAC,IAAI,CAAC;QACtB,OAAO;QACP,IAAI;;;sEAG0D,KAAK,CAAC,MAAM;;sEAEZ,KAAK,CAAC,KAAK;;;SAGxE,CAAC;AACV,CAAC;AAED,+BAA+B;AAE/B,MAAM,UAAU,kBAAkB,CAAC,UAA2B;IAC5D,MAAM,UAAU,GAAoB,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;IACvE,MAAM,MAAM,GAAG,CAAC,GAAG,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,aAAa,GAAG,CAAC,CAAC,aAAa,CAAC,CAAC;IACjF,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC;IAEjD,IAAI,QAAQ,GAAG,CAAC,CAAC;IACjB,MAAM,KAAK,GAAkB,EAAE,CAAC;IAEhC,KAAK,MAAM,EAAE,IAAI,MAAM,EAAE,CAAC;QACxB,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;YAC7B,MAAM,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACjD,IAAI,KAAK,GAAG,QAAQ;gBAAE,QAAQ,GAAG,KAAK,CAAC;YACvC,KAAK,CAAC,IAAI,CAAC,EAAE,YAAY,EAAE,EAAE,CAAC,aAAa,EAAE,SAAS,EAAE,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC;QACtF,CAAC;IACH,CAAC;IAED,sBAAsB;IACtB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,CAAC,SAAS,GAAG,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5D,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC;AAClD,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,OAAwB,EAAE,QAA6B;IACvF,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,gCAAgC,CAAC;IAE1E,MAAM,MAAM,GAAG,EAAE,EAAE,MAAM,GAAG,EAAE,CAAC;IAC/B,MAAM,GAAG,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;IACzD,MAAM,CAAC,GAAG,GAAG,CAAC,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,GAAG,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC;IACjE,MAAM,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,OAAO,CAAC,UAAU,CAAC,MAAM,GAAG,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;IAEpE,IAAI,KAAK,GAAG,EAAE,CAAC;IAEf,kCAAkC;IAClC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAChD,MAAM,CAAC,GAAG,GAAG,CAAC,IAAI,GAAG,CAAC,GAAG,MAAM,GAAG,MAAM,GAAG,CAAC,CAAC;QAC7C,KAAK,IAAI,OAAO,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,GAAG,CAAC,EAAE,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;IAC3E,CAAC;IAED,mCAAmC;IACnC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACnD,MAAM,GAAG,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QAClC,MAAM,QAAQ,GAAG,QAAQ,EAAE,cAAc,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC;QACtD,MAAM,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,MAAM,CAAC;QAC/B,KAAK,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;QAE1F,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAChD,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,YAAY,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,KAAK,GAAG,CAAC,CAAC;YACnG,MAAM,SAAS,GAAG,IAAI,EAAE,SAAS,IAAI,CAAC,CAAC;YACvC,MAAM,KAAK,GAAG,IAAI,EAAE,KAAK,IAAI,CAAC,CAAC;YAC/B,MAAM,CAAC,GAAG,GAAG,CAAC,IAAI,GAAG,CAAC,GAAG,MAAM,CAAC;YAEhC,yDAAyD;YACzD,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,SAAS,CAAC,CAAC;YACpD,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,GAAG,SAAS,CAAC,CAAC;YACnD,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,CAAC,GAAG,SAAS,CAAC,CAAC;YACnD,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;YAEnC,KAAK,IAAI,OAAO,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,CAAC,EAAE,MAAM,GAAG,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;YAChE,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;gBACd,KAAK,IAAI,OAAO,CAAC,CAAC,GAAG,MAAM,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC,EAAE,GAAG,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,SAAS,GAAG,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,CAAC;YACnI,CAAC;YACD,MAAM,OAAO,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,QAAQ,KAAK,KAAK,SAAS,CAAC;YACtE,KAAK,IAAI,UAAU,UAAU,CAAC,OAAO,CAAC,UAAU,CAAC;QACnD,CAAC;IACH,CAAC;IAED,OAAO;;;wBAGe,CAAC,IAAI,CAAC;QACtB,KAAK;;SAEJ,CAAC;AACV,CAAC;AAED,8BAA8B;AAE9B,MAAM,UAAU,kBAAkB,CAAC,UAA2B;IAC5D,MAAM,OAAO,GAAqG,EAAE,CAAC;IAErH,KAAK,MAAM,EAAE,IAAI,UAAU,EAAE,CAAC;QAC5B,KAAK,MAAM,IAAI,IAAI,EAAE,CAAC,KAAK,IAAI,EAAE,EAAE,CAAC;YAClC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;gBACxB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,UAAU,EAAE,CAAC,EAAE,WAAW,EAAE,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE,CAAC;YAC1E,CAAC;YACD,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACjC,KAAK,CAAC,UAAU,EAAE,CAAC;YACnB,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,OAAO,IAAI,EAAE,EAAE,CAAC;gBACnC,KAAK,CAAC,WAAW,EAAE,CAAC;gBACpB,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;YACnE,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;QACpD,IAAI;QACJ,UAAU,EAAE,IAAI,CAAC,UAAU;QAC3B,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,UAAU,EAAE,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5F,UAAU,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC;aACzC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;aACzC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC;aACjC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;KACf,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC;AAClD,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,OAA0B,EAAE,QAA6B;IAC/F,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAEpC,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;QAC3B,MAAM,SAAS,GAAG,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC,IAAmC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC;QACnF,MAAM,OAAO,GAAG,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;YACnC,MAAM,MAAM,GAAG,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,IAAqC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC;YACpF,OAAO,GAAG,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,GAAG,CAAC;QAC9C,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC;QACrB,OAAO;YACC,UAAU,CAAC,SAAS,CAAC;YACrB,CAAC,CAAC,UAAU;YACZ,CAAC,CAAC,WAAW;YACb,CAAC,CAAC,UAAU;YACZ,OAAO;UACT,CAAC;IACT,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEd,OAAO;;;;;eAKM,IAAI;;SAEV,CAAC;AACV,CAAC;AAED,2BAA2B;AAE3B,MAAM,UAAU,uBAAuB,CAAC,MAAiC;IACvE,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;YAkCG,CAAC;AACb,CAAC;AAED,mCAAmC;AAEnC,MAAM,aAAa,GAAG;kGAC4E,OAAO,CAAC,CAAC,CAAC,sBAAsB,OAAO,CAAC,CAAC,CAAC,8BAA8B,MAAM,CAAC,OAAO;;sCAElJ,QAAQ,CAAC,EAAE,YAAY,SAAS,CAAC,KAAK;iCAC3C,UAAU,CAAC,OAAO,uBAAuB,MAAM,CAAC,MAAM,oBAAoB,MAAM,CAAC,EAAE,cAAc,OAAO,CAAC,CAAC,CAAC,aAAa,OAAO,CAAC,CAAC,CAAC;+BACpI,SAAS,CAAC,OAAO,oBAAoB,OAAO,CAAC,CAAC,CAAC;8BAChD,QAAQ,CAAC,IAAI,YAAY,SAAS,CAAC,KAAK,oBAAoB,OAAO,CAAC,CAAC,CAAC,yBAAyB,OAAO,CAAC,CAAC,CAAC;mCACpG,QAAQ,CAAC,IAAI,YAAY,SAAS,CAAC,SAAS,aAAa,OAAO,CAAC,CAAC,CAAC,MAAM,OAAO,CAAC,CAAC,CAAC,8BAA8B,MAAM,CAAC,OAAO,qBAAqB,OAAO,CAAC,CAAC,CAAC;gCACjK,OAAO,CAAC,CAAC,CAAC;uBACnB,UAAU,CAAC,KAAK,uBAAuB,MAAM,CAAC,OAAO,oBAAoB,MAAM,CAAC,EAAE,cAAc,OAAO,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,gBAAgB,QAAQ,CAAC,EAAE,YAAY,SAAS,CAAC,SAAS;uCAClK,UAAU,CAAC,QAAQ,YAAY,SAAS,CAAC,SAAS,gBAAgB,QAAQ,CAAC,IAAI,iBAAiB,OAAO,CAAC,CAAC,CAAC;iCAChH,SAAS,CAAC,KAAK,gBAAgB,QAAQ,CAAC,IAAI,aAAa,OAAO,CAAC,CAAC,CAAC;oCAChE,MAAM,CAAC,OAAO;gCAClB,QAAQ,CAAC,aAAa;;+CAEP,MAAM,CAAC,MAAM;;CAE3D,CAAC;AAEF,MAAM,UAAU,qBAAqB,CACnC,IAAgB,EAChB,QAA6B,EAC7B,MAAiC;IAEjC,MAAM,cAAc,GAAG,EAAE,GAAG,wBAAwB,EAAE,GAAG,MAAM,EAAE,CAAC;IAClE,MAAM,KAAK,GAAG,QAAQ,EAAE,UAAU,CAAC,MAAM,IAAI,iBAAiB,CAAC;IAC/D,MAAM,WAAW,GAAG,QAAQ,EAAE,UAAU,CAAC,MAAM,IAAI,QAAQ,CAAC;IAC5D,MAAM,gBAAgB,GAAG,QAAQ,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,WAAW,CAAC;IAEvE,MAAM,WAAW,GAAG,cAAc,CAAC,eAAe,GAAG,CAAC;QACpD,CAAC,CAAC,uCAAuC,cAAc,CAAC,eAAe,IAAI;QAC3E,CAAC,CAAC,EAAE,CAAC;IAEP,gDAAgD;IAChD,MAAM,OAAO,GAAG,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACpD,MAAM,OAAO,GAAG,kBAAkB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAEpD,OAAO;;;;;IAKL,WAAW;WACJ,UAAU,CAAC,KAAK,CAAC;WACjB,UAAU,GAAG,aAAa;;;;UAI3B,UAAU,CAAC,KAAK,CAAC;;aAEd,IAAI,CAAC,WAAW,IAAI,UAAU,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC;qBACjD,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;;;;IAI/C,kBAAkB,CAAC,IAAI,EAAE,QAAQ,CAAC;;;IAGlC,wBAAwB,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC;;QAEhD,UAAU,CAAC,WAAW,CAAC;IAC3B,oBAAoB,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC;;;IAGhD,qBAAqB,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,CAAC;;;IAGhD,iBAAiB,CAAC,OAAO,EAAE,QAAQ,CAAC;;;IAGpC,0BAA0B,CAAC,IAAI,CAAC,eAAe,EAAE,QAAQ,CAAC;IAC1D,uBAAuB,CAAC,OAAO,EAAE,QAAQ,CAAC;;QAEtC,UAAU,CAAC,gBAAgB,CAAC;IAChC,oBAAoB,CAAC,IAAI,CAAC,eAAe,EAAE,QAAQ,CAAC;;QAEhD,UAAU,CAAC,WAAW,CAAC;IAC3B,iBAAiB,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC;;IAE7C,CAAC,GAAG,EAAE;QACN,MAAM,OAAO,GAAG,cAAc,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAChD,IAAI,OAAO,CAAC,MAAM,IAAI,CAAC;YAAE,OAAO,EAAE,CAAC;QACnC,MAAM,WAAW,GAAG,gBAAgB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACtD,OAAO,gCAAgC,qBAAqB,CAAC,WAAW,EAAE,QAAQ,CAAC,EAAE,CAAC;IACxF,CAAC,CAAC,EAAE;;;;;;IAMF,uBAAuB,CAAC,MAAM,CAAC;;QAE3B,CAAC;AACT,CAAC"}
1
+ {"version":3,"file":"dashboard.js","sourceRoot":"","sources":["../../src/core/dashboard.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"dispersion.d.ts","sourceRoot":"","sources":["../../src/core/dispersion.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EAGb,gBAAgB,EAChB,UAAU,EAEX,MAAM,YAAY,CAAC;AAyBpB;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,aAAa,EAAE,GAAG,gBAAgB,CA0E/E;AAID;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,aAAa,EAAE,GAAG,UAAU,CA4E9E"}
1
+ {"version":3,"file":"dispersion.d.ts","sourceRoot":"","sources":["../../src/core/dispersion.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EAGb,gBAAgB,EAChB,UAAU,EAEX,MAAM,YAAY,CAAC;AAyBpB;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,aAAa,EAAE,GAAG,gBAAgB,CA0E/E;AAID;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,aAAa,EAAE,GAAG,UAAU,CA6E9E"}
@@ -1,3 +1,4 @@
1
+ import { normalizeStats } from './builder.js';
1
2
  // --- Helpers ---
2
3
  const MISS_RESULT_TO_DIR = {
3
4
  missed_long: 'long',
@@ -103,10 +104,11 @@ export function computeAreaPerformance(scorecards) {
103
104
  const t = byType[sprintType];
104
105
  t.count++;
105
106
  t.totalDiff += diff;
106
- t.fairwayNum += sc.stats.fairways_hit;
107
- t.fairwayDen += sc.stats.fairways_total;
108
- t.girNum += sc.stats.greens_in_regulation;
109
- t.girDen += sc.stats.greens_total;
107
+ const stats = normalizeStats(sc.stats, (sc.shots ?? []).length);
108
+ t.fairwayNum += stats.fairways_hit;
109
+ t.fairwayDen += stats.fairways_total;
110
+ t.girNum += stats.greens_in_regulation;
111
+ t.girDen += stats.greens_total;
110
112
  // By par
111
113
  if (!byPar[sc.par]) {
112
114
  byPar[sc.par] = { count: 0, totalDiff: 0, overPar: 0 };