ukgorclawbot-stack/claude-code-2.1.88-source-restored
GitHub: ukgorclawbot-stack/claude-code-2.1.88-source-restored
从 npm 包的 source map 中还原 Anthropic Claude Code CLI 2.1.88 的完整源码树,供安全审计和学习研究使用。
Stars: 8 | Forks: 13
# Claude Code 2.1.88 源码还原
已还原 `@anthropic-ai/claude-code@2.1.88` 的源码树,根据已发布的 `cli.js.map` `sourcesContent` 重建。
## 版权与使用须知
- Anthropic 一方源代码的版权及其他适用权利归 Anthropic, PBC 所有。
- 本仓库是非官方的还原参考副本,仅提供用于学习、研究和归档目的。
- 本仓库未隶属于、未受认可于,也非由 Anthropic 维护。
- 请勿将本仓库或其内容用于商业目的。
- 还原输出中包含的第三方代码仍受其各自作者的权利和许可约束。
## 本仓库包含的内容
- `raw/package/cli.js`:来自已发布 npm 包的打包 CLI
- `raw/package/cli.js.map`:随已发布 npm 包提供的 source map
- `raw/package/package.json`:来自已发布 npm 包的包元数据
- `restored/`:从 `cli.js.map` 重建的文件
- `restore-manifest.json`:从 source map 条目到还原输出路径的映射
## 还原方法
最小化还原流程:
```
npm pack @anthropic-ai/claude-code@2.1.88
tar xzf anthropic-ai-claude-code-2.1.88.tgz
node -e "
const fs = require('fs');
const path = require('path');
const map = JSON.parse(fs.readFileSync('package/cli.js.map', 'utf8'));
const outDir = './restored';
for (let i = 0; i < map.sources.length; i++) {
const content = map.sourcesContent?.[i];
if (typeof content !== 'string') continue;
let rel = map.sources[i];
while (rel.startsWith('../')) rel = rel.slice(3);
while (rel.startsWith('./')) rel = rel.slice(2);
const outPath = path.join(outDir, rel);
fs.mkdirSync(path.dirname(outPath), { recursive: true });
fs.writeFileSync(outPath, content, 'utf8');
}
"
```
## 验证
- `cli.js` 与已发布的 `@anthropic-ai/claude-code@2.1.88` npm 包相匹配
- `cli.js.map` 与已发布的 `@anthropic-ai/claude-code@2.1.88` npm 包相匹配
- source map 包含 `4756` 个源条目
- 所有 `4756` 个条目均存在 `sourcesContent`
- 还原输出写入 `4756` 个文件
## 仓库布局
```
.
├── raw/
│ └── package/
│ ├── cli.js
│ ├── cli.js.map
│ └── package.json
├── restored/
│ ├── src/
│ ├── vendor/
│ └── node_modules/
└── restore-manifest.json
```
有用的还原入口点:
- `restored/src/entrypoints/cli.tsx`
- `restored/src/main.tsx`
- `restored/src/commands.ts`
- `restored/src/tools.ts`
## 与 `Stephaneguisard/claude--` 的比较
本仓库已与以下项目进行比较:
- [`Stephaneguisard/claude--`](https://github.com/Stephaneguisard/claude--)
结果:
- `claude-code-extracted/package/cli.js` 与 `raw/package/cli.js` 完全一致
- `claude-code-extracted/package/cli.js.map` 与 `raw/package/cli.js.map` 完全一致
- `restored/src` 和 `claude-code-source/src` 中所有 `1902` 个共享文件通过哈希值完全匹配
- 被比较的仓库包含 `28` 个额外的脚手架或补充文件,这些文件未在此纯 source map 重建中出现
简而言之:核心还原的源内容相匹配,但本仓库保留了更直接的“已发布包 + 还原输出”布局。
## 已知限制
- 本仓库反映了已发布 source map 中嵌入的内容
- 它可能不包含每一个原始构建时文件、生成的文件或仅限仓库的产物
- 部分文件较大,特别是 `raw/package/cli.js.map`
- 还原树包含 `sourcesContent` 中存在的第三方代码,而不仅仅是一方源文件
标签:Anthropic, CIS基准, Claude Code, CMS安全, DLL 劫持, JavaScript, MITM代理, npm包分析, Source Map, SourceTree, 云资产清单, 代码重构, 前端技术, 大语言模型, 开源项目分析, 数据可视化, 暗色界面, 源代码映射, 源码还原, 网络信息收集, 自动化攻击, 逆向工程