ai-dev-analytics 1.0.4 → 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.
- package/README.md +25 -17
- package/README.zh-CN.md +25 -17
- package/dist/cli/commands/build.d.ts +2 -0
- package/dist/cli/commands/build.d.ts.map +1 -0
- package/dist/cli/commands/build.js +61 -0
- package/dist/cli/commands/build.js.map +1 -0
- package/dist/cli/commands/dashboard.js +1 -1
- package/dist/cli/commands/dashboard.js.map +1 -1
- package/dist/cli/commands/import.d.ts +2 -0
- package/dist/cli/commands/import.d.ts.map +1 -0
- package/dist/cli/commands/import.js +28 -0
- package/dist/cli/commands/import.js.map +1 -0
- package/dist/cli/commands/init.d.ts.map +1 -1
- package/dist/cli/commands/init.js +113 -249
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/merge.d.ts +2 -0
- package/dist/cli/commands/merge.d.ts.map +1 -0
- package/dist/cli/commands/merge.js +47 -0
- package/dist/cli/commands/merge.js.map +1 -0
- package/dist/cli/commands/migrate-dir.d.ts +2 -0
- package/dist/cli/commands/migrate-dir.d.ts.map +1 -0
- package/dist/cli/commands/migrate-dir.js +85 -0
- package/dist/cli/commands/migrate-dir.js.map +1 -0
- package/dist/cli/commands/migrate.js +5 -5
- package/dist/cli/commands/migrate.js.map +1 -1
- package/dist/cli/commands/report.js +1 -1
- package/dist/cli/commands/report.js.map +1 -1
- package/dist/cli/commands/rules.d.ts +5 -0
- package/dist/cli/commands/rules.d.ts.map +1 -1
- package/dist/cli/commands/rules.js +143 -38
- package/dist/cli/commands/rules.js.map +1 -1
- package/dist/cli/commands/skills.d.ts +7 -0
- package/dist/cli/commands/skills.d.ts.map +1 -0
- package/dist/cli/commands/skills.js +180 -0
- package/dist/cli/commands/skills.js.map +1 -0
- package/dist/cli/commands/start.js +4 -4
- package/dist/cli/commands/start.js.map +1 -1
- package/dist/cli/commands/update.d.ts.map +1 -1
- package/dist/cli/commands/update.js +14 -7
- package/dist/cli/commands/update.js.map +1 -1
- package/dist/cli/index.js +30 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/server/api.js +2 -2
- package/dist/server/api.js.map +1 -1
- package/dist/server/index.js +1 -1
- package/dist/server/index.js.map +1 -1
- package/dist/utils/ai-build.d.ts +19 -0
- package/dist/utils/ai-build.d.ts.map +1 -0
- package/dist/utils/ai-build.js +278 -0
- package/dist/utils/ai-build.js.map +1 -0
- package/dist/utils/fs.d.ts +9 -0
- package/dist/utils/fs.d.ts.map +1 -1
- package/dist/utils/fs.js +31 -0
- package/dist/utils/fs.js.map +1 -1
- package/dist/utils/guide.d.ts +5 -4
- package/dist/utils/guide.d.ts.map +1 -1
- package/dist/utils/guide.js +78 -11
- package/dist/utils/guide.js.map +1 -1
- package/dist/utils/import.d.ts +27 -0
- package/dist/utils/import.d.ts.map +1 -0
- package/dist/utils/import.js +298 -0
- package/dist/utils/import.js.map +1 -0
- package/dist/utils/paths.d.ts +2 -2
- package/dist/utils/paths.d.ts.map +1 -1
- package/dist/utils/paths.js +8 -8
- package/dist/utils/paths.js.map +1 -1
- package/dist/utils/rules.d.ts +6 -1
- package/dist/utils/rules.d.ts.map +1 -1
- package/dist/utils/rules.js +126 -6
- package/dist/utils/rules.js.map +1 -1
- package/dist/utils/run-data.d.ts +1 -1
- package/dist/utils/run-data.js +4 -4
- package/dist/utils/run-data.js.map +1 -1
- package/dist/utils/skills.d.ts +37 -0
- package/dist/utils/skills.d.ts.map +1 -0
- package/dist/utils/skills.js +228 -0
- package/dist/utils/skills.js.map +1 -0
- package/package.json +1 -1
- package/src/assets/skills/audit.md +6 -6
- package/src/assets/skills/bug-fixer.md +4 -4
- package/src/assets/skills/code-generator.md +4 -4
- package/src/assets/skills/dashboard-generator.md +2 -2
- package/src/assets/skills/dev-flower.md +3 -3
- package/src/assets/skills/deviation-recorder.md +7 -7
- package/src/assets/skills/mcp-reviewer.md +2 -2
- package/src/assets/skills/requirement-analyzer.md +4 -4
- package/src/assets/skills/rules-evolver.md +7 -7
- package/src/assets/skills/self-reviewer.md +4 -4
- package/src/assets/skills/task-splitter.md +5 -5
- package/src/assets/skills/workflow-orchestrator.md +11 -11
- package/src/assets/templates/demo-run.json +7 -7
|
@@ -0,0 +1,278 @@
|
|
|
1
|
+
import { dirname, resolve } from 'node:path';
|
|
2
|
+
import { homedir } from 'node:os';
|
|
3
|
+
import { buildRuleViews } from './rules.js';
|
|
4
|
+
import { bootstrapSkillRegistry, buildSkillViews, getSkillContent } from './skills.js';
|
|
5
|
+
import { ensureGuide, updateGuide, updateGuideReferences } from './guide.js';
|
|
6
|
+
import { configPath } from './paths.js';
|
|
7
|
+
import { ensureDir, fileExists, readJson, readText, writeJson, writeText } from './fs.js';
|
|
8
|
+
export const QUICK_COMMANDS = [
|
|
9
|
+
{ name: 'workflow', skill: 'workflow-orchestrator' },
|
|
10
|
+
{ name: 'audit', skill: 'audit' },
|
|
11
|
+
{ name: 'deviation', skill: 'deviation-recorder' },
|
|
12
|
+
{ name: 'self-reviewer', skill: 'self-reviewer' },
|
|
13
|
+
{ name: 'bug-fixer', skill: 'bug-fixer' },
|
|
14
|
+
{ name: 'rules-evolver', skill: 'rules-evolver' },
|
|
15
|
+
];
|
|
16
|
+
const MCP_SERVER_ENTRY = {
|
|
17
|
+
command: 'npx',
|
|
18
|
+
args: ['-y', 'ai-dev-analytics', 'mcp'],
|
|
19
|
+
};
|
|
20
|
+
const MCP_CONFIG_JSON = JSON.stringify({
|
|
21
|
+
mcpServers: {
|
|
22
|
+
aida: MCP_SERVER_ENTRY,
|
|
23
|
+
},
|
|
24
|
+
}, null, 2);
|
|
25
|
+
const CODEX_CONFIG_TOML = `[mcp_servers.aida]
|
|
26
|
+
command = "npx"
|
|
27
|
+
args = ["-y", "ai-dev-analytics", "mcp"]
|
|
28
|
+
`;
|
|
29
|
+
export function readConfiguredTools(projectRoot) {
|
|
30
|
+
if (!fileExists(configPath(projectRoot)))
|
|
31
|
+
return [];
|
|
32
|
+
const config = readJson(configPath(projectRoot));
|
|
33
|
+
if (Array.isArray(config.aiTools) && config.aiTools.length > 0) {
|
|
34
|
+
return [...new Set(config.aiTools)];
|
|
35
|
+
}
|
|
36
|
+
return config.aiTool ? [config.aiTool] : [];
|
|
37
|
+
}
|
|
38
|
+
export function normalizeRequestedTools(projectRoot, requested = []) {
|
|
39
|
+
const configured = readConfiguredTools(projectRoot);
|
|
40
|
+
if (requested.length === 0 || requested.includes('all'))
|
|
41
|
+
return configured;
|
|
42
|
+
const valid = new Set(['claude-code', 'cursor', 'vscode-copilot', 'windsurf', 'lingma', 'codex']);
|
|
43
|
+
return requested.filter((tool) => valid.has(tool));
|
|
44
|
+
}
|
|
45
|
+
function writeJsonMerge(filePath) {
|
|
46
|
+
if (fileExists(filePath)) {
|
|
47
|
+
try {
|
|
48
|
+
const existing = JSON.parse(readText(filePath));
|
|
49
|
+
existing.mcpServers = existing.mcpServers || {};
|
|
50
|
+
existing.mcpServers.aida = MCP_SERVER_ENTRY;
|
|
51
|
+
writeText(filePath, JSON.stringify(existing, null, 2) + '\n');
|
|
52
|
+
return;
|
|
53
|
+
}
|
|
54
|
+
catch {
|
|
55
|
+
// Fall through to overwrite invalid JSON.
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
writeText(filePath, MCP_CONFIG_JSON + '\n');
|
|
59
|
+
}
|
|
60
|
+
function mergeCodexToml(raw) {
|
|
61
|
+
const trimmed = raw.trim();
|
|
62
|
+
const block = CODEX_CONFIG_TOML.trim();
|
|
63
|
+
const pattern = /\[mcp_servers\.aida\][\s\S]*?(?=\n\[|$)/m;
|
|
64
|
+
if (!trimmed)
|
|
65
|
+
return `${block}\n`;
|
|
66
|
+
if (pattern.test(trimmed)) {
|
|
67
|
+
return `${trimmed.replace(pattern, block).trim()}\n`;
|
|
68
|
+
}
|
|
69
|
+
return `${trimmed}\n\n${block}\n`;
|
|
70
|
+
}
|
|
71
|
+
function syncCodexGlobalConfig() {
|
|
72
|
+
const home = process.env.HOME || homedir();
|
|
73
|
+
const codexDir = resolve(home, '.codex');
|
|
74
|
+
const codexConfigPath = resolve(codexDir, 'config.toml');
|
|
75
|
+
ensureDir(dirname(codexConfigPath));
|
|
76
|
+
const existing = fileExists(codexConfigPath) ? readText(codexConfigPath) : '';
|
|
77
|
+
writeText(codexConfigPath, mergeCodexToml(existing));
|
|
78
|
+
return codexConfigPath;
|
|
79
|
+
}
|
|
80
|
+
function toolConfigSnapshotPath(projectRoot) {
|
|
81
|
+
return resolve(projectRoot, '.aida', 'tool-configs.json');
|
|
82
|
+
}
|
|
83
|
+
function readJsonIfExists(filePath) {
|
|
84
|
+
if (!fileExists(filePath))
|
|
85
|
+
return null;
|
|
86
|
+
try {
|
|
87
|
+
return JSON.parse(readText(filePath));
|
|
88
|
+
}
|
|
89
|
+
catch {
|
|
90
|
+
return readText(filePath);
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
function writeToolConfigSnapshot(projectRoot, tools, codexGlobalPath) {
|
|
94
|
+
const snapshots = [];
|
|
95
|
+
if (tools.includes('claude-code')) {
|
|
96
|
+
snapshots.push({
|
|
97
|
+
tool: 'claude-code',
|
|
98
|
+
path: '.mcp.json',
|
|
99
|
+
format: 'json',
|
|
100
|
+
content: readJsonIfExists(resolve(projectRoot, '.mcp.json')),
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
if (tools.includes('cursor')) {
|
|
104
|
+
snapshots.push({
|
|
105
|
+
tool: 'cursor',
|
|
106
|
+
path: '.cursor/mcp.json',
|
|
107
|
+
format: 'json',
|
|
108
|
+
content: readJsonIfExists(resolve(projectRoot, '.cursor', 'mcp.json')),
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
if (tools.includes('vscode-copilot')) {
|
|
112
|
+
snapshots.push({
|
|
113
|
+
tool: 'vscode-copilot',
|
|
114
|
+
path: '.vscode/mcp.json',
|
|
115
|
+
format: 'json',
|
|
116
|
+
content: readJsonIfExists(resolve(projectRoot, '.vscode', 'mcp.json')),
|
|
117
|
+
});
|
|
118
|
+
}
|
|
119
|
+
if (tools.includes('lingma')) {
|
|
120
|
+
snapshots.push({
|
|
121
|
+
tool: 'lingma',
|
|
122
|
+
path: '.lingma/mcp.json',
|
|
123
|
+
format: 'json',
|
|
124
|
+
content: readJsonIfExists(resolve(projectRoot, '.lingma', 'mcp.json')),
|
|
125
|
+
});
|
|
126
|
+
}
|
|
127
|
+
if (tools.includes('codex')) {
|
|
128
|
+
snapshots.push({
|
|
129
|
+
tool: 'codex',
|
|
130
|
+
path: '.aida/codex/config.toml',
|
|
131
|
+
format: 'toml',
|
|
132
|
+
content: fileExists(resolve(projectRoot, '.aida', 'codex', 'config.toml'))
|
|
133
|
+
? readText(resolve(projectRoot, '.aida', 'codex', 'config.toml'))
|
|
134
|
+
: '',
|
|
135
|
+
});
|
|
136
|
+
if (codexGlobalPath) {
|
|
137
|
+
snapshots.push({
|
|
138
|
+
tool: 'codex',
|
|
139
|
+
path: codexGlobalPath,
|
|
140
|
+
format: 'toml',
|
|
141
|
+
content: readText(codexGlobalPath),
|
|
142
|
+
});
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
writeJson(toolConfigSnapshotPath(projectRoot), {
|
|
146
|
+
generatedAt: new Date().toISOString(),
|
|
147
|
+
tools,
|
|
148
|
+
snapshots,
|
|
149
|
+
});
|
|
150
|
+
return toolConfigSnapshotPath(projectRoot);
|
|
151
|
+
}
|
|
152
|
+
export function writeMcpConfig(projectRoot, tools) {
|
|
153
|
+
const written = [];
|
|
154
|
+
for (const tool of tools) {
|
|
155
|
+
switch (tool) {
|
|
156
|
+
case 'claude-code':
|
|
157
|
+
writeJsonMerge(resolve(projectRoot, '.mcp.json'));
|
|
158
|
+
written.push('.mcp.json');
|
|
159
|
+
break;
|
|
160
|
+
case 'cursor': {
|
|
161
|
+
const dir = resolve(projectRoot, '.cursor');
|
|
162
|
+
ensureDir(dir);
|
|
163
|
+
writeJsonMerge(resolve(dir, 'mcp.json'));
|
|
164
|
+
written.push('.cursor/mcp.json');
|
|
165
|
+
break;
|
|
166
|
+
}
|
|
167
|
+
case 'vscode-copilot': {
|
|
168
|
+
const dir = resolve(projectRoot, '.vscode');
|
|
169
|
+
ensureDir(dir);
|
|
170
|
+
writeJsonMerge(resolve(dir, 'mcp.json'));
|
|
171
|
+
written.push('.vscode/mcp.json');
|
|
172
|
+
break;
|
|
173
|
+
}
|
|
174
|
+
case 'lingma': {
|
|
175
|
+
const dir = resolve(projectRoot, '.lingma');
|
|
176
|
+
ensureDir(dir);
|
|
177
|
+
writeJsonMerge(resolve(dir, 'mcp.json'));
|
|
178
|
+
written.push('.lingma/mcp.json');
|
|
179
|
+
break;
|
|
180
|
+
}
|
|
181
|
+
case 'codex': {
|
|
182
|
+
const dir = resolve(projectRoot, '.aida', 'codex');
|
|
183
|
+
ensureDir(dir);
|
|
184
|
+
writeText(resolve(dir, 'config.toml'), CODEX_CONFIG_TOML);
|
|
185
|
+
const globalPath = syncCodexGlobalConfig();
|
|
186
|
+
written.push(`.aida/codex/config.toml (synced to ${globalPath})`);
|
|
187
|
+
break;
|
|
188
|
+
}
|
|
189
|
+
case 'windsurf':
|
|
190
|
+
written.push('(windsurf: manual config needed)');
|
|
191
|
+
break;
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
return written;
|
|
195
|
+
}
|
|
196
|
+
function buildClaudeCommands(projectRoot) {
|
|
197
|
+
const dir = resolve(projectRoot, '.claude', 'commands');
|
|
198
|
+
ensureDir(dir);
|
|
199
|
+
let written = 0;
|
|
200
|
+
for (const cmd of QUICK_COMMANDS) {
|
|
201
|
+
const content = getSkillContent(projectRoot, cmd.skill);
|
|
202
|
+
if (!content)
|
|
203
|
+
continue;
|
|
204
|
+
writeText(resolve(dir, `${cmd.name}.md`), content);
|
|
205
|
+
written++;
|
|
206
|
+
}
|
|
207
|
+
return written;
|
|
208
|
+
}
|
|
209
|
+
function buildCursorCommands(projectRoot) {
|
|
210
|
+
let written = 0;
|
|
211
|
+
for (const cmd of QUICK_COMMANDS) {
|
|
212
|
+
const content = getSkillContent(projectRoot, cmd.skill);
|
|
213
|
+
if (!content)
|
|
214
|
+
continue;
|
|
215
|
+
const dir = resolve(projectRoot, '.cursor', 'skills', cmd.name);
|
|
216
|
+
ensureDir(dir);
|
|
217
|
+
writeText(resolve(dir, 'SKILL.md'), content);
|
|
218
|
+
written++;
|
|
219
|
+
}
|
|
220
|
+
return written;
|
|
221
|
+
}
|
|
222
|
+
export function ensureBuildGitignore(projectRoot, tools) {
|
|
223
|
+
const gitignorePath = resolve(projectRoot, '.gitignore');
|
|
224
|
+
const existing = fileExists(gitignorePath) ? readText(gitignorePath) : '';
|
|
225
|
+
const entries = [
|
|
226
|
+
'.aida/rules/*.md',
|
|
227
|
+
'.aida/skills/*/SKILL.md',
|
|
228
|
+
'.aida/index.json',
|
|
229
|
+
'.aida/tool-configs.json',
|
|
230
|
+
];
|
|
231
|
+
if (tools.includes('claude-code')) {
|
|
232
|
+
entries.push('.mcp.json', '.claude/commands/*.md');
|
|
233
|
+
}
|
|
234
|
+
if (tools.includes('cursor')) {
|
|
235
|
+
entries.push('.cursor/mcp.json', '.cursor/skills/', '.cursor/rules/aidevos/');
|
|
236
|
+
}
|
|
237
|
+
if (tools.includes('vscode-copilot')) {
|
|
238
|
+
entries.push('.vscode/mcp.json');
|
|
239
|
+
}
|
|
240
|
+
if (tools.includes('lingma')) {
|
|
241
|
+
entries.push('.lingma/mcp.json', '.lingma/rules/');
|
|
242
|
+
}
|
|
243
|
+
if (tools.includes('codex')) {
|
|
244
|
+
entries.push('.aida/codex/config.toml');
|
|
245
|
+
}
|
|
246
|
+
const toAdd = entries.filter((entry) => !existing.includes(entry));
|
|
247
|
+
if (toAdd.length > 0) {
|
|
248
|
+
writeText(gitignorePath, existing.trimEnd() + '\n\n# AIDA - generated local AI tool artifacts\n' + toAdd.join('\n') + '\n');
|
|
249
|
+
}
|
|
250
|
+
return toAdd;
|
|
251
|
+
}
|
|
252
|
+
export function buildProjectArtifacts(projectRoot, requestedTools = []) {
|
|
253
|
+
const tools = normalizeRequestedTools(projectRoot, requestedTools);
|
|
254
|
+
bootstrapSkillRegistry(projectRoot);
|
|
255
|
+
const ruleViews = buildRuleViews(projectRoot);
|
|
256
|
+
const skillViews = buildSkillViews(projectRoot);
|
|
257
|
+
const mcpFiles = writeMcpConfig(projectRoot, tools);
|
|
258
|
+
let commandFiles = 0;
|
|
259
|
+
if (tools.includes('claude-code'))
|
|
260
|
+
commandFiles += buildClaudeCommands(projectRoot);
|
|
261
|
+
if (tools.includes('cursor'))
|
|
262
|
+
commandFiles += buildCursorCommands(projectRoot);
|
|
263
|
+
ensureGuide(projectRoot);
|
|
264
|
+
updateGuide(projectRoot);
|
|
265
|
+
updateGuideReferences(projectRoot, tools);
|
|
266
|
+
const toolConfigSnapshot = writeToolConfigSnapshot(projectRoot, tools);
|
|
267
|
+
const gitignoreAdded = ensureBuildGitignore(projectRoot, tools);
|
|
268
|
+
return {
|
|
269
|
+
tools,
|
|
270
|
+
ruleViews,
|
|
271
|
+
skillViews,
|
|
272
|
+
mcpFiles,
|
|
273
|
+
commandFiles,
|
|
274
|
+
gitignoreAdded,
|
|
275
|
+
toolConfigSnapshot,
|
|
276
|
+
};
|
|
277
|
+
}
|
|
278
|
+
//# sourceMappingURL=ai-build.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ai-build.js","sourceRoot":"","sources":["../../src/utils/ai-build.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/fs.d.ts
CHANGED
|
@@ -15,4 +15,13 @@ export declare function extractConflictSections(raw: string): {
|
|
|
15
15
|
ours: string;
|
|
16
16
|
theirs: string;
|
|
17
17
|
} | null;
|
|
18
|
+
/**
|
|
19
|
+
* Parse one side of a JSON merge-conflict section into a normalized array payload.
|
|
20
|
+
* Supports:
|
|
21
|
+
* - full arrays: `[{}, {}]`
|
|
22
|
+
* - single objects: `{}`
|
|
23
|
+
* - empty object / null / empty string => `[]`
|
|
24
|
+
* - array fragments extracted from inside a larger array: `{...}, {...}`
|
|
25
|
+
*/
|
|
26
|
+
export declare function parseConflictJsonArray<T = Record<string, unknown>>(raw: string): T[];
|
|
18
27
|
//# sourceMappingURL=fs.d.ts.map
|
package/dist/utils/fs.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fs.d.ts","sourceRoot":"","sources":["../../src/utils/fs.ts"],"names":[],"mappings":"AAUA,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAI3C;AAED,wBAAgB,QAAQ,CAAC,CAAC,GAAG,OAAO,EAAE,QAAQ,EAAE,MAAM,GAAG,CAAC,CAGzD;AAED,wBAAgB,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,IAAI,CAE/D;AAED,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAEpD;AAED,wBAAgB,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAEjD;AAED,wBAAgB,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAEjE;AAED,wBAAgB,cAAc,IAAI,MAAM,CAUvC;AAED,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAM9C;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CACrC,GAAG,EAAE,MAAM,GACV;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CA6BzC"}
|
|
1
|
+
{"version":3,"file":"fs.d.ts","sourceRoot":"","sources":["../../src/utils/fs.ts"],"names":[],"mappings":"AAUA,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAI3C;AAED,wBAAgB,QAAQ,CAAC,CAAC,GAAG,OAAO,EAAE,QAAQ,EAAE,MAAM,GAAG,CAAC,CAGzD;AAED,wBAAgB,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,IAAI,CAE/D;AAED,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAEpD;AAED,wBAAgB,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAEjD;AAED,wBAAgB,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAEjE;AAED,wBAAgB,cAAc,IAAI,MAAM,CAUvC;AAED,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAM9C;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CACrC,GAAG,EAAE,MAAM,GACV;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CA6BzC;AAED;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,EAAE,MAAM,GAAG,CAAC,EAAE,CAoBpF"}
|
package/dist/utils/fs.js
CHANGED
|
@@ -79,4 +79,35 @@ export function extractConflictSections(raw) {
|
|
|
79
79
|
theirs: theirsLines.join('\n').trim(),
|
|
80
80
|
};
|
|
81
81
|
}
|
|
82
|
+
/**
|
|
83
|
+
* Parse one side of a JSON merge-conflict section into a normalized array payload.
|
|
84
|
+
* Supports:
|
|
85
|
+
* - full arrays: `[{}, {}]`
|
|
86
|
+
* - single objects: `{}`
|
|
87
|
+
* - empty object / null / empty string => `[]`
|
|
88
|
+
* - array fragments extracted from inside a larger array: `{...}, {...}`
|
|
89
|
+
*/
|
|
90
|
+
export function parseConflictJsonArray(raw) {
|
|
91
|
+
const trimmed = raw.trim();
|
|
92
|
+
if (!trimmed || trimmed === 'null' || trimmed === '{}')
|
|
93
|
+
return [];
|
|
94
|
+
try {
|
|
95
|
+
const parsed = JSON.parse(trimmed);
|
|
96
|
+
if (Array.isArray(parsed))
|
|
97
|
+
return parsed;
|
|
98
|
+
if (parsed && typeof parsed === 'object') {
|
|
99
|
+
return Object.keys(parsed).length === 0 ? [] : [parsed];
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
catch {
|
|
103
|
+
// Fall through to fragment parsing.
|
|
104
|
+
}
|
|
105
|
+
try {
|
|
106
|
+
const parsed = JSON.parse(`[${trimmed}]`);
|
|
107
|
+
return Array.isArray(parsed) ? parsed : [];
|
|
108
|
+
}
|
|
109
|
+
catch {
|
|
110
|
+
return [];
|
|
111
|
+
}
|
|
112
|
+
}
|
|
82
113
|
//# sourceMappingURL=fs.js.map
|
package/dist/utils/fs.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fs.js","sourceRoot":"","sources":["../../src/utils/fs.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"fs.js","sourceRoot":"","sources":["../../src/utils/fs.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/guide.d.ts
CHANGED
|
@@ -2,16 +2,16 @@
|
|
|
2
2
|
* AIDA Guide — ensures data collection and rule sedimentation guidance
|
|
3
3
|
* is written to AI tool instruction files.
|
|
4
4
|
*
|
|
5
|
-
* Single source of truth: .
|
|
6
|
-
* References: CLAUDE.md (Claude Code) / .cursor/rules/ (Cursor)
|
|
5
|
+
* Single source of truth: .aida/aida-guide.md
|
|
6
|
+
* References: CLAUDE.md (Claude Code) / AGENTS.md (Codex) / .cursor/rules/ (Cursor)
|
|
7
7
|
*/
|
|
8
8
|
export declare function guidePath(projectRoot: string): string;
|
|
9
9
|
/**
|
|
10
|
-
* Write .
|
|
10
|
+
* Write .aida/aida-guide.md if it doesn't exist.
|
|
11
11
|
*/
|
|
12
12
|
export declare function ensureGuide(projectRoot: string): void;
|
|
13
13
|
/**
|
|
14
|
-
* Always overwrite .
|
|
14
|
+
* Always overwrite .aida/aida-guide.md with the latest template content.
|
|
15
15
|
* Called by `aida rules build` to keep the guide in sync with the package version.
|
|
16
16
|
*/
|
|
17
17
|
export declare function updateGuide(projectRoot: string): void;
|
|
@@ -31,4 +31,5 @@ export declare function updateGuideReferences(projectRoot: string, tools?: strin
|
|
|
31
31
|
* Called by `aida rules build` so the AI always encounters it first.
|
|
32
32
|
*/
|
|
33
33
|
export declare function ensureGuideAtTop(projectRoot: string): void;
|
|
34
|
+
export declare function ensureCodexGuideAtTop(projectRoot: string): void;
|
|
34
35
|
//# sourceMappingURL=guide.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"guide.d.ts","sourceRoot":"","sources":["../../src/utils/guide.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;
|
|
1
|
+
{"version":3,"file":"guide.d.ts","sourceRoot":"","sources":["../../src/utils/guide.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AA0JH,wBAAgB,SAAS,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAErD;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAKrD;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAGrD;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAkB9E;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAwBjF;AAmCD;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAqC1D;AAED,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAgC/D"}
|
package/dist/utils/guide.js
CHANGED
|
@@ -2,12 +2,12 @@
|
|
|
2
2
|
* AIDA Guide — ensures data collection and rule sedimentation guidance
|
|
3
3
|
* is written to AI tool instruction files.
|
|
4
4
|
*
|
|
5
|
-
* Single source of truth: .
|
|
6
|
-
* References: CLAUDE.md (Claude Code) / .cursor/rules/ (Cursor)
|
|
5
|
+
* Single source of truth: .aida/aida-guide.md
|
|
6
|
+
* References: CLAUDE.md (Claude Code) / AGENTS.md (Codex) / .cursor/rules/ (Cursor)
|
|
7
7
|
*/
|
|
8
8
|
import { resolve } from 'node:path';
|
|
9
9
|
import { fileExists, readText, writeText, ensureDir } from './fs.js';
|
|
10
|
-
import {
|
|
10
|
+
import { aidaDir } from './paths.js';
|
|
11
11
|
// ─── Guide Content ──────────────────────────────────────
|
|
12
12
|
const GUIDE_FILENAME = 'aida-guide.md';
|
|
13
13
|
const GUIDE_CONTENT = `# AIDA 数据采集与规则沉淀指南
|
|
@@ -21,11 +21,13 @@ const GUIDE_CONTENT = `# AIDA 数据采集与规则沉淀指南
|
|
|
21
21
|
|
|
22
22
|
**开始任何开发任务前,必须按顺序完成以下两步:**
|
|
23
23
|
|
|
24
|
-
1. **读取项目规则** → 使用 Read 工具读取 \`.
|
|
24
|
+
1. **读取项目规则** → 使用 Read 工具读取 \`.aida/rules/_all.md\`,了解已沉淀的项目规则并严格遵守(文件不存在则跳过此步)
|
|
25
25
|
2. **执行数据采集流程** → 严格按照第一节规定的顺序调用 MCP 工具:\`aida_task_start\` → \`aida_log_files\` → \`aida_log_review\` → \`aida_task_done\`
|
|
26
26
|
|
|
27
27
|
不得以任何理由跳过上述步骤。
|
|
28
28
|
|
|
29
|
+
**当用户直接口述要沉淀某条项目级技术规范,或你识别到 \`rule-missing\` 类型偏差需要沉淀规则时,不要只修改本地说明文件,必须通过 AIDA MCP 的 \`aida_log_rule\` 工具写入 \`.aida/rules.json\`。**
|
|
30
|
+
|
|
29
31
|
## 一、数据采集
|
|
30
32
|
|
|
31
33
|
### 核心原则
|
|
@@ -98,6 +100,14 @@ category 可选值:
|
|
|
98
100
|
- category: 分类(可选值:component, api, style, i18n, architecture, state-management, routing, testing, process, general)
|
|
99
101
|
- sourceDeviation: 关联的偏差 ID(如 DEV-01)
|
|
100
102
|
|
|
103
|
+
### 用户直接口述规则
|
|
104
|
+
|
|
105
|
+
如果用户明确口述一条应长期生效的项目级技术规范,也应按同样原则处理:
|
|
106
|
+
1. 判断它是否属于项目级技术规范,而不是业务逻辑
|
|
107
|
+
2. 如有歧义先确认
|
|
108
|
+
3. 确认后调用 \`aida_log_rule\` 写入 \`.aida/rules.json\`
|
|
109
|
+
4. 不要只把它写进某个 AI 工具自己的本地规则文件
|
|
110
|
+
|
|
101
111
|
### 阶段性回顾
|
|
102
112
|
|
|
103
113
|
完成一轮开发(多个任务完成)后:
|
|
@@ -106,11 +116,18 @@ category 可选值:
|
|
|
106
116
|
3. 如果有,汇总这些偏差模式并询问用户是否需要批量沉淀
|
|
107
117
|
`;
|
|
108
118
|
// ─── CLAUDE.md reference ────────────────────────────────
|
|
109
|
-
const CLAUDE_MARKER = '.
|
|
119
|
+
const CLAUDE_MARKER = '.aida/aida-guide.md';
|
|
110
120
|
const CLAUDE_REFERENCE = `
|
|
111
121
|
## AIDA
|
|
112
122
|
|
|
113
|
-
**⚠️ 严禁跳过:开始任何开发任务前,必须通过 Read 工具读取 \`.
|
|
123
|
+
**⚠️ 严禁跳过:开始任何开发任务前,必须通过 Read 工具读取 \`.aida/aida-guide.md\` 的完整内容,并严格按照其中的规范执行。不得以任何理由跳过。**
|
|
124
|
+
**当用户直接要求沉淀规则,或你识别到需要沉淀项目级技术规范时,必须使用 AIDA MCP 的 \`aida_log_rule\` 工具写入 \`.aida/rules.json\`,不要只修改本地规则说明文件。**
|
|
125
|
+
`;
|
|
126
|
+
const CODEX_REFERENCE = `
|
|
127
|
+
## AIDA
|
|
128
|
+
|
|
129
|
+
**⚠️ 严禁跳过:开始任何开发任务前,必须先读取 \`.aida/aida-guide.md\`,并严格执行其中的数据采集与规则沉淀规范。**
|
|
130
|
+
**当用户直接要求沉淀规则,或你识别到需要沉淀项目级技术规范时,必须调用 \`aida_log_rule\` 写入 \`.aida/rules.json\`,不要只修改 AGENTS 或其他本地说明文件。**
|
|
114
131
|
`;
|
|
115
132
|
// ─── Cursor rule frontmatter ────────────────────────────
|
|
116
133
|
const CURSOR_FRONTMATTER = `---
|
|
@@ -128,24 +145,24 @@ globs: ['**/*']
|
|
|
128
145
|
`;
|
|
129
146
|
// ─── Public API ─────────────────────────────────────────
|
|
130
147
|
export function guidePath(projectRoot) {
|
|
131
|
-
return resolve(
|
|
148
|
+
return resolve(aidaDir(projectRoot), GUIDE_FILENAME);
|
|
132
149
|
}
|
|
133
150
|
/**
|
|
134
|
-
* Write .
|
|
151
|
+
* Write .aida/aida-guide.md if it doesn't exist.
|
|
135
152
|
*/
|
|
136
153
|
export function ensureGuide(projectRoot) {
|
|
137
154
|
const p = guidePath(projectRoot);
|
|
138
155
|
if (fileExists(p))
|
|
139
156
|
return;
|
|
140
|
-
ensureDir(
|
|
157
|
+
ensureDir(aidaDir(projectRoot));
|
|
141
158
|
writeText(p, GUIDE_CONTENT);
|
|
142
159
|
}
|
|
143
160
|
/**
|
|
144
|
-
* Always overwrite .
|
|
161
|
+
* Always overwrite .aida/aida-guide.md with the latest template content.
|
|
145
162
|
* Called by `aida rules build` to keep the guide in sync with the package version.
|
|
146
163
|
*/
|
|
147
164
|
export function updateGuide(projectRoot) {
|
|
148
|
-
ensureDir(
|
|
165
|
+
ensureDir(aidaDir(projectRoot));
|
|
149
166
|
writeText(guidePath(projectRoot), GUIDE_CONTENT);
|
|
150
167
|
}
|
|
151
168
|
/**
|
|
@@ -162,6 +179,9 @@ export function syncGuideReference(projectRoot, tools) {
|
|
|
162
179
|
case 'cursor':
|
|
163
180
|
addCursorReference(projectRoot);
|
|
164
181
|
break;
|
|
182
|
+
case 'codex':
|
|
183
|
+
addCodexReference(projectRoot);
|
|
184
|
+
break;
|
|
165
185
|
case 'lingma':
|
|
166
186
|
addLingmaReference(projectRoot);
|
|
167
187
|
break;
|
|
@@ -185,6 +205,9 @@ export function updateGuideReferences(projectRoot, tools) {
|
|
|
185
205
|
writeText(resolve(rulesDir, 'aida-guide.md'), CURSOR_FRONTMATTER + GUIDE_CONTENT);
|
|
186
206
|
break;
|
|
187
207
|
}
|
|
208
|
+
case 'codex':
|
|
209
|
+
ensureCodexGuideAtTop(projectRoot);
|
|
210
|
+
break;
|
|
188
211
|
case 'lingma': {
|
|
189
212
|
const rulesDir = resolve(projectRoot, '.lingma', 'rules');
|
|
190
213
|
ensureDir(rulesDir);
|
|
@@ -201,6 +224,8 @@ function detectAiTools(projectRoot) {
|
|
|
201
224
|
tools.push('claude-code');
|
|
202
225
|
if (fileExists(resolve(projectRoot, '.cursor', 'mcp.json')))
|
|
203
226
|
tools.push('cursor');
|
|
227
|
+
if (fileExists(resolve(projectRoot, 'AGENTS.md')))
|
|
228
|
+
tools.push('codex');
|
|
204
229
|
if (fileExists(resolve(projectRoot, '.lingma', 'mcp.json')))
|
|
205
230
|
tools.push('lingma');
|
|
206
231
|
return tools;
|
|
@@ -217,6 +242,18 @@ function addClaudeReference(projectRoot) {
|
|
|
217
242
|
writeText(file, CLAUDE_REFERENCE.trim() + '\n');
|
|
218
243
|
}
|
|
219
244
|
}
|
|
245
|
+
function addCodexReference(projectRoot) {
|
|
246
|
+
const file = resolve(projectRoot, 'AGENTS.md');
|
|
247
|
+
if (fileExists(file)) {
|
|
248
|
+
const content = readText(file);
|
|
249
|
+
if (content.includes(CLAUDE_MARKER))
|
|
250
|
+
return;
|
|
251
|
+
writeText(file, insertAtTop(content, CODEX_REFERENCE.trimStart()));
|
|
252
|
+
}
|
|
253
|
+
else {
|
|
254
|
+
writeText(file, CODEX_REFERENCE.trim() + '\n');
|
|
255
|
+
}
|
|
256
|
+
}
|
|
220
257
|
/**
|
|
221
258
|
* Ensure the AIDA guide reference sits near the top of CLAUDE.md with up-to-date content.
|
|
222
259
|
* Moves the section if it's buried lower in the file, and updates stale content.
|
|
@@ -257,6 +294,36 @@ export function ensureGuideAtTop(projectRoot) {
|
|
|
257
294
|
.trim();
|
|
258
295
|
writeText(file, insertAtTop(without, newSection) + '\n');
|
|
259
296
|
}
|
|
297
|
+
export function ensureCodexGuideAtTop(projectRoot) {
|
|
298
|
+
if (!detectAiTools(projectRoot).includes('codex'))
|
|
299
|
+
return;
|
|
300
|
+
const file = resolve(projectRoot, 'AGENTS.md');
|
|
301
|
+
if (!fileExists(file))
|
|
302
|
+
return;
|
|
303
|
+
const content = readText(file);
|
|
304
|
+
const newSection = CODEX_REFERENCE.trimStart();
|
|
305
|
+
if (!content.includes(CLAUDE_MARKER)) {
|
|
306
|
+
writeText(file, insertAtTop(content, newSection));
|
|
307
|
+
return;
|
|
308
|
+
}
|
|
309
|
+
const aidaStart = content.indexOf('\n## AIDA\n');
|
|
310
|
+
if (aidaStart === -1)
|
|
311
|
+
return;
|
|
312
|
+
const afterAida = content.indexOf('\n## ', aidaStart + 5);
|
|
313
|
+
const aidaEnd = afterAida !== -1 ? afterAida : content.length;
|
|
314
|
+
const lines = content.split('\n');
|
|
315
|
+
const markerLine = lines.findIndex((l) => l.includes(CLAUDE_MARKER));
|
|
316
|
+
if (markerLine >= 0 && markerLine <= 10) {
|
|
317
|
+
const before = content.slice(0, aidaStart);
|
|
318
|
+
const after = content.slice(aidaEnd);
|
|
319
|
+
writeText(file, (before + '\n' + newSection + after).replace(/\n{3,}/g, '\n\n'));
|
|
320
|
+
return;
|
|
321
|
+
}
|
|
322
|
+
const without = (content.slice(0, aidaStart) + content.slice(aidaEnd))
|
|
323
|
+
.replace(/\n{3,}/g, '\n\n')
|
|
324
|
+
.trim();
|
|
325
|
+
writeText(file, insertAtTop(without, newSection) + '\n');
|
|
326
|
+
}
|
|
260
327
|
/** Insert a block right after the first heading line of a file. */
|
|
261
328
|
function insertAtTop(content, block) {
|
|
262
329
|
const trimmedBlock = block.trim();
|
package/dist/utils/guide.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"guide.js","sourceRoot":"","sources":["../../src/utils/guide.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACrE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"guide.js","sourceRoot":"","sources":["../../src/utils/guide.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { type AiToolChoice } from './ai-build.js';
|
|
2
|
+
interface ToolConfigSnapshot {
|
|
3
|
+
tool: AiToolChoice;
|
|
4
|
+
path: string;
|
|
5
|
+
format: 'json' | 'toml' | 'text';
|
|
6
|
+
content: unknown;
|
|
7
|
+
}
|
|
8
|
+
export declare function detectImportableTools(projectRoot: string, tools: AiToolChoice[]): AiToolChoice[];
|
|
9
|
+
export declare function importFromTool(projectRoot: string, tool: AiToolChoice): {
|
|
10
|
+
rulesImported: number;
|
|
11
|
+
skillsImported: number;
|
|
12
|
+
};
|
|
13
|
+
export declare function importExistingToolConfigs(projectRoot: string): {
|
|
14
|
+
tools: AiToolChoice[];
|
|
15
|
+
snapshots: ToolConfigSnapshot[];
|
|
16
|
+
snapshotPath: string;
|
|
17
|
+
};
|
|
18
|
+
export declare function mergeConfiguredTools(projectRoot: string, tools: AiToolChoice[]): AiToolChoice[];
|
|
19
|
+
export declare function importProjectSources(projectRoot: string): {
|
|
20
|
+
rulesImported: number;
|
|
21
|
+
skillsImported: number;
|
|
22
|
+
tools: AiToolChoice[];
|
|
23
|
+
snapshotPath: string;
|
|
24
|
+
gitignoreAdded: string[];
|
|
25
|
+
};
|
|
26
|
+
export {};
|
|
27
|
+
//# sourceMappingURL=import.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"import.d.ts","sourceRoot":"","sources":["../../src/utils/import.ts"],"names":[],"mappings":"AAKA,OAAO,EAAwB,KAAK,YAAY,EAAE,MAAM,eAAe,CAAC;AAUxE,UAAU,kBAAkB;IAC1B,IAAI,EAAE,YAAY,CAAA;IAClB,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAAA;IAChC,OAAO,EAAE,OAAO,CAAA;CACjB;AAgKD,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,GAAG,YAAY,EAAE,CAuBhG;AAED,wBAAgB,cAAc,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,GAAG;IACvE,aAAa,EAAE,MAAM,CAAA;IACrB,cAAc,EAAE,MAAM,CAAA;CACvB,CA4DA;AAcD,wBAAgB,yBAAyB,CAAC,WAAW,EAAE,MAAM,GAAG;IAC9D,KAAK,EAAE,YAAY,EAAE,CAAA;IACrB,SAAS,EAAE,kBAAkB,EAAE,CAAA;IAC/B,YAAY,EAAE,MAAM,CAAA;CACrB,CAmCA;AAED,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,GAAG,YAAY,EAAE,CAe/F;AAED,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,MAAM,GAAG;IACzD,aAAa,EAAE,MAAM,CAAA;IACrB,cAAc,EAAE,MAAM,CAAA;IACtB,KAAK,EAAE,YAAY,EAAE,CAAA;IACrB,YAAY,EAAE,MAAM,CAAA;IACpB,cAAc,EAAE,MAAM,EAAE,CAAA;CACzB,CAcA"}
|