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
package/README.md
CHANGED
|
@@ -14,16 +14,16 @@ One line to integrate. Zero workflow changes.
|
|
|
14
14
|
{ "mcpServers": { "aida": { "command": "npx", "args": ["-y", "ai-dev-analytics", "mcp"] } } }
|
|
15
15
|
```
|
|
16
16
|
|
|
17
|
-
[](https://www.npmjs.com/package/ai-dev-analytics)
|
|
18
18
|
[](./LICENSE)
|
|
19
19
|
[](https://nodejs.org)
|
|
20
|
-
[](#testing)
|
|
21
21
|
[](https://lwtlong.github.io/ai-dev-analytics/)
|
|
22
22
|
[](https://glama.ai/mcp/servers/LWTlong/ai-dev-analytics)
|
|
23
23
|
|
|
24
24
|
[](https://glama.ai/mcp/servers/LWTlong/ai-dev-analytics)
|
|
25
25
|
|
|
26
|
-
[One-Line Setup](#-30-second-setup) · [Data-Driven Loop](#-the-data-driven-loop) · [Dashboard](#-the-dashboard) · [SOP Workflow](#-standardized-ai-development-workflow) · [Data for Reports](#-data-sedimentation--performance-reports) · [中文文档](./README.zh-CN.md)
|
|
26
|
+
[One-Line Setup](#-30-second-setup) · [Data-Driven Loop](#-the-data-driven-loop) · [Dashboard](#-the-dashboard) · [SOP Workflow](#-standardized-ai-development-workflow) · [Data for Reports](#-data-sedimentation--performance-reports) · [Commands](./COMMANDS.md) · [Docs](./docs/INDEX.md) · [中文文档](./README.zh-CN.md)
|
|
27
27
|
|
|
28
28
|
</div>
|
|
29
29
|
|
|
@@ -60,7 +60,7 @@ Vibe Coding Session
|
|
|
60
60
|
"9 deviations → 56% hallucination, 44% rule-missing"
|
|
61
61
|
↓
|
|
62
62
|
Deviation patterns identified → AI suggests rules → user confirms → sedimented
|
|
63
|
-
.
|
|
63
|
+
.aida/rules/ ← your AI's growing knowledge base
|
|
64
64
|
↓
|
|
65
65
|
AI reads rules next session → same mistakes eliminated
|
|
66
66
|
↓
|
|
@@ -86,7 +86,7 @@ Vibe Coding Session
|
|
|
86
86
|
|
|
87
87
|

|
|
88
88
|
|
|
89
|
-
The `.
|
|
89
|
+
The `.aida/rules/` directory is your **project-specific AI knowledge base**. It grows with every run. The more you use AI, the smarter it gets at *your* project.
|
|
90
90
|
|
|
91
91
|
---
|
|
92
92
|
|
|
@@ -119,7 +119,15 @@ Run `npx ai-dev-analytics dashboard` to see **your own project's data** in secon
|
|
|
119
119
|
|
|
120
120
|
### 🔒 100% Local. Zero External Requests.
|
|
121
121
|
|
|
122
|
-
AIDA writes JSON files to `.
|
|
122
|
+
AIDA writes JSON files to `.aida/` in your project directory. **The codebase contains zero HTTP calls to external services** — no telemetry, no cloud sync, no analytics, no tracking. Zero runtime dependencies. Your code and data never leave your machine. Period.
|
|
123
|
+
|
|
124
|
+
## Command Reference
|
|
125
|
+
|
|
126
|
+
Detailed CLI usage, command behavior, supported AI tools, merge/import/build flow, and migration notes are documented in [COMMANDS.md](./COMMANDS.md).
|
|
127
|
+
|
|
128
|
+
## Documentation
|
|
129
|
+
|
|
130
|
+
For public documentation navigation, schema references, workflow notes, and dashboard-related docs, see [docs/INDEX.md](./docs/INDEX.md).
|
|
123
131
|
|
|
124
132
|
---
|
|
125
133
|
|
|
@@ -248,7 +256,7 @@ Quarter: Complete development record — exportable, analyzable, presentable
|
|
|
248
256
|
| **Team Leader Report** | Per-developer stats, deviation hotspots, which modules need better rules, team-wide AI maturity |
|
|
249
257
|
| **Project Handover** | Full development history — someone new can see exactly what happened, what rules exist, and why |
|
|
250
258
|
|
|
251
|
-
All data is structured JSON in `.
|
|
259
|
+
All data is structured JSON in `.aida/`. No vendor lock-in. Export it, query it, pipe it into any reporting tool. Run `aida report` to generate a summary at any time.
|
|
252
260
|
|
|
253
261
|
---
|
|
254
262
|
|
|
@@ -257,9 +265,9 @@ All data is structured JSON in `.aidevos/`. No vendor lock-in. Export it, query
|
|
|
257
265
|
```mermaid
|
|
258
266
|
flowchart LR
|
|
259
267
|
A["Your AI Tool\nClaude Code / Cursor"] -->|Vibe Coding| B{"AIDA MCP Server\n10 Tools"}
|
|
260
|
-
B -->|Silent Data Collection| C[".
|
|
268
|
+
B -->|Silent Data Collection| C[".aida/run.json"]
|
|
261
269
|
C -->|Visualization| D["Dashboard\nlocalhost:2375"]
|
|
262
|
-
C -->|Pattern Analysis| E[".
|
|
270
|
+
C -->|Pattern Analysis| E[".aida/rules/"]
|
|
263
271
|
E -->|AI Reads Rules| A
|
|
264
272
|
```
|
|
265
273
|
|
|
@@ -289,10 +297,10 @@ All data is local JSON. No database, no cloud.
|
|
|
289
297
|
|
|
290
298
|
| Level | File | What it contains |
|
|
291
299
|
|-------|------|-----------------|
|
|
292
|
-
| **Run** | `.
|
|
293
|
-
| **Branch** | `.
|
|
294
|
-
| **Project** | `.
|
|
295
|
-
| **Rules** | `.
|
|
300
|
+
| **Run** | `.aida/runs/{branch}/{dev}/run.json` | Every task, bug, deviation, review, file change |
|
|
301
|
+
| **Branch** | `.aida/runs/{branch}/requirement.json` | Aggregated stats per requirement |
|
|
302
|
+
| **Project** | `.aida/index.json` | Cross-branch overview for team leads |
|
|
303
|
+
| **Rules** | `.aida/rules/` | Sedimented project rules — your AI's growing knowledge base |
|
|
296
304
|
|
|
297
305
|
All structured JSON — ready for export, analysis, or feeding into reports.
|
|
298
306
|
|
|
@@ -380,16 +388,16 @@ Rules are the compounding asset of AIDA. Here's how they work in a team setting.
|
|
|
380
388
|
### Architecture
|
|
381
389
|
|
|
382
390
|
```
|
|
383
|
-
.
|
|
391
|
+
.aida/rules.json ← source of truth, committed to git
|
|
384
392
|
↓
|
|
385
393
|
aida rules build
|
|
386
394
|
↓
|
|
387
|
-
.
|
|
395
|
+
.aida/rules/*.md ← auto-generated views, gitignored
|
|
388
396
|
↓
|
|
389
397
|
AI reads rules next session
|
|
390
398
|
```
|
|
391
399
|
|
|
392
|
-
`aida init` automatically adds `.
|
|
400
|
+
`aida init` automatically adds `.aida/rules/*.md` to your `.gitignore`. Never edit the `.md` files manually — they are always regenerated from `rules.json`.
|
|
393
401
|
|
|
394
402
|
### Daily workflow
|
|
395
403
|
|
|
@@ -408,7 +416,7 @@ When two developers add rules on separate branches and merge, `rules.json` may g
|
|
|
408
416
|
# After git merge produces a conflict in rules.json:
|
|
409
417
|
aida rules merge # fingerprint union — no duplicates, no lost rules
|
|
410
418
|
aida rules build # rebuild .md views
|
|
411
|
-
git add .
|
|
419
|
+
git add .aida/rules.json
|
|
412
420
|
git commit -m "merge: resolve rules conflict"
|
|
413
421
|
```
|
|
414
422
|
|
package/README.zh-CN.md
CHANGED
|
@@ -14,16 +14,16 @@
|
|
|
14
14
|
{ "mcpServers": { "aida": { "command": "npx", "args": ["-y", "ai-dev-analytics", "mcp"] } } }
|
|
15
15
|
```
|
|
16
16
|
|
|
17
|
-
[](https://www.npmjs.com/package/ai-dev-analytics)
|
|
18
18
|
[](./LICENSE)
|
|
19
19
|
[](https://nodejs.org)
|
|
20
|
-
[](#测试)
|
|
21
21
|
[](https://lwtlong.github.io/ai-dev-analytics/)
|
|
22
22
|
[](https://glama.ai/mcp/servers/LWTlong/ai-dev-analytics)
|
|
23
23
|
|
|
24
24
|
[](https://glama.ai/mcp/servers/LWTlong/ai-dev-analytics)
|
|
25
25
|
|
|
26
|
-
[一行接入](#-30-秒上手) · [数据驱动闭环](#-数据驱动闭环) · [数据看板](#-数据看板) · [SOP 流程](#-标准化-ai-开发流程) · [数据沉淀](#-数据沉淀与绩效汇报) · [English](./README.md)
|
|
26
|
+
[一行接入](#-30-秒上手) · [数据驱动闭环](#-数据驱动闭环) · [数据看板](#-数据看板) · [SOP 流程](#-标准化-ai-开发流程) · [数据沉淀](#-数据沉淀与绩效汇报) · [命令文档](./COMMANDS.md) · [文档导航](./docs/INDEX.md) · [English](./README.md)
|
|
27
27
|
|
|
28
28
|
</div>
|
|
29
29
|
|
|
@@ -60,7 +60,7 @@ Vibe Coding 过程
|
|
|
60
60
|
"9 个偏差 → 56% 幻觉, 44% 规则缺失"
|
|
61
61
|
↓
|
|
62
62
|
发现偏差规律 → AI 建议沉淀规则 → 用户确认 → 写入规则库
|
|
63
|
-
.
|
|
63
|
+
.aida/rules/ ← 你的 AI 知识库在成长
|
|
64
64
|
↓
|
|
65
65
|
AI 下次读取规则 → 同样的错误被消除
|
|
66
66
|
↓
|
|
@@ -86,7 +86,7 @@ Vibe Coding 过程
|
|
|
86
86
|
|
|
87
87
|

|
|
88
88
|
|
|
89
|
-
`.
|
|
89
|
+
`.aida/rules/` 目录就是你的**项目专属 AI 知识库**。用 AI 写得越多,它对*你的项目*就越懂。
|
|
90
90
|
|
|
91
91
|
---
|
|
92
92
|
|
|
@@ -119,7 +119,15 @@ AIDA 全方位采集 AI 辅助开发的每个维度,转化为交互式图表
|
|
|
119
119
|
|
|
120
120
|
### 🔒 100% 本地。零外部请求。
|
|
121
121
|
|
|
122
|
-
AIDA 只往项目里的 `.
|
|
122
|
+
AIDA 只往项目里的 `.aida/` 目录写 JSON 文件。**整个代码库不包含任何外部 HTTP 请求** —— 不发遥测、不上传云端、不请求分析服务、不做任何追踪。零运行时依赖。你的代码和数据绝不会离开你的电脑。
|
|
123
|
+
|
|
124
|
+
## 命令文档
|
|
125
|
+
|
|
126
|
+
详细 CLI 用法、命令行为、支持的 AI 工具、merge/import/build 流程、迁移说明,见 [COMMANDS.md](./COMMANDS.md)。
|
|
127
|
+
|
|
128
|
+
## 文档导航
|
|
129
|
+
|
|
130
|
+
公开文档导航、schema 参考、工作流说明、看板相关文档,见 [docs/INDEX.md](./docs/INDEX.md)。
|
|
123
131
|
|
|
124
132
|
---
|
|
125
133
|
|
|
@@ -248,7 +256,7 @@ AIDA 不只是可视化 —— 它**沉淀数据**。每次运行都积累结构
|
|
|
248
256
|
| **团队 Leader 报告** | 各开发者数据、偏差热点、哪个模块需要更好的规则、团队 AI 成熟度 |
|
|
249
257
|
| **项目交接** | 完整开发历史 —— 接手的人能看到做了什么、有什么规则、为什么有这些规则 |
|
|
250
258
|
|
|
251
|
-
所有数据都是 `.
|
|
259
|
+
所有数据都是 `.aida/` 里的结构化 JSON。没有厂商锁定。随时导出、查询、接入任何报表工具。运行 `aida report` 随时生成汇总。
|
|
252
260
|
|
|
253
261
|
---
|
|
254
262
|
|
|
@@ -257,9 +265,9 @@ AIDA 不只是可视化 —— 它**沉淀数据**。每次运行都积累结构
|
|
|
257
265
|
```mermaid
|
|
258
266
|
flowchart LR
|
|
259
267
|
A["你的 AI 工具\nClaude Code / Cursor"] -->|Vibe Coding| B{"AIDA MCP Server\n10 个工具"}
|
|
260
|
-
B -->|静默采集| C[".
|
|
268
|
+
B -->|静默采集| C[".aida/run.json"]
|
|
261
269
|
C -->|可视化| D["数据看板\nlocalhost:2375"]
|
|
262
|
-
C -->|模式分析| E[".
|
|
270
|
+
C -->|模式分析| E[".aida/rules/"]
|
|
263
271
|
E -->|AI 读取规则| A
|
|
264
272
|
```
|
|
265
273
|
|
|
@@ -289,10 +297,10 @@ AI 工具在工作时自动调用 MCP 工具。你不需要手动操作 ——
|
|
|
289
297
|
|
|
290
298
|
| 层级 | 文件 | 内容 |
|
|
291
299
|
|------|------|------|
|
|
292
|
-
| **运行** | `.
|
|
293
|
-
| **分支** | `.
|
|
294
|
-
| **项目** | `.
|
|
295
|
-
| **规则** | `.
|
|
300
|
+
| **运行** | `.aida/runs/{分支}/{开发者}/run.json` | 每个任务、Bug、偏差、审查、文件变更 |
|
|
301
|
+
| **分支** | `.aida/runs/{分支}/requirement.json` | 分支聚合统计 |
|
|
302
|
+
| **项目** | `.aida/index.json` | 跨分支总览 |
|
|
303
|
+
| **规则** | `.aida/rules/` | 沉淀的项目规则 —— AI 持续增长的知识库 |
|
|
296
304
|
|
|
297
305
|
全是结构化 JSON —— 随时可导出、可分析、可生成汇报。
|
|
298
306
|
|
|
@@ -380,16 +388,16 @@ AIDA 使用 [Model Context Protocol](https://modelcontextprotocol.io/) —— AI
|
|
|
380
388
|
### 架构设计
|
|
381
389
|
|
|
382
390
|
```
|
|
383
|
-
.
|
|
391
|
+
.aida/rules.json ← 唯一数据源,提交到 git
|
|
384
392
|
↓
|
|
385
393
|
aida rules build
|
|
386
394
|
↓
|
|
387
|
-
.
|
|
395
|
+
.aida/rules/*.md ← 自动生成的视图文件,加入 gitignore
|
|
388
396
|
↓
|
|
389
397
|
AI 下次读取规则
|
|
390
398
|
```
|
|
391
399
|
|
|
392
|
-
`aida init` 会自动将 `.
|
|
400
|
+
`aida init` 会自动将 `.aida/rules/*.md` 写入 `.gitignore`。不要手动编辑 `.md` 文件——它们始终由 `rules.json` 重新生成。
|
|
393
401
|
|
|
394
402
|
### 日常流程
|
|
395
403
|
|
|
@@ -408,7 +416,7 @@ aida rules build # 从更新后的 rules.json 重新生成本地规则视图
|
|
|
408
416
|
# git merge 在 rules.json 产生冲突后执行:
|
|
409
417
|
aida rules merge # 按 fingerprint 做并集——不丢规则,不产生重复
|
|
410
418
|
aida rules build # 重建 .md 视图
|
|
411
|
-
git add .
|
|
419
|
+
git add .aida/rules.json
|
|
412
420
|
git commit -m "merge: resolve rules conflict"
|
|
413
421
|
```
|
|
414
422
|
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/build.ts"],"names":[],"mappings":"AAoCA,wBAAsB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAoC3C"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import * as readline from 'node:readline/promises';
|
|
2
|
+
import { stdin, stdout } from 'node:process';
|
|
3
|
+
import { green, red, yellow } from '../../utils/display.js';
|
|
4
|
+
import { buildProjectArtifacts, readConfiguredTools } from '../../utils/ai-build.js';
|
|
5
|
+
import { configPath } from '../../utils/paths.js';
|
|
6
|
+
import { fileExists } from '../../utils/fs.js';
|
|
7
|
+
function requestedTools() {
|
|
8
|
+
return process.argv.slice(3);
|
|
9
|
+
}
|
|
10
|
+
async function selectTools(configured) {
|
|
11
|
+
const requested = requestedTools();
|
|
12
|
+
if (requested.length > 0)
|
|
13
|
+
return requested;
|
|
14
|
+
console.log('\n Select AI tools to build (comma-separated numbers, Enter = all):\n');
|
|
15
|
+
configured.forEach((tool, index) => {
|
|
16
|
+
console.log(` ${index + 1}) ${tool}`);
|
|
17
|
+
});
|
|
18
|
+
console.log('');
|
|
19
|
+
const rl = readline.createInterface({ input: stdin, output: stdout });
|
|
20
|
+
const answer = (await rl.question(' > ')).trim();
|
|
21
|
+
rl.close();
|
|
22
|
+
if (!answer)
|
|
23
|
+
return configured;
|
|
24
|
+
const indices = answer
|
|
25
|
+
.split(',')
|
|
26
|
+
.map((item) => parseInt(item.trim(), 10))
|
|
27
|
+
.filter((num) => num >= 1 && num <= configured.length);
|
|
28
|
+
const selected = [...new Set(indices.map((num) => configured[num - 1]))];
|
|
29
|
+
return selected.length > 0 ? selected : configured;
|
|
30
|
+
}
|
|
31
|
+
export async function build() {
|
|
32
|
+
const projectRoot = process.cwd();
|
|
33
|
+
if (!fileExists(configPath(projectRoot))) {
|
|
34
|
+
console.log(red('\n AIDA not initialized. Run `npx aida init` first.\n'));
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
37
|
+
const configured = readConfiguredTools(projectRoot);
|
|
38
|
+
if (configured.length === 0) {
|
|
39
|
+
console.log(yellow('\n No AI tools configured in .aida/config.json.\n'));
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
42
|
+
const targets = await selectTools(configured);
|
|
43
|
+
const result = buildProjectArtifacts(projectRoot, targets);
|
|
44
|
+
console.log(green('\n ✓ AIDA build completed') +
|
|
45
|
+
`: ${result.ruleViews} rule views, ${result.skillViews} skill views, ${result.commandFiles} tool command files\n`);
|
|
46
|
+
if (result.tools.length > 0) {
|
|
47
|
+
console.log(` Targets: ${result.tools.join(', ')}`);
|
|
48
|
+
}
|
|
49
|
+
if (result.mcpFiles.length > 0) {
|
|
50
|
+
console.log(` MCP: ${result.mcpFiles.join(', ')}`);
|
|
51
|
+
}
|
|
52
|
+
if (result.tools.includes('codex')) {
|
|
53
|
+
console.log(' Codex: global ~/.codex/config.toml has been updated for the aida MCP server');
|
|
54
|
+
}
|
|
55
|
+
console.log(` Tool config snapshot: ${result.toolConfigSnapshot}`);
|
|
56
|
+
if (result.gitignoreAdded.length > 0) {
|
|
57
|
+
console.log(` .gitignore: added ${result.gitignoreAdded.join(', ')}`);
|
|
58
|
+
}
|
|
59
|
+
console.log('');
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=build.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"build.js","sourceRoot":"","sources":["../../../src/cli/commands/build.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,7 +10,7 @@ function loadDemoData(projectRoot) {
|
|
|
10
10
|
const demoPath = resolve(ASSETS_DIR, 'templates', 'demo-run.json');
|
|
11
11
|
if (!existsSync(demoPath))
|
|
12
12
|
return;
|
|
13
|
-
const demoDir = resolve(projectRoot, '.
|
|
13
|
+
const demoDir = resolve(projectRoot, '.aida', 'runs', 'demo-feature', 'demo-dev');
|
|
14
14
|
ensureDir(demoDir);
|
|
15
15
|
const data = readJson(demoPath);
|
|
16
16
|
writeJson(resolve(demoDir, 'run.json'), data);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dashboard.js","sourceRoot":"","sources":["../../../src/cli/commands/dashboard.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACvE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC/E,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAC7E,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAErC,SAAS,YAAY,CAAC,WAAmB;IACvC,MAAM,QAAQ,GAAG,OAAO,CAAC,UAAU,EAAE,WAAW,EAAE,eAAe,CAAC,CAAC;IACnE,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;QAAE,OAAO;IAElC,MAAM,OAAO,GAAG,OAAO,CAAC,WAAW,EAAE,
|
|
1
|
+
{"version":3,"file":"dashboard.js","sourceRoot":"","sources":["../../../src/cli/commands/dashboard.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACvE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC/E,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAC7E,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAErC,SAAS,YAAY,CAAC,WAAmB;IACvC,MAAM,QAAQ,GAAG,OAAO,CAAC,UAAU,EAAE,WAAW,EAAE,eAAe,CAAC,CAAC;IACnE,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;QAAE,OAAO;IAElC,MAAM,OAAO,GAAG,OAAO,CAAC,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,UAAU,CAAC,CAAC;IAClF,SAAS,CAAC,OAAO,CAAC,CAAC;IACnB,MAAM,IAAI,GAAG,QAAQ,CAAsB,QAAQ,CAAC,CAAC;IACrD,SAAS,CAAC,OAAO,CAAC,OAAO,EAAE,UAAU,CAAC,EAAE,IAAI,CAAC,CAAC;AAChD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,SAAS;IAC7B,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC;IAClC,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAE/C,IAAI,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC;QACpD,OAAO,CAAC,GAAG,CACT,GAAG,CAAC,wDAAwD,CAAC,CAC9D,CAAC;QACF,OAAO;IACT,CAAC;IAED,oBAAoB;IACpB,IAAI,IAAI,GAAG,IAAI,CAAC;IAChB,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC/C,IAAI,OAAO,KAAK,CAAC,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,EAAE,CAAC;QAChD,IAAI,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;IACrD,CAAC;IAED,IAAI,MAAM,EAAE,CAAC;QACX,YAAY,CAAC,WAAW,CAAC,CAAC;QAC1B,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,8CAA8C,CAAC,CAAC,CAAC;IACtE,CAAC;IAED,mEAAmE;IACnE,IAAI,CAAC;QACH,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,MAAM,CAAC,cAAc,CAAC,CAAC;QACpD,UAAU,CAAC,WAAW,CAAC,CAAC;IAC1B,CAAC;IAAC,MAAM,CAAC;QACP,4BAA4B;IAC9B,CAAC;IAED,MAAM,IAAI,GAAG,UAAU,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC;IAE9C,IAAI,aAAa,GAAG,EAAE,CAAC;IACvB,IAAI,CAAC;QACH,aAAa,GAAG,aAAa,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IACtD,CAAC;IAAC,MAAM,CAAC;QACP,qBAAqB;IACvB,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,OAAO,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;IAElD,MAAM,WAAW,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;IAErC,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,wBAAwB,CAAC,GAAG,IAAI,CAAC,oBAAoB,IAAI,EAAE,CAAC,CACnE,CAAC;IACF,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC,CAAC;IAC9C,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC,CAAC;IAE7C,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACpB,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,CAAC,MAAM,UAAU,CAAC,CAAC;QAC9C,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;YACvB,MAAM,SAAS,GAAG,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,aAAa,CAAC;gBACnD,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC;gBACpB,CAAC,CAAC,EAAE,CAAC;YACP,OAAO,CAAC,GAAG,CAAC,SAAS,GAAG,CAAC,MAAM,KAAK,GAAG,CAAC,MAAM,IAAI,SAAS,EAAE,CAAC,CAAC;QACjE,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAClB,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,4CAA4C,CAAC,CAAC,CAAC;IACjE,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"import.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/import.ts"],"names":[],"mappings":"AAMA,wBAAsB,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,CA8BnD"}
|
|
@@ -0,0 +1,28 @@
|
|
|
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 { importProjectSources } from '../../utils/import.js';
|
|
5
|
+
import { buildProjectArtifacts } from '../../utils/ai-build.js';
|
|
6
|
+
export async function importSources() {
|
|
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 imported = importProjectSources(projectRoot);
|
|
13
|
+
const result = buildProjectArtifacts(projectRoot, imported.tools);
|
|
14
|
+
console.log(green('\n ✓ Existing project sources imported') +
|
|
15
|
+
`: ${imported.rulesImported} rules, ${imported.skillsImported} skills\n`);
|
|
16
|
+
if (imported.tools.length === 0) {
|
|
17
|
+
console.log(yellow(' No existing AI tool configs were discovered.\n'));
|
|
18
|
+
return;
|
|
19
|
+
}
|
|
20
|
+
console.log(` Tools: ${imported.tools.join(', ')}`);
|
|
21
|
+
console.log(` Tool config snapshot: ${imported.snapshotPath}`);
|
|
22
|
+
console.log(` Rebuilt: ${result.ruleViews} rule views, ${result.skillViews} skill views, ${result.commandFiles} tool command files`);
|
|
23
|
+
if (imported.gitignoreAdded.length > 0) {
|
|
24
|
+
console.log(` .gitignore: added ${imported.gitignoreAdded.join(', ')}`);
|
|
25
|
+
}
|
|
26
|
+
console.log('');
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=import.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"import.js","sourceRoot":"","sources":["../../../src/cli/commands/import.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,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAEhE,MAAM,CAAC,KAAK,UAAU,aAAa;IACjC,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,QAAQ,GAAG,oBAAoB,CAAC,WAAW,CAAC,CAAC;IACnD,MAAM,MAAM,GAAG,qBAAqB,CAAC,WAAW,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;IAElE,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,yCAAyC,CAAC;QAChD,KAAK,QAAQ,CAAC,aAAa,WAAW,QAAQ,CAAC,cAAc,WAAW,CACzE,CAAC;IAEF,IAAI,QAAQ,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAChC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,kDAAkD,CAAC,CAAC,CAAC;QACxE,OAAO;IACT,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,YAAY,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACrD,OAAO,CAAC,GAAG,CAAC,2BAA2B,QAAQ,CAAC,YAAY,EAAE,CAAC,CAAC;IAChE,OAAO,CAAC,GAAG,CACT,cAAc,MAAM,CAAC,SAAS,gBAAgB,MAAM,CAAC,UAAU,iBAAiB,MAAM,CAAC,YAAY,qBAAqB,CACzH,CAAC;IACF,IAAI,QAAQ,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvC,OAAO,CAAC,GAAG,CAAC,uBAAuB,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAC3E,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAClB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/init.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/init.ts"],"names":[],"mappings":"AA0GA,wBAAsB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CA6R1C"}
|