当前宿主只支持 openai.oauth.outbound_transport.v1。插件负责建立实际上游 HTTP/TLS 连接,Sub2API 负责账号选择、OAuth Token 生命周期、下游协议、响应解析、SSE、错误映射、用量统计和计费。
插件不应修改 API Key 路径,也不应自行刷新或持久化 OAuth Token。
plugin/
├── cmd/<plugin>/main.go
├── internal/config/
├── internal/transport/
├── ui/index.html
├── ui/assets/
├── tools/packager/
├── manifest.source.json
└── README.md
入口只调用 pluginv1.Serve。配置解析和传输实现放入独立包,以便不启动子进程就能单元测试。
| 方法 | 要求 |
|---|---|
GetInfo |
ID、版本、协议和能力必须与清单一致 |
Health |
返回进程是否可以接受新请求,不执行昂贵探测 |
ValidateConfig |
严格解析并返回完整规范化 JSON |
ApplyConfig |
原子应用配置;失败时保留旧配置 |
TestConfig |
验证当前环境和已保存配置,返回简短诊断 |
Forward |
双向流式传输请求与原始 HTTP 响应 |
请求帧顺序:start、零到多个 body_chunk、body_end。响应帧顺序:start、零到多个 body_chunk、end。不能继续处理的错误使用 error 帧。
request_sent 必须如实表示请求是否可能已经到达上游。值为 true 时宿主禁止自动切换账号重放;只有能确认尚未调用上游 Transport 时才能返回 false。
snake_case。发布前还应使用真实构建包运行宿主的插件进程集成测试。