@chinaunicom-yuanjing/wanma-cli 1.0.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.
Files changed (3) hide show
  1. package/README.md +306 -0
  2. package/dist/cli.js +8864 -0
  3. package/package.json +108 -0
package/README.md ADDED
@@ -0,0 +1,306 @@
1
+ # Wanma-CLI 源码还原
2
+
3
+ > 从 `@anthropic-ai/wanma-cli` npm 包的 source map 中还原的完整 TypeScript 源码,**可本地运行**
4
+
5
+ <p align="center">
6
+ <img src="preview.png?raw=true" alt="Wanma-CLI CLI" width="700">
7
+ </p>
8
+
9
+ > [!WARNING]
10
+ > 本仓库为**非官方**版本,基于公开 npm 发布包 source map 还原,**仅供研究学习**。源码版权归 [Anthropic](https://www.anthropic.com) 所有。
11
+
12
+ ---
13
+
14
+ ## 快速开始
15
+
16
+ ```bash
17
+ bun install # 安装依赖(需要 Bun ≥ 1.3.5、Node.js ≥ 24)
18
+ bun run dev # 启动 CLI
19
+ bun run version # 验证版本
20
+ ```
21
+
22
+ ---
23
+
24
+ ## 从源码中发现的 7 大隐藏功能
25
+
26
+ 通过阅读还原后的 1,987 个 TypeScript 源文件,我们发现了大量未公开的隐藏功能。这些功能通过**编译开关**(`feature()`)和**用户类型**(`USER_TYPE`)进行门控,外部发布版中大部分被裁剪。
27
+
28
+ ---
29
+
30
+ ### 1. BUDDY — AI 电子宠物
31
+
32
+ > 源码位置:`src/buddy/`
33
+
34
+ 终端里的拓麻歌子!一个完整的虚拟宠物系统。
35
+
36
+ - **18 种物种**:鸭子、鹅、猫、龙、章鱼、猫头鹰、企鹅、乌龟、蜗牛、幽灵、六角恐龙、水豚、仙人掌、机器人、兔子、蘑菇、果冻、胖猫
37
+ - **5 级稀有度**:普通(60%) → 非凡(25%) → 稀有(10%) → 史诗(4%) → 传说(1%)
38
+ - **1% 闪光概率**:独立于稀有度,任何宠物都有 1% 概率成为闪光个体
39
+ - **确定性生成**:使用账号 UUID + 固定盐值 `'friend-2026-401'` 经 FNV-1a 哈希 → Mulberry32 PRNG,每人只会得到一只固定的宠物,改配置也没用
40
+ - **外观系统**:6 种眼睛样式 + 8 种帽子(皇冠、巫师帽、光环等),common 稀有度没有帽子
41
+ - **交互**:`/buddy pet` 抚摸(爱心动画)、`/buddy hatch` 孵化、`/buddy card` 查看卡片
42
+ - **动画**:500ms 帧率的 ASCII 精灵动画,气泡对话,窄终端自动退化为表情文字脸(如 `=·ω·=`)
43
+ - **编译开关**:`feature('BUDDY')`
44
+
45
+ ---
46
+
47
+ ### 2. KAIROS — 永不关机的 Claude
48
+
49
+ > 源码位置:`src/assistant/`、`src/proactive/`、`src/services/autoDream/`
50
+
51
+ 关掉终端 Claude 还在运行的持久助手模式。
52
+
53
+ - **跨会话持久运行**:通过 `.wanma-cli/settings.json` 的 `assistant: true` 激活,会话状态持久化到磁盘
54
+ - **每日日志**:自动在 `<autoMemPath>/logs/YYYY/MM/YYYY-MM-DD.md` 记录工作日志
55
+ - **自动做梦(Dream)**:距上次整合超 24 小时且有 5+ 新会话时,后台自动启动记忆整合子代理,分四阶段运行:Orient → Gather → Consolidate → Prune
56
+ - **锁机制**:`.consolidate-lock` 文件 + PID 存活检查,防止多进程同时做梦
57
+ - **主动模式(Proactive)**:没人说话时自己找活干,没活就调用 `SleepTool` 等着。接收周期性 `<tick>` 提示来检查是否有事可做
58
+ - **后台任务**:命令超 15 秒自动丢后台,支持持久 cron 任务(`permanent: true` 不受 7 天过期限制)
59
+ - **编译开关**:`feature('KAIROS')`、`feature('KAIROS_BRIEF')`、`feature('KAIROS_CHANNELS')`
60
+ - **远程开关**:GrowthBook `tengu_kairos`、`tengu_onyx_plover`(Dream 阈值配置)
61
+
62
+ ---
63
+
64
+ ### 3. ULTRAPLAN — 云端深度规划
65
+
66
+ > 源码位置:`src/commands/ultraplan.tsx`、`src/utils/ultraplan/`
67
+
68
+ 把难题甩给云端 Opus 独立研究最长 30 分钟。
69
+
70
+ - **流程**:`/ultraplan <prompt>` → 创建远程 CCR 会话 → Opus 模型独立研究 → 后台轮询等待(30 分钟超时)→ 浏览器查看/修改方案 → 批准执行或传送回本地
71
+ - **关键词触发**:消息中包含 "ultraplan" 自动触发,智能排除引号/路径/标识符中的误触发
72
+ - **传送(Teleport)**:`src/utils/teleport.tsx` 实现本地 ↔ 远程会话传输,支持 Git Bundle 打包代码上下文
73
+ - **完全内部限定**:`isEnabled: () => "external" === 'ant'`,外部版永远不可用
74
+ - **编译开关**:`feature('ULTRAPLAN')`
75
+ - **远程开关**:`tengu_ultraplan_model`(控制使用的模型)
76
+
77
+ ---
78
+
79
+ ### 4. Coordinator — 多 Agent 编排模式
80
+
81
+ > 源码位置:`src/coordinator/`
82
+
83
+ 主 Claude 变成纯指挥官,Worker 并行执行任务。
84
+
85
+ - **角色分离**:Coordinator 只有三个工具——派活(Agent)、通信(SendMessage)、停工(Shutdown)
86
+ - **Worker 机制**:Worker 在独立子进程中运行,各自拥有完整工具集
87
+ - **核心铁律**:系统提示中明确规定"禁止甩锅式委派"——不能把不清楚的需求直接丢给 Worker
88
+ - **任务追踪**:基于文件的共享任务列表(`~/.wanma-cli/tasks/`),Coordinator 和 Worker 共同读写
89
+ - **编译开关**:`feature('COORDINATOR_MODE')`
90
+ - **环境变量**:`CLAUDE_CODE_COORDINATOR_MODE`
91
+
92
+ ---
93
+
94
+ ### 5. 26+ 隐藏命令 & 秘密开关
95
+
96
+ > 源码位置:`src/commands.ts`、`src/commands/`
97
+
98
+ #### Feature-gated 命令(编译开关控制)
99
+
100
+ | 命令 | 功能 | 开关 |
101
+ |------|------|------|
102
+ | `/buddy` | 宠物系统 | `BUDDY` |
103
+ | `/proactive` | 主动自主模式 | `PROACTIVE` / `KAIROS` |
104
+ | `/assistant` | 助手模式 | `KAIROS` |
105
+ | `/brief` | 简报模式 | `KAIROS` / `KAIROS_BRIEF` |
106
+ | `/bridge` | 远程控制桥接 | `BRIDGE_MODE` |
107
+ | `/voice` | 语音模式 | `VOICE_MODE` |
108
+ | `/ultraplan` | 云端深度规划 | `ULTRAPLAN` |
109
+ | `/fork` | 子代理分叉 | `FORK_SUBAGENT` |
110
+ | `/peers` | 对等通信 | `UDS_INBOX` |
111
+ | `/workflows` | 工作流脚本 | `WORKFLOW_SCRIPTS` |
112
+ | `/torch` | Torch 功能 | `TORCH` |
113
+ | `/force-snip` | 强制历史截断 | `HISTORY_SNIP` |
114
+
115
+ #### 仅内部用户(`USER_TYPE === 'ant'`)命令
116
+
117
+ | 命令 | 功能 |
118
+ |------|------|
119
+ | `/teleport` | 传送会话到远程/本地 |
120
+ | `/bughunter` | 内部 Bug 猎人 |
121
+ | `/mock-limits` | 模拟速率限制 |
122
+ | `/ctx_viz` | 上下文可视化 |
123
+ | `/break-cache` | 强制缓存清除 |
124
+ | `/ant-trace` | 内部追踪工具 |
125
+ | `/good-claude` | 内部反馈 |
126
+ | `/agents-platform` | 智能体平台 |
127
+ | `/autofix-pr` | 自动修复 PR |
128
+ | `/debug-tool-call` | 调试工具调用 |
129
+ | `/reset-limits` | 重置速率限制 |
130
+
131
+ #### 隐藏 CLI 参数
132
+
133
+ ```
134
+ --teleport [session] 恢复传送会话
135
+ --remote [description] 创建远程会话
136
+ --proactive 主动模式
137
+ --assistant 助手模式
138
+ --brief 简报模式
139
+ --remote-control 远程控制
140
+ --hard-fail 硬失败模式
141
+ --agent-teams 多代理团队
142
+ ```
143
+
144
+ ---
145
+
146
+ ### 6. Bridge — 远程遥控终端
147
+
148
+ > 源码位置:`src/bridge/`(31 个文件)
149
+
150
+ 从 claude.ai 或手机直接操控本地 CLI。
151
+
152
+ - **WebSocket 实时连接**:本地 CLI 通过 WebSocket 与 claude.ai 建立双向通道
153
+ - **完整远程控制**:远程端可以发送消息、批准权限、查看输出
154
+ - **进程间通信**:跨 Claude 会话的消息传递机制
155
+ - **状态同步**:`bridgeStatusUtil.ts` 实时同步运行状态
156
+ - **权限回调**:`bridgePermissionCallbacks.ts` 远程权限审批
157
+ - **编译开关**:`feature('BRIDGE_MODE')`、`feature('DAEMON')`
158
+
159
+ ---
160
+
161
+ ### 7. 50 个编译开关 + 远程门控
162
+
163
+ 外部发布版是**阉割版**。Anthropic 通过三层门控控制功能:
164
+
165
+ #### 第一层:编译时开关(`feature()`,约 50 个)
166
+
167
+ 构建时决定代码包含/排除,以下是完整列表:
168
+
169
+ <details>
170
+ <summary>点击展开全部 50 个编译开关</summary>
171
+
172
+ | 开关 | 说明 |
173
+ |------|------|
174
+ | `BUDDY` | 宠物伴侣系统 |
175
+ | `KAIROS` | 持久助手模式 |
176
+ | `KAIROS_BRIEF` | 简报模式 |
177
+ | `KAIROS_CHANNELS` | 通道通知 |
178
+ | `KAIROS_GITHUB_WEBHOOKS` | GitHub Webhook |
179
+ | `ULTRAPLAN` | 云端深度规划 |
180
+ | `COORDINATOR_MODE` | 多 Agent 编排 |
181
+ | `BRIDGE_MODE` | 远程控制桥接 |
182
+ | `VOICE_MODE` | 语音交互 |
183
+ | `PROACTIVE` | 主动自主模式 |
184
+ | `FORK_SUBAGENT` | 子代理分叉 |
185
+ | `DAEMON` | 守护进程模式 |
186
+ | `UDS_INBOX` | Unix Socket 收件箱 |
187
+ | `WORKFLOW_SCRIPTS` | 工作流脚本 |
188
+ | `TORCH` | Torch 功能 |
189
+ | `MONITOR_TOOL` | 监控工具 |
190
+ | `HISTORY_SNIP` | 历史截断 |
191
+ | `ANTI_DISTILLATION_CC` | 反蒸馏保护 |
192
+ | `BASH_CLASSIFIER` | Bash 命令分类器 |
193
+ | `BG_SESSIONS` | 后台会话 |
194
+ | `CACHED_MICROCOMPACT` | 缓存微压缩 |
195
+ | `CCR_REMOTE_SETUP` | Web 远程设置 |
196
+ | `CHICAGO_MCP` | MCP 扩展(Computer Use) |
197
+ | `COMMIT_ATTRIBUTION` | 提交归属标注 |
198
+ | `CONNECTOR_TEXT` | 连接器文本 |
199
+ | `CONTEXT_COLLAPSE` | 上下文折叠 |
200
+ | `COWORKER_TYPE_TELEMETRY` | 协作者遥测 |
201
+ | `DOWNLOAD_USER_SETTINGS` | 下载用户设置 |
202
+ | `EXPERIMENTAL_SKILL_SEARCH` | 实验性技能搜索 |
203
+ | `EXTRACT_MEMORIES` | 自动提取记忆 |
204
+ | `FILE_PERSISTENCE` | 文件持久化 |
205
+ | `HARD_FAIL` | 硬失败模式 |
206
+ | `LODESTONE` | Lodestone 功能 |
207
+ | `MCP_SKILLS` | MCP 技能系统 |
208
+ | `MEMORY_SHAPE_TELEMETRY` | 记忆形状遥测 |
209
+ | `MESSAGE_ACTIONS` | 消息操作 |
210
+ | `NATIVE_CLIENT_ATTESTATION` | 客户端证明 |
211
+ | `PROMPT_CACHE_BREAK_DETECTION` | 缓存中断检测 |
212
+ | `QUICK_SEARCH` | 快速搜索 |
213
+ | `REACTIVE_COMPACT` | 响应式压缩 |
214
+ | `SLOW_OPERATION_LOGGING` | 慢操作日志 |
215
+ | `STREAMLINED_OUTPUT` | 精简输出 |
216
+ | `TEAMMEM` | 团队记忆同步 |
217
+ | `TEMPLATES` | 模板/分类器 |
218
+ | `TERMINAL_PANEL` | 终端面板 |
219
+ | `TOKEN_BUDGET` | Token 预算 |
220
+ | `TRANSCRIPT_CLASSIFIER` | 转录分类器 |
221
+ | `UNATTENDED_RETRY` | 无人值守重试 |
222
+ | `UPLOAD_USER_SETTINGS` | 上传用户设置 |
223
+ | `BREAK_CACHE_COMMAND` | 缓存清除注入 |
224
+
225
+ </details>
226
+
227
+ #### 第二层:用户类型(`USER_TYPE`)
228
+
229
+ - **`ant`**(Anthropic 内部)— 解锁全部功能、20 分钟 GrowthBook 刷新、调试工具、200+ 处专属检查
230
+ - **`external`**(外部用户)— 裁剪版,6 小时 GrowthBook 刷新
231
+
232
+ #### 第三层:GrowthBook 远程 A/B 测试
233
+
234
+ | 开关 | 控制内容 |
235
+ |------|---------|
236
+ | `tengu_kairos` | KAIROS 助手模式开关 |
237
+ | `tengu_onyx_plover` | 自动做梦阈值(间隔/会话数) |
238
+ | `tengu_cobalt_frost` | 语音识别(Nova 3)开关 |
239
+ | `tengu_ultraplan_model` | Ultraplan 使用的模型 |
240
+ | `tengu_ant_model_override` | 内部用户模型覆盖 |
241
+ | `tengu_session_memory` | 会话记忆功能 |
242
+ | `tengu_max_version_config` | 自动更新 Kill Switch |
243
+ | `tengu_frond_boric` | 数据接收器 Kill Switch |
244
+ | `tengu_herring_clock` | 团队记忆路径 |
245
+ | `tengu_sm_config` | 会话记忆配置 |
246
+
247
+ ---
248
+
249
+ ## 隐藏环境变量速查
250
+
251
+ <details>
252
+ <summary>点击展开完整环境变量列表</summary>
253
+
254
+ | 环境变量 | 说明 |
255
+ |----------|------|
256
+ | `ANTHROPIC_MODEL` | 模型覆盖 |
257
+ | `CLAUDE_CODE_MAX_OUTPUT_TOKENS` | 最大输出 token |
258
+ | `CLAUDE_CODE_DISABLE_THINKING` | 禁用思考 |
259
+ | `CLAUDE_CODE_PROACTIVE` | 主动模式 |
260
+ | `CLAUDE_CODE_COORDINATOR_MODE` | 协调器模式 |
261
+ | `CLAUDE_CODE_BRIEF` | 简报模式 |
262
+ | `CLAUDE_CODE_USE_BEDROCK` | 使用 AWS Bedrock |
263
+ | `CLAUDE_CODE_USE_VERTEX` | 使用 Google Vertex |
264
+ | `CLAUDE_CODE_DISABLE_AUTO_MEMORY` | 禁用自动记忆 |
265
+ | `CLAUDE_CODE_EXTRA_BODY` | API 附加 JSON |
266
+ | `CLAUDE_CODE_SYNTAX_HIGHLIGHT` | 语法高亮主题 |
267
+ | `CLAUDE_CODE_IDLE_THRESHOLD_MINUTES` | 空闲阈值(默认 75 分钟) |
268
+ | `CLAUDE_INTERNAL_FC_OVERRIDES` | GrowthBook 覆盖(仅 ant) |
269
+
270
+ </details>
271
+
272
+ ---
273
+
274
+ ## 项目结构
275
+
276
+ ```
277
+ src/ # 核心源码(1,987 个 TS/TSX)
278
+ ├── tools/ # 53 个工具(Bash/FileEdit/Agent/MCP...)
279
+ ├── commands/ # 87 个斜杠命令
280
+ ├── services/ # API / MCP / analytics / autoDream
281
+ ├── components/ # 148 个终端 UI 组件(React + Ink)
282
+ ├── hooks/ # 87 个自定义 Hooks
283
+ ├── buddy/ # 宠物伴侣系统
284
+ ├── assistant/ # KAIROS 助手模式
285
+ ├── coordinator/ # 多 Agent 协调器
286
+ ├── bridge/ # 远程控制桥接(31 文件)
287
+ ├── proactive/ # 主动模式
288
+ ├── vim/ # Vim 模式引擎
289
+ ├── voice/ # 语音交互
290
+ └── ...
291
+ shims/ # 原生模块兼容替代
292
+ vendor/ # 原生绑定源码
293
+ ```
294
+
295
+ ---
296
+
297
+ ## 数据来源
298
+
299
+ - npm 包:[@anthropic-ai/wanma-cli](https://www.npmjs.com/package/@anthropic-ai/wanma-cli)
300
+ - 还原方式:提取 `cli.js.map` 中的 `sourcesContent`
301
+
302
+ ## 声明
303
+
304
+ - 源码版权归 [Anthropic](https://www.anthropic.com) 所有
305
+ - 仅用于技术研究与学习,请勿用于商业用途
306
+ - 如有侵权,请联系删除