1 · Provider Adapter seam:把 Pi runtime 装配收成一处
"provider" 是根裸 string。装配 Pi 子进程要读 piProvider + 拼 piRpcArgs + 注 piChildEnv + 存 credentials + 报 /api/models + 校 visibility.KNOWN_MODELS——六处硬编码 anthropic 假设。加 MiniMax 需要同时改六处,且没有一处告诉你"下一个是啥"。上周回滚坐实。
把"什么是一个 provider"提成 ProviderAdapter interface,anthropic 是第一个 adapter;MiniMax 加一个文件就够。config.piProvider 变 provider registry 的 key,其它模块从 providers.get(key) 拿字段——不再各自 if (cfg.piProvider === 'anthropic')。
- locality:provider 差异集中在一个 adapter 文件
- leverage:加 provider = 加一个 adapter,不动 6 处 caller
- 两个 adapter 出现 = 真 seam(LANGUAGE 原则)
- 可测:mock adapter 单测 client-pool 全流程
删掉这个 adapter 层?六处硬编码复现。这就是 "complexity reappears across N callers" 的教科书信号。seam 该有。