​🚨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+ Forks​​33%​

​⭐社区反应1,100+ Stars,1,900+ Forks​​

社区反应1,100+ Stars,1,900+ Forks​

一、泄漏事件概述​

2026年3月31日,安全研究员 Chaofan Shou (@shoucccc) 发现 Anthropic 在发布 npm 包时,意外将完整 TypeScript 源码通过.map文件对外暴露。​

已被多个 GitHub 仓库镜像:​

根本原因​

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 1​MEMORY.md(永远加载)​轻量索引,每条约 150 字符上限。只存"指针",不存实际数据。​33%​

Layer 1​

MEMORY.md(永远加载)​

轻量索引,每条约 150 字符上限。只存"指针",不存实际数据。​

​Layer 2​Topic 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

参考来源​