sdk-next

oc-sdk-next · package · G3-客户端 · Layer 0

① 作用

Effect 原生的进程内 OpenCode host SDK(过渡包,替代生成式 @opencode-ai/sdk)。src/opencode.ts 的 create() 用 AppNodeBuilder 构建 ApplicationTools/PermissionSaved 上下文,把 server 的 createEmbeddedRoutes 编译成 Web handler 并注入内存 fetch,客户端由此在进程内执行全部路由而无需监听端口/网络 I/O。src/index.ts 聚合 OpenCode 与 Tool 模块并再导出 client 的 Effect 类型。

② 提供能力

· 进程内 OpenCode host:OpenCode.create()(src/opencode.ts:10)
· 内存路由执行:Server router → Web handler → fetch(src/opencode.ts:20-38)
· 本地工具注册 tools.register(走 ApplicationTools 服务,src/opencode.ts:41)
· DI Layer:OpenCode.layer/Service(src/opencode.ts:47,49)
· Tool 门面:Failure/RegistrationError/make 再导出(src/tool.ts:1)
· Effect client 类型再导出(ClientError/Session/Model 等,src/index.ts:4)

③ 依赖(上游)

节点机制证据
clientworkspace-dep@opencode-ai/sdk-next/package.json dependencies.@opencode-ai/client
coreworkspace-dep@opencode-ai/sdk-next/package.json dependencies.@opencode-ai/core
serverworkspace-dep@opencode-ai/sdk-next/package.json dependencies.@opencode-ai/server

④ 被依赖(下游)

无下游依赖

⑤ 为什么存在(why)

设计意图(官方)

README 明示:作为 sdk 的过渡替代,让嵌入式应用无需网络即可获得完整 host 能力,保留 sdk 的注册/工具语义并转为 Effect-native。

改造关联

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

⑥ 怎么用(how)

怎么用

典型场景与协作

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