@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.
Files changed (158) hide show
  1. package/LICENSE +21 -0
  2. package/dist/skills/build-fix/build-fix.d.ts +32 -0
  3. package/dist/skills/build-fix/build-fix.d.ts.map +1 -0
  4. package/dist/skills/build-fix/build-fix.js +396 -0
  5. package/dist/skills/build-fix/build-fix.js.map +1 -0
  6. package/dist/skills/build-fix/build-fix.test.d.ts +7 -0
  7. package/dist/skills/build-fix/build-fix.test.d.ts.map +1 -0
  8. package/dist/skills/build-fix/build-fix.test.js +131 -0
  9. package/dist/skills/build-fix/build-fix.test.js.map +1 -0
  10. package/dist/skills/build-fix/index.d.ts +8 -0
  11. package/dist/skills/build-fix/index.d.ts.map +1 -0
  12. package/dist/skills/build-fix/index.js +8 -0
  13. package/dist/skills/build-fix/index.js.map +1 -0
  14. package/dist/skills/build-fix/types.d.ts +149 -0
  15. package/dist/skills/build-fix/types.d.ts.map +1 -0
  16. package/dist/skills/build-fix/types.js +21 -0
  17. package/dist/skills/build-fix/types.js.map +1 -0
  18. package/dist/skills/checkpoint/checkpoint.d.ts +35 -0
  19. package/dist/skills/checkpoint/checkpoint.d.ts.map +1 -0
  20. package/dist/skills/checkpoint/checkpoint.js +399 -0
  21. package/dist/skills/checkpoint/checkpoint.js.map +1 -0
  22. package/dist/skills/checkpoint/checkpoint.test.d.ts +7 -0
  23. package/dist/skills/checkpoint/checkpoint.test.d.ts.map +1 -0
  24. package/dist/skills/checkpoint/checkpoint.test.js +106 -0
  25. package/dist/skills/checkpoint/checkpoint.test.js.map +1 -0
  26. package/dist/skills/checkpoint/index.d.ts +8 -0
  27. package/dist/skills/checkpoint/index.d.ts.map +1 -0
  28. package/dist/skills/checkpoint/index.js +8 -0
  29. package/dist/skills/checkpoint/index.js.map +1 -0
  30. package/dist/skills/checkpoint/types.d.ts +145 -0
  31. package/dist/skills/checkpoint/types.d.ts.map +1 -0
  32. package/dist/skills/checkpoint/types.js +21 -0
  33. package/dist/skills/checkpoint/types.js.map +1 -0
  34. package/dist/skills/codemap/codemap.d.ts +26 -0
  35. package/dist/skills/codemap/codemap.d.ts.map +1 -0
  36. package/dist/skills/codemap/codemap.js +560 -0
  37. package/dist/skills/codemap/codemap.js.map +1 -0
  38. package/dist/skills/codemap/codemap.test.d.ts +7 -0
  39. package/dist/skills/codemap/codemap.test.d.ts.map +1 -0
  40. package/dist/skills/codemap/codemap.test.js +100 -0
  41. package/dist/skills/codemap/codemap.test.js.map +1 -0
  42. package/dist/skills/codemap/index.d.ts +8 -0
  43. package/dist/skills/codemap/index.d.ts.map +1 -0
  44. package/dist/skills/codemap/index.js +8 -0
  45. package/dist/skills/codemap/index.js.map +1 -0
  46. package/dist/skills/codemap/types.d.ts +206 -0
  47. package/dist/skills/codemap/types.d.ts.map +1 -0
  48. package/dist/skills/codemap/types.js +27 -0
  49. package/dist/skills/codemap/types.js.map +1 -0
  50. package/dist/skills/context-optimizer/context-optimizer.d.ts +109 -0
  51. package/dist/skills/context-optimizer/context-optimizer.d.ts.map +1 -0
  52. package/dist/skills/context-optimizer/context-optimizer.js +280 -0
  53. package/dist/skills/context-optimizer/context-optimizer.js.map +1 -0
  54. package/dist/skills/context-optimizer/index.d.ts +9 -0
  55. package/dist/skills/context-optimizer/index.d.ts.map +1 -0
  56. package/dist/skills/context-optimizer/index.js +9 -0
  57. package/dist/skills/context-optimizer/index.js.map +1 -0
  58. package/dist/skills/context-optimizer/types.d.ts +133 -0
  59. package/dist/skills/context-optimizer/types.d.ts.map +1 -0
  60. package/dist/skills/context-optimizer/types.js +219 -0
  61. package/dist/skills/context-optimizer/types.js.map +1 -0
  62. package/dist/skills/e2e-runner/e2e-runner.d.ts +32 -0
  63. package/dist/skills/e2e-runner/e2e-runner.d.ts.map +1 -0
  64. package/dist/skills/e2e-runner/e2e-runner.js +285 -0
  65. package/dist/skills/e2e-runner/e2e-runner.js.map +1 -0
  66. package/dist/skills/e2e-runner/e2e-runner.test.d.ts +7 -0
  67. package/dist/skills/e2e-runner/e2e-runner.test.d.ts.map +1 -0
  68. package/dist/skills/e2e-runner/e2e-runner.test.js +212 -0
  69. package/dist/skills/e2e-runner/e2e-runner.test.js.map +1 -0
  70. package/dist/skills/e2e-runner/index.d.ts +12 -0
  71. package/dist/skills/e2e-runner/index.d.ts.map +1 -0
  72. package/dist/skills/e2e-runner/index.js +12 -0
  73. package/dist/skills/e2e-runner/index.js.map +1 -0
  74. package/dist/skills/e2e-runner/types.d.ts +176 -0
  75. package/dist/skills/e2e-runner/types.d.ts.map +1 -0
  76. package/dist/skills/e2e-runner/types.js +24 -0
  77. package/dist/skills/e2e-runner/types.js.map +1 -0
  78. package/dist/skills/eval-harness/eval-harness.d.ts +49 -0
  79. package/dist/skills/eval-harness/eval-harness.d.ts.map +1 -0
  80. package/dist/skills/eval-harness/eval-harness.js +349 -0
  81. package/dist/skills/eval-harness/eval-harness.js.map +1 -0
  82. package/dist/skills/eval-harness/eval-harness.test.d.ts +7 -0
  83. package/dist/skills/eval-harness/eval-harness.test.d.ts.map +1 -0
  84. package/dist/skills/eval-harness/eval-harness.test.js +105 -0
  85. package/dist/skills/eval-harness/eval-harness.test.js.map +1 -0
  86. package/dist/skills/eval-harness/index.d.ts +8 -0
  87. package/dist/skills/eval-harness/index.d.ts.map +1 -0
  88. package/dist/skills/eval-harness/index.js +8 -0
  89. package/dist/skills/eval-harness/index.js.map +1 -0
  90. package/dist/skills/eval-harness/types.d.ts +247 -0
  91. package/dist/skills/eval-harness/types.d.ts.map +1 -0
  92. package/dist/skills/eval-harness/types.js +21 -0
  93. package/dist/skills/eval-harness/types.js.map +1 -0
  94. package/dist/skills/index.d.ts +18 -0
  95. package/dist/skills/index.d.ts.map +1 -0
  96. package/dist/skills/index.js +20 -0
  97. package/dist/skills/index.js.map +1 -0
  98. package/dist/skills/learning-hooks/index.d.ts +12 -0
  99. package/dist/skills/learning-hooks/index.d.ts.map +1 -0
  100. package/dist/skills/learning-hooks/index.js +12 -0
  101. package/dist/skills/learning-hooks/index.js.map +1 -0
  102. package/dist/skills/learning-hooks/learning-hooks.d.ts +24 -0
  103. package/dist/skills/learning-hooks/learning-hooks.d.ts.map +1 -0
  104. package/dist/skills/learning-hooks/learning-hooks.js +491 -0
  105. package/dist/skills/learning-hooks/learning-hooks.js.map +1 -0
  106. package/dist/skills/learning-hooks/types.d.ts +261 -0
  107. package/dist/skills/learning-hooks/types.d.ts.map +1 -0
  108. package/dist/skills/learning-hooks/types.js +82 -0
  109. package/dist/skills/learning-hooks/types.js.map +1 -0
  110. package/dist/skills/refactor-cleaner/index.d.ts +13 -0
  111. package/dist/skills/refactor-cleaner/index.d.ts.map +1 -0
  112. package/dist/skills/refactor-cleaner/index.js +13 -0
  113. package/dist/skills/refactor-cleaner/index.js.map +1 -0
  114. package/dist/skills/refactor-cleaner/refactor-cleaner.d.ts +33 -0
  115. package/dist/skills/refactor-cleaner/refactor-cleaner.d.ts.map +1 -0
  116. package/dist/skills/refactor-cleaner/refactor-cleaner.js +264 -0
  117. package/dist/skills/refactor-cleaner/refactor-cleaner.js.map +1 -0
  118. package/dist/skills/refactor-cleaner/refactor-cleaner.test.d.ts +7 -0
  119. package/dist/skills/refactor-cleaner/refactor-cleaner.test.d.ts.map +1 -0
  120. package/dist/skills/refactor-cleaner/refactor-cleaner.test.js +229 -0
  121. package/dist/skills/refactor-cleaner/refactor-cleaner.test.js.map +1 -0
  122. package/dist/skills/refactor-cleaner/types.d.ts +167 -0
  123. package/dist/skills/refactor-cleaner/types.d.ts.map +1 -0
  124. package/dist/skills/refactor-cleaner/types.js +24 -0
  125. package/dist/skills/refactor-cleaner/types.js.map +1 -0
  126. package/dist/skills/session-manager/index.d.ts +10 -0
  127. package/dist/skills/session-manager/index.d.ts.map +1 -0
  128. package/dist/skills/session-manager/index.js +10 -0
  129. package/dist/skills/session-manager/index.js.map +1 -0
  130. package/dist/skills/session-manager/session-store.d.ts +34 -0
  131. package/dist/skills/session-manager/session-store.d.ts.map +1 -0
  132. package/dist/skills/session-manager/session-store.js +495 -0
  133. package/dist/skills/session-manager/session-store.js.map +1 -0
  134. package/dist/skills/session-manager/todo-integration.d.ts +102 -0
  135. package/dist/skills/session-manager/todo-integration.d.ts.map +1 -0
  136. package/dist/skills/session-manager/todo-integration.js +249 -0
  137. package/dist/skills/session-manager/todo-integration.js.map +1 -0
  138. package/dist/skills/session-manager/types.d.ts +156 -0
  139. package/dist/skills/session-manager/types.d.ts.map +1 -0
  140. package/dist/skills/session-manager/types.js +21 -0
  141. package/dist/skills/session-manager/types.js.map +1 -0
  142. package/dist/skills/verification-loop/index.d.ts +8 -0
  143. package/dist/skills/verification-loop/index.d.ts.map +1 -0
  144. package/dist/skills/verification-loop/index.js +8 -0
  145. package/dist/skills/verification-loop/index.js.map +1 -0
  146. package/dist/skills/verification-loop/types.d.ts +183 -0
  147. package/dist/skills/verification-loop/types.d.ts.map +1 -0
  148. package/dist/skills/verification-loop/types.js +26 -0
  149. package/dist/skills/verification-loop/types.js.map +1 -0
  150. package/dist/skills/verification-loop/verification-loop.d.ts +27 -0
  151. package/dist/skills/verification-loop/verification-loop.d.ts.map +1 -0
  152. package/dist/skills/verification-loop/verification-loop.js +415 -0
  153. package/dist/skills/verification-loop/verification-loop.js.map +1 -0
  154. package/dist/skills/verification-loop/verification-loop.test.d.ts +7 -0
  155. package/dist/skills/verification-loop/verification-loop.test.d.ts.map +1 -0
  156. package/dist/skills/verification-loop/verification-loop.test.js +76 -0
  157. package/dist/skills/verification-loop/verification-loop.test.js.map +1 -0
  158. 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,7 @@
1
+ /**
2
+ * Build Fix Tests
3
+ *
4
+ * @see REQ-BF-001〜003
5
+ */
6
+ export {};
7
+ //# sourceMappingURL=build-fix.test.d.ts.map
@@ -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,8 @@
1
+ /**
2
+ * Build Fix - Barrel Export
3
+ *
4
+ * @see REQ-BF-001〜003 - Build Fix Requirements
5
+ */
6
+ export * from './types.js';
7
+ export * from './build-fix.js';
8
+ //# sourceMappingURL=index.d.ts.map
@@ -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,8 @@
1
+ /**
2
+ * Build Fix - Barrel Export
3
+ *
4
+ * @see REQ-BF-001〜003 - Build Fix Requirements
5
+ */
6
+ export * from './types.js';
7
+ export * from './build-fix.js';
8
+ //# sourceMappingURL=index.js.map
@@ -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"}