🚨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 文件33%
📁文件数量1,900 个 .ts 文件
文件数量1,900 个 .ts 文件
📝代码行数512,000+ 行33%
📝代码行数512,000+ 行
代码行数512,000+ 行
⭐社区反应1,100+ Stars,1,900+ Forks33%
⭐社区反应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— 带详细解析
- •sanbuphy/claude-code-source-code— v2.1.88 原始提取
- •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 |
💡核心设计理念:"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 | 拒绝所有危险操作(名字很讽刺) |
三级风险分类:LOW/MEDIUM/HIGH
受保护文件(不可自动编辑):.gitconfig、.bashrc、.zshrc、.mcp.json、.claude.json等
🔐Bash 命令安全验证逻辑超过2,500 行
Bash 命令安全验证逻辑超过2,500 行
五、多智能体编排系统("Swarm"架构)
通过CLAUDE_CODE_COORDINATOR_MODE=1激活。
架构设计
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_flintfeature flag 门控
六、三层内存架构(解决"上下文熵增")
这是对抗 AI 长会话混乱化的核心工程方案:

Layer 1MEMORY.md(永远加载)轻量索引,每条约 150 字符上限。只存"指针",不存实际数据。33%
Layer 1
MEMORY.md(永远加载)
轻量索引,每条约 150 字符上限。只存"指针",不存实际数据。
Layer 2Topic Files(按需拉取)实际知识存储在独立主题文件中,需要时才读入上下文。33%
Layer 2
Topic Files(按需拉取)
实际知识存储在独立主题文件中,需要时才读入上下文。
Layer 3原始记录(永不完整回读)只 grep 特定标识符,永不将完整历史加载进上下文。33%
Layer 3
原始记录(永不完整回读)
只 grep 特定标识符,永不将完整历史加载进上下文。
✅Strict Write Discipline(严格写入纪律):Agent 只有在文件成功写入后才能更新索引,防止失败操作污染上下文。Memory 作为"提示"原则:Agent 被指示将自身记忆视为"线索",行动前必须通过实际代码库验证事实。
Strict Write Discipline(严格写入纪律):Agent 只有在文件成功写入后才能更新索引,防止失败操作污染上下文。
Memory 作为"提示"原则:Agent 被指示将自身记忆视为"线索",行动前必须通过实际代码库验证事实。
七、autoDream — 后台记忆整合系统
路径:services/autoDream/
三门触发机制(三个条件同时满足)
1.用户空闲时间超过阈值
2.新增记忆碎片超过数量阈值
3.上次整合距今时间足够长
整合行为
- •合并分散的观察记录
- •消除逻辑矛盾
- •将模糊洞察转化为确定事实
- •通过 forked subagent 执行,防止污染主 Agent 上下文
八、系统提示架构
系统提示不是单一字符串,而是运行时动态组装:
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 模式:不等待用户输入,主动观察、记录、行动。维护追加式每日日志文件。目前被编译时完全排除于外部构建之外。
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 包维护者的教训
# 发布前必做
npm pack --dry-run # 检查哪些文件会被打包
# .npmignore 中必须添加
*.map
*.js.map