模型清单
随应用打包的清单使离线启动成为可能;从 main 获取它,模型元数据就可以在各次发布之间变化。获取失败或数据无效时,保留最后一份可用清单。远程数据必须同时通过目录引用校验和所属提供方(provider)的适配器(adapter)校验,然后才能替换缓存。
较新的打包清单按 updatedAt 优先于已缓存的远程清单,因此一次发布可以在下一次成功获取之前修正模型数据。该文件每次变更都要递增 updatedAt。获取时间无法确定哪一份副本包含较新的编辑。
通用目录数据描述呈现方式和能力。每个提供方拥有自己的适配器模式和分派映射。提供方从不读取清单本身:服务器通过 ModelCatalog 端口暴露每个驱动(driver)的条目,兼容性策略留在服务器一侧。Claude 的整个内置目录都使用这份清单。按已有能力配置添加模型,只是一次 JSON 编辑;只有新的能力组合才需要新的配置。Codex 仍然从其应用服务器取得模型列表。
需要较新提供方 CLI 的模型,仍应在它发布之时就公布。Claude 条目设置 adapter.claudeCode.minVersion;Codex 条目设置 adapter.codex.minVersion,因为 Codex 自己的 model/list 无法命名已安装构建之后才发布的模型。快照会在 updateRequiredModels 中报告这些模型,选择器会告诉用户哪一次更新能够解锁它们。
currentModels.claudeAgent 是目录发现出现之前的发布所用的当前模型分类覆盖层;它不会把模型加入它们的目录。能识别目录的发布改用 providers.claudeAgent.models[].status。Codex 把 currentModels.codex 用作已发现模型的旧式分类覆盖层。
模型数据是经过模式校验的配置。测试应当用合成的模型名覆盖解析器、缓存和适配器语义,这样添加模型就不必再写重复这份配置的测试。