|
|
6963018829
|
feat(feishu-orchestrator): 改为 pointer 形态并声明可安装 / switch to pointer form and make it installable (#119)
## 为什么 / 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>
|
2026-09-05 14:30:35 +08:00 |
|
|
|
98251c9a1d
|
feat: 新增飞书编排助手 Agent 市场条目 / add Feishu Orchestrator agent listing (#114)
## 这是什么 / What
把自然语言意图翻译成第三方飞书 CLI(`lark-cli`)的正确调用,覆盖云文档、Markdown
文件、电子表格、多维表格、云空间、知识库、幻灯片、画板、即时消息、邮箱、日历、视频会议与妙记、任务、审批、OKR、考勤、应用搭建与实时事件等业务域。
声明 23 个业务域技能依赖,安装后即可使用,无需手工拷贝技能目录。
An agent that turns natural-language intent into correct calls to the
third-party Feishu CLI, covering documents, sheets, Base tables, drive,
wiki, messaging, mail, calendar, meetings, tasks, approvals, OKR and
attendance. It declares 23 domain skill dependencies that install
together with the agent.
## 结构 / Layout
与仓库既有的 `dingtalk-workspace` / `wecom-assistant` 条目保持一致:
```
agents/feishu-orchestrator/
├── agent.json # 内联元数据(AgentFS 配置 ∪ 市场卡片,含 i18n 双语 + changelog)
├── catalog-metadata.v1.json # sidecar,字段全部从 agent.json 派生
├── assets/avatar.webp # 512×512 图片头像
├── persona.md / principles.md # L0/L1/L2 分层人格与硬规则
├── README.md # 条目总览 + 文档索引
└── docs/01..13-*.md # 按业务域拆分的 13 篇功能文档
```
## 文档 / Docs
命令、参数约定与坑位**均来自真机验证**(2026-09-01,220 个已授权 scope)。未跑通的能力在
[`docs/13-能力边界.md`](agents/feishu-orchestrator/docs/13-能力边界.md)
中如实标注,不含任何租户、组织或个人标识。
其中固化了三处容易踩错的 CLI 契约:
| 契约 | 踩错的后果 |
|---|---|
| `auth status` 成功时**没有**顶层 `ok` 字段 | 按通用 `ok === true`
判据会把「已授权」误判成「未授权」,反复推用户重新扫码 |
| 身份不显式指定会落到 `bot` | bot 看不见用户的个人日历、云盘、邮箱,且返回**空成功**而非报错 |
| `--ranges`(复数)的 sheet 前缀要用 `sheet_name` | 用 `sheet_id` 会通过确认门禁、但在 API
层报 `Sheet not found`;而单数 `--range` 的约定**正好相反** |
## 治理 / Governance
- `governance.availability: listing-only` —— 与核心
Agent、钉钉、企微三个既有条目一致。inline agent 的内容随仓库走,没有独立制品 ref,无法满足 `installable`
分支「必须有不可变 ref 或 SHA-256 摘要」的门禁
- `governance.branding`:`independent-listing` / `nominative` / `logo
not-used` —— 飞书、Lark 为第三方商标,头像为抽象编排拓扑图,不使用任何第三方 logo
- `compatibility.requirements`:按仓库「外部依赖披露」规范声明运行时、权限、连接三类前置。DesireCore
不打包、不分发、不授权、不安装、不代付 `lark-cli` 及其背后的飞书产品
## 顺带修正 / Incidental
根 `README.md` 的 Agent 清单停留在 `2` 个(遗漏 `wecom-assistant`),一并补齐为准确的 4
个;`manifest.json#stats.totalAgents` 3 → 4。
## 校验 / Verification
| 校验 | 结果 |
|---|---|
| `validate_catalog_metadata.py --require-complete` | **0
error**,sidecars 74,本条目零 warning |
| `validate-i18n.py` | 0 error |
| `test_validate_catalog_metadata.py` | 47/47 |
| 发布前敏感信息扫描(邮箱 / 飞书真实 ID / 租户组织标识 / 带 ID 链接 / 密钥形态 / 隐藏文件,全工作树) |
**零命中** |
| 文档内部链接 | 13 个链接全部命中真实文件,无断链 |
## 依赖 / Dependency
`requiredClientVersion: 10.0.143` —— 自动装齐依赖技能的能力来自主仓库
desirecore/desirecore#2587,该值按其合入后的首个发布版本填写。**若 #2587 未能进入
10.0.143,此值需回填修正**,否则用户在缺少该能力的版本上装完 Agent 会没有技能。
---------
Co-authored-by: yi-ge <jackyoncode@gmail.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
|
2026-09-04 10:38:37 -04:00 |
|