飞书CLI实测案例:Claude Code 源码泄漏深度分析
飞书CLI实测案例:Claude Code 源码泄漏深度分析
飞书CLI实测案例:Claude Code 源码泄漏深度分析 飞书CLI实测案例:Claude Code 源码泄漏深度分析 Modified April 27 三级风险分类: LOW / MEDIUM / HIGH 受保护文件(不可自动编辑):.gitconfig、.bashrc、.zshrc、.mcp.json、.claude.json 等 🔐 Bash 命令安全验证逻辑超过 2,500 行 五、多智能体编排系统("Swarm"架构) 通过 CLAUDE CODE COORDINATOR MODE=1 激活。 架构设计 Code block Plain Text Copy Coordinator(主协调者) ├── Worker Agent 1(并行执行) ├── Worker Agent 2(并行执行) └── Worker Agent N(并行执行) ↓ 危险操作请求 Permission Queue/Mailbox(权限请求队列) ↓ 主协调者审批 Atomic Claim(createResolveOnce 防止重复处理) 关键机制 • Team Memory:跨 Agent 共享内存空间 • AsyncLocalStorage:进程内 Agent 的上下文隔离 • tmux/iTerm2 panes:进程级 Agent 的可视化 • 颜色分配:多 Agent 视觉区分 • 功能由 tengu amber flint feature flag 门控 六、三层内存架构(解决"上下文熵增") 这是对抗 AI 长会话混乱化的核心工程方案: Layer 1 MEMORY.md(永远加载) 轻量索引,每条约 150 字符上限。只存"指针",不存实际数据。 Layer 2 Topic Files(按需拉取) 实际知识存储在独立主题文件中,需要时才读入上下文。 Layer 3 原始记录(永不完整回读) 只 grep 特定标识符,永不将完整历史加载进上下文。 ✅ Strict Write Discipline(严格写入纪律): Agent 只有在文件成功写入后才能更新索引,防止失败操作污染上下文。 Memory 作为"提示"原则: Agent 被指示将自身记忆视为"线索",行动前必须通过实际代码库验证事实。 七、autoDream — 后台记忆整合系统 路径:services/autoDream/ 三门触发机制(三个条件同时满足) 1. 用户空闲时间超过阈值 2. 新增记忆碎片超过数量阈值 3. 上次整合距今时间足够长 整合行为 • 合并分散的观察记录 • 消除逻辑矛盾 • 将模糊洞察转化为确定事实 • 通过 forked subagent 执行,防止污染主 Agent 上下文 八、系统提示架构 系统提示不是单一字符串,而是运行时动态组装: Code block Plain Text Copy SYSTEM PROMPT DYNAMIC BOUNDARY ↑ 静态部分(可跨组织缓存,降低 API 成本) ↓ 动态部分(用户/会话特定内容) 九、未发布功能(44个 Feature Flags) Flag 功能 KAIROS 永久运行的主动式 AI 助手守护进程 PROACTIVE 主动观察用户行为并采取行动 VOICE MODE 语音交互模式 BRIDGE MODE 跨会话桥接 afk mode AFK 离开模式 context 1m 100万 Token 上下文窗口 interleaved thinking 交错思维模式 web search 联网搜索 fast mode(代号 🐧 Penguin) 快速模式 task budgets 任务预算控制 advisor tool 顾问工具 🤖 KAIROS 模式:不等待用户输入,主动观察、记录、行动。维护追加式每日日志文件。目前被编译时完全排除于外部构建之外。 十、内部员工特权系统 识别标识:USER TYPE === 'ant' 专属能力: • Staging API 访问 • 内部 beta headers • Undercover Mode 自动激活 • /security review 命令 • ConfigTool / TungstenTool • Debug prompt 转储至 /.config/claude/dump prompts/ Undercover Mode(utils/undercover.ts) 🎁 "你正在开源仓库中以卧底身份操作。commit 信息、PR 标题、PR 正文不得包含任何 Anthropic 内部信息。不要暴露你的身份。" 禁止出现: • 内部模型代号(Capybara、Tengu 等动物名) • 未发布版本号(如 opus 4 7、sonnet 4 8) • 内部项目名称、Slack 频道、内部短链接 十一、彩蛋:虚拟宠物系统 "Buddy" 完整的虚拟宠物系统: • 18种物种,有稀有度等级和闪光变体 • 物种由 Mulberry32 PRNG 基于用户ID哈希确定——同一用户永远得到同一宠物 • 1% 闪光概率,独立于稀有度判定 • ASCII 精灵(5行高 × 12字符宽,含多帧动画) • 计划:2026年4月1 7日预告,2026年5月正式上线 十二、核心工程经验总结 给 AI Agent 开发者的 5 条经验 1. "On Distribution" 技术选型 — 选择 AI 模型擅长的技术,让 AI 高质量参与自身开发 2. 分层内存设计 — 用索引+按需加载防止上下文熵增,而非把一切塞进会话 3. 插件化工具架构 — 每个能力独立封装 + 多维度权限门控,比单体架构更安全可扩展 4. 多 Agent 需要权限邮箱 — Worker Agent 危险操作必须上报 Coordinator 审批,而非自主决策 5. 系统提示模块化 — 静态/动态分离设计可大幅节省缓存成本 给 npm 包维护者的教训 Code block Bash Copy 发布前必做 npm pack dry run 检查哪些文件会被打包 .npmignore 中必须添加 .map .js.map 参考来源 • DEV.to — Claude Code Source Code Was Just Leaked • DEV.to — 512,000 Lines Exposed • VentureBeat — What's Inside • The AI Corner — Full Analysis • Kuberwastaken/claude code GitHub DEV.to — Claude Code Source Code Was Just Leaked DEV.to — 512,000 Lines Exposed VentureBeat — What's Inside The AI Corner — Full Analysis Kuberwastaken/claude code GitHub 三级风险分类: LOW / MEDIUM / HIGH 受保护文件(不可自动编辑):.gitconfig、.bashrc、.zshrc、.mcp.json、.claude.json 等 🔐 Bash 命令安全验证逻辑超过 2,500 行 Bash 命令安全验证逻辑超过 2,500 行 五、多智能体编排系统("Swarm"架构) 通过 CLAUDE CODE COORDINATOR MODE=1 激活。 架构设计 关键机制 • Team Memory:跨 Agent 共享内存空间 • AsyncLocalStorage:进程内 Agent 的上下文隔离 • tmux/iTerm2 panes:进程级 Agent 的可视化 • 颜色分配:多 Agent 视觉区分 • 功能由 tengu amber flint feature flag 门控 六、三层内存架构(解决"上下文熵增") 这是对抗 AI 长会话混乱化的核心工程方案: Layer 1 MEMORY.md(永远加载) 轻量索引,每条约 150 字符上限。只存"指针",不存实际数据。 Layer 2 Topic Files(按需拉取) 实际知识存储在独立主题文件中,需要时才读入上下文。 Layer 3 原始记录(永不完整回读) 只 grep 特定标识符,永不将完整历史加载进上下文。 Layer 1 MEMORY.md(永远加载) 轻量索引,每条约 150 字符上限。只存"指针",不存实际数据。 Layer 1 MEMORY.md(永远加载) 轻量索引,每条约 150 字符上限。只存"指针",不存实际数据。 Layer 2 Topic Files(按需拉取) 实际知识存储在独立主题文件中,需要时才读入上下文。 Layer 2 Topic Files(按需拉取) 实际知识存储在独立主题文件中,需要时才读入上下文。 Layer 3 原始记录(永不完整回读) 只 grep 特定标识符,永不将完整历史加载进上下文。 Layer 3 原始记录(永不完整回读) 只 grep 特定标识符,永不将完整历史加载进上下文。 ✅ Strict Write Discipline(严格写入纪律): Agent 只有在文件成功写入后才能更新索引,防止失败操作污染上下文。 Memory 作为"提示"原则: Agent 被指示将自身记忆视为"线索",行动前必须通过实际代码库验证事实。 Strict Write Discipline(严格写入纪律): Agent 只有在文件成功写入后才能更新索引,防止失败操作污染上下文。 Memory 作为"提示"原则: Agent 被指示将自身记忆视为"线索",行动前必须通过实际代码库验证事实。 七、autoDream — 后台记忆整合系统 路径:services/autoDream/ 三门触发机制(三个条件同时满足) 1. 用户空闲时间超过阈值 2. 新增记忆碎片超过数量阈值 3. 上次整合距今时间足够长 整合行为 • 合并分散的观察记录 • 消除逻辑矛盾 • 将模糊洞察转化为确定事实 • 通过 forked subagent 执行,防止污染主 Agent 上下文 八、系统提示架构 系统提示不是单一字符串,而是运行时动态组装: 九、未发布功能(44个 Feature Flags) Flag 功能 KAIROS 永久运行的主动式 AI 助手守护进程 PROACTIVE 主动观察用户行为并采取行动 VOICE MODE 语音交互模式 BRIDGE MODE 跨会话桥接 afk mode AFK 离开模式 context 1m 100万 Token 上下文窗口 interleaved thinking 交错思维模式 web search 联网搜索 fast mode(代号 🐧 Penguin) 快速模式 task budgets 任务预算控制 advisor tool 顾问工具 Flag Flag 功能 功能 KAIROS KAIROS 永久运行的主动式 AI 助手守护进程 永久运行的主动式 AI 助手守护进程 PROACTIVE PROACTIVE 主动观察用户行为并采取行动 主动观察用户行为并采取行动 VOICE MODE VOICE MODE 语音交互模式 语音交互模式 BRIDGE MODE BRIDGE MODE 跨会话桥接 跨会话桥接 afk mode afk mode AFK 离开模式 AFK 离开模式 context 1m context 1m 100万 Token 上下文窗口 100万 Token 上下文窗口 interleaved thinking interleaved thinking 交错思维模式 交错思维模式 web search web search 联网搜索 联网搜索 fast mode(代号 🐧 Penguin) fast mode(代号 🐧 Penguin) 快速模式 快速模式 task budgets task budgets 任务预算控制 任务预算控制 advisor tool advisor tool 顾问工具 顾问工具 🤖 KAIROS 模式:不等待用户输入,主动观察、记录、行动。维护追加式每日日志文件。目前被编译时完全排除于外部构建之外。 KAIROS 模式:不等待用户输入,主动观察、记录、行动。维护追加式每日日志文件。目前被编译时完全排除于外部构建之外。 十、内部员工特权系统 识别标识:USER TYPE === 'ant' 专属能力: • Staging API 访问 • 内部 beta headers • Undercover Mode 自动激活 • /security review 命令 • ConfigTool / TungstenTool • Debug prompt 转储至 /.config/claude/dump prompts/ Undercover Mode(utils/undercover.ts) 🎁 "你正在开源仓库中以卧底身份操作。commit 信息、PR 标题、PR 正文不得包含任何 Anthropic 内部信息。不要暴露你的身份。" "你正在开源仓库中以卧底身份操作。commit 信息、PR 标题、PR 正文不得包含任何 Anthropic 内部信息。不要暴露你的身份。" 禁止出现: • 内部模型代号(Capybara、Tengu 等动物名) • 未发布版本号(如 opus 4 7、sonnet 4 8) • 内部项目名称、Slack 频道、内部短链接 十一、彩蛋:虚拟宠物系统 "Buddy" 完整的虚拟宠物系统: • 18种物种,有稀有度等级和闪光变体 • 物种由 Mulberry32 PRNG 基于用户ID哈希确定——同一用户永远得到同一宠物 • 1% 闪光概率,独立于稀有度判定 • ASCII 精灵(5行高 × 12字符宽,含多帧动画) • 计划:2026年4月1 7日预告,2026年5月正式上线 十二、核心工程经验总结 给 AI Agent 开发者的 5 条经验 1. "On Distribution" 技术选型 — 选择 AI 模型擅长的技术,让 AI 高质量参与自身开发 2. 分层内存设计 — 用索引+按需加载防止上下文熵增,而非把一切塞进会话 3. 插件化工具架构 — 每个能力独立封装 + 多维度权限门控,比单体架构更安全可扩展 4. 多 Agent 需要权限邮箱 — Worker Agent 危险操作必须上报 Coordinator 审批,而非自主决策 5. 系统提示模块化 — 静态/动态分离设计可大幅节省缓存成本 给 npm 包维护者的教训 参考来源 • DEV.to — Claude Code Source Code Was Just Leaked DEV.to — Claude Code Source Code Was Just Leaked • DEV.to — 512,000 Lines Exposed DEV.to — 512,000 Lines Exposed • VentureBeat — What's Inside VentureBeat — What's Inside • The AI Corner — Full Analysis The AI Corner — Full Analysis • Kuberwastaken/claude code GitHub Kuberwastaken/claude code GitHub 🚨 2026 03 31 重大事件:Anthropic 在发布 npm 包 @anthropic ai/claude code@2.1.88 时,意外将完整 TypeScript 源码通过 .map 文件对外暴露。泄漏规模:1,900 个文件,512,000+ 行 TypeScript 源码 2026 03 31 重大事件:Anthropic 在发布 npm 包 @anthropic ai/claude code@2.1.88 时,意外将完整 TypeScript 源码通过 .map 文件对外暴露。泄漏规模:1,900 个文件,512,000+ 行 TypeScript 源码 📁 文件数量1,900 个 .ts 文件 📝 代码行数512,000+ 行 ⭐ 社区反应1,100+ Stars,1,900+ Forks 📁 文件数量1,900 个 .ts 文件 📁 文件数量1,900 个 .ts 文件 文件数量1,900 个 .ts 文件 📝 代码行数512,000+ 行 📝 代码行数512,000+ 行 代码行数512,000+ 行 ⭐ 社区反应1,100+ Stars,1,900+ Forks ⭐ 社区反应1,100+ Stars,1,900+ Forks 社区反应1,100+ Stars,1,900+ Forks 一、泄漏事件概述 2026年3月31日,安全研究员 Chaofan Shou (@shoucccc) 发现 Anthropic 在发布 npm 包时,意外将完整 TypeScript 源码通过 .map 文件对外暴露。 已被多个 GitHub 仓库镜像: • Kuberwastaken/claude code — 带详细解析 Kuberwastaken/claude code • sanbuphy/claude code source code — v2.1.88 原始提取 sanbuphy/claude code source code • instructkr/clawd code — 带工具链增强版 instructkr/clawd code 根本原因 Bun 构建器默认开启 source map 生成,Anthropic 忘记在构建配置或 .npmignore 中排除 .map 文件。 😅 最讽刺之处:源码中存在一个叫 "Undercover Mode" 的系统,专门防止内部信息泄漏到 git commit——结果整个源码通过 .map 文件全泄了,据报道这个文件正是由 Claude 自己生成的。 最讽刺之处:源码中存在一个叫 "Undercover Mode" 的系统,专门防止内部信息泄漏到 git commit——结果整个源码通过 .map 文件全泄了,据报道这个文件正是由 Claude 自己生成的。 二、技术架构全景 整体技术栈 组件 技术选型 原因 运行时 Bun 性能 + TypeScript 原生支持 终端UI React + Ink "on distribution"——Claude 本身擅长写 React 语言 严格模式 TypeScript 类型安全 + 模型熟悉 布局引擎 Yoga (Flexbox) Ink 的底层,用 CSS 思维写 CLI 组件 组件 技术选型 技术选型 原因 原因 运行时 运行时 Bun Bun 性能 + TypeScript 原生支持 性能 + TypeScript 原生支持 终端UI 终端UI React + Ink React + Ink "on distribution"——Claude 本身擅长写 React "on distribution"——Claude 本身擅长写 React 语言 语言 严格模式 TypeScript 严格模式 TypeScript 类型安全 + 模型熟悉 类型安全 + 模型熟悉 布局引擎 布局引擎 Yoga (Flexbox) Yoga (Flexbox) Ink 的底层,用 CSS 思维写 CLI Ink 的底层,用 CSS 思维写 CLI 💡 核心设计理念:"on distribution" 技术选型选择 Claude 模型本身已经非常擅长的技术,让 AI 参与开发事半功倍。据称代码库的 90% 由 Claude 自己编写。 核心设计理念:"on distribution" 技术选型选择 Claude 模型本身已经非常擅长的技术,让 AI 参与开发事半功倍。据称代码库的 90% 由 Claude 自己编写。 三、工具系统设计 插件化权限门控架构 每个能力被封装为独立 Tool,统一通过 getAllBaseTools() 注册,经过多重过滤: 功能 Gate → 用户类型 Gate → 环境变量 Gate → 权限拒绝规则 核心工具(约40个): • BashTool — Shell 命令执行 • FileReadTool / FileEditTool — 文件操作 • AgentTool — 子智能体生成 • LSP 集成工具、Web Fetch 工具等 85个 slash 命令覆盖:Git 工作流、代码审查、内存管理、多智能体编排 📊 仅 base tool definition 就有 29,000 行 TypeScript,说明每个工具都有极详细的描述、参数验证、错误处理。 仅 base tool definition 就有 29,000 行 TypeScript,说明每个工具都有极详细的描述、参数验证、错误处理。 四、权限系统深度解析 四种权限模式 模式 行为 default 交互式提示用户 auto ML 分类器自动审批(YOLO Classifier) bypass 跳过所有检查(内部员工专用) yolo 拒绝所有危险操作(名字很讽刺)