ai-dev-analytics 1.0.3 → 1.1.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 (113) hide show
  1. package/README.md +73 -13
  2. package/README.zh-CN.md +73 -13
  3. package/dist/cli/commands/build.d.ts +2 -0
  4. package/dist/cli/commands/build.d.ts.map +1 -0
  5. package/dist/cli/commands/build.js +61 -0
  6. package/dist/cli/commands/build.js.map +1 -0
  7. package/dist/cli/commands/dashboard.js +1 -1
  8. package/dist/cli/commands/dashboard.js.map +1 -1
  9. package/dist/cli/commands/import.d.ts +2 -0
  10. package/dist/cli/commands/import.d.ts.map +1 -0
  11. package/dist/cli/commands/import.js +28 -0
  12. package/dist/cli/commands/import.js.map +1 -0
  13. package/dist/cli/commands/init.d.ts.map +1 -1
  14. package/dist/cli/commands/init.js +167 -183
  15. package/dist/cli/commands/init.js.map +1 -1
  16. package/dist/cli/commands/merge.d.ts +2 -0
  17. package/dist/cli/commands/merge.d.ts.map +1 -0
  18. package/dist/cli/commands/merge.js +47 -0
  19. package/dist/cli/commands/merge.js.map +1 -0
  20. package/dist/cli/commands/migrate-dir.d.ts +2 -0
  21. package/dist/cli/commands/migrate-dir.d.ts.map +1 -0
  22. package/dist/cli/commands/migrate-dir.js +85 -0
  23. package/dist/cli/commands/migrate-dir.js.map +1 -0
  24. package/dist/cli/commands/migrate.js +5 -5
  25. package/dist/cli/commands/migrate.js.map +1 -1
  26. package/dist/cli/commands/reindex.d.ts +4 -0
  27. package/dist/cli/commands/reindex.d.ts.map +1 -1
  28. package/dist/cli/commands/reindex.js +48 -3
  29. package/dist/cli/commands/reindex.js.map +1 -1
  30. package/dist/cli/commands/report.js +1 -1
  31. package/dist/cli/commands/report.js.map +1 -1
  32. package/dist/cli/commands/rules.d.ts +5 -0
  33. package/dist/cli/commands/rules.d.ts.map +1 -1
  34. package/dist/cli/commands/rules.js +146 -39
  35. package/dist/cli/commands/rules.js.map +1 -1
  36. package/dist/cli/commands/skills.d.ts +7 -0
  37. package/dist/cli/commands/skills.d.ts.map +1 -0
  38. package/dist/cli/commands/skills.js +180 -0
  39. package/dist/cli/commands/skills.js.map +1 -0
  40. package/dist/cli/commands/start.d.ts.map +1 -1
  41. package/dist/cli/commands/start.js +5 -9
  42. package/dist/cli/commands/start.js.map +1 -1
  43. package/dist/cli/commands/status.d.ts.map +1 -1
  44. package/dist/cli/commands/status.js +1 -5
  45. package/dist/cli/commands/status.js.map +1 -1
  46. package/dist/cli/commands/update.d.ts.map +1 -1
  47. package/dist/cli/commands/update.js +26 -5
  48. package/dist/cli/commands/update.js.map +1 -1
  49. package/dist/cli/index.js +30 -0
  50. package/dist/cli/index.js.map +1 -1
  51. package/dist/mcp/server.d.ts.map +1 -1
  52. package/dist/mcp/server.js +86 -57
  53. package/dist/mcp/server.js.map +1 -1
  54. package/dist/server/api.js +2 -2
  55. package/dist/server/api.js.map +1 -1
  56. package/dist/server/index.js +1 -1
  57. package/dist/server/index.js.map +1 -1
  58. package/dist/utils/ai-build.d.ts +19 -0
  59. package/dist/utils/ai-build.d.ts.map +1 -0
  60. package/dist/utils/ai-build.js +278 -0
  61. package/dist/utils/ai-build.js.map +1 -0
  62. package/dist/utils/fs.d.ts +18 -0
  63. package/dist/utils/fs.d.ts.map +1 -1
  64. package/dist/utils/fs.js +70 -0
  65. package/dist/utils/fs.js.map +1 -1
  66. package/dist/utils/git.d.ts +10 -1
  67. package/dist/utils/git.d.ts.map +1 -1
  68. package/dist/utils/git.js +76 -8
  69. package/dist/utils/git.js.map +1 -1
  70. package/dist/utils/guide.d.ts +21 -4
  71. package/dist/utils/guide.d.ts.map +1 -1
  72. package/dist/utils/guide.js +168 -16
  73. package/dist/utils/guide.js.map +1 -1
  74. package/dist/utils/import.d.ts +27 -0
  75. package/dist/utils/import.d.ts.map +1 -0
  76. package/dist/utils/import.js +298 -0
  77. package/dist/utils/import.js.map +1 -0
  78. package/dist/utils/paths.d.ts +2 -2
  79. package/dist/utils/paths.d.ts.map +1 -1
  80. package/dist/utils/paths.js +8 -8
  81. package/dist/utils/paths.js.map +1 -1
  82. package/dist/utils/rules.d.ts +6 -1
  83. package/dist/utils/rules.d.ts.map +1 -1
  84. package/dist/utils/rules.js +126 -6
  85. package/dist/utils/rules.js.map +1 -1
  86. package/dist/utils/run-data.d.ts +2 -2
  87. package/dist/utils/run-data.d.ts.map +1 -1
  88. package/dist/utils/run-data.js +6 -11
  89. package/dist/utils/run-data.js.map +1 -1
  90. package/dist/utils/skills.d.ts +37 -0
  91. package/dist/utils/skills.d.ts.map +1 -0
  92. package/dist/utils/skills.js +228 -0
  93. package/dist/utils/skills.js.map +1 -0
  94. package/package.json +1 -1
  95. package/src/assets/skills/audit.md +6 -6
  96. package/src/assets/skills/bug-fixer.md +4 -4
  97. package/src/assets/skills/code-generator.md +4 -4
  98. package/src/assets/skills/dashboard-generator.md +2 -2
  99. package/src/assets/skills/dev-flower.md +3 -3
  100. package/src/assets/skills/deviation-recorder.md +7 -7
  101. package/src/assets/skills/mcp-reviewer.md +2 -2
  102. package/src/assets/skills/requirement-analyzer.md +4 -4
  103. package/src/assets/skills/rules-evolver.md +7 -7
  104. package/src/assets/skills/self-reviewer.md +4 -4
  105. package/src/assets/skills/task-splitter.md +5 -5
  106. package/src/assets/skills/workflow-orchestrator.md +11 -11
  107. package/src/assets/templates/demo-run.json +7 -7
  108. package/src/dashboard/assets/index-B8QcPcg7.css +1 -0
  109. package/src/dashboard/assets/{index-E4BP-QJG.js → index-DcAl6lhS.js} +1 -1
  110. package/src/dashboard/demo/run.en.json +1169 -0
  111. package/src/dashboard/demo/run.zh.json +1169 -0
  112. package/src/dashboard/index.html +2 -2
  113. package/src/dashboard/assets/index-CwXn3nJb.css +0 -1
@@ -1,11 +1,13 @@
1
1
  import * as readline from 'node:readline/promises';
2
2
  import { stdin, stdout } from 'node:process';
3
3
  import { resolve } from 'node:path';
4
- import { SKILLS_DIR } from '../../utils/paths.js';
5
4
  import { ensureDir, writeText, readText, fileExists, getProjectName, writeJson, } from '../../utils/fs.js';
6
5
  import { bold, green, cyan, dim, yellow } from '../../utils/display.js';
7
- import { addRule, buildRuleViews } from '../../utils/rules.js';
8
- import { ensureGuide, syncGuideReference } from '../../utils/guide.js';
6
+ import { addRule } from '../../utils/rules.js';
7
+ import { ensureGuide, syncGuideReference, updateGuide, updateGuideReferences } from '../../utils/guide.js';
8
+ import { ensureBundledSkills, seedBundledSkillRegistry, getSkillContent } from '../../utils/skills.js';
9
+ import { buildProjectArtifacts } from '../../utils/ai-build.js';
10
+ import { detectImportableTools, importExistingToolConfigs, importFromTool, mergeConfiguredTools } from '../../utils/import.js';
9
11
  const QUICK_COMMANDS = [
10
12
  { name: 'workflow', skill: 'workflow-orchestrator' },
11
13
  { name: 'audit', skill: 'audit' },
@@ -41,137 +43,116 @@ const IRON_RULES_APPEND = `
41
43
  1. 禁止任何形式的臆想,不清楚必须询问
42
44
  2. 禁止随意生成文档,如需生成文档,必须询问用户是否需要
43
45
  3. 生成测试脚本,在测试验证通过后必须删除测试脚本,保持项目清爽
46
+ 4. 当用户直接要求沉淀项目级技术规范,或识别到 rule-missing 需要沉淀规则时,必须通过 AIDA MCP 的 aida_log_rule 写入 .aida/rules.json,不要只修改本地规则说明文件
44
47
  `;
45
- const MCP_CONFIG_JSON = JSON.stringify({
46
- mcpServers: {
47
- aida: {
48
- command: 'npx',
49
- args: ['-y', 'ai-dev-analytics', 'mcp'],
50
- },
51
- },
52
- }, null, 2);
53
- function writeMcpConfig(projectRoot, tools) {
54
- const written = [];
55
- for (const tool of tools) {
56
- switch (tool) {
57
- case 'claude-code': {
58
- const mcpPath = resolve(projectRoot, '.mcp.json');
59
- if (fileExists(mcpPath)) {
60
- // Merge into existing
61
- try {
62
- const existing = JSON.parse(readText(mcpPath));
63
- if (!existing.mcpServers?.aida) {
64
- existing.mcpServers = existing.mcpServers || {};
65
- existing.mcpServers.aida = { command: 'npx', args: ['-y', 'ai-dev-analytics', 'mcp'] };
66
- writeText(mcpPath, JSON.stringify(existing, null, 2) + '\n');
67
- written.push('.mcp.json');
68
- }
69
- }
70
- catch {
71
- // Malformed, overwrite
72
- writeText(mcpPath, MCP_CONFIG_JSON + '\n');
73
- written.push('.mcp.json');
74
- }
75
- }
76
- else {
77
- writeText(mcpPath, MCP_CONFIG_JSON + '\n');
78
- written.push('.mcp.json');
79
- }
80
- break;
81
- }
82
- case 'cursor': {
83
- const cursorDir = resolve(projectRoot, '.cursor');
84
- ensureDir(cursorDir);
85
- const mcpPath = resolve(cursorDir, 'mcp.json');
86
- if (fileExists(mcpPath)) {
87
- try {
88
- const existing = JSON.parse(readText(mcpPath));
89
- if (!existing.mcpServers?.aida) {
90
- existing.mcpServers = existing.mcpServers || {};
91
- existing.mcpServers.aida = { command: 'npx', args: ['-y', 'ai-dev-analytics', 'mcp'] };
92
- writeText(mcpPath, JSON.stringify(existing, null, 2) + '\n');
93
- written.push('.cursor/mcp.json');
94
- }
95
- }
96
- catch {
97
- writeText(mcpPath, MCP_CONFIG_JSON + '\n');
98
- written.push('.cursor/mcp.json');
99
- }
100
- }
101
- else {
102
- writeText(mcpPath, MCP_CONFIG_JSON + '\n');
103
- written.push('.cursor/mcp.json');
104
- }
105
- break;
106
- }
107
- case 'vscode-copilot': {
108
- const vscodeDir = resolve(projectRoot, '.vscode');
109
- ensureDir(vscodeDir);
110
- const mcpPath = resolve(vscodeDir, 'mcp.json');
111
- if (fileExists(mcpPath)) {
112
- try {
113
- const existing = JSON.parse(readText(mcpPath));
114
- if (!existing.mcpServers?.aida) {
115
- existing.mcpServers = existing.mcpServers || {};
116
- existing.mcpServers.aida = { command: 'npx', args: ['-y', 'ai-dev-analytics', 'mcp'] };
117
- writeText(mcpPath, JSON.stringify(existing, null, 2) + '\n');
118
- written.push('.vscode/mcp.json');
119
- }
120
- }
121
- catch {
122
- writeText(mcpPath, MCP_CONFIG_JSON + '\n');
123
- written.push('.vscode/mcp.json');
124
- }
125
- }
126
- else {
127
- writeText(mcpPath, MCP_CONFIG_JSON + '\n');
128
- written.push('.vscode/mcp.json');
129
- }
130
- break;
131
- }
132
- case 'windsurf': {
133
- // Windsurf uses global config, just print instructions
134
- written.push('(windsurf: manual config needed)');
135
- break;
136
- }
137
- case 'lingma': {
138
- const lingmaDir = resolve(projectRoot, '.lingma');
139
- ensureDir(lingmaDir);
140
- const mcpPath = resolve(lingmaDir, 'mcp.json');
141
- if (fileExists(mcpPath)) {
142
- try {
143
- const existing = JSON.parse(readText(mcpPath));
144
- if (!existing.mcpServers?.aida) {
145
- existing.mcpServers = existing.mcpServers || {};
146
- existing.mcpServers.aida = { command: 'npx', args: ['-y', 'ai-dev-analytics', 'mcp'] };
147
- writeText(mcpPath, JSON.stringify(existing, null, 2) + '\n');
148
- written.push('.lingma/mcp.json');
149
- }
150
- }
151
- catch {
152
- writeText(mcpPath, MCP_CONFIG_JSON + '\n');
153
- written.push('.lingma/mcp.json');
154
- }
155
- }
156
- else {
157
- writeText(mcpPath, MCP_CONFIG_JSON + '\n');
158
- written.push('.lingma/mcp.json');
159
- }
160
- break;
161
- }
48
+ function toolLabel(tool) {
49
+ const labels = {
50
+ 'claude-code': 'Claude Code',
51
+ cursor: 'Cursor',
52
+ 'vscode-copilot': 'VS Code + Copilot',
53
+ windsurf: 'Windsurf',
54
+ lingma: 'Lingma',
55
+ codex: 'Codex',
56
+ };
57
+ return labels[tool];
58
+ }
59
+ function copyOptionalCommands(projectRoot, tools, commands) {
60
+ let copied = 0;
61
+ if (tools.includes('claude-code')) {
62
+ const cmdDir = resolve(projectRoot, '.claude', 'commands');
63
+ ensureDir(cmdDir);
64
+ for (const cmd of commands) {
65
+ const content = getSkillContent(projectRoot, cmd.skill);
66
+ if (!content)
67
+ continue;
68
+ writeText(resolve(cmdDir, `${cmd.name}.md`), content);
69
+ copied++;
70
+ }
71
+ }
72
+ if (tools.includes('cursor')) {
73
+ for (const cmd of commands) {
74
+ const content = getSkillContent(projectRoot, cmd.skill);
75
+ if (!content)
76
+ continue;
77
+ const destDir = resolve(projectRoot, '.cursor', 'skills', cmd.name);
78
+ ensureDir(destDir);
79
+ writeText(resolve(destDir, 'SKILL.md'), content);
80
+ copied++;
162
81
  }
163
82
  }
164
- return written;
83
+ return copied;
165
84
  }
166
85
  // ─── Init command ────────────────────────────────────────
167
86
  export async function init() {
168
87
  const projectRoot = process.cwd();
169
- const aidevos = resolve(projectRoot, '.aidevos');
88
+ const aidevos = resolve(projectRoot, '.aida');
170
89
  console.log(`\n ${bold('AIDA')} - AI Development Observability Platform\n`);
171
90
  // Check if already initialized
172
91
  if (fileExists(resolve(aidevos, 'config.json'))) {
173
- console.log(yellow(' AIDA is already initialized in this project.'));
174
- console.log(dim(' To reinitialize, delete the .aidevos directory first.\n'));
92
+ console.log(yellow(' AIDA is already initialized in this project.\n'));
93
+ console.log(' ? What would you like to do?\n');
94
+ console.log(' 1) Add a new AI tool');
95
+ console.log(' 2) Repair: fill missing files (guide, MCP config, .gitignore)');
96
+ console.log(' 3) Exit\n');
97
+ const rl2 = readline.createInterface({ input: stdin, output: stdout });
98
+ const choice = (await rl2.question(' > ')).trim();
99
+ rl2.close();
100
+ if (choice === '3' || choice === '') {
101
+ console.log(dim('\n No changes made.\n'));
102
+ return;
103
+ }
104
+ // Load existing config
105
+ const existingConfig = JSON.parse(readText(resolve(aidevos, 'config.json')));
106
+ const existingTools = existingConfig.aiTools || [];
107
+ // ── Option 2: Repair missing files ──────────────────
108
+ if (choice === '2') {
109
+ console.log('\n Repairing...\n');
110
+ ensureDir(resolve(aidevos, 'rules'));
111
+ ensureDir(resolve(aidevos, 'runs'));
112
+ const repaired = buildProjectArtifacts(projectRoot, existingTools);
113
+ updateGuide(projectRoot);
114
+ updateGuideReferences(projectRoot, existingTools);
115
+ console.log(green(' ✓ Rebuilt') + ` core artifacts for ${repaired.tools.join(', ') || 'configured tools'}`);
116
+ console.log(green('\n ✓ Done!') + ' Missing files have been filled in.\n');
117
+ return;
118
+ }
119
+ // ── Option 1: Add a new AI tool ──────────────────────
120
+ const rl3 = readline.createInterface({ input: stdin, output: stdout });
121
+ console.log('\n ? Which AI tool do you want to add? (comma-separated numbers):\n');
122
+ console.log(' 1) Claude Code');
123
+ console.log(' 2) Cursor');
124
+ console.log(' 3) VS Code + Copilot');
125
+ console.log(' 4) Windsurf');
126
+ console.log(' 5) Lingma (通义灵码)\n');
127
+ console.log(' 6) Codex\n');
128
+ const toolMap2 = {
129
+ '1': 'claude-code', '2': 'cursor', '3': 'vscode-copilot', '4': 'windsurf', '5': 'lingma', '6': 'codex',
130
+ };
131
+ let newTools = [];
132
+ while (newTools.length === 0) {
133
+ const ans = (await rl3.question(' > ')).trim();
134
+ const nums = ans.split(',').map(s => s.trim());
135
+ for (const n of nums) {
136
+ if (toolMap2[n] && !existingTools.includes(toolMap2[n])) {
137
+ newTools.push(toolMap2[n]);
138
+ }
139
+ else if (toolMap2[n] && existingTools.includes(toolMap2[n])) {
140
+ console.log(yellow(` ${toolMap2[n]} is already configured, skipping.`));
141
+ }
142
+ }
143
+ if (newTools.length === 0)
144
+ console.log(yellow(' No new tools selected. Please try again.'));
145
+ }
146
+ rl3.close();
147
+ // Update config.json
148
+ existingConfig.aiTools = [...existingTools, ...newTools];
149
+ writeJson(resolve(aidevos, 'config.json'), existingConfig);
150
+ const built = buildProjectArtifacts(projectRoot, newTools);
151
+ if (existingConfig.mode === 'full') {
152
+ seedBundledSkillRegistry(projectRoot);
153
+ }
154
+ console.log(green('\n ✓ Built') + ` ${built.tools.join(', ')} artifacts`);
155
+ console.log(green('\n ✓ Done!') + ' New tool(s) added successfully.\n');
175
156
  return;
176
157
  }
177
158
  const rl = readline.createInterface({ input: stdin, output: stdout });
@@ -199,19 +180,21 @@ export async function init() {
199
180
  console.log(' 3) VS Code + Copilot');
200
181
  console.log(' 4) Windsurf');
201
182
  console.log(' 5) Lingma (通义灵码)');
202
- console.log(' 6) All of the above\n');
183
+ console.log(' 6) Codex');
184
+ console.log(' 7) All of the above\n');
203
185
  const toolMap = {
204
186
  '1': 'claude-code',
205
187
  '2': 'cursor',
206
188
  '3': 'vscode-copilot',
207
189
  '4': 'windsurf',
208
190
  '5': 'lingma',
191
+ '6': 'codex',
209
192
  };
210
193
  let selectedTools = [];
211
194
  while (selectedTools.length === 0) {
212
195
  const answer = (await rl.question(' > ')).trim();
213
- if (answer === '6') {
214
- selectedTools = ['claude-code', 'cursor', 'vscode-copilot', 'windsurf', 'lingma'];
196
+ if (answer === '7') {
197
+ selectedTools = ['claude-code', 'cursor', 'vscode-copilot', 'windsurf', 'lingma', 'codex'];
215
198
  }
216
199
  else {
217
200
  const nums = answer.split(',').map(s => s.trim());
@@ -223,6 +206,23 @@ export async function init() {
223
206
  if (selectedTools.length === 0)
224
207
  console.log(yellow(' Please select at least one tool'));
225
208
  }
209
+ const importableTools = detectImportableTools(projectRoot, selectedTools);
210
+ let baselineTool = null;
211
+ if (importableTools.length > 0) {
212
+ console.log('\n ? Found existing tool rules/skills/config in this project.');
213
+ console.log(' Choose one baseline tool to import into AIDA JSON (press Enter to skip):\n');
214
+ importableTools.forEach((tool, index) => {
215
+ console.log(` ${index + 1}) ${toolLabel(tool)}`);
216
+ });
217
+ console.log('');
218
+ const answer = (await rl.question(' > ')).trim();
219
+ if (answer) {
220
+ const idx = parseInt(answer, 10);
221
+ if (idx >= 1 && idx <= importableTools.length) {
222
+ baselineTool = importableTools[idx - 1];
223
+ }
224
+ }
225
+ }
226
226
  // Step 3: AI model (only for full mode)
227
227
  let aiModel = '';
228
228
  if (mode === 'full') {
@@ -251,17 +251,7 @@ export async function init() {
251
251
  // 1. Create directory structure
252
252
  ensureDir(resolve(aidevos, 'rules'));
253
253
  ensureDir(resolve(aidevos, 'runs'));
254
- console.log(green(' ✓ Created') + ' .aidevos/');
255
- // 2. Write MCP config to correct location(s)
256
- const mcpWritten = writeMcpConfig(projectRoot, selectedTools);
257
- for (const f of mcpWritten) {
258
- if (f.startsWith('(')) {
259
- console.log(yellow(` ⚠ Windsurf: add MCP config manually to ~/.codeium/windsurf/mcp_config.json`));
260
- }
261
- else {
262
- console.log(green(' ✓ Created') + ` ${f} (MCP Server config)`);
263
- }
264
- }
254
+ console.log(green(' ✓ Created') + ' .aida/');
265
255
  // 3. Seed iron rules into rules.json registry
266
256
  const ironRules = [
267
257
  '禁止任何形式的臆想,不清楚必须询问',
@@ -278,42 +268,46 @@ export async function init() {
278
268
  status: 'active',
279
269
  });
280
270
  }
281
- buildRuleViews(projectRoot);
282
- console.log(green(' ✓ Created') + ' .aidevos/rules.json (with 3 iron rules)');
283
- // 5. Write AIDA guide and sync reference to AI tool instruction files (both modes)
284
- ensureGuide(projectRoot);
285
- syncGuideReference(projectRoot, selectedTools);
286
- console.log(green(' ✓ Created') + ' .aidevos/aida-guide.md (data collection & rule sedimentation guide)');
271
+ console.log(green(' ✓ Created') + ' .aida/rules.json (with 3 iron rules)');
287
272
  // 6. Full mode: copy skills + slash commands
288
273
  if (mode === 'full') {
289
- ensureDir(resolve(aidevos, 'skills'));
290
- for (const skill of ALL_SKILLS) {
291
- const src = resolve(SKILLS_DIR, `${skill}.md`);
292
- const destDir = resolve(aidevos, 'skills', skill);
293
- ensureDir(destDir);
294
- writeText(resolve(destDir, 'SKILL.md'), readText(src));
274
+ if (baselineTool) {
275
+ const bundled = ensureBundledSkills(projectRoot);
276
+ console.log(green(' ✓ Synced') + ` bundled skills into skills.json (+${bundled.added})`);
295
277
  }
296
- console.log(green(' ✓ Created') +
297
- ` .aidevos/skills/ (${ALL_SKILLS.length} skills)`);
298
- // Copy slash commands for the first tool that supports them
299
- const allCommands = [...QUICK_COMMANDS, ...selectedOptional];
300
- if (selectedTools.includes('claude-code')) {
301
- const cmdDir = resolve(projectRoot, '.claude', 'commands');
302
- ensureDir(cmdDir);
303
- for (const cmd of allCommands) {
304
- const src = resolve(SKILLS_DIR, `${cmd.skill}.md`);
305
- writeText(resolve(cmdDir, `${cmd.name}.md`), readText(src));
306
- }
307
- console.log(green(' ✓ Copied') + ' skills to .claude/commands/');
278
+ else {
279
+ seedBundledSkillRegistry(projectRoot);
280
+ console.log(green(' ✓ Created') + ' .aida/skills.json (skills source of truth)');
308
281
  }
309
- if (selectedTools.includes('cursor')) {
310
- for (const cmd of allCommands) {
311
- const src = resolve(SKILLS_DIR, `${cmd.skill}.md`);
312
- const destDir = resolve(projectRoot, '.cursor', 'skills', cmd.name);
313
- ensureDir(destDir);
314
- writeText(resolve(destDir, 'SKILL.md'), readText(src));
315
- }
316
- console.log(green(' ✓ Copied') + ' skills to .cursor/skills/');
282
+ }
283
+ // 8. Write config.json
284
+ const projectName = getProjectName();
285
+ const configData = {
286
+ schemaVersion: '1.0',
287
+ mode,
288
+ aiTools: selectedTools,
289
+ project: projectName,
290
+ };
291
+ if (aiModel)
292
+ configData.aiModel = aiModel;
293
+ if (baselineTool)
294
+ configData.baselineTool = baselineTool;
295
+ writeJson(resolve(aidevos, 'config.json'), configData);
296
+ if (baselineTool) {
297
+ const imported = importFromTool(projectRoot, baselineTool);
298
+ const snapshot = importExistingToolConfigs(projectRoot);
299
+ mergeConfiguredTools(projectRoot, snapshot.tools.filter((tool) => selectedTools.includes(tool)));
300
+ console.log(green(' ✓ Imported') +
301
+ ` baseline tool ${toolLabel(baselineTool)} → ${imported.rulesImported} rules, ${imported.skillsImported} skills`);
302
+ }
303
+ const built = buildProjectArtifacts(projectRoot, selectedTools);
304
+ ensureGuide(projectRoot);
305
+ syncGuideReference(projectRoot, selectedTools);
306
+ console.log(green(' ✓ Built') + ` core artifacts for ${built.tools.join(', ')}`);
307
+ if (mode === 'full') {
308
+ const optionalCopied = copyOptionalCommands(projectRoot, selectedTools, selectedOptional);
309
+ if (optionalCopied > 0) {
310
+ console.log(green(' ✓ Copied') + ` ${optionalCopied} optional command files`);
317
311
  }
318
312
  for (const cmd of QUICK_COMMANDS) {
319
313
  console.log(dim(` - /${cmd.name}`));
@@ -324,21 +318,11 @@ export async function init() {
324
318
  console.log(dim(` - /${cmd.name}`));
325
319
  }
326
320
  }
327
- // Sync iron rules to tool config
328
321
  const primaryTool = selectedTools.includes('claude-code') ? 'claude-code' : 'cursor';
329
- syncIronRules(projectRoot, primaryTool);
322
+ if (primaryTool === 'claude-code' || primaryTool === 'cursor') {
323
+ syncIronRules(projectRoot, primaryTool);
324
+ }
330
325
  }
331
- // 7. Write config.json
332
- const projectName = getProjectName();
333
- const configData = {
334
- schemaVersion: '1.0',
335
- mode,
336
- aiTools: selectedTools,
337
- project: projectName,
338
- };
339
- if (aiModel)
340
- configData.aiModel = aiModel;
341
- writeJson(resolve(aidevos, 'config.json'), configData);
342
326
  // Done
343
327
  if (mode === 'collect') {
344
328
  console.log(`
@@ -1 +1 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../../../src/cli/commands/init.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../../src/cli/commands/init.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare function merge(): Promise<void>;
2
+ //# sourceMappingURL=merge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"merge.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/merge.ts"],"names":[],"mappings":"AAMA,wBAAsB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CA2C3C"}
@@ -0,0 +1,47 @@
1
+ import { green, red, yellow } from '../../utils/display.js';
2
+ import { configPath } from '../../utils/paths.js';
3
+ import { fileExists } from '../../utils/fs.js';
4
+ import { mergeRulesRegistry } from './rules.js';
5
+ import { mergeSkillsRegistry } from './skills.js';
6
+ export async function merge() {
7
+ const projectRoot = process.cwd();
8
+ if (!fileExists(configPath(projectRoot))) {
9
+ console.log(red('\n AIDA not initialized. Run `npx aida init` first.\n'));
10
+ return;
11
+ }
12
+ const rules = await mergeRulesRegistry(projectRoot);
13
+ const skills = await mergeSkillsRegistry(projectRoot);
14
+ if (rules.status === 'error' || skills.status === 'error') {
15
+ console.log(red('\n Merge finished with parse errors. Resolve the remaining conflicted file manually.\n'));
16
+ return;
17
+ }
18
+ const lines = [];
19
+ if (rules.status === 'merged') {
20
+ lines.push(` rules.json: merged, ${rules.total} total (${rules.added} new)`);
21
+ }
22
+ else if (rules.status === 'no-conflict') {
23
+ lines.push(' rules.json: no conflict');
24
+ }
25
+ else if (rules.status === 'missing') {
26
+ lines.push(' rules.json: missing');
27
+ }
28
+ if (skills.status === 'merged') {
29
+ lines.push(` skills.json: merged, ${skills.total} total (${skills.added} new)`);
30
+ }
31
+ else if (skills.status === 'no-conflict') {
32
+ lines.push(' skills.json: no conflict');
33
+ }
34
+ else if (skills.status === 'missing') {
35
+ lines.push(' skills.json: missing');
36
+ }
37
+ const changed = rules.status === 'merged' || skills.status === 'merged';
38
+ if (!changed) {
39
+ console.log(yellow('\n No registry conflicts detected.\n'));
40
+ return;
41
+ }
42
+ console.log(green('\n ✓ Registry merge completed\n'));
43
+ for (const line of lines)
44
+ console.log(line);
45
+ console.log('');
46
+ }
47
+ //# sourceMappingURL=merge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"merge.js","sourceRoot":"","sources":["../../../src/cli/commands/merge.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAElD,MAAM,CAAC,KAAK,UAAU,KAAK;IACzB,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAElC,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC;QACzC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,wDAAwD,CAAC,CAAC,CAAC;QAC3E,OAAO;IACT,CAAC;IAED,MAAM,KAAK,GAAG,MAAM,kBAAkB,CAAC,WAAW,CAAC,CAAC;IACpD,MAAM,MAAM,GAAG,MAAM,mBAAmB,CAAC,WAAW,CAAC,CAAC;IAEtD,IAAI,KAAK,CAAC,MAAM,KAAK,OAAO,IAAI,MAAM,CAAC,MAAM,KAAK,OAAO,EAAE,CAAC;QAC1D,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,yFAAyF,CAAC,CAAC,CAAC;QAC5G,OAAO;IACT,CAAC;IAED,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,IAAI,KAAK,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC9B,KAAK,CAAC,IAAI,CAAC,yBAAyB,KAAK,CAAC,KAAK,WAAW,KAAK,CAAC,KAAK,OAAO,CAAC,CAAC;IAChF,CAAC;SAAM,IAAI,KAAK,CAAC,MAAM,KAAK,aAAa,EAAE,CAAC;QAC1C,KAAK,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;IAC1C,CAAC;SAAM,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QACtC,KAAK,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;IACtC,CAAC;IAED,IAAI,MAAM,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC/B,KAAK,CAAC,IAAI,CAAC,0BAA0B,MAAM,CAAC,KAAK,WAAW,MAAM,CAAC,KAAK,OAAO,CAAC,CAAC;IACnF,CAAC;SAAM,IAAI,MAAM,CAAC,MAAM,KAAK,aAAa,EAAE,CAAC;QAC3C,KAAK,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;IAC3C,CAAC;SAAM,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QACvC,KAAK,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC;IACvC,CAAC;IAED,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,MAAM,KAAK,QAAQ,CAAC;IACxE,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,uCAAuC,CAAC,CAAC,CAAC;QAC7D,OAAO;IACT,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAC,CAAC;IACvD,KAAK,MAAM,IAAI,IAAI,KAAK;QAAE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC5C,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAClB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export declare function migrateDir(): Promise<void>;
2
+ //# sourceMappingURL=migrate-dir.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"migrate-dir.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/migrate-dir.ts"],"names":[],"mappings":"AA0DA,wBAAsB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAoChD"}
@@ -0,0 +1,85 @@
1
+ import { readdirSync, renameSync, statSync } from 'node:fs';
2
+ import { resolve, extname, basename } from 'node:path';
3
+ import { cyan, green, red, yellow } from '../../utils/display.js';
4
+ import { fileExists, readText, writeText } from '../../utils/fs.js';
5
+ const TEXT_EXTENSIONS = new Set([
6
+ '.md',
7
+ '.json',
8
+ '.ts',
9
+ '.tsx',
10
+ '.js',
11
+ '.jsx',
12
+ '.mjs',
13
+ '.cjs',
14
+ '.html',
15
+ '.css',
16
+ '.txt',
17
+ '.toml',
18
+ '.yml',
19
+ '.yaml',
20
+ ]);
21
+ function replaceInFile(filePath) {
22
+ const ext = extname(filePath);
23
+ const name = basename(filePath);
24
+ if (!TEXT_EXTENSIONS.has(ext) && !['.gitignore', 'AGENTS.md', 'CLAUDE.md'].includes(name)) {
25
+ return false;
26
+ }
27
+ const raw = readText(filePath);
28
+ const next = raw.replace(/\.aidevos/g, '.aida').replace(/aidevos-/g, 'aida-');
29
+ if (next === raw)
30
+ return false;
31
+ writeText(filePath, next);
32
+ return true;
33
+ }
34
+ function walkAndReplace(rootDir) {
35
+ if (!fileExists(rootDir))
36
+ return 0;
37
+ let updated = 0;
38
+ const stack = [rootDir];
39
+ while (stack.length > 0) {
40
+ const current = stack.pop();
41
+ for (const name of readdirSync(current)) {
42
+ const fullPath = resolve(current, name);
43
+ const stat = statSync(fullPath);
44
+ if (stat.isDirectory()) {
45
+ stack.push(fullPath);
46
+ continue;
47
+ }
48
+ if (replaceInFile(fullPath))
49
+ updated++;
50
+ }
51
+ }
52
+ return updated;
53
+ }
54
+ export async function migrateDir() {
55
+ const projectRoot = process.cwd();
56
+ const oldDir = resolve(projectRoot, '.aidevos');
57
+ const newDir = resolve(projectRoot, '.aida');
58
+ if (!fileExists(oldDir)) {
59
+ if (fileExists(newDir)) {
60
+ console.log(green('\n ✓ Project already uses .aida.\n'));
61
+ return;
62
+ }
63
+ console.log(yellow('\n No .aidevos directory found.\n'));
64
+ return;
65
+ }
66
+ if (fileExists(newDir)) {
67
+ console.log(red('\n Cannot migrate: both .aidevos and .aida exist.\n'));
68
+ console.log(' Resolve the duplicate directories first, then run `aida migrate-dir` again.\n');
69
+ return;
70
+ }
71
+ console.log(cyan('\n Migrating project directory: .aidevos -> .aida\n'));
72
+ renameSync(oldDir, newDir);
73
+ let updatedFiles = 0;
74
+ updatedFiles += walkAndReplace(newDir);
75
+ for (const topLevel of ['AGENTS.md', 'CLAUDE.md', '.gitignore']) {
76
+ const target = resolve(projectRoot, topLevel);
77
+ if (fileExists(target) && replaceInFile(target)) {
78
+ updatedFiles++;
79
+ }
80
+ }
81
+ console.log(green(' ✓ Directory renamed') + ': .aida');
82
+ console.log(green(' ✓ Updated references') + `: ${updatedFiles} text file(s)`);
83
+ console.log('\n Next step: run `aida build` to regenerate local AI tool artifacts.\n');
84
+ }
85
+ //# sourceMappingURL=migrate-dir.js.map