构建期源代码生成工具。compile(Api) 反射一个权威 HttpApi 共享契约;emitPromise/emitEffect/emitEffectImported 独立产出客户;write(output,dir) 经 prettier 格式化后落盘。Effect 客户经 effect/unstable/httpapi 解码域值;Promise 客户零 Effect 直接 fetch。
从 HttpApi+Effect Schema 契约生成领域化客户端 TS 源码:类型化输入、解包 {data:A}、void/stream 映射、统一 ClientError、operations 元数据。
| 节点 | 机制 | 证据 |
|---|---|---|
| client | workspace-dep | client depends on httpapi-codegen |
无下游依赖
把 HTTP 客户端生成从 OpenCode Core 解耦成私有独立包,测试即规范;契约作为唯一共享源,Promise 与 Effect 双投影解耦;manifest 防重复生成破坏。
官方底座,未被本机装配层直接引用
定义 HttpApi 契约→compile 得 Contract→选 emitPromise 或 emitEffect→write 到目录。产物头部注明 Generated by @opencode-ai/httpapi-codegen. Do not edit.
@opencode-ai/client 在服务器契约一改时重新生成 src/generated;app/session-ui/sdk-next 消费该 client 做远端与内嵌调用。