evo-skills 0.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/.eslintrc.json +36 -0
- package/.prettierrc +11 -0
- package/README.md +227 -0
- package/USER-GUIDE.md +382 -0
- package/dist/cli/commands/diff.d.ts +7 -0
- package/dist/cli/commands/diff.d.ts.map +1 -0
- package/dist/cli/commands/diff.js +126 -0
- package/dist/cli/commands/diff.js.map +1 -0
- package/dist/cli/commands/freeze.d.ts +12 -0
- package/dist/cli/commands/freeze.d.ts.map +1 -0
- package/dist/cli/commands/freeze.js +93 -0
- package/dist/cli/commands/freeze.js.map +1 -0
- package/dist/cli/commands/log.d.ts +7 -0
- package/dist/cli/commands/log.d.ts.map +1 -0
- package/dist/cli/commands/log.js +76 -0
- package/dist/cli/commands/log.js.map +1 -0
- package/dist/cli/commands/rollback.d.ts +7 -0
- package/dist/cli/commands/rollback.d.ts.map +1 -0
- package/dist/cli/commands/rollback.js +92 -0
- package/dist/cli/commands/rollback.js.map +1 -0
- package/dist/cli/commands/status.d.ts +7 -0
- package/dist/cli/commands/status.d.ts.map +1 -0
- package/dist/cli/commands/status.js +88 -0
- package/dist/cli/commands/status.js.map +1 -0
- package/dist/cli/index.d.ts +3 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +25 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/config/defaults.d.ts +6 -0
- package/dist/config/defaults.d.ts.map +1 -0
- package/dist/config/defaults.js +31 -0
- package/dist/config/defaults.js.map +1 -0
- package/dist/config/index.d.ts +68 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +195 -0
- package/dist/config/index.js.map +1 -0
- package/dist/core/evaluator/base-rule.d.ts +50 -0
- package/dist/core/evaluator/base-rule.d.ts.map +1 -0
- package/dist/core/evaluator/base-rule.js +69 -0
- package/dist/core/evaluator/base-rule.js.map +1 -0
- package/dist/core/evaluator/index.d.ts +33 -0
- package/dist/core/evaluator/index.d.ts.map +1 -0
- package/dist/core/evaluator/index.js +74 -0
- package/dist/core/evaluator/index.js.map +1 -0
- package/dist/core/evaluator/rules/repeated-drift.d.ts +19 -0
- package/dist/core/evaluator/rules/repeated-drift.d.ts.map +1 -0
- package/dist/core/evaluator/rules/repeated-drift.js +82 -0
- package/dist/core/evaluator/rules/repeated-drift.js.map +1 -0
- package/dist/core/evaluator/rules/repeated-manual-fix.d.ts +23 -0
- package/dist/core/evaluator/rules/repeated-manual-fix.d.ts.map +1 -0
- package/dist/core/evaluator/rules/repeated-manual-fix.js +97 -0
- package/dist/core/evaluator/rules/repeated-manual-fix.js.map +1 -0
- package/dist/core/journal/index.d.ts +76 -0
- package/dist/core/journal/index.d.ts.map +1 -0
- package/dist/core/journal/index.js +207 -0
- package/dist/core/journal/index.js.map +1 -0
- package/dist/core/observer/base-observer.d.ts +64 -0
- package/dist/core/observer/base-observer.d.ts.map +1 -0
- package/dist/core/observer/base-observer.js +142 -0
- package/dist/core/observer/base-observer.js.map +1 -0
- package/dist/core/observer/codex-observer.d.ts +71 -0
- package/dist/core/observer/codex-observer.d.ts.map +1 -0
- package/dist/core/observer/codex-observer.js +248 -0
- package/dist/core/observer/codex-observer.js.map +1 -0
- package/dist/core/observer/index.d.ts +7 -0
- package/dist/core/observer/index.d.ts.map +1 -0
- package/dist/core/observer/index.js +7 -0
- package/dist/core/observer/index.js.map +1 -0
- package/dist/core/observer/trace-manager.d.ts +82 -0
- package/dist/core/observer/trace-manager.d.ts.map +1 -0
- package/dist/core/observer/trace-manager.js +196 -0
- package/dist/core/observer/trace-manager.js.map +1 -0
- package/dist/core/origin-registry/index.d.ts +59 -0
- package/dist/core/origin-registry/index.d.ts.map +1 -0
- package/dist/core/origin-registry/index.js +235 -0
- package/dist/core/origin-registry/index.js.map +1 -0
- package/dist/core/patch-generator/base-strategy.d.ts +35 -0
- package/dist/core/patch-generator/base-strategy.d.ts.map +1 -0
- package/dist/core/patch-generator/base-strategy.js +55 -0
- package/dist/core/patch-generator/base-strategy.js.map +1 -0
- package/dist/core/patch-generator/index.d.ts +32 -0
- package/dist/core/patch-generator/index.d.ts.map +1 -0
- package/dist/core/patch-generator/index.js +101 -0
- package/dist/core/patch-generator/index.js.map +1 -0
- package/dist/core/patch-generator/strategies/add-fallback.d.ts +11 -0
- package/dist/core/patch-generator/strategies/add-fallback.d.ts.map +1 -0
- package/dist/core/patch-generator/strategies/add-fallback.js +57 -0
- package/dist/core/patch-generator/strategies/add-fallback.js.map +1 -0
- package/dist/core/patch-generator/strategies/prune-noise.d.ts +11 -0
- package/dist/core/patch-generator/strategies/prune-noise.d.ts.map +1 -0
- package/dist/core/patch-generator/strategies/prune-noise.js +48 -0
- package/dist/core/patch-generator/strategies/prune-noise.js.map +1 -0
- package/dist/core/shadow-manager/index.d.ts +65 -0
- package/dist/core/shadow-manager/index.d.ts.map +1 -0
- package/dist/core/shadow-manager/index.js +229 -0
- package/dist/core/shadow-manager/index.js.map +1 -0
- package/dist/core/shadow-registry/index.d.ts +68 -0
- package/dist/core/shadow-registry/index.d.ts.map +1 -0
- package/dist/core/shadow-registry/index.js +173 -0
- package/dist/core/shadow-registry/index.js.map +1 -0
- package/dist/daemon/index.d.ts +43 -0
- package/dist/daemon/index.d.ts.map +1 -0
- package/dist/daemon/index.js +144 -0
- package/dist/daemon/index.js.map +1 -0
- package/dist/storage/index.d.ts +7 -0
- package/dist/storage/index.d.ts.map +1 -0
- package/dist/storage/index.js +7 -0
- package/dist/storage/index.js.map +1 -0
- package/dist/storage/markdown.d.ts +66 -0
- package/dist/storage/markdown.d.ts.map +1 -0
- package/dist/storage/markdown.js +227 -0
- package/dist/storage/markdown.js.map +1 -0
- package/dist/storage/ndjson.d.ts +118 -0
- package/dist/storage/ndjson.d.ts.map +1 -0
- package/dist/storage/ndjson.js +238 -0
- package/dist/storage/ndjson.js.map +1 -0
- package/dist/storage/sqlite.d.ts +131 -0
- package/dist/storage/sqlite.d.ts.map +1 -0
- package/dist/storage/sqlite.js +415 -0
- package/dist/storage/sqlite.js.map +1 -0
- package/dist/types/index.d.ts +158 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +5 -0
- package/dist/types/index.js.map +1 -0
- package/dist/utils/diff.d.ts +20 -0
- package/dist/utils/diff.d.ts.map +1 -0
- package/dist/utils/diff.js +47 -0
- package/dist/utils/diff.js.map +1 -0
- package/dist/utils/hash.d.ts +17 -0
- package/dist/utils/hash.d.ts.map +1 -0
- package/dist/utils/hash.js +28 -0
- package/dist/utils/hash.js.map +1 -0
- package/dist/utils/index.d.ts +8 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +8 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/logger.d.ts +11 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +64 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/path.d.ts +67 -0
- package/dist/utils/path.d.ts.map +1 -0
- package/dist/utils/path.js +115 -0
- package/dist/utils/path.js.map +1 -0
- package/docs/ENGINEERING_PLAN.md +1065 -0
- package/docs/PRD.md +1004 -0
- package/docs/PROGRESS.md +523 -0
- package/package.json +60 -0
- package/src/cli/commands/diff.ts +158 -0
- package/src/cli/commands/freeze.ts +108 -0
- package/src/cli/commands/log.ts +87 -0
- package/src/cli/commands/rollback.ts +99 -0
- package/src/cli/commands/status.ts +101 -0
- package/src/cli/index.ts +31 -0
- package/src/config/defaults.ts +32 -0
- package/src/config/index.ts +220 -0
- package/src/core/evaluator/base-rule.ts +90 -0
- package/src/core/evaluator/index.ts +86 -0
- package/src/core/evaluator/rules/repeated-drift.ts +109 -0
- package/src/core/evaluator/rules/repeated-manual-fix.ts +129 -0
- package/src/core/journal/index.ts +286 -0
- package/src/core/observer/base-observer.ts +200 -0
- package/src/core/observer/codex-observer.ts +309 -0
- package/src/core/observer/index.ts +7 -0
- package/src/core/observer/trace-manager.ts +250 -0
- package/src/core/origin-registry/index.ts +264 -0
- package/src/core/patch-generator/base-strategy.ts +67 -0
- package/src/core/patch-generator/index.ts +118 -0
- package/src/core/patch-generator/strategies/add-fallback.ts +69 -0
- package/src/core/patch-generator/strategies/prune-noise.ts +65 -0
- package/src/core/shadow-manager/index.ts +278 -0
- package/src/core/shadow-registry/index.ts +200 -0
- package/src/daemon/index.ts +174 -0
- package/src/storage/index.ts +7 -0
- package/src/storage/markdown.ts +267 -0
- package/src/storage/ndjson.ts +273 -0
- package/src/storage/sqlite.ts +555 -0
- package/src/types/index.ts +212 -0
- package/src/utils/diff.ts +60 -0
- package/src/utils/hash.ts +31 -0
- package/src/utils/index.ts +8 -0
- package/src/utils/logger.ts +78 -0
- package/src/utils/path.ts +129 -0
- package/tests/unit/config.test.ts +65 -0
- package/tests/unit/path.test.ts +89 -0
- package/tests/unit/utils.test.ts +45 -0
- package/tsconfig.json +31 -0
- package/vitest.config.ts +19 -0
package/docs/PROGRESS.md
ADDED
|
@@ -0,0 +1,523 @@
|
|
|
1
|
+
# EVO Skills 项目进度
|
|
2
|
+
|
|
3
|
+
## Phase 1: 基础框架 ✅ 已完成
|
|
4
|
+
|
|
5
|
+
### 已完成的工作
|
|
6
|
+
|
|
7
|
+
#### 1. 项目初始化
|
|
8
|
+
- ✅ 创建 `package.json` - 项目依赖和脚本配置
|
|
9
|
+
- ✅ 创建 `tsconfig.json` - TypeScript 编译配置
|
|
10
|
+
- ✅ 创建 `.eslintrc.json` - ESLint 代码规范
|
|
11
|
+
- ✅ 创建 `.prettierrc` - Prettier 代码格式化
|
|
12
|
+
- ✅ 创建 `vitest.config.ts` - 测试框架配置
|
|
13
|
+
- ✅ 创建 `.gitignore` - Git 忽略文件
|
|
14
|
+
|
|
15
|
+
#### 2. 项目目录结构
|
|
16
|
+
```
|
|
17
|
+
EVOSkills/
|
|
18
|
+
├── src/
|
|
19
|
+
│ ├── cli/ # CLI 命令入口
|
|
20
|
+
│ │ ├── commands/
|
|
21
|
+
│ │ └── utils/
|
|
22
|
+
│ ├── core/ # 核心业务逻辑
|
|
23
|
+
│ │ ├── origin-registry/
|
|
24
|
+
│ │ ├── shadow-registry/
|
|
25
|
+
│ │ ├── observer/
|
|
26
|
+
│ │ ├── evaluator/
|
|
27
|
+
│ │ │ └── rules
|
|
28
|
+
│ │ ├── patch-generator/
|
|
29
|
+
│ │ │ └── strategies/
|
|
30
|
+
│ │ ├── journal/
|
|
31
|
+
│ │ └── shadow-manager/
|
|
32
|
+
│ ├── storage/ # 存储层
|
|
33
|
+
│ ├── daemon/ # 后台服务
|
|
34
|
+
│ ├── types/ # 全局类型定义
|
|
35
|
+
│ ├── config/ # 配置管理
|
|
36
|
+
│ └── utils/ # 工具函数
|
|
37
|
+
├── tests/
|
|
38
|
+
│ ├── unit/
|
|
39
|
+
│ ├── integration/
|
|
40
|
+
│ └── fixtures/
|
|
41
|
+
└── docs/
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
#### 3. 全局类型定义 (`src/types/index.ts`)
|
|
45
|
+
- ✅ `OriginSkill` - 全局 Skill 类型
|
|
46
|
+
- ✅ `ProjectSkillShadow` - 项目 Shadow Skill 类型
|
|
47
|
+
- ✅ `ShadowSkillState` - Shadow Skill 运行状态
|
|
48
|
+
- ✅ `ShadowStatus` - Shadow 状态枚举
|
|
49
|
+
- ✅ `ChangeType` - Patch 类型枚举
|
|
50
|
+
- ✅ `EvolutionRecord` - 演化记录类型
|
|
51
|
+
- ✅ `SnapshotInfo` - 快照信息类型
|
|
52
|
+
- ✅ `Trace` - Trace 数据结构
|
|
53
|
+
- ✅ `TraceEventType` - Trace 事件类型
|
|
54
|
+
- ✅ `RuntimeType` - Runtime 类型
|
|
55
|
+
- ✅ `EvaluationResult` - 评估结果类型
|
|
56
|
+
- ✅ `PatchResult` - Patch 结果类型
|
|
57
|
+
- ✅ `AutoOptimizePolicy` - 自动优化策略
|
|
58
|
+
- ✅ `Session` - Session 信息
|
|
59
|
+
- ✅ `JournalQueryOptions` - Journal 查询选项
|
|
60
|
+
- ✅ `SeaConfig` - 全局配置类型
|
|
61
|
+
- ✅ `ProjectConfig` - 项目配置类型
|
|
62
|
+
|
|
63
|
+
#### 4. 配置管理系统
|
|
64
|
+
- ✅ `src/config/defaults.ts` - 默认配置
|
|
65
|
+
- ✅ `src/config/index.ts` - 配置管理器
|
|
66
|
+
|
|
67
|
+
#### 5. 工具函数库
|
|
68
|
+
- ✅ `src/utils/hash.ts` - 哈希计算
|
|
69
|
+
- ✅ `src/utils/diff.ts` - Diff 计算
|
|
70
|
+
- ✅ `src/utils/path.ts` - 路径工具
|
|
71
|
+
- ✅ `src/utils/logger.ts` - 日志系统
|
|
72
|
+
|
|
73
|
+
#### 6. SQLite 存储层 (`src/storage/sqlite.ts`)
|
|
74
|
+
- ✅ 使用 `sql.js`(纯 JavaScript 实现,无需编译)
|
|
75
|
+
|
|
76
|
+
#### 7. NDJSON 读写器 (`src/storage/ndjson.ts`)
|
|
77
|
+
- ✅ `NDJSONReader<T>` - 泛型 NDJSON 读取器
|
|
78
|
+
- ✅ `NDJSONWriter<T>` - 泛型 NDJSON 写入器
|
|
79
|
+
- ✅ `TraceStore` - Trace 存储
|
|
80
|
+
- ✅ `JournalStore` - Journal 存储
|
|
81
|
+
|
|
82
|
+
#### 8. Markdown 文件操作器 (`src/storage/markdown.ts`)
|
|
83
|
+
- ✅ `MarkdownSkill` - Markdown Skill 操作器
|
|
84
|
+
|
|
85
|
+
#### 9. 文档
|
|
86
|
+
- ✅ `README.md` - 项目说明文档
|
|
87
|
+
- ✅ `docs/PRD.md` - 产品需求文档
|
|
88
|
+
- ✅ `docs/ENGINEERING_PLAN.md` - 工程计划文档
|
|
89
|
+
- ✅ `docs/PROGRESS.md` - 项目进度文档
|
|
90
|
+
|
|
91
|
+
#### 10. 测试
|
|
92
|
+
- ✅ `tests/unit/utils.test.ts` - 工具函数单元测试
|
|
93
|
+
|
|
94
|
+
### 验证结果
|
|
95
|
+
|
|
96
|
+
#### TypeScript 类型检查
|
|
97
|
+
```bash
|
|
98
|
+
$ npm run typecheck
|
|
99
|
+
✅ 通过 - 无错误
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
#### 项目构建
|
|
103
|
+
```bash
|
|
104
|
+
$ npm run build
|
|
105
|
+
✅ 通过 - 成功编译
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
#### 单元测试
|
|
109
|
+
```bash
|
|
110
|
+
$ npm test -- --run
|
|
111
|
+
✅ 通过 - 6 个测试全部通过
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
### 技术栈总结
|
|
115
|
+
|
|
116
|
+
| 组件 | 技术 | 状态 |
|
|
117
|
+
|------|------|------|
|
|
118
|
+
| 语言 | TypeScript 5.3 | ✅ |
|
|
119
|
+
| 运行时 | Node.js 18+ | ✅ |
|
|
120
|
+
| CLI 框架 | Commander.js 11 | ✅ |
|
|
121
|
+
| 数据库 | sql.js 1.10 (SQLite) | ✅ |
|
|
122
|
+
| 文件监控 | chokidar 3.5 | ✅ |
|
|
123
|
+
| Diff/Patch | diff 5.1 | ✅ |
|
|
124
|
+
| 配置管理 | cosmiconfig 8.3 | ✅ |
|
|
125
|
+
| 日志 | winston 3.11 | ✅ |
|
|
126
|
+
| 测试 | Vitest 1.0 | ✅ |
|
|
127
|
+
|
|
128
|
+
---
|
|
129
|
+
|
|
130
|
+
## Phase 2 - Origin & Shadow Registry ✅ 已完成
|
|
131
|
+
|
|
132
|
+
### 已完成的工作
|
|
133
|
+
|
|
134
|
+
#### 1. Origin Registry (`src/core/origin-registry/index.ts`)
|
|
135
|
+
- ✅ 目录扫描器 - 扫描配置的 skill 目录
|
|
136
|
+
- ✅ 版本 hash 计算 - 使用 SHA256 计算文件版本
|
|
137
|
+
- ✅ Origin 列表管理 - CRUD 操作
|
|
138
|
+
- ✅ 支持目录和单文件 skill
|
|
139
|
+
- ✅ 自动检测 skill 来源(local/marketplace/git)
|
|
140
|
+
|
|
141
|
+
#### 2. Shadow Registry (`src/core/shadow-registry/index.ts`)
|
|
142
|
+
- ✅ Shadow 创建(fork)- 从 origin 复制到项目
|
|
143
|
+
- ✅ Shadow 状态管理 - active/frozen/rebasing/needs_attention
|
|
144
|
+
- ✅ 项目目录结构初始化 - 自动创建 .sea 目录
|
|
145
|
+
- ✅ 读取/写入 shadow 内容
|
|
146
|
+
- ✅ 获取 journal 和 snapshots 目录
|
|
147
|
+
|
|
148
|
+
#### 3. Journal Manager (`src/core/journal/index.ts`)
|
|
149
|
+
- ✅ Journal 写入 - 记录演化
|
|
150
|
+
- ✅ Journal 读取 - 查询记录
|
|
151
|
+
- ✅ Revision 管理 - 自动递增版本号
|
|
152
|
+
- ✅ Snapshot 创建和管理
|
|
153
|
+
- ✅ Rollback 功能 - 回滚到指定 revision
|
|
154
|
+
|
|
155
|
+
### 验证结果
|
|
156
|
+
|
|
157
|
+
#### TypeScript 类型检查
|
|
158
|
+
```bash
|
|
159
|
+
$ npm run typecheck
|
|
160
|
+
✅ 通过 - 无错误
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
#### 项目构建
|
|
164
|
+
```bash
|
|
165
|
+
$ npm run build
|
|
166
|
+
✅ 通过 - 成功编译
|
|
167
|
+
```
|
|
168
|
+
|
|
169
|
+
#### 单元测试
|
|
170
|
+
```bash
|
|
171
|
+
$ npm test -- --run
|
|
172
|
+
✅ 通过 - 6 个测试全部通过
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
---
|
|
176
|
+
|
|
177
|
+
## Phase 3 - Observer Layer ✅ 已完成
|
|
178
|
+
|
|
179
|
+
### 已完成的工作
|
|
180
|
+
|
|
181
|
+
#### 1. Observer 基类 (`src/core/observer/base-observer.ts`)
|
|
182
|
+
- ✅ 抽象基类定义
|
|
183
|
+
- ✅ Trace 回调机制
|
|
184
|
+
- ✅ 各种 trace 创建方法(用户输入、助手输出、工具调用、工具结果、文件变化、重试、状态)
|
|
185
|
+
|
|
186
|
+
#### 2. Codex Observer (`src/core/observer/codex-observer.ts`)
|
|
187
|
+
- ✅ JSONL 事件流解析
|
|
188
|
+
- ✅ Session 日志监听(使用 chokidar)
|
|
189
|
+
- ✅ 增量文件读取
|
|
190
|
+
- ✅ 事件类型识别和 trace 转换
|
|
191
|
+
- ✅ 支持手动处理 session 文件
|
|
192
|
+
|
|
193
|
+
#### 3. Trace 存储管理器 (`src/core/observer/trace-manager.ts`)
|
|
194
|
+
- ✅ Trace 记录(NDJSON + SQLite 索引)
|
|
195
|
+
- ✅ Session 管理
|
|
196
|
+
- ✅ 多种查询方式(按事件类型、时间范围、状态等)
|
|
197
|
+
- ✅ Trace 统计信息
|
|
198
|
+
|
|
199
|
+
### 验证结果
|
|
200
|
+
|
|
201
|
+
#### TypeScript 类型检查
|
|
202
|
+
```bash
|
|
203
|
+
$ npm run typecheck
|
|
204
|
+
✅ 通过 - 无错误
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
#### 项目构建
|
|
208
|
+
```bash
|
|
209
|
+
$ npm run build
|
|
210
|
+
✅ 通过 - 成功编译
|
|
211
|
+
```
|
|
212
|
+
|
|
213
|
+
#### 单元测试
|
|
214
|
+
```bash
|
|
215
|
+
$ npm test -- --run
|
|
216
|
+
✅ 通过 - 6 个测试全部通过
|
|
217
|
+
```
|
|
218
|
+
|
|
219
|
+
---
|
|
220
|
+
|
|
221
|
+
## Phase 4 - Evaluator & Patch Generator ✅ 已完成
|
|
222
|
+
|
|
223
|
+
### 已完成的工作
|
|
224
|
+
|
|
225
|
+
#### 1. Evaluator 框架 (`src/core/evaluator/`)
|
|
226
|
+
- ✅ Base Rule - 评估规则基类
|
|
227
|
+
- ✅ Repeated Manual Fix 规则 - 检测用户反复手动补充步骤
|
|
228
|
+
- ✅ Repeated Drift 规则 - 检测执行绕过某一段
|
|
229
|
+
- ✅ Evaluator 主类 - 运行所有规则并返回评估结果
|
|
230
|
+
|
|
231
|
+
#### 2. Patch Generator 框架 (`src/core/patch-generator/`)
|
|
232
|
+
- ✅ Base Strategy - Patch 策略基类
|
|
233
|
+
- ✅ Add Fallback 策略 - 添加 fallback 说明
|
|
234
|
+
- ✅ Prune Noise 策略 - 删除冗余说明
|
|
235
|
+
- ✅ Patch Generator 主类 - 根据变更类型生成 patch
|
|
236
|
+
|
|
237
|
+
### 验证结果
|
|
238
|
+
|
|
239
|
+
#### TypeScript 类型检查
|
|
240
|
+
```bash
|
|
241
|
+
$ npm run typecheck
|
|
242
|
+
✅ 通过 - 无错误
|
|
243
|
+
```
|
|
244
|
+
|
|
245
|
+
#### 项目构建
|
|
246
|
+
```bash
|
|
247
|
+
$ npm run build
|
|
248
|
+
✅ 通过 - 成功编译
|
|
249
|
+
```
|
|
250
|
+
|
|
251
|
+
#### 单元测试
|
|
252
|
+
```bash
|
|
253
|
+
$ npm test -- --run
|
|
254
|
+
✅ 通过 - 6 个测试全部通过
|
|
255
|
+
```
|
|
256
|
+
|
|
257
|
+
---
|
|
258
|
+
|
|
259
|
+
## Phase 5 - Shadow Manager & 自动循环 ✅ 已完成
|
|
260
|
+
|
|
261
|
+
### 已完成的工作
|
|
262
|
+
|
|
263
|
+
#### 1. Shadow Manager (`src/core/shadow-manager/index.ts`)
|
|
264
|
+
- ✅ Trace 处理流程 - 接收并记录 trace
|
|
265
|
+
- ✅ 评估触发逻辑 - 根据 trace 触发评估
|
|
266
|
+
- ✅ Patch 执行流程 - 生成并应用 patch
|
|
267
|
+
- ✅ 自动优化策略 - 信号计数、冷却窗口、置信度阈值
|
|
268
|
+
- ✅ Snapshot 管理 - 自动创建 snapshot
|
|
269
|
+
|
|
270
|
+
#### 2. 后台守护进程 (`src/daemon/index.ts`)
|
|
271
|
+
- ✅ 文件监听 - 使用 chokidar 监听 .sea 目录
|
|
272
|
+
- ✅ 定时任务 - 每小时清理旧 traces
|
|
273
|
+
- ✅ 与 Shadow Manager 集成
|
|
274
|
+
|
|
275
|
+
### 验证结果
|
|
276
|
+
|
|
277
|
+
#### TypeScript 类型检查
|
|
278
|
+
```bash
|
|
279
|
+
$ npm run typecheck
|
|
280
|
+
✅ 通过 - 无错误
|
|
281
|
+
```
|
|
282
|
+
|
|
283
|
+
#### 项目构建
|
|
284
|
+
```bash
|
|
285
|
+
$ npm run build
|
|
286
|
+
✅ 通过 - 成功编译
|
|
287
|
+
```
|
|
288
|
+
|
|
289
|
+
#### 单元测试
|
|
290
|
+
```bash
|
|
291
|
+
$ npm test -- --run
|
|
292
|
+
✅ 通过 - 6 个测试全部通过
|
|
293
|
+
```
|
|
294
|
+
|
|
295
|
+
---
|
|
296
|
+
|
|
297
|
+
## Phase 6 - Rollback & CLI ✅ 已完成
|
|
298
|
+
|
|
299
|
+
### 已完成的工作
|
|
300
|
+
|
|
301
|
+
#### 1. Rollback 命令 (`src/cli/commands/rollback.ts`)
|
|
302
|
+
- ✅ 回滚到指定 revision - `sea skills rollback <skill> --to <revision>`
|
|
303
|
+
- ✅ 回滚到 snapshot - `sea skills rollback <skill> --snapshot`
|
|
304
|
+
- ✅ 回滚到初始版本 - `sea skills rollback <skill> --initial`
|
|
305
|
+
- ✅ 显示可用 snapshots - 无参数时列出所有可用版本
|
|
306
|
+
|
|
307
|
+
#### 2. Status 命令 (`src/cli/commands/status.ts`)
|
|
308
|
+
- ✅ 列出所有 shadow skills - `sea skills status`
|
|
309
|
+
- ✅ 显示特定 skill 详细状态 - `sea skills status --skill <id>`
|
|
310
|
+
|
|
311
|
+
#### 3. CLI 主入口 (`src/cli/index.ts`)
|
|
312
|
+
- ✅ Commander.js 集成
|
|
313
|
+
- ✅ Skills 子命令组
|
|
314
|
+
|
|
315
|
+
### 验证结果
|
|
316
|
+
|
|
317
|
+
#### TypeScript 类型检查
|
|
318
|
+
```bash
|
|
319
|
+
$ npm run typecheck
|
|
320
|
+
✅ 通过 - 无错误
|
|
321
|
+
```
|
|
322
|
+
|
|
323
|
+
#### 项目构建
|
|
324
|
+
```bash
|
|
325
|
+
$ npm run build
|
|
326
|
+
✅ 通过 - 成功编译
|
|
327
|
+
```
|
|
328
|
+
|
|
329
|
+
#### 单元测试
|
|
330
|
+
```bash
|
|
331
|
+
$ npm test -- --run
|
|
332
|
+
✅ 通过 - 6 个测试全部通过
|
|
333
|
+
```
|
|
334
|
+
|
|
335
|
+
### CLI 命令示例
|
|
336
|
+
|
|
337
|
+
```bash
|
|
338
|
+
# 查看所有 shadow skills 状态
|
|
339
|
+
evo skills status
|
|
340
|
+
|
|
341
|
+
# 查看特定 skill 详细状态
|
|
342
|
+
evo skills status --skill my-skill
|
|
343
|
+
|
|
344
|
+
# 回滚到指定 revision
|
|
345
|
+
evo skills rollback my-skill --to 5
|
|
346
|
+
|
|
347
|
+
# 回滚到最新 snapshot
|
|
348
|
+
evo skills rollback my-skill --snapshot
|
|
349
|
+
|
|
350
|
+
# 回滚到初始版本
|
|
351
|
+
evo skills rollback my-skill --initial
|
|
352
|
+
|
|
353
|
+
# 查看可用的 snapshots
|
|
354
|
+
evo skills rollback my-skill
|
|
355
|
+
```
|
|
356
|
+
|
|
357
|
+
---
|
|
358
|
+
|
|
359
|
+
## Phase 7 - CLI 完善 & 集成 ✅ 已完成
|
|
360
|
+
|
|
361
|
+
### 已完成的工作
|
|
362
|
+
|
|
363
|
+
#### 1. Log 命令 (`src/cli/commands/log.ts`)
|
|
364
|
+
- ✅ 查看演化日志 - `sea skills log <skill>`
|
|
365
|
+
- ✅ 限制记录数量 - `--limit <number>`
|
|
366
|
+
- ✅ 按变更类型过滤 - `--type <type>`
|
|
367
|
+
|
|
368
|
+
#### 2. Diff 命令 (`src/cli/commands/diff.ts`)
|
|
369
|
+
- ✅ 与 origin 比较 - `sea skills diff <skill> --origin`
|
|
370
|
+
- ✅ 与指定 revision 比较 - `sea skills diff <skill> --revision <number>`
|
|
371
|
+
- ✅ 默认与 origin 比较
|
|
372
|
+
|
|
373
|
+
#### 3. Freeze/Unfreeze 命令 (`src/cli/commands/freeze.ts`)
|
|
374
|
+
- ✅ 冻结自动优化 - `sea skills freeze <skill>`
|
|
375
|
+
- ✅ 解冻自动优化 - `sea skills unfreeze <skill>`
|
|
376
|
+
|
|
377
|
+
#### 4. CLI 主入口更新 (`src/cli/index.ts`)
|
|
378
|
+
- ✅ 集成所有新命令
|
|
379
|
+
|
|
380
|
+
### 验证结果
|
|
381
|
+
|
|
382
|
+
#### TypeScript 类型检查
|
|
383
|
+
```bash
|
|
384
|
+
$ npm run typecheck
|
|
385
|
+
✅ 通过 - 无错误
|
|
386
|
+
```
|
|
387
|
+
|
|
388
|
+
#### 项目构建
|
|
389
|
+
```bash
|
|
390
|
+
$ npm run build
|
|
391
|
+
✅ 通过 - 成功编译
|
|
392
|
+
```
|
|
393
|
+
|
|
394
|
+
#### 单元测试
|
|
395
|
+
```bash
|
|
396
|
+
$ npm test -- --run
|
|
397
|
+
✅ 通过 - 6 个测试全部通过
|
|
398
|
+
```
|
|
399
|
+
|
|
400
|
+
### 完整 CLI 命令列表
|
|
401
|
+
|
|
402
|
+
```bash
|
|
403
|
+
# 查看所有 shadow skills 状态
|
|
404
|
+
evo skills status
|
|
405
|
+
|
|
406
|
+
# 查看特定 skill 详细状态
|
|
407
|
+
evo skills status --skill <skill-id>
|
|
408
|
+
|
|
409
|
+
# 查看演化日志
|
|
410
|
+
evo skills log <skill-id>
|
|
411
|
+
evo skills log <skill-id> --limit 10
|
|
412
|
+
evo skills log <skill-id> --type add_fallback
|
|
413
|
+
|
|
414
|
+
# 查看 diff
|
|
415
|
+
evo skills diff <skill-id>
|
|
416
|
+
evo skills diff <skill-id> --origin
|
|
417
|
+
evo skills diff <skill-id> --revision 5
|
|
418
|
+
|
|
419
|
+
# 回滚
|
|
420
|
+
evo skills rollback <skill-id> --to 5
|
|
421
|
+
evo skills rollback <skill-id> --snapshot
|
|
422
|
+
evo skills rollback <skill-id> --initial
|
|
423
|
+
|
|
424
|
+
# 冻结/解冻
|
|
425
|
+
evo skills freeze <skill-id>
|
|
426
|
+
evo skills unfreeze <skill-id>
|
|
427
|
+
```
|
|
428
|
+
|
|
429
|
+
---
|
|
430
|
+
|
|
431
|
+
## Phase 8 - 测试 & 打包 ✅ 已完成
|
|
432
|
+
|
|
433
|
+
### 已完成的工作
|
|
434
|
+
|
|
435
|
+
#### 1. 单元测试补全
|
|
436
|
+
- ✅ 配置管理测试 (`tests/unit/config.test.ts`) - 7 个测试
|
|
437
|
+
- ✅ 路径工具测试 (`tests/unit/path.test.ts`) - 11 个测试
|
|
438
|
+
- ✅ 工具函数测试 (`tests/unit/utils.test.ts`) - 6 个测试
|
|
439
|
+
- ✅ **总计 24 个测试全部通过**
|
|
440
|
+
|
|
441
|
+
#### 2. 测试覆盖
|
|
442
|
+
- ✅ Hash 工具 - 一致性、差异性、短哈希
|
|
443
|
+
- ✅ Diff 工具 - 变化检测、行数统计
|
|
444
|
+
- ✅ 配置管理 - 全局配置、评估器配置、补丁配置
|
|
445
|
+
- ✅ 路径工具 - 主目录展开、目录路径生成
|
|
446
|
+
|
|
447
|
+
### 验证结果
|
|
448
|
+
|
|
449
|
+
#### TypeScript 类型检查
|
|
450
|
+
```bash
|
|
451
|
+
$ npm run typecheck
|
|
452
|
+
✅ 通过 - 无错误
|
|
453
|
+
```
|
|
454
|
+
|
|
455
|
+
#### 项目构建
|
|
456
|
+
```bash
|
|
457
|
+
$ npm run build
|
|
458
|
+
✅ 通过 - 成功编译
|
|
459
|
+
```
|
|
460
|
+
|
|
461
|
+
#### 单元测试
|
|
462
|
+
```bash
|
|
463
|
+
$ npm test -- --run
|
|
464
|
+
✅ 通过 - 24 个测试全部通过
|
|
465
|
+
|
|
466
|
+
Test Files 3 passed (3)
|
|
467
|
+
Tests 24 passed (24)
|
|
468
|
+
Duration 332ms
|
|
469
|
+
```
|
|
470
|
+
|
|
471
|
+
---
|
|
472
|
+
|
|
473
|
+
## 项目完成总结
|
|
474
|
+
|
|
475
|
+
### ✅ 已完成的 8 个核心阶段
|
|
476
|
+
|
|
477
|
+
1. **Phase 1: 基础框架** - 项目初始化、类型定义、配置管理、工具函数
|
|
478
|
+
2. **Phase 2: Origin & Shadow Registry** - Skill 发现和 Shadow 管理
|
|
479
|
+
3. **Phase 3: Observer Layer** - Trace 采集和存储
|
|
480
|
+
4. **Phase 4: Evaluator & Patch Generator** - 自动评估和补丁生成
|
|
481
|
+
5. **Phase 5: Shadow Manager & Auto Cycle** - 完整的自动演化循环
|
|
482
|
+
6. **Phase 6: Rollback & CLI** - 回滚功能和 CLI 命令
|
|
483
|
+
7. **Phase 7: CLI Enhancement & Integration** - 完整的 CLI 命令集
|
|
484
|
+
8. **Phase 8: 测试 & 打包** - 单元测试和验证
|
|
485
|
+
|
|
486
|
+
### 🎯 核心功能完整实现
|
|
487
|
+
|
|
488
|
+
- ✅ Skill 发现和管理
|
|
489
|
+
- ✅ Shadow Skill 创建和演化
|
|
490
|
+
- ✅ Trace 采集和存储
|
|
491
|
+
- ✅ 自动评估和优化
|
|
492
|
+
- ✅ 后台守护进程
|
|
493
|
+
- ✅ 完整的 CLI 命令接口
|
|
494
|
+
- ✅ 回滚和版本管理
|
|
495
|
+
- ✅ 单元测试覆盖
|
|
496
|
+
|
|
497
|
+
### 📊 项目统计
|
|
498
|
+
|
|
499
|
+
- **源代码文件**: 30+ 个
|
|
500
|
+
- **测试文件**: 3 个
|
|
501
|
+
- **测试用例**: 24 个
|
|
502
|
+
- **CLI 命令**: 7 个
|
|
503
|
+
- **核心模块**: 8 个
|
|
504
|
+
|
|
505
|
+
### 🚀 可用的 CLI 命令
|
|
506
|
+
|
|
507
|
+
```bash
|
|
508
|
+
evo skills status # 查看状态
|
|
509
|
+
evo skills log <skill> # 查看日志
|
|
510
|
+
evo skills diff <skill> # 查看差异
|
|
511
|
+
evo skills rollback <skill> # 回滚版本
|
|
512
|
+
evo skills freeze <skill> # 冻结优化
|
|
513
|
+
evo skills unfreeze <skill> # 解冻优化
|
|
514
|
+
```
|
|
515
|
+
|
|
516
|
+
---
|
|
517
|
+
|
|
518
|
+
*项目核心功能已完成,可以开始使用和测试*
|
|
519
|
+
*最后更新:2026-03-20*
|
|
520
|
+
|
|
521
|
+
---
|
|
522
|
+
|
|
523
|
+
*最后更新:2026-03-19*
|
package/package.json
ADDED
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "evo-skills",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "Skill Evolution Agent - Background meta-agent for automatic skill optimization",
|
|
5
|
+
"main": "dist/index.js",
|
|
6
|
+
"bin": {
|
|
7
|
+
"evo": "dist/cli/index.js"
|
|
8
|
+
},
|
|
9
|
+
"type": "module",
|
|
10
|
+
"scripts": {
|
|
11
|
+
"build": "tsc",
|
|
12
|
+
"dev": "tsx watch src/cli/index.ts",
|
|
13
|
+
"start": "node dist/cli/index.js",
|
|
14
|
+
"test": "vitest",
|
|
15
|
+
"test:coverage": "vitest --coverage",
|
|
16
|
+
"lint": "eslint src/ --ext .ts",
|
|
17
|
+
"lint:fix": "eslint src/ --ext .ts --fix",
|
|
18
|
+
"format": "prettier --write \"src/**/*.ts\"",
|
|
19
|
+
"typecheck": "tsc --noEmit"
|
|
20
|
+
},
|
|
21
|
+
"keywords": [
|
|
22
|
+
"skill",
|
|
23
|
+
"evolution",
|
|
24
|
+
"agent",
|
|
25
|
+
"cli",
|
|
26
|
+
"automation"
|
|
27
|
+
],
|
|
28
|
+
"author": "EVOSkills Team",
|
|
29
|
+
"license": "MIT",
|
|
30
|
+
"engines": {
|
|
31
|
+
"node": ">=18.0.0"
|
|
32
|
+
},
|
|
33
|
+
"dependencies": {
|
|
34
|
+
"chalk": "^5.3.0",
|
|
35
|
+
"chokidar": "^3.5.3",
|
|
36
|
+
"commander": "^11.0.0",
|
|
37
|
+
"cosmiconfig": "^8.3.0",
|
|
38
|
+
"diff": "^5.1.0",
|
|
39
|
+
"glob": "^10.3.0",
|
|
40
|
+
"ora": "^7.0.0",
|
|
41
|
+
"sql.js": "^1.10.0",
|
|
42
|
+
"toml": "^3.0.0",
|
|
43
|
+
"uuid": "^13.0.0",
|
|
44
|
+
"winston": "^3.11.0"
|
|
45
|
+
},
|
|
46
|
+
"devDependencies": {
|
|
47
|
+
"@types/diff": "^5.0.0",
|
|
48
|
+
"@types/node": "^20.0.0",
|
|
49
|
+
"@types/sql.js": "^1.4.0",
|
|
50
|
+
"@types/uuid": "^10.0.0",
|
|
51
|
+
"@typescript-eslint/eslint-plugin": "^6.0.0",
|
|
52
|
+
"@typescript-eslint/parser": "^6.0.0",
|
|
53
|
+
"@vitest/coverage-v8": "^1.0.0",
|
|
54
|
+
"eslint": "^8.50.0",
|
|
55
|
+
"prettier": "^3.0.0",
|
|
56
|
+
"tsx": "^4.7.0",
|
|
57
|
+
"typescript": "^5.3.0",
|
|
58
|
+
"vitest": "^1.0.0"
|
|
59
|
+
}
|
|
60
|
+
}
|