Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
restored-src/.claude-sandbox/
restored-src/tmp-debug*.log
restored-src/ui-debug.log
44 changes: 44 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,50 @@

本仓库通过 npm 发布包(`@anthropic-ai/claude-code`)内附带的 source map(`cli.js.map`)还原的 TypeScript 源码,版本为 `2.1.88`。

## 运行

当前仓库里真正可直接运行的是 npm 发布包内的打包产物 `package/cli.js`,不是 `restored-src`。

```bash
npm run version:claude
npm start -- --help
```

重新提取源码可直接执行:

```bash
npm run extract
```

`restored-src` 目前仍是还原后的研究素材,不包含完整官方构建配置,不能视为已恢复成可直接编译运行的源码工程。

如果后续目标是把 `restored-src` 也修到可运行,需要继续补官方构建期宏、路径别名以及还原结果里缺失的依赖文件;当前这一步只把仓库修到“可以直接运行打包版 CLI,并能重新提取源码”。

当前仓库也额外提供了 `restored-src` 的最小启动壳,方便继续排查源码工程的运行阻塞:

```bash
cd restored-src
bun run bootstrap:manifests
```

如果在 Windows 上从 `restored-src` 或其子目录直接执行 `bun`,Bun 1.3.7 目前会额外打印一条与仓库根目录相关的伪 `EPERM`:

```text
error: Cannot read file "F:\Projects\claude-code-sourcemap\": EPERM
```

这条噪音不来自 `restored-src` 源码本身;从仓库根目录启动同一入口则不会出现。为了走干净链路,仓库根还提供了无噪音包装脚本:

```bash
bun run restored:help
bun run restored:version
bun run restored:cli -- --bare -p "ping"
bun run version:claude
bun run help
```

它会先为还原出来但缺少 `package.json` 的依赖包生成最小入口清单,再用 Bun 启动入口;这仍然不代表 `restored-src` 已完全恢复为官方可构建工程。

## 来源

- npm 包:[@anthropic-ai/claude-code](https://www.npmjs.com/package/@anthropic-ai/claude-code)
Expand Down
1 change: 0 additions & 1 deletion extract-sources.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
const { SourceMapConsumer } = require('source-map');
const fs = require('fs');
const path = require('path');

Expand Down
18 changes: 18 additions & 0 deletions package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
{
"name": "claude-code-sourcemap",
"private": true,
"version": "0.1.0",
"description": "Research workspace for the reconstructed Claude Code 2.1.88 package and extracted sources.",
"scripts": {
"extract": "node extract-sources.js",
"claude": "node package/cli.js",
"start": "node package/cli.js",
"version:claude": "node package/cli.js -v",
"restored:cli": "bun --preload ./restored-src/macro-shim.cjs ./restored-src/src/entrypoints/cli.tsx",
"restored:help": "bun --preload ./restored-src/macro-shim.cjs ./restored-src/src/entrypoints/cli.tsx --help",
"restored:version": "bun --preload ./restored-src/macro-shim.cjs ./restored-src/src/entrypoints/cli.tsx -v"
},
"engines": {
"node": ">=18.0.0"
}
}
39 changes: 39 additions & 0 deletions restored-src/macro-shim.cjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
const fs = require("fs");
const path = require("path");

function readPackagedVersion() {
try {
const pkgPath = path.join(__dirname, "..", "package", "package.json");
const pkg = JSON.parse(fs.readFileSync(pkgPath, "utf8"));
return {
version: pkg.version || "0.0.0",
packageName: pkg.name || "@anthropic-ai/claude-code",
};
} catch {
return {
version: "0.0.0",
packageName: "@anthropic-ai/claude-code",
};
}
}

const packaged = readPackagedVersion();

globalThis.MACRO = new Proxy(
{
VERSION: packaged.version,
PACKAGE_URL: packaged.packageName,
NATIVE_PACKAGE_URL: packaged.packageName,
FEEDBACK_CHANNEL: "the Claude Code issue tracker",
ISSUES_EXPLAINER: "file an issue in the Claude Code issue tracker",
BUILD_TIME: "",
},
{
get(target, prop) {
if (prop in target) {
return target[prop];
}
return "";
},
},
);

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 6 additions & 0 deletions restored-src/node_modules/@ant/computer-use-mcp/package.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 6 additions & 0 deletions restored-src/node_modules/@anthropic-ai/mcpb/package.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 6 additions & 0 deletions restored-src/node_modules/@anthropic-ai/sdk/package.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 6 additions & 0 deletions restored-src/node_modules/@aws-crypto/crc32/package.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 6 additions & 0 deletions restored-src/node_modules/@aws-crypto/sha256-js/package.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 6 additions & 0 deletions restored-src/node_modules/@aws-crypto/util/package.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 6 additions & 0 deletions restored-src/node_modules/@aws-sdk/client-sso/package.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 6 additions & 0 deletions restored-src/node_modules/@aws-sdk/client-sts/package.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 6 additions & 0 deletions restored-src/node_modules/@aws-sdk/core/package.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading