Skip to content

[P2] edge-server:internal/adapters 按厂商/协议分包(80 文件平铺) #1760

Description

@DeliciousBuding

背景

edge-server/internal/adapters/ 顶层平铺 80+ 文件、9K LOC:claude / codex / anthropic / openai / opencode / acp / sdk_common / surfacing / scanner / hooks / registry 全在一个目录。找代码靠记忆,新增 adapter 无自然落点。

方案

按厂商与职责分子包(保持 adapters.Registry 对外契约不变):

  • adapters/claude/(claude_code.go、claude_acp.go)
  • adapters/codex/adapters/anthropic/(anthropic_sdk*.go)、adapters/openai/(openai_sdk*.go)、adapters/opencode/
  • adapters/acp/(acp.go、acp_client.go、acp_events.go、opencode_acp.go)
  • adapters/internal/(surfacing、scanner、parser_ndjson、event_emitter、hooks 等共享实现)
  • registry.go / adapter.go 留在 adapters 根,负责注册与接口

依赖 / 阻塞

  • 无外部阻塞。纯包内重组,不改 wire 协议。
  • 注意 control_protocol.gomodel_config.gomcp_config.go 被多厂商共享,应归 internal/ 而非单一厂商包,避免反向依赖。

风险

  • 中:同包私有符号跨文件可见,分包后需显式导出或下沉 internal/。
  • 缓解:每次只搬一个厂商族,搬完即 go build ./... && go test ./internal/adapters/...

验收

  • adapters 根目录文件数显著下降(目标 ≤15),其余归入子包
  • go build ./... + go vet ./... 全绿
  • go test ./internal/adapters/... -short 全绿
  • Registry 对外注册行为不变(现有 adapter 测试不改动仍通过)

Metadata

Metadata

Assignees

No one assigned

    Labels

    P2Medium prioritycleanup-baselineAgentHub cleanup baseline programgoPull requests that update go codelane-ALane A

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions