agent-ide 0.6.0 → 0.7.1

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 (45) hide show
  1. package/dist/core/change-signature/change-signature-service.d.ts.map +1 -1
  2. package/dist/core/change-signature/change-signature-service.js +16 -5
  3. package/dist/core/change-signature/change-signature-service.js.map +1 -1
  4. package/dist/core/change-signature/signature-parser.d.ts.map +1 -1
  5. package/dist/core/change-signature/signature-parser.js +28 -2
  6. package/dist/core/change-signature/signature-parser.js.map +1 -1
  7. package/dist/core/change-signature/types.d.ts +2 -0
  8. package/dist/core/change-signature/types.d.ts.map +1 -1
  9. package/dist/core/change-signature/types.js +2 -0
  10. package/dist/core/change-signature/types.js.map +1 -1
  11. package/dist/core/dead-code/dead-code-remover.d.ts +133 -0
  12. package/dist/core/dead-code/dead-code-remover.d.ts.map +1 -0
  13. package/dist/core/dead-code/dead-code-remover.js +803 -0
  14. package/dist/core/dead-code/dead-code-remover.js.map +1 -0
  15. package/dist/core/dead-code/index.d.ts +4 -3
  16. package/dist/core/dead-code/index.d.ts.map +1 -1
  17. package/dist/core/dead-code/index.js +3 -2
  18. package/dist/core/dead-code/index.js.map +1 -1
  19. package/dist/core/dead-code/types.d.ts +118 -1
  20. package/dist/core/dead-code/types.d.ts.map +1 -1
  21. package/dist/core/dead-code/types.js +34 -1
  22. package/dist/core/dead-code/types.js.map +1 -1
  23. package/dist/core/rename/reference-updater.d.ts +9 -6
  24. package/dist/core/rename/reference-updater.d.ts.map +1 -1
  25. package/dist/core/rename/reference-updater.js +40 -50
  26. package/dist/core/rename/reference-updater.js.map +1 -1
  27. package/dist/core/shared/symbol-finder.d.ts +4 -0
  28. package/dist/core/shared/symbol-finder.d.ts.map +1 -1
  29. package/dist/core/shared/symbol-finder.js +41 -0
  30. package/dist/core/shared/symbol-finder.js.map +1 -1
  31. package/dist/infrastructure/formatters/preview-converter.d.ts +62 -0
  32. package/dist/infrastructure/formatters/preview-converter.d.ts.map +1 -1
  33. package/dist/infrastructure/formatters/preview-converter.js +82 -0
  34. package/dist/infrastructure/formatters/preview-converter.js.map +1 -1
  35. package/dist/infrastructure/formatters/types.d.ts +2 -1
  36. package/dist/infrastructure/formatters/types.d.ts.map +1 -1
  37. package/dist/infrastructure/formatters/types.js +1 -0
  38. package/dist/infrastructure/formatters/types.js.map +1 -1
  39. package/dist/interfaces/cli/commands/change-signature.command.js +3 -3
  40. package/dist/interfaces/cli/commands/change-signature.command.js.map +1 -1
  41. package/dist/interfaces/cli/commands/deadcode.command.d.ts +1 -1
  42. package/dist/interfaces/cli/commands/deadcode.command.d.ts.map +1 -1
  43. package/dist/interfaces/cli/commands/deadcode.command.js +102 -41
  44. package/dist/interfaces/cli/commands/deadcode.command.js.map +1 -1
  45. package/package.json +1 -1
@@ -1,11 +1,11 @@
1
1
  /**
2
2
  * deadcode 命令
3
- * 檢測未使用的程式碼
3
+ * 檢測與刪除未使用的程式碼
4
4
  */
5
5
  import { IndexEngine, createIndexConfig, CLI_INDEX_DEFAULTS } from '../../../core/indexing/index.js';
6
- import { createDeadCodeDetector } from '../../../core/dead-code/index.js';
6
+ import { createDeadCodeDetector, createDeadCodeRemover } from '../../../core/dead-code/index.js';
7
7
  import { ParserRegistry } from '../../../infrastructure/parser/registry.js';
8
- import { QueryCommand, AnalyzeType } from '../../../infrastructure/formatters/index.js';
8
+ import { convertDeadCodeRemovalPreview } from '../../../infrastructure/formatters/preview-converter.js';
9
9
  import { createUnifiedOutputHandler, parseOutputFormat, OutputFormat } from '../../cli/unified-output-handler.js';
10
10
  /**
11
11
  * 設定 deadcode 命令
@@ -13,30 +13,44 @@ import { createUnifiedOutputHandler, parseOutputFormat, OutputFormat } from '../
13
13
  export function setupDeadCodeCommand(program, context) {
14
14
  program
15
15
  .command('deadcode')
16
- .description('檢測未使用的程式碼(dead code)')
16
+ .description('檢測並刪除未使用的程式碼(dead code)')
17
17
  .option('-p, --path <path>', '專案路徑', '.')
18
- .option('--format <format>', '輸出格式 (json|summary)', 'summary')
18
+ .option('--format <format>', '輸出格式 (json|summary|diff)', 'summary')
19
19
  .option('--include-exports', '包含 export 的符號(預設排除)', false)
20
+ .option('--dry-run', '預覽變更而不執行')
21
+ .option('--min-confidence <number>', '最小信心度門檻 (0-1)', '0.9')
22
+ .option('--exclude <patterns...>', '排除的檔案/符號模式')
20
23
  .action(async (options) => {
21
24
  await handleDeadCodeCommand(options, context);
22
25
  });
23
26
  }
27
+ /**
28
+ * 執行 dead code 檢測並回傳結果
29
+ */
30
+ async function runDeadCodeDetection(options, context, indexEngine, parserRegistry) {
31
+ const detector = createDeadCodeDetector(indexEngine, parserRegistry, context.fileSystem, {
32
+ includeExports: options.includeExports
33
+ });
34
+ return detector.detect();
35
+ }
24
36
  /**
25
37
  * 處理 deadcode 命令
26
38
  */
27
39
  async function handleDeadCodeCommand(options, context) {
28
40
  const outputHandler = createUnifiedOutputHandler();
41
+ // 使用者指定的格式
42
+ const formatStr = options.format;
29
43
  let format;
30
44
  try {
31
- format = parseOutputFormat(options.format, false);
45
+ format = parseOutputFormat(formatStr, true); // 允許 diff
32
46
  }
33
47
  catch {
34
- outputHandler.outputError('不支援的輸出格式。可用格式: json, summary', OutputFormat.Summary);
48
+ outputHandler.outputError('不支援的輸出格式。可用格式: json, summary, diff', OutputFormat.Summary);
35
49
  process.exitCode = 1;
36
50
  throw new Error('不支援的輸出格式');
37
51
  }
38
52
  if (format !== OutputFormat.Json) {
39
- console.log('🔍 檢測 Dead Code...');
53
+ console.log('🔍 檢測並準備刪除 Dead Code...');
40
54
  }
41
55
  const projectPath = options.path || process.cwd();
42
56
  // 檢查路徑是否存在
@@ -49,51 +63,98 @@ async function handleDeadCodeCommand(options, context) {
49
63
  // 建立索引引擎
50
64
  const indexConfig = createIndexConfig(projectPath, CLI_INDEX_DEFAULTS);
51
65
  const indexEngine = new IndexEngine(indexConfig, context.fileSystem);
66
+ const parserRegistry = ParserRegistry.getInstance();
52
67
  try {
53
68
  // 索引專案
54
69
  await indexEngine.indexProject(projectPath);
55
- // 建立 Dead Code 檢測器
56
- const parserRegistry = ParserRegistry.getInstance();
57
- const detector = createDeadCodeDetector(indexEngine, parserRegistry, context.fileSystem, {
58
- includeExports: options.includeExports
59
- });
60
- // 執行檢測
61
- const detectionResult = await detector.detect();
70
+ // 1. 先執行 dead code 檢測
71
+ const detectionResult = await runDeadCodeDetection(options, context, indexEngine, parserRegistry);
62
72
  if (!detectionResult.success) {
63
73
  outputHandler.outputError(`檢測失敗: ${detectionResult.error}`, format);
64
74
  process.exitCode = 1;
65
75
  return;
66
76
  }
67
- // 轉換為輸出格式
68
- const items = detectionResult.items.map(item => ({
69
- name: item.name,
70
- type: item.type,
71
- file: item.location.filePath,
72
- line: item.location.range.start.line,
73
- column: item.location.range.start.column,
74
- confidence: item.confidence,
75
- reason: item.reason
76
- }));
77
- // 組裝結果
78
- const result = {
79
- command: QueryCommand.Analyze,
80
- analyzeType: AnalyzeType.DeadCode,
81
- success: true,
82
- items,
83
- byType: detectionResult.stats.byType,
84
- filesAffected: detectionResult.stats.filesAffected,
85
- scanTime: detectionResult.stats.scanTime,
86
- skippedFiles: detectionResult.stats.skippedFiles,
87
- summary: {
88
- totalScanned: detectionResult.stats.totalSymbols,
89
- issuesFound: detectionResult.stats.deadCodeCount
77
+ if (detectionResult.items.length === 0) {
78
+ if (format !== OutputFormat.Json) {
79
+ console.log('✅ 沒有檢測到 dead code');
80
+ }
81
+ else {
82
+ console.log(JSON.stringify({ success: true, message: '沒有檢測到 dead code', removals: [] }));
83
+ }
84
+ return;
85
+ }
86
+ // 2. 建立 DeadCodeRemover
87
+ const minConfidence = parseFloat(options.minConfidence);
88
+ const remover = createDeadCodeRemover(context.fileSystem, parserRegistry, {
89
+ minConfidence: isNaN(minConfidence) ? 0.9 : minConfidence,
90
+ excludeSymbols: options.exclude || [],
91
+ cleanupImports: true
92
+ });
93
+ // 3. 產生預覽
94
+ const preview = await remover.preview(detectionResult.items);
95
+ if (!preview.success) {
96
+ outputHandler.outputError(`預覽失敗: ${preview.errors?.join(', ')}`, format);
97
+ process.exitCode = 1;
98
+ return;
99
+ }
100
+ if (preview.removals.length === 0) {
101
+ if (format !== OutputFormat.Json) {
102
+ console.log('✅ 符合條件的 dead code 已被過濾(信心度或排除規則)');
103
+ if (preview.warnings && preview.warnings.length > 0) {
104
+ console.log('\n⚠️ 警告:');
105
+ for (const warning of preview.warnings) {
106
+ console.log(` ${warning}`);
107
+ }
108
+ }
109
+ }
110
+ else {
111
+ console.log(JSON.stringify({
112
+ success: true,
113
+ message: '符合條件的 dead code 已被過濾',
114
+ warnings: preview.warnings,
115
+ removals: []
116
+ }));
90
117
  }
91
- };
92
- outputHandler.outputQuery(result, format);
118
+ return;
119
+ }
120
+ // 4. 讀取原始檔案內容
121
+ const originalContents = new Map();
122
+ for (const filePath of preview.affectedFiles) {
123
+ const content = await context.fileSystem.readFile(filePath, 'utf-8');
124
+ originalContents.set(filePath, typeof content === 'string' ? content : content.toString('utf-8'));
125
+ }
126
+ // 5. 轉換為 PreviewInput
127
+ const previewInput = convertDeadCodeRemovalPreview(preview, originalContents);
128
+ // 6. 輸出或執行
129
+ const isDryRun = options.dryRun === true;
130
+ if (isDryRun) {
131
+ // Dry-run 模式:只輸出預覽
132
+ outputHandler.outputMutation(previewInput, format);
133
+ if (format !== OutputFormat.Json) {
134
+ console.log('\n💡 移除 --dry-run 實際執行刪除');
135
+ }
136
+ }
137
+ else {
138
+ // 實際執行刪除
139
+ const result = await remover.execute(preview);
140
+ if (result.success) {
141
+ outputHandler.outputMutation(previewInput, format);
142
+ if (format !== OutputFormat.Json) {
143
+ console.log(`\n✅ 已刪除 ${preview.summary.totalRemovals} 個 dead code`);
144
+ if (preview.summary.importsCleanedUp > 0) {
145
+ console.log(` 並清理 ${preview.summary.importsCleanedUp} 個未使用的 import`);
146
+ }
147
+ }
148
+ }
149
+ else {
150
+ outputHandler.outputError(result.errors?.join(', ') || '刪除失敗', format);
151
+ process.exitCode = 1;
152
+ }
153
+ }
93
154
  }
94
155
  catch (error) {
95
156
  const errorMessage = error instanceof Error ? error.message : String(error);
96
- outputHandler.outputError(`檢測失敗: ${errorMessage}`, format);
157
+ outputHandler.outputError(`Dead code 刪除失敗: ${errorMessage}`, format);
97
158
  process.exitCode = 1;
98
159
  }
99
160
  finally {
@@ -1 +1 @@
1
- {"version":3,"file":"deadcode.command.js","sourceRoot":"","sources":["../../../../src/interfaces/cli/commands/deadcode.command.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"deadcode.command.js","sourceRoot":"","sources":["../../../../src/interfaces/cli/commands/deadcode.command.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "agent-ide",
3
- "version": "0.6.0",
3
+ "version": "0.7.1",
4
4
  "description": "程式碼智能工具集 for AI Agents",
5
5
  "type": "module",
6
6
  "main": "dist/shared/index.js",