mirror of
https://github.com/claude-code-best/claude-code.git
synced 2026-06-20 07:15:51 +00:00
通过 4 阶段 workflow(分析 → 计划 → 重构 → 验证)将 3 个超大的 ACP 源文件拆分为 28 个模块化子文件,每个均严格小于 500 行,且完整保留 所有公共 API(barrel 模式重导出)。 变更概要: - packages/acp-link/src/server.ts: 1800 → 20 行(barrel),新增 11 个子模块 (server/types、payload-decode、permission-mode、runtime-state、dispatch、 handlers-agent、handlers-session、acp-client、client-send、start-server、 testing-internals) - src/services/acp/agent.ts: 1297 → 33 行(barrel),新增 9 个子模块 (agent/AcpAgent、sessionTypes、permissionMode、configOptions、promptQueue、 internalAccessors、createSessionMethod、sessionLifecycle、promptFlow) - src/services/acp/bridge.ts: 1516 → 29 行(barrel),新增 8 个子模块 (bridge/types、paths、contentBlocks、toolInfo、toolResults、modelUsage、 notifications、forwarding) 验证: - bun run precheck 全通过(typecheck + lint + 5851 tests) - ACP service tests: 176 pass / 0 fail - ACP link tests: 47 pass / 0 fail - 所有外部消费者(entry.ts、permissions.ts、__tests__/)的 import 路径不变 - 测试文件零修改 迁移计划详见 docs/acp-refactor-plan.md。 Co-Authored-By: glm-5.2 <zai-org@claude-code-best.win>
34 lines
1.5 KiB
TypeScript
34 lines
1.5 KiB
TypeScript
/**
|
|
* ACP Agent module — public entrypoint (barrel) re-exporting from the
|
|
* `./agent/` sub-modules.
|
|
*
|
|
* The AcpAgent class is split across multiple sub-files for line-budget
|
|
* reasons:
|
|
* - `./agent/AcpAgent.js` — class shell + lightweight protocol handlers
|
|
* (initialize / authenticate / newSession / resumeSession / loadSession /
|
|
* listSessions / forkSession / closeSession / cancel / setSessionMode /
|
|
* setSessionModel) + small private helpers.
|
|
* - `./agent/createSessionMethod.js` — createSession (prototype-attached).
|
|
* - `./agent/sessionLifecycle.js` — getOrCreateSession / teardownSession /
|
|
* replaySessionHistory / applySessionMode / updateConfigOption
|
|
* (prototype-attached).
|
|
* - `./agent/promptFlow.js` — prompt / setSessionConfigOption
|
|
* (prototype-attached).
|
|
* - `./agent/sessionTypes.js` / `./agent/permissionMode.js` /
|
|
* `./agent/configOptions.js` / `./agent/promptQueue.js` /
|
|
* `./agent/internalAccessors.js` — pure helpers and types.
|
|
*
|
|
* The side-effect imports below populate AcpAgent.prototype with the heavy
|
|
* session-lifecycle and prompt-flow methods. They MUST run before any
|
|
* AcpAgent instance is constructed. Importing this barrel is the single
|
|
* entry point that guarantees that ordering.
|
|
*
|
|
* Tests import AcpAgent via '../agent.js'; external consumers (entry.ts)
|
|
* import via './agent.js'. Both resolve to this file.
|
|
*/
|
|
import './agent/createSessionMethod.js'
|
|
import './agent/sessionLifecycle.js'
|
|
import './agent/promptFlow.js'
|
|
|
|
export { AcpAgent } from './agent/AcpAgent.js'
|