mirror of
https://git.openapi.site/https://github.com/desirecore/market.git
synced 2026-10-21 05:04:36 +08:00
## 中文 启用两支审查团队的中英文完整介绍与隐私说明,保留微信支付上游原始版本 `1.0`,市场版本更新为 `1.5.9`。 解决标书介绍与最新 main 的冲突,保留成员默认收纳说明和用户选择优先的行为。同步条目与 canonical 目录的本地化描述,补齐模型服务配置、可用性、处理授权、条款与费用责任,以及前提不满足时停止相关外部调用的规则。 标书团队 `0.2.3` 引用已合并的 [上游 #7](https://github.com/desirecore-agent/biao-shu-lian-he-shen-cha/pull/7),合同团队 `0.1.40` 引用已合并的 [上游 #51](https://github.com/desirecore-agent/contract-review-team/pull/51)。source、provenance 与 reviewedRef 对齐;成员版本、头像与 `requiredClientVersion: 10.0.178` 保持一致。 本地化字段和原始版本格式所依赖的 desirecore/desirecore#3183 已包含于正式 [v10.0.177](https://github.com/desirecore/desirecore/releases/tag/v10.0.177)。团队自身的 10.0.178 安装要求继续有效。Schema 保持闭集,并明确记录两个分支的本地扩展来源。 验证:84 个市场单元测试通过;完整目录与 i18n、翻译及生成合集新鲜度检查通过,0 错误、123 个既有告警。新增测试覆盖两种 Schema 分支的字段边界和未知属性拒绝。上游静态检查与 11 项收集器回归通过;18 次真实模型回合包含 15 个前提缺失的停止案例和 3 个全部前提确认的正向案例。模型回合验证请求意图和停止信号,未执行完整 Agent Service、市场安装、真实合同或 DOCX 验收。 此前审查意见已处理;Copilot 账户审查额度用尽,最终改动采用人工复核,并遵循仓库已有的检查门禁。 ## English Enable localized full descriptions and privacy disclosures for both review teams, preserve WeChat Pay's original release identifier `1.0`, and advance the Market to `1.5.9`. Resolve the tender-description conflict against current main while retaining nested member display and user preference precedence. Align entry and canonical localized descriptions, disclose model-service prerequisites and operator responsibilities, and stop affected external calls when prerequisites fail. Point Tender `0.2.3` and Contract `0.1.40` to the merged revisions from [upstream #7](https://github.com/desirecore-agent/biao-shu-lian-he-shen-cha/pull/7) and [upstream #51](https://github.com/desirecore-agent/contract-review-team/pull/51), keeping source, provenance and reviewed refs aligned. Preserve members, avatars and the separate `10.0.178` installation requirement. The catalog-format dependency shipped in stable v10.0.177; the closed schema documents its deliberate local i18n extension. Validation: 84 Market unit tests and full catalog/i18n, translation and collection freshness checks pass; zero errors and 123 existing warnings. Upstream static checks and 11 collector regressions pass. Eighteen live model turns include 15 blocked prerequisite cases and three positive controls with all prerequisites confirmed. These turns check request intent and stopping signals; full Agent Service integration, marketplace installation, real-contract acceptance and DOCX acceptance were not performed. Earlier review findings are addressed. Copilot's account quota is exhausted, so final changes received manual review under the repository's existing check policy.
510 lines
20 KiB
JSON
510 lines
20 KiB
JSON
{
|
||
"$schema": "http://json-schema.org/draft-07/schema#",
|
||
"title": "Market Team Entry (legacy and current client contracts)",
|
||
"description": "Accept the legacy pointer contract while allowing the current installable team contract. New entries should use the current branch; the legacy branch remains for catalog compatibility during migration.",
|
||
"anyOf": [
|
||
{
|
||
"type": "object",
|
||
"required": [
|
||
"id",
|
||
"name",
|
||
"stewardship",
|
||
"license",
|
||
"redistribution",
|
||
"source"
|
||
],
|
||
"properties": {
|
||
"id": {
|
||
"type": "string",
|
||
"description": "团队条目唯一标识符,采用与 team.json#id 相同的团队 slug 规则(不允许首尾连字符),保证市场 ID 天然是一个合法团队目录名。",
|
||
"pattern": "^[a-z0-9]([a-z0-9-]*[a-z0-9])?$"
|
||
},
|
||
"name": {
|
||
"type": "string",
|
||
"description": "默认显示名称(源 locale),本地化变体见 i18n"
|
||
},
|
||
"category": {
|
||
"type": "string",
|
||
"minLength": 1,
|
||
"pattern": "^[a-z0-9-]+$",
|
||
"description": "市场项目分类(slug 格式),由仓库 categories.json 定义"
|
||
},
|
||
"tags": {
|
||
"type": "array",
|
||
"items": {
|
||
"type": "string"
|
||
},
|
||
"description": "标签列表,用于搜索和分类"
|
||
},
|
||
"icon": {
|
||
"type": "string",
|
||
"description": "市场列表展示的内联 SVG 图标。**只有 Skill 卡片渲染它**——marketAgentSchema 与 marketTeamSchema 都没有 icon 字段,Agent 与团队卡片一律走 avatar,条目声明了 icon 也不会显示。Pointer 技能将其随离线元数据返回。"
|
||
},
|
||
"latestVersion": {
|
||
"type": "string",
|
||
"description": "市场登记的最新版本(semver)",
|
||
"pattern": "^\\d+\\.\\d+\\.\\d+$"
|
||
},
|
||
"i18n": {
|
||
"type": "object",
|
||
"description": "团队按 locale 提供名称、摘要及可选的完整介绍和数据处理说明。",
|
||
"additionalProperties": {
|
||
"type": "object",
|
||
"properties": {
|
||
"name": {
|
||
"type": "string",
|
||
"description": "该 locale 下的显示名称"
|
||
},
|
||
"shortDesc": {
|
||
"type": "string",
|
||
"description": "该 locale 下的简短描述"
|
||
},
|
||
"fullDesc": {
|
||
"type": "string", "minLength": 1, "maxLength": 16000,
|
||
"description": "该语言的完整介绍,不得遗漏依赖和使用限制。"
|
||
},
|
||
"privacy": {
|
||
"type": "string", "minLength": 1, "maxLength": 8000,
|
||
"description": "该语言的数据处理、外部模型及人工复核边界。"
|
||
}
|
||
},
|
||
"additionalProperties": false
|
||
}
|
||
},
|
||
"maintainer": {
|
||
"type": "object",
|
||
"required": [
|
||
"name",
|
||
"verified"
|
||
],
|
||
"properties": {
|
||
"name": {
|
||
"type": "string",
|
||
"description": "维护者名称,如 \"DesireCore Official\""
|
||
},
|
||
"verified": {
|
||
"type": "boolean",
|
||
"description": "是否官方认证维护者,认证后显示蓝色勾选标记"
|
||
},
|
||
"account": {
|
||
"type": "string",
|
||
"description": "维护方账号标识,如 GitHub 组织/用户名 \"desirecore\""
|
||
},
|
||
"url": {
|
||
"type": "string",
|
||
"description": "维护方主页或仓库 URL"
|
||
}
|
||
},
|
||
"additionalProperties": false
|
||
},
|
||
"stewardship": {
|
||
"type": "string",
|
||
"enum": [
|
||
"official",
|
||
"partner",
|
||
"community",
|
||
"pointer"
|
||
],
|
||
"description": "维护方分类:official(官方)/ partner(合作伙伴官方)/ community(社区已收录)/ pointer(仅指针,不分发内容)"
|
||
},
|
||
"license": {
|
||
"type": "string",
|
||
"minLength": 1,
|
||
"description": "许可证:SPDX id(MIT/Apache-2.0/MIT-0…)或特殊值 not-declared / source-available / packaged-distribution"
|
||
},
|
||
"redistribution": {
|
||
"type": "string",
|
||
"enum": [
|
||
"allowed",
|
||
"source-pointer-only",
|
||
"verify-package-terms"
|
||
],
|
||
"description": "再分发策略:allowed(可分发)/ source-pointer-only(仅指针,安装时拉取)/ verify-package-terms(需核验条款)"
|
||
},
|
||
"source": {
|
||
"type": "object",
|
||
"required": [
|
||
"kind",
|
||
"repoUrl"
|
||
],
|
||
"properties": {
|
||
"kind": {
|
||
"type": "string",
|
||
"enum": [
|
||
"git"
|
||
],
|
||
"description": "团队只支持 git 源:安装是 fork 团队仓库、更新是 git pull,zip / web 无法表达这两个动作。"
|
||
},
|
||
"repoUrl": {
|
||
"type": "string",
|
||
"minLength": 1,
|
||
"description": "团队 git 仓库的 HTTPS 克隆地址,如 https://github.com/desirecore/team-contract-review.git"
|
||
},
|
||
"repoBranch": {
|
||
"type": "string",
|
||
"description": "团队仓库分支名称,默认 main。安装时会真的按这个分支克隆;必须是合法分支名(不带 refs/ 前缀、不以 - 开头),否则安装失败关闭而不是静默改装默认分支。",
|
||
"default": "main"
|
||
},
|
||
"ref": {
|
||
"type": "string",
|
||
"description": "锁定的 commit SHA / tag,用于可复现安装;为空表示取分支 HEAD。只接受**完整 40 位 SHA-1** 或标签名:缩写 oid 会随仓库增长变歧义、也远比完整 SHA 容易被构造碰撞,而降级 git 后端根本不解析它。安装时会按该 ref 克隆并读回真实 HEAD 逐字复核,不一致就中止整个安装——一个不被兑现的锁比没有锁更危险,因为它会被信任。"
|
||
}
|
||
},
|
||
"additionalProperties": false,
|
||
"description": "团队 fork 源。**这是团队条目的核心**:安装端点用 repoUrl + repoBranch 调用 forkTeam,更新用同一仓库 git pull。"
|
||
},
|
||
"requiredClientVersion": {
|
||
"type": "string",
|
||
"description": "此条目要求的最低客户端版本(semver),低于此版本时提示升级",
|
||
"pattern": "^\\d+\\.\\d+\\.\\d+$"
|
||
},
|
||
"avatar": {
|
||
"type": "object",
|
||
"required": [
|
||
"t",
|
||
"bg"
|
||
],
|
||
"properties": {
|
||
"t": {
|
||
"type": "string",
|
||
"description": "头像显示的文字(通常为一个汉字)",
|
||
"maxLength": 2
|
||
},
|
||
"bg": {
|
||
"type": "string",
|
||
"description": "头像背景 CSS 渐变值,如 linear-gradient(135deg, #007AFF, #005ECB)"
|
||
},
|
||
"image": {
|
||
"type": "object",
|
||
"description": "图片头像:市场仓库中该条目目录内的位图(如 \"assets/avatar.webp\")。存在且文件可读时优先于 t + bg 渲染,否则自动回落——所以 t 与 bg 仍为必填,它们是确定的回落形态。仅支持 PNG / JPEG / WebP。注意:这是**市场展示**元数据,与安装后 agent.json 的 avatar.image 是两套,安装时不迁移。",
|
||
"required": [
|
||
"path"
|
||
],
|
||
"properties": {
|
||
"path": {
|
||
"type": "string",
|
||
"description": "相对于该市场条目目录的图片路径。禁止绝对路径和 .. 路径穿越",
|
||
"minLength": 5,
|
||
"maxLength": 240,
|
||
"pattern": "^(?![\\\\/])(?![A-Za-z]:)(?!.*(?:^|[\\\\/])\\.\\.(?:[\\\\/]|$)).+\\.(?:png|jpe?g|webp)$"
|
||
}
|
||
},
|
||
"additionalProperties": false
|
||
}
|
||
},
|
||
"additionalProperties": false
|
||
},
|
||
"supervisorName": {
|
||
"type": "string",
|
||
"description": "组长(supervisor)Agent 的显示名称,仅用于卡片与详情页展示;真实组长以团队仓库 team.json#supervisor 为准。"
|
||
},
|
||
"supervisorAgentId": {
|
||
"type": "string",
|
||
"description": "组长 Agent ID(展示与去重用)。只是发布者声明,不作为安装期白名单依据。",
|
||
"pattern": "^[A-Za-z0-9_-]+$"
|
||
},
|
||
"memberCount": {
|
||
"type": "integer",
|
||
"minimum": 1,
|
||
"description": "团队成员总数(**含组长**),用于卡片上\"N 名成员\"的展示;不参与任何安装校验。"
|
||
},
|
||
"memberNames": {
|
||
"type": "array",
|
||
"items": {
|
||
"type": "string"
|
||
},
|
||
"maxItems": 32,
|
||
"description": "成员显示名预览列表(不含组长),用于卡片上的成员缩略展示;不保证与仓库成员完全一致。"
|
||
},
|
||
"requiredSkills": {
|
||
"type": "array",
|
||
"items": {
|
||
"type": "string"
|
||
},
|
||
"maxItems": 128,
|
||
"uniqueItems": true,
|
||
"description": "团队声明的必需 Skill ID,用于安装前向用户提示前置条件;真实校验由安装后的团队 capability audit 执行。"
|
||
}
|
||
},
|
||
"additionalProperties": false
|
||
},
|
||
{
|
||
"type": "object",
|
||
"description": "可安装团队的自描述市场条目;能力、成员与隐私说明由发布者维护。",
|
||
"required": [
|
||
"id",
|
||
"name",
|
||
"shortDesc",
|
||
"category",
|
||
"tags",
|
||
"latestVersion",
|
||
"updatedAt",
|
||
"members",
|
||
"capabilities",
|
||
"privacy",
|
||
"stewardship",
|
||
"license",
|
||
"redistribution",
|
||
"source"
|
||
],
|
||
"properties": {
|
||
"id": {
|
||
"type": "string",
|
||
"description": "条目唯一标识符,使用小写连字符格式,如 \"flyai-skill\"",
|
||
"pattern": "^[a-z0-9-]+$"
|
||
},
|
||
"name": {
|
||
"type": "string",
|
||
"description": "默认显示名称(源 locale),本地化变体见 i18n"
|
||
},
|
||
"category": {
|
||
"type": "string",
|
||
"minLength": 1,
|
||
"pattern": "^[a-z0-9-]+$",
|
||
"description": "市场项目分类(slug 格式),由仓库 categories.json 定义"
|
||
},
|
||
"tags": {
|
||
"type": "array",
|
||
"items": {
|
||
"type": "string"
|
||
},
|
||
"description": "标签列表,用于搜索和分类"
|
||
},
|
||
"icon": {
|
||
"type": "string",
|
||
"description": "市场列表展示的内联 SVG 图标。Pointer 技能将其随离线元数据返回。"
|
||
},
|
||
"latestVersion": {
|
||
"type": "string",
|
||
"description": "市场登记的最新版本(semver)",
|
||
"pattern": "^\\d+\\.\\d+\\.\\d+$"
|
||
},
|
||
"i18n": {
|
||
"type": "object",
|
||
"description": "团队按 locale 提供名称、摘要及可选的完整介绍和数据处理说明。",
|
||
"additionalProperties": {
|
||
"type": "object",
|
||
"properties": {
|
||
"name": {
|
||
"type": "string",
|
||
"description": "该 locale 下的显示名称"
|
||
},
|
||
"shortDesc": {
|
||
"type": "string",
|
||
"description": "该 locale 下的简短描述"
|
||
},
|
||
"fullDesc": {
|
||
"type": "string", "minLength": 1, "maxLength": 16000,
|
||
"description": "该语言的完整介绍,不得遗漏依赖和使用限制。"
|
||
},
|
||
"privacy": {
|
||
"type": "string", "minLength": 1, "maxLength": 8000,
|
||
"description": "该语言的数据处理、外部模型及人工复核边界。"
|
||
}
|
||
},
|
||
"additionalProperties": false
|
||
}
|
||
},
|
||
"maintainer": {
|
||
"type": "object",
|
||
"required": [
|
||
"name",
|
||
"verified"
|
||
],
|
||
"properties": {
|
||
"name": {
|
||
"type": "string",
|
||
"description": "维护者名称,如 \"DesireCore Official\""
|
||
},
|
||
"verified": {
|
||
"type": "boolean",
|
||
"description": "是否官方认证维护者,认证后显示蓝色勾选标记"
|
||
},
|
||
"account": {
|
||
"type": "string",
|
||
"description": "维护方账号标识,如 GitHub 组织/用户名 \"desirecore\""
|
||
},
|
||
"url": {
|
||
"type": "string",
|
||
"description": "维护方主页或仓库 URL"
|
||
}
|
||
},
|
||
"additionalProperties": false
|
||
},
|
||
"stewardship": {
|
||
"type": "string",
|
||
"enum": [
|
||
"official",
|
||
"partner",
|
||
"community",
|
||
"pointer"
|
||
],
|
||
"description": "维护方分类:official(官方)/ partner(合作伙伴官方)/ community(社区已收录)/ pointer(仅指针,不分发内容)"
|
||
},
|
||
"license": {
|
||
"type": "string",
|
||
"minLength": 1,
|
||
"description": "许可证:SPDX id(MIT/Apache-2.0/MIT-0…)或特殊值 not-declared / source-available / packaged-distribution"
|
||
},
|
||
"redistribution": {
|
||
"type": "string",
|
||
"enum": [
|
||
"allowed",
|
||
"source-pointer-only",
|
||
"verify-package-terms"
|
||
],
|
||
"description": "再分发策略:allowed(可分发)/ source-pointer-only(仅指针,安装时拉取)/ verify-package-terms(需核验条款)"
|
||
},
|
||
"source": {
|
||
"type": "object",
|
||
"description": "团队安装制品:HTTPS Git 仓库根目录及完整 40 位 commit SHA。",
|
||
"required": [
|
||
"kind",
|
||
"repoUrl",
|
||
"ref"
|
||
],
|
||
"properties": {
|
||
"kind": {
|
||
"const": "git",
|
||
"type": "string",
|
||
"description": "团队来源仅支持 Git 仓库。"
|
||
},
|
||
"repoUrl": {
|
||
"type": "string",
|
||
"pattern": "^https://[^\\s/?#@]+/[^\\s?#]+$",
|
||
"description": "不含凭据、查询或片段的 HTTPS Git 仓库 URL;安装另经过远程安全策略。"
|
||
},
|
||
"repoBranch": {
|
||
"type": "string",
|
||
"pattern": "^(?!-)[^\\s]+$",
|
||
"description": "团队 Git 仓库分支名称;默认 main。安装与更新均按该分支解析,并仍以完整 ref 做不可变校验。",
|
||
"default": "main"
|
||
},
|
||
"ref": {
|
||
"type": "string",
|
||
"pattern": "^[0-9a-f]{40}$",
|
||
"description": "不可变完整 commit SHA;安装 checkout 后必须回读 HEAD 验证。"
|
||
},
|
||
"path": {
|
||
"type": "string",
|
||
"const": "",
|
||
"description": "首版只支持仓库根目录,省略或空字符串。"
|
||
}
|
||
},
|
||
"additionalProperties": false
|
||
},
|
||
"requiredClientVersion": {
|
||
"type": "string",
|
||
"description": "此条目要求的最低客户端版本(semver),低于此版本时提示升级",
|
||
"pattern": "^\\d+\\.\\d+\\.\\d+$"
|
||
},
|
||
"shortDesc": {
|
||
"type": "string",
|
||
"minLength": 1,
|
||
"description": "团队卡片简介。"
|
||
},
|
||
"fullDesc": {
|
||
"type": "string",
|
||
"description": "完整介绍及使用前提;不能替代明确的隐私说明。"
|
||
},
|
||
"avatar": {
|
||
"type": "object",
|
||
"required": [
|
||
"t",
|
||
"bg"
|
||
],
|
||
"properties": {
|
||
"t": {
|
||
"type": "string",
|
||
"description": "头像显示的文字(通常为一个汉字)",
|
||
"maxLength": 2
|
||
},
|
||
"bg": {
|
||
"type": "string",
|
||
"description": "头像背景 CSS 渐变值,如 linear-gradient(135deg, #007AFF, #005ECB)"
|
||
},
|
||
"image": {
|
||
"type": "object",
|
||
"description": "图片头像:市场仓库中该条目目录内的位图(如 \"assets/avatar.webp\")。存在且文件可读时优先于 t + bg 渲染,否则自动回落——所以 t 与 bg 仍为必填,它们是确定的回落形态。仅支持 PNG / JPEG / WebP。注意:这是**市场展示**元数据,与安装后 agent.json 的 avatar.image 是两套,安装时不迁移。",
|
||
"required": [
|
||
"path"
|
||
],
|
||
"properties": {
|
||
"path": {
|
||
"type": "string",
|
||
"description": "相对于该市场条目目录的图片路径。禁止绝对路径和 .. 路径穿越",
|
||
"minLength": 5,
|
||
"maxLength": 240,
|
||
"pattern": "^(?![\\\\/])(?![A-Za-z]:)(?!.*(?:^|[\\\\/])\\.\\.(?:[\\\\/]|$)).+\\.(?:png|jpe?g|webp)$"
|
||
}
|
||
},
|
||
"additionalProperties": false
|
||
}
|
||
},
|
||
"additionalProperties": false
|
||
},
|
||
"updatedAt": {
|
||
"type": "string",
|
||
"format": "date",
|
||
"description": "发布元数据更新日期。"
|
||
},
|
||
"members": {
|
||
"type": "array",
|
||
"minItems": 1,
|
||
"maxItems": 100,
|
||
"items": {
|
||
"type": "object",
|
||
"description": "团队目录中的角色展示;安装时与仓库名册逐项校验。",
|
||
"required": [
|
||
"id",
|
||
"name",
|
||
"role"
|
||
],
|
||
"properties": {
|
||
"id": {
|
||
"type": "string",
|
||
"pattern": "^[A-Za-z0-9_-]+$",
|
||
"description": "成员 Agent ID,必须与团队发布名册一致。"
|
||
},
|
||
"name": {
|
||
"type": "string",
|
||
"minLength": 1,
|
||
"description": "成员展示名称。"
|
||
},
|
||
"role": {
|
||
"type": "string",
|
||
"enum": [
|
||
"supervisor",
|
||
"member"
|
||
],
|
||
"description": "组长或普通成员。"
|
||
},
|
||
"version": {
|
||
"type": "string",
|
||
"pattern": "^\\d+\\.\\d+\\.\\d+$",
|
||
"description": "目录声明的成员版本;存在时必须与发布锁一致。"
|
||
}
|
||
},
|
||
"additionalProperties": false
|
||
},
|
||
"description": "完整成员名册,恰好一个组长,不允许重复 ID。"
|
||
},
|
||
"capabilities": {
|
||
"type": "array",
|
||
"items": {
|
||
"type": "string"
|
||
},
|
||
"description": "发布者声明的能力范围,不代表平台验证或担保。"
|
||
},
|
||
"privacy": {
|
||
"type": "string",
|
||
"minLength": 1,
|
||
"description": "发布者说明的数据处理、模型外联及人工治理边界,不得默认宣称离线或零外发。"
|
||
}
|
||
},
|
||
"additionalProperties": false
|
||
}
|
||
],
|
||
"$comment": "The base current branch was generated from desirecore/desirecore packages/schemas/src/market.ts at commit 40dbc58237c1ffc1c0877223142e441afee9c1ec, source blob 7662ea407f3350cd537afb3563b944e4168c8bdb. Both branches deliberately add a local i18n extension for fullDesc (1-16000 characters) and privacy (1-8000 characters), matching marketTeamEntryI18nSchema in the released v10.0.177 client at commit 1a83319b008f7b56e4df902e7b02b6a23d38bd57, source blob ebeea353595544b4893dadae18113bf551247571. The legacy branch is retained for existing public catalog entries and fixtures until the migration is complete."
|
||
}
|