@nahisaho/musubix-skill-manager 3.4.5 → 3.7.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/dist/skills/build-fix/build-fix.d.ts +32 -0
- package/dist/skills/build-fix/build-fix.d.ts.map +1 -0
- package/dist/skills/build-fix/build-fix.js +396 -0
- package/dist/skills/build-fix/build-fix.js.map +1 -0
- package/dist/skills/build-fix/build-fix.test.d.ts +7 -0
- package/dist/skills/build-fix/build-fix.test.d.ts.map +1 -0
- package/dist/skills/build-fix/build-fix.test.js +131 -0
- package/dist/skills/build-fix/build-fix.test.js.map +1 -0
- package/dist/skills/build-fix/index.d.ts +8 -0
- package/dist/skills/build-fix/index.d.ts.map +1 -0
- package/dist/skills/build-fix/index.js +8 -0
- package/dist/skills/build-fix/index.js.map +1 -0
- package/dist/skills/build-fix/types.d.ts +149 -0
- package/dist/skills/build-fix/types.d.ts.map +1 -0
- package/dist/skills/build-fix/types.js +21 -0
- package/dist/skills/build-fix/types.js.map +1 -0
- package/dist/skills/checkpoint/checkpoint.d.ts +35 -0
- package/dist/skills/checkpoint/checkpoint.d.ts.map +1 -0
- package/dist/skills/checkpoint/checkpoint.js +399 -0
- package/dist/skills/checkpoint/checkpoint.js.map +1 -0
- package/dist/skills/checkpoint/checkpoint.test.d.ts +7 -0
- package/dist/skills/checkpoint/checkpoint.test.d.ts.map +1 -0
- package/dist/skills/checkpoint/checkpoint.test.js +106 -0
- package/dist/skills/checkpoint/checkpoint.test.js.map +1 -0
- package/dist/skills/checkpoint/index.d.ts +8 -0
- package/dist/skills/checkpoint/index.d.ts.map +1 -0
- package/dist/skills/checkpoint/index.js +8 -0
- package/dist/skills/checkpoint/index.js.map +1 -0
- package/dist/skills/checkpoint/types.d.ts +145 -0
- package/dist/skills/checkpoint/types.d.ts.map +1 -0
- package/dist/skills/checkpoint/types.js +21 -0
- package/dist/skills/checkpoint/types.js.map +1 -0
- package/dist/skills/codemap/codemap.d.ts +26 -0
- package/dist/skills/codemap/codemap.d.ts.map +1 -0
- package/dist/skills/codemap/codemap.js +560 -0
- package/dist/skills/codemap/codemap.js.map +1 -0
- package/dist/skills/codemap/codemap.test.d.ts +7 -0
- package/dist/skills/codemap/codemap.test.d.ts.map +1 -0
- package/dist/skills/codemap/codemap.test.js +100 -0
- package/dist/skills/codemap/codemap.test.js.map +1 -0
- package/dist/skills/codemap/index.d.ts +8 -0
- package/dist/skills/codemap/index.d.ts.map +1 -0
- package/dist/skills/codemap/index.js +8 -0
- package/dist/skills/codemap/index.js.map +1 -0
- package/dist/skills/codemap/types.d.ts +206 -0
- package/dist/skills/codemap/types.d.ts.map +1 -0
- package/dist/skills/codemap/types.js +27 -0
- package/dist/skills/codemap/types.js.map +1 -0
- package/dist/skills/context-optimizer/context-optimizer.d.ts +109 -0
- package/dist/skills/context-optimizer/context-optimizer.d.ts.map +1 -0
- package/dist/skills/context-optimizer/context-optimizer.js +280 -0
- package/dist/skills/context-optimizer/context-optimizer.js.map +1 -0
- package/dist/skills/context-optimizer/index.d.ts +9 -0
- package/dist/skills/context-optimizer/index.d.ts.map +1 -0
- package/dist/skills/context-optimizer/index.js +9 -0
- package/dist/skills/context-optimizer/index.js.map +1 -0
- package/dist/skills/context-optimizer/types.d.ts +133 -0
- package/dist/skills/context-optimizer/types.d.ts.map +1 -0
- package/dist/skills/context-optimizer/types.js +219 -0
- package/dist/skills/context-optimizer/types.js.map +1 -0
- package/dist/skills/e2e-runner/e2e-runner.d.ts +32 -0
- package/dist/skills/e2e-runner/e2e-runner.d.ts.map +1 -0
- package/dist/skills/e2e-runner/e2e-runner.js +285 -0
- package/dist/skills/e2e-runner/e2e-runner.js.map +1 -0
- package/dist/skills/e2e-runner/e2e-runner.test.d.ts +7 -0
- package/dist/skills/e2e-runner/e2e-runner.test.d.ts.map +1 -0
- package/dist/skills/e2e-runner/e2e-runner.test.js +212 -0
- package/dist/skills/e2e-runner/e2e-runner.test.js.map +1 -0
- package/dist/skills/e2e-runner/index.d.ts +12 -0
- package/dist/skills/e2e-runner/index.d.ts.map +1 -0
- package/dist/skills/e2e-runner/index.js +12 -0
- package/dist/skills/e2e-runner/index.js.map +1 -0
- package/dist/skills/e2e-runner/types.d.ts +176 -0
- package/dist/skills/e2e-runner/types.d.ts.map +1 -0
- package/dist/skills/e2e-runner/types.js +24 -0
- package/dist/skills/e2e-runner/types.js.map +1 -0
- package/dist/skills/eval-harness/eval-harness.d.ts +49 -0
- package/dist/skills/eval-harness/eval-harness.d.ts.map +1 -0
- package/dist/skills/eval-harness/eval-harness.js +349 -0
- package/dist/skills/eval-harness/eval-harness.js.map +1 -0
- package/dist/skills/eval-harness/eval-harness.test.d.ts +7 -0
- package/dist/skills/eval-harness/eval-harness.test.d.ts.map +1 -0
- package/dist/skills/eval-harness/eval-harness.test.js +105 -0
- package/dist/skills/eval-harness/eval-harness.test.js.map +1 -0
- package/dist/skills/eval-harness/index.d.ts +8 -0
- package/dist/skills/eval-harness/index.d.ts.map +1 -0
- package/dist/skills/eval-harness/index.js +8 -0
- package/dist/skills/eval-harness/index.js.map +1 -0
- package/dist/skills/eval-harness/types.d.ts +247 -0
- package/dist/skills/eval-harness/types.d.ts.map +1 -0
- package/dist/skills/eval-harness/types.js +21 -0
- package/dist/skills/eval-harness/types.js.map +1 -0
- package/dist/skills/index.d.ts +18 -0
- package/dist/skills/index.d.ts.map +1 -0
- package/dist/skills/index.js +20 -0
- package/dist/skills/index.js.map +1 -0
- package/dist/skills/learning-hooks/index.d.ts +12 -0
- package/dist/skills/learning-hooks/index.d.ts.map +1 -0
- package/dist/skills/learning-hooks/index.js +12 -0
- package/dist/skills/learning-hooks/index.js.map +1 -0
- package/dist/skills/learning-hooks/learning-hooks.d.ts +24 -0
- package/dist/skills/learning-hooks/learning-hooks.d.ts.map +1 -0
- package/dist/skills/learning-hooks/learning-hooks.js +491 -0
- package/dist/skills/learning-hooks/learning-hooks.js.map +1 -0
- package/dist/skills/learning-hooks/types.d.ts +261 -0
- package/dist/skills/learning-hooks/types.d.ts.map +1 -0
- package/dist/skills/learning-hooks/types.js +82 -0
- package/dist/skills/learning-hooks/types.js.map +1 -0
- package/dist/skills/refactor-cleaner/index.d.ts +13 -0
- package/dist/skills/refactor-cleaner/index.d.ts.map +1 -0
- package/dist/skills/refactor-cleaner/index.js +13 -0
- package/dist/skills/refactor-cleaner/index.js.map +1 -0
- package/dist/skills/refactor-cleaner/refactor-cleaner.d.ts +33 -0
- package/dist/skills/refactor-cleaner/refactor-cleaner.d.ts.map +1 -0
- package/dist/skills/refactor-cleaner/refactor-cleaner.js +264 -0
- package/dist/skills/refactor-cleaner/refactor-cleaner.js.map +1 -0
- package/dist/skills/refactor-cleaner/refactor-cleaner.test.d.ts +7 -0
- package/dist/skills/refactor-cleaner/refactor-cleaner.test.d.ts.map +1 -0
- package/dist/skills/refactor-cleaner/refactor-cleaner.test.js +229 -0
- package/dist/skills/refactor-cleaner/refactor-cleaner.test.js.map +1 -0
- package/dist/skills/refactor-cleaner/types.d.ts +167 -0
- package/dist/skills/refactor-cleaner/types.d.ts.map +1 -0
- package/dist/skills/refactor-cleaner/types.js +24 -0
- package/dist/skills/refactor-cleaner/types.js.map +1 -0
- package/dist/skills/session-manager/index.d.ts +10 -0
- package/dist/skills/session-manager/index.d.ts.map +1 -0
- package/dist/skills/session-manager/index.js +10 -0
- package/dist/skills/session-manager/index.js.map +1 -0
- package/dist/skills/session-manager/session-store.d.ts +34 -0
- package/dist/skills/session-manager/session-store.d.ts.map +1 -0
- package/dist/skills/session-manager/session-store.js +495 -0
- package/dist/skills/session-manager/session-store.js.map +1 -0
- package/dist/skills/session-manager/todo-integration.d.ts +102 -0
- package/dist/skills/session-manager/todo-integration.d.ts.map +1 -0
- package/dist/skills/session-manager/todo-integration.js +249 -0
- package/dist/skills/session-manager/todo-integration.js.map +1 -0
- package/dist/skills/session-manager/types.d.ts +156 -0
- package/dist/skills/session-manager/types.d.ts.map +1 -0
- package/dist/skills/session-manager/types.js +21 -0
- package/dist/skills/session-manager/types.js.map +1 -0
- package/dist/skills/verification-loop/index.d.ts +8 -0
- package/dist/skills/verification-loop/index.d.ts.map +1 -0
- package/dist/skills/verification-loop/index.js +8 -0
- package/dist/skills/verification-loop/index.js.map +1 -0
- package/dist/skills/verification-loop/types.d.ts +183 -0
- package/dist/skills/verification-loop/types.d.ts.map +1 -0
- package/dist/skills/verification-loop/types.js +26 -0
- package/dist/skills/verification-loop/types.js.map +1 -0
- package/dist/skills/verification-loop/verification-loop.d.ts +27 -0
- package/dist/skills/verification-loop/verification-loop.d.ts.map +1 -0
- package/dist/skills/verification-loop/verification-loop.js +415 -0
- package/dist/skills/verification-loop/verification-loop.js.map +1 -0
- package/dist/skills/verification-loop/verification-loop.test.d.ts +7 -0
- package/dist/skills/verification-loop/verification-loop.test.d.ts.map +1 -0
- package/dist/skills/verification-loop/verification-loop.test.js +76 -0
- package/dist/skills/verification-loop/verification-loop.test.js.map +1 -0
- package/package.json +9 -9
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 nahisaho
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Build Fix Implementation
|
|
3
|
+
*
|
|
4
|
+
* REQ-BF-001: Build Error Analysis
|
|
5
|
+
* REQ-BF-002: Iterative Fix Strategy
|
|
6
|
+
* REQ-BF-003: Fix Report
|
|
7
|
+
*
|
|
8
|
+
* @packageDocumentation
|
|
9
|
+
*/
|
|
10
|
+
import { type BuildError, type BuildFixConfig, type BuildFixManager, type FixReport } from './types.js';
|
|
11
|
+
/**
|
|
12
|
+
* Create build fix manager
|
|
13
|
+
*
|
|
14
|
+
* @param config - Configuration options
|
|
15
|
+
* @returns BuildFixManager instance
|
|
16
|
+
*/
|
|
17
|
+
export declare function createBuildFixManager(config?: Partial<BuildFixConfig>): BuildFixManager;
|
|
18
|
+
/**
|
|
19
|
+
* Format fix report as markdown
|
|
20
|
+
*
|
|
21
|
+
* @param report - Fix report
|
|
22
|
+
* @returns Markdown string
|
|
23
|
+
*/
|
|
24
|
+
export declare function formatFixReportMarkdown(report: FixReport): string;
|
|
25
|
+
/**
|
|
26
|
+
* Format build errors as markdown
|
|
27
|
+
*
|
|
28
|
+
* @param errors - Array of build errors
|
|
29
|
+
* @returns Markdown string
|
|
30
|
+
*/
|
|
31
|
+
export declare function formatBuildErrorsMarkdown(errors: BuildError[]): string;
|
|
32
|
+
//# sourceMappingURL=build-fix.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"build-fix.d.ts","sourceRoot":"","sources":["../../../src/skills/build-fix/build-fix.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH,OAAO,EACL,KAAK,UAAU,EAGf,KAAK,cAAc,EACnB,KAAK,eAAe,EAGpB,KAAK,SAAS,EAGf,MAAM,YAAY,CAAC;AA+EpB;;;;;GAKG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,GAAE,OAAO,CAAC,cAAc,CAAM,GACnC,eAAe,CA4RjB;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,SAAS,GAAG,MAAM,CA2BjE;AAED;;;;;GAKG;AACH,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,CA8CtE"}
|
|
@@ -0,0 +1,396 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Build Fix Implementation
|
|
3
|
+
*
|
|
4
|
+
* REQ-BF-001: Build Error Analysis
|
|
5
|
+
* REQ-BF-002: Iterative Fix Strategy
|
|
6
|
+
* REQ-BF-003: Fix Report
|
|
7
|
+
*
|
|
8
|
+
* @packageDocumentation
|
|
9
|
+
*/
|
|
10
|
+
import { exec } from 'child_process';
|
|
11
|
+
import { promisify } from 'util';
|
|
12
|
+
import { DEFAULT_BUILD_FIX_CONFIG, } from './types.js';
|
|
13
|
+
const execAsync = promisify(exec);
|
|
14
|
+
/**
|
|
15
|
+
* Generate error ID
|
|
16
|
+
*/
|
|
17
|
+
function generateErrorId(category, index) {
|
|
18
|
+
return `${category}-${(index + 1).toString().padStart(3, '0')}`;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Generate report ID
|
|
22
|
+
*/
|
|
23
|
+
function generateReportId() {
|
|
24
|
+
const timestamp = new Date().toISOString().replace(/[:.]/g, '-');
|
|
25
|
+
return `fix-report-${timestamp}`;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Determine error category from message
|
|
29
|
+
*/
|
|
30
|
+
function categorizeError(message, code) {
|
|
31
|
+
// TypeScript errors
|
|
32
|
+
if (code?.startsWith('TS') || /TS\d{4,5}/.test(message)) {
|
|
33
|
+
if (/cannot find|not found|does not exist/i.test(message)) {
|
|
34
|
+
return 'import-error';
|
|
35
|
+
}
|
|
36
|
+
return 'type-error';
|
|
37
|
+
}
|
|
38
|
+
// Syntax errors
|
|
39
|
+
if (/syntax|unexpected|unterminated/i.test(message)) {
|
|
40
|
+
return 'syntax-error';
|
|
41
|
+
}
|
|
42
|
+
// Import/module errors
|
|
43
|
+
if (/module|import|require|cannot find module/i.test(message)) {
|
|
44
|
+
return 'import-error';
|
|
45
|
+
}
|
|
46
|
+
// ESLint errors
|
|
47
|
+
if (/eslint|@typescript-eslint/i.test(message)) {
|
|
48
|
+
return 'lint-error';
|
|
49
|
+
}
|
|
50
|
+
// Config errors
|
|
51
|
+
if (/config|tsconfig|webpack|vite/i.test(message)) {
|
|
52
|
+
return 'config-error';
|
|
53
|
+
}
|
|
54
|
+
// Dependency errors
|
|
55
|
+
if (/peer dep|version|incompatible/i.test(message)) {
|
|
56
|
+
return 'dependency-error';
|
|
57
|
+
}
|
|
58
|
+
return 'unknown';
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Determine error priority
|
|
62
|
+
*/
|
|
63
|
+
function determineErrorPriority(category) {
|
|
64
|
+
switch (category) {
|
|
65
|
+
case 'type-error':
|
|
66
|
+
case 'import-error':
|
|
67
|
+
case 'syntax-error':
|
|
68
|
+
return 'high';
|
|
69
|
+
case 'lint-error':
|
|
70
|
+
case 'config-error':
|
|
71
|
+
return 'medium';
|
|
72
|
+
case 'dependency-error':
|
|
73
|
+
case 'unknown':
|
|
74
|
+
return 'low';
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Create build fix manager
|
|
79
|
+
*
|
|
80
|
+
* @param config - Configuration options
|
|
81
|
+
* @returns BuildFixManager instance
|
|
82
|
+
*/
|
|
83
|
+
export function createBuildFixManager(config = {}) {
|
|
84
|
+
const fullConfig = {
|
|
85
|
+
...DEFAULT_BUILD_FIX_CONFIG,
|
|
86
|
+
...config,
|
|
87
|
+
};
|
|
88
|
+
const fixedFiles = new Set();
|
|
89
|
+
return {
|
|
90
|
+
analyzeErrors(output) {
|
|
91
|
+
const errors = [];
|
|
92
|
+
const lines = output.split('\n');
|
|
93
|
+
// TypeScript error pattern: file(line,col): error TSxxxx: message
|
|
94
|
+
const tsErrorRegex = /^(.+?)\((\d+),(\d+)\):\s*error\s+(TS\d+):\s*(.+)$/;
|
|
95
|
+
// Generic error pattern: file:line:col: error message
|
|
96
|
+
const genericErrorRegex = /^(.+?):(\d+):(\d+):\s*(?:error|Error):\s*(.+)$/;
|
|
97
|
+
// Simple error pattern: error: message or Error: message
|
|
98
|
+
const simpleErrorRegex = /^(?:error|Error):\s*(.+)$/;
|
|
99
|
+
for (const line of lines) {
|
|
100
|
+
let match;
|
|
101
|
+
if ((match = line.match(tsErrorRegex))) {
|
|
102
|
+
const [, file, lineNum, col, code, message] = match;
|
|
103
|
+
const category = categorizeError(message, code);
|
|
104
|
+
errors.push({
|
|
105
|
+
id: generateErrorId(category, errors.length),
|
|
106
|
+
category,
|
|
107
|
+
priority: determineErrorPriority(category),
|
|
108
|
+
code,
|
|
109
|
+
message,
|
|
110
|
+
file,
|
|
111
|
+
line: parseInt(lineNum, 10),
|
|
112
|
+
column: parseInt(col, 10),
|
|
113
|
+
});
|
|
114
|
+
}
|
|
115
|
+
else if ((match = line.match(genericErrorRegex))) {
|
|
116
|
+
const [, file, lineNum, col, message] = match;
|
|
117
|
+
const category = categorizeError(message);
|
|
118
|
+
errors.push({
|
|
119
|
+
id: generateErrorId(category, errors.length),
|
|
120
|
+
category,
|
|
121
|
+
priority: determineErrorPriority(category),
|
|
122
|
+
message,
|
|
123
|
+
file,
|
|
124
|
+
line: parseInt(lineNum, 10),
|
|
125
|
+
column: parseInt(col, 10),
|
|
126
|
+
});
|
|
127
|
+
}
|
|
128
|
+
else if ((match = line.match(simpleErrorRegex))) {
|
|
129
|
+
const [, message] = match;
|
|
130
|
+
const category = categorizeError(message);
|
|
131
|
+
errors.push({
|
|
132
|
+
id: generateErrorId(category, errors.length),
|
|
133
|
+
category,
|
|
134
|
+
priority: determineErrorPriority(category),
|
|
135
|
+
message,
|
|
136
|
+
});
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
return errors;
|
|
140
|
+
},
|
|
141
|
+
async runBuild() {
|
|
142
|
+
const startTime = Date.now();
|
|
143
|
+
try {
|
|
144
|
+
const { stdout, stderr } = await execAsync(fullConfig.buildCommand, {
|
|
145
|
+
cwd: fullConfig.projectRoot,
|
|
146
|
+
timeout: 300000, // 5 minutes
|
|
147
|
+
});
|
|
148
|
+
const output = stdout + stderr;
|
|
149
|
+
const errors = this.analyzeErrors(output);
|
|
150
|
+
return {
|
|
151
|
+
success: errors.length === 0,
|
|
152
|
+
stdout,
|
|
153
|
+
stderr,
|
|
154
|
+
errors,
|
|
155
|
+
duration: Date.now() - startTime,
|
|
156
|
+
};
|
|
157
|
+
}
|
|
158
|
+
catch (error) {
|
|
159
|
+
const duration = Date.now() - startTime;
|
|
160
|
+
const errorObj = error;
|
|
161
|
+
const output = error instanceof Error
|
|
162
|
+
? (errorObj.stdout || '') +
|
|
163
|
+
(errorObj.stderr || '') +
|
|
164
|
+
error.message
|
|
165
|
+
: String(error);
|
|
166
|
+
const errors = this.analyzeErrors(output);
|
|
167
|
+
return {
|
|
168
|
+
success: false,
|
|
169
|
+
stdout: '',
|
|
170
|
+
stderr: output,
|
|
171
|
+
errors: errors.length > 0 ? errors : [{
|
|
172
|
+
id: 'unknown-001',
|
|
173
|
+
category: 'unknown',
|
|
174
|
+
priority: 'high',
|
|
175
|
+
message: output.slice(0, 500),
|
|
176
|
+
}],
|
|
177
|
+
duration,
|
|
178
|
+
};
|
|
179
|
+
}
|
|
180
|
+
},
|
|
181
|
+
generateFixStrategy(error) {
|
|
182
|
+
const steps = [];
|
|
183
|
+
let estimatedImpact = 'low';
|
|
184
|
+
let requiresUserApproval = false;
|
|
185
|
+
switch (error.category) {
|
|
186
|
+
case 'type-error':
|
|
187
|
+
steps.push(`ファイル ${error.file || 'unknown'} を開く`);
|
|
188
|
+
steps.push(`行 ${error.line || 'unknown'} を確認`);
|
|
189
|
+
steps.push('型定義を確認または追加');
|
|
190
|
+
steps.push('型アサーションまたは型ガードを検討');
|
|
191
|
+
estimatedImpact = 'high';
|
|
192
|
+
break;
|
|
193
|
+
case 'import-error':
|
|
194
|
+
steps.push('インポートパスを確認');
|
|
195
|
+
steps.push('モジュールが存在するか確認');
|
|
196
|
+
steps.push('必要に応じて npm install を実行');
|
|
197
|
+
steps.push('tsconfig.json の paths を確認');
|
|
198
|
+
estimatedImpact = 'high';
|
|
199
|
+
break;
|
|
200
|
+
case 'syntax-error':
|
|
201
|
+
steps.push(`ファイル ${error.file || 'unknown'} を開く`);
|
|
202
|
+
steps.push(`行 ${error.line || 'unknown'} の構文を確認`);
|
|
203
|
+
steps.push('括弧、セミコロン、クォートの対応を確認');
|
|
204
|
+
estimatedImpact = 'high';
|
|
205
|
+
break;
|
|
206
|
+
case 'lint-error':
|
|
207
|
+
steps.push('ESLint ルールを確認');
|
|
208
|
+
steps.push('npm run lint:fix を試行');
|
|
209
|
+
steps.push('必要に応じて eslint-disable コメントを追加');
|
|
210
|
+
estimatedImpact = 'medium';
|
|
211
|
+
break;
|
|
212
|
+
case 'config-error':
|
|
213
|
+
steps.push('設定ファイルの構文を確認');
|
|
214
|
+
steps.push('必要なフィールドが存在するか確認');
|
|
215
|
+
steps.push('公式ドキュメントと比較');
|
|
216
|
+
estimatedImpact = 'medium';
|
|
217
|
+
requiresUserApproval = true;
|
|
218
|
+
break;
|
|
219
|
+
case 'dependency-error':
|
|
220
|
+
steps.push('package.json を確認');
|
|
221
|
+
steps.push('npm ls でバージョン競合を確認');
|
|
222
|
+
steps.push('node_modules を削除して再インストール');
|
|
223
|
+
estimatedImpact = 'low';
|
|
224
|
+
requiresUserApproval = true;
|
|
225
|
+
break;
|
|
226
|
+
default:
|
|
227
|
+
steps.push('エラーメッセージを詳細に確認');
|
|
228
|
+
steps.push('関連するファイルを調査');
|
|
229
|
+
requiresUserApproval = true;
|
|
230
|
+
}
|
|
231
|
+
return {
|
|
232
|
+
errorId: error.id,
|
|
233
|
+
steps,
|
|
234
|
+
estimatedImpact,
|
|
235
|
+
requiresUserApproval,
|
|
236
|
+
};
|
|
237
|
+
},
|
|
238
|
+
async applyFix(strategy) {
|
|
239
|
+
// This is a stub - actual implementation would modify files
|
|
240
|
+
// For safety, this should require explicit approval in production
|
|
241
|
+
console.log(`Applying fix strategy for error ${strategy.errorId}`);
|
|
242
|
+
console.log(`Steps: ${strategy.steps.join(' → ')}`);
|
|
243
|
+
return false; // Return false to indicate manual intervention needed
|
|
244
|
+
},
|
|
245
|
+
async runIterativeFix() {
|
|
246
|
+
const id = generateReportId();
|
|
247
|
+
const startedAt = new Date();
|
|
248
|
+
const attempts = [];
|
|
249
|
+
let iteration = 0;
|
|
250
|
+
let errorsFixed = 0;
|
|
251
|
+
// Initial build
|
|
252
|
+
let buildOutput = await this.runBuild();
|
|
253
|
+
let previousErrorCount = buildOutput.errors.length;
|
|
254
|
+
while (!buildOutput.success &&
|
|
255
|
+
iteration < fullConfig.maxIterations &&
|
|
256
|
+
buildOutput.errors.length > 0) {
|
|
257
|
+
iteration++;
|
|
258
|
+
// Get most impactful error
|
|
259
|
+
const [mostImpactful] = this.getMostImpactfulErrors(buildOutput.errors, 1);
|
|
260
|
+
if (!mostImpactful)
|
|
261
|
+
break;
|
|
262
|
+
const strategy = this.generateFixStrategy(mostImpactful);
|
|
263
|
+
// Skip if requires approval and auto-fix is disabled
|
|
264
|
+
if (strategy.requiresUserApproval && !fullConfig.autoFix) {
|
|
265
|
+
break;
|
|
266
|
+
}
|
|
267
|
+
const fixSuccess = await this.applyFix(strategy);
|
|
268
|
+
// Track modified files
|
|
269
|
+
if (mostImpactful.file) {
|
|
270
|
+
fixedFiles.add(mostImpactful.file);
|
|
271
|
+
}
|
|
272
|
+
// Re-run build
|
|
273
|
+
buildOutput = await this.runBuild();
|
|
274
|
+
const newErrorsIntroduced = Math.max(0, buildOutput.errors.length - (previousErrorCount - 1));
|
|
275
|
+
attempts.push({
|
|
276
|
+
iteration,
|
|
277
|
+
error: mostImpactful,
|
|
278
|
+
fix: strategy.steps.join(' → '),
|
|
279
|
+
success: fixSuccess && buildOutput.errors.length < previousErrorCount,
|
|
280
|
+
newErrorsIntroduced,
|
|
281
|
+
timestamp: new Date(),
|
|
282
|
+
});
|
|
283
|
+
if (buildOutput.errors.length < previousErrorCount) {
|
|
284
|
+
errorsFixed++;
|
|
285
|
+
}
|
|
286
|
+
previousErrorCount = buildOutput.errors.length;
|
|
287
|
+
}
|
|
288
|
+
const warnings = [];
|
|
289
|
+
if (iteration >= fullConfig.maxIterations) {
|
|
290
|
+
warnings.push(`最大反復回数 (${fullConfig.maxIterations}) に達しました`);
|
|
291
|
+
}
|
|
292
|
+
if (buildOutput.errors.length > 0) {
|
|
293
|
+
warnings.push(`${buildOutput.errors.length}個のエラーが残存しています`);
|
|
294
|
+
}
|
|
295
|
+
return {
|
|
296
|
+
id,
|
|
297
|
+
startedAt,
|
|
298
|
+
completedAt: new Date(),
|
|
299
|
+
totalIterations: iteration,
|
|
300
|
+
errorsFixed,
|
|
301
|
+
errorsRemaining: buildOutput.errors.length,
|
|
302
|
+
filesModified: Array.from(fixedFiles),
|
|
303
|
+
warnings,
|
|
304
|
+
attempts,
|
|
305
|
+
};
|
|
306
|
+
},
|
|
307
|
+
getMostImpactfulErrors(errors, limit = 5) {
|
|
308
|
+
const priorityOrder = {
|
|
309
|
+
high: 0,
|
|
310
|
+
medium: 1,
|
|
311
|
+
low: 2,
|
|
312
|
+
};
|
|
313
|
+
return [...errors]
|
|
314
|
+
.sort((a, b) => priorityOrder[a.priority] - priorityOrder[b.priority])
|
|
315
|
+
.slice(0, limit);
|
|
316
|
+
},
|
|
317
|
+
getConfig() {
|
|
318
|
+
return fullConfig;
|
|
319
|
+
},
|
|
320
|
+
};
|
|
321
|
+
}
|
|
322
|
+
/**
|
|
323
|
+
* Format fix report as markdown
|
|
324
|
+
*
|
|
325
|
+
* @param report - Fix report
|
|
326
|
+
* @returns Markdown string
|
|
327
|
+
*/
|
|
328
|
+
export function formatFixReportMarkdown(report) {
|
|
329
|
+
const duration = (report.completedAt.getTime() - report.startedAt.getTime()) / 1000;
|
|
330
|
+
const filesSection = report.filesModified.length > 0
|
|
331
|
+
? report.filesModified.map((f) => ` - ${f}`).join('\n')
|
|
332
|
+
: ' (なし)';
|
|
333
|
+
const warningsSection = report.warnings.length > 0
|
|
334
|
+
? report.warnings.map((w) => ` ⚠️ ${w}`).join('\n')
|
|
335
|
+
: ' (なし)';
|
|
336
|
+
return `Build Fix Report
|
|
337
|
+
================
|
|
338
|
+
|
|
339
|
+
修正したエラー数: ${report.errorsFixed}
|
|
340
|
+
残存エラー数: ${report.errorsRemaining}
|
|
341
|
+
反復回数: ${report.totalIterations}
|
|
342
|
+
所要時間: ${duration.toFixed(1)}s
|
|
343
|
+
|
|
344
|
+
変更したファイル:
|
|
345
|
+
${filesSection}
|
|
346
|
+
|
|
347
|
+
警告:
|
|
348
|
+
${warningsSection}`;
|
|
349
|
+
}
|
|
350
|
+
/**
|
|
351
|
+
* Format build errors as markdown
|
|
352
|
+
*
|
|
353
|
+
* @param errors - Array of build errors
|
|
354
|
+
* @returns Markdown string
|
|
355
|
+
*/
|
|
356
|
+
export function formatBuildErrorsMarkdown(errors) {
|
|
357
|
+
if (errors.length === 0) {
|
|
358
|
+
return '✅ ビルドエラーなし';
|
|
359
|
+
}
|
|
360
|
+
const grouped = {
|
|
361
|
+
'type-error': [],
|
|
362
|
+
'import-error': [],
|
|
363
|
+
'syntax-error': [],
|
|
364
|
+
'lint-error': [],
|
|
365
|
+
'config-error': [],
|
|
366
|
+
'dependency-error': [],
|
|
367
|
+
'unknown': [],
|
|
368
|
+
};
|
|
369
|
+
for (const error of errors) {
|
|
370
|
+
grouped[error.category].push(error);
|
|
371
|
+
}
|
|
372
|
+
const sections = [];
|
|
373
|
+
const categoryLabels = {
|
|
374
|
+
'type-error': 'Type Errors',
|
|
375
|
+
'import-error': 'Import Errors',
|
|
376
|
+
'syntax-error': 'Syntax Errors',
|
|
377
|
+
'lint-error': 'Lint Errors',
|
|
378
|
+
'config-error': 'Config Errors',
|
|
379
|
+
'dependency-error': 'Dependency Errors',
|
|
380
|
+
'unknown': 'Other Errors',
|
|
381
|
+
};
|
|
382
|
+
for (const [category, categoryErrors] of Object.entries(grouped)) {
|
|
383
|
+
if (categoryErrors.length === 0)
|
|
384
|
+
continue;
|
|
385
|
+
const label = categoryLabels[category];
|
|
386
|
+
const errorList = categoryErrors
|
|
387
|
+
.map((e) => {
|
|
388
|
+
const location = e.file ? `${e.file}:${e.line || '?'}` : '(unknown)';
|
|
389
|
+
return ` - [${e.priority.toUpperCase()}] ${location}: ${e.message}`;
|
|
390
|
+
})
|
|
391
|
+
.join('\n');
|
|
392
|
+
sections.push(`### ${label} (${categoryErrors.length})\n${errorList}`);
|
|
393
|
+
}
|
|
394
|
+
return `Build Errors (${errors.length} total)\n${'='.repeat(30)}\n\n${sections.join('\n\n')}`;
|
|
395
|
+
}
|
|
396
|
+
//# sourceMappingURL=build-fix.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"build-fix.js","sourceRoot":"","sources":["../../../src/skills/build-fix/build-fix.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"build-fix.test.d.ts","sourceRoot":"","sources":["../../../src/skills/build-fix/build-fix.test.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Build Fix Tests
|
|
3
|
+
*
|
|
4
|
+
* @see REQ-BF-001〜003
|
|
5
|
+
*/
|
|
6
|
+
import { describe, it, expect, beforeEach } from 'vitest';
|
|
7
|
+
import { createBuildFixManager, formatFixReportMarkdown, formatBuildErrorsMarkdown, DEFAULT_BUILD_FIX_CONFIG, } from '../build-fix/index.js';
|
|
8
|
+
describe('BuildFixManager', () => {
|
|
9
|
+
let manager;
|
|
10
|
+
beforeEach(() => {
|
|
11
|
+
manager = createBuildFixManager();
|
|
12
|
+
});
|
|
13
|
+
describe('createBuildFixManager', () => {
|
|
14
|
+
it('should create manager with default config', () => {
|
|
15
|
+
expect(manager).toBeDefined();
|
|
16
|
+
const config = manager.getConfig();
|
|
17
|
+
expect(config.maxIterations).toBe(DEFAULT_BUILD_FIX_CONFIG.maxIterations);
|
|
18
|
+
expect(config.autoFix).toBe(DEFAULT_BUILD_FIX_CONFIG.autoFix);
|
|
19
|
+
});
|
|
20
|
+
it('should create manager with custom config', () => {
|
|
21
|
+
const customConfig = {
|
|
22
|
+
maxIterations: 5,
|
|
23
|
+
autoFix: true,
|
|
24
|
+
};
|
|
25
|
+
const customManager = createBuildFixManager(customConfig);
|
|
26
|
+
const config = customManager.getConfig();
|
|
27
|
+
expect(config.maxIterations).toBe(5);
|
|
28
|
+
expect(config.autoFix).toBe(true);
|
|
29
|
+
});
|
|
30
|
+
});
|
|
31
|
+
describe('runBuild', () => {
|
|
32
|
+
it.skip('should run build and parse errors (slow test - runs actual build)', async () => {
|
|
33
|
+
const result = await manager.runBuild();
|
|
34
|
+
expect(result.success).toBeDefined();
|
|
35
|
+
expect(result.errors).toBeInstanceOf(Array);
|
|
36
|
+
});
|
|
37
|
+
});
|
|
38
|
+
describe('analyzeErrors', () => {
|
|
39
|
+
it('should analyze build output', () => {
|
|
40
|
+
const output = `
|
|
41
|
+
src/index.ts(10,5): error TS2345: Type 'string' is not assignable to type 'number'.
|
|
42
|
+
`;
|
|
43
|
+
const errors = manager.analyzeErrors(output);
|
|
44
|
+
expect(errors).toBeInstanceOf(Array);
|
|
45
|
+
});
|
|
46
|
+
});
|
|
47
|
+
describe('generateFixStrategy', () => {
|
|
48
|
+
it('should generate fix strategy for error', () => {
|
|
49
|
+
const error = {
|
|
50
|
+
id: 'err-1',
|
|
51
|
+
category: 'type-error',
|
|
52
|
+
priority: 'high',
|
|
53
|
+
message: "Type 'string' is not assignable to type 'number'",
|
|
54
|
+
file: 'src/index.ts',
|
|
55
|
+
line: 10,
|
|
56
|
+
column: 5,
|
|
57
|
+
code: 'TS2345',
|
|
58
|
+
};
|
|
59
|
+
const strategy = manager.generateFixStrategy(error);
|
|
60
|
+
expect(strategy.errorId).toBe('err-1');
|
|
61
|
+
expect(strategy.steps).toBeInstanceOf(Array);
|
|
62
|
+
});
|
|
63
|
+
});
|
|
64
|
+
describe('applyFix', () => {
|
|
65
|
+
it('should apply fix and return result', async () => {
|
|
66
|
+
const strategy = {
|
|
67
|
+
errorId: 'err-1',
|
|
68
|
+
steps: ['Add type annotation'],
|
|
69
|
+
estimatedImpact: 'high',
|
|
70
|
+
requiresUserApproval: false,
|
|
71
|
+
};
|
|
72
|
+
const result = await manager.applyFix(strategy);
|
|
73
|
+
expect(result).toBeDefined();
|
|
74
|
+
});
|
|
75
|
+
});
|
|
76
|
+
describe('runIterativeFix', () => {
|
|
77
|
+
it.skip('should run iterative build fix loop (slow test - runs actual build)', async () => {
|
|
78
|
+
const report = await manager.runIterativeFix();
|
|
79
|
+
expect(report.id).toBeDefined();
|
|
80
|
+
expect(report.totalIterations).toBeGreaterThanOrEqual(0);
|
|
81
|
+
expect(report.errorsFixed).toBeDefined();
|
|
82
|
+
expect(report.errorsRemaining).toBeDefined();
|
|
83
|
+
});
|
|
84
|
+
});
|
|
85
|
+
describe('getMostImpactfulErrors', () => {
|
|
86
|
+
it('should get most impactful errors', () => {
|
|
87
|
+
const errors = [
|
|
88
|
+
{ id: 'e1', category: 'type-error', priority: 'high', message: 'msg1' },
|
|
89
|
+
{ id: 'e2', category: 'lint-error', priority: 'low', message: 'msg2' },
|
|
90
|
+
{ id: 'e3', category: 'import-error', priority: 'medium', message: 'msg3' },
|
|
91
|
+
];
|
|
92
|
+
const result = manager.getMostImpactfulErrors(errors, 2);
|
|
93
|
+
expect(result.length).toBe(2);
|
|
94
|
+
});
|
|
95
|
+
});
|
|
96
|
+
});
|
|
97
|
+
describe('Format functions', () => {
|
|
98
|
+
it('should format fix report as markdown', () => {
|
|
99
|
+
const report = {
|
|
100
|
+
id: 'report-1',
|
|
101
|
+
startedAt: new Date(),
|
|
102
|
+
completedAt: new Date(),
|
|
103
|
+
totalIterations: 3,
|
|
104
|
+
errorsFixed: 4,
|
|
105
|
+
errorsRemaining: 1,
|
|
106
|
+
filesModified: ['src/index.ts'],
|
|
107
|
+
warnings: [],
|
|
108
|
+
attempts: [],
|
|
109
|
+
};
|
|
110
|
+
const markdown = formatFixReportMarkdown(report);
|
|
111
|
+
expect(markdown).toContain('Build Fix Report');
|
|
112
|
+
});
|
|
113
|
+
it('should format build errors as markdown', () => {
|
|
114
|
+
const errors = [
|
|
115
|
+
{
|
|
116
|
+
id: 'err-1',
|
|
117
|
+
category: 'type-error',
|
|
118
|
+
priority: 'high',
|
|
119
|
+
message: 'Type mismatch',
|
|
120
|
+
file: 'src/index.ts',
|
|
121
|
+
line: 10,
|
|
122
|
+
column: 5,
|
|
123
|
+
code: 'TS2345',
|
|
124
|
+
},
|
|
125
|
+
];
|
|
126
|
+
const markdown = formatBuildErrorsMarkdown(errors);
|
|
127
|
+
expect(markdown).toContain('Build');
|
|
128
|
+
expect(markdown).toContain('src/index.ts');
|
|
129
|
+
});
|
|
130
|
+
});
|
|
131
|
+
//# sourceMappingURL=build-fix.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"build-fix.test.js","sourceRoot":"","sources":["../../../src/skills/build-fix/build-fix.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/skills/build-fix/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/skills/build-fix/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,YAAY,CAAC;AAC3B,cAAc,gBAAgB,CAAC"}
|