client

oc-client · package · G3-客户端 · Layer 3

① 作用

面向 Web/桌面的客户端库。src/contract.ts:1-17 复用 protocol 的 makeDefaultApi 定义 ClientApi 与 Location/SessionLocation 中间件,并声明 groupNames/endpointNames 映射(src/contract.ts:19-51);src/index.ts:1-2 从 generated/ 导出类型化客户端;src/generated/ 与 src/generated-effect/ 由 script/build.ts 依据 contract 生成(普通 + Effect 两版),src/effect.ts:3-25 转出 schema 数据类型并保证不 import core/server(文件头注释 src/effect.ts:1-2)。

② 提供能力

· 客户端 Api 契约(基于 protocol 默认 Api,packages/client/src/contract.ts:14-17)
· 生成的普通客户端(packages/client/src/generated/client.ts)
· 生成的 Effect 客户端(packages/client/src/generated-effect/client.ts)
· 类型 re-export 与错误类型(packages/client/src/effect.ts:4-25、generated/client-error.ts)
· group/endpoint 名称映射(packages/client/src/contract.ts:19-51)

③ 依赖(上游)

节点机制证据
schemaworkspace-dep@opencode-ai/client/package.json dependencies.@opencode-ai/schema
protocolworkspace-dep@opencode-ai/client/package.json dependencies.@opencode-ai/protocol

④ 被依赖(下游)

节点机制证据
appworkspace-dep@opencode-ai/app/package.json dependencies.@opencode-ai/client
sdk-nextworkspace-dep@opencode-ai/sdk-next/package.json dependencies.@opencode-ai/client
session-uiworkspace-dep@opencode-ai/session-ui/package.json dependencies.@opencode-ai/client
httpapi-codegenworkspace-depclient depends on httpapi-codegen

⑤ 为什么存在(why)

设计意图(官方)

面向 app/web 前端生成类型安全的 HTTP 客户端,并通过协议层复用服务端同款端点契约;强调不得反向依赖 core/server(src/effect.ts:1-2),保持客户端纯净。

改造关联

官方底座,未被本机装配层直接引用

⑥ 怎么用(how)

怎么用

典型场景与协作

模块内部结构 DAG(6 模块 · 2 边) 内部结构基线 v1.18.29,v1.18.35 包级结构未变(36 包集合逐一致)