mirror of
https://git.openapi.site/https://github.com/desirecore/market.git
synced 2026-09-05 16:13:53 +08:00
## 为什么 / Why 条目此前是 inline + `listing-only`,详情页显示「仅收录,当前不能由 DesireCore 一键获取」。同期 #115(企微)与 #118(发票助手)都已 `installable`,**飞书是唯一装不了的第三方 Agent**。 inline 形态在这条路上无解:`installable` 要求内容有独立的不可变 ref,而 inline 内容随本仓库走,没有自己的制品 ref。 The listing was inline + `listing-only`, so the client showed it as discovery-only. With WeCom (#115) and Invoice Organizer (#118) already installable, this was the only third-party Agent users could not acquire. Inline form cannot satisfy the installable evidence gate, which requires content pinned to its own immutable ref. ## 顺带修掉一个错误的承诺 / An incorrect claim, fixed along the way 原 `agent.json` 用 `default_enabled.skills` 声明那 23 个 `lark-*` 技能。但该字段的语义是**「本地已有的技能默认启用」**,schema 明确限定 ID 需存在于 Agent 自带 `skills/` 或市场 `builtin-skills` 清单中 —— `lark-*` 两者都不在,**声明落空**。 真正负责「把技能取过来」的是 `required_skills`(desirecore/desirecore#2587)。也就是说,条目 `fullDesc` 里「随 Agent 一并安装 23 个技能,安装后即可使用」在原实现下**做不到**。 上游 `agent.json` 已改用 `required_skills.collections`,两个字段按 schema 的分工同时保留。逐项核对过: | 检查项 | 结果 | |---|---| | 合集 `larksuite-cli` entry 与 children | 存在,28 个 | | 声明的 23 个 ID 是否都在其中 | **全部命中,无缺失** | | source | 公开 git + 固定 ref,可取 | | 合集自身版本门槛 | 无 | | `redistribution` | `allowed` | | 合集是 `listing-only` 是否影响预置 | 否 —— 预置路径不检查 `availability` | ## 形态 / Form 内容移至 [desirecore-agent/feishu-orchestrator](https://github.com/desirecore-agent/feishu-orchestrator),pin 到 `d5b0a78`。market 侧只留 `entry.json` + sidecar + `assets/`。 上游 `agent.json` 已剥净市场卡片字段,并**单独跑过 `agentConfigSchema`** —— pointer 没有 `projectMarketAgentConfigToAgentFs` 那层投影兜底,`persona` 这类卡片字段留着就会让落盘配置非法(本次正是由该校验捕获并修掉的)。 **图片头像保留**:`assets/avatar.webp` 连同 `entry.avatar.image` 一起留在 market 侧,validator 接受 —— pointer 形态不必退回纯文字头像。 ## 证据六项 / Acquisition evidence - `provenance.content`:https + 40 位 SHA - `license`:`known` + `MIT` + `evidencePath: LICENSE` - `compliance`:六字段齐全(含 `noticePath: NOTICE`) - `compliance.reviewedRef === provenance.content.ref` - `timestamps.reviewedAt.value === compliance.reviewedAt` - `availability: installable` 一致性:`entry.maintainer` → sidecar `upstreamMaintainer`;`tags` 用英文 slug 与 `presentation.tags` 逐字一致;`redistribution` 为 `source-pointer-only`;`entry.requiredClientVersion` 与 `compatibility.requiredClientVersion` 一致(`10.0.144`,即包含 #2587 的首个发布版本)。 ## 校验 / Verification | 命令 | 结果 | |---|---| | `validate_catalog_metadata.py --require-complete` | **0 error**,75 sidecars | | `validate-i18n.py` | 0 error | | `test_validate_catalog_metadata.py` | 47/47 | | 上游 `agent.json` 过 `agentConfigSchema` | 通过(捕获并修掉了 `persona` 字段) | Co-authored-by: yi-ge <jackyoncode@gmail.com>