ai-dev-analytics 1.0.0-beta.11

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 (118) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +422 -0
  3. package/README.zh-CN.md +422 -0
  4. package/dist/cli/commands/dashboard.d.ts +2 -0
  5. package/dist/cli/commands/dashboard.d.ts.map +1 -0
  6. package/dist/cli/commands/dashboard.js +70 -0
  7. package/dist/cli/commands/dashboard.js.map +1 -0
  8. package/dist/cli/commands/init.d.ts +2 -0
  9. package/dist/cli/commands/init.d.ts.map +1 -0
  10. package/dist/cli/commands/init.js +367 -0
  11. package/dist/cli/commands/init.js.map +1 -0
  12. package/dist/cli/commands/log.d.ts +2 -0
  13. package/dist/cli/commands/log.d.ts.map +1 -0
  14. package/dist/cli/commands/log.js +438 -0
  15. package/dist/cli/commands/log.js.map +1 -0
  16. package/dist/cli/commands/migrate.d.ts +2 -0
  17. package/dist/cli/commands/migrate.d.ts.map +1 -0
  18. package/dist/cli/commands/migrate.js +300 -0
  19. package/dist/cli/commands/migrate.js.map +1 -0
  20. package/dist/cli/commands/reindex.d.ts +10 -0
  21. package/dist/cli/commands/reindex.d.ts.map +1 -0
  22. package/dist/cli/commands/reindex.js +94 -0
  23. package/dist/cli/commands/reindex.js.map +1 -0
  24. package/dist/cli/commands/report.d.ts +2 -0
  25. package/dist/cli/commands/report.d.ts.map +1 -0
  26. package/dist/cli/commands/report.js +219 -0
  27. package/dist/cli/commands/report.js.map +1 -0
  28. package/dist/cli/commands/rules.d.ts +2 -0
  29. package/dist/cli/commands/rules.d.ts.map +1 -0
  30. package/dist/cli/commands/rules.js +143 -0
  31. package/dist/cli/commands/rules.js.map +1 -0
  32. package/dist/cli/commands/start.d.ts +2 -0
  33. package/dist/cli/commands/start.d.ts.map +1 -0
  34. package/dist/cli/commands/start.js +173 -0
  35. package/dist/cli/commands/start.js.map +1 -0
  36. package/dist/cli/commands/status.d.ts +2 -0
  37. package/dist/cli/commands/status.d.ts.map +1 -0
  38. package/dist/cli/commands/status.js +74 -0
  39. package/dist/cli/commands/status.js.map +1 -0
  40. package/dist/cli/commands/update.d.ts +2 -0
  41. package/dist/cli/commands/update.d.ts.map +1 -0
  42. package/dist/cli/commands/update.js +146 -0
  43. package/dist/cli/commands/update.js.map +1 -0
  44. package/dist/cli/index.d.ts +3 -0
  45. package/dist/cli/index.d.ts.map +1 -0
  46. package/dist/cli/index.js +85 -0
  47. package/dist/cli/index.js.map +1 -0
  48. package/dist/mcp/server.d.ts +10 -0
  49. package/dist/mcp/server.d.ts.map +1 -0
  50. package/dist/mcp/server.js +704 -0
  51. package/dist/mcp/server.js.map +1 -0
  52. package/dist/schemas/run-json.d.ts +258 -0
  53. package/dist/schemas/run-json.d.ts.map +1 -0
  54. package/dist/schemas/run-json.js +22 -0
  55. package/dist/schemas/run-json.js.map +1 -0
  56. package/dist/server/api.d.ts +30 -0
  57. package/dist/server/api.d.ts.map +1 -0
  58. package/dist/server/api.js +239 -0
  59. package/dist/server/api.js.map +1 -0
  60. package/dist/server/index.d.ts +2 -0
  61. package/dist/server/index.d.ts.map +1 -0
  62. package/dist/server/index.js +228 -0
  63. package/dist/server/index.js.map +1 -0
  64. package/dist/utils/display.d.ts +12 -0
  65. package/dist/utils/display.d.ts.map +1 -0
  66. package/dist/utils/display.js +52 -0
  67. package/dist/utils/display.js.map +1 -0
  68. package/dist/utils/fs.d.ts +9 -0
  69. package/dist/utils/fs.d.ts.map +1 -0
  70. package/dist/utils/fs.js +43 -0
  71. package/dist/utils/fs.js.map +1 -0
  72. package/dist/utils/git.d.ts +4 -0
  73. package/dist/utils/git.d.ts.map +1 -0
  74. package/dist/utils/git.js +18 -0
  75. package/dist/utils/git.js.map +1 -0
  76. package/dist/utils/guide.d.ts +18 -0
  77. package/dist/utils/guide.d.ts.map +1 -0
  78. package/dist/utils/guide.js +172 -0
  79. package/dist/utils/guide.js.map +1 -0
  80. package/dist/utils/paths.d.ts +25 -0
  81. package/dist/utils/paths.d.ts.map +1 -0
  82. package/dist/utils/paths.js +45 -0
  83. package/dist/utils/paths.js.map +1 -0
  84. package/dist/utils/rules.d.ts +44 -0
  85. package/dist/utils/rules.d.ts.map +1 -0
  86. package/dist/utils/rules.js +208 -0
  87. package/dist/utils/rules.js.map +1 -0
  88. package/dist/utils/run-data.d.ts +37 -0
  89. package/dist/utils/run-data.d.ts.map +1 -0
  90. package/dist/utils/run-data.js +389 -0
  91. package/dist/utils/run-data.js.map +1 -0
  92. package/dist/utils/tokens.d.ts +26 -0
  93. package/dist/utils/tokens.d.ts.map +1 -0
  94. package/dist/utils/tokens.js +173 -0
  95. package/dist/utils/tokens.js.map +1 -0
  96. package/package.json +49 -0
  97. package/src/assets/skills/audit.md +98 -0
  98. package/src/assets/skills/bug-fixer.md +48 -0
  99. package/src/assets/skills/code-generator.md +82 -0
  100. package/src/assets/skills/commit-code.md +67 -0
  101. package/src/assets/skills/dashboard-generator.md +65 -0
  102. package/src/assets/skills/dev-flower.md +85 -0
  103. package/src/assets/skills/deviation-recorder.md +82 -0
  104. package/src/assets/skills/docx-to-markdown.md +69 -0
  105. package/src/assets/skills/mcp-reviewer.md +43 -0
  106. package/src/assets/skills/requirement-analyzer.md +103 -0
  107. package/src/assets/skills/rules-evolver.md +47 -0
  108. package/src/assets/skills/self-reviewer.md +53 -0
  109. package/src/assets/skills/task-splitter.md +58 -0
  110. package/src/assets/skills/workflow-orchestrator.md +209 -0
  111. package/src/assets/templates/demo-run.json +910 -0
  112. package/src/assets/templates/run.json +63 -0
  113. package/src/dashboard/assets/index-C-E7m3g4.css +1 -0
  114. package/src/dashboard/assets/index-CsU3dyCj.js +111 -0
  115. package/src/dashboard/demo/overview.json +71 -0
  116. package/src/dashboard/demo/run.json +2667 -0
  117. package/src/dashboard/demo/runs.json +19 -0
  118. package/src/dashboard/index.html +13 -0
@@ -0,0 +1,367 @@
1
+ import * as readline from 'node:readline/promises';
2
+ import { stdin, stdout } from 'node:process';
3
+ import { resolve } from 'node:path';
4
+ import { SKILLS_DIR } from '../../utils/paths.js';
5
+ import { ensureDir, writeText, readText, fileExists, getProjectName, writeJson, } from '../../utils/fs.js';
6
+ 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';
9
+ const QUICK_COMMANDS = [
10
+ { name: 'workflow', skill: 'workflow-orchestrator' },
11
+ { name: 'audit', skill: 'audit' },
12
+ { name: 'deviation', skill: 'deviation-recorder' },
13
+ { name: 'self-reviewer', skill: 'self-reviewer' },
14
+ { name: 'bug-fixer', skill: 'bug-fixer' },
15
+ { name: 'rules-evolver', skill: 'rules-evolver' },
16
+ ];
17
+ const OPTIONAL_COMMANDS = [
18
+ { name: 'commit-code', skill: 'commit-code', desc: 'Git commit assistant' },
19
+ { name: 'docx-to-markdown', skill: 'docx-to-markdown', desc: 'Convert DOCX to Markdown' },
20
+ ];
21
+ const ALL_SKILLS = [
22
+ 'workflow-orchestrator',
23
+ 'requirement-analyzer',
24
+ 'task-splitter',
25
+ 'code-generator',
26
+ 'self-reviewer',
27
+ 'bug-fixer',
28
+ 'deviation-recorder',
29
+ 'dashboard-generator',
30
+ 'commit-code',
31
+ 'docx-to-markdown',
32
+ 'mcp-reviewer',
33
+ 'rules-evolver',
34
+ 'dev-flower',
35
+ 'audit',
36
+ ];
37
+ const IRON_RULES_APPEND = `
38
+
39
+ ## AIDevOS Iron Rules
40
+
41
+ 1. 禁止任何形式的臆想,不清楚必须询问
42
+ 2. 禁止随意生成文档,如需生成文档,必须询问用户是否需要
43
+ 3. 生成测试脚本,在测试验证通过后必须删除测试脚本,保持项目清爽
44
+ `;
45
+ const MCP_CONFIG_JSON = JSON.stringify({
46
+ mcpServers: {
47
+ aida: {
48
+ command: 'aida',
49
+ args: ['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: 'aida', args: ['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: 'aida', args: ['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: 'aida', args: ['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
+ }
138
+ }
139
+ return written;
140
+ }
141
+ // ─── Init command ────────────────────────────────────────
142
+ export async function init() {
143
+ const projectRoot = process.cwd();
144
+ const aidevos = resolve(projectRoot, '.aidevos');
145
+ console.log(`\n ${bold('AIDA')} - AI Development Observability Platform\n`);
146
+ // Check if already initialized
147
+ if (fileExists(resolve(aidevos, 'config.json'))) {
148
+ console.log(yellow(' AIDA is already initialized in this project.'));
149
+ console.log(dim(' To reinitialize, delete the .aidevos directory first.\n'));
150
+ return;
151
+ }
152
+ const rl = readline.createInterface({ input: stdin, output: stdout });
153
+ // Step 1: Select mode
154
+ console.log(' ? Select mode:\n');
155
+ console.log(' 1) Data collection only (MCP, recommended for existing workflows)');
156
+ console.log(' 2) Full workflow (MCP + Skills + slash commands)\n');
157
+ let mode;
158
+ while (true) {
159
+ const answer = (await rl.question(' > ')).trim();
160
+ if (answer === '1') {
161
+ mode = 'collect';
162
+ break;
163
+ }
164
+ if (answer === '2') {
165
+ mode = 'full';
166
+ break;
167
+ }
168
+ console.log(yellow(' Please enter 1 or 2'));
169
+ }
170
+ // Step 2: Select AI tools (multi-select)
171
+ console.log('\n ? Which AI tools do you use? (comma-separated numbers):\n');
172
+ console.log(' 1) Claude Code');
173
+ console.log(' 2) Cursor');
174
+ console.log(' 3) VS Code + Copilot');
175
+ console.log(' 4) Windsurf');
176
+ console.log(' 5) All of the above\n');
177
+ const toolMap = {
178
+ '1': 'claude-code',
179
+ '2': 'cursor',
180
+ '3': 'vscode-copilot',
181
+ '4': 'windsurf',
182
+ };
183
+ let selectedTools = [];
184
+ while (selectedTools.length === 0) {
185
+ const answer = (await rl.question(' > ')).trim();
186
+ if (answer === '5') {
187
+ selectedTools = ['claude-code', 'cursor', 'vscode-copilot', 'windsurf'];
188
+ }
189
+ else {
190
+ const nums = answer.split(',').map(s => s.trim());
191
+ for (const n of nums) {
192
+ if (toolMap[n])
193
+ selectedTools.push(toolMap[n]);
194
+ }
195
+ }
196
+ if (selectedTools.length === 0)
197
+ console.log(yellow(' Please select at least one tool'));
198
+ }
199
+ // Step 3: AI model (only for full mode)
200
+ let aiModel = '';
201
+ if (mode === 'full') {
202
+ console.log('\n ? Which AI model are you using? (e.g. claude-sonnet-4, gpt-4o)\n');
203
+ console.log(dim(' Press Enter to skip, you can set it later.\n'));
204
+ aiModel = (await rl.question(' > ')).trim();
205
+ }
206
+ // Step 4: Optional tools (only for full mode)
207
+ const selectedOptional = [];
208
+ if (mode === 'full') {
209
+ console.log('\n ? Optional tools (comma-separated numbers, or press Enter to skip):\n');
210
+ OPTIONAL_COMMANDS.forEach((cmd, i) => {
211
+ console.log(` ${i + 1}) ${cmd.name} - ${cmd.desc}`);
212
+ });
213
+ console.log('');
214
+ const optionsInput = (await rl.question(' > ')).trim();
215
+ if (optionsInput) {
216
+ const indices = optionsInput.split(',').map((s) => parseInt(s.trim())).filter(n => n > 0 && n <= OPTIONAL_COMMANDS.length);
217
+ for (const idx of indices) {
218
+ selectedOptional.push(OPTIONAL_COMMANDS[idx - 1]);
219
+ }
220
+ }
221
+ }
222
+ rl.close();
223
+ console.log(`\n Initializing AIDevOS...\n`);
224
+ // 1. Create directory structure
225
+ ensureDir(resolve(aidevos, 'rules'));
226
+ ensureDir(resolve(aidevos, 'runs'));
227
+ console.log(green(' ✓ Created') + ' .aidevos/');
228
+ // 2. Write MCP config to correct location(s)
229
+ const mcpWritten = writeMcpConfig(projectRoot, selectedTools);
230
+ for (const f of mcpWritten) {
231
+ if (f.startsWith('(')) {
232
+ console.log(yellow(` ⚠ Windsurf: add MCP config manually to ~/.codeium/windsurf/mcp_config.json`));
233
+ }
234
+ else {
235
+ console.log(green(' ✓ Created') + ` ${f} (MCP Server config)`);
236
+ }
237
+ }
238
+ // 3. Seed iron rules into rules.json registry
239
+ const ironRules = [
240
+ '禁止任何形式的臆想,不清楚必须询问',
241
+ '禁止随意生成文档,如需生成文档,必须询问用户是否需要',
242
+ '生成测试脚本,在测试验证通过后必须删除测试脚本,保持项目清爽',
243
+ ];
244
+ for (const content of ironRules) {
245
+ addRule(projectRoot, {
246
+ content,
247
+ category: 'process',
248
+ branch: 'init',
249
+ deviation: null,
250
+ author: 'system',
251
+ status: 'active',
252
+ });
253
+ }
254
+ buildRuleViews(projectRoot);
255
+ console.log(green(' ✓ Created') + ' .aidevos/rules.json (with 3 iron rules)');
256
+ // 5. Write AIDA guide and sync reference to AI tool instruction files (both modes)
257
+ ensureGuide(projectRoot);
258
+ syncGuideReference(projectRoot, selectedTools);
259
+ console.log(green(' ✓ Created') + ' .aidevos/aida-guide.md (data collection & rule sedimentation guide)');
260
+ // 6. Full mode: copy skills + slash commands
261
+ if (mode === 'full') {
262
+ ensureDir(resolve(aidevos, 'skills'));
263
+ for (const skill of ALL_SKILLS) {
264
+ const src = resolve(SKILLS_DIR, `${skill}.md`);
265
+ const destDir = resolve(aidevos, 'skills', skill);
266
+ ensureDir(destDir);
267
+ writeText(resolve(destDir, 'SKILL.md'), readText(src));
268
+ }
269
+ console.log(green(' ✓ Created') +
270
+ ` .aidevos/skills/ (${ALL_SKILLS.length} skills)`);
271
+ // Copy slash commands for the first tool that supports them
272
+ const allCommands = [...QUICK_COMMANDS, ...selectedOptional];
273
+ if (selectedTools.includes('claude-code')) {
274
+ const cmdDir = resolve(projectRoot, '.claude', 'commands');
275
+ ensureDir(cmdDir);
276
+ for (const cmd of allCommands) {
277
+ const src = resolve(SKILLS_DIR, `${cmd.skill}.md`);
278
+ writeText(resolve(cmdDir, `${cmd.name}.md`), readText(src));
279
+ }
280
+ console.log(green(' ✓ Copied') + ' skills to .claude/commands/');
281
+ }
282
+ if (selectedTools.includes('cursor')) {
283
+ for (const cmd of allCommands) {
284
+ const src = resolve(SKILLS_DIR, `${cmd.skill}.md`);
285
+ const destDir = resolve(projectRoot, '.cursor', 'skills', cmd.name);
286
+ ensureDir(destDir);
287
+ writeText(resolve(destDir, 'SKILL.md'), readText(src));
288
+ }
289
+ console.log(green(' ✓ Copied') + ' skills to .cursor/skills/');
290
+ }
291
+ for (const cmd of QUICK_COMMANDS) {
292
+ console.log(dim(` - /${cmd.name}`));
293
+ }
294
+ if (selectedOptional.length > 0) {
295
+ console.log(dim(` Optional:`));
296
+ for (const cmd of selectedOptional) {
297
+ console.log(dim(` - /${cmd.name}`));
298
+ }
299
+ }
300
+ // Sync iron rules to tool config
301
+ const primaryTool = selectedTools.includes('claude-code') ? 'claude-code' : 'cursor';
302
+ syncIronRules(projectRoot, primaryTool);
303
+ }
304
+ // 7. Write config.json
305
+ const projectName = getProjectName();
306
+ const configData = {
307
+ schemaVersion: '1.0',
308
+ mode,
309
+ aiTools: selectedTools,
310
+ project: projectName,
311
+ };
312
+ if (aiModel)
313
+ configData.aiModel = aiModel;
314
+ writeJson(resolve(aidevos, 'config.json'), configData);
315
+ // Done
316
+ if (mode === 'collect') {
317
+ console.log(`
318
+ ${green('✓ Done!')} Data collection is ready.
319
+
320
+ MCP Server will auto-start when your AI tool loads.
321
+ AI will silently collect data during development.
322
+
323
+ View data anytime: ${cyan('aida dashboard')}
324
+ `);
325
+ }
326
+ else {
327
+ console.log(`
328
+ ${green('✓ Done!')} Next steps:
329
+
330
+ 1. Run ${cyan('/audit')} to generate project-specific rules
331
+ 2. Start coding — AI will auto-collect data via MCP
332
+ 3. Run ${cyan('/workflow')} for the full AI development loop
333
+ 4. View data: ${cyan('aida dashboard')}
334
+ `);
335
+ }
336
+ }
337
+ function syncIronRules(projectRoot, tool) {
338
+ const marker = '## AIDevOS Iron Rules';
339
+ if (tool === 'claude-code') {
340
+ const file = resolve(projectRoot, 'CLAUDE.md');
341
+ if (fileExists(file)) {
342
+ const content = readText(file);
343
+ if (content.includes(marker))
344
+ return;
345
+ writeText(file, content + IRON_RULES_APPEND);
346
+ }
347
+ else {
348
+ writeText(file, IRON_RULES_APPEND.trim() + '\n');
349
+ }
350
+ }
351
+ else {
352
+ // Cursor: write to .cursor/rules/aidevos/iron-rules.md
353
+ const rulesDir = resolve(projectRoot, '.cursor', 'rules', 'aidevos');
354
+ ensureDir(rulesDir);
355
+ const file = resolve(rulesDir, 'iron-rules.md');
356
+ if (fileExists(file)) {
357
+ const content = readText(file);
358
+ if (content.includes(marker))
359
+ return;
360
+ writeText(file, content + IRON_RULES_APPEND);
361
+ }
362
+ else {
363
+ writeText(file, IRON_RULES_APPEND.trim() + '\n');
364
+ }
365
+ }
366
+ }
367
+ //# sourceMappingURL=init.js.map
@@ -0,0 +1 @@
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 log(): Promise<void>;
2
+ //# sourceMappingURL=log.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"log.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/log.ts"],"names":[],"mappings":"AAkaA,wBAAsB,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,CA4DzC"}