Skip to content

Commit 4a9e918

Browse files
docs: 更新文档
1 parent 2cc626c commit 4a9e918

2 files changed

Lines changed: 93 additions & 26 deletions

File tree

CLAUDE.md

Lines changed: 58 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,9 @@ bun install
1515
# Dev mode (runs cli.tsx with MACRO defines injected via -d flags)
1616
bun run dev
1717

18+
# Dev mode with debugger (set BUN_INSPECT=9229 to pick port)
19+
bun run dev:inspect
20+
1821
# Pipe mode
1922
echo "say hello" | bun run src/entrypoints/cli.tsx -p
2023

@@ -30,6 +33,15 @@ bun test --coverage # with coverage report
3033
bun run lint # check only
3134
bun run lint:fix # auto-fix
3235
bun run format # format all src/
36+
37+
# Health check
38+
bun run health
39+
40+
# Check unused exports
41+
bun run check:unused
42+
43+
# Docs dev server (Mintlify)
44+
bun run docs:dev
3345
```
3446

3547
详细的测试规范、覆盖状态和改进计划见 `docs/testing-spec.md`
@@ -39,20 +51,27 @@ bun run format # format all src/
3951
### Runtime & Build
4052

4153
- **Runtime**: Bun (not Node.js). All imports, builds, and execution use Bun APIs.
42-
- **Build**: `build.ts` 执行 `Bun.build()` with `splitting: true`,入口 `src/entrypoints/cli.tsx`,输出 `dist/cli.js` + ~450 chunk files。构建后自动替换 `import.meta.require` 为 Node.js 兼容版本(产物 bun/node 都可运行)。
43-
- **Dev mode**: `scripts/dev.ts` 通过 Bun `-d` flag 注入 `MACRO.*` defines,运行 `src/entrypoints/cli.tsx``scripts/defines.ts` 集中管理 define map
54+
- **Build**: `build.ts` 执行 `Bun.build()` with `splitting: true`,入口 `src/entrypoints/cli.tsx`,输出 `dist/cli.js` + chunk files。默认启用 `AGENT_TRIGGERS_REMOTE` feature。构建后自动替换 `import.meta.require` 为 Node.js 兼容版本(产物 bun/node 都可运行)。
55+
- **Dev mode**: `scripts/dev.ts` 通过 Bun `-d` flag 注入 `MACRO.*` defines,运行 `src/entrypoints/cli.tsx`默认启用 `BUDDY``TRANSCRIPT_CLASSIFIER``BRIDGE_MODE``AGENT_TRIGGERS_REMOTE` 四个 feature
4456
- **Module system**: ESM (`"type": "module"`), TSX with `react-jsx` transform.
4557
- **Monorepo**: Bun workspaces — internal packages live in `packages/` resolved via `workspace:*`.
4658
- **Lint/Format**: Biome (`biome.json`)。`bun run lint` / `bun run lint:fix` / `bun run format`
59+
- **Defines**: 集中管理在 `scripts/defines.ts`。当前版本 `2.1.888`
4760

4861
### Entry & Bootstrap
4962

50-
1. **`src/entrypoints/cli.tsx`** — True entrypoint. Sets up runtime globals:
51-
- `globalThis.MACRO` — build-time macro values (VERSION, BUILD_TIME, etc.),通过 `scripts/dev.ts``-d` flags 注入。
52-
- `BUILD_TARGET`, `BUILD_ENV`, `INTERFACE_TYPE` globals。
53-
- `feature()``bun:bundle` 内置模块提供,不需要在此 polyfill。
54-
2. **`src/main.tsx`** — Commander.js CLI definition. Parses args, initializes services (auth, analytics, policy), then launches the REPL or runs in pipe mode.
55-
3. **`src/entrypoints/init.ts`** — One-time initialization (telemetry, config, trust dialog).
63+
1. **`src/entrypoints/cli.tsx`** — True entrypoint。`main()` 函数按优先级处理多条快速路径:
64+
- `--version` / `-v` — 零模块加载
65+
- `--dump-system-prompt` — feature-gated (DUMP_SYSTEM_PROMPT)
66+
- `--claude-in-chrome-mcp` / `--chrome-native-host`
67+
- `--daemon-worker=<kind>` — feature-gated (DAEMON)
68+
- `remote-control` / `rc` / `bridge` — feature-gated (BRIDGE_MODE)
69+
- `daemon` — feature-gated (DAEMON)
70+
- `ps` / `logs` / `attach` / `kill` / `--bg` — feature-gated (BG_SESSIONS)
71+
- `--tmux` + `--worktree` 组合
72+
- 默认路径:加载 `main.tsx` 启动完整 CLI
73+
2. **`src/main.tsx`** (~4680 行) — Commander.js CLI definition。注册大量 subcommands:`mcp` (serve/add/remove/list...)、`server``ssh``open``auth``plugin``agents``auto-mode``doctor``update` 等。主 `.action()` 处理器负责权限、MCP、会话恢复、REPL/Headless 模式分发。
74+
3. **`src/entrypoints/init.ts`** — One-time initialization (telemetry, config, trust dialog)。
5675

5776
### Core Loop
5877

@@ -70,25 +89,37 @@ bun run format # format all src/
7089

7190
- **`src/Tool.ts`** — Tool interface definition (`Tool` type) and utilities (`findToolByName`, `toolMatchesName`).
7291
- **`src/tools.ts`** — Tool registry. Assembles the tool list; some tools are conditionally loaded via `feature()` flags or `process.env.USER_TYPE`.
73-
- **`src/tools/<ToolName>/`**Each tool in its own directory (e.g., `BashTool`, `FileEditTool`, `GrepTool`, `AgentTool`).
74-
- Tools define: `name`, `description`, `inputSchema` (JSON Schema), `call()` (execution), and optionally a React component for rendering results.
92+
- **`src/tools/<ToolName>/`**61 个 tool 目录(如 BashTool, FileEditTool, GrepTool, AgentTool, WebFetchTool, LSPTool, MCPTool 等)。每个 tool 包含 `name``description``inputSchema``call()` 及可选的 React 渲染组件。
93+
- **`src/tools/shared/`** — Tool 共享工具函数。
7594

7695
### UI Layer (Ink)
7796

7897
- **`src/ink.ts`** — Ink render wrapper with ThemeProvider injection.
7998
- **`src/ink/`** — Custom Ink framework (forked/internal): custom reconciler, hooks (`useInput`, `useTerminalSize`, `useSearchHighlight`), virtual list rendering.
80-
- **`src/components/`** — React components rendered in terminal via Ink. Key ones:
81-
- `App.tsx` — Root provider (AppState, Stats, FpsMetrics).
82-
- `Messages.tsx` / `MessageRow.tsx` — Conversation message rendering.
83-
- `PromptInput/` — User input handling.
84-
- `permissions/` — Tool permission approval UI.
99+
- **`src/components/`** — 大量 React 组件(170+ 项),渲染于终端 Ink 环境中。关键组件:
100+
- `App.tsx` — Root provider (AppState, Stats, FpsMetrics)
101+
- `Messages.tsx` / `MessageRow.tsx` — Conversation message rendering
102+
- `PromptInput/` — User input handling
103+
- `permissions/` — Tool permission approval UI
104+
- `design-system/` — 复用 UI 组件(Dialog, FuzzyPicker, ProgressBar, ThemeProvider 等)
85105
- Components use React Compiler runtime (`react/compiler-runtime`) — decompiled output has `_c()` memoization calls throughout.
86106

87107
### State Management
88108

89109
- **`src/state/AppState.tsx`** — Central app state type and context provider. Contains messages, tools, permissions, MCP connections, etc.
90-
- **`src/state/store.ts`** — Zustand-style store for AppState.
91-
- **`src/bootstrap/state.ts`** — Module-level singletons for session-global state (session ID, CWD, project root, token counts).
110+
- **`src/state/AppStateStore.ts`** — Default state and store factory.
111+
- **`src/state/store.ts`** — Zustand-style store for AppState (`createStore`).
112+
- **`src/state/selectors.ts`** — State selectors.
113+
- **`src/bootstrap/state.ts`** — Module-level singletons for session-global state (session ID, CWD, project root, token counts, model overrides, client type, permission mode).
114+
115+
### Bridge / Remote Control
116+
117+
- **`src/bridge/`** (~35 files) — Remote Control / Bridge 模式。feature-gated by `BRIDGE_MODE`。包含 bridge API、会话管理、JWT 认证、消息传输、权限回调等。Entry: `bridgeMain.ts`
118+
- CLI 快速路径: `claude remote-control` / `claude rc` / `claude bridge`
119+
120+
### Daemon Mode
121+
122+
- **`src/daemon/`** — Daemon 模式(长驻 supervisor)。feature-gated by `DAEMON`。包含 `main.ts`(entry)和 `workerRegistry.ts`(worker 管理)。
92123

93124
### Context & System Prompt
94125

@@ -97,17 +128,16 @@ bun run format # format all src/
97128

98129
### Feature Flag System
99130

100-
Feature flags control which functionality is enabled at runtime. The system works as follows:
131+
Feature flags control which functionality is enabled at runtime:
101132

102133
- **在代码中使用**: 统一通过 `import { feature } from 'bun:bundle'` 导入,调用 `feature('FLAG_NAME')` 返回 `boolean`**不要**`cli.tsx` 或其他文件里自己定义 `feature` 函数或覆盖这个 import。
103134
- **启用方式**: 通过环境变量 `FEATURE_<FLAG_NAME>=1`。例如 `FEATURE_BUDDY=1 bun run dev` 启用 BUDDY 功能。
104-
- **Dev 模式**: `scripts/dev.ts` 自动扫描所有 `FEATURE_*` 环境变量,转换为 Bun 的 `--feature` 参数传递给运行时。
105-
- **Build 模式**: `build.ts` 同样读取 `FEATURE_*` 环境变量,传入 `Bun.build({ features })` 数组。
106-
- **默认行为**: 不设置任何 `FEATURE_*` 环境变量时,所有 `feature()` 调用返回 `false`,即所有 feature-gated 代码不执行。
107-
- **常见 flag 名称**: `BUDDY``FORK_SUBAGENT``PROACTIVE``KAIROS``VOICE_MODE``DAEMON` 等(见 `src/commands.ts` 中的使用)。
135+
- **Dev 默认 features**: `BUDDY``TRANSCRIPT_CLASSIFIER``BRIDGE_MODE``AGENT_TRIGGERS_REMOTE`(见 `scripts/dev.ts`)。
136+
- **Build 默认 features**: `AGENT_TRIGGERS_REMOTE`(见 `build.ts`)。
137+
- **常见 flag**: `BUDDY`, `DAEMON`, `BRIDGE_MODE`, `BG_SESSIONS`, `PROACTIVE`, `KAIROS`, `VOICE_MODE`, `FORK_SUBAGENT`, `SSH_REMOTE`, `DIRECT_CONNECT`, `TEMPLATES`, `CHICAGO_MCP`, `BYOC_ENVIRONMENT_RUNNER`, `SELF_HOSTED_RUNNER`, `COORDINATOR_MODE`, `UDS_INBOX`, `LODESTONE`, `ABLATION_BASELINE` 等。
108138
- **类型声明**: `src/types/internal-modules.d.ts` 中声明了 `bun:bundle` 模块的 `feature` 函数签名。
109139

110-
**新增功能的正确做法**: 如果要让某个 feature-gated 模块(如 buddy)永久启用,应保留代码中 `import { feature } from 'bun:bundle'` + `feature('FLAG_NAME')` 的标准模式,在运行时通过环境变量或配置控制,而不是绕过 feature flag 直接 import。
140+
**新增功能的正确做法**: 保留 `import { feature } from 'bun:bundle'` + `feature('FLAG_NAME')` 的标准模式,在运行时通过环境变量或配置控制,不要绕过 feature flag 直接 import。
111141

112142
### Stubbed/Deleted Modules
113143

@@ -131,17 +161,19 @@ Feature flags control which functionality is enabled at runtime. The system work
131161

132162
- **框架**: `bun:test`(内置断言 + mock)
133163
- **单元测试**: 就近放置于 `src/**/__tests__/`,文件名 `<module>.test.ts`
134-
- **集成测试**: `tests/integration/`,共享 mock/fixture 在 `tests/mocks/`
164+
- **集成测试**: `tests/integration/` — 4 个文件(cli-arguments, context-build, message-pipeline, tool-chain)
165+
- **共享 mock/fixture**: `tests/mocks/`(api-responses, file-system, fixtures/)
135166
- **命名**: `describe("functionName")` + `test("behavior description")`,英文
136167
- **Mock 模式**: 对重依赖模块使用 `mock.module()` + `await import()` 解锁(必须内联在测试文件中,不能从共享 helper 导入)
137-
- **当前状态**: 1286 tests / 67 files / 0 fail(详见 `docs/testing-spec.md` 的覆盖状态表和评分
168+
- **当前状态**: ~1623 tests / 114 files (110 unit + 4 integration) / 0 fail(详见 `docs/testing-spec.md`
138169

139170
## Working with This Codebase
140171

141172
- **Don't try to fix all tsc errors** — they're from decompilation and don't affect runtime.
142-
- **Feature flags** — 默认全部关闭(`feature()` 返回 `false`)。启用方式见上方 Feature Flag System 章节。不要在 `cli.tsx` 中重定义 `feature` 函数。
173+
- **Feature flags** — 默认全部关闭(`feature()` 返回 `false`)。Dev/build 各有自己的默认启用列表。不要在 `cli.tsx` 中重定义 `feature` 函数。
143174
- **React Compiler output** — Components have decompiled memoization boilerplate (`const $ = _c(N)`). This is normal.
144175
- **`bun:bundle` import**`import { feature } from 'bun:bundle'` 是 Bun 内置模块,由运行时/构建器解析。不要用自定义函数替代它。
145176
- **`src/` path alias** — tsconfig maps `src/*` to `./src/*`. Imports like `import { ... } from 'src/utils/...'` are valid.
146177
- **MACRO defines** — 集中管理在 `scripts/defines.ts`。Dev mode 通过 `bun -d` 注入,build 通过 `Bun.build({ define })` 注入。修改版本号等常量只改这个文件。
147178
- **构建产物兼容 Node.js**`build.ts` 会自动后处理 `import.meta.require`,产物可直接用 `node dist/cli.js` 运行。
179+
- **Biome 配置** — 大量 lint 规则被关闭(decompiled 代码不适合严格 lint)。`.tsx` 文件用 120 行宽 + 强制分号;其他文件 80 行宽 + 按需分号。

docs/projects-collection.md

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
# 社区项目 & Blog 合集
2+
3+
> 每日更新,欢迎自荐!
4+
5+
## 工具 & 应用
6+
7+
| 项目 | 描述 | 作者 |
8+
|------|------|------|
9+
| [4qtask.vercel.app](https://4qtask.vercel.app/) | 免费四象限时间管理工具 | @kevinhuky |
10+
| [kaying.studio](https://kaying.studio/) | 个人 AI 工具箱 | @kayingai |
11+
| [supsub.ai](https://supsub.ai/) | 高效阅读工具 | @hidumou |
12+
| [x-video-download.net](https://x-video-download.net/) | 视频下载工具 | @syakadou |
13+
| [1openapi.com](https://1openapi.com/) | API 中转站 | @thinker007 |
14+
| [claw-z.com](https://claw-z.com/) | 一键部署 OpenClaw AI Agent(场景驱动、全面管理) | @uhhc |
15+
| [gemini-watermark-remover.net](https://gemini-watermark-remover.net/) | Gemini 水印移除工具 | @syakadou |
16+
17+
## GitHub 开源项目
18+
19+
| 项目 | 描述 | 作者 |
20+
|------|------|------|
21+
| [VersperClaw](https://github.com/versperai/VersperClaw) | 全自动科研流 | @versperai |
22+
| [claude-reviews-claude](https://github.com/openedclaude/claude-reviews-claude) | 原汤化原食——Claude 如何看待眼中的老己 | @openedclaude |
23+
| [agentica](https://github.com/shibing624/agentica) | 自研 Agent 框架,借鉴 claude-code 多 Agent 处理 | @shibing624 |
24+
| [macman](https://github.com/tonngw/macman) | Mac 从 0 到 1 保姆级配置教程 | @tonngw |
25+
| [SuperSpec](https://github.com/asasugar/SuperSpec) | SDD / Spec-Driven Development | @asasugar |
26+
| [adnify](https://github.com/adnaan-worker/adnify) | 高颜值高定制化 AI 编辑器 | @adnaan-worker |
27+
| [another-rule-engine](https://github.com/eatmoreduck/another-rule-engine) | 基于 Groovy 的开源多功能决策引擎 | @eatmoreduck |
28+
| [creative_master](https://github.com/chatabc/creative_master) | AI 驱动的创意灵感管理工具 | @chatabc |
29+
| [RapidDoc](https://github.com/RapidAI/RapidDoc) | Office 文件解析工具转 Markdown(支持 PDF/Image/Word/PPT/Excel) | @hzkitt |
30+
31+
## Blog
32+
33+
| 链接 | 作者 |
34+
|------|------|
35+
| [blog.xiaohuangyu.space](https://blog.xiaohuangyu.space/) | @eatmoreduck |

0 commit comments

Comments
 (0)