docs(notes): add an optional homepage to market index plugins
This commit is contained in:
1 parent
a042d53289
commit
5535f0bcf7
3 files changed
+14
-10
No files matched your search
@@ -18,8 +18,8 @@
|
||||
en: 4fac5a9b8261342d
|
||||
zh: f9168a8a4209feab
|
||||
/agent-note-plugin-market-index-format/proposal/plugin-fields:
|
||||
en: aa544c156b4592b4
|
||||
zh: 69970e21ccb9eebd
|
||||
en: f728927a89754892
|
||||
zh: 3bc3b18cac60cdc1
|
||||
/agent-note-plugin-market-index-format/proposal/version-fields:
|
||||
en: d82d84e9f15f0a8c
|
||||
zh: fa65770cd7607c15
|
||||
@@ -30,14 +30,14 @@
|
||||
en: 323c997bccd7cf4a
|
||||
zh: fd588d37925d3732
|
||||
/agent-note-plugin-market-index-format/proposal/generator-obligations:
|
||||
en: bd44312d55afce0c
|
||||
zh: 8d341a2ae095dbca
|
||||
en: 2355bd40a77e615c
|
||||
zh: a83fa20f47b49e44
|
||||
/agent-note-plugin-market-index-format/proposal/reader-rules:
|
||||
en: 40613286c82370b2
|
||||
zh: f6b2452c75e9fc71
|
||||
/agent-note-plugin-market-index-format/alternatives-considered:
|
||||
en: ef519b0d5da71645
|
||||
zh: 428dbcd6502bbfb5
|
||||
en: d102d17d4203c592
|
||||
zh: b98f970545e3e07f
|
||||
/agent-note-plugin-market-index-format/acceptance-criteria:
|
||||
en: f364af5c0343a23e
|
||||
zh: 8b8c2a3ec3f6a57f
|
||||
|
||||
@@ -42,6 +42,7 @@ Separate the **index** from the **index generator**. DSH defines and reads one J
|
||||
"description": { "en": "Per-tool LLM authorization review", "zh": "逐工具 LLM 授权审查" },
|
||||
"icon": "icons/auto-review.svg",
|
||||
"author": "Example Labs",
|
||||
"homepage": "https://example.com/dsh-auto-review",
|
||||
"metadata": {
|
||||
"category": "productivity",
|
||||
"labels": ["official"],
|
||||
@@ -109,6 +110,7 @@ Category, label, and sort-key ids are non-empty strings. Readers look ids up as
|
||||
| `description` | no | `LocalizedText`. |
|
||||
| `icon` | no | Either `data:<type>;base64,<payload>`, where `<type>` is `image/svg+xml`, `image/png`, `image/jpeg`, or `image/webp`, `<payload>` is canonically padded base64, and the decoded payload is at most 256 KiB; or a URL reference whose resolution against the index URL is an `https:` URL or has the index URL's origin. |
|
||||
| `author` | no | String with at least one non-whitespace character. |
|
||||
| `homepage` | no | Absolute `https:` or `http:` URL of a page about the plugin. |
|
||||
| `metadata` | no | Object holding the three values below. |
|
||||
| `metadata.category` | no | One declared category id. |
|
||||
| `metadata.labels` | no | Array of distinct declared label ids. |
|
||||
@@ -153,7 +155,7 @@ A reader cannot verify these rules; a generator that violates them publishes a m
|
||||
- `publishTimestamp` is the registry publish time of `version` for npm sources and the committer time of `commit` for Git sources.
|
||||
- `engines.dsh` copies the manifest's `engines.dsh`. Without one, it is the conjunction, as defined in DSH compatibility, of the manifest's DSH peer ranges after publication rewriting, omitting `workspace:*`, `workspace:^`, and `workspace:~`, because installation treats them as the running DSH version; with no remaining range, `engines.dsh` is absent. Installation finds any other `workspace:` range incompatible with every DSH version, so generators do not list such a version.
|
||||
- Each listed version declares `dsh.bundle`. Installation independently refuses a package without a bundle patch.
|
||||
- `title`, `description`, `icon`, and `author` come from the highest listed version's locale `meta` fields, manifest fields, and icon, using the rules for installed plugin display metadata.
|
||||
- `title`, `description`, `icon`, and `author` come from the highest listed version's locale `meta` fields, manifest fields, and icon, using the rules for installed plugin display metadata. `homepage` copies that version's manifest `homepage` and is absent without one.
|
||||
|
||||
### Reader rules
|
||||
|
||||
@@ -177,7 +179,7 @@ A reader evaluates each version's compatibility from `engines.dsh` with the rule
|
||||
|
||||
**One `source` per plugin, with only the pin per version.** A plugin that moves to another repository, directory, or registry between releases could not list its older versions.
|
||||
|
||||
**Display fields per version.** A list shows one row per plugin, so older display text would cost index size without a reader that shows it.
|
||||
**Display fields per version.** A list shows one row per plugin, so older display text, icons, authors, and homepages would cost index size without a reader that shows them.
|
||||
|
||||
**Inline icons only.** A list without extra requests needs inline icons, but 256 KiB of raw bytes is about 341 KiB as base64, so a 100-plugin index could reach about 35 MB. URL icons trade extra requests, and disclosure of the user's IP address to the image host, for a small index.
|
||||
|
||||
|
||||
@@ -42,6 +42,7 @@ DSH 只能从用户已知的 spec 安装第三方组合包(bundle):npm 包
|
||||
"description": { "en": "Per-tool LLM authorization review", "zh": "逐工具 LLM 授权审查" },
|
||||
"icon": "icons/auto-review.svg",
|
||||
"author": "Example Labs",
|
||||
"homepage": "https://example.com/dsh-auto-review",
|
||||
"metadata": {
|
||||
"category": "productivity",
|
||||
"labels": ["official"],
|
||||
@@ -109,6 +110,7 @@ DSH 只能从用户已知的 spec 安装第三方组合包(bundle):npm 包
|
||||
| `description` | 否 | `LocalizedText`。 |
|
||||
| `icon` | 否 | 以下两种形式之一:`data:<type>;base64,<payload>`,其中 `<type>` 为 `image/svg+xml`、`image/png`、`image/jpeg` 或 `image/webp`,`<payload>` 是按规范填充的 base64,解码后的载荷不超过 256 KiB;或者 URL 引用,它相对于索引 URL 解析的结果是 `https:` URL,或与索引 URL 同源。 |
|
||||
| `author` | 否 | 至少包含一个非空白字符的字符串。 |
|
||||
| `homepage` | 否 | 介绍该插件的页面的绝对 `https:` 或 `http:` URL。 |
|
||||
| `metadata` | 否 | 包含下列三个值的对象。 |
|
||||
| `metadata.category` | 否 | 一个已声明的分类 id。 |
|
||||
| `metadata.labels` | 否 | 由互不相同的已声明标签 id 组成的数组。 |
|
||||
@@ -153,7 +155,7 @@ DSH 安装检查读取包 manifest 中的 `engines.dsh`。存在该字段时,
|
||||
- 对于 npm 来源,`publishTimestamp` 是 `version` 在 registry 中的发布时间;对于 Git 来源,它是 `commit` 的提交者时间。
|
||||
- `engines.dsh` 复制 manifest 中的 `engines.dsh`。manifest 没有该字段时,它是 manifest 中经发布改写后的 DSH peer 范围按 DSH 兼容性一节定义的合取,并省略 `workspace:*`、`workspace:^` 和 `workspace:~`,因为安装时会将它们视为当前运行的 DSH 版本;没有剩余范围时省略 `engines.dsh`。安装检查认为其他任何 `workspace:` 范围与所有 DSH 版本都不兼容,因此生成器不列出此类版本。
|
||||
- 列出的每个版本都声明了 `dsh.bundle`。安装时也会独立拒绝没有组合包 patch 的包。
|
||||
- `title`、`description`、`icon` 和 `author` 来自所列最高版本的语言文件 `meta` 字段、manifest 字段和图标,并采用已安装插件显示元数据的规则。
|
||||
- `title`、`description`、`icon` 和 `author` 来自所列最高版本的语言文件 `meta` 字段、manifest 字段和图标,并采用已安装插件显示元数据的规则。`homepage` 复制该版本 manifest 的 `homepage`,manifest 没有该字段时省略。
|
||||
|
||||
### 读取器规则
|
||||
|
||||
@@ -177,7 +179,7 @@ DSH 安装检查读取包 manifest 中的 `engines.dsh`。存在该字段时,
|
||||
|
||||
**每个插件一个 `source`,每个版本只记录固定点。** 在两次发布之间换了仓库、目录或 registry 的插件将无法列出旧版本。
|
||||
|
||||
**每个版本各有显示字段。** 列表每个插件只显示一行,旧的显示文本会增加索引大小,却没有读取器显示它。
|
||||
**每个版本各有显示字段。** 列表每个插件只显示一行,旧的显示文本、图标、作者和主页会增加索引大小,却没有读取器显示它们。
|
||||
|
||||
**只允许内联图标。** 不发额外请求的列表需要内联图标,但 256 KiB 原始字节编码为 base64 后约为 341 KiB,因此 100 个插件的索引可能达到约 35 MB。URL 图标以额外请求和向图片主机暴露用户 IP 地址为代价,换取较小的索引。
|
||||
|
||||
|
||||
Reference in new issue
Block a user