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)
| 节点 | 机制 | 证据 |
|---|---|---|
| client | workspace-dep | @opencode-ai/sdk-next/package.json dependencies.@opencode-ai/client |
| core | workspace-dep | @opencode-ai/sdk-next/package.json dependencies.@opencode-ai/core |
| server | workspace-dep | @opencode-ai/sdk-next/package.json dependencies.@opencode-ai/server |
无下游依赖
README 明示:作为 sdk 的过渡替代,让嵌入式应用无需网络即可获得完整 host 能力,保留 sdk 的注册/工具语义并转为 Effect-native。
官方底座,未被本机装配层直接引用