MG-04-015 可执行视频适配器
历史设计:2026-09-22 起停止新插件接入,安装/绑定等入口返回 410。当前流程见 ADMIN_API.md。历史数据和在途任务保留兼容。
插件不再只是模型清单:schema 2 保存同步 JavaScript ESM 源码,运行时由通用 js-video 执行器调用,完成标准视频请求→供应商请求、提交响应→任务 ID、查询→标准状态/视频结果,以及模型参数和价格发现。同协议范围内新增供应商只安装新模块,不修改 Go 核心或重启。
职责与使用
兼容 API → 标准视频请求 → 既有选路/素材解析 → 固定版本的 JS 转换 → Go 发送请求 → JS 解析 → 既有轮询/结果存储
Go 持有凭据、HTTP、幂等与数据库;JS 只接触 JSON 和解析后的 HTTPS 素材引用。用户体系与售卖仍不进入本网关。
- 视频渠道 → 请求适配器插件 → 加载王牌模板,或由本机 Skill 编写可信源码。
- 选择转换步骤,输入模拟数据,运行转换测试,查看请求体或解析结果。不会发上游请求、读取渠道密钥或产生验证证据。
- 审阅源码后安装不可变版本,创建
provider_kind=js-video的停用渠道并绑定。王牌 base_url 为https://wangpaiai.com/api/v1。 - 网页录入上游 Key,经授权拉取真实模型、参数和价格;按既有流程导入停用供给。模板不硬编码型号映射或采购比例。
- 授权进行真实生成并取得当前版本的结果验证证据、能力及成本配置后才可启用。离线通过不等于真实生成通过。
本机 Skill 自带脚本,无需 MCP;新增 get_wangpai_plugin_template 和 dry_run_channel_plugin。详细函数协议、数据字段和制作步骤以 Skill 协议 为准。
管理 API
沿用 /admin/v1 的管理员认证。新增 GET /channel-plugins/templates/wangpai 返回完整 manifest;POST /channel-plugins/dry-run 接收 {manifest,hook,input},返回 {output,network_requests:0,generation_verified:false}。验证、安装、列出和绑定 API 保持原路径;schema 1 配置清单兼容,但不能含 source,也不能声明 js-video 执行器。
源码存于既有 channel_plugins.manifest JSONB;不可覆盖同 key/revision。绑定需最新 If-Match 和停用渠道,禁止与正在进行的目录同步竞争。改变可执行版本会使所有子供给退回停用草稿,不删除模型或测试记录。
Migration 26 增加启用门禁:结果验证证据中的 plugin_id 必须匹配当前绑定。测试快照和调度快照都保存不可变 plugin_id;在途任务查询/解析不读取当前绑定,回滚不会改变旧任务解析器。回滚到曾验证版本可以复用该版本的有效证据,仍需人工启用,且其他能力/成本门禁继续生效。
首版边界
- 仅 HTTPS JSON、Bearer 认证、单次 POST 提交与 GET 查询;不支持 multipart、签名认证、任意自定义请求头、多阶段上传。新增此类协议需扩展宿主,不能靠清单伪装支持。
- 王牌依据动态 inputs 映射 duration、quality/resolution、aspect_ratio 和全部图片/视频/音频槽位,保留 false/0、校验枚举、数量、必填与 UTF-16 文本长度。按目录选择参数,不硬编码实际型号或价格。不支持的首尾帧角色明确拒绝,不降级成参考图。
- 原样保留完整 priceTiers,缺报价不当作免费;采购 1:10 是独立配置,不写进源码。本次未增加 generation.cost 的账单结算或 Token 成本结算。
- 目录每次发现/提交会读取,未实现 JS 目录缓存。服务端已有定期检查继续用实际执行器发现;不自动生成/安装新源码,重大协议变更的自动隔离闭环仍为后续工作。
- 发送 POST 后遇到传输失败、5xx、缺少任务 ID 或畸形响应一律提交未知,不自动另发一次收费请求。
安全与来源
128 KiB 源码、2 MiB 输入/输出、每次转换 1 秒、8 并发;全新 Sobek runtime,无 fetch/fs/process/require/console、模块导入、宿主对象或异步 I/O。宿主固定 HTTPS origin 与前缀、禁止重定向和路径逃逸、公共地址 DNS 固定、屏蔽凭据反射;现有素材安全和结果获取保护保留。
这不是强内存沙箱:可信管理员仍必须审阅源码,恶意脚本可能耗尽进程内存。不能面向任意用户开放上传。源码能决定发送的业务数据,不把“拿不到 Key”表述成“任意源码安全”。错误不回显上游内容、密钥或素材。
架构参考 QuantumNous/new-api plugin API 及其任务适配器;独立实现,未复制 AGPL 代码,也不声明源码直接兼容未发布的 new-api 插件协议。王牌依据 官方文档(2026-09-22 核对)。新增 Sobek 为 MIT 依赖;其版本需要 Go 1.25,Docker 构建基线同步升级。
应用回滚前停用 JS 渠道;保留插件与在途任务数据,旧二进制不能处理 JS 任务,应待清空在途任务或保留新版 worker 后再回退。Migration 26 的 down 仅撤除该版本证据门禁,不应在新版执行器仍启用时使用。