ai-dev-analytics 1.0.4 → 1.1.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 (99) hide show
  1. package/README.md +28 -17
  2. package/README.zh-CN.md +28 -17
  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 +46 -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 +62 -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 +110 -312
  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 +6 -0
  21. package/dist/cli/commands/migrate-dir.d.ts.map +1 -0
  22. package/dist/cli/commands/migrate-dir.js +98 -0
  23. package/dist/cli/commands/migrate-dir.js.map +1 -0
  24. package/dist/cli/commands/migrate-legacy.d.ts +2 -0
  25. package/dist/cli/commands/migrate-legacy.d.ts.map +1 -0
  26. package/dist/cli/commands/migrate-legacy.js +95 -0
  27. package/dist/cli/commands/migrate-legacy.js.map +1 -0
  28. package/dist/cli/commands/migrate.js +5 -5
  29. package/dist/cli/commands/migrate.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 +143 -38
  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.js +4 -4
  41. package/dist/cli/commands/start.js.map +1 -1
  42. package/dist/cli/commands/update.d.ts.map +1 -1
  43. package/dist/cli/commands/update.js +14 -7
  44. package/dist/cli/commands/update.js.map +1 -1
  45. package/dist/cli/index.js +36 -0
  46. package/dist/cli/index.js.map +1 -1
  47. package/dist/server/api.js +2 -2
  48. package/dist/server/api.js.map +1 -1
  49. package/dist/server/index.js +1 -1
  50. package/dist/server/index.js.map +1 -1
  51. package/dist/utils/ai-build.d.ts +19 -0
  52. package/dist/utils/ai-build.d.ts.map +1 -0
  53. package/dist/utils/ai-build.js +278 -0
  54. package/dist/utils/ai-build.js.map +1 -0
  55. package/dist/utils/fs.d.ts +9 -0
  56. package/dist/utils/fs.d.ts.map +1 -1
  57. package/dist/utils/fs.js +31 -0
  58. package/dist/utils/fs.js.map +1 -1
  59. package/dist/utils/guide.d.ts +5 -4
  60. package/dist/utils/guide.d.ts.map +1 -1
  61. package/dist/utils/guide.js +80 -13
  62. package/dist/utils/guide.js.map +1 -1
  63. package/dist/utils/import.d.ts +38 -0
  64. package/dist/utils/import.d.ts.map +1 -0
  65. package/dist/utils/import.js +308 -0
  66. package/dist/utils/import.js.map +1 -0
  67. package/dist/utils/paths.d.ts +2 -2
  68. package/dist/utils/paths.d.ts.map +1 -1
  69. package/dist/utils/paths.js +8 -8
  70. package/dist/utils/paths.js.map +1 -1
  71. package/dist/utils/prompt.d.ts +15 -0
  72. package/dist/utils/prompt.d.ts.map +1 -0
  73. package/dist/utils/prompt.js +193 -0
  74. package/dist/utils/prompt.js.map +1 -0
  75. package/dist/utils/rules.d.ts +6 -1
  76. package/dist/utils/rules.d.ts.map +1 -1
  77. package/dist/utils/rules.js +126 -6
  78. package/dist/utils/rules.js.map +1 -1
  79. package/dist/utils/run-data.d.ts +1 -1
  80. package/dist/utils/run-data.js +4 -4
  81. package/dist/utils/run-data.js.map +1 -1
  82. package/dist/utils/skills.d.ts +37 -0
  83. package/dist/utils/skills.d.ts.map +1 -0
  84. package/dist/utils/skills.js +228 -0
  85. package/dist/utils/skills.js.map +1 -0
  86. package/package.json +1 -1
  87. package/src/assets/skills/audit.md +6 -6
  88. package/src/assets/skills/bug-fixer.md +4 -4
  89. package/src/assets/skills/code-generator.md +4 -4
  90. package/src/assets/skills/dashboard-generator.md +2 -2
  91. package/src/assets/skills/dev-flower.md +3 -3
  92. package/src/assets/skills/deviation-recorder.md +7 -7
  93. package/src/assets/skills/mcp-reviewer.md +2 -2
  94. package/src/assets/skills/requirement-analyzer.md +4 -4
  95. package/src/assets/skills/rules-evolver.md +7 -7
  96. package/src/assets/skills/self-reviewer.md +4 -4
  97. package/src/assets/skills/task-splitter.md +5 -5
  98. package/src/assets/skills/workflow-orchestrator.md +11 -11
  99. package/src/assets/templates/demo-run.json +7 -7
@@ -1,11 +1,14 @@
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';
6
+ import { addRule } from '../../utils/rules.js';
8
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';
11
+ import { promptMultiSelect, promptSingleSelect } from '../../utils/prompt.js';
9
12
  const QUICK_COMMANDS = [
10
13
  { name: 'workflow', skill: 'workflow-orchestrator' },
11
14
  { name: 'audit', skill: 'audit' },
@@ -41,132 +44,52 @@ const IRON_RULES_APPEND = `
41
44
  1. 禁止任何形式的臆想,不清楚必须询问
42
45
  2. 禁止随意生成文档,如需生成文档,必须询问用户是否需要
43
46
  3. 生成测试脚本,在测试验证通过后必须删除测试脚本,保持项目清爽
47
+ 4. 当用户直接要求沉淀项目级技术规范,或识别到 rule-missing 需要沉淀规则时,必须通过 AIDA MCP 的 aida_log_rule 写入 .aida/rules.json,不要只修改本地规则说明文件
44
48
  `;
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
- }
49
+ function toolLabel(tool) {
50
+ const labels = {
51
+ 'claude-code': 'Claude Code',
52
+ cursor: 'Cursor',
53
+ 'vscode-copilot': 'VS Code + Copilot',
54
+ windsurf: 'Windsurf',
55
+ lingma: 'Lingma',
56
+ codex: 'Codex',
57
+ };
58
+ return labels[tool];
59
+ }
60
+ function toolOptions(tools) {
61
+ return tools.map((tool) => ({ value: tool, label: toolLabel(tool) }));
62
+ }
63
+ function copyOptionalCommands(projectRoot, tools, commands) {
64
+ let copied = 0;
65
+ if (tools.includes('claude-code')) {
66
+ const cmdDir = resolve(projectRoot, '.claude', 'commands');
67
+ ensureDir(cmdDir);
68
+ for (const cmd of commands) {
69
+ const content = getSkillContent(projectRoot, cmd.skill);
70
+ if (!content)
71
+ continue;
72
+ writeText(resolve(cmdDir, `${cmd.name}.md`), content);
73
+ copied++;
162
74
  }
163
75
  }
164
- return written;
76
+ if (tools.includes('cursor')) {
77
+ for (const cmd of commands) {
78
+ const content = getSkillContent(projectRoot, cmd.skill);
79
+ if (!content)
80
+ continue;
81
+ const destDir = resolve(projectRoot, '.cursor', 'skills', cmd.name);
82
+ ensureDir(destDir);
83
+ writeText(resolve(destDir, 'SKILL.md'), content);
84
+ copied++;
85
+ }
86
+ }
87
+ return copied;
165
88
  }
166
89
  // ─── Init command ────────────────────────────────────────
167
90
  export async function init() {
168
91
  const projectRoot = process.cwd();
169
- const aidevos = resolve(projectRoot, '.aidevos');
92
+ const aidevos = resolve(projectRoot, '.aida');
170
93
  console.log(`\n ${bold('AIDA')} - AI Development Observability Platform\n`);
171
94
  // Check if already initialized
172
95
  if (fileExists(resolve(aidevos, 'config.json'))) {
@@ -188,98 +111,31 @@ export async function init() {
188
111
  // ── Option 2: Repair missing files ──────────────────
189
112
  if (choice === '2') {
190
113
  console.log('\n Repairing...\n');
191
- // Update guide content to latest
192
- updateGuide(projectRoot);
193
- updateGuideReferences(projectRoot, existingTools);
194
- console.log(green(' ✓ Updated') + ' .aidevos/aida-guide.md and AI tool rule files');
195
- // Ensure MCP configs (create-if-not-exists)
196
- const repairMcp = writeMcpConfig(projectRoot, existingTools);
197
- for (const f of repairMcp) {
198
- if (f.startsWith('(')) {
199
- console.log(yellow(' ⚠ Windsurf: add MCP config manually to ~/.codeium/windsurf/mcp_config.json'));
200
- }
201
- else {
202
- console.log(green(' ✓ Ensured') + ` ${f}`);
203
- }
204
- }
205
- // Ensure .gitignore entries
206
- const gitignorePath = resolve(projectRoot, '.gitignore');
207
- const gitignoreEntries = ['.aidevos/rules/*.md', '.aidevos/index.json'];
208
- const gitignoreExisting = fileExists(gitignorePath) ? readText(gitignorePath) : '';
209
- const toAdd = gitignoreEntries.filter((e) => !gitignoreExisting.includes(e));
210
- if (toAdd.length > 0) {
211
- writeText(gitignorePath, gitignoreExisting.trimEnd() + '\n\n# AIDA - auto-generated files\n' + toAdd.join('\n') + '\n');
212
- console.log(green(' ✓ Updated') + ` .gitignore (added ${toAdd.join(', ')})`);
213
- }
214
- // Ensure rules directory exists
215
114
  ensureDir(resolve(aidevos, 'rules'));
216
115
  ensureDir(resolve(aidevos, 'runs'));
116
+ const repaired = buildProjectArtifacts(projectRoot, existingTools);
117
+ updateGuide(projectRoot);
118
+ updateGuideReferences(projectRoot, existingTools);
119
+ console.log(green(' ✓ Rebuilt') + ` core artifacts for ${repaired.tools.join(', ') || 'configured tools'}`);
217
120
  console.log(green('\n ✓ Done!') + ' Missing files have been filled in.\n');
218
121
  return;
219
122
  }
220
123
  // ── Option 1: Add a new AI tool ──────────────────────
221
- const rl3 = readline.createInterface({ input: stdin, output: stdout });
222
- console.log('\n ? Which AI tool do you want to add? (comma-separated numbers):\n');
223
- console.log(' 1) Claude Code');
224
- console.log(' 2) Cursor');
225
- console.log(' 3) VS Code + Copilot');
226
- console.log(' 4) Windsurf');
227
- console.log(' 5) Lingma (通义灵码)\n');
228
- const toolMap2 = {
229
- '1': 'claude-code', '2': 'cursor', '3': 'vscode-copilot', '4': 'windsurf', '5': 'lingma',
230
- };
231
- let newTools = [];
232
- while (newTools.length === 0) {
233
- const ans = (await rl3.question(' > ')).trim();
234
- const nums = ans.split(',').map(s => s.trim());
235
- for (const n of nums) {
236
- if (toolMap2[n] && !existingTools.includes(toolMap2[n])) {
237
- newTools.push(toolMap2[n]);
238
- }
239
- else if (toolMap2[n] && existingTools.includes(toolMap2[n])) {
240
- console.log(yellow(` ${toolMap2[n]} is already configured, skipping.`));
241
- }
242
- }
243
- if (newTools.length === 0)
244
- console.log(yellow(' No new tools selected. Please try again.'));
245
- }
246
- rl3.close();
247
- // Write MCP config for new tools
248
- syncGuideReference(projectRoot, newTools);
249
- const mcpWritten = writeMcpConfig(projectRoot, newTools);
250
- for (const f of mcpWritten) {
251
- if (f.startsWith('(')) {
252
- console.log(yellow(`\n ⚠ Windsurf: add MCP config manually to ~/.codeium/windsurf/mcp_config.json`));
253
- }
254
- else {
255
- console.log(green('\n ✓ Created') + ` ${f} (MCP Server config)`);
256
- }
257
- }
258
- // Copy skills for new tools if full mode
259
- if (existingConfig.mode === 'full') {
260
- const allCommands = [...QUICK_COMMANDS];
261
- if (newTools.includes('cursor')) {
262
- for (const cmd of allCommands) {
263
- const src = resolve(SKILLS_DIR, `${cmd.skill}.md`);
264
- const destDir = resolve(projectRoot, '.cursor', 'skills', cmd.name);
265
- ensureDir(destDir);
266
- writeText(resolve(destDir, 'SKILL.md'), readText(src));
267
- }
268
- console.log(green(' ✓ Copied') + ' skills to .cursor/skills/');
269
- }
270
- if (newTools.includes('claude-code')) {
271
- const cmdDir = resolve(projectRoot, '.claude', 'commands');
272
- ensureDir(cmdDir);
273
- for (const cmd of allCommands) {
274
- const src = resolve(SKILLS_DIR, `${cmd.skill}.md`);
275
- writeText(resolve(cmdDir, `${cmd.name}.md`), readText(src));
276
- }
277
- console.log(green(' ✓ Copied') + ' skills to .claude/commands/');
278
- }
124
+ const candidates = ['claude-code', 'cursor', 'vscode-copilot', 'windsurf', 'lingma', 'codex']
125
+ .filter((tool) => !existingTools.includes(tool));
126
+ if (candidates.length === 0) {
127
+ console.log(yellow('\n All supported AI tools are already configured.\n'));
128
+ return;
279
129
  }
130
+ const newTools = await promptMultiSelect('Select AI tool(s) to add:', toolOptions(candidates), { required: true });
280
131
  // Update config.json
281
132
  existingConfig.aiTools = [...existingTools, ...newTools];
282
133
  writeJson(resolve(aidevos, 'config.json'), existingConfig);
134
+ const built = buildProjectArtifacts(projectRoot, newTools);
135
+ if (existingConfig.mode === 'full') {
136
+ seedBundledSkillRegistry(projectRoot);
137
+ }
138
+ console.log(green('\n ✓ Built') + ` ${built.tools.join(', ')} artifacts`);
283
139
  console.log(green('\n ✓ Done!') + ' New tool(s) added successfully.\n');
284
140
  return;
285
141
  }
@@ -302,35 +158,11 @@ export async function init() {
302
158
  console.log(yellow(' Please enter 1 or 2'));
303
159
  }
304
160
  // Step 2: Select AI tools (multi-select)
305
- console.log('\n ? Which AI tools do you use? (comma-separated numbers):\n');
306
- console.log(' 1) Claude Code');
307
- console.log(' 2) Cursor');
308
- console.log(' 3) VS Code + Copilot');
309
- console.log(' 4) Windsurf');
310
- console.log(' 5) Lingma (通义灵码)');
311
- console.log(' 6) All of the above\n');
312
- const toolMap = {
313
- '1': 'claude-code',
314
- '2': 'cursor',
315
- '3': 'vscode-copilot',
316
- '4': 'windsurf',
317
- '5': 'lingma',
318
- };
319
- let selectedTools = [];
320
- while (selectedTools.length === 0) {
321
- const answer = (await rl.question(' > ')).trim();
322
- if (answer === '6') {
323
- selectedTools = ['claude-code', 'cursor', 'vscode-copilot', 'windsurf', 'lingma'];
324
- }
325
- else {
326
- const nums = answer.split(',').map(s => s.trim());
327
- for (const n of nums) {
328
- if (toolMap[n])
329
- selectedTools.push(toolMap[n]);
330
- }
331
- }
332
- if (selectedTools.length === 0)
333
- console.log(yellow(' Please select at least one tool'));
161
+ const selectedTools = await promptMultiSelect('Which AI tools do you use?', toolOptions(['claude-code', 'cursor', 'vscode-copilot', 'windsurf', 'lingma', 'codex']), { required: true });
162
+ const importableTools = detectImportableTools(projectRoot, selectedTools);
163
+ let baselineTool = null;
164
+ if (importableTools.length > 0) {
165
+ baselineTool = await promptSingleSelect('Found existing tool rules/skills/config. Choose one baseline tool to import into AIDA JSON:', toolOptions(importableTools), { allowSkip: true });
334
166
  }
335
167
  // Step 3: AI model (only for full mode)
336
168
  let aiModel = '';
@@ -342,17 +174,10 @@ export async function init() {
342
174
  // Step 4: Optional tools (only for full mode)
343
175
  const selectedOptional = [];
344
176
  if (mode === 'full') {
345
- console.log('\n ? Optional tools (comma-separated numbers, or press Enter to skip):\n');
346
- OPTIONAL_COMMANDS.forEach((cmd, i) => {
347
- console.log(` ${i + 1}) ${cmd.name} - ${cmd.desc}`);
348
- });
349
- console.log('');
350
- const optionsInput = (await rl.question(' > ')).trim();
351
- if (optionsInput) {
352
- const indices = optionsInput.split(',').map((s) => parseInt(s.trim())).filter(n => n > 0 && n <= OPTIONAL_COMMANDS.length);
353
- for (const idx of indices) {
354
- selectedOptional.push(OPTIONAL_COMMANDS[idx - 1]);
355
- }
177
+ const optionalValues = await promptMultiSelect('Optional tools:', OPTIONAL_COMMANDS.map((cmd) => ({ value: cmd.name, label: cmd.name, hint: cmd.desc })), { required: false });
178
+ for (const cmd of OPTIONAL_COMMANDS) {
179
+ if (optionalValues.includes(cmd.name))
180
+ selectedOptional.push(cmd);
356
181
  }
357
182
  }
358
183
  rl.close();
@@ -360,17 +185,7 @@ export async function init() {
360
185
  // 1. Create directory structure
361
186
  ensureDir(resolve(aidevos, 'rules'));
362
187
  ensureDir(resolve(aidevos, 'runs'));
363
- console.log(green(' ✓ Created') + ' .aidevos/');
364
- // 2. Write MCP config to correct location(s)
365
- const mcpWritten = writeMcpConfig(projectRoot, selectedTools);
366
- for (const f of mcpWritten) {
367
- if (f.startsWith('(')) {
368
- console.log(yellow(` ⚠ Windsurf: add MCP config manually to ~/.codeium/windsurf/mcp_config.json`));
369
- }
370
- else {
371
- console.log(green(' ✓ Created') + ` ${f} (MCP Server config)`);
372
- }
373
- }
188
+ console.log(green(' ✓ Created') + ' .aida/');
374
189
  // 3. Seed iron rules into rules.json registry
375
190
  const ironRules = [
376
191
  '禁止任何形式的臆想,不清楚必须询问',
@@ -387,66 +202,17 @@ export async function init() {
387
202
  status: 'active',
388
203
  });
389
204
  }
390
- buildRuleViews(projectRoot);
391
- console.log(green(' ✓ Created') + ' .aidevos/rules.json (with 3 iron rules)');
392
- // 5. Write AIDA guide and sync reference to AI tool instruction files (both modes)
393
- ensureGuide(projectRoot);
394
- syncGuideReference(projectRoot, selectedTools);
395
- console.log(green(' ✓ Created') + ' .aidevos/aida-guide.md (data collection & rule sedimentation guide)');
205
+ console.log(green(' ✓ Created') + ' .aida/rules.json (with 3 iron rules)');
396
206
  // 6. Full mode: copy skills + slash commands
397
207
  if (mode === 'full') {
398
- ensureDir(resolve(aidevos, 'skills'));
399
- for (const skill of ALL_SKILLS) {
400
- const src = resolve(SKILLS_DIR, `${skill}.md`);
401
- const destDir = resolve(aidevos, 'skills', skill);
402
- ensureDir(destDir);
403
- writeText(resolve(destDir, 'SKILL.md'), readText(src));
208
+ if (baselineTool) {
209
+ const bundled = ensureBundledSkills(projectRoot);
210
+ console.log(green(' ✓ Synced') + ` bundled skills into skills.json (+${bundled.added})`);
404
211
  }
405
- console.log(green(' ✓ Created') +
406
- ` .aidevos/skills/ (${ALL_SKILLS.length} skills)`);
407
- // Copy slash commands for the first tool that supports them
408
- const allCommands = [...QUICK_COMMANDS, ...selectedOptional];
409
- if (selectedTools.includes('claude-code')) {
410
- const cmdDir = resolve(projectRoot, '.claude', 'commands');
411
- ensureDir(cmdDir);
412
- for (const cmd of allCommands) {
413
- const src = resolve(SKILLS_DIR, `${cmd.skill}.md`);
414
- writeText(resolve(cmdDir, `${cmd.name}.md`), readText(src));
415
- }
416
- console.log(green(' ✓ Copied') + ' skills to .claude/commands/');
417
- }
418
- if (selectedTools.includes('cursor')) {
419
- for (const cmd of allCommands) {
420
- const src = resolve(SKILLS_DIR, `${cmd.skill}.md`);
421
- const destDir = resolve(projectRoot, '.cursor', 'skills', cmd.name);
422
- ensureDir(destDir);
423
- writeText(resolve(destDir, 'SKILL.md'), readText(src));
424
- }
425
- console.log(green(' ✓ Copied') + ' skills to .cursor/skills/');
426
- }
427
- for (const cmd of QUICK_COMMANDS) {
428
- console.log(dim(` - /${cmd.name}`));
429
- }
430
- if (selectedOptional.length > 0) {
431
- console.log(dim(` Optional:`));
432
- for (const cmd of selectedOptional) {
433
- console.log(dim(` - /${cmd.name}`));
434
- }
212
+ else {
213
+ seedBundledSkillRegistry(projectRoot);
214
+ console.log(green(' ✓ Created') + ' .aida/skills.json (skills source of truth)');
435
215
  }
436
- // Sync iron rules to tool config
437
- const primaryTool = selectedTools.includes('claude-code') ? 'claude-code' : 'cursor';
438
- syncIronRules(projectRoot, primaryTool);
439
- }
440
- // 7. Update .gitignore
441
- const gitignorePath = resolve(projectRoot, '.gitignore');
442
- // These are derived/auto-generated files that should not be committed
443
- const gitignoreEntries = ['.aidevos/rules/*.md', '.aidevos/index.json'];
444
- const existed = fileExists(gitignorePath);
445
- const existing = existed ? readText(gitignorePath) : '';
446
- const toAdd = gitignoreEntries.filter((e) => !existing.includes(e));
447
- if (toAdd.length > 0) {
448
- writeText(gitignorePath, existing.trimEnd() + '\n\n# AIDA - auto-generated files (source of truth: rules.json / run data)\n' + toAdd.join('\n') + '\n');
449
- console.log(green(existed ? ' ✓ Updated' : ' ✓ Created') + ` .gitignore (added ${toAdd.join(', ')})`);
450
216
  }
451
217
  // 8. Write config.json
452
218
  const projectName = getProjectName();
@@ -458,7 +224,39 @@ export async function init() {
458
224
  };
459
225
  if (aiModel)
460
226
  configData.aiModel = aiModel;
227
+ if (baselineTool)
228
+ configData.baselineTool = baselineTool;
461
229
  writeJson(resolve(aidevos, 'config.json'), configData);
230
+ if (baselineTool) {
231
+ const imported = importFromTool(projectRoot, baselineTool);
232
+ const snapshot = importExistingToolConfigs(projectRoot);
233
+ mergeConfiguredTools(projectRoot, snapshot.tools.filter((tool) => selectedTools.includes(tool)));
234
+ console.log(green(' ✓ Imported') +
235
+ ` baseline tool ${toolLabel(baselineTool)} → ${imported.rulesImported} rules, ${imported.skillsImported} skills`);
236
+ }
237
+ const built = buildProjectArtifacts(projectRoot, selectedTools);
238
+ ensureGuide(projectRoot);
239
+ syncGuideReference(projectRoot, selectedTools);
240
+ console.log(green(' ✓ Built') + ` core artifacts for ${built.tools.join(', ')}`);
241
+ if (mode === 'full') {
242
+ const optionalCopied = copyOptionalCommands(projectRoot, selectedTools, selectedOptional);
243
+ if (optionalCopied > 0) {
244
+ console.log(green(' ✓ Copied') + ` ${optionalCopied} optional command files`);
245
+ }
246
+ for (const cmd of QUICK_COMMANDS) {
247
+ console.log(dim(` - /${cmd.name}`));
248
+ }
249
+ if (selectedOptional.length > 0) {
250
+ console.log(dim(` Optional:`));
251
+ for (const cmd of selectedOptional) {
252
+ console.log(dim(` - /${cmd.name}`));
253
+ }
254
+ }
255
+ const primaryTool = selectedTools.includes('claude-code') ? 'claude-code' : 'cursor';
256
+ if (primaryTool === 'claude-code' || primaryTool === 'cursor') {
257
+ syncIronRules(projectRoot, primaryTool);
258
+ }
259
+ }
462
260
  // Done
463
261
  if (mode === 'collect') {
464
262
  console.log(`
@@ -496,8 +294,8 @@ function syncIronRules(projectRoot, tool) {
496
294
  }
497
295
  }
498
296
  else {
499
- // Cursor: write to .cursor/rules/aidevos/iron-rules.md
500
- const rulesDir = resolve(projectRoot, '.cursor', 'rules', 'aidevos');
297
+ // Cursor: write to .cursor/rules/aida/iron-rules.md
298
+ const rulesDir = resolve(projectRoot, '.cursor', 'rules', 'aida');
501
299
  ensureDir(rulesDir);
502
300
  const file = resolve(rulesDir, 'iron-rules.md');
503
301
  if (fileExists(file)) {
@@ -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"}