通信协议层。src/api.ts:26-86 用 effect/unstable/httpapi 定义 OpenCode HttpApi 结构:注册 Health/Location/Agent/Session/Message/Model/Provider/Integration/Credential/Permission/FS/Command/Skill/Event/Pty/Question/Reference/ProjectCopy 共 18 个 Group(src/api.ts:38-55),并挂 Authorization/SchemaError 中间件(src/api.ts:63-64)。src/errors.ts:3-40 定义带 httpApiStatus 的 TaggedError(400/401/409/503 等)。src/groups/* 按资源定义端点与契约,middleware/authorization.ts:4-6 定义 Authorization 服务。
· OpenCode HttpApi 协议定义(packages/protocol/src/api.ts:37-55)
· 18 个资源端点组(packages/protocol/src/groups/*)
· 统一错误契约(httpApiStatus 标注,packages/protocol/src/errors.ts:3-40)
· Authorization/SchemaError 中间件契约(packages/protocol/src/middleware/)
· OpenAPI 注解(packages/protocol/src/api.ts:56-62)
| 节点 | 机制 | 证据 |
|---|---|---|
| schema | workspace-dep | @opencode-ai/protocol/package.json dependencies.@opencode-ai/schema |
| 节点 | 机制 | 证据 |
|---|---|---|
| client | workspace-dep | @opencode-ai/client/package.json dependencies.@opencode-ai/protocol |
| server | workspace-dep | @opencode-ai/server/package.json dependencies.@opencode-ai/protocol |
| opencode | semantic-dep | stage-01 opencode |
协议与实现分离:protocol 只声明端点/中间件/错误的契约(server 注入具体服务身份,见 src/api.ts:25 注释),使 server、client、cli 对同一协议的不同实现方共享同一类型面。
官方底座,未被本机装配层直接引用